$( This is the Metamath database iset.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/ileuni/conventions.html to
   understand the label naming conventions used in iset.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
   iset.mm" followed by "write source iset.mm /split"; to recombine, omit
   "/split". $)

$( The database iset.mm was created by Mario Carneiro on 21-Jan-2015 from a
   fork of the database set.mm and has been continuously enriched since then
   (list of contributors below).  Many additions and updates included copying
   entire theorems and sections from set.mm in order to keep some consistency
   among these databases. $)


$( !
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Metamath source file for intuitionistic 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
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
SJ  Szymon Jaroszewicz
BJ  Benoit Jubin
JK  Jim Kingdon
WL  Wolf Lammen
GL  Gerard Lang
BL  Brendan Leahy
RL  Raph Levien
FL  Frederic Line
RFL Roy F. Longton
JM  Jeff Madsen
RM  Rodolfo Medina
NM  Norman Megill
JMG Jia Ming
MM  Mykola Mostovenko
MO  Mel L. O'Cat
SO  Stefan O'Rear
JO  Jason Orendorff
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
DAW David A. Wheeler
JY  Jonathan Yan
FZ  Fan Zheng


=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Contents of this header
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

1. Naming
2. Quick "How To"
3. Bibliography
4. Metamath syntax summary
5. Other notes
6. Acceptable shorter proofs


=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  1. Naming
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

Theorems which are the same as in set.mm should be named the same (that is,
where the statement of the theorem is the same; the proof can differ without
a new name being called for).  Theorems which are different should be named
differently (although if additional hypotheses are added in iset.mm the name
need not be changed).

As with set.mm, we welcome suggestions for better names (such as names which
are more consistent with naming conventions).

We do try to keep set.mm and iset.mm similar where we can. For example, if
a theorem exists both places but the name in set.mm isn't great, we tend to
keep that name for iset.mm, or change it in both files together. This is
mainly to make it easier to copy theorems, but also to generally help people
browse proofs, find theorems, write proofs, etc.


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

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

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 identifer 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/mpegif/mmset.html#bib
  Hilbert space - see http://us.metamath.org/mpegif/mmhil.html#ref


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

The HELP LANGUAGE command in the Metamath program will give you a quick
overview of Metamath.  Syntax summary:

          $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 above two-character sequences beginning with "$" are the only primitives
built into the Metamath language.  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 this database file.

Here is some more detail about the syntax.  There are two kinds of user-defined
syntax elements, 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).  Tokens and labels are case-sensitive.  All
labels (except in proofs) must be distinct.  A label may not have the same name
as a token (to simplify the coding of certain parsers and translators).

  $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.
  $[ <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 is interpreted as a single ` .  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. tokens 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. 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.  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:

  Axioms of propositional calculus - [Margaris].
  Axioms of predicate calculus - [Megill] (System S3' in the article
      referenced).
  Theorems of propositional calculus - [WhiteheadRussell].
  Theorems of pure predicate calculus - [Margaris].
  Theorems of equality and substitution - [Monk2], [Tarski], [Megill].
  Axioms of set theory - [BellMachover].
  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.)
  Construction of real and complex numbers - [Gleason]
  Theorems about real numbers - [Apostol]
  Intuitionistic logic and constructive mathematics - [Bauer] is an sampling
    of theorems and arguments which give a flavor of constructive mathematics.
    [Heyting] is a more comprehensive treatment of intuitionistic logic.

3. Convention:  All $a statements starting with "|-" have labels
starting with "ax-" (axioms) or "df-" (definitions).  "ax-" corresponds
to what is traditionally called an axiom.  "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, except for 5 (df-bi,
df-cleq, df-clel, df-clab, df-sbc) that require a more complex metalogical
justification by hand.

4. Our method of definition, the axioms for predicate calculus, and the
development of substitution are somewhat different from those found in standard
texts.  The axioms were designed for direct derivation of standard results
without excessive use of metatheorems.  (See Theorem 9.7 of [Megill] for a
rigorous justification.)  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.

5. 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.
Listed below are some important conventions and how they correspond to textbook
language.  The notation is usually explained in more detail when first
introduced.

  Typically, Greek letters (ph = phi, ps = psi, ch = chi, etc.) are used for
      propositional (wff) variables; x,y,z,... for individual (i.e. set)
      variables; and A,B,C,... for class variables.
  "|-", 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".
  "$e |- ( ph -> A. x ph ) $." should be read "Assume variable x is
      (effectively) not free in wff phi."  Literally, this says "Assume it is
      provable that phi implies for all x phi."
  "|- ( -. A. x x = y -> ..." should be read "If x and y are distinct
      variables, then..."  This antecedent provides us with a technical
      device (called a "distinctor" in [Megill]) to avoid the need for the
      $d statement early in our development of predicate calculus, permitting
      unrestricted substitituions as conceptually simple as those in
      propositional calculus.  However, the $d eventually becomes a
      requirement, and after that this device is rarely used.
  "[ y / x ] ph" should be read "the wff that results when y is properly
      substituted for x in ph."
  "$d x y $." should be read "Assume x and y are distinct variables."
  "$d x ph $." should be read "Assume x does not occur in phi $."  Sometimes
      a theorem is proved with "$e |- ( ph -> A. x ph ) $." in place of
      "$d x ph $." when a more general result is desired; ~ ax-17 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 .
  "$d x A $." should be read "Assume x is not a variable occurring in class A."
  "$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 substitution of A for x in phi."
  "$e |- A e. _V $." should be read "Assume class A is a set (i.e. exists)."
      This is a convenient convention used by [Quine].
  "$d x y $.  $e |- y e. A -> A. x y e. A $." should be read "Assume x is
      (effectively) not a free variable in class A."
  "`' R" should be read "converse of (relation) R" and is the same as the more
      standard notation R^{-1}.
  "( f ` x )" should be read "the value of function f at x" and is the same as
      the more familiar f(x).
  The Deduction Theorem of standard logic is never used.  Instead, in set
      theory, we use other tricks to make a $e hypothesis become an antecedent.
      See the comment for theorem ~ dedth below.


=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  6. Acceptable shorter proofs
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

Shorter proofs are welcome, and any shorter proof I 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.

Usually I will 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 I 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.

In borderline cases, I 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 principal arbitrary).  If two proofs have the same number of
compressed proof steps, I 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.

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.  Usually this
is clear from the theorem's 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.

$)


$(
###############################################################################
  FIRST ORDER LOGIC WITH EQUALITY
###############################################################################
$)


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  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") $)

  $( 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.  It 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.  (Contributed by NM, 7-Feb-2006.) $)
    a1ii $p |- ph $=
      (  ) C $.
  $}

  ${
    idi.1 $e |- ph $.
    $( Inference form of ~ id .  This inference rule, 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.
       (Contributed by Alan Sare, 31-Dec-2011.) $)
    idi $p |- ph $=
      (  ) B $.
  $}


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


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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).  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 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. $)
  wi $a wff ( ph -> ps ) $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Propositional logic axioms for implication
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Axiom _Simp_.  Axiom A1 of [Margaris] p. 49.  One of the axioms of
     propositional calculus.  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."

     The theorems of propositional calculus are also called _tautologies_.
     Although classical propositional logic tautologies can be proved using
     truth tables, there is no similarly simple system for intuitionistic
     propositional logic, so proving tautologies from axioms is the preferred
     approach.  (Contributed by NM, 5-Aug-1993.) $)
  ax-1 $a |- ( ph -> ( ps -> ph ) ) $.

  $( Axiom _Frege_.  Axiom A2 of [Margaris] p. 49.  This axiom "distributes" an
     antecedent over two consequents.  This axiom was part of Frege's original
     system and is known as _Frege_ in the literature.  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, 5-Aug-1993.) $)
  ax-2 $a |- ( ( ph -> ( ps -> ch ) ) -> ( ( ph -> ps ) -> ( ph -> ch ) ) ) $.

  $(
     Postulate the modus ponens rule of inference.
  $)

  ${
    $( 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.

       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, 5-Aug-1993.) $)
    ax-mp $a |- ps $.
  $}


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

   The results in this section are based on implication only, and only use
   ~ ax-1 , ~ ax-2 , and ~ ax-mp .
   In an implication, the wff before the arrow is called the "antecedent" and
   the wff after the arrow is called the "consequent."

   We will use the following descriptive terms very loosely:  A "closed form"
   or "tautology" has no $e hypotheses.  An "inference" has one or more $e
   hypotheses.  A "deduction" is an inference in which the hypotheses and the
   conclusion share the same antecedent.
$)

  ${
    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 $.
  $}

  ${
    $( Premise for ~ a1i . $)
    a1i.1 $e |- ph $.
    $( Inference derived from axiom ~ ax-1 .  See ~ a1d for an explanation of
       our informal use of the terms "inference" and "deduction."  See also the
       comment in ~ syld .  (Contributed by NM, 5-Aug-1993.) $)
    a1i $p |- ( ps -> ph ) $=
      ( wi ax-1 ax-mp ) ABADCABEF $.
  $}

  ${
    mp1i.a $e |- ph $.
    mp1i.b $e |- ( ph -> ps ) $.
    $( Drop and replace an antecedent.  (Contributed by Stefan O'Rear,
       29-Jan-2015.) $)
    mp1i $p |- ( ch -> ps ) $=
      ( ax-mp a1i ) BCABDEFG $.
  $}

  ${
    $( Premise for ~ a2i . $)
    a2i.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Inference derived from axiom ~ ax-2 .  (Contributed by NM,
       5-Aug-1993.) $)
    a2i $p |- ( ( ph -> ps ) -> ( ph -> ch ) ) $=
      ( wi ax-2 ax-mp ) ABCEEABEACEEDABCFG $.
  $}

  ${
    imim2i.1 $e |- ( ph -> ps ) $.
    $( Inference adding common antecedents in an implication.  (Contributed by
       NM, 5-Aug-1993.) $)
    imim2i $p |- ( ( ch -> ph ) -> ( ch -> ps ) ) $=
      ( wi a1i a2i ) CABABECDFG $.
  $}

  ${
    mpd.1 $e |- ( ph -> ps ) $.
    mpd.2 $e |- ( ph -> ( ps -> ch ) ) $.
    $( A modus ponens deduction.  (Contributed by NM, 5-Aug-1993.) $)
    mpd $p |- ( ph -> ch ) $=
      ( wi a2i ax-mp ) ABFACFDABCEGH $.
  $}

  ${
    $( 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 , 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."  (Contributed by NM,
       5-Aug-1993.)  (Proof shortened by O'Cat, 20-Oct-2011.)  (Proof shortened
       by Wolf Lammen, 26-Jul-2012.) $)
    syl $p |- ( ph -> ch ) $=
      ( wi a1i mpd ) ABCDBCFAEGH $.
  $}

  ${
    mpi.1 $e |- ps $.
    mpi.2 $e |- ( ph -> ( ps -> ch ) ) $.
    $( A nested modus ponens inference.  (Contributed by NM, 5-Aug-1993.)
       (Proof shortened by Stefan Allan, 20-Mar-2006.) $)
    mpi $p |- ( ph -> ch ) $=
      ( a1i mpd ) ABCBADFEG $.
  $}

  ${
    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.)
       (Proof shortened by Wolf Lammen, 23-Jul-2013.) $)
    mp2 $p |- ch $=
      ( mpi ax-mp ) ACDABCEFGH $.
  $}

  ${
    3syl.1 $e |- ( ph -> ps ) $.
    3syl.2 $e |- ( ps -> ch ) $.
    3syl.3 $e |- ( ch -> th ) $.
    $( Inference chaining two syllogisms.  (Contributed by NM, 5-Aug-1993.) $)
    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.  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.  (Contributed by BJ, 14-Jul-2018.)
       (New usage is discouraged.) $)
    4syl $p |- ( ph -> ta ) $=
      ( 3syl syl ) ADEABCDFGHJIK $.
  $}

  $( Principle of identity.  Theorem *2.08 of [WhiteheadRussell] p. 101.  For
     another version of the proof directly from axioms, see ~ idALT .
     (Contributed by NM, 5-Aug-1993.)  (Proof shortened by Stefan Allan,
     20-Mar-2006.) $)
  id $p |- ( ph -> ph ) $=
    ( wi ax-1 mpd ) AAABZAAACAECD $.

  $( Principle of identity.  Theorem *2.08 of [WhiteheadRussell] p. 101.  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.mathsci.appstate.edu/~~jlh/primer/hirst.pdf .  For a shorter
     version of the proof that takes advantage of previously proved theorems,
     see ~ id .  (Contributed by NM, 5-Aug-1993.)
     (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 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.  (The proof was revised by
       Stefan Allan, 20-Mar-2006.)

       _Naming convention_:  We often call a theorem a "deduction" and suffix
       its label with "d" whenever the hypotheses and conclusion are each
       prefixed with the same antecedent.  This allows us to use the theorem in
       places where (in traditional textbook formalizations) the standard
       Deduction Theorem would be used; here ` ph ` would be replaced with a
       conjunction ( ~ wa ) of the hypotheses of the would-be deduction.  By
       contrast, we tend to call the simpler version with no common antecedent
       an "inference" and suffix its label with "i"; compare theorem ~ a1i .
       Finally, a "theorem" would be the form with no hypotheses; in this case
       the "theorem" form would be the original axiom ~ ax-1 .  We usually show
       the theorem form without a suffix on its label (e.g. ~ pm2.43 vs.
       ~ pm2.43i vs. ~ pm2.43d ).  (Contributed by NM, 5-Aug-1993.)  (Revised
       by NM, 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.  (Contributed by NM,
       23-Jun-1994.) $)
    a2d $p |- ( ph -> ( ( ps -> ch ) -> ( ps -> th ) ) ) $=
      ( wi ax-2 syl ) ABCDFFBCFBDFFEBCDGH $.
  $}

  ${
    2a1i.1 $e |- ch $.
    $( Add two antecedents to a wff.  (Contributed by Jeff Hankins,
       4-Aug-2009.)  (Proof shortened by Wolf Lammen, 23-Jul-2013.) $)
    2a1i $p |- ( ph -> ( ps -> ch ) ) $=
      ( a1i a1d ) ACBCADEF $.
  $}

  ${
    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 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 $.
  $}

  ${
    $( Premise for ~ com12 .  See ~ pm2.04 for the theorem form. $)
    com12.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Inference that swaps (commutes) antecedents in an implication.
       (Contributed by NM, 5-Aug-1993.)  (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 second premise is used to replace
       the second antecedent of the first premise.  (Contributed by NM,
       5-Aug-1993.)  (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-Aug-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.  (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 $.
  $}

  $( 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, 5-Aug-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.  (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.  (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 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.

       Notice that ~ syld has the same form as ~ syl with ` ph ` added in front
       of each hypothesis and conclusion.  When all theorems referenced in a
       proof are converted in this way, we can replace ` ph ` with a hypothesis
       of the proof, allowing the hypothesis to be eliminated with ~ id and
       become an antecedent.  The Deduction Theorem for propositional calculus,
       e.g.  Theorem 3 in [Margaris] p. 56, tells us that this procedure is
       always possible.  (Contributed by NM, 5-Aug-1993.)  (Proof shortened by
       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.  (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 ) ) $.
    $( Deduction introducing a nested embedded antecedent.  (Contributed by NM,
       17-Dec-2004.)  (Proof shortened by O'Cat, 15-Jan-2008.) $)
    a1dd $p |- ( ph -> ( ps -> ( th -> ch ) ) ) $=
      ( wi ax-1 syl6 ) ABCDCFECDGH $.
  $}

  ${
    pm2.43i.1 $e |- ( ph -> ( ph -> ps ) ) $.
    $( Inference absorbing redundant antecedent.  (Contributed by NM,
       5-Aug-1993.)  (Proof shortened by 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.  (Contributed by NM,
       18-Aug-1993.)  (Proof shortened by 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 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, 5-Aug-1993.)  (Proof shortened by 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.  (Contributed by NM,
       5-Aug-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.  (Contributed by NM, 5-Aug-1993.)  (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.  (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 ) ) $.
    $( Virtual deduction rule.  (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.  (Contributed by NM, 5-Aug-1993.)
       (Proof shortened by 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.  (Contributed by
       NM, 5-Aug-1993.)  (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 ) ) $.
    $( ~ syl6 combined with ~ mpi .  (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 $.
  $}

  ${
    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 $.
  $}

  ${
    syldd.1 $e |- ( ph -> ( ps -> ( ch -> th ) ) ) $.
    syldd.2 $e |- ( ph -> ( ps -> ( th -> ta ) ) ) $.
    $( Nested syllogism deduction.  (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.  (Contributed by NM, 5-Aug-1993.)  (Proof
       shortened by Josh Purinton, 29-Dec-2000.)  (Proof shortened by 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 second premise is used to replace
       the third antecedent of the first premise.  (Contributed by NM,
       5-Aug-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.  (Contributed by NM, 5-Aug-1993.)  (Proof
       shortened by Josh Purinton, 29-Dec-2000.)  (Proof shortened by O'Cat,
       2-Feb-2006.)  (Revised by NM, 3-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, 5-Aug-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, 5-Aug-1993.) $)
    syl9r $p |- ( th -> ( ph -> ( ps -> ta ) ) ) $=
      ( wi syl9 com12 ) ADBEHABCDEFGIJ $.
  $}

  ${
    imim12d.1 $e |- ( ph -> ( ps -> ch ) ) $.
    imim12d.2 $e |- ( ph -> ( th -> ta ) ) $.
    $( Deduction combining antecedents and consequents.  (Contributed by NM,
       7-Aug-1994.)  (Proof shortened by 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.  (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.  (Contributed by NM, 5-Aug-1993.)  (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.  (Contributed by NM,
     3-Jan-2005.) $)
  pm2.83 $p |- ( ( ph -> ( ps -> ch ) ) -> ( ( ph -> ( ch -> th ) ) ->
                ( ph -> ( ps -> th ) ) ) ) $=
    ( wi imim1 imim3i ) BCECDEBDEABCDFG $.

  ${
    com3.1 $e |- ( ph -> ( ps -> ( ch -> th ) ) ) $.
    $( Commutation of antecedents.  Swap 2nd and 3rd.  (Contributed by NM,
       5-Aug-1993.)  (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.
     (Contributed by NM, 5-Aug-1993.)  (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.  (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 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.  (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.  (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.  (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.  (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 $.
  $}

  $( Elimination of a nested antecedent.  (Contributed by Wolf Lammen,
     9-May-2013.) $)
  jarr $p |- ( ( ( ph -> ps ) -> ch ) -> ( ps -> ch ) ) $=
    ( wi ax-1 imim1i ) BABDCBAEF $.

  ${
    pm2.86i.1 $e |- ( ( ph -> ps ) -> ( ph -> ch ) ) $.
    $( Inference based on ~ 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 syl com12 ) BACBABEACEBAFDGH $.
  $}

  ${
    pm2.86d.1 $e |- ( ph -> ( ( ps -> ch ) -> ( ps -> th ) ) ) $.
    $( Deduction based on ~ 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 $.

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


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Logical conjunction and logical equivalence
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Declare connectives for conjunction ('and') and biconditional. $)
  $c /\ $. $( Wedge (read:  'and') $)
  $c <-> $. $( Double arrow (read:  'if and only if' or
               'is logically equivalent to') $)

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

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

  $( Left 'and' elimination.  One of the axioms of propositional logic.  Use
     its alias ~ simpl instead for naming consistency with set.mm.
     (New usage is discouraged.)  (Contributed by Mario Carneiro,
     31-Jan-2015.) $)
  ax-ia1 $a |- ( ( ph /\ ps ) -> ph ) $.

  $( Right 'and' elimination.  One of the axioms of propositional logic.
     (Contributed by Mario Carneiro, 31-Jan-2015.)  Use its alias ~ simpr
     instead for naming consistency with set.mm.
     (New usage is discouraged.) $)
  ax-ia2 $a |- ( ( ph /\ ps ) -> ps ) $.

  $( 'And' introduction.  One of the axioms of propositional logic.
     (Contributed by Mario Carneiro, 31-Jan-2015.) $)
  ax-ia3 $a |- ( ph -> ( ps -> ( ph /\ ps ) ) ) $.

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

  $( Elimination of a conjunct.  Theorem *3.27 (Simp) of [WhiteheadRussell]
     p. 112.  (Contributed by NM, 5-Aug-1993.)  (Proof shortened by Wolf
     Lammen, 13-Nov-2012.) $)
  simpr $p |- ( ( ph /\ ps ) -> ps ) $=
    ( ax-ia2 ) ABC $.

  ${
    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.  (Contributed by NM, 5-Aug-1993.) $)
    simpld $p |- ( ph -> ps ) $=
      ( wa simpl syl ) ABCEBDBCFG $.
  $}

  ${
    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, 5-Aug-1993.)
       (Proof shortened by Wolf Lammen, 3-Oct-2013.) $)
    simprd $p |- ( ph -> ch ) $=
      ( wa simpr syl ) ABCECDBCFG $.
  $}

  ${
    exp.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.)  (Contributed by NM, 5-Aug-1993.)
       (Proof shortened by Eric Schmidt, 22-Dec-2006.) $)
    ex $p |- ( ph -> ( ps -> ch ) ) $=
      ( wa ax-ia3 syl6 ) ABABECABFDG $.

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

  $( This 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, as it allows us
     to use logic to manipulate definitions directly.  For an example of such a
     definition, see ~ df-3or .  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 ~ biijust .  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 ~ biijust 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 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 for human readability.)

     ~ df-bi itself is a conjunction of two implications (to avoid using the
     biconditional in its own definition), but once we have the biconditional,
     we can prove ~ dfbi2 which uses the biconditional instead.

     Other definitions of the biconditional, such as ~ dfbi3dc , only hold for
     decidable propositions, not all propositions.  (Contributed by NM,
     5-Aug-1993.)  (Revised by Jim Kingdon, 24-Nov-2017.) $)
  df-bi $a |- ( ( ( ph <-> ps ) -> ( ( ph -> ps ) /\ ( ps -> ph ) ) )
        /\ ( ( ( ph -> ps ) /\ ( ps -> ph ) ) -> ( ph <-> ps ) ) ) $.

  $( Property of the biconditional connective.  (Contributed by NM,
     11-May-1999.)  (Revised by NM, 31-Jan-2015.) $)
  bi1 $p |- ( ( ph <-> ps ) -> ( ph -> ps ) ) $=
    ( wb wi wa df-bi simpli simpld ) ABCZABDZBADZIJKEZDLIDABFGH $.

  $( Property of the biconditional connective.  (Contributed by NM,
     11-May-1999.) $)
  bi3 $p |- ( ( ph -> ps ) -> ( ( ps -> ph ) -> ( ph <-> ps ) ) ) $=
    ( wi wb wa df-bi simpri ex ) ABCZBACZABDZKIJEZCLKCABFGH $.

  ${
    biimpi.1 $e |- ( ph <-> ps ) $.
    $( Infer an implication from a logical equivalence.  (Contributed by NM,
       5-Aug-1993.) $)
    biimpi $p |- ( ph -> ps ) $=
      ( wb wi bi1 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 $.
  $}

  ${
    imp.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Importation inference.  (Contributed by NM, 5-Aug-1993.)  (Proof
       shortened by Eric Schmidt, 22-Dec-2006.) $)
    imp $p |- ( ( ph /\ ps ) -> ch ) $=
      ( wa simpl simpr sylc ) ABEABCABFABGDH $.

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

  ${
    impbii.1 $e |- ( ph -> ps ) $.
    impbii.2 $e |- ( ps -> ph ) $.
    $( Infer an equivalence from an implication and its converse.  (Contributed
       by NM, 5-Aug-1993.) $)
    impbii $p |- ( ph <-> ps ) $=
      ( wi wb bi3 mp2 ) ABEBAEABFCDABGH $.
  $}

  ${
    impbidd.1 $e |- ( ph -> ( ps -> ( ch -> th ) ) ) $.
    impbidd.2 $e |- ( ph -> ( ps -> ( th -> ch ) ) ) $.
    $( Deduce an equivalence from two implications.  (Contributed by Rodolfo
       Medina, 12-Oct-2010.) $)
    impbidd $p |- ( ph -> ( ps -> ( ch <-> th ) ) ) $=
      ( wi wb bi3 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.  (Contributed by NM,
       5-Aug-1993.)  (Revised by Wolf Lammen, 3-Nov-2012.) $)
    impbid $p |- ( ph -> ( ps <-> ch ) ) $=
      ( wb impbid21d pm2.43i ) ABCFAABCDEGH $.
  $}

  $( Property of the biconditional connective.  (Contributed by NM,
     11-May-1999.)  (Proof shortened by Wolf Lammen, 11-Nov-2012.) $)
  bi2 $p |- ( ( ph <-> ps ) -> ( ps -> ph ) ) $=
    ( wb wi wa df-bi simpli simprd ) ABCZABDZBADZIJKEZDLIDABFGH $.

  $( Commutative law for equivalence.  (Contributed by Wolf Lammen,
     10-Nov-2012.) $)
  bicom1 $p |- ( ( ph <-> ps ) -> ( ps <-> ph ) ) $=
    ( wb bi2 bi1 impbid ) ABCBAABDABEF $.

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

  ${
    biimpri.1 $e |- ( ph <-> ps ) $.
    $( Infer a converse implication from a logical equivalence.  (Contributed
       by NM, 5-Aug-1993.)  (Proof shortened by Wolf Lammen, 16-Sep-2013.) $)
    biimpri $p |- ( ps -> ph ) $=
      ( bicomi biimpi ) BAABCDE $.
  $}

  ${
    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, 5-Aug-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, 5-Aug-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 $.
  $}

  $( Join antecedents with conjunction.  Theorem *3.2 of [WhiteheadRussell]
     p. 111.  (Contributed by NM, 5-Aug-1993.)  (Proof shortened by Wolf
     Lammen, 12-Nov-2012.)  (Proof shortened by Jia Ming, 17-Nov-2020.) $)
  pm3.2 $p |- ( ph -> ( ps -> ( ph /\ ps ) ) ) $=
    ( ax-ia3 ) ABC $.

  $( Commutative law for equivalence.  Theorem *4.21 of [WhiteheadRussell]
     p. 117.  (Contributed by NM, 5-Aug-1993.)  (Revised by NM,
     11-Nov-2012.) $)
  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, 5-Aug-1993.) $)
    bicomd $p |- ( ph -> ( ch <-> ps ) ) $=
      ( wb bicom sylib ) ABCECBEDBCFG $.
  $}

  ${
    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 $.
  $}

  ${
    biimpd.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Deduce an implication from a logical equivalence.  (Contributed by NM,
       5-Aug-1993.) $)
    biimpd $p |- ( ph -> ( ps -> ch ) ) $=
      ( wb wi bi1 syl ) ABCEBCFDBCGH $.
  $}

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

  ${
    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, 5-Aug-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, 5-Aug-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, 5-Aug-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.)  (Revised
       by NM, 22-Sep-2013.) $)
    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.  (Contributed
       by NM, 5-Aug-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, 5-Aug-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, 5-Aug-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, 5-Aug-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, 5-Aug-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.  (Contributed by NM, 5-Aug-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 ~ bi1 -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.)  (Revised by NM, 29-Jan-2013.) $)
    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.  (Contributed by NM, 26-Jun-2004.) $)
    ibd $p |- ( ph -> ( ps -> ch ) ) $=
      ( wb bi1 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 bi1 imim3i bi2 impbid pm2.86d impbidd impbii ) ABCDZEZABEZACEZDZNOP
    MBCABCFGMCBABCHGIQABCQABCOPFJQACBOPHJKL $.

  ${
    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, 5-Aug-1993.)  (Proof shortened by Wolf Lammen, 13-Oct-2012.) $)
    bitri $p |- ( ph <-> ch ) $=
      ( biimpi sylib biimpri sylibr impbii ) ACABCABDFEGCBABCEHDIJ $.
  $}

  ${
    bitr2i.1 $e |- ( ph <-> ps ) $.
    bitr2i.2 $e |- ( ps <-> ch ) $.
    $( An inference from transitive law for logical equivalence.  (Contributed
       by NM, 5-Aug-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, 5-Aug-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, 5-Aug-1993.) $)
    bitr4i $p |- ( ph <-> ch ) $=
      ( bicomi bitri ) ABCDCBEFG $.
  $}

  ${
    bitrd.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    bitrd.2 $e |- ( ph -> ( ch <-> th ) ) $.
    $( Deduction form of ~ bitri .  (Contributed by NM, 5-Aug-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, 5-Aug-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, 5-Aug-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,
       5-Aug-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,
       5-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,
       5-Aug-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,
       5-Aug-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, 5-Aug-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, 5-Aug-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, 5-Aug-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, 5-Aug-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, 5-Aug-1993.) $)
    3bitr4g $p |- ( ph -> ( th <-> ta ) ) $=
      ( syl5bb syl6bbr ) ADCEDBACGFIHJ $.
  $}

  ${
    bi3ant.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Construct a biconditional in antecedent position.  (Contributed by Wolf
       Lammen, 14-May-2013.) $)
    bi3ant $p |- ( ( ( th -> ta ) -> ph ) -> ( ( ( ta -> th ) -> ps ) ->
                                                ( ( th <-> ta ) -> ch ) ) ) $=
      ( wi wb bi1 imim1i bi2 imim3i syl2im ) DEGZAGDEHZAGEDGZBGOBGOCGONADEIJOPB
      DEKJABCOFLM $.
  $}

  $( Express symmetries of theorems in terms of biconditionals.  (Contributed
     by Wolf Lammen, 14-May-2013.) $)
  bisym $p |- ( ( ( ph -> ps ) -> ( ch -> th ) ) -> ( ( ( ps -> ph )
      -> ( th -> ch ) ) -> ( ( ph <-> ps ) -> ( ch <-> th ) ) ) ) $=
    ( wi wb bi3 bi3ant ) CDEDCECDFABCDGH $.

  $( The next three rules are useful for building up wff's around a
     definition, in order to make use of the definition. $)

  ${
    bi.a $e |- ( ph <-> ps ) $.
    $( Introduce an antecedent to both sides of a logical equivalence.
       (Contributed by NM, 5-Aug-1993.)  (Proof shortened by Wolf Lammen,
       6-Feb-2013.) $)
    imbi2i $p |- ( ( ch -> ph ) <-> ( ch -> ps ) ) $=
      ( wb a1i pm5.74i ) CABABECDFG $.
  $}

  ${
    bibi.a $e |- ( ph <-> ps ) $.
    $( Inference adding a biconditional to the left in an equivalence.
       (Contributed by NM, 5-Aug-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, 5-Aug-1993.) $)
    bibi1i $p |- ( ( ph <-> ch ) <-> ( ps <-> ch ) ) $=
      ( wb bicom bibi2i 3bitri ) ACECAECBEBCEACFABCDGCBFH $.

    ${
      bibi12.2 $e |- ( ch <-> th ) $.
      $( The equivalence of two equivalences.  (Contributed by NM,
         5-Aug-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, 5-Aug-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, 5-Aug-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, 5-Aug-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, 5-Aug-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, 5-Aug-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, 5-Aug-1993.) $)
    bibi12d $p |- ( ph -> ( ( ps <-> th ) <-> ( ch <-> ta ) ) ) $=
      ( wb bibi1d bibi2d bitrd ) ABDHCDHCEHABCDFIADECGJK $.
  $}

  $( 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, 5-Aug-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, 5-Aug-1993.) $)
    imbi12i $p |- ( ( ph -> ch ) <-> ( ps -> th ) ) $=
      ( wi imbi2i imbi1i bitri ) ACGADGBDGCDAFHABDEIJ $.
  $}

  $( 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 $.

  $( 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 $.
  $}

  $( Theorem *5.501 of [WhiteheadRussell] p. 125.  (Contributed by NM,
     3-Jan-2005.)  (Revised by NM, 24-Jan-2013.) $)
  pm5.501 $p |- ( ph -> ( ps <-> ( ph <-> ps ) ) ) $=
    ( wb pm5.1im bi1 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 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 $.
  $}

  $( Logical equivalence of commuted antecedents.  Part of Theorem *4.87 of
     [WhiteheadRussell] p. 122.  (Contributed by NM, 5-Aug-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 $.

  $( 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 $.

  ${
    imp3.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 $.
  $}

  ${
    exp3a.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 $.
  $}

  ${
    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 $.
  $}

  $( 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, 5-Aug-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.  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 $.
  $}

  ${
    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, 5-Aug-1993.) $)
    pm3.2i $p |- ( ph /\ ps ) $=
      ( wa pm3.2 mp2 ) ABABECDABFG $.
  $}

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

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

  ${
    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 antecents.  (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.  (Contributed by NM, 31-Jan-1997.) $)
    syl2an $p |- ( ( ph /\ ta ) -> th ) $=
      ( sylan sylan2 ) EACDGABCDFHIJ $.

    $( A double syllogism inference.  (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 ) ) $.
    $( Inference from a logical equivalence.  (Contributed by NM,
       3-May-1994.) $)
    biimpa $p |- ( ( ph /\ ps ) -> ch ) $=
      ( biimpd imp ) ABCABCDEF $.

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

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

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

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

  $( Introduction of antecedent as conjunct.  (Contributed by NM, 5-Dec-1995.)
     (Revised by NM, 24-Mar-2013.) $)
  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,
       5-Aug-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 $.
  $}

  ${
    jca.1 $e |- ( ph -> ps ) $.
    jca.2 $e |- ( ph -> ch ) $.
    $( Deduce conjunction of the consequents of two implications ("join
       consequents with 'and'").  (Contributed by NM, 5-Aug-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, 5-Aug-1993.)  (Proof shortened by Wolf Lammen, 23-Jul-2013.) $)
    jcad $p |- ( ph -> ( ps -> ( ch /\ th ) ) ) $=
      ( wa pm3.2 syl6c ) ABCDCDGEFCDHI $.
  $}

  ${
    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,
       5-Aug-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 $.
  $}

  ${
    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 $.
  $}

  $( 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 $.
  $}

  ${
    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, 5-Aug-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, 5-Aug-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,
       5-Aug-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 $.
  $}

  $( 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 *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.) $)
    imp4a $p |- ( ph -> ( ps -> ( ( ch /\ th ) -> ta ) ) ) $=
      ( wi wa impexp syl6ibr ) ABCDEGGCDHEGFCDEIJ $.

    $( An importation inference.  (Contributed by NM, 26-Apr-1994.) $)
    imp4b $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 $.
  $}

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

  ${
    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.) $)
    exp4b $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 $.
  $}

  ${
    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 .  (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 $.
  $}

  ${
    pm3.26bi2.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 $.
  $}

  ${
    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, 5-Aug-1993.)
     (Revised by NM, 31-Jan-2015.) $)
  dfbi2 $p |- ( ( ph <-> ps ) <-> ( ( ph -> ps ) /\ ( ps -> ph ) ) ) $=
    ( wb wi wa df-bi simpli simpri impbii ) ABCZABDBADEZJKDZKJDZABFZGLMNHI $.

  $( Implication in terms of biconditional and conjunction.  Theorem *4.71 of
     [WhiteheadRussell] p. 120.  (Contributed by NM, 5-Aug-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 $.
  $}

  $( Theorem *4.24 of [WhiteheadRussell] p. 117.  (Contributed by NM,
     3-Jan-2005.)  (Revised by NM, 14-Mar-2014.) $)
  pm4.24 $p |- ( ph <-> ( ph /\ ph ) ) $=
    ( id pm4.71i ) AAABC $.

  $( Idempotent law for conjunction.  (Contributed by NM, 5-Aug-1993.)  (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, 5-Aug-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, 5-Aug-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, 5-Aug-1993.) $)
    sylan9r $p |- ( ( th /\ ph ) -> ( ps -> ta ) ) $=
      ( wi syl9r imp ) DABEHABCDEFGIJ $.
  $}

  ${
    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 antecents.  (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 $.
  $}

  ${
    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-2011.) $)
    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 $.
  $}

  $( 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 $.
  $}

  ${
    pm5.32d.1 $e |- ( ph -> ( ps -> ( ch <-> th ) ) ) $.
    $( Distribution of implication over biconditional (deduction rule).
       (Contributed by NM, 29-Oct-1996.)  (Revised by NM, 31-Jan-2015.) $)
    pm5.32d $p |- ( ph -> ( ( ps /\ ch ) <-> ( ps /\ th ) ) ) $=
      ( wa wb wi bi1 syl6 imdistand bi2 impbid ) ABCFBDFABCDABCDGZCDHECDIJKABDC
      ABNDCHECDLJKM $.

    $( 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 $.
  $}

  $( Distribution of implication over biconditional.  Theorem *5.32 of
     [WhiteheadRussell] p. 125.  (Contributed by NM, 1-Aug-1994.)  (Revised by
     NM, 31-Jan-2015.) $)
  pm5.32 $p |- ( ( ph -> ( ps <-> ch ) ) <->
               ( ( ph /\ ps ) <-> ( ph /\ ch ) ) ) $=
    ( wb wi wa id pm5.32d ibar bibi12d biimprcd impbii ) ABCDZEZABFZACFZDZNABCN
    GHAMQABOCPABIACIJKL $.

  ${
    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 $.
  $}

  ${
    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 $.
  $}

  ${
    bi.aa $e |- ( ph <-> ps ) $.
    $( Introduce a left conjunct to both sides of a logical equivalence.
       (Contributed by NM, 5-Aug-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, 5-Aug-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,
       5-Aug-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 $.
  $}

  ${
    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 $.
  $}

  ${
    anbid.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Deduction adding a left conjunct to both sides of a logical equivalence.
       (Contributed by NM, 5-Aug-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, 5-Aug-1993.)  (Proof shortened by Wolf
       Lammen, 16-Nov-2013.) $)
    anbi1d $p |- ( ph -> ( ( ps /\ th ) <-> ( ch /\ th ) ) ) $=
      ( wb a1d pm5.32rd ) ADBCABCFDEGH $.
  $}

  $( 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 $.

  ${
    anbi12d.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    anbi12d.2 $e |- ( ph -> ( th <-> ta ) ) $.
    $( Deduction joining two equivalences to form equivalence of conjunctions.
       (Contributed by NM, 5-Aug-1993.) $)
    anbi12d $p |- ( ph -> ( ( ps /\ th ) <-> ( ch /\ ta ) ) ) $=
      ( wa anbi1d anbi2d bitrd ) ABDHCDHCEHABCDFIADECGJK $.
  $}

  $( Modus ponens mixed with several conjunctions.  (Contributed by Jim
     Kingdon, 7-Jan-2018.) $)
  mpan10 $p |- ( ( ( ( ph -> ps ) /\ ch ) /\ ph ) -> ( ps /\ ch ) ) $=
    ( wi wa ancom anbi2i anass 3bitr4i id imp anim1i sylbi ) ABDZCEAEZNAEZCEZBC
    ENCAEZENACEZEOQRSNCAFGNCAHNACHIPBCNABNJKLM $.

  $( 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 $.

  ${
    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 $.
  $}

  $( Simplification of a conjunction.  (Contributed by NM, 18-Mar-2007.) $)
  simpll $p |- ( ( ( ph /\ ps ) /\ ch ) -> ph ) $=
    ( id ad2antrr ) AABCADE $.

  $( Simplification of a conjunction.  (Contributed by NM, 20-Mar-2007.) $)
  simplr $p |- ( ( ( ph /\ ps ) /\ ch ) -> ps ) $=
    ( id ad2antlr ) BBACBDE $.

  $( Simplification of a conjunction.  (Contributed by NM, 21-Mar-2007.) $)
  simprl $p |- ( ( ph /\ ( ps /\ ch ) ) -> ps ) $=
    ( id ad2antrl ) BBACBDE $.

  $( Simplification of a conjunction.  (Contributed by NM, 21-Mar-2007.) $)
  simprr $p |- ( ( ph /\ ( ps /\ ch ) ) -> ch ) $=
    ( id ad2antll ) CCABCDE $.

  $( 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 $.

  $( 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 $.

  $( 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 $.

  $( 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 $.

  ${
    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 $.

  ${
    anabsan.1 $e |- ( ( ( ph /\ ph ) /\ ps ) -> ch ) $.
    $( Absorption of antecedent with conjunction.  (Contributed by NM,
       24-Mar-1996.)  (Revised by NM, 18-Nov-2013.) $)
    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.)  (Revised by NM, 1-Jan-2013.) $)
    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 $.

  ${
    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.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 $.
  $}

  $( 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 $.

  $( Theorem *3.43 (Comp) of [WhiteheadRussell] p. 113.  (Contributed by NM,
     3-Jan-2005.)  (Revised by NM, 27-Nov-2013.) $)
  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 $.

  $( 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 $.

  $( 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 $.
  $}

  $( 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 $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Logical negation (intuitionistic)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( 'Not' introduction.  One of the axioms of propositional logic.
     (Contributed by Mario Carneiro, 31-Jan-2015.) $)
  ax-in1 $a |- ( ( ph -> -. ph ) -> -. ph ) $.

  $( 'Not' elimination.  One of the axioms of propositional logic.
     (Contributed by Mario Carneiro, 31-Jan-2015.) $)
  ax-in2 $a |- ( -. ph -> ( ph -> ps ) ) $.

  $( Reductio ad absurdum.  Theorem *2.01 of [WhiteheadRussell] p. 100.  This
     is valid intuitionistically (in the terminology of Section 1.2 of [Bauer]
     p. 482 it is a proof of negation not a proof by contradiction); compare
     with ~ pm2.18dc which only holds for some propositions.  (Contributed by
     Mario Carneiro, 12-May-2015.) $)
  pm2.01 $p |- ( ( ph -> -. ph ) -> -. ph ) $=
    ( ax-in1 ) AB $.

  $( From a wff and its negation, anything is true.  Theorem *2.21 of
     [WhiteheadRussell] p. 104.  Also called the Duns Scotus law.  (Contributed
     by Mario Carneiro, 12-May-2015.) $)
  pm2.21 $p |- ( -. ph -> ( ph -> ps ) ) $=
    ( ax-in2 ) ABC $.

  ${
    pm2.01d.1 $e |- ( ph -> ( ps -> -. ps ) ) $.
    $( Deduction based on reductio ad absurdum.  (Contributed by NM,
       18-Aug-1993.)  (Revised by Mario Carneiro, 31-Jan-2015.) $)
    pm2.01d $p |- ( ph -> -. ps ) $=
      ( wn wi pm2.01 syl ) ABBDZEHCBFG $.
  $}

  ${
    pm2.21d.1 $e |- ( ph -> -. ps ) $.
    $( A contradiction implies anything.  Deduction from ~ pm2.21 .
       (Contributed by NM, 10-Feb-1996.) $)
    pm2.21d $p |- ( ph -> ( ps -> ch ) ) $=
      ( wn wi pm2.21 syl ) ABEBCFDBCGH $.
  $}

  ${
    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.) $)
    pm2.21dd $p |- ( ph -> ch ) $=
      ( pm2.21d mpd ) ABCDABCEFG $.
  $}

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

  ${
    pm2.24d.1 $e |- ( ph -> ps ) $.
    $( Deduction version of ~ pm2.24 .  (Contributed by NM, 30-Jan-2006.)
       (Revised by Mario Carneiro, 31-Jan-2015.) $)
    pm2.24d $p |- ( ph -> ( -. ps -> ch ) ) $=
      ( wn wi pm2.24 syl ) ABBECFDBCGH $.
  $}

  ${
    pm2.24i.1 $e |- ph $.
    $( Inference version of ~ pm2.24 .  (Contributed by NM, 20-Aug-2001.)
       (Revised by Mario Carneiro, 31-Jan-2015.) $)
    pm2.24i $p |- ( -. ph -> ps ) $=
      ( wn pm2.21 mpi ) ADABCABEF $.
  $}

  ${
    con2d.1 $e |- ( ph -> ( ps -> -. ch ) ) $.
    $( A contraposition deduction.  (Contributed by NM, 19-Aug-1993.)  (Revised
       by NM, 12-Feb-2013.) $)
    con2d $p |- ( ph -> ( ch -> -. ps ) ) $=
      ( wn wi ax-in2 syl6 com23 pm2.01 ) ACBBEZFKABCKABCECKFDCKGHIBJH $.
  $}

  ${
    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 $.
  $}

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

  ${
    con2i.a $e |- ( ph -> -. ps ) $.
    $( A contraposition inference.  (Contributed by NM, 5-Aug-1993.)  (Proof
       shortened by 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.  Theorem *2.12 of [WhiteheadRussell] p. 101.
     This one holds for all propositions, but its converse only holds for
     decidable propositions (see ~ notnotrdc ).  (Contributed by NM,
     28-Dec-1992.)  (Proof shortened by Wolf Lammen, 2-Mar-2013.) $)
  notnot $p |- ( ph -> -. -. ph ) $=
    ( wn id con2i ) ABZAECD $.

  ${
    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 $.
  $}

  ${
    con3d.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( A contraposition deduction.  (Contributed by NM, 5-Aug-1993.)  (Revised
       by NM, 31-Jan-2015.) $)
    con3d $p |- ( ph -> ( -. ch -> -. ps ) ) $=
      ( wn notnot syl6 con2d ) ABCEZABCIEDCFGH $.
  $}

  ${
    con3i.a $e |- ( ph -> ps ) $.
    $( A contraposition inference.  (Contributed by NM, 5-Aug-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 $.
  $}

  ${
    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 $.
  $}

  $( In classical logic, this is just a restatement of ~ pm3.2 .  In
     intuitionistic logic, it still holds, but is weaker than pm3.2.
     (Contributed by Mario Carneiro, 12-May-2015.) $)
  pm3.2im $p |- ( ph -> ( ps -> -. ( ph -> -. ps ) ) ) $=
    ( wn wi pm2.27 con2d ) AABCZDBAGEF $.

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

  ${
    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 wi nsyl3 pm2.01 ax-mp ) AAEZFJABADCGAHI $.
  $}

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

  $( Theorem used to justify definition of intuitionistic biconditional
     ~ df-bi .  (Contributed by NM, 24-Nov-2017.) $)
  biijust $p  |- ( ( ( ( ph -> ps ) /\ ( ps -> ph ) )
        -> ( ( ph -> ps ) /\ ( ps -> ph ) ) )
    /\ ( ( ( ph -> ps ) /\ ( ps -> ph ) )
           -> ( ( ph -> ps ) /\ ( ps -> ph ) ) ) ) $=
    ( wi wa id pm3.2i ) ABCBACDZGCZHGEZIF $.

  $( Contraposition.  Theorem *2.16 of [WhiteheadRussell] p. 103.  (Contributed
     by NM, 5-Aug-1993.)  (Proof shortened by Wolf Lammen, 13-Feb-2013.) $)
  con3 $p |- ( ( ph -> ps ) -> ( -. ps -> -. ph ) ) $=
    ( wi id con3d ) ABCZABFDE $.

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

  ${
    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 $.
  $}

  ${
    negbi.1 $e |- ph $.
    $( Infer double negation.  (Contributed by NM, 27-Feb-2008.) $)
    notnoti $p |- -. -. ph $=
      ( wn notnot ax-mp ) AACCBADE $.
  $}

  ${
    pm2.21i.1 $e |- -. ph $.
    $( A contradiction implies anything.  Inference from ~ pm2.21 .
       (Contributed by NM, 16-Sep-1993.)  (Revised by Mario Carneiro,
       31-Jan-2015.) $)
    pm2.21i $p |- ( ph -> ps ) $=
      ( wn wi pm2.21 ax-mp ) ADABECABFG $.
  $}

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

  ${
    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 $.
  $}

  $( 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 ) $.
    $( Inference joining the consequents of two premises.  (Contributed by NM,
       5-Aug-1993.) $)
    jc $p |- ( ph -> -. ( ps -> -. ch ) ) $=
      ( wn wi pm3.2im sylc ) ABCBCFGFDEBCHI $.
  $}

  $( 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.52 of [WhiteheadRussell] p. 107.  (Contributed by NM,
     3-Jan-2005.)  (Revised by Mario Carneiro, 31-Jan-2015.) $)
  pm2.52 $p |- ( -. ( ph -> ps ) -> ( -. ph -> -. ps ) ) $=
    ( wn wi pm2.21 pm2.24d com12 ) ACZABDZCBCZHIJABEFG $.

  $( Exportation theorem expressed with primitive connectives.  (Contributed by
     NM, 5-Aug-1993.) $)
  expt $p |- ( ( -. ( ph -> -. ps ) -> ch ) -> ( ph -> ( ps -> ch ) ) ) $=
    ( wn wi pm3.2im imim1d com12 ) AABDEDZCEBCEABICABFGH $.

  $( Elimination of a nested antecedent.  (Contributed by Wolf Lammen,
     10-May-2013.) $)
  jarl $p |- ( ( ( ph -> ps ) -> ch ) -> ( -. ph -> ch ) ) $=
    ( wn wi pm2.21 imim1i ) ADABECABFG $.

  $( Theorem *2.65 of [WhiteheadRussell] p. 107.  Proof by contradiction.
     Proofs, such as this one, which assume a proposition, here ` ph ` , derive
     a contradiction, and therefore conclude ` -. ph ` , are valid
     intuitionistically (and can be called "proof of negation", for example by
     Section 1.2 of [Bauer] p. 482).  By contrast, proofs which assume
     ` -. ph ` , derive a contradiction, and conclude ` ph ` , such as
     ~ condandc , are only valid for decidable propositions.  (Contributed by
     NM, 5-Aug-1993.)  (Proof shortened by Wolf Lammen, 8-Mar-2013.) $)
  pm2.65 $p |- ( ( ph -> ps ) -> ( ( ph -> -. ps ) -> -. ph ) ) $=
    ( wi wn pm2.27 con2d a2i ) ABCAABDZCZABIDAIBAHEFGF $.

  ${
    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 $.
  $}

  ${
    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 $.
  $}

  ${
    mto.1 $e |- -. ps $.
    mto.2 $e |- ( ph -> ps ) $.
    $( The rule of modus tollens.  (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 $.
  $}

  ${
    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 $.
  $}

  ${
    notbid.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Deduction negating both sides of a logical equivalence.  (Contributed by
       NM, 21-May-1994.)  (Revised by Mario Carneiro, 31-Jan-2015.) $)
    notbid $p |- ( ph -> ( -. ps <-> -. ch ) ) $=
      ( wn biimprd con3d biimpd impbid ) ABECEACBABCDFGABCABCDHGI $.
  $}

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

  ${
    notbii.1 $e |- ( ph <-> ps ) $.
    $( Negate both sides of a logical equivalence.  (Contributed by NM,
       5-Aug-1993.)  (Revised by Mario Carneiro, 31-Jan-2015.) $)
    notbii $p |- ( -. ph <-> -. ps ) $=
      ( wb wn id notbid ax-mp ) ABDZAEBEDCIABIFGH $.
  $}

  ${
    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 an 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 $.
  $}

  ${
    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.)  (Revised by
     Mario Carneiro, 31-Jan-2015.) $)
  mtt $p |- ( -. ph -> ( -. ps <-> ( ps -> ph ) ) ) $=
    ( wn wi pm2.21 con3 com12 impbid2 ) ACZBCZBADZBAEKIJBAFGH $.

  $( Two propositions are equivalent if they are both false.  Theorem *5.21 of
     [WhiteheadRussell] p. 124.  (Contributed by NM, 21-May-1994.)  (Revised by
     Mario Carneiro, 31-Jan-2015.) $)
  pm5.21 $p |- ( ( -. ph /\ -. ps ) -> ( ph <-> ps ) ) $=
    ( wn wa simpl pm2.21d simpr impbid ) ACZBCZDZABKABIJEFKBAIJGFH $.

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

  $( The negation of a wff is equivalent to the wff's equivalence to falsehood.
     (Contributed by Juha Arpiainen, 19-Jan-2006.)  (Revised by Mario Carneiro,
     31-Jan-2015.) $)
  nbn2 $p |- ( -. ph -> ( -. ps <-> ( ph <-> ps ) ) ) $=
    ( wn wb pm5.21im wi bi2 mtt syl5ibr impbid ) ACZBCZABDZABEMLKBAFABGABHIJ $.

  $( 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, 5-Aug-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 $.
  $}

  ${
    2false.1 $e |- -. ph $.
    2false.2 $e |- -. ps $.
    $( Two falsehoods are equivalent.  (Contributed by NM, 4-Apr-2005.)
       (Revised by Mario Carneiro, 31-Jan-2015.) $)
    2false $p |- ( ph <-> ps ) $=
      ( pm2.21i impbii ) ABABCEBADEF $.
  $}

  ${
    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.)  (Revised by Mario Carneiro,
       31-Jan-2015.) $)
    pm5.21nii $p |- ( ph <-> ch ) $=
      ( wb syl ibi ibir impbii ) ACACABACGZDFHICACBLEFHJK $.
  $}

  ${
    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.)
       (Revised by Mario Carneiro, 31-Jan-2015.) $)
    pm5.21ndd $p |- ( ph -> ( ch <-> th ) ) $=
      ( wb syld ibd bicom1 syl6 impbid ) ACDACDACBCDHZEGIJADCADNDCHADBNFGICDKLJ
      M $.
  $}

  $( Theorem *5.19 of [WhiteheadRussell] p. 124.  (Contributed by NM,
     3-Jan-2005.)  (Revised by Mario Carneiro, 31-Jan-2015.) $)
  pm5.19 $p |- -. ( ph <-> -. ph ) $=
    ( wn wb bi1 pm2.01d id mpbird pm2.65i ) AABZCZAJAIJAAIDEZJFGKH $.

  $( Theorem *4.8 of [WhiteheadRussell] p. 122.  This one holds for all
     propositions, but compare with ~ pm4.81dc which requires a decidability
     condition.  (Contributed by NM, 3-Jan-2005.) $)
  pm4.8 $p |- ( ( ph -> -. ph ) <-> -. ph ) $=
    ( wn wi pm2.01 ax-1 impbii ) AABZCGADGAEF $.

  $( Express implication in terms of conjunction.  (Contributed by NM,
     9-Apr-1994.)  (Revised by Mario Carneiro, 1-Feb-2015.) $)
  imnan $p |- ( ( ph -> -. ps ) <-> -. ( ph /\ ps ) ) $=
    ( wn wi wa pm3.2im imp con2i pm3.2 con3rr3 impbii ) ABCDZABEZCMLABLCABFGHAB
    MABIJK $.

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

  $( 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 $.

  $( Law of noncontradiction.  Theorem *3.24 of [WhiteheadRussell] p. 111 (who
     call it the "law of contradiction").  (Contributed by NM, 16-Sep-1993.)
     (Revised by Mario Carneiro, 2-Feb-2015.) $)
  pm3.24 $p |- -. ( ph /\ -. ph ) $=
    ( wn wi wa notnot imnan mpbi ) AABZBCAHDBAEAHFG $.

  $( Triple negation.  (Contributed by Jim Kingdon, 28-Jul-2018.) $)
  notnotnot $p |- ( -. -. -. ph <-> -. ph ) $=
    ( wn notnot con3i impbii ) ABZBZBFAGACDFCE $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Logical disjunction
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Declare the connective for disjunction ('or'). $)
  $c \/ $. $( Vee (read:  'or') $)

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

  $( Definition of 'or'.  One of the axioms of propositional logic.
     (Contributed by Mario Carneiro, 31-Jan-2015.)  Use its alias ~ jaob
     instead.  (New usage is discouraged.) $)
  ax-io $a |-
             ( ( ( ph \/ ch ) -> ps ) <-> ( ( ph -> ps ) /\ ( ch -> ps ) ) ) $.

  $( Disjunction of antecedents.  Compare Theorem *4.77 of [WhiteheadRussell]
     p. 121.  Alias of ~ ax-io .  (Contributed by NM, 30-May-1994.)  (Revised
     by Mario Carneiro, 31-Jan-2015.) $)
  jaob $p |- ( ( ( ph \/ ch ) -> ps ) <-> ( ( ph -> ps ) /\ ( ch -> ps ) ) ) $=
    ( ax-io ) ABCD $.

  $( Introduction of a disjunct.  Axiom *1.3 of [WhiteheadRussell] p. 96.
     (Contributed by NM, 30-Aug-1993.)  (Revised by NM, 31-Jan-2015.) $)
  olc $p |- ( ph -> ( ps \/ ph ) ) $=
    ( wo wi wa id jaob mpbi simpri ) BBACZDZAJDZJJDKLEJFBJAGHI $.

  $( Introduction of a disjunct.  Theorem *2.2 of [WhiteheadRussell] p. 104.
     (Contributed by NM, 30-Aug-1993.)  (Revised by NM, 31-Jan-2015.) $)
  orc $p |- ( ph -> ( ph \/ ps ) ) $=
    ( wo wi wa id jaob mpbi simpli ) AABCZDZBJDZJJDKLEJFAJBGHI $.

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

  $( 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 ) ) $=
    ( wo wi wa jaob biimpri ) BCDAEBAECAEFBACGH $.

  ${
    jaoi.1 $e |- ( ph -> ps ) $.
    jaoi.2 $e |- ( ch -> ps ) $.
    $( Inference disjoining the antecedents of two implications.  (Contributed
       by NM, 5-Apr-1994.)  (Revised by NM, 31-Jan-2015.) $)
    jaoi $p |- ( ( ph \/ ch ) -> ps ) $=
      ( wi wo pm3.44 mp2an ) ABFCBFACGBFDEBACHI $.
  $}

  ${
    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.)  (Revised by NM, 4-Apr-2013.) $)
    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 $.
  $}

  ${
    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 *2.53 of [WhiteheadRussell] p. 107.  This holds
     intuitionistically, although its converse does not (see ~ pm2.54dc ).
     (Contributed by NM, 3-Jan-2005.)  (Revised by NM, 31-Jan-2015.) $)
  pm2.53 $p |- ( ( ph \/ ps ) -> ( -. ph -> ps ) ) $=
    ( wn wi pm2.24 ax-1 jaoi ) AACZBDBABEBHFG $.

  ${
    ori.1 $e |- ( ph \/ ps ) $.
    $( Infer implication from disjunction.  (Contributed by NM, 11-Jun-1994.)
       (Revised by Mario Carneiro, 31-Jan-2015.) $)
    ori $p |- ( -. ph -> ps ) $=
      ( wo wn wi pm2.53 ax-mp ) ABDAEBFCABGH $.
  $}

  ${
    ord.1 $e |- ( ph -> ( ps \/ ch ) ) $.
    $( Deduce implication from disjunction.  (Contributed by NM, 18-May-1994.)
       (Revised by Mario Carneiro, 31-Jan-2015.) $)
    ord $p |- ( ph -> ( -. ps -> ch ) ) $=
      ( wo wn wi pm2.53 syl ) ABCEBFCGDBCHI $.
  $}

  $( 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 $.

  $( Axiom *1.4 of [WhiteheadRussell] p. 96.  (Contributed by NM, 3-Jan-2005.)
     (Revised by NM, 15-Nov-2012.) $)
  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, 5-Aug-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.)
       (Revised by Mario Carneiro, 31-Jan-2015.) $)
    orci $p |- ( ph \/ ps ) $=
      ( wo orc ax-mp ) AABDCABEF $.

    $( Deduction introducing a disjunct.  (Contributed by NM, 19-Jan-2008.)
       (Revised by Mario Carneiro, 31-Jan-2015.) $)
    olci $p |- ( ps \/ ph ) $=
      ( wo olc ax-mp ) ABADCABEF $.
  $}

  ${
    orcd.1 $e |- ( ph -> ps ) $.
    $( Deduction introducing a disjunct.  (Contributed by NM, 20-Sep-2007.) $)
    orcd $p |- ( ph -> ( ps \/ ch ) ) $=
      ( wo orc syl ) ABBCEDBCFG $.

    $( Deduction introducing a disjunct.  (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 $.

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

  $( 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.) $)
    biorfi $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.)  (Revised by NM, 13-Dec-2013.) $)
  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 $.

  ${
    imorri.1 $e |- ( -. ph \/ ps ) $.
    $( Infer implication from disjunction.  (Contributed by Jonathan Ben-Naim,
       3-Jun-2011.)  (Revised by Mario Carneiro, 31-Jan-2015.) $)
    imorri $p |- ( ph -> ps ) $=
      ( wn wo wi pm2.21 ax-1 jaoi ax-mp ) ADZBEABFZCKLBABGBAHIJ $.
  $}

  $( Negated disjunction in terms of conjunction.  This version of DeMorgan's
     law is a biconditional for all propositions (not just decidable ones),
     unlike ~ oranim , ~ anordc , or ~ ianordc .  Compare Theorem *4.56 of
     [WhiteheadRussell] p. 120.  (Contributed by NM, 5-Aug-1993.)  (Revised by
     Mario Carneiro, 31-Jan-2015.) $)
  ioran $p |- ( -. ( ph \/ ps ) <-> ( -. ph /\ -. ps ) ) $=
    ( wo wn wa pm2.45 pm2.46 jca simpl con2i simpr jaoi impbii ) ABCZDZADZBDZEZ
    OPQABFABGHNRARDBRAPQIJRBPQKJLJM $.

  $( Theorem *3.14 of [WhiteheadRussell] p. 111.  One direction of De Morgan's
     law).  The biconditional holds for decidable propositions as seen at
     ~ ianordc .  The converse holds for decidable propositions, as seen at
     ~ pm3.13dc .  (Contributed by NM, 3-Jan-2005.)  (Revised by Mario
     Carneiro, 31-Jan-2015.) $)
  pm3.14 $p |- ( ( -. ph \/ -. ps ) -> -. ( ph /\ ps ) ) $=
    ( wn wa simpl con3i simpr jaoi ) ACABDZCBCIAABEFIBABGFH $.

  $( Theorem *3.1 of [WhiteheadRussell] p. 111.  The converse holds for
     decidable propositions, as seen at ~ anordc .  (Contributed by NM,
     3-Jan-2005.)  (Revised by Mario Carneiro, 31-Jan-2015.) $)
  pm3.1 $p |- ( ( ph /\ ps ) -> -. ( -. ph \/ -. ps ) ) $=
    ( wn wo wa pm3.14 con2i ) ACBCDABEABFG $.

  $( 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 (Taut) of [WhiteheadRussell] p. 96.  (Contributed by NM,
     3-Jan-2005.)  (Revised by NM, 10-Mar-2013.) $)
  pm1.2 $p |- ( ( ph \/ ph ) -> ph ) $=
    ( id jaoi ) AAAABZDC $.

  $( Idempotent law for disjunction.  Theorem *4.25 of [WhiteheadRussell]
     p. 117.  (Contributed by NM, 5-Aug-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, 5-Aug-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, 5-Aug-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,
       5-Aug-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 $.

  $( 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 $.

  $( 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 $.

  ${
    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.)  (Revised by Mario Carneiro, 31-Jan-2015.) $)
    mtord $p |- ( ph -> -. ps ) $=
      ( wo wn pm2.21d jaod syld pm2.01d ) ABABCDHBIZGACNDACNEJADNFJKLM $.
  $}

  $( 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 $.

  $( Theorem *3.48 of [WhiteheadRussell] p. 114.  (Contributed by NM,
     28-Jan-1997.)  (Revised by NM, 1-Dec-2012.) $)
  pm3.48 $p |- ( ( ( ph -> ps ) /\ ( ch -> th ) ) ->
               ( ( ph \/ ch ) -> ( ps \/ th ) ) ) $=
    ( wi wo orc imim2i olc jaao ) ABEABDFZCDECBKABDGHDKCDBIHJ $.

  ${
    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 $.

  ${
    orbid.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Deduction adding a left disjunct to both sides of a logical equivalence.
       (Contributed by NM, 5-Aug-1993.)  (Revised by Mario Carneiro,
       31-Jan-2015.) $)
    orbi2d $p |- ( ph -> ( ( th \/ ps ) <-> ( th \/ ch ) ) ) $=
      ( wo biimpd orim2d biimprd impbid ) ADBFDCFABCDABCEGHACBDABCEIHJ $.

    $( Deduction adding a right disjunct to both sides of a logical
       equivalence.  (Contributed by NM, 5-Aug-1993.) $)
    orbi1d $p |- ( ph -> ( ( ps \/ th ) <-> ( ch \/ th ) ) ) $=
      ( wo orbi2d orcom 3bitr4g ) ADBFDCFBDFCDFABCDEGBDHCDHI $.
  $}

  $( 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 $.

  ${
    orbi12d.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    orbi12d.2 $e |- ( ph -> ( th <-> ta ) ) $.
    $( Deduction joining two equivalences to form equivalence of disjunctions.
       (Contributed by NM, 5-Aug-1993.) $)
    orbi12d $p |- ( ph -> ( ( ps \/ th ) <-> ( ch \/ ta ) ) ) $=
      ( wo orbi1d orbi2d bitrd ) ABDHCDHCEHABCDFIADECGJK $.
  $}

  $( 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 $.

  ${
    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).  (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 wi ax-1 orel2 jaoi com12 ) ABCZDABDZAAKAEJAKFBAGHI $.

  $( 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 $.

  $( 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 Mario Carneiro, 31-Jan-2015.) $)
  pm2.74 $p |- ( ( ps -> ph ) -> ( ( ( ph \/ ps ) \/ ch ) ->
                ( ph \/ ch ) ) ) $=
    ( wi wo idd id jaod orim1d ) BADZABEACJAABJAFJGHI $.

  $( Theorem *2.76 of [WhiteheadRussell] p. 108.  (Contributed by NM,
     3-Jan-2005.)  (Revised by Mario Carneiro, 31-Jan-2015.) $)
  pm2.76 $p |- ( ( ph \/ ( ps -> ch ) ) ->
                ( ( ph \/ ps ) -> ( ph \/ ch ) ) ) $=
    ( wo wi orc a1d orim2 jaoi ) AABDZACDZEBCEAKJACFGABCHI $.

  $( 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 Mario Carneiro, 31-Jan-2015.) $)
  pm2.8 $p |- ( ( ph \/ ps ) -> ( ( -. ps \/ ch ) -> ( ph \/ ch ) ) ) $=
    ( wo wn pm1.4 ord orim1d ) ABDZBEACIBAABFGH $.

  $( 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 wi ax-1 pm2.24 orim2d jaoi orim1d ) ABEZCEACFZEZMDMOMGCMOHCNBACBIJK
    L $.

  ${
    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, 5-Aug-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 $.

  $( Distributive law for disjunction.  Theorem *4.41 of [WhiteheadRussell]
     p. 119.  (Contributed by NM, 5-Aug-1993.)  (Revised by Mario Carneiro,
     31-Jan-2015.) $)
  ordi $p |- ( ( ph \/ ( ps /\ ch ) ) <-> ( ( ph \/ ps ) /\ ( ph \/ ch ) ) ) $=
    ( wa wo simpl orim2i simpr jca orc adantl adantr olc jaoian jaodan impbii )
    ABCDZEZABEZACEZDRSTQBABCFGQCABCHGISARCARSAQJZKACRBARCUALQAMNOP $.

  $( 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 $.

  $( Distributive law for conjunction.  Theorem *4.4 of [WhiteheadRussell]
     p. 118.  (Contributed by NM, 5-Aug-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 $.

  $( 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 bi2 syl5 impbii ) ABCZBABDZEZMBNBAFABGHA
    NOBABIBNJKL $.

  $( Theorem *5.16 of [WhiteheadRussell] p. 124.  (Contributed by NM,
     3-Jan-2005.)  (Revised by Mario Carneiro, 31-Jan-2015.) $)
  pm5.16 $p |- -. ( ( ph <-> ps ) /\ ( ph <-> -. ps ) ) $=
    ( wb wn wa pm5.19 simpl simpr bitr3d mto ) ABCZABDZCZEZBLCBFNABLKMGKMHIJ $.

  $( A wff is disjoined with truth is true.  (Contributed by NM,
     23-May-1999.) $)
  biort $p |- ( ph -> ( ph <-> ( ph \/ ps ) ) ) $=
    ( wo orc ax-1 impbid2 ) AAABCZABDAGEF $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Stable propositions
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)
  $( Declare connective for stability. $)
  $c STAB $.

  $( Extend wff definition to include stability. $)
  wstab $a wff STAB ph $.

  $( Propositions where a double-negative can be removed are called stable.
     See Chapter 2 [Moschovakis] p. 2.

     Our notation for stability is a connective ` STAB ` which we place before
     the formula in question.  For example, ` STAB x = y ` corresponds to "x =
     y is stable".

     (Contributed by David A. Wheeler, 13-Aug-2018.) $)
  df-stab $a |- ( STAB ph <-> ( -. -. ph -> ph ) ) $.

  $( Every formula of the form ` -. ph ` is stable.  Uses ~ notnotnot .
     (Contributed by David A. Wheeler, 13-Aug-2018.) $)
  stabnot $p |- STAB -. ph $=
    ( wn wstab wi notnotnot biimpi df-stab mpbir ) ABZCIBBZIDJIAEFIGH $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Decidable propositions
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)
  $( Declare connective for decidability. $)
  $c DECID $.

  $( Extend wff definition to include decidability. $)
  wdc $a wff DECID ph $.

  $( Propositions which are known to be true or false are called decidable.
     The (classical) Law of the Excluded Middle corresponds to the principle
     that all propositions are decidable, but even given intuitionistic logic,
     particular kinds of propositions may be decidable (for example, the
     proposition that two natural numbers are equal will be decidable under
     most sets of axioms).

     Our notation for decidability is a connective ` DECID ` which we place
     before the formula in question.  For example, ` DECID x = y ` corresponds
     to "x = y is decidable".

     We could transform intuitionistic logic to classical logic by adding
     unconditional forms of ~ condc , ~ exmiddc , ~ peircedc , or ~ notnotrdc ,
     any of which would correspond to the assertion that all propositions are
     decidable.

     (Contributed by Jim Kingdon, 11-Mar-2018.) $)
  df-dc $a |- ( DECID ph <-> ( ph \/ -. ph ) ) $.

  $( Law of excluded middle, for a decidable proposition.  The law of the
     excluded middle is 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.  The key
     way in which intuitionistic logic differs from classical logic is that
     intuitionistic logic says that excluded middle only holds for some
     propositions, and classical logic says that it holds for all propositions.
     (Contributed by Jim Kingdon, 12-May-2018.) $)
  exmiddc $p |- ( DECID ph -> ( ph \/ -. ph ) ) $=
    ( wdc wn wo df-dc biimpi ) ABAACDAEF $.

  $( Commuted law of the excluded middle for a decidable proposition.  Based on
     theorem *2.1 of [WhiteheadRussell] p. 101.  (Contributed by Jim Kingdon,
     25-Mar-2018.) $)
  pm2.1dc $p |- ( DECID ph -> ( -. ph \/ ph ) ) $=
    ( wdc wn wo df-dc orcom bitri biimpi ) ABZACZADZIAJDKAEAJFGH $.

  $( A decidable proposition is decidable when negated.  (Contributed by Jim
     Kingdon, 25-Mar-2018.) $)
  dcn $p |- ( DECID ph -> DECID -. ph ) $=
    ( wn wo wdc notnot orim2i orcoms df-dc 3imtr4i ) AABZCJJBZCZADJDJALAKJAEFGA
    HJHI $.

  ${
    dcbii.1 $e |- ( ph <-> ps ) $.
    $( The equivalent of a decidable proposition is decidable.  (Contributed by
       Jim Kingdon, 28-Mar-2018.) $)
    dcbii $p |- ( DECID ph <-> DECID ps ) $=
      ( wn wo wdc notbii orbi12i df-dc 3bitr4i ) AADZEBBDZEAFBFABKLCABCGHAIBIJ
      $.
  $}

  ${
    dcbid.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( The equivalent of a decidable proposition is decidable.  (Contributed by
       Jim Kingdon, 7-Sep-2019.) $)
    dcbid $p |- ( ph -> ( DECID ps <-> DECID ch ) ) $=
      ( wn wo wdc notbid orbi12d df-dc 3bitr4g ) ABBEZFCCEZFBGCGABCLMDABCDHIBJC
      JK $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Theorems of decidable propositions
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

   Many theorems of logic hold in intuitionistic logic just as they do in
   classical (non-inuitionistic) logic, for all propositions. Other theorems
   only hold for decidable propositions, such as the law of the excluded
   middle ( ~ df-dc ), double negation elimination ( ~ notnotrdc ), or
   contraposition ( ~ condc ). Our goal is to prove all well-known
   or important classical theorems, but with suitable decidability
   conditions so that the proofs follow from intuitionistic axioms.
   This section is focused on such proofs, given decidability conditions.
$)

  $( Contraposition of a decidable proposition.

     This theorem 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 theorem (without the
     decidability condition, of course) is called _Transp_ or "the principle of
     transposition" in _Principia Mathematica_ (Theorem *2.17 of
     [WhiteheadRussell] p. 103) and is Axiom A3 of [Margaris] p. 49.  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 Jim Kingdon, 13-Mar-2018.) $)
  condc $p |- ( DECID ph -> ( ( -. ph -> -. ps ) -> ( ps -> ph ) ) ) $=
    ( wdc wn wo wi df-dc ax-1 a1d pm2.27 ax-in2 syl6 jaoi sylbi ) ACAADZEOBDZFZ
    BAFZFZAGASOARQABHIOQPROPJBAKLMN $.

  $( Proof by contradiction for a decidable proposition.  Based on Theorem
     *2.18 of [WhiteheadRussell] p. 103 (also called the Law of Clavius).
     Intuitionistically it requires a decidability assumption, but compare with
     ~ pm2.01 which does not.  (Contributed by Jim Kingdon, 24-Mar-2018.) $)
  pm2.18dc $p |- ( DECID ph -> ( ( -. ph -> ph ) -> ph ) ) $=
    ( wdc wn wi pm2.21 a2i condc syl5 pm2.43d ) ABZACZADZALKLCZDJLADKAMAMEFALGH
    I $.

  $( Double negation elimination for a decidable proposition.  The converse,
     ~ notnot , holds for all propositions, not just decidable ones.  This is
     Theorem *2.14 of [WhiteheadRussell] p. 102, but with a decidability
     condition added.  (Contributed by Jim Kingdon, 11-Mar-2018.) $)
  notnotrdc $p |- ( DECID ph -> ( -. -. ph -> ph ) ) $=
    ( wdc wn wo wi df-dc orcom bitri pm2.53 sylbi ) ABZACZADZLCAEKALDMAFALGHLAI
    J $.

  $( Decidability implies stability.  The converse is not necessarily true.
     (Contributed by David A. Wheeler, 13-Aug-2018.) $)
  dcimpstab $p |- ( DECID ph -> STAB ph ) $=
    ( wdc wn wi wstab notnotrdc df-stab sylibr ) ABACCADAEAFAGH $.

  $( Contraposition for a decidable proposition.  Based on theorem *2.15 of
     [WhiteheadRussell] p. 102.  (Contributed by Jim Kingdon, 29-Mar-2018.) $)
  con1dc $p |- ( DECID ph -> ( ( -. ph -> ps ) -> ( -. ps -> ph ) ) ) $=
    ( wn wi wdc notnot imim2i condc syl5 ) ACZBDJBCZCZDAEKADBLJBFGAKHI $.

  ${
    con4biddc.1 $e |- ( ph -> ( DECID ps -> ( DECID ch ->
        ( -. ps <-> -. ch ) ) ) ) $.
    $( A contraposition deduction.  (Contributed by Jim Kingdon,
       18-May-2018.) $)
    con4biddc $p |- ( ph -> ( DECID ps -> ( DECID ch -> ( ps <-> ch ) ) ) ) $=
      ( wdc wb wa wi wn bi2 syl8 condc a2i imp31 bi1 imim2d sylcom impbid exp31
      syl6 ) ABEZCEZBCFAUAGUBGBCAUAUBBCHZAUAUBCIZBIZHZHUBUCHAUAUBUEUDFZUFDUEUDJ
      KUBUFUCCBLMTNAUAUBCBHZAUAUBUEUDHZHUBUHHAUAUBUGUIDUEUDOKUAUIUHUBBCLPQNRS
      $.
  $}

  ${
    impidc.1 $e |- ( DECID ch -> ( ph -> ( ps -> ch ) ) ) $.
    $( An importation inference for a decidable consequent.  (Contributed by
       Jim Kingdon, 30-Apr-2018.) $)
    impidc $p |- ( DECID ch -> ( -. ( ph -> -. ps ) -> ch ) ) $=
      ( wdc wn wi wa imp con3d ex com23 con1dc mpd ) CEZCFZABFZGZGRFCGOAPQOAPQG
      OAHBCOABCGDIJKLCRMN $.
  $}

  $( Simplification given a decidable proposition.  Similar to Theorem *3.27
     (Simp) of [WhiteheadRussell] p. 112.  (Contributed by Jim Kingdon,
     30-Apr-2018.) $)
  simprimdc $p |- ( DECID ps -> ( -. ( ph -> -. ps ) -> ps ) ) $=
    ( wi wdc idd a1i impidc ) ABBABBCCBDABEFG $.

  $( Simplification for a decidable proposition.  Similar to Theorem *3.26
     (Simp) of [WhiteheadRussell] p. 112.  (Contributed by Jim Kingdon,
     29-Mar-2018.) $)
  simplimdc $p |- ( DECID ph -> ( -. ( ph -> ps ) -> ph ) ) $=
    ( wdc wn wi pm2.21 con1dc mpi ) ACADABEZEIDAEABFAIGH $.

  ${
    pm2.61ddc.1 $e |- ( ph -> ( ps -> ch ) ) $.
    pm2.61ddc.2 $e |- ( ph -> ( -. ps -> ch ) ) $.
    $( Deduction eliminating a decidable antecedent.  (Contributed by Jim
       Kingdon, 4-May-2018.) $)
    pm2.61ddc $p |- ( DECID ps -> ( ph -> ch ) ) $=
      ( wdc wn wo wi df-dc com12 jaoi sylbi ) BFBBGZHACIZBJBONABCDKANCEKLM $.
  $}

  $( Case elimination for a decidable proposition.  Based on theorem *2.6 of
     [WhiteheadRussell] p. 107.  (Contributed by Jim Kingdon, 25-Mar-2018.) $)
  pm2.6dc $p |- ( DECID ph ->
      ( ( -. ph -> ps ) -> ( ( ph -> ps ) -> ps ) ) ) $=
    ( wdc wn wi wo wa pm2.1dc pm3.44 syl5com expd ) ACZADZBEZABEZBLMAFNOGBAHBMA
    IJK $.

  ${
    jadc.1 $e |- ( DECID ph -> ( -. ph -> ch ) ) $.
    jadc.2 $e |- ( ps -> ch ) $.
    $( Inference forming an implication from the antecedents of two premises,
       where a decidable antecedent is negated.  (Contributed by Jim Kingdon,
       25-Mar-2018.) $)
    jadc $p |- ( DECID ph -> ( ( ph -> ps ) -> ch ) ) $=
      ( wi wdc imim2i wn pm2.6dc mpd syl5 ) ABFACFZAGZCBCAEHNAICFMCFDACJKL $.
  $}

  ${
    jaddc.1 $e |- ( ph -> ( DECID ps -> ( -. ps -> th ) ) ) $.
    jaddc.2 $e |- ( ph -> ( ch -> th ) ) $.
    $( Deduction forming an implication from the antecedents of two premises,
       where a decidable antecedent is negated.  (Contributed by Jim Kingdon,
       26-Mar-2018.) $)
    jaddc $p |- ( ph -> ( DECID ps -> ( ( ps -> ch ) -> th ) ) ) $=
      ( wi wdc imim2d wn pm2.6dc sylcom syl5d ) ABCGBDGZBHZDACDBFIAOBJDGNDGEBDK
      LM $.
  $}

  $( Case elimination for a decidable proposition.  Based on theorem *2.61 of
     [WhiteheadRussell] p. 107.  (Contributed by Jim Kingdon, 29-Mar-2018.) $)
  pm2.61dc $p |- ( DECID ph ->
                   ( ( ph -> ps ) -> ( ( -. ph -> ps ) -> ps ) ) ) $=
    ( wdc wn wi pm2.6dc com23 ) ACADBEABEBABFG $.

  $( Negating an implication for a decidable antecedent.  Based on theorem *2.5
     of [WhiteheadRussell] p. 107.  (Contributed by Jim Kingdon,
     29-Mar-2018.) $)
  pm2.5dc $p |- ( DECID ph -> ( -. ( ph -> ps ) -> ( -. ph -> ps ) ) ) $=
    ( wdc wi wn wa simplimdc imp pm2.24d ex ) ACZABDEZAEBDKLFABKLAABGHIJ $.

  $( Theorem *2.521 of [WhiteheadRussell] p. 107, but with an additional
     decidability condition.  (Contributed by Jim Kingdon, 5-May-2018.) $)
  pm2.521dc $p |- ( DECID ph -> ( -. ( ph -> ps ) -> ( ps -> ph ) ) ) $=
    ( wi wn wdc pm2.52 condc syl5 ) ABCDADBDCAEBACABFABGH $.

  $( Contraposition.  Theorem *4.1 of [WhiteheadRussell] p. 116, but for a
     decidable proposition.  (Contributed by Jim Kingdon, 24-Apr-2018.) $)
  con34bdc $p |- ( DECID ps -> ( ( ph -> ps ) <-> ( -. ps -> -. ph ) ) ) $=
    ( wdc wi wn con3 condc impbid2 ) BCABDBEAEDABFBAGH $.

  $( Double negation equivalence for a decidable proposition.  Like Theorem
     *4.13 of [WhiteheadRussell] p. 117, but with a decidability antecendent.
     The forward direction, ~ notnot , holds for all propositions, not just
     decidable ones.  (Contributed by Jim Kingdon, 13-Mar-2018.) $)
  notnotbdc $p |- ( DECID ph -> ( ph <-> -. -. ph ) ) $=
    ( wdc wn notnot notnotrdc impbid2 ) ABAACCADAEF $.

  $( Contraposition.  (Contributed by Jim Kingdon, 4-Apr-2018.) $)
  con1biimdc $p |- ( DECID ph -> ( ( -. ph <-> ps ) -> ( -. ps <-> ph ) ) ) $=
    ( wdc wn wb wi bi1 con1dc syl5 bi2 con2d a1i impbidd ) ACZADZBEZBDZAPOBFNQA
    FOBGABHIPAQFFNPBAOBJKLM $.

  $( Contraposition.  (Contributed by Jim Kingdon, 17-Apr-2018.) $)
  con1bidc $p |- ( DECID ph -> ( DECID ps ->
      ( ( -. ph <-> ps ) <-> ( -. ps <-> ph ) ) ) ) $=
    ( wdc wn wb wa wi con1biimdc adantr adantl impbid ex ) ACZBCZADBEZBDAEZEMNF
    OPMOPGNABHINPOGMBAHJKL $.

  $( Contraposition.  (Contributed by Jim Kingdon, 17-Apr-2018.) $)
  con2bidc $p |- ( DECID ph -> ( DECID ps ->
      ( ( ph <-> -. ps ) <-> ( ps <-> -. ph ) ) ) ) $=
    ( wdc wn wb wa con1bidc imp bicom 3bitr3g bicomd ex ) ACZBCZABDZEZBADZEZEMN
    FZRPSQBEZOAEZRPMNTUAEABGHQBIOAIJKL $.

  ${
    con1biddc.1 $e |- ( ph -> ( DECID ps -> ( -. ps <-> ch ) ) ) $.
    $( A contraposition deduction.  (Contributed by Jim Kingdon,
       4-Apr-2018.) $)
    con1biddc $p |- ( ph -> ( DECID ps -> ( -. ch <-> ps ) ) ) $=
      ( wdc wn wb con1biimdc sylcom ) ABEBFCGCFBGDBCHI $.
  $}

  ${
    con1biidc.1 $e |- ( DECID ph -> ( -. ph <-> ps ) ) $.
    $( A contraposition inference.  (Contributed by Jim Kingdon,
       15-Mar-2018.) $)
    con1biidc $p |- ( DECID ph -> ( -. ps <-> ph ) ) $=
      ( wdc wn notnotbdc notbid bitrd bicomd ) ADZABEZJAAEZEKAFJLBCGHI $.
  $}

  $( Contraposition.  Bidirectional version of ~ con1dc .  (Contributed by NM,
     5-Aug-1993.) $)
  con1bdc $p |- ( DECID ph -> ( DECID ps ->
                  ( ( -. ph -> ps ) <-> ( -. ps -> ph ) ) ) ) $=
    ( wdc wn wi wb wa con1dc adantr adantl impbid ex ) ACZBCZADBEZBDAEZFMNGOPMO
    PENABHINPOEMBAHJKL $.

  ${
    con2biidc.1 $e |- ( DECID ps -> ( ph <-> -. ps ) ) $.
    $( A contraposition inference.  (Contributed by Jim Kingdon,
       15-Mar-2018.) $)
    con2biidc $p |- ( DECID ps -> ( ps <-> -. ph ) ) $=
      ( wdc wn bicomd con1biidc ) BDZAEBBAHABECFGF $.
  $}

  ${
    con2biddc.1 $e |- ( ph -> ( DECID ch -> ( ps <-> -. ch ) ) ) $.
    $( A contraposition deduction.  (Contributed by Jim Kingdon,
       11-Apr-2018.) $)
    con2biddc $p |- ( ph -> ( DECID ch -> ( ch <-> -. ps ) ) ) $=
      ( wdc wn wb bicom syl6ib con1biddc ) ACEZBFZCGCLGACBAKBCFZGMBGDBMHIJLCHI
      $.
  $}

  ${
    condandc.1 $e |- ( ( ph /\ -. ps ) -> ch ) $.
    condandc.2 $e |- ( ( ph /\ -. ps ) -> -. ch ) $.
    $( Proof by contradiction.  This only holds for decidable propositions, as
       it is part of the family of theorems which assume ` -. ps ` , derive a
       contradiction, and therefore conclude ` ps ` .  By contrast, assuming
       ` ps ` , deriving a contradiction, and therefore concluding ` -. ps ` ,
       as in ~ pm2.65 , is valid for all propositions.  (Contributed by Jim
       Kingdon, 13-May-2018.) $)
    condandc $p |- ( DECID ps -> ( ph -> ps ) ) $=
      ( wn wdc pm2.65da notnotrdc syl5 ) ABFZFBGBAKCDEHBIJ $.
  $}

  ${
    bijadc.1 $e |- ( ph -> ( ps -> ch ) ) $.
    bijadc.2 $e |- ( -. ph -> ( -. ps -> ch ) ) $.
    $( Combine antecedents into a single biconditional.  This inference is
       reminiscent of ~ jadc .  (Contributed by Jim Kingdon, 4-May-2018.) $)
    bijadc $p |- ( DECID ps -> ( ( ph <-> ps ) -> ch ) ) $=
      ( wb bi2 syli wn bi1 con3d pm2.61ddc ) ABFZBCBMACABGDHBIMAICMABABJKEHL $.
  $}

  $( Relationship between an equivalence and an equivalence with some negation,
     for decidable propositions.  Based on theorem *5.18 of [WhiteheadRussell]
     p. 124.  Given decidability, we can consider ` -. ( ph <-> -. ps ) ` to
     represent "negated exclusive-or".  (Contributed by Jim Kingdon,
     4-Apr-2018.) $)
  pm5.18dc $p |- ( DECID ph -> ( DECID ps ->
        ( ( ph <-> ps ) <-> -. ( ph <-> -. ps ) ) ) ) $=
    ( wdc wn wo wb wi df-dc wa pm5.501 a1d con1biddc imp adantr bitr2d dcn nbn2
    ex syl5 jaoi sylbi ) ACAADZEBCZABFZABDZFZDZFZGZAHAUIUBAUCUHAUCIUGBUDAUCUGBF
    ABUFAUEUFFUCAUEJKLMABUDFUCABJNORUBUCUHUBUCIUGUEUDUBUCUGUEFZUCUECZUBUJBPUBUE
    UFUBUEDUFFUKAUEQKLSMUBUEUDFUCABQNORTUA $.

  $( Definition of 'and' in terms of negation and implication, for decidable
     propositions.  The forward direction holds for all propositions, and can
     (basically) be found at ~ pm3.2im .  (Contributed by Jim Kingdon,
     30-Apr-2018.) $)
  dfandc $p |- ( DECID ph -> ( DECID ps ->
      ( ( ph /\ ps ) <-> -. ( ph -> -. ps ) ) ) ) $=
    ( wdc wa wn wi wb pm3.2im imp simplimdc adantr simprimdc adantl jca impbid2
    ex ) ACZBCZABDZABEZFEZGQRDZSUAABUAABHIUBUASUBUADABUBUAAQUAAFRATJKIUBUABRUAB
    FQABLMINPOP $.

  $( A decidable proposition or its triple negation is true.  Theorem *2.13 of
     [WhiteheadRussell] p. 101 with decidability condition added.  (Contributed
     by Jim Kingdon, 13-May-2018.) $)
  pm2.13dc $p |- ( DECID ph -> ( ph \/ -. -. -. ph ) ) $=
    ( wdc wn wo df-dc notnotrdc con3d orim2d syl5bi pm2.43i ) ABZAACZCZCZDZKALD
    KOAEKLNAKMAAFGHIJ $.

  $( Theorem *4.63 of [WhiteheadRussell] p. 120, for decidable propositions.
     (Contributed by Jim Kingdon, 1-May-2018.) $)
  pm4.63dc $p |- ( DECID ph -> ( DECID ps ->
      ( -. ( ph -> -. ps ) <-> ( ph /\ ps ) ) ) ) $=
    ( wdc wn wi wa wb dfandc imp bicomd ex ) ACZBCZABDEDZABFZGLMFONLMONGABHIJK
    $.

  $( Theorem *4.67 of [WhiteheadRussell] p. 120, for decidable propositions.
     (Contributed by Jim Kingdon, 1-May-2018.) $)
  pm4.67dc $p |- ( DECID ph -> ( DECID ps ->
      ( -. ( -. ph -> -. ps ) <-> ( -. ph /\ ps ) ) ) ) $=
    ( wdc wn wi wa wb dcn pm4.63dc syl ) ACADZCBCKBDEDKBFGEAHKBIJ $.

  $( Express conjunction in terms of implication.  One direction of Theorem
     *4.61 of [WhiteheadRussell] p. 120.  The converse holds for decidable
     propositions, as can be seen at ~ annimdc .  (Contributed by Jim Kingdon,
     24-Dec-2017.) $)
  annimim $p |- ( ( ph /\ -. ps ) -> -. ( ph -> ps ) ) $=
    ( wn wi pm2.27 con3 syl imp ) ABCZABDZCZAJBDIKDABEJBFGH $.

  $( One direction of Theorem *4.65 of [WhiteheadRussell] p. 120.  The converse
     holds in classical logic.  (Contributed by Jim Kingdon, 28-Jul-2018.) $)
  pm4.65r $p |- ( ( -. ph /\ -. ps ) -> -. ( -. ph -> ps ) ) $=
    ( wn annimim ) ACBD $.

  $( An implication between two decidable propositions is decidable.
     (Contributed by Jim Kingdon, 28-Mar-2018.) $)
  dcim $p |- ( DECID ph -> ( DECID ps -> DECID ( ph -> ps ) ) ) $=
    ( wn wo wi df-dc wa anbi2i andi bitri pm3.4 annimim orim12i sylbi sylibr ex
    wdc ax-in2 a1d orc syl6 jaoi ) AQAACZDBQZABEZQZEZAFAUGUCAUDUFAUDGZUEUECZDZU
    FUHABGZABCZGZDZUJUHABULDZGUNUDUOABFHABULIJUKUEUMUIABKABLMNUEFZOPUCUDUEUFUCU
    EUDABRSUEUJUFUEUITUPOUAUBN $.

  $( Express implication in terms of conjunction.  The converse only holds
     given a decidability condition; see ~ imandc .  (Contributed by Jim
     Kingdon, 24-Dec-2017.) $)
  imanim $p |- ( ( ph -> ps ) -> -. ( ph /\ -. ps ) ) $=
    ( wn wa wi annimim con2i ) ABCDABEABFG $.

  $( Express implication in terms of conjunction.  Theorem 3.4(27) of [Stoll]
     p. 176, with an added decidability condition.  The forward direction,
     ~ imanim , holds for all propositions, not just decidable ones.
     (Contributed by Jim Kingdon, 25-Apr-2018.) $)
  imandc $p |- ( DECID ps -> ( ( ph -> ps ) <-> -. ( ph /\ -. ps ) ) ) $=
    ( wdc wi wn wa notnotbdc imbi2d imnan syl6bb ) BCZABDABEZEZDALFEKBMABGHALIJ
    $.

  $( Theorem *4.14 of [WhiteheadRussell] p. 117, given a decidability
     condition.  (Contributed by Jim Kingdon, 24-Apr-2018.) $)
  pm4.14dc $p |- ( DECID ch ->
      ( ( ( ph /\ ps ) -> ch ) <-> ( ( ph /\ -. ch ) -> -. ps ) ) ) $=
    ( wdc wi wn wa con34bdc imbi2d impexp 3bitr4g ) CDZABCEZEACFZBFZEZEABGCEANG
    OELMPABCHIABCJANOJK $.

  $( Theorem *3.37 (Transp) of [WhiteheadRussell] p. 112.  (Contributed by NM,
     3-Jan-2005.) $)
  pm3.37 $p |- ( ( ( ph /\ ps ) -> ch ) -> ( ( ph /\ -. ch ) -> -. ps ) ) $=
    ( wa wi wn pm3.3 con3 syl6 impd ) ABDCEZACFZBFZKABCELMEABCGBCHIJ $.

  $( 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 $.

  $( Deriving disjunction from implication for a decidable proposition.  Based
     on theorem *2.54 of [WhiteheadRussell] p. 107.  The converse, ~ pm2.53 ,
     holds whether the proposition is decidable or not.  (Contributed by Jim
     Kingdon, 26-Mar-2018.) $)
  pm2.54dc $p |- ( DECID ph -> ( ( -. ph -> ps ) -> ( ph \/ ps ) ) ) $=
    ( wdc wn wi wo dcn notnotrdc orc syl6 a1d olc a1i jaddc mpd ) ACZADZCZQBEAB
    FZEAGPQBSPQDZSERPTASAHABIJKBSEPBALMNO $.

  $( Definition of 'or' in terms of negation and implication for a decidable
     proposition.  Based on definition of [Margaris] p. 49.  One direction,
     ~ pm2.53 , holds for all propositions, not just decidable ones.
     (Contributed by Jim Kingdon, 26-Mar-2018.) $)
  dfordc $p |- ( DECID ph -> ( ( ph \/ ps ) <-> ( -. ph -> ps ) ) ) $=
    ( wdc wo wn wi pm2.53 pm2.54dc impbid2 ) ACABDAEBFABGABHI $.

  $( Elimination of disjunction based on a disjunction, for a decidable
     proposition.  Based on theorem *2.25 of [WhiteheadRussell] p. 104.
     (Contributed by NM, 3-Jan-2005.) $)
  pm2.25dc $p |- ( DECID ph -> ( ph \/ ( ( ph \/ ps ) -> ps ) ) ) $=
    ( wdc wn wo wi df-dc orel1 orim2i sylbi ) ACAADZEAABEBFZEAGKLAABHIJ $.

  $( Concluding disjunction from implication for a decidable proposition.
     Based on theorem *2.68 of [WhiteheadRussell] p. 108.  Converse of ~ pm2.62
     and one half of ~ dfor2dc .  (Contributed by Jim Kingdon, 27-Mar-2018.) $)
  pm2.68dc $p |- ( DECID ph -> ( ( ( ph -> ps ) -> ps ) -> ( ph \/ ps ) ) ) $=
    ( wi wn wdc wo jarl pm2.54dc syl5 ) ABCBCADBCAEABFABBGABHI $.

  $( Logical 'or' expressed in terms of implication only, for a decidable
     proposition.  Based on theorem *5.25 of [WhiteheadRussell] p. 124.
     (Contributed by Jim Kingdon, 27-Mar-2018.) $)
  dfor2dc $p |- ( DECID ph -> ( ( ph \/ ps ) <-> ( ( ph -> ps ) -> ps ) ) ) $=
    ( wdc wo wi pm2.62 pm2.68dc impbid2 ) ACABDABEBEABFABGH $.

  $( Simplify an implication between implications, for a decidable proposition.
     (Contributed by Jim Kingdon, 18-Mar-2018.) $)
  imimorbdc $p |- ( DECID ps -> ( ( ( ps -> ch ) -> ( ph -> ch ) ) <->
                  ( ph -> ( ps \/ ch ) ) ) ) $=
    ( wdc wo wi dfor2dc imbi2d bi2.04 syl6rbbr ) BDZABCEZFABCFZCFZFMACFFKLNABCG
    HMACIJ $.

  $( Implication in terms of disjunction for a decidable proposition.  Based on
     theorem *4.6 of [WhiteheadRussell] p. 120.  The reverse direction,
     ~ imorr , holds for all propositions.  (Contributed by Jim Kingdon,
     20-Apr-2018.) $)
  imordc $p |- ( DECID ph -> ( ( ph -> ps ) <-> ( -. ph \/ ps ) ) ) $=
    ( wdc wi wn wo notnotbdc imbi1d wb dcn dfordc syl bitr4d ) ACZABDAEZEZBDZOB
    FZNAPBAGHNOCRQIAJOBKLM $.

  $( Implication in terms of disjunction.  One direction of theorem *4.6 of
     [WhiteheadRussell] p. 120.  The converse holds for decidable propositions,
     as seen at ~ imordc .  (Contributed by Jim Kingdon, 21-Jul-2018.) $)
  imorr $p |- ( ( -. ph \/ ps ) -> ( ph -> ps ) ) $=
    ( wn wi ax-in2 ax-1 jaoi ) ACABDBABEBAFG $.

  $( Implication in terms of disjunction.  Like Theorem *4.62 of
     [WhiteheadRussell] p. 120, but for a decidable antecedent.  (Contributed
     by Jim Kingdon, 21-Apr-2018.) $)
  pm4.62dc $p |- ( DECID ph -> ( ( ph -> -. ps ) <-> ( -. ph \/ -. ps ) ) ) $=
    ( wn imordc ) ABCD $.

  $( Negated conjunction in terms of disjunction (DeMorgan's law).  Theorem
     *4.51 of [WhiteheadRussell] p. 120, but where one proposition is
     decidable.  The reverse direction, ~ pm3.14 , holds for all propositions,
     but the equivalence only holds where one proposition is decidable.
     (Contributed by Jim Kingdon, 21-Apr-2018.) $)
  ianordc $p |- ( DECID ph -> ( -. ( ph /\ ps ) <-> ( -. ph \/ -. ps ) ) ) $=
    ( wa wn wi wdc wo imnan pm4.62dc syl5bbr ) ABCDABDZEAFADKGABHABIJ $.

  $( 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 pm2.67-2 ibd olc imim1i ibibr sylibr impbid ax-1 impbii ) ABCZAB
    DZEZPQABQABAPBFGQBPEBAEBOPBAHIBAJKLPOMN $.

  $( Theorem *4.64 of [WhiteheadRussell] p. 120, given a decidability
     condition.  The reverse direction, ~ pm2.53 , holds for all propositions.
     (Contributed by Jim Kingdon, 2-May-2018.) $)
  pm4.64dc $p |- ( DECID ph -> ( ( -. ph -> ps ) <-> ( ph \/ ps ) ) ) $=
    ( wdc wo wn wi dfordc bicomd ) ACABDAEBFABGH $.

  $( Theorem *4.66 of [WhiteheadRussell] p. 120, given a decidability
     condition.  (Contributed by Jim Kingdon, 2-May-2018.) $)
  pm4.66dc $p |- ( DECID ph -> ( ( -. ph -> -. ps ) <-> ( ph \/ -. ps ) ) ) $=
    ( wn pm4.64dc ) ABCD $.

  $( One direction of theorem *4.52 of [WhiteheadRussell] p. 120.  The converse
     also holds in classical logic.  (Contributed by Jim Kingdon,
     27-Jul-2018.) $)
  pm4.52im $p |- ( ( ph /\ -. ps ) -> -. ( -. ph \/ ps ) ) $=
    ( wn wa wi wo annimim imorr nsyl ) ABCDABEACBFABGABHI $.

  $( One direction of theorem *4.53 of [WhiteheadRussell] p. 120.  The converse
     also holds in classical logic.  (Contributed by Jim Kingdon,
     27-Jul-2018.) $)
  pm4.53r $p |- ( ( -. ph \/ ps ) -> -. ( ph /\ -. ps ) ) $=
    ( wn wa wo pm4.52im con2i ) ABCDACBEABFG $.

  $( Theorem *4.54 of [WhiteheadRussell] p. 120, for decidable propositions.
     One form of DeMorgan's law.  (Contributed by Jim Kingdon, 2-May-2018.) $)
  pm4.54dc $p |- ( DECID ph -> ( DECID ps ->
      ( ( -. ph /\ ps ) <-> -. ( ph \/ -. ps ) ) ) ) $=
    ( wdc wn wa wo wb wi dcn dfandc syl imp pm4.66dc adantr notbid bitrd ex ) A
    CZBCZADZBEZABDZFZDZGRSEZUATUBHZDZUDRSUAUGGZRTCSUHHAITBJKLUEUFUCRUFUCGSABMNO
    PQ $.

  $( 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 (DeMorgan's law).  One direction of
     Theorem *4.57 of [WhiteheadRussell] p. 120.  The converse does not hold
     intuitionistically but does hold in classical logic.  (Contributed by Jim
     Kingdon, 25-Jul-2018.) $)
  oranim $p |- ( ( ph \/ ps ) -> -. ( -. ph /\ -. ps ) ) $=
    ( wn wa wo pm4.56 biimpi con2i ) ACBCDZABEZIJCABFGH $.

  $( Implication distributes over disjunction.  One direction of Theorem *4.78
     of [WhiteheadRussell] p. 121.  The converse holds in classical logic.
     (Contributed by Jim Kingdon, 15-Jan-2018.) $)
  pm4.78i $p |- ( ( ( ph -> ps ) \/ ( ph -> ch ) ) ->
       ( ph -> ( ps \/ ch ) ) ) $=
    ( wi wo orc imim2i olc jaoi ) ABDABCEZDACDBJABCFGCJACBHGI $.

  $( Equivalence between a disjunction of two implications, and a conjunction
     and an implication.  Based on theorem *4.79 of [WhiteheadRussell] p. 121
     but with additional decidability antecedents.  (Contributed by Jim
     Kingdon, 28-Mar-2018.) $)
  pm4.79dc $p |- ( DECID ph -> ( DECID ps ->
                 ( ( ( ps -> ph ) \/ ( ch -> ph ) ) <->
                   ( ( ps /\ ch ) -> ph ) ) ) ) $=
    ( wdc wi wo wa wb id jaoa simplimdc pm3.3 syl9 dcim pm2.54dc syl6 syl5d imp
    wn impbid2 expcom ) BDZADZBAEZCAEZFZBCGAEZHUBUCGUFUGUDBAUECUDIUEIJUBUCUGUFE
    UBUGUDSZUEEZUCUFUBUHBUGUEBAKBCALMUBUCUDDUIUFEBANUDUEOPQRTUA $.

  $( Two ways of stating exclusive-or which are equivalent for a decidable
     proposition.  Based on theorem *5.17 of [WhiteheadRussell] p. 124.
     (Contributed by Jim Kingdon, 16-Apr-2018.) $)
  pm5.17dc $p |- ( DECID ps ->
      ( ( ( ph \/ ps ) /\ -. ( ph /\ ps ) ) <-> ( ph <-> -. ps ) ) ) $=
    ( wn wb wdc wo wa bicom dfbi2 orcom dfordc syl5rbb imnan a1i anbi12d syl5bb
    wi ) ABCZDRADZBEZABFZABGCZGZARHSRAQZARQZGTUCRAITUDUAUEUBUABAFTUDABJBAKLUEUB
    DTABMNOPL $.

  $( Reverse distribution of disjunction over implication, given decidability.
     Based on theorem *2.85 of [WhiteheadRussell] p. 108.  (Contributed by Jim
     Kingdon, 1-Apr-2018.) $)
  pm2.85dc $p |- ( DECID ph -> ( ( ( ph \/ ps ) -> ( ph \/ ch ) ) ->
                ( ph \/ ( ps -> ch ) ) ) ) $=
    ( wdc wn wo wi df-dc orc a1d olc imim1i orel1 syl9r syl6 jaoi sylbi ) ADAAE
    ZFABFZACFZGZABCGZFZGZAHAUDRAUCUAAUBIJRUAUBUCUABTRCBSTBAKLACMNUBAKOPQ $.

  $( Disjunction distributes over implication.  The forward direction,
     ~ pm2.76 , is valid intuitionistically.  The reverse direction holds if
     ` ph ` is decidable, as can be seen at ~ pm2.85dc .  (Contributed by Jim
     Kingdon, 1-Apr-2018.) $)
  orimdidc $p |- ( DECID ph -> ( ( ph \/ ( ps -> ch ) ) <->
                ( ( ph \/ ps ) -> ( ph \/ ch ) ) ) ) $=
    ( wdc wi wo pm2.76 pm2.85dc impbid2 ) ADABCEFABFACFEABCGABCHI $.

  $( Decidable proposition version of theorem *2.26 of [WhiteheadRussell]
     p. 104.  (Contributed by Jim Kingdon, 20-Apr-2018.) $)
  pm2.26dc $p |- ( DECID ph -> ( -. ph \/ ( ( ph -> ps ) -> ps ) ) ) $=
    ( wdc wi wn wo pm2.27 imordc mpbii ) ACAABDBDZDAEJFABGAJHI $.

  $( Theorem *4.81 of [WhiteheadRussell] p. 122, for decidable propositions.
     This one needs a decidability condition, but compare with ~ pm4.8 which
     holds for all propositions.  (Contributed by Jim Kingdon, 4-Jul-2018.) $)
  pm4.81dc $p |- ( DECID ph -> ( ( -. ph -> ph ) <-> ph ) ) $=
    ( wdc wn wi pm2.18dc pm2.24 impbid1 ) ABACADAAEAAFG $.

  $( A decidable proposition or its negation implies a second proposition.
     Based on theorem *5.11 of [WhiteheadRussell] p. 123.  (Contributed by Jim
     Kingdon, 29-Mar-2018.) $)
  pm5.11dc $p |- ( DECID ph -> ( DECID ps ->
                   ( ( ph -> ps ) \/ ( -. ph -> ps ) ) ) ) $=
    ( wdc wi wn wo dcim pm2.5dc pm2.54dc syl5com syld ) ACZBCABDZCZMAEBDZFZABGL
    MEODNPABHMOIJK $.

  $( Excluded middle with antecedents for a decidable consequent.  Based on
     theorem *5.12 of [WhiteheadRussell] p. 123.  (Contributed by Jim Kingdon,
     30-Mar-2018.) $)
  pm5.12dc $p |- ( DECID ps -> ( ( ph -> ps ) \/ ( ph -> -. ps ) ) ) $=
    ( wdc wn wo wi df-dc ax-1 orim12i sylbi ) BCBBDZEABFZAKFZEBGBLKMBAHKAHIJ $.

  $( A decidable proposition is implied by or implies other propositions.
     Based on theorem *5.14 of [WhiteheadRussell] p. 123.  (Contributed by Jim
     Kingdon, 30-Mar-2018.) $)
  pm5.14dc $p |- ( DECID ps -> ( ( ph -> ps ) \/ ( ps -> ch ) ) ) $=
    ( wdc wn wo wi df-dc ax-1 ax-in2 orim12i sylbi ) BDBBEZFABGZBCGZFBHBNMOBAIB
    CJKL $.

  $( An implication holds in at least one direction, where one proposition is
     decidable.  Based on theorem *5.13 of [WhiteheadRussell] p. 123.
     (Contributed by Jim Kingdon, 30-Mar-2018.) $)
  pm5.13dc $p |- ( DECID ps -> ( ( ph -> ps ) \/ ( ps -> ph ) ) ) $=
    ( pm5.14dc ) ABAC $.

  $( A disjunction is equivalent to one of its disjuncts, given a decidable
     disjunct.  Based on theorem *5.55 of [WhiteheadRussell] p. 125.
     (Contributed by Jim Kingdon, 30-Mar-2018.) $)
  pm5.55dc $p |- ( DECID ph ->
        ( ( ( ph \/ ps ) <-> ph ) \/ ( ( ph \/ ps ) <-> ps ) ) ) $=
    ( wdc wn wo wb df-dc biort bicomd biorf orim12i sylbi ) ACAADZEABEZAFZNBFZE
    AGAOMPAANABHIMBNABJIKL $.

  $( Peirce's theorem for a decidable proposition.  This odd-looking theorem
     can be seen as an alternative to ~ exmiddc , ~ condc , or ~ notnotrdc in
     the sense of expressing the "difference" between an intuitionistic system
     of propositional calculus and a classical system.  In intuitionistic
     logic, it only holds for decidable propositions.  (Contributed by Jim
     Kingdon, 3-Jul-2018.) $)
  peircedc $p |- ( DECID ph -> ( ( ( ph -> ps ) -> ph ) -> ph ) ) $=
    ( wdc wn wo wi df-dc ax-1 pm2.21 imim1i com12 jaoi sylbi ) ACAADZEABFZAFZAF
    ZAGAQNAPHPNANOAABIJKLM $.

  $( The Inversion Axiom of the infinite-valued sentential logic (L-infinity)
     of Lukasiewicz, but where one of the propositions is decidable.  Using
     ~ dfor2dc , we can see that this expresses "disjunction commutes."
     Theorem *2.69 of [WhiteheadRussell] p. 108 (plus the decidability
     condition).  (Contributed by NM, 12-Aug-2004.) $)
  looinvdc $p |- ( DECID ph ->
      ( ( ( ph -> ps ) -> ps ) -> ( ( ps -> ph ) -> ph ) ) ) $=
    ( wi wdc imim1 peircedc syl9r ) ABCZBCBACHACADAHBAEABFG $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Testable propositions
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( A proposition is testable iff its negative or double-negative is true.
     See Chapter 2 [Moschovakis] p. 2.

     Our notation for testability is ` DECID -. ` before the formula in
     question.  For example, ` DECID -. x = y ` corresponds to "x = y is
     testable".  (Contributed by David A. Wheeler, 13-Aug-2018.) $)
  dftest $p |- ( DECID -. ph <-> ( -. ph \/ -. -. ph ) ) $=
    ( wn df-dc ) ABC $.

  $( A proposition is testable iff its negation is testable.  See also ~ dcn
     (which could be read as "Decidability implies testability").  (Contributed
     by David A. Wheeler, 6-Dec-2018.) $)
  testbitestn $p |- ( DECID -. ph <-> DECID -. -. ph ) $=
    ( wn wo wdc notnotnot orbi2i orcom bitri df-dc 3bitr4ri ) ABZBZLBZCZKLCZLDK
    DNLKCOMKLAEFLKGHLIKIJ $.

  $( "Stable and testable" is equivalent to decidable.  (Contributed by David
     A. Wheeler, 13-Aug-2018.) $)
  stabtestimpdc $p |-
    ( ( STAB ph /\ DECID -. ph ) <-> DECID ph ) $=
    ( wstab wn wdc wa wo exmiddc adantl df-stab biimpi orim2d adantr mpd orcomd
    wi df-dc sylibr dcimpstab dcn jca impbii ) ABZACZDZEZADZUEAUCFUFUEUCAUEUCUC
    CZFZUCAFZUDUHUBUCGHUBUHUIOUDUBUGAUCUBUGAOAIJKLMNAPQUFUBUDARASTUA $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Miscellaneous theorems of propositional calculus
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    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 $.

  $( A conjunction is equivalent to one of its conjuncts, given a decidable
     conjunct.  Based on theorem *5.54 of [WhiteheadRussell] p. 125.
     (Contributed by Jim Kingdon, 30-Mar-2018.) $)
  pm5.54dc $p |- ( DECID ph ->
                   ( ( ( ph /\ ps ) <-> ph ) \/ ( ( ph /\ ps ) <-> ps ) ) ) $=
    ( wdc wa wb wn df-dc simpr ax-ia3 impbid2 simpl ax-in2 orim12i sylbi orcomd
    wo ) ACZABDZBEZRAEZQAAFZPSTPAGASUATARBABHABIJUARAABKARLJMNO $.

  ${
    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.) $)
    rbaib $p |- ( ch -> ( ph <-> ps ) ) $=
      ( wa ancom bitri baib ) ACBABCECBEDBCFGH $.

    $( Move conjunction outside of biconditional.  (Contributed by Mario
       Carneiro, 11-Sep-2015.) $)
    rbaibr $p |- ( ch -> ( ps <-> ph ) ) $=
      ( wa ancom bitri baibr ) ACBABCECBEDBCFGH $.
  $}

  ${
    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, for a
     decidable proposition.  Theorem *5.6 of [WhiteheadRussell] p. 125, with
     decidability condition added.  The reverse implication holds for all
     propositions (see ~ pm5.6r ).  (Contributed by Jim Kingdon,
     2-Apr-2018.) $)
  pm5.6dc $p |- ( DECID ps ->
        ( ( ( ph /\ -. ps ) -> ch ) <-> ( ph -> ( ps \/ ch ) ) ) ) $=
    ( wdc wo wi wn wa dfordc imbi2d impexp syl6rbbr ) BDZABCEZFABGZCFZFAOHCFMNP
    ABCIJAOCKL $.

  $( Conjunction in antecedent versus disjunction in consequent.  One direction
     of Theorem *5.6 of [WhiteheadRussell] p. 125.  If ` ps ` is decidable, the
     converse also holds (see ~ pm5.6dc ).  (Contributed by Jim Kingdon,
     4-Aug-2018.) $)
  pm5.6r $p |- ( ( ph -> ( ps \/ ch ) ) -> ( ( ph /\ -. ps ) -> ch ) ) $=
    ( wo wi wn pm2.53 imim2i impd ) ABCDZEABFZCJKCEABCGHI $.

  ${
    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 $.
  $}

  ${
    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 $.
  $}

  $( A conjunction of two decidable propositions is decidable.  (Contributed by
     Jim Kingdon, 12-Apr-2018.) $)
  dcan $p |- ( DECID ph -> ( DECID ps -> DECID ( ph /\ ps ) ) ) $=
    ( wa wn wo simpl intnanrd orim2i simpr intnand olcd jaoi df-dc anbi12i andi
    wdc andir orbi1i 3bitri 3imtr4i ex ) APZBPZABCZPZUDADZBCZEZAUFEZBDZCZEZUDUD
    DZEZUBUCCZUEUHUNUKUGUMUDUGABUFBFGHUKUMUDUKBAUIUJIJKLUOUIBUJEZCUIBCZUKEULUBU
    IUCUPAMBMNUIBUJOUQUHUKAUFBQRSUDMTUA $.

  $( A disjunction of two decidable propositions is decidable.  (Contributed by
     Jim Kingdon, 21-Apr-2018.) $)
  dcor $p |- ( DECID ph -> ( DECID ps -> DECID ( ph \/ ps ) ) ) $=
    ( wdc wn wo wi df-dc orc orcd sylibr a1d wa olc adantl ioran biimpri jaodan
    olcd sylan2b ex jaoi sylbi ) ACAADZEBCZABEZCZFZAGAUGUCAUFUDAUEUEDZEZUFAUEUH
    ABHIUEGZJKUCUDUFUDUCBBDZEUFBGUCBUFUKUCBLZUIUFULUEUHBUEUCBAMNIUJJUCUKLZUIUFU
    MUHUEUHUMABOPRUJJQSTUAUB $.

  $( An equivalence of two decidable propositions is decidable.  (Contributed
     by Jim Kingdon, 12-Apr-2018.) $)
  dcbi $p |- ( DECID ph -> ( DECID ps -> DECID ( ph <-> ps ) ) ) $=
    ( wdc wi wa wb dcim com12 dcan syl6c dfbi2 dcbii syl6ibr ) ACZBCZABDZBADZEZ
    CZABFZCNOPCQCZSABGONUABAGHPQIJTRABKLM $.

  $( Express conjunction in terms of implication.  The forward direction,
     ~ annimim , is valid for all propositions, but as an equivalence, it
     requires a decidability condition.  (Contributed by Jim Kingdon,
     25-Apr-2018.) $)
  annimdc $p |- ( DECID ph -> ( DECID ps ->
      ( ( ph /\ -. ps ) <-> -. ( ph -> ps ) ) ) ) $=
    ( wdc wn wa wi wb imandc adantl dcim imp dcn dcan syl5 con2bidc sylc mpbid
    ex ) ACZBCZABDZEZABFZDGZSTEZUCUBDGZUDTUFSABHIUEUCCZUBCZUFUDGSTUGABJKSTUHTUA
    CSUHBLAUAMNKUCUBOPQR $.

  $( Theorem *4.55 of [WhiteheadRussell] p. 120, for decidable propositions.
     (Contributed by Jim Kingdon, 2-May-2018.) $)
  pm4.55dc $p |- ( DECID ph -> ( DECID ps ->
      ( -. ( -. ph /\ ps ) <-> ( ph \/ -. ps ) ) ) ) $=
    ( wdc wn wa wo wb pm4.54dc imp dcn anim2i dcor syl wi dcan con2bidc biimprd
    jca mpd bicomd ex ) ACZBCZADZBEZDZABDZFZGUBUCEZUHUFUIUEUHDGZUHUFGZUBUCUJABH
    IUIUKUJUIUHCZUECZEUKUJGZUIULUMUIUBUGCZEULUCUOUBBJKUBUOULAUGLIMUBUCUMUBUDCUC
    UMNAJUDBOMIRULUMUNUHUEPIMQSTUA $.

  $( Disjunction in terms of conjunction (De Morgan's law), for decidable
     propositions.  Compare Theorem *4.57 of [WhiteheadRussell] p. 120.
     (Contributed by Jim Kingdon, 13-Dec-2021.) $)
  orandc $p |- ( ( DECID ph /\ DECID ps ) ->
      ( ( ph \/ ps ) <-> -. ( -. ph /\ -. ps ) ) ) $=
    ( wdc wa wn wo pm4.56 dcn adantr adantl dcan sylc dcor imp con2bidc mpbii
    wb ) ACZBCZDZAEZBEZDZABFZEQZUDUCEQZABGTUCCZUDCZUEUFQTUACZUBCZUGRUISAHISUJRB
    HJUAUBKLRSUHABMNUCUDOLP $.

  ${
    mpbiran.1 $e |- ps $.
    mpbiran.2 $e |- ( ph <-> ( ps /\ ch ) ) $.
    $( Detach truth from conjunction in biconditional.  (Contributed by NM,
       27-Feb-1996.)  (Revised by NM, 9-Jan-2015.) $)
    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.)  (Revised by NM, 9-Jan-2015.) $)
    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.)  (Revised by NM, 9-Jan-2015.) $)
    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 $.
  $}

  $( Theorem *5.62 of [WhiteheadRussell] p. 125, for a decidable proposition.
     (Contributed by Jim Kingdon, 12-May-2018.) $)
  pm5.62dc $p |- ( DECID ps ->
      ( ( ( ph /\ ps ) \/ -. ps ) <-> ( ph \/ -. ps ) ) ) $=
    ( wdc wn wo wa wb df-dc ordir simplbi simplbi2 com12 impbid2 sylbi ) BCBBDZ
    EZABFOEZAOEZGBHPQRQRPABOIZJRPQQRPSKLMN $.

  $( Theorem *5.63 of [WhiteheadRussell] p. 125, for a decidable proposition.
     (Contributed by Jim Kingdon, 12-May-2018.) $)
  pm5.63dc $p |- ( DECID ph ->
      ( ( ph \/ ps ) <-> ( ph \/ ( -. ph /\ ps ) ) ) ) $=
    ( wdc wo wn wa wi df-dc ordi simplbi2 sylbi simprbi impbid1 ) ACZABDZAAEZBF
    DZNAPDZOQGAHQROAPBIZJKQROSLM $.

  ${
    bianfi.1 $e |- -. ph $.
    $( A wff conjoined with falsehood is false.  (Contributed by NM,
       5-Aug-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, for decidable propositions.
     As with other case elimination theorems, like ~ pm2.61dc , it only holds
     for decidable propositions.  (Contributed by Jim Kingdon, 12-May-2018.) $)
  pm4.83dc $p |- ( DECID ph ->
      ( ( ( ph -> ps ) /\ ( -. ph -> ps ) ) <-> ps ) ) $=
    ( wdc wi wn wa wo df-dc pm3.44 com12 sylbi ax-1 jca impbid1 ) ACZABDZAEZBDZ
    FZBOAQGZSBDAHSTBBAQIJKBPRBALBQLMN $.

  $( 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, for a decidable
     proposition.  Based on 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 Jim Kingdon, 2-Apr-2018.) $)
  orbididc $p |- ( DECID ph -> ( ( ph \/ ( ps <-> ch ) ) <->
                ( ( ph \/ ps ) <-> ( ph \/ ch ) ) ) ) $=
    ( wdc wi wo wa wb orimdidc anbi12d dfbi2 orbi2i ordi bitri 3bitr4g ) ADZABC
    EZFZACBEZFZGZABFZACFZEZUCUBEZGABCHZFZUBUCHPRUDTUEABCIACBIJUGAQSGZFUAUFUHABC
    KLAQSMNUBUCKO $.

  $( Disjunction distributes over the biconditional, for a decidable
     proposition.  Based on theorem *5.7 of [WhiteheadRussell] p. 125.  This
     theorem is similar to ~ orbididc .  (Contributed by Jim Kingdon,
     2-Apr-2018.) $)
  pm5.7dc $p |- ( DECID ch -> ( ( ( ph \/ ch ) <-> ( ps \/ ch ) ) <->
               ( ch \/ ( ph <-> ps ) ) ) ) $=
    ( wdc wb wo orbididc orcom bibi12i syl6rbb ) CDCABEFCAFZCBFZEACFZBCFZECABGK
    MLNCAHCBHIJ $.

  $( 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 $.

  $( Conjunction in terms of disjunction (DeMorgan's law).  Theorem *4.5 of
     [WhiteheadRussell] p. 120, but where the propositions are decidable.  The
     forward direction, ~ pm3.1 , holds for all propositions, but the
     equivalence only holds given decidability.  (Contributed by Jim Kingdon,
     21-Apr-2018.) $)
  anordc $p |- ( DECID ph -> ( DECID ps ->
      ( ( ph /\ ps ) <-> -. ( -. ph \/ -. ps ) ) ) ) $=
    ( wdc wa wn wo wb dcan ianordc bicomd a1d con2biddc syld ) ACZBCABDZCZOAEBE
    FZEGABHNQONQOEZGPNRQABIJKLM $.

  $( Theorem *3.11 of [WhiteheadRussell] p. 111, but for decidable
     propositions.  The converse, ~ pm3.1 , holds for all propositions, not
     just decidable ones.  (Contributed by Jim Kingdon, 22-Apr-2018.) $)
  pm3.11dc $p |- ( DECID ph -> ( DECID ps ->
      ( -. ( -. ph \/ -. ps ) -> ( ph /\ ps ) ) ) ) $=
    ( wdc wn wo wa wi wb anordc imp biimprd ex ) ACZBCZADBDEDZABFZGMNFPOMNPOHAB
    IJKL $.

  $( Theorem *3.12 of [WhiteheadRussell] p. 111, but for decidable
     propositions.  (Contributed by Jim Kingdon, 22-Apr-2018.) $)
  pm3.12dc $p |- ( DECID ph -> ( DECID ps ->
      ( ( -. ph \/ -. ps ) \/ ( ph /\ ps ) ) ) ) $=
    ( wdc wn wo wa wi pm3.11dc imp wb dcn dcor syl2im dfordc syl6 mpbird ex ) A
    CZBCZADZBDZEZABFZEZRSFUDUBDUCGZRSUEABHIRSUDUEJZRSUBCZUFRTCSUACUGAKBKTUALMUB
    UCNOIPQ $.

  $( Theorem *3.13 of [WhiteheadRussell] p. 111, but for decidable
     propositions.  The converse, ~ pm3.14 , holds for all propositions.
     (Contributed by Jim Kingdon, 22-Apr-2018.) $)
  pm3.13dc $p |- ( DECID ph -> ( DECID ps ->
      ( -. ( ph /\ ps ) -> ( -. ph \/ -. ps ) ) ) ) $=
    ( wdc wn wo wa wi dcn dcor syl2im pm3.11dc con1dc syl6c ) ACZBCZADZBDZEZCZR
    DABFZGTDRGNPCOQCSAHBHPQIJABKRTLM $.

  $( DN_1 for decidable propositions.  Without the decidability conditions,
     DN_1 can serve as a single axiom for Boolean algebra.  See
     ~ http://www-unix.mcs.anl.gov/~~mccune/papers/basax/v12.pdf .
     (Contributed by Jim Kingdon, 22-Apr-2018.) $)
  dn1dc $p |- ( ( DECID ph /\ ( DECID ps /\ ( DECID ch /\ DECID th ) ) ) ->
      ( -. ( -. ( -. ( ph \/ ps ) \/ ch ) \/
            -. ( ph \/ -. ( -. ch \/ -. ( ch \/ th ) ) ) ) <-> ch ) ) $=
    ( wo wn wa wdc wi pm2.45 imnan mpbi biorfi wb dcor imp anordc sylc dcn syl
    orcom ordir 3bitri pm4.45 simprrl ad2antll syl5bb orbi2d anbi2d syl6 syldan
    adantrr bitrd syl5rbb ) CABEZFZCEZACEZGZAHZBHZCHZDHZGZGZGZUQFACFZCDEZFZEZFZ
    EZFEFZCCUPAGZEVNCEUSVNCUPAFIVNFABJUPAKLMCVNUAUPACUBUCVFUSUQVLGZVMVFURVLUQVF
    CVKACCVHGZVFVKCDUDVFVBVHHZVPVKNUTVAVBVCUEZVDVQUTVAVBVCVQCDOPUFZCVHQRUGUHUIV
    FUQHZVLHZVOVMNVFUPHZVBVTUTVAWBVDUTVAWBUTVAUOHWBABOUOSUJPULVRUPCORUTVEVKHZWA
    VFVJHZWCVFVGHZVIHZWDVFVBWEVRCSTVFVQWFVSVHSTVGVIORVJSTUTWCWAAVKOPUKUQVLQRUMU
    N $.

  $( Decidable proposition version of theorem *5.71 of [WhiteheadRussell]
     p. 125.  (Contributed by Roy F. Longton, 23-Jun-2005.)  (Modified for
     decidability by Jim Kingdon, 19-Apr-2018.) $)
  pm5.71dc $p |- ( DECID ps ->
      ( ( ps -> -. ch ) -> ( ( ( ph \/ ps ) /\ ch ) <-> ( ph /\ ch ) ) ) ) $=
    ( wn wo wa wb wi wdc orel2 orc impbid1 anbi1d a1i pm2.21 pm5.32rd jadc ) BC
    DZABEZCFACFGZBDZTHBIUASACUASABAJABKLMNRCSACSAGOPQ $.

  $( 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.) $)
  pm5.75 $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,
     5-Aug-1993.) $)
  bimsc1 $p |- ( ( ( ph -> ps ) /\ ( ch <-> ( ps /\ ph ) ) )
               -> ( ch <-> ph ) ) $=
    ( wi wa wb simpr ancr impbid2 bibi2d biimpa ) ABDZCBAEZFCAFLMACLMABAGABHIJK
    $.

  ${
    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 $.
  $}

  ${
    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 $.
  $}

  $( Alternate version of ~ dedlema .  (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 ~ iftrue .  (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 ~ iffalse .  (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 $.

  $( One direction of Theorem *4.42 of [WhiteheadRussell] p. 119.  (Contributed
     by Jim Kingdon, 4-Aug-2018.) $)
  pm4.42r $p |- ( ( ( ph /\ ps ) \/ ( ph /\ -. ps ) ) -> ph ) $=
    ( wa wn simpl jaoi ) ABCAABDZCABEAGEF $.

  ${
    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 $.
  $}

  ${
    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, 5-Aug-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.)
       (Proof shortened by Mario Carneiro, 2-Feb-2015.) $)
    oplem1 $p |- ( ph -> ps ) $=
      ( wo idd wi ax-1 biimprcd jaoi syl syl6ibr jaod mpd ) ABCJBFABBCABKACDBAD
      EJCDLZGDTEDCMCDEINOPHQRS $.
  $}

  $( Lemma used in construction of real numbers.  (Contributed by NM,
     4-Sep-1995.)  (Proof shortened by Andrew Salmon, 26-Jun-2011.) $)
  rnlem $p |- ( ( ( ph /\ ps ) /\ ( ch /\ th ) ) <->
  ( ( ( ph /\ ch ) /\ ( ps /\ th ) ) /\ ( ( ph /\ th ) /\ ( ps /\ ch ) ) ) ) $=
    ( wa an4 biimpi an42 biimpri jca adantl impbii ) ABECDEEZACEBDEEZADEBCEEZEM
    NOMNABCDFGOMADBCHZIJOMNOMPGKL $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Abbreviated conjunction and disjunction of three wff's
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Extend wff definition to include 3-way disjunction ('or'). $)
  w3o $a wff ( ph \/ ps \/ ch ) $.
  $( Extend wff definition to include 3-way conjunction ('and'). $)
  w3a $a wff ( ph /\ ps /\ ch ) $.

  $( These abbreviations help eliminate parentheses to aid readability. $)

  $( Define disjunction ('or') of 3 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 3 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 $.

  $( 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 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 $.

  $( 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 $.

  $( 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 a conjuncts to antecedent.  (Contributed by NM,
       25-Dec-2007.) $)
    3ad2antr1 $p |- ( ( ph /\ ( ch /\ ps /\ ta ) ) -> th ) $=
      ( adantrr 3adantr3 ) ACBDEACDBFGH $.

    $( Deduction adding a conjuncts to antecedent.  (Contributed by NM,
       27-Dec-2007.) $)
    3ad2antr2 $p |- ( ( ph /\ ( ps /\ ch /\ ta ) ) -> th ) $=
      ( adantrl 3adantr3 ) ABCDEACDBFGH $.

    $( Deduction adding a 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 wa simp3 biantrurd bitr4d ) ABCGZDCEHEFLCEABCIJK $.
  $}

  $( 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 $.
  $}

  $( ~ pm3.2 for a triple conjunction.  (Contributed by Alan Sare,
     24-Oct-2011.) $)
  pm3.2an3 $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.)  (Revised by NM, 9-Jan-2015.) $)
    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.) $)
    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 $.
  $}

  ${
    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 $.
  $}

  ${
    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 3rd.  (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 $.
  $}

  ${
    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 $.
  $}

  ${
    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 $.
  $}

  ${
    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 $.
  $}

  ${
    sylXanc.1 $e |- ( ph -> ps ) $.
    sylXanc.2 $e |- ( ph -> ch ) $.
    sylXanc.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 $.
    $}

    ${
      syl111anc.4 $e |- ( ( ps /\ ch /\ th ) -> ta ) $.
      $( Syllogism combined with contraction.  (Contributed by NM,
         11-Mar-2012.) $)
      syl3anc $p |- ( ph -> ta ) $=
        ( w3a 3jca syl ) ABCDJEABCDFGHKIL $.
    $}

    sylXanc.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 $.
    $}

    sylXanc.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 $.
    $}

    sylXanc.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 $.
    $}

    sylXanc.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 $.
    $}

    sylXanc.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 $.
    $}

    sylXanc.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 3 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 3 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 3 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 3 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 3 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 3 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 3-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 $.
  $}

  $( Triple disjunction implies negated triple conjunction.  (Contributed by
     Jim Kingdon, 23-Dec-2018.) $)
  3ianorr $p |- ( ( -. ph \/ -. ps \/ -. ch ) -> -. ( ph /\ ps /\ ch ) ) $=
    ( wn w3a simp1 con3i simp2 simp3 3jaoi ) ADABCEZDBDCDKAABCFGKBABCHGKCABCIGJ
    $.

  ${
    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 ) ) ) $=
    ( w3a wa df-3an anbi12i an4 anbi1i 3bitri bitr4i ) ABCGZDEFGZHZADHZBEHZHZCF
    HZHZRSUAGQABHZCHZDEHZFHZHUCUEHZUAHUBOUDPUFABCIDEFIJUCCUEFKUGTUAABDEKLMRSUAI
    N $.

  $( Analog 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 $.

  $( Analog 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.)  (Revised by NM, 18-Apr-2007.) $)
    3anandirs $p |- ( ( ( ph /\ ps /\ ch ) /\ th ) -> ta ) $=
      ( w3a wa simpl1 simpr simpl2 simpl3 syl222anc ) ABCGZDHADBDCDEABCDINDJZAB
      CDKOABCDLOFM $.
  $}

  ${
    ecased.1 $e |- ( ph -> -. ch ) $.
    ecased.2 $e |- ( ph -> ( ps \/ ch ) ) $.
    $( Deduction form of disjunctive syllogism.  (Contributed by Jim Kingdon,
       9-Dec-2017.) $)
    ecased $p |- ( ph -> ps ) $=
      ( wn wo wa jca orel2 imp syl ) ACFZBCGZHBAMNDEIMNBCBJKL $.
  $}

  ${
    ecase23d.1 $e |- ( ph -> -. ch ) $.
    ecase23d.2 $e |- ( ph -> -. th ) $.
    ecase23d.3 $e |- ( ph -> ( ps \/ ch \/ th ) ) $.
    $( Variation of ~ ecased with three disjuncts instead of two.  (Contributed
       by NM, 22-Apr-1994.)  (Revised by Jim Kingdon, 9-Dec-2017.) $)
    ecase23d $p |- ( ph -> ps ) $=
      ( wo w3o df-3or sylib ecased ) ABCEABCHZDFABCDIMDHGBCDJKLL $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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 axiom ~ ax-5 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 axiom ~ ax-8 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 ~ http://us.metamath.org/mpeuni/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
       ~ http://us.metamath.org/mpeuni/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. $.

  $( ` 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.)
       (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. $.

  $( ` 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 $.

  ${
    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 quodlibet".  (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, we can define the negation of a wff ` ph ` as the statement
     that a contradiction 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 $.
  $}

  ${
    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 $.
  $}

  $( Negation inferred from embedded conjunct.  (Contributed by NM,
     20-Aug-1993.)  (Proof rewritten by Jim Kingdon, 4-May-2018.) $)
  pclem6 $p |- ( ( ph <-> ( ps /\ -. ph ) ) -> -. ps ) $=
    ( wn wa wb wfal wi bi1 pm3.4 com12 syl9r ax-ia3 syl9 impbidd pm5.19 pm2.21i
    bi2 syl6com dfnot sylibr ) ABACZDZEZBFGBCBUCAUAEZFBUCAUAUCAUBBUAAUBHUBBUABU
    AIJKBUAUBUCABUALAUBQMNUDFAOPRBST $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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.  Contrast with ` /\ ` ( ~ wa ),
     ` \/ ` ( ~ wo ), and ` -> ` ( ~ wi ) .  (Contributed by FL, 22-Nov-2010.)
     (Modified by Jim Kingdon, 1-Mar-2018.) $)
  df-xor $a |- ( ( ph \/_ ps ) <-> ( ( ph \/ ps ) /\ -. ( ph /\ ps ) ) ) $.

  $( One way of defining exclusive or.  Equivalent to ~ df-xor .  (Contributed
     by Jim Kingdon and Mario Carneiro, 1-Mar-2018.) $)
  xoranor $p |- ( ( ph \/_ ps ) <-> ( ( ph \/ ps ) /\ ( -. ph \/ -. ps ) ) ) $=
    ( wxo wo wn wa df-xor ax-ia3 con3d olc syl6 pm3.21 orc jaoi imdistani sylbi
    wi pm3.14 anim2i sylibr impbii ) ABCZABDZAEZBEZDZFZUBUCABFZEZFZUGABGZUCUIUF
    AUIUFQBAUIUEUFABUHABHIUEUDJKBUIUDUFBAUHBALIUDUEMKNOPUGUJUBUFUIUCABRSUKTUA
    $.

  $( This tautology shows that xor is really exclusive.  (Contributed by FL,
     22-Nov-2010.)  (Proof rewritten by Jim Kingdon, 5-May-2018.) $)
  excxor $p |- ( ( ph \/_ ps ) <->
       ( ( ph /\ -. ps ) \/ ( -. ph /\ ps ) ) ) $=
    ( wxo wn wa wo xoranor andi orcom pm3.24 biorfi andir pm5.61 orbi12i 3bitri
    3bitr4ri ancom orbi2i ) ABCZBADZEZABDZEZFZUCUAFUCTBEZFSABFZTUBFEUFTEZUFUBEZ
    FUDABGUFTUBHUGUAUHUCUAATEZFUIUAFUAUGUAUIIUIUAAJKABTLPABMNOUAUCIUAUEUCBTQRO
    $.

  $( XOR implies OR. (Contributed by BJ, 19-Apr-2019.) $)
  xoror $p |- ( ( ph \/_ ps ) -> ( ph \/ ps ) ) $=
    ( wxo wo wn xoranor simplbi ) ABCABDAEBEDABFG $.

  ${
    xorbid.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Deduction joining an equivalence and a left operand to form equivalence
       of exclusive-or.  (Contributed by Jim Kingdon, 7-Oct-2018.) $)
    xorbi2d $p |- ( ph -> ( ( th \/_ ps ) <-> ( th \/_ ch ) ) ) $=
      ( wo wa wn wxo orbi2d anbi2d notbid anbi12d df-xor 3bitr4g ) ADBFZDBGZHZG
      DCFZDCGZHZGDBIDCIAPSRUAABCDEJAQTABCDEKLMDBNDCNO $.

    $( Deduction joining an equivalence and a right operand to form equivalence
       of exclusive-or.  (Contributed by Jim Kingdon, 7-Oct-2018.) $)
    xorbi1d $p |- ( ph -> ( ( ps \/_ th ) <-> ( ch \/_ th ) ) ) $=
      ( wo wa wn wxo orbi1d anbi1d notbid anbi12d df-xor 3bitr4g ) ABDFZBDGZHZG
      CDFZCDGZHZGBDICDIAPSRUAABCDEJAQTABCDEKLMBDNCDNO $.
  $}

  ${
    xorbi12d.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    xorbi12d.2 $e |- ( ph -> ( th <-> ta ) ) $.
    $( Deduction joining two equivalences to form equivalence of exclusive-or.
       (Contributed by Jim Kingdon, 7-Oct-2018.) $)
    xorbi12d $p |- ( ph -> ( ( ps \/_ th ) <-> ( ch \/_ ta ) ) ) $=
      ( wxo xorbi1d xorbi2d bitrd ) ABDHCDHCEHABCDFIADECGJK $.
  $}

  ${
    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 ) ) $=
      ( wxo wb wtru a1i xorbi12d trud ) ACGBDGHIABCDABHIEJCDHIFJKL $.
  $}

  $( A consequence of exclusive or.  In classical logic the converse also
     holds.  (Contributed by Jim Kingdon, 8-Mar-2018.) $)
  xorbin $p  |- ( ( ph \/_ ps ) -> ( ph <-> -. ps ) ) $=
    ( wn wo wa wi df-xor imnan biimpri adantl sylbi pm2.53 orcoms adantr impbid
    wxo ) ABPZABCZQABDZABECZEZARFZABGZTUBSUBTABHIJKQUARAFZUCSUDTBAUDBALMNKO $.

  $( One direction of ~ pm5.18dc , which holds for all propositions, not just
     decidable propositions.  (Contributed by Jim Kingdon, 10-Mar-2018.) $)
  pm5.18im $p |- ( ( ph <-> ps ) -> -. ( ph <-> -. ps ) ) $=
    ( wb wn pm5.19 bibi1 notbid mpbiri ) ABCZABDZCZDBJCZDBEIKLABJFGH $.

  $( A consequence of exclusive or.  For decidable propositions this is an
     equivalence, as seen at ~ xornbidc .  (Contributed by Jim Kingdon,
     10-Mar-2018.) $)
  xornbi $p  |- ( ( ph \/_ ps ) -> -. ( ph <-> ps ) ) $=
    ( wxo wn wb xorbin pm5.18im con2i syl ) ABCABDEZABEZDABFKJABGHI $.

  $( Two ways to express "exclusive or" between decidable propositions.
     (Contributed by Jim Kingdon, 12-Apr-2018.) $)
  xor3dc $p |- ( DECID ph -> ( DECID ps ->
      ( -. ( ph <-> ps ) <-> ( ph <-> -. ps ) ) ) ) $=
    ( wdc wb wn wa dcn dcbi syl5 imp pm5.18dc a1d con2biddc mpd bicomd ex ) ACZ
    BCZABDZEZABEZDZDQRFZUBTUCUBCZUBTDQRUDRUACQUDBGAUAHIJUCSUBUCSUBEDZUDQRUEABKJ
    LMNOP $.

  $( ` \/_ ` is commutative.  (Contributed by David A. Wheeler, 6-Oct-2018.) $)
  xorcom $p |- ( ( ph \/_ ps ) <-> ( ps \/_ ph ) ) $=
    ( wo wa wn wxo orcom ancom notbii anbi12i df-xor 3bitr4i ) ABCZABDZEZDBACZB
    ADZEZDABFBAFMPORABGNQABHIJABKBAKL $.

  $( A decidable proposition is equivalent to a decidable proposition or its
     negation.  Based on theorem *5.15 of [WhiteheadRussell] p. 124.
     (Contributed by Jim Kingdon, 18-Apr-2018.) $)
  pm5.15dc $p |- ( DECID ph -> ( DECID ps ->
      ( ( ph <-> ps ) \/ ( ph <-> -. ps ) ) ) ) $=
    ( wdc wb wn wo wa wi xor3dc imp biimpd dcbi dfordc syl mpbird ex ) ACZBCZAB
    DZABEDZFZQRGZUASEZTHZUBUCTQRUCTDABIJKUBSCZUAUDDQRUEABLJSTMNOP $.

  $( Two ways to express "exclusive or" between decidable propositions.
     (Contributed by Jim Kingdon, 17-Apr-2018.) $)
  xor2dc $p |- ( DECID ph -> ( DECID ps ->
      ( -. ( ph <-> ps ) <-> ( ( ph \/ ps ) /\ -. ( ph /\ ps ) ) ) ) ) $=
    ( wdc wb wn wo wa xor3dc imp pm5.17dc adantl bitr4d ex ) ACZBCZABDEZABFABGE
    GZDNOGPABEDZQNOPRDABHIOQRDNABJKLM $.

  $( Exclusive or is equivalent to negated biconditional for decidable
     propositions.  (Contributed by Jim Kingdon, 27-Apr-2018.) $)
  xornbidc $p  |- ( DECID ph -> ( DECID ps ->
      ( ( ph \/_ ps ) <-> -. ( ph <-> ps ) ) ) ) $=
    ( wdc wxo wb wn wa wo xor2dc imp df-xor syl6rbbr ex ) ACZBCZABDZABEFZENOGQA
    BHABGFGZPNOQREABIJABKLM $.

  $( Two ways to express "exclusive or" between decidable propositions.
     Theorem *5.22 of [WhiteheadRussell] p. 124, but for decidable
     propositions.  (Contributed by Jim Kingdon, 5-May-2018.) $)
  xordc $p |- ( DECID ph -> ( DECID ps ->
      ( -. ( ph <-> ps ) <-> ( ( ph /\ -. ps ) \/ ( ps /\ -. ph ) ) ) ) ) $=
    ( wdc wb wn wa wo wxo excxor ancom orbi2i bitri xornbidc imp syl5rbbr ex )
    ACZBCZABDEZABEFZBAEZFZGZDUCABHZQRFSUDTUABFZGUCABIUEUBTUABJKLQRUDSDABMNOP $.

  $( Exclusive or implies the left proposition is decidable.  (Contributed by
     Jim Kingdon, 12-Mar-2018.) $)
  xordc1 $p |- ( ( ph \/_ ps ) -> DECID ph ) $=
    ( wo wa wn wxo wdc andir simpl imnan ancom xchbinxr pm3.35 sylan2br orim12i
    wi sylbi df-xor df-dc 3imtr4i ) ABCABDZEZDZAAEZCZABFAGUCAUBDZBUBDZCUEABUBHU
    FAUGUDAUBIUBBBUDPZUDUHBADUABAJABKLBUDMNOQABRAST $.

  $( Move negation outside of biconditional, for decidable propositions.
     Compare Theorem *5.18 of [WhiteheadRussell] p. 124.  (Contributed by Jim
     Kingdon, 18-Apr-2018.) $)
  nbbndc $p |- ( DECID ph -> ( DECID ps ->
      ( ( -. ph <-> ps ) <-> -. ( ph <-> ps ) ) ) ) $=
    ( wdc wn wb wa xor3dc imp con2bidc bitrd bicom syl6rbb ex ) ACZBCZADZBEZABE
    DZENOFZRBPEZQSRABDEZTNORUAEABGHNOUATEABIHJBPKLM $.

  $( Associative law for the biconditional, for decidable propositions.

     The classical version (without the decidability conditions) is 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 , and,
     interestingly, was not included in _Principia Mathematica_ but was
     apparently first noted by Jan Lukasiewicz circa 1923.  (Contributed by Jim
     Kingdon, 4-May-2018.) $)
  biassdc $p |- ( DECID ph -> ( DECID ps -> ( DECID ch ->
      ( ( ( ph <-> ps ) <-> ch ) <-> ( ph <-> ( ps <-> ch ) ) ) ) ) ) $=
    ( wdc wb wn wo wa wi df-dc pm5.501 bibi1d bitr3d a1d nbbndc imp adantl nbn2
    adantr ex jaoi sylbi expd ) ADZBDZCDZABEZCEZABCEZEZEZUDAAFZGUEUFHZUKIZAJAUN
    ULAUKUMAUIUHUJABUGCABKLAUIKMNULUMUKULUMHZUIFZUHUJUOBFZCEZUPUHUMURUPEZULUEUF
    USBCOPQULURUHEUMULUQUGCABRLSMULUPUJEUMAUIRSMTUAUBUC $.

  $( Lukasiewicz's shortest axiom for equivalential calculus (but modified to
     require decidable propositions).  Storrs McCall, ed., _Polish Logic
     1920-1939_ (Oxford, 1967), p. 96.  (Contributed by Jim Kingdon,
     5-May-2018.) $)
  bilukdc $p |- ( ( ( DECID ph /\ DECID ps ) /\ DECID ch ) ->
      ( ( ph <-> ps ) <-> ( ( ch <-> ps ) <-> ( ph <-> ch ) ) ) ) $=
    ( wdc wa wb bicom bibi1i biassdc imp31 syl5bb ancom1s dcbi imp adantr simpr
    syl9 syl3c mpbid simplr adantlr bitr4d ) ADZBDZEZCDZEZABFZCBACFZFZFZCBFUIFZ
    UGUHCFZUJFZUHUKFZUDUCUFUNUMBAFZCFZUDUCEUFEUJUHUPCABGHUDUCUFUQUJFBACIJKLUGUH
    DZUFUJDZUNUOFUEURUFUCUDURABMNOUEUFPZUCUDUFUSUCUFUIDZUDUSACMZBUIMQJUHCUJIRSU
    GUFUDVAULUKFUTUCUDUFTUCUFVAUDUCUFVAVBNUACBUIIRUB $.

  $( An alternate definition of the biconditional for decidable propositions.
     Theorem *5.23 of [WhiteheadRussell] p. 124, but with decidability
     conditions.  (Contributed by Jim Kingdon, 5-May-2018.) $)
  dfbi3dc $p |- ( DECID ph -> ( DECID ps ->
      ( ( ph <-> ps ) <-> ( ( ph /\ ps ) \/ ( -. ph /\ -. ps ) ) ) ) ) $=
    ( wdc wb wa wn dcn xordc imp sylan2 pm5.18dc notnotbdc anbi2d ancom orbi12d
    wo a1i adantl 3bitr4d ex ) ACZBCZABDZABEZAFZBFZEZPZDUAUBEAUFDFZAUFFZEZUFUEE
    ZPZUCUHUBUAUFCZUIUMDZBGUAUNUOAUFHIJUAUBUCUIDABKIUBUHUMDUAUBUDUKUGULUBBUJABL
    MUGULDUBUEUFNQORST $.

  $( Theorem *5.24 of [WhiteheadRussell] p. 124, but for decidable
     propositions.  (Contributed by Jim Kingdon, 5-May-2018.) $)
  pm5.24dc $p |- ( DECID ph -> ( DECID ps ->
      ( -. ( ( ph /\ ps ) \/ ( -. ph /\ -. ps ) ) <->
                ( ( ph /\ -. ps ) \/ ( ps /\ -. ph ) ) ) ) ) $=
    ( wdc wa wn wo wb dfbi3dc imp notbid xordc bitr3d ex ) ACZBCZABDAEZBEZDFZEZ
    AQDBPDFZGNODZABGZEZSTUAUBRNOUBRGABHIJNOUCTGABKILM $.

  $( Conjunction distributes over exclusive-or, for decidable propositions.
     This is one way to interpret the distributive law of multiplication over
     addition in modulo 2 arithmetic.  (Contributed by Jim Kingdon,
     14-Jul-2018.) $)
  xordidc $p |- ( DECID ph -> ( DECID ps -> ( DECID ch ->
    ( ( ph /\ ( ps \/_ ch ) ) <->
      ( ( ph /\ ps ) \/_ ( ph /\ ch ) ) ) ) ) ) $=
    ( wdc wxo wa wb wn dcbi imp wi annimdc pm5.32 notbii syl6bb sylan2 xornbidc
    adantl anbi2d dcan adantrr adantrl sylc 3bitr4d exp32 ) ADZBDZCDZABCEZFZABF
    ZACFZEZGUFUGUHFZFZABCGZHZFZUKULGZHZUJUMUNUFUPDZURUTGUGUHVABCIJUFVAFURAUPKZH
    ZUTUFVAURVCGAUPLJVBUSABCMNOPUOUIUQAUNUIUQGZUFUGUHVDBCQJRSUOUKDZULDZUMUTGUFU
    GVEUHUFUGVEABTJUAUFUHVFUGUFUHVFACTJUBUKULQUCUDUE $.

  $( Conjunction distributes over exclusive-or.  (Contributed by Mario Carneiro
     and Jim Kingdon, 7-Oct-2018.) $)
  anxordi $p |- ( ( ph /\ ( ps \/_ ch ) ) <->
      ( ( ph /\ ps ) \/_ ( ph /\ ch ) ) ) $=
    ( wxo wa simpl wo wn df-xor simplbi jaoi syl ibar xorbi12d bitr3d pm5.21nii
    ) ABCDZEZAABEZACEZDZAQFUASTGZAUAUBSTEHSTIJSATABFACFKLAQRUAAQMABSCTABMACMNOP
    $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Truth tables: Operations on true and false constants
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  For classical logic, truth tables can be used to define propositional
  logic operations, by showing the results of those operations for all
  possible combinations of true ( ` T. ` ) and false ( ` F. ` ).

  Although the intuitionistic logic connectives are not as simply defined,
  ` T. ` and ` F. ` do play similar roles as in classical logic and most
  theorems from classical logic continue to hold.

  Here we show that our definitions and axioms produce equivalent results for
  ` T. ` and ` F. ` as we would get from truth tables for
  ` /\ ` (conjunction aka logical 'and') ~ wa ,
  ` \/ ` (disjunction aka logical inclusive 'or') ~ wo ,
  ` -> ` (implies) ~ wi ,
  ` -. ` (not) ~ wn ,
  ` <-> ` (logical equivalence) ~ df-bi , 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 David A. Wheeler, 23-Feb-2018.) $)
  falantru $p |- ( ( F. /\ T. ) <-> F. ) $=
    ( wfal wtru wa simpl falim impbii ) ABCZAABDGEF $.

  $( 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 tru a1bi bicomi ) ABACBADEF $.

  $( 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 David A. Wheeler, 23-Feb-2018.) $)
  trubifal $p |- ( ( T. <-> F. ) <-> F. ) $=
    ( wtru wfal wb wi wa dfbi2 truimfal falimtru anbi12i falantru 3bitri ) ABCA
    BDZBADZEBAEBABFLBMAGHIJK $.

  $( A ` <-> ` identity.  (Contributed by Anthony Hart, 22-Oct-2010.)  (Proof
     shortened by Andrew Salmon, 13-May-2011.) $)
  falbitru $p |- ( ( F. <-> T. ) <-> F. ) $=
    ( wfal wtru wb bicom trubifal bitri ) ABCBACAABDEF $.

  $( 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 David A. Wheeler, 2-Mar-2018.) $)
  truxortru $p |- ( ( T. \/_ T. ) <-> F. ) $=
    ( wtru wxo wo wa wn df-xor oridm nottru anidm xchnxbir anbi12i truan 3bitri
    wfal ) AABAACZAADZEZDANDNAAFOAQNAGANPHAIJKNLM $.

  $( A ` \/_ ` identity.  (Contributed by David A. Wheeler, 2-Mar-2018.) $)
  truxorfal $p |- ( ( T. \/_ F. ) <-> T. ) $=
    ( wtru wfal wxo wo wa wn df-xor truorfal notfal truan xchnxbir anidm 3bitri
    anbi12i ) ABCABDZABEZFZEAAEAABGOAQAHBAPIBJKNALM $.

  $( A ` \/_ ` identity.  (Contributed by David A. Wheeler, 2-Mar-2018.) $)
  falxortru $p |- ( ( F. \/_ T. ) <-> T. ) $=
    ( wfal wtru wo wa wn df-xor falortru notfal falantru xchnxbir anbi12i anidm
    wxo 3bitri ) ABMABCZABDZEZDBBDBABFOBQBGABPHIJKBLN $.

  $( A ` \/_ ` identity.  (Contributed by David A. Wheeler, 2-Mar-2018.) $)
  falxorfal $p |- ( ( F. \/_ F. ) <-> F. ) $=
    ( wfal wxo wo wa wn wtru df-xor oridm notfal anidm xchnxbir falantru 3bitri
    anbi12i ) AABAACZAADZEZDAFDAAAGOAQFAHAFPIAJKNLM $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Stoic logic indemonstrables (Chrysippus of Soli)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  The Greek Stoics developed a system of 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 ).
  For more about Aristotle's system, see barbara and related theorems.

  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.  Since we
  assume or prove all of indemonstrables, the system of logic we use here is as
  at least as strong as the set of Stoic indemonstrables.  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 .  This set of indemonstrables is not the entire
  system of Stoic logic.

$)

  ${
    $( 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, 2-Mar-2018.) $)
    mptxor $p |- -. ps $=
      ( wo wa wn wxo df-xor mpbi simpri mptnan ) ABCABEZABFGZABHMNFDABIJKL $.
  $}

  ${
    $( 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 alternate 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 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 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
      $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Logical implication (continued)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    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 $.
  $}

  ${
    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 $.
  $}

  $( Exportation implication also converting head from biconditional to
     conditional.  (Contributed by Alan Sare, 31-Dec-2011.) $)
  exbir $p |- ( ( ( ph /\ ps ) -> ( ch <-> th ) ) ->
              ( ph -> ( ps -> ( th -> ch ) ) ) ) $=
    ( wa wb wi bi2 imim2i expd ) ABEZCDFZGABDCGZLMKCDHIJ $.

  $( ~ impexp with a 3-conjunct antecedent.  (Contributed by Alan Sare,
     31-Dec-2011.) $)
  3impexp $p |- ( ( ( ph /\ ps /\ ch ) -> th ) <->
                ( ph -> ( ps -> ( ch -> th ) ) ) ) $=
    ( w3a wi id 3expd 3impd impbii ) ABCEDFZABCDFFFZKABCDKGHLABCDLGIJ $.

  $( ~ 3impexp with biconditional consequent of antecedent that is commuted in
     consequent.  (Contributed by Alan Sare, 31-Dec-2011.) $)
  3impexpbicom $p |- ( ( ( ph /\ ps /\ ch ) -> ( th <-> ta ) ) <->
                     ( ph -> ( ps -> ( ch -> ( ta <-> th ) ) ) ) ) $=
    ( w3a wb wi bicom imbi2 biimpcd mpi 3expd 3impexp biimpri syl6ibr impbii )
    ABCFZDEGZHZABCEDGZHHHZTABCUATSUAGZRUAHZDEIZUCTUDSUARJKLMUBRUASUDUBABCUANOUE
    PQ $.

  ${
    3impexpbicomi.1 $e |- ( ( ph /\ ps /\ ch ) -> ( th <-> ta ) ) $.
    $( Deduction form of ~ 3impexpbicom .  (Contributed by Alan Sare,
       31-Dec-2011.) $)
    3impexpbicomi $p |- ( ph -> ( ps -> ( ch -> ( ta <-> th ) ) ) ) $=
      ( wb w3a bicomd 3exp ) ABCEDGABCHDEFIJ $.
  $}

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

  ${
    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 $.
  $}

  $( Implication form of ~ simplbi2com .  (Contributed by Alan Sare,
     22-Jul-2012.) $)
  simplbi2comg $p |- ( ( ph <-> ( ps /\ ch ) ) -> ( ch -> ( ps -> ph ) ) ) $=
    ( wa wb bi2 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 $.
  $}

  ${
    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 $.
  $}

  ${
    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 $.
  $}

$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Predicate calculus mostly without distinct variables
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Universal quantifier (continued)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  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 $.

  $( Axiom of Quantified Implication.  Axiom C4 of [Monk2] p. 105.
     (Contributed by NM, 5-Aug-1993.) $)
  ax-5 $a |- ( A. x ( ph -> ps ) -> ( A. x ph -> A. x ps ) ) $.

  $( Axiom of Quantifier Commutation.  This axiom says universal quantifiers
     can be swapped.  One of the predicate logic axioms which do not involve
     equality.  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.  (Contributed by NM, 5-Aug-1993.) $)
  ax-7 $a |- ( A. x A. y ph -> A. y A. x ph ) $.

  ${
    ax-g.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 ~ 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, 5-Aug-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 $.
  $}

  ${
    a7s.1 $e |- ( A. x A. y ph -> ps ) $.
    $( Swap quantifiers in an antecedent.  (Contributed by NM, 5-Aug-1993.) $)
    a7s $p |- ( A. y A. x ph -> ps ) $=
      ( wal ax-7 syl ) ACFDFADFCFBADCGEH $.
  $}

  ${
    alimi.1 $e |- ( ph -> ps ) $.
    $( Inference quantifying both antecedent and consequent.  (Contributed by
       NM, 5-Aug-1993.) $)
    alimi $p |- ( A. x ph -> A. x ps ) $=
      ( wi wal ax-5 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 $.
  $}

  $( Theorem 19.20 of [Margaris] p. 90.  (Contributed by NM, 5-Aug-1993.)
     (Proof shortened by O'Cat, 30-Mar-2008.) $)
  alim $p |- ( A. x ( ph -> ps ) -> ( A. x ph -> A. x ps ) ) $=
    ( ax-5 ) ABCD $.

  ${
    al2imi.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Inference quantifying antecedent, nested antecedent, and consequent.
       (Contributed by NM, 5-Aug-1993.) $)
    al2imi $p |- ( A. x ph -> ( A. x ps -> A. x ch ) ) $=
      ( wal wi alimi alim syl ) ADFBCGZDFBDFCDFGAKDEHBCDIJ $.
  $}

  ${
    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 $.
  $}

  $c F/ $.  $( The not-free symbol. $)

  $( Extend wff definition to include the not-free predicate. $)
  wnf $a wff F/ 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 ~ nf2 for an alternate definition which does not involve
     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 bare expression ` x = x ` , even though ` x `
     would be considered free in the usual textbook definition, because the
     value of ` x ` in the expression ` x = x ` cannot affect the truth of the
     expression (and thus substitution will not change the result).
     (Contributed by Mario Carneiro, 11-Aug-2016.) $)
  df-nf $a |- ( F/ x ph <-> A. x ( ph -> A. x ph ) ) $.

  ${
    nfi.1 $e |- ( ph -> A. x ph ) $.
    $( Deduce that ` x ` is not free in ` ph ` from the definition.
       (Contributed by Mario Carneiro, 11-Aug-2016.) $)
    nfi $p |- F/ x ph $=
      ( wnf wal wi df-nf mpgbir ) ABDAABEFBABGCH $.
  $}

  ${
    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, 5-Aug-1993.) $)
    hbth $p |- ( ph -> A. x ph ) $=
      ( wal ax-gen a1i ) ABDAABCEF $.

    $( No variable is (effectively) free in a theorem.  (Contributed by Mario
       Carneiro, 11-Aug-2016.) $)
    nfth $p |- F/ x ph $=
      ( hbth nfi ) ABABCDE $.
  $}

  ${
    nfnth.1 $e |- -. ph $.
    $( No variable is (effectively) free in a non-theorem.  (Contributed by
       Mario Carneiro, 6-Dec-2016.) $)
    nfnth $p |- F/ x ph $=
      ( wal pm2.21i nfi ) ABAABDCEF $.
  $}

  $( The true constant has no free variables.  (This can also be proven in one
     step with ~ nfv , but this proof does not use ~ ax-17 .)  (Contributed by
     Mario Carneiro, 6-Oct-2016.) $)
  nftru $p |- F/ x T. $=
    ( wtru tru nfth ) BACD $.

  ${
    alimdh.1 $e |- ( ph -> A. x ph ) $.
    alimdh.2 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction from Theorem 19.20 of [Margaris] p. 90.  (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, 5-Aug-1993.) $)
  albi $p |- ( A. x ( ph <-> ps ) -> ( A. x ph <-> A. x ps ) ) $=
    ( wb wal bi1 al2imi bi2 impbid ) ABDZCEACEBCEJABCABFGJBACABHGI $.

  ${
    alrimih.1 $e |- ( ph -> A. x ph ) $.
    alrimih.2 $e |- ( ph -> ps ) $.
    $( Inference from Theorem 19.21 of [Margaris] p. 90.  (Contributed by NM,
       5-Aug-1993.)  (New usage is discouraged.) $)
    alrimih $p |- ( ph -> A. x ps ) $=
      ( wal alimi syl ) AACFBCFDABCEGH $.
  $}

  ${
    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 $.

    $( Inference adding 2 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 $.
  $}

  ${
    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.  (Contributed by Jonathan Ben-Naim, 3-Jun-2011.) $)
    hbxfrbi $p |- ( ph -> A. x ph ) $=
      ( wal albii 3imtr4i ) BBCFAACFEDABCDGH $.
  $}

  ${
    nfbii.1 $e |- ( ph <-> ps ) $.
    $( Equality theorem for not-free.  (Contributed by Mario Carneiro,
       11-Aug-2016.) $)
    nfbii $p |- ( F/ x ph <-> F/ x ps ) $=
      ( wal wi wnf albii imbi12i df-nf 3bitr4i ) AACEZFZCEBBCEZFZCEACGBCGMOCABL
      NDABCDHIHACJBCJK $.

    ${
      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 $.
    $}
  $}

  ${
    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-7 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, 5-Aug-1993.) $)
    hbal $p |- ( A. y ph -> A. x A. y ph ) $=
      ( wal alimi ax-7 syl ) ACEZABEZCEIBEAJCDFACBGH $.
  $}

  $( Theorem 19.5 of [Margaris] p. 89.  (Contributed by NM, 5-Aug-1993.) $)
  alcom $p |- ( A. x A. y ph <-> A. y A. x ph ) $=
    ( wal ax-7 impbii ) ACDBDABDCDABCEACBEF $.

  ${
    alrimdh.1 $e |- ( ph -> A. x ph ) $.
    alrimdh.2 $e |- ( ps -> A. x ps ) $.
    alrimdh.3 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction from Theorem 19.21 of [Margaris] p. 90.  (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 $.
  $}

  ${
    albidh.1 $e |- ( ph -> A. x ph ) $.
    albidh.2 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Formula-building rule for universal quantifier (deduction rule).
       (Contributed by NM, 5-Aug-1993.) $)
    albidh $p |- ( ph -> ( A. x ps <-> A. x ch ) ) $=
      ( wb wal alrimih albi syl ) ABCGZDHBDHCDHGALDEFIBCDJK $.
  $}

  $( Theorem 19.26 of [Margaris] p. 90.  Also Theorem *10.22 of
     [WhiteheadRussell] p. 119.  (Contributed by NM, 5-Aug-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 of [Margaris] p. 90 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 of [Margaris] p. 90 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.33 of [Margaris] p. 90.  (Contributed by NM, 5-Aug-1993.) $)
  19.33 $p |- ( ( A. x ph \/ A. x ps ) -> A. x ( ph \/ ps ) ) $=
    ( wal wo orc alimi olc jaoi ) ACDABEZCDBCDAJCABFGBJCBAHGI $.

  $( 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 4 universal quantifiers twice.  (Contributed by NM, 2-Feb-2005.)
     (Proof shortened by Wolf Lammen, 28-Jun-2014.) $)
  alrot4 $p |- ( A. x A. y A. z A. w ph <-> A. z A. w A. x A. y ph ) $=
    ( wal alrot3 albii alcom 3bitri ) AEFDFCFZBFACFZEFZDFZBFMBFZDFLBFEFZDFKNBAC
    DEGHMBDIOPDLBEIHJ $.

  $( 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 2 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 $.

  ${
    hband.1 $e |- ( ph -> ( ps -> A. x ps ) ) $.
    hband.2 $e |- ( ph -> ( ch -> A. x ch ) ) $.
    $( Deduction form of bound-variable hypothesis builder ~ hban .
       (Contributed by NM, 2-Jan-2002.) $)
    hband $p |- ( ph -> ( ( ps /\ ch ) -> A. x ( ps /\ ch ) ) ) $=
      ( wa wal anim12d 19.26 syl6ibr ) ABCGZBDHZCDHZGLDHABMCNEFIBCDJK $.
  $}

  ${
    hb3and.1 $e |- ( ph -> ( ps -> A. x ps ) ) $.
    hb3and.2 $e |- ( ph -> ( ch -> A. x ch ) ) $.
    hb3and.3 $e |- ( ph -> ( th -> A. x th ) ) $.
    $( Deduction form of bound-variable hypothesis builder ~ hb3an .
       (Contributed by NM, 17-Feb-2013.) $)
    hb3and $p |- ( ph -> ( ( ps /\ ch /\ th ) -> A. x ( ps /\ ch /\ th ) ) ) $=
      ( w3a wal 3anim123d 19.26-3an syl6ibr ) ABCDIZBEJZCEJZDEJZINEJABOCPDQFGHK
      BCDELM $.
  $}

  ${
    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-7 syl6 ) ABDGZBCGZDGKCGABLDEFHBDCIJ $.
  $}

  $( 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 $.

  $( ` x ` is bound in ` E. x ph ` .  One of the axioms of predicate logic.
     (Contributed by Mario Carneiro, 31-Jan-2015.) $)
  ax-ie1 $a |- ( E. x ph -> A. x E. x ph ) $.

  $( Define existential quantification. ` E. x ph ` means "there exists at
     least one set ` x ` such that ` ph ` is true."  One of the axioms of
     predicate logic.  (Contributed by Mario Carneiro, 31-Jan-2015.) $)
  ax-ie2 $a |- ( A. x ( ps -> A. x ps ) ->
               ( A. x ( ph -> ps ) <-> ( E. x ph -> ps ) ) ) $.

  $( ` x ` is not free in ` E. x ph ` .  (Contributed by NM, 5-Aug-1993.) $)
  hbe1 $p |- ( E. x ph -> A. x E. x ph ) $=
    ( ax-ie1 ) ABC $.

  $( ` x ` is not free in ` E. x ph ` .  (Contributed by Mario Carneiro,
     11-Aug-2016.) $)
  nfe1 $p |- F/ x E. x ph $=
    ( wex hbe1 nfi ) ABCBABDE $.

  $( Closed form of Theorem 19.23 of [Margaris] p. 90.  (Contributed by NM,
     7-Nov-2005.)  (Revised by Mario Carneiro, 1-Feb-2015.) $)
  19.23ht $p |- ( A. x ( ps -> A. x ps ) ->
               ( A. x ( ph -> ps ) <-> ( E. x ph -> ps ) ) ) $=
    ( ax-ie2 ) ABCD $.

  ${
    19.23h.1 $e |- ( ps -> A. x ps ) $.
    $( Theorem 19.23 of [Margaris] p. 90.  (Contributed by NM, 5-Aug-1993.)
       (Revised by Mario Carneiro, 1-Feb-2015.) $)
    19.23h $p |- ( A. x ( ph -> ps ) <-> ( E. x ph -> ps ) ) $=
      ( wal wi wex wb ax-gen 19.23ht ax-mp ) BBCEFZCEABFCEACGBFHLCDIABCJK $.
  $}

  $( Theorem 19.7 of [Margaris] p. 89.  To read this intuitionistically, think
     of it as "if ` ph ` can be refuted for all ` x ` , then it is not possible
     to find an ` x ` for which ` ph ` holds" (and likewise for the converse).
     Comparing this with ~ dfexdc illustrates that statements which look
     similar (to someone used to classical logic) can be different
     intuitionistically due to different placement of negations.  (Contributed
     by NM, 5-Aug-1993.)  (Revised by NM, 1-Feb-2015.)  (Revised by Mario
     Carneiro, 12-May-2015.) $)
  alnex $p |- ( A. x -. ph <-> -. E. x ph ) $=
    ( wfal wi wal wex wn fal pm2.21i 19.23h dfnot albii 3bitr4i ) ACDZBEABFZCDA
    GZBEOGACBCCBEHIJPNBAKLOKM $.

  ${
    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 $.
  $}

  $( Defining ` E. x ph ` given decidability.  It is common in classical logic
     to define ` E. x ph ` as ` -. A. x -. ph ` but in intuitionistic logic
     without a decidability condition, that is only an implication not an
     equivalence, as seen at ~ exalim .  (Contributed by Jim Kingdon,
     15-Mar-2018.) $)
  dfexdc $p |- ( DECID E. x ph
                 -> ( E. x ph <-> -. A. x -. ph ) ) $=
    ( wn wal wex wb wdc alnex a1i con2biidc ) ACBDZABEZKLCFLGABHIJ $.

  $( One direction of a classical definition of existential quantification.
     One direction of Definition of [Margaris] p. 49.  For a decidable
     proposition, this is an equivalence, as seen as ~ dfexdc .  (Contributed
     by Jim Kingdon, 29-Jul-2018.) $)
  exalim $p |- ( E. x ph -> -. A. x -. ph ) $=
    ( wn wal wex alnex biimpi con2i ) ACBDZABEZIJCABFGH $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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 $.

  $( Declare the membership predicate symbol. $)
  $c e. $. $( Stylized epsilon $)

  $( --- Start of patch to prevent connective overloading $)
  ${
    $v A $.
    $v B $.
    wcel.cA $f class A $.
    wcel.cB $f class B $.
    $( Extend wff definition to include the membership connective between
       classes.

       (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
       ~ wceq 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.) $)
    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 syntactical 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 $.
  $( --- End of patch to prevent connective overloading $)

  $( --- Start of old code before overloading prevention patch. $)
  $(
  @( 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.

     After we introduce ~ cv and ~ wcel in set theory, this syntax construction
     becomes redundant, since it can be derived with the proof
     "vx cv vy cv wcel". @)
  wel @a wff x e. y @.
  $)
  $( --- End of old code before overloading prevention patch. $)

  $( Axiom of Equality.  One of the equality and substitution axioms of
     predicate calculus with equality.  This is similar to, but not quite, a
     transitive law for equality (proved later as ~ equtr ).  Axiom scheme C8'
     in [Megill] p. 448 (p. 16 of the preprint).  Also appears as Axiom C7 of
     [Monk2] p. 105.

     Axioms ~ ax-8 through ~ ax-16 are the axioms having to do with equality,
     substitution, and logical properties of our binary predicate ` e. ` (which
     later in set theory will mean "is a member of").  Note that all axioms
     except ~ ax-16 and ~ ax-17 are still valid even when ` x ` , ` y ` , and
     ` z ` are replaced with the same variable because they do not have any
     distinct variable (Metamath's $d) restrictions.  Distinct variable
     restrictions are required for ~ ax-16 and ~ ax-17 only.  (Contributed by
     NM, 5-Aug-1993.) $)
  ax-8 $a |- ( x = y -> ( x = z -> y = z ) ) $.

  $( 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-10o ("o" for "old") and was
     replaced with this shorter ~ ax-10 in May 2008.  The old axiom is proved
     from this one as theorem ~ ax10o .  Conversely, this axiom is proved from
     ~ ax-10o as theorem ~ ax10 .  (Contributed by NM, 5-Aug-1993.) $)
  ax-10 $a |- ( A. x x = y -> A. y y = x ) $.

  $( Axiom of Variable 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.

     Variants of this axiom which are equivalent in classical logic but which
     have not been shown to be equivalent for intuitionistic logic are
     ~ ax11v , ~ ax11v2 and ~ ax-11o .  (Contributed by NM, 5-Aug-1993.) $)
  ax-11 $a |- ( x = y -> ( A. 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 has been modified from the original ~ ax-12 for compatibility
     with intuitionistic logic.  (Contributed by Mario Carneiro,
     31-Jan-2015.) $)
  ax-i12 $a |- ( A. z z = x \/ ( A. z z = y \/
                 A. z ( x = y -> A. z x = y ) ) ) $.

  $( Axiom of bundling.  The general idea of this axiom is that two variables
     are either distinct or non-distinct.  That idea could be expressed as
     ` A. z z = x \/ -. A. z z = x ` .  However, we instead choose an axiom
     which has many of the same consequences, but which is different with
     respect to a universe which contains only one object. ` A. z z = x ` holds
     if ` z ` and ` x ` are the same variable, likewise for ` z ` and ` y ` ,
     and ` A. x A. z ( x = y -> A. z x = y ) ` holds if ` z ` is distinct from
     the others (and the universe has at least two objects).

     As with other statements of the form "x is decidable (either true or
     false)", this does not entail the full Law of the Excluded Middle (which
     is the proposition that all statements are decidable), but instead merely
     the assertion that particular kinds of statements are decidable (or in
     this case, an assertion similar to decidability).

     This axiom implies ~ ax-i12 as can be seen at ~ axi12 .  Whether ~ ax-bndl
     can be proved from the remaining axioms including ~ ax-i12 is not known.

     The reason we call this "bundling" is that a statement without a distinct
     variable constraint "bundles" together two statements, one in which the
     two variables are the same and one in which they are different.
     (Contributed by Mario Carneiro and Jim Kingdon, 14-Mar-2018.) $)
  ax-bndl $a |- ( A. z z = x \/
                       ( A. z z = y \/ A. x A. z ( x = y -> A. z x = y ) ) ) $.

  $( 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-12 ,
     ~ ax-16 , and ~ ax-17 .

     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 .

     (Contributed by NM, 5-Aug-1993.) $)
  ax-4 $a |- ( A. x ph -> ph ) $.

  $( Specialization.  Another name for ~ ax-4 .  (Contributed by NM,
     21-May-2008.) $)
  sp $p |- ( A. x ph -> ph ) $=
    ( ax-4 ) ABC $.

  $( Rederive the original version of the axiom from ~ ax-i12 .  (Contributed
     by Mario Carneiro, 3-Feb-2015.) $)
  ax-12 $p |- ( -. A. z z = x -> ( -. A. z z = y ->
              ( x = y -> A. z x = y ) ) ) $=
    ( cv wceq wal wn wi wo ax-i12 ori ord ax-4 syl6 ) CDZADZECFZGZOBDZECFZGPSEZ
    UACFHZCFZUBRTUCQTUCIABCJKLUBCMN $.

  $( Another name for ~ ax-i12 .  (Contributed by NM, 3-Feb-2015.) $)
  ax12or $p |- ( A. z z = x \/ ( A. z z = y \/
                 A. z ( x = y -> A. z x = y ) ) ) $=
    ( ax-i12 ) ABCD $.

  $( Axiom of Equality.  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 the ` e. ` binary
     predicate.  Axiom scheme C12' in [Megill] p. 448 (p. 16 of the preprint).
     It is a special case of Axiom B8 (p. 75) of system S2 of [Tarski] p. 77.
     "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.  (Contributed by NM, 5-Aug-1993.) $)
  ax-13 $a |- ( x = y -> ( x e. z -> y e. z ) ) $.

  $( Axiom of Equality.  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 the ` e. ` binary
     predicate.  Axiom scheme C13' in [Megill] p. 448 (p. 16 of the preprint).
     It is a special case of Axiom B8 (p. 75) of system S2 of [Tarski] p. 77.
     (Contributed by NM, 5-Aug-1993.) $)
  ax-14 $a |- ( x = y -> ( z e. x -> z e. y ) ) $.

  $( 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-5 ,
     ~ ax-8 , ~ ax-12 , and ~ ax-gen .  This shows that this can be proved
     without ~ ax-9 , even though the theorem ~ equid cannot be.  A shorter
     proof using ~ ax-9 is obtainable from ~ equid and ~ hbth .)  (Contributed
     by NM, 13-Jan-2011.)  (Proof shortened by Wolf Lammen, 23-Mar-2014.) $)
  hbequid $p |- ( x = x -> A. y x = x ) $=
    ( cv wceq wal wi wo ax12or ax-8 pm2.43i alimi a1d ax-4 jaoi ax-mp ) BCACZDZ
    BEZRPPDZSBEZFZBEZGZGUAAABHRUAUCRTSQSBQSBAAIJKLZRUAUBUDUABMNNO $.

  $( Proof that ~ ax-i12 follows from ~ ax-bndl .  So that we can track which
     theorems rely on ~ ax-bndl , proofs should reference ~ ax-i12 rather than
     this theorem.  (Contributed by Jim Kingdon, 17-Aug-2018.)  (New usage is
     discouraged).  (Proof modification is discouraged.) $)
  axi12 $p |- ( A. z z = x \/ ( A. z z = y \/
                 A. z ( x = y -> A. z x = y ) ) ) $=
    ( cv wceq wal wi wo ax-bndl sp orim2i ax-mp ) CDZADZECFZMBDZECFZNPEZRCFGCFZ
    AFZHZHOQSHZHABCIUAUBOTSQSAJKKL $.

  $( 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).
     (Contributed by NM, 5-Aug-1993.) $)
  alequcom $p |- ( A. x x = y -> A. y y = x ) $=
    ( ax-10 ) ABC $.

  ${
    alequcoms.1 $e |- ( A. x x = y -> ph ) $.
    $( A commutation rule for identical variable specifiers.  (Contributed by
       NM, 5-Aug-1993.) $)
    alequcoms $p |- ( A. y y = x -> ph ) $=
      ( weq wal alequcom syl ) CBECFBCEBFACBGDH $.
  $}

  ${
    nalequcoms.1 $e |- ( -. A. x x = y -> ph ) $.
    $( A commutation rule for distinct variable specifiers.  (Contributed by
       NM, 2-Jan-2002.)  (Revised by Mario Carneiro, 2-Feb-2015.) $)
    nalequcoms $p |- ( -. A. y y = x -> ph ) $=
      ( cv wceq wal wn alequcom con3i syl ) CEZBEZFCGZHMLFBGZHAONBCIJDK $.
  $}

  $( Consequence of the definition of not-free.  (Contributed by Mario
     Carneiro, 26-Sep-2016.) $)
  nfr $p |- ( F/ x ph -> ( ph -> A. x ph ) ) $=
    ( wnf wal wi df-nf sp sylbi ) ABCAABDEZBDIABFIBGH $.

  ${
    nfri.1 $e |- F/ x ph $.
    $( Consequence of the definition of not-free.  (Contributed by Mario
       Carneiro, 11-Aug-2016.) $)
    nfri $p |- ( ph -> A. x ph ) $=
      ( wnf wal wi nfr ax-mp ) ABDAABEFCABGH $.
  $}

  ${
    nfrd.1 $e |- ( ph -> F/ x ps ) $.
    $( Consequence of the definition of not-free in a context.  (Contributed by
       Mario Carneiro, 11-Aug-2016.) $)
    nfrd $p |- ( ph -> ( ps -> A. x ps ) ) $=
      ( wnf wal wi nfr syl ) ABCEBBCFGDBCHI $.
  $}

  ${
    alimd.1 $e |- F/ x ph $.
    alimd.2 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction from Theorem 19.20 of [Margaris] p. 90.  (Contributed by Mario
       Carneiro, 24-Sep-2016.) $)
    alimd $p |- ( ph -> ( A. x ps -> A. x ch ) ) $=
      ( nfri alimdh ) ABCDADEGFH $.
  $}

  ${
    alrimi.1 $e |- F/ x ph $.
    alrimi.2 $e |- ( ph -> ps ) $.
    $( Inference from Theorem 19.21 of [Margaris] p. 90.  (Contributed by Mario
       Carneiro, 24-Sep-2016.) $)
    alrimi $p |- ( ph -> A. x ps ) $=
      ( nfri alrimih ) ABCACDFEG $.
  $}

  ${
    nfd.1 $e |- F/ x ph $.
    nfd.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.) $)
    nfd $p |- ( ph -> F/ x ps ) $=
      ( wal wi wnf nfri alrimih df-nf sylibr ) ABBCFGZCFBCHAMCACDIEJBCKL $.
  $}

  ${
    nfdh.1 $e |- ( ph -> A. x ph ) $.
    nfdh.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.) $)
    nfdh $p |- ( ph -> F/ x ps ) $=
      ( nfi nfd ) ABCACDFEG $.
  $}

  ${
    nfrimi.1 $e |- F/ x ph $.
    nfrimi.2 $e |- F/ x ( ph -> ps ) $.
    $( Moving an antecedent outside ` F/ ` .  (Contributed by Jim Kingdon,
       23-Mar-2018.) $)
    nfrimi $p |- ( ph -> F/ x ps ) $=
      ( wal wi nfri ax-5 syl2im pm2.86i nfd ) ABCDABBCFZABGZNCFAACFMNCEHACDHABC
      IJKL $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Axiom ax-17 - first use of the $d distinct variable statement
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $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.

       (Contributed by NM, 5-Aug-1993.) $)
    ax-17 $a |- ( ph -> A. x ph ) $.
  $}

  ${
    $d x ps $.
    $( ~ ax-17 with antecedent.  (Contributed by NM, 1-Mar-2013.) $)
    a17d $p |- ( ph -> ( ps -> A. x ps ) ) $=
      ( wal wi ax-17 a1i ) BBCDEABCFG $.
  $}

  ${
    $d x ph $.
    $( If ` x ` is not present in ` ph ` , then ` x ` is not free in ` ph ` .
       (Contributed by Mario Carneiro, 11-Aug-2016.) $)
    nfv $p |- F/ x ph $=
      ( ax-17 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 $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Introduce Axiom of Existence
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Axiom of Existence.  One of the equality and substitution axioms of
     predicate calculus with equality.  One thing this axiom tells us is that
     at least one thing exists (although ~ ax-4 and possibly others also tell
     us that, i.e. they are not valid in the empty domain of a "free logic").
     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.)  Another name for this theorem is ~ a9e , which
     has additional remarks.  (Contributed by Mario Carneiro, 31-Jan-2015.) $)
  ax-i9 $a |- E. x x = y $.

  $( Derive ~ ax-9 from ~ ax-i9 , the modified version for intuitionistic
     logic.  Although ~ ax-9 does hold intuistionistically, in intuitionistic
     logic it is weaker than ~ ax-i9 .  (Contributed by NM, 3-Feb-2015.) $)
  ax-9 $p |- -. A. x -. x = y $=
    ( cv wceq wn wal wex ax-i9 notnoti alnex mtbir ) ACBCDZEAFLAGZEMABHILAJK $.

  $( ~ equid with some quantification and negation without using ~ ax-4 or
     ~ ax-17 .  (Contributed by NM, 13-Jan-2011.)  (Proof shortened by Wolf
     Lammen, 27-Feb-2014.) $)
  equidqe $p |- -. A. y -. x = x $=
    ( weq wn wal ax-9 ax-8 pm2.43i con3i alimi mto ) AACZDZBEBACZDZBEBAFMOBNLNL
    BAAGHIJK $.

  $( A special case of ~ ax-4 without using ~ ax-4 or ~ ax-17 .  (Contributed
     by NM, 13-Jan-2011.) $)
  ax4sp1 $p |- ( A. y -. x = x -> -. x = x ) $=
    ( weq wn wal equidqe pm2.21i ) AACDZBEHABFG $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Additional intuitionistic axioms
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( ` x ` is not free in ` A. x ph ` .  One of the axioms of predicate logic.
     (Contributed by Mario Carneiro, 31-Jan-2015.) $)
  ax-ial $a |- ( A. x ph -> A. x A. x ph ) $.

  $( Axiom of quantifier collection.  (Contributed by Mario Carneiro,
     31-Jan-2015.) $)
  ax-i5r $a |- ( ( A. x ph -> A. x ps ) -> A. x ( A. x ph -> ps ) ) $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Predicate calculus including ax-4, without distinct variables
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    spi.1 $e |- A. x ph $.
    $( Inference rule reversing generalization.  (Contributed by NM,
       5-Aug-1993.) $)
    spi $p |- ph $=
      ( wal ax-4 ax-mp ) ABDACABEF $.
  $}

  ${
    sps.1 $e |- ( ph -> ps ) $.
    $( Generalization of antecedent.  (Contributed by NM, 5-Aug-1993.) $)
    sps $p |- ( A. x ph -> ps ) $=
      ( wal sp syl ) ACEABACFDG $.
  $}

  ${
    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 $.
  $}

  ${
    nfbidf.1 $e |- F/ x ph $.
    nfbidf.2 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( An equality theorem for effectively not free.  (Contributed by Mario
       Carneiro, 4-Oct-2016.) $)
    nfbidf $p |- ( ph -> ( F/ x ps <-> F/ x ch ) ) $=
      ( wal wi wnf nfri albidh imbi12d df-nf 3bitr4g ) ABBDGZHZDGCCDGZHZDGBDICD
      IAPRDADEJZABCOQFABCDSFKLKBDMCDMN $.
  $}

  $( ` 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, 5-Aug-1993.) $)
  hba1 $p |- ( A. x ph -> A. x A. x ph ) $=
    ( ax-ial ) ABC $.

  $( ` x ` is not free in ` A. x ph ` .  (Contributed by Mario Carneiro,
     11-Aug-2016.) $)
  nfa1 $p |- F/ x A. x ph $=
    ( wal hba1 nfi ) ABCBABDE $.

  ${
    a5i.1 $e |- ( A. x ph -> ps ) $.
    $( Inference generalizing a consequent.  (Contributed by NM,
       5-Aug-1993.) $)
    a5i $p |- ( A. x ph -> A. x ps ) $=
      ( wal wi hba1 ax-5 syl5 mpg ) ACEZBFZKBCEZFCKKCELCEMACGKBCHIDJ $.
  $}

  $( ` x ` is not free in ` F/ x ph ` .  (Contributed by Mario Carneiro,
     11-Aug-2016.) $)
  nfnf1 $p |- F/ x F/ x ph $=
    ( wnf wal wi df-nf nfa1 nfxfr ) ABCAABDEZBDBABFIBGH $.

  ${
    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, 5-Aug-1993.)  (Proof shortened
       by O'Cat, 3-Mar-2008.)  (Revised by Mario Carneiro, 2-Feb-2015.) $)
    hbim $p |- ( ( ph -> ps ) -> A. x ( ph -> ps ) ) $=
      ( wi wal ax-4 imim12i ax-i5r imim1i alimi 3syl ) ABFZACGZBCGZFOBFZCGNCGOA
      BPACHEIABCJQNCAOBDKLM $.

    $( If ` x ` is not free in ` ph ` and ` ps ` , it is not free in
       ` ( ph \/ ps ) ` .  (Contributed by NM, 5-Aug-1993.)  (Revised by NM,
       2-Feb-2015.) $)
    hbor $p |- ( ( ph \/ ps ) -> A. x ( ph \/ ps ) ) $=
      ( wo wal orc alimi syl olc jaoi ) AABFZCGZBAACGNDAMCABHIJBBCGNEBMCBAKIJL
      $.

    $( If ` x ` is not free in ` ph ` and ` ps ` , it is not free in
       ` ( ph /\ ps ) ` .  (Contributed by NM, 5-Aug-1993.)  (Proof shortened
       by Mario Carneiro, 2-Feb-2015.) $)
    hban $p |- ( ( ph /\ ps ) -> A. x ( ph /\ ps ) ) $=
      ( wa wal anim12i 19.26 sylibr ) ABFZACGZBCGZFKCGALBMDEHABCIJ $.

    $( If ` x ` is not free in ` ph ` and ` ps ` , it is not free in
       ` ( ph <-> ps ) ` .  (Contributed by NM, 5-Aug-1993.) $)
    hbbi $p |- ( ( ph <-> ps ) -> A. x ( ph <-> ps ) ) $=
      ( wb wi wa dfbi2 hbim hban hbxfrbi ) ABFABGZBAGZHCABIMNCABCDEJBACEDJKL $.

    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.) $)
    hb3or $p |- ( ( ph \/ ps \/ ch ) -> A. x ( ph \/ ps \/ ch ) ) $=
      ( w3o wo df-3or hbor hbxfrbi ) ABCHABIZCIDABCJMCDABDEFKGKL $.

    $( If ` x ` is not free in ` ph ` , ` ps ` , and ` ch ` , it is not free in
       ` ( ph /\ ps /\ ch ) ` .  (Contributed by NM, 14-Sep-2003.) $)
    hb3an $p |- ( ( ph /\ ps /\ ch ) -> A. x ( ph /\ ps /\ ch ) ) $=
      ( w3a wa df-3an hban hbxfrbi ) ABCHABIZCIDABCJMCDABDEFKGKL $.
  $}

  $( Lemma 24 of [Monk2] p. 114.  (Contributed by NM, 29-May-2008.) $)
  hba2 $p |- ( A. y A. x ph -> A. x A. y A. x ph ) $=
    ( wal hba1 hbal ) ABDBCABEF $.

  $( Lemma 23 of [Monk2] p. 114.  (Contributed by NM, 29-May-2008.) $)
  hbia1 $p |- ( ( A. x ph -> A. x ps ) -> A. x ( A. x ph -> A. x ps ) ) $=
    ( wal hba1 hbim ) ACDBCDCACEBCEF $.

  ${
    19.3h.1 $e |- ( ph -> A. x ph ) $.
    $( A wff may be quantified with a variable not free in it.  Theorem 19.3 of
       [Margaris] p. 89.  (Contributed by NM, 5-Aug-1993.)  (Revised by NM,
       21-May-2007.) $)
    19.3h $p |- ( A. x ph <-> ph ) $=
      ( wal ax-4 impbii ) ABDAABECF $.
  $}

  ${
    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.  (Contributed by NM, 5-Aug-1993.)  (Revised by Mario
       Carneiro, 24-Sep-2016.) $)
    19.3 $p |- ( A. x ph <-> ph ) $=
      ( wal sp nfri impbii ) ABDAABEABCFG $.
  $}

  ${
    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.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 ` ."  New proofs should use ~ 19.21
       instead.  (Contributed by NM, 5-Aug-1993.)
       (New usage is discouraged.) $)
    19.21h $p |- ( A. x ( ph -> ps ) <-> ( ph -> A. x ps ) ) $=
      ( wi wal alim syl5 hba1 hbim ax-4 imim2i alrimih impbii ) ABEZCFZABCFZEZA
      ACFPQDABCGHROCAQCDBCIJQBABCKLMN $.
  $}

  ${
    19.21bi.1 $e |- ( ph -> A. x ps ) $.
    $( Inference from Theorem 19.21 of [Margaris] p. 90.  (Contributed by NM,
       5-Aug-1993.) $)
    19.21bi $p |- ( ph -> ps ) $=
      ( wal ax-4 syl ) ABCEBDBCFG $.
  $}

  ${
    19.21bbi.1 $e |- ( ph -> A. x A. y ps ) $.
    $( Inference removing double quantifier.  (Contributed by NM,
       20-Apr-1994.) $)
    19.21bbi $p |- ( ph -> ps ) $=
      ( wal 19.21bi ) ABDABDFCEGG $.
  $}

  ${
    19.27h.1 $e |- ( ps -> A. x ps ) $.
    $( Theorem 19.27 of [Margaris] p. 90.  (Contributed by NM, 5-Aug-1993.) $)
    19.27h $p |- ( A. x ( ph /\ ps ) <-> ( A. x ph /\ ps ) ) $=
      ( wa wal 19.26 19.3h anbi2i bitri ) ABECFACFZBCFZEKBEABCGLBKBCDHIJ $.
  $}

  ${
    19.27.1 $e |- F/ x ps $.
    $( Theorem 19.27 of [Margaris] p. 90.  (Contributed by NM, 5-Aug-1993.) $)
    19.27 $p |- ( A. x ( ph /\ ps ) <-> ( A. x ph /\ ps ) ) $=
      ( wa wal 19.26 19.3 anbi2i bitri ) ABECFACFZBCFZEKBEABCGLBKBCDHIJ $.
  $}

  ${
    19.28h.1 $e |- ( ph -> A. x ph ) $.
    $( Theorem 19.28 of [Margaris] p. 90.  (Contributed by NM, 5-Aug-1993.) $)
    19.28h $p |- ( A. x ( ph /\ ps ) <-> ( ph /\ A. x ps ) ) $=
      ( wa wal 19.26 19.3h anbi1i bitri ) ABECFACFZBCFZEALEABCGKALACDHIJ $.
  $}

  ${
    19.28.1 $e |- F/ x ph $.
    $( Theorem 19.28 of [Margaris] p. 90.  (Contributed by NM, 5-Aug-1993.) $)
    19.28 $p |- ( A. x ( ph /\ ps ) <-> ( ph /\ A. x ps ) ) $=
      ( wa wal 19.26 19.3 anbi1i bitri ) ABECFACFZBCFZEALEABCGKALACDHIJ $.
  $}

  ${
    nfan1.1 $e |- F/ x ph $.
    nfan1.2 $e |- ( ph -> F/ x ps ) $.
    $( A closed form of ~ nfan .  (Contributed by Mario Carneiro,
       3-Oct-2016.) $)
    nfan1 $p |- F/ x ( ph /\ ps ) $=
      ( wa wal nfrd imdistani nfri 19.28h sylibr nfi ) ABFZCNABCGZFNCGABOABCEHI
      ABCACDJKLM $.
  $}

  ${
    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.) $)
    nfan $p |- F/ x ( ph /\ ps ) $=
      ( wnf a1i nfan1 ) ABCDBCFAEGH $.

    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 $.
  $}

  ${
    nford.1 $e |- ( ph -> F/ x ps ) $.
    nford.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 Jim Kingdon, 29-Oct-2019.) $)
    nford $p |- ( ph -> F/ x ( ps \/ ch ) ) $=
      ( wo wal wi wnf wa df-nf anbi12i biimpi syl2anc 19.26 sylibr alimi imim2i
      orc olc jaao syl ) ABCGZUDDHZIZDHZUDDJABBDHZIZCCDHZIZKZDHZUGAUIDHZUKDHZKZ
      UMABDJZCDJZUPEFUQURKUPUQUNURUOBDLCDLMNOUIUKDPQULUFDUIBUEUKCUHUEBBUDDBCTRS
      UJUECCUDDCBUARSUBRUCUDDLQ $.
  $}

  ${
    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 wal wnf jca df-nf anbi12i 19.26 bitr4i prth syl6ibr alimi sylbi syl
      wi sylibr ) ABCGZUBDHZTZDHZUBDIABDIZCDIZGZUEAUFUGEFJUHBBDHZTZCCDHZTZGZDHZ
      UEUHUJDHZULDHZGUNUFUOUGUPBDKCDKLUJULDMNUMUDDUMUBUIUKGUCBUICUKOBCDMPQRSUBD
      KUA $.

    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 $.
  $}

  ${
    hbim1.1 $e |- ( ph -> A. x ph ) $.
    hbim1.2 $e |- ( ph -> ( ps -> A. x ps ) ) $.
    $( A closed form of ~ hbim .  (Contributed by NM, 5-Aug-1993.) $)
    hbim1 $p |- ( ( ph -> ps ) -> A. x ( ph -> ps ) ) $=
      ( wi wal a2i 19.21h sylibr ) ABFZABCGZFKCGABLEHABCDIJ $.
  $}

  ${
    nfim1.1 $e |- F/ x ph $.
    nfim1.2 $e |- ( ph -> F/ x ps ) $.
    $( A closed form of ~ nfim .  (Contributed by NM, 5-Aug-1993.)  (Revised by
       Mario Carneiro, 24-Sep-2016.)  (Proof shortened by Wolf Lammen,
       2-Jan-2018.) $)
    nfim1 $p |- F/ x ( ph -> ps ) $=
      ( wi nfri nfrd hbim1 nfi ) ABFCABCACDGABCEHIJ $.
  $}

  ${
    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 ) ` .  (Contributed by Mario Carneiro, 11-Aug-2016.)
       (Proof shortened by Wolf Lammen, 2-Jan-2018.) $)
    nfim $p |- F/ x ( ph -> ps ) $=
      ( wnf a1i nfim1 ) ABCDBCFAEGH $.
  $}

  ${
    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, 1-Jan-2002.)  (Revised by NM, 2-Feb-2015.) $)
    hbimd $p |- ( ph -> ( ( ps -> ch ) -> A. x ( ps -> ch ) ) ) $=
      ( wi wal imim2d ax-4 imim1i ax-i5r syl syl6 imim1d alimdh syld ) ABCHZBDI
      ZCHZDIZSDIASBCDIZHZUBACUCBGJUDTUCHUBTBUCBDKLBCDMNOAUASDEABTCFPQR $.
  $}

  ${
    nfor.1 $e |- F/ x ph $.
    nfor.2 $e |- F/ x ps $.
    $( If ` x ` is not free in ` ph ` and ` ps ` , it is not free in
       ` ( ph \/ ps ) ` .  (Contributed by Jim Kingdon, 11-Mar-2018.) $)
    nfor $p |- F/ x ( ph \/ ps ) $=
      ( wo nfri hbor nfi ) ABFCABCACDGBCEGHI $.
  $}

  ${
    hbbid.1 $e |- ( ph -> A. x ph ) $.
    hbbid.2 $e |- ( ph -> ( ps -> A. x ps ) ) $.
    hbbid.3 $e |- ( ph -> ( ch -> A. x ch ) ) $.
    $( Deduction form of bound-variable hypothesis builder ~ hbbi .
       (Contributed by NM, 1-Jan-2002.) $)
    hbbid $p |- ( ph -> ( ( ps <-> ch ) -> A. x ( ps <-> ch ) ) ) $=
      ( wi wa wal wb hbimd anim12d dfbi2 albiim 3imtr4g ) ABCHZCBHZIQDJZRDJZIBC
      KZUADJAQSRTABCDEFGLACBDEGFLMBCNBCDOP $.
  $}

  ${
    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 nfri hbal nfi ) ACEBABCABDFGH $.

    $( 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 wal wi df-nf nfal nfim nfxfr ) ACEAACFZGZCFBACHMBCALBDABCDIJIK $.
  $}

  $( Closed form of ~ nfal .  (Contributed by Jim Kingdon, 11-May-2018.) $)
  nfalt $p |- ( A. y F/ x ph -> F/ x A. y ph ) $=
    ( wal wi wnf alim alcom syl6ib alimi df-nf albii bitri 3imtr4i ) AABDZEZCDZ
    BDZACDZSBDZEZBDABFZCDZSBFQUABQSOCDTAOCGACBHIJUCPBDZCDRUBUDCABKLPCBHMSBKN $.

  $( Lemma 24 of [Monk2] p. 114.  (Contributed by Mario Carneiro,
     24-Sep-2016.) $)
  nfa2 $p |- F/ x A. y A. x ph $=
    ( wal nfa1 nfal ) ABDBCABEF $.

  $( 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 $.

  $( Closed form of Theorem 19.21 of [Margaris] p. 90.  (Contributed by NM,
     27-May-1997.)  (New usage is discouraged.) $)
  19.21ht $p |- ( A. x ( ph -> A. x ph ) ->
               ( A. x ( ph -> ps ) <-> ( ph -> A. x ps ) ) ) $=
    ( wal wi alim imim2d com12 sps hba1 ax-4 a1i hbimd imim2i alimi syl6 impbid
    ) AACDZEZCDZABEZCDZABCDZEZSUBUDECUBSUDUBRUCAABCFGHITUDUDCDUBTAUCCSCJSCKUCUC
    CDETBCJLMUDUACUCBABCKNOPQ $.

  $( Closed form of Theorem 19.21 of [Margaris] p. 90.  (Contributed by NM,
     27-May-1997.) $)
  19.21t $p |- ( F/ x ph ->
               ( A. x ( ph -> ps ) <-> ( ph -> A. x ps ) ) ) $=
    ( wnf wal wi wb df-nf 19.21ht sylbi ) ACDAACEFCEABFCEABCEFGACHABCIJ $.

  ${
    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 ` ."  (Contributed by NM, 5-Aug-1993.)
       (Revised by Mario Carneiro, 24-Sep-2016.) $)
    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.  (Contributed by NM, 22-Sep-1993.)  (Revised by Mario Carneiro,
       12-Oct-2016.)  (Proof shortened by Wolf Lammen, 1-Jan-2018.) $)
    stdpc5 $p |- ( A. x ( ph -> ps ) -> ( ph -> A. x ps ) ) $=
      ( wi wal 19.21 biimpi ) ABECFABCFEABCDGH $.
  $}

  ${
    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 ) ` .  (Contributed by Mario Carneiro, 24-Sep-2016.)
       (Proof shortened by Wolf Lammen, 30-Dec-2017.) $)
    nfimd $p |- ( ph -> F/ x ( ps -> ch ) ) $=
      ( wnf wi wal nfnf1 nfri imim2d 19.21t biimprd syl9r alrimdh df-nf syl6ibr
      nfr sylc ) ABDGZCDGZBCHZDGZEFUAUBUCUCDIZHZDIUDUAUBUFDUADBDJKUBDCDJKUBUCBC
      DIZHZUAUEUBCUGBCDSLUAUEUHBCDMNOPUCDQRT $.
  $}

  ${
    aaanh.1 $e |- ( ph -> A. y ph ) $.
    aaanh.2 $e |- ( ps -> A. x ps ) $.
    $( Rearrange universal quantifiers.  (Contributed by NM, 12-Aug-1993.) $)
    aaanh $p |- ( A. x A. y ( ph /\ ps ) <-> ( A. x ph /\ A. y ps ) ) $=
      ( wa wal 19.28h albii hbal 19.27h bitri ) ABGDHZCHABDHZGZCHACHOGNPCABDEIJ
      AOCBCDFKLM $.
  $}

  ${
    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 $.
  $}

  ${
    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 $.
  $}

  ${
    nfbi.1 $e |- F/ x ph $.
    nfbi.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, 2-Jan-2018.) $)
    nfbi $p |- F/ x ( ph <-> ps ) $=
      ( wb wnf wtru a1i nfbid trud ) ABFCGHABCACGHDIBCGHEIJK $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The existential quantifier
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( If a wff is true, it is true for at least one instance.  Special case of
     Theorem 19.8 of [Margaris] p. 89.  (Contributed by NM, 5-Aug-1993.) $)
  19.8a $p |- ( ph -> E. x ph ) $=
    ( wex wi wal id hbe1 19.23h mpbir spi ) AABCZDZBLBEKKDKFAKBABGHIJ $.

  ${
    19.23bi.1 $e |- ( E. x ph -> ps ) $.
    $( Inference from Theorem 19.23 of [Margaris] p. 90.  (Contributed by NM,
       5-Aug-1993.) $)
    19.23bi $p |- ( ph -> ps ) $=
      ( wex 19.8a syl ) AACEBACFDG $.
  $}

  ${
    exlimih.1 $e |- ( ps -> A. x ps ) $.
    exlimih.2 $e |- ( ph -> ps ) $.
    $( Inference from Theorem 19.23 of [Margaris] p. 90.  (Contributed by NM,
       5-Aug-1993.)  (Proof shortened by Andrew Salmon, 13-May-2011.) $)
    exlimih $p |- ( E. x ph -> ps ) $=
      ( wi wex 19.23h mpgbi ) ABFACGBFCABCDHEI $.
  $}

  ${
    exlimi.1 $e |- F/ x ps $.
    exlimi.2 $e |- ( ph -> ps ) $.
    $( Inference from Theorem 19.23 of [Margaris] p. 90.  (Contributed by Mario
       Carneiro, 24-Sep-2016.) $)
    exlimi $p |- ( E. x ph -> ps ) $=
      ( nfri exlimih ) ABCBCDFEG $.
  $}

  ${
    exlimd2.1 $e |- ( ph -> A. x ph ) $.
    exlimd2.2 $e |- ( ph -> ( ch -> A. x ch ) ) $.
    exlimd2.3 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction from Theorem 19.23 of [Margaris] p. 90.  Similar to ~ exlimdh
       but with one slightly different hypothesis.  (Contributed by Jim
       Kingdon, 30-Dec-2017.) $)
    exlimd2 $p |- ( ph -> ( E. x ps -> ch ) ) $=
      ( wal wi wex alrimih 19.23ht biimpd sylc ) ACCDHIZDHZBCIZDHZBDJCIZAODEFKA
      QDEGKPRSBCDLMN $.
  $}

  ${
    exlimdh.1 $e |- ( ph -> A. x ph ) $.
    exlimdh.2 $e |- ( ch -> A. x ch ) $.
    exlimdh.3 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction from Theorem 19.23 of [Margaris] p. 90.  (Contributed by NM,
       28-Jan-1997.) $)
    exlimdh $p |- ( ph -> ( E. x ps -> ch ) ) $=
      ( wi wal wex alrimih 19.23h sylib ) ABCHZDIBDJCHANDEGKBCDFLM $.
  $}

  ${
    exlimd.1 $e |- F/ x ph $.
    exlimd.2 $e |- F/ x ch $.
    exlimd.3 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction from Theorem 19.9 of [Margaris] p. 89.  (Contributed by Mario
       Carneiro, 24-Sep-2016.)  (Proof rewritten by Jim Kingdon,
       18-Jun-2018.) $)
    exlimd $p |- ( ph -> ( E. x ps -> ch ) ) $=
      ( nfri exlimdh ) ABCDADEHCDFHGI $.
  $}

  ${
    $d x ps $.
    exlimiv.1 $e |- ( ph -> ps ) $.
    $( Inference from Theorem 19.23 of [Margaris] p. 90.

       This inference, along with our many variants 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.mathsci.appstate.edu/~~jlh/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 (ficticious) 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, 5-Aug-1993.)  (Revised
       by NM, 25-Jul-2012.) $)
    exlimiv $p |- ( E. x ph -> ps ) $=
      ( ax-17 exlimih ) ABCBCEDF $.
  $}

  $( Theorem 19.22 of [Margaris] p. 90.  (Contributed by NM, 5-Aug-1993.)
     (Proof shortened by Wolf Lammen, 4-Jul-2014.) $)
  exim $p |- ( A. x ( ph -> ps ) -> ( E. x ph -> E. x ps ) ) $=
    ( wi wal wex hba1 hbe1 19.8a imim2i sps exlimdh ) ABDZCEABCFZCMCGBCHMANDCBN
    ABCIJKL $.

  ${
    eximi.1 $e |- ( ph -> ps ) $.
    $( Inference adding existential quantifier to antecedent and consequent.
       (Contributed by NM, 5-Aug-1993.) $)
    eximi $p |- ( E. x ph -> E. x ps ) $=
      ( wi wex exim mpg ) ABEACFBCFECABCGDH $.

    $( Inference adding 2 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 $.
  $}

  $( 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 imnan albii alnex bitri ) ABDEZCFABGZDZCFNCHDMOCABIJNCKL
    $.

  $( Theorem 19.18 of [Margaris] p. 90.  (Contributed by NM, 5-Aug-1993.) $)
  exbi $p |- ( A. x ( ph <-> ps ) -> ( E. x ph <-> E. x ps ) ) $=
    ( wb wal wex wi bi1 alimi exim syl bi2 impbid ) ABDZCEZACFZBCFZOABGZCEPQGNR
    CABHIABCJKOBAGZCEQPGNSCABLIBACJKM $.

  ${
    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 $.

    $( Inference adding 2 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 $.

    $( Inference adding 3 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 $.
  $}

  $( 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 $.

  ${
    alrimdd.1 $e |- F/ x ph $.
    alrimdd.2 $e |- ( ph -> F/ x ps ) $.
    alrimdd.3 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction from Theorem 19.21 of [Margaris] p. 90.  (Contributed by Mario
       Carneiro, 24-Sep-2016.) $)
    alrimdd $p |- ( ph -> ( ps -> A. x ch ) ) $=
      ( wal nfrd alimd syld ) ABBDHCDHABDFIABCDEGJK $.
  $}

  ${
    alrimd.1 $e |- F/ x ph $.
    alrimd.2 $e |- F/ x ps $.
    alrimd.3 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction from Theorem 19.21 of [Margaris] p. 90.  (Contributed by Mario
       Carneiro, 24-Sep-2016.) $)
    alrimd $p |- ( ph -> ( ps -> A. x ch ) ) $=
      ( wnf a1i alrimdd ) ABCDEBDHAFIGJ $.
  $}

  ${
    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 ) ) $=
      ( wi wal wex alrimih exim syl ) ABCGZDHBDICDIGAMDEFJBCDKL $.
  $}

  ${
    eximd.1 $e |- F/ x ph $.
    eximd.2 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction from Theorem 19.22 of [Margaris] p. 90.  (Contributed by Mario
       Carneiro, 24-Sep-2016.) $)
    eximd $p |- ( ph -> ( E. x ps -> E. x ch ) ) $=
      ( nfri eximdh ) ABCDADEGFH $.
  $}

  ${
    nexd.1 $e |- ( ph -> A. x ph ) $.
    nexd.2 $e |- ( ph -> -. ps ) $.
    $( Deduction for generalization rule for negated wff.  (Contributed by NM,
       2-Jan-2002.) $)
    nexd $p |- ( ph -> -. E. x ps ) $=
      ( wn wal wex alrimih alnex sylib ) ABFZCGBCHFALCDEIBCJK $.
  $}

  ${
    exbidh.1 $e |- ( ph -> A. x ph ) $.
    exbidh.2 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Formula-building rule for existential quantifier (deduction rule).
       (Contributed by NM, 5-Aug-1993.) $)
    exbidh $p |- ( ph -> ( E. x ps <-> E. x ch ) ) $=
      ( wb wal wex alrimih exbi syl ) ABCGZDHBDICDIGAMDEFJBCDKL $.
  $}

  ${
    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 ) ) $=
      ( nfri albidh ) ABCDADEGFH $.
  $}

  ${
    exbid.1 $e |- F/ x ph $.
    exbid.2 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Formula-building rule for existential quantifier (deduction rule).
       (Contributed by Mario Carneiro, 24-Sep-2016.) $)
    exbid $p |- ( ph -> ( E. x ps <-> E. x ch ) ) $=
      ( nfri exbidh ) ABCDADEGFH $.
  $}

  $( 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.6 of [Margaris] p. 89, given a decidability condition.  The
     forward direction holds for all propositions, as seen at ~ alexim .
     (Contributed by Jim Kingdon, 2-Jun-2018.) $)
  alexdc $p |- ( A. x DECID ph -> ( A. x ph <-> -. E. x -. ph ) ) $=
    ( wdc wal wn wex nfa1 wb notnotbdc sps albid alnex syl6bb ) ACZBDZABDAEZEZB
    DPBFEOAQBNBGNAQHBAIJKPBLM $.

  $( Theorem 19.29 of [Margaris] p. 90.  (Contributed by NM, 5-Aug-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 wi pm3.2 alimi exim syl imp ) ACDZBCEZABFZCEZMBOGZCDNPGAQCABHI
    BOCJKL $.

  $( Variation of Theorem 19.29 of [Margaris] p. 90.  (Contributed by NM,
     18-Aug-1993.) $)
  19.29r $p |- ( ( E. x ph /\ A. x ps ) -> E. x ( ph /\ ps ) ) $=
    ( wal wex wa 19.29 ancom exancom 3imtr4i ) BCDZACEZFBAFCELKFABFCEBACGLKHABC
    IJ $.

  $( Variation of Theorem 19.29 of [Margaris] p. 90 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 Theorem 19.29 of [Margaris] p. 90 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 $.

  $( Forward direction of Theorem 19.35 of [Margaris] p. 90.  The converse
     holds for classical logic but not (for all propositions) in intuitionistic
     logic (Contributed by Mario Carneiro, 2-Feb-2015.) $)
  19.35-1 $p |- ( E. x ( ph -> ps ) -> ( A. x ph -> E. x ps ) ) $=
    ( wal wi wex wa 19.29 pm3.35 eximi syl expcom ) ACDZABEZCFZBCFZMOGANGZCFPAN
    CHQBCABIJKL $.

  ${
    19.35i.1 $e |- E. x ( ph -> ps ) $.
    $( Inference from Theorem 19.35 of [Margaris] p. 90.  (Contributed by NM,
       5-Aug-1993.)  (Revised by NM, 2-Feb-2015.) $)
    19.35i $p |- ( A. x ph -> E. x ps ) $=
      ( wi wex wal 19.35-1 ax-mp ) ABECFACGBCFEDABCHI $.
  $}

  $( Theorem 19.25 of [Margaris] p. 90.  (Contributed by NM, 5-Aug-1993.)
     (Revised by NM, 2-Feb-2015.) $)
  19.25 $p |- ( A. y E. x ( ph -> ps ) ->
              ( E. y A. x ph -> E. y E. x ps ) ) $=
    ( wi wex wal 19.35-1 alimi exim syl ) ABECFZDGACGZBCFZEZDGMDFNDFELODABCHIMN
    DJK $.

  $( Theorem 19.30 of [Margaris] p. 90, with an additional decidability
     condition.  (Contributed by Jim Kingdon, 21-Jul-2018.) $)
  19.30dc $p |- ( DECID E. x ps ->
      ( A. x ( ph \/ ps ) -> ( A. x ph \/ E. x ps ) ) ) $=
    ( wex wdc wn wo wal df-dc olc a1d alnex orel2 al2imi sylbir syl6 jaoi sylbi
    wi orc ) BCDZEUAUAFZGABGZCHZACHZUAGZSZUAIUAUGUBUAUFUDUAUEJKUBUDUEUFUBBFZCHU
    DUESBCLUHUCACBAMNOUEUATPQR $.

  $( Theorem 19.43 of [Margaris] p. 90.  (Contributed by NM, 5-Aug-1993.)
     (Proof shortened by Mario Carneiro, 2-Feb-2015.) $)
  19.43 $p |- ( E. x ( ph \/ ps ) <-> ( E. x ph \/ E. x ps ) ) $=
    ( wo wex hbe1 hbor 19.8a orim12i exlimih orc eximi olc jaoi impbii ) ABDZCE
    ZACEZBCEZDZPTCRSCACFBCFGARBSACHBCHIJRQSAPCABKLBPCBAMLNO $.

  $( The antecedent provides a condition implying the converse of ~ 19.33 .
     Compare Theorem 19.33 of [Margaris] p. 90.  This variation of ~ 19.33bdc
     is intuitionistically valid without a decidability condition.
     (Contributed by Mario Carneiro, 2-Feb-2015.) $)
  19.33b2 $p |- ( ( -. E. x ph \/ -. E. x ps ) ->
               ( A. x ( ph \/ ps ) <-> ( A. x ph \/ A. x ps ) ) ) $=
    ( wex wn wal orcom alnex orbi12i bitr4i pm2.53 orcoms al2imi orim12d syl5bi
    wo wi com12 19.33 impbid1 ) ACDEZBCDEZPZABPZCFZACFZBCFZPZUEUCUHUCBEZCFZAEZC
    FZPZUEUHUCUBUAPUMUAUBGUJUBULUABCHACHIJUEUJUFULUGUDUIACBAUIAQBAKLMUDUKBCABKM
    NORABCST $.

  $( Converse of ~ 19.33 given ` -. ( E. x ph /\ E. x ps ) ` and a decidability
     condition.  Compare Theorem 19.33 of [Margaris] p. 90.  For a version
     which does not require a decidability condition, see ~ 19.33b2
     (Contributed by Jim Kingdon, 23-Apr-2018.) $)
  19.33bdc $p |- ( DECID E. x ph -> ( -. ( E. x ph /\ E. x ps ) ->
               ( A. x ( ph \/ ps ) <-> ( A. x ph \/ A. x ps ) ) ) ) $=
    ( wex wdc wa wn wo wal wb ianordc 19.33b2 syl6bi ) ACDZENBCDZFGNGOGHABHCIAC
    IBCIHJNOKABCLM $.

  $( Theorem 19.40 of [Margaris] p. 90.  (Contributed by NM, 5-Aug-1993.) $)
  19.40 $p |- ( E. x ( ph /\ ps ) -> ( E. x ph /\ E. x ps ) ) $=
    ( wa wex exsimpl simpr eximi jca ) ABDZCEACEBCEABCFJBCABGHI $.

  $( Theorem *11.42 in [WhiteheadRussell] p. 163.  Theorem 19.40 of [Margaris]
     p. 90 with 2 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 $.

  $( 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 wal wa wb wex pm4.71 albii exbi sylbi ) ABDZCEAABFZGZCEACHNCHGMOCABIJA
    NCKL $.

  $( 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 $.

  $( 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 $.

  ${
    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, 5-Aug-1993.)  (Revised by NM, 2-Feb-2015.) $)
    hbex $p |- ( E. y ph -> A. x E. y ph ) $=
      ( wex wal hbe1 hbal 19.8a alrimih exlimih ) AACEZBFCLCBACGHALBDACIJK $.
  $}

  ${
    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.) $)
    nfex $p |- F/ x E. y ph $=
      ( wex nfri hbex nfi ) ACEBABCABDFGH $.
  $}

  $( Theorem 19.2 of [Margaris] p. 89, generalized to use two setvar variables.
     (Contributed by O'Cat, 31-Mar-2008.) $)
  19.2 $p |- ( A. x ph -> E. y ph ) $=
    ( wex 19.8a sps ) AACDBACEF $.

  ${
    i19.24.1 $e |- ( ( A. x ph -> E. x ps ) -> E. x ( ph -> ps ) ) $.
    $( Theorem 19.24 of [Margaris] p. 90, with an additional hypothesis.  The
       hypothesis is the converse of ~ 19.35-1 , and is a theorem of classical
       logic, but in intuitionistic logic it will only be provable for some
       propositions.  (Contributed by Jim Kingdon, 22-Jul-2018.) $)
    i19.24 $p |- ( ( A. x ph -> A. x ps ) -> E. x ( ph -> ps ) ) $=
      ( wal wi wex 19.2 imim2i syl ) ACEZBCEZFKBCGZFABFCGLMKBCCHIDJ $.

    $( Theorem 19.39 of [Margaris] p. 90, with an additional hypothesis.  The
       hypothesis is the converse of ~ 19.35-1 , and is a theorem of classical
       logic, but in intuitionistic logic it will only be provable for some
       propositions.  (Contributed by Jim Kingdon, 22-Jul-2018.) $)
    i19.39 $p |- ( ( E. x ph -> E. x ps ) -> E. x ( ph -> ps ) ) $=
      ( wex wi wal 19.2 imim1i syl ) ACEZBCEZFACGZLFABFCEMKLACCHIDJ $.
  $}

  $( A closed version of one direction of ~ 19.9 .  (Contributed by NM,
     5-Aug-1993.) $)
  19.9ht $p |- ( A. x ( ph -> A. x ph ) -> ( E. x ph -> ph ) ) $=
    ( wal wi wex id ax-gen 19.23ht mpbii ) AABCDBCAADZBCABEADJBAFGAABHI $.

  $( A closed version of ~ 19.9 .  (Contributed by NM, 5-Aug-1993.)  (Revised
     by Mario Carneiro, 24-Sep-2016.)  (Proof shortended by Wolf Lammen,
     30-Dec-2017.) $)
  19.9t $p |- ( F/ x ph -> ( E. x ph <-> ph ) ) $=
    ( wnf wex wal wi df-nf 19.9ht sylbi 19.8a impbid1 ) ABCZABDZALAABEFBEMAFABG
    ABHIABJK $.

  ${
    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.) $)
    19.9h $p |- ( E. x ph <-> ph ) $=
      ( wex wal wi 19.9ht mpg 19.8a impbii ) ABDZAAABEFKAFBABGCHABIJ $.
  $}

  ${
    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.  (Contributed by FL, 24-Mar-2007.)
       (Revised by Mario Carneiro, 24-Sep-2016.)  (Proof shortened by Wolf
       Lammen, 30-Dec-2017.) $)
    19.9 $p |- ( E. x ph <-> ph ) $=
      ( nfri 19.9h ) ABABCDE $.
  $}

  $( One direction of theorem 19.6 of [Margaris] p. 89.  The converse holds
     given a decidability condition, as seen at ~ alexdc .  (Contributed by Jim
     Kingdon, 2-Jul-2018.) $)
  alexim $p |- ( A. x ph -> -. E. x -. ph ) $=
    ( wal wn wex wfal wi pm2.24 alimi exim syl nfv 19.9 syl6ib dfnot sylibr ) A
    BCZADZBEZFGSDQSFBEZFQRFGZBCSTGAUABAFHIRFBJKFBFBLMNSOP $.

  $( One direction of Theorem 19.14 of [Margaris] p. 90.  In classical logic
     the converse also holds.  (Contributed by Jim Kingdon, 15-Jul-2018.) $)
  exnalim $p |- ( E. x -. ph -> -. A. x ph ) $=
    ( wal wn wex alexim con2i ) ABCADBEABFG $.

  $( A transformation of quantifiers and logical connectives.  In classical
     logic the converse also holds.  (Contributed by Jim Kingdon,
     15-Jul-2018.) $)
  exanaliim $p |- ( E. x ( ph /\ -. ps ) -> -. A. x ( ph -> ps ) ) $=
    ( wn wa wex wi wal annimim eximi exnalim syl ) ABDEZCFABGZDZCFNCHDMOCABIJNC
    KL $.

  $( A relationship between two quantifiers and negation.  (Contributed by Jim
     Kingdon, 27-Aug-2018.) $)
  alexnim $p |- ( A. x E. y -. ph -> -. E. x A. y ph ) $=
    ( wn wex wal exnalim alimi alnex sylib ) ADCEZBFACFZDZBFLBEDKMBACGHLBIJ $.

  ${
    ax6blem.1 $e |- ( ph -> A. x ph ) $.
    $( If ` x ` is not free in ` ph ` , it is not free in ` -. ph ` .  This
       theorem doesn't use ~ ax6b compared to ~ hbnt .  (Contributed by GD,
       27-Jan-2018.) $)
    ax6blem $p |- ( -. ph -> A. x -. ph ) $=
      ( wn wex wal id exlimih con3i alnex sylibr ) ADZABEZDLBFMAAABCAGHIABJK $.
  $}

  $( Quantified Negation.  Axiom C5-2 of [Monk2] p. 113.

     (Contributed by GD, 27-Jan-2018.) $)
  ax6b $p |- ( -. A. x ph -> A. x -. A. x ph ) $=
    ( wal ax-ial ax6blem ) ABCBABDE $.

  $( ` x ` is not free in ` -. A. x ph ` .  (Contributed by NM, 5-Aug-1993.)
     (Proof shortened by Wolf Lammen, 18-Aug-2014.) $)
  hbn1 $p |- ( -. A. x ph -> A. x -. A. x ph ) $=
    ( ax6b ) ABC $.

  $( Closed theorem version of bound-variable hypothesis builder ~ hbn .
     (Contributed by NM, 5-Aug-1993.)  (Revised by NM, 2-Feb-2015.) $)
  hbnt $p |- ( A. x ( ph -> A. x ph ) -> ( -. ph -> A. x -. ph ) ) $=
    ( wn wal wi ax-4 con3i ax6b syl con3 al2imi syl5 ) ACZABDZCZBDZANEZBDMBDMOP
    NAABFGABHIQOMBANJKL $.

  ${
    hbn.1 $e |- ( ph -> A. x ph ) $.
    $( If ` x ` is not free in ` ph ` , it is not free in ` -. ph ` .
       (Contributed by NM, 5-Aug-1993.) $)
    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 $.
  $}

  $( If ` x ` is not free in ` ph ` , then it is not free in ` -. ph ` .
     (Contributed by Mario Carneiro, 24-Sep-2016.)  (Proof shortened by Wolf
     Lammen, 28-Dec-2017.)  (Revised by BJ, 24-Jul-2019.) $)
  nfnt $p |- ( F/ x ph -> F/ x -. ph ) $=
    ( wnf wn nfnf1 wal wi df-nf hbnt sylbi nfd ) ABCZADZBABELAABFGBFMMBFGABHABI
    JK $.

  ${
    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 $.
  $}

  ${
    nfn.1 $e |- F/ x ph $.
    $( Inference associated with ~ nfnt .  (Contributed by Mario Carneiro,
       11-Aug-2016.) $)
    nfn $p |- F/ x -. ph $=
      ( wnf wn nfnt ax-mp ) ABDAEBDCABFG $.
  $}

  ${
    nfdc.1 $e |- F/ x ph $.
    $( If ` x ` is not free in ` ph ` , it is not free in ` DECID ph ` .
       (Contributed by Jim Kingdon, 11-Mar-2018.) $)
    nfdc $p |- F/ x DECID ph $=
      ( wdc wn wo df-dc nfn nfor nfxfr ) ADAAEZFBAGAKBCABCHIJ $.
  $}

  $( The analog 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 $.

  ${
    19.9d.1 $e |- ( ps -> F/ x ph ) $.
    $( A deduction version of one direction of ~ 19.9 .  (Contributed by NM,
       5-Aug-1993.)  (Revised by Mario Carneiro, 24-Sep-2016.) $)
    19.9d $p |- ( ps -> ( E. x ph -> ph ) ) $=
      ( wex wnf wb 19.9t syl biimpd ) BACEZABACFKAGDACHIJ $.
  $}

  ${
    19.9hd.1 $e |- ( ps -> A. x ps ) $.
    19.9hd.2 $e |- ( ps -> ( ph -> A. x ph ) ) $.
    $( A deduction version of one direction of ~ 19.9 .  This is an older
       variation of this theorem; new proofs should use ~ 19.9d .  (Contributed
       by NM, 5-Aug-1993.)  (New usage is discouraged.) $)
    19.9hd $p |- ( ps -> ( E. x ph -> ph ) ) $=
      ( wal wi wex alimi 19.9ht 3syl ) BBCFAACFGZCFACHAGDBLCEIACJK $.
  $}

  $( One direction of Theorem 19.11 of [Margaris] p. 89.  (Contributed by NM,
     5-Aug-1993.) $)
  excomim $p |- ( E. x E. y ph -> E. y E. x ph ) $=
    ( wex 19.8a 2eximi hbe1 hbex 19.9h sylib ) ACDBDABDZCDZBDLAKBCABEFLBKBCABGH
    IJ $.

  $( Theorem 19.11 of [Margaris] p. 89.  (Contributed by NM, 5-Aug-1993.) $)
  excom $p |- ( E. x E. y ph <-> E. y E. x ph ) $=
    ( wex excomim impbii ) ACDBDABDCDABCEACBEF $.

  $( Theorem 19.12 of [Margaris] p. 89.  Assuming the converse is a mistake
     sometimes made by beginners!  (Contributed by NM, 5-Aug-1993.) $)
  19.12 $p |- ( E. x A. y ph -> A. y E. x ph ) $=
    ( wal wex hba1 hbex ax-4 eximi alrimih ) ACDZBEABECKCBACFGKABACHIJ $.

  ${
    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.21-2.1 $e |- F/ x ph $.
    19.21-2.2 $e |- F/ y ph $.
    $( Theorem 19.21 of [Margaris] p. 90 but with 2 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 $.
  $}

  $( An alternate definition of ~ df-nf , which does not involve nested
     quantifiers on the same variable.  (Contributed by Mario Carneiro,
     24-Sep-2016.) $)
  nf2 $p |- ( F/ x ph <-> ( E. x ph -> A. x ph ) ) $=
    ( wnf wal wi wex df-nf nfa1 nfri 19.23h bitri ) ABCAABDZEBDABFLEABGALBLBABH
    IJK $.

  $( An alternate definition of ~ df-nf .  (Contributed by Mario Carneiro,
     24-Sep-2016.) $)
  nf3 $p |- ( F/ x ph <-> A. x ( E. x ph -> ph ) ) $=
    ( wnf wex wal wi nf2 nfe1 nfri 19.21h bitr4i ) ABCABDZABEFLAFBEABGLABLBABHI
    JK $.

  $( Variable ` x ` is effectively not free in ` ph ` iff ` ph ` is always true
     or always false, given a decidability condition.  The reverse direction,
     ~ nf4r , holds for all propositions.  (Contributed by Jim Kingdon,
     21-Jul-2018.) $)
  nf4dc $p |- ( DECID E. x ph -> ( F/ x ph <-> ( A. x ph \/ A. x -. ph ) ) ) $=
    ( wex wdc wnf wn wal wo nf2 imordc syl5bb orcom alnex orbi2i bitr4i syl6bb
    wi ) ABCZDZABEZRFZABGZHZUBAFBGZHZTRUBQSUCABIRUBJKUCUBUAHUEUAUBLUDUAUBABMNOP
    $.

  $( If ` ph ` is always true or always false, then variable ` x ` is
     effectively not free in ` ph ` .  The converse holds given a decidability
     condition, as seen at ~ nf4dc .  (Contributed by Jim Kingdon,
     21-Jul-2018.) $)
  nf4r $p |- ( ( A. x ph \/ A. x -. ph ) -> F/ x ph ) $=
    ( wal wn wo wex wnf orcom alnex orbi2i bitr4i wi imorr nf2 sylibr sylbir )
    ABCZADBCZEZABFZDZQEZABGZUBQUAESUAQHRUAQABIJKUBTQLUCTQMABNOP $.

  ${
    19.36i.1 $e |- F/ x ps $.
    19.36i.2 $e |- E. x ( ph -> ps ) $.
    $( Inference from Theorem 19.36 of [Margaris] p. 90.  (Contributed by NM,
       5-Aug-1993.)  (Revised by NM, 2-Feb-2015.) $)
    19.36i $p |- ( A. x ph -> ps ) $=
      ( wal wex 19.35i id exlimi syl ) ACFBCGBABCEHBBCDBIJK $.
  $}

  ${
    19.36-1.1 $e |- F/ x ps $.
    $( Closed form of ~ 19.36i .  One direction of Theorem 19.36 of [Margaris]
       p. 90.  The converse holds in classical logic, but does not hold (for
       all propositions) in intuitionistic logic.  (Contributed by Jim Kingdon,
       20-Jun-2018.) $)
    19.36-1 $p |- ( E. x ( ph -> ps ) -> ( A. x ph -> ps ) ) $=
      ( wi wex wal 19.35-1 19.9 syl6ib ) ABECFACGBCFBABCHBCDIJ $.
  $}

  ${
    19.37-1.1 $e |- F/ x ph $.
    $( One direction of Theorem 19.37 of [Margaris] p. 90.  The converse holds
       in classical logic but not, in general, here.  (Contributed by Jim
       Kingdon, 21-Jun-2018.) $)
    19.37-1 $p |- ( E. x ( ph -> ps ) -> ( ph -> E. x ps ) ) $=
      ( wal wi wex 19.3 19.35-1 syl5bir ) AACEABFCGBCGACDHABCIJ $.
  $}

  ${
    $d x ph $.
    19.37aiv.1 $e |- E. x ( ph -> ps ) $.
    $( Inference from Theorem 19.37 of [Margaris] p. 90.  (Contributed by NM,
       5-Aug-1993.) $)
    19.37aiv $p |- ( ph -> E. x ps ) $=
      ( wi wex nfv 19.37-1 ax-mp ) ABECFABCFEDABCACGHI $.
  $}

  $( Theorem 19.38 of [Margaris] p. 90.  (Contributed by NM, 5-Aug-1993.) $)
  19.38 $p |- ( ( E. x ph -> A. x ps ) -> A. x ( ph -> ps ) ) $=
    ( wex wal wi hbe1 hba1 hbim 19.8a ax-4 imim12i alrimih ) ACDZBCEZFABFCNOCAC
    GBCHIANOBACJBCKLM $.

  $( Closed form of Theorem 19.23 of [Margaris] p. 90.  (Contributed by NM,
     7-Nov-2005.)  (Proof shortened by Wolf Lammen, 2-Jan-2018.) $)
  19.23t $p |- ( F/ x ps -> ( A. x ( ph -> ps ) <-> ( E. x ph -> ps ) ) ) $=
    ( wnf wi wal wex exim 19.9t biimpd syl9r nfr imim2d 19.38 syl6 impbid ) BCD
    ZABECFZACGZBEZRSBCGZQBABCHQUABBCIJKQTSBCFZERQBUBSBCLMABCNOP $.

  ${
    19.23.1 $e |- F/ x ps $.
    $( Theorem 19.23 of [Margaris] p. 90.  (Contributed by NM, 5-Aug-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 $.
  $}

  ${
    19.32dc.1 $e |- F/ x ph $.
    $( Theorem 19.32 of [Margaris] p. 90, where ` ph ` is decidable.
       (Contributed by Jim Kingdon, 4-Jun-2018.) $)
    19.32dc $p |- ( DECID ph ->
        ( A. x ( ph \/ ps ) <-> ( ph \/ A. x ps ) ) ) $=
      ( wdc wn wi wal wo wb nfn 19.21 a1i nfdc dfordc albid 3bitr4d ) AEZAFZBGZ
      CHZSBCHZGZABIZCHAUBIUAUCJRSBCACDKLMRUDTCACDNABOPAUBOQ $.
  $}

  ${
    19.32r.1 $e |- F/ x ph $.
    $( One direction of Theorem 19.32 of [Margaris] p. 90.  The converse holds
       if ` ph ` is decidable, as seen at ~ 19.32dc .  (Contributed by Jim
       Kingdon, 28-Jul-2018.) $)
    19.32r $p |- ( ( ph \/ A. x ps ) -> A. x ( ph \/ ps ) ) $=
      ( wo wal orc alrimi olc alimi jaoi ) AABEZCFBCFALCDABGHBLCBAIJK $.
  $}

  ${
    19.31r.1 $e |- F/ x ps $.
    $( One direction of Theorem 19.31 of [Margaris] p. 90.  The converse holds
       in classical logic, but not intuitionistic logic.  (Contributed by Jim
       Kingdon, 28-Jul-2018.) $)
    19.31r $p |- ( ( A. x ph \/ ps ) -> A. x ( ph \/ ps ) ) $=
      ( wal wo 19.32r orcom albii 3imtr4i ) BACEZFBAFZCEKBFABFZCEBACDGKBHMLCABH
      IJ $.
  $}

  ${
    19.44.1 $e |- F/ x ps $.
    $( Theorem 19.44 of [Margaris] p. 90.  (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.  (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 $.
  $}

  $( Theorem 19.34 of [Margaris] p. 90.  (Contributed by NM, 5-Aug-1993.) $)
  19.34 $p |- ( ( A. x ph \/ E. x ps ) -> E. x ( ph \/ ps ) ) $=
    ( wal wex wo 19.2 orim1i 19.43 sylibr ) ACDZBCEZFACEZLFABFCEKMLACCGHABCIJ
    $.

  ${
    19.41h.1 $e |- ( ps -> A. x ps ) $.
    $( Theorem 19.41 of [Margaris] p. 90.  New proofs should use ~ 19.41
       instead.  (Contributed by NM, 5-Aug-1993.)  (Proof shortened by Andrew
       Salmon, 25-May-2011.)  (New usage is discouraged.) $)
    19.41h $p |- ( E. x ( ph /\ ps ) <-> ( E. x ph /\ ps ) ) $=
      ( wa wex 19.40 id exlimih anim2i syl pm3.21 eximdh impcom impbii ) ABEZCF
      ZACFZBEZQRBCFZESABCGTBRBBCDBHIJKBRQBAPCDBALMNO $.
  $}

  ${
    19.41.1 $e |- F/ x ps $.
    $( Theorem 19.41 of [Margaris] p. 90.  (Contributed by NM, 5-Aug-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.42h.1 $e |- ( ph -> A. x ph ) $.
    $( Theorem 19.42 of [Margaris] p. 90.  New proofs should use ~ 19.42
       instead.  (Contributed by NM, 18-Aug-1993.)
       (New usage is discouraged.) $)
    19.42h $p |- ( E. x ( ph /\ ps ) <-> ( ph /\ E. x ps ) ) $=
      ( wa wex 19.41h exancom ancom 3bitr4i ) BAECFBCFZAEABECFAKEBACDGABCHAKIJ
      $.
  $}

  ${
    19.42.1 $e |- F/ x ph $.
    $( Theorem 19.42 of [Margaris] p. 90.  (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
      $.
  $}

  $( 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 $.

  ${
    nexr.1 $e |- -. E. x ph $.
    $( Inference from ~ 19.8a .  (Contributed by Jeff Hankins, 26-Jul-2009.) $)
    nexr $p |- -. ph $=
      ( wex 19.8a mto ) AABDCABEF $.
  $}

  ${
    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.) $)
    exan $p |- E. x ( ph /\ ps ) $=
      ( wex wal wa hbe1 19.28h mpgbi 19.29r ax-mp ) ACEZBCFGZABGCEMBGNCMBCACHID
      JABCKL $.
  $}

  ${
    hbexd.1 $e |- ( ph -> A. y ph ) $.
    hbexd.2 $e |- ( ph -> ( ps -> A. x ps ) ) $.
    $( Deduction form of bound-variable hypothesis builder ~ hbex .
       (Contributed by NM, 2-Jan-2002.) $)
    hbexd $p |- ( ph -> ( E. y ps -> A. x E. y ps ) ) $=
      ( wex wal eximdh 19.12 syl6 ) ABDGZBCHZDGLCHABMDEFIBDCJK $.
  $}

  ${
    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 $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Equality theorems without distinct variables
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( 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-5 through ~ ax-14 and ~ ax-17 , all axioms other
     than ~ ax-9 are believed to be theorems of free logic, although the system
     without ~ ax-9 is probably not complete in free logic.  (Contributed by
     NM, 5-Aug-1993.)  (Revised by NM, 3-Feb-2015.) $)
  a9e $p |- E. x x = y $=
    ( ax-i9 ) ABC $.

  ${
    $d x y $.
    $( At least one individual exists.  Weaker version of ~ a9e .  (Contributed
       by NM, 3-Aug-2017.) $)
    a9ev $p |- E. x x = y $=
      ( ax-i9 ) ABC $.
  $}

  $( An implication related to substitution.  (Contributed by NM, 5-Aug-1993.)
     (Revised by NM, 3-Feb-2015.) $)
  ax9o $p |- ( A. x ( x = y -> A. x ph ) -> ph ) $=
    ( cv wceq wex wal wi a9e wa 19.29r hba1 pm3.35 exlimih ax-4 syl mpan ) BDCD
    EZBFZRABGZHZBGZABCISUBJRUAJZBFZARUABKUDTAUCTBABLRTMNABOPPQ $.

  ${
    $d x y $.
    $( Identity law for equality (reflexivity).  Lemma 6 of [Tarski] p. 68.
       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.

       This proof is similar to Tarski's and makes use of a dummy variable
       ` y ` .  It also works in intuitionistic logic, unlike some other
       possible ways of proving this theorem.  (Contributed by NM,
       1-Apr-2005.) $)
    equid $p |- x = x $=
      ( vy weq wex a9e ax-17 ax-8 pm2.43i exlimih ax-mp ) BACZBDAACZBAEKLBLBFKL
      BAAGHIJ $.
  $}

  $( 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 $.

  $( 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 $.

  $( Commutative law for equality.  Lemma 7 of [Tarski] p. 69.  (Contributed by
     NM, 5-Aug-1993.) $)
  equcomi $p |- ( x = y -> y = x ) $=
    ( weq equid ax-8 mpi ) ABCAACBACADABAEF $.

  $( Commutative law for equality.  (Contributed by NM, 20-Aug-1993.) $)
  equcom $p |- ( x = y <-> y = x ) $=
    ( weq equcomi impbii ) ABCBACABDBADE $.

  ${
    equcoms.1 $e |- ( x = y -> ph ) $.
    $( An inference commuting equality in antecedent.  Used to eliminate the
       need for a syllogism.  (Contributed by NM, 5-Aug-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 ax-8 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 $.

  $( A transitive law for equality.  (Contributed by NM, 12-Aug-1993.)  (Proof
     shortened by Andrew Salmon, 25-May-2011.) $)
  equtr2 $p |- ( ( x = z /\ y = z ) -> x = y ) $=
    ( weq wi equtrr equcoms impcom ) BCDACDZABDZIJECBCBAFGH $.

  $( An equivalence law for equality.  (Contributed by NM, 5-Aug-1993.) $)
  equequ1 $p |- ( x = y -> ( x = z <-> y = z ) ) $=
    ( weq ax-8 equtr impbid ) ABDACDBCDABCEABCFG $.

  $( An equivalence law for equality.  (Contributed by NM, 5-Aug-1993.) $)
  equequ2 $p |- ( x = y -> ( z = x <-> z = y ) ) $=
    ( weq equtrr wi equcoms impbid ) ABDCADZCBDZABCEJIFBABACEGH $.

  $( An identity law for the non-logical predicate.  (Contributed by NM,
     5-Aug-1993.) $)
  elequ1 $p |- ( x = y -> ( x e. z <-> y e. z ) ) $=
    ( weq wel ax-13 wi equcoms impbid ) ABDACEZBCEZABCFKJGBABACFHI $.

  $( An identity law for the non-logical predicate.  (Contributed by NM,
     5-Aug-1993.) $)
  elequ2 $p |- ( x = y -> ( z e. x <-> z e. y ) ) $=
    ( weq wel ax-14 wi equcoms impbid ) ABDCAEZCBEZABCFKJGBABACFHI $.

  ${
    ax11i.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    ax11i.2 $e |- ( ps -> A. x ps ) $.
    $( Inference that has ~ ax-11 (without ` A. y ` ) as its conclusion and
       doesn't require ~ ax-10 , ~ ax-11 , or ~ ax-12 for its proof.  The
       hypotheses may be eliminable without one or more of these axioms in
       special cases.  Proof similar to Lemma 16 of [Tarski] p. 70.
       (Contributed by NM, 20-May-2008.) $)
    ax11i $p |- ( x = y -> ( ph -> A. x ( x = y -> ph ) ) ) $=
      ( weq wi wal biimprcd alrimih syl6bi ) CDGZABMAHZCIEBNCFMABEJKL $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Axioms ax-10 and ax-11
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Show that ~ ax-10o can be derived from ~ ax-10 .  An open problem is
     whether this theorem can be derived from ~ ax-10 and the others when
     ~ ax-11 is replaced with ~ ax-11o .  See theorem ~ ax10 for the
     rederivation of ~ ax-10 from ~ ax10o .

     Normally, ~ ax10o should be used rather than ~ ax-10o , except by theorems
     specifically studying the latter's properties.  (Contributed by NM,
     16-May-2008.) $)
  ax10o $p |- ( A. x x = y -> ( A. x ph -> A. y ph ) ) $=
    ( weq wal wi ax-10 ax-11 equcoms sps pm2.27 al2imi sylsyld ) BCDZBECBDZCEAB
    EZOAFZCEZACEBCGNPRFZBSCBACBHIJOQACOAKLM $.

  $( Axiom ~ ax-10o ("o" for "old") was the original version of ~ ax-10 ,
     before it was discovered (in May 2008) that the shorter ~ ax-10 could
     replace it.  It appears as Axiom scheme C11' in [Megill] p. 448 (p. 16 of
     the preprint).

     This axiom is redundant, as shown by theorem ~ ax10o .

     Normally, ~ ax10o should be used rather than ~ ax-10o , except by theorems
     specifically studying the latter's properties.  (Contributed by NM,
     5-Aug-1993.)  (New usage is discouraged.) $)
  ax-10o $a |- ( A. x x = y -> ( A. x ph -> A. y ph ) ) $.

  $( Rederivation of ~ ax-10 from original version ~ ax-10o .  See theorem
     ~ ax10o for the derivation of ~ ax-10o from ~ ax-10 .

     This theorem should not be referenced in any proof.  Instead, use ~ ax-10
     above so that uses of ~ ax-10 can be more easily identified.  (Contributed
     by NM, 16-May-2008.)  (New usage is discouraged.) $)
  ax10 $p |- ( A. x x = y -> A. y y = x ) $=
    ( weq wal ax-10o pm2.43i equcomi alimi syl ) ABCZADZJBDZBACZBDKLJABEFJMBABG
    HI $.

  $( All variables are effectively bound in an identical variable specifier.
     (Contributed by NM, 5-Aug-1993.)  (Revised by NM, 3-Feb-2015.) $)
  hbae $p |- ( A. x x = y -> A. z A. x x = y ) $=
    ( cv wceq wal wi ax12or ax10o alequcoms pm2.43i syl5 ax-4 imim1i jaoi ax-mp
    wo sps a5i ax-7 syl ) ADZBDZEZAFZUDCFZAFUECFUDUFACDZUBECFZUGUCECFZUDUFGZCFZ
    QZQUEUFGZABCHUHUMULUMACUDACIJUIUMUKUMBCUEUDBFZUCUGEBFUFUEUNUDABIKUDBCILJUJU
    MCUEUDUFUDAMNROOPSUDACTUA $.

  $( 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 nfi ) ABDAECABCFG $.

  ${
    hbalequs.1 $e |- ( A. z A. x x = y -> ph ) $.
    $( Rule that applies ~ hbae to antecedent.  (Contributed by NM,
       5-Aug-1993.) $)
    hbaes $p |- ( A. x x = y -> ph ) $=
      ( weq wal hbae syl ) BCFBGZJDGABCDHEI $.
  $}

  $( All variables are effectively bound in a distinct variable specifier.
     Lemma L19 in [Megill] p. 446 (p. 14 of the preprint).  (Contributed by NM,
     5-Aug-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 $.

  ${
    hbnalequs.1 $e |- ( A. z -. A. x x = y -> ph ) $.
    $( Rule that applies ~ hbnae to antecedent.  (Contributed by NM,
       5-Aug-1993.) $)
    hbnaes $p |- ( -. A. x x = y -> ph ) $=
      ( weq wal wn hbnae syl ) BCFBGHZKDGABCDIEJ $.
  $}

  ${
    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 ) $=
      ( cv wceq wal wn ax-10 con3i syl ) CEZBEZFCGZHMLFBGZHAONBCIJDK $.
  $}

  $( Lemma used in proofs of substitution properties.  (Contributed by NM,
     5-Aug-1993.)  (Proof shortened by Mario Carneiro, 20-May-2014.) $)
  equs4 $p |- ( A. x ( x = y -> ph ) -> E. x ( x = y /\ ph ) ) $=
    ( cv wceq wi wal wa wex a9e 19.29 mpan2 ancl imp eximi syl ) BDCDEZAFZBGZRQ
    HZBIZQAHZBISQBIUABCJRQBKLTUBBRQUBQAMNOP $.

  ${
    equsalh.1 $e |- ( ps -> A. x ps ) $.
    equsalh.2 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( A useful equivalence related to substitution.  New proofs should use
       ~ equsal instead.  (Contributed by NM, 5-Aug-1993.)  (Proof shortened by
       Andrew Salmon, 12-Aug-2011.)  (New usage is discouraged.) $)
    equsalh $p |- ( A. x ( x = y -> ph ) <-> ps ) $=
      ( weq wi wal 19.3h syl6bbr pm5.74i albii a1d alrimih ax9o impbii bitr4i )
      CDGZAHZCISBCIZHZCIZBTUBCSAUASABUAFBCEJKLMBUCBUBCEBUASENOBCDPQR $.
  $}

  ${
    equsal.1 $e |- F/ x ps $.
    equsal.2 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( A useful equivalence related to substitution.  (Contributed by NM,
       5-Aug-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 a9e a1bi 3bitr4i ) CDGZBHZCIQCJZBHQA
      HZCIBQBCEKTRCQABFLMSBCDNOP $.
  $}

  ${
    equsex.1 $e |- ( ps -> A. x ps ) $.
    equsex.2 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( A useful equivalence related to substitution.  (Contributed by NM,
       5-Aug-1993.)  (Revised by NM, 3-Feb-2015.) $)
    equsex $p |- ( E. x ( x = y /\ ph ) <-> ps ) $=
      ( cv wceq wa wex biimpa exlimih a9e idd biimprcd jcad eximdh mpi impbii )
      CGDGHZAIZCJZBUABCETABFKLBTCJUBCDMBTUACEBTTABTNTABFOPQRS $.
  $}

  ${
    equsexd.1 $e |- ( ph -> A. x ph ) $.
    equsexd.2 $e |- ( ph -> ( ch -> A. x ch ) ) $.
    equsexd.3 $e |- ( ph -> ( x = y -> ( ps <-> ch ) ) ) $.
    $( Deduction form of ~ equsex .  (Contributed by Jim Kingdon,
       29-Dec-2017.) $)
    equsexd $p |- ( ph -> ( E. x ( x = y /\ ps ) <-> ch ) ) $=
      ( cv wceq wa wex wb wi bi1 imim2i 3syl wal a1i imp pm3.31 exlimd2 a9e jca
      prth syl 19.26 syl6ibr anabsi5 idd bi2 pm2.04 jcad eximdh mpi ex impbid )
      ADIEIJZBKZDLZCAUSCDFGAURBCMZNZURBCNZNUSCNHVAVCURBCOPURBCUAQUBACUTACKZURDL
      UTDEUCVDURUSDACVDDRZAVDADRZCDRZKZVEAAVFNZCVGNZKVDVHNAVIVJVIAFSGUDAVFCVGUE
      UFACDUGUHUIVDURURBACURURNZCVKNACURUJSTACURBNZAVBURCBNZNCVLNHVAVMURBCUKPUR
      CBULQTUMUNUOUPUQ $.
  $}

  ${
    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, 24-Nov-1994.) $)
    dral1 $p |- ( A. x x = y -> ( A. x ph <-> A. y ps ) ) $=
      ( weq wal hbae biimpd alimdh ax10o syld biimprd wi alequcoms impbid ) CDF
      CGZACGZBDGZQRBCGSQABCCDCHQABEIJBCDKLQSADGZRQBADCDDHQABEMJTRNDCADCKOLP $.
  $}

  ${
    dral2.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.) $)
    dral2 $p |- ( A. x x = y -> ( A. z ph <-> A. z ps ) ) $=
      ( weq wal hbae albidh ) CDGCHABECDEIFJ $.
  $}

  ${
    drex2.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.) $)
    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 df-nf 3bitr4g ) CDFCGZAACGZHZCGBBDGZHZDGAC
      IBDIPRCDNABOQEABCDEJKJACLBDLM $.

    $( Formula-building lemma for use with the Distinctor Reduction Theorem.
       (Contributed by Mario Carneiro, 4-Oct-2016.) $)
    drnf2 $p |- ( A. x x = y -> ( F/ z ph <-> F/ z ps ) ) $=
      ( weq wal wi wnf dral2 imbi12d df-nf 3bitr4g ) CDGCHZAAEHZIZEHBBEHZIZEHAE
      JBEJQSCDEOABPRFABCDEFKLKAEMBEMN $.
  $}

  $( Closed theorem form of ~ spim .  (Contributed by NM, 15-Jan-2008.)
     (New usage is discouraged.) $)
  spimth $p |- ( A. x ( ( ps -> A. x ps ) /\ ( x = y -> ( ph -> ps ) ) ) ->
              ( A. x ph -> ps ) ) $=
    ( wal wi weq wa imim2 imim2d imp com23 al2imi ax9o syl6 ) BBCEZFZCDGZABFZFZ
    HZCEACERPFZCEBUAAUBCUARAPQTRAPFZFQSUCRBPAIJKLMBCDNO $.

  $( 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 ) ) $=
    ( cv wceq wi wal wex wnf a9e exim mpi 19.35-1 syl 19.9t biimpd sylan9r ) CE
    DEFZABGZGCHZACHZBCIZBCJZBUATCIZUBUCGUASCIUECDKSTCLMABCNOUDUCBBCPQR $.

  ${
    spimh.1 $e |- ( ps -> A. x ps ) $.
    spimh.2 $e |- ( x = y -> ( ph -> ps ) ) $.
    $( Specialization, using implicit substitition.  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,
       5-Aug-1993.)  (Revised by NM, 8-May-2008.)
       (New usage is discouraged.) $)
    spimh $p |- ( A. x ph -> ps ) $=
      ( wal weq wi syl6com alimi ax9o syl ) ACGCDHZBCGZIZCGBAPCNABOFEJKBCDLM $.
  $}

  ${
    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,
       5-Aug-1993.)  (Revised by Mario Carneiro, 3-Oct-2016.)  (Proof rewritten
       by Jim Kingdon, 10-Jun-2018.) $)
    spim $p |- ( A. x ph -> ps ) $=
      ( nfri spimh ) ABCDBCEGFH $.
  $}

  ${
    spimeh.1 $e |- ( ph -> A. x ph ) $.
    spimeh.2 $e |- ( x = y -> ( ph -> ps ) ) $.
    $( Existential introduction, using implicit substitition.  Compare Lemma 14
       of [Tarski] p. 70.  (Contributed by NM, 7-Aug-1994.)  (Revised by NM,
       3-Feb-2015.)  (New usage is discouraged.) $)
    spimeh $p |- ( ph -> E. x ps ) $=
      ( cv wceq wex a9e com12 eximdh mpi ) ACGDGHZCIBCICDJANBCENABFKLM $.
  $}

  ${
    spimed.1 $e |- ( ch -> F/ x ph ) $.
    spimed.2 $e |- ( x = y -> ( ph -> ps ) ) $.
    $( Deduction version of ~ spime .  (Contributed by NM, 5-Aug-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 nfrd weq wi a9e eximii 19.35i syl6 ) CAADHBDICADFJABDDEKABLDDEM
      GNOP $.
  $}

  ${
    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 $.
  $}

  ${
    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.
       (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, 5-Aug-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 ) $=
      ( nfi 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.
       Revised to format hypotheses to common style.  (Contributed by NM,
       5-Aug-1993.)  (Revised by Mario Carneiro, 3-Oct-2016.)  (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, 5-Aug-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 sp sps syl nfd weq cbv1 ) AEIZDIZBCDESDJZAEDKZTBEUBTAB
      BEILSADAEMNZFOPTCDUATACCDILUCGOPTADEQBCLLUCHOR $.
  $}

  ${
    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, 5-Aug-1993.) $)
    cbv2h $p |- ( A. x A. y ph -> ( A. x ps <-> A. y ch ) ) $=
      ( wal weq wb wi bi1 syl6 cbv1h equcomi bi2 syl56 a7s impbid ) AEIDIBDIZCE
      IZABCDEFGADEJZBCKZBCLHBCMNOAUBUALEDACBEDGFEDJUCAUDCBLEDPHBCQROST $.
  $}

  ${
    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.
       Revised to align format of hypotheses to common style.  (Contributed by
       NM, 5-Aug-1993.)  (Revised by Mario Carneiro, 3-Oct-2016.)  (Revised by
       Wolf Lammen, 13-May-2018.) $)
    cbv2 $p |- ( ph -> ( A. x ps <-> A. y ch ) ) $=
      ( wal wb nfri nfal syl nfrd cbv2h ) AAEKZDKZBDKCEKLARSAEGMRDADEFNMOABCDEA
      BEHPACDIPJQO $.
  $}

  ${
    cbvalh.1 $e |- ( ph -> A. y ph ) $.
    cbvalh.2 $e |- ( ps -> A. x ps ) $.
    cbvalh.3 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Rule used to change bound variables, using implicit substitition.
       (Contributed by NM, 5-Aug-1993.)  (Proof shortened by Andrew Salmon,
       25-May-2011.) $)
    cbvalh $p |- ( A. x ph <-> A. y ps ) $=
      ( wal weq biimpd cbv3h wb equcoms biimprd impbii ) ACHBDHABCDEFCDIABGJKBA
      DCFEDCIABABLCDGMNKO $.
  $}

  ${
    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, 5-Aug-1993.)  (Revised by Mario Carneiro,
       3-Oct-2016.) $)
    cbval $p |- ( A. x ph <-> A. y ps ) $=
      ( nfri cbvalh ) ABCDADEHBCFHGI $.
  $}

  ${
    cbvexh.1 $e |- ( ph -> A. y ph ) $.
    cbvexh.2 $e |- ( ps -> A. x ps ) $.
    cbvexh.3 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Rule used to change bound variables, using implicit substitition.
       (Contributed by NM, 5-Aug-1993.)  (Revised by Mario Carneiro,
       3-Feb-2015.) $)
    cbvexh $p |- ( E. x ph <-> E. y ps ) $=
      ( wex hbex cv wceq wa wb bicomd equcoms equsex simpr eximi sylbir exlimih
      impbii ) ACHZBDHZAUCCBCDFIADJZCJZKZBLZDHUCBADCEBAMCDUEUDKZABGNOPUGBDUFBQR
      STBUBDADCEIBUHALZCHUBABCDFGPUIACUHAQRSTUA $.
  $}

  ${
    cbvex.1 $e |- F/ y ph $.
    cbvex.2 $e |- F/ x ps $.
    cbvex.3 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Rule used to change bound variables, using implicit substitution.
       (Contributed by NM, 5-Aug-1993.) $)
    cbvex $p |- ( E. x ph <-> E. y ps ) $=
      ( nfri cbvexh ) ABCDADEHBCFHGI $.
  $}

  ${
    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 $.
  $}

  $( 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 `
     (making the proof longer).  (Contributed by NM, 5-Aug-1993.)  (Proof
     shortened by Andrew Salmon, 25-May-2011.) $)
  equvini $p |- ( x = y -> E. z ( x = z /\ z = y ) ) $=
    ( cv wceq wal wi wo wex ax12or equcomi alimi a9e jctir a1d 19.29 syl6 ax-mp
    wa jaoi eximi 2a1i anc2ri 19.29r ax-8 anc2li equcoms com12 exim syl mpi sps
    imim2i ) CDZADZEZCFZUNBDZEZCFZUOUREZVACFZGZCFZHZHVAUOUNEZUSSZCIZGZABCJUQVIV
    EUQVAVFCFZUSCIZSZVHUQVLVAUQVJVKUPVFCCAKZLCBMNOVFUSCPQUTVIVDUTVAVFCIZUTSVHUT
    VAVNUTVAVNUPCIZVNCAMZUPVFCVMUARUBUCVFUSCUDQVCVICVBVHVAVBVOVHVPVBUPVGGZCFVOV
    HGVAVQCUPVAVGVAVGGACVFVAUSACBUEUFUGUHLUPVGCUIUJUKUMULTTR $.

  $( A variable elimination law for equality with no distinct variable
     requirements.  (Compare ~ equvini .)  (Contributed by NM, 1-Mar-2013.)
     (Revised by NM, 3-Feb-2015.) $)
  equveli $p |- ( A. z ( z = x <-> z = y ) -> x = y ) $=
    ( cv wb wal wi wa albiim wo ax12or equequ1 imbi12d sps equid syl6bi adantrd
    wceq ax-4 jaoi dral2 a1bi biimpri dral1 mpi equcomi syl adantld hbequid a1i
    hba1 hbimd equtr ax-8 imim12d ax-gen 19.26 spimth sylbir sylancl mpii ax-mp
    a5i sylbi ) CDZADZRZVEBDZRZECFVGVIGZCFZVIVGGZCFZHZVFVHRZVGVICIVGCFZVICFZVOV
    OCFGZCFZJZJVNVOGZABCKVPWAVTVPVKVOVMVPVKVFVFRZVOGZCFZVOVJWCCACVGVJWCECVGVGWB
    VIVOCAALCABLMNUAWCVOCVOWCWBVOAOZUBUCNPQVQWAVSVQVMVOVKVQVMVHVHRZVHVFRZGZBFZV
    OVLWHCBVIVLWHECVIVIWFVGWGCBBLCBALMNUDWIWGVOWIWFWGBOWHBSUEBAUFUGPUHVSVKVOVMV
    SVKWBVOWEVSWCWDGZCFZVGVJWCGGZCFZVKWCGZVRWJCVSWBVOCVRCUKWBWBCFGVSACUIUJVRCSU
    LVCWLCVGWBVGVIVOCAAUMCABUNUOUPWKWMHWJWLHCFWNWJWLCUQVJWCCAURUSUTVAQTTVBVD $.

  ${
    nfald.1 $e |- F/ y ph $.
    nfald.2 $e |- ( ph -> F/ x ps ) $.
    $( If ` x ` is not free in ` ph ` , it is not free in ` A. y ph ` .
       (Contributed by Mario Carneiro, 24-Sep-2016.)  (Proof shortened by Wolf
       Lammen, 6-Jan-2018.) $)
    nfald $p |- ( ph -> F/ x A. y ps ) $=
      ( wnf wal nfri alrimih nfnf1 nfal hba1 sp nfrd hbald nfd syl ) ABCGZDHZBD
      HZCGASDADEIFJTUACSCDBCKLTBCDSDMTBCSDNOPQR $.

    $( If ` x ` is not free in ` ph ` , it is not free in ` E. y ph ` .
       (Contributed by Mario Carneiro, 24-Sep-2016.)  (Proof rewritten by Jim
       Kingdon, 7-Feb-2018.) $)
    nfexd $p |- ( ph -> F/ x E. y ps ) $=
      ( wex wal wnf nfri df-nf sylib alrimih alcom exim alimi syl 19.12 imim2i
      wi sylibr ) ABDGZUBCHZTZCHZUBCIAUBBCHZDGZTZCHZUEABUFTZDHZCHZUIAUJCHZDHULA
      UMDADEJABCIUMFBCKLMUJDCNLUKUHCBUFDOPQUHUDCUGUCUBBDCRSPQUBCKUA $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Substitution (without distinct variables)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c [ $. $( Left bracket $)
  $c / $. $( Division. $)
  $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 $.

  $( 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 when ` y ` is properly substituted for ` x ` in the wff
     ` ph ` ."  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 alternate definition which uses a dummy variable is
     ~ dfsb7a .

     When ` x ` and ` y ` are distinct, we can express proper substitution with
     the simpler expressions of ~ sb5 and ~ sb6 .

     In classical logic, another possible definition is
     ` ( x = y /\ ph ) \/ A. x ( x = y -> ph ) ` but we do not have an
     intuitionistic proof that this is equivalent.

     There are no restrictions on any of the variables, including what
     variables may occur in wff ` ph ` .  (Contributed by NM, 5-Aug-1993.) $)
  df-sb $a |- ( [ y / x ] ph <->
              ( ( x = y -> ph ) /\ E. x ( x = y /\ ph ) ) ) $.

  ${
    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, 5-Aug-1993.) $)
    sbbii $p |- ( [ y / x ] ph <-> [ y / x ] ps ) $=
      ( wsb biimpi sbimi biimpri impbii ) ACDFBCDFABCDABEGHBACDABEIHJ $.
  $}

  $( One direction of a simplified definition of substitution.  (Contributed by
     NM, 5-Aug-1993.) $)
  sb1 $p |- ( [ y / x ] ph -> E. x ( x = y /\ ph ) ) $=
    ( wsb weq wi wa wex df-sb simprbi ) ABCDBCEZAFKAGBHABCIJ $.

  $( One direction of a simplified definition of substitution.  (Contributed by
     NM, 5-Aug-1993.) $)
  sb2 $p |- ( A. x ( x = y -> ph ) -> [ y / x ] ph ) $=
    ( weq wi wal wa wex wsb ax-4 equs4 df-sb sylanbrc ) BCDZAEZBFONAGBHABCIOBJA
    BCKABCLM $.

  $( An equality theorem for substitution.  (Contributed by NM, 5-Aug-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, 5-Aug-1993.) $)
  sbequ2 $p |- ( x = y -> ( [ y / x ] ph -> ph ) ) $=
    ( wsb weq wi wa wex df-sb simpl com12 syl5bi ) ABCDBCEZAFZMAGBHZGZMAABCIPMA
    NOJKL $.

  $( 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 ` , ` y ) ` ."  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 $.

  $( An equality theorem for substitution.  (Contributed by NM, 5-Aug-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, 5-Aug-1993.) $)
  sbequ12a $p |- ( x = y -> ( [ y / x ] ph <-> [ x / y ] ph ) ) $=
    ( weq wsb sbequ12 wb equcoms bitr3d ) BCDAABCEACBEZABCFAJGCBACBFHI $.

  $( An identity theorem for substitution.  Remark 9.1 in [Megill] p. 447 (p.
     15 of the preprint).  (Contributed by NM, 5-Aug-1993.) $)
  sbid $p |- ( [ x / x ] ph <-> ph ) $=
    ( wsb weq wb equid sbequ12 ax-mp bicomi ) AABBCZBBDAJEBFABBGHI $.

  $( 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.  (Contributed by NM, 5-Aug-1993.) $)
  stdpc4 $p |- ( A. x ph -> [ y / x ] ph ) $=
    ( wal weq wi wsb ax-1 alimi sb2 syl ) ABDBCEZAFZBDABCGAMBALHIABCJK $.

  ${
    sbh.1 $e |- ( ph -> A. x ph ) $.
    $( Substitution for a variable not free in a wff does not affect it.
       (Contributed by NM, 5-Aug-1993.)  (Revised by NM, 17-Oct-2004.) $)
    sbh $p |- ( [ y / x ] ph <-> ph ) $=
      ( wsb weq wex wa sb1 19.41h sylib simprd wal stdpc4 syl impbii ) ABCEZAQB
      CFZBGZAQRAHBGSAHABCIRABDJKLAABMQDABCNOP $.
  $}

  ${
    sbf.1 $e |- F/ x ph $.
    $( Substitution for a variable not free in a wff does not affect it.
       (Contributed by NM, 5-Aug-1993.)  (Revised by Mario Carneiro,
       4-Oct-2016.) $)
    sbf $p |- ( [ y / x ] ph <-> ph ) $=
      ( nfri sbh ) 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 $.

  ${
    sb6x.1 $e |- ( ph -> A. x ph ) $.
    $( Equivalence involving substitution for a variable not free.
       (Contributed by NM, 5-Aug-1993.)  (Proof shortened by Andrew Salmon,
       12-Aug-2011.) $)
    sb6x $p |- ( [ y / x ] ph <-> A. x ( x = y -> ph ) ) $=
      ( wsb weq wi wal sbh biidd equsalh bitr4i ) ABCEABCFZAGBHABCDIAABCDMAJKL
      $.
  $}

  ${
    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 nfri sbh nfxfr ) ABCEABABCABDFGDH $.
  $}

  ${
    hbs1f.1 $e |- ( ph -> A. x ph ) $.
    $( If ` x ` is not free in ` ph ` , it is not free in ` [ y / x ] ph ` .
       (Contributed by NM, 5-Aug-1993.)  (Proof shortened by Andrew Salmon,
       25-May-2011.) $)
    hbs1f $p |- ( [ y / x ] ph -> A. x [ y / x ] ph ) $=
      ( wsb sbh hbxfrbi ) ABCEABABCDFDG $.
  $}

  $( Substitution does not change an identical variable specifier.
     (Contributed by NM, 5-Aug-1993.)  (Revised by NM, 21-Dec-2004.) $)
  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.)  (Revised by NM, 14-May-2005.) $)
  sbequ6 $p |- ( [ w / z ] -. A. x x = y <-> -. A. x x = y ) $=
    ( weq wal wn nfnae sbf ) ABEAFGCDABCHI $.

  ${
    sbt.1 $e |- ph $.
    $( A substitution into a theorem remains true.  (See ~ chvar and ~ chvarv
       for versions using implicit substitition.)  (Contributed by NM,
       21-Jan-2004.)  (Proof shortened by Andrew Salmon, 25-May-2011.) $)
    sbt $p |- [ y / x ] ph $=
      ( wsb nfth sbf mpbir ) ABCEADABCABDFGH $.
  $}

  $( Substitution applied to an atomic wff.  (Contributed by NM,
     5-Aug-1993.) $)
  equsb1 $p |- [ y / x ] x = y $=
    ( weq wi wsb sb2 id mpg ) ABCZIDIABEAIABFIGH $.

  $( Substitution applied to an atomic wff.  (Contributed by NM,
     5-Aug-1993.) $)
  equsb2 $p |- [ y / x ] y = x $=
    ( weq wi wsb sb2 equcomi mpg ) ABCBACZDIABEAIABFABGH $.

  ${
    sbiedh.1 $e |- ( ph -> A. x ph ) $.
    sbiedh.2 $e |- ( ph -> ( ch -> A. x ch ) ) $.
    sbiedh.3 $e |- ( ph -> ( x = y -> ( ps <-> ch ) ) ) $.
    $( Conversion of implicit substitution to explicit substitution (deduction
       version of ~ sbieh ).  New proofs should use ~ sbied instead.
       (Contributed by NM, 30-Jun-1994.)  (Proof shortened by Andrew Salmon,
       25-May-2011.)  (New usage is discouraged.) $)
    sbiedh $p |- ( ph -> ( [ y / x ] ps <-> ch ) ) $=
      ( wsb wex weq wa sb1 wb wi bi1 syl6 impd syld wal eximdh 19.9hd bi2 com23
      syl5 alimdh sb2 impbid ) ABDEIZCAUICDJZCUIDEKZBLZDJAUJBDEMAULCDFAUKBCAUKB
      CNZBCOHBCPQRUAUECADFGUBSACCDTZUIGAUNUKBOZDTUIACUODFAUKCBAUKUMCBOHBCUCQUDU
      FBDEUGQSUH $.
  $}

  ${
    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.) $)
    sbied $p |- ( ph -> ( [ y / x ] ps <-> ch ) ) $=
      ( nfri nfrd sbiedh ) ABCDEADFIACDGJHK $.
  $}

  ${
    $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 $.
  $}

  ${
    sbieh.1 $e |- ( ps -> A. x ps ) $.
    sbieh.2 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Conversion of implicit substitution to explicit substitution.  New
       proofs should use ~ sbie instead.  (Contributed by NM, 30-Jun-1994.)
       (New usage is discouraged.) $)
    sbieh $p |- ( [ y / x ] ph <-> ps ) $=
      ( wi wsb wb id hbth wal a1i weq sbiedh ax-mp ) AAGZACDHBIAJZQABCDQCRKBBCL
      GQEMCDNABIGQFMOP $.
  $}

  ${
    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.)  (Revised by Wolf Lammen, 30-Apr-2018.) $)
    sbie $p |- ( [ y / x ] ph <-> ps ) $=
      ( nfri sbieh ) ABCDBCEGFH $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Theorems using axiom ax-11
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( A property related to substitution that unlike ~ equs5 doesn't require a
     distinctor antecedent.  (Contributed by NM, 2-Feb-2007.) $)
  equs5a $p |- ( E. x ( x = y /\ A. y ph ) -> A. x ( x = y -> ph ) ) $=
    ( weq wal wa wi hba1 ax-11 imp exlimih ) BCDZACEZFLAGZBEZBNBHLMOABCIJK $.

  $( A property related to substitution that unlike ~ equs5 doesn't require a
     distinctor antecedent.  (Contributed by NM, 2-Feb-2007.)  (Revised by NM,
     3-Feb-2015.) $)
  equs5e $p |- ( E. x ( x = y /\ ph ) -> A. x ( x = y -> E. y ph ) ) $=
    ( cv wceq wa wex wal wi 19.8a hbe1 syl anim2i eximi equs5a ) BDCDEZAFZBGPAC
    GZCHZFZBGPRIBHQTBASPARSACJACKLMNRBCOL $.

  $( Analogue to ~ ax-11 but for existential quantification.  (Contributed by
     Mario Carneiro and Jim Kingdon, 31-Dec-2017.)  (Proved by Mario Carneiro,
     9-Feb-2018.) $)
  ax11e $p |- ( x = y -> ( E. x ( x = y /\ ph ) -> E. y ph ) ) $=
    ( cv wceq wa wex wi equs5e 19.21bi com12 ) BDCDEZAFBGZLACGZMLNHBABCIJK $.

  $( Quantifier Substitution for existential quantifiers.  Analogue to ~ ax10o
     but for ` E. ` rather than ` A. ` .  (Contributed by Jim Kingdon,
     21-Dec-2017.) $)
  ax10oe $p |- ( A. x x = y -> ( E. x ps -> E. y ps ) ) $=
    ( cv wceq wal wex wa wi ax-ia3 alimi exim syl ax11e sps syld ) BDCDEZBFZABG
    ZQAHZBGZACGZRATIZBFSUAIQUCBQAJKATBLMQUAUBIBABCNOP $.

  ${
    drex1.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.)  (Revised by NM, 3-Feb-2015.) $)
    drex1 $p |- ( A. x x = y -> ( E. x ph <-> E. y ps ) ) $=
      ( cv wceq wal wex wa hbae ax-4 biantrurd bitr2d exbidh wi sylbird equcomi
      ax11e sps bitr3d alequcoms impbid ) CFZDFZGZCHZACIZBDIZUGUHUFBJZCIZUIUGUJ
      ACCDCKUGABUJEUGUFBUFCLMNOUFUKUIPCBCDSTQUGUIUEUDGZAJZDIZUHUGUMBDCDDKUGAUMB
      UGULAUFULCCDRTMEUAOUNUHPZDCULUODADCSTUBQUC $.
  $}

  $( 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, 5-Aug-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 $.

  ${
    exdistrfor.1 $e |- ( A. x x = y \/ A. x 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 Jim Kingdon, 25-Feb-2018.) $)
    exdistrfor $p |- ( E. x E. y ( ph /\ ps ) -> E. x ( ph /\ E. y ps ) ) $=
      ( weq wal wnf wo wa wex biidd drex1 drex2 hbe1 19.9h 19.8a anim2i eximi
      wi sylbi syl6bir ax-ial 19.40 19.9t biimpd anim1d syl5 eximdh jaoi ax-mp
      sps ) CDFCGZADHZCGZIABJZDKZCKZABDKZJZCKZTZEUMVBUOUMURUPCKZCKZVAVCUQCDCUPU
      PCDUMUPLMNVDVCVAVCCUPCOPUPUTCBUSABDQRSUAUBUOUQUTCUNCUCUNUQUTTCUQADKZUSJUN
      UTABDUDUNVEAUSUNVEAADUEUFUGUHULUIUJUK $.
  $}

  $( 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 $.

  ${
    equs45f.1 $e |- ( ph -> A. y ph ) $.
    $( Two ways of expressing substitution when ` y ` is not free in ` ph ` .
       (Contributed by NM, 25-Apr-2008.) $)
    equs45f $p |- ( E. x ( x = y /\ ph ) <-> A. x ( x = y -> ph ) ) $=
      ( weq wa wex wi wal anim2i eximi equs5a syl equs4 impbii ) BCEZAFZBGZPAHB
      IZRPACIZFZBGSQUABATPDJKABCLMABCNO $.

    $( Equivalence for substitution when ` y ` is not free in ` ph ` .
       (Contributed by NM, 5-Aug-1993.)  (Revised by NM, 30-Apr-2008.) $)
    sb6f $p |- ( [ y / x ] ph <-> A. x ( x = y -> ph ) ) $=
      ( wsb weq wi wal sbimi sb4a syl sb2 impbii ) ABCEZBCFAGBHZNACHZBCEOAPBCDI
      ABCJKABCLM $.

    $( Equivalence for substitution when ` y ` is not free in ` ph ` .
       (Contributed by NM, 5-Aug-1993.)  (Revised by NM, 18-May-2008.) $)
    sb5f $p |- ( [ y / x ] ph <-> E. x ( x = y /\ ph ) ) $=
      ( wsb weq wi wal wa wex sb6f equs45f bitr4i ) ABCEBCFZAGBHNAIBJABCDKABCDL
      M $.
  $}

  $( 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.) $)
  hbsb2a $p |- ( [ y / x ] A. y ph -> A. x [ y / x ] ph ) $=
    ( wal wsb weq wi sb4a sb2 a5i syl ) ACDBCEBCFAGZBDABCEZBDABCHLMBABCIJK $.

  $( 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 a5i syl ) ABCDBCEACFZGZBHMBCDZBHABCINOBMBCJKL
    $.

  ${
    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, 5-Aug-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 nfri hbsb3 nfi ) ABCEBABCACDFGH $.
  $}

  ${
    sbcof2.1 $e |- ( ph -> A. x ph ) $.
    $( Version of ~ sbco where ` x ` is not free in ` ph ` .  (Contributed by
       Jim Kingdon, 28-Dec-2017.) $)
    sbcof2 $p |- ( [ y / x ] [ x / y ] ph <-> [ y / x ] ph ) $=
      ( wsb weq wi wal hbsb3 sb6f imbi2i albii bitri alimi wex 3syl wa jca sb5f
      eximi ax-11 equcomi imim1i imim2i pm2.43d syl6 a2i sylbi ax-i9 mpi ax-ial
      exim 19.9h sylib sb2 simpl 19.8a anim1i ax11e syl5 imdistani anbi2i exbii
      sb1 sylibr impbii ) ACBEZBCEZABCEZVHBCFZVJAGZBHZGZBHZVLVIVHVJCBFZAGZCHZGZ
      BHZVNVHVJVGGZBHVSVGBCACBDIZJVTVRBVGVQVJACBDJKLMVRVMBVJVQVLVJVQVJVPGZBHVLV
      PBCUAWBVKBWBVJAVPVKVJVJVOABCUBZUCUDUENUFUGNUHVNVLBOZVLVNVJBOWDBCUIVJVLBUL
      UJVLBVKBUKUMUNABCUOPVIVJVOAQZCOZQZBOZVHVIVJAQZBOZVJWJQZBOWHABCVDWIWKBWIVJ
      WJVJAUPZWIBUQRTWKWGBVJWJWFWJVJWEQZBOVJWFWIWMBWIVJWEWLVJVOAWCURRTWEBCUSUTV
      ATPVHVJVGQZBOWHVGBCWASWNWGBVGWFVJACBDSVBVCMVEVF $.
  $}

$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Predicate calculus with distinct variables
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Derive the axiom of distinct variables ax-16
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $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.  (Contributed by NM, 5-Aug-1993.) $)
    spimv $p |- ( A. x ph -> ps ) $=
      ( nfv spim ) ABCDBCFEG $.
  $}

  ${
    $v f $.
    $( Define a temporary individual variable. $)
    aev.vf $f setvar f $.
    $d f u v $.  $d f u x y $.  $d u w $.
    $( A "distinctor elimination" lemma with no restrictions on variables in
       the consequent, proved without using ~ ax-16 .  (Contributed by NM,
       8-Nov-2006.)  (Proof shortened by Andrew Salmon, 21-Jun-2011.) $)
    aev $p |- ( A. x x = y -> A. z w = v ) $=
      ( aev.vf vu weq wal hbae ax-8 alrimih equcomi syl6 alequcoms a5i alequcom
      spimv 3syl ) ABHZAIZDEHZCABCJUAFBHZFIZGEHZGIZUBUAUCFABFJTUCAFAFBKRLUDFGHZ
      FIZEGHZEIUFUCUGFUGBFBFHZUGBGBGHUJGFHUGBGFKGFMNROPUHUIEFGEJUGUIFEFEGKRLEGQ
      SUEUBGDGDEKRSL $.
  $}

  ${
    $d x y $.  $d z ph $.
    $( Theorem showing that ~ ax-16 is redundant if ~ ax-17 is included in the
       axiom system.  The important part of the proof is provided by ~ aev .

       See ~ ax16ALT for an alternate proof that does not require ~ ax-10 or
       ~ ax-12 .

       This theorem should not be referenced in any proof.  Instead, use
       ~ ax-16 below so that theorems needing ~ ax-16 can be more easily
       identified.  (Contributed by NM, 8-Nov-2006.) $)
    ax16 $p |- ( A. x x = y -> ( ph -> A. x ph ) ) $=
      ( vz weq wal wi aev wsb ax-17 sbequ12 biimpcd alimdh hbsb3 stdpc7 syl6com
      cbv3h syl ) BCEBFBDEZDFZAABFZGBCDBDHATABDIZDFUAASUBDADJZSAUBABDKLMUBADBAB
      DUCNUCADBOQPR $.
  $}

  ${
    $d x y $.
    $( Axiom of Distinct Variables.  The only axiom of predicate calculus
       requiring that variables be distinct (if we consider ~ ax-17 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, but nonetheless it is technically necessary as you
       can see from its uses.

       This axiom is redundant if we include ~ ax-17 ; see theorem ~ ax16 .

       This axiom is obsolete and should no longer be used.  It is proved above
       as theorem ~ ax16 .  (Contributed by NM, 5-Aug-1993.)
       (New usage is discouraged.) $)
    ax-16 $a |- ( A. x x = y -> ( ph -> A. x ph ) ) $.
  $}

  ${
    $d z x $.
    $( Quantifier introduction when one pair of variables is distinct.
       (Contributed by NM, 2-Jan-2002.) $)
    dveeq2 $p |- ( -. A. x x = y -> ( z = y -> A. x z = y ) ) $=
      ( weq wal wn wi wo ax-i12 orcom orbi2i mpbi orass mpbir orel2 mpi ax16 sp
      jaoi syl ) ABDAEZFZACDAEZCBDZUDAEGZAEZHZUEUBUGUAHZUGUHUCUFUAHZHZUCUAUFHZH
      UJCBAIUKUIUCUAUFJKLUCUFUAMNUAUGOPUCUEUFUDACQUEARST $.
  $}

  ${
    $d z x $.
    $( Quantifier introduction when one pair of variables is distinct.  Like
       ~ dveeq2 but connecting ` A. x x = y ` by a disjunction rather than
       negation and implication makes the theorem stronger in intuitionistic
       logic.  (Contributed by Jim Kingdon, 1-Feb-2018.) $)
    dveeq2or $p |- ( A. x x = y \/ F/ x z = y ) $=
      ( weq wal wi wnf ax-i12 orass mpbir pm1.4 orim1i ax-mp mpbi ax16 a5i jaoi
      wo id orim2i df-nf biimpri ) ABDAEZCBDZUDAEFZAEZRZUCUDAGZRUCACDZAEZUFRZRZ
      UGUCUJRZUFRZULUJUCRZUFRZUNUPUJUGRCBAHUJUCUFIJUOUMUFUJUCKLMUCUJUFINUKUFUCU
      JUFUFUIUEAUDACOPUFSQTMUFUHUCUHUFUDAUAUBTM $.
  $}

  ${
    $d x z $.  $d y z $.
    dvelimfALT2.1 $e |- ( ph -> A. x ph ) $.
    dvelimfALT2.2 $e |- ( ps -> A. z ps ) $.
    dvelimfALT2.3 $e |- ( z = y -> ( ph <-> ps ) ) $.
    dvelimfALT2.4 $e |- ( -. A. x x = y -> ( z = y -> A. x z = y ) ) $.
    $( Proof of ~ dvelimf using ~ dveeq2 (shown as the last hypothesis) instead
       of ~ ax-12 .  This shows that ~ ax-12 could be replaced by ~ dveeq2 (the
       last hypothesis).  (Contributed by Andrew Salmon, 21-Jul-2011.) $)
    dvelimfALT2 $p |- ( -. A. x x = y -> ( ps -> A. x ps ) ) $=
      ( cv wceq wal wn wi ax-17 hbn1 a1i hbimd hbald equsalh albii 3imtr3g ) CJ
      DJZKZCLMZEJUCKZANZELZUHCLBBCLUEUGCEUEEOUEUFACUDCPIAACLNUEFQRSABEDGHTZUHBC
      UIUAUB $.
  $}

  ${
    $d z x $.
    $( A lemma for proving conditionless ZFC axioms.  (Contributed by NM,
       8-Jan-2002.) $)
    nd5 $p |- ( -. A. y y = x -> ( z = y -> A. x z = y ) ) $=
      ( cv wceq wal wi dveeq2 nalequcoms ) CDBDEZJAFGABABCHI $.
  $}

  ${
    $d x ch $.  $d x ph $.
    exlimdv.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction from Theorem 19.23 of [Margaris] p. 90.  (Contributed by NM,
       27-Apr-1994.) $)
    exlimdv $p |- ( ph -> ( E. x ps -> ch ) ) $=
      ( ax-17 exlimdh ) ABCDADFCDFEG $.
  $}

  ${
    $d x z $.  $d y z $.  $d z ph $.
    ax11v2.1 $e |- ( x = z -> ( ph -> A. x ( x = z -> ph ) ) ) $.
    $( Recovery of ~ ax11o from ~ ax11v without using ~ ax-11 .  The hypothesis
       is even weaker than ~ ax11v , 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 ~ ax11o .  (Contributed by NM,
       2-Feb-2007.) $)
    ax11v2 $p |- ( -. A. x x = y ->
                 ( x = y -> ( ph -> A. x ( x = y -> ph ) ) ) ) $=
      ( weq wal wn wex wi a9e wa wb equequ2 adantl dveeq2 imp hba1 imbi1d sps
      albidh syl imbi2d imbi12d mpbii ex exlimdv mpi ) BCFZBGHZDCFZDIUIAUIAJZBG
      ZJZJZDCKUJUKUODUJUKUOUJUKLZBDFZAUQAJZBGZJZJUOEUPUQUIUTUNUKUQUIMUJDCBNZOUP
      USUMAUPUKBGZUSUMMUJUKVBBCDPQVBURULBUKBRUKURULMBUKUQUIAVASTUAUBUCUDUEUFUGU
      H $.
  $}

  ${
    $d x z $.  $d y z $.  $d z ph $.
    ax11a2.1 $e |- ( x = z -> ( A. z ph -> A. x ( x = z -> ph ) ) ) $.
    $( Derive ~ ax-11o from a hypothesis in the form of ~ ax-11 .  The
       hypothesis is even weaker than ~ ax-11 , 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 ~ ax11o .  (Contributed by
       NM, 2-Feb-2007.) $)
    ax11a2 $p |- ( -. A. x x = y ->
                 ( x = y -> ( ph -> A. x ( x = y -> ph ) ) ) ) $=
      ( wal weq wi ax-17 syl5 ax11v2 ) ABCDAADFBDGZLAHBFADIEJK $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Derive the obsolete axiom of variable substitution ax-11o
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x z $.  $d y z $.  $d z ph $.
    $( Derivation of set.mm's original ~ ax-11o from the shorter ~ ax-11 that
       has replaced it.

       An open problem is whether this theorem can be proved without relying on
       ~ ax-16 or ~ ax-17 .

       Normally, ~ ax11o should be used rather than ~ ax-11o , except by
       theorems specifically studying the latter's properties.  (Contributed by
       NM, 3-Feb-2007.) $)
    ax11o $p |- ( -. A. x x = y ->
               ( x = y -> ( ph -> A. x ( x = y -> ph ) ) ) ) $=
      ( vz ax-11 ax11a2 ) ABCDABDEF $.
  $}

  $( Axiom ~ ax-11o ("o" for "old") was the original version of ~ ax-11 ,
     before it was discovered (in Jan. 2007) that the shorter ~ ax-11 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."

     This axiom is redundant, as shown by theorem ~ ax11o .

     This axiom is obsolete and should no longer be used.  It is proved above
     as theorem ~ ax11o .  (Contributed by NM, 5-Aug-1993.)
     (New usage is discouraged.) $)
  ax-11o $a |- ( -. A. x x = y ->
             ( x = y -> ( ph -> A. x ( x = y -> ph ) ) ) ) $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  More theorems related to ax-11 and substitution
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x ph $.
    albidv.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Formula-building rule for universal quantifier (deduction rule).
       (Contributed by NM, 5-Aug-1993.) $)
    albidv $p |- ( ph -> ( A. x ps <-> A. x ch ) ) $=
      ( ax-17 albidh ) ABCDADFEG $.

    $( Formula-building rule for existential quantifier (deduction rule).
       (Contributed by NM, 5-Aug-1993.) $)
    exbidv $p |- ( ph -> ( E. x ps <-> E. x ch ) ) $=
      ( ax-17 exbidh ) ABCDADFEG $.
  $}

  $( A bidirectional version of ~ ax-11o .  (Contributed by NM,
     30-Jun-2006.) $)
  ax11b $p |- ( ( -. A. x x = y /\ x = y ) ->
              ( ph <-> A. x ( x = y -> ph ) ) ) $=
    ( weq wal wn wa wi ax11o imp ax-4 com12 adantl impbid ) BCDZBEFZOGAOAHZBEZP
    OARHABCIJORAHPROAQBKLMN $.

  ${
    $d x y $.  $d x z $.  $d y z $.  $d ph z $.
    $( This is a version of ~ ax-11o when the variables are distinct.  Axiom
       (C8) of [Monk2] p. 105.  (Contributed by NM, 5-Aug-1993.)  (Revised by
       Jim Kingdon, 15-Dec-2017.) $)
    ax11v $p |- ( x = y -> ( ph -> A. x ( x = y -> ph ) ) ) $=
      ( vz cv wceq wex wi wal a9e ax-17 ax-11 syl5 equequ2 imbi1d albidv imbi2d
      imbi12d mpbii exlimiv ax-mp ) DEZCEZFZDGBEZUCFZAUFAHZBIZHZHZDCJUDUJDUDUEU
      BFZAUKAHZBIZHZHUJAADIUKUMADKABDLMUDUKUFUNUIDCBNZUDUMUHAUDULUGBUDUKUFAUOOP
      QRSTUA $.
  $}

  ${
    $d x y $.  $d x z $.  $d y z $.  $d ph z $.
    $( Analogue to ~ ax11v for existential quantification.  (Contributed by Jim
       Kingdon, 9-Jan-2018.) $)
    ax11ev $p |- ( x = y -> ( E. x ( x = y /\ ph ) -> ph ) ) $=
      ( vz cv wceq wex wa wi a9e ax11e ax-17 19.9h syl6ib equequ2 anbi1d exbidv
      imbi1d imbi12d mpbii exlimiv ax-mp ) DEZCEZFZDGBEZUDFZUGAHZBGZAIZIZDCJUEU
      KDUEUFUCFZULAHZBGZAIZIUKULUNADGAABDKADADLMNUEULUGUOUJDCBOZUEUNUIAUEUMUHBU
      EULUGAUPPQRSTUAUB $.
  $}

  $( Lemma used in proofs of substitution properties.  (Contributed by NM,
     5-Aug-1993.) $)
  equs5 $p |- ( -. A. x x = y ->
             ( E. x ( x = y /\ ph ) -> A. x ( x = y -> ph ) ) ) $=
    ( weq wal wn wa wi hbnae hba1 ax11o impd exlimdh ) BCDZBEFZNAGNAHZBEZBBCBIP
    BJONAQABCKLM $.

  ${
    $d x z $.  $d y z $.  $d ph z $.

    $( Lemma used in proofs of substitution properties.  Like ~ equs5 but, in
       intuitionistic logic, replacing negation and implication with
       disjunction makes this a stronger result.  (Contributed by Jim Kingdon,
       2-Feb-2018.) $)
    equs5or $p |- ( A. x x = y \/
             ( E. x ( x = y /\ ph ) -> A. x ( x = y -> ph ) ) ) $=
      ( vz weq wex wal wa wi wo a9e wnf dveeq2or nfnf1 nfri ax11v equequ2 ax-mp
      wb hba1 adantl nfr imp imbi1d sps albidh syl imbi2d imbi12d mpbii alrimih
      ex imp4a 19.21t mpbid 19.23h syl6ib orim2i pm2.76 olcs exlimiv ) DCEZDFBC
      EZBGZVCAHZBFVCAIZBGZIZJZDCKVBVIDVDVBVIVDVBVHIZJZVDVBJVIIVDVBBLZJVKBCDMVLV
      JVDVLVBVEVGIZBGZVHVLVBVMIZBGVBVNIVLVOBVLBVBBNOVLVBVCAVGVLVBVCAVGIZIZVLVBH
      ZBDEZAVSAIZBGZIZIVQABDPVRVSVCWBVPVBVSVCSVLDCBQZUAVRWAVGAVRVBBGZWAVGSVLVBW
      DVBBUBUCWDVTVFBVBBTVBVTVFSBVBVSVCAWCUDUEUFUGUHUIUJULUMUKVBVMBUNUOVEVGBVFB
      TUPUQURRVDVBVHUSRUTVAR $.
  $}

  $( 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 syl6 ) BCDZBEFNAGBHNAIBEABCJABCKABCLM
    $.

  $( One direction of a simplified definition of substitution when variables
     are distinct.  (Contributed by NM, 5-Aug-1993.) $)
  sb4 $p |- ( -. A. x x = y -> ( [ y / x ] ph -> A. x ( x = y -> ph ) ) ) $=
    ( wsb weq wa wex wal wn wi sb1 equs5 syl5 ) ABCDBCEZAFBGNBHINAJBHABCKABCLM
    $.

  $( One direction of a simplified definition of substitution when variables
     are distinct.  Similar to ~ sb4 but stronger in intuitionistic logic.
     (Contributed by Jim Kingdon, 2-Feb-2018.) $)
  sb4or $p |- ( A. x x = y \/
      A. x ( [ y / x ] ph -> A. x ( x = y -> ph ) ) ) $=
    ( weq wal wa wex wi wo wsb equs5or nfe1 nfa1 nfim sb1 imim1i alrimih orim2i
    nfri ax-mp ) BCDZBEZUAAFZBGZUAAHZBEZHZIUBABCJZUFHZBEZIABCKUGUJUBUGUIBUGBUDU
    FBUCBLUEBMNSUHUDUFABCOPQRT $.

  $( 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 $.

  $( Simplified definition of substitution when variables are distinct,
     expressed via disjunction.  (Contributed by Jim Kingdon, 18-Mar-2018.) $)
  sb4bor $p |- ( A. x x = y \/
      A. x ( [ y / x ] ph <-> A. x ( x = y -> ph ) ) ) $=
    ( weq wal wsb wi wo wb sb4or sb2 wa df-bi simpri mpan2 alimi orim2i ax-mp )
    BCDZBEZABCFZSAGBEZGZBEZHTUAUBIZBEZHABCJUDUFTUCUEBUCUBUAGZUEABCKUEUCUGLZGUHU
    EGUAUBMNOPQR $.

  $( Bound-variable hypothesis builder for substitution.  (Contributed by NM,
     5-Aug-1993.) $)
  hbsb2 $p |- ( -. A. x x = y -> ( [ y / x ] ph -> A. x [ y / x ] ph ) ) $=
    ( weq wal wn wsb wi sb4 sb2 a5i syl6 ) BCDZBEFABCGZMAHZBENBEABCIONBABCJKL
    $.

  $( Bound-variable hypothesis builder for substitution.  Similar to ~ hbsb2
     but in intuitionistic logic a disjunction is stronger than an implication.
     (Contributed by Jim Kingdon, 2-Feb-2018.) $)
  nfsb2or $p |- ( A. x x = y \/ F/ x [ y / x ] ph ) $=
    ( weq wal wsb wi wnf sb4or sb2 a5i imim2i alimi df-nf sylibr orim2i ax-mp
    wo ) BCDZBEZABCFZSAGZBEZGZBEZRTUABHZRABCIUEUFTUEUAUABEZGZBEUFUDUHBUCUGUAUBU
    ABABCJKLMUABNOPQ $.

  ${
    sbequilem.1 $e |- ( ph \/ ( ps -> ( ch -> th ) ) ) $.
    sbequilem.2 $e |- ( ta \/ ( ps -> ( th -> et ) ) ) $.
    $( Propositional logic lemma used in the ~ sbequi proof.  (Contributed by
       Jim Kingdon, 1-Feb-2018.) $)
    sbequilem $p |- ( ph \/ ( ta \/ ( ps -> ( ch -> et ) ) ) ) $=
      ( wo wi wa pm3.2i andi mpbi andir orbi12i orim2i ax-mp orim1i orass simpr
      pm3.43 pm3.33 syl6 sylbir simpl mpbir orcom orbi1i ) AEIZBCFJZJZIZAEULIIE
      AIZULIZUMUOEAULIZIZEABDFJZJZKZULIZIZUQAEKBCDJZJZEKIZVAIZVBVEUTVDUSKZIZIZV
      FAVDIZEKZVJUSKZIZVIVJEUSIZKVMVJVNGHLVJEUSMNVKVEVLVHAVDEOZAVDUSOPNVHVAVEVG
      ULUTVGBVCURKUKBVCURUBCDFUCUDQQRVEEVAVEVKEVOVJEUAUESRVAUPEUTAULAUSUFSQREAU
      LTUGUNUJULEAUHUINAEULTN $.
  $}

  $( An equality theorem for substitution.  (Contributed by NM, 5-Aug-1993.)
     (Proof modified by Jim Kingdon, 1-Feb-2018.) $)
  sbequi $p |- ( x = y -> ( [ x / z ] ph -> [ y / z ] ph ) ) $=
    ( weq wal wsb wi wo wex nfsb2or wa stdpc7 sbequ1 sylan9 orim2i ax-mp biimpd
    wnf sps equvini eximi 19.35-1 3syl syl9 19.9t sbequilem sbequ2 adantr drsb1
    nfr ax-1 alequcoms sylan9r syld ex orim1i pm1.2 syl jaoi ) DBEZDFZDCEZDFZBC
    EZADBGZADCGZHZHZIZIVIVBVEVFVGDJZVDVGVBVFDSZIVBVEVFVKHHZIADBKVLVMVBVLVFVFDFZ
    VEVKVFDUKVEBDEZVCLZDJVHDJVNVKHBCDUAVPVHDVOVFAVCVGABDMADCNZOUBVFVGDUCUDUEPQV
    DVKVGHZIZVDVEVRHZIVDVGDSZIVSADCKWAVRVDWAVKVGVGDUFRPQVRVTVDVRVEULPQUGVBVIVJV
    BVEVHVBVELVFAVGVBVFAHZVEVAWBDADBUHTUIVEAABCGZVBVGABCNWCVGHBDVOBFWCVGABDCUJR
    UMUNUOUPVJVIVIIVIVDVIVIVDVEVHVDVELVFAVGVDVFACBGZVEAVDVFWDADCBUJRABCMOVDAVGH
    ZVEVCWEDVQTUIUOUPUQVIURUSUTQ $.

  $( An equality theorem for substitution.  Used in proof of Theorem 9.7 in
     [Megill] p. 449 (p. 16 of the preprint).  (Contributed by NM,
     5-Aug-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, 27-Feb-2005.) $)
  drsb2 $p |- ( A. x x = y -> ( [ x / z ] ph <-> [ y / z ] ph ) ) $=
    ( weq wsb wb sbequ sps ) BCEADBFADCFGBABCDHI $.

  $( A specialization theorem, mostly the same as Theorem 19.8 of [Margaris]
     p. 89.  (Contributed by NM, 5-Aug-1993.)  (Proof rewritten by Jim Kingdon,
     29-Dec-2017.) $)
  spsbe $p |- ( [ y / x ] ph -> E. x ph ) $=
    ( wsb weq wa wex sb1 simpr eximi syl ) ABCDBCEZAFZBGABGABCHMABLAIJK $.

  $( Specialization of implication.  (Contributed by NM, 5-Aug-1993.)  (Proof
     rewritten by Jim Kingdon, 21-Jan-2018.) $)
  spsbim $p |- ( A. x ( ph -> ps ) -> ( [ y / x ] ph -> [ y / x ] ps ) ) $=
    ( wi wal weq wa wex wsb imim2 sps id anim2d alimi syl anim12d df-sb 3imtr4g
    exim ) ABEZCFZCDGZAEZUCAHZCIZHUCBEZUCBHZCIZHACDJBCDJUBUDUGUFUIUAUDUGECABUCK
    LUBUEUHEZCFUFUIEUAUJCUAABUCUAMNOUEUHCTPQACDRBCDRS $.

  $( Specialization of biconditional.  (Contributed by NM, 5-Aug-1993.)  (Proof
     rewritten by Jim Kingdon, 21-Jan-2018.) $)
  spsbbi $p |- ( A. x ( ph <-> ps ) -> ( [ y / x ] ph <-> [ y / x ] ps ) ) $=
    ( wi wal wa wsb wb spsbim anim12i albiim dfbi2 3imtr4i ) ABECFZBAECFZGACDHZ
    BCDHZEZRQEZGABICFQRIOSPTABCDJBACDJKABCLQRMN $.

  ${
    sbbidh.1 $e |- ( ph -> A. x ph ) $.
    sbbidh.2 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Deduction substituting both sides of a biconditional.  New proofs should
       use ~ sbbid instead.  (Contributed by NM, 5-Aug-1993.)
       (New usage is discouraged.) $)
    sbbidh $p |- ( ph -> ( [ y / x ] ps <-> [ y / x ] ch ) ) $=
      ( wb wal wsb alrimih spsbbi syl ) ABCHZDIBDEJCDEJHANDFGKBCDELM $.
  $}

  ${
    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 $.
  $}

  $( Elimination of equality from antecedent after substitution.  (Contributed
     by NM, 5-Aug-1993.)  (Proof revised by Jim Kingdon, 20-Jan-2018.) $)
  sbequ8 $p |- ( [ y / x ] ph <-> [ y / x ] ( x = y -> ph ) ) $=
    ( weq wi wa wex wsb pm5.4 simpl pm3.35 jca pm3.4 impbii exbii anbi12i df-sb
    3bitr4ri ) BCDZSAEZEZSTFZBGZFTSAFZBGZFTBCHABCHUATUCUESAIUBUDBUBUDUBSASTJSAK
    LUDSTSAJSAMLNOPTBCQABCQR $.

  $( 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 nfr stdpc4 syl6 impbid ) ABDZABCEZAPAB
    FOAABCGABHIOAABJPABKABCLMN $.

  ${
    sbid2h.1 $e |- ( ph -> A. x ph ) $.
    $( An identity law for substitution.  (Contributed by NM, 5-Aug-1993.) $)
    sbid2h $p |- ( [ y / x ] [ x / y ] ph <-> ph ) $=
      ( wsb sbcof2 sbh bitri ) ACBEBCEABCEAABCDFABCDGH $.
  $}

  ${
    sbid2.1 $e |- F/ x ph $.
    $( An identity law for substitution.  (Contributed by NM, 5-Aug-1993.)
       (Revised by Mario Carneiro, 6-Oct-2016.) $)
    sbid2 $p |- ( [ y / x ] [ x / y ] ph <-> ph ) $=
      ( nfri sbid2h ) ABCABDEF $.
  $}

  $( An idempotent law for substitution.  (Contributed by NM, 30-Jun-1994.)
     (Proof rewritten by Jim Kingdon, 21-Jan-2018.) $)
  sbidm $p |- ( [ y / x ] [ y / x ] ph <-> [ y / x ] ph ) $=
    ( wsb weq wi wa df-sb simplbi sbimi sbequ8 sylibr ax-1 pm4.24 ax-ie1 19.41h
    wex sb1 bitr4i exbii anim2i anim1i eximi sylbi anass anbi2i sylanbrc impbii
    sylib syl ) ABCDZBCDZUKULBCEZAFZBCDUKUKUNBCUKUNUMAGZBQZABCHZIJABCKLUKUMUKFU
    MUKGZBQZULUKUMMUKUPUSABCRUPUMUNUPGZGZBQZUSUPUMUNGZUPGZBQZVBUPUOUPGZBQZVEUPU
    PUPGVGUPNUOUPBUOBOPSVFVDBUOVCUPAUNUMAUMMUAUBUCUDVDVABUMUNUPUETUIURVABUKUTUM
    UQUFTLUJUKBCHUGUH $.

  ${
    sb5rf.1 $e |- ( ph -> A. y ph ) $.
    $( Reversed substitution.  (Contributed by NM, 3-Feb-2005.)  (Proof
       shortened by Andrew Salmon, 25-May-2011.) $)
    sb5rf $p |- ( ph <-> E. y ( y = x /\ [ y / x ] ph ) ) $=
      ( weq wsb wa wex sbid2h sb1 sylbir stdpc7 imp exlimih impbii ) ACBEZABCFZ
      GZCHZAQCBFSACBDIQCBJKRACDPQAACBLMNO $.

    $( Reversed substitution.  (Contributed by NM, 5-Aug-1993.)  (Proof
       shortened by Andrew Salmon, 25-May-2011.) $)
    sb6rf $p |- ( ph <-> A. y ( y = x -> [ y / x ] ph ) ) $=
      ( weq wsb wi wal sbequ1 equcoms com12 alrimih sb2 sbid2h sylib impbii ) A
      CBEZABCFZGZCHZASCDQARARGBCABCIJKLTRCBFARCBMACBDNOP $.
  $}

  ${
    sb8h.1 $e |- ( ph -> A. y ph ) $.
    $( Substitution of variable in universal quantifier.  (Contributed by NM,
       5-Aug-1993.)  (Proof shortened by Andrew Salmon, 25-May-2011.)  (Proof
       shortened by Jim Kingdon, 15-Jan-2018.) $)
    sb8h $p |- ( A. x ph <-> A. y [ y / x ] ph ) $=
      ( wsb hbsb3 sbequ12 cbvalh ) AABCEBCDABCDFABCGH $.
  $}

  ${
    sb8eh.1 $e |- ( ph -> A. y ph ) $.
    $( Substitution of variable in existential quantifier.  (Contributed by NM,
       12-Aug-1993.)  (Proof rewritten by Jim Kingdon, 15-Jan-2018.) $)
    sb8eh $p |- ( E. x ph <-> E. y [ y / x ] ph ) $=
      ( wsb hbsb3 sbequ12 cbvexh ) AABCEBCDABCDFABCGH $.
  $}

  ${
    sb8e.1 $e |- F/ y ph $.
    $( Substitution of variable in universal quantifier.  (Contributed by NM,
       5-Aug-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 $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Predicate calculus with distinct variables (cont.)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y z $.  $d z ph $.
    ax16i.1 $e |- ( x = z -> ( ph <-> ps ) ) $.
    ax16i.2 $e |- ( ps -> A. x ps ) $.
    $( Inference with ~ ax-16 as its conclusion, that doesn't require ~ ax-10 ,
       ~ ax-11 , or ~ ax-12 for its proof.  The hypotheses may be eliminable
       without one or more of these axioms in special cases.  (Contributed by
       NM, 20-May-2008.) $)
    ax16i $p |- ( A. x x = y -> ( ph -> A. x ph ) ) $=
      ( weq wal wi ax-17 ax-8 cbv3h spimv equid mpi syl syl5com alimdh mpcom
      alimi biimpcd biimprd syl6com ) CDHZCIZCEHZEIZAACIZJUFEDHZEIZUHUEUJCEUEEK
      ZUJCKCEDLMUKECHZEIZUHUEUKUNUJUEECECDLNUEUJUMEULUEDCHZUJUMUECCHUOCOCDCLPUJ
      DEHZUOUMJUJEEHZUPEOZEDELPDECLQRSTUMUGEUMUQUGURECELPZUAQQAUHBEIUIAUGBEAEKZ
      UGABFUBSBAECGUTUMUGBAJUSUGABFUCQMUDQ $.
  $}

  ${
    $d x y z $.  $d z ph $.
    $( Version of ~ ax16 that doesn't require ~ ax-10 or ~ ax-12 for its proof.
       (Contributed by NM, 17-May-2008.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    ax16ALT $p |- ( A. x x = y -> ( ph -> A. x ph ) ) $=
      ( vz wsb sbequ12 ax-17 hbsb3 ax16i ) AABDEBCDABDFABDADGHI $.
  $}

  ${
    $d x ps $.
    spv.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Specialization, using implicit substitition.  (Contributed by NM,
       30-Aug-1993.) $)
    spv $p |- ( A. x ph -> ps ) $=
      ( weq biimpd spimv ) ABCDCDFABEGH $.
  $}

  ${
    $d x ph $.
    spimev.1 $e |- ( x = y -> ( ph -> ps ) ) $.
    $( Distinct-variable version of ~ spime .  (Contributed by NM,
       5-Aug-1993.) $)
    spimev $p |- ( ph -> E. x ps ) $=
      ( nfv spime ) ABCDACFEG $.
  $}

  ${
    $d x ps $.
    speiv.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    speiv.2 $e |- ps $.
    $( Inference from existential specialization, using implicit substitition.
       (Contributed by NM, 19-Aug-1993.) $)
    speiv $p |- E. x ph $=
      ( wex weq biimprd spimev ax-mp ) BACGFBACDCDHABEIJK $.
  $}

  ${
    $d x z $.  $d y z $.
    $( A variable introduction law for equality.  Lemma 15 of [Monk2] p. 109.
       (Contributed by NM, 5-Aug-1993.) $)
    equvin $p |- ( x = y <-> E. z ( x = z /\ z = y ) ) $=
      ( weq wa wex equvini ax-17 equtr imp exlimih impbii ) ABDZACDZCBDZEZCFABC
      GPMCMCHNOMACBIJKL $.
  $}

  ${
    $d x y $.
    $( A generalization of axiom ~ ax-16 .  (Contributed by NM, 5-Aug-1993.)
       (Proof shortened by Andrew Salmon, 25-May-2011.) $)
    a16g $p |- ( A. x x = y -> ( ph -> A. z ph ) ) $=
      ( weq wal aev ax16 biidd dral1 biimprd sylsyld ) BCEBFDBEDFZAABFZADFZBCDD
      BGABCHMONAADBMAIJKL $.

    $( A generalization of axiom ~ ax-16 .  (Contributed by NM, 5-Aug-1993.) $)
    a16gb $p |- ( A. x x = y -> ( ph <-> A. z ph ) ) $=
      ( weq wal a16g ax-4 impbid1 ) BCEBFAADFABCDGADHI $.

    $( If there is only one element in the universe, then everything satisfies
       ` F/ ` .  (Contributed by Mario Carneiro, 7-Oct-2016.) $)
    a16nf $p |- ( A. x x = y -> F/ z ph ) $=
      ( weq wal nfae a16g nfd ) BCEBFADBCDGABCDHI $.
  $}

  ${
    $d x ph $.  $d y ph $.
    2albidv.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Formula-building rule for 2 existential 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 2 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 3 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 4 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 $.
    $( Special case of Theorem 19.9 of [Margaris] p. 89.  (Contributed by NM,
       28-May-1995.)  (Revised by NM, 21-May-2007.) $)
    19.9v $p |- ( E. x ph <-> ph ) $=
      ( ax-17 19.9h ) ABABCD $.
  $}

  ${
    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 $.
  $}

  ${
    $d x ph $.
    $( Special case of Theorem 19.21 of [Margaris] p. 90. _Notational
       convention_:  We sometimes suffix with "v" the label of a theorem
       eliminating a hypothesis such as ` ( ph -> A. x ph ) ` in ~ 19.21 via
       the use of distinct variable conditions combined with ~ ax-17 .
       Conversely, we sometimes suffix with "f" the label of a theorem
       introducing such a hypothesis to eliminate the need for the distinct
       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."
       (Contributed by NM, 5-Aug-1993.) $)
    19.21v $p |- ( A. x ( ph -> ps ) <-> ( ph -> A. x ps ) ) $=
      ( ax-17 19.21h ) ABCACDE $.
  $}

  ${
    $d x ph $.
    alrimiv.1 $e |- ( ph -> ps ) $.
    $( Inference from Theorem 19.21 of [Margaris] p. 90.  (Contributed by NM,
       5-Aug-1993.) $)
    alrimiv $p |- ( ph -> A. x ps ) $=
      ( ax-17 alrimih ) ABCACEDF $.
  $}

  ${
    $d x ph $.  $d y ph $.
    alrimivv.1 $e |- ( ph -> ps ) $.
    $( Inference from Theorem 19.21 of [Margaris] p. 90.  (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 from Theorem 19.21 of [Margaris] p. 90.  (Contributed by NM,
       10-Feb-1997.) $)
    alrimdv $p |- ( ph -> ( ps -> A. x ch ) ) $=
      ( ax-17 alrimdh ) ABCDADFBDFEG $.
  $}

  ${
    $d x ph $.
    nfdv.1 $e |- ( ph -> ( ps -> A. x ps ) ) $.
    $( Apply the definition of not-free in a context.  (Contributed by Mario
       Carneiro, 11-Aug-2016.) $)
    nfdv $p |- ( ph -> F/ x ps ) $=
      ( wal wi wnf alrimiv df-nf sylibr ) ABBCEFZCEBCGAKCDHBCIJ $.
  $}

  ${
    $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.) $)
    2ax17 $p |- ( ph -> A. x A. y ph ) $=
      ( id alrimivv ) AABCADE $.
  $}

  ${
    $d x ph $.
    alimdv.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction from Theorem 19.20 of [Margaris] p. 90.  (Contributed by NM,
       3-Apr-1994.) $)
    alimdv $p |- ( ph -> ( A. x ps -> A. x ch ) ) $=
      ( ax-17 alimdh ) ABCDADFEG $.

    $( Deduction from Theorem 19.22 of [Margaris] p. 90.  (Contributed by NM,
       27-Apr-1994.) $)
    eximdv $p |- ( ph -> ( E. x ps -> E. x ch ) ) $=
      ( ax-17 eximdh ) ABCDADFEG $.
  $}

  ${
    $d x ph $.  $d y ph $.
    2alimdv.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction from Theorem 19.22 of [Margaris] p. 90.  (Contributed by NM,
       27-Apr-2004.) $)
    2alimdv $p |- ( ph -> ( A. x A. y ps -> A. x A. y ch ) ) $=
      ( wal alimdv ) ABEGCEGDABCEFHH $.

    $( Deduction from Theorem 19.22 of [Margaris] p. 90.  (Contributed by NM,
       3-Aug-1995.) $)
    2eximdv $p |- ( ph -> ( E. x E. y ps -> E. x E. y ch ) ) $=
      ( wex eximdv ) ABEGCEGDABCEFHH $.
  $}

  ${
    $d x ps $.
    $( Special case of Theorem 19.23 of [Margaris] p. 90.  (Contributed by NM,
       28-Jun-1998.) $)
    19.23v $p |- ( A. x ( ph -> ps ) <-> ( E. x ph -> ps ) ) $=
      ( ax-17 19.23h ) ABCBCDE $.
  $}

  ${
    $d x ps $.  $d y ps $.
    $( Theorem 19.23 of [Margaris] p. 90 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 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 .  (Contributed by
       NM, 14-Apr-2008.) $)
    sb56 $p |- ( E. x ( x = y /\ ph ) <-> A. x ( x = y -> ph ) ) $=
      ( weq wi wal hba1 ax11v ax-4 com12 impbid equsex ) ABCDZAEZBFZBCNBGMAOABC
      HOMANBIJKL $.

    $( Equivalence for substitution.  Compare Theorem 6.2 of [Quine] p. 40.
       Also proved as Lemmas 16 and 17 of [Tarski] p. 70.  (Contributed by NM,
       18-Aug-1993.)  (Revised by NM, 14-Apr-2008.) $)
    sb6 $p |- ( [ y / x ] ph <-> A. x ( x = y -> ph ) ) $=
      ( weq wi wa wex wal wsb sb56 anbi2i df-sb ax-4 pm4.71ri 3bitr4i ) BCDZAEZ
      PAFBGZFQQBHZFABCISRSQABCJKABCLSQQBMNO $.

    $( Equivalence for substitution.  Similar to Theorem 6.1 of [Quine] p. 40.
       (Contributed by NM, 18-Aug-1993.)  (Revised by NM, 14-Apr-2008.) $)
    sb5 $p |- ( [ y / x ] ph <-> E. x ( x = y /\ ph ) ) $=
      ( wsb weq wi wal wa wex sb6 sb56 bitr4i ) ABCDBCEZAFBGMAHBIABCJABCKL $.

    $( Version of ~ sbn where ` x ` and ` y ` are distinct.  (Contributed by
       Jim Kingdon, 18-Dec-2017.) $)
    sbnv $p |- ( [ y / x ] -. ph <-> -. [ y / x ] ph ) $=
      ( wn wsb weq wa wex wi wal sb6 alinexa bitri sb5 xchbinxr ) ADZBCEZBCFZAG
      BHZABCEQRPIBJSDPBCKRABLMABCNO $.

    $( Version of ~ sban where ` x ` and ` y ` are distinct.  (Contributed by
       Jim Kingdon, 24-Dec-2017.) $)
    sbanv $p |- ( [ y / x ] ( ph /\ ps ) <->
                  ( [ y / x ] ph /\ [ y / x ] ps ) ) $=
      ( wa wsb weq wi wal sb6 anbi12i 19.26 pm4.76 albii 3bitr2i bitr4i ) ABEZC
      DFCDGZQHZCIZACDFZBCDFZEZQCDJUCRAHZCIZRBHZCIZEUDUFEZCITUAUEUBUGACDJBCDJKUD
      UFCLUHSCRABMNOP $.

    $( Version of ~ sbor where ` x ` and ` y ` are distinct.  (Contributed by
       Jim Kingdon, 3-Feb-2018.) $)
    sborv $p |- ( [ y / x ] ( ph \/ ps ) <->
                  ( [ y / x ] ph \/ [ y / x ] ps ) ) $=
      ( wo wsb weq wa wex sb5 andi exbii 19.43 3bitri orbi12i bitr4i ) ABEZCDFZ
      CDGZAHZCIZSBHZCIZEZACDFZBCDFZERSQHZCITUBEZCIUDQCDJUGUHCSABKLTUBCMNUEUAUFU
      CACDJBCDJOP $.

    $( Forward direction of ~ sbimv .  (Contributed by Jim Kingdon,
       25-Dec-2017.) $)
    sbi1v $p |- ( [ y / x ] ( ph -> ps )
                      -> ( [ y / x ] ph -> [ y / x ] ps ) ) $=
      ( wsb weq wi wal sb6 ax-2 al2imi sb2 syl6 sylbi syl5bi ) ACDECDFZAGZCHZAB
      GZCDEZBCDEZACDITPSGZCHZRUAGSCDIUCRPBGZCHUAUBQUDCPABJKBCDLMNO $.

    $( Reverse direction of ~ sbimv .  (Contributed by Jim Kingdon,
       18-Jan-2018.) $)
    sbi2v $p |- ( ( [ y / x ] ph -> [ y / x ] ps )
                      -> [ y / x ] ( ph -> ps ) ) $=
      ( weq wa wex wi wal wsb 19.38 pm3.3 pm2.04 syli alimi syl sb5 sb6 imbi12i
      3imtr4i ) CDEZAFZCGZUABHZCIZHZUAABHZHZCIZACDJZBCDJZHUGCDJUFUBUDHZCIUIUBUD
      CKULUHCUAULAUDHUGUAAUDLAUABMNOPUJUCUKUEACDQBCDRSUGCDRT $.

    $( Intuitionistic proof of ~ sbim where ` x ` and ` y ` are distinct.
       (Contributed by Jim Kingdon, 18-Jan-2018.) $)
    sbimv $p |- ( [ y / x ] ( ph -> ps )
                  <-> ( [ y / x ] ph -> [ y / x ] ps ) ) $=
      ( wi wsb sbi1v sbi2v impbii ) ABECDFACDFBCDFEABCDGABCDHI $.
  $}

  ${
    $d x y $.
    sblimv.1 $e |- ( ps -> A. x ps ) $.
    $( Version of ~ sblim where ` x ` and ` y ` are distinct.  (Contributed by
       Jim Kingdon, 19-Jan-2018.) $)
    sblimv $p |- ( [ y / x ] ( ph -> ps ) <-> ( [ y / x ] ph -> ps ) ) $=
      ( wi wsb sbimv sbh imbi2i bitri ) ABFCDGACDGZBCDGZFLBFABCDHMBLBCDEIJK $.
  $}

  ${
    $d ph y $.  $d ps x $.
    $( Theorem *11.53 in [WhiteheadRussell] p. 164.  (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 ax-17 hbal 19.23h bitri ) ABEDFZCFABDFZEZCFACGO
      ENPCABDHIAOCBCDBCJKLM $.
  $}

  ${
    $d x ps $.  $d y ps $.
    exlimivv.1 $e |- ( ph -> ps ) $.
    $( Inference from Theorem 19.23 of [Margaris] p. 90.  (Contributed by NM,
       1-Aug-1995.) $)
    exlimivv $p |- ( E. x E. y ph -> ps ) $=
      ( wex exlimiv ) ADFBCABDEGG $.
  $}

  ${
    $d x ch $.  $d x ph $.  $d y ch $.  $d y ph $.
    exlimdvv.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction from Theorem 19.23 of [Margaris] p. 90.  (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 ps $.
    $( Theorem 19.27 of [Margaris] p. 90.  (Contributed by NM, 3-Jun-2004.) $)
    19.27v $p |- ( A. x ( ph /\ ps ) <-> ( A. x ph /\ ps ) ) $=
      ( ax-17 19.27h ) ABCBCDE $.
  $}

  ${
    $d x ph $.
    $( Theorem 19.28 of [Margaris] p. 90.  (Contributed by NM, 25-Mar-2004.) $)
    19.28v $p |- ( A. x ( ph /\ ps ) <-> ( ph /\ A. x ps ) ) $=
      ( ax-17 19.28h ) ABCACDE $.
  $}

  ${
    $d x ps $.
    19.36aiv.1 $e |- E. x ( ph -> ps ) $.
    $( Inference from Theorem 19.36 of [Margaris] p. 90.  (Contributed by NM,
       5-Aug-1993.) $)
    19.36aiv $p |- ( A. x ph -> ps ) $=
      ( nfv 19.36i ) ABCBCEDF $.
  $}

  ${
    $d x ps $.
    $( Special case of Theorem 19.41 of [Margaris] p. 90.  (Contributed by NM,
       5-Aug-1993.) $)
    19.41v $p |- ( E. x ( ph /\ ps ) <-> ( E. x ph /\ ps ) ) $=
      ( ax-17 19.41h ) ABCBCDE $.
  $}

  ${
    $d x ps $.  $d y ps $.
    $( Theorem 19.41 of [Margaris] p. 90 with 2 quantifiers.  (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 $.
    $( Theorem 19.41 of [Margaris] p. 90 with 3 quantifiers.  (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 $.
    $( Theorem 19.41 of [Margaris] p. 90 with 4 quantifiers.  (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 $.
    $( Special case of Theorem 19.42 of [Margaris] p. 90.  (Contributed by NM,
       5-Aug-1993.) $)
    19.42v $p |- ( E. x ( ph /\ ps ) <-> ( ph /\ E. x ps ) ) $=
      ( ax-17 19.42h ) ABCACDE $.
  $}

  ${
    $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 $.
    $( Theorem 19.42 of [Margaris] p. 90 with 2 quantifiers.  (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 $.
    $( Theorem 19.42 of [Margaris] p. 90 with 3 quantifiers.  (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 w ph $.  $d x ph $.  $d y ph $.  $d z ph $.
    $( Theorem 19.42 of [Margaris] p. 90 with 4 quantifiers.  (Contributed by
       Jim Kingdon, 23-Nov-2019.) $)
    19.42vvvv $p |- ( E. w E. x E. y E. z ( ph /\ ps ) <->
                     ( ph /\ E. w E. x E. y E. z ps ) ) $=
      ( wa wex 19.42vv 2exbii bitri ) ABGEHDHZCHFHABEHDHZGZCHFHAMCHFHGLNFCABDEI
      JAMFCIK $.
  $}

  ${
    $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.  (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.  (Contributed by NM,
       9-Mar-1995.) $)
    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 anass exbii 19.42v anbi2i 3bitri bitri ) ABICDIZIZHJZGJZFJZABCDH
      JIZGJIZFJIZEUAAUCIZFJUDTUEFTABUBIZIZGJAUFGJZIUESUGGSABQIZIZHJZUGRUJHABQKL
      UKAUIHJZIABQHJZIZIUGAUIHMULUNABQHMNUNUFAUMUBBCDHMNNOPLAUFGMUHUCABUBGMNOLA
      UCFMPL $.
  $}

  ${
    $d y ph $.  $d x ps $.
    cbvalv.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Rule used to change bound variables, using implicit substitition.
       (Contributed by NM, 5-Aug-1993.) $)
    cbvalv $p |- ( A. x ph <-> A. y ps ) $=
      ( ax-17 cbvalh ) ABCDADFBCFEG $.

    $( Rule used to change bound variables, using implicit substitition.
       (Contributed by NM, 5-Aug-1993.) $)
    cbvexv $p |- ( E. x ph <-> E. y ps ) $=
      ( ax-17 cbvexh ) ABCDADFBCFEG $.
  $}

  ${
    $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.) $)
    cbvex2 $p |- ( E. x E. y ph <-> E. z E. w ps ) $=
      ( wex nfex weq wb wa nfv nfan cbvex 19.42v wi expcom pm5.32d pm5.32 mpbir
      3bitr3i ) ADLZBFLZCEAEDGMBCFIMCENZUGUHOUAUIUGPZUIUHPZOUIAPZDLUIBPZFLUJUKU
      LUMDFUIAFUIFQHRUIBDUIDQJRDFNZUIABUIUNABOKUBUCSUIADTUIBFTUFUIUGUHUDUES $.
  $}

  ${
    $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.) $)
    cbval2v $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.) $)
    cbvex2v $p |- ( E. x E. y ph <-> E. z E. w ps ) $=
      ( nfv cbvex2 ) ABCDEFAEHAFHBCHBDHGI $.
  $}

  ${
    $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 wnf a1i cbv2 ) ABCDEADIFGCDJACDIKHL $.
  $}

  ${
    $d x ph $.  $d x ch $.
    cbvexdh.1 $e |- ( ph -> A. y ph ) $.
    cbvexdh.2 $e |- ( ph -> ( ps -> A. y ps ) ) $.
    cbvexdh.3 $e |- ( ph -> ( x = y -> ( ps <-> ch ) ) ) $.
    $( Deduction used to change bound variables, using implicit substitition,
       particularly useful in conjunction with ~ dvelim .  (Contributed by NM,
       2-Jan-2002.)  (Proof rewritten by Jim Kingdon, 30-Dec-2017.) $)
    cbvexdh $p |- ( ph -> ( E. x ps <-> E. y ch ) ) $=
      ( wex ax-17 cv wceq wa wb wi equsexd simpr eximi syl6bir wal hbex equcomi
      bicom1 imim12i syl exlimdh eximdh 19.12 syl6 a1i exlimd2 impbid ) ABDIZCE
      IZABUNDADJZCDECDJZUAABEKZDKZLZCMZEIUNACBEDFGAURUQLZBCNZOUSCBNZOHUSVAVBVCE
      DUBBCUCUDUEPUTCEUSCQRSUFACUMEFAUMBETZDIUMETABVDDUOGUGBDEUHUIACVABMZDIUMAB
      CDEUOCCDTOAUPUJHPVEBDVABQRSUKUL $.
  $}

  ${
    $d x ph $.  $d x ch $.
    cbvexd.1 $e |- F/ y ph $.
    cbvexd.2 $e |- ( ph -> F/ y ps ) $.
    cbvexd.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.)  (Proof rewritten
       by Jim Kingdon, 10-Jun-2018.) $)
    cbvexd $p |- ( ph -> ( E. x ps <-> E. y ch ) ) $=
      ( nfri nfrd cbvexdh ) ABCDEAEFIABEGJHK $.
  $}

  ${
    $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.) $)
    cbvaldva $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.) $)
    cbvexdva $p |- ( ph -> ( E. x ps <-> E. y ch ) ) $=
      ( nfv nfvd weq wb ex cbvexd ) ABCDEAEGABEHADEIBCJFKL $.
  $}

  ${
    $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 substitition.
       (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 $.
  $}

  ${
    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 z ps $.  $d x y ch $.
    $( Rearrange existential quantifiers.  (Contributed by NM, 26-Jul-1995.)
       (Proof shortened by Andrew Salmon, 25-May-2011.) $)
    eeeanv $p |- ( E. x E. y E. z ( ph /\ ps /\ ch ) <->
                 ( E. x ph /\ E. y ps /\ E. z ch ) ) $=
      ( w3a wex wa df-3an 3exbii eeanv exbii anbi1i 19.41v 3bitr4i 3bitri ) ABC
      GZFHEHDHABIZCIZFHEHZDHSEHZCFHZIZDHZADHZBEHZUCGZRTDEFABCJKUAUDDSCEFLMUBDHZ
      UCIUFUGIZUCIUEUHUIUJUCABDELNUBUCDOUFUGUCJPQ $.
  $}

  ${
    $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 $.
  $}

  ${
    $v s $.
    $( Define a temporary individual variable. $)
    ee8anv.vs $f setvar s $.

    $d v ph $.  $d u ph $.  $d t ph $.  $d s ph $.  $d x ps $.  $d y ps $.
    $d z ps $.  $d w ps $.  $d s x $.  $d s y $.  $d s z $.  $d t w $.
    $d t x $.  $d t y $.  $d u w $.  $d u x $.  $d u z $.  $d v w $.  $d v y $.
    $d v z $.
    $( Rearrange existential quantifiers.  (Contributed by Jim Kingdon,
       23-Nov-2019.) $)
    ee8anv $p |- ( E. x E. y E. z E. w E. v E. u E. t E. s ( ph /\ ps ) <->
                  ( E. x E. y E. z E. w ph /\ E. v E. u E. t E. s ps ) ) $=
      ( wa wex exrot4 2exbii ee4anv 3bitri ) ABKJLILZHLGLFLELZDLCLQFLELZHLGLZDL
      CLAFLELZBJLILZKZHLGLZDLCLUADLCLUBHLGLKRTCDQEFGHMNTUDCDSUCGHABEFIJONNUAUBC
      DGHOP $.
  $}

  ${
    $d x ph $.
    nexdv.1 $e |- ( ph -> -. ps ) $.
    $( Deduction for generalization rule for negated wff.  (Contributed by NM,
       5-Aug-1993.) $)
    nexdv $p |- ( ph -> -. E. x ps ) $=
      ( ax-17 nexd ) ABCACEDF $.
  $}

  ${
    $d x ps $.
    chv.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    chv.2 $e |- ph $.
    $( Implicit substitution of ` y ` for ` x ` into a theorem.  (Contributed
       by NM, 20-Apr-1994.) $)
    chvarv $p |- ps $=
      ( spv mpg ) ABCABCDEGFH $.
  $}

  ${
    $d x z $.  $d y z $.
    $( When the class variables of set theory 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.) $)
    cleljust $p |- ( x e. y <-> E. z ( z = x /\ z e. y ) ) $=
      ( weq wel wa wex ax-17 elequ1 equsex bicomi ) CADCBEZFCGABEZLMCAMCHCABIJK
      $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  More substitution theorems
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

$( The theorems in this section make use of the $d statement. $)

  ${
    $d x y $.
    $( ` x ` is not free in ` [ y / x ] ph ` when ` x ` and ` y ` are distinct.
       (Contributed by NM, 5-Aug-1993.)  (Proof by Jim Kingdon, 16-Dec-2017.)
       (New usage is discouraged.) $)
    hbs1 $p |- ( [ y / x ] ph -> A. x [ y / x ] ph ) $=
      ( wsb weq wi wal sb6 ax-ial hbxfrbi ) ABCDBCEAFZBGBABCHKBIJ $.

    $( ` 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 nfi ) 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 ax-17 sb8h imbi2i 19.21v bitr4i ) AABDZEAABCFZCDZEAMECDLNAAB
      CACGHIAMCJK $.
  $}

  ${
    $d x z $.  $d y z $.
    hbsbv.1 $e |- ( ph -> A. z ph ) $.
    $( This is a version of ~ hbsb with an extra distinct variable constraint,
       on ` z ` and ` x ` .  (Contributed by Jim Kingdon, 25-Dec-2017.) $)
    hbsbv $p |- ( [ y / x ] ph -> A. z [ y / x ] ph ) $=
      ( wsb weq wi wa wex df-sb ax-17 hbim hban hbex hbxfrbi ) ABCFBCGZAHZQAIZB
      JZIDABCKRTDQADQDLZEMSDBQADUAENONP $.
  $}

  ${
    $d x y $.  $d y z $.
    nfsbxy.1 $e |- F/ z ph $.
    $( Similar to ~ hbsb but with an extra distinct variable constraint, on
       ` x ` and ` y ` .  (Contributed by Jim Kingdon, 19-Mar-2018.) $)
    nfsbxy $p |- F/ z [ y / x ] ph $=
      ( weq wal wi wo wsb wnf ax-bndl nfs1v drsb1 drnf2 mpbii a16nf df-nf albii
      jaoi wa wex sb5 nfa1 sp a1i nfand nfexd nfxfrd sylbir ax-mp ) DBFDGZDCFDG
      ZBCFZUNDGHDGZBGZIZIABCJZDKZBCDLULUSUQULADCJZDKUSADCMUTURDBDADBCNOPUMUSUPU
      RDCDQUPUNDKZBGZUSVAUOBUNDRSURUNAUAZBUBVBDABCUCVBVCDBVABUDVBUNADVABUEADKVB
      EUFUGUHUIUJTTUK $.
  $}

  ${
    $d x y $.  $d y z $.
    $( Closed form of ~ nfsbxy .  (Contributed by Jim Kingdon, 9-May-2018.) $)
    nfsbxyt $p |- ( A. x F/ z ph -> F/ z [ y / x ] ph ) $=
      ( weq wal wi wo wnf wsb ax-bndl nfs1v drsb1 drnf2 mpbii a1d wa nfa1 jaoi
      sp a16nf df-nf albii wex sb5 nfan adantr adantl nfand nfexd nfxfrd sylbir
      ex ax-mp ) DBEDFZDCEDFZBCEZUQDFGDFZBFZHZHADIZBFZABCJZDIZGZBCDKUOVEUTUOVDV
      BUOADCJZDIVDADCLVFVCDBDADBCMNOPUPVEUSUPVDVBVCDCDUAPUSUQDIZBFZVEVGURBUQDUB
      UCVHVBVDVCUQAQZBUDVHVBQZDABCUEVJVIDBVHVBBVGBRVABRUFVJUQADVHVGVBVGBTUGVBVA
      VHVABTUHUIUJUKUMULSSUN $.
  $}

  ${
    $d x z $.  $d y z $.
    sbco2vlem.1 $e |- ( ph -> A. z ph ) $.
    $( This is a version of ~ sbco2 where ` z ` is distinct from ` x ` and from
       ` y ` .  It is a lemma on the way to proving ~ sbco2v which only
       requires that ` z ` and ` x ` be distinct.  (Contributed by Jim Kingdon,
       25-Dec-2017.)  (One distinct variable constraint removed by Jim Kingdon,
       3-Feb-2018.) $)
    sbco2vlem $p |- ( [ y / z ] [ z / x ] ph <-> [ y / x ] ph ) $=
      ( wsb hbsbv sbequ sbieh ) ABDFABCFDCABCDEGADCBHI $.
  $}

  ${
    $d x z w $.  $d y w $.  $d z w $.  $d ph w $.
    sbco2v.1 $e |- ( ph -> A. z ph ) $.
    $( This is a version of ~ sbco2 where ` z ` is distinct from ` x ` .
       (Contributed by Jim Kingdon, 12-Feb-2018.) $)
    sbco2v $p |- ( [ y / z ] [ z / x ] ph <-> [ y / x ] ph ) $=
      ( vw wsb sbco2vlem sbbii ax-17 3bitr3i ) ABDGZDFGZFCGABFGZFCGLDCGABCGMNFC
      ABFDEHILDCFLFJHABCFAFJHK $.
  $}

  ${
    $d w y z $.  $d w ph $.  $d w x $.
    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.)  (Proof rewritten by Jim Kingdon, 19-Mar-2018.) $)
    nfsb $p |- F/ z [ y / x ] ph $=
      ( vw wsb wnf nfsbxy ax-17 sbco2v nfbii mpbi ) ABFGZFCGZDHABCGZDHNFCDABFDE
      IIOPDABCFAFJKLM $.
  $}

  ${
    $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.)  (Proof
       rewritten by Jim Kingdon, 22-Mar-2018.) $)
    hbsb $p |- ( [ y / x ] ph -> A. z [ y / x ] ph ) $=
      ( wsb nfi nfsb nfri ) ABCFDABCDADEGHI $.
  $}

  ${
    $d y z $.  $d x y $.
    $( Lemma for ~ equsb3 .  (Contributed by NM, 4-Dec-2005.)  (Proof shortened
       by Andrew Salmon, 14-Jun-2011.) $)
    equsb3lem $p |- ( [ x / y ] y = z <-> x = z ) $=
      ( cv wceq ax-17 equequ1 sbieh ) BDCDZEADIEZBAJBFBACGH $.
  $}

  ${
    $d w y z $.  $d w x $.
    $( Substitution applied to an atomic wff.  (Contributed by Raph Levien and
       FL, 4-Dec-2005.) $)
    equsb3 $p |- ( [ x / y ] y = z <-> x = z ) $=
      ( vw weq wsb equsb3lem sbbii ax-17 sbco2v 3bitr3i ) BCEZBDFZDAFDCEZDAFLBA
      FACEMNDADBCGHLBADLDIJADCGK $.
  $}

  ${
    $d z ph $.  $d z ps $.  $d z x $.  $d z y $.

    $( Negation inside and outside of substitution are equivalent.
       (Contributed by NM, 5-Aug-1993.)  (Proof rewritten by Jim Kingdon,
       3-Feb-2018.) $)
    sbn $p |- ( [ y / x ] -. ph <-> -. [ y / x ] ph ) $=
      ( vz wn wsb sbnv sbbii bitri ax-17 hbn sbco2v notbii 3bitr3i ) AEZBDFZDCF
      ZABDFZDCFZEZOBCFABCFZEQREZDCFTPUBDCABDGHRDCGIOBCDADADJZKLSUAABCDUCLMN $.

    $( Implication inside and outside of substitution are equivalent.
       (Contributed by NM, 5-Aug-1993.)  (Proof rewritten by Jim Kingdon,
       3-Feb-2018.) $)
    sbim $p |- ( [ y / x ] ( ph -> ps ) <->
        ( [ y / x ] ph -> [ y / x ] ps ) ) $=
      ( vz wi wsb sbimv sbbii bitri ax-17 sbco2v imbi12i 3bitr3i ) ABFZCEGZEDGZ
      ACEGZEDGZBCEGZEDGZFZOCDGACDGZBCDGZFQRTFZEDGUBPUEEDABCEHIRTEDHJOCDEOEKLSUC
      UAUDACDEAEKLBCDEBEKLMN $.

    $( Logical OR inside and outside of substitution are equivalent.
       (Contributed by NM, 29-Sep-2002.)  (Proof rewritten by Jim Kingdon,
       3-Feb-2018.) $)
    sbor $p |- ( [ y / x ] ( ph \/ ps ) <->
        ( [ y / x ] ph \/ [ y / x ] ps ) ) $=
      ( vz wo wsb sborv sbbii bitri ax-17 sbco2v orbi12i 3bitr3i ) ABFZCEGZEDGZ
      ACEGZEDGZBCEGZEDGZFZOCDGACDGZBCDGZFQRTFZEDGUBPUEEDABCEHIRTEDHJOCDEOEKLSUC
      UAUDACDEAEKLBCDEBEKLMN $.

    $( Conjunction inside and outside of a substitution are equivalent.
       (Contributed by NM, 5-Aug-1993.)  (Proof rewritten by Jim Kingdon,
       3-Feb-2018.) $)
    sban $p |- ( [ y / x ] ( ph /\ ps ) <->
        ( [ y / x ] ph /\ [ y / x ] ps ) ) $=
      ( vz wa wsb sbanv sbbii bitri ax-17 sbco2v anbi12i 3bitr3i ) ABFZCEGZEDGZ
      ACEGZEDGZBCEGZEDGZFZOCDGACDGZBCDGZFQRTFZEDGUBPUEEDABCEHIRTEDHJOCDEOEKLSUC
      UAUDACDEAEKLBCDEBEKLMN $.
  $}

  ${
    sbrim.1 $e |- ( ph -> A. x ph ) $.
    $( Substitution with a variable not free in antecedent affects only the
       consequent.  (Contributed by NM, 5-Aug-1993.) $)
    sbrim $p |- ( [ y / x ] ( ph -> ps ) <-> ( ph -> [ y / x ] ps ) ) $=
      ( wi wsb sbim sbh 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 $.
  $}

  $( 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, 5-Aug-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 $.

  ${
    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 |- ( ch -> A. x ch ) $.
    sbrbif.2 $e |- ( [ y / x ] ph <-> ps ) $.
    $( Introduce right biconditional inside of a substitution.  (Contributed by
       NM, 18-Aug-1993.) $)
    sbrbif $p |- ( [ y / x ] ( ph <-> ch ) <-> ( ps <-> ch ) ) $=
      ( wb wsb sbrbis sbh bibi2i bitri ) ACHDEIBCDEIZHBCHABCDEGJNCBCDEFKLM $.
  $}

  ${
    $d y z $.
    sbco2yz.1 $e |- F/ z ph $.
    $( This is a version of ~ sbco2 where ` z ` is distinct from ` y ` .  It is
       a lemma on the way to proving ~ sbco2 which has no distinct variable
       constraints.  (Contributed by Jim Kingdon, 19-Mar-2018.) $)
    sbco2yz $p |- ( [ y / z ] [ z / x ] ph <-> [ y / x ] ph ) $=
      ( wsb nfsb nfri sbequ sbieh ) ABDFABCFZDCKDABCDEGHADCBIJ $.
  $}

  ${
    $d w z $.  $d w x $.  $d w y $.  $d ph w $.
    sbco2h.1 $e |- ( ph -> A. z ph ) $.
    $( A composition law for substitution.  (Contributed by NM, 30-Jun-1994.)
       (Proof rewritten by Jim Kingdon, 19-Mar-2018.) $)
    sbco2h $p |- ( [ y / z ] [ z / x ] ph <-> [ y / x ] ph ) $=
      ( vw wsb nfi sbco2yz sbbii nfv 3bitr3i ) ABDGZDFGZFCGABFGZFCGMDCGABCGNOFC
      ABFDADEHIJMDCFMFKIABCFAFKIL $.
  $}

  ${
    sbco2.1 $e |- F/ z ph $.
    $( A composition law for substitution.  (Contributed by NM, 30-Jun-1994.)
       (Revised by Mario Carneiro, 6-Oct-2016.) $)
    sbco2 $p |- ( [ y / z ] [ z / x ] ph <-> [ y / x ] ph ) $=
      ( nfri sbco2h ) ABCDADEFG $.
  $}

  ${
    sbco2d.1 $e |- ( ph -> A. x ph ) $.
    sbco2d.2 $e |- ( ph -> A. z ph ) $.
    sbco2d.3 $e |- ( ph -> ( ps -> A. z ps ) ) $.
    $( A composition law for substitution.  (Contributed by NM, 5-Aug-1993.) $)
    sbco2d $p |- ( ph -> ( [ y / z ] [ z / x ] ps <-> [ y / x ] ps ) ) $=
      ( wsb wi hbim1 sbco2h sbrim sbbii bitri 3bitr3i pm5.74ri ) ABCEIZEDIZBCDI
      ZABJZCEIZEDIZUACDIASJZATJUACDEABEGHKLUCARJZEDIUDUBUEEDABCEFMNAREDGMOABCDF
      MPQ $.
  $}

  ${
    $d x z $.
    sbco2vd.1 $e |- ( ph -> A. x ph ) $.
    sbco2vd.2 $e |- ( ph -> A. z ph ) $.
    sbco2vd.3 $e |- ( ph -> ( ps -> A. z ps ) ) $.
    $( Version of ~ sbco2d with a distinct variable constraint between ` x `
       and ` z ` .  (Contributed by Jim Kingdon, 19-Feb-2018.) $)
    sbco2vd $p |- ( ph -> ( [ y / z ] [ z / x ] ps <-> [ y / x ] ps ) ) $=
      ( wsb wi hbim1 sbco2v sbrim sbbii bitri 3bitr3i pm5.74ri ) ABCEIZEDIZBCDI
      ZABJZCEIZEDIZUACDIASJZATJUACDEABEGHKLUCARJZEDIUDUBUEEDABCEFMNAREDGMOABCDF
      MPQ $.
  $}

  $( A composition law for substitution.  (Contributed by NM, 5-Aug-1993.) $)
  sbco $p |- ( [ y / x ] [ x / y ] ph <-> [ y / x ] ph ) $=
    ( wsb wb weq equsb2 sbequ12 bicomd sbimi ax-mp sbbi mpbi ) ACBDZAEZBCDZNBCD
    ABCDECBFZBCDPBCGQOBCQANACBHIJKNABCLM $.

  ${
    $d x y $.
    $( Version of ~ sbco3 with a distinct variable constraint between ` x ` and
       ` y ` .  (Contributed by Jim Kingdon, 19-Feb-2018.) $)
    sbco3v $p |- ( [ z / y ] [ y / x ] ph <-> [ z / x ] [ x / y ] ph ) $=
      ( wsb nfs1v nfri sbco2v sbco sbbii bitr3i ) ABCEZCDELCBEZBDEACBEZBDELCDBL
      BABCFGHMNBDACBIJK $.
  $}

  $( Relationship between composition and commutativity for substitution.
     (Contributed by Jim Kingdon, 28-Feb-2018.) $)
  sbcocom $p |- ( [ z / y ] [ y / x ] ph <-> [ z / y ] [ z / x ] ph ) $=
    ( wsb wb weq equsb1 sbequ sbimi ax-mp sbbi mpbi ) ABCEZABDEZFZCDEZNCDEOCDEF
    CDGZCDEQCDHRPCDACDBIJKNOCDLM $.

  ${
    $d x z $.
    $( Version of ~ sbcom with a distinct variable constraint between ` x ` and
       ` z ` .  (Contributed by Jim Kingdon, 28-Feb-2018.) $)
    sbcomv $p |- ( [ y / z ] [ y / x ] ph <-> [ y / x ] [ y / z ] ph ) $=
      ( wsb sbco3v sbcocom 3bitr3i ) ABDEDCEADBEBCEABCEDCEADCEBCEABDCFABDCGADBC
      GH $.
  $}

  ${
    $d x y $.  $d y z $.
    $( Version of ~ sbcom with distinct variable constraints between ` x ` and
       ` y ` , and ` y ` and ` z ` .  (Contributed by Jim Kingdon,
       21-Mar-2018.) $)
    sbcomxyyz $p |- ( [ y / z ] [ y / x ] ph <-> [ y / x ] [ y / z ] ph ) $=
      ( weq wal wi wo wsb ax-ial drsb1 sbbidh bitr3d sbequ12 sps wnf nfs1v nfrd
      wb a1i ax-bndl hbae df-nf albii nfsb nfr wa nfnf1 nfa1 nfan nfri sylan9bb
      ex adantl sbiedh syld bicomd sylbir jaoi ax-mp ) DBEZDFZDCEZDFZBCEZVEDFZG
      DFZBFZHZHABCIZDCIZADCIZBCIZSZBCDUAVBVNVIVBVLDCIVKVMVBVLVJDCVADJADBCKLVLDB
      CKMVDVNVHVDVJVKVMVCVJVKSDVJDCNZOVDAVLBCDCBUBVCAVLSDADCNOLMVHVEDPZBFZVNVPV
      GBVEDUCUDVQVMVKVQVLVKBCVPBJVQVKBVKBPVQVJDCBABCQUETRVPVEVLVKSZGBVPVEVFVRVE
      DUFVPVFVRVPVFUGZAVKDCVSDVPVFDVEDUHVEDUIUJUKVSVKDVKDPVSVJDCQTRVFVCAVKSZGZV
      PVEWADVEVCVTVEAVJVCVKABCNVOULUMOUNUOUMUPOUOUQURUSUSUT $.
  $}

  ${
    $d x z $.  $d y z $.
    $( Version of ~ sbco3 with distinct variable constraints between ` x ` and
       ` z ` , and ` y ` and ` z ` .  Lemma for proving ~ sbco3 .  (Contributed
       by Jim Kingdon, 22-Mar-2018.) $)
    sbco3xzyz $p |- ( [ z / y ] [ y / x ] ph <-> [ z / x ] [ x / y ] ph ) $=
      ( wsb sbcomxyyz sbcocom 3bitr4i ) ABDECDEACDEBDEABCECDEACBEBDEABDCFABCDGA
      CBDGH $.
  $}

  ${
    $d w x $.  $d w y $.  $d w ph $.
    $( A composition law for substitution.  (Contributed by NM, 5-Aug-1993.)
       (Proof rewritten by Jim Kingdon, 22-Mar-2018.) $)
    sbco3 $p |- ( [ z / y ] [ y / x ] ph <-> [ z / x ] [ x / y ] ph ) $=
      ( vw wsb sbco3xzyz sbbii ax-17 sbco2h 3bitr3i ) ABCFZCEFZEDFACBFZBEFZEDFL
      CDFNBDFMOEDABCEGHLCDELEIJNBDENEIJK $.
  $}

  $( A commutativity law for substitution.  (Contributed by NM, 27-May-1997.)
     (Proof rewritten by Jim Kingdon, 22-Mar-2018.) $)
  sbcom $p |- ( [ y / z ] [ y / x ] ph <-> [ y / x ] [ y / z ] ph ) $=
    ( wsb sbco3 sbcocom 3bitr3i ) ABDEDCEADBEBCEABCEDCEADCEBCEABDCFABDCGADBCGH
    $.

  ${
    $d w y z $.  $d w ph $.  $d w x $.
    $( Closed form of ~ nfsb .  (Contributed by Jim Kingdon, 9-May-2018.) $)
    nfsbt $p |- ( A. x F/ z ph -> F/ z [ y / x ] ph ) $=
      ( vw wnf wal wsb ax-17 nfsbxyt alimi syl nfv sbco2 nfbii sylib ) ADFBGZQE
      GZABCHZDFZQEIRABEHZECHZDFZTRUADFZEGUCQUDEABEDJKUAECDJLUBSDABCEAEMNOPL $.
  $}

  ${
    $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 ) $=
      ( wal wnf wsb nfri alimi nfsbt 3syl ) AACHBEIZCHBCDJEIACFKAOCGLBCDEMN $.
  $}

  ${
    $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 ax-17 elequ1 sbieh sbbii sbco2h bitr3i wb equsb1 sbimi ax-mp
      weq sbbi mpbi sbh 3bitri ) BCEZBAFZDCEZDAFZACEZDAFZUFUCUDDBFZBAFUEUHUBBAU
      DUBDBUBDGDBCHIJUDDABUDBGKLUDUFMZDAFZUEUGMDAQZDAFUJDANUKUIDADACHOPUDUFDARS
      UFDAUFDGTUA $.
  $}

  ${
    $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 ax-17 elequ2 sbieh sbbii sbco2h bitr3i wb equsb1 sbimi ax-mp
      weq sbbi mpbi sbh 3bitri ) CBEZBAFZCDEZDAFZCAEZDAFZUFUCUDDBFZBAFUEUHUBBAU
      DUBDBUBDGDBCHIJUDDABUDBGKLUDUFMZDAFZUEUGMDAQZDAFUJDANUKUIDADACHOPUDUFDARS
      UFDAUFDGTUA $.
  $}

  ${
    $d x y $.
    $( Like ~ sb9 but with a distinct variable constraint between ` x ` and
       ` y ` .  (Contributed by Jim Kingdon, 28-Feb-2018.) $)
    sb9v $p |- ( A. x [ x / y ] ph <-> A. y [ y / x ] ph ) $=
      ( wsb hbs1 weq wb sbequ12 equcoms bitr3d cbvalh ) ACBDZABCDZBCACBEABCEBCF
      ALMALGCBACBHIABCHJK $.
  $}

  ${
    $d w x $.  $d w y $.  $d w ph $.
    $( Commutation of quantification and substitution variables.  (Contributed
       by NM, 5-Aug-1993.)  (Proof rewritten by Jim Kingdon, 23-Mar-2018.) $)
    sb9 $p |- ( A. x [ x / y ] ph <-> A. y [ y / x ] ph ) $=
      ( vw wsb wal sb9v sbcom albii 3bitri ax-17 sbco2h 3bitr3ri ) ABDEZDCEZCFZ
      ACDEZDBEZBFZABCEZCFACBEZBFPNCDEZDFQBDEZDFSNCDGUBUCDABDCHIQDBGJOTCABCDADKZ
      LIRUABACBDUDLIM $.
  $}

  $( Commutation of quantification and substitution variables.  (Contributed by
     NM, 5-Aug-1993.)  (Proof rewritten by Jim Kingdon, 23-Mar-2018.) $)
  sb9i $p |- ( A. x [ x / y ] ph -> A. y [ y / x ] ph ) $=
    ( wsb wal sb9 biimpi ) ACBDBEABCDCEABCFG $.

  ${
    $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.) $)
    sbnf2 $p |- ( F/ x ph
       <-> A. y A. z ( [ y / x ] ph <-> [ z / x ] ph ) ) $=
      ( wsb wb wal wi wnf 2albiim sbhb albii alcom 3bitri nfv nfs1v sblim bitri
      wa sb8 df-nf anbi12i anidm 3bitr2ri ) ABCEZABDEZFDGCGUEUFHZDGCGZUFUEHZDGZ
      CGZSABIZULSULUEUFCDJULUHULUKULAUFHZBGZDGZUGCGZDGUHULAABGHZBGZUMDGZBGUOABU
      AZUQUSBABDKLUMBDMNUNUPDUNUMBCEZCGUPUMBCUMCOTVAUGCAUFBCABDPQLRLUGDCMNULAUE
      HZBGZCGZUKULURVBCGZBGVDUTUQVEBABCKLVBBCMNVCUJCVCVBBDEZDGUJVBBDVBDOTVFUIDA
      UEBDABCPQLRLRUBULUCUD $.
  $}

  ${
    $d y z $.
    hbsbd.1 $e |- ( ph -> A. x ph ) $.
    hbsbd.2 $e |- ( ph -> A. z ph ) $.
    hbsbd.3 $e |- ( ph -> ( ps -> A. z ps ) ) $.
    $( Deduction version of ~ hbsb .  (Contributed by NM, 15-Feb-2013.)  (Proof
       rewritten by Jim Kingdon, 23-Mar-2018.) $)
    hbsbd $p |- ( ph -> ( [ y / x ] ps -> A. z [ y / x ] ps ) ) $=
      ( wsb nfi wi wnf nfdh nfim1 nfsb sbrim nfbii mpbi nfrimi nfrd ) ABCDIZEAU
      AEAEGJZABKZCDIZELAUAKZELUCCDEABEUBABEGHMNOUDUEEABCDFPQRST $.
  $}

  ${
    $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 w x z $.  $d x y z $.
    $( Lemma for proving ~ sbcom2 .  It is the same as ~ sbcom2 but with
       additional distinct variable constraints on ` x ` and ` y ` , and on
       ` w ` and ` z ` .  (Contributed by Jim Kingdon, 19-Feb-2018.) $)
    sbcom2v $p |- ( [ w / z ] [ y / x ] ph <-> [ y / x ] [ w / z ] ph ) $=
      ( weq wal wsb alcom bi2.04 albii 19.21v bitri 3bitr3i sb6 imbi2i 3bitr4i
      wi ) DEFZBCFZARZBGZRZDGZTSARZDGZRZBGZABCHZDEHZADEHZBCHZTUERZBGZDGUMDGZBGU
      DUHUMDBIUNUCDUNSUARZBGUCUMUPBTSAJKSUABLMKUOUGBTUEDLKNUJSUIRZDGUDUIDEOUQUC
      DUIUBSABCOPKMULTUKRZBGUHUKBCOURUGBUKUFTADEOPKMQ $.
  $}

  ${
    $d v w x z $.  $d v y z $.  $d v ph $.
    $( Lemma for proving ~ sbcom2 .  It is the same as ~ sbcom2v but removes
       the distinct variable constraint on ` x ` and ` y ` .  (Contributed by
       Jim Kingdon, 19-Feb-2018.) $)
    sbcom2v2 $p |- ( [ w / z ] [ y / x ] ph <-> [ y / x ] [ w / z ] ph ) $=
      ( vv wsb sbcom2v sbbii bitri ax-17 sbco2v 3bitr3i ) ABFGZFCGZDEGZADEGZBFG
      ZFCGZABCGZDEGQBCGPNDEGZFCGSNFCDEHUARFCABFDEHIJOTDEABCFAFKLIQBCFQFKLM $.
  $}

  ${
    $d x z $.  $d v x w $.  $d v y z $.  $d 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 modified to be intuitionistic by Jim Kingdon,
       19-Feb-2018.) $)
    sbcom2 $p |- ( [ w / z ] [ y / x ] ph <-> [ y / x ] [ w / z ] ph ) $=
      ( vv wsb sbcom2v2 sbbii bitri ax-17 sbco2v 3bitr3i ) ABCGZDFGZFEGZADFGZFE
      GZBCGZNDEGADEGZBCGPQBCGZFEGSOUAFEABCDFHIQBCFEHJNDEFNFKLRTBCADEFAFKLIM $.
  $}

  ${
    $d x y $.
    $( Equivalence for substitution.  (Contributed by NM, 5-Aug-1993.) $)
    sb6a $p |- ( [ y / x ] ph <-> A. x ( x = y -> [ x / y ] ph ) ) $=
      ( wsb weq wi wal sb6 wb sbequ12 equcoms pm5.74i albii bitri ) ABCDBCEZAFZ
      BGOACBDZFZBGABCHPRBOAQAQICBACBJKLMN $.
  $}

  ${
    $d x y $.  $d x w $.  $d y z $.  $d z w $.
    2sb5rf.1 $e |- ( ph -> A. z ph ) $.
    2sb5rf.2 $e |- ( ph -> A. w ph ) $.
    $( Reversed double substitution.  (Contributed by NM, 3-Feb-2005.) $)
    2sb5rf $p |- ( ph <->
                E. z E. w ( ( z = x /\ w = y ) /\ [ z / x ] [ w / y ] ph ) ) $=
      ( weq wsb wex sb5rf 19.42v sbcom2 anbi2i anass bitri exbii hbsbv 3bitr4ri
      wa ) ADBHZABDIZTZDJUAECHZTZACEIBDIZTZEJZDJABDFKUCUHDUAUDUBCEIZTZTZEJUAUJE
      JZTUHUCUAUJELUGUKEUGUEUITUKUFUIUEACEBDMNUAUDUIOPQUBULUAUBCEABDEGRKNSQP $.

    $( Reversed double substitution.  (Contributed by NM, 3-Feb-2005.) $)
    2sb6rf $p |- ( ph <->
                A. z A. w ( ( z = x /\ w = y ) -> [ z / x ] [ w / y ] ph ) ) $=
      ( weq wsb wi wal wa sb6rf 19.21v sbcom2 imbi2i impexp bitri albii hbsbv
      3bitr4ri ) ADBHZABDIZJZDKUBECHZLZACEIBDIZJZEKZDKABDFMUDUIDUBUEUCCEIZJZJZE
      KUBUKEKZJUIUDUBUKENUHULEUHUFUJJULUGUJUFACEBDOPUBUEUJQRSUCUMUBUCCEABDEGTMP
      UASR $.
  $}

  ${
    $d x z $.  $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.
       Theorem ~ sb7f 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 ) ) ) $=
      ( wsb weq wa wex sb5 sbbii ax-17 sbco2v 3bitr3i ) ABDEZDCEBDFAGBHZDCEABCE
      DCFOGDHNODCABDIJABCDADKLODCIM $.
  $}

  ${
    $d x z $.  $d y z $.
    sb7f.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-17 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.) $)
    sb7f $p |- ( [ y / x ] ph <->
               E. z ( z = y /\ E. x ( x = z /\ ph ) ) ) $=
      ( wsb weq wa wex sb5 sbbii sbco2v 3bitr3i ) ABDFZDCFBDGAHBIZDCFABCFDCGOHD
      INODCABDJKABCDELODCJM $.
  $}

  ${
    $d x z $.  $d y z $.
    sb7af.1 $e |- F/ z ph $.
    $( An alternate definition of proper substitution ~ df-sb .  Similar to
       ~ dfsb7a but does not require that ` ph ` and ` z ` be distinct.
       Similar to ~ sb7f in that it involves a dummy variable ` z ` , but
       expressed in terms of ` A. ` rather than ` E. ` .  (Contributed by Jim
       Kingdon, 5-Feb-2018.) $)
    sb7af $p |- ( [ y / x ] ph
                      <-> A. z
                             ( z = y
                             -> A. x ( x = z -> ph ) ) ) $=
      ( wsb weq wi wal sb6 sbbii sbco2 3bitr3i ) ABDFZDCFBDGAHBIZDCFABCFDCGOHDI
      NODCABDJKABCDELODCJM $.
  $}

  ${
    $d x z $.  $d y z $.  $d z ph $.
    $( An alternate definition of proper substitution ~ df-sb .  Similar to
       ~ dfsb7 in that it involves a dummy variable ` z ` , but expressed in
       terms of ` A. ` rather than ` E. ` .  For a version which only requires
       ` F/ z ph ` rather than ` z ` and ` ph ` being distinct, see ~ sb7af .
       (Contributed by Jim Kingdon, 5-Feb-2018.) $)
    dfsb7a $p |- ( [ y / x ] ph
                      <-> A. z
                             ( z = y
                             -> A. x ( x = z -> ph ) ) ) $=
      ( nfv sb7af ) ABCDADEF $.
  $}

  ${
    $d x y $.
    sb10f.1 $e |- ( ph -> A. 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.) $)
    sb10f $p |- ( [ y / z ] ph <-> E. x ( x = y /\ [ x / z ] ph ) ) $=
      ( weq wsb wa wex hbsb sbequ equsex bicomi ) BCFADBGZHBIADCGZNOBCADCBEJABC
      DKLM $.
  $}

  ${
    $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 ) $=
      ( ax-17 sbid2h ) 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 ) ) $=
      ( ax-17 sb5rf ) ACBABDE $.
  $}

  ${
    $( Note:  A more general case could also be proved with
       "$d x z $.  $d y w $.  $d x ph $.  $d y ph $.", but with more
       difficulty. $)
    $d x y z $.  $d w y $.  $d x y ph $.
    $( Elimination of double substitution.  (Contributed by NM, 5-Aug-1993.) $)
    sbel2x $p |- ( ph <-> E. x E. y ( ( x = z /\ y = w ) /\
                     [ y / w ] [ x / z ] ph ) ) $=
      ( weq wsb wa wex sbelx anbi2i exbii exdistr 3bitr4i anass 2exbii bitr4i )
      ABDFZCEFZADBGZECGZHZHZCIBIZRSHUAHZCIBIRTHZBIRUBCIZHZBIAUDUFUHBTUGRTCEJKLA
      BDJRUBBCMNUEUCBCRSUAOPQ $.
  $}

  ${
    $d x y z $.
    $( Move universal quantifier in and out of substitution.  Identical to
       ~ sbal except that it has an additional distinct variable constraint on
       ` y ` and ` z ` .  (Contributed by Jim Kingdon, 29-Dec-2017.) $)
    sbalyz $p |- ( [ z / y ] A. x ph <-> A. x [ z / y ] ph ) $=
      ( wal wsb nfa1 nfsbxy ax-4 sbimi alrimi weq wi sb6 albii alcom nfv stdpc5
      bitri alimi sb2 syl sylbi impbii ) ABEZCDFZACDFZBEZUFUGBUECDBABGHUEACDABI
      JKUHCDLZAMZBEZCEZUFUHUJCEZBEULUGUMBACDNOUJBCPSULUIUEMZCEUFUKUNCUIABUIBQRT
      UECDUAUBUCUD $.
  $}

  ${
    $d x y w $.  $d x z w $.  $d w ph $.
    $( Move universal quantifier in and out of substitution.  (Contributed by
       NM, 5-Aug-1993.)  (Proof rewritten by Jim Kingdon, 12-Feb-2018.) $)
    sbal $p |- ( [ z / y ] A. x ph <-> A. x [ z / y ] ph ) $=
      ( vw wal wsb sbalyz sbbii bitri ax-17 sbco2v albii 3bitr3i ) ABFZCEGZEDGZ
      ACEGZEDGZBFZOCDGACDGZBFQRBFZEDGTPUBEDABCEHIRBEDHJOCDEOEKLSUABACDEAEKLMN
      $.
  $}

  ${
    $d x y $.  $d y z $.
    $( Lemma for proving ~ sbal1 .  Same as ~ sbal1 but with an additional
       distinct variable constraint on ` y ` and ` z ` .  (Contributed by Jim
       Kingdon, 23-Feb-2018.) $)
    sbal1yz $p |- ( -. A. x x = z ->
             ( [ z / y ] A. x ph <-> A. x [ z / y ] ph ) ) $=
      ( weq wal wn wsb wi wb wo dveeq2or equcom nfbii 19.21t sylbi imbi1i albii
      wnf sb6 orim2i ax-mp ori albidv alcom bitri bitr4i bitr2i 3bitr3g bicomd
      ) BDEBFZGZACDHZBFZABFZCDHZULDCEZAIZBFZCFZUQUOIZCFZUNUPULUSVACUKUSVAJZUKCD
      EZBSZKUKVCKBDCLVEVCUKVEUQBSVCVDUQBCDMZNUQABOPUAUBUCUDUTURCFZBFUNURCBUEUMV
      GBUMVDAIZCFVGACDTVHURCVDUQAVFQRUFRUGUPVDUOIZCFVBUOCDTVIVACVDUQUOVFQRUHUIU
      J $.
  $}

  ${
    $d x y $.  $d w x $.  $d w y $.  $d w z $.  $d ph w $.

    $( 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, 5-Aug-1993.)  (Proof rewitten by Jim Kingdon,
       24-Feb-2018.) $)
    sbal1 $p |- ( -. A. x x = z ->
             ( [ z / y ] A. x ph <-> A. x [ z / y ] ph ) ) $=
      ( vw weq wal wn wsb sbal sbbii sbal1yz syl5bb ax-17 sbco2v albii 3bitr3g
      ) BDFBGHZABGZCEIZEDIZACEIZEDIZBGZSCDIACDIZBGUAUBBGZEDIRUDTUFEDABCEJKUBBED
      LMSCDESENOUCUEBACDEAENOPQ $.
  $}

  ${
    $d x y z $.
    $( Move existential quantifier in and out of substitution.  Identical to
       ~ sbex except that it has an additional distinct variable constraint on
       ` y ` and ` z ` .  (Contributed by Jim Kingdon, 29-Dec-2017.) $)
    sbexyz $p |- ( [ z / y ] E. x ph <-> E. x [ z / y ] ph ) $=
      ( wex wsb weq wa sb5 exdistr excom 3bitr2i exbii bitr4i ) ABEZCDFZCDGZAHZ
      CEZBEZACDFZBEPQOHCERBECETOCDIQACBJRCBKLUASBACDIMN $.
  $}

  ${
    $d x y w $.  $d x z w $.  $d w ph $.
    $( Move existential quantifier in and out of substitution.  (Contributed by
       NM, 27-Sep-2003.)  (Proof rewritten by Jim Kingdon, 12-Feb-2018.) $)
    sbex $p |- ( [ z / y ] E. x ph <-> E. x [ z / y ] ph ) $=
      ( vw wex wsb sbexyz sbbii bitri ax-17 sbco2v exbii 3bitr3i ) ABFZCEGZEDGZ
      ACEGZEDGZBFZOCDGACDGZBFQRBFZEDGTPUBEDABCEHIRBEDHJOCDEOEKLSUABACDEAEKLMN
      $.
  $}

  ${
    $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 sbid2 3bitr3i ) ACDFZDEFZBCFZEDFZDBFZO
      EDFZBCFZDBFACEFZBCFZEBFZNBCFZDBFQTDBOBCEDGHRUBEDFZDBFUCQUEDBPUBEDOUABCACE
      DADIJHHHUBEBDUBDIJKTUDDBSNBCNEDNEILHHM $.
  $}

  ${
    $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 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 ) ) $=
      ( wex wsb weq wi wal ax-17 sb8eh sb6 exbii bitri ) ABDABCEZCDBCFAGBHZCDAB
      CACIJNOCABCKLM $.
  $}

  ${
    $d x y z $.  $d y w $.  $d z w ph $.
    $( An equivalent expression for double existence.  (Contributed by NM,
       2-Feb-2005.) $)
    2exsb $p |- ( E. x E. y ph <->
                  E. z E. w A. x A. y ( ( x = z /\ y = w ) -> ph ) ) $=
      ( wex weq wi wal exsb exbii excom bitri impexp albii 19.21v bitr2i 3bitri
      wa ) ACFZBFZCEGZAHZCIZBFZEFZBDGZUBSAHZCIZBIZDFZEFUJEFDFUAUDEFZBFUFTULBACE
      JKUDBELMUEUKEUEUGUDHZBIZDFUKUDBDJUNUJDUMUIBUIUGUCHZCIUMUHUOCUGUBANOUGUCCP
      QOKMKUJEDLR $.
  $}

  ${
    $d z ps $.  $d x z $.  $d y z $.
    dvelimALT.1 $e |- ( ph -> A. x ph ) $.
    dvelimALT.2 $e |- ( z = y -> ( ph <-> ps ) ) $.
    $( Version of ~ dvelim that doesn't use ~ ax-10 .  Because it has different
       distinct variable constraints than ~ dvelim and is used in important
       proofs, it would be better if it had a name which does not end in ALT
       (ideally more close to set.mm naming).  (Contributed by NM,
       17-May-2008.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    dvelimALT $p |- ( -. A. x x = y -> ( ps -> A. x ps ) ) $=
      ( weq wal wn wi wnf nfv wo ax-i12 orcom orbi2i mpbi a1i nfimd orass mpbir
      nfa1 ax16ALT nfd nfi df-nf id sylbir orim1i ax-mp ori nfald ax-17 equsalh
      jaoi nfbii sylib nfrd ) CDHCIZJZBCVAEDHZAKZEIZCLBCLVAVCCEVAEMUTVCCLZVEUTN
      ZUTVENCEHZCIZVBVBCIKCIZNZUTNZVFVKVHVIUTNZNZVHUTVINZNVMEDCOVNVLVHUTVIPQRVH
      VIUTUAUBVJVEUTVHVEVIVHVBACVHVBCVGCUCVBCEUDUEACLZVHACFUFZSTVIVBCLZVEVBCUGV
      QVBACVQUHVOVQVPSTUIUPUJUKVEUTPRULUMVDBCABEDBEUNGUOUQURUS $.
  $}

  ${
    $d x z $.
    dvelimfv.1 $e |- ( ph -> A. x ph ) $.
    dvelimfv.2 $e |- ( ps -> A. z ps ) $.
    dvelimfv.3 $e |- ( z = y -> ( ph <-> ps ) ) $.
    $( Like ~ dvelimf but with a distinct variable constraint on ` x ` and
       ` z ` .  (Contributed by Jim Kingdon, 6-Mar-2018.) $)
    dvelimfv $p |- ( -. A. x x = y -> ( ps -> A. x ps ) ) $=
      ( weq wal wn wi wnf nfnae wo ax-i12 orcom mpbi a1i nfimd orass mpbir nfae
      orbi2i ax16ALT nfd nfi df-nf sylbir jaoi orim1i ax-mp nfald equsalh nfbii
      id ori sylib nfrd ) CDICJZKZBCVAEDIZALZEJZCMBCMVAVCCECDENUTVCCMZVEUTOZUTV
      EOCEICJZVBVBCJLCJZOZUTOZVFVJVGVHUTOZOZVGUTVHOZOVLEDCPVMVKVGUTVHQUDRVGVHUT
      UAUBVIVEUTVGVEVHVGVBACVGVBCCECUCVBCEUEUFACMZVGACFUGZSTVHVBCMZVEVBCUHVPVBA
      CVPUPVNVPVOSTUIUJUKULVEUTQRUQUMVDBCABEDGHUNUOURUS $.
  $}

  ${
    $d w x $.  $d w y $.  $d w z $.  $d ph w $.
    hbsb4.1 $e |- ( ph -> A. z ph ) $.
    $( A variable not free remains so after substitution with a distinct
       variable.  (Contributed by NM, 5-Aug-1993.)  (Proof rewritten by Jim
       Kingdon, 23-Mar-2018.) $)
    hbsb4 $p |- ( -. A. z z = y -> ( [ y / x ] ph -> A. z [ y / x ] ph ) ) $=
      ( vw wsb hbsb sbequ dvelimALT ) ABFGABCGDCFABFDEHAFCBIJ $.
  $}

  $( A variable not free remains so after substitution with a distinct variable
     (closed form of ~ hbsb4 ).  (Contributed by NM, 7-Apr-2004.)  (Proof
     shortened by Andrew Salmon, 25-May-2011.) $)
  hbsb4t $p |- ( A. x A. z ( ph -> A. z ph ) ->
               ( -. A. z z = y -> ( [ y / x ] ph -> A. z [ y / x ] ph ) ) ) $=
    ( weq wal wn wsb wi hba1 hbsb4 spsbim sps ax-4 sbimi alimi a1i imim12d syl5
    a7s ) DCEDFGADFZBCHZUBDFZIZAUAIZDFBFABCHZUFDFZIZUABCDADJKUEUDUHIDBUEBFZDFZU
    FUBUCUGUIUFUBIDAUABCLMUCUGIUJUBUFDUAABCADNOPQRTS $.

  $( A variable not free remains so after substitution with a distinct variable
     (closed form of ~ hbsb4 ).  (Contributed by NM, 7-Apr-2004.)  (Revised by
     Mario Carneiro, 4-Oct-2016.)  (Proof rewritten by Jim Kingdon,
     9-May-2018.) $)
  nfsb4t $p |- ( A. x F/ z ph ->
                 ( -. A. z z = y -> F/ z [ y / x ] ph ) ) $=
    ( wnf wal weq wn wsb wa nfnf1 nfal nfnae nfan df-nf albii hbsb4t sylbi imp
    wi nfd ex ) ADEZBFZDCGDFHZABCIZDEUDUEJUFDUDUEDUCDBADKLDCDMNUDUEUFUFDFTZUDAA
    DFTDFZBFUEUGTUCUHBADOPABCDQRSUAUB $.

  ${
    dvelimf.1 $e |- ( ph -> A. x ph ) $.
    dvelimf.2 $e |- ( ps -> A. z ps ) $.
    dvelimf.3 $e |- ( z = y -> ( ph <-> ps ) ) $.
    $( Version of ~ dvelim without any variable restrictions.  (Contributed by
       NM, 1-Oct-2002.) $)
    dvelimf $p |- ( -. A. x x = y -> ( ps -> A. x ps ) ) $=
      ( weq wal wn wsb hbsb4 sbieh albii 3imtr3g ) CDICJKAEDLZQCJBBCJAEDCFMABED
      GHNZQBCROP $.
  $}

  ${
    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 .  This version may be useful if we want to
       avoid ~ ax-17 and use ~ ax-16 instead.  (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 wsb wnf wi alrimi nfsb4t syl sbied nfbidf sylibd ) ADELDMNZB
      FEOZDPZCDPABDPZFMUDUFQAUGFHIRBFEDSTAUECDGABCFEHJKUAUBUC $.
  $}

  ${
    $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 don't require that ` x ` and ` y ` be distinct: if
       they aren't, 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 ~ dvelimf (with no distinct variable
       restrictions) and ~ dvelimALT (that avoids ~ ax-10 ).  (Contributed by
       NM, 23-Nov-1994.) $)
    dvelim $p |- ( -. A. x x = y -> ( ps -> A. x ps ) ) $=
      ( ax-17 dvelimf ) ABCDEFBEHGI $.
  $}

  ${
    $d z ps $.  $d x z $.
    dvelimor.1 $e |- F/ x ph $.
    dvelimor.2 $e |- ( z = y -> ( ph <-> ps ) ) $.
    $( Disjunctive distinct variable constraint elimination.  A user of this
       theorem starts with a formula ` ph ` (containing ` z ` ) and a distinct
       variable constraint between ` x ` and ` z ` .  The theorem makes it
       possible to replace the distinct variable constraint with the disjunct
       ` A. x x = y ` ( ` ps ` is just a version of ` ph ` with ` y `
       substituted for ` z ` ).  (Contributed by Jim Kingdon, 11-May-2018.) $)
    dvelimor $p |- ( A. x x = y \/ F/ x ps ) $=
      ( weq wal wi wnf wo ax-bndl orcom orbi2i mpbi orass mpbir nfae ax-mp jaoi
      a16nf alrimi df-nf id nfimd sylbir alimi orim1i nfalt ax-17 equsalh nfbii
      a1i sylib orim2i ) CDHCIZEDHZAJZCKZEIZLZUQBCKZLVAUQLZVBCEHCIZURURCIJCIZEI
      ZLZUQLZVDVIVEVGUQLZLZVEUQVGLZLVKEDCMVLVJVEUQVGNOPVEVGUQQRVHVAUQVEVAVGVEUT
      ECEESUSCECUBUCVFUTEVFURCKZUTURCUDVMURACVMUEACKVMFUNUFUGUHUAUITVAUQNPVAVCU
      QVAUSEIZCKVCUSCEUJVNBCABEDBEUKGULUMUOUPT $.
  $}

  ${
    $d z x $.
    $( Quantifier introduction when one pair of variables is distinct.
       (Contributed by NM, 2-Jan-2002.)  (Proof rewritten by Jim Kingdon,
       19-Feb-2018.) $)
    dveeq1 $p |- ( -. A. x x = y -> ( y = z -> A. x y = z ) ) $=
      ( weq wal wn dveeq2 equcom albii 3imtr3g ) ABDAEFCBDZKAEBCDZLAEABCGCBHZKL
      AMIJ $.
  $}

  ${
    $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 ax-17 elequ1 dvelimf ) DCEZBCEZABDIAFJDFDBCGH $.
  $}

  ${
    $d w z x $.  $d w y $.
    $( 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 ax-17 elequ2 dvelimf ) CDEZCBEZABDIAFJDFDBCGH $.
  $}

  ${
    $d z y $.  $d z x $.
    $( Move quantifier in and out of substitution.  (Contributed by NM,
       2-Jan-2002.) $)
    sbal2 $p |- ( -. A. x x = y ->
             ( [ z / y ] A. x ph <-> A. x [ z / y ] ph ) ) $=
      ( weq wal wn wi wsb alcom hbnae wb dveeq1 alimi hbnaes 19.21ht syl albidh
      syl5rbbr sb6 albii 3bitr4g ) BCEBFGZCDEZABFZHZCFZUDAHZCFZBFZUECDIACDIZBFU
      JUHBFZCFUCUGUHCBJUCULUFCBCCKUCUDUDBFHZBFZULUFLUNBCBUCUMBBCDMNOUDABPQRSUEC
      DTUKUIBACDTUAUB $.
  $}

  ${
    $d w x $.  $d w y $.  $d w z $.  $d ph w $.
    nfsb4or.1 $e |- F/ z ph $.
    $( A variable not free remains so after substitution with a distinct
       variable.  (Contributed by Jim Kingdon, 11-May-2018.) $)
    nfsb4or $p |- ( A. z z = y \/ F/ z [ y / x ] ph ) $=
      ( vw wsb nfsb sbequ dvelimor ) ABFGABCGDCFABFDEHAFCBIJ $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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.  (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 cv wceq wb wal wex equequ2 bibi2d albidv cbvexv bitri ) ABFZCFZGZHZB
      IZCJAPEFZGZHZBIZEJAPDFZGZHZBIZDJTUDCEQUAGZSUCBUIRUBACEBKLMNUDUHEDUAUEGZUC
      UGBUJUBUFAEDBKLMNO $.
  $}

  ${
    $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 , ~ eu3 , 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, 5-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 another possible definition see
     ~ mo4 .  (Contributed by NM, 5-Aug-1993.) $)
  df-mo $a |- ( E* x ph <-> ( E. x ph -> E! x ph ) ) $.

  ${
    $d x y z $.  $d ph z $.
    euf.1 $e |- ( ph -> A. y ph ) $.
    $( A version of the existential uniqueness definition with a hypothesis
       instead of a distinct variable condition.  (Contributed by NM,
       12-Aug-1993.) $)
    euf $p |- ( E! x ph <-> E. y A. x ( ph <-> x = y ) ) $=
      ( vz weu weq wb wal wex df-eu ax-17 hbbi hbal equequ2 bibi2d albidv bitri
      cbvexh ) ABFABEGZHZBIZEJABCGZHZBIZCJABEKUBUEECUACBATCDTCLMNUEELECGZUAUDBU
      FTUCAECBOPQSR $.
  $}

  ${
    $d x y $.  $d y ph $.  $d y ps $.  $d y ch $.
    eubidh.1 $e |- ( ph -> A. x ph ) $.
    eubidh.2 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Formula-building rule for uniqueness quantifier (deduction rule).
       (Contributed by NM, 9-Jul-1994.) $)
    eubidh $p |- ( ph -> ( E! x ps <-> E! x ch ) ) $=
      ( vy weq wb wal wex weu bibi1d albidh exbidv df-eu 3bitr4g ) ABDGHZIZDJZG
      KCRIZDJZGKBDLCDLATUBGASUADEABCRFMNOBDGPCDGPQ $.
  $}

  ${
    $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 $.
  $}

  ${
    $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 $.
  $}

  ${
    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 $.
  $}

  ${
    $d x y $.  $d y ph $.
    $( Bound-variable hypothesis builder for uniqueness.  (Contributed by NM,
       9-Jul-1994.) $)
    hbeu1 $p |- ( E! x ph -> A. x E! x ph ) $=
      ( vy weu weq wb wal wex df-eu hba1 hbex hbxfrbi ) ABDABCEFZBGZCHBABCINBCM
      BJKL $.
  $}

  ${
    $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 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.) $)
    sb8eu $p |- ( E! x ph <-> E! y [ y / x ] ph ) $=
      ( vz vw weq wb wal wex wsb weu nfv sb8 sbbi nfsb equsb3 nfxfr nfbi df-eu
      sbequ cbval sblbis albii 3bitri exbii 3bitr4i ) ABEGZHZBIZEJABCKZCEGZHZCI
      ZEJABLUKCLUJUNEUJUIBFKZFIUIBCKZCIUNUIBFUIFMNUOUPFCUOABFKZUHBFKZHCAUHBFOUQ
      URCABFCDPURFEGZCFBEQUSCMRSRUPFMUIFCBUAUBUPUMCUHULABCCBEQUCUDUEUFABETUKCET
      UG $.

    $( 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 $.
  $}

  ${
    $d x y z $.  $d z ph $.  $d z ps $.
    nfeudv.1 $e |- F/ y ph $.
    nfeudv.2 $e |- ( ph -> F/ x ps ) $.
    $( Deduction version of ~ nfeu .  Similar to ~ nfeud but has the additional
       constraint that ` x ` and ` y ` must be distinct.  (Contributed by Jim
       Kingdon, 25-May-2018.) $)
    nfeudv $p |- ( ph -> F/ x E! y ps ) $=
      ( vz cv wceq wb wal wex wnf weu nfv a1i nfbid nfald nfexd df-eu sylibr
      nfbii ) ABDHGHIZJZDKZGLZCMBDNZCMAUECGAGOAUDCDEABUCCFUCCMAUCCOPQRSUGUFCBDG
      TUBUA $.
  $}

  ${
    $d x z $.  $d y z $.  $d z ph $.  $d z ps $.
    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.)  (Proof rewritten by Jim
       Kingdon, 25-May-2018.) $)
    nfeud $p |- ( ph -> F/ x E! y ps ) $=
      ( vz weu wsb nfv sb8eu nfsbd nfeudv nfxfrd ) BDHBDGIZGHACBDGBGJKAOCGAGJAB
      DGCEFLMN $.

    $( Bound-variable hypothesis builder for "at most one."  (Contributed by
       Mario Carneiro, 14-Nov-2016.) $)
    nfmod $p |- ( ph -> F/ x E* y ps ) $=
      ( wmo wex weu wi df-mo nfexd nfeud nfimd nfxfrd ) BDGBDHZBDIZJACBDKAPQCAB
      CDEFLABCDEFMNO $.
  $}

  ${
    $d x y z $.  $d z ph $.
    nfeuv.1 $e |- F/ x ph $.
    $( Bound-variable hypothesis builder for existential uniqueness.  This is
       similar to ~ nfeu but has the additional constraint that ` x ` and ` y `
       must be distinct.  (Contributed by Jim Kingdon, 23-May-2018.) $)
    nfeuv $p |- F/ x E! y ph $=
      ( vz weu wnf weq wb wal wex nfv nfbi nfal nfex df-eu nfbii mpbir ) ACFZBG
      ACEHZIZCJZEKZBGUBBEUABCATBDTBLMNOSUCBACEPQR $.
  $}

  ${
    $d y z $.  $d x z $.  $d z ph $.
    nfeu.1 $e |- F/ x ph $.
    $( Bound-variable hypothesis builder for existential uniqueness.  Note that
       ` x ` and ` y ` needn't be distinct.  (Contributed by NM, 8-Mar-1995.)
       (Revised by Mario Carneiro, 7-Oct-2016.)  (Proof rewritten by Jim
       Kingdon, 23-May-2018.) $)
    nfeu $p |- F/ x E! y ph $=
      ( vz weu wsb nfv sb8eu nfsb nfeuv nfxfr ) ACFACEGZEFBACEAEHIMBEACEBDJKL
      $.

    $( 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 $.
  $}

  ${
    hbeu.1 $e |- ( ph -> A. x ph ) $.
    $( Bound-variable hypothesis builder for uniqueness.  Note that ` x ` and
       ` y ` needn't be distinct.  (Contributed by NM, 8-Mar-1995.)  (Proof
       rewritten by Jim Kingdon, 24-May-2018.) $)
    hbeu $p |- ( E! y ph -> A. x E! y ph ) $=
      ( weu nfi nfeu nfri ) ACEBABCABDFGH $.
  $}

  ${
    hbeud.1 $e |- ( ph -> A. x ph ) $.
    hbeud.2 $e |- ( ph -> A. y ph ) $.
    hbeud.3 $e |- ( ph -> ( ps -> A. x ps ) ) $.
    $( Deduction version of ~ hbeu .  (Contributed by NM, 15-Feb-2013.)  (Proof
       rewritten by Jim Kingdon, 25-May-2018.) $)
    hbeud $p |- ( ph -> ( E! y ps -> A. x E! y ps ) ) $=
      ( weu nfi nfd nfeud nfrd ) ABDHCABCDADFIABCACEIGJKL $.
  $}

  ${
    $d w y z $.  $d ph z w $.  $d w x z $.
    sb8euh.1 $e |- ( ph -> A. y ph ) $.
    $( Variable substitution in uniqueness quantifier.  (Contributed by NM,
       7-Aug-1994.)  (Revised by Andrew Salmon, 9-Jul-2011.) $)
    sb8euh $p |- ( E! x ph <-> E! y [ y / x ] ph ) $=
      ( vz vw weq wb wal wex wsb ax-17 sb8h sbbi hbsb equsb3 hbxfrbi hbbi df-eu
      weu sbequ cbvalh sblbis albii 3bitri exbii 3bitr4i ) ABEGZHZBIZEJABCKZCEG
      ZHZCIZEJABTUKCTUJUNEUJUIBFKZFIUIBCKZCIUNUIBFUIFLMUOUPFCUOABFKZUHBFKZHCAUH
      BFNUQURCABFCDOURFEGZCFBEPUSCLQRQUPFLUIFCBUAUBUPUMCUHULABCCBEPUCUDUEUFABES
      UKCESUG $.
  $}

  ${
    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 $.
  $}

  ${
    $d x y $.
    eu1.1 $e |- ( ph -> A. 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.) $)
    eu1 $p |- ( E! x ph <->
                E. x ( ph /\ A. y ( [ y / x ] ph -> x = y ) ) ) $=
      ( wsb weu weq wb wal wex wi wa hbs1 euf sb8euh equcom albii sb6rf 3bitr4i
      imbi2i anbi12i ancom albiim exbii ) ABCEZCFUECBGZHCIZBJABFAUEBCGZKZCIZLZB
      JUECBABCMNABCDOUKUGBUJALUEUFKZCIZUFUEKCIZLUKUGUJUMAUNUIULCUHUFUEBCPTQABCD
      RUAAUJUBUEUFCUCSUDS $.
  $}

  ${
    euor.1 $e |- ( ph -> A. 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 hbn biorf eubidh 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 ) ) $=
      ( ax-17 euor ) ABCACDE $.
  $}

  ${
    $d x y $.
    mon.1 $e |- F/ y ph $.
    $( There is at most one of something which does not exist.  (Contributed by
       Jim Kingdon, 2-Jul-2018.) $)
    mo2n $p |- ( -. E. x ph -> E. y A. x ( ph -> x = y ) ) $=
      ( wex wsb weq wi wal sb8e wn alnex nfs1v sbequ1 equcoms con3d cbv3 pm2.21
      nfn alimi 19.8a 3syl sylbir sylnbi ) ABEABCFZCEZABCGZHZBIZCEZABCDJUFKUEKZ
      CIZUJUECLULAKZBIUIUJUKUMCBUEBABCMSACDSCBGAUEAUEHBCABCNOPQUMUHBAUGRTUICUAU
      BUCUD $.
  $}

  $( There is at most one of something which does not exist.  (Contributed by
     Jim Kingdon, 5-Jul-2018.) $)
  mon $p |- ( -. E. x ph -> E* x ph ) $=
    ( wex wn weu wi wmo ax-in2 df-mo sylibr ) ABCZDKABEZFABGKLHABIJ $.

  ${
    $d x y $.  $d ph y $.
    $( Existential uniqueness implies existence.  (Contributed by NM,
       15-Sep-1993.)  (Proof shortened by Andrew Salmon, 9-Jul-2011.) $)
    euex $p |- ( E! x ph -> E. x ph ) $=
      ( vy weu wsb weq wi wal wa wex ax-17 eu1 exsimpl sylbi ) ABDAABCEBCFGCHZI
      BJABJABCACKLAOBMN $.
  $}

  ${
    $d x y $.
    eumo0.1 $e |- ( ph -> A. y ph ) $.
    $( Existential uniqueness implies "at most one."  (Contributed by NM,
       8-Jul-1994.) $)
    eumo0 $p |- ( E! x ph -> E. y A. x ( ph -> x = y ) ) $=
      ( weu weq wb wal wex wi euf bi1 alimi eximi sylbi ) ABEABCFZGZBHZCIAPJZBH
      ZCIABCDKRTCQSBAPLMNO $.
  $}

  $( Existential uniqueness implies "at most one."  (Contributed by NM,
     23-Mar-1995.)  (Proof rewritten by Jim Kingdon, 27-May-2018.) $)
  eumo $p |- ( E! x ph -> E* x ph ) $=
    ( weu wex wi wmo ax-1 df-mo sylibr ) ABCZABDZJEABFJKGABHI $.

  ${
    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 $.
  $}

  ${
    mobidh.1 $e |- ( ph -> A. x ph ) $.
    mobidh.2 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Formula-building rule for "at most one" quantifier (deduction rule).
       (Contributed by NM, 8-Mar-1995.) $)
    mobidh $p |- ( ph -> ( E* x ps <-> E* x ch ) ) $=
      ( wex weu wi wmo exbidh eubidh imbi12d df-mo 3bitr4g ) ABDGZBDHZICDGZCDHZ
      IBDJCDJAPRQSABCDEFKABCDEFLMBDNCDNO $.
  $}

  ${
    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 $.
    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 $.
  $}

  ${
    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 $.
  $}

  $( Bound-variable hypothesis builder for "at most one."  (Contributed by NM,
     8-Mar-1995.) $)
  hbmo1 $p |- ( E* x ph -> A. x E* x ph ) $=
    ( wmo wex weu wi df-mo hbe1 hbeu1 hbim hbxfrbi ) ABCABDZABEZFBABGLMBABHABIJ
    K $.

  ${
    hbmo.1 $e |- ( ph -> A. x ph ) $.
    $( Bound-variable hypothesis builder for "at most one."  (Contributed by
       NM, 9-Mar-1995.) $)
    hbmo $p |- ( E* y ph -> A. x E* y ph ) $=
      ( wmo wex weu wi df-mo hbex hbeu hbim hbxfrbi ) ACEACFZACGZHBACINOBABCDJA
      BCDKLM $.
  $}

  ${
    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 $.
    mo23.1 $e |- F/ y ph $.
    $( An implication between two definitions of "there exists at most one."
       (Contributed by Jim Kingdon, 25-Jun-2018.) $)
    mo23 $p |- ( E. y A. x ( ph -> x = y ) ->
               A. x A. y ( ( ph /\ [ y / x ] ph ) -> x = y ) ) $=
      ( vz weq wi wal wex wsb wa nfv nfim nfal equequ2 imbi2d albidv cbvex nfri
      nfs1v sbequ2 ax-8 imim12d cbv3 ancli aaanh sylibr prth equtr2 syl6 2alimi
      syl exlimiv sylbir ) ABCFZGZBHZCIABEFZGZBHZEIAABCJZKZUOGZCHBHZUTUQECUSCBA
      URCDURCLMZNUQELECFZUSUPBVFURUOAECBOPQRUTVDEUTUSVACEFZGZKZCHBHZVDUTUTVHCHZ
      KVJUTVKUSVHBCVEVAVGBABCTVGBLMZUOVAAURVGABCUABCEUBUCUDUEUSVHBCUSCVESVHBVLS
      UFUGVIVCBCVIVBURVGKUOAURVAVGUHBCEUIUJUKULUMUN $.
  $}

  ${
    $d x y $.
    mor.1 $e |- F/ y ph $.
    $( Converse of ~ mo23 with an additional ` E. x ph ` condition.
       (Contributed by Jim Kingdon, 25-Jun-2018.) $)
    mor $p |- ( E. x ph ->
        ( A. x A. y ( ( ph /\ [ y / x ] ph ) -> x = y ) ->
          E. y A. x ( ph -> x = y ) ) ) $=
      ( wex wsb wa weq wi sb8e impexp bi2.04 bitri 2albii nfs1v nfri eximi alim
      wal alimi a7s exim syl syl5com syl5bi sylbi ) ABEABCFZCEZAUGGBCHZIZCSBSZA
      UIIZBSZCEZIABCDJUKUGULIZCSBSZUHUNUJUOBCUJAUGUIIIUOAUGUIKAUGUILMNUHUGBSZCE
      ZUPUNUGUQCUGBABCOPQUPUQUMIZCSZURUNIUOUTCBUOBSUSCUGULBRTUAUQUMCUBUCUDUEUF
      $.
  $}

  ${
    $d x y $.
    modc.1 $e |- F/ y ph $.
    $( Equivalent definitions of "there exists at most one," given decidable
       existence.  (Contributed by Jim Kingdon, 1-Jul-2018.) $)
    modc $p |- ( DECID E. x ph ->
        ( E. y A. x ( ph -> x = y ) <->
          A. x A. y ( ( ph /\ [ y / x ] ph ) -> x = y ) ) ) $=
      ( wex wdc weq wi wal wsb wa mo23 wn wo exmiddc mor mo2n a1d jaoi syl
      impbid2 ) ABEZFZABCGZHBICEZAABCJKUDHCIBIZABCDLUCUBUBMZNUFUEHZUBOUBUHUGABC
      DPUGUEUFABCDQRSTUA $.
  $}

  ${
    $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.) $)
    eu2 $p |- ( E! x ph <->
        ( E. x ph /\ A. x A. y ( ( ph /\ [ y / x ] ph ) -> x = y ) ) ) $=
      ( weu wex wsb wa weq wal euex nfri eumo0 mo23 syl jca 19.29r impexp albii
      wi 19.21 bitri anbi2i abai bitr4i exbii sylib eu1 sylibr impbii ) ABEZABF
      ZAABCGZHBCIZTZCJZBJZHZUKULUQABKUKAUNTBJCFUQABCACDLZMABCDNOPURAUMUNTZCJZHZ
      BFZUKURAUPHZBFVCAUPBQVDVBBVDAAVATZHVBUPVEAUPAUTTZCJVEUOVFCAUMUNRSAUTCDUAU
      BUCAVAUDUEUFUGABCUSUHUIUJ $.
  $}

  ${
    $d x y $.
    eu3h.1 $e |- ( ph -> A. y ph ) $.
    $( An alternate way to express existential uniqueness.  (Contributed by NM,
       8-Jul-1994.)  (New usage is discouraged.) $)
    eu3h $p |- ( E! x ph <->
                ( E. x ph /\ E. y A. x ( ph -> x = y ) ) ) $=
      ( weu wex weq wi wal euex eumo0 jca wsb nfi mo23 anim2i eu2 sylibr impbii
      wa ) ABEZABFZABCGZHBICFZTZUAUBUDABJABCDKLUEUBAABCMTUCHCIBIZTUAUDUFUBABCAC
      DNZOPABCUGQRS $.
  $}

  ${
    $d x y $.
    eu3.1 $e |- F/ y ph $.
    $( An alternate way to express existential uniqueness.  (Contributed by NM,
       8-Jul-1994.) $)
    eu3 $p |- ( E! x ph <->
                ( E. x ph /\ E. y A. x ( ph -> x = y ) ) ) $=
      ( nfri eu3h ) ABCACDEF $.
  $}

  $( Uniqueness in terms of "at most one."  (Contributed by NM, 23-Mar-1995.)
     (Proof rewritten by Jim Kingdon, 27-May-2018.) $)
  eu5 $p |- ( E! x ph <-> ( E. x ph /\ E* x ph ) ) $=
    ( weu wex wmo wa euex eumo jca wi df-mo biimpi imp ancoms impbii ) ABCZABDZ
    ABEZFPQRABGABHIRQPRQPRQPJABKLMNO $.

  $( 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 $.

  $( 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 $.

  $( If existence is decidable, something exists or at most one exists.
     (Contributed by Jim Kingdon, 30-Jun-2018.) $)
  exmodc $p |- ( DECID E. x ph -> ( E. x ph \/ E* x ph ) ) $=
    ( wex wdc wn wo wmo df-dc weu wi pm2.21 df-mo sylibr orim2i sylbi ) ABCZDPP
    EZFPABGZFPHQRPQPABIZJRPSKABLMNO $.

  $( There is at most one of something which does not exist.  Unlike ~ exmodc
     there is no decidability condition.  (Contributed by Jim Kingdon,
     22-Sep-2018.) $)
  exmonim $p |- ( -. E. x ph -> E* x ph ) $=
    ( wex wn weu wi wmo pm2.21 df-mo sylibr ) ABCZDKABEZFABGKLHABIJ $.

  ${
    $d x y $.
    mo2r.1 $e |- F/ y ph $.
    $( A condition which implies "at most one."  (Contributed by Jim Kingdon,
       2-Jul-2018.) $)
    mo2r $p |- ( E. y A. x ( ph -> x = y ) -> E* x ph ) $=
      ( weq wi wal wex weu wmo nfri eu3h simplbi2com df-mo sylibr ) ABCEFBGCHZA
      BHZABIZFABJRQPABCACDKLMABNO $.
  $}

  ${
    $d x y $.
    mo3h.1 $e |- ( ph -> A. 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.)  (New usage is discouraged.) $)
    mo3h $p |- ( E* x ph <->
               A. x A. y ( ( ph /\ [ y / x ] ph ) -> x = y ) ) $=
      ( wmo wsb wa weq wi wal wex weu nfi eu2 imbi2i df-mo anclb 3bitr4i sylibr
      19.38 19.21 albii anabs5 pm3.31 syl5bir 2alimi sylbi simplbi2com impbii
      syl ) ABEZAABCFZGZBCHZIZCJZBJZUKABKZUQIZUQURABLZIZURURUQGZIUKUSUTVBURABCA
      CDMZNZOABPZURUQQRUSAUOIZCJZBJZUQUSAUPIZBJVHAUPBTVGVIBAUOCVCUAUBSVFUOBCUMA
      UMGVFUNAULUCAUMUNUDUEUFUJUGUQVAUKUTURUQVDUHVESUI $.
  $}

  ${
    $d x y $.
    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.) $)
    mo3 $p |- ( E* x ph <->
               A. x A. y ( ( ph /\ [ y / x ] ph ) -> x = y ) ) $=
      ( nfri mo3h ) ABCACDEF $.
  $}

  ${
    $d x y $.
    mo2dc.1 $e |- F/ y ph $.
    $( Alternate definition of "at most one" where existence is decidable.
       (Contributed by Jim Kingdon, 2-Jul-2018.) $)
    mo2dc $p |- ( DECID E. x ph ->
        ( E* x ph <-> E. y A. x ( ph -> x = y ) ) ) $=
      ( wex wdc weq wi wal wsb wa wmo modc nfri mo3h syl6rbbr ) ABEFABCGZHBICEA
      ABCJKQHCIBIABLABCDMABCACDNOP $.
  $}

  ${
    euan.1 $e |- ( ph -> A. x ph ) $.
    $( Introduction of a conjunct into uniqueness quantifier.  (Contributed by
       NM, 19-Feb-2005.)  (Proof shortened by Andrew Salmon, 9-Jul-2011.) $)
    euan $p |- ( E! x ( ph /\ ps ) <-> ( ph /\ E! x ps ) ) $=
      ( wa weu wex wmo simpl exlimih adantr simpr eximi hbe1 a1d impbid2 mobidh
      ancrd biimpa eu5 jca32 anbi2i 3imtr4i ibar eubidh impbii ) ABEZCFZABCFZEZ
      UGCGZUGCHZEZABCGZBCHZEZEUHUJUMAUNUOUKAULUGACDABIJZKUKUNULUGBCABLZMKUKULUO
      UKUGBCUGCNUKUGBURUKBAUKABUQORPQSUAUGCTUIUPABCTUBUCAUIUHABUGCDABUDUESUF $.
  $}

  ${
    $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 ) ) $=
      ( ax-17 euan ) ABCACDE $.
  $}

  $( Introduce or eliminate a disjunct in a uniqueness quantifier.
     (Contributed by NM, 21-Oct-2005.)  (Proof shortened by Andrew Salmon,
     9-Jul-2011.) $)
  euor2 $p |- ( -. E. x ph -> ( E! x ( ph \/ ps ) <-> E! x ps ) ) $=
    ( wex wn wo hbe1 hbn wb 19.8a con3i orel1 olc impbid1 syl eubidh ) ACDZEZAB
    FZBCQCACGHRAEZSBIAQACJKTSBABLBAMNOP $.

  ${
    $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 wsb wa cv wceq wal wmo nfv sblim sban imbi1i sbcom2 anbi2i sbalv mo3
      wi 3bitri sbbii 3bitr4i ) AADEFZGZDHEHIZTZEJZDJZBCFABCFZUJDEFZGZUFTZEJZDJ
      ADKZBCFUJDKUHUNBCDUGUMBCEUGBCFUEBCFZUFTUJUDBCFZGZUFTUMUEUFBCUFBLMUPURUFAU
      DBCNOURULUFUQUKUJADEBCPQOUARRUOUIBCADEAELSUBUJDEUJELSUC $.
  $}

  ${
    $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 ax-17 mo3h sbie anbi2i imbi1i 2albii bitri ) ACGA
      ACDHZIZCDJZKZDLCLABIZUBKZDLCLACDADMNUCUECDUAUDUBTBAABCDEFOPQRS $.
  $}

  ${
    $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 $.
  $}

  $( Existence in terms of "at most one" and uniqueness.  (Contributed by Jim
     Kingdon, 3-Jul-2018.) $)
  exmoeudc $p |- ( DECID E. x ph -> ( E. x ph <-> ( E* x ph -> E! x ph ) ) ) $=
    ( wex wdc wmo weu wi df-mo com12 biimpri euex imim12i peircedc syl5 impbid2
    biimpi ) ABCZDZQABEZABFZGZSQTSQTGZABHZPIUAUBQGRQUBSTQSUBUCJABKLQTMNO $.

  ${
    $d x y $.  $d y ph $.  $d y ps $.
    $( "At most one" is preserved through implication (notice wff reversal).
       (Contributed by NM, 22-Apr-1995.) $)
    moim $p |- ( A. x ( ph -> ps ) -> ( E* x ps -> E* x ph ) ) $=
      ( vy wi wal wsb wa weq nfa1 ax-4 spsbim anim12d imim1d alimdv alimd ax-17
      wmo mo3h 3imtr4g ) ABEZCFZBBCDGZHZCDIZEZDFZCFAACDGZHZUEEZDFZCFBCRACRUBUGU
      KCUACJUBUFUJDUBUIUDUEUBABUHUCUACKABCDLMNOPBCDBDQSACDADQST $.
  $}

  ${
    moimi.1 $e |- ( ph -> ps ) $.
    $( "At most one" is preserved through implication (notice wff reversal).
       (Contributed by NM, 15-Feb-2006.) $)
    moimi $p |- ( E* x ps -> E* x ph ) $=
      ( wi wmo moim mpg ) ABEBCFACFECABCGDH $.
  $}

  ${
    $d x y $.  $d x y ph $.  $d y ps $.
    $( Move antecedent outside of "at most one."  (Contributed by NM,
       28-Jul-1995.) $)
    moimv $p |- ( E* x ( ph -> ps ) -> ( ph -> E* x ps ) ) $=
      ( vy wi wmo wsb weq wal ax-1 a1i sbimi nfv sbf sbim 3imtr3i anim12d ax-17
      wa mo3h imim1d 2alimdv 3imtr4g com12 ) AABEZCFZBCFZAUEUECDGZSZCDHZEZDICIB
      BCDGZSZUJEZDICIUFUGAUKUNCDAUMUIUJABUEULUHBUEEZABAJKZACDGUOCDGAULUHEAUOCDU
      PLACDACMNBUECDOPQUAUBUECDUEDRTBCDBDRTUCUD $.
  $}

  $( Uniqueness implies "at most one" through 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 $.

  ${
    $d x y $.  $d y ph $.  $d y ps $.
    moanim.1 $e |- F/ x ph $.
    $( Introduction of a conjunct into "at most one" quantifier.  (Contributed
       by NM, 3-Dec-2001.) $)
    moanim $p |- ( E* x ( ph /\ ps ) <-> ( ph -> E* x ps ) ) $=
      ( vy wsb wa weq wi wal wmo anandi imbi1i impexp sbf anbi1i ax-17 3bitr4ri
      sban mo3h bitr2i anbi2i 3bitr3i 2albii 19.21 19.21v albii imbi2i ) ABBCEF
      ZGZCEHZIZIZEJZCJZABGZUPCEFZGZUKIZEJCJABCKZIZUPCKUMUSCEAUJGZUKIUPAUIGZGZUK
      IUMUSVBVDUKABUILMAUJUKNVDURUKVCUQUPUQACEFZUIGVCABCESVEAUIACEDOPUAUBMUCUDA
      ULEJZIZCJAVFCJZIUOVAAVFCDUEUNVGCAULEUFUGUTVHABCEBEQTUHRUPCEUPEQTR $.
  $}

  ${
    $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" and uniqueness quantifiers.  (Contributed by NM,
     25-Jan-2006.) $)
  moaneu $p |- E* x ( ph /\ E! x ph ) $=
    ( weu wa wmo wi eumo nfeu1 moanim mpbir ancom mobii ) AABCZDZBEMADZBEZPMABE
    FABGMABABHIJNOBAMKLJ $.

  $( 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 $.

  ${
    $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.) $)
    mopick $p |- ( ( E* x ph /\ E. x ( ph /\ ps ) ) -> ( ph -> ps ) ) $=
      ( vy wa wex wmo wi wsb hbs1 hban weq sbequ12 anbi12d cbvexh wal mo3h ax-4
      ax-17 sylbi sps sbequ2 imim2i expd com4t imp syl5 exlimiv impcom ) ABEZCF
      ZACGZABHZUKACDIZBCDIZEZDFULUMHZUJUPCDUJDSUNUOCACDJBCDJKCDLZAUNBUOACDMBCDM
      NOUPUQDULAUNEZURHZUPUMULUTDPZCPUTACDADSQVAUTCUTDRUATUNUOUTUMHUTAUNUOBUTAU
      NUOBHZURVBUSBCDUBUCUDUEUFUGUHTUI $.
  $}

  $( 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 hbeu1 hbe1 hban eupick alrimih ) ACDZABEZCFZEABGCMOCACHNCIJ
    ABCKL $.

  $( Existential uniqueness "pick" showing wff equivalence.  (Contributed by
     NM, 25-Nov-1994.) $)
  eupickb $p |- ( ( E! x ph /\ E! x ps /\ E. x ( ph /\ ps ) ) ->
               ( ph <-> ps ) ) $=
    ( weu wa wex w3a wi eupick 3adant2 3simpc pm3.22 eximi anim2i 3syl impbid )
    ACDZBCDZABEZCFZGZABQTABHRABCIJUARTERBAEZCFZEBAHQRTKTUCRSUBCABLMNBACIOP $.

  $( Theorem *14.26 in [WhiteheadRussell] p. 192.  (Contributed by Andrew
     Salmon, 11-Jul-2011.) $)
  eupickbi $p |- ( E! x ph -> ( E. x ( ph /\ ps ) <-> A. x ( ph -> ps ) ) ) $=
    ( weu wa wex wi wal eupicka ex hba1 wb ancl simpl impbid1 sps eubidh syl6bi
    euex com12 impbid ) ACDZABEZCFZABGZCHZUBUDUFABCIJUFUBUDUFUBUCCDUDUFAUCCUECK
    UEAUCLCUEAUCABMABNOPQUCCSRTUA $.

  $( "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 hbmo1 hbe1 hban mopick anim1d df-3an syl6ibr eximdh 3impia
    ancld ) ADEZABFZDGZACFZDGABCHZDGSUAFZUBUCDSUADADITDJKUDUBTCFUCUDATCUDABABDL
    RMABCNOPQ $.

  ${
    moexexdc.1 $e |- F/ y ph $.
    $( "At most one" double quantification.  (Contributed by Jim Kingdon,
       5-Jul-2018.) $)
    moexexdc $p |- ( DECID E. x ph ->
        ( ( E* x ph /\ A. x E* y ps ) -> E* y E. x ( ph /\ ps ) ) ) $=
      ( wex wdc wn wo wmo wal wa wi df-dc hbmo1 hba1 hbmo hbim exlimih a1d hbe1
      nfri mopick com3r alrimdh moim spsd syl6 hbex exsimpl con3i mon jaoi impd
      ex syl sylbi ) ACFZGURURHZIZACJZBDJZCKZLABLZCFZDJZMURNUTVAVCVFURVAVCVFMZM
      ZUSAVHCVAVGCACOVCVFCVBCPVECDVDCUAQRRAVAVEBMZDKZVGAVAVIDADEUBZADCVKQVAVEAB
      VAVEABMABCUCUOUDUEVJVBVFCVEBDUFUGUHSUSVGVAUSVFVCUSVEDFZHVFVLURVEURDADCVKU
      IABCUJSUKVEDULUPTTUMUNUQ $.
  $}

  ${
    euexex.1 $e |- F/ y ph $.
    $( Existential uniqueness and "at most one" double quantification.
       (Contributed by Jim Kingdon, 28-Dec-2018.) $)
    euexex $p |-
        ( ( E! x ph /\ A. x E* y ps ) -> E* y E. x ( ph /\ ps ) ) $=
      ( weu wmo wal wa wex wi eu5 nfmo1 nfa1 nfe1 nfmo nfim mopick ex imp com3r
      alrimd moim spsd syl6 exlimi sylbi ) ACFZBDGZCHZABIZCJZDGZUHACJZACGZIUJUM
      KZACLUNUOUPAUOUPKCUOUPCACMUJUMCUICNULCDUKCOPQQAUOULBKZDHZUPAUOUQDEADCEPUO
      ULABUOULABKABCRSUAUBURUIUMCULBDUCUDUEUFTUGT $.
  $}

  $( 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 hbe1 hbmo 19.8a moimi alrimih ) 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 hbe1 hbmo 19.8a moimi df-mo eximdh syl5bi impcom
    wi sylib sylbi ) ACDZBEUABDZUABFZGABEZCDZUABHUCUBUEUBABDZCDUCUEABCIUCUFUDCU
    ACBACJKUCABFUFUDRAUABACLMABNSOPQT $.

  $( 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 Jim Kingdon, 6-Jul-2018.) $)
  2moswapdc $p |- ( DECID E. x E. y ph -> ( A. x E* y ph ->
      ( E* x E. y ph -> E* y E. x ph ) ) ) $=
    ( wex wdc wmo wa wi nfe1 moexexdc expcomd 19.8a pm4.71ri exbii mobii imbi2i
    wal syl6ibr ) ACDZBDEZACFBQZSBFZSAGZBDZCFZHUBABDZCFZHTUBUAUESABCACIJKUGUEUB
    UFUDCAUCBASACLMNOPR $.

  $( A condition allowing swap of uniqueness and existential quantifiers.
     (Contributed by Jim Kingdon, 7-Jul-2018.) $)
  2euswapdc $p |- ( DECID E. x E. y ph -> ( A. x E* y ph ->
      ( E! x E. y ph -> E! y E. x ph ) ) ) $=
    ( wex wdc wmo wal weu wi wa excomim a1i 2moswapdc imp anim12d eu5 3imtr4g
    ex ) ACDZBDZEZACFBGZSBHZABDZCHZIUAUBJZTSBFZJUDCDZUDCFZJUCUEUFTUHUGUITUHIUFA
    BCKLUAUBUGUIIABCMNOSBPUDCPQR $.

  $( Double existential uniqueness implies double uniqueness quantification.
     (Contributed by NM, 3-Dec-2001.) $)
  2exeu $p |- ( ( E! x E. y ph /\ E! y E. x ph ) -> E! x E! y ph ) $=
    ( wex wmo weu excom hbe1 hbmo 19.41h 19.8a moimi anim2i eximi sylbir sylanb
    wa simpl eu5 anbi12i adantl anim12i ancoms exbii mobii bitri 3imtr4i ) ACDZ
    BDZUHBEZQZABDZCDZULCEZQZQUHACEZQZBDZUQBEZQZUHBFZULCFZQACFZBFZUOUKUTUOURUKUS
    UMUIUNURACBGUIUNQUHUNQZBDURUHUNBULBCABHIJVEUQBUNUPUHAULCABKLMNOPUJUSUIUQUHB
    UHUPRLUAUBUCVAUKVBUOUHBSULCSTVDVCBDZVCBEZQUTVCBSVFURVGUSVCUQBACSZUDVCUQBVHU
    ETUFUG $.

  ${
    $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 ~ 2exeu for a one-way implication.  (Contributed by NM,
       3-Dec-2001.) $)
    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 weq wi wal ax-17 eu3h anbi12i anbi2i bitri 19.3h 19.26 albii
      hba1 excom anidm jcab 3bitr4ri alcom bitr4i 19.23v 2albii hbe1 hbim aaanh
      an4 3bitri 2exbii eeanv bitr2i ) ACFZBGZABFZCGZHUQBFZUQBDIZJZBKZDFZHZUSCF
      ZUSCEIZJZCKZEFZHZHVAVGHZVEVKHZHVAAVBVHHJZCKZBKZEFDFZHURVFUTVLUQBDUQDLMUSC
      EUSELMNVAVEVGVKULVMVAVNVRVMVAVAHVAVGVAVAACBUAOVAUBPVRVDVJHZEFDFVNVQVSDEVQ
      AVBJZCKZAVHJZBKZHZCKZBKZVCVIHZCKBKVSVQWAWBCKZBKZHZBKZWFWABKZWIBKZHWLWIHZW
      KVQWMWIWLWIBWHBTQOWAWIBRVQWAWHHZBKWNVPWOBVPVTWBHZCKWOVOWPCAVBVHUCSVTWBCRP
      SWAWHBRPUDWEWJBWEWACKZWCCKZHWJWAWCCRWQWAWRWIWACVTCTQWBCBUENPSUFWDWGBCWAVC
      WCVIAVBCUGAVHBUGNUHVCVIBCUQVBCACUIVBCLUJUSVHBABUIVHBLUJUKUMUNVDVJDEUOUPNU
      M $.
  $}

  $( 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 hbe1 hbeu euan ancom eubii 3bitri 3bitr4ri ) ABDZCEZACDZFZBEOP
    BEZFNPFZCEZBEROFOPBNBCABGHITQBTPNFZCEPOFQSUACNPJKPNCACGIPOJLKROJM $.

  ${
    $d x y z $.
    $( Equality has existential uniqueness.  (Contributed by Stefan Allan,
       4-Dec-2008.) $)
    euequ1 $p |- E! x x = y $=
      ( vz weq weu wex wa wi wal a9e equtr2 gen2 equequ1 eu4 mpbir2an ) ABDZAEP
      AFPCBDZGACDHZCIAIABJRACACBKLPQACACBMNO $.
  $}

  ${
    $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.  (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 hbae 3bitr2i
      19.9h ) AACZADRABCZEZAFZBGSAFZBGUBRABHUBUABSTASSRETRSAIJSRKLMNUBBABBOQP
      $.
  $}

  ${
    $d x y $.
    $( 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 cv wceq weu wal hbeu1 hba1 wi exists1 ax16 sylbi com12 alexim
      exlimdh syl6 con2d imp ) ABDZAEBDZBFZUDGZBHZEUBUFUCUBUFABIZUCEUFUBUGUFAUG
      BUEBJABKUFUDCFGBIAUGLBCMABCNORPABQSTUA $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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 to it).
  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
  use 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 aproach 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 verb "is", not the plural
  verb "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 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 Aristolean 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.

  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.

  Aristotelean 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 doesn't 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.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.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.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.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.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.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.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.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.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.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.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.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.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 $.
  $}


$(
###############################################################################
  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.

  Here we develop set theory based on the Intuitionistic Zermelo-Fraenkel
  (IZF) system, mostly following the IZF axioms as laid out in [Crosilla].
  Constructive Zermelo-Fraenkel (CZF), also described in Crosilla, is not
  as easy to formalize in Metamath because the statement of some of its axioms
  uses the notion of "bounded formula".  Since Metamath has, purposefully, a
  very weak metalogic, that notion must be developed in the logic itself.  This
  is similar to our treatment of substitution ( ~ df-sb ) and our definition of
  the nonfreeness predicate ( ~ df-nf ), whereas substitution and bound and
  free variables are ordinarily defined in the metalogic.  The development of
  CZF has begun in BJ's mathbox, see ~ wbd .

$)


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  IZF Set Theory - start with the Axiom of Extensionality
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Introduce the Axiom of Extensionality
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y z $.
    $( Axiom of Extensionality.  It states that two sets are identical if they
       contain the same elements.  Axiom 1 of [Crosilla] p.  "Axioms of CZF and
       IZF" (with unnecessary quantifiers removed).

       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 logical axioms, we would rewrite ~ ax-8 through ~ ax-16 with
       equality expanded according to the above definition.  Some of those
       axioms could be proved from set theory and would be redundant.  Not all
       of them are redundant, since our axioms of predicate calculus make
       essential use of equality for the proper substitution that is a
       primitive notion in traditional predicate calculus.  A study of such an
       axiomatization would be an interesting project for someone exploring the
       foundations of logic.

       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 axioms which involve wff metavariables).  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, 5-Aug-1993.) $)
    ax-ext $a |- ( A. z ( z e. x <-> z e. y ) -> x = y ) $.
  $}

  ${
    $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.) $)
    axext3 $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 .  (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.) $)
    bm1.1 $p |- ( E. x A. y ( y e. x <-> ph ) ->
                  E! x A. y ( y e. x <-> ph ) ) $=
      ( vz wel wb wal wex wsb wa weq wi weu nfv nfbi nfal elequ2 bibi1d albidv
      sbie 19.26 biantr alimi ax-ext syl sylbir sylan2b gen2 jctr eu2 sylibr )
      CBFZAGZCHZBIZUPUOUOBEJZKBELZMZEHBHZKUOBNUPUTUSBEUQUOCEFZAGZCHZURUOVCBEVBB
      CVAABVABODPQURUNVBCURUMVAABECRSTUAUOVCKUNVBKZCHZURUNVBCUBVEUMVAGZCHURVDVF
      CUMAVAUCUDBECUEUFUGUHUIUJUOBEUOEOUKUL $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Class abstractions (a.k.a. class builders)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Declare new constants use in class definition. $)
  $c { $. $( Left brace $)
  $c | $.  $( Vertical bar $)
  $c } $. $( Right brace $)
  $( --- Start of old code before overloading prevention patch. $)
  $(
  @c class @. @( Class variable type @)
  $)
  $( --- End of old code before overloading prevention patch. $)

  $( 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 .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 (sometimes implicitly).  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 } $.

  $( --- Start of old code before overloading prevention patch. $)
  $(
  @( A setvar variable is a class expression.  The syntax " ` class x ` " can
     be
     viewed as an abbreviation for " ` class { y | y e. x } ` " (a special case
     of ~ cab ), where ` y ` is distinct from ` x ` .  See the discussion under
     the definition of class in [Jech] p. 4.  Note that ` { y | y e. x } = x `
     by ~ cvjust . @)
  cv @a class x @.
  $)
  $( --- End of old code before overloading prevention patch. $)
  $( $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 $.

  $( 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 $.

  $( --- Start of old code before overloading prevention patch. $)
  $(
  @( Extend wff definition to include class equality. @)
  wceq @a wff A = B @.
  $)
  $( --- End of old code before overloading prevention patch. $)

  $( --- Start of old code before overloading prevention patch. $)
  $(
  @( Extend wff definition to include the membership connective between
     classes. @)
  wcel @a wff A e. B @.
  $)
  $( --- End of old code before overloading prevention patch. $)

  $( 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 a class.  In ~ df-cleq and ~ df-clel , we introduce a new kind
     of variable (class variable) that can 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 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".

     For a general discussion of the theory of classes, see
     ~ http://us.metamath.org/mpeuni/mmset.html#class .  (Contributed by NM,
     5-Aug-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, 5-Aug-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, 5-Aug-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 nfi ) 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 nfri hbab nfi ) 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.

       We could avoid this complication by introducing a new symbol, say =_2,
       in place of ` = ` .  This would also have the advantage of making
       elimination of the definition straightforward, so that we could
       eliminate Extensionality as a hypothesis.  We would then also have the
       advantage of being able to identify in various proofs exactly where
       Extensionality truly comes into play rather than just being an artifact
       of a definition.  One of our theorems would then be ` x ` =_2
       ` y <-> x = y ` by invoking Extensionality.

       However, to conform to literature usage, we retain this overloaded
       definition.  This also makes some proofs shorter and probably easier to
       read, without the constant switching between two kinds of equality.

       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.

       For a general discussion of the theory of classes, see
       ~ http://us.metamath.org/mpeuni/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.) $)
    dfcleq $p |- ( A = B <-> A. x ( x e. A <-> x e. B ) ) $=
      ( vy vz ax-ext 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 .

       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.

       For a general discussion of the theory of classes, see
       ~ http://us.metamath.org/mpeuni/mmset.html#class .  (Contributed by NM,
       5-Aug-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, 5-Aug-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.) $)
    eqrdav $p |- ( ph -> A = B ) $=
      ( cv wcel wa biimpd impancom mpd wi exbiri com23 imp impbida eqrdv ) ABCD
      ABIZCJZUADJZAUBKUAEJZUCFAUDUBUCAUDKUBUCHLMNAUCKUDUBGAUCUDUBOAUDUCUBAUDUBU
      CHPQRNST $.
  $}

  ${
    $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_,
       Zeta, 17, 1041 a, 10-20).  (Thanks to Stefan Allan and BJ for this
       information.)  (Contributed by NM, 5-Aug-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 $.
    $( Commutative law for class equality.  Theorem 6.5 of [Quine] p. 41.
       (Contributed by NM, 5-Aug-1993.) $)
    eqcom $p |- ( A = B <-> B = A ) $=
      ( vx cv wcel wb wal wceq bicom albii dfcleq 3bitr4i ) CDZAEZMBEZFZCGONFZC
      GABHBAHPQCNOIJCABKCBAKL $.
  $}

  ${
    eqcoms.1 $e |- ( A = B -> ph ) $.
    $( Inference applying commutative law for class equality to an antecedent.
       (Contributed by NM, 5-Aug-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,
       5-Aug-1993.) $)
    eqcomi $p |- B = A $=
      ( wceq eqcom mpbi ) ABDBADCABEF $.
  $}

  ${
    eqcomd.1 $e |- ( ph -> A = B ) $.
    $( Deduction from commutative law for class equality.  (Contributed by NM,
       15-Aug-1994.) $)
    eqcomd $p |- ( ph -> B = A ) $=
      ( wceq eqcom sylib ) ABCECBEDBCFG $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Equality implies equivalence of equalities.  (Contributed by NM,
       5-Aug-1993.) $)
    eqeq1 $p |- ( A = B -> ( A = C <-> B = C ) ) $=
      ( vx wceq cv wcel wb wal dfcleq biimpi 19.21bi bibi1d albidv 3bitr4g ) AB
      EZDFZAGZQCGZHZDIQBGZSHZDIACEBCEPTUBDPRUASPRUAHZDPUCDIDABJKLMNDACJDBCJO $.
  $}

  ${
    eqeq1i.1 $e |- A = B $.
    $( Inference from equality to equivalence of equalities.  (Contributed by
       NM, 5-Aug-1993.) $)
    eqeq1i $p |- ( A = C <-> B = C ) $=
      ( wceq wb eqeq1 ax-mp ) ABEACEBCEFDABCGH $.
  $}

  ${
    eqeq1d.1 $e |- ( ph -> A = B ) $.
    $( Deduction from equality to equivalence of equalities.  (Contributed by
       NM, 27-Dec-1993.) $)
    eqeq1d $p |- ( ph -> ( A = C <-> B = C ) ) $=
      ( wceq wb eqeq1 syl ) ABCFBDFCDFGEBCDHI $.
  $}

  $( Equality implies equivalence of equalities.  (Contributed by NM,
     5-Aug-1993.) $)
  eqeq2 $p |- ( A = B -> ( C = A <-> C = B ) ) $=
    ( wceq eqeq1 eqcom 3bitr4g ) ABDACDBCDCADCBDABCECAFCBFG $.

  ${
    eqeq2i.1 $e |- A = B $.
    $( Inference from equality to equivalence of equalities.  (Contributed by
       NM, 5-Aug-1993.) $)
    eqeq2i $p |- ( C = A <-> C = B ) $=
      ( wceq wb eqeq2 ax-mp ) ABECAECBEFDABCGH $.
  $}

  ${
    eqeq2d.1 $e |- ( ph -> A = B ) $.
    $( Deduction from equality to equivalence of equalities.  (Contributed by
       NM, 27-Dec-1993.) $)
    eqeq2d $p |- ( ph -> ( C = A <-> C = B ) ) $=
      ( wceq wb eqeq2 syl ) ABCFDBFDCFGEBCDHI $.
  $}

  $( 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, 5-Aug-1993.)  (Proof shortened by Andrew Salmon,
       25-May-2011.) $)
    eqeq12i $p |- ( A = C <-> B = D ) $=
      ( wceq wb eqeq12 mp2an ) ABGCDGACGBDGHEFABCDIJ $.

    $( 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.
       (Contributed by NM, 9-Aug-1994.)  (Proof shortened by Andrew Salmon,
       25-May-2011.) $)
    eqeqan12d $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, 5-Aug-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, 5-Aug-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,
       5-Aug-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, 5-Aug-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, 5-Aug-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, 5-Aug-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, 5-Aug-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, 5-Aug-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 x A $.  $d x B $.  $d x C $.
    $( Equality implies equivalence of membership.  (Contributed by NM,
       5-Aug-1993.) $)
    eleq1 $p |- ( A = B -> ( A e. C <-> B e. C ) ) $=
      ( vx wceq cv wcel wa wex eqeq2 anbi1d exbidv df-clel 3bitr4g ) ABEZDFZAEZ
      PCGZHZDIPBEZRHZDIACGBCGOSUADOQTRABPJKLDACMDBCMN $.

    $( Equality implies equivalence of membership.  (Contributed by NM,
       5-Aug-1993.) $)
    eleq2 $p |- ( A = B -> ( C e. A <-> C e. B ) ) $=
      ( vx wceq cv wcel wa wex wal dfcleq biimpi 19.21bi anbi2d df-clel 3bitr4g
      wb exbidv ) ABEZDFZCEZTAGZHZDIUATBGZHZDICAGCBGSUCUEDSUBUDUASUBUDQZDSUFDJD
      ABKLMNRDCAODCBOP $.
  $}

  $( 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, 5-Aug-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, 5-Aug-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'; $)
    $}
  $}

  ${
    eleq1d.1 $e |- ( ph -> A = B ) $.
    $( Deduction from equality to equivalence of membership.  (Contributed by
       NM, 5-Aug-1993.) $)
    eleq1d $p |- ( ph -> ( A e. C <-> B e. C ) ) $=
      ( wceq wcel wb eleq1 syl ) ABCFBDGCDGHEBCDIJ $.

    $( Deduction from equality to equivalence of membership.  (Contributed by
       NM, 27-Dec-1993.) $)
    eleq2d $p |- ( ph -> ( C e. A <-> C e. B ) ) $=
      ( wceq wcel wb eleq2 syl ) ABCFDBGDCGHEBCDIJ $.

    ${
      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, 5-Aug-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, 5-Aug-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, 5-Aug-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, 5-Aug-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 $.
  $}

  ${
    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.) $)
    3eltr3g $p |- ( ph -> C e. D ) $=
      ( wcel eleq12i sylib ) ABCIDEIFBDCEGHJK $.
  $}

  ${
    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.) $)
    3eltr4g $p |- ( ph -> C e. D ) $=
      ( wcel eleq12i sylibr ) ABCIDEIFDBECGHJK $.
  $}

  ${
    syl5eqel.1 $e |- A = B $.
    syl5eqel.2 $e |- ( ph -> B e. C ) $.
    $( B 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 ) $.
    $( B 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 ) $.
    $( B 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 ) $.
    $( B 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 $.
  $}

  ${
    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.) $)
    eqneltrrd $p |- ( ph -> -. B e. C ) $=
      ( wcel eleq1d mtbid ) ABDGCDGFABCDEHI $.
  $}

  ${
    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.) $)
    neleqtrrd $p |- ( ph -> -. C e. A ) $=
      ( wcel eleq2d mtbird ) ADBGDCGEABCDFHI $.
  $}

  ${
    $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, 5-Aug-1993.) $)
    cleqh $p |- ( A = B <-> A. x ( x e. A <-> x e. B ) ) $=
      ( wceq cv wcel wb wal dfcleq ax-17 wi wa dfbi2 hbim weq eleq1 cbv3h hban
      hbxfrbi bibi12d biimpd equcoms biimprd impbii bitr4i ) CDGBHZCIZUIDIZJZBK
      ZAHZCIZUNDIZJZAKZBCDLURUMUQULABUQBMZULUJUKNZUKUJNZOAUJUKPUTVAAUJUKAEFQUKU
      JAFEQUAUBZABRZUQULVCUOUJUPUKUNUICSUNUIDSUCZUDTULUQBAVBUSBARUQULUQULJABVDU
      EUFTUGUH $.
  $}

  $( 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 $.
  $}

  ${
    $d y A $.  $d w y $.  $d w A $.  $d w x $.
    $( Substitution applied to an atomic wff (class version of ~ elsb4 ).
       (Contributed by Jim Kingdon, 22-Nov-2018.) $)
    clelsb4 $p |- ( [ x / y ] A e. y <-> A e. x ) $=
      ( vw cv wcel wsb nfv sbco2 eleq2 sbie sbbii 3bitr3i ) CDEZFZDBGZBAGODAGCB
      EZFZBAGCAEZFZODABOBHIPRBAORDBRDHNQCJKLOTDATDHNSCJKM $.
  $}

  ${
    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.  (Contributed by NM,
       5-Aug-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.  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 set and wff variables not already in the wff.  For
       more information on class variables, see Quine pp. 15-21 and/or Takeuti
       and Zaring pp. 10-13.  (Contributed by NM, 5-Aug-1993.) $)
    abeq2 $p |- ( A = { x | ph } <-> A. x ( x e. A <-> ph ) ) $=
      ( vy cab wceq cv wcel wb wal ax-17 hbab1 cleqh abid bibi2i albii bitri )
      CABEZFBGZCHZSRHZIZBJTAIZBJBDCRDGCHBKABDLMUBUCBUAATABNOPQ $.
  $}

  ${
    $d x A $.
    $( Equality of a class variable and a class abstraction.  (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 $.
  $}

  ${
    abeqi.1 $e |- A = { x | ph } $.
    $( Equality of a class variable and a class abstraction (inference rule).
       (Contributed by NM, 3-Apr-1996.) $)
    abeq2i $p |- ( x e. A <-> ph ) $=
      ( cv wcel cab eleq2i abid bitri ) BEZCFKABGZFACLKDHABIJ $.
  $}

  ${
    abeqri.1 $e |- { x | ph } = A $.
    $( Equality of a class variable and a class abstraction (inference rule).
       (Contributed by NM, 31-Jul-1994.) $)
    abeq1i $p |- ( ph <-> x e. A ) $=
      ( cv cab wcel abid eleq2i bitr3i ) ABEZABFZGKCGABHLCKDIJ $.
  $}

  ${
    abeqd.1 $e |- ( ph -> A = { x | ps } ) $.
    $( Equality of a class variable and a class abstraction (deduction).
       (Contributed by NM, 16-Nov-1995.) $)
    abeq2d $p |- ( ph -> ( x e. A <-> ps ) ) $=
      ( cv wcel cab eleq2d abid syl6bb ) ACFZDGLBCHZGBADMLEIBCJK $.
  $}

  ${
    $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.) $)
    abbi $p |- ( A. x ( ph <-> ps ) <-> { x | ph } = { x | ps } ) $=
      ( vy cab wceq wcel wal dfcleq nfsab1 nfbi nfv wsb df-clab sbequ12r syl5bb
      cv wb bibi12d cbval bitr2i ) ACEZBCEZFDQZUBGZUDUCGZRZDHABRZCHDUBUCIUGUHDC
      UEUFCACDJBCDJKUHDLUDCQFZUEAUFBUEACDMUIAADCNADCOPUFBCDMUIBBDCNBDCOPSTUA $.
  $}

  ${
    $d x A $.
    abbiri.1 $e |- ( x e. A <-> ph ) $.
    $( Equality of a class variable and a class abstraction (inference rule).
       (Contributed by NM, 5-Aug-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, 5-Aug-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, 5-Aug-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 $.
    abbirdv.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 $.
    abbildv.1 $e |- ( ph -> ( ps <-> x e. A ) ) $.
    $( Deduction from a wff to a class abstraction.  (Contributed by NM,
       9-Jul-1994.) $)
    abbi1dv $p |- ( ph -> { x | ps } = A ) $=
      ( cv wcel wb wal cab wceq alrimiv abeq1 sylibr ) ABCFDGHZCIBCJDKAOCELBCDM
      N $.
  $}

  ${
    $d x A $.
    $( A simplification of class abstraction.  Theorem 5.2 of [Quine] p. 35.
       (Contributed by NM, 26-Dec-1993.) $)
    abid2 $p |- { x | x e. A } = A $=
      ( cv wcel cab biid abbi2i eqcomi ) BACBDZAEIABIFGH $.
  $}

  ${
    $d x z $.  $d y z $.  $d ph z $.
    sb8ab.1 $e |- F/ y ph $.
    $( Substitution of variable in class abstraction.  (Contributed by Jim
       Kingdon, 27-Sep-2018.) $)
    sb8ab $p |- { x | ph } = { y | [ y / x ] ph } $=
      ( vz cab wsb cv wcel sbco2 df-clab 3bitr4ri eqriv ) EABFZABCGZCFZOCEGABEG
      EHZPIQNIABECDJOECKAEBKLM $.
  $}

  ${
    $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.) $)
    cbvab $p |- { x | ph } = { y | ps } $=
      ( vz cab wsb cv wcel nfsb weq wb equcoms bicomd sbie sbequ df-clab eqriv
      syl5bbr 3bitr4i ) HACIZBDIZACHJBDHJZHKZUDLUGUELAUFCHBDHCFMABDCJCHNUFBADCE
      DCNABABOCDGPQRBCHDSUBRAHCTBHDTUCUA $.
  $}

  ${
    $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.) $)
    clelab $p |- ( A e. { x | ph } <-> E. x ( x = A /\ ph ) ) $=
      ( vy cv wceq cab wcel wex wsb df-clab anbi2i exbii df-clel nfv nfs1v nfan
      wa eqeq1 sbequ12 anbi12d cbvex 3bitr4i ) DEZCFZUDABGZHZRZDIUEABDJZRZDICUF
      HBEZCFZARZBIUHUJDUGUIUEADBKLMDCUFNUMUJBDUMDOUEUIBUEBOABDPQUKUDFULUEAUIUKU
      DCSABDTUAUBUC $.
  $}

  ${
    $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 quantifier or something that expands to one (such
       as "there exists at most one").  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 nfi 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 nfri 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 nfi ) 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 y A $.  $d y B $.
    nfceqi.1 $e |- A = B $.
    $( Equality theorem for class not-free.  (Contributed by Mario Carneiro,
       11-Aug-2016.) $)
    nfceqi $p |- ( F/_ x A <-> F/_ x B ) $=
      ( vy cv wcel wnf wal wnfc eleq2i nfbii albii df-nfc 3bitr4i ) EFZBGZAHZEI
      PCGZAHZEIABJACJRTEQSABCPDKLMAEBNAECNO $.

    ${
      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 $.  $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 $.
  $}

  ${
    $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 $.

    $( ` 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 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 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.) $)
    nfnfc $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 Mario Carneiro,
       11-Aug-2016.) $)
    nfeq $p |- F/ x A = B $=
      ( vz wceq cv wcel wb wal dfcleq nfcri nfbi nfal nfxfr ) BCGFHZBIZQCIZJZFK
      AFBCLTAFRSAAFBDMAFCEMNOP $.

    $( Hypothesis builder for elementhood.  (Contributed by Mario Carneiro,
       11-Aug-2016.) $)
    nfel $p |- F/ x A e. B $=
      ( vz wcel cv wceq wa wex df-clel nfcv nfeq nfcri nfan nfex nfxfr ) BCGFHZ
      BIZSCGZJZFKAFBCLUBAFTUAAASBASMDNAFCEOPQR $.
  $}

  ${
    $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 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 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 $.
    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 } ) $=
      ( vz cab nfv cv wcel wsb df-clab nfsbd nfxfrd nfcd ) ACGBDHZAGIGJQKBDGLAC
      BGDMABDGCEFNOP $.
  $}

  ${
    $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, 5-Aug-1993.)  (Revised by Mario Carneiro,
       7-Oct-2016.) $)
    cleqf $p |- ( A = B <-> A. x ( x e. A <-> x e. B ) ) $=
      ( vy wceq cv wcel wb wal dfcleq nfv nfcri nfbi eleq1 bibi12d cbval bitr4i
      ) BCGFHZBIZTCIZJZFKAHZBIZUDCIZJZAKFBCLUGUCAFUGFMUAUBAAFBDNAFCENOUDTGUEUAU
      FUBUDTBPUDTCPQRS $.
  $}

  ${
    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.) $)
    abid2f $p |- { x | x e. A } = A $=
      ( cv wcel cab wceq wb wal nfab1 cleqf abid bibi2i albii bitri biid mpgbir
      eqcomi ) BADZBEZAFZBUAGZTTHZAUBTSUAEZHZAIUCAIABUACTAJKUEUCAUDTTTALMNOTPQR
      $.
  $}

  ${
    $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.) $)
    sbabel $p |- ( [ y / x ] { z | ph } e. A <-> { z | [ y / x ] ph } e. A ) $=
      ( vv cv cab wceq wcel wa wex wsb wb wal sbf abeq2 sbbii 3bitr4i sbex sban
      nfv sbrbis sbalv nfcri anbi12i bitri exbii df-clel ) GHZADIZJZUKEKZLZGMZB
      CNZUKABCNZDIZJZUNLZGMZULEKZBCNUSEKUQUOBCNZGMVBUOGBCUAVDVAGVDUMBCNZUNBCNZL
      VAUMUNBCUBVEUTVFUNDHUKKZAOZDPZBCNVGUROZDPVEUTVHVJBCDVGVGABCVGBCVGBUCQUDUE
      UMVIBCADUKRSURDUKRTUNBCBGEFUFQUGUHUIUHVCUPBCGULEUJSGUSEUJT $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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, 5-Aug-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 Jim Kingdon, 23-Dec-2018.) $)
  nner $p |- ( A = B -> -. A =/= B ) $=
    ( wne wceq wn df-ne biimpi con2i ) ABCZABDZIJEABFGH $.

  $( Negation of inequality where equality is decidable.  (Contributed by Jim
     Kingdon, 15-May-2018.) $)
  nnedc $p |- ( DECID A = B -> ( -. A =/= B <-> A = B ) ) $=
    ( wceq wdc wne wn wb df-ne a1i con2biidc bicomd ) ABCZDZLABEZFNLNLFGMABHIJK
    $.

  ${
    dcned.eq $e |- ( ph -> DECID A = B ) $.
    $( Decidable equality implies decidable negated equality.  (Contributed by
       Jim Kingdon, 3-May-2020.) $)
    dcned $p |- ( ph -> DECID A =/= B ) $=
      ( wceq wn wdc wne dcn syl df-ne dcbii sylibr ) ABCEZFZGZBCHZGANGPDNIJQOBC
      KLM $.
  $}

  ${
    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.  (Contributed by Stefan O'Rear,
     1-Jan-2015.)  (Proof rewritten by Jim Kingdon, 15-May-2018.) $)
  neirr $p |- -. A =/= A $=
    ( wne wn wceq eqid notnoti df-ne notbii mpbir ) AABZCAADZCZCKAEFJLAAGHI $.

  $( 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 $.

  $( Decidable equality expressed in terms of ` =/= ` .  Basically the same as
     ~ df-dc .  (Contributed by Jim Kingdon, 14-Mar-2020.) $)
  dcne $p |- ( DECID A = B <-> ( A = B \/ A =/= B ) ) $=
    ( wceq wdc wn wo wne df-dc df-ne orbi2i bitr4i ) ABCZDLLEZFLABGZFLHNMLABIJK
    $.

  $( Law of noncontradiction with equality and inequality.  (Contributed by NM,
     3-Feb-2012.) $)
  nonconne $p |- -. ( A = B /\ A =/= B ) $=
    ( wceq wne wa wn pm3.24 df-ne anbi2i mtbir ) ABCZABDZEKKFZEKGLMKABHIJ $.

  $( Equality theorem for inequality.  (Contributed by NM, 19-Nov-1994.) $)
  neeq1 $p |- ( A = B -> ( A =/= C <-> B =/= C ) ) $=
    ( wceq wn wne eqeq1 notbid df-ne 3bitr4g ) ABDZACDZEBCDZEACFBCFKLMABCGHACIB
    CIJ $.

  $( Equality theorem for inequality.  (Contributed by NM, 19-Nov-1994.) $)
  neeq2 $p |- ( A = B -> ( C =/= A <-> C =/= B ) ) $=
    ( wceq wn wne eqeq2 notbid df-ne 3bitr4g ) ABDZCADZECBDZECAFCBFKLMABCGHCAIC
    BIJ $.

  ${
    neeq1i.1 $e |- A = B $.
    $( Inference for inequality.  (Contributed by NM, 29-Apr-2005.) $)
    neeq1i $p |- ( A =/= C <-> B =/= C ) $=
      ( wceq wne wb neeq1 ax-mp ) ABEACFBCFGDABCHI $.

    $( Inference for inequality.  (Contributed by NM, 29-Apr-2005.) $)
    neeq2i $p |- ( C =/= A <-> C =/= B ) $=
      ( wceq wne wb neeq2 ax-mp ) ABECAFCBFGDABCHI $.

    neeq12i.2 $e |- C = D $.
    $( Inference for inequality.  (Contributed by NM, 24-Jul-2012.) $)
    neeq12i $p |- ( A =/= C <-> B =/= D ) $=
      ( wne neeq2i neeq1i bitri ) ACGADGBDGCDAFHABDEIJ $.
  $}

  ${
    neeq1d.1 $e |- ( ph -> A = B ) $.
    $( Deduction for inequality.  (Contributed by NM, 25-Oct-1999.) $)
    neeq1d $p |- ( ph -> ( A =/= C <-> B =/= C ) ) $=
      ( wceq wne wb neeq1 syl ) ABCFBDGCDGHEBCDIJ $.

    $( Deduction for inequality.  (Contributed by NM, 25-Oct-1999.) $)
    neeq2d $p |- ( ph -> ( C =/= A <-> C =/= B ) ) $=
      ( wceq wne wb neeq2 syl ) ABCFDBGDCGHEBCDIJ $.

    neeq12d.2 $e |- ( ph -> C = D ) $.
    $( Deduction for inequality.  (Contributed by NM, 24-Jul-2012.) $)
    neeq12d $p |- ( ph -> ( A =/= C <-> B =/= D ) ) $=
      ( wne neeq1d neeq2d bitrd ) ABDHCDHCEHABCDFIADECGJK $.
  $}

  ${
    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 $.

  ${
    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 $.
  $}

  ${
    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 $.
  $}

  ${
    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 $.
  $}

  ${
    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 $.
  $}

  ${
    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 $.
  $}

  ${
    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 $.
  $}

  ${
    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 ) $.
    $( B chained equality inference for inequality.  (Contributed by NM,
       6-Jun-2012.) $)
    syl5eqner $p |- ( ph -> A =/= C ) $=
      ( wne neeq1i sylib ) ACDGBDGFCBDEHI $.
  $}

  ${
    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.) $)
    3netr3d $p |- ( ph -> C =/= D ) $=
      ( wne neeq12d mpbid ) ABCIDEIFABDCEGHJK $.
  $}

  ${
    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.) $)
    3netr4d $p |- ( ph -> C =/= D ) $=
      ( wne neeq12d mpbird ) ADEIBCIFADBECGHJK $.
  $}

  ${
    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 $.
  $}

  ${
    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 $.
  $}

  ${
    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 $.
  $}

  ${
    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 $.
  $}

  ${
    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 $.
  $}

  ${
    necon3ad.1 $e |- ( ph -> ( ps -> A = B ) ) $.
    $( Contrapositive law deduction for inequality.  (Contributed by NM,
       2-Apr-2007.)  (Proof rewritten by Jim Kingdon, 15-May-2018.) $)
    necon3ad $p |- ( ph -> ( A =/= B -> -. ps ) ) $=
      ( wne wceq wn df-ne con3d syl5bi ) CDFCDGZHABHCDIABLEJK $.
  $}

  ${
    necon3bd.1 $e |- ( ph -> ( A = B -> ps ) ) $.
    $( Contrapositive law deduction for inequality.  (Contributed by NM,
       2-Apr-2007.)  (Proof rewritten by Jim Kingdon, 15-May-2018.) $)
    necon3bd $p |- ( ph -> ( -. ps -> A =/= B ) ) $=
      ( wn wceq wne con3d df-ne syl6ibr ) ABFCDGZFCDHALBEICDJK $.
  $}

  ${
    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 $.
  $}

  $( 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.) $)
    nesymi $p |- -. B = A $=
      ( wne wceq wn nesym mpbi ) ABDBAEFCABGH $.
  $}

  ${
    nesymir.1 $e |- -. A = B $.
    $( Inference associated with ~ nesym .  (Contributed by BJ, 7-Jul-2018.) $)
    nesymir $p |- B =/= A $=
      ( wne wceq wn nesym mpbir ) BADABEFCBAGH $.
  $}

  ${
    necon3i.1 $e |- ( A = B -> C = D ) $.
    $( Contrapositive inference for inequality.  (Contributed by NM,
       9-Aug-2006.) $)
    necon3i $p |- ( C =/= D -> A =/= B ) $=
      ( wceq wi wne id necon3d ax-mp ) ABFCDFGZCDHABHGELABCDLIJK $.
  $}

  ${
    necon3ai.1 $e |- ( ph -> A = B ) $.
    $( Contrapositive inference for inequality.  (Contributed by NM,
       23-May-2007.)  (Proof rewritten by Jim Kingdon, 15-May-2018.) $)
    necon3ai $p |- ( A =/= B -> -. ph ) $=
      ( wne wceq wn df-ne con3i sylbi ) BCEBCFZGAGBCHAKDIJ $.
  $}

  ${
    necon3bi.1 $e |- ( A = B -> ph ) $.
    $( Contrapositive inference for inequality.  (Contributed by NM,
       1-Jun-2007.)  (Proof rewritten by Jim Kingdon, 15-May-2018.) $)
    necon3bi $p |- ( -. ph -> A =/= B ) $=
      ( wn wceq wne con3i df-ne sylibr ) AEBCFZEBCGKADHBCIJ $.
  $}

  ${
    necon1aidc.1 $e |- ( DECID ph -> ( -. ph -> A = B ) ) $.
    $( Contrapositive inference for inequality.  (Contributed by Jim Kingdon,
       15-May-2018.) $)
    necon1aidc $p |- ( DECID ph -> ( A =/= B -> ph ) ) $=
      ( wne wceq wn wdc df-ne wi con1dc mpd syl5bi ) BCEBCFZGZAHZABCIPAGNJOAJDA
      NKLM $.
  $}

  ${
    necon1bidc.1 $e |- ( DECID A = B -> ( A =/= B -> ph ) ) $.
    $( Contrapositive inference for inequality.  (Contributed by Jim Kingdon,
       15-May-2018.) $)
    necon1bidc $p |- ( DECID A = B -> ( -. ph -> A = B ) ) $=
      ( wceq wdc wn wi wne df-ne syl5bir con1dc mpd ) BCEZFZNGZAHAGNHPBCIOABCJD
      KNALM $.
  $}

  ${
    necon1idc.1 $e |- ( A =/= B -> C = D ) $.
    $( Contrapositive inference for inequality.  (Contributed by Jim Kingdon,
       16-May-2018.) $)
    necon1idc $p |- ( DECID A = B -> ( C =/= D -> A = B ) ) $=
      ( wceq wn wi wdc wne df-ne sylbir a1i necon1aidc ) ABFZCDOGZCDFZHOIPABJQA
      BKELMN $.
  $}

  ${
    necon2ai.1 $e |- ( A = B -> -. ph ) $.
    $( Contrapositive inference for inequality.  (Contributed by NM,
       16-Jan-2007.)  (Proof rewritten by Jim Kingdon, 16-May-2018.) $)
    necon2ai $p |- ( ph -> A =/= B ) $=
      ( wceq wn wne con2i df-ne sylibr ) ABCEZFBCGKADHBCIJ $.
  $}

  ${
    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 $.
  $}

  ${
    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 $.
  $}

  ${
    necon2ad.1 $e |- ( ph -> ( A = B -> -. ps ) ) $.
    $( Contrapositive inference for inequality.  (Contributed by NM,
       19-Apr-2007.)  (Proof rewritten by Jim Kingdon, 16-May-2018.) $)
    necon2ad $p |- ( ph -> ( ps -> A =/= B ) ) $=
      ( wceq wn wne con2d df-ne syl6ibr ) ABCDFZGCDHALBEICDJK $.
  $}

  ${
    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 $.
  $}

  ${
    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 $.
  $}

  ${
    necon1abiidc.1 $e |- ( DECID ph -> ( -. ph <-> A = B ) ) $.
    $( Contrapositive inference for inequality.  (Contributed by Jim Kingdon,
       16-May-2018.) $)
    necon1abiidc $p |- ( DECID ph -> ( A =/= B <-> ph ) ) $=
      ( wne wceq wn wdc df-ne con1biidc syl5bb ) BCEBCFZGAHABCIALDJK $.
  $}

  ${
    necon1bbiidc.1 $e |- ( DECID A = B -> ( A =/= B <-> ph ) ) $.
    $( Contrapositive inference for inequality.  (Contributed by Jim Kingdon,
       16-May-2018.) $)
    necon1bbiidc $p |- ( DECID A = B -> ( -. ph <-> A = B ) ) $=
      ( wceq wn wne wdc df-ne syl5bbr con1biidc ) BCEZALFBCGLHABCIDJK $.
  $}

  ${
    necon1abiddc.1 $e |- ( ph -> ( DECID ps -> ( -. ps <-> A = B ) ) ) $.
    $( Contrapositive deduction for inequality.  (Contributed by Jim Kingdon,
       16-May-2018.) $)
    necon1abiddc $p |- ( ph -> ( DECID ps -> ( A =/= B <-> ps ) ) ) $=
      ( wdc wceq wn wb wne con1biddc df-ne bibi1i syl6ibr ) ABFCDGZHZBICDJZBIAB
      OEKQPBCDLMN $.
  $}

  ${
    necon1bbiddc.1 $e |- ( ph -> ( DECID A = B -> ( A =/= B <-> ps ) ) ) $.
    $( Contrapositive inference for inequality.  (Contributed by Jim Kingdon,
       16-May-2018.) $)
    necon1bbiddc $p |- ( ph -> ( DECID A = B -> ( -. ps <-> A = B ) ) ) $=
      ( wceq wdc wne wb wn df-ne bibi1i syl6ib con1biddc ) ACDFZBAOGCDHZBIOJZBI
      EPQBCDKLMN $.
  $}

  ${
    necon2abiidc.1 $e |- ( DECID ph -> ( A = B <-> -. ph ) ) $.
    $( Contrapositive inference for inequality.  (Contributed by Jim Kingdon,
       16-May-2018.) $)
    necon2abiidc $p |- ( DECID ph -> ( ph <-> A =/= B ) ) $=
      ( wdc wne wceq wn bicomd necon1abiidc ) AEZBCFAABCKBCGAHDIJI $.
  $}

  ${
    necon2bbii.1 $e |- ( DECID A = B -> ( ph <-> A =/= B ) ) $.
    $( Contrapositive inference for inequality.  (Contributed by Jim Kingdon,
       16-May-2018.) $)
    necon2bbii $p |- ( DECID A = B -> ( A = B <-> -. ph ) ) $=
      ( wceq wdc wn wne bicomd necon1bbiidc ) BCEZFZAGKABCLABCHDIJI $.
  $}

  ${
    necon2abiddc.1 $e |- ( ph -> ( DECID ps -> ( A = B <-> -. ps ) ) ) $.
    $( Contrapositive deduction for inequality.  (Contributed by Jim Kingdon,
       16-May-2018.) $)
    necon2abiddc $p |- ( ph -> ( DECID ps -> ( ps <-> A =/= B ) ) ) $=
      ( wdc wne wb wceq wn bicom syl6ib necon1abiddc ) ABFZCDGZBHBOHABCDANCDIZB
      JZHQPHEPQKLMOBKL $.
  $}

  ${
    necon2bbiddc.1 $e |- ( ph -> ( DECID A = B -> ( ps <-> A =/= B ) ) ) $.
    $( Contrapositive deduction for inequality.  (Contributed by Jim Kingdon,
       16-May-2018.) $)
    necon2bbiddc $p |- ( ph -> ( DECID A = B -> ( A = B <-> -. ps ) ) ) $=
      ( wceq wdc wn wb wne bicom syl6ib necon1bbiddc ) ACDFZGZBHZNINPIABCDAOBCD
      JZIQBIEBQKLMPNKL $.
  $}

  ${
    necon4aidc.1 $e |- ( DECID A = B -> ( A =/= B -> -. ph ) ) $.
    $( Contrapositive inference for inequality.  (Contributed by Jim Kingdon,
       16-May-2018.) $)
    necon4aidc $p |- ( DECID A = B -> ( ph -> A = B ) ) $=
      ( wceq wdc wn wi wne df-ne syl5bir condc mpd ) BCEZFZNGZAGZHANHPBCIOQBCJD
      KNALM $.
  $}

  ${
    necon4idc.1 $e |- ( DECID A = B -> ( A =/= B -> C =/= D ) ) $.
    $( Contrapositive inference for inequality.  (Contributed by Jim Kingdon,
       16-May-2018.) $)
    necon4idc $p |- ( DECID A = B -> ( C = D -> A = B ) ) $=
      ( wceq wdc wne wn df-ne syl6ib necon4aidc ) CDFZABABFGABHCDHMIECDJKL $.
  $}

  ${
    necon4addc.1 $e |- ( ph -> ( DECID A = B -> ( A =/= B -> -. ps ) ) ) $.
    $( Contrapositive inference for inequality.  (Contributed by Jim Kingdon,
       17-May-2018.) $)
    necon4addc $p |- ( ph -> ( DECID A = B -> ( ps -> A = B ) ) ) $=
      ( wceq wdc wne wn wi df-ne imbi1i condc syl5bi sylcom ) ACDFZGZCDHZBIZJZB
      PJZETPIZSJQUARUBSCDKLPBMNO $.
  $}

  ${
    necon4bddc.1 $e |- ( ph -> ( DECID ps -> ( -. ps -> A =/= B ) ) ) $.
    $( Contrapositive inference for inequality.  (Contributed by Jim Kingdon,
       17-May-2018.) $)
    necon4bddc $p |- ( ph -> ( DECID ps -> ( A = B -> ps ) ) ) $=
      ( wdc wn wceq wi wne df-ne syl8ib condc sylcom ) ABFZBGZCDHZGZIQBIAOPCDJR
      ECDKLBQMN $.
  $}

  ${
    necon4ddc.1 $e |- ( ph -> ( DECID A = B -> ( A =/= B -> C =/= D ) ) ) $.
    $( Contrapositive inference for inequality.  (Contributed by Jim Kingdon,
       17-May-2018.) $)
    necon4ddc $p |- ( ph -> ( DECID A = B -> ( C = D -> A = B ) ) ) $=
      ( wceq wdc wn wi wne df-ne imbi12i syl6ib condc sylcom ) ABCGZHZQIZDEGZIZ
      JZTQJARBCKZDEKZJUBFUCSUDUABCLDELMNQTOP $.
  $}

  ${
    necon4abiddc.1 $e |- ( ph -> ( DECID A = B -> ( DECID ps ->
        ( A =/= B <-> -. ps ) ) ) ) $.
    $( Contrapositive law deduction for inequality.  (Contributed by Jim
       Kingdon, 18-May-2018.) $)
    necon4abiddc $p |- ( ph -> ( DECID A = B -> ( DECID ps ->
        ( A = B <-> ps ) ) ) ) $=
      ( wceq wdc wne wn wb df-ne bibi1i syl8ib con4biddc ) ACDFZBAOGBGCDHZBIZJO
      IZQJEPRQCDKLMN $.
  $}

  ${
    necon4bbiddc.1 $e |- ( ph -> ( DECID ps -> ( DECID A = B ->
        ( -. ps <-> A =/= B ) ) ) ) $.
    $( Contrapositive law deduction for inequality.  (Contributed by Jim
       Kingdon, 19-May-2018.) $)
    necon4bbiddc $p |- ( ph -> ( DECID ps -> ( DECID A = B ->
        ( ps <-> A = B ) ) ) ) $=
      ( wdc wceq wb wne wn bicom syl8ib com23 necon4abiddc ) ABFZCDGZFZPBHZBPHA
      QORABCDAOQCDIZBJZHZAOQTSHUAETSKLMNMPBKL $.
  $}

  ${
    necon4biddc.1 $e |- ( ph -> ( DECID A = B -> ( DECID C = D ->
        ( A =/= B <-> C =/= D ) ) ) ) $.
    $( Contrapositive law deduction for inequality.  (Contributed by Jim
       Kingdon, 19-May-2018.) $)
    necon4biddc $p |- ( ph -> ( DECID A = B -> ( DECID C = D ->
        ( A = B <-> C = D ) ) ) ) $=
      ( wceq wdc wne wb wn df-ne bibi2i syl8ib necon4abiddc ) ADEGZBCABCGHPHBCI
      ZDEIZJQPKZJFRSQDELMNO $.
  $}

  ${
    necon1addc.1 $e |- ( ph -> ( DECID ps -> ( -. ps -> A = B ) ) ) $.
    $( Contrapositive deduction for inequality.  (Contributed by Jim Kingdon,
       19-May-2018.) $)
    necon1addc $p |- ( ph -> ( DECID ps -> ( A =/= B -> ps ) ) ) $=
      ( wne wceq wn wdc df-ne wi con1dc sylcom syl7bi ) CDFCDGZHZABIZBCDJAQBHOK
      PBKEBOLMN $.
  $}

  ${
    necon1bddc.1 $e |- ( ph -> ( DECID A = B -> ( A =/= B -> ps ) ) ) $.
    $( Contrapositive deduction for inequality.  (Contributed by Jim Kingdon,
       19-May-2018.) $)
    necon1bddc $p |- ( ph -> ( DECID A = B -> ( -. ps -> A = B ) ) ) $=
      ( wceq wdc wn wi wne df-ne imbi1i syl6ib con1dc sylcom ) ACDFZGZPHZBIZBHP
      IAQCDJZBISETRBCDKLMPBNO $.
  $}

  ${
    necon1ddc.1 $e |- ( ph -> ( DECID A = B -> ( A =/= B -> C = D ) ) ) $.
    $( Contrapositive law deduction for inequality.  (Contributed by Jim
       Kingdon, 19-May-2018.) $)
    necon1ddc $p |- ( ph -> ( DECID A = B -> ( C =/= D -> A = B ) ) ) $=
      ( wne wceq wn wdc df-ne necon1bddc syl7bi ) DEGDEHZIABCHZJODEKANBCFLM $.
  $}

  ${
    neneqad.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.) $)
    neneqad $p |- ( ph -> A =/= B ) $=
      ( wceq con2i necon2ai ) ABCABCEDFG $.
  $}

  $( Contraposition law for inequality.  (Contributed by Jim Kingdon,
     19-May-2018.) $)
  nebidc $p |- ( DECID A = B -> ( DECID C = D ->
      ( ( A = B <-> C = D ) <-> ( A =/= B <-> C =/= D ) ) ) ) $=
    ( wceq wdc wb wne wa id necon3bid wi a1d necon4biddc com3l imp impbid2 ex )
    ABEZFZCDEZFZSUAGZABHCDHGZGTUBIUCUDUCABCDUCJKTUBUDUCLUDTUBUCUDABCDUDUBUDLTUD
    UDUBUDJMMNOPQR $.

  $( 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.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 $.
  $}

  $( 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 $.
  $}

  $( 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.)
     (Proof rewritten by Jim Kingdon, 19-May-2018.) $)
  ne3anior $p |- ( ( A =/= B /\ C =/= D /\ E =/= F )
        <-> -. ( A = B \/ C = D \/ E = F ) ) $=
    ( wne w3a wceq wn w3o df-ne 3anbi123i 3ioran bitr4i ) ABGZCDGZEFGZHABIZJZCD
    IZJZEFIZJZHSUAUCKJPTQUBRUDABLCDLEFLMSUAUCNO $.

  ${
    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 wne wn df-ne mpbi mtbir ) ABCFZBCGLHDBCIJEK $.
  $}

  $( 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 $.

  ${
    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 $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  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 $.
  $}

  $( Equality theorem for negated membership.  (Contributed by NM,
     20-Nov-1994.) $)
  neleq1 $p |- ( A = B -> ( A e/ C <-> B e/ C ) ) $=
    ( wceq wcel wn wnel eleq1 notbid df-nel 3bitr4g ) ABDZACEZFBCEZFACGBCGLMNAB
    CHIACJBCJK $.

  $( Equality theorem for negated membership.  (Contributed by NM,
     20-Nov-1994.) $)
  neleq2 $p |- ( A = B -> ( C e/ A <-> C e/ B ) ) $=
    ( wceq wcel wn wnel eleq2 notbid df-nel 3bitr4g ) ABDZCAEZFCBEZFCAGCBGLMNAB
    CHICAJCBJK $.

  ${
    neleq12d.1 $e |- ( ph -> A = B ) $.
    neleq12d.2 $e |- ( ph -> C = D ) $.
    $( Equality theorem for negated membership.  (Contributed by FL,
       10-Aug-2016.) $)
    neleq12d $p |- ( ph -> ( A e/ C <-> B e/ D ) ) $=
      ( wnel wceq wb neleq1 syl neleq2 bitrd ) ABDHZCDHZCEHZABCIOPJFBCDKLADEIPQ
      JGDECMLN $.
  $}

  ${
    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 $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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 ) } $.

  $( Relationship between restricted universal and existential quantifiers.
     (Contributed by NM, 21-Jan-1997.) $)
  ralnex $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.  In
     classical logic this would be a biconditional.  (Contributed by Jim
     Kingdon, 17-Aug-2018.) $)
  rexnalim $p |- ( E. x e. A -. ph -> -. A. x e. A ph ) $=
    ( wn wrex cv wcel wa wex wral df-rex wi wal exanaliim df-ral sylnibr sylbi
    ) ADZBCEBFCGZRHBIZABCJZDRBCKTSALBMUASABNABCOPQ $.

  $( Relationship between restricted universal and existential quantifiers.
     (Contributed by Jim Kingdon, 17-Aug-2018.) $)
  ralexim $p |- ( A. x e. A ph -> -. E. x e. A -. ph ) $=
    ( wn wrex wral rexnalim con2i ) ADBCEABCFABCGH $.

  $( Relationship between restricted universal and existential quantifiers.
     (Contributed by Jim Kingdon, 17-Aug-2018.) $)
  rexalim $p |- ( E. x e. A ph -> -. A. x e. A -. ph ) $=
    ( wn wral wrex ralnex biimpi con2i ) ADBCEZABCFZJKDABCGHI $.

  ${
    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 $.

    $( 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 $.
    ralbidva.1 $e |- ( ( ph /\ x e. A ) -> ( ps <-> ch ) ) $.
    $( Formula-building rule for restricted universal quantifier (deduction
       rule).  (Contributed by NM, 4-Mar-1997.) $)
    ralbidva $p |- ( ph -> ( A. x e. A ps <-> A. x e. A ch ) ) $=
      ( nfv ralbida ) ABCDEADGFH $.

    $( Formula-building rule for restricted existential quantifier (deduction
       rule).  (Contributed by NM, 9-Mar-1997.) $)
    rexbidva $p |- ( ph -> ( E. x e. A ps <-> E. x e. A ch ) ) $=
      ( nfv rexbida ) ABCDEADGFH $.
  $}

  ${
    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 $.

    $( 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 $.
    ralbidv.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Formula-building rule for restricted universal quantifier (deduction
       rule).  (Contributed by NM, 20-Nov-1994.) $)
    ralbidv $p |- ( ph -> ( A. x e. A ps <-> A. x e. A ch ) ) $=
      ( nfv ralbid ) ABCDEADGFH $.

    $( Formula-building rule for restricted existential quantifier (deduction
       rule).  (Contributed by NM, 20-Nov-1994.) $)
    rexbidv $p |- ( ph -> ( E. x e. A ps <-> E. x e. A ch ) ) $=
      ( nfv rexbid ) ABCDEADGFH $.
  $}

  ${
    $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 $.
    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 $.
  $}

  ${
    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.) $)
    ralbii $p |- ( A. x e. A ph <-> A. x e. A ps ) $=
      ( wral wb wtru a1i ralbidv trud ) ACDFBCDFGHABCDABGHEIJK $.

    $( Inference adding restricted existential quantifier to both sides of an
       equivalence.  (Contributed by NM, 23-Nov-1994.)  (Revised by Mario
       Carneiro, 17-Oct-2016.) $)
    rexbii $p |- ( E. x e. A ph <-> E. x e. A ps ) $=
      ( wrex wb wtru a1i rexbidv trud ) ACDFBCDFGHABCDABGHEIJK $.

    $( 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 $.

    $( 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 $.
  $}

  ${
    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 $.
  $}

  ${
    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 $.
  $}

  ${
    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 $.

    $( 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 $.
  $}

  ${
    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 $.

    $( 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 $.
  $}

  ${
    $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 $.
    r2alf.1 $e |- F/_ y A $.
    $( Double restricted universal quantification.  (Contributed by Mario
       Carneiro, 14-Oct-2016.) $)
    r2alf $p |- ( A. x e. A A. y e. B ph <->
               A. x A. y ( ( x e. A /\ y e. B ) -> ph ) ) $=
      ( wral cv wi wal wa df-ral nfcri 19.21 impexp albii imbi2i 3bitr4i bitr4i
      wcel ) ACEGZBDGBHDTZUAIZBJUBCHETZKAIZCJZBJUABDLUFUCBUBUDAIZIZCJUBUGCJZIUF
      UCUBUGCCBDFMNUEUHCUBUDAOPUAUIUBACELQRPS $.

    $( Double restricted existential quantification.  (Contributed by Mario
       Carneiro, 14-Oct-2016.) $)
    r2exf $p |- ( E. x e. A E. y e. B ph <->
               E. x E. y ( ( x e. A /\ y e. B ) /\ ph ) ) $=
      ( wrex cv wcel wex df-rex nfcri 19.42 anass exbii anbi2i 3bitr4i bitr4i
      wa ) ACEGZBDGBHDIZTSZBJUACHEIZSASZCJZBJTBDKUEUBBUAUCASZSZCJUAUFCJZSUEUBUA
      UFCCBDFLMUDUGCUAUCANOTUHUAACEKPQOR $.
  $}

  ${
    $d x y $.  $d y A $.
    $( Double restricted universal quantification.  (Contributed by NM,
       19-Nov-1995.) $)
    r2al $p |- ( A. x e. A A. y e. B ph <->
               A. x A. y ( ( x e. A /\ y e. B ) -> ph ) ) $=
      ( nfcv r2alf ) ABCDECDFG $.

    $( Double restricted existential quantification.  (Contributed by NM,
       11-Nov-1995.) $)
    r2ex $p |- ( E. x e. A E. y e. B ph <->
               E. x E. y ( ( x e. A /\ y e. B ) /\ ph ) ) $=
      ( nfcv r2exf ) ABCDECDFG $.
  $}

  ${
    $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.) $)
    2ralbidva $p |- ( ph ->
                     ( A. x e. A A. y e. B ps <-> A. x e. A A. y e. B ch ) ) $=
      ( nfv 2ralbida ) ABCDEFGADIAEIHJ $.

    $( 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 $.
    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 $.

    $( 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 $.
  $}

  $( 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 $.

  ${
    $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 $.
  $}

  ${
    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 $.
  $}

  $( ` x ` is not free in ` A. x e. A ph ` .  (Contributed by NM,
     18-Oct-1996.) $)
  hbra1 $p |- ( A. x e. A ph -> A. x A. x e. A ph ) $=
    ( wral cv wcel wi wal df-ral hba1 hbxfrbi ) ABCDBECFAGZBHBABCILBJK $.

  $( ` 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 $.

  ${
    $d x y $.
    nfraldxy.2 $e |- F/ y ph $.
    nfraldxy.3 $e |- ( ph -> F/_ x A ) $.
    nfraldxy.4 $e |- ( ph -> F/ x ps ) $.
    $( Not-free for restricted universal quantification where ` x ` and ` y `
       are distinct.  See ~ nfraldya for a version with ` y ` and ` A `
       distinct instead.  (Contributed by Jim Kingdon, 29-May-2018.) $)
    nfraldxy $p |- ( ph -> F/ x A. y e. A ps ) $=
      ( wral cv wcel wi wal df-ral wnfc nfcv a1i nfeld nfimd nfald nfxfrd ) BDE
      IDJZEKZBLZDMACBDENAUDCDFAUCBCACUBECUBOACUBPQGRHSTUA $.

    $( Not-free for restricted existential quantification where ` x ` and ` y `
       are distinct.  See ~ nfrexdya for a version with ` y ` and ` A `
       distinct instead.  (Contributed by Jim Kingdon, 30-May-2018.) $)
    nfrexdxy $p |- ( ph -> F/ x E. y e. A ps ) $=
      ( wrex cv wcel wa wex df-rex wnfc nfcv a1i nfeld nfand nfexd nfxfrd ) BDE
      IDJZEKZBLZDMACBDENAUDCDFAUCBCACUBECUBOACUBPQGRHSTUA $.
  $}

  ${
    $d y A $.  $d x z $.  $d y z $.  $d A z $.  $d ph z $.  $d ps z $.
    nfraldya.2 $e |- F/ y ph $.
    nfraldya.3 $e |- ( ph -> F/_ x A ) $.
    nfraldya.4 $e |- ( ph -> F/ x ps ) $.
    $( Not-free for restricted universal quantification where ` y ` and ` A `
       are distinct.  See ~ nfraldxy for a version with ` x ` and ` y `
       distinct instead.  (Contributed by Jim Kingdon, 30-May-2018.) $)
    nfraldya $p |- ( ph -> F/ x A. y e. A ps ) $=
      ( vz wral cv wcel wi wal df-ral wsb sbim clelsb3 nfv nfxfrd bitri 3bitr4i
      imbi1i albii sb8 nfsbd nfraldxy ) BDEJDKELZBMZDNZACBDEOUJBDIPZIEJZACUIDIP
      ZINIKELZUKMZINUJULUMUOIUMUHDIPZUKMUOUHBDIQUPUNUKIDERUCUAUDUIDIUIISUEUKIEO
      UBAUKCIEAISGABDICFHUFUGTT $.

    $( Not-free for restricted existential quantification where ` y ` and ` A `
       are distinct.  See ~ nfrexdxy for a version with ` x ` and ` y `
       distinct instead.  (Contributed by Jim Kingdon, 30-May-2018.) $)
    nfrexdya $p |- ( ph -> F/ x E. y e. A ps ) $=
      ( vz wrex cv wcel wa wex df-rex wsb sban clelsb3 nfv nfxfrd bitri 3bitr4i
      anbi1i exbii sb8e nfsbd nfrexdxy ) BDEJDKELZBMZDNZACBDEOUJBDIPZIEJZACUIDI
      PZINIKELZUKMZINUJULUMUOIUMUHDIPZUKMUOUHBDIQUPUNUKIDERUCUAUDUIDIUIISUEUKIE
      OUBAUKCIEAISGABDICFHUFUGTT $.
  $}

  ${
    $d x y $.
    nfralxy.1 $e |- F/_ x A $.
    nfralxy.2 $e |- F/ x ph $.
    $( Not-free for restricted universal quantification where ` x ` and ` y `
       are distinct.  See ~ nfralya for a version with ` y ` and ` A ` distinct
       instead.  (Contributed by Jim Kingdon, 30-May-2018.) $)
    nfralxy $p |- F/ x A. y e. A ph $=
      ( wral wnf wtru nftru wnfc a1i nfraldxy trud ) ACDGBHIABCDCJBDKIELABHIFLM
      N $.

    $( Not-free for restricted existential quantification where ` x ` and ` y `
       are distinct.  See ~ nfrexya for a version with ` y ` and ` A ` distinct
       instead.  (Contributed by Jim Kingdon, 30-May-2018.) $)
    nfrexxy $p |- F/ x E. y e. A ph $=
      ( wrex wnf wtru nftru wnfc a1i nfrexdxy trud ) ACDGBHIABCDCJBDKIELABHIFLM
      N $.
  $}

  ${
    $d y A $.
    nfralya.1 $e |- F/_ x A $.
    nfralya.2 $e |- F/ x ph $.
    $( Not-free for restricted universal quantification where ` y ` and ` A `
       are distinct.  See ~ nfralxy for a version with ` x ` and ` y ` distinct
       instead.  (Contributed by Jim Kingdon, 3-Jun-2018.) $)
    nfralya $p |- F/ x A. y e. A ph $=
      ( wral wnf wtru nftru wnfc a1i nfraldya trud ) ACDGBHIABCDCJBDKIELABHIFLM
      N $.

    $( Not-free for restricted existential quantification where ` y ` and ` A `
       are distinct.  See ~ nfrexxy for a version with ` x ` and ` y ` distinct
       instead.  (Contributed by Jim Kingdon, 3-Jun-2018.) $)
    nfrexya $p |- F/ x E. y e. A ph $=
      ( wrex wnf wtru nftru wnfc a1i nfrexdya trud ) ACDGBHIABCDCJBDKIELABHIFLM
      N $.
  $}

  ${
    $d x y $.  $d A y $.
    $( Not-free given two restricted quantifiers.  (Contributed by Jim Kingdon,
       20-Aug-2018.) $)
    nfra2xy $p |- F/ y A. x e. A A. y e. B ph $=
      ( wral nfcv nfra1 nfralxy ) ACEFCBDCDGACEHI $.
  $}

  $( ` 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 $.

  ${
    $d x y z $.  $d y z A $.  $d z B $.
    $( Triple restricted universal quantification.  (Contributed by NM,
       19-Nov-1995.) $)
    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 ) ) $=
      ( cv wcel wa wi wal wral w3a df-ral r2al ralbii bitri albii 19.21v 3anass
      imbi1i impexp 3bitr4i ) CHFIZDHGIZJZAKZDLZCLZBEMBHEIZUJKZBLADGMCFMZBEMUKU
      EUFNZAKZDLZCLZBLUJBEOUMUJBEACDFGPQUQULBUQUKUIKZCLULUPURCUPUKUHKZDLURUOUSD
      UOUKUGJZAKUSUNUTAUKUEUFUAUBUKUGAUCRSUKUHDTRSUKUICTRSUD $.
  $}

  $( 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 ax-1 alimi df-ral sylibr ) ABDBECFZAGZBDABCHANBAMIJAB
    CKL $.

  $( 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 simpr eximi sylbi ) ABCDBECFZAGZBHABHABCINABMA
    JKL $.

  $( 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 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 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 $.

  $( Restricted specialization.  (Contributed by FL, 4-Jun-2012.) $)
  rsp2e $p |- ( ( x e. A /\ y e. B /\ ph ) -> E. x e. A E. y e. B ph ) $=
    ( cv wcel w3a wrex wa wex simp1 rspe 3adant1 19.8a syl2anc df-rex sylibr )
    BFDGZCFEGZAHZSACEIZJZBKZUBBDIUASUBUDSTALTAUBSACEMNUCBOPUBBDQR $.

  ${
    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 $.
  $}

  ${
    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 $.
  $}

  ${
    $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 ` needn't be distinct (and illustrates the use of ~ dvelimor ).
       (Contributed by NM, 23-Nov-1994.)  (Proof rewritten by Jim Kingdon,
       1-Jun-2018.) $)
    rgen2a $p |- A. x e. A A. y e. A ph $=
      ( vz wral cv wcel wi wal wceq wnf wo nfv eleq1 dvelimor ex syl6bi alimi
      pm2.43d a1d nfr syl6 jaoi ax-mp df-ral sylibr rgen ) ACDGZBDBHZDIZCHZDIZA
      JZCKZUJUMUKLZCKZULCMZNULUPJZFHZDIZULCBFVBCOVAUKDPQURUTUSURUPULUQUOCUQUNAU
      QUNULUOUMUKDPULUNAERZSUATUBUSULULCKUPULCUCULUOCVCTUDUEUFACDUGUHUI $.
  $}

  ${
    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 $.
  $}

  $( Distribution of restricted quantification over implication.  (Contributed
     by NM, 9-Feb-1997.) $)
  ralim $p |- ( A. x e. A ( ph -> ps ) ->
               ( A. x e. A ph -> A. x e. A ps ) ) $=
    ( wi wral cv wcel wal df-ral ax-2 al2imi sylbi 3imtr4g ) ABEZCDFZCGDHZAEZCI
    ZQBEZCIZACDFBCDFPQOEZCISUAEOCDJUBRTCQABKLMACDJBCDJN $.

  ${
    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 $.
  $}

  ${
    ral2imi.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Inference quantifying antecedent, nested antecedent, and consequent,
       with a strong hypothesis.  (Contributed by NM, 19-Dec-2006.) $)
    ral2imi $p |- ( A. x e. A ph -> ( A. x e. A ps -> A. x e. A ch ) ) $=
      ( wral wi ralimi ralim syl ) ADEGBCHZDEGBDEGCDEGHALDEFIBCDEJK $.
  $}

  ${
    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.) $)
    ralimdaa $p |- ( ph -> ( A. x e. A ps -> A. x e. A ch ) ) $=
      ( cv wcel wi wal wral ex a2d alimd df-ral 3imtr4g ) ADHEIZBJZDKRCJZDKBDEL
      CDELASTDFARBCARBCJGMNOBDEPCDEPQ $.
  $}

  ${
    $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.) $)
    ralimdva $p |- ( ph -> ( A. x e. A ps -> A. x e. A ch ) ) $=
      ( nfv ralimdaa ) ABCDEADGFH $.
  $}

  ${
    $d x ph $.
    ralimdv.1 $e |- ( ph -> ( ps -> ch ) ) $.
    $( Deduction quantifying both antecedent and consequent, based on Theorem
       19.20 of [Margaris] p. 90.  (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 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 $.
  $}

  ${
    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.) $)
    ralrimi $p |- ( ph -> A. x e. A ps ) $=
      ( cv wcel wi wal wral alrimi df-ral sylibr ) ACGDHBIZCJBCDKAOCEFLBCDMN $.
  $}

  ${
    $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.) $)
    ralrimiv $p |- ( ph -> A. x e. A ps ) $=
      ( nfv ralrimi ) 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 $.
  $}

  $( Theorem 19.21 of [Margaris] p. 90 with restricted quantifiers (closed
     theorem version).  (Contributed by NM, 1-Mar-2008.) $)
  r19.21t $p |- ( F/ x ph ->
           ( A. x e. A ( ph -> ps ) <-> ( ph -> A. x e. A ps ) ) ) $=
    ( wnf cv wcel wi wal wral bi2.04 albii 19.21t syl5bb df-ral imbi2i 3bitr4g
    ) ACEZCFDGZABHZHZCIZASBHZCIZHZTCDJABCDJZHUBAUCHZCIRUEUAUGCSABKLAUCCMNTCDOUF
    UDABCDOPQ $.

  ${
    r19.21.1 $e |- F/ x ph $.
    $( Theorem 19.21 of [Margaris] p. 90 with restricted quantifiers.
       (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 $.
  $}

  ${
    $d x ph $.
    $( Theorem 19.21 of [Margaris] p. 90 with restricted quantifiers.
       (Contributed by NM, 15-Oct-2003.)  (Proof shortened by Andrew Salmon,
       30-May-2011.) $)
    r19.21v $p |- ( A. x e. A ( ph -> ps ) <-> ( ph -> A. x e. A ps ) ) $=
      ( nfv r19.21 ) ABCDACEF $.
  $}

  ${
    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 $.  $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.) $)
    ralrimdv $p |- ( ph -> ( ps -> A. x e. A ch ) ) $=
      ( nfv ralrimd ) ABCDEADGBDGFH $.
  $}

  ${
    $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.) $)
    ralrimdva $p |- ( ph -> ( ps -> A. x e. A ch ) ) $=
      ( cv wcel wi ex com23 ralrimdv ) ABCDEADGEHZBCAMBCIFJKL $.
  $}

  ${
    $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.  (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.  (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 $.
  $}

  ${
    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.) $)
    r19.21bi $p |- ( ( ph /\ x e. A ) -> ps ) $=
      ( cv wcel wi wral wal df-ral sylib 19.21bi imp ) ACFDGZBAOBHZCABCDIPCJEBC
      DKLMN $.
  $}

  ${
    rspec2.1 $e |- A. x e. A A. y e. B ph $.
    $( Specialization rule for restricted quantification.  (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.  (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 $.
  $}

  ${
    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 $.
  $}

  ${
    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.) $)
    nrexdv $p |- ( ph -> -. E. x e. A ps ) $=
      ( wn wral wrex ralrimiva ralnex sylib ) ABFZCDGBCDHFALCDEIBCDJK $.
  $}

  $( 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 cv wcel wa wex wrex wal df-ral simpl a1i pm3.31 jcad alimi df-rex
    sylbi exim syl 3imtr4g ) ABEZCDFZCGDHZAIZCJZUFBIZCJZACDKBCDKUEUGUIEZCLZUHUJ
    EUEUFUDEZCLULUDCDMUMUKCUMUGUFBUGUFEUMUFANOUFABPQRTUGUICUAUBACDSBCDSUC $.

  ${
    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 $.
  $}

  ${
    $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.) $)
    reximdvai $p |- ( ph -> ( E. x e. A ps -> E. x e. A ch ) ) $=
      ( nfv reximdai ) ABCDEADGFH $.
  $}

  ${
    $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 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 $.
  $}

  ${
    $d x y $.  $d y A $.  $d x B $.
    $( Theorem 19.12 of [Margaris] p. 89 with restricted quantifiers.
       (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 nfrexxy cv wcel ax-1 ralrimi com12 reximdv ralimia
      rsp syl ) ACEFZBDGZUACEFABDGZCEFUAUACETCBDCDHACEIJUACKELZMNUAUBCEUCTABDTU
      CAACEROPQS $.
  $}

  $( 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 $.
    $( Theorem 19.23 of [Margaris] p. 90 with restricted quantifiers.
       (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 $.
    $( Theorem 19.23 of [Margaris] p. 90 with restricted quantifiers.
       (Contributed by NM, 31-Aug-1999.) $)
    r19.23v $p |- ( A. x e. A ( ph -> ps ) <-> ( E. x e. A ph -> ps ) ) $=
      ( nfv r19.23 ) ABCDBCEF $.
  $}

  ${
    rexlimi.1 $e |- F/ x ps $.
    rexlimi.2 $e |- ( x e. A -> ( ph -> ps ) ) $.
    $( Inference from Theorem 19.21 of [Margaris] p. 90.  (Restricted
       quantifier version.)  (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 $.
  $}

  ${
    $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.) $)
    rexlimiv $p |- ( E. x e. A ph -> ps ) $=
      ( nfv rexlimi ) ABCDBCFEG $.
  $}

  ${
    $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 $.
  $}

  ${
    rexlimd.1 $e |- F/ x ph $.
    rexlimd.2 $e |- F/ x ch $.
    rexlimd.3 $e |- ( ph -> ( x e. A -> ( ps -> ch ) ) ) $.
    $( Deduction from Theorem 19.23 of [Margaris] p. 90 (restricted quantifier
       version).  (Contributed by NM, 27-May-1998.)  (Proof shortened by Andrew
       Salmon, 30-May-2011.) $)
    rexlimd $p |- ( ph -> ( E. x e. A ps -> ch ) ) $=
      ( wi wral wrex ralrimi r19.23 sylib ) ABCIZDEJBDEKCIAODEFHLBCDEGMN $.
  $}

  ${
    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 $.
  $}

  ${
    $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.) $)
    rexlimdv $p |- ( ph -> ( E. x e. A ps -> ch ) ) $=
      ( nfv rexlimd ) ABCDEADGCDGFH $.
  $}

  ${
    $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 $.
  $}

  $( Theorem 19.26 of [Margaris] p. 90 with restricted quantifiers.
     (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 $.

  $( Theorem 19.26 of [Margaris] p. 90 with 2 restricted 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 $.

  $( Theorem 19.26 of [Margaris] p. 90 with 3 restricted 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 $.

  $( Theorem 19.26 of [Margaris] p. 90 with mixed quantifiers.  (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.
     Theorem 19.15 of [Margaris] p. 90 with restricted quantification.
     (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 cv wcel rsp imp ralbida ) ABEZCDFZABCDMCDGNCHDIMMCDJKL $.

  $( Distribute a restricted existential quantifier over a biconditional.
     Theorem 19.18 of [Margaris] p. 90 with restricted quantification.
     (Contributed by Jim Kingdon, 21-Jan-2019.) $)
  rexbi $p |- ( A. x e. A ( ph <-> ps ) ->
               ( E. x e. A ph <-> E. x e. A ps ) ) $=
    ( wb wral nfra1 cv wcel rsp imp rexbida ) ABEZCDFZABCDMCDGNCHDIMMCDJKL $.

  $( Split a biconditional and distribute quantifier.  (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 version of one direction of Theorem 19.27 of [Margaris]
       p. 90.  (The other direction doesn't hold when ` A ` is empty.)
       (Contributed by NM, 3-Jun-2004.)  (Proof shortened by Andrew Salmon,
       30-May-2011.) $)
    r19.27av $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 version of one direction of Theorem 19.28 of [Margaris]
       p. 90.  (The other direction doesn't hold when ` A ` is empty.)
       (Contributed by NM, 2-Apr-2004.) $)
    r19.28av $p |- ( ( ph /\ A. x e. A ps ) -> A. x e. A ( ph /\ ps ) ) $=
      ( wral wa r19.27av ancom ralbii 3imtr4i ) BCDEZAFBAFZCDEAKFABFZCDEBACDGAK
      HMLCDABHIJ $.
  $}

  $( Theorem 19.29 of [Margaris] p. 90 with restricted quantifiers.
     (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 $.

  $( Variation of Theorem 19.29 of [Margaris] p. 90 with restricted
     quantifiers.  (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.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.) $)
    r19.29af2 $p |- ( ph -> ch ) $=
      ( wrex wi wral wa cv wcel exp31 ralrimi jca r19.29r pm3.35 rexlimi 3syl
      a1i ) ABDEJZBCKZDELZMBUEMZDEJCAUDUFIAUEDEFADNEOZBCHPQRBUEDESUGCDEGUGCKUHB
      CTUCUAUB $.
  $}

  ${
    $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.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 $.
  $}

  ${
    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 $.
  $}

  ${
    r19.32r.1 $e |- F/ x ph $.
    $( One direction of Theorem 19.32 of [Margaris] p. 90 with restricted
       quantifiers.  For decidable propositions this is an equivalence.
       (Contributed by Jim Kingdon, 19-Aug-2018.) $)
    r19.32r $p |- ( ( ph \/ A. x e. A ps ) -> A. x e. A ( ph \/ ps ) ) $=
      ( wral wo cv wcel wal orc a1d alrimi df-ral olc imim2i alimi sylbi jaoi
      wi sylibr ) ABCDFZGCHDIZABGZTZCJZUDCDFAUFUBAUECEAUDUCABKLMUBUCBTZCJUFBCDN
      UGUECBUDUCBAOPQRSUDCDNUA $.
  $}

  ${
    $d x ph $.
    $( One direction of Theorem 19.32 of [Margaris] p. 90 with restricted
       quantifiers.  For decidable propositions this is an equivalence, as seen
       at ~ r19.32vdc .  (Contributed by Jim Kingdon, 19-Aug-2018.) $)
    r19.32vr $p |- ( ( ph \/ A. x e. A ps ) -> A. x e. A ( ph \/ ps ) ) $=
      ( nfv r19.32r ) ABCDACEF $.

    $( Theorem 19.32 of [Margaris] p. 90 with restricted quantifiers, where
       ` ph ` is decidable.  (Contributed by Jim Kingdon, 4-Jun-2018.) $)
    r19.32vdc $p |- ( DECID ph ->
        ( A. x e. A ( ph \/ ps ) <-> ( ph \/ A. x e. A ps ) ) ) $=
      ( wdc wn wi wral wo wb r19.21v a1i dfordc ralbidv 3bitr4d ) AEZAFZBGZCDHZ
      QBCDHZGZABIZCDHATISUAJPQBCDKLPUBRCDABMNATMO $.
  $}

  $( Restricted quantifier version of ~ 19.35-1 .  (Contributed by Jim Kingdon,
     4-Jun-2018.) $)
  r19.35-1 $p |- ( E. x e. A ( ph -> ps ) ->
      ( A. x e. A ph -> E. x e. A ps ) ) $=
    ( wral wi wrex wa r19.29 pm3.35 reximi syl expcom ) ACDEZABFZCDGZBCDGZNPHAO
    HZCDGQAOCDIRBCDABJKLM $.

  ${
    $d x ps $.
    $( One direction of a restricted quantifier version of Theorem 19.36 of
       [Margaris] p. 90.  In classical logic, the converse would hold if ` A `
       has at least one element, but in intuitionistic logic, that is not a
       sufficient condition.  (Contributed by NM, 22-Oct-2003.) $)
    r19.36av $p |- ( E. x e. A ( ph -> ps ) -> ( A. x e. A ph -> ps ) ) $=
      ( wi wrex wral r19.35-1 cv wcel idd rexlimiv imim2i syl ) ABECDFACDGZBCDF
      ZEOBEABCDHPBOBBCDCIDJBKLMN $.
  $}

  ${
    r19.37.1 $e |- F/ x ph $.
    $( Restricted version of one direction of Theorem 19.37 of [Margaris]
       p. 90.  In classical logic the converse would hold if ` A ` has at least
       one element, but that is not sufficient in intuitionistic logic.
       (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 ) ) $=
      ( wral wi wrex cv wcel ax-1 ralrimi r19.35-1 syl5 ) AACDFABGCDHBCDHAACDEA
      CIDJKLABCDMN $.
  $}

  ${
    $d x ph $.
    $( Restricted version of one direction of Theorem 19.37 of [Margaris]
       p. 90.  (Contributed by NM, 2-Apr-2004.) $)
    r19.37av $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 $.

  ${
    r19.41.1 $e |- F/ x ps $.
    $( Restricted quantifier version of Theorem 19.41 of [Margaris] p. 90.
       (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 $.
    $( Restricted quantifier version of Theorem 19.41 of [Margaris] p. 90.
       (Contributed by NM, 17-Dec-2003.) $)
    r19.41v $p |- ( E. x e. A ( ph /\ ps ) <-> ( E. x e. A ph /\ ps ) ) $=
      ( nfv r19.41 ) ABCDBCEF $.
  $}

  ${
    $d x ph $.
    $( Restricted version of Theorem 19.42 of [Margaris] p. 90.  (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 version of Theorem 19.43 of [Margaris] p. 90.  (Contributed by
     NM, 27-May-1998.)  (Proof rewritten by Jim Kingdon, 5-Jun-2018.) $)
  r19.43 $p |- ( E. x e. A ( ph \/ ps ) <->
               ( E. x e. A ph \/ E. x e. A ps ) ) $=
    ( wo wrex cv wcel wa wex df-rex andi exbii bitri 19.43 orbi12i bitr4i ) ABE
    ZCDFZCGDHZAIZCJZTBIZCJZEZACDFZBCDFZESUAUCEZCJZUESTRIZCJUIRCDKUJUHCTABLMNUAU
    CCONUFUBUGUDACDKBCDKPQ $.

  ${
    $d x ps $.
    $( One direction of a restricted quantifier version of Theorem 19.44 of
       [Margaris] p. 90.  The other direction doesn't hold when ` A ` is empty.
       (Contributed by NM, 2-Apr-2004.) $)
    r19.44av $p |- ( E. x e. A ( ph \/ ps ) -> ( E. x e. A ph \/ ps ) ) $=
      ( wo wrex r19.43 cv wcel idd rexlimiv orim2i sylbi ) ABECDFACDFZBCDFZENBE
      ABCDGOBNBBCDCHDIBJKLM $.
  $}

  ${
    $d x ph $.
    $( Restricted version of one direction of Theorem 19.45 of [Margaris]
       p. 90.  (The other direction doesn't hold when ` A ` is empty.)
       (Contributed by NM, 2-Apr-2004.) $)
    r19.45av $p |- ( E. x e. A ( ph \/ ps ) -> ( ph \/ E. x e. A ps ) ) $=
      ( wo wrex r19.43 cv wcel idd rexlimiv orim1i sylbi ) ABECDFACDFZBCDFZEAOE
      ABCDGNAOAACDCHDIAJKLM $.
  $}

  ${
    $d x y $.
    ralcomf.1 $e |- F/_ y A $.
    ralcomf.2 $e |- F/_ x B $.
    $( Commutation of restricted 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 ancomsimp 2albii alcom bitri r2alf 3bitr4i ) BHD
      IZCHEIZJAKZCLBLZUATJAKZBLCLZACEMBDMABDMCEMUCUDCLBLUEUBUDBCTUAANOUDBCPQABC
      DEFRACBEDGRS $.

    $( Commutation of restricted 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 quantifiers.  (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 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 1st and 3rd 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 existential restricted 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 $.
  $}

  $( A commutative law for restricted quantifiers that swaps the domain 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 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 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 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
      $.
  $}

  $( ` 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 $.

  $( ` 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 $.

  ${
    $d x y $.
    nfreudxy.1 $e |- F/ y ph $.
    nfreudxy.2 $e |- ( ph -> F/_ x A ) $.
    nfreudxy.3 $e |- ( ph -> F/ x ps ) $.
    $( Not-free deduction for restricted uniqueness.  This is a version where
       ` x ` and ` y ` are distinct.  (Contributed by Jim Kingdon,
       6-Jun-2018.) $)
    nfreudxy $p |- ( ph -> F/ x E! y e. A ps ) $=
      ( cv wcel wa weu wnf wreu wnfc nfcv a1i nfeld nfand nfeud df-reu sylibr
      nfbii ) ADIZEJZBKZDLZCMBDENZCMAUFCDFAUEBCACUDECUDOACUDPQGRHSTUHUGCBDEUAUC
      UB $.
  $}

  ${
    $d x y $.
    nfreuxy.1 $e |- F/_ x A $.
    nfreuxy.2 $e |- F/ x ph $.
    $( Not-free for restricted uniqueness.  This is a version where ` x ` and
       ` y ` are distinct.  (Contributed by Jim Kingdon, 6-Jun-2018.) $)
    nfreuxy $p |- F/ x E! y e. A ph $=
      ( wreu wnf wtru nftru wnfc a1i nfreudxy trud ) ACDGBHIABCDCJBDKIELABHIFLM
      N $.
  $}

  $( 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 $.

  ${
    $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 $.
  $}

  $( 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 y $.
    nfrabxy.1 $e |- F/ x ph $.
    nfrabxy.2 $e |- F/_ x A $.
    $( A variable not free in a wff remains so in a restricted class
       abstraction.  (Contributed by Jim Kingdon, 19-Jul-2018.) $)
    nfrabxy $p |- F/_ x { y e. A | ph } $=
      ( crab cv wcel wa cab df-rab nfcri nfan nfab nfcxfr ) BACDGCHDIZAJZCKACDL
      RBCQABBCDFMENOP $.
  $}

  ${
    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 $.
  $}

  ${
    $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 $.
  $}

  $( 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 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.)  (Proof rewritten by Jim Kingdon, 10-Jun-2018.) $)
    cbvrexf $p |- ( E. x e. A ph <-> E. y e. A ps ) $=
      ( vz cv wcel wa wex wrex wsb nfv nfcri nfan nfs1v weq eleq1 sbequ12 cbvex
      anbi12d nfsb sbequ sbie syl6bb bitri df-rex 3bitr4i ) CLZEMZANZCOZDLZEMZB
      NZDOZACEPBDEPUQKLZEMZACKQZNZKOVAUPVECKUPKRVCVDCCKEFSACKUATCKUBUOVCAVDUNVB
      EUCACKUDUFUEVEUTKDVCVDDDKEGSACKDHUGTUTKRKDUBZVCUSVDBVBUREUCVFVDACDQBAKDCU
      HABCDIJUIUJUFUEUKACEULBDEULUM $.
  $}

  ${
    $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 $.
    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 $.
  $}

  ${
    $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 $.
  $}

  ${
    $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 wceq rabeq syl rabbidv eqtrd ) ABDEIZBDFIZCDFIAEFJOPJGBDEFKLABCDFH
      MN $.
  $}

  ${
    $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 wceq rabeq syl eqtrd ) ABDEICDEIZCDFIZABCDEHJAEFKOPKGCDEF
      LMN $.
  $}

  ${
    rabeqi.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.  (Contributed by NM, 5-Aug-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, 5-Aug-1993.) $)
  vex $p |- x e. _V $=
    ( cv cvv wcel weq equid df-v abeq2i mpbir ) ABCDAAEZAFJACAGHI $.

  ${
    $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,
       5-Aug-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,
       5-Aug-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, 5-Aug-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 $.
  $}

  ${
    elisseti.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 $.  $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 $.
  $}

  ${
    $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 $.
  $}

  $( 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 wex elisset 3ad2ant3 bi1 imim3i 3ad2ant2
      3ad2ant1 al2imi 19.23t sylibd mpid imim2i com23 alimi 19.21t mpbid impbid
      bi2 ) BCFZCGDHZABIZJZCKZDELZMZUMAJZCKZBURUTUMCNZBUQULVAUPCDEOPURUTUMBJZCK
      ZVABJZUPULUTVCJUQUOUSVBCUNABUMABQRUASULUPVCVDIUQUMBCUBTUCUDURBUSJZCKZBUTJ
      ZUPULVFUQUOVECUOUMBAUNBAJUMABUKUEUFUGSULUPVFVGIUQBUSCUHTUIUJ $.
  $}

  ${
    $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 a1i syl5bb 19.21v syl6bb biimt 3ad2ant3 ceqsalt 3bitr2d
      ) BCFZCGZDHZABIJCKZDELZMZUMAJZCENZUOUQCKZJZUSBUPURUOUQJZCKZUTURULELZUQJZC
      KZUPVBUQCEOVEVBIUPVDVACVCUMTZAJUOUMTZAJVDVAVFVGAUMVCUOULDEPQRVCUMASUOUMAS
      UAUBUCUDUOUQCUEUFUOUKUSUTIUNUOUSUGUHABCDEUIUJ $.
  $}

  ${
    $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.  (Contributed by NM,
       29-Oct-2003.)  (Proof shortened by Andrew Salmon, 8-Jun-2011.) $)
    ceqsalg $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 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 wex 19.42vvvv 3anass df-3an anbi2i bitr4i 2exbii 3bitr4i
      3anbi3d 4exbidv ceqsex4v bitri ) JVBQVCZKVBRVCZVDZLVBSVCZMVBTVCZVDZVDZNVB
      UAVCOVBUBVCVDZPVBUCVCUEVBUDVCVDZVDZAVEZUEVFPVFZOVFNVFZMVFLVFZKVFJVFVTWCWE
      WFAVEZUEVFPVFOVFNVFZVEZMVFLVFZKVFJVFZIWKWOJKWJWNLMWDWLVDZUEVFPVFZOVFNVFWD
      WMVDWJWNWDWLOPUENVGWIWRNOWHWQPUEWHWDWGAVDZVDWQWDWGAVHWLWSWDWEWFAVIVJVKVLV
      LVTWCWMVIVMVLVLWPWEWFEVEZUEVFPVFOVFNVFZIWMWEWFBVEZUEVFPVFOVFNVFWEWFCVEZUE
      VFPVFOVFNVFWEWFDVEZUEVFPVFOVFNVFXAJKLMQRSTUFUGUHUIVRWLXBNOPUEVRABWEWFUNVN
      VOVSXBXCNOPUEVSBCWEWFUOVNVOWAXCXDNOPUEWACDWEWFUPVNVOWBXDWTNOPUEWBDEWEWFUQ
      VNVOVPEFGHINOPUEUAUBUCUDUJUKULUMURUSUTVAVPVQVQ $.
  $}

  ${
    $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.)  (Proof rewritten by Jim Kingdon, 20-Jun-2018.) $)
    gencbval $p |- ( A. x ( ch -> ph ) <-> A. y ( th -> ps ) ) $=
      ( cv wceq wi wal alcom wb imbi12d albii wex bicomd eqcoms 19.23v wa eqcom
      ceqsalv biimpi adantl eximi sylbi pm2.04 mpdi ax-1 impbii bitri 3bitr3i )
      FLZGMZDBNZNZFOZEOUTEOZFOCANZEOUSFOUTEFPVAVCEUSVCFGHUSVCQGUQGUQMZVCUSVDCDA
      BJIRUAUBUFSVBUSFVBURETZUSNZUSURUSEUCVFUSVFDVEBDCVDUDZETVEKVGUREVDURCVDURG
      UQUEUGUHUIUJVEDBUKULUSVEUMUNUOSUP $.
  $}

  ${
    $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 vex eqeq1 ceqsexv nfs1v nfbi sbequ12 bicomd
      sylan9bb exlimi sylbir ) DHZEIZCHZUDIZUFEIZJZCKACDLZBMZUHUECUDDNUFUDEOPUI
      UKCUJBCACDQFRUGUJAUHBUGAUJACDSTGUAUBUC $.
  $}

  ${
    $d z A $.  $d x z $.
    $( Closed theorem form of ~ vtoclgf .  (Contributed by NM, 17-Feb-2013.)
       (Revised by Mario Carneiro, 12-Oct-2016.) $)
    vtoclgft $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 3adant3 bi1 imim2i com23 imp
      ad2antrr alanimi 3ad2ant2 simp1r 19.23t syl mpd syl3an3 ) DEGCDHZBCIZJZCK
      ZDLZABMZNZCOACOJZDPGZBDEQVEVJVKRZVGCSZBVLFKZDLZFSZVMVKVEVPVJFDPUAUCVEVJVP
      VMMZVKVCVQVDVJVCVOVGFCCDUDVCCVNDVCCVNUEVCUBUFVNVFLVOVGMNVCVNVFDUGUHUIUOUJ
      TVLVGBNZCOZVMBNZVJVEVSVKVIAVRCVIAVRVIVGABVHABNVGABUKULUMUNUPUQVLVDVSVTMVC
      VDVJVKURVGBCUSUTTVAVB $.
  $}

  ${
    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.  (Contributed by
       NM, 30-Aug-1993.) $)
    vtocl $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 mp2an 19.36-1 19.36aiv
      sylbir nfv eximii ax-gen mpg ) ADKZBCUIBCABLZDMZUIBLCCNEOZCMZDNFOZDMZUKCM
      ZCEGPDFHPUMUOQULUNQZDMCMUPULUNCDRUQUJCDUQABISTUDUAABDBDUEUBUFUCADJUGUH $.
  $}

  ${
    $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 eximi 2eximi sylbir 19.36-1
      mp3an nfv ax-mp eximii 19.36aiv gen2 mpg ) AENZDNZBCUOBCUNBOZDPZUOBOCABOZ
      EPZDPCPZUQCPCQFRZCPZDQGRZDPZEQHRZEPZUTCFISDGJSEHKSVBVDVFTVAVCVETZEPZDPCPU
      TVAVCVECDEUAVHUSCDVGUREVGABLUBUCUDUEUGUSUPCDABEBEUHUFUDUIUNBDBDUHUFUJUKAD
      EMULUM $.
  $}

  ${
    $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 distinct 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 $.  $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 ) $=
      ( nfcv nfv vtoclgf ) ABCDECDHBCIFGJ $.
  $}

  ${
    $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 x A $.  $d x ph $.
    vtocleg.1 $e |- ( x = A -> ph ) $.
    $( Implicit substitution of a class for a setvar variable.  (Contributed by
       NM, 10-Jan-2004.) $)
    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-1 syl6 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 bi1 imim2i alimi spcimgft syl ) CHDIZABJZKZCLSAB
      KZKZCLDEMACLBKKUAUCCTUBSABNOPABCDEFGQR $.

    $( A closed version of ~ spcimegf .  (Contributed by Mario Carneiro,
       4-Jan-2017.) $)
    spcimegft $p |- ( A. x ( x = A -> ( ps -> ph ) ) -> ( A e. B ->
                      ( ps -> E. x ph ) ) ) $=
      ( wcel cvv cv wceq wi wal wex elex issetf exim syl5bi 19.37-1 syl6 syl5 )
      DEHDIHZCJDKZBALZLCMZBACNLZDEOUEUBUDCNZUFUBUCCNUEUGCDGPUCUDCQRBACFSTUA $.

    $( A closed version of ~ spcegf .  (Contributed by Jim Kingdon,
       22-Jun-2018.) $)
    spcegft $p |- ( A. x ( x = A -> ( ph <-> ps ) ) -> ( A e. B ->
                      ( ps -> E. x ph ) ) ) $=
      ( cv wceq wb wi wal wcel wex bi2 imim2i alimi spcimegft syl ) CHDIZABJZKZ
      CLTBAKZKZCLDEMBACNKKUBUDCUAUCTABOPQABCDEFGRS $.
  $}

  ${
    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 ) ) $=
      ( cv wceq wi wcel wex spcimegft mpg ) CIDJBAKKDELBACMKKCABCDEGFNHO $.
  $}

  ${
    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 ) ) $=
      ( cv wceq wb wi wcel wex spcegft mpg ) CIDJABKLDEMBACNLLCABCDEGFOHP $.
  $}

  ${
    $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 ) ) $=
      ( cv wceq wi wal wcel wex ex alrimiv nfv nfcv spcimegft sylc ) ADIEJZCBKZ
      KZDLEFMCBDNKAUCDAUAUBHOPGBCDEFCDQDERST $.
  $}

  ${
    $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 2 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 2 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 cv wceq wex wal elisset anim12i wi exim 19.9v eeanv sylibr 3syl
      biimpcd 2alimi alimi bitri syl6ib syl5com ) EGJZFHJZKZCLEMZDLFMZKZDNZCNZA
      DOCOZBULUMCNZUNDNZKUQUJUSUKUTCEGPDFHPQUMUNCDUAUBURUQBDNZCNZBURUOBRZDOZCOU
      PVARZCOUQVBRAVCCDUOABIUDUEVDVECUOBDSUFUPVACSUCVBVABVACTBDTUGUHUI $.
  $}

  ${
    $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 3 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 3 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 cv wceq wex wal elisset wi 3anim123i eeeanv sylibr 2alimi exim
      biimpcd alimi syl 3syl 19.9v 3bitri syl6ib syl5com ) FIMZGJMZHKMZNZCOFPZD
      OGPZEOHPZNZEQZDQZCQZAERDRZCRZBUQURCQZUSDQZUTEQZNVDUNVGUOVHUPVICFISDGJSEHK
      SUAURUSUTCDEUBUCVFVDBEQZDQZCQZBVFVBVJTZDRZCRZVCVKTZCRVDVLTVFVABTZERZDRZCR
      VOVEVSCAVQDEVAABLUFUDUGVRVMCDVABEUEUDUHVNVPCVBVJDUEUGVCVKCUEUIVLVKVJBVKCU
      JVJDUJBEUJUKULUM $.
  $}

  ${
    $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 ) ) $=
      ( cv wcel wa wex wrex wceq simpr eleq1d biimprd anim12d spcimedv mpand
      df-rex syl6ibr ) ACDIZFJZBKZDLZBDFMAEFJZCUFGAUEUGCKDEFGAUCENZKZUGUDCBUIUD
      UGUIUCEFAUHOPQHRSTBDFUAUB $.
  $}

  ${
    $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 $.
  $}

  ${
    $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 ) ) $.
    $( 2-variable restricted specialization, 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 nfralxy cv wceq rspc ralbidv sylan9 ) FHNAEIOZDHOCEIOZGI
      NBUCUDDFHCDEIDIPJQDRFSACEILUATCBEGIKMTUB $.
  $}

  ${
    $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 existentional 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 x A $.  $d x B $.
    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.) $)
    eqvinc $p |- ( A = B <-> E. x ( x = A /\ x = B ) ) $=
      ( wceq cv wa wex wi isseti ax-1 eqtr jca eximi pm3.43 mp2b 19.37aiv eqtr2
      ex exlimiv impbii ) BCEZAFZBEZUCCEZGZAHUBUFAUDAHUBUDIZUBUEIZGZAHUBUFIZAHA
      BDJUDUIAUDUGUHUDUBKUDUBUEUCBCLSMNUIUJAUBUDUEONPQUFUBAUCBCRTUA $.
  $}

  ${
    $d x A $.  $d x B $.
    $( A variable introduction law for class equality, deduction version.
       (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 pm3.43 3syl nfv 19.37-1
      eximi syl eqtr2 exlimiv impbid1 ) BDEZBCFZAGZBFZUGCFZHZAIZUEUFUJJZAIZUFUK
      JUEUHAIUFUHJZUFUIJZHZAIUMABDKUHUPAUHUNUOUHUFLUHUFUIUGBCMNOTUPULAUFUHUIPTQ
      UFUJAUFARSUAUJUFAUGBCUBUCUD $.
  $}

  ${
    $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 A y $.  $d ph y $.
    alexeq.1 $e |- A e. _V $.
    $( Two ways to express substitution of ` A ` for ` x ` in ` ph ` .
       (Contributed by NM, 2-Mar-1995.) $)
    alexeq $p |- ( A. x ( x = A -> ph ) <-> E. x ( x = A /\ ph ) ) $=
      ( vy cv wceq wa wex wi wal anbi1d exbidv imbi1d albidv sb56 vtoclb bicomi
      eqeq2 ) BFZCGZAHZBIZUAAJZBKZTEFZGZAHZBIUGAJZBKUCUEECDUFCGZUHUBBUJUGUAAUFC
      TSZLMUJUIUDBUJUGUAAUKNOABEPQR $.
  $}

  ${
    $d x A y $.  $d ph y $.
    $( Equality implies equivalence with substitution.  (Contributed by NM,
       2-Mar-1995.) $)
    ceqex $p |- ( x = A -> ( ph <-> E. x ( x = A /\ ph ) ) ) $=
      ( vy cvv wcel cv wceq wa wex wb 19.8a isset sylibr wi eqeq2 anbi1d exbidv
      bibi2d imbi12d ex wal vex alexeq sp com12 syl5bir impbid vtoclg mpcom ) C
      EFZBGZCHZAUMAIZBJZKZUMUMBJUKUMBLBCMNULDGZHZAURAIZBJZKZOUMUPODCEUQCHZURUMV
      AUPUQCULPZVBUTUOAVBUSUNBVBURUMAVCQRSTURAUTURAUTUSBLUAUTURAOZBUBZURAABUQDU
      CUDVEURAVDBUEUFUGUHUIUJ $.
  $}

  ${
    $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 nfcv nfe1 nfbi ceqex bibi12d biid vtoclgf ) AAHCIDJZA
      KZCLZBHCDECDMUBBCUACNFOTAUBABACDPGQARS $.
  $}

  ${
    $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 $.
    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 ) ) $=
      ( cv wceq wcel wi wal eleq1 ceqsalv bicomi ) AEZBFMCGZHAIBCGZNOABDMBCJKL
      $.
  $}

  ${
    $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 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 bi1 mpi syl impbii vtoclbg ) EFZCGZAFZUGGZUICGZRZAH
      ZBCGUIBGZUKRZAHEBDUGBCIUGBGZULUOAUPUJUNUKUGBUIJKLUHUMUHULAUGCUIJMUMULAENZ
      UHULAEOUQUJAENZUKAENZRZUHUJUKAEPUTURUHRZUHUSUHUREACSQVAURUHAEUAURUHUBUCTT
      UDUEUF $.
  $}

  ${
    $d y A $.  $d x y $.  $d y ph $.
    $( Restricted quantifier version of Theorem 19.3 of [Margaris] p. 89.
       (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.
       (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.28av impbii ) ABFZDEGZCEGABDEGZFZCEGUDUFCECHZEIZUDAUEUDADEGUHAUCA
      DEABJKAADUGEDCLAMNOUDUEPUHUCBDEABQKTRSUFUDCEABDEUAKUB $.
  $}

  ${
    $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 ) ) $=
      ( cv wceq wb wal wcel cab abid eleq1 syl5bbr bibi1d biimpd a2i alimi nfcv
      wi nfab1 nfel2 nfv nfbi pm5.5 spcgf imp sylan2 ) CFZDGZABHZTZCIDEJZUJDACK
      ZJZBHZTZCIZUPULUQCUJUKUPUJUKUPUJAUOBAUIUNJUJUOACLUIDUNMNOPQRUMURUPUQUPCDE
      CDSUOBCCDUNACUAUBBCUCUDUJUPUEUFUGUH $.
  $}

  ${
    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 $.
  $}

  ${
    $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 wi cab elabgf ibi wb imim2i bi2 syli impbid2 ) BDEIZJZDACKZIZBUBBA
      BCDUAFGHLMBTUBBNZUBSUCBABCDEFGHLOUBBPQR $.
  $}

  ${
    $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 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 ) ) $=
      ( cv wceq wb wi wal wcel wa cab crab simpr nfa1 nfv nfan simpl 19.21bi
      eleq1 biimparc biantrurd bibi1d adantl mpbid alrimi elabgt syl2anc df-rab
      pm5.74da eleq2i bibi1i sylibr ) CFZDGZABHZIZCJZDEKZLZDUOEKZALZCMZKZBHZDAC
      ENZKZBHVAUTUPVCBHZIZCJVFUSUTOVAVJCUSUTCURCPUTCQRVAURVJVAURCUSUTSTUTURVJHU
      SUTUPUQVIUTUPLZAVCBVKVBAUPVBUTUODEUAUBUCUDUKUEUFUGVCBCDEUHUIVHVEBVGVDDACE
      UJULUMUN $.
  $}

  ${
    $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 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 z A $.
    $( 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 nfrd impbid2 abbi1dv ) ACDZBECFZAGZBCMONNAHMNA
      ABCIJKL $.
  $}

  ${
    $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 weu spcegv imp 3adant3 eqeq2 imbi2d nfv
      albidv 3adant2 eu3 sylanbrc ) DEHZBACIZDJZKZCLZMACNZAUGGIZJZKZCLZGNZACOUF
      BUKUJUFBUKABCDEFPQRUFUJUPBUFUJUPUOUJGDEULDJZUNUICUQUMUHAULDUGSTUBPQUCACGA
      GUAUDUE $.
  $}

  ${
    $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 $.
    eueq2dc.1 $e |- A e. _V $.
    eueq2dc.2 $e |- B e. _V $.
    $( Equality has existential uniqueness (split into 2 cases).  (Contributed
       by NM, 5-Apr-1995.) $)
    eueq2dc $p |- ( DECID ph ->
        E! x ( ( ph /\ x = A ) \/ ( -. ph /\ x = B ) ) ) $=
      ( wdc wn wo wceq weu eueq1 euanv biimpri mpan2 euorv bianfd eubidv mpbid
      wa cv df-dc notnot syl2anc orcom orbi2d syl5bb mpdan id orbi1d jaoi sylbi
      ) AGAAHZIABUAZCJZTZUMUNDJZTZIZBKZAUBAUTUMAUMUPIZBKZUTAUMHUPBKZVBAUCZAUOBK
      ZVCBCELVCAVETAUOBMNOUMUPBPUDAVAUSBVAUPUMIAUSUMUPUEAUMURUPAUMUQVDQUFUGRSUM
      AURIZBKZUTUMURBKZVGUMUQBKZVHBDFLVHUMVITUMUQBMNOAURBPUHUMVFUSBUMAUPURUMAUO
      UMUIQUJRSUKUL $.
  $}

  ${
    $d x ph $.  $d x ps $.  $d x A $.  $d x B $.  $d x C $.
    eueq3dc.1 $e |- A e. _V $.
    eueq3dc.2 $e |- B e. _V $.
    eueq3dc.3 $e |- C e. _V $.
    eueq3dc.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.) $)
    eueq3dc $p |- ( DECID ph -> ( DECID ps ->
        E! x ( ( ph /\ x = A ) \/ ( -. ( ph \/ ps ) /\ x = B )
               \/ ( ps /\ x = C ) ) ) ) $=
      ( wdc wo wceq wa wn w3o weu eueq1 con2i jaoi cv dcor df-dc ibar wb pm2.45
      imnani bianfd orbi12d mtbid biorf bitrd 3orrot df-3or bitri syl6bbr mpbii
      syl eubidv adantr pm2.46 simpl orim12i con3i 3orcomb sylbi syl6 ) AKBKABL
      ZKZACUAZDMZNZVHOZVJEMZNZBVJFMZNZPZCQZABUBVIVHVMLVSVHUCVHVSVMAVSBAVKCQVSCD
      GRAVKVRCAVKVOVQLZVLLZVRAVKVLWAAVKUDAVTOVLWAUEAVMBLZVTWBAVMAOBABUFZABABJUG
      ZSTSAVMVOBVQAVMVNVMAWCSUHABVPWDUHUIUJVTVLUKURULVRVOVQVLPWAVLVOVQUMVOVQVLU
      NUOUPUSUQBVPCQVSCFIRBVPVRCBVPVLVOLZVQLZVRBVPVQWFBVPUDBWEOVQWFUEWEBVLBOZVO
      AWGVKWDUTVMWGVNABVAUTTSWEVQUKURULVLVOVQUNUPUSUQTVMVNCQVSCEHRVMVNVRCVMVNVL
      VQLZVOLZVRVMVNVOWIVMVNUDVMWHOVOWIUEWHVHVLAVQBAVKVBBVPVBVCVDWHVOUKURULVRVL
      VQVOPWIVLVOVQVEVLVQVOUNUOUPUSUQTVFVG $.
  $}

  ${
    $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 bitr3i biimpi df-mo mpbir )
      ACBDZAEQAFZQAGZHRSRBIJSABKABLMNQAOP $.
  $}

  ${
    $d x ph $.  $d x ps $.  $d x A $.  $d x B $.  $d x C $.
    moeq3dc.1 $e |- A e. _V $.
    moeq3dc.2 $e |- B e. _V $.
    moeq3dc.3 $e |- C e. _V $.
    moeq3dc.4 $e |- -. ( ph /\ ps ) $.
    $( "At most one" property of equality (split into 3 cases).  (Contributed
       by Jim Kingdon, 7-Jul-2018.) $)
    moeq3dc $p |- ( DECID ph -> ( DECID ps ->
        E* x ( ( ph /\ x = A ) \/ ( -. ( ph \/ ps ) /\ x = B )
               \/ ( ps /\ x = C ) ) ) ) $=
      ( wdc cv wceq wa wo wn w3o weu wmo eueq3dc eumo syl6 ) AKBKACLZDMNABOPUCE
      MNBUCFMNQZCRUDCSABCDEFGHIJTUDCUAUB $.
  $}

  ${
    $d x y A $.
    $( "At most one" remains true after substitution.  (Contributed by Jim
       Kingdon, 18-Jan-2019.) $)
    mosubt $p |- ( A. y E* x ph -> E* x E. y ( y = A /\ ph ) ) $=
      ( wmo wal cv wceq wex wa wi weu cvv wcel eueq isset bitr3i euexex sylanbr
      nfv expcom moanimv sylibr simpl eximi ancri moimi syl ) ABECFZCGDHZCIZUJA
      JZCIZJZBEZUMBEZUIUKUPKUOUKUIUPUKUJCLZUIUPUQDMNUKCDOCDPQUJACBUJBTRSUAUKUMB
      UBUCUMUNBUMUKULUJCUJAUDUEUFUGUH $.
  $}

  ${
    $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 ) $=
      ( wmo cv wceq wa wex mosubt mpg ) ABFCGDHAICJBFCABCDKEL $.
  $}

  ${
    $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 cv wceq wal wex wmo cvv wcel nfa1 vex eleq1 mpbii imim2i eximd 19.9v
      wi sps syl6ib eqeq2 imbi2d albidv imbi1d nfv mo2r vtoclg com12 syld moabs
      19.23bi sylibr ) ABEZCFZSZBGZABHZABIZSUSUQURCJKZUSUQURUTBHUTUQAUTBUPBLUPA
      UTSBUOUTAUOUNJKUTBMUNCJNOPTQUTBRUAUTUQUSAUNDEZFZSZBGZUSSUQUSSDCJVACFZVDUQ
      USVEVCUPBVEVBUOAVACUNUBUCUDUEVDUSDABDADUFUGULUHUIUJABUKUM $.
  $}

  ${
    $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 nfs1v sbequ12 nfv
      mo4f sylbi sbhypf anbi2d eqeq2 imbi12d spcgv syl5 imp expd 3impia impbid
      sp ) DEHZACIZAJZCKZDLZBUQAUSBUOUPAMFNUOUPABUSOUOUPPABUSUOUPABPZUSOZUPAACG
      QZPZURGKZLZOZGRZUOVAUPVGCRVGAVBCGACGSACGTUBVGCUNUCVFVAGDEVDDLZVCUTVEUSVHV
      BBAABCGDBCUAFUDUEVDDURUFUGUHUIUJUKULUM $.

    $( 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 cv nfcv nfmo1 nf3an nfim bibi1d
      3anbi3d eqeq1 imbi12d mob2 vtoclgf com12 3expib syl com3r imp 3impib ) EG
      KZFHKZLADMZBEFNZCOZURUSUTBLZVBPUSVCURVBUSFQKZVCURVBPZPFHRVDUTBVEURVDUTBSZ
      VBVDUTASZDUAZFNZCOZPVFVBPDEGDEUBVFVBDVDUTBDVDDTADUCBDTUDVBDTUEVHENZVGVFVJ
      VBVKABVDUTIUGVKVIVACVHEFUHUFUIACDFQJUJUKULUMUNUOUPUQ $.

    $( 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 $.
    euxfr2dc.1 $e |- A e. _V $.
    euxfr2dc.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.) $)
    euxfr2dc $p |- ( DECID E. y E. x ( x = A /\ ph ) ->
        ( E! x E. y ( x = A /\ ph ) <-> E! y ph ) ) $=
      ( cv wa wex wdc weu wmo wal wi moani mobii mpbi ax-gen 2euswapdc mpi wceq
      ancom excom dcbii sylbi moeq impbid biidd ceqsexv eubii syl6bb ) BGDUAZAH
      ZBIZCIZJZUMCIZBKZUNCKZACKUPURUSUPUMCLZBMZURUSNZUTBAULHZCLUTULACFOVCUMCAUL
      UBZPQRUPUQBIZJVAVBNUOVEUMCBUCUDUMBCSUETUPUMBLZCMUSURNVFCVCBLVFULABBDUFOVC
      UMBVDPQRUMCBSTUGUNACAABDEULAUHUIUJUK $.
  $}

  ${
    $d x ps $.  $d y ph $.  $d x A $.
    euxfrdc.1 $e |- A e. _V $.
    euxfrdc.2 $e |- E! y x = A $.
    euxfrdc.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.) $)
    euxfrdc $p |- ( DECID E. y E. x ( x = A /\ ps ) ->
        ( E! x ph <-> E! y ps ) ) $=
      ( weu cv wceq wa wex wdc euex ax-mp biantrur 19.41v pm5.32i exbii 3bitr2i
      eubii eumoi euxfr2dc syl5bb ) ACICJEKZBLZDMZCIUGCMDMNBDIAUHCAUFDMZALUFALZ
      DMUHUIAUFDIUIGUFDOPQUFADRUJUGDUFABHSTUAUBBCDEFUFDGUCUDUE $.
  $}

  ${
    $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 imim2i weu cbvexv biantrur 3bitr2i
      isseti 19.41v excom eqeq2 bi2 an31 imbi1i impexp 3bitr3i sylib syl 2alimi
      wb 19.23v albii 19.21v eximdv syl5bi imp pm4.24 biimpi prth eqtr3 alanimi
      syl56 com12 syl5 alrimivv adantl eqeq1 imbi2d albidv eu4 sylanbrc ) ABLZF
      GMZNZDOCOZACPZLAEQZFMZNZCOZEPZWGAKQZFMZNZCOZLZWDWIMZNZKOEOZWGEUAWBWCWHWCW
      DGMZBLZDPZEPZWBWHWCBDPZWTABCDIUBXAWQEPZBLZDPWREPZDPWTBXCDXBBEGHUEUCRXDXCD
      WQBEUFRWRDEUGUDSWBWSWGEWBWRWFNZDOZCOZWSWGNZWAXECDWAVSWEWQUQZNZXEVTXIVSFGW
      DUHTXJVSWQWENZNZXEXIXKVSWEWQUITVSWQLZWENWRALZWENXLXEXMXNWEABWQUJUKVSWQWEU
      LWRAWEULUMUNUOUPXGWSWFNZCOXHXFXOCWRWFDURUSWSWFCUTSUNVAVBVCWCWPWBWCWOEKWMA
      WNNZCOZWCWNWFWKXPCAAALZWFWKLWEWJLWNAXRAVDVEAWEAWJVFWDWIFVGVIVHXQWCWNXQWCW
      NNAWNCURVEVJVKVLVMWGWLEKWNWFWKCWNWEWJAWDWIFVNVOVPVQVR $.
  $}

  ${
    $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 ) ) $=
      ( cv wcel wa weq wb wal wex wi bi1 bi2 adantr impbid imim2i imp 3bitr4i
      ex wreu weu wral wrex df-reu 19.28v eleq1 sbequ12 anbi12d equequ1 bibi12d
      wsb equid tbt simpl sylbir syl6bi spimv expdimp simpr syl6 sps jca adantl
      a5i impd eleq1a com23 adantll jcai alimi impbii df-ral anbi2i exbii df-eu
      df-rex bitri ) ABDUABEZDFZAGZBUBZABCHZIZBDUCZCDUDZABDUEWAWCIZBJZCKCEZDFZW
      EGZCKWBWFWHWKCWJVTWDLZGZBJZWJWLBJZGWHWKWJWLBUFWHWNWGWMBWHWJWLWGWJBCWCWGWJ
      ABCULZGZCCHZIZWJWCWAWQWCWRWCVTWJAWPVSWIDUGABCUHUIBCCUJUKWSWQWJWRWQCUMUNWJ
      WPUOUPUQURWGWLBWGVTWDWGVTGAWCWGVTAWCWAWCMUSWGWCALZVTWGWCWAAWAWCNVTAUTVAOP
      TVBVCVEWMWGBWMWAWCWLWAWCLWJWLVTAWCWDAWCLVTAWCMQVFVDWMWCWAWMWCGVTAWMWCVTWJ
      WCVTLWLWIDVSVGORWLWCVTALZWJWLWCXAWLVTWCAWDWTVTAWCNQVHRVIVJTPVKVLWEWOWJWDB
      DVMVNSVOWABCVPWECDVQSVR $.

    $( 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 bi1 ralimi reximi sylbi jca wex
      wal rexex anim2i cv wcel weu nfv df-reu df-rex df-ral impexp albii bitr4i
      eu3 exbii anbi12i 3bitr4i sylibr impbii ) ABDEZABDFZABCGZHZBDIZCDFZJZUSUT
      VDABDKUSAVALZBDIZCDFVDABCDMVGVCCDVFVBBDAVANOPQRVEUTVCCSZJZUSVDVHUTVCCDUAU
      BBUCDUDZAJZBUEVKBSZVKVAHZBTZCSZJUSVIVKBCVKCUFUMABDUGUTVLVHVOABDUHVCVNCVCV
      JVBHZBTVNVBBDUIVMVPBVJAVAUJUKULUNUOUPUQUR $.

    $( 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 eleq1 imbi12d equcoms
      vex bicomd ceqsalv 3bitrri syl6bb anbi12d r19.26 syl6rbbr rexbiia 3bitri
      ) ACEGBDEGBDCHZIZDEJZCEKABCDHZLZDEJZMZCEKABCDEFNBDCEOVEVICEVEBVCLZVCBLZMZ
      DEJZCPZEQZVIVDVLDEBVCUBRVOVIVJDEJZVKDEJZMZVMVIVHAMVOVRAVHUCVOVHVPAVQVHVPI
      VOVGVJDEVFVCBCDUDUERUAVOAVOALZVQVOAUFVQDPZEQZVKLZDSVCWABLZLZDSVSVKDEUGWBW
      DDWAVCBUHUIWCVSDVNCUMWCVSICDVFVSWCVFVOWAABVNVTEUJFUKUNULUOUPUQURTVJVKDEUS
      UTTVAVB $.
  $}

  ${
    $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 $.
  $}

  $( 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.) $)
    2reuswapdc $p |- ( DECID E. x E. y ( x e. A /\ ( y e. B /\ ph ) ) ->
        ( 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 wex wrex wreu wal weu df-reu r19.42v df-rex bitri
      wi wrmo df-rmo ralbii df-ral moanimv albii bitr4i bitr3i an12 exbii eubii
      wdc 2euswapdc syl7bi imbi2i syl6ibr syl5bi ) ACEUAZBDFCGEHZAIZCJZBDFZBGDH
      ZUTIZCKZBKULZACELZBDMZABDLZCEMZTZURVABDACEUBUCVBVDCJZBNZVFVKVBVCVATZBNVMV
      ABDUDVLVNBVCUTCUEUFUGVFVMVHVDBKZCOZTVKVHVEBOZVFVMVPVHVCVGIZBOVQVGBDPVRVEB
      VRUSVCAIZIZCKZVEVRVSCELWAVCACEQVSCERUHVTVDCUSVCAUIUJSUKSVDBCUMUNVJVPVHVJU
      SVIIZCOVPVICEPWBVOCWBUTBDLVOUSABDQUTBDRUHUKSUOUPUQUQ $.
  $}

  ${
    $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 an31 imbi1i
      bi2 impexp 3bitr3i sylib 2alimi 19.23v an12 adantr pm5.32ri bitr4i 19.42v
      syl eleq1 albii 19.21v expd reximdvai syl5bi imp pm4.24 biimpi prth eqtr3
      syl56 alanimi com12 syl5 a1d ralrimivv adantl imbi2d albidv reu4 sylanbrc
      eqeq1 ) FHLZAMZGHLZBMZMZFGNZOZDPCPZWMCQZMWMERZFNZOZCPZEHSZXDWMKRZFNZOZCPZ
      MZXAXFNZOZKHUAEHUAZXDEHUBWSWTXEWTXAGNZBMZDQZEHSZWSXEWTWODQZXQWMWOCDCRDRNZ
      WLWNABXSFGHJUCIUDUFXOEHSZDQXNEHSZBMZDQXQXRXTYBDXNBEHUGUEXOEDHUHWOYBDWNYAB
      EGHUIUJUEUKTWSXPXDEHWSXAHLZXPXDWSXNWOMZXCOZDPZCPZYCXPMZXDOZWRYECDWRWPXBXN
      ULZOZYEWQYJWPFGXAUMUNYKWPXNXBOZOZYEYJYLWPXBXNUQUNWPXNMZXBOYDWMMZXBOYMYEYN
      YOXBWMWOXNUOUPWPXNXBURYDWMXBURUSUTVHVAYGYHXCOZCPYIYFYPCYFYDDQZXCOYPYDXCDV
      BYQYHXCYQYCXOMZDQYHYDYRDYDWNXOMYRXNWNBVCXOYCWNXNYCWNULBXAGHVIVDVEVFUEYCXO
      DVGTUPTVJYHXCCVKTUTVLVMVNVOWTXMWSWTXLEKHHWTXLYCXFHLMXJWMXKOZCPZWTXKXCXHYS
      CWMWMWMMZXCXHMXBXGMXKWMUUAWMVPVQWMXBWMXGVRXAXFFVSVTWAYTWTXKYTWTXKOWMXKCVB
      VQWBWCWDWEWFXDXIEKHXKXCXHCXKXBXGWMXAXFFWKWGWHWIWJ $.
  $}

  ${
    $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 cv wcel wa wmo wal wral wex df-rex mobii df-rmo albii sylib
      wi anbi2i 19.42v 3bitr4i 2moex sylbi moanimv df-ral imbi2i bitri sylibr
      an12 ) ACEFZBDGZCHEIZBHDIZAJZBKZTZCLZABDGZCEMZUMUNUPJZBKZCLZUSUMUOUNAJZJZ
      BKZCLZVDUMVFCNZBKZVHUOULJZBKUOVECNZJZBKUMVJVKVMBULVLUOACEOUAPULBDQVIVMBUO
      VECUBPUCVFBCUDUEVGVCCVFVBBUOUNAUKPRSVCURCUNUPBUFRSVAUNUTTZCLUSUTCEUGVNURC
      UTUQUNABDQUHRUIUJ $.
  $}

  ${
    $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 set
  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 assumptions 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 ) $.

  $( 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 asserting that ` A ` is a set
       only when it is smaller than some other set ` B ` .  The intuitionistic
       set theory IZF includes such a separation axiom, Axiom 6 of [Crosilla]
       p.  "Axioms of CZF and IZF", which we include as ~ ax-sep .
       (Contributed by NM, 7-Aug-1994.) $)
    ru $p |- { x | x e/ x } e/ _V $=
      ( vy cv wnel cab cvv wcel wn wceq wex wel wal pm5.19 eleq1 df-nel eleq12d
      wb id notbid mtbir syl5bb bibi12d spv mto abeq2 nex isset mpbir ) ACZUIDZ
      AEZFDUKFGZHULBCZUKIZBJUNBUNABKZUJQZALZUQBBKZURHZQZURMUPUTABUIUMIZUOURUJUS
      UIUMUMNUJAAKZHVAUSUIUIOVAVBURVAUIUMUIUMVARZVCPSUAUBUCUDUJAUMUETUFBUKUGTUK
      FOUH $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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 $.

  $( 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).  Unfortunately, Quine's definition
     requires a recursive syntactical 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 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 } ) $.

  $( 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 .  Proper substiution
     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 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 $.
  $}

  $( 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.  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 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 nfe1 ceqex ceqsalg sbc5 syl6rbbr ) CDEB
      FCGZAHBIRAJZBKZABCLATBCDSBMABCNOABCPQ $.
  $}

  ${
    $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 bi1 impd 19.23t syl5bi bi2 com23 19.21t sbc6g 3ad2ant1 impbid
      sylibrd ) DEFZBCGZCHDIZABJZKZCLZMZACDNZBVAUPATZCUAZUTBACDUBUOUSVCBKZUNUSU
      OVBBKZCLZVDURVECURUPABUQABKUPABUCOUDPUOVFVDVBBCUEQRSUFUTBUPAKZCLZVAUOUSBV
      HKZUNUSUOBVGKZCLZVIURVJCURUPBAUQBAKUPABUGOUHPUOVKVIBVGCUIQRSUNUOVAVHJUSAC
      DEUJUKUMUL $.
  $}

  ${
    $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 ` and
       ` 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.) $)
    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 conjunction.  (Contributed by
       NM, 21-May-2004.) $)
    sbcang $p |- ( A e. V ->
     ( [. A / x ]. ( ph /\ ps ) <-> ( [. A / x ]. ph /\ [. A / x ]. ps ) ) ) $=
      ( vy wa wsb wsbc dfsbcq2 cv wceq anbi12d sban vtoclbg ) ABGZCFHACFHZBCFHZ
      GPCDIACDIZBCDIZGFDEPCFDJFKDLQSRTACFDJBCFDJMABCFNO $.

    $( Distribution of class substitution over disjunction.  (Contributed by
       NM, 31-Dec-2016.) $)
    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 disjunction.  (Contributed by
       NM, 21-May-2004.) $)
    sbcorg $p |- ( A e. V ->
     ( [. A / x ]. ( ph \/ ps ) <-> ( [. A / x ]. ph \/ [. A / x ]. ps ) ) ) $=
      ( vy wo wsb wsbc dfsbcq2 cv wceq orbi12d sbor vtoclbg ) ABGZCFHACFHZBCFHZ
      GPCDIACDIZBCDIZGFDEPCFDJFKDLQSRTACFDJBCFDJMABCFNO $.

    $( 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.) $)
    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 universal quantifier in and out of class substitution.
       (Contributed by NM, 16-Jan-2004.) $)
    sbcalg $p |- ( A e. V
        -> ( [. A / y ]. A. x ph <-> A. x [. A / y ]. ph ) ) $=
      ( vz wal wsb wsbc dfsbcq2 cv wceq albidv sbal vtoclbg ) ABGZCFHACFHZBGPCD
      IACDIZBGFDEPCFDJFKDLQRBACFDJMABCFNO $.

    $( Move existential quantifier in and out of class substitution.
       (Contributed by NM, 21-May-2004.) $)
    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 $.

    $( Move existential quantifier in and out of class substitution.
       (Contributed by NM, 21-May-2004.) $)
    sbcexg $p |- ( A e. V
         -> ( [. A / y ]. E. x ph <-> E. x [. A / y ]. ph ) ) $=
      ( vz wex wsb wsbc dfsbcq2 cv wceq exbidv sbex vtoclbg ) ABGZCFHACFHZBGPCD
      IACDIZBGFDEPCFDJFKDLQRBACFDJMABCFNO $.
  $}

  ${
    $d x B $.  $d x A $.
    $( A variation of extensionality for classes.  (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 $.
  $}

  $( 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 $.
  $}

  ${
    $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 nfralxy
      nfs1v weq sbequ12 ralbidv sbie bitr3i nfnfc1 nfcvd id nfeqd nfan1 dfsbcq2
      adantl ralbid adantll syl5bb sbcied syl5bbr ) ACEHZBDIUTBGJZIZGDIDFKZCDLZ
      MZABDIZCEHZUTBGDNVEVBVGGDFVCVDOVBABGPZCEHZVEVADQZMVGVBUTBGPVIUTBGRUTVIBGV
      HBCEBESABGUBUABGUCAVHCEABGUDUEUFUGVDVJVIVGTVCVDVJMVHVFCEVDVJCCDUHVDCVADVD
      CVAUIVDUJUKULVJVHVFTVDABGDUMUNUOUPUQURUS $.

    $( Interchange class substitution and restricted existential quantifier.
       (Contributed by NM, 1-Mar-2008.)  (Proof shortened by Mario Carneiro,
       13-Oct-2016.) $)
    sbcrext $p |- ( F/_ y A ->
        ( [. A / x ]. E. y e. B ph <-> E. y e. B [. A / x ]. ph ) ) $=
      ( vz wnfc cvv wcel wrex wsbc wi sbcex a1i nfcvd cv wb wa wsb wceq id 2a1i
      nfnfc1 nfeld rexlimd2 sbcco simpl sbsbc nfcv nfrexxy sbequ12 rexbidv sbie
      nfs1v bitr3i nfeqd dfsbcq2 adantl rexbid adantll syl5bb syl5bbr pm5.21ndd
      nfan1 sbcied expcom ) CDGZDHIZACEJZBDKZABDKZCEJZVJVHLVGVIBDMNVGVKVHCECDUC
      ZVGCDHVGUAZVGCHOUDVGCPEIVKVHLABDMUBUEVHVGVJVLQVJVIBFPZKZFDKVHVGRZVLVIBFDU
      FVQVPVLFDHVHVGUGVPABFSZCEJZVQVODTZRVLVPVIBFSVSVIBFUHVIVSBFVRBCEBEUIABFUNU
      JBPVOTAVRCEABFUKULUMUOVGVTVSVLQVHVGVTRVRVKCEVGVTCVMVGCVODVGCVOOVNUPVDVTVR
      VKQVGABFDUQURUSUTVAVEVBVFVC $.
  $}

  ${
    $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 ) ) $=
      ( vz wral wsb wsbc dfsbcq2 cv wceq ralbidv nfcv nfs1v nfralxy weq sbequ12
      sbie vtoclbg ) ACEHZBGIABGIZCEHZUBBDJABDJZCEHGDFUBBGDKGLDMUCUECEABGDKNUBU
      DBGUCBCEBEOABGPQBGRAUCCEABGSNTUA $.

    $( 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.) $)
    sbcreug $p |- ( A e. V ->
                 ( [. A / x ]. E! y e. B ph <-> E! y e. B [. A / x ]. ph ) ) $=
      ( vz wreu wsb wsbc dfsbcq2 cv wceq reubidv nfcv nfs1v nfreuxy weq sbequ12
      sbie vtoclbg ) ACEHZBGIABGIZCEHZUBBDJABDJZCEHGDFUBBGDKGLDMUCUECEABGDKNUBU
      DBGUCBCEBEOABGPQBGRAUCCEABGSNTUA $.
  $}

  ${
    $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 bitrd abeq2 elex sbcexg sbcg
      sbcang sbcalg sbcbig bibi1d albidv sbcbii 3bitr4g nfcri sbcgf anbi12d syl
      exbidv df-clel ) DFIDJIZACKZEIZBDLZABDLZCKZEIZMDFUAUQHNZUROZVDEIZPZHQZBDL
      ZVDVBOZVFPZHQZUTVCUQVIVGBDLZHQVLVGHBDJUBUQVMVKHUQVMVEBDLZVFBDLZPVKVEVFBDJ
      UDUQVNVJVOVFUQCNVDIZAMZCRZBDLZVPVAMZCRZVNVJUQVSVQBDLZCRWAVQCBDJUEUQWBVTCU
      QWBVPBDLZVAMVTVPABDJUFUQWCVPVAVPBDJUCUGSUHSVEVRBDACVDTUIVACVDTUJVFBDJBHEG
      UKULUMSUOSUSVHBDHUREUPUIHVBEUPUJUN $.
  $}

  ${
    $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 $.
  $}

  ${
    ra5.1 $e |- F/ x ph $.
    $( Restricted quantifier version of Axiom 5 of [Mendelson] p. 69.  This is
       an axiom of a predicate calculus for a restricted domain.  Compare the
       unrestricted ~ stdpc5 .  (Contributed by NM, 16-Jan-2004.) $)
    ra5 $p |- ( A. x e. A ( ph -> ps ) -> ( ph -> A. x e. A ps ) ) $=
      ( wi wral cv wcel wal df-ral bi2.04 albii bitri stdpc5 sylbi syl6ibr ) AB
      FZCDGZACHDIZBFZCJZBCDGSAUAFZCJZAUBFSTRFZCJUDRCDKUEUCCTABLMNAUACEOPBCDKQ
      $.
  $}

  ${
    $d x y A $.
    rmo2.1 $e |- F/ y ph $.
    $( Condition implying restricted "at most one."  (Contributed by Jim
       Kingdon, 14-Jul-2018.) $)
    rmo2ilem $p |- ( E. y A. x e. A ( ph -> x = y ) -> E* x e. A ph ) $=
      ( cv wceq wi wral wex wcel wal wrmo impexp albii df-ral bitr4i exbii wmo
      wa nfv nfan mo2r df-rmo sylibr sylbir ) ABFZCFGZHZBDIZCJUGDKZATZUHHZBLZCJ
      ZABDMZUNUJCUNUKUIHZBLUJUMUQBUKAUHNOUIBDPQRUOULBSUPULBCUKACUKCUAEUBUCABDUD
      UEUF $.

    $( 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 ) $=
      ( cv wceq wi wral wrex wex wrmo rexex rmo2ilem syl ) ABFCFGHBDIZCDJPCKABD
      LPCDMABCDENO $.

    $( 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 simplrl simpr simpll simplrr mob syl212anc ex pm5.21ndd sylanb ) A
      DEJDKZELZAMZDNZFELZBMZFGOZGELZCMZPZADEQUQUSMZVAUTVBVDURUTVAUQURBRFGESUAVB
      VAUCVDVACUBUDVDVAVCVDVAMURVAUQURBVCUQURBVAUEZVDVAUFUQUSVAUGVEUQURBVAUHUPU
      SVBDFGEEUNFOUOURABUNFESHTUNGOUOVAACUNGESITUIUJUKULUM $.

    $( 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 $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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 $.

  ${
    $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 ~ sbccsbg 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 $.
    $( Analog 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 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 $.
    $( Analog 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 ` is not
       free). ~ 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 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.)  (Proof shortened by Andrew Salmon,
       29-Jun-2011.) $)
    sbcel12g $p |- ( A e. V -> ( [. A / x ]. B e. C <->
                   [_ A / x ]_ B e. [_ A / x ]_ C ) ) $=
      ( vy vz wcel wsbc cv cab csb wsb dfsbcq2 abbidv eleq12d nfs1v nfab df-csb
      sbab wceq nfel weq sbie vtoclbg eleq12i syl6bbr ) BEHCDHZABIZFJZCHZABIZFK
      ZUJDHZABIZFKZHZABCLZABDLZHUHAGMUKAGMZFKZUNAGMZFKZHZUIUQGBEUHAGBNGJBUAZVAU
      MVCUPVEUTULFUKAGBNOVEVBUOFUNAGBNOPUHVDAGAVAVCUTAFUKAGQRVBAFUNAGQRUBAGUCCV
      ADVCAGFCTAGFDTPUDUEURUMUSUPAFBCSAFBDSUFUG $.

    $( 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 wnel wsbc wn csb wb df-nel sbcbii a1i sbcel12g notbid syl6bbr 3bitrd
    sbcng ) BEFZCDGZABHZCDFZIZABHZUCABHZIZABCJZABDJZGZUBUEKTUAUDABCDLMNUCABESTU
    GUHUIFZIUJTUFUKABCDEOPUHUILQR $.

  $( Distribute proper substitution through an inequality.  (Contributed by
     Andrew Salmon, 18-Jun-2011.) $)
  sbcne12g $p |- ( A e. V -> ( [. A / x ]. B =/= C <-> [_ A / x ]_ B =/=
                   [_ A / x ]_ C ) ) $=
    ( wcel wne wsbc csb wb wceq sbceqg notbid df-ne sbcbii sbcng syl5bb bibi12d
    wn a1i mpbird ) BEFZCDGZABHZABCIZABDIZGZJCDKZABHZSZUEUFKZSZJUBUIUKABCDELMUB
    UDUJUGULUDUHSZABHUBUJUCUMABCDNOUHABEPQUGULJUBUEUFNTRUA $.

  ${
    $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 sbcel12g csbconstg eleq2d bitrd ) BEFZCDFABGABCHZABDHZFND
      FABCDEIMODNABDEJKL $.

    $( 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.) $)
    sbcel2g $p |- ( A e. V -> ( [. A / x ]. B e. C <->
                    B e. [_ A / x ]_ C ) ) $=
      ( wcel wsbc csb sbcel12g csbconstg eleq1d bitrd ) BEFZCDFABGABCHZABDHZFCO
      FABCDEIMNCOABCEJKL $.

    $( 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 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.) $)
    csbcomg $p |- ( ( A e. V /\ B e. W ) ->
                 [_ A / x ]_ [_ B / y ]_ C = [_ B / y ]_ [_ A / x ]_ C ) $=
      ( vz wcel cvv csb wceq elex wsbc wb sbcel2g sbcbidv adantl adantr 3bitr3d
      wa cv sbccom a1i eqrdv syl2an ) CFICJIZDJIZACBDEKZKZBDACEKZKZLDGICFMDGMUG
      UHUAZHUJULUMHUBZUIIZACNZUNUKIZBDNZUNUJIZUNULIZUMUNEIZBDNZACNZVAACNZBDNZUP
      URVCVEOUMVAABCDUCUDUHVCUPOUGUHVBUOACBDUNEJPQRUGVEUROUHUGVDUQBDACUNEJPQSTU
      GUPUSOUHACUNUIJPSUHURUTOUGBDUNUKJPRTUEUF $.
  $}

  ${
    $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 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.) $)
    sbccsbg $p |- ( A e. V ->
                 ( [. A / x ]. ph <-> y e. [_ A / x ]_ { y | ph } ) ) $=
      ( wsbc cv cab wcel csb abid sbcbii sbcel2g syl5bbr ) ABDFCGZACHZIZBDFDEIO
      BDPJIQABDACKLBDOPEMN $.
  $}

  $( Substitution into a wff expressed in using substitution into a class.
     (Contributed by NM, 27-Nov-2005.) $)
  sbccsb2g $p |- ( A e. V ->
               ( [. A / x ]. ph <-> A e. [_ A / x ]_ { x | ph } ) ) $=
    ( wsbc cv cab wcel csb abid sbcbii sbcel12g csbvarg eleq1d bitrd syl5bbr )
    ABCEBFZABGZHZBCEZCDHZCBCRIZHZSABCABJKUATBCQIZUBHUCBCQRDLUAUDCUBBCDMNOP $.

  ${
    $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 $.  $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 sps
      sp impl ) AICJZBIDJZKEFJZLZBMZAMZACBDENFOUKAPULAFQCORULGSULUGKZBDEFOULUGB
      UJBAUAUGBUBUCUMBFQDORUMHSULUGUHUIUKUJAUJBUEUDUFTT $.

    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 ~ sbcie avoids a disjointness condition on ` x ` and
       ` A ` 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 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 syl cvv a1i csbeq1 imbi2d
      bibi12d vex csbeq1a adantl nfnf1 nfal nfa1 wnfc nfcsb1v sp nfsbcd sbciedf
      vtoclg imp ) DFHABIZCJZACEKZBDKZACBDELZKZMZURUSBGNZKZACBVDELZKZMZOURVCOGD
      FVDDPZVHVCURVIVEUTVGVBUSBVDDQVIVFVAPVGVBMBVDDEUAACVFVAQRUCUBURUSVGBVDSVDS
      HURGUDTBNVDPZUSVGMZURVJEVFPVKBVDEUEACEVFQRUFUQBCABUGUHURABCVFUQCUIBVFUJUR
      BVDEUKTUQCULUMUNUOUP $.

    $( 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 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.) $)
    csbidmg $p |- ( A e. V -> [_ A / x ]_ [_ A / x ]_ B = [_ A / x ]_ B ) $=
      ( wcel cvv csb wceq elex csbnest1g csbconstg csbeq1d eqtrd syl ) BDEBFEZA
      BABCGZGZPHBDIOQAABBGZCGPABBCFJOARBCABBFKLMN $.
  $}

  ${
    $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 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 cv csb wceq wal cvv wcel vex csbtt mpan wsb wsbc sbsbc sbcel2g ax-mp
      wb eqtr4d alrimivv nfv wnf eleq2 bitri 3bitr4g 2alimi sbnf2 sylibr impbii
      wnfc nfcd ) ADULZABFZDGZACFZDGZHZCIBIZUNUSBCUNUPDURUOJKZUNUPDHBLZAUODJMNU
      QJKZUNURDHCLZAUQDJMNUAUBUTAEDUTEUCUTEFZDKZABOZVFACOZTZCIBIVFAUDUSVIBCUSVE
      UPKZVEURKZVGVHUPURVEUEVGVFAUOPZVJVFABQVAVLVJTVBAUOVEDJRSUFVHVFAUQPZVKVFAC
      QVCVMVKTVDAUQVEDJRSUFUGUHVFABCUIUJUMUK $.
  $}

  ${
    $d y z A $.  $d z ph $.  $d x y z $.  $d V z $.
    $( Move substitution into a class abstraction.  (Contributed by NM,
       13-Dec-2005.)  (Proof shortened by Andrew Salmon, 9-Jul-2011.) $)
    csbabg $p |- ( A e. V ->
                 [_ A / x ]_ { y | ph } = { y | [. A / x ]. ph } ) $=
      ( vz wcel cab csb wsbc cv sbccom wsb df-clab sbsbc sbcbii 3bitr4i sbcel2g
      bitri syl5rbb eqrdv ) DEGZFBDACHZIZABDJZCHZFKZUFGZUGUCGZBDJZUBUGUDGUECUGJ
      ZACUGJZBDJUHUJACBUGDLUHUECFMUKUEFCNUECFOSUIULBDUIACFMULAFCNACFOSPQBDUGUCE
      RTUA $.
  $}

  ${
    $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 ) $=
      ( vz vv cv wcel wa wex wsbc nfcri wrex csb nfv nfcsb1v nfsbc1v id csbeq1a
      nfan weq eleq12d sbceq1a anbi12d cbvex nfcv nfcsb nfsbc csbeq1 cab df-csb
      eleq2d sbie sbsbc bitr3i abbi2i eqtr4i syl6eq dfsbcq syl6bb bitri 3bitr4i
      wsb df-rex ) COZEPZAQZCRZDOZFPZBQZDRZACEUABDFUAVPMOZCWAEUBZPZACWASZQZMRVT
      VOWECMVOMUCWCWDCCMWBCWAEUDTACWAUEUHCMUIZVNWCAWDWFVMWAEWBWFUFCWAEUGUJACWAU
      KULUMWEVSMDWCWDDDMWBDCWAEDWAUNZGUOTADCWAWGIUPUHVSMUCMDUIZWCVRWDBWHWAVQWBF
      WHUFWHWBCVQEUBZFCWAVQEUQWINOZEPZCVQSZNURFCNVQEUSWLNFWJFPZWKCDVKWLWKWMCDCN
      FHTCDUIEFWJKUTVAWKCDVBVCVDVEVFUJWHWDACVQSZBACWAVQVGWNACDVKBACDVBABCDJLVAV
      CVHULUMVIACEVLBDFVLVJ $.

    $( A more general version of ~ cbvreuv that has no distinct variable
       rextrictions.  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 $)

  $( 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 $.

  ${
    $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.  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.  Contrast this operation with difference ` ( A \ B ) `
       ( ~ df-dif ) and intersection ` ( A i^i B ) ` ( ~ df-in ).  (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.  Contrast this operation with union
       ` ( A u. B ) ` ( ~ df-un ) and difference ` ( A \ B ) ` ( ~ df-dif ).
       (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.
     Note that ` A C_ A ` (proved in ~ ssid ).  For a more traditional
     definition, but requiring a dummy variable, see ~ dfss2 .  Other possible
     definitions are given by ~ dfss3 , ~ ssequn1 , ~ ssequn2 , and ~ sseqin2 .
     (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,
     3-Sep-2004.) $)
  dfss $p |- ( A C_ B <-> A = ( A i^i B ) ) $=
    ( wss cin wceq df-ss eqcom bitri ) ABCABDZAEAIEABFIAGH $.

  ${
    $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 $.
  $}

  ${
    $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,
       5-Aug-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, 5-Aug-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, 5-Aug-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 $.
  $}

  ${
    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.) $)
    eqrd $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, 5-Aug-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, 5-Aug-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 ) $.
    $( B 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 ) $.
    $( B 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, 5-Aug-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.  One direction of Exercise 13 of
       [TakeutiZaring] p. 18.  (Contributed by Jim Kingdon, 15-Jul-2018.) $)
    nssr $p |- ( E. x ( x e. A /\ -. x e. B ) -> -. A C_ B ) $=
      ( cv wcel wn wa wex wi wal wss exanaliim dfss2 sylnibr ) ADZBEZOCEZFGAHPQ
      IAJBCKPQALABCMN $.
  $}

  ${
    $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 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 $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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 nfrabxy nfcxfr ) ABCGFHCIZJZFB
      KFBCLRAFBQAAFCEMNDOP $.
  $}

  $( 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 $.

  ${
    $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 wn wa simpl pm4.45im imanim eldif sylnibr anim2i impbii
      wi sylbi difeqri ) CABADZACEZAFZTSFZGZHZUAUAUCIUAUATBFZUAPZHUDUAUEJUFUCUA
      UFUEUAGHUBUEUAKTBALMNQOR $.

    $( 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 $.
    ddifnel.1 $e |- ( -. x e. ( _V \ A ) -> x e. A ) $.
    $( Double complement under universal class.  The hypothesis corresponds to
       stability of membership in ` A ` , which is weaker than decidability
       (see ~ dcimpstab ).  Actually, the conclusion is a characterization of
       stability of membership in a class (see ~ ddifstab ) .  Exercise 4.10(s)
       of [Mendelson] p. 231, but with an additional hypothesis.  For a version
       without a hypothesis, but which only states that ` A ` is a subset of
       ` _V \ ( _V \ A ) ` , see ~ ddifss .  (Contributed by Jim Kingdon,
       21-Jul-2018.) $)
    ddifnel $p |- ( _V \ ( _V \ A ) ) = A $=
      ( cvv cdif cv wcel wn wa adantl elndif vex jctil impbii difeqri ) ADDBEZB
      AFZDGZQPGHZIQBGZSTRCJTSRQBDKALMNO $.
  $}

  ${
    $d x A $.
    $( A class is equal to its double complement if and only if it is stable
       (that is, membership in it is a stable property).  (Contributed by BJ,
       12-Dec-2021.) $)
    ddifstab $p |- ( ( _V \ ( _V \ A ) ) = A <-> A. x STAB x e. A ) $=
      ( cvv cdif wceq cv wb wal wstab dfcleq wn wi wa eldif vex biantrur bitr4i
      wcel notbii bitri 3bitr2i bibi1i bi1 notnot impbid1 impbii df-stab albii
      id ) CCBDZDZBEAFZUKRZULBRZGZAHUNIZAHAUKBJUOUPAUOUNKZKZUNLZUPUOURUNGZUSUMU
      RUNUMULCRZULUJRZKZMVCURULCUJNVAVCAOZPVBUQVBVAUQMUQULCBNVAUQVDPQSUAUBUTUSU
      RUNUCUSURUNUSUIUNUDUEUFTUNUGQUHT $.
  $}

  ${
    $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 bicomi wn df-nel anbi2i eldif bitri imbi1i
    ralbii2 ) BEZDFZAGZABCCDHZTCIZUBGZUDUAJZAGZTUCIZAGUGUEUDUAAKLUFUHAUFUDTDIMZ
    JZUHUAUIUDTDNOUHUJTCDPLQRQS $.

$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  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 $.
  $}

  ${
    $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, 5-Aug-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, 5-Aug-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.  (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 .  (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 union of two classes.  (Contributed by NM,
       5-Aug-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 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 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 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 $.
  $}

  ${
    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 $.
  $}

  ${
    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, 5-Aug-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,
       5-Aug-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 frequently-used variant of subclass definition ~ df-ss .  (Contributed
     by NM, 10-Jan-2015.) $)
  dfss1 $p |- ( A C_ B <-> ( B i^i A ) = A ) $=
    ( wss cin wceq df-ss incom eqeq1i bitri ) ABCABDZAEBADZAEABFJKAABGHI $.

  $( Another definition of subclasshood.  Similar to ~ df-ss , ~ dfss , and
     ~ dfss1 .  (Contributed by David Moews, 1-May-2017.) $)
  dfss5 $p |- ( A C_ B <-> A = ( B i^i A ) ) $=
    ( wss cin wceq dfss1 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 nfrabxy nfcxfr ) ABCGFHCIZFBJFBCKOAFBAF
      CELDMN $.
  $}

  ${
    $d A y $.  $d C y $.  $d D y $.  $d x y $.
    $( Distribute proper substitution through an intersection relation.
       (Contributed by Alan Sare, 22-Jul-2012.) $)
    csbing $p |- ( A e. B -> [_ A / x ]_ ( C i^i D ) =
                  ( [_ A / x ]_ C i^i [_ A / x ]_ D ) ) $=
      ( vy cv cin csb wceq csbeq1 ineq12d eqeq12d nfcsb1v csbeq1a csbief vtoclg
      vex nfin ) AFGZDEHZIZATDIZATEIZHZJABUAIZABDIZABEIZHZJFBCTBJZUBUFUEUIATBUA
      KUJUCUGUDUHATBDKATBEKLMATUAUEFRAUCUDATDNATENSAGTJDUCEUDATDOATEOLPQ $.
  $}

  ${
    $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 $.

  $( 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 ) $=
    ( dfss1 ) 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 wcel elin simplbi ssriv ) CABDZACEZJFKAFKBFKABGHI $.
  $}

  $( 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 cin wa ssin biimpi syl2anc ) ABCGZBDGZBCDHGZEFMNIOBCDJKL $.
  $}

  ${
    $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 $.

$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  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 $.

  ${
    $d x A $.  $d x B $.
    $( Double complement and subset.  Similar to ~ ddifss but inside a class
       ` B ` instead of the universal class ` _V ` .  In classical logic the
       subset operation on the right hand side could be an equality (that is,
       ` A C_ B <-> ( B \ ( B \ A ) ) = A ` ).  (Contributed by Jim Kingdon,
       24-Jul-2018.) $)
    ssddif $p |- ( A C_ B <-> A C_ ( B \ ( B \ A ) ) ) $=
      ( vx cv wcel wi wal cdif wss wa wn simpr con2i anim2i eldif notbii anbi2i
      ancr bitri dfss2 sylibr syl6 eldifi imim2i impbii albii 3bitr4i ) CDZAEZU
      HBEZFZCGUIUHBBAHZHZEZFZCGABIAUMIUKUOCUKUOUKUIUJUIJZUNUIUJRUPUJUJUIKZJZKZJ
      ZUNUIUSUJURUIUJUQLMNUNUJUHULEZKZJUTUHBULOVBUSUJVAURUHBAOPQSUAUBUNUJUIUHBU
      LUCUDUEUFCABTCAUMTUG $.

    $( Union of two classes and class difference.  In classical logic this
       would be an equality.  (Contributed by Jim Kingdon, 24-Jul-2018.) $)
    unssdif $p |- ( A u. B ) C_ ( _V \ ( ( _V \ A ) \ B ) ) $=
      ( vx cun cvv cdif cv wcel wo wn wa vex eldif mpbiran anbi1i ioran 3bitr4i
      biimpi con2i elun 3imtr4i ssriv ) CABDZEEAFZBFZFZCGZAHZUGBHZIZUGUEHZJZUGU
      CHUGUFHZUKUJUKUJJZUGUDHZUIJZKUHJZUPKUKUNUOUQUPUOUGEHZUQCLZUGEAMNOUGUDBMUH
      UIPQRSUGABTUMURULUSUGEUEMNUAUB $.

    $( Intersection of two classes and class difference.  In classical logic
       this would be an equality.  (Contributed by Jim Kingdon,
       24-Jul-2018.) $)
    inssdif $p |- ( A i^i B ) C_ ( A \ ( _V \ B ) ) $=
      ( vx cin cvv cdif cv wcel wa wn elndif anim2i elin eldif 3imtr4i ssriv )
      CABDZAEBFZFZCGZAHZTBHZIUATRHJZITQHTSHUBUCUATBEKLTABMTARNOP $.

    $( 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 cdif cv wcel wa wn wfal wi ax-in2 expd dfnot syl6ibr com12 imdistani
      cin simpr con3i eldif anim2i impbii notbii anbi2i bitri 3bitr4i eqriv
      elin ) CAABQZDZABDZCEZAFZUMULBFZGZHZGZUMUNHZGZULUJFZULUKFUQUSUMUPURUPUMUR
      UPUMUNIJURUPUMUNIUOIKLUNMNOPURUPUMUOUNUMUNRSUAUBUTUMULUIFZHZGUQULAUITVBUP
      UMVAUOULABUHUCUDUEULABTUFUG $.
  $}

  $( Double complement under universal class.  In classical logic (or given an
     additional hypothesis, as in ~ ddifnel ), this is equality rather than
     subset.  (Contributed by Jim Kingdon, 24-Jul-2018.) $)
  ddifss $p |- A C_ ( _V \ ( _V \ A ) ) $=
    ( cvv wss cdif ssv ssddif mpbi ) ABCABBADDCAEABFG $.

  ${
    $d x A $.  $d x B $.
    $( Union as a subset of class complement and intersection (De Morgan's
       law).  One direction of the definition of union in [Mendelson] p. 231.
       This would be an equality, rather than subset, in classical logic.
       (Contributed by Jim Kingdon, 25-Jul-2018.) $)
    unssin $p |- ( A u. B ) C_ ( _V \ ( ( _V \ A ) i^i ( _V \ B ) ) ) $=
      ( vx cun cvv cdif cin cv wcel wo wn wa oranim eldifn anim12i nsyl sylnibr
      elin elun vex eldif mpbiran 3imtr4i ssriv ) CABDZEEAFZEBFZGZFZCHZAIZUJBIZ
      JZUJUHIZKZUJUEIUJUIIZUMUJUFIZUJUGIZLZUNUMUKKZULKZLUSUKULMUQUTURVAUJEANUJE
      BNOPUJUFUGRQUJABSUPUJEIUOCTUJEUHUAUBUCUD $.

    $( Intersection in terms of class difference and union (De Morgan's law).
       Similar to Exercise 4.10(n) of [Mendelson] p. 231.  This would be an
       equality, rather than subset, in classical logic.  (Contributed by Jim
       Kingdon, 25-Jul-2018.) $)
    inssun $p |- ( A i^i B ) C_ ( _V \ ( ( _V \ A ) u. ( _V \ B ) ) ) $=
      ( vx cin cvv cdif cv wcel wa wn wo pm3.1 eldifn orim12i nsyl elun sylnibr
      cun elin vex eldif mpbiran 3imtr4i ssriv ) CABDZEEAFZEBFZRZFZCGZAHZUJBHZI
      ZUJUHHZJZUJUEHUJUIHZUMUJUFHZUJUGHZKZUNUMUKJZULJZKUSUKULLUQUTURVAUJEAMUJEB
      MNOUJUFUGPQUJABSUPUJEHUOCTUJEUHUAUBUCUD $.
  $}

  $( Intersection of two classes and class difference.  In classical logic,
     such as Exercise 4.10(q) of [Mendelson] p. 231, this is an equality rather
     than subset.  (Contributed by Jim Kingdon, 26-Jul-2018.) $)
  inssddif $p |- ( A i^i B ) C_ ( A \ ( A \ B ) ) $=
    ( cin cdif wss inss1 ssddif mpbi difin difeq2i sseqtri ) ABCZAALDZDZAABDZDL
    AELNEABFLAGHMOAABIJK $.

  ${
    $d x A $.  $d x B $.
    $( Intersection with universal complement.  Remark in [Stoll] p. 20.
       (Contributed by NM, 17-Aug-2004.) $)
    invdif $p |- ( A i^i ( _V \ B ) ) = ( A \ B ) $=
      ( vx cvv cdif cin cv wcel wa vex eldif mpbiran anbi2i elin 3bitr4i eqriv
      wn ) CADBEZFZABEZCGZAHZUARHZIUBUABHQZIUASHUATHUCUDUBUCUADHUDCJUADBKLMUAAR
      NUAABKOP $.

    $( 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 ) $=
      ( vx cdif cin cv wcel wn wa anabs5 elin eldif anbi2i bitri 3bitr4i eqriv
      ) CAABDZEZQCFZAGZTSBGHZIZIZUBSRGZSQGZTUAJUDTUEIUCSAQKUEUBTSABLZMNUFOP $.
  $}

  $( 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 $.

  $( 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 $.

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( 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 ) ) $=
      ( vx cun cdif cin cv wcel wa wn eldif anbi12i elin wo notbii anbi2i bitri
      elun ioran anandi 3bitr4ri eqriv ) DABCEZFZABFZACFZGZDHZUFIZUIUGIZJUIAIZU
      IBIZKZJZULUICIZKZJZJZUIUHIUIUEIZUJUOUKURUIABLUIACLMUIUFUGNUTULUNUQJZJZUSU
      TULUMUPOZKZJZVBUTULUIUDIZKZJVEUIAUDLVGVDULVFVCUIBCSPQRVDVAULUMUPTQRULUNUQ
      UARUBUC $.
  $}

  $( 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 $.

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Distributive law for class difference.  In classical logic, for example,
       theorem 40 of [Suppes] p. 29, this is an equality instead of subset.
       (Contributed by Jim Kingdon, 26-Jul-2018.) $)
    difindiss $p |- ( ( A \ B ) u. ( A \ C ) ) C_ ( A \ ( B i^i C ) ) $=
      ( vx cdif cun cin cv wcel wo elun wa wn orbi12i andi bitr4i pm3.14 anim2i
      eldif sylbi elin notbii anbi2i bitr2i sylib ssriv ) DABEZACEZFZABCGZEZDHZ
      UIIULUGIZULUHIZJZULUKIZULUGUHKUOULAIZULBIZULCIZLZMZLZUPUOUQURMZUSMZJZLZVB
      UOUQVCLZUQVDLZJVFUMVGUNVHULABSULACSNUQVCVDOPVEVAUQURUSQRTUPUQULUJIZMZLVBU
      LAUJSVJVAUQVIUTULBCUAUBUCUDUETUF $.
  $}

  $( 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 cv wcel wn wa elin notbii anbi12i eldif anbi1i bitri an32 simpl
      cin con3i wfal anim2i ax-in2 expcomd impcom dfnot sylibr adantll 3bitr4ri
      wi jca impbii eqriv ) DABEZCRZACRZBCRZEZDFZUOGZURUPGZHZIURAGZURCGZIZURBGZ
      VCIZHZIZURUQGURUNGZUSVDVAVGURACJUTVFURBCJKLURUOUPMVIVBVEHZIZVCIZVHVIURUMG
      ZVCIVLURUMCJVMVKVCURABMNOVLVDVJIZVHVBVJVCPVNVHVJVGVDVFVEVEVCQSUAVHVDVJVDV
      GQVCVGVJVBVCVGIVETUIZVJVGVCVOVGVEVCTVFTUBUCUDVEUEUFUGUJUKOOUHUL $.
  $}

  $( Set difference with a set difference.  In classical logic this would be
     equality rather than subset.  (Contributed by Jim Kingdon,
     27-Jul-2018.) $)
  difdif2ss $p |- ( ( A \ B ) u. ( A i^i C ) ) C_ ( A \ ( B \ C ) ) $=
    ( cin cun cvv wss inssdif unss2 ax-mp difindiss sstri invdif eqcomi difeq2i
    cdif sseqtr4i ) ABPZACDZEZABFCPZDZPZABCPZPTRAUAPZEZUCSUEGTUFGACHSUERIJABUAK
    LUDUBAUBUDBCMNOQ $.

  $( 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.  In classical logic, this would be
     equality rather than subset, as in Theorem 5.2(13') of [Stoll] p. 19.
     (Contributed by Jim Kingdon, 27-Jul-2018.) $)
  indmss $p |- ( ( _V \ A ) u. ( _V \ B ) ) C_ ( _V \ ( A i^i B ) ) $=
    ( cvv difindiss ) 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 $.
    $( A subset relationship involving class union and class difference.  In
       classical logic, this would be equality rather than subset, as in the
       first equality of Exercise 13 of [TakeutiZaring] p. 22.  (Contributed by
       Jim Kingdon, 28-Jul-2018.) $)
    undif3ss $p |- ( A u. ( B \ C ) ) C_ ( ( A u. B ) \ ( C \ A ) ) $=
      ( vx cdif cun cv wcel wo wn wa elun eldif orbi2i orc olc jca anim12i jaoi
      simpl orcd adantr adantl ccase impbii 3bitri biimpri pm4.53r sylibr sylbi
      sylnibr ssriv ) DABCEZFZABFZCAEZEZDGZUNHZURAHZURBHZIZURCHZJZUTIZKZURUQHZU
      SUTURUMHZIUTVAVDKZIZVFURAUMLVHVIUTURBCMNVJVFUTVFVIUTVBVEUTVAOUTVDPQVAVBVD
      VEVAUTPVDUTORSUTVDVAUTVJUTVDKUTVIUTVDTUAVIUTPUTVJUTUTVIOZUBUTVJVAVKUCUDUE
      UFVFURUOHZURUPHZJZKVGVBVLVEVNVLVBURABLUGVEVCUTJKVMVCUTUHURCAMUKRURUOUPMUI
      UJUL $.

    $( Represent a set 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 $.

  $( Two ways to express symmetric difference.  This theorem shows the
     equivalence of the definition of symmetric difference in [Stoll] p. 13 and
     the restated definition in Example 4.1 of [Stoll] p. 262.  (Contributed by
     NM, 17-Aug-2004.) $)
  symdif1 $p |- ( ( A \ B ) u. ( B \ A ) ) = ( ( A u. B ) \ ( A i^i B ) ) $=
    ( cun cin cdif difundir difin incom difeq2i eqtri uneq12i eqtr2i ) ABCABDZE
    AMEZBMEZCABEZBAEZCABMFNPOQABGOBBADZEQMRBABHIBAGJKL $.

$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Class abstractions with difference, union, and intersection of two classes
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)
  ${
    $d x A $.  $d x B $.
    $( Expressing symmetric difference with exclusive-or or two differences.
       (Contributed by Jim Kingdon, 28-Jul-2018.) $)
    symdifxor $p |- ( ( A \ B ) u. ( B \ A ) ) =
                  { x | ( x e. A \/_ x e. B ) } $=
      ( cv wcel wxo cdif cun wo wn eldif orbi12i elun excxor ancom orbi2i bitri
      wa 3bitr4i abbi2i ) ADZBEZUACEZFZABCGZCBGZHZUAUEEZUAUFEZIUBUCJRZUCUBJZRZI
      ZUAUGEUDUHUJUIULUABCKUACBKLUAUEUFMUDUJUKUCRZIUMUBUCNUNULUJUKUCOPQST $.
  $}

  ${
    $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 cab df-rab abid2 eqcomi ineq12i inab elin anbi1i bitri
      wa an32 eqtr4i abbii ) ABCEZDFBGZCHZARZBIZUCDHZBIZFZABCDFZEZUBUFDUHABCJUH
      DBDKLMUKUCUJHZARZBIZUIABUJJUIUEUGRZBIUNUEUGBNUMUOBUMUDUGRZARUOULUPAUCCDOP
      UDUGASQUATTT $.
  $}

  $( 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
       NM, 20-Sep-2003.) $)
    dfrab2 $p |- { x e. A | ph } = ( { x | ph } i^i A ) $=
      ( crab cv wcel wa cab cin df-rab inab abid2 ineq1i eqtr3i incom 3eqtri )
      ABCDBECFZAGBHZCABHZIZSCIABCJQBHZSIRTQABKUACSBCLMNCSOP $.

    $( 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 $.

    $( 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 prth sylan exp4b com23 a2d imp4a alimdv imp euimmo syl
      eu5 simplbi2 syl9 imp32 sylibr ) ACDFZBCEGZHDEIZABJZCDKZHZCTZDLZAHZCMZVEE
      LZBHZCNZHZACDGZUSVHUTVKACDOBCEPQVDVLHVGCNZVMVDVHVKVNVDVKVGCUAZVHVNVDVGVJJ
      ZCRZVKVOJVCVAVFVBJZCRZVQVBCDUBVAVSVQVAVRVPCVAVRVFAVJVAVFVBAVJJZVAVBVFVTVA
      VBVFAVJVAVFVIJVBVPDEVEUCVFVIABUDUEUFUGUHUIUJUKSVGVJCULUMVNVHVOVGCUNUOUPUQ
      ACDPURS $.

    $( 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 cv wcel idd rgen reuss2 mpanl2 3impb ) CDEZABC
      FZABDGZABCGZRAAHZBCISTJUAUBBCBKCLAMNAABCDOPQ $.

    $( 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 $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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, 5-Aug-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 cdif wa df-nul eleq2i eldif pm3.24 eqid notnoti 2false
    cvv 3bitri abbi2i ) ABZSCZDZAESEFSPPGZFSPFZUCDHZUAEUBSIJSPPKUDUAUCLTSMNOQR
    $.

  $( Alternate definition of the empty set.  (Contributed by NM,
     25-Mar-2004.) $)
  dfnul3 $p |- (/) = { x e. A | -. x e. A } $=
    ( weq wn cv wcel wa c0 crab equid notnoti pm3.24 2false abbii dfnul2 df-rab
    cab 3eqtr4i ) AACZDZAQAEBFZUADZGZAQHUBABITUCATUCSAJKUALMNAOUBABPR $.

  $( The empty set has no elements.  Theorem 6.14 of [Quine] p. 44.
     (Contributed by NM, 5-Aug-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, it is not empty.  A set with elements is also
     inhabited, see ~ elex2 .  (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, it is not empty.  A set with elements is also
     inhabited, see ~ elex2 .  (Contributed by NM, 31-Dec-1993.) $)
  ne0i $p |- ( B e. A -> A =/= (/) ) $=
    ( wcel c0 n0i neneqad ) BACADABEF $.

  $( The universal class is not equal to the empty set.  (Contributed by NM,
     11-Sep-2008.) $)
  vn0 $p |- _V =/= (/) $=
    ( vx cv cvv wcel c0 wne vex ne0i ax-mp ) ABZCDCEFAGCJHI $.

  $( The universal class is inhabited.  (Contributed by Jim Kingdon,
     17-Dec-2018.) $)
  vn0m $p |- E. x x e. _V $=
    ( cv cvv wcel wex vex 19.8a ax-mp ) ABCDZIAEAFIAGH $.

  ${
    n0rf.1 $e |- F/_ x A $.
    $( An inhabited class is nonempty.  Following the Definition of [Bauer],
       p. 483, we call a class ` A ` nonempty if ` A =/= (/) ` and inhabited if
       it has at least one element.  In classical logic these two concepts are
       equivalent, for example see Proposition 5.17(1) of [TakeutiZaring]
       p. 20.  This version of ~ n0r requires only that ` x ` not be free in,
       rather than not occur in, ` A ` .  (Contributed by Jim Kingdon,
       31-Jul-2018.) $)
    n0rf $p |- ( E. x x e. A -> A =/= (/) ) $=
      ( cv wcel wex wn wal c0 wne exalim wceq wb nfcv cleqf noel nbn necon3abii
      albii bitr4i sylibr ) ADZBEZAFUCGZAHZGBIJUCAKUEBIBILUCUBIEZMZAHUEABICAINO
      UDUGAUFUCUBPQSTRUA $.
  $}

  ${
    $d x A $.
    $( An inhabited class is nonempty.  See ~ n0rf for more discussion.
       (Contributed by Jim Kingdon, 31-Jul-2018.) $)
    n0r $p |- ( E. x x e. A -> A =/= (/) ) $=
      ( nfcv n0rf ) ABABCD $.

    $( An inhabited class is nonempty.  See ~ n0rf for more discussion.
       (Contributed by Jim Kingdon, 31-Jul-2018.) $)
    neq0r $p |- ( E. x x e. A -> -. A = (/) ) $=
      ( cv wcel wex c0 n0r neneqd ) ACBDAEBFABGH $.
  $}

  ${
    $d x A $.  $d x ph $.
    reximdva0m.1 $e |- ( ( ph /\ x e. A ) -> ps ) $.
    $( Restricted existence deduced from inhabited class.  (Contributed by Jim
       Kingdon, 31-Jul-2018.) $)
    reximdva0m $p |- ( ( ph /\ E. x x e. A ) -> E. x e. A ps ) $=
      ( cv wcel wex wa wrex ex ancld eximdv imp df-rex sylibr ) ACFDGZCHZIQBIZC
      HZBCDJARTAQSCAQBAQBEKLMNBCDOP $.
  $}

  ${
    $d A x $.
    $( A case of equivalence of "at most one" and "only one".  If a class is
       inhabited, that class having at most one element is equivalent to it
       having only one element.  (Contributed by Jim Kingdon, 31-Jul-2018.) $)
    n0mmoeu $p |- ( E. x x e. A -> ( E* x x e. A <-> E! x x e. A ) ) $=
      ( cv wcel exmoeu2 ) ACBDAE $.
  $}

  $( 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 $.
    $( 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 ) $=
      ( c0 wceq cv wcel wb wal wn nfcv cleqf noel nbn albii bitr4i ) BCDAEZBFZP
      CFZGZAHQIZAHABCABJACJKTSARQPLMNO $.

    $( The universe contains every set.  (Contributed by NM, 11-Sep-2006.) $)
    eqv $p |- ( A = _V <-> A. x x e. A ) $=
      ( cvv wceq cv wcel wb wal dfcleq vex tbt albii bitr4i ) BCDAEZBFZNCFZGZAH
      OAHABCIOQAPOAJKLM $.
  $}

  ${
    $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 ph $.
    $( The class builder of a decidable proposition not containing the
       abstraction variable is either the universal class or the empty set.
       (Contributed by Jim Kingdon, 1-Aug-2018.) $)
    abvor0dc $p |- ( DECID ph -> ( { x | ph } = _V \/ { x | ph } = (/) ) ) $=
      ( wdc wn wo cab cvv wceq c0 df-dc cv wcel id vex a1i 2thd abbi1dv 2falsed
      noel orim12i sylbi ) ACAADZEABFZGHZUCIHZEAJAUDUBUEAABGAABKZGLZAMUGABNOPQU
      BABIUBAUFILZUBMUHDUBUFSORQTUA $.
  $}

  $( Nonempty class abstraction.  (Contributed by Jim Kingdon, 1-Aug-2018.) $)
  abn0r $p |- ( E. x ph -> { x | ph } =/= (/) ) $=
    ( wex cv cab wcel c0 wne abid exbii nfab1 n0rf sylbir ) ABCBDABEZFZBCNGHOAB
    ABIJBNABKLM $.

  $( Non-empty restricted class abstraction.  (Contributed by Jim Kingdon,
     1-Aug-2018.) $)
  rabn0r $p |- ( E. x e. A ph -> { x e. A | ph } =/= (/) ) $=
    ( cv wcel wa wex cab c0 wne wrex crab abn0r df-rex df-rab neeq1i 3imtr4i )
    BDCEAFZBGRBHZIJABCKABCLZIJRBMABCNTSIABCOPQ $.

  ${
    $d x y $.  $d A y $.  $d ph y $.
    $( Inhabited restricted class abstraction.  (Contributed by Jim Kingdon,
       18-Sep-2018.) $)
    rabn0m $p |- ( E. y y e. { x e. A | ph } <-> E. x e. A ph ) $=
      ( wrex cv wcel wa wex crab df-rex rabid exbii nfv cab df-rab eleq2i nfxfr
      nfsab1 eleq1 cbvex 3bitr2ri ) ABDEBFZDGAHZBIUCABDJZGZBICFZUEGZCIABDKUFUDB
      ABDLMUFUHBCUFCNUHUGUDBOZGBUEUIUGABDPQUDBCSRUCUGUETUAUB $.
  $}

  $( 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.) $)
  rab0 $p |- { x e. (/) | ph } = (/) $=
    ( cv c0 wcel wa wceq wn crab noel intnanr equid notnoti 2false abbii df-rab
    cab dfnul2 3eqtr4i ) BCZDEZAFZBQTTGZHZBQABDIDUBUDBUBUDUAATJKUCBLMNOABDPBRS
    $.

  ${
    $d x y $.  $d A y $.  $d ph y $.

    $( Condition for a restricted class abstraction to be empty.  (Contributed
       by Jeff Madsen, 7-Jun-2010.) $)
    rabeq0 $p |- ( { x e. A | ph } = (/) <-> A. x e. A -. ph ) $=
      ( vy cv wcel wn wi wa wral crab c0 wceq imnan albii df-ral bitri 3bitr4ri
      wal wsb sbn nfv sb8 eq0 cab df-rab eleq2i df-clab notbii ) BECFZAGZHZBSUJ
      AIZGZBSZUKBCJABCKZLMZULUNBUJANOUKBCPUNBDTZDSUMBDTZGZDSZUOUQURUTDUMBDUAOUN
      BDUNDUBUCUQDEZUPFZGZDSVADUPUDVDUTDVCUSVCVBUMBUEZFUSUPVEVBABCUFUGUMDBUHQUI
      OQRR $.

    $( Condition for a class abstraction to be empty.  (Contributed by Jim
       Kingdon, 12-Aug-2018.) $)
    abeq0 $p |- ( { x | ph } = (/) <-> A. x -. ph ) $=
      ( vy wn wsb wal cab c0 wceq sbn albii nfv sb8 cv eq0 df-clab notbii bitri
      wcel 3bitr4ri ) ADZBCEZCFABCEZDZCFZUABFABGZHIZUBUDCABCJKUABCUACLMUGCNUFSZ
      DZCFUECUFOUIUDCUHUCACBPQKRT $.
  $}

  ${
    $d A x $.
    $( Law of excluded middle given decidability, in terms of restricted class
       abstractions.  (Contributed by Jim Kingdon, 2-Aug-2018.) $)
    rabxmdc $p |- ( A. x DECID ph ->
        A = ( { x e. A | ph } u. { x e. A | -. ph } ) ) $=
      ( wdc wal wn wo crab cun wral wceq cv wcel wi exmiddc alimi df-ral sylibr
      a1d rabid2 unrab syl6eqr ) ADZBEZCAAFZGZBCHZABCHUEBCHIUDUFBCJZCUGKUDBLCMZ
      UFNZBEUHUCUJBUCUFUIAOSPUFBCQRUFBCTRAUEBCUAUB $.

    $( 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 rabeq0 cv wcel pm3.24 a1i mprgbir eqtri )
      ABCDAEZBCDFARGZBCDZHARBCITHJSEZBCSBCKUABLCMANOPQ $.
  $}

  ${
    $d x A $.
    $( The union of a class with the empty set is itself.  Theorem 24 of
       [Suppes] p. 27.  (Contributed by NM, 5-Aug-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, 5-Aug-1993.) $)
    in0 $p |- ( A i^i (/) ) = (/) $=
      ( vx c0 cv wcel wa noel bianfi bicomi ineqri ) BACCBDZCEZKAEZLFLMKGHIJ $.
  $}

  $( 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, 5-Aug-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 $.

  ${
    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 wss wceq cv wcel pm2.21i abssi ss0 ax-mp ) ABDZEFNEGABEABHEICJKN
      LM $.
  $}

  ${
    $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.) $)
    csbprc $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 $.
  $}

  $( 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 $.

  ${
    $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 $.

  $( Intersection with a subclass of a disjoint class.  (Contributed by FL,
     24-Jan-2007.) $)
  ssdisj $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 $.

  $( 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 implies empty intersection with difference from the universal
     class.  (Contributed by NM, 17-Sep-2003.) $)
  ssindif0im $p |- ( A C_ B -> ( A i^i ( _V \ B ) ) = (/) ) $=
    ( wss cvv cdif cin c0 wceq ddifss sstr mpan2 disj2 sylibr ) ABCZADDBEZEZCZA
    OFGHNBPCQBIABPJKAOLM $.

  $( 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.) $)
  minel $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 indi equncomi uneq2 un0 syl6eq syl5eq df-ss 3bitr4g
      eqeq1d ) ABDZEFZABCGZDZAFACDZAFATHACHSUAUBASUAUBRGZUBUARUBABCIJSUCUBEGUBR
      EUBKUBLMNQATOACOP $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Subclass implies empty difference.  One direction of Exercise 7 of
       [TakeutiZaring] p. 22.  In classical logic this would be an equivalence.
       (Contributed by Jim Kingdon, 2-Aug-2018.) $)
    ssdif0im $p |- ( A C_ B -> ( A \ B ) = (/) ) $=
      ( vx cv wcel wi wal cdif wn wss c0 wceq wa imanim eldif sylnibr alimi eq0
      dfss2 3imtr4i ) CDZAEZUABEZFZCGUAABHZEZIZCGABJUEKLUDUGCUDUBUCIMUFUBUCNUAA
      BOPQCABSCUERT $.
  $}

  $( Universal class equality in terms of empty difference.  (Contributed by
     Jim Kingdon, 3-Aug-2018.) $)
  vdif0im $p |- ( A = _V -> ( _V \ A ) = (/) ) $=
    ( cvv wceq wss cdif c0 vss ssdif0im sylbir ) 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 Jim Kingdon, 3-Aug-2018.) $)
    difrab0eqim $p |-
        ( V = { x e. V | ph } -> ( V \ { x e. V | ph } ) = (/) ) $=
      ( crab wceq wss cdif c0 ssrabeq ssdif0im sylbir ) CABCDZECLFCLGHEABCICLJK
      $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Intersection, subclass, and difference relationship.  In classical logic
       the converse would also hold.  (Contributed by Jim Kingdon,
       3-Aug-2018.) $)
    inssdif0im $p |- ( ( A i^i B ) C_ C -> ( A i^i ( B \ C ) ) = (/) ) $=
      ( vx cv cin wcel wi wal cdif wn c0 wceq wa elin imbi1i imanim sylbi eldif
      wss anbi2i anass 3bitr4ri sylnib alimi dfss2 eq0 3imtr4i ) DEZABFZGZUICGZ
      HZDIUIABCJZFZGZKZDIUJCTUOLMUMUQDUMUIAGZUIBGZNZULKZNZUPUMUTULHVBKUKUTULUIA
      BOPUTULQRURUIUNGZNURUSVANZNUPVBVCVDURUIBCSUAUIAUNOURUSVAUBUCUDUEDUJCUFDUO
      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 ssdif0im ax-mp ) AABAACDEAFAAGH $.

  ${
    $d x A $.
    $( 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.
       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 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 $.

  $( 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 inssdif0im ax-mp ) 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 ssdif0im ax-mp ) ABCZBDKBEFGABHKBIJ $.

  $( Absorption of difference by union.  In classical logic, as Theorem 35 of
     [Suppes] p. 29, this would be equality rather than subset.  (Contributed
     by Jim Kingdon, 4-Aug-2018.) $)
  undif1ss $p |- ( ( A \ B ) u. B ) C_ ( A u. B ) $=
    ( cdif wss cun difss unss1 ax-mp ) ABCZADIBEABEDABFIABGH $.

  $( Absorption of difference by union.  In classical logic, as in Part of
     proof of Corollary 6K of [Enderton] p. 144, this would be equality rather
     than subset.  (Contributed by Jim Kingdon, 4-Aug-2018.) $)
  undif2ss $p |- ( A u. ( B \ A ) ) C_ ( A u. B ) $=
    ( cdif cun undif1ss uncom 3sstr4i ) BACZADBADAHDABDBAEAHFABFG $.

  $( Absorption of difference by union.  (Contributed by NM, 18-Aug-2013.) $)
  undifabs $p |- ( A u. ( A \ B ) ) = A $=
    ( cdif cun ssid difss unssi ssun1 eqssi ) AABCZDAAJAAEABFGAJHI $.

  $( The intersection and class difference of a class with another class are
     contained in the original class.  In classical logic we'd be able to make
     a stronger statement: that everything in the original class is in the
     intersection or the difference (that is, this theorem would be equality
     rather than subset).  (Contributed by Jim Kingdon, 4-Aug-2018.) $)
  inundifss $p |- ( ( A i^i B ) u. ( A \ B ) ) C_ A $=
    ( cin cdif inss1 difss unssi ) ABCABDAABEABFG $.

  $( 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 Jim Kingdon,
     4-Aug-2018.) $)
  undifss $p |- ( A C_ B <-> ( A u. ( B \ A ) ) C_ B ) $=
    ( wss cdif cun wa difss jctr unss sylib ssun1 sstr mpan impbii ) ABCZABADZE
    ZBCZOOPBCZFROSBAGHAPBIJAQCROAPKAQBLMN $.

  $( 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 consequence of inclusion in the union of two classes.  In classical
       logic this would be a biconditional.  (Contributed by Jim Kingdon,
       4-Aug-2018.) $)
    ssundifim $p |- ( A C_ ( B u. C ) -> ( A \ B ) C_ C ) $=
      ( vx cv wcel cun wi wal cdif wss wo wn wa pm5.6r elun eldif 3imtr4i dfss2
      imbi2i imbi1i alimi ) DEZAFZUCBCGZFZHZDIUCABJZFZUCCFZHZDIAUEKUHCKUGUKDUDU
      CBFZUJLZHUDULMNZUJHUGUKUDULUJOUFUMUDUCBCPTUIUNUJUCABQUARUBDAUESDUHCSR $.
  $}

  $( Distributive law for class difference.  In classical logic, as in Exercise
     4.8 of [Stoll] p. 16, this would be equality rather than subset.
     (Contributed by Jim Kingdon, 4-Aug-2018.) $)
  difdifdirss $p |- ( ( A \ B ) \ C ) C_ ( ( A \ C ) \ ( B \ C ) ) $=
    ( cdif cvv cun cin dif32 invdif eqtr4i un0 indi disjdif incom eqtr3i uneq2i
    c0 wss ax-mp sseqtri ddifss unss2 indmss difeq2i sstri sslin eqsstri ) ABDC
    DZACDZEBDZCFZGZUIBCDZDZUHUIUJGZQFZULUHUOUPUHUIBDUOABCHUIBIJUOKJULUOUICGZFUP
    UIUJCLQUQUOCUIGQUQCAMCUINOPJJULUIEUMDZGZUNUKURRULUSRUKUJEECDZDZFZURCVARUKVB
    RCUACVAUJUBSVBEBUTGZDURBUTUCVCUMEBCIUDTUEUKURUIUFSUIUMITUG $.

  $( Two ways that ` A ` and ` B ` can "partition" ` C ` (when ` A ` and ` B `
     don't overlap and ` A ` is a part of ` C ` ).  In classical logic, the
     second implication would be a biconditional.  (Contributed by Jim Kingdon,
     4-Aug-2018.) $)
  uneqdifeqim $p |- ( ( A C_ C /\ ( A i^i B ) = (/) )
     -> ( ( A u. B ) = C -> ( C \ A ) = B ) ) $=
    ( cin c0 wceq cun cdif wi wss uncom eqcomd difeq1 difun2 incom eqeq1i disj3
    wa eqtr bitri expcom eqcoms sylbi syl5com sylancl syl mpan com12 adantl ) A
    BDZEFZABGZCFZCAHZBFZIACJUMUKUOBAGZULFZUMUKUOIZBAKUQUMRZCUPFZURUSUPCUPULCSLU
    TUNUPAHZFZVABAHZFZURCUPAMBANVBVDRUNVCFZUKUOUNVAVCSUKBVCFZVEUOIZUKBADZEFVFUJ
    VHEABOPBAQTVGVCBVEVCBFUOUNVCBSUAUBUCUDUEUFUGUHUI $.

  ${
    $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 inhabited.  (Contributed by Jim Kingdon,
       5-Aug-2018.) $)
    r19.2m $p |- ( ( E. x x e. A /\ A. x e. A ph ) -> E. x e. A ph ) $=
      ( wral cv wcel wex wrex wa wal df-ral exintr sylbi df-rex syl6ibr impcom
      wi ) ABCDZBECFZBGZABCHZRTSAIBGZUARSAQBJTUBQABCKSABLMABCNOP $.
  $}

  ${
    $d a x A $.  $d a y A $.
    r19.3rm.1 $e |- F/ x ph $.
    $( Restricted quantification of wff not containing quantified variable.
       (Contributed by Jim Kingdon, 19-Dec-2018.) $)
    r19.3rm $p |- ( E. y y e. A -> ( ph <-> A. x e. A ph ) ) $=
      ( va cv wcel wex wral wb eleq1 cbvexv wi biimt df-ral 19.23 bitri syl6bbr
      wal sylbi sylbir ) CGZDHZCIFGZDHZFIZAABDJZKZUFUDFCUEUCDLMUGBGZDHZBIZUIUFU
      KFBUEUJDLMULAULANZUHULAOUHUKANBTUMABDPUKABEQRSUAUB $.
  $}

  ${
    $d x A $.
    r19.28m.1 $e |- F/ x ph $.
    $( Restricted quantifier version of Theorem 19.28 of [Margaris] p. 90.  It
       is valid only when the domain of quantification is inhabited.
       (Contributed by Jim Kingdon, 5-Aug-2018.) $)
    r19.28m $p |- ( E. x x e. A ->
                   ( A. x e. A ( ph /\ ps ) <-> ( ph /\ A. x e. A ps ) ) ) $=
      ( cv wcel wex wral wa r19.3rm anbi1d r19.26 syl6rbbr ) CFDGCHZABCDIZJACDI
      ZPJABJCDIOAQPACCDEKLABCDMN $.
  $}

  ${
    $d x A $.  $d y A $.  $d x ph $.
    $( Restricted quantification of wff not containing quantified variable.
       (Contributed by Jim Kingdon, 6-Aug-2018.) $)
    r19.3rmv $p |- ( E. y y e. A -> ( ph <-> A. x e. A ph ) ) $=
      ( nfv r19.3rm ) ABCDABEF $.
  $}

  ${
    $d x a A $.  $d y a A $.  $d x ph $.
    $( Restricted quantification of wff not containing quantified variable.
       (Contributed by Jim Kingdon, 5-Aug-2018.) $)
    r19.9rmv $p |- ( E. y y e. A -> ( ph <-> E. x e. A ph ) ) $=
      ( va cv wcel wex wrex wb eleq1 cbvexv wa df-rex 19.41v bitri baibr sylbir
      sylbi ) CFZDGZCHEFZDGZEHZAABDIZJZUCUAECUBTDKLUDBFZDGZBHZUFUCUHEBUBUGDKLUE
      UIAUEUHAMBHUIAMABDNUHABOPQSR $.
  $}

  ${
    $d x A $.  $d x ph $.
    $( Restricted quantifier version of Theorem 19.28 of [Margaris] p. 90.  It
       is valid only when the domain of quantification is inhabited.
       (Contributed by Jim Kingdon, 6-Aug-2018.) $)
    r19.28mv $p |- ( E. x x e. A ->
                   ( A. x e. A ( ph /\ ps ) <-> ( ph /\ A. x e. A ps ) ) ) $=
      ( nfv r19.28m ) ABCDACEF $.

    $( Restricted version of Theorem 19.45 of [Margaris] p. 90.  (Contributed
       by NM, 27-May-1998.) $)
    r19.45mv $p |- ( E. x x e. A ->
                   ( E. x e. A ( ph \/ ps ) <-> ( ph \/ E. x e. A ps ) ) ) $=
      ( cv wcel wex wrex wo r19.9rmv orbi1d r19.43 syl6rbbr ) CEDFCGZABCDHZIACD
      HZOIABICDHNAPOACCDJKABCDLM $.
  $}

  ${
    $d x A $.
    r19.27m.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 inhabited.
       (Contributed by Jim Kingdon, 5-Aug-2018.) $)
    r19.27m $p |- ( E. x x e. A ->
                   ( A. x e. A ( ph /\ ps ) <-> ( A. x e. A ph /\ ps ) ) ) $=
      ( cv wcel wex wral wa r19.3rm anbi2d r19.26 syl6rbbr ) CFDGCHZACDIZBJPBCD
      IZJABJCDIOBQPBCCDEKLABCDMN $.
  $}

  ${
    $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 inhabited.
       (Contributed by Jim Kingdon, 5-Aug-2018.) $)
    r19.27mv $p |- ( E. x x e. A ->
                   ( A. x e. A ( ph /\ ps ) <-> ( A. x e. A ph /\ ps ) ) ) $=
      ( nfv r19.27m ) ABCDBCEF $.
  $}

  ${
    $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 (it is also inhabited as shown in ~ rexm ).  (Contributed by
       Szymon Jaroszewicz, 3-Apr-2007.) $)
    rexn0 $p |- ( E. x e. A ph -> A =/= (/) ) $=
      ( c0 wne cv wcel ne0i a1d rexlimiv ) ACDEZBCBFZCGKACLHIJ $.

    $( Restricted existential quantification implies its restriction is
       inhabited.  (Contributed by Jim Kingdon, 16-Oct-2018.) $)
    rexm $p |- ( E. x e. A ph -> E. x x e. A ) $=
      ( wrex cv wcel wa wex df-rex simpl eximi sylbi ) ABCDBECFZAGZBHMBHABCINMB
      MAJKL $.

    $( 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 ) $=
      ( wral nfra1 cv wcel wa anidm rsp2 syl5bir ralrimi wi wal wex ax-1 sylibr
      19.23 df-ral impbii ) ABCDZBCDZUAUBABCUABCEBFCGZUCUCHUBAUCIABBCCJKLUAUCUA
      MBNZUBUAUCBOZUAMUDUAUEPUCUABABCERQUABCSQT $.
  $}

  $( 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 $.
    rgenm.1 $e |- ( ( E. x x e. A /\ x e. A ) -> ph ) $.
    $( Generalization rule that eliminates an inhabited class requirement.
       (Contributed by Jim Kingdon, 5-Aug-2018.) $)
    rgenm $p |- A. x e. A ph $=
      ( wral cv wcel wi wal wex nfe1 alrimi 19.38 ax-mp pm5.4 albii mpbi df-ral
      ex mpbir ) ABCEBFCGZAHZBIZUAUBHZBIZUCUABJZUCHUEUFUBBUABKUFUAADSLUAUBBMNUD
      UBBUAAOPQABCRT $.
  $}

  ${
    $d x A $.
    ralf0.1 $e |- -. ph $.
    $( The quantification of a falsehood is vacuous when true.  (Contributed by
       NM, 26-Nov-2005.) $)
    ralf0 $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 $.
  $}

  $( Inhabited classes and restricted quantification.  (Contributed by Jim
     Kingdon, 6-Aug-2018.) $)
  ralm $p |- ( ( E. x x e. A -> A. x e. A ph ) <-> A. x e. A ph ) $=
    ( cv wcel wex wral wi wal df-ral imbi2i 19.38 sylbi pm2.43 alimi syl sylibr
    ax-1 impbii ) BDCEZBFZABCGZHZUBUCTAHZBIZUBUCTUDHZBIZUEUCUAUEHUGUBUEUAABCJZK
    TUDBLMUFUDBTANOPUHQUBUARS $.

  ${
    $d x y A $.
    raaan.1 $e |- F/ y ph $.
    raaan.2 $e |- F/ x ps $.
    $( Special case of ~ raaan where ` A ` is inhabited.  (Contributed by Jim
       Kingdon, 6-Aug-2018.) $)
    raaanlem $p |- ( E. x x e. A ->
      ( A. x e. A A. y e. A ( ph /\ ps ) <->
         ( A. x e. A ph /\ A. y e. A ps ) ) ) $=
      ( cv wcel wex wa wral wb eleq1 cbvexv r19.28m ralbidv sylbi nfcv nfralxy
      r19.27m bitrd ) CHZEIZCJZABKDELZCELZABDELZKZCELZACELUHKUEDHZEIZDJZUGUJMUD
      ULCDUCUKENOUMUFUICEABDEFPQRAUHCEBCDECESGTUAUB $.

    $( 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 ) ) $=
      ( cv wcel wex wa wral wi raaanlem pm5.74i ralm jcab eleq1 cbvexv bitri
      imbi1i anbi12i 3bitr3i ) CHZEIZCJZABKDELZCELZMUFACELZBDELZKZMZUHUKUFUHUKA
      BCDEFGNOUGCEPULUFUIMZUFUJMZKUKUFUIUJQUMUIUNUJACEPUNDHZEIZDJZUJMUJUFUQUJUE
      UPCDUDUOERSUABDEPTUBTUC $.
  $}

  ${
    $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 sbcalg sbcimg sbcel2g bitrd albidv dfss2
      imbi12d sbcbii 3bitr4g ) BEGZFHZCGZUDDGZIZFJZABKZUDABCLZGZUDABDLZGZIZFJZC
      DMZABKUJULMUCUIUGABKZFJUOUGFABENUCUQUNFUCUQUEABKZUFABKZIUNUEUFABEOUCURUKU
      SUMABUDCEPABUDDEPTQRQUPUHABFCDSUAFUJULSUB $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Conditional operator
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Declare new constant symbols. $)
  $c , $.  $( Comma (also used for unordered pair notation later) $)
  $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 the absence of excluded middle, this will tend to be useful where
       ` ph ` is decidable (in the sense of ~ df-dc ).  (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 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 wa wn wo cab cif dedlema abbi2dv df-if syl6reqr ) ABDEZBFZAG
      PCFZAHGIZDJABCKASDBAQRLMADBCNO $.
  $}

  ${
    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.  (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 $.

  ${
    ifsbdc.1 $e |- ( if ( ph , A , B ) = A -> C = D ) $.
    ifsbdc.2 $e |- ( if ( ph , A , B ) = B -> C = E ) $.
    $( Distribute a function over an if-clause.  (Contributed by Jim Kingdon,
       1-Jan-2022.) $)
    ifsbdc $p |- ( DECID ph -> C = if ( ph , D , E ) ) $=
      ( wdc wn wo cif wceq exmiddc iftrue syl eqtr4d iffalse jaoi ) AIAAJZKDAEF
      LZMZANAUBTADEUAAABCLZBMDEMABCOGPAEFOQTDFUATUCCMDFMABCRHPAEFRQSP $.
  $}

  ${
    $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 $.
  $}

  $( 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 $.
  $}

  ${
    $d A x $.  $d B x $.  $d ph x $.  $d ps x $.
    $( Equivalence theorem for conditional operators.  (Contributed by Raph
       Levien, 15-Jan-2004.) $)
    ifbi $p |- ( ( ph <-> ps ) -> if ( ph , A , B ) = if ( ps , A , B ) ) $=
      ( vx wb cv wcel wa wn wo cab cif anbi2 notbid anbi2d orbi12d abbidv df-if
      id 3eqtr4g ) ABFZEGZCHZAIZUCDHZAJZIZKZELUDBIZUFBJZIZKZELACDMBCDMUBUIUMEUB
      UEUJUHULABUDNUBUGUKUFUBABUBTOPQRAECDSBECDSUA $.
  $}

  ${
    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 wa wn wo cab df-if nfv nfcrd nfand nford nfabd nfcxfrd
      nfnd ) ACBDEJIKZDLZBMZUEELZBNZMZOZIPBIDEQAUKCIAIRAUGUJCAUFBCACIDGSFTAUHUI
      CACIEHSABCFUDTUAUBUC $.
  $}

  ${
    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 $.
  $}

  ${
    ifcldadc.1 $e |- ( ( ph /\ ps ) -> A e. C ) $.
    ifcldadc.2 $e |- ( ( ph /\ -. ps ) -> B e. C ) $.
    ifcldadc.dc $e |- ( ph -> DECID ps ) $.
    $( Conditional closure.  (Contributed by Jim Kingdon, 11-Jan-2022.) $)
    ifcldadc $p |- ( ph -> if ( ps , A , B ) e. C ) $=
      ( cif wcel wn wa wceq iftrue adantl eqeltrd iffalse wdc wo exmiddc syl
      mpjaodan ) ABBCDIZEJBKZABLUCCEBUCCMABCDNOFPAUDLUCDEUDUCDMABCDQOGPABRBUDSH
      BTUAUB $.
  $}

  ${
    ifeq1dadc.1 $e |- ( ( ph /\ ps ) -> A = B ) $.
    ifeq1dadc.dc $e |- ( ph -> DECID ps ) $.
    $( Conditional equality.  (Contributed by Jim Kingdon, 1-Jan-2022.) $)
    ifeq1dadc $p |- ( ph -> if ( ps , A , C ) = if ( ps , B , C ) ) $=
      ( cif wceq wn wa ifeq1d iffalse eqtr4d adantl wdc wo exmiddc syl mpjaodan
      ) ABBCEHZBDEHZIZBJZABKBCDEFLUDUCAUDUAEUBBCEMBDEMNOABPBUDQGBRST $.
  $}

  ${
    ifbothdc.1 $e |- ( A = if ( ph , A , B ) -> ( ps <-> th ) ) $.
    ifbothdc.2 $e |- ( B = if ( ph , A , B ) -> ( ch <-> th ) ) $.
    $( A wff ` th ` containing a conditional operator is true when both of its
       cases are true.  (Contributed by Jim Kingdon, 8-Aug-2021.) $)
    ifbothdc $p |- ( ( ps /\ ch /\ DECID ph ) -> th ) $=
      ( wdc w3a wn wi cif wceq wb iftrue eqcomd syl biimpcd 3ad2ant1 iffalse wo
      3ad2ant2 exmiddc 3ad2ant3 mpjaod ) BCAIZJADAKZBCADLUGABDAEAEFMZNBDOAUIEAE
      FPQGRSTCBUHDLUGUHCDUHFUINCDOUHUIFAEFUAQHRSUCUGBAUHUBCAUDUEUF $.
  $}

  ${
    ifcldcd.a $e |- ( ph -> A e. C ) $.
    ifcldcd.b $e |- ( ph -> B e. C ) $.
    ifcldcd.dc $e |- ( ph -> DECID ps ) $.
    $( Membership (closure) of a conditional operator, deduction form.
       (Contributed by Jim Kingdon, 8-Aug-2021.) $)
    ifcldcd $p |- ( ph -> if ( ps , A , B ) e. C ) $=
      ( cif wcel wn wa wceq iftrue adantl adantr eqeltrd iffalse wdc wo df-dc
      sylib mpjaodan ) ABBCDIZEJBKZABLUDCEBUDCMABCDNOACEJBFPQAUELUDDEUEUDDMABCD
      ROADEJUEGPQABSBUETHBUAUBUC $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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 A $.  $d z x $.  $d z y $.
    $( 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 ` is { 3 , 5 , 7 }, then ` ~P A ` is {
       (/) , { 3 } , { 5 } , { 7 } , { 3 , 5 } , { 3 , 7 } , { 5 , 7 } , { 3 ,
       5 , 7 } }.  We will later introduce the Axiom of Power Sets.  Still
       later we will prove 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,
       5-Aug-1993.) $)
    df-pw $a |- ~P A = { x | x C_ A } $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Equality theorem for power class.  (Contributed by NM, 5-Aug-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.
       (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 vex elpw vtoclbg ) DEZBFZGNBHAOGABHDACNA
      OINABJNBDKLM $.
  $}

  $( 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 $.

  ${
    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 df-pw abeq2i imbi1i albii bitri ) BDZCEAFZ
      PGZQCGZHZAIQBEZSHZAIAPCJTUBARUASUAAPABKLMNO $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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') $)

  $( Extend class notation to include singleton. $)
  csn $a class { A } $.
  $( Extend class notation to include unordered pair. $)
  cpr $a class { A , B } $.
  $( Extend class notation to include unordered triplet. $)
  ctp $a class { A , B , C } $.
  $( Extend class notation to include ordered pair. $)
  cop $a class <. A , B >. $.
  $( Extend class notation to include ordered triple. $)
  cotp $a class <. A , B , C >. $.

  ${
    $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 $.
  $}

  ${
    $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,
       5-Aug-1993.) $)
    df-sn $a |- { A } = { x | x = A } $.
  $}

  $( Define unordered pair of classes.  Definition 7.1 of [Quine] p. 48.  They
     are unordered, so ` { A , B } = { B , A } ` as proven by ~ prcom .  For a
     more traditional definition, but requiring a dummy variable, see ~ dfpr2 .
     (Contributed by NM, 5-Aug-1993.) $)
  df-pr $a |- { A , B } = ( { A } u. { B } ) $.

  $( 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 } ) $.

  ${
    $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 and ~ opprc2 ).  For
       Kuratowski's actual definition when the arguments are sets, see ~ dfop .

       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 } } } ` .  This was
       simplified by Kazimierz Kuratowski in 1921 to our present definition.
       An even simpler definition is ` <. A , B >. ` _3
       ` = { A , { A , B } } ` , but it requires the Axiom of Regularity for
       its justification and is not commonly used.  Finally, an ordered pair of
       real numbers can be represented by a complex number.  (Contributed by
       NM, 28-May-1995.)  (Revised by Mario Carneiro, 26-Apr-2015.) $)
    df-op $a |- <. A , B >. = { x |
      ( A e. _V /\ B e. _V /\ x e. { { A } , { A , B } } ) } $.
  $}

  $( 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, 5-Aug-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 $.
  $}

  ${
    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.) $)
    elpr2 $p |- ( A e. { B , C } <-> ( A = B \/ A = C ) ) $=
      ( cpr wcel wceq wo elprg ibi cvv wb eleq1 mpbiri jaoi syl ibir impbii ) A
      BCFZGZABHZACHZIZUAUDABCTJKUDUAUDALGZUAUDMUBUEUCUBUEBLGDABLNOUCUECLGEACLNO
      PABCLJQRS $.
  $}

  $( 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 $.

  ${
    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 $.
  $}

  $( 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 only 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 only 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 $.
  $}

  ${
    $d x A $.
    $( A singleton has at most one element.  This works whether ` A ` is a
       proper class or not, and in that sense can be seen as encompassing both
       ~ snmg and ~ snprc .  (Contributed by Jim Kingdon, 30-Aug-2018.) $)
    mosn $p |- E* x x e. { A } $=
      ( cv csn wcel wmo wceq moeq velsn mobii mpbir ) ACZBDEZAFLBGZAFABHMNAABIJ
      K $.
  $}

  ${
    $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 $.

    $( Substitution expressed in terms of quantification over a singleton.
       (Contributed by Mario Carneiro, 23-Apr-2015.) $)
    ralsns $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 ralsns 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 $.
  $}

  $( 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 wa wrex vex snid eleq2 mpbiri pm4.71ri df-rex bitr4i
    exbii ) BACZDZEZAFRBGZTHZAFTABITUBATUATUARSGRAJKBSRLMNQTABOP $.

  ${
    $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 $.
  $}

  $( 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 $.

  $( 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 $.
  $}

  ${
    $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 $.
  $}

  ${
    $d x A $.
    $( TODO - make obsolete; use ralsnsSBC instead - also,
       shorten posn w/ ralsn or ralsng $)
    $( Substitution expressed in terms of quantification over a singleton.
       (Contributed by NM, 14-Dec-2005.)  (Revised by Mario Carneiro,
       23-Apr-2015.) $)
    sbcsng $p |- ( A e. V -> ( [. A / x ]. ph <-> A. x e. { A } ph ) ) $=
      ( wcel csn wral wsbc ralsns bicomd ) CDEABCFGABCHABCDIJ $.
  $}

  ${
    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.
       (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 csbabg sbceq2g abbidv eqtrd df-sn csbeq2i
      cv 3eqtr4g ) BDFZABERZCGZEHZIZUAABCIZGZEHZABCJZIUEJTUDUBABKZEHUGUBAEBDLTU
      IUFEABUACDMNOABUHUCECPQEUEPS $.
  $}

  ${
    $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 $.
  $}

  $( Intersection of distinct singletons is 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 $.

  $( The intersection of distinct unordered pairs is disjoint.  (Contributed by
     Alexander van der Vekens, 11-Nov-2017.) $)
  disjpr2 $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 $.

  ${
    $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, 5-Aug-1993.) $)
    snprc $p |- ( -. A e. _V <-> { A } = (/) ) $=
      ( vx cv csn wcel wex wn wceq cvv velsn exbii notbii wal alnex bitri isset
      c0 eq0 3bitr4ri ) BCZADZEZBFZGZTAHZBFZGUAQHZAIEZGUCUFUBUEBBAJKLUGUBGBMUDB
      UARUBBNOUHUFBAPLS $.
  $}

  ${
    $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, 20-Dec-2021.) $)
    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 A $.
    rabrsndc.1 $e |- A e. _V $.
    rabrsndc.2 $e |- DECID ph $.
    $( A class abstraction over a decidable proposition restricted to a
       singleton is either the empty set or the singleton itself.  (Contributed
       by Jim Kingdon, 8-Aug-2018.) $)
    rabrsndc $p |- ( M = { x e. { A } | ph } -> ( M = (/) \/ M = { A } ) ) $=
      ( csn crab wceq c0 wo wral wsbc cvv ax-mp wb ralsns orbi12i mpbir eqeq1
      wn wcel pm2.1dc sbcth sbcor mpbi rabeq0 eqcom rabid2 bitri orbi12d mpbiri
      wdc ) DABCGZHZIZDJIZDUNIZKUOJIZUOUNIZKZVAAUAZBUNLZABUNLZKZVEVBBCMZABCMZKZ
      VBAKZBCMZVHCNUBZVJEVIBCNAUMVIFAUCOUDOVBABCUEUFVCVFVDVGVKVCVFPEVBBCNQOVKVD
      VGPEABCNQORSUSVCUTVDABUNUGUTUNUOIVDUOUNUHABUNUIUJRSUPUQUSURUTDUOJTDUOUNTU
      KUL $.
  $}

  ${
    $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, 5-Aug-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, 5-Aug-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 undordered 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 undordered 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, 5-Aug-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.  (Contributed by NM, 5-Aug-1993.) $)
    prid2 $p |- B e. { A , B } $=
      ( cpr prid1 prcom eleqtri ) BBADABDBACEBAFG $.
  $}

  $( A proper class vanishes in an unordered pair.  (Contributed by NM,
     5-Aug-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 $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x D $.
    $( Closed theorem form of ~ tpid3 .  (Contributed by Alan Sare,
       24-Oct-2011.) $)
    tpid3g $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.) $)
    tpid3 $p |- C e. { A , B , C } $=
      ( ctp wcel wceq w3o eqid 3mix3i eltp mpbir ) CABCEFCAGZCBGZCCGZHOMNCIJCAB
      CDKL $.
  $}

  $( 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 $.

  ${
    $d x A $.
    $( The singleton of a set is inhabited.  (Contributed by Jim Kingdon,
       11-Aug-2018.) $)
    snmg $p |- ( A e. V -> E. x x e. { A } ) $=
      ( wcel csn cv wex snidg elex2 syl ) BCDBBEZDAFKDAGBCHABKIJ $.
  $}

  ${
    $d x A $.
    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 $.

    $( The singleton of a set is inhabited.  (Contributed by Jim Kingdon,
       11-Aug-2018.) $)
    snm $p |- E. x x e. { A } $=
      ( cvv wcel cv csn wex snmg ax-mp ) BDEAFBGEAHCABDIJ $.
  $}

  ${
    $d x A $.  $d x B $.
    $( A pair containing a set is inhabited.  (Contributed by Jim Kingdon,
       21-Sep-2018.) $)
    prmg $p |- ( A e. V -> E. x x e. { A , B } ) $=
      ( wcel cv csn wex cpr snmg wceq wo orc velsn vex elpr 3imtr4i eximi syl )
      BDEAFZBGEZAHTBCIEZAHABDJUAUBATBKZUCTCKZLUAUBUCUDMABNTBCAOPQRS $.
  $}

  ${
    $d x A $.  $d x B $.
    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 wcel c0 wne prid1 ne0i ax-mp ) AABDZEKFGABCHKAIJ $.

    $( A pair containing a set is inhabited.  (Contributed by Jim Kingdon,
       21-Sep-2018.) $)
    prm $p |- E. x x e. { A , B } $=
      ( cvv wcel cv cpr wex prmg ax-mp ) BEFAGBCHFAIDABCEJK $.
  $}

  ${
    $d x A $.  $d x B $.
    $( A pair containing a set is not empty.  (Contributed by FL,
       19-Sep-2011.) $)
    prnzg $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 wcel c0 wne tpid1 ne0i ax-mp ) AABCEZFLGHABCDILAJK $.
  $}

  ${
    $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.
       Theorem 7.4 of [Quine] p. 49.  (Contributed by NM, 5-Aug-1993.) $)
    snss $p |- ( A e. B <-> { A } C_ B ) $=
      ( vx cv csn wcel wi wal wceq wss velsn imbi1i albii dfss2 clel2 3bitr4ri
      ) DEZAFZGZRBGZHZDIRAJZUAHZDISBKABGUBUDDTUCUADALMNDSBODABCPQ $.
  $}

  $( 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 $.

  $( 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 $.

  $( ` 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 $.

  $( ` 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 $.

  ${
    $d A x $.  $d B x $.
    $( The singleton of an element of a class is a subset of the class.
       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 cv wcel csn wss eleq1 wceq sneq sseq1d vex snss vtoclbg ) DEZBFPGZBH
      ABFAGZBHDACPABIPAJQRBPAKLPBDMNO $.

    $( 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 wceq eleq1 biimpcd necon3bd
      com12 ancld impbid2 syl5bb eqrdv ) ABDZEZCBAFGZBCHZUDDUEBDZUEAIZJZUCUFUEB
      AKUCUHUFUFUGLUCUFUGUFUCUGUFUBUEAUEAMUFUBUEABNOPQRSTUA $.

    $( 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.) $)
  diftpsn3 $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 $.

  $( ` ( 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 $.

  $( 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 wb snssg syl mpbid ) ABCEZBFCGZDALLMHDBCCIJK $.
  $}

  $( If we remove a single element from a class then put it back in, we end up
     with a subset of the original class.  If equality is decidable, we can
     replace subset with equality as seen in ~ nndifsnid .  (Contributed by Jim
     Kingdon, 10-Aug-2018.) $)
  difsnss $p |- ( B e. A -> ( ( A \ { B } ) u. { B } ) C_ A ) $=
    ( wcel csn cdif cun uncom wss snssi undifss sylib syl5eqss ) BACZABDZEZNFNO
    FZAONGMNAHPAHBAINAJKL $.

  $( Note that ` x ` is a dummy variable in the proof below. $)
  $( 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 $.

  $( 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 is a subset of an unordered triple containing its members.
     (Contributed by Jim Kingdon, 11-Aug-2018.) $)
  prsstp12 $p |- { A , B } C_ { A , B , C } $=
    ( cpr csn cun ctp ssun1 df-tp sseqtr4i ) ABDZKCEZFABCGKLHABCIJ $.

  $( A pair is a subset of an unordered triple containing its members.
     (Contributed by Jim Kingdon, 11-Aug-2018.) $)
  prsstp13 $p |- { A , C } C_ { A , B , C } $=
    ( cpr ctp prsstp12 tpcomb sseqtr4i ) ACDACBEABCEACBFABCGH $.

  $( A pair is a subset of an unordered triple containing its members.
     (Contributed by Jim Kingdon, 11-Aug-2018.) $)
  prsstp23 $p |- { B , C } C_ { A , B , C } $=
    ( cpr ctp prsstp12 tprot sseqtr4i ) BCDBCAEABCEBCAFABCGH $.

  ${
    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.) $)
    prss $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.  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 $.

  $( 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 $.

  $( 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 $.

  ${
    $d x A $.  $d x B $.
    $( Empty set and the singleton itself are subsets of a singleton.
       (Contributed by Jim Kingdon, 10-Aug-2018.) $)
    sssnr $p |- ( ( A = (/) \/ A = { B } ) -> A C_ { B } ) $=
      ( c0 wceq csn wss 0ss sseq1 mpbiri eqimss jaoi ) ACDZABEZFZAMDLNCMFMGACMH
      IAMJK $.

    $( The inhabited subset of a singleton.  (Contributed by Jim Kingdon,
       10-Aug-2018.) $)
    sssnm $p |- ( E. x x e. A -> ( A C_ { B } <-> A = { B } ) ) $=
      ( cv wcel wex csn wss wceq wa wb ssel elsni syl6 eleq1 ibd exlimdv anc2li
      snssi eqss syl6ibr com12 eqimss impbid1 ) ADZBEZAFZBCGZHZBUHIZUIUGUJUIUGU
      IUHBHZJUJUIUGUKUIUGCBEZUKUIUFULAUIUFULUIUFUECIZUFULKUIUFUEUHEUMBUHUELUECM
      NUECBONPQCBSNRBUHTUAUBBUHUCUD $.

    $( Two ways to express that an inhabited set equals a singleton.
       (Contributed by Jim Kingdon, 11-Aug-2018.) $)
    eqsnm $p |- ( E. x x e. A -> ( A = { B } <-> A. x e. A x = B ) ) $=
      ( cv wceq wral csn wss wcel wex dfss3 velsn ralbii bitri sssnm syl5rbbr )
      ADZCEZABFZBCGZHZQBIAJBTEUAQTIZABFSABTKUBRABACLMNABCOP $.
  $}

  $( The subsets of a pair.  (Contributed by Jim Kingdon, 11-Aug-2018.) $)
  ssprr $p |- (
      ( ( A = (/) \/ A = { B } ) \/ ( A = { C } \/ A = { B , C } ) )
      -> A C_ { B , C } ) $=
    ( c0 wceq csn wo cpr wss 0ss sseq1 mpbiri snsspr1 jaoi snsspr2 eqimss ) ADE
    ZABFZEZGABCHZIZACFZEZATEZGQUASQUADTITJADTKLSUARTIBCMARTKLNUCUAUDUCUAUBTIBCO
    AUBTKLATPNN $.

  $( The subsets of a triple.  (Contributed by Jim Kingdon, 11-Aug-2018.) $)
  sstpr $p |- (
      ( ( ( A = (/) \/ A = { B } ) \/ ( A = { C } \/ A = { B , C } ) ) \/
        ( ( A = { D } \/ A = { B , D } ) \/
          ( A = { C , D } \/ A = { B , C , D } ) ) )
      -> A C_ { B , C , D } ) $=
    ( c0 csn wo cpr ctp wss ssprr prsstp12 syl6ss snsstp3 sseq1 mpbiri prsstp13
    wceq jaoi prsstp23 eqimss ) AERABFRGACFRABCHZRGGZABCDIZJZADFZRZABDHZRZGZACD
    HZRZAUDRZGZGUCAUBUDABCKBCDLMUJUEUNUGUEUIUGUEUFUDJBCDNAUFUDOPUIUEUHUDJBCDQAU
    HUDOPSULUEUMULUEUKUDJBCDTAUKUDOPAUDUASSS $.

  ${
    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 $.

  ${
    $d x A $.  $d x B $.
    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 ) $=
      ( csn wceq wcel snid eleq2 mpbii elsn sylib ) ADZBDZEZAMFZABENALFOACGLMAH
      IABCJK $.

    $( 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 ) $=
      ( vx csn wss cv wceq wal wcel dfss2 velsn imbi12i albii bitri cvv sbceqal
      wi ax-mp sylbi ) AEZBEZFZDGZAHZUDBHZRZDIZABHZUCUDUAJZUDUBJZRZDIUHDUAUBKUL
      UGDUJUEUKUFDALDBLMNOAPJUHUIRCDABPQST $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Closed form of ~ sneqr .  (Contributed by Scott Fenton, 1-Apr-2011.) $)
    sneqrg $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, 5-Aug-1993.) $)
    snsspw $p |- { A } C_ ~P A $=
      ( vx csn cpw cv wceq wss wcel eqimss velsn df-pw abeq2i 3imtr4i ssriv ) B
      ACZADZBEZAFQAGZQOHQPHQAIBAJRBPBAKLMN $.
  $}

  ${
    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.) $)
    prsspw $p |- ( { A , B } C_ ~P C <-> ( A C_ C /\ B C_ C ) ) $=
      ( cpr cpw wss wcel wa prss elpw anbi12i bitr3i ) ABFCGZHAOIZBOIZJACHZBCHZ
      JABODEKPRQSACDLBCELMN $.
  $}

  $( 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 Jim Kingdon, 21-Sep-2018.) $)
  preqr1g $p |- ( ( A e. _V /\ B e. _V ) ->
      ( { A , C } = { B , C } -> A = B ) ) $=
    ( cvv wcel wa cpr wceq wo wi prid1g eleq2 syl5ibcom elprg sylibd adantr imp
    syl5ibrcom adantl eqcom eqeq2 oplem1 ex ) ADEZBDEZFZACGZBCGZHZABHZUFUIFUJAC
    HZBAHZBCHZUFUIUJUKIZUDUIUNJUEUDUIAUHEZUNUDAUGEUIUOACDKUGUHALMABCDNOPQUFUIUL
    UMIZUEUIUPJUDUEUIBUGEZUPUEUQUIBUHEBCDKUGUHBLRBACDNOSQABTACBUAUBUC $.

  $( Reverse equality lemma for unordered pairs.  If two unordered pairs have
     the same second element, the second elements are equal.  Closed form of
     ~ preqr2 .  (Contributed by Jim Kingdon, 21-Sep-2018.) $)
  preqr2g $p |- ( ( A e. _V /\ B e. _V ) ->
      ( { C , A } = { C , B } -> A = B ) ) $=
    ( cpr wceq cvv wcel wa prcom eqeq12i preqr1g syl5bi ) CADZCBDZEACDZBCDZEAFG
    BFGHABEMONPCAICBIJABCKL $.

  ${
    preqr1.1 $e |- A e. _V $.
    preqr1.2 $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 wcel wo prid1 eleq2 mpbii elpr sylib mpbiri eqcom eqeq2 oplem1
      ) ACFZBCFZGZABGZACGZBAGZBCGZUAATHZUBUCIUAASHUFACDJSTAKLABCDMNUABSHZUDUEIU
      AUGBTHBCEJSTBKOBACEMNABPACBQR $.
  $}

  ${
    preqr2.1 $e |- A e. _V $.
    preqr2.2 $e |- B e. _V $.
    $( Reverse equality lemma for unordered pairs.  If two unordered pairs have
       the same first element, the second elements are equal.  (Contributed by
       NM, 5-Aug-1993.) $)
    preqr2 $p |- ( { C , A } = { C , B } -> A = B ) $=
      ( cpr wceq prcom eqeq12i preqr1 sylbi ) CAFZCBFZGACFZBCFZGABGLNMOCAHCBHIA
      BCDEJK $.
  $}

  ${
    preq12b.1 $e |- A e. _V $.
    preq12b.2 $e |- B e. _V $.
    preq12b.3 $e |- C e. _V $.
    preq12b.4 $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 wi sylbi orim12d preq12 syl6eq sylan9eq jaoi
      mpd impbii ) ABIZCDIZJZACJZBDJZKZADJZBCJZKZLZURUSVBLZVEURAUQMZVFURAUPMVGA
      BEUBUPUQAUCUDACDEUEUFURUSVAVBVDURUSUTUSURUTUSURCBIZUQJUTUSUPVHUQACBNOBDCF
      HPQRSURVBVCURUPDCIZJZVBVCUGUQVIUPCDTUAVBVJVCVBVJDBIZVIJVCVBUPVKVIADBNZOBC
      DFGPQRUHSUIUNVAURVDABCDUJVBVCUPBDIZUQVBUPVKVMVLDBTUKBCDNULUMUO $.

    $( 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 notbid prid1 prid2 jca
      orel2 syl6bi com3l imp ancrd orel1 orim12d orcom bitri preq12b 3imtr4g ex
      syl5bi impd impbid2 ) ABIZJZABKZCDKZIZAVBLZBVBLZMVCVDVEVCAVALVDABEUAVAVBA
      NOVCBVALVEABFUBVAVBBNOUCUTVDVEVCVDACIZADIZPZUTVEVCQZACDERUTVHVIUTVHMZBDIZ
      BCIZPZVFVKMZVGVLMZPVEVCVJVKVNVLVOVJVKVFUTVHVKVFQVKUTVHVFVKUTVGJVHVFQVKUSV
      GBDASTVGVFUDUEUFUGUHVJVLVGUTVHVLVGQVLUTVHVGVLUTVFJVHVGQVLUSVFBCASTVFVGUIU
      EUFUGUHUJVEVLVKPVMBCDFRVLVKUKULABCDEFGHUMUNUOUPUQUR $.

    $( A way to represent ordered pairs using unordered pairs with distinct
       members.  (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 $.
  $}

  ${
    $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 $.
  $}

  $( 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 preq12bg oranim df-ne anbi12i sylnibr ad2antll
    orddi simpll pm1.4 jca sylbi syl6bi anim12i syl6 pm4.56 syl6ib necon2ad ) A
    EIBFIJCGIDHIJJZACKZADKZJZBCKZBDKZJZLZABMZCDMZUMVAVBNZUPOZUSOZJZUTOUMVCACNZA
    DNZLZBCNZBDNZLZJZVFUMVCVGVKJVHVJJLZVMABCDEFGHPVNVIVGVJLZJZVKVHLZVKVJLZJZJZV
    MVGVKVHVJUBVTVIVLVIVOVSUCVRVLVPVQVKVJUDUAUEUFUGVIVDVLVEVIVGOZVHOZJUPVGVHQUN
    WAUOWBACRADRSTVLVJOZVKOZJUSVJVKQUQWCURWDBCRBDRSTUHUIUPUSUJUKUL $.

  ${
    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.) $)
    preqsn $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 x A $.  $d x B $.
    $( Value of the ordered pair when the arguments are sets.  (Contributed by
       Mario Carneiro, 26-Apr-2015.) $)
    dfopg $p |- ( ( A e. V /\ B e. W ) ->
      <. A , B >. = { { A } , { A , B } } ) $=
      ( vx wcel cvv cop csn cpr wceq elex wa cab w3a df-3an baibr abbidv abid2
      cv df-op eqcomi 3eqtr3g eqcomd syl2an ) ACFAGFZBGFZABHZAIABJJZKBDFACLBDLU
      FUGMZUIUHUJETUIFZENUFUGUKOZENZUIUHUJUKULEULUJUKUFUGUKPQREUISUHUMEABUAUBUC
      UDUE $.
  $}

  ${
    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.) $)
    dfop $p |- <. A , B >. = { { A } , { A , B } } $=
      ( cvv wcel cop csn cpr wceq dfopg mp2an ) AEFBEFABGAHABIIJCDABEEKL $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( 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 >. ) $=
      ( vx wceq cvv wcel cv csn cpr w3a cab cop eleq1 anbi1d preq1 df-3an df-op
      wa sneq preq12d eleq2d anbi12d 3bitr4g abbidv 3eqtr4g ) ABEZAFGZCFGZDHZAI
      ZACJZJZGZKZDLBFGZUIUJBIZBCJZJZGZKZDLACMBCMUGUOVADUGUHUISZUNSUPUISZUTSUOVA
      UGVBVCUNUTUGUHUPUIABFNOUGUMUSUJUGUKUQULURABTABCPUAUBUCUHUIUNQUPUIUTQUDUED
      ACRDBCRUF $.

    $( 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 >. ) $=
      ( vx wceq cvv wcel cv csn cpr w3a cab cop eleq1 anbi2d eqidd preq2 df-3an
      wa df-op preq12d eleq2d anbi12d 3bitr4g abbidv 3eqtr4g ) ABEZCFGZAFGZDHZC
      IZCAJZJZGZKZDLUHBFGZUJUKCBJZJZGZKZDLCAMCBMUGUOUTDUGUHUISZUNSUHUPSZUSSUOUT
      UGVAVBUNUSUGUIUPUHABFNOUGUMURUJUGUKUKULUQUGUKPABCQUAUBUCUHUIUNRUHUPUSRUDU
      EDCATDCBTUF $.
  $}

  $( 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 $.
  $}

  ${
    $d y A $.  $d y B $.  $d y x $.
    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 >. $=
      ( vy cop cvv wcel cv csn cpr w3a cab df-op nfel1 nfsn nfpr nfcri nf3an
      nfab nfcxfr ) ABCGBHIZCHIZFJBKZBCLZLZIZMZFNFBCOUIAFUCUDUHAABHDPACHEPAFUGA
      UEUFABDQABCDERRSTUAUB $.
  $}

  ${
    $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 $.
  $}

  ${
    opid.1 $e |- A e. _V $.
    $( The ordered pair ` <. A , A >. ` in Kuratowski's representation.
       (Contributed by FL, 28-Dec-2011.) $)
    opid $p |- <. A , A >. = { { A } } $=
      ( csn cpr cop dfsn2 eqcomi preq2i dfop 3eqtr4i ) ACZAADZDKKDAAEKCLKKKLAFG
      HAABBIKFJ $.
  $}

  ${
    $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
      $.
  $}

  ${
    $d A x $.  $d B x $.
    $( 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 >. = (/) ) $=
      ( vx cvv wcel wa wn cop cv csn cpr w3a cab c0 df-op wal wceq 3simpa con3i
      alrimiv abeq0 sylibr syl5eq ) ADEZBDEZFZGZABHUDUECIAJABKKEZLZCMZNCABOUGUI
      GZCPUJNQUGUKCUIUFUDUEUHRSTUICUAUBUC $.
  $}

  $( 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 $.

  ${
    $d A x $.  $d A y $.  $d B x $.  $d B y $.  $d C y $.
    $( 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 ) ) $=
      ( vy vx cop wcel cv wex cvv wa elex2 wsb csn cpr w3a df-op eleq2i df-clab
      cab bitri 3simpa sbimi sylbi nfv sbf sylib exlimiv syl ) CABFZGDHZUJGZDIA
      JGZBJGZKZDCUJLULUODULUOEDMZUOULUMUNEHANABOOGZPZEDMZUPULUKURETZGUSUJUTUKEA
      BQRURDESUAURUOEDUMUNUQUBUCUDUOEDUOEUEUFUGUHUI $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( The power set of a singleton.  (Contributed by Jim Kingdon,
       12-Aug-2018.) $)
    pwsnss $p |- { (/) , { A } } C_ ~P { A } $=
      ( vx cv c0 wceq csn wo cab wss cpr cpw sssnr ss2abi dfpr2 df-pw 3sstr4i )
      BCZDEQAFZEGZBHQRIZBHDRJRKSTBQALMBDRNBROP $.

    $( 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 (but with
       subset in place of equality).  (Contributed by Jim Kingdon,
       12-Aug-2018.) $)
    pwpw0ss $p |- { (/) , { (/) } } C_ ~P { (/) } $=
      ( c0 pwsnss ) AB $.

    $( The power set of an unordered pair.  (Contributed by Jim Kingdon,
       13-Aug-2018.) $)
    pwprss $p |- ( { (/) , { A } } u. { { B } , { A , B } } ) C_
        ~P { A , B } $=
      ( vx c0 csn cpr cun cpw cv wcel wo wss wceq elpr orbi12i ssprr sylbi elun
      vex elpw 3imtr4i ssriv ) CDAEZFZBEZABFZFZGZUFHZCIZUDJZUJUGJZKZUJUFLZUJUHJ
      UJUIJUMUJDMUJUCMKZUJUEMUJUFMKZKUNUKUOULUPUJDUCCSZNUJUEUFUQNOUJABPQUJUDUGR
      UJUFUQTUAUB $.

    $( The power set of an unordered triple.  (Contributed by Jim Kingdon,
       13-Aug-2018.) $)
    pwtpss $p |-
        ( ( { (/) , { A } } u. { { B } , { A , B } } ) u.
          ( { { C } , { A , C } } u. { { B , C } , { A , B , C } } ) )
        C_ ~P { A , B , C } $=
      ( vx c0 csn cpr cun ctp cpw cv wceq wo wcel sstpr elun elpr orbi12i bitri
      wss vex elpw 3imtr4i ssriv ) DEAFZGZBFZABGZGZHZCFZACGZGZBCGZABCIZGZHZHZUO
      JZDKZELUTUELMZUTUGLUTUHLMZMZUTUKLUTULLMZUTUNLUTUOLMZMZMZUTUOTUTURNZUTUSNU
      TABCOVHUTUJNZUTUQNZMVGUTUJUQPVIVCVJVFVIUTUFNZUTUINZMVCUTUFUIPVKVAVLVBUTEU
      EDUAZQUTUGUHVMQRSVJUTUMNZUTUPNZMVFUTUMUPPVNVDVOVEUTUKULVMQUTUNUOVMQRSRSUT
      UOVMUBUCUD $.
  $}

  $( Compute the power set of the power set of the power set of the empty set.
     (See also ~ pw0 and ~ pwpw0ss .)  (Contributed by Jim Kingdon,
     13-Aug-2018.) $)
  pwpwpw0ss $p |-
      ( { (/) , { (/) } } u. { { { (/) } } , { (/) , { (/) } } } )
      C_ ~P { (/) , { (/) } } $=
    ( c0 csn pwprss ) 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 vex elpw mpbir 2th eqriv ) ABCZBADZMEZNBEONBFN
    GNBAHZIJPKL $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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, { { 1 , 3 } , { 1 , 8 } } = { 1 , 3 , 8 } .  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 nfrexxy nfab nfcxfr ) ABFDEGZEBHZDID
      EBJPADOAEBCOAKLMN $.
  $}

  ${
    $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 nfrexdxy nfabd nfcxfrd ) ABCGEF
      HZFCIZEJEFCKARBEAELAQBFCAFLDAQBMNOP $.
  $}

  ${
    $d A y z $.  $d B y z $.  $d V y z $.  $d x y z $.
    $( Distribute proper substitution through the union of a class.
       (Contributed by Alan Sare, 10-Nov-2012.) $)
    csbunig $p |- ( A e. V -> [_ A / x ]_ U. B = U. [_ A / x ]_ B ) $=
      ( vz vy wcel cv wa wex cab csb cuni wsbc csbabg sbcexg sbcang sbcg df-uni
      bitrd sbcel2g anbi12d exbidv abbidv eqtrd csbeq2i 3eqtr4g ) BDGZABEHFHZGZ
      UICGZIZFJZEKZLZUJUIABCLZGZIZFJZEKZABCMZLUPMUHUOUMABNZEKUTUMAEBDOUHVBUSEUH
      VBULABNZFJUSULFABDPUHVCURFUHVCUJABNZUKABNZIURUJUKABDQUHVDUJVEUQUJABDRABUI
      CDUAUBTUCTUDUEABVAUNEFCSUFEFUPSUG $.
  $}

  ${
    $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 y $.  $d y A $.
    $( An alternate statement of the effective freeness of a class ` A ` , when
       it is a set.  (Contributed by Mario Carneiro, 14-Oct-2016.) $)
    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 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.  (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.) $)
    ssuni $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 wceq wral wcel wn wal csn wss cuni eq0 ralbii ralcom4 bitri
      dfss3 velsn albii wrex eluni2 notbii ralnex 3bitr4i 3bitr4ri ) BDZEFZBAGZ
      CDZUGHZIZBAGZCJZAEKZLZAMZEFZUIULCJZBAGUNUHUSBACUGNOULBCAPQUPUGUOHZBAGUIBA
      UORUTUHBABESOQUJUQHZIZCJUKBAUAZIZCJURUNVBVDCVAVCBUJAUBUCTCUQNUMVDCUKBAUDT
      UEUF $.

    $( 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 $.

  $( 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.  (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 $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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.) $)
    elintg $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 nfralxy nfab nfcxfr ) ABFDEGZEBHZDID
      EBJPADOAEBCOAKLMN $.
  $}

  ${
    $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 $.

    $( The intersection of the empty set is the universal class.  Exercise 2 of
       [TakeutiZaring] p. 44.  (Contributed by NM, 18-Aug-1993.) $)
    int0 $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.) $)
    intss $p |- ( A C_ B -> |^| B C_ |^| A ) $=
      ( vy vx cv wcel wal cint wss imim1 al2imi vex elint 3imtr4g alrimiv dfss2
      wi 3imtr4i ) CEZAFZSBFZQZCGZDEZBHZFZUDAHZFZQZDGABIUEUGIUCUIDUCUAUDSFZQZCG
      TUJQZCGUFUHUBUKULCTUAUJJKCUDBDLZMCUDAUMMNOCABPDUEUGPR $.

    $( The intersection of an inhabited set is a subclass of its union.
       (Contributed by NM, 29-Jul-2006.) $)
    intssunim $p |- ( E. x x e. A -> |^| A C_ U. A ) $=
      ( vy cv wcel wex cint cuni wral r19.2m ex vex elint2 eluni2 3imtr4g ssrdv
      wrex ) ADZBEAFZCBGZBHZSCDZREZABIZUCABQZUBTEUBUAESUDUEUCABJKAUBBCLMAUBBNOP
      $.
  $}

  ${
    $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 $.
  $}

  ${
    $d x A $.
    $( Subclass relationship for intersection and union.  (Contributed by Jim
       Kingdon, 14-Aug-2018.) $)
    intssuni2m $p |- ( ( A C_ B /\ E. x x e. A ) -> |^| A C_ U. B ) $=
      ( cv wcel wex wss cint cuni intssunim uniss sylan9ssr ) ADBEAFBCGBHBICIAB
      JBCKL $.
  $}

  ${
    $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 ) ` .  (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 $.
    $( The union and intersection of a singleton are equal.  See also ~ eusn .
       (Contributed by Jim Kingdon, 14-Aug-2018.) $)
    uniintsnr $p |- ( E. x A = { x } -> U. A = |^| A ) $=
      ( csn wceq cuni cint vex unisn unieq inteq intsn syl6eq 3eqtr4a exlimiv
      cv ) BAOZCZDZBEZBFZDARQEPSTPAGZHBQIRTQFPBQJPUAKLMN $.

    $( The union and the intersection of a class abstraction are equal if there
       is a unique satisfying value of ` ph ( x ) ` .  (Contributed by Jim
       Kingdon, 14-Aug-2018.) $)
    uniintabim $p |- ( E! x ph -> U. { x | ph } = |^| { x | ph } ) $=
      ( vy weu cab cv csn wceq wex cuni cint euabsn2 uniintsnr sylbi ) 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 as 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.  (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 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 Jim Kingdon, 15-Aug-2018.) $)
    iunconstm $p |- ( E. x x e. A -> U_ x e. A B = B ) $=
      ( vy cv wcel wex ciun wrex r19.9rmv eliun syl6rbbr eqrdv ) AEBFAGZDABCHZC
      NDEZCFZQABIPOFQAABJAPBCKLM $.
  $}

  ${
    $d x z A $.  $d x z B $.  $d y z A $.
    $( Indexed intersection of a constant class, i.e. where ` B ` does not
       depend on ` x ` .  (Contributed by Jim Kingdon, 19-Dec-2018.) $)
    iinconstm $p |- ( E. y y e. A -> |^|_ x e. A B = B ) $=
      ( vz cv wcel wex ciin wral r19.3rmv cvv wb vex eliin ax-mp syl6rbbr eqrdv
      ) BFCGBHZEACDIZDSEFZDGZUBACJZUATGZUBABCKUALGUDUCMENAUACDLOPQR $.
  $}

  ${
    $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 union.  (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 restricted existential quantifier.  (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 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 x y $.  $d z A $.  $d z B $.  $d x z $.  $d y z $.
    nfiunxy.1 $e |- F/_ y A $.
    nfiunxy.2 $e |- F/_ y B $.
    $( Bound-variable hypothesis builder for indexed union.  (Contributed by
       Mario Carneiro, 25-Jan-2014.) $)
    nfiunxy $p |- F/_ y U_ x e. A B $=
      ( vz ciun cv wcel wrex cab df-iun nfcri nfrexxy nfab nfcxfr ) BACDHGIDJZA
      CKZGLAGCDMSBGRBACEBGDFNOPQ $.

    $( Bound-variable hypothesis builder for indexed intersection.
       (Contributed by Mario Carneiro, 25-Jan-2014.) $)
    nfiinxy $p |- F/_ y |^|_ x e. A B $=
      ( vz ciin cv wcel wral cab df-iin nfcri nfralxy nfab nfcxfr ) BACDHGIDJZA
      CKZGLAGCDMSBGRBACEBGDFNOPQ $.
  $}

  ${
    $d x A $.  $d z A $.  $d z B $.  $d x z $.  $d y z $.
    nfiunya.1 $e |- F/_ y A $.
    nfiunya.2 $e |- F/_ y B $.
    $( Bound-variable hypothesis builder for indexed union.  (Contributed by
       Mario Carneiro, 25-Jan-2014.) $)
    nfiunya $p |- F/_ y U_ x e. A B $=
      ( vz ciun cv wcel wrex cab df-iun nfcri nfrexya nfab nfcxfr ) BACDHGIDJZA
      CKZGLAGCDMSBGRBACEBGDFNOPQ $.

    $( Bound-variable hypothesis builder for indexed intersection.
       (Contributed by Mario Carneiro, 25-Jan-2014.) $)
    nfiinya $p |- F/_ y |^|_ x e. A B $=
      ( vz ciin cv wcel wral cab df-iin nfcri nfralya nfab nfcxfr ) BACDHGIDJZA
      CKZGLAGCDMSBGRBACEBGDFNOPQ $.
  $}

  ${
    $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 ssel reximi r19.37av syl eliun syl6ibr ssrdv
      wi ) DCFZABGZEDABCHZTEIZDJZUBCJZABGZUBUAJTUCUDRZABGUCUERSUFABDCUBKLUCUDAB
      MNAUBBCOPQ $.
  $}

  ${
    $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 nfcv nfab1 nfiunxy cleqf abid rexbii 3bitr4i
      wb eliun mpgbir ) BDACEZFZABDGZCEZHCIZUBJZUEUDJZRCCUBUDBCDUACDKACLMUCCLNU
      EUAJZBDGUCUFUGUHABDACOPBUEDUASUCCOQT $.

    $( 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 vex eliin ax-mp wi reximi r19.36av
      ssel syl syl5bi ssrdv ) CDFZABGZEABCHZDEIZUFJZUGCJZABKZUEUGDJZUGLJUHUJMEN
      AUGBCLOPUEUIUKQZABGUJUKQUDULABCDUGTRUIUKABSUAUBUC $.
  $}

  ${
    $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 wi cvv wb vex eliin ax-mp rsp sylbi com12 ssrdv )
      AEBFZDABCGZCDEZTFZSUACFZUBUCABHZSUCIUAJFUBUDKDLAUABCJMNUCABOPQR $.
  $}

  ${
    $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 2false eqriv ) CAB
      DEZDCFZQGZRDGZSTABHTABTIAFBGRJZKLARBDMNUAOP $.

    $( 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 noel 2false eqriv ) CADBEZDCFZ
      OGZPDGQPBGZADHRAIAPDBJKPLMN $.

    $( 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.  (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 an inhabited class in an indexed collection ` B ( x ) ` iff the
       indexed union of them is inhabited.  (Contributed by Jim Kingdon,
       16-Aug-2018.) $)
    iunn0m $p |- ( E. x e. A E. y y e. B <-> E. y y e. U_ x e. A B ) $=
      ( cv wcel wex wrex ciun rexcom4 eliun exbii bitr4i ) BEZDFZBGACHOACHZBGNA
      CDIFZBGOABCJQPBANCDKLM $.
  $}

  ${
    $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 nfiinxy cleqf abid ralbii cvv vex
      wb eliin ax-mp 3bitr4i mpgbir ) BDACEZFZABDGZCEZHCIZUEJZUHUGJZSCCUEUGBCDU
      DCDKACLMUFCLNUHUDJZBDGZUFUIUJUKABDACOPUHQJUIULSCRBUHDUDQTUAUFCOUBUC $.

    $d x A $.  $d x B $.
    $( Indexed intersection of a restricted class builder.  (Contributed by Jim
       Kingdon, 16-Aug-2018.) $)
    iinrabm $p |- ( E. x x e. A
          -> |^|_ x e. A { y e. B | ph } = { y e. B | A. x e. A ph } ) $=
      ( cv wcel wex wa wral cab crab ciin r19.28mv abbidv wceq df-rab a1i iinab
      iineq2i eqtri 3eqtr4g ) BFDGZBHZCFEGZAIZBDJZCKZUEABDJZIZCKBDACELZMZUICELU
      DUGUJCUEABDNOULBDUFCKZMUHBDUKUMUKUMPUCACEQRTUFBCDSUAUICEQUB $.
  $}

  ${
    $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 union of class difference.  Compare to theorem "De Morgan's
       laws" in [Enderton] p. 31.  (Contributed by Jim Kingdon,
       17-Aug-2018.) $)
    iundif2ss $p |- U_ x e. A ( B \ C ) C_ ( B \ |^|_ x e. A C ) $=
      ( vy cdif ciun ciin cv wcel wrex wn wa eldif rexbii r19.42v wral rexnalim
      bitri cvv wb vex eliin ax-mp sylnibr anim2i sylbi eliun 3imtr4i ssriv ) E
      ABCDFZGZCABDHZFZEIZUKJZABKZUOCJZUOUMJZLZMZUOULJUOUNJUQURUODJZLZABKZMZVAUQ
      URVCMZABKVEUPVFABUOCDNOURVCABPSVDUTURVDVBABQZUSVBABRUOTJUSVGUAEUBAUOBDTUC
      UDUEUFUGAUOBUKUHUOCUMNUIUJ $.
  $}

  ${
    $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.  Compare to Theorem "De
       Morgan's laws" in [Enderton] p. 31.  (Contributed by Jim Kingdon,
       17-Aug-2018.) $)
    iindif2m $p |- ( E. x x e. A ->
                 |^|_ x e. A ( B \ C ) = ( B \ U_ x e. A C ) ) $=
      ( vy cv wcel wex cdif ciin ciun wral wn r19.28mv eldif bicomi ralbii wrex
      wa cvv ralnex eliun xchbinxr anbi2i 3bitr3g vex eliin ax-mp 3bitr4g eqrdv
      wb ) AFBGAHZEABCDIZJZCABDKZIZULEFZUMGZABLZUQCGZUQUOGZMZSZUQUNGZUQUPGULUTU
      QDGZMZSZABLUTVFABLZSUSVCUTVFABNVGURABURVGUQCDOPQVHVBUTVHVEABRVAVEABUAAUQB
      DUBUCUDUEUQTGVDUSUKEUFAUQBUMTUGUHUQCUOOUIUJ $.

    $( Indexed intersection of intersection.  Compare to Theorem "Distributive
       laws" in [Enderton] p. 30.  (Contributed by Jim Kingdon,
       17-Aug-2018.) $)
    iinin2m $p |- ( E. x x e. A ->
      |^|_ x e. A ( B i^i C ) = ( B i^i |^|_ x e. A C ) ) $=
      ( vy cv wcel wex cin ciin wral wa r19.28mv elin ralbii cvv wb eliin ax-mp
      3bitr4g vex anbi2i eqrdv ) AFBGAHZEABCDIZJZCABDJZIZUDEFZUEGZABKZUICGZUIUG
      GZLZUIUFGZUIUHGUDULUIDGZLZABKULUPABKZLUKUNULUPABMUJUQABUICDNOUMURULUIPGZU
      MURQEUAZAUIBDPRSUBTUSUOUKQUTAUIBUEPRSUICUGNTUC $.

    $( Indexed intersection of intersection.  Compare to Theorem "Distributive
       laws" in [Enderton] p. 30.  (Contributed by Jim Kingdon,
       17-Aug-2018.) $)
    iinin1m $p |- ( E. x x e. A ->
      |^|_ x e. A ( C i^i B ) = ( |^|_ x e. A C i^i B ) ) $=
      ( cv wcel wex cin ciin iinin2m wceq incom a1i iineq2i 3eqtr4g ) AEBFZAGAB
      CDHZICABDIZHABDCHZIRCHABCDJABSQSQKPDCLMNRCLO $.
  $}

  ${
    $d A x $.  $d X x $.  $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 an inhabited family.  (Contributed by Jim
       Kingdon, 19-Aug-2018.) $)
    riinm $p |- ( ( A. x e. X S C_ A /\ E. x x e. X ) ->
        ( A i^i |^|_ x e. X S ) = |^|_ x e. X S ) $=
      ( wss wral cv wcel wex ciin cin incom wceq wrex r19.2m ancoms iinss df-ss
      wa syl sylib syl5eq ) CBEZADFZAGDHAIZSZBADCJZKUGBKZUGBUGLUFUGBEZUHUGMUFUC
      ADNZUIUEUDUJUCADOPADCBQTUGBRUAUB $.
  $}

  ${
    $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 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 but with equality changed to subset.  (Contributed by
       Jim Kingdon, 19-Aug-2018.) $)
    iinuniss $p |- ( A u. |^| B ) C_ |^|_ x e. B ( A u. x ) $=
      ( vy cv wcel cint wo cab cun wral ciin r19.32vr elint2 orbi2i elun ralbii
      vex 3imtr4i ss2abi df-un df-iin 3sstr4i ) DEZBFZUDCGZFZHZDIUDBAEZJZFZACKZ
      DIBUFJACUJLUHULDUEUDUIFZACKZHUEUMHZACKUHULUEUMACMUGUNUEAUDCDRNOUKUOACUDBU
      IPQSTDBUFUAADCUJUBUC $.

    $( A relationship involving union and indexed union.  Exercise 25 of
       [Enderton] p. 33 but with biconditional changed to implication.
       (Contributed by Jim Kingdon, 19-Aug-2018.) $)
    iununir $p |- ( ( A u. U. B ) = U_ x e. B ( A u. x ) ->
        ( B = (/) -> A = (/) ) ) $=
      ( c0 wceq cuni cun cv ciun unieq syl6eq uneq2d un0 iuneq1 eqeq12d biimpcd
      uni0 0iun ) CDEZBCFZGZACBAHGZIZEBDESUABUCDSUABDGBSTDBSTDFDCDJQKLBMKSUCADU
      BIDACDUBNAUBRKOP $.
  $}

  ${
    $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 vex elpw ralbii dfss3 unissb 3bitr4i ) CDZ
      BEZFZCAGPBHZCAGAQHAIBHRSCAPBCJKLCAQMCABNO $.

    $( 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 $.
  $}

  $( 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 wral ssint vex elpw ralbii bitr4i wb eliin
      cvv ax-mp 3bitr4i eqriv ) CBDZEZABAFZEZGZCFZUBHZUGUEIZABJZUGUCIUGUFIZUHUG
      UDHZABJUJAUGBKUIULABUGUDCLZMNOUGUBUMMUGRIUKUJPUMAUGBUERQSTUA $.

    $( 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 cpw ciun cuni wss wrex wcel ssiun eliun vex elpw rexbii bitri uniiun
      cv sseq2i 3imtr4i ssriv ) CABAQZDZEZBFZDZCQZUAGZABHZUFABUAEZGZUFUCIZUFUEI
      ZABUAUFJUKUFUBIZABHUHAUFBUBKUMUGABUFUACLZMNOULUFUDGUJUFUDUNMUDUIUFABPROST
      $.
  $}

  ${
    $d x X $.
    $( Relative intersection of an inhabited class.  (Contributed by Jim
       Kingdon, 19-Aug-2018.) $)
    rintm $p |- ( ( X C_ ~P A /\ E. x x e. X ) -> ( A i^i |^| X ) = |^| X ) $=
      ( cpw wss cv wcel wex wa cint cin incom wceq cuni intssuni2m ssid sspwuni
      mpbi syl6ss df-ss sylib syl5eq ) CBDZEAFCGAHIZBCJZKUEBKZUEBUELUDUEBEUFUEM
      UDUEUCNZBACUCOUCUCEUGBEUCPUCBQRSUEBTUAUB $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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 y z $.
    nfdisjv.1 $e |- F/_ y A $.
    nfdisjv.2 $e |- F/_ y B $.
    $( Bound-variable hypothesis builder for disjoint collection.  (Contributed
       by Jim Kingdon, 19-Aug-2018.) $)
    nfdisjv $p |- F/ y Disj_ x e. A B $=
      ( vz wdisj cv wcel wa wmo wal dfdisj2 nfcv nfel nfcri nfan nfmo nfal
      nfxfr ) ACDHAIZCJZGIDJZKZALZGMBAGCDNUFBGUEBAUCUDBBUBCBUBOEPBGDFQRSTUA $.
  $}

  ${
    $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 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 wa wmo wal wdisj nfra2xy wi df-ral rsp eqcom syl6ib imim2i
      wcel impd alimi sylbi mo2icl syl alrimi dfdisj2 sylibr ) EAFZGZBDHZACHZUI
      CTZBFDTZIZAJZBKACDLULUPBUJABCDMULUOUIEGZNZAKZUPULUMUKNZAKUSUKACOUTURAUTUM
      UNUQUKUNUQNUMUKUNUJUQUJBDPEUIQRSUAUBUCUOAEUDUEUFABCDUGUH $.
  $}

  ${
    $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 moeq simpr velsn sylib eqcomd moimi
      weq ax-mp mpgbir ) ABADZEZFTBGZCDZUAGZHZAIZCACBUAJACQZAIUFAUCKUEUGAUEUCTU
      EUDCAQUBUDLCTMNOPRS $.
  $}

  $( 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 $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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. $)
  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.  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 $.
    $}

    ${
      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 $.
    $}
  $}

  $( 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, 5-Aug-1993.) $)
    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, 5-Aug-1993.) $)
    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, 5-Aug-1993.) $)
    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, 5-Aug-1993.) $)
    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 ) $.
    $( B 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 ) $.
    $( B 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 ) $.
    $( B 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 ) $.
    $( B 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 $.
  $}

  ${
    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 ) $=
      ( wbr wi wtru wss a1i ssbrd trud ) CDAFCDBFGHABCDABIHEJKL $.
  $}

  ${
    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 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 D $.  $d y R $.  $d x y $.
    $( Move substitution in and out of a binary relation.  (Contributed by NM,
       13-Dec-2005.)  (Proof shortened by Andrew Salmon, 9-Jul-2011.) $)
    sbcbrg $p |- ( A e. D -> ( [. A / x ]. B R C <->
           [_ A / x ]_ B [_ A / x ]_ R [_ A / x ]_ C ) ) $=
      ( vy wbr wsb cv csb wsbc dfsbcq2 wceq csbeq1 breq123d nfcsb1v weq csbeq1a
      nfbr sbie vtoclbg ) CDFHZAGIAGJZCKZAUDDKZAUDFKZHZUCABLABCKZABDKZABFKZHGBE
      UCAGBMUDBNUEUIUFUJUGUKAUDBCOAUDBFOAUDBDOPUCUHAGAUEUFUGAUDCQAUDFQAUDDQTAGR
      CUEDUFFUGAUDCSAUDFSAUDDSPUAUB $.
  $}

  ${
    $d x R $.
    $( Move substitution in and out of a binary relation.  (Contributed by NM,
       13-Dec-2005.) $)
    sbcbr12g $p |- ( A e. D ->
                 ( [. A / x ]. B R C <-> [_ A / x ]_ B R [_ A / x ]_ C ) ) $=
      ( wcel wbr wsbc csb sbcbrg csbconstg breqd bitrd ) BEGZCDFHABIABCJZABDJZA
      BFJZHPQFHABCDEFKORFPQABFELMN $.
  $}

  ${
    $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. D ->
                  ( [. A / x ]. B R C <-> [_ A / x ]_ B R C ) ) $=
      ( wcel wbr wsbc csb sbcbr12g csbconstg breq2d bitrd ) BEGZCDFHABIABCJZABD
      JZFHPDFHABCDEFKOQDPFABDELMN $.
  $}

  ${
    $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. D ->
                  ( [. A / x ]. B R C <-> B R [_ A / x ]_ C ) ) $=
      ( wcel wbr wsbc csb sbcbr12g csbconstg breq1d bitrd ) BEGZCDFHABIABCJZABD
      JZFHCQFHABCDEFKOPCQFABCELMN $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Ordered-pair class abstractions (class builders)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c |-> $.  $( Maps-to symbol $)

  $( Extend class notation to include ordered-pair class abstraction (class
     builder). $)
  copab $a class { <. x , y >. | ph } $.

  $( 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 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.  The brace notation
       is called "class abstraction" by Quine; it is also (more commonly)
       called a "class builder" in the literature.  (Contributed by NM,
       4-Jul-1994.) $)
    df-opab $a |- { <. x , y >. | ph } =
                  { z | E. x E. y ( z = <. x , y >. /\ ph ) } $.
  $}

  ${
    $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 ` .  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 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 w y z A $.  $d w ph $.  $d w x y z $.
    $( Move substitution into a class abstraction.  (Contributed by NM,
       6-Aug-2007.)  (Proof shortened by Mario Carneiro, 17-Nov-2016.) $)
    csbopabg $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 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 $.
  $}

  ${
    $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 rsp df-mpt
      imp eqeq2d pm5.32da sp eleq2d anbi1d sylan9bbr opabbid 3eqtr4g ) BDGZAHZC
      EGZABIZJZAKZBLZFKZCGZJZAFMUODLZUQEGZJZAFMABCNADENUNUSVBAFUKUMAUJAOULABPQU
      NFRUMUSUPVAJUKVBUMUPURVAUMUPJCEUQUMUPULULABSUAUBUCUKUPUTVAUKBDUOUJAUDUEUF
      UGUHAFBCTAFDETUI $.

    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 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-17 mpteq12f sylan ) BDFZMAGCEFABHABCIADEIFMAJABCD
      EKL $.
  $}

  ${
    $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 $.
  $}

  ${
    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 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.  Definition of [Enderton] p. 71
     extended to arbitrary classes.  For alternate definitions, see ~ dftr2
     (which is suggestive of the word "transitive"), ~ dftr3 , ~ dftr4 , and
     ~ dftr5 .  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.) $)
    trss $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 syl5com syl5 rexlimi syl sylan2b ralrimiva dftr3 sylibr )
      CEZABFZDGZABCHZIZDUMFUMEUKUNDUMULUMJUKULCJZABKZUNAULBCLUKUPSUJUOSZABKUNUJ
      UOABMUQUNABAULUMAULNABCOPUQULCIZAGBJZUNUJUOURCULQRUSCUMIURUNABCTULCUMUAUB
      UCUDUEUFUGDUMUHUI $.

    $( 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 wi cint dftr3 ralbii biimpi df-ral ralcom4 bitri
      wal sylib ralim alimi syl wcel vex elint2 ssint imbi12i albii sylibr ) AD
      ZEZABFZCAGZABFZCDZUIHZABFZIZCQZBJZEZUKULUOIZABFZCQZURUKUOCUIFZABFZVCUKVEU
      JVDABCUIKLMVEVACQZABFVCVDVFABUOCUINLVAACBOPRVBUQCULUOABSTUAUTUNUSHZCUSFZU
      RCUSKVHUNUSUBZVGIZCQURVGCUSNVJUQCVIUMVGUPAUNBCUCUDAUNBUEUFUGPPUH $.

    $( Any inhabited transitive class includes its intersection.  Similar to
       Exercise 3 in [TakeutiZaring] p. 44 (which mistakenly does not include
       the inhabitedness hypothesis).  (Contributed by Jim Kingdon,
       22-Aug-2018.) $)
    trintssm $p |- ( ( Tr A /\ E. x x e. A ) -> |^| A C_ A ) $=
      ( cv wcel wex wtr cint wss intss1 trss com12 sstr2 sylsyld exlimiv impcom
      wi ) ACZBDZAEBFZBGZBHZRSUAPARTQHSQBHZUAQBISRUBBQJKTQBLMNO $.

    $( Obsolete version of ~ trintssm as of 30-Oct-2021.  (Contributed by Jim
       Kingdon, 22-Aug-2018.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    trintssmOLD $p |- ( ( E. x x e. A /\ Tr A ) -> |^| A C_ A ) $=
      ( vy cv wcel wex wtr wa cint wral vex elint2 wrex r19.2m ex trel rexlimdv
      expcomd sylan9 syl5bi ssrdv ) ADZBEZAFZBGZHZCBIZBCDZUGEUHUBEZABJZUFUHBEZA
      UHBCKLUDUJUIABMZUEUKUDUJULUIABNOUEUIUKABUEUIUCUKBUHUBPRQSTUA $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  IZF Set Theory - add the Axioms of Collection and Separation
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Introduce the Axiom of Collection
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y a b $.
    ax-coll.1 $e |- F/ b ph $.
    $( Axiom of Collection.  Axiom 7 of [Crosilla], p.  "Axioms of CZF and IZF"
       (with unnecessary quantifier removed).  It is similar to ~ bnd but uses
       a freeness hypothesis in place of one of the distinct variable
       constraints.  (Contributed by Jim Kingdon, 23-Aug-2018.) $)
    ax-coll $a |- ( A. x e. a E. y ph -> E. b A. x e. a E. y e. b ph ) $.

    $( Axiom of Replacement.  Axiom 7' of [Crosilla], p.  "Axioms of CZF and
       IZF" (with unnecessary quantifier removed).  In our context this is not
       an axiom, but a theorem proved from ~ ax-coll .  It is identical to
       ~ zfrep6 except for the choice of a freeness hypothesis rather than a
       distinct variable constraint between ` b ` and ` ph ` .  (Contributed by
       Jim Kingdon, 23-Aug-2018.) $)
    repizf $p |- ( A. x e. a E! y ph -> E. b A. x e. a E. y e. b ph ) $=
      ( weu cv wral wex wrex euex ralimi ax-coll syl ) ACGZBDHZIACJZBQIACEHKBQI
      EJPRBQACLMABCDEFNO $.
  $}

  ${
    $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.  (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 ) $=
      ( nfv repizf ) ABCDEAEFG $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Introduce the Axiom of Separation
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y z $.  $d y z ph $.
    $( The Axiom of Separation of IZF set theory.  Axiom 6 of [Crosilla], p.
       "Axioms of CZF and IZF" (with unnecessary quantifier removed, and with a
       ` F/ y ph ` condition replaced by a distinct variable constraint between
       ` y ` and ` ph ` ).

       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.

       (Contributed by NM, 11-Sep-2006.) $)
    ax-sep $a |- E. y A. x ( x e. y <-> ( x e. z /\ ph ) ) $.
  $}

  ${
    $d x y z w $.  $d y ph w $.  $d z w $.
    $( A less restrictive version of the Separation Scheme ~ ax-sep , 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 ) ) $=
      ( vw wel wa wb wal wex cv eleq2 anbi1d anabs5 syl6bb bibi2d albidv exbidv
      weq ax-sep chvarv ) BCFZBEFZBDFZAGZGZHZBIZCJUBUEHZBIZCJEDEDSZUHUJCUKUGUIB
      UKUFUEUBUKUFUDUEGUEUKUCUDUEEKDKBKLMUDANOPQRUEBCETUA $.
  $}

  ${
    $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.  (Contributed by NM, 5-Aug-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, 5-Aug-1993.) $)
    bm1.3ii $p |- E. x A. y ( y e. x <-> ph ) $=
      ( vz wel wi wal wa wex weq elequ2 imbi2d albidv cbvexv mpbi ax-sep pm3.2i
      wb exan 19.42v bimsc1 alanimi eximi sylbir exlimiv ax-mp ) ACEFZGZCHZCBFZ
      UHAISZCHZBJZIZEJUKASZCHZBJZUJUNEUJEJZUNAUKGZCHZBJUSDVAUJBEBEKZUTUICVBUKUH
      ABECLMNOPACBEQRTUOUREUOUJUMIZBJURUJUMBUAVCUQBUIULUPCAUHUKUBUCUDUEUFUG $.
  $}

  ${
    $d x y z $.
    $( Derive a weakened version of ~ ax-i9 , where ` x ` and ` y ` must be
       distinct, from Separation ~ ax-sep and Extensionality ~ ax-ext .  The
       theorem ` -. A. x -. x = y ` also holds ( ~ ax9vsep ), but in
       intuitionistic logic ` E. x x = y ` is stronger.  (Contributed by Jim
       Kingdon, 25-Aug-2018.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    a9evsep $p |- E. x x = y $=
      ( vz cv wcel wceq wi wa wb wal wex ax-sep id biantru bibi2i biimpri alimi
      ax-ext syl eximi ax-mp ) CDZADZEZUBBDZEZUBUBFZUGGZHZIZCJZAKUCUEFZAKUHCABL
      UKULAUKUDUFIZCJULUJUMCUMUJUFUIUDUHUFUGMNOPQABCRSTUA $.

    $( Derive a weakened version of ~ ax-9 , where ` x ` and ` y ` must be
       distinct, from Separation ~ ax-sep and Extensionality ~ ax-ext .  In
       intuitionistic logic ~ a9evsep is stronger and also holds.  (Contributed
       by NM, 12-Nov-2013.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    ax9vsep $p |- -. A. x -. x = y $=
      ( cv wceq wex wn wal a9evsep exalim ax-mp ) ACBCDZAEKFAGFABHKAIJ $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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 $.
    $( 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 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 cv wn wa wb wal wex ax-sep pm3.24 intnan id mtbiri alimi eximi ax-mp
      wcel ) BDZADRZSCDRZSSRZUBEFZFZGZBHZAITEZBHZAIUCBACJUFUHAUEUGBUETUDUCUAUBK
      LUEMNOPQ $.

    $( The Null Set Axiom of IZF 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.  Axiom 4 of [Crosilla] p.
       "Axioms of CZF and IZF".  (Contributed by NM, 7-Aug-2003.) $)
    ax-nul $a |- E. x A. y -. y e. x $.

    $( 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, 5-Aug-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 $.
  $}

  ${
    $d y A $.  $d y B $.  $d x y $.
    $( The existence of proper substitution into a class.  (Contributed by NM,
       10-Nov-2005.) $)
    csbexga $p |- ( ( A e. V /\ A. x B e. W ) -> [_ A / x ]_ B e. _V ) $=
      ( vy wcel wal wa csb wsbc cab cvv df-csb abid2 elex syl5eqel alimi spsbc
      cv syl5 imp wb nfcv sbcabel adantr mpbid ) BDGZCEGZAHZIZABCJFTCGZABKFLZMA
      FBCNUKULFLZMGZABKZUMMGZUHUJUPUJUOAHUHUPUIUOAUIUNCMFCOCEPQRUOABDSUAUBUHUPU
      QUCUJULAFBMDAMUDUEUFUGQ $.
  $}

  ${
    csbexa.1 $e |- A e. _V $.
    csbexa.2 $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.) $)
    csbexa $p |- [_ A / x ]_ B e. _V $=
      ( cvv wcel csb wal csbexga mpan mpg ) CFGZABCHFGZABFGMAINDABCFFJKEL $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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 alexnim wa wb ax-sep weq elequ1 elequ2 notbid anbi12d
      bitrd bibi12d spv pclem6 syl eximii mpg ) BADZEZBFUDBGAFEAUDABHCBDZCADZCC
      DZEZIZJZCGZUEBUICBAKULBBDZUDUMEZIZJZUEUKUPCBCBLZUFUMUJUOCBBMUQUGUDUIUNCBA
      MUQUHUMUQUHBCDUMCBCMCBBNQOPRSUMUDTUAUBUC $.
  $}

  ${
    $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, 5-Aug-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 $.
  $}

  $( 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 $.

  ${
    $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 $.  $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 an inhabited class exists.  (Contributed by Jim
       Kingdon, 27-Aug-2018.) $)
    inteximm $p |- ( E. x x e. A -> |^| A e. _V ) $=
      ( cv wcel cint cvv wss intss1 vex ssex syl exlimiv ) ACZBDZBEZFDZANOMGPMB
      HOMAIJKL $.
  $}

  $( If the intersection of a class exists, the class is non-empty.
     (Contributed by Jim Kingdon, 27-Aug-2018.) $)
  intexr $p |- ( |^| A e. _V -> A =/= (/) ) $=
    ( cint cvv wcel c0 wceq vprc inteq int0 syl6eq eleq1d mtbiri necon2ai ) ABZ
    CDZAEAEFZOCCDGPNCCPNEBCAEHIJKLM $.

  $( If a class intersection is the universe, it is not a set.  In classical
     logic this would be an equivalence.  (Contributed by Jim Kingdon,
     27-Aug-2018.) $)
  intnexr $p |- ( |^| A = _V -> -. |^| A e. _V ) $=
    ( cint cvv wceq wcel vprc eleq1 mtbiri ) ABZCDICECCEFICCGH $.

  ${
    $d x y $.  $d ph y $.
    $( The intersection of an inhabited class abstraction exists.  (Contributed
       by Jim Kingdon, 27-Aug-2018.) $)
    intexabim $p |- ( E. x ph -> |^| { x | ph } e. _V ) $=
      ( vy wex cv cab wcel cint cvv abid exbii nfsab1 nfv eleq1 inteximm sylbir
      cbvex ) ABDBEZABFZGZBDZSHIGZTABABJKUACEZSGZCDUBUDTCBABCLTCMUCRSNQCSOPP $.
  $}

  $( The intersection of an inhabited restricted class abstraction exists.
     (Contributed by Jim Kingdon, 27-Aug-2018.) $)
  intexrabim $p |- ( E. x e. A ph -> |^| { x e. A | ph } e. _V ) $=
    ( cv wcel wex cab cint cvv wrex crab intexabim df-rex df-rab inteqi 3imtr4i
    wa eleq1i ) BDCEAQZBFSBGZHZIEABCJABCKZHZIESBLABCMUCUAIUBTABCNORP $.

  ${
    $d A x y $.  $d B y $.  $d x y z $.  $d A z $.  $d B z $.
    $( The existence of an indexed union. ` x ` is normally a free-variable
       parameter in ` B ` , which should be read ` B ( x ) ` .  (Contributed by
       Jim Kingdon, 28-Aug-2018.) $)
    iinexgm $p |- ( ( E. x x e. A /\ A. x e. A B e. C ) ->
        |^|_ x e. A B e. _V ) $=
      ( vy vz cv wcel wex wral wa ciin wceq wrex cab cint cvv wi syl sylib abid
      dfiin2g adantl elisset rgenw r19.2m mpan2 r19.35-1 imp rexcom4 sylibr nfv
      exbii nfsab1 eleq1 cbvex inteximm eqeltrd ) AGBHAIZCDHZABJZKZABCLZEGZCMZA
      BNZEOZPZQVAVCVHMUSAEBCDUBUCVBFGZVGHZFIZVHQHVBVDVGHZEIZVKVBVFEIZVMVBVEEIZA
      BNZVNUSVAVPUSUTVORZABNZVAVPRUSVQABJVRVQABECDUDUEVQABUFUGUTVOABUHSUIVEAEBU
      JTVLVFEVFEUAUMUKVLVJEFVLFULVFEFUNVDVIVGUOUPTFVGUQSUR $.
  $}

  ${
    $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 $.
  $}

  ${
    $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
    $.

  $( Lemma for ~ repizf2 .  If we have a function-like proposition which
     provides at most one value of ` y ` for each ` x ` in a set ` w ` , we can
     change "at most one" to "exactly one" by restricting the values of ` x `
     to those values for which the proposition provides a value of ` y ` .
     (Contributed by Jim Kingdon, 7-Sep-2018.) $)
  repizf2lem $p |- ( A. x e. w E* y ph <->
      A. x e. { x e. w | E. y ph } E! y ph ) $=
    ( cv wcel wmo wi wal wex wral crab df-mo imbi2i albii df-ral wa rabid bitri
    weu imbi1i impexp 3bitr4i ) BEZDEZFZACGZHZBIUFACJZACTZHZHZBIZUGBUEKUJBUIBUE
    LZKZUHULBUGUKUFACMNOUGBUEPUOUDUNFZUJHZBIUMUJBUNPUQULBUQUFUIQZUJHULUPURUJUIB
    UERUAUFUIUJUBSOSUC $.

  ${
    $d v x y z w $.  $d v ph $.
    repizf2.1 $e |- F/ z ph $.
    $( Replacement.  This version of replacement is stronger than ~ repizf in
       the sense that ` ph ` does not need to map all values of ` x ` in ` w `
       to a value of ` y ` .  The resulting set contains those elements for
       which there is a value of ` y ` and in that sense, this theorem combines
       ~ repizf with ~ ax-sep .  Another variation would be
       ` A. x e. w E* y ph -> { y | E. x ( x e. w /\ ph ) } e. _V ` but we
       don't have a proof of that yet.  (Contributed by Jim Kingdon,
       7-Sep-2018.) $)
    repizf2 $p |- ( A. x e. w E* y ph ->
        E. z A. x e. { x e. w | E. y ph } E. y e. z ph ) $=
      ( vv wmo cv wral wrex wex crab wi vex rabex wceq weu repizf2lem raleqf wa
      nfcv nfrab1 repizf syl6bir syl5bi wel cab df-rab nfv nfex nfan nfab nfeq2
      nfcxfr exbid sylibd vtocle ) ACHBEIZJZACDIKZBACLZBUSMZJZDLZNGVCVBBUSEOPGI
      ZVCQZUTVABVFJZDLZVEUTACRZBVCJZVGVIABCESVGVKVJBVFJVIVJBVFVCBVFUBZVBBUSUCZT
      ABCGDFUDUEUFVGVHVDDDVFVCDVCBEUGZVBUAZBUHVBBUSUIVODBVNVBDVNDUJADCFUKULUMUO
      UNVABVFVCVLVMTUPUQUR $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Theorems requiring empty set existence
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x A $.
    $( Equality theorem for classes and sets .  (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 $.

  $( 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, 30-Sep-2003.) $)
  0inp0 $p |- ( A = (/) -> -. A = { (/) } ) $=
    ( c0 wceq csn wne 0nep0 neeq1 mpbiri neneqd ) ABCZABDZJAKEBKEFABKGHI $.

  ${
    $d A x y $.
    $( 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 $=
      ( vx vy c0 csn cdif cuni cv wcel wn wa wex n0i pm4.71i anbi1i exbii eluni
      wceq anbi2i bitri an32 anass 3bitr2ri eldif velsn notbii 3bitr4i eqriv )
      BADEZFZGZAGZBHZCHZIZUNAIZUNDRZJZKZKZCLZUOUPKZCLUMUKIZUMULIUTVBCVBUOURKZUP
      KVBURKUTUOVDUPUOURUNUMMNOUOUPURUAUOUPURUBUCPVCUOUNUJIZKZCLVACUMUJQVFUTCVE
      USUOVEUPUNUIIZJZKUSUNAUIUDVHURUPVGUQCDUEUFSTSPTCUMAQUGUH $.
  $}

  ${
    $d y A $.  $d x A $.
    $( An indexed intersection of the empty set, with an inhabited index set,
       is empty.  (Contributed by Jim Kingdon, 29-Aug-2018.) $)
    iin0imm $p |- ( E. y y e. A -> |^|_ x e. A (/) = (/) ) $=
      ( c0 iinconstm ) ABCDE $.
  $}

  ${
    $d x A $.
    $( If an indexed intersection of the empty set is empty, the index set is
       non-empty.  (Contributed by Jim Kingdon, 29-Aug-2018.) $)
    iin0r $p |- ( |^|_ x e. A (/) = (/) -> A =/= (/) ) $=
      ( c0 ciin wceq cvv wcel wn 0ex n0i ax-mp 0iin eqeq1i iineq1 eqeq1d mtbiri
      mtbir necon2ai ) ABCDZCEZBCBCEZTACCDZCEZUCFCEZCFGUDHIFCJKUBFCACLMQUASUBCA
      BCCNOPR $.
  $}

  $( 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 $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Collection principle
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d ph z w $.  $d x y z w $.
    $( A very strong generalization of the Axiom of Replacement (compare
       ~ zfrep6 ).  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.  In the context of IZF, it is just a slight
       variation of ~ ax-coll .  (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 ) $=
      ( nfv ax-coll ) ABCDEAEFG $.
  $}

  ${
    $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 $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  IZF Set Theory - add the Axioms of Power Sets and Pairing
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Introduce the Axiom of Power Sets
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y z w $.
    $( Axiom of Power Sets.  An axiom of Intuitionistic 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 ` .  This is
       Axiom 8 of [Crosilla] p.  "Axioms of CZF and IZF" except (a) unnecessary
       quantifiers are removed, and (b) Crosilla has a biconditional rather
       than an implication (but the two are equivalent by ~ bm1.3ii ).

       The variant ~ axpow2 uses explicit subset notation.  A version using
       class notation is ~ pwex .  (Contributed by NM, 5-Aug-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.  (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 ax-14 alrimiv ax-13 embantd spimv eximii ) BCDB
      ADEZBFZCBDZEZCFABDZBBCAGRSCACAHZPQSTOBCABIJCABKLMN $.
  $}

  ${
    $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, 5-Aug-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 $.
  $}

  ${
    $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 vex pwex vtoclg ) CDZEZFGAEZFGCABNA
      HOPFNAIJNCKLM $.

    $( 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 $.
  $}

  $( A singleton whose element exists is a set.  The ` A e. _V ` case of
     Theorem 7.12 of [Quine] p. 51, proved using only Extensionality, Power
     Set, and Separation.  Replacement is not needed.  (Contributed by Jim
     Kingdon, 1-Sep-2018.) $)
  snexg $p |- ( A e. V -> { A } e. _V ) $=
    ( wcel cpw cvv csn pwexg wss snsspw ssexg mpan syl ) ABCADZECZAFZECZABGOMHN
    PAIOMEJKL $.

  ${
    snex.1 $e |- A e. _V $.
    $( A singleton whose element exists is a set.  (Contributed by NM,
       7-Aug-1994.)  (Revised by Mario Carneiro, 24-May-2019.) $)
    snex $p |- { A } e. _V $=
      ( cvv wcel csn snexg ax-mp ) ACDAECDBACFG $.
  $}

  $( A singleton whose element is a proper class is a set.  The ` -. A e. _V `
     case of Theorem 7.12 of [Quine] p. 51, proved using only Extensionality,
     Power Set, and Separation.  Replacement is not needed.  (Contributed by
     Jim Kingdon, 1-Sep-2018.) $)
  snexprc $p |- ( -. A e. _V -> { A } e. _V ) $=
    ( cvv wcel wn csn c0 wceq snprc biimpi 0ex syl6eqel ) ABCDZAEZFBLMFGAHIJK
    $.

  $( The power set of the empty set (the ordinal 1) is a set.  (Contributed by
     NM, 23-Dec-1993.) $)
  p0ex $p |- { (/) } e. _V $=
    ( c0 cpw csn cvv pw0 0ex pwex eqeltrri ) ABACDEAFGH $.

  $( ` { (/) , { (/) } } ` (the ordinal 2) is a set.  (Contributed by NM,
     5-Aug-1993.) $)
  pp0ex $p |- { (/) , { (/) } } e. _V $=
    ( c0 csn cpr cpw p0ex pwex pwpw0ss ssexi ) AABZCIDIEFGH $.

  $( The ordinal number 3 is a set, proved without the Axiom of Union.
     (Contributed by NM, 2-May-2009.) $)
  ord3ex $p |- { (/) , { (/) } , { (/) , { (/) } } } e. _V $=
    ( csn cpr ctp cun cvv df-tp cpw pp0ex pwex pwprss ssexi snsspr2 unss2 ax-mp
    c0 wss eqeltri ) OOAZORBZCSSAZDZEORSFUASRAZSBZDZUDSGSHIORJKTUCPUAUDPUBSLTUC
    SMNKQ $.

  ${
    $d x y z $.
    $( At least two sets exist (or in terms of first-order logic, the universe
       of discourse has two or more objects).  This theorem asserts the
       existence of two sets which do not equal each other; compare with
       ~ dtruex in which we are given a set ` y ` and go from there to a set
       ` x ` which is not equal to it.  (Contributed by Jim Kingdon,
       2-Sep-2018.) $)
    dtruarb $p |- E. x E. y -. x = y $=
      ( vz wel wn wa wex weq el wal ax-nul eximii eeanv mpbir2an nelneq2 2eximi
      sp cv ax-mp ) CADZCBDEZFZBGAGZABHEZBGAGUCTAGUABGCAIUACJUABBCKUACQLTUAABMN
      UBUDABCRARBROPS $.
  $}

  ${
    $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 vex elpw sylibr ssriv ) BAACZDZBEZAFOMG
      ONFOAHOMBIJKL $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Axiom of Pairing
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x z w $.  $d y z w $.
    $( The Axiom of Pairing of IZF set theory.  Axiom 2 of [Crosilla] p.
       "Axioms of CZF and IZF", except (a) unnecessary quantifiers are removed,
       and (b) Crosilla has a biconditional rather than an implication (but the
       two are equivalent by ~ bm1.3ii ).  (Contributed by NM, 14-Nov-2006.) $)
    ax-pr $a |- E. z A. w ( ( w = x \/ w = y ) -> w e. z ) $.

    $( Derive the abbreviated version of the Axiom of Pairing from ~ ax-pr .
       (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 $.  $d x y B $.  $d x W $.
    $( The Axiom of Pairing using class variables.  Theorem 7.13 of [Quine]
       p. 51, but restricted to classes which exist.  For proper classes, see
       ~ prprc , ~ prprc1 , and ~ prprc2 .  (Contributed by Jim Kingdon,
       16-Sep-2018.) $)
    prexg $p |- ( ( A e. V /\ B e. W ) -> { A , B } e. _V ) $=
      ( vx vy wcel cpr cvv wi cv wceq preq2 eleq1d zfpair2 vtoclg preq1 vtocleg
      syl5ib imp ) ACGBDGZABHZIGZUAUCJEACUAEKZBHZIGZUDALZUCUDFKZHZIGUFFBDUHBLUI
      UEIUHBUDMNEFOPUGUEUBIUDABQNSRT $.
  $}

  $( 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 cpw wss snssi cvv wb elex snexg elpwg 3syl mpbird ) ABCZADZBECZP
    BFZABGOAHCPHCQRIABJAHKPBHLMN $.

  ${
    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 ) ABDAEZBFLBGDABCHLBACIJK $.
  $}

  $( A pair of two sets belongs to the power class of a class containing those
     two sets.  (Contributed by Thierry Arnoux, 10-Mar-2017.) $)
  prelpwi $p |- ( ( A e. C /\ B e. C ) -> { A , B } e. ~P C ) $=
    ( wcel wa cpr cpw wss prssi cvv wb prexg elpwg syl mpbird ) ACDBCDEZABFZCGD
    ZQCHZABCIPQJDRSKABCCLQCJMNO $.

  ${
    $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 vex snex eleq2 imbi12d spcv velsn equcomi
      mpi sylbi syl ) ADZCDZEZBDZUBEZFZCGZUDUAHZEZUAUDIZUGUAUHEZUIAJUFUKUIFCUHU
      AAKLUBUHIUCUKUEUIUBUHUAMUBUHUDMNORUIUDUAIUJBUAPBAQST $.
  $}

  ${
    $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
      UEABGHUEACIZJUEBUHJKLUDCABUDUEMZUBFZUIUCFZUEAFZUEBFZUBUCUINUJUIADULUIAUEU
      HOZJUEAUHRPUKUIBDUMUIBUNJUEBUHRPSLT $.
  $}

  ${
    $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 wex eluni elelpwi exlimiv sylbi csn snid snelpwi
      wa vex elunii sylancr impbii eqriv ) BADZEZABFZUCGZUDAGZUEUDCFZGUGUBGPZCH
      UFCUDUBIUHUFCUDUGAJKLUFUDUDMZGUIUBGUEUDBQNUDAOUDUIUBRSTUA $.
  $}

  $( 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 vex elpw imbi12i albii 3bitri ) BCDB
      EZCEZDAFZQGZSRGZHZAISBDZSCDZHZAIBCJAQRKUBUEATUCUAUDSBALZMSCUFMNOP $.

    $( 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 ~ nssr .  (Contributed by
       Jim Kingdon, 17-Sep-2018.) $)
    nssssr $p |- ( E. x ( x C_ A /\ -. x C_ B ) -> -. A C_ B ) $=
      ( cv wss wn wa wex wi wal exanaliim ssextss sylnibr ) ADZBEZNCEZFGAHOPIAJ
      BCEOPAKABCLM $.
  $}

  $( 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 ) BADZEZAFGZBHZUEIEUDUEJBCKUCBUEEAUEIUBUEBLBCRMNBUDEZ
      UEUDJUFUCUCOAUCABCPUCSQBUDTNUA $.
  $}

  ${
    $d y x $.  $d y ph $.
    $( The abstraction of a wff with existential uniqueness exists.
       (Contributed by NM, 25-Nov-1994.) $)
    euabex $p |- ( E! x ph -> { x | ph } e. _V ) $=
      ( vy weu cab cv csn wceq wex cvv wcel euabsn2 vex snex eleq1 mpbiri sylbi
      exlimiv ) ABDABEZCFZGZHZCISJKZABCLUBUCCUBUCUAJKTCMNSUAJOPRQ $.
  $}

  ${
    $d w x y $.  $d w x z $.  $d x y A $.
    $( An inhabited class (even if proper) has an inhabited subset.
       (Contributed by Jim Kingdon, 17-Sep-2018.) $)
    mss $p |- ( E. y y e. A -> E. x ( x C_ A /\ E. z z e. x ) ) $=
      ( vw cv wcel wex wss wa csn vex snss snex wceq sseq1 eleq2 exbidv anbi12d
      snm spcev mpan2 sylbi exlimiv elequ1 cbvexv anbi2i exbii sylibr ) BFZDGZB
      HAFZDIZEFZULGZEHZJZAHZUMCFULGZCHZJZAHUKURBUKUJKZDIZURUJDBLZMVCUNVBGZEHZUR
      EUJVDTUQVCVFJAVBUJVDNULVBOZUMVCUPVFULVBDPVGUOVEEULVBUNQRSUAUBUCUDVAUQAUTU
      PUMUSUOCECEAUEUFUGUHUI $.
  $}

  ${
    $d x y z A w $.  $d y z ph w $.
    $( 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 vw wrex cv wcel wa cab wex wss crab rabn0m df-rab eleq2i sylbi bitri
      wsb exbii bitr3i csn snss ssab2 sstr2 simpr wceq equsb1 velsn sbbii mpbir
      vex mpi jctil df-clab sban 3imtr4i elex2 syl sylib snex sseq1 rexeq spcev
      anbi12d syl2anc exlimiv ) ABDGZEHZBHZDIZAJZBKZIZELZCHZDMZABVQGZJZCLZVIVJA
      BDNZIZELVPABEDOWCVOEWBVNVJABDPQUAUBVOWAEVOVJUCZDMZABWDGZWAVOWDVNMZWEVJVNE
      UMZUDWGVNDMWEABDUEWDVNDUFUNRVOFHABWDNZIFLZWFVOVJWIIZWJVLBETZABETZJZVKWDIZ
      BETZWMJZVOWKWNWMWPWLWMUGWPVKVJUHZBETBEUIWOWRBEBVJUJUKULUOVOVMBETWNVMEBUPV
      LABEUQSWKVJWOAJZBKZIZWQWIWTVJABWDPQXAWSBETWQWSEBUPWOABEUQSSURFVJWIUSUTABF
      WDOVAVTWEWFJCWDVJWHVBVQWDUHVRWEVSWFVQWDDVCABVQWDVDVFVEVGVHR $.
  $}

  $( An ordered pair of sets is a set.  (Contributed by Jim Kingdon,
     11-Jan-2019.) $)
  opexg $p |- ( ( A e. V /\ B e. W ) -> <. A , B >. e. _V ) $=
    ( wcel wa cop csn cpr cvv dfopg elex snexg syl adantr prexg syl2anc eqeltrd
    syl2an ) ACEZBDEZFZABGAHZABIZIZJABCDKUBUCJEZUDJEZUEJETUFUATAJEZUFACLZAJMNOT
    UHBJEUGUAUIBDLABJJPSUCUDJJPQR $.

  ${
    opex.1 $e |- A e. _V $.
    opex.2 $e |- B e. _V $.
    $( An ordered pair of sets is a set.  (Contributed by Jim Kingdon,
       24-Sep-2018.)  (Revised by Mario Carneiro, 24-May-2019.) $)
    opex $p |- <. A , B >. e. _V $=
      ( cvv wcel cop opexg mp2an ) AEFBEFABGEFCDABEEHI $.
  $}

  $( An ordered triple of sets is a set.  (Contributed by Jim Kingdon,
     19-Sep-2018.) $)
  otexg $p |- ( ( A e. U /\ B e. V /\ C e. W ) -> <. A , B , C >. e. _V ) $=
    ( wcel cotp cvv wa cop df-ot opexg sylan syl5eqel 3impa ) ADGZBEGZCFGZABCHZ
    IGQRJZSJTABKZCKZIABCLUAUBIGSUCIGABDEMUBCIFMNOP $.

  ${
    elop.1 $e |- A e. _V $.
    elop.2 $e |- B e. _V $.
    elop.3 $e |- C e. _V $.
    $( An ordered pair has two elements.  Exercise 3 of [TakeutiZaring] p. 15.
       (Contributed by NM, 5-Aug-1993.)  (Revised by Mario Carneiro,
       26-Apr-2015.) $)
    elop $p |- ( A e. <. B , C >. <-> ( A = { B } \/ A = { B , C } ) ) $=
      ( cop wcel csn cpr wceq wo dfop eleq2i elpr bitri ) ABCGZHABIZBCJZJZHARKA
      SKLQTABCEFMNARSDOP $.
  $}

  ${
    opi1.1 $e |- A e. _V $.
    opi1.2 $e |- B e. _V $.
    $( One of the two elements in an ordered pair.  (Contributed by NM,
       5-Aug-1993.)  (Revised by Mario Carneiro, 26-Apr-2015.) $)
    opi1 $p |- { A } e. <. A , B >. $=
      ( csn cpr cop snex prid1 dfop eleqtrri ) AEZLABFZFABGLMACHIABCDJK $.

    $( One of the two elements of an ordered pair.  (Contributed by NM,
       5-Aug-1993.)  (Revised by Mario Carneiro, 26-Apr-2015.) $)
    opi2 $p |- { A , B } e. <. A , B >. $=
      ( cpr csn cop cvv wcel prexg mp2an prid2 dfop eleqtrri ) ABEZAFZOEABGPOAH
      IBHIOHICDABHHJKLABCDMN $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Ordered pair theorem
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d A x $.  $d B x $.

    $( An ordered pair is inhabited iff the arguments are sets.  (Contributed
       by Jim Kingdon, 21-Sep-2018.) $)
    opm $p |- ( E. x x e. <. A , B >. <-> ( A e. _V /\ B e. _V ) ) $=
      ( cv cop wcel wex cvv csn cpr w3a wa df-op eleq2i exbii abid bitri 19.42v
      cab df-3an 3bitr4ri 3simpa snexg adantr prmg syl sylanbrc impbii 3bitr2i
      id ) ADZBCEZFZAGZBHFZCHFZUKBIZBCJZJFZKZAGZUOUPUSAGZKZUOUPLZUNUKUTASZFZAGV
      AUMVFAULVEUKABCMNOVFUTAUTAPOQVDUSLZAGVDVBLVAVCVDUSARUTVGAUOUPUSTOUOUPVBTZ
      UAVCVDUOUPVBUBVDVDVBVCVDUJVDUQHFZVBUOVIUPBHUCUDAUQURHUEUFVHUGUHUI $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.  $d x D $.
    opth1.1 $e |- A e. _V $.
    opth1.2 $e |- B e. _V $.
    $( An ordered pair is nonempty if the arguments are sets (it is also
       inhabited; see ~ opm ).  (Contributed by Mario Carneiro,
       26-Apr-2015.) $)
    opnzi $p |- <. A , B >. =/= (/) $=
      ( vx cv cop wcel wex c0 wne cvv opm mpbir2an n0r ax-mp ) EFABGZHEIZQJKRAL
      HBLHCDEABMNEQOP $.

    $( 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 cpr wi sneqr a1i wcel cvv wa opi1 id syl5eleq syl oprcl wo
      simpld prid1g eleq2 syl5ibrcom elsni eqcomd syl6 dfopg 3syl eleqtrd elpri
      mpjaod ) ABGZCDGZHZAIZCIZHZACHZURCDJZHZUTVAKUQACELMUQVCCURNZVAUQVDVCCVBNZ
      UQCONZVEUQVFDONZUQURUPNZVFVGPZUQURUOUPABEFQUQRSZCDURUAZTUCCDOUDTURVBCUEUF
      VDCACAUGUHUIUQURUSVBJZNUTVCUBUQURUPVLVJUQVHVIUPVLHVJVKCDOOUJUKULURUSVBUMT
      UN $.

    $( 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 sylancl wi prexg opth1
      opi1 id syl5eleq oprcl simprd opeq1d simpld preqr2g syl2anc mpd cv eqeq2d
      preq2 eqeq2 imbi12d vex preqr2 vtoclg sylc jca opeq12 impbii ) ABHZCDHZIZ
      ACIZBDIZJVFVGVHABCDEFUAZVFDKLZCBMZCDMZIZVHVFCKLZVJVFANZVELVNVJJZVFVOVDVEA
      BEFUBVFUCZUDCDVOUEOZUFVFCNZVKMZVSVLMZIZVMVFVEVTWAVFCBHZVEVTVFVDWCVEVFACBV
      IUGVQPVFVNBKLZWCVTIVFVNVJVRUHZFCBKKQRPVFVPVEWAIVRCDKKQOPVFVKKLZVLKLZWBVMS
      VFVNWDWFWEFCBKKTRVFVPWGVRCDKKTOVKVLVSUIUJUKVKCGULZMZIZBWHIZSVMVHSGDKWHDIZ
      WJVMWKVHWLWIVLVKWHDCUNUMWHDBUOUPBWHCFGUQURUSUTVAABCDVBVC $.
  $}

  ${
    $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 $.
  $}

  $( 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
      $.
  $}

  ${
    otth.1 $e |- A e. _V $.
    otth.2 $e |- B e. _V $.
    otth.3 $e |- R e. _V $.
    $( Ordered triple theorem, with triple express 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
      KZLZUBLSEJTFJKUCUDUBMUAUEUBABCDGHNOSETFABGHPINUCUDUBQR $.

    $( 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 $.
  $}

  ${
    $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.  Analog 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.) $)
    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 syl5bi syl5 weu euequ1 wal
      eqvinop 19.23bi ex opth anbi1i 2exbii nfe1 wnf wo dveeq2or nfae anass a1i
      anim2d eximd biidd drex1 sylibd exbii 19.40 19.9t biimpd anim1d syl6 jaoi
      ax-mp exlimi equcom eubii eupick com12 sylan9 sylbi impbid anbi1d 2exbidv
      mpbi mpan eqeq1 bibi2d imbi12d mpbiri adantr exlimivv pm2.43i ) DBGZCGZHZ
      IZAWJAJZCKBKZLZWJDEGZFGZHZIZWPWIIZJZFKEKWJWMMZEFDWGWHBNCNUBWSWTEFWQWTWRWQ
      WTWRAWRAJZCKZBKZLZMWRAXCWRAXCXAXCCXBBOUCUDWREBPZFCPZJZXCAMWNWOWGWHENFNUEZ
      XCXGAJZCKZBKZXGAXAXIBCWRXGAXHUFUGXKXEXFAJZCKZJZBKZXGAXJXOBXNBUHCBPCUAZXEC
      UIZUJXJXOMZCBEUKXPXRXQXPXJXNCKXOXPXIXNCCBCULXIXEXLJZXPXNXEXFAUMZXPXLXMXEX
      LXMMXPXLCOUNUOQUPXNXNCBXPXNUQURUSXQXJXNXOXJXSCKZXQXNXIXSCXTUTYAXECKZXMJXQ
      XNXEXLCVAXQYBXEXMXQYBXEXECVBVCVDRQXNBOVEVFVGVHXEXOXMXFAXOXEXMXEBSZXOXEXMM
      BEPZBSYCBETYDXEBBEVIVJVRXEXMBVKVSVLXMXFAXFCSZXMXFAMCFPZCSYECFTYFXFCCFVIVJ
      VRXFACVKVSVLVMRQVNVOWQWJWRWMXDDWPWIVTZWQWLXCAWQWKXABCWQWJWRAYGVPVQWAWBWCW
      DWEVNWF $.
  $}

  ${
    $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 ) ) $=
      ( wcel wa cv wceq wb wal wex cop elisset nfe1 nfv nfbi anim12i eeanv nfa1
      wi sylibr nfa2 nfex opeq12 copsexg eqcoms syl adantl sp 19.21bi bitr3d ex
      imp exlimd sylan2 ) EGIZFHIZJZCKZELZDKZFLZJZABMZUDZDNZCNZVGDOZCOZEFPZVCVE
      PZLAJZDOZCOZBMZVBVDCOZVFDOZJVMUTVTVAWACEGQDFHQUAVDVFCDUBUEVKVMVSVKVLVSCVJ
      CUCVRBCVQCRBCSTVKVGVSDVIDCUFVRBDVQDCVPDRUGBDSTVKVGVSVKVGJAVRBVGAVRMZVKVGV
      OVNLWBVCVEEFUHWBVNVOACDVNUIUJUKULVKVGVHVKVIDVJCUMUNUQUOUPURURUQUS $.
  $}

  ${
    $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 $.

  ${
    $d A x $.  $d B x $.  $d C x $.  $d D x $.

    $( 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 ) ) ) $=
      ( vx cop wceq cv wcel wex cvv wa eleq2 exbidv opm 3bitr3g ) ABFZCDFZGZEHZ
      QIZEJTRIZEJAKIBKILCKIDKILSUAUBEQRTMNEABOECDOP $.
  $}

  ${
    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 wa dfop eqeq1i snex cvv wcel preqsn eqcom bitri 3bitri
      prexg mp2an anbi2i anidm anbi1i dfsn2 preq2 syl5req eqeq1d syl6bb pm5.32i
      ) ABGZCHZIAHZABJZJZUMIUNUOIZUOCIZKZABIZCUNIZKZULUPUMABDELMUNUOCADNAOPBOPU
      OOPDEABOOUAUBFQUSUTURKVBUQUTURUQUOUNIUTBAIZKZUTUNUORABADEDQVDUTUTKUTVCUTU
      TBARUCUTUDSTUEUTURVAUTURUNCIVAUTUOUNCUTUNAAJUOAUFABAUGUHUIUNCRUJUKST $.
  $}

  ${
    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.) $)
    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 cvv wcel preq12b 3bitri
      prexg mp2an ) ABIZCDJZKUFUEKUFALZABJZJZKCUGKDUHKMCUHKDUGKMNUEUFOUEUIUFABE
      FPQCDUGUHGHAERASTBSTUHSTEFABSSUCUDUAUB $.
  $}

  ${
    $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 otexg syl3anc w3a biimpa vex
      wcel otth sylibr eqeq2d biimpd impancom expimpd exlimdv exlimdvv wsbc tru
      adantr ad2antrr simpr eqcomd biimpar jca a1tru 2thd sbcied mpbiri spesbcd
      3anassrs nfcv nfsbc1v nfex sbceq1a exbidv spcegf sylc 2exbidv sylib eqeq1
      excom13 anbi1d 3exbidv syl5ibrcom impbid eqeq2 bibi2d albidv spcegv df-eu
      alrimiv ) ACOZGOZHOZIOZUAZPZBQZIRZHRGRZWNNOZPZUBZCUCZNRZXBCUDADEFUAZSUJZX
      BWNXHPZUBZCUCZXGADSUJESUJZFSUJZXIJKLDEFSSSUEUFAXKCAXBXJAXAXJGHAWTXJIAWSBX
      JABWSXJABQZWSXJXOWRXHWNXOWODPZWPEPZWQFPZUGZWRXHPZABXSMUHWOWPDEWQFGUIHUIIU
      IUKZULUMUNUOUPUQURAXBXJXHWRPZBQZIRHRGRZAYCGRHRZIRZYDAXNYCIFUSZGRZHRZYFLAX
      MYGHEUSZGRZYIKAYJGDAYJGDUSTUTAYJTGDSJAXPQZYGTHESAXMXPKVAYLXQQYCTIFSAXNXPX
      QLVBAXPXQXRYCTUBAXSQZYCTYMYBBYMWRXHYMXSXTAXSVCYAULVDABXSMVEVFYMVGVHVLVIVI
      VIVJVKYHYKHESHEVMYJHGYGHEVNVOXQYGYJGYGHEVPVQVRVSYEYIIFSIFVMYHIHYGIGYCIFVN
      VOVOXRYCYGHGYCIFVPVTVRVSYCIHGWCWAXJWTYCGHIXJWSYBBWNXHWRWBWDWEWFWGWMXFXLNX
      HSXCXHPZXEXKCYNXDXJXBXCXHWNWHWIWJWKVSXBCNWLUL $.
  $}

  ${
    opthw.1 $e |- A e. _V $.
    opthw.2 $e |- B e. _V $.
    $( 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 unieqi snex cvv prexg mp2an unipr wss snsspr1
      wcel wceq ssequn1 mpbi 3eqtri ) ABEZFAGZABHZHZFUEUFIZUFUDUGABCDJKUEUFACLA
      MSBMSUFMSCDABMMNOPUEUFQUHUFTABRUEUFUAUBUC $.

    $( 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 $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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 vex opex copsexg bicomd df-opab elab2 ) DEZ
      BEZCEZFZGZAHCIBIZADTABCJRSBKCKLUAAUBABCQMNABCDOP $.
  $}

  ${
    $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 wex elex vex eleq1 mpbiri adantr exlimivv
      wa opex eqeq1 anbi1d 2exbidv df-opab elab2g pm5.21nii ) DABCFZGDHGZDBIZCI
      ZJZKZASZCLBLZDUGMUMUHBCULUHAULUHUKHGUIUJBNCNTDUKHOPQREIZUKKZASZCLBLUNEDUG
      HUODKZUQUMBCURUPULAUODUKUAUBUCABCEUDUEUF $.
  $}

  ${
    $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 u v x y z w $.  $d u v w z A $.  $d u v w x B $.  $d u v 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 ) $=
      ( vv vu vz vw cop wcel cvv wa wsb cv wceq wex nfs1v weq wb copab wsbc vex
      elopab simpl eqcomd opth sylib 2eximi eeanv isset bitr4i sylbi nfv nfsbxy
      anbi12i sbequ12 sylan9bbr cbvopab eleq2s sbcex spesbc exlimiv syl dfsbcq2
      jca opeq1 eleq1d bibi12d opeq2 sbcbidv nfopab1 nfel2 nfopab2 opabid chvar
      nfbi vtocl2g pm5.21nii ) DEJZABCUAZKZDLKZELKZMZACEUBZBDUBZWEVTACFNZBGNZGF
      UAZWAVTWJKVTGOZFOZJZPZWIMZFQGQZWEWIGFVTUDWPWKDPZWLEPZMZFQGQZWEWOWSGFWOWMV
      TPWSWOVTWMWNWIUEUFWKWLDEGUCFUCUGUHUIWTWQGQZWRFQZMWEWQWRGFUJWCXAWDXBGDUKFE
      UKUPULUHUMAWIBCGFAGUNAFUNWHBGRWHBGCACFRUOCFSAWHBGSWIACFUQWHBGUQURUSUTWGWC
      WDWFBDVAWGWFBQWDWFBDVBWFWDBACEVAVCVDVFHOZIOZJZWAKZACINZBHNZTZDXDJZWAKZXGB
      DUBZTWBWGTHIDELLXCDPZXFXKXHXLXMXEXJWAXCDXDVGVHXGBHDVEVIXDEPZXKWBXLWGXNXJV
      TWAXDEDVJVHXNXGWFBDACIEVEVKVIBOZXDJZWAKZXGTZXIBHXFXHBBXEWAABCVLVMXGBHRVQB
      HSZXQXFXGXHXSXPXEWAXOXCXDVGVHXGBHUQVIXOCOZJZWAKZATXRCIXQXGCCXPWAABCVNVMAC
      IRVQCISZYBXQAXGYCYAXPWAXTXDXOVJVHACIUQVIABCVOVPVPVRVS $.

    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 sylan 3impa syl5bb ) FGJZADEKLULDMZEMZJNAOEPDPZU
      MFNZABQZRZESDSZUNGNZBCQZRZESDSZFHLGILOZTCADEULUAUSVCVDUOCQZUSVCOZUPUTOZAC
      QZRZESDSZVDVEVFURVBOZESDSVJURVBDEUEVKVIDEVKVGUQVAOVHUPUQUTVAUBABCUFUGUCUH
      ACDEFGHIUDUIUJUK $.
  $}

  ${
    $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 $.  $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 copab nfa1 sp anim2d eximd sps df-opab
      ss2abdv 3sstr4g ) ABFZDGZCGZEHCHDHIJZAKZDLZCLZEMUFBKZDLZCLZEMACDNBCDNUEUI
      ULEUEUHUKCUDCOUDUHUKFCUDUGUJDUCDOUDABUFUCDPQRSRUAACDETBCDETUB $.
  $}

  $( 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 $.
    $( Inhabited ordered pair class abstraction.  (Contributed by Jim Kingdon,
       29-Sep-2018.) $)
    opabm $p |- ( E. z z e. { <. x , y >. | ph } <-> E. x E. y ph ) $=
      ( cv copab wcel wex cop wceq wa elopab exbii exrot3 isseti 19.41v mpbiran
      vex opex 2exbii 3bitri ) DEZABCFGZDHUBBEZCEZIZJZAKZCHBHZDHUHDHZCHBHACHBHU
      CUIDABCUBLMUHDBCNUJABCUJUGDHADUFUDUEBRCRSOUGADPQTUA $.
  $}

  ${
    $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 $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Power class of union and intersection
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d A x $.  $d B x $.
    $( 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 vex elpw anbi12i 3bitr4i ineqri eqcomi )
      ADZBDZEABEZDZCQRTCFZAGZUABGZHUASGUAQIZUARIZHUATIUAABJUDUBUEUCUAACKZLUABUF
      LMUASUFLNOP $.

    $( 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 wcel ssun elun vex elpw orbi12i bitri 3imtr4i ssriv
      wo ) CADZBDZEZABEZDZCFZAGZUCBGZQZUCUAGUCTHZUCUBHUCABIUGUCRHZUCSHZQUFUCRSJ
      UHUDUIUEUCACKZLUCBUJLMNUCUAUJLOP $.

    $( The power class of the union of two classes is a subset of the union of
       their power classes, if one class is a subclass of the other.  One
       direction of Exercise 4.12(l) of [Mendelson] p. 235.  (Contributed by
       Jim Kingdon, 30-Sep-2018.) $)
    pwssunim $p |- ( ( A C_ B \/ B C_ A ) ->
               ~P ( A u. B ) C_ ( ~P A u. ~P B ) ) $=
      ( wss wo cun cpw wceq ssequn2 pweq eqimss syl ssequn1 orim12i orcoms ssun
      sylbi ) ABCZBACZDABEZFZAFZCZTBFZCZDZTUAUCECRQUERUBQUDRSAGZUBBAHUFTUAGUBSA
      ITUAJKPQSBGZUDABLUGTUCGUDSBITUCJKPMNTUAUCOK $.
  $}

  $( Break up the power class of a union into a union of smaller classes.
     (Contributed by Jim Kingdon, 30-Sep-2018.) $)
  pwundifss $p |- ( ( ~P ( A u. B ) \ ~P A ) u. ~P A ) C_
      ~P ( A u. B ) $=
    ( cun cpw cdif undif1ss wss wceq wa pwunss unss simpli ssequn2 mpbi sseqtri
    mpbir ) ABCDZADZERCQRCZQQRFRQGZSQHTBDZQGZTUBIRUACQGABJRUAQKPLRQMNO $.

  $( 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 Jim Kingdon, 30-Sep-2018.) $)
  pwunim $p |- ( ( A C_ B \/ B C_ A ) ->
      ~P ( A u. B ) = ( ~P A u. ~P B ) ) $=
    ( wss wo cun cpw wa wceq pwssunim pwunss biantru sylib eqss sylibr ) ABCBAC
    DZABEFZAFBFEZCZQPCZGZPQHORTABISRABJKLPQMN $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Epsilon and identity relations
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Declare new constant symbols. $)
  $c _E $. $( Letter E (for epsilon relation) $)
  $c _I $.  $( Letter I (for identity relation) $)

  $( Extend class notation to include the epsilon relation. $)
  cep $a class _E $.

  $( Extend the definition of a class to include identity relation. $)
  cid $a class _I $.

  ${
    $d x y $.
    $( Define the 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 }.  (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 $.

  ${
    $d x y $.
    $( Define the identity relation.  Definition 9.15 of [Quine] p. 64.  For
       example, 5 ` _I ` 5 and ` -. ` 4 ` _I ` 5.  (Contributed by NM,
       13-Aug-1995.) $)
    df-id $a |- _I = { <. x , y >. | x = y } $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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 linear 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 linear 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 ` .  (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 linear order predicate.  The expression ` R Or A ` is
       true if relationship ` R ` orders ` A ` .  The property
       ` x R y -> ( x R z \/ z R y ) ` is called weak linearity by Proposition
       11.2.3 of [HoTT], p.  (varies).  If we assumed excluded middle, it would
       be equivalent to trichotomy, ` x R y \/ x = y \/ y R x ` .  (Contributed
       by NM, 21-Jan-1996.)  (Revised by Jim Kingdon, 4-Oct-2018.) $)
    df-iso $a |- ( R Or A <-> ( R Po A /\ A. x e. A A. y e. A A. z e. A
                ( x R y -> ( x R z \/ z R y ) ) ) ) $.
  $}

  ${
    $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 nfralxy nfn nfim
      nfxfr ) BCIFJZUDCKZLZUDGJZCKZUGHJZCKZMZUDUICKZNZMZHBOZGBOZFBOAFGHBCPUPAFB
      EUOAGBEUNAHBEUFUMAUEAAUDUDCAUDQZDUQRUAUKULAUHUJAAUDUGCUQDAUGQZRAUGUICURDA
      UIQZRSAUDUICUQDUSRUBSTTTUC $.

    $( Bound-variable hypothesis builder for total orders.  (Contributed by
       Stefan O'Rear, 20-Jan-2015.) $)
    nfso $p |- F/ x R Or A $=
      ( va vb vc wor wpo cv wbr wo wi wral wa df-iso nfcv nfbr nfralxy nfxfr
      nfpo nfor nfim nfan ) BCIBCJZFKZGKZCLZUGHKZCLZUJUHCLZMZNZHBOZGBOZFBOZPAFG
      HBCQUFUQAABCDEUBUPAFBEUOAGBEUNAHBEUIUMAAUGUHCAUGRZDAUHRZSUKULAAUGUJCURDAU
      JRZSAUJUHCUTDUSSUCUDTTTUEUA $.
  $}

  ${
    $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 wn id breq12d notbid anbi1d imbi12d anbi12d imbi1d df-po bitri biimpi
      wpo 19.21bbi 19.21bi com12 vtocl3ga ) BAICAIDAIUBAEUNZBBEJZUCZBCEJZCDEJZK
      ZBDEJZLZKZUSFMZVHEJZUCZVHGMZEJZVKHMZEJZKZVHVMEJZLZKZLUSVABVKEJZVNKZBVMEJZ
      LZKZLUSVAVBCVMEJZKZWALZKZLUSVGLFGHBCDAAAVHBNZVRWCUSWHVJVAVQWBWHVIUTWHVHBV
      HBEWHUDZWIUEUFWHVOVTVPWAWHVLVSVNVHBVKEOUGVHBVMEOUHUIPVKCNZWCWGUSWJWBWFVAW
      JVTWEWAWJVSVBVNWDVKCBEQVKCVMEOUIUJRPVMDNZWGVGUSWKWFVFVAWKWEVDWAVEWKWDVCVB
      VMDCEQRVMDBEQUHRPUSVHAIVKAIVMAIUBZVRUSWLVRLZHUSWMHSZFGUSWNGSFSZUSVRHATGAT
      FATWOFGHAEUKVRFGHAAAUAULUMUOUPUQURUQ $.
  $}

  ${
    $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 csbief
      csbeq1 syl5eqr breq2d opelopabf 3bitri sylnibr sylan2 w3a com12 3anim123d
      anassrs wi imp adantll potr anbi12i 3imtr4g adantlr syldan ispod ) DEUAZG
      DNZACUGZOZKLMCFVTWBKPZCNZWDWDFQZUBZWBWEOVTAWDGRZDNZWGWEWBWIWAWIAWDCAWHDAW
      DGUCZUDAKSZGWHDAWDGUEZUFUHZUIVTWIOWHWHEQZWFDWHEUJWFWDWDTZFNWOGHEQZABUKZNW
      NWDWDFULFWQWOIUMWPWHHEQZWNABWDWDAWHHEWJAEUNZAHUNZUOZWNBUPKUQZXBWKGWHHEWLU
      RZBKSZHWHWHEXDHABPZGRZWHAXEGHBUQWTJUSZAXEWDGUTVAVBVCVDVEVFVJWCWELPZCNZMPZ
      CNZVGZWIAXHGRZDNZAXJGRZDNZVGZWDXHFQZXHXJFQZOZWDXJFQZVKZWBXLXQVTWBXLXQWBWE
      WIXIXNXKXPWEWBWIWMVHXIWBXNWAXNAXHCAXMDAXHGUCZUDALSZGXMDAXHGUEZUFUHVHXKWBX
      PWAXPAXJCAXODAXJGUCUDAMSGXODAXJGUEUFUHVHVIVLVMVTXQYBWBVTXQOWHXMEQZXMXOEQZ
      OWHXOEQZXTYADWHXMXOEVNXRYFXSYGXRWDXHTZFNYIWQNYFWDXHFULFWQYIIUMWPWRYFABWDX
      HXAYFBUPXBLUQZXCBLSZHXMWHEYKHXFXMXGAXEXHGUTVAVBVCVDXSXHXJTZFNYLWQNYGXHXJF
      ULFWQYLIUMWPXMHEQYGABXHXJAXMHEYCWSWTUOYGBUPYJMUQZYDGXMHEYEURBMSZHXOXMEYNH
      XFXOXGAXEXJGUTVAZVBVCVDVOYAWDXJTZFNYPWQNYHWDXJFULFWQYPIUMWPWRYHABWDXJXAYH
      BUPXBYMXCYNHXOWHEYOVBVCVDVPVQVRVS $.
  $}

  ${
    $d x y z R $.  $d x y z 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 vz wor wpo cv wbr wo wi wral df-iso simplbi ) ABFABGCHZDHZBIOEHZB
      IQPBIJKEALDALCALCDEABMN $.
  $}

  ${
    $d x y z R $.  $d x y z A $.  $d x y z 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 vz wpo cv wbr wi wral wor wcel w3a wal ssel r3al 3imtr4g df-iso
      wa wss wo poss 3anim123d imim1d 2alimdv alimdv anim12d ) ABUAZBCGZDHZEHZC
      IUKFHZCIUMULCIUBJZFBKEBKDBKZTACGZUNFAKEAKDAKZTBCLACLUIUJUPUOUQABCUCUIUKBM
      ZULBMZUMBMZNZUNJZFOEOZDOUKAMZULAMZUMAMZNZUNJZFOEOZDOUOUQUIVCVIDUIVBVHEFUI
      VGVAUNUIVDURVEUSVFUTABUKPABULPABUMPUDUEUFUGUNDEFBBBQUNDEFAAAQRUHDEFBCSDEF
      ACSR $.
  $}

  ${
    $d x y z R $.  $d x y z S $.  $d x y z 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 vz wceq wpo cv wbr wo wi wral wa wor poeq1 orbi12d imbi12d df-iso
      breq 2ralbidv ralbidv anbi12d 3bitr4g ) BCGZABHZDIZEIZBJZUGFIZBJZUJUHBJZK
      ZLZFAMEAMZDAMZNACHZUGUHCJZUGUJCJZUJUHCJZKZLZFAMEAMZDAMZNABOACOUEUFUQUPVDA
      BCPUEUOVCDAUEUNVBEFAAUEUIURUMVAUGUHBCTUEUKUSULUTUGUJBCTUJUHBCTQRUAUBUCDEF
      ABSDEFACSUD $.
  $}

  $( 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 z R $.  $d x y z A $.  $d x y z 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, trichotomous relation is a linear ordering
       (in the sense of ~ df-iso ).  (Contributed by NM, 21-Jan-1996.)
       (Revised by Mario Carneiro, 9-Jul-2014.) $)
    issod $p |- ( ph -> R Or A ) $=
      ( vz wpo cv wbr wo wi wral wor wcel wa w3a syl6 ralrimiva weq w3o 3adant3
      orc a1i simp3r breq1 syl5ibcom simp1 simp2r simp2l simp3l 3jca potr sylan
      olc expcomd imp syl21anc 3jaod mpd 3expa expr anassrs ralcom sylib df-iso
      sylanbrc ) ADEIZBJZHJZEKZVJCJZEKZVMVKEKZLZMZCDNHDNZBDNDEOFAVRBDAVJDPZQZVQ
      HDNZCDNVRVTWACDAVSVMDPZWAAVSWBQZQZVQHDWDVKDPZVLVPAWCWEVLQZVPAWCWFRZVNBCUA
      ZVMVJEKZUBZVPAWCWJWFGUCWGVNVPWHWIVNVPMWGVNVOUDUEWGWHVOVPWGVLWHVOAWCWEVLUF
      ZVJVMVKEUGUHVOVNUPZSWGWIVOVPWGAWBVSWERZVLWIVOMZAWCWFUIWGWBVSWEAVSWBWFUJAV
      SWBWFUKAWCWEVLULUMWKAWMQZVLWNWOWIVLVOAVIWMWIVLQVOMFDVMVJVKEUNUOUQURUSWLSU
      TVAVBVCTVDTVQCHDDVEVFTBHCDEVGVH $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z C $.  $d x y z D $.  $d x y z R $.
    $( A strict order relation satisfies weak linearity.  (Contributed by Jim
       Kingdon, 6-Oct-2018.) $)
    sowlin $p |- ( ( R Or A /\ ( B e. A /\ C e. A /\ D e. A ) ) ->
        ( B R C -> ( B R D \/ D R C ) ) ) $=
      ( vx vy vz wcel w3a wbr wo wi cv wceq breq1 imbi2d breq2 wral wa wor rsp2
      orbi1d imbi12d orbi2d orbi12d df-iso 3anass syl6 impd syl5bi adantl sylbi
      wpo rsp com12 vtocl3ga impcom ) BAICAIDAIJAEUAZBCEKZBDEKZDCEKZLZMZUSFNZGN
      ZEKZVEHNZEKZVHVFEKZLZMZMUSBVFEKZBVHEKZVJLZMZMUSUTVNVHCEKZLZMZMUSVDMFGHBCD
      AAAVEBOZVLVPUSVTVGVMVKVOVEBVFEPVTVIVNVJVEBVHEPUCUDQVFCOZVPVSUSWAVMUTVOVRV
      FCBERWAVJVQVNVFCVHERUEUDQVHDOZVSVDUSWBVRVCUTWBVNVAVQVBVHDBERVHDCEPUFQQUSV
      EAIZVFAIZVHAIZJZVLUSAEUNZVLHASGASZFASZTWFVLMZFGHAEUGWIWJWGWFWCWDWETZTWIVL
      WCWDWEUHWIWCWKVLWIWCWHWKVLMWHFAUOVLGHAAUBUIUJUKULUMUPUQUR $.
  $}

  $( 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 $.

  $( One direction of ~ sotritric holds for all weakly linear orders.
     (Contributed by Jim Kingdon, 28-Sep-2019.) $)
  sotricim $p |- ( ( R Or A /\ ( B e. A /\ C e. A ) ) ->
      ( B R C -> -. ( B = C \/ C R B ) ) ) $=
    ( wor wcel wa wbr wceq wn wo w3a adantrr 3adant3 wi breq2 biimprcd 3ad2ant3
    sonr mtod 3expia so2nr imnan sylibr jcad ioran syl6ibr ) ADEZBAFZCAFZGZGZBC
    DHZBCIZJZCBDHZJZGUNUPKJULUMUOUQUHUKUMUOUHUKUMLUNBBDHZUHUKURJZUMUHUIUSUJABDS
    MNUMUHUNUROUKUNURUMBCBDPQRTUAULUMUPGJUMUQOABCDUBUMUPUCUDUEUNUPUFUG $.

  ${
    sotritric.or $e |- R Or A $.
    sotritric.tri $e |- ( ( B e. A /\ C e. A ) ->
      ( B R C \/ B = C \/ C R B ) ) $.
    $( A trichotomy relationship, given a trichotomous order.  (Contributed by
       Jim Kingdon, 28-Sep-2019.) $)
    sotritric $p |- ( ( B e. A /\ C e. A ) ->
        ( B R C <-> -. ( B = C \/ C R B ) ) ) $=
      ( wcel wa wbr wceq wo wn wor wi sotricim mpan w3o 3orass ax-1 pm2.24 jaoi
      sylbi syl impbid ) BAGCAGHZBCDIZBCJZCBDIZKZLZADMUEUFUJNEABCDOPUEUFUGUHQZU
      JUFNZFUKUFUIKULUFUGUHRUFULUIUFUJSUIUFTUAUBUCUD $.

    $( A trichotomy relationship, given a trichotomous order.  (Contributed by
       Jim Kingdon, 13-Dec-2019.) $)
    sotritrieq $p |- ( ( B e. A /\ C e. A ) ->
        ( B = C <-> -. ( B R C \/ C R B ) ) ) $=
      ( wcel wa wceq wbr wo wn wi wor sonr mpan breq2 notbid syl5ibcom w3o jcad
      breq1 ioran syl6ibr adantr 3orrot 3orcomb 3orass 3bitri biimpi orcomd ord
      syl impbid ) BAGZCAGZHZBCIZBCDJZCBDJZKZLZUOURVBMUPUOURUSLZUTLZHVBUOURVCVD
      UOBBDJZLZURVCADNUOVFEABDOPZURVEUSBCBDQRSUOVFURVDVGURVEUTBCBDUBRSUAUSUTUCU
      DUEUQUSURUTTZVBURMFVHVAURVHURVAVHURVAKZVHURUTUSTURUSUTTVIUSURUTUFURUTUSUG
      URUSUTUHUIUJUKULUMUN $.
  $}

  ${
    $d x y z 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 vz c0 wor wpo cv wbr wo wi wral po0 ral0 df-iso mpbir2an ) EAFEAG
      BHZCHZAIQDHZAISRAIJKDELCELZBELAMTBNBCDEAOP $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Founded and set-like relations
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Declare new constant symbols. $)
  $c FrFor $. $( Well-founded predicate symbol (read: 'well-founded'). $)
  $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. $)
  wfrfor $a wff FrFor R A S $.

  $( 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 R $.  $d x y A $.  $d x y S $.
    $( Define the well-founded relation predicate where ` A ` might be a proper
       class.  By passing in ` S ` we allow it potentially to be a proper class
       rather than a set.  (Contributed by Jim Kingdon and Mario Carneiro,
       22-Sep-2021.) $)
    df-frfor $a |- ( FrFor R A S <->
      ( A. x e. A ( A. y e. A ( y R x -> y e. S ) -> x e. S )
        -> A C_ S ) ) $.
  $}

  ${
    $d s R $.  $d s A $.
    $( Define the well-founded relation predicate.  In the presence of excluded
       middle, there are a variety of equivalent ways to define this.  In our
       case, this definition, in terms of an inductive principle, works better
       than one along the lines of "there is an element which is minimal when A
       is ordered by R".  Because ` s ` is constrained to be a set (not a
       proper class) here, sometimes it may be necessary to use ` FrFor `
       directly rather than via ` Fr ` .  (Contributed by Jim Kingdon and Mario
       Carneiro, 21-Sep-2021.) $)
    df-frind $a |- ( R Fr A <-> A. s FrFor R A s ) $.
  $}

  ${
    $d x y R $.  $d x y A $.
    $( 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 ) $.
  $}

  ${
    $d A x y z $.  $d R x y z $.
    $( Define the well-ordering predicate.  It is unusual to define
       "well-ordering" in the absence of excluded middle, but we mean an
       ordering which is like the ordering which we have for ordinals (for
       example, it does not entail trichotomy because ordinals don't have that
       as seen at ~ ordtriexmid ).  Given excluded middle, well-ordering is
       usually defined to require trichotomy (and the defintion of ` Fr ` is
       typically also different).  (Contributed by Mario Carneiro and Jim
       Kingdon, 23-Sep-2021.) $)
    df-wetr $a |- ( R We A <-> ( R Fr A /\
      A. x e. A A. y e. A A. z e. A ( ( x R y /\ y R z ) -> x R z ) ) ) $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y R $.  $d x y V $.
    $( 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 A $.  $d x y B $.  $d x y R $.  $d x y S $.
    $( 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 $.
  $}

  $( 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 $.  $d A a b $.  $d x a b $.
    nfse.r $e |- F/_ x R $.
    nfse.a $e |- F/_ x A $.
    $( 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 wbr crab cvv wcel wral df-se nfcv nfbr nfrabxy nfel1 nfralxy
      cv nfxfr ) BCHFTZGTZCIZFBJZKLZGBMAGFBCNUFAGBEAUEKUDAFBAUBUCCAUBODAUCOPEQR
      SUA $.
  $}

  ${
    $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 $.
  $}

  ${
    $d A x y $.  $d R x y $.  $d S x y $.  $d T x y $.
    $( Equality theorem for the well-founded predicate.  (Contributed by Jim
       Kingdon, 22-Sep-2021.) $)
    frforeq1 $p |- ( R = S -> ( FrFor R A T <-> FrFor S A T ) ) $=
      ( vy vx wceq cv wbr wcel wi wral wss wfrfor breq ralbidv df-frfor 3bitr4g
      imbi1d ) BCGZEHZFHZBIZUADJZKZEALZUBDJZKZFALZADMZKUAUBCIZUDKZEALZUGKZFALZU
      JKABDNACDNTUIUOUJTUHUNFATUFUMUGTUEULEATUCUKUDUAUBBCOSPSPSFEABDQFEACDQR $.
  $}

  ${
    $d s R $.  $d s S $.  $d s A $.
    $( Equality theorem for the well-founded predicate.  (Contributed by NM,
       9-Mar-1997.) $)
    freq1 $p |- ( R = S -> ( R Fr A <-> S Fr A ) ) $=
      ( vs wceq cv wfrfor wal wfr frforeq1 albidv df-frind 3bitr4g ) BCEZABDFZG
      ZDHACOGZDHABIACINPQDABCOJKABDLACDLM $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d R x y $.  $d T x y $.
    $( Equality theorem for the well-founded predicate.  (Contributed by Jim
       Kingdon, 22-Sep-2021.) $)
    frforeq2 $p |- ( A = B -> ( FrFor R A T <-> FrFor R B T ) ) $=
      ( vy vx wceq cv wbr wcel wi wral wss wfrfor raleq imbi1d raleqbi1dv sseq1
      imbi12d df-frfor 3bitr4g ) ABGZEHZFHZCIUCDJKZEALZUDDJZKZFALZADMZKUEEBLZUG
      KZFBLZBDMZKACDNBCDNUBUIUMUJUNUHULFABUBUFUKUGUEEABOPQABDRSFEACDTFEBCDTUA
      $.
  $}

  ${
    $d A s $.  $d B s $.  $d R s $.
    $( Equality theorem for the well-founded predicate.  (Contributed by NM,
       3-Apr-1994.) $)
    freq2 $p |- ( A = B -> ( R Fr A <-> R Fr B ) ) $=
      ( vs wceq cv wfrfor wal wfr frforeq2 albidv df-frind 3bitr4g ) ABEZACDFZG
      ZDHBCOGZDHACIBCINPQDABCOJKACDLBCDLM $.
  $}

  ${
    $d A x y $.  $d R x y $.  $d S x y $.  $d T x y $.
    $( Equality theorem for the well-founded predicate.  (Contributed by Jim
       Kingdon, 22-Sep-2021.) $)
    frforeq3 $p |- ( S = T -> ( FrFor R A S <-> FrFor R A T ) ) $=
      ( vy vx wceq cv wbr wcel wi wss wfrfor eleq2 imbi2d ralbidv imbi12d sseq2
      wral df-frfor 3bitr4g ) CDGZEHZFHZBIZUCCJZKZEASZUDCJZKZFASZACLZKUEUCDJZKZ
      EASZUDDJZKZFASZADLZKABCMABDMUBUKURULUSUBUJUQFAUBUHUOUIUPUBUGUNEAUBUFUMUEC
      DUCNOPCDUDNQPCDARQFEABCTFEABDTUA $.
  $}

  ${
    $d A u v $.  $d R u v $.  $d S u v $.  $d u v x $.
    nffrfor.r $e |- F/_ x R $.
    nffrfor.a $e |- F/_ x A $.
    nffrfor.s $e |- F/_ x S $.
    $( Bound-variable hypothesis builder for well-founded relations.
       (Contributed by Stefan O'Rear, 20-Jan-2015.)  (Revised by Mario
       Carneiro, 14-Oct-2016.) $)
    nffrfor $p |- F/ x FrFor R A S $=
      ( vv vu wfrfor cv wbr wcel wi wral wss nfcv nfcri nfim nfralxy nfbr nfxfr
      df-frfor nfss ) BCDJHKZIKZCLZUEDMZNZHBOZUFDMZNZIBOZBDPZNAIHBCDUCUMUNAULAI
      BFUJUKAUIAHBFUGUHAAUEUFCAUEQEAUFQUAAHDGRSTAIDGRSTABDFGUDSUB $.
  $}

  ${
    $d A s $.  $d R s $.  $d s x $.
    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 $=
      ( vs wfr cv wfrfor wal df-frind nfcv nffrfor nfal nfxfr ) BCGBCFHZIZFJABC
      FKQAFABCPDEAPLMNO $.
  $}

  ${
    $d A s x y $.  $d B s x y $.  $d R s x y $.  $d V x $.
    $( A well-founded relation is irreflexive.  This is the case where ` A `
       exists.  (Contributed by Jim Kingdon, 21-Sep-2021.) $)
    frirrg $p |- ( ( R Fr A /\ A e. V /\ B e. A ) -> -. B R B ) $=
      ( vy vx vs wcel wbr wa simpr neldifsnd pm2.65da cv wi wral simplr imbi12d
      wss wceq wfr w3a cdif simpl3 sseldd simpll3 ad2antrr breqtrrd breq1 eleq1
      csn rspcv syl3c velsn sylnibr eldifd ex ralrimiva df-frind df-frfor albii
      wal wfrfor bitri biimpi 3ad2ant1 cvv difexg eleq2 ralbidv sseq2 spcgv syl
      imbi2d 3ad2ant2 mpd adantr mtand ) ACUAZADHZBAHZUBZBBCIZAABUKZUCZSZWBWFBW
      EHZWBWFJZAWEBWBWFKVSVTWAWFUDUEWHBALMWBWCJZENZFNZCIZWJWEHZOZEAPZWKWEHZOZFA
      PZWFWIWQFAWIWKAHZJZWOWPWTWOJZWKAWDWIWSWOQXAWKBTZWKWDHXAXBWGXAXBJZWAWOBWKC
      IZWGWTWAWOXBVSVTWAWCWSUFUGWTWOXBQXCBBWKCWTWCWOXBWBWCWSQUGXAXBKUHWNXDWGOEB
      AWJBTWLXDWMWGWJBWKCUIWJBWEUJRULUMXCBALMFBUNUOUPUQURWBWRWFOZWCWBWLWJGNZHZO
      ZEAPZWKXFHZOZFAPZAXFSZOZGVBZXEVSVTXOWAVSXOVSACXFVCZGVBXOACGUSXPXNGFEACXFU
      TVAVDVEVFVTVSXOXEOZWAVTWEVGHXQAWDDVHXNXEGWEVGXFWETZXLWRXMWFXRXKWQFAXRXIWO
      XJWPXRXHWNEAXRXGWMWLXFWEWJVIVNVJXFWEWKVIRVJXFWEAVKRVLVMVOVPVQVPVR $.
  $}

  ${
    $d R s x y $.
    $( Any relation is well-founded on the empty set.  (Contributed by NM,
       17-Sep-1993.) $)
    fr0 $p |- R Fr (/) $=
      ( vs vy vx c0 wfr cv wfrfor df-frind wbr wel wi wral wss 0ss a1i df-frfor
      mpbir mpgbir ) EAFEABGZHZBEABIUACGDGAJCBKLCEMDBKLDEMZETNZLUCUBTOPDCEATQRS
      $.
  $}

  ${
    $d A x y s z $.  $d R x y s z $.  $d ch x $.  $d ph y s z $.  $d ps x z $.
    frind.sb $e |- ( x = y -> ( ph <-> ps ) ) $.
    frind.ind $e |- ( ( ch /\ x e. A ) ->
      ( A. y e. A ( y R x -> ps ) -> ph ) ) $.
    frind.fr $e |- ( ch -> R Fr A ) $.
    frind.a $e |- ( ch -> A e. V ) $.
    $( Induction over a well-founded set.  (Contributed by Jim Kingdon,
       28-Sep-2021.) $)
    frind $p |- ( ( ch /\ x e. A ) -> ph ) $=
      ( vz vs wss wral cv wcel wi sylib crab wa wbr wsb ralrimiva nfv nfs1v weq
      nfim breq2 imbi1d ralbidv sbequ12 imbi12d cbvral wb elrab3 imbi2d ralbiia
      a1i nfcv elrabf baib sylibr wfrfor wal wfr df-frind rabexg frforeq3 spcgv
      cvv 3syl mpd df-frfor ssrab simprd r19.21bi ) CADFCFFOZADFPZCFADFUAZOZVSV
      TUBCEQZMQZGUCZWCWARZSZEFPZWDWARZSZMFPZWBCWEBSZEFPZADMUDZSZMFPZWKCWCDQZGUC
      ZBSZEFPZASZDFPWPCXADFJUEXAWODMFXAMUFWMWNDWMDUFADMUGZUIDMUHZWTWMAWNXCWSWLE
      FXCWRWEBWQWDWCGUJUKULADMUMZUNUOTWJWOMFWDFRZWHWMWIWNWHWMUPXEWGWLEFWCFRWFBW
      EABDWCFIUQURUSUTWIXEWNAWNDWDFDWDVADFVAXBXDVBVCUNUSVDCFGWAVEZWKWBSCFGNQZVE
      ZNVFZXFCFGVGXIKFGNVHTCFHRWAVLRXIXFSLADFHVIXHXFNWAVLFGXGWAVJVKVMVNMEFGWAVO
      TVNADFFVPTVQVR $.
  $}

  $( 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 wn frirrg 3anidm23 wb epelg adantl mtbid pm2.01da ) A
    BCZAADZOPEAABFZPOPQGAABAHIPQPJOAAAKLMN $.

  $( 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 a b c x $.  $d a b c A $.  $d a b c R $.
    nfwe.r $e |- F/_ x R $.
    nfwe.a $e |- F/_ x A $.
    $( 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 $=
      ( va vb vc wwe wfr cv wbr wa wi wral df-wetr nfcv nfbr nfan nfralxy nfxfr
      nffr nfim ) BCIBCJZFKZGKZCLZUFHKZCLZMZUEUHCLZNZHBOZGBOZFBOZMAFGHBCPUDUOAA
      BCDEUBUNAFBEUMAGBEULAHBEUJUKAUGUIAAUEUFCAUEQZDAUFQZRAUFUHCUQDAUHQZRSAUEUH
      CUPDURRUCTTTSUA $.
  $}

  ${
    $d A x y z $.  $d R x y z $.  $d S x y z $.
    $( Equality theorem for the well-ordering predicate.  (Contributed by NM,
       9-Mar-1997.) $)
    weeq1 $p |- ( R = S -> ( R We A <-> S We A ) ) $=
      ( vx vy vz wceq wfr cv wbr wa wral wwe freq1 breq anbi12d imbi12d ralbidv
      wi df-wetr 3bitr4g ) BCGZABHZDIZEIZBJZUEFIZBJZKZUDUGBJZSZFALZEALZDALZKACH
      ZUDUECJZUEUGCJZKZUDUGCJZSZFALZEALZDALZKABMACMUBUCUOUNVCABCNUBUMVBDAUBULVA
      EAUBUKUTFAUBUIURUJUSUBUFUPUHUQUDUEBCOUEUGBCOPUDUGBCOQRRRPDEFABTDEFACTUA
      $.
  $}

  ${
    $d A x y z $.  $d B x y z $.  $d R x y z $.
    $( Equality theorem for the well-ordering predicate.  (Contributed by NM,
       3-Apr-1994.) $)
    weeq2 $p |- ( A = B -> ( R We A <-> R We B ) ) $=
      ( vx vy vz wceq wfr cv wbr wa wral freq2 raleq raleqbi1dv anbi12d df-wetr
      wi wwe 3bitr4g ) ABGZACHZDIZEIZCJUDFIZCJKUCUECJRZFALZEALZDALZKBCHZUFFBLZE
      BLZDBLZKACSBCSUAUBUJUIUMABCMUHULDABUGUKEABUFFABNOOPDEFACQDEFBCQT $.
  $}

  ${
    $d A x y z $.  $d R x y z $.
    $( A well-ordering is well-founded.  (Contributed by NM, 22-Apr-1994.) $)
    wefr $p |- ( R We A -> R Fr A ) $=
      ( vx vy vz wwe wfr cv wbr wa wi wral df-wetr simplbi ) ABFABGCHZDHZBIPEHZ
      BIJOQBIKEALDALCALCDEABMN $.
  $}

  ${
    $d A x y z $.  $d R x y z $.  $d V x y z $.
    $( A well-ordering is a partial ordering.  (Contributed by Jim Kingdon,
       23-Sep-2021.) $)
    wepo $p |- ( ( R We A /\ A e. V ) -> R Po A ) $=
      ( vx vy vz wwe wcel wa cv wbr wfr wefr frirrg syl3an1 3expa wral r19.21bi
      wn anasss w3a wi df-3an df-wetr simprbi adantr sylan2b ispod ) ABGZACHZIZ
      DEFABUIUJDJZAHZULULBKSZUIABLZUJUMUNABMAULBCNOPUMEJZAHZFJZAHZUAUKUMUQIZUSI
      ULUPBKUPURBKIULURBKUBZUMUQUSUCUKUTUSVAUKUTIVAFAUKUMUQVAFAQZUKUMIVBEAUKVBE
      AQZDAUIVCDAQZUJUIUOVDDEFABUDUEUFRRTRTUGUH $.
  $}

  ${
    $d A x y z $.
    $( 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 wi df-3an wral wfr df-wetr r19.21bi epel
      anasss simprbi sylan2b anbi12i 3imtr3g ) DEFZAGZDHZBGZDHZCGZDHZIZJUFUHEKZ
      UHUJEKZJZUFUJEKZABLZBCLZJACLULUEUGUIJZUKJUOUPMZUGUIUKNUEUSUKUTUEUSJUTCDUE
      UGUIUTCDOZUEUGJVABDUEVABDOZADUEDEPVBADOABCDEQUARRTRTUBUMUQUNURABSBCSUCACS
      UD $.
  $}

  ${
    $d R x y z $.
    $( Any relation is a well-ordering of the empty set.  (Contributed by NM,
       16-Mar-1997.) $)
    we0 $p |- R We (/) $=
      ( vx vy vz c0 wwe wfr cv wbr wa wi wral fr0 ral0 df-wetr mpbir2an ) EAFEA
      GBHZCHZAIRDHZAIJQSAIKDELCELZBELAMTBNBCDEAOP $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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 $.

  ${
    $d x A $.
    $( Define the ordinal predicate, which is true for a class that is
       transitive and whose elements are transitive.  Definition of ordinal in
       [Crosilla], p.  "Set-theoretic principles incompatible with
       intuitionistic logic".  (Contributed by Jim Kingdon, 10-Oct-2018.)  Use
       its alias ~ dford3 instead for naming consistency with set.mm.
       (New usage is discouraged.) $)
    df-iord $a |- ( Ord A <-> ( Tr A /\ A. x e. A Tr x ) ) $.
  $}

  ${
    $d x A $.
    $( Alias for ~ df-iord .  Use it instead of ~ df-iord for naming
       consistency with set.mm.  (Contributed by Jim Kingdon, 10-Oct-2018.) $)
    dford3 $p |- ( Ord A <-> ( Tr A /\ A. x e. A Tr x ) ) $=
      ( df-iord ) ABC $.
  $}

  $( 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 an ordinal that has
     the empty set as an element and 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, and then
     changes ` A =/= (/) ` to ` (/) e. A ` (which would be equivalent given the
     law of the excluded middle, but which is not for us).  (Contributed by Jim
     Kingdon, 11-Nov-2018.)  Use its alias ~ dflim2 instead for naming
     consistency with set.mm.  (New usage is discouraged.) $)
  df-ilim $a |- ( Lim A <-> ( Ord A /\ (/) e. A /\ A = U. A ) ) $.

  $( Alias for ~ df-ilim .  Use it instead of ~ df-ilim for naming consistency
     with set.mm.  (Contributed by NM, 4-Nov-2004.) $)
  dflim2 $p |- ( Lim A <-> ( Ord A /\ (/) e. A /\ A = U. A ) ) $=
    ( df-ilim ) AB $.

  $( Define the successor of a class.  When applied to an ordinal number, the
     successor means the same thing as "plus 1".  Definition 7.22 of
     [TakeutiZaring] p. 41, who use "+ 1" to denote this function.  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 ).  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 } ) $.

  ${
    $d x A $.  $d x B $.
    $( Equality theorem for the ordinal predicate.  (Contributed by NM,
       17-Sep-1993.) $)
    ordeq $p |- ( A = B -> ( Ord A <-> Ord B ) ) $=
      ( vx wceq wtr cv wral wa word treq raleq anbi12d dford3 3bitr4g ) ABDZAEZ
      CFEZCAGZHBEZQCBGZHAIBIOPSRTABJQCABKLCAMCBMN $.
  $}

  ${
    $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 word cvv wa eloni elex jca elong biimparc impbii ) ABCZADZAECZF
    MNOAGABHIOMNAEJKL $.

  $( 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 wcel cuni wlim ordeq eleq2 id unieq eqeq12d 3anbi123d dflim2
    w3a 3bitr4g ) ABCZADZEAFZAAGZCZPBDZEBFZBBGZCZPAHBHRSUCTUDUBUFABIABEJRABUAUE
    RKABLMNAOBOQ $.

  ${
    $d x A $.
    $( An ordinal class is transitive.  (Contributed by NM, 3-Apr-1994.) $)
    ordtr $p |- ( Ord A -> Tr A ) $=
      ( vx word wtr cv wral dford3 simplbi ) ACADBEDBAFBAGH $.
  $}

  $( 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 $.

  ${
    $d A x $.  $d B x $.
    $( 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 ) $=
      ( vx wtr wss word w3a cv wral dford3 simprbi ssralv syl5 imp anim2i 3impb
      wa sylibr ) ADZABEZBFZGSCHDZCAIZQZAFSTUAUDTUAQUCSTUAUCUAUBCBIZTUCUABDUECB
      JKUBCABLMNOPCAJR $.
  $}

  ${
    $d x A $.  $d x 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 word wcel cv wa wceq eleq1 anbi2d ordeq imbi12d wtr wss wral simprbi
      wi dford3 r19.21bi ordelss simpl trssord syl3anc vtoclg anabsi7 ) ADZBAEZ
      BDZUFCFZAEZGZUIDZQUFUGGZUHQCBAUIBHZUKUMULUHUNUJUGUFUIBAIJUIBKLUKUIMZUIANU
      FULUFUOCAUFAMUOCAOCARPSAUITUFUJUAUIAUBUCUDUE $.
  $}

  ${
    $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 $.

  $( 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 $.

  $( 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 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 $.

  ${
    $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 $.
  $}

  $( The empty set is an ordinal class.  (Contributed by NM, 11-May-1994.) $)
  ord0 $p |- Ord (/) $=
    ( vx c0 word wtr cv wral tr0 ral0 dford3 mpbir2an ) BCBDAEDZABFGKAHABIJ $.

  $( 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 $.

  $( 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 wcel cuni wceq dflim2 simp1bi ) ABACDAEAAFGAHI $.

  $( A limit ordinal is its own supremum (union).  (Contributed by NM,
     4-May-1995.) $)
  limuni $p |- ( Lim A -> A = U. A ) $=
    ( wlim word c0 wcel cuni wceq dflim2 simp3bi ) ABACDAEAAFGAHI $.

  $( 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 word c0 wcel cuni wceq dflim2 simp2bi ) ABACDAEAAFGAHI $.

  $( 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 wcel wne 0elon ne0i ax-mp ) ABCBADEBAFG $.

  $( The class of all ordinal numbers is inhabited.  (Contributed by Jim
     Kingdon, 6-Mar-2019.) $)
  onm $p |- E. x x e. On $=
    ( cv c0 wceq con0 wcel wa wex 0elon 0ex eleq1 ceqsexv mpbir exsimpr ax-mp )
    ABZCDZPEFZGAHZRAHSCEFZIRTACJPCEKLMQRANO $.

  $( 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 csuc cun csn df-suc wceq snprc uneq2 sylbi syl5eq un0 syl6eq
    c0 ) ABCDZAEZAPFZAQRAAGZFZSAHQTPIUASIAJTPAKLMANO $.

  ${
    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 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 Jim Kingdon, 18-Aug-2019.) $)
  unisucg $p |- ( A e. V -> ( Tr A <-> U. suc A = A ) ) $=
    ( wcel csuc cuni cun wtr csn df-suc unieqi uniun eqtri unisng uneq2d syl5eq
    wceq eqeq1d wss df-tr ssequn1 bitri syl6rbbr ) ABCZADZEZAPAEZAFZAPZAGZUCUEU
    GAUCUEUFAHZEZFZUGUEAUJFZEULUDUMAIJAUJKLUCUKAUFABMNOQUIUFARUHASUFATUAUB $.

  $( 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 Jim Kingdon, 14-Oct-2018.) $)
  nsuceq0g $p |- ( A e. V -> suc A =/= (/) ) $=
    ( wcel csuc c0 wceq noel sucidg eleq2 syl5ibcom mtoi neneqad ) ABCZADZEMNEF
    ZAECZAGMANCOPABHNEAIJKL $.

  ${
    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.) $)
    suctr $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 cvv wss sssucid ssexg mpan sucidg syl ancri trel syl5 imp
    wa ) ACZBDZAEZBAEZTBSEZTQRUATUBTBFEZUBBSGTUCBHBSAIJBFKLMABSNOP $.

  $( 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 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 $.

  $( 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 $.

  ${
    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 $.

    $( 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 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 $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  IZF Set Theory - add the Axiom of Union
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Introduce the Axiom of Union
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d w x y z $.
    $( Axiom of Union.  An axiom of Intuitionistic 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 .

       This is Axiom 3 of [Crosilla] p.  "Axioms of CZF and IZF", except (a)
       unnecessary quantifiers are removed, (b) Crosilla has a biconditional
       rather than an implication (but the two are equivalent by ~ bm1.3ii ),
       and (c) the order of the conjuncts is swapped (which is equivalent by
       ~ ancom ).

       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 $.
  $}

  ${
    $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 vex uniex vtoclg ) CDZEZFGAEZFGCA
      BNAHOPFNAIJNCKLM $.
  $}

  ${
    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 wcel prexg mp2an uniex eqeltrri ) ABEZFABGHABCDI
      OAHJBHJOHJCDABHHKLMN $.
  $}

  ${
    $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 $.

  $( An unordered triple of classes exists.  (Contributed by NM,
     10-Apr-1994.) $)
  tpexg $p |- ( ( A e. U /\ B e. V /\ C e. W ) -> { A , B , C } e. _V ) $=
    ( wcel w3a ctp cpr csn cun cvv df-tp wa prexg snexg anim12i 3impa unexg syl
    syl5eqel ) ADGZBEGZCFGZHZABCIABJZCKZLZMABCNUFUGMGZUHMGZOZUIMGUCUDUEULUCUDOU
    JUEUKABDEPCFQRSUGUHMMTUAUB $.

  ${
    $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 z $.
    $( The class of all singletons is a proper class.  (Contributed by NM,
       10-Oct-2008.)  (Proof shortened by Eric Schmidt, 7-Dec-2008.) $)
    snnex $p |- { x | E. y x = { y } } e/ _V $=
      ( vz cv csn wceq wex cab wcel cuni vprc wa vsnid a9ev sneq equcoms eximii
      cvv vex snex eleq2 eqeq1 exbidv anbi12d spcev mp2an mpbir 2th eqriv mtbir
      eluniab eleq1i uniexg mto nelir ) ADZBDZEZFZBGZAHZRVARIVAJZRIZVCRRIKVBRRC
      VBRCDZVBIZVDRIVEVDUPIZUTLZAGZVDVDEZIZVIURFZBGZVHCMUQVDFVKBBCNVKCBVDUQOPQV
      GVJVLLAVIVDCSZTUPVIFZVFVJUTVLUPVIVDUAVNUSVKBUPVIURUBUCUDUEUFUTAVDUKUGVMUH
      UIULUJVARUMUNUO $.
  $}

  ${
    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 $.
  $}

  ${
    $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 vex uniex eleq2 ceqsexv
      exancom bitri 3bitr2i eqeq1 anbi1d exbidv elab abbii df-uni 3eqtr4i ) DEG
      ZEHZCIZJZSZEKZDLDFGZFHZAHZBHZIZMZVJCJZSZBKZALZJZSZFKZDLVCIVPIVFVSDVFVAEBG
      ZVMSZBKZSZEKZVMDHZVKJZSZBKZVSVEWCEVDWBVABVBCNOPWDVAWASZBKZEKZVMVAVTSZEKZS
      ZBKZWHWCWJEWJWCVAWABQRPWKWIEKBKVMWLSZEKBKWOWIEBUAWIWPBEWIWLVMSWPVAVTVMUBW
      LVMUCUDUEVMWLBEUFTWNWGBWMWFVMWFWMEWEVJNROPTWHVGVHVKMZVMSZSZFKZBKWSBKFKZVS
      WGWTBWGVMVGWQSZFKZSVMXBSZFKWTWFXCVMWFWQVGSFKXCVGWFFVKVJBUGUHVHVKWEUIUJWQV
      GFUKUDOVMXBFQXDWSFXDXBVMSWSVMXBUCVGWQVMUBULPUMPWSBFUAXAVGWRBKZSZFKVSVGWRF
      BUFXFVRFXEVQVGVQXEVOXEAVHFUGVIVHMZVNWRBXGVLWQVMVIVHVKUNUOUPUQROPULTTURDEV
      CUSDFVPUSUT $.
  $}

  ${
    $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 ) ) $=
      ( cv wceq wal weu wnfc cvv wcel eusvnf wex euex vex syl6eqelr sps exlimiv
      wa id syl jca isset nfcvd nfeqd nfrd eximdv syl5bi eusv1 sylibr impbii
      imp ) BDZCEZAFZBGZACHZCIJZRZUOUPUQABCKUOUNBLZUQUNBMUNUQBUMUQAUMCULIUMSBNO
      PQTUAURUSUOUPUQUSUQUMBLUPUSBCUBUPUMUNBUPUMAUPAULCUPAULUCUPSUDUEUFUGUKABCU
      HUIUJ $.
  $}

  ${
    $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 ) $=
      ( cv wceq wal weu wex nfeu1 wnf nfcvd eusvnf nfeqd nf2 sylib 19.2 impbid1
      wi eubid ibir ) BDZCEZAFZBGZUBAHZBGUDUEUCBUCBIUDUEUCUDUBAJUEUCRUDAUACUDAU
      AKABCLMUBANOUBAAPQST $.
  $}

  ${
    $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 nf3 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.) $)
    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 wa wal impd com12
      rsp alrimiv moeq moim mpisyl ex rexlimi mormo reu5 rbaib 3syl ) ACEGABHFI
      ZJZCEKZBLZUPBDMZUPBDNZUPBDGZOAUQCEUPCBUOCEPQCHERZAUQVAASZUPUNJZBTUNBLUQVB
      VCBUPVBUNUPVAAUNUOCEUCUAUBUDBFUEUPUNBUFUGUHUIUPBDUJUSUTURUPBDUKULUM $.
  $}

  ${
    $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 ralimi biimpi prth eqtr2 syl6
      raaanv sylbir mpdan rexlimivw ) ACLZHMZNZDGOZABPZHIMZNZEGOZDGOZCFULBUIIMZ
      NZEGOZUQULUTUKUSDEGDLELMZABUJURJVAHIUIKQRSUAULUTPUKUSPZEGOZDGOUQUKUSDEGUE
      VCUPDGVBUOEGVBUMUJURPUNAUJBURUBUIHIUCUDTTUFUGUH $.

    $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 cbvrexv risset
      nfra2xy nfv nfim ralcom impexp bi2.04 r19.21v rsp sylbi com3l imp31 eqeq1
      eqcom syl6bb imbi2d ralbidv syl5ibrcom reximdv ex expimpd rexlimi reusv3i
      com23 syl5bi impbid1 ) AHFLZMZDGNZABMHIOZPZEGQDGQZACRZHOZPZDGQZCFNZVLBIFL
      ZMZEGNVOVTPZVKWBDEGDRERZOZABVJWAJWEHIFKUAUBUCWBWCEGVOVTEVNDEGGUEVTEUFUGWD
      GLZBWAWCWAVPIOZCFNZWFBMZWCCIFUDWIVOWHVTWIVOWHVTPWIVOMZWGVSCFWJVSWGAVMPZDG
      QZWFBVOWLVOWFBWLVOBWLPZEGQZWFWMPVOVNDGQZEGQWNVNDEGGUHWOWMEGWOBWKPZDGQWMVN
      WPDGVNABVMPPWPABVMUIABVMUJSTBWKDGUKSTSWMEGULUMUNUOWGVRWKDGWGVQVMAWGVQIHOV
      MVPIHUPIHUQURUSUTVAVBVCVGVHVDVEUMABCDEFGHIJKVFVI $.
  $}

  ${
    $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.) $)
    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 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 ) ) $=
      ( wrex wal cv wcel wa nfv wex df-rex rexlimdva 19.3 wceq 19.29 an12 exbii
      wi sylib sylibr sylan2b biimpd expimpd ancomsd reximdv syl5 adantr mpan2d
      syl5bir wb adantlr rspcedv impbid ) ABDGLZCEHLZABVCDGBBEMZADNZGOZPZVCBEBE
      QUAVGVDVEFUBZEHLZVCJAVDVIPZVCUFVFVJBVHPZEHLZAVCVIVDENHOZVHPZERZVLVHEHSVDV
      OPZVMVKPZERZVLVPBVNPZERVRBVNEUCVSVQEBVMVHUDUEUGVKEHSUHUIAVKCEHAVHBCAVHBCA
      VHPBCKUJUKULUMUNUOUPUQTACVBEHAVMPBCDFGIAVHBCURVMKUSUTTVA $.
  $}

  ${
    $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 ) ) $=
      ( cv wcel wa wceq wex elisset syl wi wrex biimprd r19.23v sylibr r19.21bi
      wral eleq1 mpbidi exlimdv mpd biimpa rexxfrd ) ABCDEFGHAEMHNOZDMZFPZDQZFG
      NZUMFINUPJDFIRSUMUOUQDUOUNGNZUQUMAUOURTZEHAUOEHUAZURTUSEHUFAURUTKUBUOUREH
      UCUDUEUNFGUGUHUIUJAURUTKUKLUL $.
  $}

  ${
    $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 $.

    $( Transfer universal quantification from a variable ` x ` to another
       variable ` y ` contained in expression ` A ` .  This proof 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 wb wtru cv wcel adantl wceq rexxfrd trud ) ACFKBDGKLMABCDEFGDNGOEF
      OMHPCNZFOTEQZDGKMIPUAABLMJPRS $.
  $}

  ${
    $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 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 restricted existential uniqueness
       hypotheses.  (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 elex syl eueq sylib eleq1 syl5ibrcom 3expa
      pm4.71rd wb pm5.32da bitr4d eubidv mpbid df-reu sylibr ) ABIZFJZKZCIZFJZU
      KDLZKZCMZUPCFNUMUNELZCMZURUMEOJZUTUMEFJZVAGEFPQCERSUMUSUQCUMUSUOUSKUQUMUS
      UOUMUOUSVBGUNEFTUAUCUMUOUPUSAULUOUPUSUDHUBUEUFUGUHUPCFUIUJ $.
  $}

  ${
    $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 restricted existential uniqueness
       hypotheses.  (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 $.
  $}

  $( 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 cpw wss pwuni pwexg ssexg sylancr impbii ) ABCZADZBC
    ZABEOANFZGPBCMAHNBIAPBJKL $.

  $( 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 ) $=
    ( cpw cvv wcel cuni uniexb unipw eleq1i bitr2i ) ABZCDJEZCDACDJFKACAGHI $.

  $( 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 $.

  ${
    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 $.
  $}

  ${
    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.  (Contributed by NM, 25-Nov-2003.) $)
    op1stb $p |- |^| |^| <. A , B >. = A $=
      ( cop cint csn cpr dfop inteqi cin snex wcel prexg mp2an intpr wceq eqtri
      cvv wss snsspr1 df-ss mpbi intsn ) ABEZFZFAGZFAUFUGUFUGABHZHZFZUGUEUIABCD
      IJUJUGUHKZUGUGUHACLASMBSMUHSMCDABSSNOPUGUHTUKUGQABUAUGUHUBUCRRJACUDR $.
  $}

  $( Extract the first member of an ordered pair.  Theorem 73 of [Suppes]
     p. 42.  (Contributed by Jim Kingdon, 17-Dec-2018.) $)
  op1stbg $p |- ( ( A e. V /\ B e. W ) -> |^| |^| <. A , B >. = A ) $=
    ( wcel wa cop cint csn cpr dfopg inteqd cin cvv snexg prexg intprg syl2an2r
    wceq eqtrd wss snsspr1 df-ss mpbi syl6eq intsng adantr ) ACEZBDEZFZABGZHZHA
    IZHZAUJULUMUJULUMABJZJZHZUMUJUKUPABCDKLUJUQUMUOMZUMUHUMNEUIUONEUQURSACOABCD
    PUMUONNQRUMUOUAURUMSABUBUMUOUCUDUETLUHUNASUIACUFUGT $.

  ${
    $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 cuni wceq wrex cpw ciun wcel sseq2 biimprcd reximdv com12 ssiun elpw
      cv wss eliun wa uniiun syl6sseqr impbid1 df-pw abeq2i bitri 3bitr4g eqrdv
      vex rexbii ssid uniex eleq2 syl5bbr mpbii sylib elssuni elpwi eqss sylibr
      anim12i ex reximia syl impbii ) AQZBEZFZABGZVGHZABVFHZIZFZVIDVJVLVIDQZVGR
      ZVNVFRZABGZVNVJJVNVLJZVIVOVQVOVIVQVOVHVPABVHVPVOVFVGVNKLMNVQVNABVFIVGABVF
      VNOABUAUBUCVNVGDUIPVRVNVKJZABGVQAVNBVKSVSVPABVPDVKDVFUDUEUJUFUGUHVMVGVKJZ
      ABGZVIVMVGVLJZWAVMVGVGRZWBVGUKWCVGVJJVMWBVGVGBCULPVJVLVGUMUNUOAVGBVKSUPVT
      VHABVFBJZVTVHWDVTTVFVGRZVGVFRZTVHWDWEVTWFVFBUQVGVFURVAVFVGUSUTVBVCVDVE $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Ordinals (continued)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( 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 con0 word wtr cv wral tron wcel df-on abeq2i ordtr sylbi rgen mpbir2an
    dford3 ) BCBDAEZDZABFGQABPBHPCZQRABAIJPKLMABON $.

  ${
    $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 $.
  $}

  $( The union of two ordinal numbers is an ordinal number.  (Contributed by
     Jim Kingdon, 25-Jul-2019.) $)
  onun2 $p |- ( ( A e. On /\ B e. On ) -> ( A u. B ) e. On ) $=
    ( con0 wcel wa cpr wss cun prssi cuni wi prexg ssonuni uniprg eleq1d sylibd
    cvv syl mpd ) ACDBCDEZABFZCGZABHZCDZABCITUBUAJZCDZUDTUAQDUBUFKABCCLUAQMRTUE
    UCCABCCNOPS $.

  ${
    onun2i.1 $e |- A e. On $.
    onun2i.2 $e |- B e. On $.
    $( The union of two ordinal numbers is an ordinal number.  (Contributed by
       NM, 13-Jun-1994.)  (Constructive proof by Jim Kingdon, 25-Jul-2019.) $)
    onun2i $p |- ( A u. B ) e. On $=
      ( con0 wcel cun onun2 mp2an ) AEFBEFABGEFCDABHI $.
  $}

  ${
    $d x A $.
    $( 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.) $)
    ordsson $p |- ( Ord A -> A C_ On ) $=
      ( vx word con0 cv wcel ordelon ex ssrdv ) ACZBADJBEZAFKDFAKGHI $.
  $}

  $( 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 $.

  $( 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 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 $.
  $}

  $( 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 snexg pm4.71i df-suc eleq1i 3bitr4i ) ABCZ
    ADZBCZEAOFZBCNAGZBCAOHNPABIJRQBAKLM $.

  $( 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 successor of an ordinal class is ordinal.  (Contributed by Jim
       Kingdon, 8-Nov-2018.) $)
    ordsucim $p |- ( Ord A -> Ord suc A ) $=
      ( vx word csuc wtr cv wral ordtr suctr syl wcel wceq wo csn df-suc eleq2i
      cun elun velsn dford3 orbi2i 3bitri wal simprbi df-ral sylib 19.21bi treq
      wi syl5ibrcom jaod syl5bi ralrimiv sylanbrc ) ACZADZEZBFZEZBUPGUPCUOAEZUQ
      AHZAIJUOUSBUPURUPKZURAKZURALZMZUOUSVBURAANZQZKVCURVFKZMVEUPVGURAOPURAVFRV
      HVDVCBASUAUBUOVCUSVDUOVCUSUIZBUOUSBAGZVIBUCUOUTVJBATUDUSBAUEUFUGUOUSVDUTV
      AURAUHUJUKULUMBUPTUN $.
  $}

  $( 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 ) $=
    ( con0 wcel csuc word eloni ordsucim syl cvv wb sucexg elong mpbird ) ABCZA
    DZBCZOEZNAEQAFAGHNOICPQJABKOILHM $.

  $( The successor of an ordinal class is ordinal.  (Contributed by Jim
     Kingdon, 20-Nov-2018.) $)
  ordsucg $p |- ( A e. _V -> ( Ord A <-> Ord suc A ) ) $=
    ( cvv wcel word csuc ordsucim sucidg ordelord ex syl5com impbid2 ) ABCZADZA
    EZDZAFLANCZOMABGOPMNAHIJK $.

  $( 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 ) $=
    ( con0 wcel csuc suceloni word eloni cvv wb elex sucexb elong ordsucg bitrd
    sylibr syl mpbird impbii ) ABCZADZBCZAEUASTFZTGUAAHCZSUBIUATHCUCTBJAKOUCSAF
    UBAHLAMNPQR $.

  $( 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 wtr wcel csuc wss wi ordtr csn cun trss snssi a1i jcad syl6ib df-suc
    wa unss sseq1i syl6ibr syl ) BCBDZABEZAFZBGZHBIUCUDAAJZKZBGZUFUCUDABGZUGBGZ
    RUIUCUDUJUKBALUDUKHUCABMNOAUGBSPUEUHBAQTUAUB $.

  $( 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 $.

  ${
    onsucssi.1 $e |- A e. On $.
    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 ) AEFBGABFAHBIJCBDKABE
      LM $.
  $}

  ${
    $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 predecessors.  The converse, for all ordinals,
     implies excluded middle, as shown at ~ onsucelsucexmid .  However, the
     converse does hold where ` B ` is a natural number, as seen at
     ~ nnsucelsuc .  (Contributed by Jim Kingdon, 17-Jul-2019.) $)
  onsucelsucr $p |- ( B e. On -> ( suc A e. suc B -> A e. B ) ) $=
    ( csuc wcel con0 cvv wi elex sucexb sylibr wa wceq wo wss onelss eqimss a1i
    jaod adantl wb elsucg sylbi adantr ordelsuc sylan2 3imtr4d impancom mpancom
    word eloni com12 ) ACZBCZDZBEDZABDZAFDZUNUOUPGUNULFDZUQULUMHAIZJUQUOUNUPUQU
    OKULBDZULBLZMZULBNZUNUPUOVBVCGUQUOUTVCVABULOVAVCGUOULBPQRSUQUNVBTZUOUQURVDU
    SULBFUAUBUCUOUQBUIUPVCTBUJABFUDUEUFUGUHUK $.

  $( The subclass relationship between two ordinals is inherited by their
     predecessors.  The converse implies excluded middle, as shown at
     ~ onsucsssucexmid .  (Contributed by Mario Carneiro and Jim Kingdon,
     29-Jul-2019.) $)
  onsucsssucr $p |- ( ( A e. On /\ Ord B ) -> ( suc A C_ suc B -> A C_ B ) ) $=
    ( con0 wcel word wa csuc wss wb ordsucim ordelsuc sylan2 wi wtr trsucss syl
    ordtr adantl sylbird ) ACDZBEZFAGBGZHZAUBDZABHZUATUBEUDUCIBJAUBCKLUAUDUEMZT
    UABNUFBQBAOPRS $.

  $( Successor and union.  The converse (where ` B ` is an ordinal) implies
     excluded middle, as seen at ~ ordsucunielexmid .  (Contributed by Jim
     Kingdon, 2-Aug-2019.) $)
  sucunielr $p |- ( suc A e. B -> A e. U. B ) $=
    ( csuc wcel cuni cvv elex sucexb sylibr sucidg syl elunii mpancom ) AACZDZN
    BDZABEDPAFDZOPNFDQNBGAHIAFJKANBLM $.

  ${
    $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 $.

    $( The union of the ordinal subsets of an ordinal number is that number.
       (Contributed by Jim Kingdon, 2-Aug-2019.) $)
    onuniss2 $p |- ( A e. On -> U. { x e. On | x C_ A } = A ) $=
      ( con0 unimax ) ABCD $.
  $}

  $( The class of ordinal numbers is a limit ordinal.  (Contributed by NM,
     24-Mar-1995.) $)
  limon $p |- Lim On $=
    ( con0 wlim word c0 wcel cuni wceq ordon 0elon unon eqcomi dflim2 mpbir3an
    ) ABACDAEAAFZGHINAJKALM $.

  ${
    $d x A $.

    $( An ordinal which contains the successor of each of its members is equal
       to its union.  (Contributed by Jim Kingdon, 14-Nov-2018.) $)
    ordunisuc2r $p |- ( Ord A -> ( A. x e. A suc x e. A -> A = U. A ) ) $=
      ( word cv csuc wcel wral cuni wss wa wceq wi wal sucid elunii mpan imim2i
      vex alimi df-ral dfss2 3imtr4i a1i orduniss jctird eqss syl6ibr ) BCZADZE
      ZBFZABGZBBHZIZUMBIZJBUMKUHULUNUOULUNLUHUIBFZUKLZAMUPUIUMFZLZAMULUNUQUSAUK
      URUPUIUJFUKURUIARNUIUJBOPQSUKABTABUMUAUBUCBUDUEBUMUFUG $.
  $}

  ${
    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 $.
  $}

  ${
    $d A x $.
    $( The intersection of an inhabited collection of ordinal numbers is an
       ordinal number.  Compare Exercise 6 of [TakeutiZaring] p. 44.
       (Contributed by Mario Carneiro and Jim Kingdon, 30-Aug-2021.) $)
    onintonm $p |- ( ( A C_ On /\ E. x x e. A ) -> |^| A e. On ) $=
      ( con0 wss cv wcel wex wa cint word wtr wral ssel eloni syl syl6 ralrimiv
      ordtr trint cvv nfv nfe1 nfan cuni intssuni2m unon syl6sseq sseld ralrimi
      adantr dford3 sylanbrc wb inteximm adantl elong mpbird ) BCDZAEZBFZAGZHZB
      IZCFZVCJZVBVCKZUSKZAVCLVEURVFVAURVGABLVFURVGABURUTUSCFZVGBCUSMVHUSJZVGUSN
      ZUSRZOPQABSOUJVBVGAVCURVAAURAUAUTAUBUCVBUSVCFZVIVGVBVLVHVIVBVCCUSVBVCCUDC
      ABCUEUFUGUHVJPVKPUIAVCUKULVBVCTFZVDVEUMVAVMURABUNUOVCTUPOUQ $.
  $}

  ${
    $d ph y $.  $d x y $.
    $( An existence condition which implies an intersection is an ordinal
       number.  (Contributed by Jim Kingdon, 30-Aug-2021.) $)
    onintrab2im $p |- ( E. x e. On ph -> |^| { x e. On | ph } e. On ) $=
      ( vy con0 wrex crab wss cv wcel cint ssrab2 nfrab1 nfcri nfex rabid elex2
      wex wa sylbir ex rexlimi onintonm sylancr ) ABDEABDFZDGCHUDIZCQZUDJDIABDK
      AUFBDUEBCBCUDABDLMNBHZDIZAUFUHARUGUDIUFABDOCUGUDPSTUACUDUBUC $.
  $}

  ${
    $d x y z $.  $d ph y z $.
    $( Lemma for decidability and ordinals.  The set ` { x e. { (/) } | ph } `
       is a way of connecting statements about ordinals (such as trichotomy in
       ~ ordtriexmid or weak linearity in ~ ordsoexmid ) with a proposition
       ` ph ` .  Our lemma states that it is an ordinal number.  (Contributed
       by Jim Kingdon, 28-Jan-2019.) $)
    ordtriexmidlem $p |- { x e. { (/) } | ph } e. On $=
      ( vy vz c0 csn crab con0 wcel word wtr wss cv wa wi wal simpl mpbir ax-mp
      wceq elrabi velsn sylib noel eleq2 mtbiri syl adantl pm2.21dd gen2 ssrab2
      wn dftr2 csuc ord0 ordsucim suc0 ordeq mpbi trssord mp3an p0ex rabex elon
      wb ) ABEFZGZHIVGJZVGKZVGVFLVFJZVHVICMZDMZIZVLVGIZNZVKVGIZOZDPCPVQCDVOVMVP
      VMVNQVNVMULZVMVNVLETZVRVNVLVFIVSABVLVFUADEUBUCVSVMVKEIVKUDVLEVKUEUFUGUHUI
      UJCDVGUMRABVFUKEUNZJZVJEJWAUOEUPSVTVFTWAVJVEUQVTVFURSUSVGVFUTVAVGABVFVBVC
      VDR $.
  $}

  ${
    $d ph x $.
    $( Lemma for decidability and ordinals.  The set ` { x e. { (/) } | ph } `
       is a way of connecting statements about ordinals (such as trichotomy in
       ~ ordtriexmid or weak linearity in ~ ordsoexmid ) with a proposition
       ` ph ` .  Our lemma helps connect that set to excluded middle.
       (Contributed by Jim Kingdon, 28-Jan-2019.) $)
    ordtriexmidlem2 $p |- ( { x e. { (/) } | ph } = (/) -> -. ph ) $=
      ( c0 csn crab wceq wcel noel eleq2 mtbiri wb 0ex snid biidd elrab3 sylnib
      cv ax-mp ) ABCDZEZCFZCTGZAUAUBCCGCHTCCIJCSGUBAKCLMAABCSBQCFANORP $.
  $}

  ${
    $d x y z $.  $d x ph z $.
    ordtriexmid.1 $e |- A. x e. On A. y e. On ( x e. y \/ x = y \/ y e. x ) $.
    $( Ordinal trichotomy implies the law of the excluded middle (that is,
       decidability of an arbitrary proposition).

       This theorem is stated in "Constructive ordinals", [Crosilla], p.
       "Set-theoretic principles incompatible with intuitionistic logic".

       (Contributed by Mario Carneiro and Jim Kingdon, 14-Nov-2018.) $)
    ordtriexmid $p |- ( ph \/ -. ph ) $=
      ( vz wn wo c0 wceq wcel w3o con0 cv eleq1 eleq2 3orbi123d wa wi 0ex ax-mp
      csn crab noel ordtriexmidlem eqeq1 0elon anbi2d eqeq2 imbi12d vtocl mpan2
      rspec2 vtoclga 3orass mpbi mtpor ordtriexmidlem2 snid biidd elrab3 biimpi
      wb orim12i orcom mpbir ) AAFZGVFAGZAEHUAZUBZHIZHVIJZGZVGVIHJZVLVIUCVMVJVK
      KZVMVLGVILJVNAEUDBMZHJZVOHIZHVOJZKZVNBVILVOVIIVPVMVQVJVRVKVOVIHNVOVIHUEVO
      VIHOPVOLJZHLJZVSUFVTCMZLJZQZVOWBJZVOWBIZWBVOJZKZRVTWAQZVSRCHSWBHIZWDWIWHV
      SWJWCWAVTWBHLNUGWJWEVPWFVQWGVRWBHVOOWBHVOUHWBHVONPUIWHBCLLDULUJUKUMTVMVJV
      KUNUOUPVJVFVKAAEUQVKAHVHJVKAVBHSURAAEHVHEMHIAUSUTTVAVCTAVFVDVE $.
  $}

  ${
    $d ph x y z $.
    ordtri2orexmid.1 $e |- A. x e. On A. y e. On ( x e. y \/ y C_ x ) $.
    $( Ordinal trichotomy implies excluded middle.  (Contributed by Jim
       Kingdon, 31-Jul-2019.) $)
    ordtri2orexmid $p |- ( ph \/ -. ph ) $=
      ( vz wn wo c0 csn crab wcel wss cv con0 wral 0elon wceq orbi12d ax-mp wb
      ordtriexmidlem csuc suc0 eqeltrri eleq1 sseq2 eleq2 sseq1 rspc2va mpanl12
      onsuci elsni ordtriexmidlem2 syl snssg biidd elrab3 biimpi sylbir orim12i
      0ex snid orcom mpbi ) AFZAGZAVEGAEHIZJZVGKZVGVHLZGZVFBMZCMZKZVMVLLZGZCNOB
      NOZVKDVHNKVGNKVQVKAEUAHUBVGNUCHPUKUDVPVKVHVMKZVMVHLZGBCVHVGNNVLVHQVNVRVOV
      SVLVHVMUEVLVHVMUFRVMVGQVRVIVSVJVMVGVHUGVMVGVHUHRUIUJSVIVEVJAVIVHHQVEVHHUL
      AEUMUNVJHVHKZAHNKVTVJTPHVHNUOSVTAHVGKVTATHVAVBAAEHVGEMHQAUPUQSURUSUTSVEAV
      CVD $.
  $}

  $( Version of ~ 2on with the definition of ` 2o ` expanded and expressed in
     terms of ` Ord ` .  (Contributed by Jim Kingdon, 29-Aug-2021.) $)
  2ordpr $p |- Ord { (/) , { (/) } } $=
    ( c0 csuc word csn cpr ord0 ordsucim mp2b wceq cun df-suc suceq ax-mp df-pr
    wb suc0 3eqtr4i ordeq mpbi ) ABZBZCZAADZEZCZACTCUBFAGTGHUAUDIUBUEOUCBZUCUCD
    JUAUDUCKTUCIUAUFIPTUCLMAUCNQUAUDRMS $.

  ${
    $d ph w x y z $.
    ontr2exmid.1 $e |- A. x e. On A. y A. z e. On
      ( ( x C_ y /\ y e. z ) -> x e. z ) $.
    $( An ordinal transitivity law which implies excluded middle.  (Contributed
       by Jim Kingdon, 17-Sep-2021.) $)
    ontr2exmid $p |- ( ph \/ -. ph ) $=
      ( vw wo c0 wceq wcel wss p0ex con0 cv wa wi wral wal eleq1 ax-mp csn crab
      cpr ssrab2 prid2 word 2ordpr pp0ex elon mpbir ordtriexmidlem sseq1 anbi1d
      wn imbi12d ralbidv albidv rspcv mp2 sseq2 anbi12d imbi1d spcv eleq2 mp2an
      anbi2d elpri ordtriexmidlem2 0ex biidd rabsnt orim12i orcom mpbi ) AUNZAG
      ZAVOGAFHUAZUBZHIZVRVQIZGZVPVRHVQUCZJZWAVRVQKZVQWBJZWCAFVQUDHVQLUEWBMJZWDV
      QDNZJZOZVRWGJZPZDMQZWDWEOZWCPZWFWBUFUGWBUHUIUJVRCNZKZWOWGJZOZWJPZDMQZCRZW
      LVRMJBNZWOKZWQOZXBWGJZPZDMQZCRZBMQXAAFUKEXHXABVRMXBVRIZXGWTCXIXFWSDMXIXDW
      RXEWJXIXCWPWQXBVRWOULUMXBVRWGSUOUPUQURUSWTWLCVQLWOVQIZWSWKDMXJWRWIWJXJWPW
      DWQWHWOVQVRUTWOVQWGSVAVBUPVCTWKWNDWBMWGWBIZWIWMWJWCXKWHWEWDWGWBVQVDVFWGWB
      VRVDUOURUSVEVRHVQVGTVSVOVTAAFVHAAFVQHVIFNHIAVJVKVLTVOAVMVN $.
  $}

  ${
    $d ph x y z $.
    $( A set which is ` 2o ` if ` ph ` or ` (/) ` if ` -. ph ` is an ordinal.
       (Contributed by Jim Kingdon, 29-Aug-2021.) $)
    ordtri2or2exmidlem $p |- { x e. { (/) , { (/) } } | ph } e. On $=
      ( vy vz c0 wcel word cv wa wal wceq eleq2 adantl sylib wo vex biidd elrab
      elpr mpbir csn cpr crab con0 wtr wss wi simpll wn mtbiri pm2.21dd biimpac
      noel velsn orc sylibr syl adantlr simprbi ad2antlr sylanbrc mpjaodan gen2
      elrabi dftr2 ssrab2 2ordpr trssord mp3an pp0ex rabex elon ) ABEEUAZUBZUCZ
      UDFVOGZVOUEZVOVNUFVNGVPVQCHZDHZFZVSVOFZIZVRVOFZUGZDJCJWDCDWBVSEKZWCVSVMKZ
      WBWEIVTWCVTWAWEUHWEVTUIWBWEVTVREFVRUMVSEVRLUJMUKWBWFIVRVNFZAWCVTWFWGWAVTW
      FIZVREKZWGWHVRVMFZWIWFVTWJVSVMVRLULCEUNNWIWIVRVMKZOWGWIWKUOVREVMCPSUPUQUR
      WAAVTWFWAVSVNFZAAABVSVNBHZVSKAQRUSUTAABVRVNWMVRKAQRVAWAWEWFOZVTWAWLWNABVS
      VNVDVSEVMDPSNMVBVCCDVOVETABVNVFVGVOVNVHVIVOABVNVJVKVLT $.
  $}

  ${
    $d ph x z $.  $d x y $.
    onsucsssucexmid.1 $e |- A. x e. On A. y e. On
      ( x C_ y -> suc x C_ suc y ) $.
    $( The converse of ~ onsucsssucr implies excluded middle.  (Contributed by
       Mario Carneiro and Jim Kingdon, 29-Jul-2019.) $)
    onsucsssucexmid $p |- ( ph \/ -. ph ) $=
      ( vz wo c0 wcel wceq csuc wss con0 wi cv suceq imbi12d onsuci wa ax-mp wb
      wn crab ssrab2 ordtriexmidlem sseq1 sseq1d suc0 0elon eqeltrri p0ex eleq1
      anbi2d sseq2 sseq2d rspec2 vtocl mpan2 vtoclga word onordi ordelsuc mp2an
      csn mpbir elsucg elsni ordtriexmidlem2 syl 0ex biidd rabsnt orim12i orcom
      mpbi ) AUAZAFZAVOFAEGVCZUBZVQHZVRVQIZFZVPVRVQJZHZWAWCVRJZWBKZVRVQKZWEAEVQ
      UCVRLHZWFWEMZAEUDZBNZVQKZWJJZWBKZMZWHBVRLWJVRIZWKWFWMWEWJVRVQUEWOWLWDWBWJ
      VROUFPWJLHZVQLHZWNGJVQLUGGUHQUIZWPCNZLHZRZWJWSKZWLWSJZKZMZMWPWQRZWNMCVQUJ
      WSVQIZXAXFXEWNXGWTWQWPWSVQLUKULXGXBWKXDWMWSVQWJUMXGXCWBWLWSVQOUNPPXEBCLLD
      UOUPUQURSSWGWBUSWCWETWIWBVQWRQUTVRWBLVAVBVDWGWCWATWIVRVQLVESVNVSVOVTAVSVR
      GIVOVRGVFAEVGVHAAEVQGVIENGIAVJVKVLSVOAVMVN $.
  $}

  ${
    $d ph x y z $.
    $( Lemma for ~ onsucelsucexmid .  (Contributed by Jim Kingdon,
       2-Aug-2019.) $)
    onsucelsucexmidlem1 $p |- (/) e.
        { x e. { (/) , { (/) } } | ( x = (/) \/ ph ) } $=
      ( c0 cv wceq csn cpr crab wcel 0ex prid1 eqid eqeq1 orbi1d elrab mpbir2an
      wo orci ) CBDZCEZAQZBCCFZGZHICUCICCEZAQZCUBJKUDACLRUAUEBCUCTTUDASCCMNOP
      $.

    $( Lemma for ~ onsucelsucexmid .  The set
       ` { x e. { (/) , { (/) } } | ( x = (/) \/ ph ) } ` appears as ` A ` in
       the proof of Theorem 1.3 in [Bauer] p. 483 (see ~ acexmidlema ), and
       similar sets also appear in other proofs that various propositions imply
       excluded middle, for example in ~ ordtriexmidlem .  (Contributed by Jim
       Kingdon, 2-Aug-2019.) $)
    onsucelsucexmidlem $p |- { x e. { (/) , { (/) } } | ( x = (/) \/ ph ) }
        e. On $=
      ( vy vz cv c0 wceq wo csn cpr wcel word wa wi eleq2 adantl ex sylib mpbir
      wal crab con0 wtr wss simpll wn noel pm2.21dd biimpac onsucelsucexmidlem1
      mtbiri velsn syl6eqel adantr elrabi elpr mpjaod gen2 dftr2 ssrab2 trssord
      vex 2ordpr mp3an pp0ex rabex elon ) BEFGAHZBFFIZJZUAZUBKVKLZVKUCZVKVJUDVJ
      LVLVMCEZDEZKZVOVKKZMZVNVKKZNZDTCTVTCDVRVOFGZVSVOVIGZVRWAVSVRWAMVPVSVPVQWA
      UEWAVPUFVRWAVPVNFKVNUGVOFVNOUKPUHQVPWBVSNVQVPWBVSVPWBMZVNFVKWCVNVIKZVNFGW
      BVPWDVOVIVNOUICFULRABUJUMQUNVQWAWBHZVPVQVOVJKWEVHBVOVJUOVOFVIDVBUPRPUQURC
      DVKUSSVHBVJUTVCVKVJVAVDVKVHBVJVEVFVGS $.
  $}

  ${
    $d ph x y z $.
    onsucelsucexmid.1 $e |- A. x e. On A. y e. On
      ( x e. y -> suc x e. suc y ) $.
    $( The converse of ~ onsucelsucr implies excluded middle.  On the other
       hand, if ` y ` is constrained to be a natural number, instead of an
       arbitrary ordinal, then the converse of ~ onsucelsucr does hold, as seen
       at ~ nnsucelsuc .  (Contributed by Jim Kingdon, 2-Aug-2019.) $)
    onsucelsucexmid $p |- ( ph \/ -. ph ) $=
      ( vz c0 csuc cv wceq wo wcel wn con0 wral suceq imbi12d eleq2 ax-mp suc0
      wi csn cpr crab onsucelsucexmidlem1 0elon onsucelsucexmidlem pm3.2i eleq1
      wa eleq1d eleq2d rspc2va mp2an elsuci wb p0ex prid2 eqeltri orbi1d elrab3
      eqeq1 wne cvv 0ex nsuceq0g df-ne mpbi pm2.53 sylbi eqeq1i mtbi elsn mtbir
      mpi mtbii olc sylibr nsyl orim12i ) FGZEHZFIZAJZEFFUAZUBZUCZKZVTWFIZJZAAL
      ZJVTWFGZKZWIFWFKZWLAEUDFMKZWFMKZUIBHZCHZKZWPGZWQGZKZTZCMNBMNWMWLTZWNWOUEA
      EUFUGDXBXCFWQKZVTWTKZTBCFWFMMWPFIZWRXDXAXEWPFWQUHXFWSVTWTWPFOUJPWQWFIZXDW
      MXEWLWQWFFQXGWTWKVTWQWFOUKPULUMRVTWFUNRWGAWHWJWGVTFIZAJZAVTWEKWGXIUOVTWDW
      ESFWDUPUQZURWCXIEVTWEWAVTIWBXHAWAVTFVAUSUTRXIXHLZAVTFVBZXKFVCKXLVDFVCVERV
      TFVFVGZXHAVHVNVIWHWDWFKZAWHWDWFIZXNLVTWDWFSVJXOWDWDKZXNXPWDFIZXHXQXMVTWDF
      SVJVKWDFUPVLVMWDWFWDQVOVIAXQAJZXNAXQVPWDWEKXNXRUOXJWCXREWDWEWAWDIWBXQAWAW
      DFVAUSUTRVQVRVSR $.
  $}

  ${
    $d ph x y a b $.
    ordsucunielexmid.1 $e |- A. x e. On A. y e. On
      ( x e. U. y -> suc x e. y ) $.
    $( The converse of ~ sucunielr (where ` B ` is an ordinal) implies excluded
       middle.  (Contributed by Jim Kingdon, 2-Aug-2019.) $)
    ordsucunielexmid $p |- ( ph \/ -. ph ) $=
      ( va vb cv wcel csuc wi con0 wa cuni wb wtr wceq word eleq2d wral imbi12d
      eloni ordtr syl vex unisuc sylib adantl suceloni eleq1 suceq eleq1d unieq
      eleq2 rspc2va mpan2 sylan2 sylbird rgen2a onsucelsucexmid ) AEFEGZFGZHZUT
      IZVAIZHZJEFKUTKHZVAKHZLVBUTVDMZHZVEVGVIVBNVFVGVHVAUTVGVAOZVHVAPVGVAQVJVAU
      AVAUBUCVAFUDUEUFRUGVGVFVDKHZVIVEJZVAUHVFVKLBGZCGZMZHZVMIZVNHZJZCKSBKSVLDV
      SVLUTVOHZVCVNHZJBCUTVDKKVMUTPZVPVTVRWAVMUTVOUIWBVQVCVNVMUTUJUKTVNVDPZVTVI
      WAVEWCVOVHUTVNVDULRVNVDVCUMTUNUOUPUQURUS $.
  $}

$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  IZF Set Theory - add the Axiom of Set Induction
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The ZF Axiom of Foundation would imply Excluded Middle
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d A y z $.  $d ph x y $.
    regexmidlemm.a $e |-
      A = { x e. { (/) , { (/) } } | ( x = { (/) } \/ ( x = (/) /\ ph ) ) } $.
    $( Lemma for ~ regexmid . ` A ` is inhabited.  (Contributed by Jim Kingdon,
       3-Sep-2019.) $)
    regexmidlemm $p |- E. y y e. A $=
      ( c0 csn wcel cv wex cpr wceq wa wo p0ex prid2 eqid orci eqeq1 anbi1d
      orbi12d elrab2 mpbir2an elex2 ax-mp ) FGZDHZCIDHCJUGUFFUFKZHUFUFLZUFFLZAM
      ZNZFUFOPUIUKUFQRBIZUFLZUMFLZAMZNULBUFUHDUNUNUIUPUKUMUFUFSUNUOUJAUMUFFSTUA
      EUBUCCUFDUDUE $.

    $( Lemma for ~ regexmid .  If ` A ` has a minimal element, excluded middle
       follows.  (Contributed by Jim Kingdon, 3-Sep-2019.) $)
    regexmidlem1 $p |- ( E. y ( y e. A /\ A. z ( z e. y -> -. z e. A ) ) ->
        ( ph \/ -. ph ) ) $=
      ( cv wcel wn wi wa wo c0 wceq eqeq1 anbi1d orbi12d elrab2 0ex eleq1 eleq2
      wal csn cpr simprbi snid mpbiri notbid imbi12d spcv syl5com prid1 mpbiran
      pm2.46 sylnbi eqid biantrur sylnibr olcd syl6 orc adantl a1d jaoi syl imp
      exlimiv ) CGZEHZDGZVHHZVJEHZIZJZDUBZKAAIZLZCVIVOVQVIVHMUCZNZVHMNZAKZLZVOV
      QJZVIVHMVRUDZHWBBGZVRNZWEMNZAKZLZWBBVHWDEWEVHNZWFVSWHWAWEVHVROWJWGVTAWEVH
      MOPQFRUEVSWCWAVSVOMEHZIZVQVSMVHHZVOWLVSWMMVRHMSUFVHVRMUAUGVNWMWLJDMSVJMNZ
      VKWMVMWLVJMVHTWNVLWKVJMETUHUIUJUKWLVPAWLMMNZAKZAWKMVRNZWPLZWPIWKMWDHWRMVR
      SULWIWRBMWDEWGWFWQWHWPWEMVROWGWGWOAWEMMOPQFRUMWQWPUNUOWOAMUPUQURUSUTWAVQV
      OAVQVTAVPVAVBVCVDVEVFVG $.

    ${
      $d A v $.  $d ph u x $.  $d u v $.
      $( Lemma for ~ reg2exmid .  If ` A ` has a minimal element (expressed by
         ` C_ ` ), excluded middle follows.  (Contributed by Jim Kingdon,
         2-Oct-2021.) $)
      reg2exmidlema $p |- ( E. u e. A A. v e. A u C_ v -> ( ph \/ -. ph ) ) $=
        ( cv wss wral wo wcel wa c0 wceq 0ex sylibr olcd eqeq1 anbi1d orbi12d
        wn csn simplr sseq1 ralbidv adantl mpbid snss ralbii noel cpr eqid jctl
        wb wi prid1 jctil elrab2 eleq2 rspcv syl com12 mtoi simprr orcd simprbi
        adantr mpjaodan rexlimiva ) DGZCGZHZCEIZAAUAZJZDEVJEKZVMLZVJMUBZNZVOVJM
        NZALZVQVSLZVNAWBMVKKZCEIZVNWBVRVKHZCEIZWDWBVMWFVPVMVSUCVSVMWFUNVQVSVLWE
        CEVJVRVKUDUEUFUGWCWECEMVKOUHUIPWDAMMKZMUJAWDWGAMEKZWDWGUOAMMVRUKZKZMVRN
        ZMMNZALZJZLWHAWNWJAWMWKAWLMULUMQMVROUPUQBGZVRNZWOMNZALZJZWNBMWIEWQWPWKW
        RWMWOMVRRWQWQWLAWOMMRSTFURPWCWGCMEVKMMUSUTVAVBVCVAQVQWALAVNVQVTAVDVEVPV
        SWAJZVMVPVJWIKWTWSWTBVJWIEWOVJNZWPVSWRWAWOVJVRRXAWQVTAWOVJMRSTFURVFVGVH
        VI $.
    $}
  $}

  ${
    $d ph x y z w $.
    regexmid.1 $e |- ( E. y y e. x ->
      E. y ( y e. x /\ A. z ( z e. y -> -. z e. x ) ) ) $.
    $( The axiom of foundation implies excluded middle.

       By foundation (or regularity), we mean the principle that every
       inhabited set has an element which is minimal (when arranged by
       ` e. ` ).  The statement of foundation here is taken from Metamath Proof
       Explorer's ax-reg, and is identical (modulo one unnecessary quantifier)
       to the statement of foundation in Theorem "Foundation implies instances
       of EM" of [Crosilla], p.  "Set-theoretic principles incompatible with
       intuitionistic logic".

       For this reason, IZF does not adopt foundation as an axiom and instead
       replaces it with ~ ax-setind .  (Contributed by Jim Kingdon,
       3-Sep-2019.) $)
    regexmid $p |- ( ph \/ -. ph ) $=
      ( vw cv c0 csn wceq wa wo wcel wex wel wn wi wal eleq2 exbidv pp0ex rabex
      crab regexmidlemm notbid imbi2d albidv anbi12d imbi12d vtocl regexmidlem1
      cpr eqid mp2b ) CGZFGZHIZJUPHJAKLZFHUQULZUCZMZCNZVADCOZDGZUTMZPZQZDRZKZCN
      ZAAPLAFCUTUTUMZUDCBOZCNZVLVCDBOZPZQZDRZKZCNZQVBVJQBUTURFUSUAUBBGZUTJZVMVB
      VSVJWAVLVACVTUTUOSZTWAVRVICWAVLVAVQVHWBWAVPVGDWAVOVFVCWAVNVEVTUTVDSUEUFUG
      UHTUIEUJAFCDUTVKUKUN $.
  $}

  ${
    $d ph u w z $.  $d ph u x z $.  $d ph u y z $.  $d x y $.
    reg2exmid.1 $e |- A. z ( E. w w e. z -> E. x e. z A. y e. z x C_ y ) $.
    $( If any inhabited set has a minimal element (when expressed by ` C_ ` ),
       excluded middle follows.  (Contributed by Jim Kingdon, 2-Oct-2021.) $)
    reg2exmid $p |- ( ph \/ -. ph ) $=
      ( vu cv wss c0 csn wceq wa wo wral wrex wcel wex wi ax-mp wn regexmidlemm
      cpr crab eqid wal pp0ex rabex eleq2 exbidv raleq rexeqbi1dv reg2exmidlema
      imbi12d spcv ) BHCHIZCGHZJKZLUQJLAMNZGJURUCZUDZOZBVAPZAAUANEHZVAQZERZVCAG
      EVAVAUEZUBVDDHZQZERZUPCVHOZBVHPZSZDUFVFVCSZFVMVNDVAUSGUTUGUHVHVALZVJVFVLV
      CVOVIVEEVHVAVDUIUJVKVBBVHVAUPCVHVAUKULUNUOTTAGCBVAVGUMT $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Introduce the Axiom of Set Induction
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d y a $.  $d ph y $.
    $( Axiom of ` e. `-Induction (also known as set induction).  An axiom of
       Intuitionistic Zermelo-Fraenkel set theory.  Axiom 9 of [Crosilla] p.
       "Axioms of CZF and IZF".  This replaces the Axiom of Foundation (also
       called Regularity) from Zermelo-Fraenkel set theory.

       For more on axioms which might be adopted which are incompatible with
       this axiom (that is, Non-wellfounded Set Theory but in the absence of
       excluded middle), see Chapter 20 of [AczelRathjen], p. 183.
       (Contributed by Jim Kingdon, 19-Oct-2018.) $)
    ax-setind $a |- ( A. a ( A. y e. a [ y / a ] ph -> ph ) -> A. a ph ) $.
  $}

  ${
    $d x y S $.
    $( ` e. `-Induction in terms of membership in a class.  (Contributed by
       Mario Carneiro and Jim Kingdon, 22-Oct-2018.) $)
    setindel $p |- ( A. x ( A. y ( y e. x -> y e. S ) -> x e. S ) ->
        S = _V ) $=
      ( cv wcel wi wal cvv wceq wsb wral clelsb3 ralbii df-ral imbi1i ax-setind
      bitri albii sylbir eqv sylibr ) BDZADZEUBCEZFBGZUCCEZFZAGZUFAGZCHIUHUFABJ
      ZBUCKZUFFZAGUIULUGAUKUEUFUKUDBUCKUEUJUDBUCBACLMUDBUCNQORUFBAPSACTUA $.
  $}

  ${
    $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 wceq dfss2 imbi1i albii setindel sylbi ) ADZB
      EZPBFZGZAHCDZPFTBFGCHZRGZAHBIJSUBAQUARCPBKLMACBNO $.
  $}

  ${
    $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 $.
  $}

  ${
    $d A x y $.
    $( No class is a member of itself.  Exercise 6 of [TakeutiZaring] p. 22.

       The reason that this theorem is marked as discouraged is a bit subtle.
       If we wanted to reduce usage of ~ ax-setind , we could redefine
       ` Ord A ` ( ~ df-iord ) to also require ` _E Fr A ` ( ~ df-frind ) and
       in that case any theorem related to irreflexivity of ordinals could use
       ~ ordirr (which under that definition would presumably not need
       ~ ax-setind to prove it).  But since ordinals have not yet been defined
       that way, we cannot rely on the "don't add additional axiom use" feature
       of the minimizer to get theorems to use ~ ordirr .  To encourage
       ~ ordirr when possible, we mark this theorem as discouraged.

       (Contributed by NM, 7-Aug-1994.)  (Proof rewritten by Mario Carneiro and
       Jim Kingdon, 26-Nov-2018.)  (New usage is discouraged.) $)
    elirr $p |- -. A e. A $=
      ( vx vy wcel cvv csn cdif cv wal wsb wral wi wn neldifsnd eleq1 spcgv mpd
      wceq sylibr albii wa w3a simp1 imbi12d pm2.43b 3ad2ant2 wb eleq2 3ad2ant3
      imbi1d mpbid 3expia mtod vex eldif mpbiran xchbinx alrimiv df-ral clelsb3
      velsn ex imbi2i bitri imbi1i ax-setind syl pm2.65i ) AADZAEAFZGZDZVIBHZVK
      DZBIZVLVIVNBCJZCVMKZVNLZBIZVOVICHZVMDZVTVKDZLZCIZVNLZBIVSVIWEBVIWDVNVIWDU
      AZVMARZMVNWFWGVLWFAENVIWDWGVLVIWDWGUBZVIVLVIWDWGUCWHAVMDZVLLZVIVLLZWDVIWJ
      WGWDWIVLWCWJCAVMVTARWAWIWBVLVTAVMOVTAVKOUDPUEUFWGVIWJWKUGWDWGWIVIVLVMAAUH
      UJUIUKQULUMVNVMVJDZWGVNVMEDWLMBUNVMEVJUOUPBAVAUQSVBURVRWEBVQWDVNVQWAVPLZC
      IWDVPCVMUSWMWCCVPWBWACBVKUTVCTVDVETSVNCBVFVGVNVLBAAVMAVKOPQVIAENVH $.
  $}

  $( Epsilon irreflexivity of ordinals: no ordinal class is a member of itself.
     Theorem 2.2(i) of [BellMachover] p. 469, generalized to classes.  The
     present proof requires ~ ax-setind .  If in the definition of ordinals
     ~ df-iord , we also required that membership be well-founded on any
     ordinal (see ~ df-frind ), then we could prove ~ ordirr without
     ~ ax-setind .  (Contributed by NM, 2-Jan-1994.) $)
  ordirr $p |- ( Ord A -> -. A e. A ) $=
    ( wcel wn word elirr a1i ) AABCADAEF $.

  ${
    onirri.1 $e |- A e. On $.
    $( 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 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 $.

  $( 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 $.

  $( 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 $.

  $( The membership relation is irreflexive: no set is a member of itself.
     Theorem 105 of [Suppes] p. 54.  (Contributed by NM, 19-Aug-1993.) $)
  elirrv $p |- -. x e. x $=
    ( cv elirr ) ABC $.

  ${
    $d A x $.
    $( A class is equal to its successor iff it is a proper class (assuming the
       Axiom of Set Induction).  (Contributed by NM, 9-Jul-2004.) $)
    sucprcreg $p |- ( -. A e. _V <-> suc A = A ) $=
      ( vx cvv wcel wn csuc sucprc cv wi wal elirr nfv eleq1 ceqsalg mtbiri csn
      wceq velsn wss syl5bir wo olc cun elun ssid wb df-suc eqeq1i sseq1 mpbiri
      sylbi sseld syl5 alrimiv nsyl3 impbii ) ACDZEAFZAQZAGUQBHZAQZUTADZIZBJZUS
      UQVDAADZAKVBVEBACVEBLUTAAMNOUSVCBVAUTAPZDZUSVBBARVGVBVGUAZUSVBVGVBUBVHUTA
      VFUCZDUSVBUTAVFUDUSVIAUTUSVIASZAASZAUEUSVIAQVJVKUFURVIAAUGUHVIAAUIUKUJULT
      UMTUNUOUP $.
  $}

  $( 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 Russell's Paradox ~ ru , simplified using (indirectly)
     the Axiom of Set Induction ~ ax-setind .  (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 wcel wn vprc df-nel mpbir wceq wb ruv neleq1 ax-mp ) ABZP
    CADZECZEECZSEEFGHEEIJQEKRSLAMQEENOJ $.

  $( No set contains all ordinal numbers.  Proposition 7.13 of [TakeutiZaring]
     p. 38.  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 $.

  $( 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 $.

  ${
    $d A x y $.  $d B x y $.
    $( No class has 2-cycle membership loops.  Theorem 7X(b) of [Enderton]
       p. 206.  (Contributed by NM, 16-Oct-1996.)  (Proof rewritten by Mario
       Carneiro and Jim Kingdon, 27-Nov-2018.) $)
    en2lp $p |- -. ( A e. B /\ B e. A ) $=
      ( vx vy wcel wa cvv cv wal wi wceq wn elex eldif pm3.4 eleq1 spcgv adantr
      syl mpd cpr cdif wsb wral wo prid2g sylbi com12 mt2d ad2antlr w3a imbi12d
      simp1r pm2.43b 3ad2ant2 wb eleq2 imbi1d 3ad2ant3 mpbid 3expia mtod prid1g
      simp1l sylanbrc vex mpbiran elpr xchbinx sylibr ex alrimiv df-ral clelsb3
      ioran imbi2i albii bitri imbi1i ax-setind pm2.65i ) ABEZBAEZFZAGABUAZUBZE
      ZWDCHZWFEZCIZWGWDWICDUCZDWHUDZWIJZCIZWJWDDHZWHEZWOWFEZJZDIZWIJZCIWNWDWTCW
      DWSWIWDWSFZWHAKZWHBKZUEZLZWIXAXBLXCLXEXAXBBWFEZWCXFLZWBWSWCBGEZXGBAMXHXFB
      WEEZABGUFXFXHXILZXFXHXJFXHXJJBGWENXHXJOUGUHUISUJWDWSXBXFWDWSXBUKZWCXFWBWC
      WSXBUMXKBWHEZXFJZWCXFJZWSWDXMXBWSXLXFWRXMDBWHWOBKWPXLWQXFWOBWHPWOBWFPULQU
      NUOXBWDXMXNUPWSXBXLWCXFWHABUQURUSUTTVAVBXAXCWGWDWGLZWSWBXOWCWBAGEZXOABMXP
      WGAWEEZABGVCWGXPXQLZWGXPXRFXPXRJAGWENXPXROUGUHUISRZRWDWSXCWGWDWSXCUKZWBWG
      WBWCWSXCVDXTAWHEZWGJZWBWGJZWSWDYBXCWSYAWGWRYBDAWHWOAKWPYAWQWGWOAWHPWOAWFP
      ULQUNUOXCWDYBYCUPWSXCYAWBWGWHBAUQURUSUTTVAVBXBXCVOVEWIWHWEEZXDWIWHGEYDLCV
      FZWHGWENVGWHABYEVHVIVJVKVLWMWTCWLWSWIWLWPWKJZDIWSWKDWHVMYFWRDWKWQWPDCWFVN
      VPVQVRVSVQVJWIDCVTSWBWJWGJWCWIWGCABWHAWFPQRTXSWA $.
  $}

  ${
    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 ) ) $=
      ( wcel wa cpr wceq wn en2lp eleq12 anbi1d mtbiri con2i adantr wo preq12b
      biimpi adantl ecased ) ABIZCDIZJZABKCDKLZJACLBDLJZADLBCLJZUGUJMUHUJUGUJUG
      DCIZUFJDCNUJUEUKUFADBCOPQRSUHUIUJTZUGUHULABCDEFGHUAUBUCUD $.

    $( Theorem for alternate representation of ordered pairs, requiring the
       Axiom of Set Induction ~ ax-setind (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 cvv prexg mp2an preleq mpanl12 preq1 eqeq1d syl
      preqr2 syl6bi imdistani adantr preq12 preq2d eqtrd impbii ) AABIZIZCCDIZI
      ZJZACJZBDJZKZUNUOUJULJZKZUQAUJLCULLUNUSABEMCDGMAUJCULEANLBNLUJNLEFABNNOPG
      CNLDNLULNLGHCDNNOPQRUOURUPUOURCBIZULJUPUOUJUTULACBSTBDCFHUBUCUDUAUQUKCUJI
      ZUMUOUKVAJUPACUJSUEUQUJULCABCDUFUGUHUI $.
  $}

  $( The successor operation behaves like a one-to-one function (assuming the
     Axiom of Set Induction).  Similar to Exercise 35 of [Enderton] p. 208 and
     its converse.  (Contributed by NM, 25-Oct-2003.) $)
  suc11g $p |- ( ( A e. V /\ B e. W ) -> ( suc A = suc B <-> A = B ) ) $=
    ( wcel wa csuc wceq w3a wn en2lp wo sucidg syl5ibrcom elsucg sylibd 3adant1
    eleq2 imp syl5ibcom 3adant2 jca eqcom orbi2i anbi1i sylib sylibr ord 3expia
    ordir mpi suceq impbid1 ) ACEZBDEZFAGZBGZHZABHZUNUOURUSUNUOURIZBAEZABEZFZJU
    SBAKUTVCUSUTVAUSLZVBUSLZFZVCUSLUTVABAHZLZVEFVFUTVHVEUOURVHUNUOURVHUOURBUPEZ
    VHUOVIURBUQEBDMUPUQBRNBADOPSQUNURVEUOUNURVEUNURAUQEZVEUNAUPEURVJACMUPUQARTA
    BCOPSUAUBVHVDVEVGUSVABAUCUDUEUFVAVBUSUJUGUHUKUIABULUM $.

  $( 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 suc11g ) ABCCD $.

  ${
    $d x y $.
    $( At least two sets exist (or in terms of first-order logic, the universe
       of discourse has two or more objects).  Although ~ dtruarb can also be
       summarized as "at least two sets exist", the difference is that
       ~ dtruarb shows the existence of two sets which are not equal to each
       other, but this theorem says that given a specific ` y ` , we can
       construct a set ` x ` which does not equal it.  (Contributed by Jim
       Kingdon, 29-Dec-2018.) $)
    dtruex $p |- E. x -. x = y $=
      ( cv wceq wn wex csn vex snex isseti wa wcel elirrv vsnid mpbiri mto eqtr
      eleq2 ancom mtbi imnani eximii equcom notbii exbii mpbi ) BCZACZDZEZAFUHU
      GDZEZAFUHUGGZDZUJAAUMUGBHIJUNUIUIUNKZUNUIKUOUGUMDZUPUGUGLZBMUPUQUGUMLBNUG
      UMUGROPUGUHUMQPUIUNSTUAUBUJULAUIUKBAUCUDUEUF $.
  $}

  ${
    $d x y $.
    $( At least two sets exist (or in terms of first-order logic, the universe
       of discourse has two or more objects).  If we assumed the law of the
       excluded middle this would be equivalent to ~ dtruex .  (Contributed by
       Jim Kingdon, 29-Dec-2018.) $)
    dtru $p |- -. A. x x = y $=
      ( weq wn wex wal dtruex exnalim ax-mp ) ABCZDAEJAFDABGJAHI $.
  $}

  ${
    $d x y $.  $d y ph $.
    $( Existential uniqueness implies there is a value for which the wff
       argument is false.  (Contributed by Jim Kingdon, 29-Dec-2018.) $)
    eunex $p |- ( E! x ph -> E. x -. ph ) $=
      ( vy weu wex cv wceq wi wal wa wn nfv eu3 dtruex nfa1 con3d eximd exlimiv
      sp mpi adantl sylbi ) ABDABEZABFCFGZHZBIZCEZJAKZBEZABCACLMUGUIUCUFUICUFUD
      KZBEUIBCNUFUJUHBUEBOUFAUDUEBSPQTRUAUB $.
  $}

  ${
    $d x y z w ph $.
    ordsoexmid.1 $e |- _E Or On $.
    $( Weak linearity of ordinals implies the law of the excluded middle (that
       is, decidability of an arbitrary proposition).  (Contributed by Mario
       Carneiro and Jim Kingdon, 29-Jan-2019.) $)
    ordsoexmid $p |- ( ph \/ -. ph ) $=
      ( vw vx vy vz wo c0 wcel con0 wi cv w3a wceq eleq1 imbi12d eleq2 cep wral
      wbr wn csn crab csuc ordtriexmidlem elexi sucid onsuci suc0 0elon 3anbi1d
      eqeltrri orbi1d 3anbi2d orbi2d p0ex 3anbi3d orbi12d imbi2d wpo wor df-iso
      wa mpbi simpri epel orbi12i imbi12i 2ralbii ralbii rspec3 ordtriexmidlem2
      vtocl mp3an sylbi elirr elrabi mto elsuci ord mpi 0ex biidd rabsnt eqcoms
      elsn syl orim12i mp2b orcom ) AUAZAGZAWKGACHUBZUCZWNUDZIZWNWMIZWMWOIZGZWL
      WNWNJACUEZUFZUGWNJIZWOJIZWMJIZWPWSKZWTWNWTUHZHUDWMJUIHUJUHULDLZJIZXCXDMZX
      GWOIZXGWMIZWRGZKZKZXBXCXDMZXEKDWNXAXGWNNZXIXOXMXEXPXHXBXCXDXGWNJOUKXPXJWP
      XLWSXGWNWOOXPXKWQWRXGWNWMOUMPPXHELZJIZXDMZXGXQIZXKWMXQIZGZKZKZXNEWOWOJXFU
      FXQWONZXSXIYCXMYEXRXCXHXDXQWOJOUNYEXTXJYBXLXQWOXGQYEYAWRXKXQWOWMQUOPPXHXR
      FLZJIZMZXTXGYFIZYFXQIZGZKZKYDFWMUPYFWMNZYHXSYLYCYMYGXDXHXRYFWMJOUQYMYKYBX
      TYMYIXKYJYAYFWMXGQYFWMXQOURUSPYLDEFJJJXGXQRTZXGYFRTZYFXQRTZGZKZFJSEJSZDJS
      ZYLFJSEJSZDJSJRUTZYTJRVAUUBYTVCBDEFJRVBVDVEYSUUADJYRYLEFJJYNXTYQYKDEVFYOY
      IYPYJDFVFFEVFVGVHVIVJVDVKVMVMVMVNWQWKWRAWQWNHNWKWNHXAWFACVLVOWRWMWNNZAWRW
      MWNIZUAUUCUUDWMWMIWMVPACWMWMVQVRWRUUDUUCWMWNVSVTWAAWNWMAACWMHWBCLHNAWCWDW
      EWGWHWIWKAWJVD $.
  $}

  ${
    $d A x y $.
    $( The successor of an ordinal class is ordinal.  (Contributed by NM,
       3-Apr-1995.)  (Constructive proof by Mario Carneiro and Jim Kingdon,
       20-Jul-2019.) $)
    ordsuc $p |- ( Ord A <-> Ord suc A ) $=
      ( vy vx word csuc ordsucim wtr cv wcel wa wi wal wceq en2lp eleq1 biimpac
      wn anim2i expr wss mtoi adantl elelsuc adantr ordelss sylan2 pm2.43d impr
      wo sseld elsuci syl ecased ancom2s alrimivv sylibr sssucid trssord mp3an2
      ex dftr2 mpancom impbii ) ADZAEZDZAFAGZVFVDVFBHZCHZIZVIAIZJZVHAIZKZCLBLVG
      VFVNBCVFVLVMVFVKVJVMVFVKVJJZJZVMVHAMZVOVQQVFVOVQVKAVIIZJZVIANVKVJVQVSVJVQ
      JVRVKVQVJVRVHAVIOPRSUAUBVPVHVEIZVMVQUIVFVKVJVTVFVKJVJVTVFVKVJVJVTKVPVIVEV
      HVOVFVIVEIZVIVETVKWAVJVIAUCUDVEVIUEUFUJSUGUHVHAUKULUMUNUTUOBCAVAUPVGAVETV
      FVDAUQAVEURUSVBVC $.
  $}

  $( 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 wa cuni eleq1 biimpac sucelon wtr eloni ordtr unisucg
    word syl mpbid suceq sylbir eqtr4d unieqd eqeq12d syl5ibr anabsi7 adantr
    unieq eqtrd ) ACDZABEZFZGZAHZEZAEZHZAUIUKUNUPFZULUQUKUJHZEZUJEZHZFZULUJCDZV
    BUKUIVCAUJCIJVCUSUJVAVCBCDZUSUJFZBKVDURBFZVEVDBLZVFVDBPVGBMBNQBCORURBSQTVCU
    JLZVAUJFVCUJPVHUJMUJNQUJCORUAQUKUNUSUPVAUKUMURFUNUSFAUJUGUMURSQUKUOUTAUJSUB
    UCUDUEUIUPAFZUKUIALZVIUIAPVJAMANQACORUFUH $.

  ${
    $d ph x y $.
    0elsucexmid.1 $e |- A. x e. On (/) e. suc x $.
    $( If the successor of any ordinal class contains the empty set, excluded
       middle follows.  (Contributed by Jim Kingdon, 3-Sep-2021.) $)
    0elsucexmid $p |- ( ph \/ -. ph ) $=
      ( vy c0 csn crab wcel wceq wo wn csuc con0 cv ordtriexmidlem suceq eleq2d
      wral 0ex ax-mp rspcv mp2 elsuc mpbi wb snid elrab3 biimpi ordtriexmidlem2
      biidd eqcoms orim12i ) EADEFZGZHZEUNIZJZAAKZJEUNLZHZUQUNMHEBNZLZHZBMRUTAD
      OCVCUTBUNMVAUNIVBUSEVAUNPQUAUBEUNSUCUDUOAUPURUOAEUMHUOAUEESUFAADEUMDNEIAU
      JUGTUHURUNEADUIUKULT $.
  $}

  $( 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 ) $=
    ( wcel csuc wlim wn word cuni wceq wa limord ordsuc sylibr limuni jca ordtr
    wtr unisucg biimpa sylan2 eqeq2d ordirr eleq2 notbid syl5ibrcom sucidg syl6
    wi con3i adantl sylbid expimpd syl5 con2d pm2.43i ) ABCZADZEZFUPURUPURAGZUQ
    UQHZIZJUPUPFZURUSVAURUQGUSUQKALMUQNOUPUSVAVBUPUSJZVAUQAIZVBVCUTAUQUSUPAQZUT
    AIZAPUPVEVFABRSTUAUSVDVBUHUPUSVDAUQCZFZVBUSVHVDAACZFAUBVDVGVIUQAAUCUDUEUPVG
    ABUFUIUGUJUKULUMUNUO $.

  ${
    $d x A $.
    $( The collection of ordinals in the power class of an ordinal is a
       superset of its successor.

       We can think of ` ( ~P A i^i On ) ` as another possible definition of
       successor, which would be equivalent to ~ df-suc given excluded middle.
       It is an ordinal, and has some successor-like properties.  For example,
       if ` A e. On ` then both ` U. suc A = A ` ( ~ onunisuci ) and
       ` U. { x e. On | x C_ A } = A ` ( ~ onuniss2 ).

       Constructively ` ( ~P A i^i On ) ` and ` suc A ` cannot be shown to be
       equivalent (as proved at ~ ordpwsucexmid ).  (Contributed by Jim
       Kingdon, 21-Jul-2019.) $)
    ordpwsucss $p |- ( Ord A -> suc A C_ ( ~P A i^i On ) ) $=
      ( vx word csuc cpw con0 cin cv wcel wss wa wi ordsuc ordelon ex sylbi wtr
      ordtr trsucss syl jcad elin selpw anbi2ci bitri syl6ibr ssrdv ) ACZBADZAE
      ZFGZUHBHZUIIZULFIZULAJZKZULUKIZUHUMUNUOUHUICZUMUNLAMURUMUNUIULNOPUHAQUMUO
      LARAULSTUAUQULUJIZUNKUPULUJFUBUSUOUNBAUCUDUEUFUG $.
  $}

  $( No member of a set of ordinal numbers belongs to its minimum.
     (Contributed by NM, 2-Feb-1997.)  (Constructive proof by Mario Carneiro
     and Jim Kingdon, 21-Jul-2019.) $)
  onnmin $p |- ( ( A C_ On /\ B e. A ) -> -. B e. |^| A ) $=
    ( wcel cint wn con0 wss intss1 elirr ssel mtoi syl adantl ) BACZBADZCZEZAFG
    NOBGZQBAHRPBBCBIOBBJKLM $.

  $( Relationship between subset and elementhood.  In the context of ordinals
     this can be seen as an ordering law.  (Contributed by Jim Kingdon,
     22-Jul-2019.) $)
  ssnel $p |- ( A C_ B -> -. B e. A ) $=
    ( wss wcel elirr ssel mtoi ) ABCBADBBDBEABBFG $.

  ${
    $d ph x z $.
    ordpwsucexmid.1 $e |- A. x e. On suc x = ( ~P x i^i On ) $.
    $( The subset in ~ ordpwsucss cannot be equality.  That is, strengthening
       it to equality implies excluded middle.  (Contributed by Jim Kingdon,
       30-Jul-2019.) $)
    ordpwsucexmid $p |- ( ph \/ -. ph ) $=
      ( vz c0 csn crab wcel wceq wo wn csuc cpw con0 cin 0elpw 0elon elin ax-mp
      cv mpbir2an ordtriexmidlem pweq ineq1d eqeq12d vtoclri eleqtrri elsuci wb
      suceq 0ex snid biidd elrab3 biimpi ordtriexmidlem2 eqcoms orim12i ) EADEF
      ZGZHZEUTIZJZAAKZJEUTLZHVCEUTMZNOZVEEVGHEVFHENHUTPQEVFNRUAUTNHVEVGIZADUBBT
      ZLZVIMZNOZIVHBUTNVIUTIZVJVEVLVGVIUTUJVMVKVFNVIUTUCUDUECUFSUGEUTUHSVAAVBVD
      VAAEUSHVAAUIEUKULAADEUSDTEIAUMUNSUOVDUTEADUPUQURS $.
  $}

  ${
    $d ph x y z $.
    ordtri2or2exmid.1 $e |- A. x e. On A. y e. On ( x C_ y \/ y C_ x ) $.
    $( Ordinal trichotomy implies excluded middle.  (Contributed by Jim
       Kingdon, 29-Aug-2021.) $)
    ordtri2or2exmid $p |- ( ph \/ -. ph ) $=
      ( vz wo c0 wss cv con0 wral wcel 0elon sseq1 sseq2 orbi12d ax-mp wb biidd
      wceq wn csn cpr crab ordtri2or2exmidlem csuc suc0 onsuci eqeltrri rspc2va
      mpanl12 elirr wa simpl simpr p0ex prid2 elrab3 sylibr sseldd ex snssg 0ex
      mtoi prid1 biimpi sylbir orim12i orcom mpbi ) AUAZAFZAVKFAEGGUBZUCZUDZVMH
      ZVMVOHZFZVLBIZCIZHZVTVSHZFZCJKBJKZVRDVOJLVMJLWDVRAEUEGUFVMJUGGMUHUIWCVRVO
      VTHZVTVOHZFBCVOVMJJVSVOTWAWEWBWFVSVOVTNVSVOVTOPVTVMTWEVPWFVQVTVMVOOVTVMVO
      NPUJUKQVPVKVQAVPAVMVMLZVMULVPAWGVPAUMZVOVMVMVPAUNWHAVMVOLZVPAUOVMVNLWIARG
      VMUPUQAAEVMVNEIZVMTASURQUSUTVAVDVQGVOLZAGJLWKVQRMGVOJVBQWKAGVNLWKARGVMVCV
      EAAEGVNWJGTASURQVFVGVHQVKAVIVJ $.
  $}

  ${
    $d ph u v $.  $d x y u v $.
    onintexmid.onint $e |- ( ( y C_ On /\ E. x x e. y ) -> |^| y e. y ) $.
    $( If the intersection (infimum) of an inhabited class of ordinal numbers
       belongs to the class, excluded middle follows.  The hypothesis would be
       provable given excluded middle.  (Contributed by Mario Carneiro and Jim
       Kingdon, 29-Aug-2021.) $)
    onintexmid $p |- ( ph \/ -. ph ) $=
      ( vu vv cv wss wo con0 wcel wa cint wceq wex wi cin eqeq1i dfss1 vex prmg
      cpr prssi adantr zfpair2 sseq1 eleq2 exbidv anbi12d inteq eleq12d imbi12d
      vtocl syl2anc elpri syl incom intpr 3bitr4ri bitr4i sylib ordtri2or2exmid
      id orbi12i rgen2a ) AEFEGZFGZHZVGVFHZIZEFJVFJKZVGJKZLZVFVGUBZMZVFNZVOVGNZ
      IZVJVMVOVNKZVRVMVNJHZBGZVNKZBOZVSVFVGJUCVKWCVLBVFVGJUAUDCGZJHZWAWDKZBOZLZ
      WDMZWDKZPVTWCLZVSPCVNEFUEWDVNNZWHWKWJVSWLWEVTWGWCWDVNJUFWLWFWBBWDVNWAUGUH
      UIWLWIVOWDVNWDVNUJWLVCUKULDUMUNVOVFVGUOUPVPVHVQVIVGVFQZVFNVFVGQZVFNVHVPWM
      WNVFVGVFUQRVFVGSVOWNVFVFVGETFTURZRUSVQWNVGNVIVOWNVGWORVGVFSUTVDVAVEVB $.
  $}

  ${
    $d A s x y $.
    $( The epsilon relation is well-founded on any class.  (Contributed by NM,
       26-Nov-1995.) $)
    zfregfr $p |- _E Fr A $=
      ( vs vy vx cep wfr cv wfrfor df-frind wel wi wral wcel wsb bitr4i clelsb3
      wal bitri ralbii imbi1i wbr bi2.04 albii df-ral sbim imbi12i ralcom3 epel
      wss ax-setind dfss2 sylibr sylbir df-frfor mpbir mpgbir ) AEFAEBGZHZBAEBI
      URCGZDGZEUAZCBJZKZCALZDBJZKZDALZAUQUIZKVGUTAMZVEKZDCNZCUTLZVJKZDQZVHVNVLV
      EKZDALZVGVNVIVOKZDQVPVMVQDVLVIVEUBUCVODAUDOVOVFDAVLVDVEVLCDJZVBKZCALZVDVL
      USAMZVBKZCUTLVTVKWBCUTVKVIDCNZVEDCNZKWBVIVEDCUEWCWAWDVBCDAPCDUQPUFRSVBCUT
      AUGRVCVSCAVAVRVBCDUHTSOTSRVNVJDQVHVJCDUJDAUQUKULUMDCAEUQUNUOUP $.
  $}

  $( Epsilon is well-founded on an ordinal class.  (Contributed by NM,
     22-Apr-1994.) $)
  ordfr $p |- ( Ord A -> _E Fr A ) $=
    ( cep wfr word zfregfr a1i ) ABCADAEF $.

  ${
    $d A x y z $.
    $( 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 ) $=
      ( vx vy vz word cep wfr cv wbr wa wi wral wwe wcel w3a ordelord 3ad2antr3
      ordfr wel epel ordtr1 anbi12i 3imtr4g syl ralrimivvva df-wetr sylanbrc )
      AEZAFGBHZCHZFIZUJDHZFIZJZUIULFIZKZDALCALBALAFMARUHUPBCDAAAUHUIANZUJANZULA
      NZOJULEZUPUHUQUSUTURAULPQUTBCSZCDSZJBDSUNUOUIUJULUAUKVAUMVBBCTCDTUBBDTUCU
      DUEBCDAFUFUG $.
  $}

  ${
    $d A a b $.  $d A z $.  $d B a b $.  $d B z $.  $d C b $.  $d C z $.
    $d R a b $.  $d R z $.
    wetriext.we $e |- ( ph -> R We A ) $.
    wetriext.a $e |- ( ph -> A e. V ) $.
    wetriext.tri $e |- ( ph ->
      A. a e. A A. b e. A ( a R b \/ a = b \/ b R a ) ) $.
    wetriext.b $e |- ( ph -> B e. A ) $.
    wetriext.c $e |- ( ph -> C e. A ) $.
    wetriext.ext $e |- ( ph -> A. z e. A ( z R B <-> z R C ) ) $.
    $( A trichotomous well-order is extensional.  (Contributed by Jim Kingdon,
       26-Sep-2021.) $)
    wetriext $p |- ( ph -> B = C ) $=
      ( wbr wceq wcel cv breq1 wa wb wral bibi12d rspcv sylc biimpar wn wfr wwe
      syl frirrg syl3anc adantr pm2.21dd simpr biimpa w3o eqeq1 breq2 3orbi123d
      wefr wi eqeq2 rspc2v syl2anc mpd mpjao3dan ) ADEFPZDEQZVJEDFPZAVIUADDFPZV
      JAVLVIADCRZBSZDFPZVNEFPZUBZBCUCZVLVIUBZMOVQVSBDCVNDQVOVLVPVIVNDDFTVNDEFTU
      DUEUFUGAVLUHZVIACFUIZCGRZVMVTACFUJWAJCFVBUKZKMCDFGULUMUNUOAVJUPAVKUAEEFPZ
      VJAVKWDAECRZVRVKWDUBZNOVQWFBECVNEQVOVKVPWDVNEDFTVNEEFTUDUEUFUQAWDUHZVKAWA
      WBWEWGWCKNCEFGULUMUNUOAHSZISZFPZWHWIQZWIWHFPZURZICUCHCUCZVIVJVKURZLAVMWEW
      NWOVCMNWMWODWIFPZDWIQZWIDFPZURHIDECCWHDQWJWPWKWQWLWRWHDWIFTWHDWIUSWHDWIFU
      TVAWIEQWPVIWQVJWRVKWIEDFUTWIEDVDWIEDFTVAVEVFVGVH $.
  $}

  ${
    $d A x y z $.  $d B x y z $.
    $( A subset of a set well-ordered by set membership is well-ordered by set
       membership.  (Contributed by Jim Kingdon, 30-Sep-2021.) $)
    wessep $p |- ( ( _E We A /\ B C_ A ) -> _E We B ) $=
      ( vx vy vz cep wwe wss wa cv wbr wral wcel w3a ssel 3anim123d adantl epel
      wi wel wetrep adantlr anbi12i 3imtr4g syl ralrimivvva wfr zfregfr df-wetr
      imdistani mpbiran sylibr ) AFGZBAHZIZCJZDJZFKZUQEJZFKZIZUPUSFKZSZEBLDBLCB
      LZBFGZUOVCCDEBBBUOUPBMZUQBMZUSBMZNZIUOUPAMZUQAMZUSAMZNZIZVCUOVIVMUNVIVMSU
      MUNVFVJVGVKVHVLBAUPOBAUQOBAUSOPQUJVNCDTZDETZIZCETZVAVBUMVMVQVRSUNCDEAUAUB
      URVOUTVPCDRDERUCCERUDUEUFVEBFUGVDBUHCDEBFUIUKUL $.
  $}

  ${
    $d A a b c $.  $d b c x $.  $d ph x $.
    reg3exmidlemwe.a $e |-
      A = { x e. { (/) , { (/) } } | ( x = { (/) } \/ ( x = (/) /\ ph ) ) } $.
    $( Lemma for ~ reg3exmid .  Our counterexample ` A ` satisfies ` We ` .
       (Contributed by Jim Kingdon, 3-Oct-2021.) $)
    reg3exmidlemwe $p |- _E We A $=
      ( va vb vc cep cv wbr wa wral wcel epel c0 wceq noel eleq2 wo adantr crab
      wwe wfr wi zfregfr w3a anbi12i simpr csn elirr simprr mtbiri simprl nsyl3
      wn cpr elrabi eleq2s elpri syl orcomd 3ad2ant2 ecased elpr sylib 3ad2ant3
      vex 3eltr3d ex mtoi pm2.21dd sylan2b rgen3 df-wetr mpbir2an ) CHUBCHUCEIZ
      FIZHJZVQGIZHJZKZVPVSHJZUDZGCLFCLECLCUEWCEFGCCCVPCMZVQCMZVSCMZUFZWAWBWAWGV
      PVQMZVQVSMZKZWBVRWHVTWIEFNFGNUGWGWJKZWJWBWGWJUHWGWJUOWJWGWJOUIZWLMZWLUJWG
      WJWMWKVQVSWLWLWGWHWIUKZWKVQWLPZVQOPZWPWHWKWPWHVPOMVPQVQOVPRULWGWHWIUMUNWG
      WOWPSZWJWEWDWQWFWEWPWOWEVQOWLUPZMZWPWOSWSVQBIZWLPWTOPAKSZBWRUAZCXABVQWRUQ
      DURVQOWLUSUTVAVBTVCWKVSWLPZVSOPZXDWIWKXDWIVQOMVQQVSOVQRULWNUNWGXCXDSZWJWF
      WDXEWEWFXDXCWFVSWRMZXDXCSXFVSXBCXABVSWRUQDURVSOWLGVGVDVEVAVFTVCVHVIVJTVKV
      LVIVMEFGCHVNVO $.
  $}

  ${
    $d ph u w z $.  $d ph u x y z $.
    reg3exmid.1 $e |- ( ( _E We z /\ E. w w e. z ) ->
        E. x e. z A. y e. z x C_ y ) $.
    $( If any inhabited set satisfying ~ df-wetr for ` _E ` has a minimal
       element, excluded middle follows.  (Contributed by Jim Kingdon,
       3-Oct-2021.) $)
    reg3exmid $p |- ( ph \/ -. ph ) $=
      ( vu cv c0 csn wceq wa wo wcel wex wral wrex cep wwe wi cpr crab wss eqid
      wn regexmidlemm reg3exmidlemwe pp0ex rabex weeq2 eleq2 anbi12d rexeqbi1dv
      exbidv raleq imbi12d vtocl mpan reg2exmidlema mp2b ) EHZGHZIJZKVBIKALMZGI
      VCUAZUBZNZEOZBHCHUCZCVFPZBVFQZAAUEMAGEVFVFUDZUFVFRSZVHVKAGVFVLUGDHZRSZVAV
      NNZEOZLZVICVNPZBVNQZTVMVHLZVKTDVFVDGVEUHUIVNVFKZVRWAVTVKWBVOVMVQVHVNVFRUJ
      WBVPVGEVNVFVAUKUNULVSVJBVNVFVICVNVFUOUMUPFUQURAGCBVFVLUSUT $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Transfinite induction
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y 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 ` .

       (Contributed by NM, 18-Feb-2004.) $)
    tfi $p |- ( ( A C_ On /\ A. x e. On ( x C_ A -> x e. A ) ) -> A = On ) $=
      ( vy con0 wss cv wcel wi wral wa wal df-ral albii bitri imbi1i spi imim1i
      dfss2 impexp wsb wceq imdi imbi2i 19.21v bitr4i simpl wtr tron dftr2 mpbi
      bi2.04 3imtr3i alimi sylbi adantl clelsb3 imbi12i ralbii ax-setind sylbir
      jca sbim sylibr syl eqss biimpri syldan ) BDEZAFZBEZVIBGZHZADIZDBEZBDUAZV
      HVMJCFZVIGZVPDGZVPBGZHZHZCKZVIDGZVKHZHZAKZVNVMWFVHVMWCVQVSHZHZCKZWDHZAKZW
      FVMWCVJHZWDHZAKZWKVMWCVLHZAKWNVLADLWOWMAWCVJVKUBMNWMWJAWLWIWDWLWCWGCKZHWI
      VJWPWCCVIBRUCWCWGCUDUEOMNWJWEAWBWIWDWAWHCVQVRJZVSHVQWCJZVSHZWAWHWRWQVSWRV
      QVRVQWCUFWRVRHZAWTAKZCDUGXACKUHCADUIUJPPVAQVQVRVSSWSVQWCVSHHWHVQWCVSSVQWC
      VSUKNULUMQUMUNUOWFWDAKZVNWFWDACTZCVIIZWDHZAKXBXEWEAXDWBWDXDVTCVIIWBXCVTCV
      IXCWCACTZVKACTZHVTWCVKACVBXFVRXGVSCADUPCABUPUQNURVTCVILNOMWDCAUSUTADBRVCV
      DVOVHVNJBDVEVFVG $.
  $}

  ${
    $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 $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  IZF Set Theory - add the Axiom of Infinity
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Introduce the Axiom of Infinity
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y $.
    $( Axiom of Infinity.  Axiom 5 of [Crosilla] p.  "Axioms of CZF and IZF".
       (Contributed by Jim Kingdon, 16-Nov-2018.) $)
    ax-iinf $a |- E. x ( (/) e. x /\ A. y ( y e. x -> suc y e. x ) ) $.

    $( A standard version of the Axiom of Infinity, using definitions to
       abbreviate.  Axiom Inf of [BellMachover] p. 472.  (Contributed by NM,
       30-Aug-1993.) $)
    zfinf2 $p |- E. x ( (/) e. x /\ A. y e. x suc y e. x ) $=
      ( c0 cv wcel csuc wral wa wex wi wal ax-iinf df-ral anbi2i exbii mpbir )
      CADZEZBDZFQEZBQGZHZAIRSQETJBKZHZAIABLUBUDAUAUCRTBQMNOP $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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 as the smallest inductive set, which
       is valid provided we assume the Axiom of Infinity.  Definition 6.3 of
       [Eisenberg] p. 82.

       _Note_: the natural numbers ` _om ` are a subset of the ordinal numbers
       ~ df-on .  Later, when we define complex numbers, we will be able to
       also define a subset of the complex numbers with analogous properties
       and operations, but they will be different sets.  (Contributed by NM,
       6-Aug-1994.)  Use its alias ~ dfom3 instead for naming consistency with
       set.mm.  (New usage is discouraged.) $)
    df-iom $a |- _om = |^| { x | ( (/) e. x /\ A. y e. x suc y e. x ) } $.
  $}

  ${
    $d x y $.
    $( Alias for ~ df-iom .  Use it instead of ~ df-iom for naming consistency
       with set.mm.  (Contributed by NM, 6-Aug-1994.) $)
    dfom3 $p |- _om = |^| { x | ( (/) e. x /\ A. y e. x suc y e. x ) } $=
      ( df-iom ) ABC $.
  $}

  ${
    $d x y $.
    $( The existence of omega (the class of natural numbers).  Axiom 7 of
       [TakeutiZaring] p. 43.  (Contributed by NM, 6-Aug-1994.) $)
    omex $p |- _om e. _V $=
      ( vy vx com cvv wcel c0 cv csuc wral wa cint zfinf2 intexabim ax-mp dfom3
      cab wex eleq1i mpbir ) CDEFAGZEBGHTEBTIJZAPKZDEZUAAQUCABLUAAMNCUBDABORS
      $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Peano's postulates
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y z $.
    $( Zero is a natural number.  One of Peano's five postulates for
       arithmetic.  Proposition 7.30(1) of [TakeutiZaring] p. 42.  (Contributed
       by NM, 15-May-1994.) $)
    peano1 $p |- (/) e. _om $=
      ( vy vx vz c0 cv wcel csuc wral wa cab com wi 0ex elint wsb df-clab simpl
      cint sbimi clelsb4 sylib sylbi mpgbir dfom3 eleqtrri ) DDAEZFZBEGUFFBUFHZ
      IZAJZRZKDUKFCEZUJFZDULFZLCCDUJMNUMUIACOZUNUICAPUOUGACOUNUIUGACUGUHQSCADTU
      AUBUCABUDUE $.
  $}

  ${
    $d x y z A $.
    $( 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 ) $=
      ( vy vx vz cvv wcel com csuc cv wa wi wb imbi12d adantl wsb wal sylib nfv
      wral nfan elex c0 cint simpl wceq eleq1 suceq eleq1d df-clab simpr df-ral
      cab sbimi sbim elsb4 clelsb4 imbi12i bitri sbalv sylbi 19.21bi nfra1 nfvd
      nfsab nfcvd vtocldf ralrimiva ralim elintg sucexg syl syl5ibr mpd 3imtr4g
      dfom3 eleq2i mpcom ) AEFZAGFZAHZGFZAGUAVRAUBBIZFZCIZHZWBFZCWBSZJZBULZUCZF
      ZVTWJFZVSWAVRADIZFZVTWMFZKZDWISZWKWLKZVRWPDWIVRWMWIFZJZWDWMFZWEWMFZKZWPCA
      EVRWSUDWDAUEZXCWPLWTXDXAWNXBWOWDAWMUFXDWEVTWMWDAUGUHMNWSXCVRWSXCCWSWHBDOZ
      XCCPZWHDBUIXEWDWBFZWFKZCPZBDOXFWHXIBDWHWGXIWCWGUJWFCWBUKQUMXHXCBDCXHBDOXG
      BDOZWFBDOZKXCXGWFBDUNXJXAXKXBDBCUODBWEUPUQURUSQUTVANVRWSCVRCRWHCBDWCWGCWC
      CRWFCWBVBTVDTWTCAVEWTWPCVCVFVGWQWRVRWNDWISZWODWISZKWNWODWIVHVRWKXLWLXMDAW
      IEVIVRVTEFWLXMLAEVJDVTWIEVIVKMVLVMGWJABCVOZVPGWJVTXNVPVNVQ $.
  $}

  $( 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 =/= (/) ) $=
    ( com nsuceq0g ) ABC $.

  $( 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 suc11g ) ABCCD $.

  ${
    $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.  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 cin wss cint elin df-ral sylibr eleq2
      cab wal dfom3 peano1 mpbiran biimpri peano2 adantr a1i jcad alimi imbi12i
      pm3.31 albii 3imtr4i anim12i omex wceq raleqbi1dv anbi12d elab intss1 syl
      inex1 syl5eqss ssid biantrur ssin bitri ) DBEZAFZBEZVIGZBEZHZAIJZKZIIBLZM
      ZIBMZVOIDCFZEZVKVSEZAVSJZKZCSZNZVPCAUAVOVPWDEZWEVPMVODVPEZVKVPEZAVPJZKZWF
      VHWGVNWIWGVHWGDIEVHUBDIBOUCUDVNVIVPEZWHHZATZWIVIIEZVMHZATWNVJKZVKIEZVLKZH
      ZATVNWMWOWSAWOWPWQVLWPWQHWOWNWQVJVIUEUFUGWNVJVLUKUHUIVMAIPWLWSAWKWPWHWRVI
      IBOVKIBOUJULUMWHAVPPQUNWCWJCVPIBUOVBVSVPUPVTWGWBWIVSVPDRWAWHAVSVPVSVPVKRU
      QURUSQVPWDUTVAVCVRIIMZVRKVQWTVRIVDVEIIBVFVGQ $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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 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.  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 wceq suceq dfsbcq syl chvar finds
      wb ) ABEGABHIABFGZABFSZJZIZAEFBSZABEHKAEFBLABEUOKAEBMCUQNOZAABUQJZIZTZTUN
      NOZUMUPTZTBFVBVCBVBBPUMUPBABFUAABUOUBQQBFUCZURVBVAVCUQUNNUDVDAUMUTUPABFUE
      VDUSUOUFUTUPULUQUNUGABUSUOUHUIRRDUJUK $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The Natural Numbers (continued)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x y z A $.
    $( A natural number is either 0 or a successor.  Similar theorems for
       arbitrary sets or real numbers will not be provable (without the law of
       the excluded middle), but equality of natural numbers is decidable.
       (Contributed by NM, 27-May-1998.) $)
    nn0suc $p |- ( A e. _om -> ( A = (/) \/ E. x e. _om A = suc x ) ) $=
      ( vy vz cv c0 wceq csuc com wrex wo eqeq1 rexbidv orbi12d eqid orci suceq
      wcel eqeq2d rspcev mpan2 olcd a1d finds ) CEZFGZUEAEZHZGZAIJZKFFGZFUHGZAI
      JZKDEZFGZUNUHGZAIJZKZUNHZFGZUSUHGZAIJZKZBFGZBUHGZAIJZKCDBUFUFUKUJUMUEFFLU
      FUIULAIUEFUHLMNUEUNGZUFUOUJUQUEUNFLVGUIUPAIUEUNUHLMNUEUSGZUFUTUJVBUEUSFLV
      HUIVAAIUEUSUHLMNUEBGZUFVDUJVFUEBFLVIUIVEAIUEBUHLMNUKUMFOPUNIRZVCURVJVBUTV
      JUSUSGZVBUSOVAVKAUNIUGUNGUHUSUSUGUNQSTUAUBUCUD $.
  $}

  ${
    $d x y B $.
    $( 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 ) $=
      ( vy vx com wcel wss cv c0 csuc sseq1 0ss wa csn cun unss vex snss anbi2i
      df-suc sseq1i 3bitr4i biimpi expcom finds ssel2 ancoms sylan2 ) BEFABFZBE
      GZAEFZCHZEGIEGDHZEGZUMJZEGZUJCDBULIEKULUMEKULUOEKULBEKELUNUMEFZUPUNUQMZUP
      UNUMNZEGZMUMUSOZEGURUPUMUSEPUQUTUNUMEDQRSUOVAEUMTUAUBUCUDUEUJUIUKBEAUFUGU
      H $.
  $}

  ${
    $d x y $.
    $( Omega is ordinal.  Theorem 7.32 of [TakeutiZaring] p. 43.  (Contributed
       by NM, 18-Oct-1995.) $)
    ordom $p |- Ord _om $=
      ( vx vy com word wtr cv wral wcel wa wi wal elnn gen2 dftr2 mpbir c0 csuc
      treq tr0 suctr a1i finds rgen dford3 mpbir2an ) CDCEZAFZEZACGUFUGBFZHUICH
      IUGCHZJZBKAKUKABUGUILMABCNOUHACUIEPEUHUGQZEZUHBAUGUIPRUIUGRZUIULRUNSUHUMJ
      UJUGTUAUBUCACUDUE $.
  $}

  $( Omega is an ordinal number.  (Contributed by Mario Carneiro,
     30-Jan-2013.) $)
  omelon2 $p |- ( _om e. _V -> _om e. On ) $=
    ( com cvv wcel con0 word ordom elong mpbiri ) ABCADCAEFABGH $.

  $( 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 $.

  $( A natural number is an ordinal number.  (Contributed by NM,
     27-Jun-1994.) $)
  nnon $p |- ( A e. _om -> A e. On ) $=
    ( com omelon oneli ) BACD $.

  ${
    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 $.

  $( Omega is a subset of ` On ` .  (Contributed by NM, 13-Jun-1994.) $)
  omsson $p |- _om C_ On $=
    ( vx com con0 cv nnon ssriv ) ABCADEF $.

  ${
    $d x z $.
    $( Omega is a limit ordinal.  Theorem 2.8 of [BellMachover] p. 473.
       (Contributed by NM, 26-Mar-1995.)  (Proof rewritten by Jim Kingdon,
       5-Jan-2019.) $)
    limom $p |- Lim _om $=
      ( vx vz com wlim word c0 wcel cuni wceq ordom peano1 cv wa wex csuc sucex
      wi vex isseti peano2 sucid jctil eleq2 eleq1 anbi12d syl5ibr eximii eluni
      19.37aiv sylibr ssriv wss orduniss ax-mp eqssi dflim2 mpbir3an ) CDCEZFCG
      CCHZIJKCUSACUSALZCGZUTBLZGZVBCGZMZBNUTUSGVAVEBVBUTOZIZVAVEQBBVFUTARZPSVAV
      EVGUTVFGZVFCGZMVAVJVIUTTUTVHUAUBVGVCVIVDVJVBVFUTUCVBVFCUDUEUFUGUIBUTCUHUJ
      UKURUSCULJCUMUNUOCUPUQ $.
  $}

  $( 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 wcel csuc peano2 cvv elex sucexb sylibr sucidg elnn mpancom impbii
    syl ) ABCZADZBCZAEAPCZQOQAFCZRQPFCSPBGAHIAFJNAPKLM $.

  ${
    $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 ) $=
      ( c0 wne com wcel wceq wn cv csuc wrex df-ne nn0suc ord imp sylan2b ) BCD
      BEFZBCGZHZBAIJGAEKZBCLQSTQRTABMNOP $.
  $}

  ${
    $d x y A $.
    $( A natural number is either zero or nonzero.  Decidable equality for
       natural numbers is a special case of the law of the excluded middle
       which holds in most constructive set theories including ours.
       (Contributed by Jim Kingdon, 5-Jan-2019.) $)
    nndceq0 $p |- ( A e. _om -> DECID A = (/) ) $=
      ( vx vy com wcel c0 wceq wn wo wdc cv csuc eqeq1 notbid orbi12d eqid orci
      peano3 neneqd olcd a1d finds df-dc sylibr ) ADEAFGZUEHZIZUEJBKZFGZUIHZIFF
      GZUKHZICKZFGZUNHZIZUMLZFGZURHZIZUGBCAUIUIUKUJULUHFFMZUIUIUKVANOUHUMGZUIUN
      UJUOUHUMFMZVBUIUNVCNOUHUQGZUIURUJUSUHUQFMZVDUIURVENOUHAGZUIUEUJUFUHAFMZVF
      UIUEVGNOUKULFPQUMDEZUTUPVHUSURVHUQFUMRSTUAUBUEUCUD $.

    $( A natural number is either the empty set or has the empty set as an
       element.  (Contributed by Jim Kingdon, 23-Aug-2019.) $)
    0elnn $p |- ( A e. _om -> ( A = (/) \/ (/) e. A ) ) $=
      ( vx vy cv c0 wceq wcel wo csuc eqeq1 eleq2 orbi12d eqid com wi 0ex sucid
      orci suceq a1i syl5eleqr wss sssucid sseld jaod olc syl6 finds ) BDZEFZEU
      IGZHEEFZEEGZHCDZEFZEUNGZHZUNIZEFZEURGZHZAEFZEAGZHBCAUJUJULUKUMUIEEJUIEEKL
      UIUNFUJUOUKUPUIUNEJUIUNEKLUIURFUJUSUKUTUIUREJUIUREKLUIAFUJVBUKVCUIAEJUIAE
      KLULUMEMRUNNGZUQUTVAVDUOUTUPUOUTOVDUOEEIUREPQUNESUATVDUNUREUNURUBVDUNUCTU
      DUEUTUSUFUGUH $.
  $}

  $( A natural number is nonempty iff it contains the empty set.  Although in
     constructive mathematics it is generally more natural to work with
     inhabited sets and ignore the whole concept of nonempty sets, in the
     specific case of natural numbers this theorem may be helpful in converting
     proofs which were written assuming excluded middle.  (Contributed by Jim
     Kingdon, 28-Aug-2019.) $)
  nn0eln0 $p |- ( A e. _om -> ( (/) e. A <-> A =/= (/) ) ) $=
    ( com wcel c0 wceq wo wne wb 0elnn noel eleq2 mtbiri nner 2falsed ne0i 2thd
    id jaoi syl ) ABCADEZDACZFUAADGZHZAITUCUATUAUBTUADDCDJADDKLADMNUAUAUBUAQADO
    PRS $.

  ${
    $d ph w x y z $.
    nnregexmid.1 $e |- ( ( x C_ _om /\ E. y y e. x ) ->
        E. y ( y e. x /\ A. z ( z e. y -> -. z e. x ) ) ) $.
    $( If inhabited sets of natural numbers always have minimal elements,
       excluded middle follows.  The argument is essentially the same as
       ~ regexmid and the larger lesson is that although natural numbers may
       behave "non-constructively" even in a constructive set theory (for
       example see ~ nndceq or ~ nntri3or ), sets of natural numbers are a
       different animal.  (Contributed by Jim Kingdon, 6-Sep-2019.) $)
    nnregexmid $p |- ( ph \/ -. ph ) $=
      ( vw cv c0 wceq wa wo wcel wel wn wi wal wex com wss peano1 csn crab csuc
      cpr ssrab2 suc0 peano2 ax-mp eqeltrri prssi mp2an sstri eqid regexmidlemm
      pp0ex rabex sseq1 eleq2 exbidv anbi12d notbid imbi2d albidv imbi12d vtocl
      regexmidlem1 ) CGZFGZHUAZIVHHIAJKZFHVIUDZUBZLZDCMZDGZVLLZNZOZDPZJZCQZAANK
      VLRSZVMCQZWAVLVKRVJFVKUEHRLZVIRLVKRSTHUCZVIRUFWDWERLTHUGUHUIHVIRUJUKULAFC
      VLVLUMZUNBGZRSZCBMZCQZJZWIVNDBMZNZOZDPZJZCQZOWBWCJZWAOBVLVJFVKUOUPWGVLIZW
      KWRWQWAWSWHWBWJWCWGVLRUQWSWIVMCWGVLVGURZUSUTWSWPVTCWSWIVMWOVSWTWSWNVRDWSW
      MVQVNWSWLVPWGVLVOURVAVBVCUTUSVDEVEUKAFCDVLWFVFUH $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Relations
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Introduce new constant symbols. $)
  $c X. $. $( Times symbol (cross 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 cross 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 cross product of two classes.  Definition 9.11 of [Quine]
       p. 64.  For example, ( { 1 , 5 } ` X. ` { 2 , 7 } ) = ( { ` <. ` 1 , 2
       ` >. ` , ` <. ` 1 , 7 ` >. ` } ` u. ` { ` <. ` 5 , 2 ` >. ` , ` <. ` 5 ,
       7 ` >. ` } ) .  Another example is that the set of rational numbers are
       defined in using the cross-product ( Z ` X. ` N ) ; the left- and
       right-hand sides of the cross-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 ` >. ` } .  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.  Note that Definition 7 of [Suppes] p. 63
       reverses ` A ` and ` B ` , uses a slash 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 } .  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 } .  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 ( F = { ` <. ` 2 , 6 ` >. ` , ` <. ` 3 , 9 ` >. ` }
       ` /\ ` B = { 1 , 2 } ) -> ( F ` |`` ` B ) = { ` <. ` 2 , 6 ` >. ` } .
       (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 } .  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 cross 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 $.

    $( Equality theorem for cross 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 cross 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 cross 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 cross product.  (Contributed by NM, 23-Feb-2004.) $)
    elxp2 $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 cross 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 cross product.  (Contributed by NM,
       21-Dec-2008.) $)
    xpeq1i $p |- ( A X. C ) = ( B X. C ) $=
      ( wceq cxp xpeq1 ax-mp ) ABEACFBCFEDABCGH $.

    $( Equality inference for cross 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 cross 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 cross 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 cross 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 cross product.  (Contributed by NM,
       8-Dec-2013.) $)
    xpeq12d $p |- ( ph -> ( A X. C ) = ( B X. D ) ) $=
      ( wceq cxp xpeq12 syl2anc ) ABCHDEHBDICEIHFGBCDEJK $.
  $}

  ${
    $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 cross 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 cross product.  (Contributed by NM,
       2-May-1996.)  (Revised by Mario Carneiro, 26-Apr-2015.) $)
    0nelxp $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 cross 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 simpl eleq2d mtbiri
      exlimivv sylbi ) CABFGCDHZEHZIZJZUBAGUCBGKZKZELDLMCGZNZDECABOUGUIDEUGUHMU
      DGUBUCPUGCUDMUEUFQRSTUA $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.  $d x y D $.
    $( Ordered pair membership in a cross 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 cross 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 cross 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 $.

  $( The first member of an ordered pair of classes in a cross product belongs
     to first cross 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 cross product belongs
     to second cross 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 cross product
     belongs to first cross 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 $.

  ${
    $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 cross 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 $.
  $}

  ${
    nprrel.1 $e |- Rel R $.
    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 $.
  $}

  ${
    $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 $.  $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 ) } $.
    $( Ordered pair membership in an ordered pair class abstraction.
       (Contributed by Mario Carneiro, 9-Nov-2015.) $)
    brab2a $p |- ( A R B <-> ( ( A e. C /\ B e. D ) /\ ps ) ) $=
      ( wbr wcel wa cv copab cxp simpl ssopab2i df-xp 3sstr4i brel df-br eleq2i
      cop bitri opelopab2a syl5bb biadan2 ) EFILZEGMFHMNZBEFGHICOGMDOHMNZANZCDP
      ZULCDPIGHQUMULCDULARSKCDGHTUAUBUJEFUEZUNMZUKBUJUOIMUPEFIUCIUNUOKUDUFABCDE
      FGHJUGUHUI $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.
    $( Membership in a cross 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 cross 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 ) ) $=
      ( vz vy cv cop csn cxp ciun wcel cvv elex wex wceq eleq2d anbi12d bitri
      wa opexg wsb csb wrex nfv nfs1v nfcv nfcsb1v nfxp nfcri nfan sbequ12 sneq
      df-rex csbeq1a cbvex eleq1 anbi2d exbidv syl5bb df-iun elab2g opelxp an12
      xpeq12d anbi2i velsn equcom anbi1i 3bitri sbequ12r equcoms eqcomd ceqsexv
      exbii vex syl6bb pm5.21nii ) AGZDHZABVSIZCJZKZLZVTMLZVSBLZDCLZTZVTWCNVSDB
      CUAWEWDWFAEUBZVTEGZIZAWJCUCZJZLZTZEOZWHFGZWBLZABUDZWPFVTWCMWSWIWQWMLZTZEO
      ZWQVTPZWPWSWFWRTZAOXBWRABUNXDXAAEXDEUEWIWTAWFAEUFAFWMAWKWLAWKUGAWJCUHUIUJ
      UKVSWJPZWFWIWRWTWFAEULXEWBWMWQXEWAWKCWLVSWJUMAWJCUOZVEQRUPSXCXAWOEXCWTWNW
      IWQVTWMUQURUSUTAFBWBVAVBWPWJVSPZWIDWLLZTZTZEOWHWOXJEWOWIVSWKLZXHTZTXKXITX
      JWNXLWIVSDWKWLVCVFWIXKXHVDXKXGXIXKXEXGAWJVGAEVHSVIVJVOXIWHEVSAVPXGWIWFXHW
      GWFEAVKXGWLCDXGCWLCWLPAEXFVLVMQRVNSVQVR $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.
    $( Distributive law for cross 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 cross 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 cross 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 cross 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 cross 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 cross 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 anass 19.42vv 2exbii vex bitr3i
      bitri ancom biantru elvv anbi2i 3bitr4ri exrot4 excom opex eqeq2d ceqsexv
      opeq1 exbii ) DFFGZFGHDEIZCIZJZKZUNUMHZUOFHZLLZCMEMZDAIZBIZJZUOJZKZCMZBMA
      MZECDUMFNVAUNVDKZUQLZBMAMZCMEMZVHUTVKECUTUQURLZUSLZVKUQURUSOUQVILZBMAMUQV
      IBMAMZLZVKVNUQVIABPVJVOABVIUQUAQVNVMVQUSVMCRUBURVPUQABUNUCUDSUESQVLVJCMEM
      ZBMAMVHVJABECUFVRVGABVRVJEMZCMVGVJECUGVSVFCUQVFEVDVBVCARBRUHVIUPVEDUNVDUO
      UKUIUJULTQSTT $.

    $( 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 $.
  $}

  ${
    $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 wi nfa1 nfe1 nfmo nfex copsexg sps exlimd
      mobidv biimpcd moanimv simpl 2eximi ancri moimi sylbir syl ) ABFZDGZCGZEC
      HDHIJZDKZCKZUMALZDKZCKZBFZMZUSULUNUSCUKCNURCBUQCOPUKUNUSMCUKUMUSDUJDNURDB
      UQDCUPDOQPUJUMUSMDUMUJUSUMAURBACDERUAUBSTSTUTUOURLZBFUSUOURBUCURVABURUOUP
      UMCDUMAUDUEUFUGUHUI $.
  $}

  ${
    $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 $.
  $}

  $( Intersection of binary relation with cross 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 cross 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 cross 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 simpll syl2anc notbid adantll adantlr imbi12d ralbiia 3bitr4i
      adantr ) CFZUJBGZHZUJDFZBGZUMEFZBGZIZUJUOBGZJZIZEAKZDAKZCAKUJUJBAALMZGZHZ
      UJUMVCGZUMUOVCGZIZUJUOVCGZJZIZEAKZDAKZCAKABNAVCNVBVMCAUJAOZVAVLDAVNUMAOZI
      ZUTVKEAVPUOAOZIZULVEUSVJVRUKVDVRVNVNUKVDPVNVOVQUAZVSUJUJAABQUBUCVRUQVHURV
      IVRUNVFUPVGVPUNVFPVQUJUMAABQUIVOVQUPVGPVNUMUOAABQUDTVNVQURVIPVOUJUOAABQUE
      UFTRRUGCDEABSCDEAVCSUH $.

    $( Intersection of linear order with cross 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 vz wpo cv wbr wo wi wral wa cxp cin wor poinxp wcel brinxp df-iso
      wb 3adant3 3adant2 ancoms 3adant1 orbi12d imbi12d 3expb 2ralbidva ralbiia
      w3a anbi12i 3bitr4i ) ABFZCGZDGZBHZUNEGZBHZUQUOBHZIZJZEAKDAKZCAKZLABAAMNZ
      FZUNUOVDHZUNUQVDHZUQUOVDHZIZJZEAKDAKZCAKZLABOAVDOUMVEVCVLABPVBVKCAUNAQZVA
      VJDEAAVMUOAQZUQAQZVAVJTVMVNVOUJZUPVFUTVIVMVNUPVFTVOUNUOAABRUAVPURVGUSVHVM
      VOURVGTVNUNUQAABRUBVNVOUSVHTZVMVOVNVQUQUOAABRUCUDUEUFUGUHUIUKCDEABSCDEAVD
      SUL $.

    $( Intersection of set-like relation with cross 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 $.
  $}

  ${
    $d x y z A $.  $d x y z R $.
    $( Partial ordering of a singleton.  (Contributed by Jim Kingdon,
       5-Dec-2018.) $)
    posng $p |- ( ( Rel R /\ A e. _V ) -> ( R Po { A } <-> -. A R A ) ) $=
      ( vz vy vx csn cv wbr wn wa wi wral cvv wb wceq breq2 anbi2d ralsng bitrd
      ralbidv wpo wrel df-po imbi12d simpl syl5ib biantrud bicomd breq12 anidms
      wcel notbid adantl syl5bb ) AFZBUACGZUPBHZIZUPDGZBHZUSEGZBHZJZUPVABHZKZJZ
      EUOLZDUOLZCUOLZBUBZAMUKZJAABHZIZCDEUOBUCVKVIVMNVJVKVIURCUOLVMVKVHURCUOVKV
      HURUTUSABHZJZUPABHZKZJZDUOLURVKVGVRDUOVFVREAMVAAOZVEVQURVSVCVOVDVPVSVBVNU
      TVAAUSBPQVAAUPBPUDQRTVRURDAMUSAOZURVRVTVQURVOUTVTVPUTVNUEUSAUPBPUFUGUHRST
      URVMCAMUPAOZUQVLWAUQVLNUPAUPABUIUJULRSUMUN $.

    $( Strict linear ordering on a singleton.  (Contributed by Jim Kingdon,
       5-Dec-2018.) $)
    sosng $p |- ( ( Rel R /\ A e. _V ) -> ( R Or { A } <-> -. A R A ) ) $=
      ( vx vy vz wrel cvv wcel wa csn wor wbr wn wpo sopo cv wral elsni adantl
      wi posng syl5ib wo ax-in2 adantr wb breqan12d imbi1d ralrimivw ralrimivva
      biimpar mpbird df-iso sylanbrc ex impbid ) BFAGHIZAJZBKZAABLZMZUSURBNZUQV
      AURBOABUAZUBUQVAUSUQVAIVBCPZDPZBLZVDEPZBLVGVEBLUCZTZEURQZDURQCURQZUSUQVBV
      AVCUKVAVKUQVAVJCDURURVAVDURHZVEURHZIZIZVIEURVOVIUTVHTZVAVPVNUTVHUDUEVNVIV
      PUFVAVNVFUTVHVLVMVDAVEABVDARVEARUGUHSULUIUJSCDEURBUMUNUOUP $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( An abstraction relation is a subset of a related cross 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 $.
    brab2ga.1 $e |- ( ( x = A /\ y = B ) -> ( ph <-> ps ) ) $.
    brab2ga.2 $e |- R = { <. x , y >. | ( ( x e. C /\ y e. D ) /\ ph ) } $.
    $( The law of concretion for a binary relation.  See ~ brab2a for alternate
       proof.  TODO: should one of them be deleted?  (Contributed by Mario
       Carneiro, 28-Apr-2015.)  (Proof modification is discouraged.) $)
    brab2ga $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 cxp wbr copsex4g anbi2d cvv opexg eleq1 anbi1d eqeq1
      wceq wb 4exbidv anbi12d brabg syl2an opelxpi anim12i biantrurd 3bitr4d )
      INQJNQRZKNQLNQRZRZIJUAZNNUBZQZKLUAZVEQZRZVDESFSUAZUKZVGGSHSUAZUKZRZARZHTG
      TFTETZRZVIBRVDVGMUCZBVCVPBVIABEFGHIJKLNNOUDUEVAVDUFQVGUFQVRVQULVBIJNNUGKL
      NNUGCSZVEQZDSZVEQZRZVSVJUKZWAVLUKZRZARZHTGTFTETZRVFWBRZVKWERZARZHTGTFTETZ
      RVQCDVDVGUFUFMVSVDUKZWCWIWHWLWMVTVFWBVSVDVEUHUIWMWGWKEFGHWMWFWJAWMWDVKWEV
      SVDVJUJUIUIUMUNWAVGUKZWIVIWLVPWNWBVHVFWAVGVEUHUEWNWKVOEFGHWNWJVNAWNWEVMVK
      WAVGVLUJUEUIUMUNPUOUPVCVIBVAVFVBVHIJNNUQKLNNUQURUSUT $.
  $}

  ${
    $d x y z A $.
    $( The cross 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 elxp noel simprl mto nex 2false
      bitri eqriv ) BEAFZEBGZUAHUBCGZDGZIJZUCEHZUDAHZKKZDLZCLZUBEHZCDUBEAMUJUKU
      ICUHDUHUFUCNUEUFUGOPQQUBNRST $.
  $}

  ${
    $d A w y z $.  $d B w y z $.  $d C w y z $.  $d D w y z $.  $d w x y z $.
    $( Distribute proper substitution through the cross product of two classes.
       (Contributed by Alan Sare, 10-Nov-2012.) $)
    csbxpg $p |- ( A e. D -> [_ A / x ]_ ( B X. C ) =
                ( [_ A / x ]_ B X. [_ A / x ]_ C ) ) $=
      ( vz vw vy wcel cv wa wex cab csb cxp wsbc sbcexg sbcang sbcel2g bitrd
      wceq csbabg anbi12d exbidv abbidv eqtrd copab df-xp df-opab eqtri csbeq2i
      cop sbcg 3eqtr4g ) BEIZABFJGJZHJZULUAZUPCIZUQDIZKZKZHLZGLZFMZNZURUPABCNZI
      ZUQABDNZIZKZKZHLZGLZFMZABCDOZNVGVIOZUOVFVDABPZFMVOVDAFBEUBUOVRVNFUOVRVCAB
      PZGLVNVCGABEQUOVSVMGUOVSVBABPZHLVMVBHABEQUOVTVLHUOVTURABPZVAABPZKVLURVAAB
      ERUOWAURWBVKURABEUMUOWBUSABPZUTABPZKVKUSUTABERUOWCVHWDVJABUPCESABUQDESUCT
      UCTUDTUDTUEUFABVPVEVPVAGHUGVEGHCDUHVAGHFUIUJUKVQVKGHUGVOGHVGVIUHVKGHFUIUJ
      UN $.
  $}

  $( 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.) $)
    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 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 wcel wi wral wrex wal eleq1 ralimi r19.23v bitri dfss2 wa
      cop ssel a1d ralrimivv wceq imbi12d biimprcd ralbii sylib com23 a2d elxp2
      alimdv imbi2i albii 3imtr4g com12 impbid2 ) ECDHZIZEFIZAJZBJZUBZEKZVEFKZL
      ZBDMZACMZVBVHABCDVBVHVCCKVDDKUAEFVEUCUDUEVJVAVBVJGJZEKZVKVEUFZBDNZACNZLZG
      OZVLVKFKZLZGOVAVBVJVPVSGVJVLVOVRVJVOVLVRVJVMVSLZBDMZACMZVOVSLZVIWAACVHVTB
      DVMVSVHVMVLVFVRVGVKVEEPVKVEFPUGUHQQWBVNVSLZACMWCWAWDACVMVSBDRUIVNVSACRSUJ
      UKULUNVAVLVKUTKZLZGOVQGEUTTWFVPGWEVOVLABVKCDUMUOUPSGEFTUQURUS $.
  $}

  ${
    $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 adantl eqrel adantr mpbird ) D
      GEGHZAHDEIZBJCJKZDLUBELMZCNBNZAUDTAUCBCFOPTUAUDMABCDEQRS $.
  $}

  ${
    $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, 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 $.
  $}

  ${
    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 ) ) $=
      ( 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 >. } $=
      ( cop csn wrel cvv cxp wcel opelvv opex relsn mpbir ) ABEZFGOHHIJABCDKOAB
      CDLMN $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.  $d x y D $.
    $( Subset theorem for cross 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 )
      ABGZCDGZHZEIZAJZFIZCJZHZEFKUABJZUCDJZHZEFKACLBDLTUEUHEFRUBUFSUDUGABUAMCDU
      CMNOEFACPEFBDPQ $.
  $}

  $( A cross 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 cross 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 cross 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 cross 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 $.

  ${
    $d A x y z $.  $d B x y z $.
    $( A cross 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 ) $=
      ( vz vx vy cun cpw cv wcel wss wceq wa wex csn cpr snssi sseq1 syl5ibrcom
      vex syl cxp cop elxpi dfop wo ssun3 adantr df-pr ssun4 anim12i unss sylib
      syl5eqss jaod elpr 3imtr4g ssrdv biimpar sylan2 exlimivv sylibr ssriv
      elpw ) CABUAZABFZGZGZCHZVDIZVHVFJZVHVGIVIVHDHZEHZUBZKZVKAIZVLBIZLZLZEMDMV
      JDEVHABUCVRVJDEVQVNVMVFJZVJVQVMVKNZVKVLOZOZVFVKVLDSESUDVQCWBVFVQVHVTKZVHW
      AKZUEVHVEJZVHWBIVHVFIVQWCWEWDVQWEWCVTVEJZVOWFVPVOVTAJWFVKAPVTABUFTZUGVHVT
      VEQRVQWEWDWAVEJVQWAVTVLNZFZVEVKVLUHVQWFWHVEJZLWIVEJVOWFVPWJWGVPWHBJWJVLBP
      WHBAUITUJVTWHVEUKULUMVHWAVEQRUNVHVTWACSZUOVHVEWKVCUPUQUMVNVJVSVHVMVFQURUS
      UTTVHVFWKVCVAVB $.
  $}

  $( The double class union of a cross 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 cross product of two sets is a set.  Proposition 6.2 of
     [TakeutiZaring] p. 23.  (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 $.

  ${
    xpex.1 $e |- A e. _V $.
    xpex.2 $e |- B e. _V $.
    $( The cross 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 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 $.

  ${
    $d ph z $.  $d x z $.  $d y z $.
    relopabi.1 $e |- A = { <. x , y >. | ph } $.
    $( A class of ordered pairs is a relation.  (Contributed by Mario Carneiro,
       21-Dec-2013.) $)
    relopabi $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.)
     (Unnecessary distinct variable restrictions were removed 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 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 cv wceq cid df-id relopabi ) ACBCDABEABFG $.

    $( 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 cross 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 cross 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 cross 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 w A $.  $d x y z w C $.  $d z w B $.
    $( Distributive law for cross product over indexed intersection.
       (Contributed by Jim Kingdon, 7-Dec-2018.) $)
    xpiindim $p |- ( E. y y e. A ->
      ( C X. |^|_ x e. A B ) = |^|_ x e. A ( C X. B ) ) $=
      ( vw vz ciin cxp wrel wa cv wcel wex wral relxp wb cvv vex eliin wceq syl
      wrex rgenw eleq1 cbvexv r19.2m sylanbr mpan2 reliin jctil r19.28mv sylbir
      cop bicomd ax-mp anbi2i opelxp ralbii 3bitr4g opex eqrelrdv2 mpancom ) EA
      CDHZIZJZACEDIZHZJZKBLZCMZBNZVEVHUAVLVIVFVLVGJZACUCZVIVLVMACOZVNVMACEDPUDV
      LALZCMZANZVOVNVQVKABVPVJCUEUFZVMACUGUHUIACVGUJUBEVDPUKVLFGVEVHVLFLZEMZGLZ
      VDMZKZVTWBUNZVGMZACOZWEVEMWEVHMZVLWAWBDMZACOZKZWAWIKZACOZWDWGVLWMWKVLVRWM
      WKQVSWAWIACULUMUOWCWJWAWBRMWCWJQGSZAWBCDRTUPUQWFWLACVTWBEDURUSUTVTWBEVDUR
      WERMWHWGQVTWBFSWNVAAWECVGRTUPUTVBVC $.

    $( Distributive law for cross product over relativized indexed
       intersection.  (Contributed by Jim Kingdon, 7-Dec-2018.) $)
    xpriindim $p |- ( E. y y e. A ->
        ( C X. ( D i^i |^|_ x e. A B ) ) =
        ( ( C X. D ) i^i |^|_ x e. A ( C X. B ) ) ) $=
      ( cv wcel wex ciin cin cxp xpindi xpiindim ineq2d syl5eq ) BGCHBIZEFACDJZ
      KLEFLZERLZKSACEDLJZKEFRMQTUASABCDENOP $.
  $}

  ${
    $d y A $.  $d y B $.  $d x y C $.  $d x y D $.  $d x E $.
    $( Membership in a union of cross 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 cross 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 nfcv nfiu1 nfel2 nfv nfbi wceq eleq1d
      opeq1 eleq1 eleq2d anbi12d bibi12d opeliunxp vtoclgf pm5.21nii ) DEHZABAI
      ZJZCKZLZMZDNMZDBMZEFMZOZVIDEVHPVJDEVHQDEVHVHRVGRZABSVNABVFCUAUBABVGUDUEUF
      UGVKVJVLDBUCUHVEEHZVHMZVEBMZECMZOZTVIVMTADNADUIVIVMAAVDVHABVGUJUKVMAULUMV
      EDUNZVPVIVSVMVTVOVDVHVEDEUPUOVTVQVKVRVLVEDBUQVTCFEGURUSUTABCEVAVBVC $.
  $}

  ${
    $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 wcel wi wal wa wral wex albii vex bitri ciun cop wceq imbi1i
      eliunxp 19.23vv bitr4i alrot3 impexp imbi2d ceqsalv 2albii df-ral 3bitr4i
      opex r2al ) CIZDFDIZJGKUAZLZAMZCNZURFLEIZGLOZBMZENDNZACUSPBEGPDFPVBUQURVC
      UBZUCZVDOZAMZENDNZCNZVFVAVKCVAVIEQDQZAMVKUTVMADEFGUQUEUDVIADEUFUGRVLVJCNZ
      ENDNVFVJCDEUHVNVEDEVNVHVDAMZMZCNVEVJVPCVHVDAUIRVOVECVGURVCDSESUOVHABVDHUJ
      UKTULTTACUSUMBDEFGUPUN $.

    $( 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 ) $=
      ( cv csn cxp ciun wcel wa wex wrex cop exbii vex bitri wceq anbi1i bitr4i
      eliunxp 19.41vv exrot3 anass opex anbi2d ceqsexv 2exbii df-rex 3bitr4i
      r2ex ) CIZDFDIZJGKLZMZANZCOZUPFMEIZGMNZBNZEODOZACUQPBEGPDFPUTUOUPVAQZUAZV
      BNZANZEODOZCOZVDUSVICUSVGEODOZANVIURVKADEFGUOUDUBVGADEUEUCRVJVHCOZEODOVDV
      HCDEUFVLVCDEVLVFVBANZNZCOVCVHVNCVFVBAUGRVMVCCVEUPVADSESUHVFABVBHUIUJTUKTT
      ACUQULBDEFGUNUM $.

    $d y B $.
    $( Universal quantification restricted to a cross 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 cross 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 x A $.
    $( Disjoint union is a subset of a cross 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 ) $=
      ( vv vw vu wral wsb cv wceq vex nfsb cxp cbvralsv ralbii nfv nfcv nfralxy
      nfs1v sbequ12 ralbidv cbvral cop wa wex eqvinop nfbi sbhypf opth sylan9bb
      wb sylbi exlimi ralxp 3bitr4ri bitri ) ACFGUAZOACLPZLVEOZBEGOZDFOZACLVEUB
      BDMPZEGOZMFOVJENPZNGOZMFOVIVGVKVMMFVJENGUBUCVHVKDMFVHMUDVJDEGDGUEBDMUGZUF
      DQZMQZRZBVJEGBDMUHZUIUJVFVLLMNFGLQZVPNQZUKZRVSVOEQZUKZRZWCWARZULZEUMZDUMV
      FVLUSZDEVSVPVTMSNSUNWGWHDVFVLDACLDHTVJENDVNTUOWFWHEVFVLEACLEITVJENUGUOWDV
      FBWEVLABCLWCJKUPWEVQWBVTRZULBVLUSVOWBVPVTDSESUQVQBVJWIVLVRVJENUHURUTURVAV
      AUTVBVCVD $.

    $( 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 ) $=
      ( vv vw vu wrex wsb cv wceq vex nfsb cxp cbvrexsv rexbii nfv nfcv nfrexxy
      nfs1v sbequ12 rexbidv cbvrex cop wa wex eqvinop nfbi sbhypf opth sylan9bb
      wb sylbi exlimi rexxp 3bitr4ri bitri ) ACFGUAZOACLPZLVEOZBEGOZDFOZACLVEUB
      BDMPZEGOZMFOVJENPZNGOZMFOVIVGVKVMMFVJENGUBUCVHVKDMFVHMUDVJDEGDGUEBDMUGZUF
      DQZMQZRZBVJEGBDMUHZUIUJVFVLLMNFGLQZVPNQZUKZRVSVOEQZUKZRZWCWARZULZEUMZDUMV
      FVLUSZDEVSVPVTMSNSUNWGWHDVFVLDACLDHTVJENDVNTUOWFWHEVFVLEACLEITVJENUGUOWDV
      FBWEVLABCLWCJKUPWEVQWBVTRZULBVLUSVOWBVPVTDSESUQVQBVJWIVLVRVJENUHURUTURVAV
      AUTVBVCVD $.
  $}

  ${
    $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 cross product is 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 cvv cv wceq wa wex wi wcel bitri weq eqeq2d cxp wss df-rel
      wrel csn cpr wal dfss2 vex elop elvv imbi12i jaob albii 19.26 eqeq1 eqcom
      wo snex opeqsn syl6bb 2exbidv imbi12d spcv sneq cbvexv a9ev equcom 19.41v
      exbii mpbi mpbiran eqid a1bi 3bitr2ri sylib prexg mp2an mpi opeqpr preqsn
      idd eqtr2 simplbi syl dfsn2 preq2 syl5req syl5eq biimpd expd com12 adantr
      anbi12d mpd expcom impd jaod syl5bi 2eximdv exlimiv imp sylbi simpr equid
      syl2an jctl sylibr eqtr4d opeq12 spc2ev adantlr preq12 biimpa dfop jaodan
      syl6eqr ex 3imtr4g ssrdv exlimivv impbii ) CDJZUDYCKKUAZUBZCALZUEZMZDYFBL
      ZUFZMZNZBOAOZYCUCYEYMYEGLZCUEZMZYNYFYIJZMZBOAOZPZGUGZYNCDUFZMZYSPZGUGZNZY
      MYEYNYCQZYNYDQZPZGUGZUUFGYCYDUHUUJYTUUDNZGUGUUFUUIUUKGUUIYPUUCURZYSPUUKUU
      GUULUUHYSYNCDGUIEFUJZABYNUKULYPYSUUCUMRUNYTUUDGUORRUUACHLZUEZMZHOZUUBYQMZ
      BOAOZYMUUEUUAYOYOMZABSZYHNZBOZAOZPZUUQYTUVEGYOCEUSYPYPUUTYSUVDYNYOYOUPYPY
      RUVBABYPYRYOYQMZUVBYNYOYQUPUVFYQYOMUVBYOYQUQYFYICAUIZBUIZEUTRVAVBVCVDUUQY
      HAOUVDUVEUUPYHHAHASZUUOYGCUUNYFVETVFUVCYHAUVCUVABOZYHBASZBOUVJBAVGUVKUVAB
      BAVHVJVKUVAYHBVIVLVJUUTUVDYOVMVNVOVPUUEUUBUUBMZUUSUUBVMUUDUVLUUSPGUUBCKQD
      KQUUBKQEFCDKKVQVRUUCUUCUVLYSUUSYNUUBUUBUPUUCYRUURABYNUUBYQUPVBVCVDVSUUQUU
      SYMUUPUUSYMPHUUPUURYLABUURYLCYJMZDYGMZNZURZUUPYLUURYQUUBMUVPUUBYQUQYFYICD
      UVGUVHEFVTRUUPYLYLUVOUUPYLWBUUPUVMUVNYLUVMUUPUVNYLPZUVMUUPNZUVAUVQUVRYJUU
      OMZUVACYJUUOWCUVSUVABHSYFYIUUNUVGUVHHUIWAWDWEUVMUVAUVQPUUPUVAUVMUVQUVAUVM
      UVNYLUVAUVOYLUVAUVMYHUVNYKUVAYJYGCUVAYGYFYFUFZYJYFWFZYFYIYFWGZWHTUVAYGYJD
      UVAYGUVTYJUWAUWBWITWNWJWKWLWMWOWPWQWRWSWTXAXBXFXCYLYEABYLGYCYDYLUULYNUUNI
      LZJZMZIOHOZUUGUUHYLUULUWFYLYPUWFUUCYHYPUWFYKYHYPNZYNYFYFJZMZUWFUWGYNYOUWH
      YHYPXDYHUWHYOMZYPYHAASZYHNUWJYHUWKAXEXGYFYFCUVGUVGEUTXHWMXIUWEUWIHIYFYFUV
      GUVGUVIIASNUWDUWHYNUUNUWCYFYFXJTXKWEXLYLUUCNZYRUWFUWLYNYGYJUFZYQYLUUCYNUW
      MMYLUUBUWMYNCDYGYJXMTXNYFYIUVGUVHXOXQUWEYRHIYFYIUVGUVHUVIIBSNUWDYQYNUUNUW
      CYFYIXJTXKWEXPXRUUMHIYNUKXSXTYAYBR $.
  $}

  ${
    $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 brrelexi adantl simpl jca eleq1 biimparc
      reli elex cv syl eqeq1 eqeq2 df-id brabg pm5.21nd ) BCFZABGHZABIZAJFZUGKU
      GUHKUJUGUHUJUGABGRLMUGUHNOUGUIKZUJUGUKACFZUJUIULUGABCPQACSUAUGUINODTZETZI
      AUNIUIDEABJCGUMAUNUBUNBAUCDEUDUEUF $.
  $}

  ${
    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 wa wex copab id ssbrd anim2d eximdv ssopab2dv df-co
      ccom 3sstr4g ) ABGZDHEHZCIZUBFHZAIZJZEKZDFLUCUBUDBIZJZEKZDFLACSBCSUAUGUJD
      FUAUFUIEUAUEUHUCUAABUBUDUAMNOPQDFEACRDFEBCRT $.

    $( 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 wa wex copab id ssbrd anim1d eximdv ssopab2dv df-co
      ccom 3sstr4g ) ABGZDHZEHZAIZUCFHCIZJZEKZDFLUBUCBIZUEJZEKZDFLCASCBSUAUGUJD
      FUAUFUIEUAUDUHUEUAABUBUCUAMNOPQDFECARDFECBRT $.
  $}

  $( 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 wbr wa cv wex ccom simpl1 simpl2 wceq breq2 breq1 3ad2antl3
      anbi12d spcegv imp brcog biimpar syl21anc ) AEJZBFJZGHJZKAGDLZGBCLZMZMUIU
      JAINZDLZUOBCLZMZIOZABCDPLZUIUJUKUNQUIUJUKUNRUKUIUNUSUJUKUNUSURUNIGHUOGSUP
      ULUQUMUOGADTUOGBCUAUCUDUEUBUIUJMUTUSIABCDEFUFUGUH $.
  $}

  ${
    $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.) $)
    cnvss $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.
       (Contributed by Thierry Arnoux, 8-Feb-2017.) $)
    csbcnvg $p |- ( A e. V -> `' [_ A / x ]_ F = [_ A / x ]_ `' F ) $=
      ( vz vy wcel csb ccnv cv wbr copab wsbc sbcbrg csbconstg breq12d opabbidv
      bitrd csbopabg df-cnv wceq a1i 3eqtr4rd csbeq2i syl6eqr ) BDGZABCHZIZABEJ
      ZFJZCKZFELZHZABCIZHUFUKABMZFELUIUJUGKZFELZUMUHUFUOUPFEUFUOABUIHZABUJHZUGK
      UPABUIUJDCNUFURUIUSUJUGABUIDOABUJDOPRQUKAFEBDSUHUQUAUFFEUGTUBUCABUNULFECT
      UDUE $.
  $}

  ${
    $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 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 V w y $.  $d x w y $.
    $( Distribute proper substitution through the domain of a class.
       (Contributed by Jim Kingdon, 8-Dec-2018.) $)
    csbdmg $p |- ( A e. V -> [_ A / x ]_ dom B = dom [_ A / x ]_ B ) $=
      ( vy vw wcel cop wex cab csb cdm wsbc csbabg sbcex2 sbcel2g exbidv syl5bb
      cv dfdm3 abbidv eqtrd csbeq2i 3eqtr4g ) BDGZABESFSHZCGZFIZEJZKZUFABCKZGZF
      IZEJZABCLZKUKLUEUJUHABMZEJUNUHAEBDNUEUPUMEUPUGABMZFIUEUMUGFABOUEUQULFABUF
      CDPQRUAUBABUOUIEFCTUCEFUKTUD $.
  $}

  ${
    $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 $.
    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 y A $.  $d y B $.  $d y C $.
    $( Membership of first of an ordered pair in a domain.  (Contributed by Jim
       Kingdon, 9-Jul-2019.) $)
    opeldmg $p |- ( ( A e. V /\ B e. W ) ->
        ( <. A , B >. e. C -> A e. dom C ) ) $=
      ( vy wcel wa cop cv wex cdm wi wceq opeq2 eleq1d spcegv adantl wb eldm2g
      adantr sylibrd ) ADGZBEGZHABIZCGZAFJZIZCGZFKZACLGZUDUFUJMUCUIUFFBEUGBNUHU
      ECUGBAOPQRUCUKUJSUDFACDTUAUB $.
  $}

  ${
    $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 wbr w3a cdm cv wex breq2 spcegv imp 3adant1 wb eldmg 3ad2ant1 mpbird
      wcel ) ACTZBDTZABEGZHAEITZAFJZEGZFKZUBUCUGUAUBUCUGUFUCFBDUEBAELMNOUAUBUDU
      GPUCFAECQRS $.

    $( 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 $.
    $( 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 wceq cv wcel eq0 cop wex noel nex vex eldm2 mtbir mpgbir
      wn ) CDZCEAFZRGZQAARHTSBFIZCGZBJUBBUAKLBSCAMNOP $.

    $( 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 a9ev ideq equcom bitri exbii
      vex mpbir eldm mpgbir ) CDZEFAGZUAHZAAUAIUCUBBGZCJZBKZUFUDUBFZBKBALUEUGBU
      EUBUDFUGUBUDBQMABNOPRBUBCAQSRT $.

    $( 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 implies 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 y z A $.  $d x z A $.
    $( A domain is inhabited if and only if the range is inhabited.
       (Contributed by Jim Kingdon, 15-Dec-2018.) $)
    dmmrnm $p |- ( E. x x e. dom A <-> E. y y e. ran A ) $=
      ( vz cv cdm wcel wex wbr crn cab df-dm exbii abid bitri dfrn2 excom eleq1
      eleq2i cbvexv 3bitr2i ) AEZCFZGZAHZUBDEZCIZDHZAHZUFCJZGZDHZBEZUJGZBHUEUBU
      HAKZGZAHUIUDUPAUCUOUBADCLSMUPUHAUHANMOULUFUGAHZDKZGZDHZUIUKUSDUJURUFADCPS
      MUTUQDHUIUSUQDUQDNMUGDAQOOUKUNDBUFUMUJRTUA $.
  $}

  ${
    $d y z A $.  $d x y z B $.
    $( The domain of a cross 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.) $)
    dmxpm $p |- ( E. x x e. B -> dom ( A X. B ) = A ) $=
      ( vz vy cv wcel wex cxp cdm wceq eleq1 cbvexv copab df-xp dmeqi ralrimivw
      wa wral id dmopab3 sylib syl5eq sylbi ) AFZCGZAHDFZCGZDHZBCIZJZBKUFUHADUE
      UGCLMUIUKEFBGUHREDNZJZBUJULEDBCOPUIUIEBSUMBKUIUIEBUITQUHEDBUAUBUCUD $.
  $}

  ${
    $d x A $.  $d x B $.
    $( The domain of the intersection of two square cross products.  Unlike
       ~ dmin , equality holds.  (Contributed by NM, 29-Jan-2008.) $)
    dmxpinm $p |- ( E. x x e. ( A i^i B ) ->
        dom ( ( A X. A ) i^i ( B X. B ) ) = ( A i^i B ) ) $=
      ( cv cin wcel wex cxp cdm wceq inxp dmeqi a1i dmxpm eqtrd ) ADBCEZFAGZBBH
      CCHEZIZPPHZIZPSUAJQRTBBCCKLMAPPNO $.
  $}

  ${
    $d x A $.  $d x B $.
    $( The cross product of a class with itself is one-to-one.  (Contributed by
       Jim Kingdon, 8-Dec-2018.) $)
    xpid11m $p |- ( ( E. x x e. A /\ E. x x e. B ) ->
        ( ( A X. A ) = ( B X. B ) <-> A = B ) ) $=
      ( cv wcel wex wa cxp wceq cdm dmxpm adantr dmeq sylan9req ad2antlr xpeq12
      eqtrd ex anidms impbid1 ) ADZBEAFZUACEAFZGZBBHZCCHZIZBCIZUDUGUHUDUGGBUFJZ
      CUDUGBUEJZUIUBUJBIUCABBKLUEUFMNUCUICIUBUGACCKOQRUHUGBCBCPST $.
  $}

  $( 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 $.

  $( Membership of second member of an ordered pair in a range.  (Contributed
     by Jim Kingdon, 26-Jan-2019.) $)
  opelrng $p |- ( ( A e. F /\ B e. G /\ <. A , B >. e. C ) -> B e. ran C ) $=
    ( cop wcel wbr crn df-br brelrng syl3an3br ) ABFCGADGBEGABCHBCIGABCJABCDEKL
    $.

  ${
    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.
     (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 eleq1 elex
      wb r19.29 biimparc rexlimivw ex eqeq1 rexbidv elab3g syl5bb ) DEIZJDHKZCL
      ZABMZHNZJZCFJZABOZDCLZABMZUMUQDAHBCEGPQUTVBDRJZUAURVBUDUTVBVCUTVBSUSVASZA
      BMVCUSVAABUEVDVCABVDDFJZVCVAVEUSDCFUBUFDFUCTUGTUHUPVBHDRUNDLUOVAABUNDCUIU
      JUKTUL $.

    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 $.
  $}

  $( 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.  (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 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.) $)
  csbresg $p |- ( A e. V -> [_ A / x ]_ ( B |` C ) =
                 ( [_ A / x ]_ B |` [_ A / x ]_ C ) ) $=
    ( wcel cvv cxp cin cres csbing csbxpg csbconstg xpeq2d eqtrd ineq2d csbeq2i
    csb df-res 3eqtr4g ) BEFZABCDGHZIZRZABCRZABDRZGHZIZABCDJZRUEUFJUAUDUEABUBRZ
    IUHABECUBKUAUJUGUEUAUJUFABGRZHUGABDGELUAUKGUFABGEMNOPOABUIUCCDSQUEUFST $.

  $( 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 $.

  ${
    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 ) ) $=
      ( cop cres wcel cvv cxp cin wa df-res eleq2i elin opelxp mpbiran2 anbi2i
      3bitri ) ABFZCDGZHTCDIJZKZHTCHZTUBHZLUDADHZLUAUCTCDMNTCUBOUEUFUDUEUFBIHEA
      BDIPQRS $.

    $( Binary relation on a restriction.  (Contributed by NM, 12-Dec-2006.) $)
    brres $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 $.
    $( Ordered pair membership in a restriction.  Exercise 13 of
       [TakeutiZaring] p. 25.  (Contributed by NM, 14-Oct-2005.) $)
    opelresg $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 $.

    $( 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 ) BEFABGZCDHZFOCFZAD
      FZIABPJABCJZRIABCDEKABPLSQRABCLMN $.
  $}

  ${
    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 wa opelresg wbr ididg df-br sylib biantrurd bitr4d ) AC
    DZAAEZFBGDQFDZABDZHSAAFBCIPRSPAAFJRACKAAFLMNO $.

  $( 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 $.

  ${
    $d x C $.
    $( Distribution of restriction over indexed union.  (Contributed by Mario
       Carneiro, 29-May-2015.) $)
    resiun1 $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 $.

  $( 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.) $)
  resima2 $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 cross 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 df-res inxp incom inv1 xpeq12i 3eqtri wceq biimpi xpeq1d
    cvv df-ss syl5eq ) CADZABEZCFZCAGZBEZCBEUBUACQEGACGZBQGZEUDUACHABCQIUEUCUFB
    ACJBKLMTUCCBTUCCNCAROPS $.

  ${
    $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 $.
      $( Memebership 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 $.
  $}

  $( 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 $.

    $( The existence of a restricted identity function, proved without using
       the Axiom of Replacement.  (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 bitr3i anbi1i bitri opelxp 3imtr4i relssi xpexg
      ideq anidms ssexg sylancr ) ABEZFAGZAAHZIUQJEZUPJECDUPUQFAKCDLZCMZAEZNZVA
      DMZAEZNUTVCOZUPEZVEUQEVBVAVDUSVAPUSVAVDUTVCAQRSVFVEFEZVANVBUTVCFADTZUAVGU
      SVAVGUTVCFUBUSUTVCFUCUTVCVHUKUDUEUFUTVCAAUGUHUIUOURAABBUJULUPUQJUMUN $.

    $( 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 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 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 df-id ) 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 $.

  $( TODO - delete this and replace w/ dfres3 (in FL's mathbox) $)
  $( Any relation restricted to the universe is itself.  (Contributed by NM,
     16-Mar-2004.) $)
  resid $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 $.
  $}

  $( 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 $.

  ${
    $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 ceqsexv abbii abid2 3eqtri ) DAEBFZAGZU
      HCFZHDGZRZBIZCJUJAGZCJABCDAKUMUNCUMBCLZUIRZBIUNULUPBULUIUORUPUKUOUIUKUHUJ
      DMUOUHUJDNUHUJCOZPQSUIUOUATUBUIUNBUJUQUHUJAUCUDTUECAUFUG $.
  $}

  $( 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 C 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.)  (Proof shortened by Mario Carneiro,
       4-Dec-2016.) $)
    csbima12g $p |- ( A e. C -> [_ A / x ]_ ( F " B ) =
                 ( [_ A / x ]_ F " [_ A / x ]_ B ) ) $=
      ( vy cv cima csb csbeq1 imaeq12d eqeq12d vex nfcsb1v nfima csbeq1a csbief
      wceq vtoclg ) AFGZECHZIZATEIZATCIZHZRABUAIZABEIZABCIZHZRFBDTBRZUBUFUEUIAT
      BUAJUJUCUGUDUHATBEJATBCJKLATUAUEFMAUCUDATENATCNOAGTREUCCUDATEPATCPKQS $.
  $}

  $( 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 $.

    $( Elementhood in the image of a singleton.  (Contributed by Jim Kingdon,
       10-Dec-2018.) $)
    elreimasng $p |- ( ( Rel R /\ A e. V ) -> ( B e. ( R " { A } ) <->
        A R B ) ) $=
      ( vx wcel csn cima cv wbr cab wrel imasng eleq2d cvv wi wb brrelex2 breq2
      ex elab3g syl sylan9bbr ) ADFZBCAGHZFBAEIZCJZEKZFZCLZABCJZUDUEUHBEADCMNUJ
      UKBOFZPUIUKQUJUKULABCRTUGUKEBOUFBACSUAUBUC $.
  $}

  ${
    $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 $.
  $}

  ${
    $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).  (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 x y A $.  $d x y R $.  $d x V $.
    $( 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 $.

    $( 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 $.
  $}

  $( 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.) $)
  ndmima $p |- ( -. A e. dom B -> ( B " { A } ) = (/) ) $=
    ( cdm wcel wn csn cima cres crn c0 df-ima wceq cin dmres incom eqtri disjsn
    biimpri syl5eq dm0rn0 sylib ) ABCZDEZBAFZGBUDHZIZJBUDKUCUECZJLUFJLUCUGUBUDM
    ZJUGUDUBMUHBUDNUDUBOPUHJLUCUBAQRSUETUAS $.

  ${
    $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 $.

  ${
    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 R $.
    $( Two ways of saying a relation is transitive.  Definition of transitivity
       in [Schechter] p. 51.  (Contributed by NM, 27-Dec-1996.)  (Proof
       shortened by Andrew Salmon, 27-Aug-2011.) $)
    cotr $p |- ( ( R o. R ) C_ R <->
             A. x A. y A. z ( ( x R y /\ y R z ) -> x R z ) ) $=
      ( ccom wss cv cop wcel wi wal wbr wa wrel wb wex df-co vex albii bitri
      relopabi ssrel ax-mp opelco df-br bicomi imbi12i 19.23v bitr4i alcom ) DD
      EZDFZAGZCGZHZUKIZUODIZJZCKZAKZUMBGZDLVAUNDLMZUMUNDLZJZCKBKZAKUKNULUTOVBBP
      ZACUKACBDDQUAACUKDUBUCUSVEAUSVDBKZCKVEURVGCURVFVCJVGUPVFUQVCBUMUNDDARCRUD
      VCUQUMUNDUEUFUGVBVCBUHUISVDCBUJTST $.
  $}

  ${
    $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 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 df-br 3bitr2i
      vex incom eqeq1i disj2 wrel wb reli ssrel ax-mp 3bitri equcom wa biantrur
      ideq opex eldif bitr4i xchnxbir imbi12i 2albii breq2 notbid equsal albii
      nfv ) BDEZFGZAHZCHZIZDJZVIKBLZJZMZCNANZVHVGGZVGVHBOZPZMZCNZANVGVGBOZPZANV
      FDBEZFGDVKQZVNVEWBFBDUAUBDBUCDUDWCVNUEUFACDVKUGUHUIVRVMACVOVJVQVLVOVGVHGV
      GVHDOVJCAUJVGVHCTZUMVGVHDRSVIBJZVLVPWEPZVIKJZWFUKVLWGWFVGVHATWDUNULVIKBUO
      UPVGVHBRUQURUSVSWAAVQWACAWACVDVOVPVTVHVGVGBUTVAVBVCS $.

    $( 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 cross 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 wal wcel simplbi2com adantl sylbi com12
      wi brxp adantr imp ax-gen gen2 cotr mpbir ) AAEZUEFUEGBHZCHZUEIZUGDHZUEIZ
      JUFUIUEIZQZDKZCKBKUMBCULDUHUJUKUHUFALZUGALZJUJUKQZUFUGAARUNUPUOUJUNUKUJUO
      UIALZJUNUKQZUGUIAARUQURUOUKUNUQUFUIAARMNOPSOTUAUBBCDUEUCUD $.

    $( 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 cross
     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 $=
      ( wbr id wor wcel wn brel simpld sonr sylancr pm2.65i ) AABFZPPGPCBHACIZP
      JDPQQAACCBEKLCABMNO $.

    $( 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 ` -. ` B < A 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 ) $=
      ( wcel wbr wn w3a simp2 wo wa brel 3ad2ant3 simp1 df-3an sylanbrc simp3
      wor wi sowlin mpan sylc ord mpd ) AEHZBADIZJZBCDIZKZUJACDIZUHUJUKLULUIUMU
      LBEHZCEHZUHKZUKUIUMMZULUNUONZUHUPUKUHURUJBCEEDGOPUHUJUKQUNUOUHRSUHUJUKTED
      UAUPUKUQUBFEBCADUCUDUEUFUG $.

    $( A transitivity relation.  (Read A < B and ` -. ` C < B implies A < C .)
       (Contributed by Mario Carneiro, 10-May-2013.) $)
    sotri3 $p |- ( ( C e. S /\ A R B /\ -. C R B ) -> A R C ) $=
      ( wcel wbr wn w3a simp3 wo wa brel 3ad2ant2 simp1 df-3an sylanbrc simp2
      wor wi sowlin mpan sylc ecased ) CEHZABDIZCBDIZJZKZACDIZUIUGUHUJLUKAEHZBE
      HZUGKZUHULUIMZUKUMUNNZUGUOUHUGUQUJABEEDGOPUGUHUJQUMUNUGRSUGUHUJTEDUAUOUHU
      PUBFEABCDUCUDUEUF $.
  $}

  $( 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 $.

  ${
    $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 $.
    $( The converse of the empty set.  (Contributed by NM, 6-Apr-1998.) $)
    cnv0 $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 set 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 ) $=
      ( vy vx cin ccnv cv wbr copab df-cnv inopab brin opabbii eqtr4i ineq12i
      wa ) ABEZFZCGZDGZAHZDCIZSTBHZDCIZEZAFZBFZERSTQHZDCIZUEDCQJUEUAUCPZDCIUIUA
      UCDCKUHUJDCSTABLMNNUFUBUGUDDCAJDCBJON $.
  $}

  $( 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 cross 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 cross 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 cross product of inhabited classes is inhabited.  (Contributed by
       Jim Kingdon, 11-Dec-2018.) $)
    xpmlem $p |- ( ( E. x x e. A /\ E. y y e. B ) <-> E. z z e. ( A X. B ) ) $=
      ( cv wcel wex wa cxp eeanv cop vex opex wceq eleq1 opelxp syl6bb exlimivv
      spcev sylbir elxp simpr 2eximi sylbi exlimiv sylib impbii ) AFZDGZAHBFZEG
      ZBHIZCFZDEJZGZCHZUMUJULIZBHAHZUQUJULABKZURUQABUPURCUIUKLZUIUKAMBMNUNVAOZU
      PVAUOGURUNVAUOPUIUKDEQRTSUAUQUSUMUPUSCUPVBURIZBHAHUSABUNDEUBVCURABVBURUCU
      DUEUFUTUGUH $.
  $}

  ${
    $d x A $.  $d y B $.  $d z A $.  $d z B $.  $d a b w A $.  $d a b w B $.
    $d a x $.  $d b y $.  $d z w $.
    $( The cross product of inhabited classes is inhabited.  (Contributed by
       Jim Kingdon, 13-Dec-2018.) $)
    xpm $p |- ( ( E. x x e. A /\ E. y y e. B ) <-> E. z z e. ( A X. B ) ) $=
      ( va vb vw cv wcel wex wa cxp xpmlem eleq1 cbvexv anbi12i 3bitr3i ) FIZDJ
      ZFKZGIZEJZGKZLHIZDEMZJZHKAIZDJZAKZBIZEJZBKZLCIZUFJZCKFGHDENUAUJUDUMTUIFAS
      UHDOPUCULGBUBUKEOPQUGUOHCUEUNUFOPR $.
  $}

  $( A cross product is empty if at least one member is empty.  (Contributed by
     Jim Kingdon, 12-Dec-2018.) $)
  xpeq0r $p |- ( ( A = (/) \/ B = (/) ) -> ( A X. B ) = (/) ) $=
    ( c0 wceq cxp xpeq1 0xp syl6eq xpeq2 xp0 jaoi ) ACDZABEZCDBCDZLMCBECACBFBGH
    NMACECBCAIAJHK $.

  $( Cross 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 inxp xpeq1 0xp syl6eq syl5eq ) ABEZFGZACHBDHENCDEZHZFACBD
    IOQFPHFNFPJPKLM $.

  $( Cross 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 inxp xpeq2 xp0 syl6eq syl5eq ) ABEZFGZCAHDBHECDEZNHZFCADB
    IOQPFHFNFPJPKLM $.

  $( Cross 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 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 $.
  $}

  $( 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 resres reseq2 res0 syl6eq syl5eq ) ABDZEFZCAGBGCMGZECABH
    NOCEGEMECICJKL $.

  ${
    $d x A $.
    $( The range of a cross product.  Part of Theorem 3.13(x) of [Monk1] p. 37,
       with non-empty changed to inhabited.  (Contributed by Jim Kingdon,
       12-Dec-2018.) $)
    rnxpm $p |- ( E. x x e. A -> ran ( A X. B ) = B ) $=
      ( cv wcel wex cxp crn cdm ccnv df-rn cnvxp dmeqi eqtri dmxpm syl5eq ) ADB
      EAFBCGZHZCBGZIZCRQJZITQKUASBCLMNACBOP $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( The domain of a cross product is a subclass of the first factor.
       (Contributed by NM, 19-Mar-2007.) $)
    dmxpss $p |- dom ( A X. B ) C_ A $=
      ( vx vy cxp cdm cv wcel cop wex vex eldm2 opelxp1 exlimiv sylbi ssriv ) C
      ABEZFZACGZRHSDGZIQHZDJSAHZDSQCKLUAUBDSTABMNOP $.
  $}

  $( The range of a cross 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 $.

  ${
    $d x y A $.
    $( The range of a square cross product.  (Contributed by FL,
       17-May-2010.) $)
    rnxpid $p |- ran ( A X. A ) = A $=
      ( vx vy cxp crn rnxpss cv wcel cop wex wa opelxp anidm bitri weq wb opeq1
      eleq1d equcoms biimpd spimev sylbir vex elrn2 sylibr ssriv eqssi ) AADZEZ
      AAAFBAUIBGZAHZCGZUJIZUHHZCJZUJUIHUKUJUJIZUHHZUOUQUKUKKUKUJUJAALUKMNUQUNCB
      CBOUQUNUQUNPBCBCOUPUMUHUJULUJQRSTUAUBCUJUHBUCUDUEUFUG $.
  $}

  ${
    $d x a b A $.  $d x a b B $.
    $( A cross-product subclass relationship is equivalent to the relationship
       for its components.  (Contributed by Jim Kingdon, 12-Dec-2018.) $)
    ssxpbm $p |- ( E. x x e. ( A X. B ) -> ( ( A X. B ) C_ ( C X. D ) <->
                ( A C_ C /\ B C_ D ) ) ) $=
      ( va vb cv cxp wcel wex wss cdm wceq adantl sylbir adantr eqsstr3d syl6ss
      wa xpm dmxpm dmss dmxpss crn rnxpm rnss rnxpss jca ex xpss12 impbid1 ) AH
      BCIZJAKZUMDEIZLZBDLZCELZTZUNUPUSUNUPTZUQURUTBUOMZDUTBUMMZVAUNVBBNZUPUNFHB
      JFKZGHCJGKZTZVCFGABCUAZVEVCVDGBCUBOPQUPVBVALUNUMUOUCORDEUDSUTCUOUEZEUTCUM
      UEZVHUNVICNZUPUNVFVJVGVDVJVEFBCUFQPQUPVIVHLUNUMUOUGORDEUHSUIUJBDCEUKUL $.
  $}

  ${
    $d x C $.
    $( Cross product subset cancellation.  (Contributed by Jim Kingdon,
       14-Dec-2018.) $)
    ssxp1 $p |- ( E. x x e. C ->
        ( ( A X. C ) C_ ( B X. C ) <-> A C_ B ) ) $=
      ( cv wcel wex cxp wss cdm wceq dmxpm adantr adantl eqsstr3d dmxpss syl6ss
      wa dmss ex xpss1 impbid1 ) AEDFAGZBDHZCDHZIZBCIZUCUFUGUCUFRZBUEJZCUHBUDJZ
      UIUCUJBKUFABDLMUFUJUIIUCUDUESNOCDPQTBCDUAUB $.
  $}

  ${
    $d x C $.
    $( Cross product subset cancellation.  (Contributed by Jim Kingdon,
       14-Dec-2018.) $)
    ssxp2 $p |- ( E. x x e. C ->
        ( ( C X. A ) C_ ( C X. B ) <-> A C_ B ) ) $=
      ( cv wcel wex cxp wss crn wceq rnxpm adantr adantl eqsstr3d rnxpss syl6ss
      wa rnss ex xpss2 impbid1 ) AEDFAGZDBHZDCHZIZBCIZUCUFUGUCUFRZBUEJZCUHBUDJZ
      UIUCUJBKUFADBLMUFUJUIIUCUDUESNODCPQTBCDUAUB $.
  $}

  ${
    $d x A $.  $d y B $.  $d A z $.  $d B z $.  $d C z $.  $d D z $.
    $( The cross product of inhabited classes is one-to-one.  (Contributed by
       Jim Kingdon, 13-Dec-2018.) $)
    xp11m $p |- ( ( E. x x e. A /\ E. y y e. B )
        -> ( ( A X. B ) = ( C X. D ) <-> ( A = C /\ B = D ) ) ) $=
      ( vz cv wcel wex wa cxp wceq wi xpm anidm wss ssxpbm syl5ibcom eqss eleq2
      exbidv anbi2d syl5bbr eqimss eqimss2 anim12d anbi12i bitr4i syl6ib sylbid
      an4 com12 sylbi xpeq12 impbid1 ) AHCIAJBHDIBJKZCDLZEFLZMZCEMZDFMZKZUQGHZU
      RIZGJZUTVCNABGCDOUTVFVCUTVFVFVDUSIZGJZKZVCVFVFVFKUTVIVFPUTVFVHVFUTVEVGGUR
      USVDUAUBUCUDUTVICEQZDFQZKZECQZFDQZKZKZVCUTVFVLVHVOUTURUSQVFVLURUSUEGCDEFR
      SUTUSURQVHVOUSURUFGEFCDRSUGVPVJVMKZVKVNKZKVCVJVKVMVNULVAVQVBVRCETDFTUHUIU
      JUKUMUNCEDFUOUP $.
  $}

  ${
    $d x C $.
    $( Cancellation law for cross-product.  (Contributed by Jim Kingdon,
       14-Dec-2018.) $)
    xpcanm $p |- ( E. x x e. C -> ( ( C X. A ) = ( C X. B ) <-> A = B ) ) $=
      ( cv wcel wex cxp wss wa wceq ssxp2 anbi12d eqss 3bitr4g ) AEDFAGZDBHZDCH
      ZIZRQIZJBCIZCBIZJQRKBCKPSUATUBABCDLACBDLMQRNBCNO $.

    $( Cancellation law for cross-product.  (Contributed by Jim Kingdon,
       14-Dec-2018.) $)
    xpcan2m $p |- ( E. x x e. C -> ( ( A X. C ) = ( B X. C ) <-> A = B ) ) $=
      ( cv wcel wex cxp wss wa wceq ssxp1 anbi12d eqss 3bitr4g ) AEDFAGZBDHZCDH
      ZIZRQIZJBCIZCBIZJQRKBCKPSUATUBABCDLACBDLMQRNBCNO $.
  $}

  ${
    $d x a A $.  $d x b B $.
    $( If a nonempty cross product is a set, so are both of its components.
       (Contributed by Jim Kingdon, 14-Dec-2018.) $)
    xpexr2m $p |- ( ( ( A X. B ) e. C /\ E. x x e. ( A X. B ) ) ->
                 ( A e. _V /\ B e. _V ) ) $=
      ( va vb cv cxp wcel wex wa cvv xpm cdm dmxpm adantl dmexg adantr eqeltrrd
      wceq crn rnxpm rnexg anim12dan ancom2s sylan2br ) AGBCHZIAJUGDIZEGBIEJZFG
      CIFJZKBLIZCLIZKZEFABCMUHUJUIUMUHUJUKUIULUHUJKUGNZBLUJUNBTUHFBCOPUHUNLIUJU
      GDQRSUHUIKUGUAZCLUIUOCTUHEBCUBPUHUOLIUIUGDUCRSUDUEUF $.
  $}

  ${
    $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 cross 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 cross 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 cross product.  (Contributed by Thierry Arnoux,
     16-Dec-2017.) $)
  xpima1 $p |- ( ( A i^i C ) = (/) -> ( ( A X. B ) " C ) = (/) ) $=
    ( cin c0 wceq cxp cima cvv crn cres df-ima df-res rneqi 3eqtri xpeq1 syl6eq
    inxp 0xp rneq rn0 syl syl5eq ) ACDZEFZABGZCHZUDBIDZGZJZEUGUFCKZJUFCIGDZJUJU
    FCLUKULUFCMNULUIABCIRNOUEUIEFZUJEFUEUIEUHGEUDEUHPUHSQUMUJEJEUIETUAQUBUC $.

  ${
    $d x A $.  $d x C $.
    $( The image by a cross product.  (Contributed by Thierry Arnoux,
       16-Dec-2017.) $)
    xpima2m $p |- ( E. x x e. ( A i^i C ) -> ( ( A X. B ) " C ) = B ) $=
      ( cv cin wcel wex cxp cima cvv cres df-ima df-res rneqi inxp 3eqtri rnxpm
      crn syl5eq inv1 syl6eq ) AEBDFZGAHZBCIZDJZCKFZCUDUFUCUGIZSZUGUFUEDLZSUEDK
      IFZSUIUEDMUJUKUEDNOUKUHBCDKPOQAUCUGRTCUAUB $.
  $}

  ${
    $d A x $.  $d X x $.
    $( The image of a singleton by a cross product.  (Contributed by Thierry
       Arnoux, 14-Jan-2018.) $)
    xpimasn $p |- ( X e. A -> ( ( A X. B ) " { X } ) = B ) $=
      ( vx wcel cv csn cin wex cxp cima wceq snmg wss snssi dfss1 eleq2d exbidv
      sylib mpbird xpima2m syl ) CAEZDFZACGZHZEZDIZABJUEKBLUCUHUDUEEZDIDCAMUCUG
      UIDUCUFUEUDUCUEANUFUELCAOUEAPSQRTDABUEUAUB $.
  $}

  ${
    $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.
       (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 $.
  $}

  $( The double converse of a class strips out all elements that are not
     ordered pairs.  (Contributed by NM, 8-Dec-2003.) $)
  cnvcnv $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 $.

  ${
    $d A w y $.  $d B w y $.  $d V w y $.  $d x w y $.
    $( Distribute proper substitution through the range of a class.
       (Contributed by Alan Sare, 10-Nov-2012.) $)
    csbrng $p |- ( A e. V -> [_ A / x ]_ ran B = ran [_ A / x ]_ B ) $=
      ( vw vy wcel cv cop wex cab csb crn wsbc csbabg sbcexg exbidv bitrd dfrn3
      sbcel2g abbidv eqtrd csbeq2i 3eqtr4g ) BDGZABEHFHIZCGZEJZFKZLZUFABCLZGZEJ
      ZFKZABCMZLUKMUEUJUHABNZFKUNUHAFBDOUEUPUMFUEUPUGABNZEJUMUGEABDPUEUQULEABUF
      CDTQRUAUBABUOUIEFCSUCEFUKSUD $.
  $}

  $( 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 inhabited iff the singleton argument is an
       ordered pair.  (Contributed by Jim Kingdon, 15-Dec-2018.) $)
    dmsnm $p |- ( A e. ( _V X. _V ) <-> E. x x e. dom { A } ) $=
      ( vy cvv cxp wcel cop wceq wex csn cdm elvv wbr vex eldm df-br opex exbii
      cv elsn eqcom 3bitri bitr2i bitri ) BDDEFBASZCSZGZHZCIZAIUEBJZKFZAIACBLUI
      UKAUKUEUFUJMZCIUICUEUJANZOULUHCULUGUJFUGBHUHUEUFUJPUGBUEUFUMCNQTUGBUAUBRU
      CRUD $.
  $}

  ${
    $d x A $.
    $( The range of a singleton is inhabited iff the singleton argument is an
       ordered pair.  (Contributed by Jim Kingdon, 15-Dec-2018.) $)
    rnsnm $p |- ( A e. ( _V X. _V ) <-> E. x x e. ran { A } ) $=
      ( cvv cxp wcel cv csn cdm wex crn dmsnm dmmrnm bitri ) BCCDEAFZBGZHEAINOJ
      EAIABKAAOLM $.
  $}

  $( The domain of the singleton of the empty set is empty.  (Contributed by
     NM, 30-Jan-2004.) $)
  dmsn0 $p |- dom { (/) } = (/) $=
    ( vx c0 csn cdm wceq cv wcel wn wal wex cvv cxp 0nelxp dmsnm mtbi alnex eq0
    mpbir ) BCDZBEAFSGZHAIZUATAJZHBKKLGUBKKMABNOTAPRASQR $.

  $( 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 $.

  ${
    $d x A $.
    $( 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 } = (/) ) $=
      ( vx c0 wcel cv csn cdm wn wal wceq wex 0nelelxp con2i dmsnm sylnib alnex
      cvv cxp sylibr eq0 ) CADZBEAFGZDZHBIZUBCJUAUCBKZHUDUAAQQRDZUEUFUAQQALMBAN
      OUCBPSBUBTS $.
  $}

  ${
    $d x A $.
    relsn2m.1 $e |- A e. _V $.
    $( A singleton is a relation iff it has an inhabited domain.  (Contributed
       by Jim Kingdon, 16-Dec-2018.) $)
    relsn2m $p |- ( Rel { A } <-> E. x x e. dom { A } ) $=
      ( csn wrel cvv cxp wcel cv cdm wex relsn dmsnm bitri ) BDZEBFFGHAIOJHAKBC
      LABMN $.
  $}

  ${
    $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
      ZDABGZHZIZAHZUJDJZEJZGZUKKZELZUOAKZUOUMFZUOUNFUJUSUTURUTEUOUPABDMZEMZNOUT
      UOBGZUKKZUJUSUOABPURVEEBCUPBKUQVDUKUPBUOQRSTUAVAUQULFZELUSEUOULVBUBVFUREU
      QUKUOUPVBVCUCUDUEUFDAUGUHUI $.

    $( 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 >. } $=
      ( vy vx cop csn ccnv relcnv cv wcel vex opelcnv wceq wa opth 3bitr4i opex
      ancom elsn bitri eqrelriiv ) CDABEZFZGZGZBAEZFZGZUDHUGHCIZDIZEZUEJUJUIEZU
      DJZUKUHJZUIUJUDCKZDKZLUKUCJZULUGJZUMUNUKUBMZULUFMZUQURUIAMZUJBMZNVBVANUSU
      TVAVBRUIUJABUOUPOUJUIBAUPUOOPUKUBUIUJUOUPQSULUFUJUIUPUOQSPUJUIUCUPUOLUIUJ
      UGUOUPLPTUA $.

    $( The domain of the singleton of the singleton of a singleton.
       (Contributed by Jim Kingdon, 16-Dec-2018.) $)
    dmsnsnsng $p |- ( A e. _V -> dom { { { A } } } = { A } ) $=
      ( vx cop csn cdm wceq cvv vex opid sneq sneqd syl5eq dmeqd eqeq12d dmsnop
      cv vtoclg ) BPZRCZDZEZRDZFADZDZDZEZUCFBAGRAFZUAUFUBUCUGTUEUGSUDUGSUBDUDRB
      HZIUGUBUCRAJZKLKMUINRRUHOQ $.
  $}

  $( 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 $.

  ${
    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 and ~ op1stb for an alternate 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.) $)
    cnvsn $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 and ~ op2nda
       for an alternate version.)  (Contributed by NM, 25-Nov-2003.) $)
    op2ndb $p |- |^| |^| |^| `' { <. A , B >. } = B $=
      ( cop csn ccnv cint cnvsn inteqi opex intsn eqtri op1stb ) ABEFGZHZHZHBAE
      ZHZHBQSPRPRFZHROTABCDIJRBADCKLMJJBADCNM $.

    $( Extract the second member of an ordered pair.  (See ~ op1sta to extract
       the first member and ~ op2ndb for an alternate 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 $.  $d x y C $.
    $( Converse of a singleton of an ordered pair.  (Contributed by NM,
       23-Jan-2015.) $)
    cnvsng $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 Jim Kingdon,
       16-Dec-2018.) $)
    opswapg $p |- ( ( A e. V /\ B e. W ) ->
                                       U. `' { <. A , B >. } = <. B , A >. ) $=
      ( wcel cop csn ccnv cuni cnvsng unieqd cvv wceq elex opexg syl2anr unisng
      wa syl eqtrd ) ACEZBDEZRZABFGHZIBAFZGZIZUEUCUDUFABCDJKUCUELEZUGUEMUBBLEAL
      EUHUABDNACNBALLOPUELQST $.

    $( Membership in a cross product.  This version requires no quantifiers or
       dummy variables.  See also ~ elxp5 .  (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 cvv csn cdm cuni crn cop wceq wa elex eleq1 wex unieqd syl
      wb cxp anim12i opexg adantl adantr mpbird sylan2 cv elxp a1i rneqd op2nda
      sneq vex syl6req anbi1i anass bitri exbii snexg rnexg uniexg opeq2 eqeq2d
      pm4.71ri anbi2d anbi12d ceqsexgv syl5bb dmeqd dmsnopg unisn syl6eq eqtr2d
      ex pm4.71rd anbi1d 3bitrd exbidv dmexg opeq1 pm5.21nii ) ABCUAZFZAGFZAAHZ
      IZJZWFKZJZLZMZWHBFZWJCFZNZNZAWCOWOWLWHGFZWJGFZNZWEWMWQWNWRWHBOWJCOUBWLWSN
      WEWKGFZWSWTWLWHWJGGUCUDWLWEWTTWSAWKGPUEUFUGWEWDADUHZEUHZLZMZXABFZXBCFZNZN
      ZEQZDQZXAWHMZAXAWJLZMZXEWNNZNZNZDQZWPWDXJTWEDEABCUIUJWEXIXPDWEXIXOXKXMNZX
      NNZXPXIXBWJMZXHNZEQZWEXOXHYAEXHXTXDNZXGNYAXDYCXGXDXTXDWJXCHZKZJXBXDWIYEXD
      WFYDAXCUMUKRXAXBDUNZEUNULUOVEUPXTXDXGUQURUSWEWRYBXOTWEWIGFZWRWEWFGFZYGAGU
      TZWFGVASWIGVBSZXHXOEWJGXTXDXMXGXNXTXCXLAXBWJXAVCVDXTXFWNXEXBWJCPVFVGVHSVI
      WEXMXRXNWEXMXKWEXMXKWEXMNWHXLHZIZJZXAXMWHYMMWEXMWGYLXMWFYKAXLUMVJRUDWEYMX
      AMXMWEYMXAHZJXAWEYLYNWEWRYLYNMYJXAWJGVKSRXAYFVLVMUEVNVOVPVQXSXPTWEXKXMXNU
      QUJVRVSWEWQXQWPTWEWGGFZWQWEYHYOYIWFGVTSWGGVBSXOWPDWHGXKXMWLXNWOXKXLWKAXAW
      HWJWAVDXKXEWMWNXAWHBPVQVGVHSVRWB $.

    $( Membership in a cross 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 cvv cint csn crn cuni cop wceq wa elex eleq1 adantr wex syl
      wb cxp anim12i opexg adantl mpbird sylan2 cv elxp rneqd unieqd vex op2nda
      syl6req pm4.71ri anbi1i anass bitri exbii snexg rnexg uniexg opeq2 eqeq2d
      sneq anbi2d anbi12d ceqsexgv syl5bb inteq inteqd op1stbg sylancr pm4.71rd
      eqtr2d anbi1d a1i 3bitrd exbidv eqvisset exlimiv ad2antrl opeq1 pm5.21nii
      ex syl6bb ) ABCUAZFZAGFZAAHZHZAIZJZKZLZMZWJBFZWMCFZNZNZAWFOWRWOWJGFZWMGFZ
      NZWHWPWTWQXAWJBOZWMCOUBWOXBNWHWNGFZXBXDWOWJWMGGUCUDWOWHXDTXBAWNGPQUEUFWHW
      GDUGZWJMZAXEWMLZMZXEBFZWQNZNZNZDRZWSWGAXEEUGZLZMZXIXNCFZNZNZERZDRWHXMDEAB
      CUHWHXTXLDWHXTXKXFXHNZXJNZXLXTXNWMMZXSNZERZWHXKXSYDEXSYCXPNZXRNYDXPYFXRXP
      YCXPWMXOIZJZKXNXPWLYHXPWKYGAXOVDUIUJXEXNDUKZEUKULUMUNUOYCXPXRUPUQURWHXAYE
      XKTWHWLGFZXAWHWKGFYJAGUSWKGUTSWLGVASZXSXKEWMGYCXPXHXRXJYCXOXGAXNWMXEVBVCY
      CXQWQXIXNWMCPVEVFVGSVHWHXHYAXJWHXHXFWHXHXFWHXHNWJXGHZHZXEXHWJYMMWHXHWIYLA
      XGVIVJUDWHYMXEMZXHWHXEGFXAYNYIYKXEWMGGVKVLQVNWDVMVOYBXLTWHXFXHXJUPVPVQVRV
      HXMWTWSXLWTDXFWTXKDWJVSQVTWPWTWOWQXCWAXKWSDWJGXFXHWOXJWRXFXGWNAXEWJWMWBVC
      XFXIWPWQXEWJBPVOVFVGWCWEWC $.
  $}

  ${
    $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 cv cop wa wex vex elima3 anbi1i opelcnv bitr4i
      wcel bitri elin opelres anbi2i anass exbii 19.41v 3bitr4ri eqriv ) DCAFZG
      ZBHZCGZBHZAIZDJZUKSEJZBSZUPUOKZUJSZLZEMZUOUNSZEUOUJBDNZOUOUMSZUOASZLUQURU
      LSZLZEMZVELZVBVAVDVHVEEUOULBVCOPUOUMAUAVAVGVELZEMVIUTVJEUTUQVFVELZLVJUSVK
      UQUSUOUPKZUISZVKUPUOUIENZVCQVMVLCSZVELVKUOUPCAVNUBVFVOVEUPUOCVNVCQPRTUCUQ
      VFVEUDRUEVGVEEUFTUGTUH $.
  $}

  $( 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 $.

  $( 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 $.
    dmmpt2.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 $.

  ${
    $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 wbr wa wex wrex cop eliun df-br
      reliun a1i mprgbir rexbii 3bitr4i anbi1i r19.41v bitr4i exbii rexcom4 vex
      opelco bitri eqrelriiv ) EFBADCHZIZADBCIZHZBUOJURKUQKZADADUQUAUSALDMBCJUB
      UCELZGLZUONZVAFLZBNZOZGPZUTVACNZVDOZGPZADQZUTVCRZUPMVKURMZVFVHADQZGPVJVEV
      MGVEVGADQZVDOVMVBVNVDUTVARZUOMVOCMZADQVBVNAVODCSUTVAUOTVGVPADUTVACTUDUEUF
      VGVDADUGUHUIVHAGDUJUHGUTVCBUOEUKZFUKZULVLVKUQMZADQVJAVKDUQSVSVIADGUTVCBCV
      QVRULUDUMUEUN $.
  $}

  $( 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 cv cop wcel wbr wa noel df-br mtbir intnanr
      wex nex vex opelco 2false eqrelriiv ) BCAEFZEAEGHBIZCIZJZUDKZUGEKUHUEDIZE
      LZUIUFALZMZDRULDUJUKUJUEUIJZEKUMNUEUIEOPQSDUEUFAEBTCTUAPUGNUBUC $.

    $( 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 ceqsexv df-br eqrelriv mpan ) AEFZGAGUHA
      HAEIBCUHABJZCJZKZUHLZUIUJAMZUKALULUIDJZEMZUNUJAMZRZDNZUMDUIUJAEBOZCOPURUN
      UIHZUPRZDNUMUQVADUOUTUPUOUIUNHUTUIUNDOSBDQTUAUBUPUMDUIUSUNUIUJAUCUDTTUIUJ
      AUETUFUG $.

    $( 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 ccom cnvco wceq relcnv ax-mp cnveqi eqtr3i dfrel2 coeq2 coeq1
      cid coi1 cnvi sylan9eq mpan2 sylbi biimpi 3eqtr3a ) ABZNCZACZCZDZUENADZAU
      DNDZCUFUEUDNEUHUDUDBUHUDFAGUDOHIJUBUEAFZUFUGFZAKZUIUCNFZUJPUIULUFUCADUGUE
      AUCLUCNAMQRSUBUIUKTUA $.
  $}

  $( 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 cross 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 cross 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 ) ) $=
    ( vx wrel cdm wa cvv cxp wss df-rel anbi2i crn relssdmrn ssv mpan2 sylan9ss
    xpss12 xpss sstr sylibr dmss cv wcel wex wceq vn0m dmxpm ax-mp syl6sseq jca
    impbii bitri ) ACZADZCZEULUMFFGZHZEZAUOFGZHZUNUPULUMIJUQUSULUPAUMAKZGZURALU
    PUTFHVAURHUTMUMUOUTFPNOUSULUPUSAUOHZULUSURUOHVBUOFQAURUORNAISUSUMURDZUOAURT
    BUAFUBBUCVCUOUDBUEBUOFUFUGUHUIUJUK $.

  ${
    $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 crn wss wceq cdm cun dmrnssfld simpr sylbir ax-mp
    wa unss cores mp1i coi2 eqtrd ) ABZCADDZEAFZCAFZAAGZUCHZUDUEIUBAJZUFKUCHZUG
    ALUIUHUCHZUGPUGUHUFUCQUJUGMNOCAUCRSATUA $.

  $( Composition with the identity relation restricted to a relation's field.
     (Contributed by FL, 8-May-2011.) $)
  relcoi1 $p |- ( Rel R -> ( R o. ( _I |` U. U. R ) ) = R ) $=
    ( wrel cid cuni cres ccom cun wceq wi resco reseq1 wa eqtr eqeq1 syl5ibr ex
    syl com3l eqcoms mpcom cdm crn relfld resundi coeq2 coundi coi1 resdm uneq1
    uneq2d wss resss ssequn2 mpbi syl6reqr mpsyl syl5com mpi syl5eq mp2b reseq2
    coeq2d eqeq1d eqtrd ) ABZACADDZEZFZACFZAVFAUAZAUBZGZHZVEVHVIHZAUCVEVNVMACVL
    EZFZVIHZVOCVJEZCVKEZGZHVPAVTFZHZVEVQICVJVKUDVOVTAUEVEVQWBWAVIHVEWAAVRFZAVSF
    ZGZVIAVRVSUFVEVIVJEZWCHZWEVIHZACVJJVIAHZVEWGWHIZAUGZWIWFAVJEZHZVEWJVIAVJKWL
    AHZVEWMWJIAUHWMWNVEWJWMWNVEWJIZWMWNLWFAHZWOWFWLAMWGWPVEWHWPVEWHIZIWCWFWCWFH
    ZWPWQWRWPLWCAHZWQWCWFAMVIVKEZWDHZWSWEAWDGZHZWQACVKJWCAWDUIVEXAXCWHWIVEXAXCW
    HIZIZWKWIWTAVKEZHZVEXEIVIAVKKXAXGVEXDXGVEXDIZIWDWTWDWTHZXGXHXIXGLZXBAXFGZHZ
    XHXJWDXFAWDWTXFMUJXCXLVEWHXCXLWQXCXLLWEXKHZWQWEXBXKMVEWHXMXKVIHVEVIAXKWKXFA
    UKXKAHAVKULXFAUMUNUOWEXKVINOQPRQPSRQTRUPQPSRQPRTUQTURUSVPWAVINOUTVMVHVPVIVM
    VGVOAVFVLCVAVBVCOTWKVD $.

  $( 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 $.

  ${
    $d x a A $.  $d x b B $.
    $( The double class union of an inhabited cross product is the union of its
       members.  (Contributed by Jim Kingdon, 18-Dec-2018.) $)
    unixpm $p |- ( E. x x e. ( A X. B ) -> U. U. ( A X. B ) = ( A u. B ) ) $=
      ( vb va cv cxp wcel wex cuni cdm crn cun wrel relxp relfld ax-mp wa ancom
      wceq xpm bitri dmxpm rnxpm uneq12 syl2an sylbir syl5eq ) AFBCGZHAIZUIJJZU
      IKZUILZMZBCMZUINUKUNTBCOUIPQUJDFCHDIZEFBHEIZRZUNUOTZURUQUPRUJUPUQSEDABCUA
      UBUPULBTUMCTUSUQDBCUCEBCUDULBUMCUEUFUGUH $.
  $}

  $( The union of an empty cross product is empty.  (Contributed by Jim
     Kingdon, 18-Dec-2018.) $)
  unixp0im $p |- ( ( A X. B ) = (/) -> U. ( A X. B ) = (/) ) $=
    ( cxp c0 wceq cuni unieq uni0 syl6eq ) ABCZDEJFDFDJDGHI $.

  $( 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 $.

  ${
    $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 $.  $d A a b y $.
    $( The converse of an intersection is the intersection of the converse.
       (Contributed by Jim Kingdon, 18-Dec-2018.) $)
    cnviinm $p |- ( E. y y e. A -> `' |^|_ x e. A B = |^|_ x e. A `' B ) $=
      ( va vb cv wcel wex ciin ccnv eleq1 cbvexv wrel relcnv cvv wss df-rel cop
      wral wceq cxp wrex wi r19.2m expcom mpbi a1i mprg iinss syl sylibr wb vex
      eliin ax-mp opelcnv ralbii bitri 3bitr4i eqrelriv sylancr sylbir sylbi
      opex ) BGZCHZBIEGZCHZEIZACDJZKZACDKZJZUAZVGVIBEVFVHCLMVJAGZCHZAIZVOVQVIAE
      VPVHCLMVRVLNVNNZVOVKOVRVNPPUBZQZVSVRVMVTQZACUCZWAWBVRWCUDACVRWBACTWCWBACU
      EUFWBVQVMNWBDOVMRUGUHUIACVMVTUJUKVNRULEFVLVNFGZVHSZVKHZWEDHZACTZVHWDSZVLH
      WIVNHZWEPHWFWHUMWDVHFUNZEUNZVEAWECDPUOUPVHWDVKWLWKUQWJWIVMHZACTZWHWIPHWJW
      NUMVHWDWLWKVEAWICVMPUOUPWMWGACVHWDDWLWKUQURUSUTVAVBVCVD $.
  $}

  ${
    $d x y z w A $.  $d x y z w R $.
    $( The converse of a partial order relation is a partial order relation.
       (Contributed by NM, 15-Jun-2005.) $)
    cnvpom $p |- ( E. x x e. A -> ( R Po A <-> `' R Po A ) ) $=
      ( vw vy vz cv wbr wn wa wral wpo r19.26 ralbidv ralbii 3bitr4g vex ralcom
      wi brcnv wcel wex ralidm r19.3rmv syl5rbb anbi1d syl5bb id breq12d notbid
      ccnv weq cbvralv anbi12ci imbi12i anbi12i bitr2i bitri syl6bb df-po ) AGB
      UAAUBZDGZVBCHZIZVBEGZCHZVEFGZCHZJZVBVGCHZSZJFBKZEBKDBKZVGVGCUKZHZIZVGVEVN
      HZVEVBVNHZJZVGVBVNHZSZJZDBKZEBKFBKZBCLBVNLVAVLDBKZEBKWCFBKZEBKVMWDVAWEWFE
      BVAWEVDDBKZVKFBKZJZDBKZWFVAVDFBKZWHJZDBKZWGDBKZWHDBKZJZWEWJWMWKDBKZWOJVAW
      PWKWHDBMVAWQWNWOWNWGVAWQVDDBUCVAVDWKDBVDFABUDNUEUFUGVLWLDBVDVKFBMOWGWHDBM
      PWJWBFBKZDBKWFWIWRDBWRVPFBKZWAFBKZJWIVPWAFBMWSWGWTWHVPVDFDBFDULZVOVCVOVGV
      GCHXAVCVGVGCFQZXBTXAVGVBVGVBCXAUHZXCUIUGUJUMWAVKFBVSVIVTVJVQVHVRVFVGVECXB
      EQZTVEVBCXDDQZTUNVGVBCXBXETUOOUPUQOWBDFBBRURUSNVLDEBBRWCFEBBRPDEFBCUTFEDB
      VNUTP $.

    $( The converse of a strict order relation is a strict order relation.
       (Contributed by Jim Kingdon, 19-Dec-2018.) $)
    cnvsom $p |- ( E. x x e. A -> ( R Or A <-> `' R Or A ) ) $=
      ( vy vz cv wcel wex wpo wbr wo wi wral ccnv wor cnvpom vex brcnv df-iso
      wa orbi12i orcom imbi12i ralbii 2ralbii ralcom bitr3i a1i anbi12d 3bitr4g
      wb bitri ) AFZBGAHZBCIZUMDFZCJZUMEFZCJZURUPCJZKZLZEBMZDBMABMZTBCNZIZUPUMV
      EJZUPURVEJZURUMVEJZKZLZEBMZABMDBMZTBCOBVEOUNUOVFVDVMABCPVDVMUKUNVDVLDBMAB
      MVMVLVCADBBVKVBEBVGUQVJVAUPUMCDQZAQZRVJUTUSKVAVHUTVIUSUPURCVNEQZRURUMCVPV
      ORUAUTUSUBULUCUDUEVLADBBUFUGUHUIADEBCSDAEBVESUJ $.
  $}

  $( 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 x a c A $.  $d x a c B $.  $d x a c C $.
    $( Composition of two cross products.  (Contributed by Jim Kingdon,
       20-Dec-2018.) $)
    xpcom $p |- ( E. x x e. B -> ( ( B X. C ) o. ( A X. B ) ) = ( A X. C ) ) $=
      ( va vc cv wcel wex cxp wbr wa copab ccom ibar anbi1i brxp anbi12i anandi
      ancom 3bitr4i exbii 19.41v bitr2i syl6rbb opabbidv df-co df-xp 3eqtr4g )
      AGZCHZAIZEGZUJBCJZKZUJFGZCDJZKZLZAIZEFMUMBHZUPDHZLZEFMUQUNNBDJULUTVCEFULV
      CULVCLZUTULVCOUTUKVCLZAIVDUSVEAVAUKLZUKVBLZLUKVALZVGLUSVEVFVHVGVAUKTPUOVF
      URVGUMUJBCQUJUPCDQRUKVAVBSUAUBUKVCAUCUDUEUFEFAUQUNUGEFBDUHUI $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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
       ~ iotacl (for unbounded iota).  This can be easier than applying 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 y z $.
    nfiotadxy.1 $e |- F/ y ph $.
    nfiotadxy.2 $e |- ( ph -> F/ x ps ) $.
    $( Deduction version of ~ nfiotaxy .  (Contributed by Jim Kingdon,
       21-Dec-2018.) $)
    nfiotadxy $p |- ( ph -> F/_ x ( iota y ps ) ) $=
      ( vz cio cv wceq wb wal cab cuni dfiota2 nfv wnf nfcv nfeq a1i nfcxfrd
      nfbid nfald nfabd nfunid ) ACBDHBDIZGIZJZKZDLZGMZNBDGOACUKAUJCGAGPAUICDEA
      BUHCFUHCQACUFUGCUFRCUGRSTUBUCUDUEUA $.
  $}

  ${
    $d x y $.
    nfiota.1 $e |- F/ x ph $.
    $( Bound-variable hypothesis builder for the ` iota ` class.  (Contributed
       by NM, 23-Aug-2011.) $)
    nfiotaxy $p |- F/_ x ( iota y ph ) $=
      ( cio wnfc wtru nftru wnf a1i nfiotadxy 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 vex sbeqalb equcomi
      wa wi ax-mp ex equequ2 equcoms bibi2d biimpd alimdv com12 alrimiv uniabio
      syl6 impbid syl syl5eq ) ABCEZFZBGZABHABDEZFZBGZDIJZCKZABDLUQUTDCEZFZDGVA
      VBMUQVDDUQUTVCUQUTVCVBNOZUQUTSZVCTCPVEVFCDEVCABVBDKNQCDRUKUAUBVCUQUTVCUPU
      SBVCUPUSVCUOURAUOURFCDCDBUCUDUEUFUGUHULUIUTDCUJUMUN $.

    $( 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 uniintabim eqtrd ) ABCABDABEZFKGABHABIJ
      $.

    $( 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 wn cio c0 wss wceq weq wb wal wex df-eu cab dfiota2 alnex ax-in2
      cuni wi alimi ss2ab sylibr dfnul2 syl6sseqr sylbir uni0 syl6sseq syl5eqss
      unissd sylnbi ss0 syl ) ABDZEABFZGHZUOGIUNABCJKBLZCMZUPABCNUREZUOUQCOZSZG
      ABCPUSVAGSGUSUTGUSUQEZCLZUTGHUQCQVCUTCCJEZCOZGVCUQVDTZCLUTVEHVBVFCUQVDRUA
      UQVDCUBUCCUDUEUFUJUGUHUIUKUOULUM $.
  $}

  ${
    $d ph y $.  $d x y $.
    $( Theorem 8.23 in [Quine] p. 58, with existential uniqueness condition
       added.  This theorem proves the existence of the ` iota ` class under
       our definition.  (Contributed by Jim Kingdon, 21-Dec-2018.) $)
    euiotaex $p |- ( E! x ph -> ( iota x ph ) e. _V ) $=
      ( vy cv wceq wb wal wex cio weu cvv wcel iotaval eqcomd eximi df-eu isset
      3imtr4i ) ABDCDZEFBGZCHSABIZEZCHABJUAKLTUBCTUASABCMNOABCPCUAQR $.
  $}

  ${
    $d x y A $.  $d y ph $.
    $( Value of iota based on a proposition which holds only for values which
       are subsets of a given class.  (Contributed by Mario Carneiro and Jim
       Kingdon, 21-Dec-2018.) $)
    iotass $p |- ( A. x ( ph -> x C_ A ) -> ( iota x ph ) C_ A ) $=
      ( vy cv wss wal cio cab csn wceq cuni df-iota cpw unieq vex df-pw sspwuni
      wi sylib unisn syl6eq sseq2i ss2ab bitri biimpri sseq1 syl2anr ex ss2abdv
      biimpa syl6sseqr syl5eqss ) ABECFZSBGZABHABIZDEZJZKZDIZLZCABDMUOUTCNZFVAC
      FUOUTUQCFZDIVBUOUSVCDUOUSVCUSUPLZUQKZVDCFZVCUOUSVDURLUQUPUROUQDPUAUBUOUPV
      BFZVFVGUOVGUPUNBIZFUOVBVHUPBCQUCAUNBUDUEUFUPCRTVEVFVCVDUQCUGUKUHUIUJDCQUL
      UTCRTUM $.
  $}

  ${
    $d ph z $.  $d x z $.
    $( 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 bi2 alimi sb2 syl wceq iotaval
      wi cv eqcomd dfsbcq2 mpbid exlimiv sylbi ) ABDABCEZFZBGZCHABABIZJZABCKUHU
      JCUHABCLZUJUHUFASZBGUKUGULBAUFMNABCOPUHCTZUIQUKUJFUHUIUMABCRUAABCUIUBPUCU
      DUE $.
  $}

  $( 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 euiotaex simpl sbcth syl wb sbcimg mpbid mpd
    wcel ) ABDZCEZTCTCFZGZACUBGZTCHUATAIZCUBGZUCUDIZUAUBJSZUFTCKZUECUBJABLMNUAU
    HUFUGOUITACUBJPNQR $.

  ${
    $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 useful for expanding an unbounded iota-based definition (see
     ~ df-iota ).

     (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 cv cab wcel cio csn wb wal wceq nfeu1 iota1 eqcom syl6bb abid 3bitr4g
    vex elsn alrimi nfab1 nfiota1 nfsn cleqf sylibr ) ABCZBDZABEZFZUGABGZHZFZIZ
    BJUHUKKUFUMBABLUFAUGUJKZUIULUFAUJUGKUNABMUJUGNOABPUGUJBRSQTBUHUKABUABUJABUB
    UCUDUE $.

  ${
    $d A y z $.  $d x y z $.  $d ph z $.
    $( Class substitution within a description binder.  (Contributed by Scott
       Fenton, 6-Oct-2017.) $)
    csbiotag $p |- ( A e. V ->
        [_ A / x ]_ ( iota y ph ) = ( iota y [. A / x ]. ph ) ) $=
      ( vz cio csb wsb wceq wsbc csbeq1 dfsbcq2 iotabidv eqeq12d nfs1v nfiotaxy
      cv vex weq sbequ12 csbief vtoclg ) BFRZACGZHZABFIZCGZJBDUEHZABDKZCGZJFDEU
      DDJZUFUIUHUKBUDDUELULUGUJCABFDMNOBUDUEUHFSUGBCABFPQBFTAUGCABFUANUBUC $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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 _I ` is true ( ~ funi ).  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 ).  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 , ~ dffun4 , ~ 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.  (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.  (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.  Compare Definition 6.15(5) of
       [TakeutiZaring] p. 27.  We use their notation ("1-1" above the arrow).
       (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).  (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.  Compare Definition 6.15(6) of
       [TakeutiZaring] p. 27.  We use their notation ("1-1" above the arrow and
       "onto" below the arrow).  (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, ` ( _I `` (/) ) = (/) ` .  Typically,
       function ` F ` is defined using maps-to notation (see ~ df-mpt ), but
       this is not required.  For example, F = { ` <. ` 2 , 6 ` >. ` , ` <. `
       3 , 9 ` >. ` } -> ( F ` `` ` 3 ) = 9 .  We will later 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.  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.  (Contributed by NM, 1-Aug-1994.)  Revised to use ` iota ` .
       (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 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 $.

    $( A way of proving a relation is a function, analogous to ~ mo2r .
       (Contributed by Jim Kingdon, 27-May-2020.) $)
    dffun5r $p |- ( ( Rel A /\
        A. x E. z A. y ( <. x , y >. e. A -> y = z ) ) -> Fun A ) $=
      ( wrel cv cop wcel weq wi wal wex wa wfun wmo nfv mo2r opeq2 eleq1d mo4
      sylib alimi anim2i dffun4 sylibr ) DEZAFZBFZGZDHZBCIZJBKCLZAKZMUFUJUGCFZG
      ZDHZMUKJCKBKZAKZMDNUMURUFULUQAULUJBOUQUJBCUJCPQUJUPBCUKUIUODUHUNUGRSTUAUB
      UCABCDUDUE $.
  $}

  ${
    $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 cv wbr wa weq wal wmo nfcv nfbr nfv breq2 albii wi dffun2
      wrel cbvmo mo4 nfmo breq1 mobidv cbval 3bitr3ri anbi2i bitr4i ) CICUCZFJZ
      GJZCKZUNHJZCKZLGHMUAHNGNZFNZLUMAJZBJZCKZBOZANZLFGHCUBVEUTUMUPGOZFNUNVBCKZ
      BOZFNUTVEVFVHFUPVGGBBUNUOCBUNPEBUOPQVGGRUOVBUNCSUDTVFUSFUPURGHUOUQUNCSUET
      VHVDFAVGABAUNVBCAUNPDAVBPQUFVDFRFAMVGVCBUNVAVBCUGUHUIUJUKUL $.
  $}

  ${
    $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 $.
  $}

  ${
    $d x y z w $.  $d A w $.
    dffun4f.1 $e |- F/_ x A $.
    dffun4f.2 $e |- F/_ y A $.
    dffun4f.3 $e |- F/_ z A $.
    $( Definition of function like ~ dffun4 but using bound-variable hypotheses
       instead of distinct variable conditions.  (Contributed by Jim Kingdon,
       17-Mar-2019.) $)
    dffun4f $p |- ( Fun A <-> ( Rel A /\
                 A. x A. y A. z ( ( <. x , y >. e. A /\ <. x , z >. e. A )
                 -> y = z ) ) ) $=
      ( vw cv wbr wal wa weq wi cop wcel nfcv nfbr breq2 albii wfun wmo dffun6f
      wrel mo4f nfv nfan nfim anbi2d equequ2 imbi12d cbval bitr4i df-br anbi12i
      anbi2i imbi1i 2albii 3bitri ) DUADUDZAIZBIZDJZBUBZAKZLUTVCVACIZDJZLZBCMZN
      ZCKZBKZAKZLUTVAVBODPZVAVFODPZLZVINZCKBKZAKZLABDEFUCVEVMUTVDVLAVDVCVAHIZDJ
      ZLZBHMZNZHKZBKVLVCWABHBVAVTDBVAQFBVTQRVBVTVADSUEVKWEBVJWDCHVJHUFWBWCCVCWA
      CCVAVBDCVAQZGCVBQRCVAVTDWFGCVTQRUGWCCUFUHCHMZVHWBVIWCWGVGWAVCVFVTVADSUICH
      BUJUKULTUMTUPVMVSUTVLVRAVJVQBCVHVPVIVCVNVGVOVAVBDUNVAVFDUNUOUQURTUPUS $.
  $}

  $( 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 $.

  $( 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 vy vz wrel cv wbr wa wi wal wsbc sbcal csbconstg bitrd syl5bb albidv
      csb wcel weq wfun sbcan sbcrel sbcimg sbcbrg breq12d anbi12d sbcg imbi12d
      dffun2 sbcbii 3bitr4g ) BDUAZCHZEIZFIZCJZUQGIZCJZKZFGUBZLZGMZFMZEMZKZABNZ
      ABCTZHZUQURVJJZUQUTVJJZKZVCLZGMZFMZEMZKZCUCZABNVJUCVIUPABNZVGABNZKUOVSUPV
      GABUDUOWAVKWBVRABCDUEWBVFABNZEMUOVRVFEABOUOWCVQEWCVEABNZFMUOVQVEFABOUOWDV
      PFWDVDABNZGMUOVPVDGABOUOWEVOGUOWEVBABNZVCABNZLVOVBVCABDUFUOWFVNWGVCWFUSAB
      NZVAABNZKUOVNUSVAABUDUOWHVLWIVMUOWHABUQTZABURTZVJJVLABUQURDCUGUOWJUQWKURV
      JABUQDPZABURDPUHQUOWIWJABUTTZVJJVMABUQUTDCUGUOWJUQWMUTVJWLABUTDPUHQUIRVCA
      BDUJUKQSRSRSRUIRVTVHABEFGCULUMEFGVJULUN $.
  $}

  ${
    $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
    $.

  $( 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.) $)
    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
      GSZUPUQYGYKYFXNXQYMHSZURUSXOXRXNYMUTGHVAURVBVCVDXGIOZJOZMZXFLZYOKOZMZXFLZ
      UIZJKPZQZKVEJVEIVEZYIYFXFLZYGXFLZUIZYEXGYBUUEIJKXFVFVGYIUUFUUGYIUUFYFYHLY
      FYGXNXNYMYMVTVHXFYHYFVIVJYIUUGYGYHLYFYGXNXQYMYNVTVKXFYHYGVIVJVLXNTLZUUIXQ
      TLUUEUUHYEQZQYMYMYNUUDUUJIJKXNXNXQTTTIGPZJGPZKHPZVMZUUBUUHUUCYEUUNYRUUFUU
      AUUGUUNYQYFXFUUKUULYQYFNUUMYOYPXNXNVNVOVPUUNYTYGXFUUKUUMYTYGNUULYOYSXNXQV
      NVQVPVRUULUUMUUCYEVSUUKYPXNYSXQWAWBUBWCWDWEWFXPXSYEXHQYEXSXPXHYEXSXEXONZX
      PXHQYEXRXOXEYEXOXNXNRXRXNWGXNXQXNWHWIWJXPUUOXHXDXEXOWKWLWMWNWOWPWQWRWSWT
      $.
  $}

  ${
    $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 vy vz wfun ccom wrel wbr wmo cdm wral wex wss dmcoss weu sylibr wcel
      wa cv wal funmo alrimiv ralrimivw dffun8 simprbi r19.26 nfv euexex ralimi
      anim12ci ssralv mpsyl copab df-br df-co eleq2i opabid 3bitri mobii ralbii
      syl cop relco jctil dffun7 ) AFZBFZSZABGZHZCTZDTZVJIZDJZCVJKZLZSVJFVIVQVK
      VIVLETZBIZVRVMAIZSEMZDJZCVPLZVQVPBKZNVIWBCWDLZWCABOVIVSEPZVTDJZEUAZSZCWDL
      ZWEVIWFCWDLZWHCWDLZSWJVGWLVHWKVGWHCWDVGWGEDVRAUBUCUDVHBHWKCEBUEUFUKWFWHCW
      DUGQWIWBCWDVSVTEDVSDUHUIUJVBWBCVPWDULUMVOWBCVPVNWADVNVLVMVCZVJRWMWACDUNZR
      WAVLVMVJUOVJWNWMCDEABUPUQWACDURUSUTVAQABVDVECDVJVFQ $.
  $}

  $( 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 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.) $)
  funprg $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.) $)
  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 wfun wceq syl wn cpr csn cun ctp cdm cin c0 3simpa simp1
    funprg syl3an simp13 simp23 funsng syl2anc 3ad2ant2 dmpropg dmsnopg ineq12d
    wa wo elpri w3o nner eqcoms 3mix2 3mix3 jaoi 3ianorr disjsn sylibr 3ad2ant3
    con2i eqtrd funun syl21anc df-tp funeqi ) JDMZKHMZLIMZNZAEMZBFMZCGMZNZJKOZJ
    LOZKLOZNZNZJAPZKBPZUAZLCPZUBZUCZQZWLWMWOUDZQWKWNQZWPQZWNUEZWPUEZUFZUGRWRWBV
    SVTUTWFWCWDUTZWJWGWTVSVTWAUHWCWDWEUHZWGWHWIUIJKABDHEFUJUKWKWAWEXAVSVTWAWFWJ
    ULWBWCWDWEWJUMZLCIGUNUOWKXDJKUAZLUBZUFZUGWKXBXHXCXIWKXEXBXHRWFWBXEWJXFUPJAK
    BEFUQSWKWEXCXIRXGLCGURSUSWJWBXJUGRZWFWJLXHMZTXKXLWJXLLJRZLKRZVAZWJTZLJKVBXO
    WGTZWHTZWITZVCZXPXMXTXNXMXRXTXRJLJLVDVEXRXQXSVFSXNXSXTXSKLKLVDVEXSXQXRVGSVH
    WGWHWIVISSVMXHLVJVKVLVNWNWPVOVPWSWQWLWMWOVQVRVK $.

  ${
    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 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 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 $.
  $}

  ${
    $d x y z A $.
    $( Another way of expressing that a class is single-rooted.  Counterpart to
       ~ dffun2 .  (Contributed by Jim Kingdon, 24-Dec-2018.) $)
    funcnveq $p |- ( Fun `' A <->
        A. x A. y A. z ( ( x A y /\ z A y ) -> x = z ) ) $=
      ( ccnv wfun cv wbr wa weq wi wal wrel relcnv dffun2 mpbiran alcom anbi12i
      vex brcnv imbi1i 2albii albii 3bitri ) DEZFZBGZAGZUEHZUGCGZUEHZIZACJZKZCL
      ZALBLZUOBLZALUHUGDHZUJUGDHZIZUMKZCLBLZALUFUEMUPDNBACUEOPUOBAQUQVBAUNVABCU
      LUTUMUIURUKUSUGUHDBSZASTUGUJDVCCSTRUAUBUCUD $.
  $}

  ${
    $d f g x y z w v A $.  $d x y B $.  $d x y R $.
    $( 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 $.

    $( Single-rootedness (see ~ funcnv ) of a class cut down by a cross
       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 $.

    $( 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 nfv breq1 anbi1d imbi1d equsal bitri breq2
      3bitr2i bitr2i wmo fun2cnv mo4 funcnv2 alrot4 3bitr4i ) CFZBFZEGZUTDFZEGZ
      HZBDIZJZBKZDKZCKZAFZVCEGZVDHZACIZJZAKZDKCKZHZVKVAEGZVDHZVNVFUAZJZBKAKZDKC
      KZELZLMZWEMZHWBDKCKBKAKWDVHVPHZDKCKVRWCWHCDWCVNVTVFJZJZVFVTVNJZJZHZBKAKWJ
      BKAKZWLBKZAKZHWHWBWMABWBVTVNVFJZVFVNJZHZJVTWQJZVTWRJZHWMWAWSVTVNVFUBUCVTW
      QWRUDWTWJXAWLVTVNVFNVTVFVNNOULPWJWLABTWNVHWPVPWNWJAKZBKVHWJABQXBVGBWIVGAC
      VGAUEVNVTVEVFVNVSVBVDVKUTVAEUFUGUHUIRUJWOVOAWKVOBDVOBUEVFVTVMVNVFVSVLVDVA
      VCVKEUKUGUHUIROSPVHVPCDTUMWFVJWGVQWFVBBUNZCKVGDKBKZCKVJCBEUOXCXDCVBVDBDVA
      VCUTEUKUPRXDVICVGBDQRSWGVLAUNZDKVOCKAKZDKZVQADEUQXEXFDVLVDACVKUTVCEUFUPRX
      GVPCKZDKVQXFXHDVOACQRVPDCQUJSOWBABCDURUS $.

    $( 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.28av anim1d dffun4 simprbi 19.21bi
      ssel 19.21bbi syl9r adantl anim2d jaod funeq sseq1 orbi12d anbi12d anbi2d
      sseq2 cbvral2v ralcom orcom syl5bb bitri anbi12i anandir 2ralbii r19.26-2
      imp anidm bitr2i 3bitr3i eluni eeanv an4 ancom 2exbii 3bitr2i imbi1i r2al
      19.23v impexp 2albii albii 3bitr2ri 3imtr4i alrimiv alrimivv syl sylanbrc
      ) BIZJZWPCIZKZWRWPKZLZCAMZNZBAMZAUAZOZDIZEIUBZXEPZXGFIUBZXEPZNZEFQZRZFSZE
      SDSZXEJXDWPOZBAMXFXCXQBAWQXQXBWPUCUDUEBAUFUGXDWQXANZCAMZBAMZXPXCXSBAWQXAC
      AUHUEXTXODEXTXNFGIZJZHIZJZNZYAYCKZYCYAKZLZNZHAMZGAMZXHYAPZXJYCPZNZXMRZHAM
      ZGAMZXTXNYJYPGAYIYOHAYEYHYOYEYFYOYGYDYFYORYBYFYNXHYCPZYMNZYDXMYFYLYRYMYAY
      CXHUMUIYDYSXMRZFYDYTFSZDEYDYCOUUAESDSDEFYCUJUKUNULUOUPYBYGYORYDYGYNYLXJYA
      PZNZYBXMYGYMUUBYLYCYAXJUMUQYBUUCXMRZFYBUUDFSZDEYBYAOUUEESDSDEFYAUJUKUNULU
      OUDURVNUEUEXTXTNYBYHNZHAMGAMZYDYHNZHAMGAMZNZXTYKXTUUGXTUUIXRUUFYBYAWRKZWR
      YAKZLZNBCGHAABGQZWQYBXAUUMWPYAUSUUNWSUUKWTUULWPYAWRUTWPYAWRVDVAVBCHQZUUMY
      HYBUUOUUKYFUULYGWRYCYAVDWRYCYAUTVAVCVEXTXRBAMCAMUUIXRBCAAVFXRUUHWQYAWPKZW
      PYAKZLZNCBGHAACGQZXAUURWQXAWTWSLUUSUURWSWTVGUUSWTUUPWSUUQWRYAWPUTWRYAWPVD
      VAVHVCBHQZWQYDUURYHWPYCUSUUTUUPYFUUQYGWPYCYAVDWPYCYAUTVAVBVEVIVJXTVOYKUUF
      UUHNZHAMGAMUUJYIUVAGHAAYBYDYHVKVLUUFUUHGHAAVMVPVQXNYAAPZYCAPZNZYNNZHTZGTZ
      XMRUVFXMRZGSZYQXLUVGXMXLYLUVBNZGTZYMUVCNZHTZNUVJUVLNZHTGTUVGXIUVKXKUVMGXH
      AVRHXJAVRVJUVJUVLGHVSUVNUVEGHUVNYNUVDNUVEYLUVBYMUVCVTYNUVDWAVIWBWCWDUVFXM
      GWFYQUVDYORZHSGSUVEXMRZHSZGSUVIYOGHAAWEUVPUVOGHUVDYNXMWGWHUVQUVHGUVEXMHWF
      WIWJWCWKWLWMWNDEFXEUJWO $.

    $( 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 $.
  $}

  $( 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 $.
    $( One direction of ~ imadif .  This direction does not require
       ` Fun ``' F ` .  (Contributed by Jim Kingdon, 25-Dec-2018.) $)
    imadiflem $p |- ( ( F " A ) \ ( F " B ) ) C_ ( F " ( A \ B ) ) $=
      ( vx vy cv wbr wrex wn wa cab cdif cima wcel wex df-rex notbii wal sylibr
      dfima2 alnex 19.29r sylan2br simpl simplr wi simpr ancom imnan bitr4i mpd
      sylib jca32 eldif anbi1i anandir bitri eximi syl2anb difeq12i difab eqtri
      syl ss2abi 3sstr4i ) DFZEFCGZDAHZVGDBHZIZJZEKZVGDABLZHZEKCAMZCBMZLZCVMMVK
      VNEVHVFANZVGJZDOZVFBNZVGJZDOZIZVNVJVGDAPVIWCVGDBPQVTWDJZVFVMNZVGJZDOZVNWE
      VSWBIZJZDOZWHWDVTWIDRWKWBDUAVSWIDUBUCWJWGDWJVSWAIZVGJJZWGWJVSWLVGVSWIUDWJ
      VGWLVRVGWIUEZWJWIVGWLUFZVSWIUGWIVGWAJZIWOWBWPWAVGUHQVGWAUIUJULUKWNUMWGVRW
      LJZVGJWMWFWQVGVFABUNUOVRWLVGUPUQSURVCVGDVMPSUSVDVQVHEKZVIEKZLVLVOWRVPWSDE
      CATDECBTUTVHVIEVAVBDECVMTVE $.
  $}

  ${
    $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 ) ) ) $=
      ( vx vy cdif cima cv wbr wrex cab wn wa wcel wex exbii wmo df-rex dfima2
      wi ccnv wfun anandir 19.40 sylbi wal nfv nfe1 funmo vex brcnv mobii sylib
      nfan mopick sylan con2d imnan alrimi ex exancom alnex 3imtr3g anim2d syl5
      eldif anbi1i bitri notbii anbi12i 3imtr4g ss2abdv difab eqtri 3sstr4g wss
      difeq12i imadiflem a1i eqssd ) CUAZUBZCABFZGZCAGZCBGZFZWBDHZEHZCIZDWCJZEK
      WJDAJZWJDBJZLZMZEKZWDWGWBWKWOEWBWHANZWHBNZLZMZWJMZDOZWQWJMZDOZWRWJMZDOZLZ
      MZWKWOXBXDWSWJMZDOZMZWBXHXBXCXIMZDOXKXAXLDWQWSWJUCPXCXIDUDUEWBXJXGXDWBWJW
      SMZDOZXELZDUFZXJXGWBXNXPWBXNMZXODWBXNDWBDUGXMDUHUNXQWRWJLTXOXQWJWRWBWJDQZ
      XNWJWSTWBWIWHWAIZDQXRDWIWAUIXSWJDWIWHCEUJDUJUKULUMWJWSDUOUPUQWRWJURUMUSUT
      WJWSDVAXEDVBVCVDVEWKWHWCNZWJMZDOXBWJDWCRYAXADXTWTWJWHABVFVGPVHWLXDWNXGWJD
      ARWMXFWJDBRVIVJVKVLDECWCSWGWLEKZWMEKZFWPWEYBWFYCDECASDECBSVQWLWMEVMVNVOWG
      WDVPWBABCVRVSVT $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y F $.
    $( One direction of ~ imain .  This direction does not require
       ` Fun ``' F ` .  (Contributed by Jim Kingdon, 25-Dec-2018.) $)
    imainlem $p |- ( F " ( A i^i B ) ) C_ ( ( F " A ) i^i ( F " B ) ) $=
      ( vx vy cv wbr cin wrex cab wa cima wcel df-rex elin anbi1i anandir sylbi
      wex dfima2 bitri exbii 19.40 anbi12i sylibr ss2abi ineq12i eqtri 3sstr4i
      inab ) DFZEFCGZDABHZIZEJULDAIZULDBIZKZEJZCUMLCALZCBLZHZUNUQEUNUKAMZULKZDS
      ZUKBMZULKZDSZKZUQUNUKUMMZULKZDSZVHULDUMNVKVCVFKZDSVHVJVLDVJVBVEKZULKVLVIV
      MULUKABOPVBVEULQUAUBVCVFDUCRRUOVDUPVGULDANULDBNUDUEUFDECUMTVAUOEJZUPEJZHU
      RUSVNUTVODECATDECBTUGUOUPEUJUHUI $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z F $.
    $( 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 ) ) ) $=
      ( vx vy vz ccnv cin cima cv wbr wrex cab wcel wex simpr wal df-rex dfima2
      wa wfun wss imainlem a1i eeanv simprll anim12i wi funcnveq biimpi 19.21bi
      weq 19.21bbi imp sylan2 simprrl eqeltrd elin sylanbrc simprlr jca exlimdv
      eximdv syl5bir anbi12i 3imtr4g ss2abdv ineq12i inab eqtri 3sstr4g eqssd
      ex ) CGUAZCABHZIZCAIZCBIZHZVPVSUBVNABCUCUDVNDJZEJZCKZDALZFJZWACKZFBLZTZEM
      ZWBDVOLZEMVSVPVNWGWIEVNVTANZWBTZDOZWDBNZWETZFOZTZVTVONZWBTZDOZWGWIWPWKWNT
      ZFOZDOVNWSWKWNDFUEVNXAWRDVNWTWRFVNWTWRVNWTTZWQWBXBWJVTBNWQVNWJWBWNUFXBVTW
      DBWTVNWBWETZDFULZWKWBWNWEWJWBPWMWEPUGVNXCXDVNXCXDUHZEFVNXEFQEQZDVNXFDQDEF
      CUIUJUKUMUNUOVNWKWMWEUPUQVTABURUSVNWJWBWNUTVAVMVBVCVDWCWLWFWOWBDARWEFBRVE
      WBDVORVFVGVSWCEMZWFEMZHWHVQXGVRXHDECASFECBSVHWCWFEVIVJDECVOSVKVL $.
  $}

  ${
    $d A b x y z $.  $d B b x y z $.  $d C z $.
    $( Lemma for ~ funimaexg .  It constitutes the interesting part of
       ~ funimaexg , in which ` B C_ dom A ` .  (Contributed by Jim Kingdon,
       27-Dec-2018.) $)
    funimaexglem $p |- ( ( Fun A /\ B e. C /\ B C_ dom A ) ->
        ( A " B ) e. _V ) $=
      ( vz vx vy vb wcel wss w3a cv wex wrex wel wi wal wral wa simprbi exbii
      wfun cdm cima cvv wbr cab wmo dffun7 3ad2ant1 ssralv 3ad2ant3 mpd alrimiv
      wrel wceq weu sseq1 biimpar 3adant1 jca dffun8 adantl ssel adantr sylsyld
      simp1 rsp ralrimiv zfrep6 3syl raleq exbidv 3ad2ant2 mpbid 3com12 vtocleg
      wb 3expib 3impib df-rex exancom bitri sylib 19.29 nfcv nfmo1 nfralxy nfe1
      ralbii r19.26 mopick ralimi sylbir alrimi eximi syl syl2anc r19.23v albii
      nfan abss sylibr dfima2 sseq1i vex ssex exlimiv ) AUAZBCHZBAUBZIZJZABUCZD
      KZIZDLZXMUDHZXLEKZFKAUEZEBMZFUFZXNIZDLZXPXLXTFDNZOZFPZDLZYCXLXSYDOZEBQZFP
      ZDLZYGXLXSFUGZEBQZDPZXSYDRZFLZEBQZDLZYKXLYMDXLYLEXJQZYMXHXIYSXKXHAUNZYSEF
      AUHSUIXKXHYSYMOXIYLEBXJUJUKULUMXLXSFXNMZEBQZDLZYRXIXHXKUUCXIXHXKUUCXHXKRU
      UCOGBCGKZBUOZXHXKUUCXHUUEXKUUCXHUUEXKJZUUAEUUDQZDLZUUCUUFUUDXJIZXHRZXSFUP
      ZEUUDQUUHUUFUUIXHUUEXKUUIXHUUEUUIXKUUDBXJUQURUSXHUUEXKVFUTUUJUUKEUUDUUJUU
      KEXJQZEGNZXRXJHZUUKXHUULUUIXHYTUULEFAVASVBUUIUUMUUNOXHUUDXJXRVCVDUUKEXJVG
      VEVHXSEFGDVIVJUUEXHUUHUUCVQXKUUEUUGUUBDUUAEUUDBVKVLVMVNVOVRVPVSVOUUBYQDUU
      AYPEBUUAYDXSRFLYPXSFXNVTYDXSFWAWBWITWCYNYRRYMYQRZDLYKYMYQDWDUUOYJDUUOYIFY
      MYQFYLFEBFBWEZXSFWFWGYPFEBUUPYOFWHWGWTUUOYLYPRZEBQYIYLYPEBWJUUQYHEBXSYDFW
      KWLWMWNWOWPWQYJYFDYIYEFXSYDEBWRWSTWCYBYFDXTFXNXATXBXOYBDXMYAXNEFABXCXDTXB
      XOXQDXMXNDXEXFXGWP $.
  $}

  $( 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 ) $=
    ( wfun wcel cdm cin cima cvv wrel wceq simpl funrel cres crn resres reseq2i
    wa incom df-ima eqtr4i resdm reseq1d syl5eqr rneqd 3eqtr4g inex1g wss inss2
    3syl funimaexglem mp3an3 sylan2 eqeltrrd ) ADZBCEZRZABAFZGZHZABHZIUQUOAJZUT
    VAKUOUPLAMVBAUSNZOABNZOUTVAVBVCVDVBVCAURNZBNZVDVFAURBGZNVCAURBPUSVGABURSQUA
    VBVEABAUBUCUDUEAUSTABTUFUJUPUOUSIEZUTIEZBURCUGUOVHUSURUHVIBURUIAUSIUKULUMUN
    $.

  ${
    zfrep5.1 $e |- B e. _V $.
    $( The image of a set under any function is also a set.  Equivalent of
       Axiom of Replacement.  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 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 wcel wa wfun cdm fnfun adantr fndm eleq2d biimpar syl2anc ) DBFZCBG
      ZHDIZCDJZGZAQSRBDKLQUARQTBCBDMNOEP $.
  $}

  $( 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 $.

  $( 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.
     (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 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 an ordered-pair class abstraction that specifies a function.
       (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 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 $.
  $}

  ${
    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 wceq wb feq3 syl bitrd ) ABDFKCDGKZCEGKZABCDFGHILADEMRSNJDECG
      OPQ $.
  $}

  $( 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 $.
  $}

  ${
    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 bitrd
      wceq csbdmg eqeq1d anbi12d sbcan 3bitr4g ) EDFZCBGZAEHCIZCJZBTZKZAEHZAECL
      ZAEBLZGZUFUGUKAEUGUKMUFCBNOPUFUHAEHZUJAEHZKUMIZUMJZUNTZKULUOUFUPURUQUTAEC
      DQUFUQAEUILZUNTUTAEUIBDRUFVAUSUNAECDUAUBSUCUHUJAEUDUMUNNUES $.

    $( 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 bitrd sbcssg
      csbrng sseq1d anbi12d sbcan 3bitr4g ) FEGZBCDHZAFIDBJZDKZCLZMZAFIZAFBNZAF
      CNZAFDNZHZUGUHULAFUHULOUGBCDPQRUGUIAFIZUKAFIZMUPUNJZUPKZUOLZMUMUQUGURUTUS
      VBABDEFSUGUSAFUJNZUOLVBAFUJCEUAUGVCVAUOAFDEUBUCTUDUIUKAFUEUNUOUPPUFT $.
  $}

  $( A mapping is a function.  (Contributed by NM, 2-Aug-1994.) $)
  ffn $p |- ( F : A --> B -> F Fn A ) $=
    ( wf wfn crn wss df-f simplbi ) ABCDCAECFBGABCHI $.

  $( 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 $.

  $( 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
    $.

  $( 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 $.

  $( A function with bounded domain and range is a set.  This version 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 $.

  $( 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 $.

  $( 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 $.

  $( 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 $.

  $( 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, their union contains a
     union of three functions with pairwise disjoint domains.  If we assumed
     the law of the excluded middle, this would be equality rather than subset.
     (Contributed by Jim Kingdon, 28-Dec-2018.) $)
  resasplitss $p |- ( ( F Fn A /\ G Fn B /\
      ( F |` ( A i^i B ) ) = ( G |` ( A i^i B ) ) ) ->
        ( ( F |` ( A i^i B ) ) u.
          ( ( F |` ( A \ B ) ) u. ( G |` ( B \ A ) ) ) )
        C_ ( F u. G )
      ) $=
    ( wfn cin cres wceq w3a cdif cun uneq1i wss inundifss ssres2 ax-mp eqsstr3i
    resundi syl5eqssr fnresdm unidm un4 simp3 uneq1d uneq2d incom eqsstri mp2an
    unss12 syl6eqss uneq12 syl2an 3adant3 sseqtrd ) CAEZDBEZCABFZGZDUQGZHZIZURC
    ABJZGZDBAJZGZKZKZCAGZDBGZKZCDKZVAVGURURKZVFKZVJVLURVFURUALVAVMURVCKZURVEKZK
    ZVJURVCURVEUBVAVPVNUSVEKZKZVJVAVOVQVNVAURUSVEUOUPUTUCUDUEVNVHMVQVIMVRVJMVNC
    UQVBKZGZVHCUQVBRVSAMVTVHMABNVSACOPQVQDUQVDKZGZVIDUQVDRWABMWBVIMWABAFZVDKBUQ
    WCVDABUFLBANUGWABDOPQVNVHVQVIUIUHUJSSUOUPVJVKHZUTUOVHCHVIDHWDUPACTBDTVHCVID
    UKULUMUN $.

  $( 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 $.
  $}

  ${
    $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 $.
    fintm.1 $e |- E. x x e. B $.
    $( Function into an intersection.  (Contributed by Jim Kingdon,
       28-Dec-2018.) $)
    fintm $p |- ( F : A --> |^| B <-> A. x e. B F : A --> x ) $=
      ( wfn crn cint wss wa cv wral wf ssint anbi2i wcel wex wb r19.28mv df-f
      ax-mp bitr4i ralbii 3bitr4i ) DBFZDGZCHZIZJZUEUFAKZIZJZACLZBUGDMBUJDMZACL
      UIUEUKACLZJZUMUHUOUEAUFCNOUJCPAQUMUPREUEUKACSUAUBBUGDTUNULACBUJDTUCUD $.
  $}

  $( 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 $.

  ${
    $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 $.

  $( 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 $.

  ${
    $d x A $.  $d x B $.
    fconst.1 $e |- B e. _V $.
    $( A cross 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 cross 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 cross 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 wf wss fconstg snssi fss syl2anc ) BCDABEZAMFZGMCHACNGABCIBC
    JAMCNKL $.

  ${
    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
     range.  (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 $.

  $( Combine a one-to-one function with a restriction on the domain.
     (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 aubset 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 wf wfun fof ffun syl ) ABCDABCECFABCGABCHI $.

  $( 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 wf wfn fof ffn syl ) ABCDABCECAFABCGABCHI $.

  $( 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 a 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 $.

  $( 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 $.
  $}

  ${
    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 $.

  ${
    $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 $.
  $}

  $( 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 $.

  ${
    $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 nfv nfre1 nfab nfralxy nfan wi
      f1eq1 biimparc df-f1 ffun anim1i syl adantlr eqeq2d cbvrexv sseq12 ancoms
      sylbi orbi12d biimprcd expdimp rexlimivw imp sylan an32s adantlll sylan2b
      wb ralrimiva jca a1i rexlimi fun11uni simpld dfiun2 funeqi sylibr cop wex
      nfra1 eldm2 f1dm eleq2d syl5bbr adantr syl6 rexbida eliun rexcom4 3bitr4i
      rsp exbii 3bitr4g eqrdv df-fn sylanbrc rniun f1f frn ralimi syl5eqss df-f
      iunss simprd cnveqi ) FGDUAZDEMZEDMZUBZBCNZOZACNZACFUCZGACDUCZUDZYIUEZPZY
      HGYIUAYGYIYHUFZYIUGZGMYJYGYIPZYIUHZYHQYMYGJRZDQZACSZJUIZUJZPZYOYGUUBUUAUE
      ZPZYGKRZPZUUEUEPZOZUUELRZMZUUIUUEMZUBZLYTNZOZKYTNUUBUUDOYGUUNKYTUUEYTTYGU
      UEDQZACSZUUNYSUUPJUUEKUKZYQUUEQYRUUOACYQUUEDULUMUNYGUUPOYFUUOOZACSUUNYFUU
      OACUOUURUUNACUUHUUMAUUHAUPUULALYTYSAJYRACUQURUULAUPUSUTUURUUNVAARZCTZUURU
      UHUUMYAUUOUUHYEYAUUOOFGUUEUAZUUHUUOUVAYAFGUUEDVBVCUVAFGUUEUDZUUGOUUHFGUUE
      VDUVBUUFUUGFGUUEVEVFVMVGVHUURUULLYTUUIYTTUURUUIDQZACSZUULYSUVDJUUILUKYQUU
      IQYRUVCACYQUUIDULUMUNUVDUURUUIEQZBCSZUULUVCUVEABCUUSBRQDEUUIHVIVJYEUUOUVF
      UULYAYEUVFUUOUULYEUVFOYDUVEOZBCSZUUOUULYDUVEBCUOUVHUUOUULUVGUUOUULVABCYDU
      VEUUOUULUVEUUOOZUULYDUVIUUJYBUUKYCUUOUVEUUJYBWCUUEDUUIEVKVLUUIEUUEDVKVNVO
      VPVQVRVSVTWAWBWBWDWEWFWGVGWBWDYTKLWHVGZWIYIUUAAJCDIWJZWKWLYGKYPYHYGUUEUUI
      WMZDTZLWNZACSZUUEFTZACSUUEYPTZUUEYHTYGUVNUVPACYFACWOYGUUTUVNUVPWCZYGUUTYF
      UVRYFACXFYAUVRYEUVNUUEDUHZTYAUVPLUUEDUUQWPYAUVSFUUEFGDWQWRWSWTXAVRXBUVLYI
      TZLWNUVMACSZLWNUVQUVOUVTUWALAUVLCDXCXGLUUEYIUUQWPUVMALCXDXEAUUECFXCXHXIYI
      YHXJXKYGYNACDUGZUCZGACDXLYGUWBGMZACNUWCGMYFUWDACYAUWDYEYAFGDUDUWDFGDXMFGD
      XNVGWTXOACUWBGXRWLXPYHGYIXQXKYGUUDYLYGUUBUUDUVJXSYKUUCYIUUAUVKXTWKWLYHGYI
      VDXK $.
  $}

  $( 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 syl wb ax-mp crn df-ima wa forn wf
    w3a cdm wss fofun difss fof fdm syl5sseqr fores syl2anc indif reseq2i eqtri
    cin resres foeq1 rneqi 3eqtr4i foeq3 bitri funres11 biimpri syl2anr 3adant3
    sylib dff1o3 syl5eq anim12i imadif difeq12 sylan9eq sylan2 3impb f1oeq3
    mpbid ) EFGZACEAHZIZBDEBHZIZUBZABJZEWCKZEWCHZLZWCCDJZWELZVQVSWFWAVSWCWDWEIZ
    WEFGZWFVQVSWCVRWCKZVRWCHZIZWIVSVRGWCVRUCZUDWMACVRUEVSAWCWNABUFVSACVRUAWNAMA
    CVRUGACVRUHNUIWCVRUJUKWMWCWKWEIZWIWLWEMWMWOOWLEAWCUOZHWEEAWCUPWPWCEABULUMUN
    ZWCWKWLWEUQPWKWDMWOWIOWLQWEQWKWDWLWEWQURVRWCREWCRUSWKWDWCWEUTPVAVFWCEVBWFWI
    WJSWCWDWEVGVCVDVEWBWDWGMZWFWHOVQVSWAWRVSWASVQEAKZCMZEBKZDMZSZWRVSWTWAXBVSWS
    VRQCEARACVRTVHWAXAVTQDEBRBDVTTVHVIVQXCWDWSXAJWGABEVJWSCXADVKVLVMVNWDWGWCWEV
    ONVP $.

  $( 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 a1i reseq2d eqeq2d syl5bb mpbid ) ABZAACZDZEFZUGEAGZ
    HZIZUEAJUHAKLUHUGEUGMZHZIUEUKUGPUEUMUJUGUEULUIEULUIIUEULUFMZUIAMUFGIULUNIAN
    AUFOQARSTUAUBUCUD $.

  $( 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 $.

  ${
    $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 $.
  $}

  $( 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 $.

  $( 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 $.
  $}

  $( An unordered pair of ordered pairs with different elements is a one-to-one
     onto function.  (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 notbii exbii sylibr opprc1 df-br
      eleq1d cvv wmo weu dtruex equcom mpbir 19.42v anbi12d anidm syl6bb anbi1d
      exbidv imbi12d mpbiri anbi12i anbi1i 3imtr4g eximdv wal exanaliim exnalim
      jctr eximi syl breq2 mo4 syl6 eu5 imnan bitr4i ) BUAEFZBAGZCHZAIZVMAUBZFZ
      JZVMAUCZFZVKVNVMBDGZCHZKZADLZFZKZDIZAIZVPVKVMWFAVKBVLMZCEZWIBVTMZCEZKZWDK
      ZDIZVMWFVKWIWNJNCEZWOWDKZDIZJWOWOWDDIZKWQWOWRWRDALZFZDIDAUDWDWTDWCWSADUEO
      PUFVBWOWDDUGQVKWIWOWNWQVKWHNCBVLRTZVKWMWPDVKWLWOWDVKWLWOWOKWOVKWIWOWKWOXA
      VKWJNCBVTRTUHWOUIUJUKULUMUNBVLCSZWEWMDWBWLWDVMWIWAWKXBBVTCSUOUPPUQURWGWBW
      CJDUSZAUSZFZVPWGXCFZAIXEWFXFAWBWCDUTVCXCAVAVDVOXDVMWAADVLVTBCVEVFOQVGVSVN
      VOKZFVQVRXGVMAVHOVNVOVIVJQ $.
  $}

  ${
    $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 $.  $d V x $.
    $( A definition of function value in terms of iota.  (Contributed by Jim
       Kingdon, 29-Dec-2018.) $)
    dffv3g $p |- ( A e. V -> ( F ` A ) = ( iota x x e. ( F " { A } ) ) ) $=
      ( wcel cv csn cima cio wbr cfv cvv wb vex wa elimasng df-br syl6bbr mpan2
      cop iotabidv df-fv syl6reqr ) BDEZAFZCBGHEZAIBUECJZAIBCKUDUFUGAUDUELEZUFU
      GMANUDUHOUFBUETCEUGCBUEDLPBUECQRSUAABCUBUC $.
  $}

  ${
    $d x y A $.  $d x y F $.  $d x y V $.
    $( 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.) $)
    dffv4g $p |- ( A e. V -> ( F ` A ) = U. { x | ( F " { A } ) = { x } } ) $=
      ( vy wcel cfv cv csn cima cio wceq cuni dffv3g df-iota abid2 eqeq1i abbii
      cab unieqi eqtri syl6eq ) BDFBCGEHCBIJZFZEKZUCAHIZLZASZMZEBCDNUEUDESZUFLZ
      ASZMUIUDEAOULUHUKUGAUJUCUFEUCPQRTUAUB $.
  $}

  ${
    $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 nfiotaxy nfcxfr ) ABCGBFHZCIZFJFBCKQA
      FABPCEDAPLMNO $.
  $}

  ${
    $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 y A $.  $d x y F $.
    $( A function has one value given an argument in its domain.  (Contributed
       by Jim Kingdon, 29-Dec-2018.) $)
    funfveu $p |- ( ( Fun F /\ A e. dom F ) -> E! y A F y ) $=
      ( vx wfun cdm wcel cv wbr weu wa wi wceq eleq1 anbi2d eubidv imbi12d wrel
      breq1 wral dffun8 simprbi r19.21bi vtoclg anabsi7 ) CEZBCFZGZBAHZCIZAJZUF
      DHZUGGZKZULUICIZAJZLUFUHKZUKLDBUGULBMZUNUQUPUKURUMUHUFULBUGNOURUOUJAULBUI
      CSPQUFUPDUGUFCRUPDUGTDACUAUBUCUDUE $.
  $}

  ${
    $d x A $.  $d x B $.  $d x F $.
    $( The value of a function is a subset of ` B ` if every element that could
       be a candidate for the value is a subset of ` B ` .  (Contributed by
       Mario Carneiro, 24-May-2019.) $)
    fvss $p |- ( A. x ( A F x -> x C_ B ) -> ( F ` A ) C_ B ) $=
      ( cv wbr wss wi wal cfv cio df-fv iotass syl5eqss ) BAEZDFZOCGHAIBDJPAKCA
      BDLPACMN $.

    $( The result of a function value is always a subset of the union of the
       range, if the input is a set.  (Contributed by Stefan O'Rear,
       2-Nov-2014.)  (Revised by Mario Carneiro, 24-May-2019.) $)
    fvssunirng $p |- ( A e. _V -> ( F ` A ) C_ U. ran F ) $=
      ( vx cvv wcel cv wbr crn cuni wss wi wal cfv vex brelrng 3exp mpi elssuni
      syl6 alrimiv fvss syl ) ADEZACFZBGZUDBHZIZJZKZCLABMUGJUCUICUCUEUDUFEZUHUC
      UDDEZUEUJKCNUCUKUEUJAUDBDDOPQUDUFRSTCAUGBUAUB $.

    $( 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, 24-May-2019.) $)
    relfvssunirn $p |- ( Rel F -> ( F ` A ) C_ U. ran F ) $=
      ( vx wrel cv wbr crn cuni wss wi wal wcel relelrn ex elssuni syl6 alrimiv
      cfv fvss syl ) BDZACEZBFZUBBGZHZIZJZCKABRUEIUAUGCUAUCUBUDLZUFUAUCUHAUBBMN
      UBUDOPQCAUEBST $.
  $}

  ${
    $d x y A $.  $d x y F $.
    $( The value of a function exists.  A special case of Corollary 6.13 of
       [TakeutiZaring] p. 27.  (Contributed by Jim Kingdon, 29-Dec-2018.) $)
    funfvex $p |- ( ( Fun F /\ A e. dom F ) -> ( F ` A ) e. _V ) $=
      ( vy wfun cdm wcel wa cfv wbr cio cvv df-fv weu funfveu euiotaex syl5eqel
      cv syl ) BDABEFGZABHACQBIZCJZKCABLSTCMUAKFCABNTCORP $.

    $( If a function has a set range, then the function value exists
       unconditional on the domain.  (Contributed by Mario Carneiro,
       24-May-2019.) $)
    relrnfvex $p |- ( ( Rel F /\ ran F e. _V ) -> ( F ` A ) e. _V ) $=
      ( wrel cfv crn cuni wss cvv wcel relfvssunirn uniexg ssexg syl2an ) BCABD
      ZBEZFZGPHINHIOHIABJOHKNPHLM $.

    $( Evaluating a set function at a set exists.  (Contributed by Mario
       Carneiro and Jim Kingdon, 28-May-2019.) $)
    fvexg $p |- ( ( F e. V /\ A e. W ) -> ( F ` A ) e. _V ) $=
      ( wcel cfv crn cuni wss cvv elex fvssunirng rnexg uniexg ssexg syl2anr
      syl ) ADEZABFZBGZHZIZUAJEZSJEBCEZRAJEUBADKABLQUDTJEUCBCMTJNQSUAJOP $.

    ${
      fvex.1 $e |- F e. V $.
      fvex.2 $e |- A e. W $.
      $( Evaluating a set function at a set exists.  (Contributed by Mario
         Carneiro and Jim Kingdon, 28-May-2019.) $)
      fvex $p |- ( F ` A ) e. _V $=
        ( wcel cfv cvv fvexg mp2an ) BCGADGABHIGEFABCDJK $.
    $}

    $( If a function is set-like, then the function value exists if the input
       does.  (Contributed by Mario Carneiro, 24-May-2019.) $)
    sefvex $p |- ( ( `' F Se _V /\ A e. _V ) -> ( F ` A ) e. _V ) $=
      ( vy vx cvv ccnv wse wcel wa cfv cv wbr crab cuni wss wi wal w3a vex syl
      a1i simp3 simp2 brcnvg sylancr mpbird breq1 elrab sylanbrc elssuni 3expia
      wb alrimiv fvss seex uniexg ssexg syl2anc ) EBFZGZAEHZIZABJZCKZAUSLZCEMZN
      ZOZVGEHZVCEHVBADKZBLZVJVGOZPZDQVHVBVMDUTVAVKVLUTVAVKRZVJVFHZVLVNVJEHZVJAU
      SLZVOVPVNDSZUAVNVQVKUTVAVKUBVNVPVAVQVKULVRUTVAVKUCVJAEEBUDUEUFVEVQCVJEVDV
      JAUSUGUHUIVJVFUJTUKUMDAVGBUNTVBVFEHVICEAUSUOVFEUPTVCVGEUQUR $.
  $}

  $( Move a conditional outside of a function.  (Contributed by Jim Kingdon,
     1-Jan-2022.) $)
  fvifdc $p |- ( DECID ph
      -> ( F ` if ( ph , A , B ) ) = if ( ph , ( F ` A ) , ( F ` B ) ) ) $=
    ( cif cfv fveq2 ifsbdc ) ABCABCEZDFBDFCDFIBDGICDGH $.

  ${
    $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 bi2 breq2 sylib anim2i
      alimi vex ceqsalv eximi elequ2 anbi12d cbvexv exsimpr df-eu jca nfeu1 nfv
      sylibr nfa1 nfan nfex nfim bi1 ax-14 syl6 com23 impd anc2ri eximdv syl5bi
      sps com12 exlimi imp impbii bitri abbi2i ) AFZBFZGZCVODHZIZBJZVQBKZIZACDL
      ZVNWBGVNEFZGZVQBEMZNZBOZIZEJZWAEBVNCDPWIWAWIVSVTWIWDCWCDHZIZEJVSWHWKEWGWJ
      WDWGWEVQQZBOWJWFWLBVQWERUBVQWJBWCEUCVOWCCDSUDTUAUEWKVREBEBMWDVPWJVQEBAUFW
      CVOCDSUGUHTWIWGEJZVTWDWGEUIVQBEUJZUNUKVSVTWIVRVTWIQBVTWIBVQBULWHBEWDWGBWD
      BUMWFBUOUPUQURVTWMVRWIWNVRWGWHEWGVRWHWGVRWDWFVRWDQBWFVPVQWDWFVQVPWDWFVQWE
      VPWDQVQWEUSBEAUTVAVBVCVGVDVHVEVFVIVJVKVLVM $.
  $}

  ${
    $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 $.
  $}

  $( 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 y z A $.  $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 x A $.  $d x F $.
    $( The value of a class outside its domain is the empty set.  (Contributed
       by Jim Kingdon, 15-Jan-2019.) $)
    ndmfvg $p |- ( ( A e. _V /\ -. A e. dom F ) -> ( F ` A ) = (/) ) $=
      ( vx cvv wcel cdm wn cfv c0 wceq cv wbr weu wex euex eldmg con3d tz6.12-2
      syl5ibr syl6 imp ) ADEZABFEZGZABHIJZUBUDACKBLZCMZGUEUBUGUCUGUCUBUFCNUFCOC
      ABDPSQCABRTUA $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y F $.
    $( If a function value has a member, the argument belongs to the domain.
       (Contributed by Jim Kingdon, 22-Jan-2019.) $)
    relelfvdm $p |- ( ( Rel F /\ A e. ( F ` B ) ) -> B e. dom F ) $=
      ( vx vy wrel cfv wcel wa cv wbr wex cdm weq wb wal elfv exsimpr wsb syl
      sylbi equsb1 spsbbi mpbiri breq2 sylib eximi anim2i 19.42v sylibr releldm
      nfv sbie exlimiv ) CFZABCGHZIZUOBDJZCKZIZDLZBCMHZUQUOUSDLZIVAUPVCUOUPBEJZ
      CKZEDNZOEPZDLZVCUPAURHZVGIDLVHDEABCQVIVGDRUAVGUSDVGVEEDSZUSVGVJVFEDSEDUBV
      EVFEDUCUDVEUSEDUSEULVDURBCUEUMUFUGTUHUOUSDUIUJUTVBDBURCUKUNT $.
  $}

  ${
    $d x y z w A $.  $d x y z w B $.  $d x y z w F $.
    $( 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 ) = (/) ) $=
      ( vz vx vw vy wcel wn cres cfv cv wex cab csn wceq eleq2i bitri sylbi cvv
      wbr weu cuni cio df-fv df-iota eqtri eluni exsimpr wsb df-clab nfv eqeq2d
      wa sneq sbie exbii sylib euabsn2 sylibr euex cop cxp df-br df-res simprbi
      cin elin opelxp1 syl exlimiv 3syl con3i eq0rdv ) ABHZIDACBJZKZDLZVQHZVOVS
      AELZVPUAZEUBZWAEMVOVSWAENZFLZOZPZFMZWBVSWDWCGLZOZPZGNZHZFMZWGVSVRWDHZWLUN
      FMZWMVSVRWKUCZHWOVQWPVRVQWAEUDWPEAVPUEWAEGUFUGQFVRWKUHRWNWLFUISWLWFFWLWJG
      FUJWFWJFGUKWJWFGFWFGULWHWDPWIWEWCWHWDUOUMUPRUQURWAEFUSUTWAEVAWAVOEWAAVTVB
      ZBTVCZHZVOWAWQCWRVGZHZWSWAWQVPHXAAVTVPVDVPWTWQCBVEQRXAWQCHWSWQCWRVHVFSAVT
      BTVIVJVKVLVMVN $.
  $}

  ${
    $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 ) = (/) ) $=
      ( vy vx csn cres wfun wn cv wbr weu cfv c0 wceq wrel wmo wal wa sylbi syl
      eumo wcel vex brres velsn breq1 biimpac moimi alrimiv relres jctil dffun6
      wb sylibr con3i tz6.12-2 ) BAEZFZGZHACIZBJZCKZHABLMNVBUSVBUROZDIZUTURJZCP
      ZDQZRUSVBVGVCVBVFDVBVACPVFVACUAVEVACVEVDUTBJZVDUQUBZRVAVDUTBUQCUCUDVIVHVA
      VIVDANVHVAUMDAUEVDAUTBUFSUGSUHTUIBUQUJUKDCURULUNUOCABUPT $.
  $}

  ${
    $d x A $.
    $( Function value of the empty set.  (Contributed by Stefan O'Rear,
       26-Nov-2014.) $)
    0fv $p |- ( (/) ` A ) = (/) $=
      ( vx c0 cfv cv wbr cio df-fv weu wn wceq wex cop wcel noel df-br nex euex
      mtbir mto iotanul ax-mp eqtri ) ACDABEZCFZBGZCBACHUEBIZJUFCKUGUEBLUEBUEAU
      DMZCNUHOAUDCPSQUEBRTUEBUAUBUC $.
  $}

  ${
    $d y A $.  $d y B $.  $d y C $.  $d y F $.  $d x y $.
    $( Move class substitution in and out of a function value.  (Contributed by
       NM, 11-Nov-2005.) $)
    csbfv12g $p |- ( A e. C ->
                 [_ A / x ]_ ( F ` B ) = ( [_ A / x ]_ F ` [_ A / x ]_ B ) ) $=
      ( vy wcel wbr cio csb cfv csbiotag sbcbrg csbconstg breq2d bitrd iotabidv
      cv wsbc df-fv eqtrd csbeq2i 3eqtr4g ) BDGZABCFRZEHZFIZJZABCJZUEABEJZHZFIZ
      ABCEKZJUIUJKUDUHUFABSZFIULUFAFBDLUDUNUKFUDUNUIABUEJZUJHUKABCUEDEMUDUOUEUI
      UJABUEDNOPQUAABUMUGFCETUBFUIUJTUC $.
  $}

  ${
    $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 csbfv12g csbconstg fveq1d eqtrd ) BDFZABCEGHABCHZABEHZGNEG
      ABCDEIMNOEABEDJKL $.

    $( Substitution for a function value.  (Contributed by NM, 1-Jan-2006.) $)
    csbfvg $p |- ( A e. C -> [_ A / x ]_ ( F ` x ) = ( F ` A ) ) $=
      ( wcel cv cfv csb csbfv2g csbvarg fveq2d eqtrd ) BCEZABAFZDGHABNHZDGBDGAB
      NCDIMOBDABCJKL $.
  $}

  ${
    $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 $.  $d x C $.
    $( 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 cvv wb funfvex funfni cv wi breq2 syl
      eqeq2 bibi12d imbi2d fneu tz6.12c vtoclg mpcom mpbii syl5ibcom wfun fnfun
      weu funbrfv adantr impbid ) DAFZBAGZHZBDIZCJZBCDKZURBUSDKZUTVAURUSUSJZVBU
      SLUSMGZURVCVBNZVDABDBDOPURUSEQZJZBVFDKZNZRURVEREUSMVFUSJZVIVEURVJVGVCVHVB
      VFUSUSUAVFUSBDSUBUCURVHEULVIEABDUDEBDUETUFUGUHUSCBDSUIUPVAUTRZUQUPDUJVKAD
      UKBCDUMTUNUO $.
  $}

  $( 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 $.

  ${
    $d x y A $.  $d x y B $.  $d x y F $.
    $( 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.  The converse holds
       given the law of the excluded middle; as it is we have most of the
       converse via ~ funmpt and ~ dmmptss .  (Contributed by Jim Kingdon,
       31-Dec-2018.) $)
    dffn5im $p |- ( F Fn A -> F = ( x e. A |-> ( F ` x ) ) ) $=
      ( vy wfn cv wcel cfv wceq wa copab cmpt wbr wrel fnrel dfrel4v sylib fnbr
      ex pm4.71rd eqcom fnbrfvb syl5bb pm5.32da bitr4d opabbidv df-mpt syl6eqr
      eqtrd ) CBEZCAFZBGZDFZUKCHZIZJZADKZABUNLUJCUKUMCMZADKZUQUJCNCUSIBCOADCPQU
      JURUPADUJURULURJUPUJURULUJURULBUKUMCRSTUJULUOURUOUNUMIUJULJURUMUNUABUKUMC
      UBUCUDUEUFUIADBUNUGUH $.

    $( 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 dffn5im rneqd eqid rnmpt syl6eq ) DCE
      ZDFACAGDHZIZFBGSJACKBLRDTACDMNABCSTTOPQ $.

    $( 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 cv cfv wceq wrex cvv wcel wi wfn crn wb wa wex df-rex 19.41v simpl
      anim1i ancomd funfvex funfni syl simpr eleq1d adantr mpbid exlimiv sylbir
      sylanb expcom cab fnrnfv eleq2d eqeq1 eqcom syl6bb rexbidv elab3g mpancom
      sylan9bbr ) AFZDGZCHZABIZCJKZLZDBMZCDNZKZVGOVGVJVHVGVDBKZVFPZAQZVJVHVFABR
      VOVJPVNVJPZAQVHVNVJASVPVHAVPVEJKZVHVPVJVMPVQVPVMVJVNVMVJVMVFTUAUBVQBVDDVD
      DUCUDUEVNVQVHOVJVNVECJVMVFUFUGUHUIUJUKULUMVJVLCEFZVEHZABIZEUNZKVIVGVJVKWA
      CAEBDUOUPVTVGECJVRCHZVSVFABWBVSCVEHVFVRCVEUQCVEURUSUTVAVCVB $.

    $( 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 cima wss cv wcel wi wal wfun cdm wa wral wceq wb wrex syl5bb cvv cfv
      dfss2 wbr eqcom ssel funbrfvb ex imp31 rexbidva vex elima syl6rbbr imbi1d
      syl9 r19.23v syl6bbr albidv ancoms ralcom4 w3a ssel2 anim2i 3impb funfvex
      nfv eleq1 ceqsalg 3syl 3expa ralbidva syl5bbr bitrd ) DBFZCGEHZVMIZVNCIZJ
      ZEKZDLZBDMZGZNZAHZDUAZCIZABOZEVMCUBWBVRVNWDPZVPJZABOZEKZWFWAVSVRWJQWAVSNZ
      VQWIEWKVQWGABRZVPJWIWKVOWLVPWKWLWCVNDUCZABRVOWKWGWMABWGWDVNPZWKWCBIZNWMVN
      WDUDWAVSWOWNWMQZWAWOWCVTIZVSWPBVTWCUEVSWQWPWCVNDUFUGUNUHSUIAVNDBEUJUKULUM
      WGVPABUOUPUQURWJWHEKZABOWBWFWHAEBUSWBWRWEABVSWAWOWRWEQZVSWAWOUTVSWQNZWDTI
      WSVSWAWOWTWAWONWQVSBVTWCVAVBVCWCDVDVPWEEWDTWEEVEVNWDCVFVGVHVIVJVKVLS $.

    $( 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 ~ dffn5im .  (Contributed by Mario Carneiro,
       8-Jan-2015.) $)
    feqmptd $p |- ( ph -> F = ( x e. A |-> ( F ` x ) ) ) $=
      ( wfn cv cfv cmpt wceq wf ffn syl dffn5im ) AECGZEBCBHEIJKACDELPFCDEMNBCE
      ON $.

    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 wf wss fssres syl2anc feqmptd fvres mpteq2ia syl6eq )
      AFEIZBEBJZUAKZLBEUBFKZLABEDUAACDFMECNEDUAMGHCDEFOPQBEUCUDUBEFRST $.
  $}

  ${
    $d x z $.  $d x z A $.  $d z F $.
    dffn5imf.1 $e |- F/_ x F $.
    $( Representation of a function in terms of its values.  (Contributed by
       Jim Kingdon, 31-Dec-2018.) $)
    dffn5imf $p |- ( F Fn A -> F = ( x e. A |-> ( F ` x ) ) ) $=
      ( vz wfn cv cfv cmpt dffn5im nfcv nffv fveq2 cbvmpt syl6eq ) CBFCEBEGZCHZ
      IABAGZCHZIEBCJEABQSAPCDAPKLESKPRCMNO $.
  $}

  ${
    $d u v A $.  $d x u v B $.  $d x u v C $.  $d x u v 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 ) ) $=
      ( vu vv wfn wss wa cima wcel cv cfv wceq wrex cvv eleq1 wb wi elex anim2i
      ssel2 funfvex funfni sylan2 anassrs syl5ibcom rexlimdva imdistani rexbidv
      eqeq2 bibi12d imbi2d wfun cdm fnfun adantr sseq2d biimpar dfimafn syl2anc
      cab fndm abeq2d vtoclg impcom pm5.21nd fveq2 eqeq1d cbvrexv syl6bb ) EBHZ
      CBIZJZDECKZLZFMZENZDOZFCPZAMZENZDOZACPVOVQWAVODQLZJVQWEVODVPUAUBVOWAWEVOV
      TWEFCVOVRCLZJVSQLZVTWEVMVNWFWGVNWFJVMVRBLWGCBVRUCWGBVREVREUDUEUFUGVSDQRUH
      UIUJWEVOVQWASZVOGMZVPLZVSWIOZFCPZSZTVOWHTGDQWIDOZWMWHVOWNWJVQWLWAWIDVPRWN
      WKVTFCWIDVSULUKUMUNVOWLGVPVOEUOZCEUPZIZVPWLGVCOVMWOVNBEUQURVMWQVNVMWPBCBE
      VDUSUTFGCEVAVBVEVFVGVHVTWDFACVRWBOVSWCDVRWBEVIVJVKVL $.
  $}

  $( 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 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 cv cfv ciin wceq wrex cab cint crn wcel funfvex funfni ralrimiva
      cvv wral dfiin2g syl fnrnfv inteqd eqtr4d ) CBEZABAFZCGZHZDFUGIABJDKZLZCM
      ZLUEUGRNZABSUHUJIUEULABULBUFCUFCOPQADBUGRTUAUEUKUIADBCUBUCUD $.

    $( 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 imasng adantl 3eqtr4d ) CAEZBAFZGZDHZBCIZJZDKZBUGCLZDKZUHMZCBMN
      ZUFUIUKDUIUHUGJUFUKUGUHOABUGCPQRUMUJJUFDUHSTUEUNULJUDDBACUAUBUC $.
  $}

  $( 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 Jim Kingdon, 1-Jan-2019.) $)
  funfvdm $p |- ( ( Fun F /\ A e. dom F ) -> ( F ` A ) = U. ( F " { A } ) ) $=
    ( wfun cdm wcel wa cfv csn cuni cima cvv wceq funfvex unisng syl eqid df-fn
    wfn mpbiran2 fnsnfv sylanbr unieqd eqtr3d ) BCZABDZEZFZABGZHZIZUHBAHJZIUGUH
    KEUJUHLABMUHKNOUGUIUKUDBUERZUFUIUKLULUDUEUELUEPBUEQSUEABTUAUBUC $.

  ${
    $d y A $.  $d y F $.
    $( The value of a function.  Definition of function value in [Enderton]
       p. 43.  (Contributed by Jim Kingdon, 1-Jan-2019.) $)
    funfvdm2 $p |- ( ( Fun F /\ A e. dom F ) ->
        ( F ` A ) = U. { y | A F y } ) $=
      ( wfun cdm wcel wa cfv csn cima cuni wbr cab funfvdm imasng adantl unieqd
      cv wceq eqtrd ) CDZBCEZFZGZBCHCBIJZKBARCLAMZKBCNUDUEUFUCUEUFSUAABUBCOPQT
      $.
  $}

  ${
    $d w A $.  $d w F $.  $d w y $.
    funfvdm2f.1 $e |- F/_ y A $.
    funfvdm2f.2 $e |- F/_ y F $.
    $( The value of a function.  Version of ~ funfvdm2 using a bound-variable
       hypotheses instead of distinct variable conditions.  (Contributed by Jim
       Kingdon, 1-Jan-2019.) $)
    funfvdm2f $p |- ( ( Fun F /\ A e. dom F ) ->
        ( F ` A ) = U. { y | A F y } ) $=
      ( vw wfun cdm wcel wa cfv cv wbr cab cuni funfvdm2 nfcv nfbr nfv breq2
      cbvab unieqi syl6eq ) CGBCHIJBCKBFLZCMZFNZOBALZCMZANZOFBCPUFUIUEUHFAABUDC
      DEAUDQRUHFSUDUGBCTUAUBUC $.
  $}

  $( 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 wfun cdm cun cfv fnfun 3ad2ant1 cima cuni csn
    3ad2ant2 ineqan12d eqeq1d biimprd adantrd 3impia simp3r eleq2d mpbird funun
    fndm wb wss ssun1 ax-mp sseli anim12i anasss 3impa funfvdm syl imaundir a1i
    dmss unieqd disjel ndmima 3ad2ant3 uneq2d un0 syl6eq eqcomd adantrl 3adant2
    wn eqtrd 3eqtrd syl112anc ) CAFZDBFZABGZHIZEAJZKZLZCMZDMZCNZDNZGZHIZEWIJZEC
    DOZPZECPZIVTWAWGWEACQRWAVTWHWEBDQUBVTWAWEWLVTWAKZWCWLWDWQWLWCWQWKWBHVTWAWIA
    WJBACULZBDULUCUDUEUFUGWFWMWDVTWAWCWDUHVTWAWMWDUMWEVTWIAEWRUIRUJWGWHWLWMKZLZ
    WOWNEUAZSZTZCXASZTZWPWTWNMZEWNNZJZKZWOXCIWGWHWSXIWGWHKZWLWMXIXJWLKXFWMXHCDU
    KWIXGECWNUNWIXGUNCDUOCWNVEUPUQURUSUTEWNVAVBWTXCXDDXASZOZTXEWTXBXLXBXLIWTCDX
    AVCVDVFWTXLXDWTXLXDHOXDWTXKHXDWSWGXKHIZWHWSEWJJVPXMWIWJEVGEDVHVBVIVJXDVKVLV
    FVQWGWSXEWPIZWHWGWMXNWLWGWMKWPXEECVAVMVNVOVRVS $.

  $( 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 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 ) ) $=
      ( vy vx wfun cdm wcel wa cfv cv cop wex ccom wceq cvv syl exbidv eldm2g
      wb opeq1 eleq1d ceqsexgv eqcom funopfvb syl5bb anbi1d bitr3d vex opelco2g
      funfvex mpan2 bitrd adantl 3bitr4rd ) CFZACGZHZIZACJZDKZLZBHZDMZAEKZLCHZV
      EVALZBHZIZEMZDMZUTBGHZABCNZGHZUSVCVJDUSVEUTOZVHIZEMZVCVJUSUTPHZVQVCTACUKZ
      VHVCEUTPVOVGVBBVEUTVAUAUBUCQUSVPVIEUSVOVFVHVOUTVEOUSVFVEUTUDAVECUEUFUGRUH
      RUSVRVLVDTVSDUTBPSQURVNVKTUPURVNAVALVMHZDMVKDAVMUQSURVTVJDURVAPHVTVJTDUIE
      AVABCUQPUJULRUMUNUO $.

    $( 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 cima cio cfv fnsnfv imaeq2d imaco dffv3g cvv
      wceq syl6reqr eleq2d iotabidv adantl funfvex funfni syl 3eqtr4d ) CAFZDAG
      ZHZEIZBCJZDKZLZGZEMZULBDCNZKZLZGZEMZDUMNZURBNZUKUPVAEUKUOUTULUKUTBCUNLZLU
      OUKUSVEBADCOPBCUNQUAUBUCUJVCUQTUIEDUMARUDUKURSGZVDVBTVFADCDCUEUFEURBSRUGU
      H $.
  $}

  $( 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 $.

  ${
    $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 x y A $.  $d y B $.  $d x y C $.  $d x y D $.  $d y F $.
    fvmptss2.1 $e |- ( x = D -> B = C ) $.
    fvmptss2.2 $e |- F = ( x e. A |-> B ) $.
    $( 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.)  (Revised by
       Mario Carneiro, 3-Jul-2019.) $)
    fvmptss2 $p |- ( F ` D ) C_ C $=
      ( vy cv wbr wss wi cfv fvss cvv wcel nfcv wceq sylbi funmpt2 funrel ax-mp
      wfun wrel brrelexi cmpt nfmpt1 nfcxfr nfbr nfv breq1 sseq2d imbi12d df-br
      nfim cop copab opabid eqimss adantl df-mpt eqtri eleq2s vtoclgf mpcom mpg
      wa ) EIJZFKZVIDLZMZEFNDLIIEDFOEPQVJVKEVIFFUDFUEABCFHUAFUBUCUFAJZVIFKZVICL
      ZMVLAEPAERZVJVKAAEVIFVPAFABCUGZHABCUHUIAVIRUJVKAUKUPVMESZVNVJVOVKVMEVIFUL
      VRCDVIGUMUNVNVMVIUQZFQVOVMVIFUOVOVSVMBQZVICSZVHZAIURZFVSWCQWBVOWBAIUSWAVO
      VTVICUTVATFVQWCHAIBCVBVCVDTVEVFVG $.
  $}

  ${
    $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 $.

    ${
      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 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 x y A $.  $d y B $.  $d y D $.  $d y F $.  $d y V $.
    fvmpt2.1 $e |- F = ( x e. A |-> B ) $.
    $( 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 ) $=
      ( vy cv csb weq csbeq1 csbid syl6eq cmpt nfcv nfcsb1v cbvmpt eqtri fvmptg
      csbeq1a ) GAHZAGHZCIZCBDEGAJUCAUACICAUBUACKACLMEABCNGBUCNFAGBCUCGCOAUBCPA
      UBCTQRS $.

    $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 at a value in the domain of the
       mapping.  (Contributed by Jim Kingdon, 3-Jan-2018.) $)
    fvmptssdm $p |- ( ( D e. dom F /\ A. x e. A B C_ C ) -> ( F ` D ) C_ C ) $=
      ( vy wcel wss cfv wi cvv cv wceq fveq2 sseq1d imbi2d nfcv nfim cdm nfrab1
      wral crab nfcri nfra1 cmpt nfmpt1 nfcxfr nffv nfss eleq1 imbi12d dmmpt wa
      eleq2i rabeq2i fvmpt2 eqimss syl sylbi adantr dmmptss sseli rsp ex sylbir
      mpan9 sstrd chvar vtoclga eleq2s imp ) EFUAZICDJZABUCZEFKZDJZVPVRLZECMIZA
      BUDZVNVPHNZFKZDJZLZVSHEWAWBEOZWDVRVPWFWCVQDWBEFPQRANZWAIZVPWGFKZDJZLZLWBW
      AIZWELAHWLWEAAHWAVTABUBUEVPWDAVOABUFAWCDAWBFAFABCUGGABCUHUIAWBSUJADSUKTTW
      GWBOZWHWLWKWEWGWBWAULWMWJWDVPWMWIWCDWGWBFPQRUMWHWGVNIZWKVNWAWGABCFGUNZUPW
      NVPWJWNVPUOWICDWNWICJZVPWNWGBIZVTUOZWPVTAVNBWOUQWRWICOWPABCMFGURWICUSUTVA
      VBWNWQVPVOVNBWGABCFGVCVDVOABVEVHVIVFVGVJVKWOVLVM $.

    $( Sufficient condition for a maps-to notation to be set-like.
       (Contributed by Mario Carneiro, 3-Jul-2019.) $)
    mptfvex $p |- ( ( A. x B e. V /\ C e. W ) -> ( F ` C ) e. _V ) $=
      ( vy wcel wal wa cfv csb cvv cv cmpt nfel1 wceq eleq1d wss csbeq1 nfcsb1v
      nfcv cbvmpt eqtri fvmptss2 elex alimi cbval sylib spcgv syl5 impcom ssexg
      csbeq1a sylancr ) CFJZAKZDGJZLDEMZADCNZUAVBOJZVAOJIBAIPZCNZVBDEAVDDCUBZEA
      BCQIBVEQHAIBCVEICUDZAVDCUCZAVDCUPZUEUFUGUTUSVCUSVEOJZIKZUTVCUSCOJZAKVKURV
      LACFUHUIVLVJAIICOVGRAVEOVHRAPVDSCVEOVITUJUKVJVCIDGVDDSVEVBOVFTULUMUNVAVBO
      UOUQ $.
  $}

  ${
    $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 simpr eqid fvmpt2 syl2anc eqtrd
      ) ABIZCJZKZUBELZUBBCDMZLZDAUEUGNUCAUBEUFGOPUDUCDFJUGDNAUCQHBCDFUFUFRSTUA
      $.
  $}

  ${
    $d x A $.  $d x D $.  $d x ph $.
    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 ) ) $.
    ${
      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.) $)
      fvmptdf $p |- ( ph -> ( F = ( x e. D |-> B ) -> ps ) ) $=
        ( cv wceq cmpt wi nfv wcel cfv nfmpt1 nfeq nfim cvv wex syl isset sylib
        elex fveq1 simpr fveq2d adantr eqeltrd eqid fvmpt2 eqtr3d eqeq2d sylbid
        wa syl2anc syl5 exlimdd ) ACNZDOZGCFEPZOZBQCACRVGBCCGVFLCFEUAUBMUCADUDS
        ZVECUEADFSZVHIDFUIUFCDUGUHVGDGTZDVFTZOZAVEUTZBDGVFUJVMVLVJEOBVMVKEVJVMV
        DVFTZVKEVMVDDVFAVEUKZULVMVDFSEHSVNEOVMVDDFVOAVIVEIUMUNJCFEHVFVFUOUPVAUQ
        URKUSVBVC $.
    $}

    $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 $.
  $}

  ${
    $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 dffn5im eqeqan12d wb cvv funfvex ralrimiva
      wcel funfni mpteqb syl adantr bitrd ) CBEZDBEZFCDGABAHZCIZJZABUFDIZJZGZUG
      UIGABKZUDUECUHDUJABCLABDLMUDUKULNZUEUDUGORZABKUMUDUNABUNBUFCUFCPSQABUGUIO
      TUAUBUC $.

    $( 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.
       (Contributed by NM, 3-Aug-1994.) $)
    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 fnssres anim12i anandirs wcel fvres
      eqfnfv eqeq12d ralbiia syl6bb syl ) DBFZEBFZGCBHZGDCIZCFZECIZCFZGZUHUJJZA
      KZDLZUNELZJZACMZNUEUFUGULUEUGGUIUFUGGUKBCDOBCEOPQULUMUNUHLZUNUJLZJZACMURA
      CUHUJTVAUQACUNCRUSUOUTUPUNCDSUNCESUAUBUCUD $.
  $}

  ${
    $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 dfss1 vex adantll
      sylib eldm necon3abid funfvex funfni adantlr breq2 notbid ceqsexgv anbi1d
      cvv syl brdif syl6bbr exbidv 3bitr2rd rabbi2dva eqtr3d ) CBFZDBFZGZBCDUAZ
      HZUBZVPAIZCJZVRDJZUCZABUDVNVPBKVQVPLVNCHZVPBVOCKVPWBKCDUEVOCUFUGVLWBBLVMB
      CUHUIUJVPBUKUNVNWAABVPVRVPMVREIZVONZEOZVNVRBMZGZWAEVRVOAULUOWGWAVRVSDNZPZ
      WCVSLZVRWCDNZPZGZEOZWEWGWHVSVTVMWFVSVTLZWHQVLWOVTVSLVMWFGWHVSVTRBVRVSDSTU
      MUPWGVSVDMZWNWIQVLWFWPVMWPBVRCVRCUQURUSWLWIEVSVDWJWKWHWCVSVRDUTVAVBVEWGWM
      WDEWGWMVRWCCNZWLGWDWGWJWQWLVLWFWJWQQVMWJVSWCLVLWFGWQWCVSRBVRWCCSTUSVCVRWC
      CDVFVGVHVITVJVK $.

    $( 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 $.

    $( 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 wcel cfv wceq copab cmpt dffn5im df-mpt syl6eq wex
      cab crab ineqan12d inopab dmeqd anandi exbii 19.42v bitr3i wb cvv funfvex
      wfun eqeq1 ceqsexgv syl funfni syl5bb abbidv dmopab df-rab 3eqtr4g adantr
      pm5.32da eqtrd ) CBFZDBFZGZCDHZIAJZBKZEJZVICLZMZGZVJVKVIDLZMZGZGZAENZIZVL
      VOMZABUAZVGVHVSVGVHVNAENZVQAENZHVSVEVFCWCDWDVECABVLOWCABCPAEBVLQRVFDABVOO
      WDABDPAEBVOQRUBVNVQAEUCRUDVEVTWBMVFVEVRESZATVJWAGZATVTWBVEWEWFAWEVJVMVPGZ
      ESZGZVEWFWEVJWGGZESWIWJVREVJVMVPUEUFVJWGEUGUHVEVJWHWAWHWAUIZBVICCULVICIKG
      VLUJKWKVICUKVPWAEVLUJVKVLVOUMUNUOUPVCUQURVRAEUSWAABUTVAVBVD $.
  $}

  ${
    $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 wa cfv csn wss snssi funimass2 sylan2 cdm wb cnvimass
    sseli cvv funfvex snssg syl wceq funfn fnsnfv sylanb sseq1d bitrd mpbird
    wfn ) CDZACEBFZGZHZACIZBGZCAJZFZBKZUMUKUQULKUSAULLUQBCMNUNUPUOJZBKZUSUMUKAC
    OZGZUPVAPZULVBACBQRZUKVCHUOSGVDACTUOBSUAUBNUNUTURBUMUKVCUTURUCZVEUKCVBUJVCV
    FCUDVBACUEUFNUGUHUI $.

  $( 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 cvv wb sylancom mpbird wss
    wi ex funfvex opelcnvg elimasng snssg syl imass2 syl6bi imp sseld fvimacnvi
    mpid adantr impbid ) CDZACEZFZGZACHZBFZACIZBJZFZUQUSAUTURKZJZFZVBUQVEURALUT
    FZUQVFAURLCFZACMUNUPURNFZVFVGOACUAZURANUOCUBPQUNUPVHVEVFOVIUTURANUOUCPQUQUS
    VEVBSUQUSGVDVAAUQUSVDVARZUQUSVCBRZVJUQVHUSVKOVIURBNUDUEVCBUTUFUGUHUITUKUNVB
    USSUPUNVBUSABCUJTULUM $.

  ${
    $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 cima csn cv cfv wcel wral ccnv wceq funimass4 funimass3
      cvv wb ssel2 anim2i anassrs funfvex elsng 3syl ralbidva 3bitr3rd ) DEZBDF
      ZGZHZDBICJZGAKZDLZUMMZABNBDOUMIGUOCPZABNABUMDQBUMDRULUPUQABULUNBMZHUIUNUJ
      MZHZUOSMUPUQTUIUKURUTUKURHUSUIBUJUNUAUBUCUNDUDUOCSUEUFUGUH $.
  $}

  $( 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 wb wfun cdm cvv funfvex elsng
    syl funfni pm5.32da bitrd ) DAEZCDFBGZHICAIZCDJZUEIZKUFUGBLZKACUEDMUDUFUHUI
    UHUINZACDDOCDPIKUGQIUJCDRUGBQSTUAUBUC $.

  ${
    $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 wb cdm wa cvv funfvex
      wfun elsng syl funfni rabbidva eqtrd ) DBEZDFCGZHAIZDJZUGKZABLUICMZABLABU
      GDNUFUJUKABUJUKOZBUHDDTUHDPKQUIRKULUHDSUICRUAUBUCUDUE $.

    $( Support sets of functions expressed as abstractions.  (Contributed by
       Stefan O'Rear, 1-Feb-2015.) $)
    fnniniseg2 $p |- ( F Fn A -> ( `' F " ( _V \ { B } ) ) =
          { x e. A | ( F ` x ) =/= B } ) $=
      ( wfn ccnv cvv csn cdif cima cv cfv wcel crab fncnvima2 wa funfvex funfni
      wne biantrurd eldifsn syl6rbbr rabbidva eqtrd ) DBEZDFGCHIZJAKZDLZUFMZABN
      UHCSZABNABUFDOUEUIUJABUEUGBMPZUJUHGMZUJPUIUKULUJULBUGDUGDQRTUHGCUAUBUCUD
      $.
  $}

  ${
    $d F x $.  $d A x $.
    $( Existential quantification restricted to a support.  (Contributed by
       Stefan O'Rear, 23-Mar-2015.) $)
    rexsupp $p |- ( F Fn A -> ( E. x e. ( `' F " ( _V \ { Z } ) ) ph <->
          E. x e. A ( ( F ` x ) =/= Z /\ ph ) ) ) $=
      ( wfn cv cfv wne wa ccnv cvv csn cdif cima wcel elpreima funfni biantrurd
      funfvex eldifsn syl6rbbr pm5.32da bitrd anbi1d anass syl6bb rexbidv2 ) DC
      FZABGZDHZEIZAJZBDKLEMNZOZCUIUJUOPZAJUJCPZULJZAJUQUMJUIUPURAUIUPUQUKUNPZJU
      RCUJUNDQUIUQUSULUIUQJZULUKLPZULJUSUTVAULVACUJDUJDTRSUKLEUAUBUCUDUEUQULAUF
      UGUH $.
  $}

  ${
    $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 $.
  $}

  $( 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 $.

  $( 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 crn cv wa wi wceq eleq1 anbi2d fveq2 eleq1d cop
      syl cvv imbi12d wex funfvop vex opeq1 spcev funfvex elrn2g mpbird anabsi7
      wb vtoclg ) BEZABFZGZABHZBIZGZUMCJZUNGZKZUSBHZUQGZLUMUOKZURLCAUNUSAMZVAVD
      VCURVEUTUOUMUSAUNNOVEVBUPUQUSABPQUAVAVCDJZVBRZBGZDUBZVAUSVBRZBGZVIUSBUCVH
      VKDUSCUDVFUSMVGVJBVFUSVBUEQUFSVAVBTGVCVIUKUSBUGDVBBTUHSUIULUJ $.
  $}

  $( 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 funfvex funfni wceq wrex fvelrnb eqcom rexbii
      syl6bb wb adantl rexxfr2d ) FEHZABCDDIZFJZFKZELUGLMEUFFUFFNOUECIZUHMUGUIP
      ZDEQUIUGPZDEQDEUIFRUJUKDEUGUISTUAUKABUBUEGUCUD $.

    $( 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 funfvex funfni wceq wrex fvelrnb eqcom rexbii
      syl6bb wb adantl ralxfr2d ) FEHZABCDDIZFJZFKZELUGLMEUFFUFFNOUECIZUHMUGUIP
      ZDEQUIUGPZDEQDEUIFRUJUKDEUGUISTUAUKABUBUEGUCUD $.
  $}

  ${
    $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 $.
  $}

  ${
    $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 wsbc wb dfsbcq syl nfv crn cfv fnmpt nfsbc1v sbceq1a
      wfn ralrn cbvral bicomi cmpt nfmpt1 nfcxfr nfcv nffv nfsbc weq wceq fveq2
      3bitr3g wa fvmpt2 sbcieg adantl bitrd ralimiaa ralbi ) FHMZCENZADGUAZNZAD
      COZGUBZPZCENZBCENZVHADKOZPZKVINZADLOZGUBZPZLENZVJVNVHGEUFVRWBQCEFGHIUCVQW
      AKLEGADVPVTRUGSVJVRAVQDKVIAKTADVPUDADVPUEUHUIWAVMLCEACDVTCVSGCGCEFUJICEFU
      KULCVSUMUNACTUOVMLTLCUPVTVLUQWAVMQVSVKGURADVTVLRSUHUSVHVMBQZCENVNVOQVGWCC
      EVKEMZVGUTZVMADFPZBWEVLFUQVMWFQCEFHGIVAADVLFRSVGWFBQWDABDFHJVBVCVDVEVMBCE
      VFSVD $.

    $( 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 ) ) $=
      ( vw vz wcel wral wrex cv wsbc wb nfv wa crn cfv wfn fnmpt dfsbcq nfsbc1v
      rexrn syl sbceq1a cbvrex bicomi cmpt nfmpt1 nfcxfr nfcv nfsbc weq sbceq1d
      fveq2 3bitr3g fvmpt2 sbcieg adantl bitrd ralimiaa wi wal wex pm5.32 albii
      nffv exbi sylbi df-ral df-rex bibi12i 3imtr4i ) FHMZCENZADGUAZOZADCPZGUBZ
      QZCEOZBCEOZVSADKPZQZKVTOZADLPZGUBZQZLEOZWAWEVSGEUCWIWMRCEFGHIUDWHWLKLEGAD
      WGWKUEUGUHWAWIAWHDKVTAKSADWGUFADWGUIUJUKWLWDLCEACDWKCWJGCGCEFULICEFUMUNCW
      JUOVKACSUPWDLSLCUQADWKWCWJWBGUSURUJUTVSWDBRZCENZWEWFRZVRWNCEWBEMZVRTZWDAD
      FQZBWRADWCFCEFHGIVAURVRWSBRWQABDFHJVBVCVDVEWQWNVFZCVGZWQWDTZCVHZWQBTZCVHZ
      RZWOWPXAXBXDRZCVGXFWTXGCWQWDBVIVJXBXDCVLVMWNCEVNWEXCWFXEWDCEVOBCEVOVPVQUH
      VD $.
  $}

  $( 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 x y A $.  $d x y B $.  $d x y F $.
    $( Property of a mapping.  (Contributed by Jim Kingdon, 4-Jan-2019.) $)
    dff3im $p |- ( F : A --> B ->
        ( F C_ ( A X. B ) /\ A. x e. A E! y x F y ) ) $=
      ( wf cxp wss cv wbr weu wral fssxp wcel wa wex adantr syl2anc cvv syl wmo
      cfv cop wfun cdm fdm eleq2d biimpar funfvop df-br sylibr wi funfvex breq2
      ffun spcegv mpd funmo eu5 sylanbrc ralrimiva jca ) CDEFZECDGHAIZBIZEJZBKZ
      ACLCDEMVCVGACVCVDCNZOZVFBPZVFBUAZVGVIVDVDEUBZEJZVJVIVDVLUCENZVMVIEUDZVDEU
      EZNZVNVCVOVHCDEUOZQZVCVQVHVCVPCVDCDEUFUGUHZVDEUIRVDVLEUJUKVIVOVQVMVJULZVS
      VTVOVQOVLSNWAVDEUMVFVMBVLSVEVLVDEUNUPTRUQVCVKVHVCVOVKVRBVDEURTQVFBUSUTVAV
      B $.

    $( Property of a mapping.  (Contributed by Jim Kingdon, 4-Jan-2019.) $)
    dff4im $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 dff3im wcel cop df-br ssel opelxp2
      syl6 syl5bi pm4.71rd eubidv df-reu syl6bbr ralbidv pm5.32i sylib ) 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 $.
  $}

  ${
    $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.) $)
    foco2 $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 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 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 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 syl wceq wb wcel wfun f1ofun funcnvcnv 3syl wf1 wss
      cima f1ocnv f1of1 ssrab2 f1ores sylancl mptpreima cv wa wi 3expia alrimiv
      wal wral f1of fmpt sylibr r19.21bi elrab3t syl2anc rabbidva syl5eq f1oeq3
      wf mpbid f1orescnv rescnvcnv f1oeq1 ax-mp sylib ) ABDFMZCEGMZINZNZVQOZPZV
      QVRIVQOZPZAVTUAZVRVQVSVROZPZWBAFGIPZIUAWEKFGIUBIUCUDAVRVSVRUGZWFPZWGAGFVS
      UEZVRGUFWJAGFVSPZWKAWHWLKFGIUHQGFVSUIQCEGUJGFVRVSUKULAWIVQRWJWGSAWIHVRTZD
      FMVQDFHVRIJUMAWMBDFADUNFTZUOZEUNHRZCBSZUPZEUSHGTZWMBSWOWREAWNWPWQLUQURAWS
      DFAFGIVJZWSDFUTAWHWTKFGIVAQDFGHIJVBVCVDCBEHGVEVFVGVHWIVQVRWFVIQVKVQVRVSVL
      VFWAWCRWBWDSIVQVMVQVRWAWCVNVOVP $.
  $}

  ${
    $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 wfun wrel funmpt funrel
      ax-mp wex csb cop cfv eqid fmptd feq1d mpbird ffun syl funbrfv imp eqcomd
      wf sylan a1d expimpd pm4.71rd exbidv cvv wi exsimpl sylibr a1i cdm adantr
      isset eleq2d biimpar funfvex syl2anc adantrr ex wb breq2 anbi12d ceqsexgv
      fdm breq1 funfvbrb bitr3d fveq1d eqidd breq123d nfcv nfv nffvmpt1 nfcsb1v
      nfbr nfeq2 nfbi nfim fveq2 breq1d csbeq1a eqeq2d bibi12d imbi2d vex simpl
      eleq1d simpr eqeq12d df-mpt brabga sylancl fvmpt2 3bitr4d expcom vtoclgaf
      biantrurd impcom bitrd sylan9bbr pm5.21ndd opelco copab eleq2i nfan eleq1
      pm5.32da eqeq1 anbi2d opelopabf bitri 3bitr4g eqrelrdv ) AUAUBJIUDZBDHUEZ
      JIUFYTUGYTUHBDHUIYTUJUKAUAPZOPZIQZUUBUBPZJQZRZOULZUUADSZUUDBUUAHUMZTZRZUU
      AUUDUNZYSSUULYTSZAUUGUUBUUAIUOZTZUUFRZOULZUUKAUUFUUPOAUUFUUOAUUCUUEUUOAUU
      CRZUUOUUEUURUUNUUBAIUGZUUCUUNUUBTZADEIVEZUUSAUVADEBDFUEZVEABDFEUVBKUVBUPZ
      UQADEIUVBLURUSZDEIUTVAZUUSUUCUUTUUAUUBIVBVCVFVDVGVHVIVJAUUNVKSZUUQUUKUUQU
      VFVLAUUQUUOOULUVFUUOUUFOVMOUUNVRVNVOAUUKUVFAUUHUVFUUJAUUHRUUSUUAIVPZSZUVF
      AUUSUUHUVEVQAUVHUUHAUVGDUUAAUVAUVGDTUVDDEIWIVAVSZVTUUAIWAWBWCWDAUVFUUQUUK
      WEUVFUUQUUAUUNIQZUUNUUDJQZRZAUUKUUFUVLOUUNVKUUOUUCUVJUUEUVKUUBUUNUUAIWFUU
      BUUNUUDJWJWGWHAUVLUUHUUAUVBUOZUUDCEGUEZQZRUUKAUVJUUHUVKUVOAUVHUVJUUHAUUSU
      VHUVJWEUVEUUAIWKVAUVIWLAUUNUVMUUDUUDJUVNAUUAIUVBLWMMAUUDWNWOWGAUUHUVOUUJU
      UHAUVOUUJWEZABPZUVBUOZUUDUVNQZUUDHTZWEZVLAUVPVLBUUADBUUAWPAUVPBABWQUVOUUJ
      BBUVMUUDUVNBDFUUAWRBUVNWPBUUDWPWTBUUDUUIBUUAHWSZXAXBXCUVQUUATZUWAUVPAUWCU
      VSUVOUVTUUJUWCUVRUVMUUDUVNUVQUUAUVBXDXEUWCHUUIUUDBUUAHXFZXGXHXIAUVQDSZUWA
      AUWERZFUUDUVNQZFESZUVTRZUVSUVTUWFUWHUUDVKSUWGUWIWEKUBXJZCPZESZUUBGTZRUWIC
      OFUUDUVNEVKUWKFTZUUBUUDTZRZUWLUWHUWMUVTUWPUWKFEUWNUWOXKXLUWPUUBUUDGHUWNUW
      OXMUWNGHTUWONVQXNWGCOEGXOXPXQUWFUVRFUUDUVNUWFUWEUWHUVRFTAUWEXMKBDFEUVBUVC
      XRWBXEUWFUWHUVTKYBXSXTYAYCYLYDYEWDYFYDOUUAUUDJIUAXJZUWJYGUUMUULUWEUCPZHTZ
      RZBUCYHZSUUKYTUXAUULBUCDHXOYIUWTUUHUWRUUITZRUUKBUCUUAUUDUUHUXBBUUHBWQBUWR
      UUIUWBXAYJUUKUCWQUWQUWJUWCUWEUUHUWSUXBUVQUUADYKUWCHUUIUWRUWDXGWGUWRUUDTUX
      BUUJUUHUWRUUDUUIYMYNYOYPYQYR $.
  $}

  ${
    $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 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 dffn5im syl
      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 sylibr opeq12 syl5ibrcom impbid vex opex elsn
      3bitr4i opth2 syl6bb alrimivv wrel frel relsnop eqrel sylancl mpbird wf1o
      f1osn f1oeq1 mpbiri f1of syl impbii ) AHZBHZCUBZCABIZHZJZWEWHFKZGKZIZCLZW
      KWGLZMZGNFNZWEWNFGWEWLWIAJZWJBJZOZWMWEWLWRWEWLWRWEWLOWIWCLZWJWDLZOWRWCWDW
      IWJCUCWSWPWTWQFAPGBPZUDUEUFWEWLWRWFCLZWEAWJIZCLZGWDUGZXBWEAWCLXEADUHGWCWD
      ACUAUIXBWQOZGQZWTXDOZGQXBXEXFXHGXHWQXDOZXFWTWQXDXAUOXIWQXBOXFWQXDXBWQXCWF
      CWJBAUJRUKXBWQULSTUMXBXBWQGQZOXGXJXBGBEUNUPXBWQGUQSXDGWDURVFUSWRWKWFCWIWJ
      ABUTRVAVBWMWKWFJWRWKWFWIWJFVCGVCVDVEWIWJABDEVGTVHVIWECVJWGVJWHWOMWCWDCVKA
      BDEVLFGCWGVMVNVOWHWCWDCVPZWEWHXKWCWDWGVPABDEVQWCWDCWGVRVSWCWDCVTWAWB $.
  $}

  ${
    $d A a b $.  $d B 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
      feq3 syl opeq2 fsn vtocl2g ) FHZIZGHZIZEJZEUFUHKZIZLZMAIZUIEJZEAUHKZIZLZM
      UNBIZEJZEABKZIZLZMFGABCDUFALZUJUOUMURVDUGUNUIEUFANOVDULUQEVDUKUPUFAUHPQRS
      UHBLZUOUTURVCVEUIUSLUOUTMUHBNUIUSUNEUAUBVEUQVBEVEUPVAUHBAUCQRSUFUHEFTGTUD
      UE $.
  $}

  ${
    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 cvv wcel cop wceq wa wfn ffn snid funfvex mpan2 syl wb cima
      funfni adantr ffvelrn crn dffn3 biimpi cdm imadmrn imaeq2d syl5eqr fnsnfv
      elex fndm eqtr4d feq3 mpbid jca wss snssi ancoms sylan impbii fsng anbi2d
      fss mpan syl5bb pm5.21nii ) AEZBCFZACGZHIZVKBIZCAVKJEKZLZVJCVIMZVLVIBCNZV
      PAVIIZVLADOZVLVIACACPUAQRVMVLVNVKBULUBVJVMVIVKEZCFZLZVLVOVJWBVJVMWAVJVRVM
      VSVIBACUCQVJVPWAVQVPVICUDZCFZWAVPWDVICUEUFVPWCVTKWDWASVPWCCVITZVTVPWCCCUG
      ZTWECUHVPWFVICVICUMUIUJVPVRVTWEKVSVIACUKQUNWCVTVICUORUPRUQVMVTBURZWAVJVKB
      USWAWGVJVIVTBCVEUTVAVBVLWAVNVMAHIVLWAVNSDAVKHHCVCVFVDVGVH $.
  $}

  $( The cross 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 cross 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 $.
  $}

  ${
    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 $.
  $}

  $( Alternate definition for the "maps to" notation ~ df-mpt (which requires
     that ` B ` be a set).  (Contributed by Jim Kingdon, 9-Jan-2019.) $)
  dfmptg $p |- ( A. x e. A B e. V ->
      ( x e. A |-> B ) = U_ x e. A { <. x , B >. } ) $=
    ( wcel wral cmpt cv csn cxp ciun cop dfmpt3 wceq cvv vex mpan ralimi iuneq2
    xpsng syl syl5eq ) CDEZABFZABCGABAHZICIJZKZABUECLIZKZABCMUDUFUHNZABFUGUINUC
    UJABUEOEUCUJAPUECODTQRABUFUHSUAUB $.

  ${
    $d x y $.  $d y A $.  $d y B $.
    $( A function expressed as the range of another function.  (Contributed by
       Jim Kingdon, 9-Jan-2019.) $)
    fnasrng $p |- ( A. x e. A B e. V ->
        ( x e. A |-> B ) = ran ( x e. A |-> <. x , B >. ) ) $=
      ( vy wcel wral cmpt cv cop csn ciun crn dfmptg wrex cab wceq rnmpt eqtr4i
      eqid velsn rexbii abbii df-iun syl6eqr ) CDFABGABCHABAICJZKZLZABUFHZMZABC
      DNUJEIZUGFZABOZEPZUHUJUKUFQZABOZEPUNAEBUFUIUITRUMUPEULUOABEUFUAUBUCSAEBUG
      UDSUE $.
  $}

  $( 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 wne cop cpr crn wceq csn cun rnsnopg 3ad2ant1 df-pr w3a wfn fnprg
    wss adantr adantl uneq12d rneqi rnun eqtri 3eqtr4g eqimss syl df-f sylanbrc
    wf ) AEIZBFIZJZCGIDHIJZABKZUAZACLZBDLZMZABMZUBVENZCDMZUDZVFVHVEUPABCDEFGHUC
    VBVGVHOVIVBVCPZNZVDPZNZQZCPZDPZQVGVHVBVKVOVMVPUSUTVKVOOZVAUQVQURACERUESUSUT
    VMVPOZVAURVRUQBDFRUFSUGVGVJVLQZNVNVEVSVCVDTUHVJVLUIUJCDTUKVGVHULUMVFVHVEUNU
    O $.

  $( 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 syl mpbird df-ne wo elpri eqcom orbi12i
    fsng sylib oranim con2i syl2anb 3adant1 3ad2ant3 disjsn sylibr fun syl21anc
    df-tp feq1i feq23i bitri ) JDMZKHMZLIMZNZAEMZBFMZCGMZNZJKOZJLOZKLOZNZNZJKPZ
    LUAZUBZABPZCUAZUBZJAUCZKBUCZPZLCUCZUAZUBZQZJKLUDZABCUDZWQWRWTUDZQZWJWKWNWSQ
    ZWLWOXAQZWKWLUEUFRZXCWAVRVSSWEWBWCSWIWFXHVRVSVTUGWBWCWDUGWFWGWHUHJKABDHEFUJ
    UIWJXIXAXARZWJXAUKWJVTWDSZXIXKULWAWEXLWIWAVTWEWDVRVSVTUMWBWCWDUMUNUOLCIGXAV
    CUPUQWJLWKMZTZXJWIWAXNWEWGWHXNWFWGJLRZTZKLRZTZXNWHJLURKLURXMXPXRSZXMXOXQUSZ
    XSTXMLJRZLKRZUSXTLJKUTYAXOYBXQLJVALKVAVBVDXOXQVEUPVFVGVHVIWKLVJVKWKWLWNWOWS
    XAVLVMXGXDXEXBQXCXDXEXFXBWQWRWTVNVOXDXEWMWPXBJKLVNABCVNVPVQVK $.

  ${
    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 dffn2 fsn2 bitri
      vsnid fvres ax-mp opeq2i sneqi eqeq2i snssi sylan2 funfvex funfni sylancl
      wf biantrurd syl5rbbr syl5bb mpbid expcom vtoclga impcom ) BAECAFZCBGZHZB
      BCIZJZGZKZVKCDLZGZHZVRVRCIZJZGZKZMVKVQMDBAVRBKZWDVQVKWEVTVMWCVPWEVSVLCVRB
      NOWEWBVOWEWAVNKWBVOKVRBCPVRWABVNQRUAUBUCVKVRAEZWDVKWFSZVTVSFZWDWFVKVSAUDZ
      WHVRADUEZUFAVSCUGZUHWHVRVTIZTEZVTVRWLJZGZKZSZWGWDWHVSTVTVCWQVSVTUIVRTVTWJ
      UJUKWDWPWGWQWOWCVTWNWBWLWAVRVRVSEZWLWAKDULZVRVSCUMUNUOUPUQWGWMWPWGWHWRWMW
      FVKWIWHVRAURWKUSWSWMVSVRVTVRVTUTVAVBVDVEVFVGVHVIVJ $.

    $( 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 $.
  $}

  $( 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
    $.

  ${
    $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 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 wcel wceq fmptsn syl2anc cv elsni sylan2 mpteq2dva
      eqtr4d uneq2d mptun a1i mpteq1d 3eqtr2d ) ABFELZCDMNZOUKBCNZELZOZBFUMOZEL
      ZBGELAULUNUKAULBUMDLZUNACPQDPQULURRHIBCDPPSTABUMEDBUAZUMQAUSCREDRUSCUBKUC
      UDUEUFUQUORABFUMEUGUHABUPGEJUIUJ $.
  $}

  ${
    $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 ) ) $=
      ( cun c0 wcel cop cpr csn cmpt wceq df-pr a1i uneq1i uncom un0 3eqtri cvv
      mpt0 elex syl eqtr3i fmptapd syl5eqr uneq1d eqcomi 3eqtrd ) ACEUAZDFUAZUB
      ZVBUCZVCUCZRZBCUCZGUDZVFRBCDUBZGUDVDVGUEAVBVCUFUGAVEVIVFAVEBSGUDZVERZVIVL
      SVERVESRVEVKSVEBGUMUHSVEUIVEUJUKABCEGSVHACHTCULTLCHUNUOAEJTEULTNEJUNUOSVH
      RZVHUEAVHSRVMVHVHSUIVHUJUPUGPUQURUSABDFGVHVJADITDULTMDIUNUOAFKTFULTOFKUNU
      OVHDUCRZVJUEAVJVNCDUFUTUGQUQVA $.
  $}

  $( 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 $.

  $( Remove an ordered pair not participating in a function value.
     (Contributed by Jim Kingdon, 7-Jan-2019.) $)
  fvunsng $p |- ( ( D e. V /\ B =/= D )
       -> ( ( A u. { <. B , C >. } ) ` D ) = ( A ` D ) ) $=
    ( wcel wne wa cop csn cun cfv cres wceq snidg fvres syl resundir c0 wn un0
    elsni necon3ai ressnop0 uneq2d syl6eq syl5eq fveq1d sylan9req adantr eqtrd
    ) DEFZBDGZHDABCIJZKZLZDADJZMZLZDALZULUMUPDUOUQMZLZUSULDUQFZVBUPNDEOZDUQUOPQ
    UMDVAURUMVAURUNUQMZKZURAUNUQRUMVFURSKURUMVESURUMBUQFZTVESNVGBDBDUBUCBCUQUDQ
    UEURUAUFUGUHUIULUSUTNZUMULVCVHVDDUQAPQUJUK $.

  ${
    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
      JABCDKPABCDLMABQNO $.
  $}

  ${
    $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 $.
  $}

  $( 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 syl simp2l simp3 fun
    f1osng syl2anc f1of simp2r disjsn sylibr syl21anc wb snssi 3ad2ant3 ssequn2
    wss sylib feq3 mpbid ) ABCGZEDHZEAHIZJZFBHZKZAELZMZBFLZMZCEFNLZMZGZVFBVJGZV
    DUSVEVGVIGZAVEOPQZVKUSVBVCRVDVEVGVISZVMVDUTVCVOUSUTVAVCUAUSVBVCUBEFDBUDUEVE
    VGVIUFTVDVAVNUSUTVAVCUGAEUHUIAVEBVGCVIUCUJVDVHBQZVKVLUKVDVGBUOZVPVCUSVQVBFB
    ULUMVGBUNUPVHBVFVJUQTUR $.

  $( 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 $.

  ${
    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 cun df-pr fveq1i wceq necom cvv wcel fvunsng mpan
      sylbi syl5eq fvsn syl6eq ) ABGZAACHZBDHZIZJZAUFKZJZCUEUIAUJUGKLZJZUKAUHUL
      UFUGMNUEBAGZUMUKOZABPAQRUNUOEUJBDAQSTUAUBACEFUCUD $.
  $}

  ${
    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 wa cun df-pr fveq1i necom fvunsng fvsng
    sylan2b syl5eq 3adant2 3adant3 eqtrd ) AEGZCFGZABHZIAACJZBDJZKZLZAUJMZLZCUG
    UIUMUONUHUGUIOUMAUNUKMPZLZUOAULUPUJUKQRUIUGBAHUQUONABSUNBDAETUBUCUDUGUHUOCN
    UIACEFUAUEUF $.

  $( 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 wa cun prcom df-pr eqtri fveq1i fvunsng
    syl5eq 3adant2 fvsng 3adant3 eqtrd ) BEGZDFGZABHZIBACJZBDJZKZLZBUKMZLZDUGUI
    UMUONUHUGUIOUMBUNUJMPZLUOBULUPULUKUJKUPUJUKQUKUJRSTUNACBEUAUBUCUGUHUODNUIBD
    EFUDUEUF $.

  $( 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 fvunsng 3expa
    sylan2b ad2ant2rl fvpr1g adantrr eqtrd syl5eq ) AGIZDHIZJZABKZACKZJJZAADLZB
    ELZCFLZMZNAUPUQOZURPQZNZDAUSVAUPUQURRSUOVBAUTNZDUJUNVBVCTZUKUMUNUJCAKVDACUA
    UTCFAGUBUDUEULUMVCDTZUNUJUKUMVEABDEGHUFUCUGUHUI $.

  $( 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 $.

  ${
    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 ) $=
      ( cvv wcel wne wa cop ctp cfv wceq fvtp1g mpanl12 ) AIJDIJABKACKLAADMBEMC
      FMNODPGHABCDEFIIQR $.
  $}

  ${
    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 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 cross 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 cross 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 $.
  $}

  ${
    $d x w z A $.  $d x w z B $.  $d x w z F $.  $d y w A $.
    $( A constant function expressed in terms of its functionality, domain, and
       value.  See also ~ fconst2 .  (Contributed by Jim Kingdon,
       8-Jan-2019.) $)
    fconstfvm $p |- ( E. y y e. A -> (
        F : A --> { B } <->
          ( F Fn A /\ A. x e. A ( F ` x ) = B ) ) ) $=
      ( vw vz cv wcel wex csn wf wfn cfv wceq wral wa wrex eqeq1d sylan9bbr ffn
      fvconst ralrimiva jca fvelrnb fveq2 rspccva rexbidva r19.9rmv velsn eqcom
      crn bicomd bitr2i syl6bb eqrdv an32s exp31 imdistand wfo df-fo fof sylbir
      syl6 impbid2 ) BHCIBJZCDKZELZECMZAHZENZDOZACPZQZVHVIVMCVGEUAVHVLACCDVJEUB
      UCUDVFVNVIEULZVGOZQZVHVFVIVMVPVFVIVMVPVFVMVIVPVFVMQZVIQZFVOVGVSFHZVOIZDVT
      OZVTVGIZVIWAGHZENZVTOZGCRZVRWBGCVTEUEVMWGWBGCRZVFWBVMWFWBGCVMWDCIQWEDVTVL
      WEDOAWDCVJWDOVKWEDVJWDEUFSUGSUHVFWBWHWBGBCUIUMTTWCVTDOWBFDUJVTDUKUNUOUPUQ
      URUSVQCVGEUTVHCVGEVACVGEVBVCVDVE $.
  $}

  ${
    $d x A $.  $d y B $.  $d y F $.  $d y A $.  $d y x $.
    $( Two ways to express a constant function.  (Contributed by Jim Kingdon,
       8-Jan-2019.) $)
    fconst3m $p |- ( E. x x e. A -> (
        F : A --> { B } <->
          ( F Fn A /\ A C_ ( `' F " { B } ) ) ) ) $=
      ( vy cv wcel wex csn wf wfn cfv wceq wral wa ccnv cima wss fconstfvm wfun
      cdm wb fnfun fndm eqimss2 syl funconstss syl2anc pm5.32i syl6bb ) AFBGAHB
      CIZDJDBKZEFDLCMEBNZOULBDPUKQRZOEABCDSULUMUNULDTBDUAZRZUMUNUBBDUCULUOBMUPB
      DUDBUOUEUFEBCDUGUHUIUJ $.
  $}

  ${
    $d x A $.
    $( Two ways to express a constant function.  (Contributed by NM,
       8-Mar-2007.) $)
    fconst4m $p |- ( E. x x e. A -> (
        F : A --> { B } <->
          ( F Fn A /\ ( `' F " { B } ) = A ) ) ) $=
      ( cv wcel wex csn wf wfn ccnv cima wss wa wceq fconst3m cdm cnvimass fndm
      syl5sseq biantrurd eqss syl6bbr pm5.32i syl6bb ) AEBFAGBCHZDIDBJZBDKUFLZM
      ZNUGUHBOZNABCDPUGUIUJUGUIUHBMZUINUJUGUKUIUGDQUHBDUFRBDSTUAUHBUBUCUDUE $.
  $}

  ${
    $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 cres cdm cfv cmpt cima cvv wceq wral ralrimiva 3syl adantr
      wa cv sylancr cop crn funfvex fnasrng wfn funfn sylib dffn5im syl imadmrn
      funres vex opexg dmmptg imaeq2d syl5reqr funmpt dmresexg adantl funimaexg
      3eqtr4d eqeltrd ) AEZBCFZRZABGZDVFHZDSZVHVFIZUAZJZVGKZLVEDVGVIJZVKUBZVFVL
      VCVMVNMZVDVCVFEZVILFZDVGNVOBAUKZVPVQDVGVHVFUCZODVGVILUDPQVEVFVGUEZVFVMMVE
      VPVTVCVPVDVRQVFUFUGDVGVFUHUIVCVLVNMVDVCVNVKVKHZKVLVKUJVCWAVGVKVCVPVJLFZDV
      GNWAVGMVRVPWBDVGVPVHVGFRVHLFVQWBDULVSVHVILLUMTODVGVJLUNPUOUPQVAVEVKEVGLFZ
      VLLFDVGVJUQVDWCVCABCURUSVKVGLUTTVB $.
  $}

  $( 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 .  (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 $.
  $}

  ${
    $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.  (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 $.
  $}

  $( 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 y A $.  $d f y 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 ) $=
      ( vy cv wfn cfv wceq wral wa weu wb wal wex cmpt mptex cvv eqeq2 pm4.71ri
      bibi2d albidv spcev eqid fnmpti mpbiri dffn5im eqeq1d wcel funfvex funfni
      fneq1 ralrimiva mpteqb syl bitrd pm5.32i bitr2i mpg df-eu mpbir ) DHZBIZA
      HZVDJZCKABLZMZDNVIVDGHZKZOZDPZGQZVIVDABCRZKZOZVNDVMVQDPGVOABCESVJVOKZVLVQ
      DVRVKVPVIVJVOVDUAUCUDUEVPVEVPMVIVPVEVPVEVOBIABCVOFVOUFUGBVDVOUNUHUBVEVPVH
      VEVPABVGRZVOKZVHVEVDVSVOABVDUIUJVEVGTUKZABLVTVHOVEWAABWABVFVDVFVDULUMUOAB
      VGCTUPUQURUSUTVAVIDGVBVC $.
  $}

  $( 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 $.

  ${
    $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 wb adantl
      cvv imp cv simpr wceq sneq imaeq2d eleq2d eleq1d bibi12d funfvex elimasng
      opeq1 vex sylancr vtocld mpbird exp32 impcom ) BCEZBFZABGZHZABIZCAJZKZHZL
      USUTVBVFUSUTVBMZMVFAVCNZCHZUSVGVIVGVHBHUSVIABOBCVHPQUAVGVFVIRZUSVGVCCDUBZ
      JZKZHZVKVCNZCHZRZVJDAVAUTVBUCVKAUDZVQVJRVGVRVNVFVPVIVRVMVEVCVRVLVDCVKAUEU
      FUGVRVOVHCVKAVCULUHUISVGVKTHVCTHVQDUMABUJCVKVCTTUKUNUOSUPUQUR $.
  $}

  $( 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 ssel2 funfvex wceq wrex funfni fvelimab
      sylan2 anassrs eqcom rexbii syl6bb wb adantl rexxfr2d ) GEIZFEJZKZABCDDLZ
      GMZGFNZFOUKULUNFPZUOOPZULUQKUKUNEPURFEUNQUREUNGUNGRUAUCUDUMCLZUPPUOUSSZDF
      TUSUOSZDFTDEFUSGUBUTVADFUOUSUEUFUGVAABUHUMHUIUJ $.

    $( 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 ssel2 funfvex wceq wrex funfni fvelimab
      sylan2 anassrs eqcom rexbii syl6bb wb adantl ralxfr2d ) GEIZFEJZKZABCDDLZ
      GMZGFNZFOUKULUNFPZUOOPZULUQKUKUNEPURFEUNQUREUNGUNGRUAUCUDUMCLZUPPUOUSSZDF
      TUSUOSZDFTDEFUSGUBUTVADFUOUSUEUFUGVAABUHUMHUIUJ $.
  $}

  ${
    $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
      vex mpbiran bitri df-br ralbii mptresid fnasrn eqtr3i sseq1i 3bitr4ri
      df-f ) ADZUKEZCFZABGZABULHZIZCJZUKUKCKZABGLBMZCJUNBCUONZUQABCULUOUOOZPUTU
      OBQUQABULUOUKUKATZVBRVASBCUOUJUAUBURUMABUKUKCUCUDUSUPCABUKHUSUPABUEABUKVB
      UFUGUHUI $.
  $}

  ${
    $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 cv cfv ciun wceq wrex cab cuni crn wcel funfvex funfni ralrimiva
      cvv wral dfiun2g syl fnrnfv unieqd eqtr4d ) CBEZABAFZCGZHZDFUGIABJDKZLZCM
      ZLUEUGRNZABSUHUJIUEULABULBUFCUFCOPQADBUGRTUAUEUKUIADBCUBUCUD $.

    $( The indexed union of a function's values is the union of its image under
       the index class.  This theorem is a slight variation of ~ fniunfv .
       (Contributed by Jim Kingdon, 10-Jan-2019.) $)
    funiunfvdm $p |- ( F Fn A -> U_ x e. A ( F ` x ) = U. ( F " A ) ) $=
      ( wfn cv cfv ciun crn cuni cima fniunfv cdm imadmrn imaeq2d syl5eqr eqtrd
      fndm unieqd ) CBDZABAECFGCHZICBJZIABCKSTUASTCCLZJUACMSUBBCBCQNORP $.
  $}

  ${
    $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 ~ funiunfvdm uses a bound-variable
       hypothesis in place of a distinct variable condition.  (Contributed by
       Jim Kingdon, 10-Jan-2019.) $)
    funiunfvdmf $p |- ( F Fn A -> U_ x e. A ( F ` x ) = U. ( F " A ) ) $=
      ( vz wfn cv cfv ciun cima cuni nfcv nffv fveq2 cbviun funiunfvdm syl5eqr
      ) CBFABAGZCHZIEBEGZCHZICBJKEABUASATCDATLMESLTRCNOEBCPQ $.
  $}

  ${
    $d x A $.  $d x B $.  $d x F $.
    $( Membership in the union of an image of a function.  (Contributed by Jim
       Kingdon, 10-Jan-2019.) $)
    eluniimadm $p |- ( F Fn A ->
                   ( B e. U. ( F " A ) <-> E. x e. A B e. ( F ` x ) ) ) $=
      ( cv cfv wcel wrex ciun wfn cima cuni eliun funiunfvdm eleq2d syl5rbbr )
      CAEDFZGABHCABQIZGDBJZCDBKLZGACBQMSRTCABDNOP $.
  $}

  ${
    $d x y A $.  $d x y F $.
    $( Membership in the union of the range of a function.  (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 eleq2 cvv
      wb funfn fvelrnb anbi2d r19.42v syl6bbr biimparc reximi syl6bi exlimdv wi
      sylbi fvelrn funfvex eleq1 anbi12d spcegv mpan2d rexlimdva impbid syl5bb
      syl ) BCEZFGBDHZGZVCVBGZIZDJZCKZBAHZCLZGZACMZNZDBVBOVHVGVMVHVFVMDVHVFVDVJ
      VCPZIZAVLNZVMVHVFVDVNAVLNZIVPVHVEVQVDVHCVLQVEVQTCUAAVLVCCUBUKUCVDVNAVLUDU
      EVOVKAVLVNVKVDVJVCBRUFUGUHUIVHVKVGAVLVHVIVLGIZVKVJVBGZVGVICULVRVJSGVKVSIZ
      VGUJVICUMVFVTDVJSVCVJPVDVKVEVSVCVJBRVCVJVBUNUOUPVAUQURUSUT $.
  $}

  ${
    $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 syl5bb fndm
      wf1 wf wmo dff12 wfn ffn syl5ib anim12d pm4.71rd fnbrfvb bi2anan9 anandis
      cdm pm5.32da bitr4d imbi1d impexp syl6bb albidv 19.21v wex funfvex funfni
      eqcom cvv eqvincg syl syl6rbbr adantrr pm5.74da bitrd 2albidv breq1 albii
      19.23v mo4 alrot3 bitri r2al 3bitr4g pm5.32i ) CDEUBCDEUCZAGZFGZEHZAUDZFI
      ZJWCWDEKZBGZEKZLZWDWJLZMZBCNACNZJAFCDEUEWCWHWOWCECUFZWHWOOCDEUGWPWFWJWEEH
      ZJZWMMZFIZBIAIZWDCPZWJCPZJZWNMZBIAIWHWOWPWTXEABWPWTXDWEWILZWEWKLZJZWMMZMZ
      FIZXEWPWSXJFWPWSXDXHJZWMMXJWPWRXLWMWPWRXDWRJXLWPWRXDWPWFXBWQXCWFWDEUNZPWP
      XBWDWEEAQFQZRWPXMCWDCEUAZSUHWQWJXMPWPXCWJWEEBQXNRWPXMCWJXOSUHUIUJWPXDXHWR
      WPXBXCXHWROWPXBJZXFWFWPXCJZXGWQXFWIWELXPWFWEWIVECWDWEEUKTXGWKWELXQWQWEWKV
      ECWJWEEUKTULUMUOUPUQXDXHWMURUSUTXKXDXIFIZMWPXEXDXIFVAWPXDXRWNWPXBXRWNOXCX
      PWNXHFVBZWMMXRXPWLXSWMXPWIVFPZWLXSOXTCWDEWDEVCVDFWIWKVFVGVHUQXHWMFVPVIVJV
      KTVLVMWHWSBIAIZFIXAWGYAFWFWQABWDWJWEEVNVQVOWSFABVRVSWNABCCVTWAVHWBVS $.
  $}

  ${
    $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 $.
  $}

  ${
    $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 nfralxy eqeq1d equequ1 ralbidv bitri
      wf1 anbi2i ) CDEUOCDEUAZHJZEKZIJZEKZLZHIMZNZICOZHCOZPUQAJZEKZBJZEKZLZABMZ
      NZBCOZACOZPHICDEUBVFVOUQVFUSVJLZHBMZNZBCOZHCOVOVEVSHCVDVRIBCVBVCBBUSVABUR
      EGBURQRBUTEGBUTQRSVCBTUCVRITIBMZVBVPVCVQVTVAVJUSUTVIEUDUEIBHUFUGUHUIVSVNH
      ACVRABCACQVPVQAAUSVJAUREFAURQRAVIEFAVIQRSVQATUCUJVNHTHAMZVRVMBCWAVPVKVQVL
      WAUSVHVJURVGEUDUKHABULUGUMUHUNUPUN $.
  $}

  ${
    $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 $.
  $}

  ${
    $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 $.

  $( 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 crn wrex wfn wb fofn cv cfv wceq bicomd eqcoms rexrn rexeqdv bitr3d
      syl forn ) EFGIZBDGJZKZACEKZBDFKUEGELUGUHMEFGNBADCEGBAMCOGPZDOZUIUJQABHRS
      TUCUEBDUFFEFGUDUAUB $.
  $}

  ${
    $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 $.
  $}

  $( Show that two functions are inverse to each other by computing their
     compositions.  (Contributed by Mario Carneiro, 21-Mar-2015.) $)
  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 wf1 wfo fcof1 ad2ant2rl fcofo 3expa adantrr
    ccnv df-f1o sylanbrc simprl coeq2d coass f1ococnv1 syl fcoi2 ad2antlr eqtrd
    coeq1d syl5eqr f1ocnv f1of fcoi1 4syl 3eqtr3rd jca ) ABCEZBADEZFZCDGZHBIZJZ
    DCGHAIZJZFZFZABCKZCSZDJVGABCLZABCMZVHURVEVJUSVCABDCNOUTVCVKVEURUSVCVKABDCPQ
    RABCTUAZVGVIVAGZVIVBGZDVIVGVAVBVIUTVCVEUBUCVGVMVICGZDGZDVICDUDVGVPVDDGZDVGV
    OVDDVGVHVOVDJVLABCUEUFUJUSVQDJURVFBADUGUHUIUKVGVHBAVIKBAVIEVNVIJVLABCULBAVI
    UMBAVIUNUOUPUQ $.

  ${
    $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 wcel wbr cvv syl syl2anc adantlr
      wb cid cres fococnv2 cnveq coeq2d eqeq1d syl5ibcom fofn ad2antrr ad2antlr
      wi cv cfv wex cop adantl fnopfv anim1i adantll funfvex funfni vex sylancl
      sylan brcnvg df-br syl6bb mpbird sylibr breq2 breq1 anbi12d spcev breq wf
      brcog mpbid fof ffvelrnda resieq eqcomd eqfnfvd ex impbid ) ABCGZABDGZHZC
      DIZCDJZKZUABUBZIZWEWHWLUKWFWECCJZKZWKIWHWLABCUCWHWNWJWKWHWMWICCDUDUEUFUGL
      WGWLWHWGWLHZEACDWECAMZWFWLABCUHZUIWFDAMZWEWLABDUHZUJWOEULZANZHZWTDUMZWTCU
      MZXBXCXDWKOZXCXDIZXBXCXDWJOZXEWGXAXGWLWGXAHZXGXCFULZWIOZXIXDCOZHZFUNZXHXC
      WTWIOZWTXDCOZXMXHXNWTXCUODNZWGWRXAXPWFWRWEWSUPAWTDUQVDXHWRXAHZXNXPTWFXAXQ
      WEWFWRXAWSURUSZXQXNWTXCDOZXPXQXCPNZWTPNXNXSTXTAWTDWTDUTVAZEVBZXCWTPPDVEVC
      WTXCDVFVGQVHXHWTXDUOCNZXOWGWPXAYCWEWPWFWQLAWTCUQVDWTXDCVFVIXLXNXOHFWTYBXI
      WTIXJXNXKXOXIWTXCWIVJXIWTXDCVKVLVMRXHXTXDPNZXGXMTXHXQXTXRYAQXHWPXAHZYDWEX
      AYEWFWEWPXAWQURSYDAWTCWTCUTVAQFXCXDCWIPPVPRVHSWLXGXETWGXAXCXDWJWKVNUJVQWG
      XAXEXFTZWLXHXCBNXDBNYFWGABWTDWFABDVOWEABDVRUPVSWGABWTCWEABCVOWFABCVRLVSBX
      CXDVTRSVQWAWBWCWD $.

    $( 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 vex brco cop wfun cdm fnfun fndm biimpar funopfvb
      eleq2d syl2anc bicomd df-br 3bitr4g biimpd syl6rbbr anim12d eximdv syl5bi
      eqcom brcnv cvv anim1i adantll funfvex funfni eqvincg sylibrd adantlr mpd
      3syl eqfnfvd eqcomd ex impbid ) ABCGZABDGZHZCDIZCUBZDJZUAAUCZIZWLWOWSKWMW
      LWPCJZWRIWOWSABCUDWOWTWQWRCDWPUEUFUGLWNWSWOWNWSHZDCXAEADCWNDAMZWSWMXBWLAB
      DNZOZLWNCAMZWSWLXEWMABCNLZLXAEPZAQZHZXGXGWQRZXGDUMZXGCUMZIZXIXJXGXGWRRZXH
      XNXAXHXNXHXHHXNXGXGIEUHAXGXGUIUJUKOWSXJXNSWNXHXGXGWQWRULUNUOWNXHXJXMKWSWN
      XHHZXJFPZXKIZXPXLIZHZFUPZXMXJXGXPDRZXPXGWPRZHZFUPXOXTFXGXGWPDEUQZYDURXOYC
      XSFXOYAXQYBXRXOYAXQXOXGXPUSZDQZXKXPIZYAXQXOYGYFXODUTZXGDVAZQZYGYFSWNYHXHW
      NXBYHXDADVBTLWNYJXHWNYIAXGWNXBYIAIXDADVCTVFVDXGXPDVEVGVHXGXPDVIXPXKVPVJVK
      XOYBXRXOXGXPCRZXLXPIZYBXRXOYLYECQZYKXOCUTZXGCVAZQZYLYMSWNYNXHWNXEYNXFACVB
      TLWNYPXHWNYOAXGWNXEYOAIXFACVCTVFVDXGXPCVEVGXGXPCVIVLXPXGCFUQYDVQXPXLVPVJV
      KVMVNVOXOXBXHHZXKVRQZXMXTSWMXHYQWLWMXBXHXCVSVTYRAXGDXGDWAWBFXKXLVRWCWGWDW
      EWFWHWIWJWK $.
  $}

  ${
    $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 ) ) ) $=
      ( cop wceq wrex wa wcel cvv wb wbr cmpt crn df-br eleq2i bitri wral opexg
      cv syl2anc ralrimiva eqid elrnmptg syl syl5bb opthg2 rexbidva bitrd ) AEF
      IUAZEFNZCDNZOZBJPZECOFDOQZBJPUSUTBJVAUBZUCZRZAVCUSUTIRVGEFIUDIVFUTKUEUFAV
      ASRZBJUGVGVCTAVHBJABUIJRQZCGRZDHRZVHLMCDGHUHUJUKBJVAUTVESVEULUMUNUOAVBVDB
      JVIVJVKVBVDTLMEFCDGHUPUJUQUR $.

    $( 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 opexg syl2anc eqid elrnmpt1 mpdan df-br
      adantll syl6eleqr sylibr ) ABLHMZNZCDOZGMCDGPUJUKBHUKQZRZGUJUKSMZUKUMMZUJ
      CEMDFMUNJKCDEFTUAUIUNUOABHUKULSULUBUCUFUDIUGCDGUEUH $.

    $( 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
      nfralxy nfan nfxfr ) BCDEFUABCFUBZLNZMNZDOZULFPZUMFPZEOZUCZMBQZLBQZUDALMB
      CDEFUEUKUTAABCFGJKUFUSALBJURAMBJUNUQAAULUMDAULRZHAUMRZSAUOUPEAULFGVATIAUM
      FGVBTSUGUHUHUIUJ $.
  $}

  ${
    $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 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 x y A $.  $d x y F $.  $d x y R $.  $d x y S $.
    $( A consequence of isomorphism on two relations for a function's
       restriction.  (Contributed by Jim Kingdon, 11-Jan-2019.) $)
    isoresbr $p |- ( ( F |` A ) Isom R , S ( A , ( F " A ) ) ->
        A. x e. A A. y e. A ( x R y -> ( F ` x ) S ( F ` y ) ) ) $=
      ( cima cres wiso cv wbr cfv wi wcel wa isorel wb fvres breqan12d adantl
      bitrd biimpd ralrimivva ) CFCGZDEFCHZIZAJZBJZDKZUGFLZUHFLZEKZMABCCUFUGCNZ
      UHCNZOZOZUIULUPUIUGUELZUHUELZEKZULCUDUGUHDEUEPUOUSULQUFUMUNUQUJURUKEUGCFR
      UHCFRSTUAUBUC $.
  $}

  ${
    $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 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 wiso ccnv isof1o syl cv wbr cfv wb wral wa wcel vex cvv wfn f1ofn
      wf1o funfvex funfni adantr adantlr brcnvg syl2anc bibi12d ralbidva ralcom
      brcnv a1i syl6rbbr anbi2d df-isom 3bitr4g pm5.21nii ) ABCDEHZEAUAZABCIZDI
      ZEHZUTABEUCZVAABCDEJABEUBZKVDVEVAABVBVCEJVFKVAVEFLZGLZCMZVGENZVHENZDMZOZG
      APFAPZQVEVHVGVBMZVKVJVCMZOZFAPZGAPZQUTVDVAVNVSVEVAVSVMFAPZGAPVNVAVRVTGAVA
      VHARZQZVQVMFAWBVGARZQZVOVIVPVLVOVIOWDVHVGCGSFSUMUNWDVKTRZVJTRZVPVLOWBWEWC
      WEAVHEVHEUDUEUFVAWCWFWAWFAVGEVGEUDUEUGVKVJTTDUHUIUJUKUKVMFGAAULUOUPFGABCD
      EUQGFABVBVCEUQURUS $.
  $}

  ${
    $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 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 wbr wrex wb 3syl syl6bb wiso cv cab
      elin wceq crn wf1o wfo isof1o f1ofo forn eleq2d wfn fvelrnb bitr3d adantr
      f1ofn cvv syl anim1i funfvex funfni eliniseg anbi12d anbi2d syl5bb anbi1d
      vex anass adantl wi isorel fnbrfvb bicomd sylan adantrr ancom breq1 bitri
      pm5.32i exp32 com23 pm5.32d bitrd rexbidv2 r19.41v bitr4d dfima2 syl6reqr
      imp abbi2dv ) ABDEFUAZCAIZJZBEKCFLZMNZOZGUBZHUBZFPZGADKCMNZOZQZHUCFXBNWNX
      CHWQWSWQIWSBIZWSWPIZJZWNXCWSBWPUDWNXFWRFLZWSUEZGAQZWSWOEPZJZXCWNXDXIXEXJW
      LXDXIRWMWLWSFUFZIZXDXIWLABFUGZABFUHZXMXDRABDEFUIZABFUJXOXLBWSABFUKULSWLXN
      FAUMZXMXIRXPABFUQZGAWSFUNSUOUPWNXQWMJWOURIZXEXJRWLXQWMWLXNXQXPXRUSZUTXSAC
      FCFVAVBEWOWSURHVHVCSVDWNXCXHXJJZGAQXKWNWTYAGXBAWNWRXBIZWTJZWRAIZWRCDPZWTJ
      ZJZYDYAJWMYCYGRWLWMYCYDYEJZWTJYGWMYBYHWTYBYDWRXAIZJWMYHWRAXAUDWMYIYEYDDCW
      RAGVHVCVEVFVGYDYEWTVITVJWNYDYFYAWLWMYDYFYARZVKWLYDWMYJWLYDWMYJWLYDWMJJZYF
      XGWOEPZXHJZYAYKYEYLWTXHABWRCDEFVLWLYDWTXHRZWMWLXQYDYNXTXQYDJXHWTAWRWSFVMV
      NVOVPVDYMXHYLJYAYLXHVQXHYLXJXGWSWOEVRVTVSTWAWBWJWCWDWEXHXJGAWFTWGVFWKGHFX
      BWHWI $.
  $}

  ${
    $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 x y z A $.  $d x y z B $.  $d x y z H $.  $d x y z ph $.  $d x y z R $.
    $d x y z S $.
    isofrlem.1 $e |- ( ph -> H Isom R , S ( A , B ) ) $.
    isofrlem.2 $e |- ( ph -> ( H " x ) e. _V ) $.
    $( 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 $.
    $( 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 $.
  $}

  ${
    $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 $.
  $}

  ${
    $d H a b c x y z $.  $d R a b c x y z $.  $d S a b c x y z $.
    $d A a b c x y z $.  $d B a b c x y z $.
    $( 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 ) ) $=
      ( vx vy vz va vb vc cv wbr wo wi wral wa wcel cfv ffvelrn wiso wpo df-3an
      wor isopolem w3a wf1o wf isof1o f1of 3anim123d 3syl imp wceq breq1 orbi1d
      ex imbi12d breq2 orbi2d orbi12d imbi2d rspc3v wb isorel 3adantr3 3adantr2
      syl ancom2s 3adantr1 sylibrd sylan2br anassrs ralrimdva ralrimdvva df-iso
      anim12d 3imtr4g ) ABCDEUAZBDUBZFLZGLZDMZWAHLZDMZWDWBDMZNZOZHBPGBPFBPZQACU
      BZILZJLZCMZWKKLZCMZWNWLCMZNZOZKAPZJAPIAPZQBDUDACUDVSVTWJWIWTABCDEUEVSWIWS
      IJAAVSWKARZWLARZQZQWIWRKAVSXCWNARZWIWROZXCXDQVSXAXBXDUFZXEXAXBXDUCVSXFQZW
      IWKESZWLESZDMZXHWNESZDMZXKXIDMZNZOZWRXGXHBRZXIBRZXKBRZUFZWIXOOVSXFXSVSABE
      UGABEUHZXFXSOABCDEUIABEUJXTXAXPXBXQXDXRXTXAXPABWKETUQXTXBXQABWLETUQXTXDXR
      ABWNETUQUKULUMWHXOXHWBDMZXHWDDMZWFNZOXJYBWDXIDMZNZOFGHXHXIXKBBBWAXHUNZWCY
      AWGYCWAXHWBDUOYFWEYBWFWAXHWDDUOUPURWBXIUNZYAXJYCYEWBXIXHDUSYGWFYDYBWBXIWD
      DUSUTURWDXKUNZYEXNXJYHYBXLYDXMWDXKXHDUSWDXKXIDUOVAVBVCVHXGWMXJWQXNVSXAXBW
      MXJVDXDABWKWLCDEVEVFXGWOXLWPXMVSXAXDWOXLVDXBABWKWNCDEVEVGVSXBXDWPXMVDZXAV
      SXDXBYIABWNWLCDEVEVIVJVAURVKVLVMVNVOVQFGHBDVPIJKACVPVR $.
  $}

  $( 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 ) ABCDEFZACGZBDGZNBADCEHZFOPI
    ABCDEJBADCQKLABCDEKM $.

  ${
    $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 wfn cvv funfvex funfni anim12dan eqeq1 2rexbidv
      f1fn anbi2d opelopabg syl sylan anass f1fveq equcom syl6bb anassrs syl5bb
      rexbidv r19.42v rexbidva breq1 ceqsrexv adantl sylan9bb anandis sylan9bbr
      bitrd breq2 an32s syl5rbb ralrimivva df-isom sylanbrc ) EFIUAZHCLZALZIMZN
      ZDLZBLZIMZNZOZWGWKGPZOZBEQAEQZCDUBZNZOWEJLZKLZGPZWTIMZXAIMZHPZRZKEUCJEUCZ
      EFGHIUDWEWSUEWEEFIUFZWSXGEFIUGXHWSOZXFJKEEXEXCXDUHZHSZXIWTESZXAESZOZOXBXC
      XDHUIXHXNWSXKXBRWSXKXJWRSZXHXNOZXBHWRXJUJXPXOXCWHNZXDWLNZOZWOOZBEQZAEQZXB
      XHIEUKZXNXOYBRZEFIURYCXNOXCULSZXDULSZOYDYCXLYEXMYFYEEWTIWTIUMUNYFEXAIXAIU
      MUNUOWQXQWMOZWOOZBEQAEQYBCDXCXDULULWFXCNZWPYHABEEYIWNYGWOYIWIXQWMWFXCWHUP
      TTUQWJXDNZYHXTABEEYJYGXSWOYJWMXRXQWJXDWLUPUSTUQUTVAVBXHXLXMYBXBRXHXLOZYBX
      RWTWKGPZOZBEQZXHXMOZXBYKYBWGWTNZXRWOOZBEQZOZAEQZYNYKYAYSAEYKWGESZOZYAYPYQ
      OZBEQYSUUBXTUUCBEXTXQYQOUUBUUCXQXRWOVCUUBXQYPYQXHXLUUAXQYPRXHXLUUAOOXQWTW
      GNYPEFWTWGIVDJAVEVFVGTVHVIYPYQBEVJVFVKXLYTYNRXHYRYNAWTEYPYQYMBEYPWOYLXRWG
      WTWKGVLUSVIVMVNVRYOYNWKXANZYLOZBEQZXBYOYMUUEBEYOWKESZOXRUUDYLXHXMUUGXRUUD
      RXHXMUUGOOXRXAWKNUUDEFXAWKIVDKBVEVFVGTVKXMUUFXBRXHYLXBBXAEWKXAWTGVSVMVNVR
      VOVPVRVQVTWAWBVBJKEFGHIWCWD $.
  $}

  ${
    $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 $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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 biidd anbi12d iotabidv df-riota 3eqtr4g ) ADGEHZBIZ
      DJQCIZDJBDEKCDEKARSDAQQBCAQLFMNBDEOCDEOP $.
  $}

  ${
    $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 $.
  $}

  ${
    $d A x $.
    $( Restricted iota is a set.  (Contributed by Jim Kingdon, 15-Jun-2020.) $)
    riotaexg $p |- ( A e. V -> ( iota_ x e. A ps ) e. _V ) $=
      ( wcel crio cv cio cvv df-riota cuni uniexg wss iotass elssuni adantr mpg
      wa wi a1i ssexd syl5eqel ) CDEZABCFBGZCEZARZBHZIABCJUCUGCKZICDLUGUHMZUCUF
      UDUHMZSUIBUFBUHNUEUJAUDCOPQTUAUB $.
  $}

  $( 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 $.
  $}

  ${
    $d x y $.
    nfriotadxy.1 $e |- F/ y ph $.
    nfriotadxy.2 $e |- ( ph -> F/ x ps ) $.
    nfriotadxy.3 $e |- ( ph -> F/_ x A ) $.
    $( Deduction version of ~ nfriota .  (Contributed by Jim Kingdon,
       12-Jan-2019.) $)
    nfriotadxy $p |- ( ph -> F/_ x ( iota_ y e. A ps ) ) $=
      ( crio cv wcel wa cio df-riota wnfc nfcv a1i nfeld nfand nfiotadxy
      nfcxfrd ) ACBDEIDJZEKZBLZDMBDENAUDCDFAUCBCACUBECUBOACUBPQHRGSTUA $.
  $}

  ${
    $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 nfriotadxy trud ) BACDGHIABCDCJABKIELBDHIF
      LMN $.
  $}

  ${
    $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.) $)
    csbriotag $p |- ( A e. V
      -> [_ A / x ]_ ( iota_ y e. B ph ) = ( iota_ y e. B [. A / x ]. ph ) ) $=
      ( vz cv crio csb wsb wceq wsbc csbeq1 dfsbcq2 riotabidv eqeq12d vex nfs1v
      nfcv nfriota weq sbequ12 csbief vtoclg ) BGHZACEIZJZABGKZCEIZLBDUGJZABDMZ
      CEIZLGDFUFDLZUHUKUJUMBUFDUGNUNUIULCEABGDOPQBUFUGUJGRUIBCEABGSBETUABGUBAUI
      CEABGUCPUDUE $.
  $}

  $( 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.  (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 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 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 euex rexm r19.2m ex 3syl impbid
      ) AGZDHZBCIZAJZVFVEBCKZVGVFALZFGZMZHZFNVFVHOZVFAFPVLVMFVLVFVDVJHZVHVLVDVI
      QVDVKQVFVNVIVKVDRVFASAVJUAUBVLVHVNVJDHZBCKVLVOBCBVIVKVFBAVEBCUCULUDBGCQZD
      VIQZVLVOBACDEUEVLVQDVKQZVOVIVKDRVRDVJHVODVJEUMDVJUFUGUHUIUJVNVEVOBCVDVJDU
      KUNUOUPTUQVGVFANVPBNZVHVFOVFAURVFVSAVEBCUSTVSVHVFVEBCUTVAVBVC $.

    $( 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 $.
  $}

  ${
    $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 ph $.
    acexmidlem.a $e |- A = { x e. { (/) , { (/) } } | ( x = (/) \/ ph ) } $.
    acexmidlem.b $e |- B = { x e. { (/) , { (/) } }
                                                | ( x = { (/) } \/ ph ) } $.
    acexmidlem.c $e |- C = { A , B } $.
    $( Lemma for ~ acexmid .  (Contributed by Jim Kingdon, 6-Aug-2019.) $)
    acexmidlema $p |- ( { (/) } e. A -> ph ) $=
      ( c0 csn wcel wceq wo cv cpr crab eleq2i wb p0ex ax-mp prid2 eqeq1 orbi1d
      elrab3 bitri wn wi noel 0ex snid eleq2 mpbii mto orel1 sylbi ) IJZCKZUPIL
      ZAMZAUQUPBNZILZAMZBIUPOZPZKZUSCVDUPFQUPVCKVEUSRIUPSUAVBUSBUPVCUTUPLVAURAU
      TUPIUBUCUDTUEURUFUSAUGURIIKZIUHURIUPKVFIUIUJUPIIUKULUMURAUNTUO $.

    $( Lemma for ~ acexmid .  (Contributed by Jim Kingdon, 6-Aug-2019.) $)
    acexmidlemb $p |- ( (/) e. B -> ph ) $=
      ( c0 wcel csn wceq wo cv cpr crab eleq2i wb 0ex ax-mp prid1 orbi1d elrab3
      eqeq1 bitri wn wi noel snid eleq2 mpbiri mto orel1 sylbi ) IDJZIIKZLZAMZA
      UOIBNZUPLZAMZBIUPOZPZJZURDVCIGQIVBJVDURRIUPSUAVAURBIVBUSILUTUQAUSIUPUDUBU
      CTUEUQUFURAUGUQIIJZIUHUQVEIUPJISUIIUPIUJUKULUQAUMTUN $.

    $( Lemma for ~ acexmid .  (Contributed by Jim Kingdon, 6-Aug-2019.) $)
    acexmidlemph $p |- ( ph -> A = B ) $=
      ( c0 csn wceq wo wral olc ralrimivw crab eqeq2i rabid2 bitri sylibr cpr
      cv eqtr3d ) AIIJZUAZCDABUBZIKZALZBUEMZUECKZAUHBUEAUGNOUJUEUHBUEPZKUICUKUE
      FQUHBUERSTAUFUDKZALZBUEMZUEDKZAUMBUEAULNOUOUEUMBUEPZKUNDUPUEGQUMBUERSTUC
      $.

    $( Lemma for ~ acexmid .  (Contributed by Jim Kingdon, 6-Aug-2019.) $)
    acexmidlemab $p |- (
        ( ( iota_ v e. A E. u e. y ( A e. u /\ v e. u ) ) = (/) /\
        ( iota_ v e. B E. u e. y ( B e. u /\ v e. u ) ) = { (/) } ) ->
        -. ph ) $=
      ( cv wcel wa wrex crio c0 wceq csn noel 0ex eleq2 mpbiri mto acexmidlemph
      snid id eleq1 anbi1d rexbidv riotaeqbidv syl eqeq1d biimpa adantrr simprr
      eqtr3d ex mtoi con2i ) AFELZMZDLVAMZNZECLZOZDFPZQRZGVAMZVCNZEVEOZDGPZQSZR
      ZNZAVOQVMRZVPQQMZQTVPVQQVMMQUAUFQVMQUBUCUDAVOVPAVONVLQVMAVHVLQRZVNAVHVRAV
      GVLQAFGRZVGVLRABFGHIJKUEVSVFVKDFGVSUGVSVDVJEVEVSVBVIVCFGVAUHUIUJUKULUMUNU
      OAVHVNUPUQURUSUT $.

    $( Lemma for ~ acexmid .  Here we divide the proof into cases (based on the
       disjunction implicit in an unordered pair, not the sort of case
       elimination which relies on excluded middle).

       The cases are (1) the choice function evaluated at ` A ` equals
       ` { (/) } ` , (2) the choice function evaluated at ` B ` equals
       ` (/) ` , and (3) the choice function evaluated at ` A ` equals ` (/) `
       and the choice function evaluated at ` B ` equals ` { (/) } ` .

       Because of the way we represent the choice function ` y ` , the choice
       function evaluated at ` A ` is
       ` ( iota_ v e. A E. u e. y ( A e. u /\ v e. u ) ) ` and the choice
       function evaluated at ` B ` is
       ` ( iota_ v e. B E. u e. y ( B e. u /\ v e. u ) ) ` .  Other than the
       difference in notation these work just as ` ( y `` A ) ` and
       ` ( y `` B ) ` would if ` y ` were a function as defined by ~ df-fun .

       Although it isn't exactly about the division into cases, it is also
       convenient for this lemma to also include the step that if the choice
       function evaluated at ` A ` equals ` { (/) } ` , then ` { (/) } e. A `
       and likewise for ` B ` .

       (Contributed by Jim Kingdon, 7-Aug-2019.) $)
    acexmidlemcase $p |- ( A. z e. C E! v e. z E. u e. y
      ( z e. u /\ v e. u ) ->
      ( { (/) } e. A \/
        (/) e. B \/
        ( ( iota_ v e. A E. u e. y ( A e. u /\ v e. u ) ) = (/) /\
        ( iota_ v e. B E. u e. y ( B e. u /\ v e. u ) ) = { (/) } ) ) ) $=
      ( cv wcel wa c0 wceq wo eleq1 syl wrex wreu wral csn crio w3o cpr wi con0
      crab onsucelsucexmidlem eqeltri prid1g ax-mp eleqtrri anbi1d reueqd rspcv
      rexbidv riotacl elrabi eleq2s elpri 3syl syl5ibcom orim2d mpd pp0ex rabex
      cvv prid2 orim1d anddi sylib simpl jaoi orim2i orcomd simpr orim1i 3orass
      jca sylibr ) DMZFMZNZEMWENZOZFCMZUAZEWDUBZDIUCZPUDZGNZPHNZGWENZWGOZFWIUAZ
      EGUEZPQZHWENZWGOZFWIUAZEHUEZWMQZOZRZRZWNWOXFUFWLWNWTWOOZXFRZRXHWLXJWNWLXJ
      WNWOOZWNXEOZRZRZXJWNRWLWTWNRZWOXERZOXNWLXOXPWLWTWSWMQZRZXOWLWSGNZWSPWMUGZ
      NZXRWLWREGUBZXSGINWLYBUHGGHUGZIGUINGYCNGBMZPQARZBXTUJZUIJABUKULGHUIUMUNLU
      OWKYBDGIWJWREWDGWDGQZWHWQFWIYGWFWPWGWDGWESUPUSUQURUNWREGUTTZYAWSYFGYEBWSX
      TVAJVBWSPWMVCVDWLXQWNWTWLXSXQWNYHWSWMGSVEVFVGWLXDPQZXERZXPWLXDHNZXDXTNZYJ
      WLXCEHUBZYKHINWLYMUHHYCIGHHYDWMQARZBXTUJZVJKYNBXTVHVIULVKLUOWKYMDHIWJXCEW
      DHWDHQZWHXBFWIYPWFXAWGWDHWESUPUSUQURUNXCEHUTTZYLXDYOHYNBXDXTVAKVBXDPWMVCV
      DWLYIWOXEWLYKYIWOYQXDPHSVEVLVGWBWTWNWOXEVMVNXMWNXJXKWNXLWNWOVOWNXEVOVPVQT
      VRXJXGWNXIWOXFWTWOVSVTVQTWNWOXFWAWC $.

    $( Lemma for ~ acexmid .  List the cases identified in ~ acexmidlemcase and
       hook them up to the lemmas which handle each case.  (Contributed by Jim
       Kingdon, 7-Aug-2019.) $)
    acexmidlem1 $p |- ( A. z e. C E! v e. z E. u e. y
        ( z e. u /\ v e. u ) -> ( ph \/ -. ph ) ) $=
      ( cv wcel wa wrex c0 crio wceq orcd csn w3o wn acexmidlemcase acexmidlema
      wreu wral wo acexmidlemb acexmidlemab olcd 3jaoi syl ) DMZFMZNEMUONZOFCMZ
      PEUNUFDIUGQUAZGNZQHNZGUONUPOFUQPEGRQSHUONUPOFUQPEHRURSOZUBAAUCZUHZABCDEFG
      HIJKLUDUSVCUTVAUSAVBABGHIJKLUETUTAVBABGHIJKLUITVAVBAABCEFGHIJKLUJUKULUM
      $.

    $( Lemma for ~ acexmid .  This builds on ~ acexmidlem1 by noting that every
       element of ` C ` is inhabited.

       (Note that ` y ` is not quite a function in the ~ df-fun sense because
       it uses ordered pairs as described in ~ opthreg rather than ~ df-op ).

       The set ` A ` is also found in ~ onsucelsucexmidlem .

       (Contributed by Jim Kingdon, 5-Aug-2019.) $)
    acexmidlem2 $p |- ( A. z e. C A. w e. z E! v e. z E. u e. y
      ( z e. u /\ v e. u ) -> ( ph \/ -. ph ) ) $=
      ( wel cv wral wo wcel wceq c0 wa wrex wreu wn wex wi df-ral 19.23v bitr2i
      wal cpr eleq2i vex elpr bitri csn crab onsucelsucexmidlem1 eleqtrri elex2
      ax-mp eleq2 exbidv mpbiri p0ex prid2 eqid orci eqeq1 orbi1d mpbir2an jaoi
      elrab sylbi pm2.27 syl imp sylan2br ralimiaa acexmidlem1 ) DGNFGNUAGCOUBF
      DOZUCZEWAPZDJPWBDJPAAUDQWCWBDJWCWAJRZEDNZEUEZWBUFZWBWCWEWBUFEUJWGWBEWAUGW
      EWBEUHUIWDWGWBWDWFWGWBUFWDWAHSZWAISZQZWFWDWAHIUKZRWJJWKWAMULWAHIDUMUNUOWH
      WFWIWHWFEOZHRZEUEZTHRWNTBOZTSAQBTTUPZUKZUQHABURKUSETHUTVAWHWEWMEWAHWLVBVC
      VDWIWFWLIRZEUEZWPIRWSWPWOWPSZAQZBWQUQZIWPXBRWPWQRWPWPSZAQZTWPVEVFXCAWPVGV
      HXAXDBWPWQWTWTXCAWOWPWPVIVJVMVKLUSEWPIUTVAWIWEWREWAIWLVBVCVDVLVNWFWBVOVPV
      QVRVSABCDFGHIJKLMVTVP $.
  $}

  ${
    $d ph x y z w v u s t $.
    acexmidlemv.choice $e |- E. y A. z e. x A. w e. z E! v e. z E. u e. y
      ( z e. u /\ v e. u ) $.
    $( Lemma for ~ acexmid .

       This is ~ acexmid with additional distinct variable constraints, most
       notably between ` ph ` and ` x ` .

       (Contributed by Jim Kingdon, 6-Aug-2019.) $)
    acexmidlemv $p |- ( ph \/ -. ph ) $=
      ( vs vt cv wcel wral c0 wceq wo cpr crab wex cvv wa wrex wreu csn wn con0
      onsucelsucexmidlem pp0ex rabex prexg mp2an raleq exbidv vtocl orbi1d eqid
      eqeq1 cbvrabv acexmidlem2 exlimiv ax-mp ) DKZGKZLFKVCLUAGCKUBFVBUCEVBMZDI
      KZNOZAPZINNUDZQZRZVEVHOZAPZIVIRZQZMZCSZAAUEPZVDDBKZMZCSVPBVNVJUFLVMTLVNTL
      AIUGVLIVIUHUIVJVMUFTUJUKVRVNOVSVOCVDDVRVNULUMHUNVOVQCAJCDEFGVJVMVNVGJKZNO
      ZAPIJVIVEVTOZVFWAAVEVTNUQUOURVLVTVHOZAPIJVIWBVKWCAVEVTVHUQUOURVNUPUSUTVA
      $.
  $}

  ${
    $d x y z w v u $.  $d a b c d e f ph $.  $d a b c d e f u v w x y z $.
    acexmid.choice $e |- E. y A. z e. x A. w e. z E! v e. z E. u e. y
      ( z e. u /\ v e. u ) $.
    $( The axiom of choice implies excluded middle.  Theorem 1.3 in [Bauer]
       p. 483.

       The statement of the axiom of choice given here is ac2 in the Metamath
       Proof Explorer (version of 3-Aug-2019).  In particular, note that the
       choice function ` y ` provides a value when ` z ` is inhabited (as
       opposed to non-empty as in some statements of the axiom of choice).

       Essentially the same proof can also be found at "The axiom of choice
       implies instances of EM", [Crosilla], p.  "Set-theoretic principles
       incompatible with intuitionistic logic".

       Often referred to as Diaconescu's theorem, or Diaconescu-Goodman-Myhill
       theorem, after Radu Diaconescu who discovered it in 1975 in the
       framework of topos theory and N. D. Goodman and John Myhill in 1978 in
       the framework of set theory (although it already appeared as an exercise
       in Errett Bishop's book _Foundations of Constructive Analysis_ from
       1967).

       (Contributed by Jim Kingdon, 4-Aug-2019.) $)
    acexmid $p |- ( ph \/ -. ph ) $=
      ( va vb vc vd vf ve wel wa cv wral weq wb wrex wreu wex wal weu wsb sb8eu
      nfv w3a eleq12 ancoms 3adant3 3ad2antl1 3ad2antl2 simpl3 cbvrexdva2 3expa
      anbi12d 3com23 sbiedv eubidv syl5bb df-reu 3bitr4g adantr simpll cbvexdva
      cbvraldva2 adantll cbvalv mpgbir spi acexmidlemv ) AIJKLMNKNOZMNOZPZNJQZU
      AZMKQZUBZLVSRZKIQZRZJUCZIWDIUDDGOZFGOZPZGCQZUAZFDQZUBZEWJRZDBQZRZCUCZBWDW
      OIBIBSZWCWNJCWPJCSZPWAWLKDWBWMWQKDSZWAWLTZWPWRWQWSWRWQPZVTWKLEVSWJWTVTWKT
      LESZWTMKOZVRPZMUEZFDOZWIPZFUEZVTWKXDXCMFUFZFUEWTXGXCMFXCFUHUGWTXHXFFWTXCX
      FMFWRWQMFSZXCXFTZWRXIWQXJWRXIWQUIZXBXEVRWIWRXIXBXETZWQXIWRXLMQZFQZVSWJUJU
      KULXKVPWGNGVQWHXKNGSZPVNWEVOWFWRXIXOVNWETWQVSWJNQZGQZUJUMXIWRXOVOWFTWQXMX
      NXPXQUJUNURWRXIWQXOUOUPURUSUQUTVAVBVRMVSVCWIFWJVCVDVEWRWQXAVFVHUKVIWPWQWR
      VFVHVGVJHVKVLVM $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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. $)
  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 .  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. ` 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
       ` B ( 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 $.
  $}

  ${
    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 x z $.  $d y z $.
    $( Slight elaboration of ~ exdistrfor .  A lemma for ~ oprabid .
       (Contributed by Jim Kingdon, 15-Jan-2019.) $)
    oprabidlem $p |-
        ( E. x E. y ( x = z /\ ps ) -> E. x ( x = z /\ E. y ps ) ) $=
      ( weq wal wi wo wnf ax-bndl ax-10 wn dtru pm2.53 mpi df-nf sylibr orim12i
      albii ax-mp exdistrfor ) BDEZABCCBECFZCDECFZUBUBCFGCFZBFZHZHBCEBFZUBCIZBF
      ZHBDCJUCUHUGUJCBKUGUFUJUGUDLUFCDMUDUFNOUIUEBUBCPSQRTUA $.
  $}

  ${
    $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.
       Although this theorem would be useful with a distinct variable
       constraint between ` x ` , ` y ` , and ` z ` , we use ~ ax-bndl to
       eliminate that constraint.  (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 cvv wcel vex wi oprabidlem weu coprab
      opex opexg mp2an eqvinop biimpi eqeq1 opth1 syl6bi opeq1 eqeq2d w3a otth2
      df-3an bitri anbi1i anass 3bitri 3exbii eximi excom 3imtr4i anim2i euequ1
      3syl sylbi eupick mpan syl6 3impd syl5bi com12 syl5 syl6bb anbi1d 3exbidv
      eqcom imbi1d imbi12d mpbiri adantr exlimivv com3l mpdd mpcom 19.8a impbid
      ex df-oprab elab2 ) EJZBJZCJZKZDJZKZLZAMZDNZCNZBNZAEWPABCDUAWNOPWOOPWPOPW
      LWMBQZCQZUBZDQZWNWOOOUCUDWQXAAWKFJZGJZKZLZXHWPLZMZGNFNZWQXAARZWQXLFGWKWNW
      OXDXEUEUFXKWQXMRZFGXIXNXJXIWQXFWNLZXMXIWQXJXOWKXHWPUGXFXGWNWOFQGQUHUIXOXI
      WQXMXOXFHJZIJZKZLZXRWNLZMZINHNXIXNRZHIXFWLWMXBXCUEYAYBHIXSYBXTXSXIWKXRXGK
      ZLZXNXSXHYCWKXFXRXGUJUKYDXNWPYCLZYEAMZDNCNBNZARZRYGWLXPLZWMXQLZWOXGLZAMZD
      NZMCNZMZBNZYEAYGYIYJYLMZMZDNZCNBNZYPYFYRBCDYFYIYJMZYKMZAMUUAYLMYRYEUUBAYE
      YIYJYKULZUUBWLWMXPXQWOXGXBXCXEUMZYIYJYKUNUOUPUUAYKAUQYIYJYLUQURUSYTYIYQDN
      ZMZCNBNZYIUUECNZMZBNYPYSBNZCNUUFBNZCNYTUUGUUJUUKCYQBDHSUTYSBCVAUUFBCVAVBU
      UEBCHSUUIYOBUUHYNYIYLCDISVCUTVEVFYPYEAYEUUCYPAUUDYPYIYJYKAYPYIYNYJYKARZRY
      IBTYPYIYNRBHVDYIYNBVGVHYNYJYMUULYJCTYNYJYMRCIVDYJYMCVGVHYKDTYMUULDGVDYKAD
      VGVHVIVIVJVKVLVMYDWQYEXMYHYDWQYCWPLYEWKYCWPUGYCWPVQVNZYDXAYGAYDWRYFBCDYDW
      QYEAUUMVOVPVRVSVTUIWAWBVFWCWDWAWBWEWQAXAWRWSWTXAWRDWFWSCWFWTBWFVEWHWGABCD
      EWIWJ $.
  $}

  $( The result of an operation is a set.  (Contributed by Jim Kingdon,
     15-Jan-2019.) $)
  fnovex $p |- ( ( F Fn ( C X. D ) /\ A e. C /\ B e. D ) ->
      ( A F B ) e. _V ) $=
    ( cxp wfn wcel w3a co cop cfv df-ov wa opelxp funfvex funfni sylan2br 3impb
    cvv syl5eqel ) ECDFZGZACHZBDHZIABEJABKZELZTABEMUCUDUEUGTHZUDUENUCUFUBHUHABC
    DOUHUBUFEUFEPQRSUA $.

  $( Evaluating a set operation at two sets gives a set.  (Contributed by Jim
     Kingdon, 19-Aug-2021.) $)
  ovexg $p |- ( ( A e. V /\ F e. W /\ B e. X ) -> ( A F B ) e. _V ) $=
    ( wcel w3a co cop cfv cvv df-ov simp2 opexg 3adant2 fvexg syl2anc syl5eqel
    ) ADGZCEGZBFGZHZABCIABJZCKZLABCMUCUAUDLGZUELGTUAUBNTUBUFUAABDFOPUDCELQRS $.

  ${
    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 opprc 0ex syl6eqel wbr df-br
      c0 wrel brrelex12 mpan sylbir con3i ndmfvg syl2anc syl5eq ) AEFBEFGZHZABC
      IABJZCKZTABCLUJUKEFUKCMZFZHULTNUJUKTEABOPQUNUIUNABUMRZUIABUMSUMUAUOUIDABU
      MUBUCUDUEUKCUFUGUH $.

    $( 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 $.
  $}

  ${
    $d y A $.  $d y B $.  $d y C $.  $d y D $.  $d y F $.  $d x y $.
    $( Move class substitution in and out of an operation.  (Contributed by NM,
       12-Nov-2005.)  (Proof shortened by Mario Carneiro, 5-Dec-2016.) $)
    csbov123g $p |- ( A e. D -> [_ A / x ]_ ( B F C ) =
           ( [_ A / x ]_ B [_ A / x ]_ F [_ A / x ]_ C ) ) $=
      ( vy cv co csb wceq csbeq1 oveq123d eqeq12d nfcsb1v csbeq1a csbief vtoclg
      vex nfov ) AGHZCDFIZJZAUACJZAUADJZAUAFJZIZKABUBJZABCJZABDJZABFJZIZKGBEUAB
      KZUCUHUGULAUABUBLUMUDUIUEUJUFUKAUABFLAUABCLAUABDLMNAUAUBUGGSAUDUEUFAUACOA
      UAFOAUADOTAHUAKCUDDUEFUFAUAFPAUACPAUADPMQR $.
  $}

  ${
    $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 csbov123g csbconstg oveqd eqtrd ) BFGZABCDEHIABCIZABDIZABEI
      ZHOPEHABCDFEJNQEOPABEFKLM $.
  $}

  ${
    $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 $.
  $}

  $( Equivalence of operation value and ordered triple membership, analogous to
     ~ fnopfvb .  (Contributed by NM, 17-Dec-2008.)  (Revised by Mario
     Carneiro, 28-Apr-2015.) $)
  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 w3a cop cfv wceq co cotp wb wa opelxpi fnopfvb sylan2 eqeq1i
    3impb df-ov df-ot eleq1i 3bitr4g ) FABGZHZCAIZDBIZJCDKZFLZEMZUKEKZFIZCDFNZE
    MCDEOZFIUHUIUJUMUOPZUIUJQUHUKUGIURCDABRUGUKEFSTUBUPULECDFUCUAUQUNFCDEUDUEUF
    $.

  ${
    $d E f p z $.  $d V f p z $.  $d W z $.  $d th z $.  $d ps z $.
    opabbrex.1 $e |- ( ( V e. _V /\ E e. _V ) -> ( f ( V W E ) p -> th ) ) $.
    opabbrex.2 $e |- ( ( V e. _V /\ E e. _V )
                       -> { <. f , p >. | th } e. _V ) $.
    $( A collection of ordered pairs with an extension of a binary relation is
       a set.  (Contributed by Alexander van der Vekens, 1-Nov-2017.) $)
    opabbrex $p |- ( ( V e. _V /\ E e. _V )
                    -> { <. f , p >. | ( f ( V W E ) p /\ ps ) } e. _V ) $=
      ( vz cvv wcel wa cv co wbr copab wex cab df-opab syl5eqelr adantrd anim2d
      cop wceq 2eximdv ss2abdv syl5eqss ssexd ) EKLDKLMZCNZGNZEDFOPZAMZCGQZJNUK
      ULUDUEZBMZGRCRZJSZKUJUSBCGQKBCGJTIUAUJUOUPUNMZGRCRZJSUSUNCGJTUJVAURJUJUTU
      QCGUJUNBUPUJUMBAHUBUCUFUGUHUI $.
  $}

  $( 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 id cv cop wceq wa wex wn elopab nfopab1 nfel2 nfn vex sylbi
    exlimi nfopab2 wne wi opnzi nesym pm2.21 ax-mp adantr pm2.65i ) DABCEZFZUKU
    KGUKDBHZCHZIZJZAKZCLZBLUKMZABCDNUQURBUKBBDUJABCOPQUPURCUKCCDUJABCUAPQUOURAU
    NDUBZUOURUCZULUMBRCRUDUSUOMUTUNDUEUOURUFSUGUHTTSUI $.

  ${
    $d x y X $.  $d x y Y $.
    $( If two classes are in a relationship given by an ordered-pair class
       abstraction, the classes are sets.  (Contributed by Jim Kingdon,
       16-Jan-2019.) $)
    brabvv $p |- ( X { <. x , y >. | ph } Y -> ( X e. _V /\ Y e. _V ) ) $=
      ( copab wbr cv wceq wex cvv wcel cop df-br elopab bitri exsimpl vex isset
      wa eximi sylbi opth biimpi eqcoms 2eximi syl eeanv sylib anbi12i sylibr )
      DEABCFZGZBHZDIZBJZCHZEIZCJZTZDKLZEKLZTUMUOURTZCJBJZUTUMDEMZUNUQMZIZCJZBJZ
      VDUMVGATCJZBJZVIUMVEULLVKDEULNABCVEOPVJVHBVGACQUAUBVGVCBCVCVFVEVFVEIVCUNU
      QDEBRCRUCUDUEUFUGUOURBCUHUIVAUPVBUSBDSCESUJUK $.
  $}

  ${
    $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
      vex eqeq2d pm5.32ri anbi1i anass an32 exbii isseti 19.42v mpbiran2 3exbii
      opex 19.42vv 2exbii abbii df-oprab df-opab 3eqtr4i ) FGZBGZCGZHZDGZHZIZAJ
      ZDKCKBKZFLUREGZVBHZIZVGVAIZAJZCKBKZJZDKEKZFLABCDMVLEDNVFVNFVIVKJZCKBKZEKD
      KZVPDKEKVFVNVPDEOVQVOEKZDKCKBKVFVODEBCPVRVEBCDVRVEVJJZEKZVEVOVSEVIVJJZAJV
      DVJJZAJVOVSWAWBAVJVIVDVJVHVCURVGVAVBQUAUBUCVIVJAUDVDVJAUERUFVTVEVJEKEVAUS
      UTBTCTUKUGVEVJEUHUISUJSVPVMEDVIVKBCULUMRUNABCDFUOVLEDFUPUQ $.

    $( 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 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 id alimi exim syl df-oprab
      anim2d ss2abdv 3sstr4g ) ABGZEHZDHZCHZFICIDIJEIJKZALZEMZDMZCMZFNUHBLZEMZD
      MZCMZFNACDEOBCDEOUGULUPFUGUKUOGZCHULUPGUFUQCUFUJUNGZDHUQUEURDUEUIUMGZEHUR
      UDUSEUDABUHUDPUAQUIUMERSQUJUNDRSQUKUOCRSUBACDEFTBCDEFTUC $.
  $}

  $( 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 nfralxy rsp
      eqeq2 syl6 pm5.32d eleq2 sylan9bbr anass 3bitr4g oprabbid df-mpt2 3eqtr4g
      anbi1d ) CFJZDGJZEHJZBDKZLZACKZLZAMZCNZBMZDNZLIMZEJZLZABIOVBFNZVDGNZLVFHJ
      ZLZABIOABCDEPABFGHPVAVHVLABIUOUTAUOAQUSACRSUOUTBUOBQUSBACBCUAUPURBUPBQUQB
      DRSUBSVAIQVAVCVEVGLZLZVIVJVKLZLZVHVLUTVNVCVOLUOVPUTVCVMVOUTVCUSVMVOTUSACU
      CURVMVEVKLUPVOURVEVGVKURVEUQVGVKTUQBDUCEHVFUDUEUFUPVEVJVKDGVDUGUNUHUEUFUO
      VCVIVOCFVBUGUNUHVCVEVGUIVIVJVKUIUJUKABICDEULABIFGHULUM $.
  $}

  ${
    $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 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 $.
  $}

  ${
    $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
      vex opex isseti 19.41v mpbiran 2exbii bitri abbii 3eqtri ) ABCDFZGEHBHZCH
      ZIZJZAKZCLBLZEDMZGUNELZDNACLBLZDNUHUOABCDEOPUNEDQUPUQDUPUMELZCLBLUQUMEBCR
      URABCURULELAEUKUIUJBSCSTUAULAEUBUCUDUEUFUG $.
  $}

  ${
    $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 wa cv wceq wex coprab wb w3a opexg sylan 3impa wi simpr
      elex eqeq1d eqcom vex otth2 syl6bb anbi1d pm5.32i 3exbidv df-oprab eleq2i
      bitri cab abid bitr2i eleq1 syl5bb adantl elisset 3anim123i eeeanv sylibr
      biantrurd 19.41vvv syl6rbbr adantr 3bitr3d expcom vtocleg mpcom syl3an )
      FINFONZGJNGONZHKNHONZFGPZHPZACDEUAZNZBUBZFIUIGJUIHKUIWDONZVTWAWBUCZWGVTWA
      WBWHVTWAQWCONWBWHFGOOUDWCHOOUDUEUFWIWGUGMWDOWIMRZWDSZWGWIWKQZWJCRZDRZPERZ
      PZSZAQZETDTCTZWMFSZWNGSZWOHSZUCZBQZETDTCTZWFBWLWRXDCDEWLWRXCAQXDWLWQXCAWL
      WQWDWPSZXCWLWJWDWPWIWKUHUJXFWPWDSXCWDWPUKWMWNFGWOHCULDULEULUMUTUNUOXCABLU
      PUNUQWKWSWFUBWIWSWJWENZWKWFXGWJWSMVAZNWSWEXHWJACDEMURUSWSMVBVCWJWDWEVDVEV
      FWIXEBUBWKWIBXCETDTCTZBQXEWIXIBWIWTCTZXADTZXBETZUCXIVTXJWAXKWBXLCFOVGDGOV
      GEHOVGVHWTXAXBCDEVIVJVKXCBCDEVLVMVNVOVPVQVRVS $.
  $}

  ${
    $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 $.
  $}

  ${
    $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
       Jim Kingdon, 16-Jan-2019.) $)
    fnovim $p |- ( F Fn ( A X. B ) ->
                    F = ( x e. A , y e. B |-> ( x F y ) ) ) $=
      ( vz cxp wfn cv cfv cmpt co cmpt2 dffn5im cop fveq2 df-ov syl6eqr mpt2mpt
      wceq eqeq2i sylib ) ECDGZHEFUCFIZEJZKZTEABCDAIZBIZELZMZTFUCENUFUJEABFCDUE
      UIUDUGUHOZTUEUKEJUIUDUKEPUGUHEQRSUAUB $.
  $}

  ${
    $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
        $.
    $}

    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 ) ) $=
      ( vw wrex cv wceq wa wex wral wb crn wcel cab rnmpt2 eqeq1 2rexbidv rexab
      rexeqi rexcom4 r19.41v exbii bitr2i 3bitri bitri ralimi rexbi syl syl5bbr
      ceqsexgv syl5bb ) AEIUAZNZEOZHPZDGNZAQZERZCFNZHJUBZDGSZCFSZBDGNZCFNZVBAEM
      OZHPZDGNCFNZMUCZNVECFNZAQZERZVHAEVAVQCDMFGHIKUDUHVPVRAEMVNVCPVOVDCDFGVNVC
      HUEUFUGVHVFCFNZERVTVFCEFUIWAVSEVEACFUJUKULUMVKVGVLTZCFSVHVMTVJWBCFVGVDAQZ
      ERZDGNZVJVLWEWCDGNZERVGWCDEGUIWFVFEVDADGUJUKUNVJWDBTZDGSWEVLTVIWGDGABEHJL
      USUOWDBDGUPUQURUOVGVLCFUPUQUT $.
  $}

  ${
    $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 analog 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 eleq1d elex nfel1 cmpt2 nfmpt21
      nfcxfr nfov nfeq nfim nfmpt22 csbeq1a oveq1 eqeq12d imbi12d oveq2 ovmpt4g
      wa 3expia vtocl2gaf csbcomg eqeq2d 3imtr4d syl5 3impia ) CEKZDFKZACBDGLLZ
      IKZCDHMZVFNZVGVFOKZVDVEUPZVIVFIUAVKBDACGLZLZOKZVHVMNZVJVIGOKZAPZBPZHMZGNZ
      QVLOKZCVRHMZVLNZQVNVOQABCDEFACRZBCRZBDRZWAWCAAVLOACGSZUBAWBVLACVRHWDAHABE
      FGUCZJABEFGUDUEAVRRUFWGUGUHVNVOBBVMOBDVLSZUBBVHVMBCDHWEBHWHJABEFGUIUEWFUF
      WIUGUHVQCNZVPWAVTWCWJGVLOACGUJZTWJVSWBGVLVQCVRHUKWKULUMVRDNZWAVNWCVOWLVLV
      MOBDVLUJZTWLWBVHVLVMVRDCHUNWMULUMVQEKVRFKVPVTABEFGHOJUOUQURVKVFVMOABCDGEF
      USZTVKVFVMVHWNUTVAVBVC $.
  $}

  ${
    $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 $.
    ovi3.1 $e |- ( ( ( A e. H /\ B e. H ) /\ ( C e. H /\ D e. H ) ) ->
        S e. ( H X. H ) ) $.
    ovi3.2 $e |- ( ( ( w = A /\ v = B ) /\ ( u = C /\ f = D ) ) ->
         R = S ) $.
    ovi3.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.) $)
    ovi3 $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 co cvv cxp elex syl isset sylib nfv nfcv coprab
      nfoprab3 nfcxfr nfov nfeq1 eqeq2d copsex4g opelxpi nfoprab1 nfim nfoprab2
      eqeq1 anbi1d 4exbidv oveq1 eqeq1d imbi12d anbi2d oveq2 moeq mosubop anass
      wi wmo 2exbii 19.42vv bitri mobii mpbir a1i ovidi vtocl2gaf sylbird eqeq2
      syl2an mpbidi exlimd mpd ) GOUAHOUASZIOUAJOUASZSZCUBZLUCZCTZGHUDZIJUDZNUE
      ZLUCZWNLUFUAZWQWNLOOUGZUAXBPLXCUHUICLUJUKWNWPXACWNCULCWTLCWRWSNCWRUMCNAUB
      ZXCUABUBZXCUASZXDDUBZEUBZUDZUCZXEFUBZMUBZUDZUCZSZWOKUCZSZMTFTZETDTZSZABCU
      NZRXTABCUOUPCWSUMUQURWPWTWOUCZXAWNWNWPWRXIUCZWSXMUCZSZXPSZMTFTETDTZYBXPWP
      DEFMGHIJOOXGGUCXHHUCSXKIUCXLJUCSSKLWOQUSUTWLWRXCUAWSXCUAYGYBVPZWMGHOOVAIJ
      OOVAXSXDXENUEZWOUCZVPYCXNSZXPSZMTFTETDTZWRXENUEZWOUCZVPYHABWRWSXCXCAWRUMZ
      BWRUMZBWSUMZYMYOAYMAULAYNWOAWRXENYPANYARXTABCVBUPAXEUMUQURVCYGYBBYGBULBWT
      WOBWRWSNYQBNYARXTABCVDUPYRUQURVCXDWRUCZXSYMYJYOYSXQYLDEFMYSXOYKXPYSXJYCXN
      XDWRXIVEVFVFVGYSYIYNWOXDWRXENVHVIVJXEWSUCZYMYGYOYBYTYLYFDEFMYTYKYEXPYTXNY
      DYCXEWSXMVEVKVFVGYTYNWTWOXEWSWRNVLVIVJXSABCXCXCNXSCVQZXFUUAXJXNXPSZMTFTZS
      ZETDTZCVQUUCCDEXDXPCFMXECKVMVNVNXSUUECXRUUDDEXRXJUUBSZMTFTUUDXQUUFFMXJXNX
      PVOVRXJUUBFMVSVTVRWAWBWCRWDWEWHWFWOLWTWGWIWJWK $.
  $}

  ${
    $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 $.
  $}

  $( 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 cvv wi a1i eleq2d fnovex
      elex w3a eleq1 syl5ibrcom 3expb rexlimdvva eqeq1 2rexbidv elabg pm5.21ndd
      wb bitrd ) FCDHIZEFJZKEGLZALZBLZFMZNZBDOACOZGPZKZEUTNZBDOACOZUOUPVCEABGCD
      FQUAUOERKZVDVFVDVGSUOEVCUCTUOVEVGABCDUOURCKZUSDKZVEVGSUOVHVIUDVGVEUTRKURU
      SCDFUBEUTRUEUFUGUHVGVDVFUMSUOVBVFGERUQENVAVEABCDUQEUTUIUJUKTULUN $.

    $( 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 $.
  $}

  ${
    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 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 $.
    $}
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z C $.  $d x y z D $.
    $d r s t x y z ph $.  $d r s t x y z F $.  $d r s t x y z G $.
    $d x y z H $.  $d x y z R $.  $d r s t x y z S $.
    caovdilemd.com $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) ->
      ( x G y ) = ( y G x ) ) $.
    caovdilemd.distr $e |- ( ( ph /\ ( x e. S /\ y e. S /\ z e. S ) ) ->
      ( ( x F y ) G z ) = ( ( x G z ) F ( y G z ) ) ) $.
    caovdilemd.ass $e |- ( ( ph /\ ( x e. S /\ y e. S /\ z e. S ) ) ->
      ( ( x G y ) G z ) = ( x G ( y G z ) ) ) $.
    caovdilemd.cl $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) ->
      ( x G y ) e. S ) $.
    caovdilemd.a $e |- ( ph -> A e. S ) $.
    caovdilemd.b $e |- ( ph -> B e. S ) $.
    caovdilemd.c $e |- ( ph -> C e. S ) $.
    caovdilemd.d $e |- ( ph -> D e. S ) $.
    caovdilemd.h $e |- ( ph -> H e. S ) $.
    $( Lemma used by real number construction.  (Contributed by Jim Kingdon,
       16-Sep-2019.) $)
    caovdilemd $p |- ( ph -> ( ( ( A G C ) F ( B G D ) ) G H ) =
                     ( ( A G ( C G H ) ) F ( B G ( D G H ) ) ) ) $=
      ( co caovcld caovdird caovassd oveq12d eqtrd ) AEGKUBZFHKUBZJUBLKUBUHLKUB
      ZUILKUBZJUBEGLKUBKUBZFHLKUBKUBZJUBABCDUHUILIJKJINABCEGIIIKPQSUCABCFHIIIKP
      RTUCUAUDAUJULUKUMJABCDEGLIKOQSUAUEABCDFHLIKORTUAUEUFUG $.

    caovdl2.6 $e |- ( ph -> R e. S ) $.
    caovdl2.com $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) ->
      ( x F y ) = ( y F x ) ) $.
    caovdl2.ass $e |- ( ( ph /\ ( x e. S /\ y e. S /\ z e. S ) ) ->
      ( ( x F y ) F z ) = ( x F ( y F z ) ) ) $.
    caovdl2.cl $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) ->
      ( x F y ) e. S ) $.
    $( Rearrangement of expression involving multiplication ( ` G ` ) and
       addition ( ` F ` ).  (Contributed by Jim Kingdon, 3-Jan-2020.) $)
    caovlem2d $p |- ( ph -> ( ( ( ( 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 ) ) ) ) ) $=
      ( vr vs vt co caovcld caov42d caovdilemd oveq12d cv wcel w3a wceq caovclg
      wa simpr1 3adantr1 caovcomg syldan 3anrot caovdirg sylan2b eqcomd ancom2s
      jca 3adantr3 3adantr2 3eqtrd caovdid 3eqtr4d ) AEGMLUJZLUJZFHMLUJZLUJZKUJ
      ZEHILUJZLUJZFGILUJZLUJZKUJZKUJVQWBKUJZWDVSKUJZKUJEGLUJFHLUJKUJMLUJZEHLUJF
      GLUJKUJILUJZKUJEVPWAKUJLUJZFWCVRKUJLUJZKUJABCDVQVSWBWDJKABCEVPJJJLQRABCGM
      JJJLQTUBUKZUKABCFVRJJJLQSABCHMJJJLQUAUBUKZUKABCEWAJJJLQRABCHIJJJLQUAUCUKZ
      UKUDUEABCFWCJJJLQSABCGIJJJLQTUCUKZUKUFULAWHVTWIWEKABCDEFGHJKLMNOPQRSTUAUB
      UMABCDEFHGJKLINOPQRSUATUCUMUNAWJWFWKWGKABCDEVPWAJKLKJABUOZJUPZCUOZJUPZDUO
      ZJUPZUQZUTZWPWRWTKUJZLUJZXDWPLUJZWRWPLUJZWTWPLUJZKUJZWPWRLUJZWPWTLUJZKUJA
      XBWQXDJUPZUTXEXFURXCWQXLAWQWSXAVAAWSXAXLWQAUGUHWRWTJJJKABCUGUOZUHUOZJJJKU
      FUSUSVBVJAUGUHWPXDJLABCXMXNJLNVCZVCVDXBAWSXAWQUQXFXIURWQWSXAVEAUGUHUIWRWT
      WPJKLKJABCDXMXNUIUOJKLKJOVFVFVGXCXGXJXHXKKAWQWSXGXJURXAAWQWSUTUTXJXGNVHVK
      AWQXAXHXKURZWSAXAWQXPAUGUHWTWPJLXOVCVIVLUNVMZRWLWNVNABCDFWCVRJKLKJXQSWOWM
      VNUNVO $.
  $}

  ${
    $d A v w x y z $.  $d B v w x y $.  $d F v w x y z $.  $d S v w x y z $.
    caovimo.idel $e |- B e. S $.
    caovimo.com $e |- ( ( x e. S /\ y e. S ) -> ( x F y ) = ( y F x ) ) $.
    caovimo.ass $e |- ( ( x e. S /\ y e. S /\ z e. S ) ->
      ( ( x F y ) F z ) = ( x F ( y F z ) ) ) $.
    caovimo.id $e |- ( x e. S -> ( x F B ) = x ) $.
    $( Uniqueness of inverse element in commutative, associative operation with
       identity.  The identity element is ` B ` .  (Contributed by Jim Kingdon,
       18-Sep-2019.) $)
    caovimo $p |- ( A e. S -> E* w ( w e. S /\ ( A F w ) = B ) ) $=
      ( vv wcel cv co wceq wa w3a adantl wi wal wmo oveq1 3ad2ant2 df-3an simp1
      simp2 simp3 caovassd caov12d eqtrd adantr oveq2 eqeq12d vtoclga sylan9eqr
      id 3ad2antl2 sylanbr anasss 3adant2r a1i caovcomd 3ad2ant3 3eqtr3d 3expib
      3impa alrimivv eleq1 eqeq1d anbi12d mo4 sylibr ) EGNZDOZGNZEVPHPZFQZRZMOZ
      GNZEWAHPZFQZRZRVPWAQZUAZMUBDUBVTDUCVOWGDMVOVTWEWFVOVTWESVRWAHPZFWAHPZVPWA
      VTVOWHWIQZWEVSWJVQVRFWAHUDTUEVOVQWEWHVPQZVSVOVQWEWKVOVQRZWBWDWKWLWBRVOVQW
      BSZWDWKVOVQWBUFWMWDRWHVPWCHPZVPWMWHWNQWDWMWHEVPWAHPHPWNWMABCEVPWAGHAOZGNZ
      BOZGNZCOZGNSWOWQHPZWSHPWOWQWSHPHPQWMKTZVOVQWBUGZVOVQWBUHZVOVQWBUIZUJWMABC
      EVPWAGHXBXCXDWPWRRZWTWQWOHPQZWMJTXAUKULUMVQVOWDWNVPQWBWDVQWNVPFHPZVPWCFVP
      HUNWOFHPZWOQZXGVPQAVPGWOVPQZXHXGWOVPWOVPFHUDXJURUOLUPUQUSULUTVAVHVBWEVOWI
      WAQZVTWBXKWDWBWIWAFHPZWAWBABFWAGHXEXFWBJTFGNWBIVCWBURVDXIXLWAQAWAGWOWAQZX
      HXLWOWAWOWAFHUDXMURUOLUPULUMVEVFVGVIVTWEDMWFVQWBVSWDVPWAGVJWFVRWCFVPWAEHU
      NVKVLVMVN $.
  $}

  ${
    $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 rspccva syldan oveq2d adantr simprr oveq1d simpll caovassg
        sylan w3a simprl caovassd id eqeq12d rspcv sylc 3eqtr3d rexlimddv ) ABU
        DZDQZIGRZHSZIHSDFABIFTZVNDFUEZOAVLEQZGRZHSZDFUEZEFUFZVOVPAVLCQZGRZHSZDF
        UEZCFUFWAAWECFNUGWEVTCEFWBVQSZWDVSDFWFWCVRHWBVQVLGUHUKUIUJULVTVPEIFVQIS
        ZVSVNDFWGVRVMHVQIVLGUHUKUIUMVAUNVKVLFTZVNUDZUDZVLIIGRZGRZVMIHVKWLVMSWIV
        KWKIVLGPUOUPWJVMIGRHIGRZWLIWJVMHIGVKWHVNUQZURWJUAUBUCVLIIFGWJAUAQZFTUBQ
        ZFTUCQZFTVBWOWPGRWQGRWOWPWQGRGRSABWIUSACDEWOWPWQFGMUTVAVKWHVNVCVKVOWIOU
        PZWRVDVKWMISZWIVKVOHVLGRZVLSZDFUFZWSOAXBBAHWBGRZWBSZCFUFXBAXDCFLUGXDXAC
        DFWBVLSZXCWTWBVLWBVLHGUHXEVEVFUJULUPXAWSDIFVLISZWTWMVLIVLIHGUHXFVEVFVGV
        HUPVIWNVIVJ $.
    $}

    ${
      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 oveq1d wral ralrimiva oveq2 id eqeq12d cbvralv sylib adantr rspcv
        w3a sylc 3eqtr3d oveq2d eqtrd grprinvlem ) ABCDEFGIJHGSZKLMNOABUDZUAUBJ
        HFFFGAUAUEZFTZUBUEZFTZUDVKVMGSZFTBACDVKVMFFFGACUEZFTDUEZFTVPVQGSFTKULUF
        UGPQUHZVJVIVIGSJHVIGSZGSVIVJUAUBUCJHVIFGAVLVNUCUEZFTVCVOVTGSVKVMVTGSGSU
        IBACDEVKVMVTFGNUJUGZPQVRUKVJVSHJGVJHJGSZHGSIHGSZVSHVJWBIHGRUMVJUAUBUCHJ
        HFGWAQPQUKVJHFTIVQGSZVQUIZDFUNZWCHUIZQAWFBAIVPGSZVPUIZCFUNWFAWICFMUOWIW
        ECDFVPVQUIZWHWDVPVQVPVQIGUPWJUQURUSUTVAWEWGDHFVQHUIZWDWCVQHVQHIGUPWKUQU
        RVBVDVEVFVGVH $.
    $}

    $( 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 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 eqtri dmeqi wrel
      dmoprabss eqsstri wfun mpt2fun funrel ax-mp relelfvdm df-ov eleq2s sseldi
      cfv mpan opelxp sylib ) IFGHLZMZFGNZCDOZMFCMGDMPVAHQZVCVBVDARCMBRDMPKRESZ
      PABKTZQVCHVFHABCDEUAVFJABKCDEUBUCUDVEABKCDUFUGVBVDMZIVBHUPZUTHUEZIVHMVGHU
      HVIABCDEHJUIHUJUKIVBHULUQFGHUMUNUOFGCDURUS $.

    $( 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.  (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 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 ph x $.  $d Y x $.  $d Z x $.
    suppssfv.a $e |- ( ph -> ( `' ( x e. D |-> A ) " ( _V \ { Y } ) ) C_ L ) $.
    suppssfv.f $e |- ( ph -> ( F ` Y ) = Z ) $.
    suppssfv.v $e |- ( ( ph /\ x e. D ) -> A e. V ) $.
    $( Formula building theorem for support restriction, on a function which
       preserves zero.  (Contributed by Stefan O'Rear, 9-Mar-2015.) $)
    suppssfv $p |- ( ph -> ( `' ( x e. D |-> ( F ` A ) ) "
            ( _V \ { Z } ) ) C_ L ) $=
      ( cfv cmpt ccnv cvv csn cdif wcel wceq cima crab wne cv eldifsni elex syl
      wa adantr wi fveq2 eqeq1d syl5ibrcom necon3d imp eldifsn sylanbrc ex syl5
      ss2rabdv eqid mptpreima 3sstr4g sstrd ) ABDCEMZNZOPIQRZUAZBDCNZOPHQRZUAZF
      AVEVGSZBDUBCVJSZBDUBVHVKAVLVMBDVLVEIUCZABUDDSZUHZVMVEPIUEVPVNVMVPVNUHCPSZ
      CHUCZVMVPVQVNVPCGSVQLCGUFUGUIVPVNVRAVNVRUJVOACHVEIAVEITCHTZHEMZITKVSVEVTI
      CHEUKULUMUNUIUOCPHUPUQURUSUTBDVEVGVFVFVAVBBDCVJVIVIVAVBVCJVD $.
  $}

  ${
    $d ph v $.  $d ph x $.  $d B v $.  $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 ) " ( _V \ { 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 ) $.
    $( Formula building theorem for support restrictions: operator with left
       annihilator.  (Contributed by Stefan O'Rear, 9-Mar-2015.) $)
    suppssov1 $p |- ( ph -> ( `' ( x e. D |-> ( A O B ) ) "
            ( _V \ { Z } ) ) C_ L ) $=
      ( co cvv wcel wceq cmpt ccnv csn cdif cima crab cv wa wne elex syl adantr
      eldifsni wral ralrimiva oveq2 eqeq1d rspcva syl2anc oveq1 syl5ibrcom syl5
      necon3d imp eldifsn sylanbrc ex ss2rabdv eqid mptpreima 3sstr4g sstrd ) A
      BFDEIQZUAZUBRLUCUDZUEZBFDUAZUBRKUCUDZUEZHAVMVOSZBFUFDVRSZBFUFVPVSAVTWABFA
      BUGFSZUHZVTWAWCVTUHDRSZDKUIZWAWCWDVTWCDJSWDODJUJUKULWCVTWEVTVMLUIWCWEVMRL
      UMWCDKVMLWCVMLTDKTZKEIQZLTZWCEGSKCUGZIQZLTZCGUNZWHPAWLWBAWKCGNUOULWKWHCEG
      WIETWJWGLWIEKIUPUQURUSWFVMWGLDKEIUTUQVAVCVBVDDRKVEVFVGVHBFVMVOVNVNVIVJBFD
      VRVQVQVIVJVKMVL $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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 ` oF 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 ) $.
      ofval.8 $e |- ( ph -> R Fn ( U X. V ) ) $.
      ofval.9 $e |- ( ph -> C e. U ) $.
      ofval.10 $e |- ( ph -> D e. V ) $.
      $( Evaluate a function operation at a point.  (Contributed by Mario
         Carneiro, 20-Jul-2014.) $)
      fnofval $p |- ( ( ph /\ X e. S ) -> ( ( F oF R G ) ` X ) = ( C R D ) ) $=
        ( vx wcel wa cof co cfv cv cmpt wceq eqidd offval fveq1d adantr cvv cxp
        simpr wfn inss1 eqsstr3i sseli sylan2 eleq1d mpbird inss2 syl3anc fveq2
        cin fnovex oveq12d eqid fvmptg syl2anc 3eqtrd ) AMGUEZUFZMIJFUGUHZUIZMU
        DGUDUJZIUIZWAJUIZFUHZUKZUIZMIUIZMJUIZFUHZDEFUHAVTWFULVQAMVSWEAUDBCWBWCF
        GIJKLNOPQRAWABUEUFWBUMAWACUEUFWCUMUNUOUPVRVQWIUQUEZWFWIULAVQUSVRFHKURUT
        ZWGHUEZWHKUEZWJAWKVQUAUPVRWLDHUEZAWNVQUBUPVRWGDHVQAMBUEWGDULGBMGBCVJZBR
        BCVAVBVCSVDZVEVFVRWMEKUEZAWQVQUCUPVRWHEKVQAMCUEWHEULGCMGWOCRBCVGVBVCTVD
        ZVEVFWGWHHKFVKVHUDMWDWIGUQWEWAMULWBWGWCWHFWAMIVIWAMJVIVLWEVMVNVOVRWGDWH
        EFWPWRVLVP $.
    $}

    ${
      ofrval.6 $e |- ( ( ph /\ X e. A ) -> ( F ` X ) = C ) $.
      ofrval.7 $e |- ( ( ph /\ X e. B ) -> ( G ` X ) = D ) $.
      $( 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 $.
    $}
  $}

  ${
    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 $.
  $}

  ${
    $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 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 " ( _V \ { 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 ) $.
    $( Formula building theorem for support restrictions: vector operation with
       left annihilator.  (Contributed by Stefan O'Rear, 9-Mar-2015.) $)
    suppssof1 $p |- ( ph -> ( `' ( A oF O B ) " ( _V \ { Z } ) ) C_ L ) $=
      ( vx ccnv cvv cof co csn cdif cima cv cfv cmpt wf wfn ffn syl inidm eqidd
      wcel wa offval cnveqd imaeq1d feqmptd eqsstr3d funfni ffvelrnda suppssov1
      funfvex sylan eqsstrd ) ACDHUAUBZSZTLUCUDZUERERUFZCUGZVKDUGZHUBUHZSZVJUEG
      AVIVOVJAVHVNAREEVLVMHECDJJAEICUICEUJZOEICUKULZAEFDUIDEUJPEFDUKULQQEUMAVKE
      UOZUPZVLUNVSVMUNUQURUSARBVLVMEFGHTKLAREVLUHZSZTKUCUDZUECSZWBUEGAWCWAWBACV
      TAREICOUTURUSMVANAVPVRVLTUOZVQWDEVKCVKCVEVBVFAEFVKDPVCVDVG $.
  $}

  ${
    $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 ) $.

    $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 dffn5im syl inidm offval eqeq12d cvv wcel
      cv wb funfvex funfni sylan ralrimiva mpteqb bitrd ) AIGHFUAQZRBCBUKZIUBZS
      ZBCDEFQZSZRZVAVCRBCTZAIVBUSVDAICUCZIVBRNBCIUDUEABCCDEFCGHJJLMKKCUFOPUGUHA
      VAUIUJZBCTVEVFULAVHBCAVGUTCUJVHNVHCUTIUTIUMUNUOUPBCVAVCUIUQUEUR $.
  $}

  ${
    $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 y z F $.  $d w x y z G $.  $d w x y z H $.
    $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 wral ralrimiva fneq1d dffn5im feqmptd
          fnmpt offval2 fveq1d simpr fveq2 fveq2d fvmptg syl2anc oveq1d oveq12d
          syl eqtrd id eqeq1d rspcva mpteq2dva fconstmpt syl6eqr ) AIHFUAUBZSDE
          UCZDEUDUMAWBSDSUEZITZWDHTZFUBZUCWCASDWEWFFIHKGGMADGWDIADGIUFDGCDCUEZH
          TZJTZUCZUFACDWJGWKAWHDUGZUHGGWIJAGGJUFZWLPUIADGWHHNUJUKZWKULZUNADGIWK
          QUOUPUJADGWDHNUJZAIDUQZISDWEUCURAWQWKDUQZAWJGUGZCDUSWRAWSCDWNUTCDWJWK
          GWOVDVNADIWKQVAUPSDIVBVNASDGHNVCVEASDWGEAWDDUGZUHZWGWFJTZWFFUBZEXAWEX
          BWFFXAWEWDWKTZXBAWEXDURWTAWDIWKQVFUIXAWTXBGUGXDXBURAWTVGXAGGWFJAWMWTP
          UIWPUKCWDWJXBDGWKWHWDURWIWFJWHWDHVHVIWOVJVKVOVLXAWFGUGBUEZJTZXEFUBZEU
          RZBGUSZXCEURZWPAXIWTAXHBGRUTUIXHXJBWFGXEWFURZXGXCEXKXFXBXEWFFXEWFJVHX
          KVPVMVQVRVKVOVSVOSDEVTWA $.
      $}
    $}

    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 ) $.

    ${
      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 $.
    $}
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Functions (continued)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( The restriction of a function to a set exists.  Compare Proposition 6.17
     of [TakeutiZaring] p. 28.  This version has a shorter proof than
     ~ resfunexg but requires ~ 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 $.

  $( 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 ~ funimaexg .  This version of ~ fnex 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 $.

  $( 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
     can be thought of as a form of the Axiom of Replacement.  (Contributed by
     NM, 4-Sep-2004.) $)
  f1dmex $p |- ( ( F : A -1-1-> B /\ B e. C ) -> A e. _V ) $=
    ( wf1 wcel cvv crn wss wf f1f frn syl ssexg sylan ex ccnv wfo wf1o f1cnv
    f1ofo fornex syl5com syld imp ) ABDEZBCFZAGFZUFUGDHZGFZUHUFUGUJUFUIBIZUGUJU
    FABDJUKABDKABDLMUIBCNOPUFUIADQZRZUJUHUFUIAULSUMABDTUIAULUAMUIAGULUBUCUDUE
    $.

  ${
    $d x y A $.  $d y B $.
    abrexex.1 $e |- A e. _V $.
    $( Existence of a class abstraction of existentially restricted sets. ` x `
       is normally a free-variable parameter in the class expression
       substituted for ` B ` , which can be thought of as ` B ( x ) ` .  This
       simple-looking theorem is actually quite powerful and appears to involve
       the Axiom of Replacement in an intrinsic way, as can be seen by tracing
       back through the path ~ mptexg , ~ funex , ~ fnex , ~ resfunexg , and
       ~ funimaexg .  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 $=
      ( cmpt crn cv wceq wrex cab cvv eqid rnmpt mptex rnex eqeltrri ) ACDFZGBH
      DIACJBKLABCDRRMNRACDEOPQ $.
  $}

  ${
    $d x y A $.  $d y B $.
    $( Existence of a class abstraction of existentially restricted sets. ` x `
       is normally a free-variable parameter in ` B ` .  The antecedent assures
       us that ` A ` is a set.  (Contributed by NM, 3-Nov-2003.) $)
    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 $.
    $( 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 nfrexxy wceq sbequ12
      rexbidv cbvab df-clab rexbii eqtr4i ciun df-iun iunexg syl5eqelr syl5eqel
      abbii ) DEHACIZFHBDJKZABDLZCIZGMZUMHZBDLZGIZNUPACGOZBDLZGIUTUOVBCGUOGPVAC
      BDCDQACGRSCMUQTAVABDACGUAUBUCUSVBGURVABDAGCUDUEULUFUNUTBDUMUGNBGDUMUHBDUM
      EFUIUJUK $.
  $}

  ${
    $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 velsn anbi1i vex opeq1 eqeq2d anbi1d ceqsexv nfv nfsab1
      elxp nfan opeq2 wsb sbequ12 equcoms df-clab syl6rbbr anbi12d cbvex 3bitri
      wb anbi2i 3bitr4ri wrex eliun df-rex 3bitr4i eqriv wral snexg ax-mp xpexg
      elopab sylancr ralrimiva iunexg syl2anc syl5eqelr ) ACKZELZBMZCDUAZCEWFUB
      ZBDUCZUDZUEZNHWMWIWGHKZWLLZMZCOZWNWFDKZPZQZWHMZDOZCOWNWMLZWNWILWPXBCWGWTB
      MZMZDOWGXDDOZMXBWPWGXDDUFXAXEDWTWGBRSWOXFWGWOWNIKZJKZPZQZXGWJLZXHWKLZMMZJ
      OIOZWNWFXHPZQZXLMZJOZXFIJWNWJWKUQXNXMIOZJOXRXMIJUGXSXQJXSXGWFQZXJXLMZMZIO
      XQXMYBIXMXKYAMYBXJXKXLRXKXTYAIWFUHUITSYAXQIWFCUJZXTXJXPXLXTXIXOWNXGWFXHUK
      ULUMUNTSTXQXDJDXPXLDXPDUOBDJUPURXDJUOXHWRQZXPWTXLBYDXOWSWNXHWRWFUSULYDBBD
      JUTZXLBYEVHDJBDJVAVBBJDVCVDVEVFVGVIVJSXCWOCEVKWQCWNEWLVLWOCEVMTWHCDWNVTVN
      VOAENLWLNLZCEVPWMNLFAYFCEAWGMWJNLZWKNLYFWFNLYGYCWFNVQVRGWJWKNNVSWAWBCEWLN
      NWCWDWE $.
  $}

  ${
    $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 3bitr4i eqriv wral snexg ax-mp xpexg
      elopab sylancr rgen iunexg mp2an eqeltrri ) BDBJZUCZACUDZUEZUAZWEDKZALZBC
      UBZMGWIWLWJGJZWHKZLZBNZWMWECJZOZPZWKLZCNZBNWMWIKZWMWLKWOXABWJWSALZLZCNWJX
      CCNZLXAWOWJXCCUFWTXDCWSWJAQRWNXEWJWNWMHJZIJZOZPZXFWFKZXGWGKZLLZINHNZWMWEX
      GOZPZXKLZINZXEHIWMWFWGUPXMXLHNZINXQXLHIUGXRXPIXRXFWEPZXIXKLZLZHNXPXLYAHXL
      XJXTLYAXIXJXKQXJXSXTHWEUHUISRXTXPHWEBUJZXSXIXOXKXSXHXNWMXFWEXGUKTULUMSRSX
      PXCICXOXKCXOCUNACIUOUQXCIUNXGWQPZXOWSXKAYCXNWRWMXGWQWEURTYCAACIUSZXKAYDVG
      CIACIUTVAAICVBVCVDVEVFVHVIRXBWNBDVJWPBWMDWHVKWNBDVLSWKBCWMVSVMVNDMKWHMKZB
      DVOWIMKEYEBDWJWFMKZWGMKYEWEMKYFYBWEMVPVQFWFWGMMVRVTWABDWHMMWBWCWD $.
  $}

  ${
    $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 z A $.  $d z ph $.
    abrexex2.1 $e |- A e. _V $.
    abrexex2.2 $e |- { y | ph } e. _V $.
    $( Existence of an existentially restricted class abstraction. ` ph ` is
       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 $=
      ( vz wrex cab cv wcel cvv wsb nfv nfcv nfs1v nfrexxy weq sbequ12 rexbidv
      cbvab df-clab rexbii abbii eqtr4i ciun df-iun iunex eqeltrri eqeltri ) AB
      DHZCIZGJACIZKZBDHZGIZLULACGMZBDHZGIUPUKURCGUKGNUQCBDCDOACGPQCGRAUQBDACGST
      UAUOURGUNUQBDAGCUBUCUDUEBDUMUFUPLBGDUMUGBDUMEFUHUIUJ $.

    $( 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 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 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 $.
    $( The cross product of two sets is a set.  Proposition 6.2 of
       [TakeutiZaring] p. 23.  This version is proven using Replacement; see
       ~ xpexg for a version that uses the Power Set axiom instead.
       (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.) $)
    1stvalg $p |- ( A e. _V -> ( 1st ` A ) = U. dom { A } ) $=
      ( vx cvv wcel csn cdm cuni c1st cfv wceq snexg dmexg uniexg 3syl cv dmeqd
      sneq unieqd df-1st fvmptg mpdan ) ACDZAEZFZGZCDZAHIUEJUBUCCDUDCDUFACKUCCL
      UDCMNBABOZEZFZGUECCHUGAJZUIUDUJUHUCUGAQPRBSTUA $.

    $( 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.) $)
    2ndvalg $p |- ( A e. _V -> ( 2nd ` A ) = U. ran { A } ) $=
      ( vx cvv wcel csn crn cuni c2nd cfv wceq snexg rnexg uniexg 3syl cv rneqd
      sneq unieqd df-2nd fvmptg mpdan ) ACDZAEZFZGZCDZAHIUEJUBUCCDUDCDUFACKUCCL
      UDCMNBABOZEZFZGUECCHUGAJZUIUDUJUHUCUGAQPRBSTUA $.
  $}

  $( The value of the first-member function at the empty set.  (Contributed by
     NM, 23-Apr-2007.) $)
  1st0 $p |- ( 1st ` (/) ) = (/) $=
    ( c1st cfv csn cdm cuni cvv wcel wceq 0ex 1stvalg ax-mp dmsn0 unieqi 3eqtri
    c0 uni0 ) OABZOCDZEZOEOOFGQSHIOJKROLMPN $.

  $( 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 cvv wcel wceq 0ex 2ndvalg ax-mp cdm dmsn0 dm0rn0
    mpbi unieqi uni0 3eqtri ) ABCZADZEZFZAFAAGHTUCIJAKLUBAUAMAIUBAINUAOPQRS $.

  ${
    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 cvv wcel wceq opexg mp2an 1stvalg ax-mp eqtri
      op1sta ) ABEZFGZTHIJZATKLZUAUBMAKLBKLUCCDABKKNOTPQABCDSR $.

    $( 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 cvv wcel wceq opexg mp2an 2ndvalg ax-mp eqtri
      op2nda ) ABEZFGZTHIJZBTKLZUAUBMAKLBKLUCCDABKKNOTPQABCDSR $.

    $( 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 , ~ ot3rdgg .)  (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 w3a cotp c1st cfv cop df-ot fveq2i wceq wa cvv opexg op1stg sylan
      3impa syl5eq fveq2d 3adant3 eqtrd ) ADGZBEGZCFGZHZABCIZJKZJKABLZJKZAUIUKU
      LJUIUKULCLZJKZULUJUNJABCMNUFUGUHUOULOZUFUGPULQGUHUPABDERULCQFSTUAUBUCUFUG
      UMAOUHABDESUDUE $.

    $( 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 w3a cotp c1st cfv c2nd cop df-ot fveq2i wceq wa cvv opexg op1stg
      sylan 3impa syl5eq fveq2d op2ndg 3adant3 eqtrd ) ADGZBEGZCFGZHZABCIZJKZLK
      ABMZLKZBUKUMUNLUKUMUNCMZJKZUNULUPJABCNOUHUIUJUQUNPZUHUIQUNRGUJURABDESUNCR
      FTUAUBUCUDUHUIUOBPUJABDEUEUFUG $.

    $( Extract the third member of an ordered triple.  (See ~ ot1stg comment.)
       (Contributed by NM, 3-Apr-2015.) $)
    ot3rdgg $p |- ( ( A e. V /\ B e. W /\ C e. X )
        -> ( 2nd ` <. A , B , C >. ) = C ) $=
      ( wcel w3a cotp c2nd cfv cop df-ot fveq2i wceq wa cvv opexg op2ndg sylan
      3impa syl5eq ) ADGZBEGZCFGZHABCIZJKABLZCLZJKZCUFUHJABCMNUCUDUEUICOZUCUDPU
      GQGUEUJABDERUGCQFSTUAUB $.

    $( 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 $.
  $}

  ${
    $d x y z A $.  $d x y z B $.
    $( 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 csn cdm cuni vex snex dmex uniex df-1st
      cv fnmpti wrex wcel cab rnmpt opex op1sta eqcomi sneq dmeqd unieqd eqeq2d
      cop rspcev mp2an 2th abbi2i eqtr4i df-fo mpbir2an ) CCDEDCFDGZCHACAQZIZJZ
      KZDVAUTUSALMNOAPZRURBQZVBHZACSZBUACABCVBDVCUBVFBCVDCTVFBLZVDVDUJZCTVDVHIZ
      JZKZHZVFVDVDVGVGUCVKVDVDVDVGVGUDUEVEVLAVHCUSVHHZVBVKVDVMVAVJVMUTVIUSVHUFU
      GUHUIUKULUMUNUOCCDUPUQ $.

    $( 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 vex snex rnex df-2nd fnmpti
      uniex wrex cab wcel rnmpt cop opex op2nda eqcomi sneq rneqd unieqd eqeq2d
      rspcev mp2an 2th abbi2i eqtr4i df-fo mpbir2an ) CCDEDCFDGZCHACAIZJZGZKZDU
      TUSURALMNQAOZPUQBIZVAHZACRZBSCABCVADVBUAVEBCVCCTVEBLZVCVCUBZCTVCVGJZGZKZH
      ZVEVCVCVFVFUCVJVCVCVCVFVFUDUEVDVKAVGCURVGHZVAVJVCVLUTVIVLUSVHURVGUFUGUHUI
      UJUKULUMUNCCDUOUP $.

    $( 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 $.
  $}

  ${
    $d y B $.  $d u v y $.  $d u v A $.  $d u v B $.
    $( Onto mapping of a restriction of the ` 1st ` (first member of an ordered
       pair) function.  (Contributed by Jim Kingdon, 24-Jan-2019.) $)
    fo1stresm $p |- ( E. y y e. B ->
                 ( 1st |` ( A X. B ) ) : ( A X. B ) -onto-> A ) $=
      ( vv vu cv wcel wex cxp c1st wfo wa wss cfv vex ax-mp sylbir jctil sylibr
      cres eleq1 cbvexv wf crn wceq wi cop opelxp fvres syl6req wfn f1stres ffn
      op1st fnfvelrn mpan eqeltrd expcom exlimiv ssrdv frn eqss dffo2 ) AFZCGZA
      HDFZCGZDHZBCIZBJVITZKZVGVEDAVFVDCUAUBVHVIBVJUCZVJUDZBUEZLVKVHVNVLVHVMBMZB
      VMMZLVNVHVPVOVHEBVMVGEFZBGZVQVMGZUFDVRVGVSVRVGLVQVFUGZVIGZVSVQVFBCUHWAVQV
      TVJNZVMWAWBVTJNVQVTVIJUIVQVFEODOUNUJVJVIUKZWAWBVMGVLWCBCULZVIBVJUMPVIVTVJ
      UOUPUQQURUSUTVLVOWDVIBVJVAPRVMBVBSWDRVIBVJVCSQ $.
  $}

  ${
    $d x A $.  $d u v x $.  $d u v A $.  $d u v B $.
    $( Onto mapping of a restriction of the ` 2nd ` (second member of an
       ordered pair) function.  (Contributed by Jim Kingdon, 24-Jan-2019.) $)
    fo2ndresm $p |- ( E. x x e. A ->
                 ( 2nd |` ( A X. B ) ) : ( A X. B ) -onto-> B ) $=
      ( vu vv cv wcel wex cxp c2nd wfo wa wss cfv vex ax-mp sylbir jctil sylibr
      cres eleq1 cbvexv wf crn wceq wi cop opelxp fvres syl6req wfn f2ndres ffn
      op2nd fnfvelrn mpan eqeltrd ex exlimiv ssrdv frn eqss dffo2 ) AFZBGZAHDFZ
      BGZDHZBCIZCJVITZKZVGVEDAVFVDBUAUBVHVICVJUCZVJUDZCUEZLVKVHVNVLVHVMCMZCVMMZ
      LVNVHVPVOVHECVMVGEFZCGZVQVMGZUFDVGVRVSVGVRLVFVQUGZVIGZVSVFVQBCUHWAVQVTVJN
      ZVMWAWBVTJNVQVTVIJUIVFVQDOEOUNUJVJVIUKZWAWBVMGVLWCBCULZVICVJUMPVIVTVJUOUP
      UQQURUSUTVLVOWDVICVJVAPRVMCVBSWDRVICVJVCSQ $.
  $}

  $( 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 $.
  $}

  $( Existence of the first member of a set.  (Contributed by Jim Kingdon,
     26-Jan-2019.) $)
  1stexg $p |- ( A e. V -> ( 1st ` A ) e. _V ) $=
    ( wcel cvv c1st cfv elex wfn wfo fo1st fofn ax-mp funfvex funfni mpan syl )
    ABCADCZAEFDCZABGEDHZQRDDEISJDDEKLRDAEAEMNOP $.

  $( Existence of the first member of a set.  (Contributed by Jim Kingdon,
     26-Jan-2019.) $)
  2ndexg $p |- ( A e. V -> ( 2nd ` A ) e. _V ) $=
    ( wcel cvv c2nd cfv elex wfn wfo fo2nd fofn ax-mp funfvex funfni mpan syl )
    ABCADCZAEFDCZABGEDHZQRDDEISJDDEKLRDAEAEMNOP $.

  $( Membership in a cross 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 cvv c1st cfv c2nd wceq wa elex opexg adantl wb eleq1 cuni eleq1d
    cop anbi12d adantr mpbird csn cdm crn 1stvalg 2ndvalg eqeq2d elxp4 syl6rbbr
    opeq12d pm5.21nii ) ABCDZEZAFEZAAGHZAIHZSZJZUPBEZUQCEZKZKZAUMLVCUOURFEZVBVD
    USUPUQBCMNUSUOVDOVBAURFPUAUBUOVCAAUCZUDQZVEUEQZSZJZVFBEZVGCEZKZKUNUOUSVIVBV
    LUOURVHAUOUPVFUQVGAUFZAUGZUKUHUOUTVJVAVKUOUPVFBVMRUOUQVGCVNRTTABCUIUJUL $.

  $( Membership in a cross 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 cvv c1st cfv c2nd wa elex adantr cop wceq 1stexg 2ndexg biantrud
    jca elxp6 syl6rbbr anbi1d pm5.21nii ) ABCDZEZAFEZAFFDZEZAGHZBEAIHZCEJZJZAUC
    KUGUEUJAUFKLUEUKAUHUIMNZUJJUDUEUGULUJUEULULUHFEZUIFEZJZJUGUEUOULUEUMUNAFOAF
    PRQAFFSTUAABCSTUB $.

  $( 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 cross 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 cross 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 cross 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 $.

  $( An ordered pair theorem for members of cross 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 wb cvv 1stexg 2ndexg
    opthg syl2anc adantr bitr2d ) ACDGZHZBEFGHZIABJAKLZAMLZNZBKLZBMLZNZJZUHUKJU
    IULJIZUFUGAUJBUMACDOBEFOPUFUNUOQZUGUFUHRHUIRHUPAUESAUETUHUIUKULRRUAUBUCUD
    $.

  $( 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 cvv 1stexg 2ndexg opthg
    wb syl2anc bitrd ) ADEFZGZABCHZIAJKZALKZHZUEIZUFBIUGCIMZUDAUHUEADENOUDUFPGU
    GPGUIUJTAUCQAUCRUFUGBCPPSUAUB $.

  ${
    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 wi
      eqopi mpanr2 2ndexg opeq2 eqeq2d spcegv adantr mpd ex eqop syl6bi exlimdv
      simpl impbid ) BDEFZGBHHFZGZBIJCKZBCALZMZKZANZOUQURBDEPQUSUTVDUSUTVDUSUTR
      BCBSJZMZKZVDUSUTVEVEKVGVEUABCVEHHUCUDUSVGVDUBZUTUSVEHGVHBURUEVCVGAVEHVAVE
      KVBVFBVAVECUFUGUHTUIUJUKUSVCUTAUSVCUTVEVAKZRUTBCVAHHULUTVIUOUMUNUPT $.
  $}

  $( 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 c2nd cop 1st2nd2 sneqd cnveqd unieqd wceq
    cvv 1stexg 2ndexg opswapg syl2anc eqtrd ) ABCDZEZAFZGZHAIJZAKJZLZFZGZHZUIUH
    LZUEUGULUEUFUKUEAUJABCMNOPUEUHREUIREUMUNQAUDSAUDTUHUIRRUAUBUC $.

  $( 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 cop crn simpr 1st2nd eqeltrrd cvv 1stexg 2ndexg jca
    c2nd opelrng 3expa sylan syl2anc ) BCZABDZEZUCAFGZAQGZHZBDZUFBIDZUBUCJZUDAU
    GBABKUJLUCUEMDZUFMDZEUHUIUCUKULABNABOPUKULUHUIUEUFBMMRSTUA $.

  $( 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 vex wex wb
      1stexg ax-mp syl6eqelr rexlimivw cop eldm2g adantl cxp wss wi df-rel ssel
      sylbi imp op1steq syl rexbidva adantr rexcom4 risset bitr4i syl6bb bitr4d
      exbii pm5.21nd ) BEZCBFZGZAHZIJZCKZABLZVFCMGZNZVHVMVFCVGOPVLVMVFVKVMABVKC
      VJMVKQVIMGVJMGARVIMUAUBUCUDPVNVHCDHUEZBGZDSZVLVMVHVQTVFDCBMUFUGVNVLVIVOKZ
      DSZABLZVQVFVLVTTVMVFVKVSABVFVIBGZNVIMMUHZGZVKVSTVFWAWCVFBWBUIWAWCUJBUKBWB
      VIULUMUNDVICMMUOUPUQURVTVRABLZDSVQVRADBUSVPWDDAVOBUTVDVAVBVCVE $.
  $}

  ${
    $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 c1st cfv cmpt crn wcel wceq wrex releldm2 cvv vex 1stexg
      cv wb ax-mp wfn eqid fnmpti fvelrnb fveq2 fvmpt rexbiia a1i syl5rbb bitrd
      eqeq1d eqrdv ) BEZCBFZABARZGHZIZJZUMCRZUNKDRZGHZUSLZDBMZUSURKZDBUSNVDUTUQ
      HZUSLZDBMZUMVCUQBUAVDVGSABUPUQUOOKUPOKAPUOOQTUQUBZUCDBUSUQUDTVGVCSUMVFVBD
      BUTBKVEVAUSAUTUPVABUQUOUTGUEVHUTOKVAOKDPUTOQTUFUKUGUHUIUJUL $.
  $}

  $( Equality theorem for substitution of a class for an ordered pair (analog
     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 ` (analog 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 cxp wcel cfv wsbc wa copab ax-mp wceq wb eqcom vex 1stexg
      c2nd c1st dfoprab3s 2ndexg cop anbi12i eqopi sylan2b syl sbc2iedv pm5.32i
      bicomd ex opabbii eqtr2i ) BCDEHFIZJJKLZBDURUCMZNCURUDMZNZOZFEPUSAOZFEPBC
      DEFUEVCVDFEUSVBAUSBACDVAUTURJLZVAJLFUAZURJUBQVEUTJLVFURJUFQUSCIZVARZDIZUT
      RZOZBASUSVKOZABVLURVGVIUGRZABSVKUSVAVGRZUTVIRZOVMVHVNVJVOVGVATVIUTTUHURVG
      VIJJUIUJGUKUNUOULUMUPUQ $.
  $}

  ${
    $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 z u A $.  $d x y z u B $.  $d x y z u C $.
    $( Define the cross 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 cvv eqeltrrd
      id wb 1stexg 2ndexg opelopabg syl2anc mpbid ) FADEIZJZFKLZFMLZNZUIJZCUJFU
      MUIUIOUJFUMPADEQFUIRSUJUBUAUJUKTJULTJUNCUCFUIUDFUIUEABCDEUKULTTGHUFUGUH
      $.
  $}

  ${
    $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 vex opex op1std fveq2d op1st syl6req op2nd op2ndd
      eqcomd 3bitrd biimpa exlimiv ) HAEFGUAZUBZHEMZFMZUGZGMZUGZNZAUCZGOZFOZEOZ
      DVDVNLMZVINZAUCZGOFOEOVNLHVCVCVOHNZVQVKEFGVRVPVJAVOHVIUDUEUFAEFGLUHUIUJVM
      DEVLDFVKDGVJADVJABCDVJVEHPQZPQZNABRVJVTVGPQVEVJVSVGPVGVHHVEVFEUKZFUKZULZG
      UKZUMZUNVEVFWAWBUOUPISVJVFVSTQZNBCRVJWFVGTQVFVJVSVGTWEUNVEVFWAWBUQUPJSVJV
      HHTQZNCDRVJWGVHVGVHHWCWDURUSKSUTVAVBVBVBS $.
  $}

  ${
    $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
      vex fmpt nfralxy cbvral raleqbidv syl5bb nfxp sneq xpeq12d cbviun 3bitr4i
      feq2i ) AILZBJLZEMZMZFNZJAWJDMZOZICOZICWJUAZWOUEZUBZFGUFZEFNZBDOZACOACALZ
      UAZDUEZUBZFGUFWQAKLZUCUGZBXHUDUGZEMZMZFNZKWTOXAXMWNKIJCWOXHWJWKUHPZXLWMFX
      NXLAWJXKMWMXNAXIWJXKWJWKXHIVRZJVRZUIUJXNAWJXKWLXNBXJWKEWJWKXHXOXPUKUJULUM
      ZQUNKWTFXLGABCDEUOZIJCWOWMUOZGKWTXLUQXDCNZBLZDNZRZXHEPZRZABKUPWJCNZWKWONZ
      RZXHWMPZRZIJKUPXRXSYEYJABKIJYEISYEJSYHYIAYFYGAYFASAJWOAWJDTZURUSAXHWMAWJW
      LTZUTUSYHYIBYHBSBXHWMBAWJWLBWJVABWKETZVBUTUSXDWJPZYAWKPZRZYCYHYDYIYPXTYFY
      BYGYNXTYFVCYOXDWJCVDVEYOYBWKDNYNYGYAWKDVDYNDWOWKAWJDVFZVGVHVIYPEWMXHYOYNE
      WLWMBWKEVFZAWJWLVFZVJVKVIVLABKCDEVMIJKCWOWMVMVNHIJKCWOXLWMXQVOVNVSVPXCWPA
      ICXCISWNAJWOYKAWMFYLVQVTXCWLFNZJDOYNWPXBYTBJDXBJSBWLFYMVQYOEWLFYRQWAYNYTW
      NJDWOYQYNWLWMFYSQWBWCWAXGWTFGAICXFWSIXFVAAWRWOAWRVAYKWDYNXEWRDWOXDWJWEYQW
      FWGWIWH $.
  $}

  ${
    $d A x y z $.  $d B x y z $.  $d C z $.  $d D x y z $.
    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 ralimi wf fmpt2 dffn2 bitr4i sylib ) EGIZBDJ
      ZACJEKIZBDJZACJZFCDLZMZUBUDACUAUCBDEGNOOUEUFKFPUGABCDEKFHQUFFRST $.

    $d R z $.  $d S z $.  $d V z $.
    $( Sufficient condition for an operation maps-to notation to be set-like.
       (Contributed by Mario Carneiro, 3-Jul-2019.) $)
    mpt2fvex $p |- ( ( A. x A. y C e. V /\ R e. W /\ S e. X ) ->
      ( R F S ) e. _V ) $=
      ( vz wcel wal cfv cvv cv csb alimi w3a co cop df-ov c1st c2nd elex wi vex
      2ndexg nfcv nfcsb1v nfel1 wceq csbeq1a eleq1d spcgf mp2b alrimiv 3ad2ant1
      syl opexg 3adant1 csn cxp ciun cmpt2 cmpt mpt2mptsx eqtri mptfvex syl2anc
      1stexg syl5eqel ) EINZBOZAOZFJNZGKNZUAZFGHUBFGUCZHPZQFGHUDVTAMRZUEPZBWCUF
      PZESZSZQNZMOZWAQNZWBQNVQVRWIVSVQWHMVQWFQNZAOZWHVPWKAVPEQNZBOZWKVOWMBEIUGT
      WCQNZWEQNWNWKUHMUIZWCQUJWMWKBWEQBWEUKBWFQBWEEULUMBRWEUNEWFQBWEEUOUPUQURVA
      TWOWDQNWLWHUHWPWCQVMWKWHAWDQAWDUKAWGQAWDWFULUMARZWDUNWFWGQAWDWFUOUPUQURVA
      USUTVRVSWJVQFGJKVBVCMACWQVDDVEVFZWGWAHQQHABCDEVGMWRWGVHLABMCDEVIVJVKVLVN
      $.

    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 $.

    mpt2fvexi.3 $e |- R e. _V $.
    mpt2fvexi.4 $e |- S e. _V $.
    $( Sufficient condition for an operation maps-to notation to be set-like.
       (Contributed by Mario Carneiro, 3-Jul-2019.) $)
    mpt2fvexi $p |- ( R F S ) e. _V $=
      ( cvv wcel wal co gen2 mpt2fvex mp3an ) EMNZBOAOFMNGMNFGHPMNTABJQKLABCDEF
      GHMMMIRS $.
  $}

  ${
    $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
      vex snexg ax-mp xpexg mpan ralimi iunexg sylan2 ssexg funex ) CFJZDGJZACK
      ZLZHMHNZOJZHOJABCDEHIPUQURACAQZRZDSZUAZUBVCOJZUSABCDEHIUCUPUNVBOJZACKVDUO
      VEACVAOJZUOVEUTOJVFAUDUTOUEUFVADOGUGUHUIACVBFOUJUKURVCOULTOHUMT $.

    $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 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 wa adantl wceq a1i dffn5im fveq2 syl6reqr
      fmpt2co ) IFNZIGOABCDEIPZQHUHABMCDFEMRZIPUIGIARCSBRDSTEFSUHJUAGABCDEQUBUH
      KUCMFIUDUJEIUEUGLUF $.
  $}

  ${
    $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 wfo wfn fo1st vex
      cmpt fofn dffn5im mp2b mptv eqtri reseq1i resopab op1std dfoprab3 3eqtrri
      cop eqeq2d ) EFFGZHCIZDIZEJZKZDCLZUMHUOUMMUQNDCLUNAIZKZABCOEURUMEDFUPTZUR
      FFEPEFQEVAKRFFEUADFEUBUCDCUPUDUEUFUQDCUMUGUQUTABCDUOUSBIZUKKUPUSUNUSVBUOA
      SBSUHULUIUJ $.

    $( 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 wfo wfn fo2nd vex
      cmpt fofn dffn5im mp2b mptv eqtri reseq1i resopab op2ndd dfoprab3 3eqtrri
      cop eqeq2d ) EFFGZHCIZDIZEJZKZDCLZUMHUOUMMUQNDCLUNBIZKZABCOEURUMEDFUPTZUR
      FFEPEFQEVAKRFFEUADFEUBUCDCUPUDUEUFUQDCUMUGUQUTABCDUOAIZUSUKKUPUSUNVBUSUOA
      SBSUHULUIUJ $.
  $}

  ${
    $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 wex snmg fo1stresm syl wal cop moeq moani brres fo1st
      wfn wb fofn ax-mp fnbrfvb mp2an anbi1i elxp7 eleq1 biimpa adantrr adantrl
      c2nd elsni eqopi an12s sylanr2 adantrrl adantl simprr fveq2d simprl simpl
      sylan2b op1stg eqtrd adantr opelxpi eqeltrd impbida syl5bbr syl5bb mobidv
      snidg mpbiri alrimiv funcnv2 sylibr dff1o3 sylanbrc ) BCFZABGZHZAIWQUAZJZ
      WRUBUCZWQAWRUDWODKZWPFDUEWSDBCUFDAWPUGUHWOXAEKZWRLZDMZEUIWTWOXDEWOXDXBAFZ
      XAXBBUJZNZOZDMXGXEDDXFUKULWOXCXHDXCXAXBILZXAWQFZOZWOXHXAXBIWQEPUMXKXAIQZX
      BNZXJOZWOXHXMXIXJIRUOZXARFXMXIUPRRIJXOUNRRIUQURDPRXAXBIUSUTVAWOXNXHXNXHWO
      XJXMXARRHFZXLAFZXAVGQZWPFZOZOZXHXAAWPVBXMYAOXEXGXMXTXEXPXMXQXEXSXMXQXEXLX
      BAVCVDVEVFXMXPXSXGXQXSXMXPXRBNZXGXRBVHXPXMYBXGXAXBBRRVIVJVKVLSVRVMWOXHOZX
      MXJYCXLXFIQZXBYCXAXFIWOXEXGVNZVOYCXEWOYDXBNWOXEXGVPZWOXHVQXBBACVSTVTYCXAX
      FWQYEYCXEBWPFZXFWQFYFWOYGXHBCWHWAXBBAWPWBTWCSWDWEWFWGWIWJDEWRWKWLWQAWRWMW
      N $.

    $( 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 wex snmg fo2ndresm syl wal cop moeq moani brres fo2nd
      wfn fofn ax-mp fnbrfvb mp2an anbi1i c1st elxp7 eleq1 biimpa elsni ancom2s
      eqopi an12s sylanr2 adantrrr sylan2b adantl fveq2 op2ndg sylan9eqr simprr
      mpan2 adantr simprl opelxpi syl2anc eqeltrd impbida syl5bbr syl5bb mobidv
      wb snidg mpbiri alrimiv funcnv2 sylibr dff1o3 sylanbrc ) ACFZAGZBHZBIWQUA
      ZJZWRUBUCZWQBWRUDWODKZWPFDUEWSDACUFDWPBUGUHWOXAEKZWRLZDMZEUIWTWOXDEWOXDXB
      BFZXAAXBUJZNZOZDMXGXEDDXFUKULWOXCXHDXCXAXBILZXAWQFZOZWOXHXAXBIWQEPZUMXKXA
      IQZXBNZXJOZWOXHXNXIXJIRUOZXARFXNXIWGRRIJXPUNRRIUPUQDPRXAXBIURUSUTWOXOXHXO
      XHWOXJXNXARRHFZXAVAQZWPFZXMBFZOZOZXHXAWPBVBXNYBOXEXGXNYAXEXQXNXTXEXSXNXTX
      EXMXBBVCVDSSXNXQXSXGXTXSXNXQXRANZXGXRAVEXQXNYCXGXQYCXNXGXAAXBRRVGVFVHVIVJ
      TVKVLWOXHOZXNXJWOXGXNXEXGWOXMXFIQZXBXAXFIVMWOXBRFYEXBNXLAXBCRVNVQVOSYDXAX
      FWQWOXEXGVPYDAWPFZXEXFWQFWOYFXHACWHVRWOXEXGVSAXBWPBVTWAWBTWCWDWEWFWIWJDEW
      RWKWLWQBWRWMWN $.
  $}

  ${
    $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 cv cfv csb cop csn ciun cvv wcel ax-mp csbexa nfcv nfcsb1v nfop c1st
      cmpt2 cxp c2nd cmpt mpt2mpts vex 1stexg 2ndexg dfmpt nfsn nfcsb csbopeq1a
      wceq id opeq12d sneqd iunxpf 3eqtri ) ABCDEUBGCDUCZAGHZUAIZBVAUDIZEJZJZUE
      GUTVAVEKZLZMACBDAHBHKZEKZLZMMABGCDEUFGUTVEAVBVDVANOZVBNOGUGZVANUHPBVCEVKV
      CNOVLVANUIPFQQUJGABCDVGVJAVFAVAVEAVARAVBVDSTUKBVFBVAVEBVARBAVBVDBVBRBVCES
      ULTUKGVJRVAVHUNZVFVIVMVAVHVEEVMUOABVAEUMUPUQURUS $.
  $}

  $( 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 cop sneqd cnveqd unieqd cvv opswapg
    wa syl2anc ad2antrl c1st simprr 1st2nd 1stexg 2ndexg 3eqtrd simprl eqeltrrd
    adantrr wb opelcnvg mpbird eqeltrd eqcomd 3eqtr4d jca ) ADZBAEZCBFZGZHZIZRR
    ZCAGZEBCFZGZHZIVCCBJKZBUAKZLZVDVCCVAVIVHLZFZGZHZVJUQURVBUBVCUTVMVCUSVLVCBVK
    UQURBVKIVBBAUCUIZMNOURVNVJIZUQVBURVIPEZVHPEZVPBAUDZBAUEZVIVHPPQSTUFZVCVJVDE
    ZVKAEZVCBVKAVOUQURVBUGUHURWBWCUJZUQVBURVRVQWDVTVSVHVIPPAUKSTULUMVCVKVJFZGZH
    ZBVGURVKWGIUQVBURWGVKURVRVQWGVKIVTVSVHVIPPQSUNTVOVCVFWFVCVEWEVCCVJWAMNOUOUP
    $.

  ${
    $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 wcel snexg cnvexg uniexg 3syl adantl wceq
      cvv wa cnvf1olem wb relcnv simpr sylancr dfrel2 eleq2 sylbi anbi1d adantr
      eqid mpbid impbida f1od ) BDZACBBEZAFZGZEZHZCFZGZEZHZABURIZQQVCUIUOBJZURQ
      JZUMVDUPQJUQQJVEUOBKUPQLUQQMNOUSUNJZVBQJZUMVFUTQJVAQJVGUSUNKUTQLVAQMNOUMV
      DUSURPZRZVFUOVBPRZBUOUSSUMVJRZUOUNEZJZVHRZVIVKUNDVJVNBUAUMVJUBUNUSUOSUCUM
      VNVITVJUMVMVDVHUMVLBPVMVDTBUDVLBUOUEUFUGUHUJUKUL $.
  $}

  $( 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 cres cxp wss f2ndres fssxp fssres sylancr wceq resabs1 syl eqcomd
    feq1d mpbird ) ABCDZCBECFZDCBEABGZFZCFZDZSUABUBDCUAHZUDABIABCJZUABCUBKLSCBT
    UCSUCTSUEUCTMUFECUANOPQR $.

  ${
    $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 mp2an
      opexg fvco3 op1st fveq2i 3eqtri ) ABCFGZHABIZUFJZUGFJZCJZACJABUFKLLFMZUGL
      NZUHUJOLLFPUKQLLFRSALNBLNULDEABLLUATLLUGCFUBTUIACABDEUCUDUE $.
  $}

  $( Lemma for algrf and related theorems.  (Contributed by Jim Kingdon,
     22-Jul-2021.) $)
  algrflemg $p |- ( ( B e. V /\ C e. W ) ->
      ( B ( F o. 1st ) C ) = ( F ` B ) ) $=
    ( wcel wa c1st ccom co cop cfv df-ov cvv wf wceq wfo fo1st fof ax-mp op1stg
    opexg fvco3 sylancr fveq2d eqtrd syl5eq ) ADFBEFGZABCHIZJABKZUILZACLZABUIMU
    HUKUJHLZCLZULUHNNHOZUJNFUKUNPNNHQUORNNHSTABDEUBNNUJCHUCUDUHUMACABDEUAUEUFUG
    $.

  ${
    $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
      VMVNGOWLVIVLGUFGWKVNLUGUHWJWOVSPZVGWBENZVGWBRZVHWFFNZPZUDZPXEABVIVLVGVHHS
      ZISZUIVJVKJSZKSZUIVOVIRZVTXGWIXLXQVQWOVSXQVQVIVPOWOVOVIVPUJVGVHCDUKULUMXQ
      WCXHWHXKXQWAVGWBEVGVHVOXMXNUNZUOXQWDXIWGXJXQWAVGWBXRUPXQWEVHWFFVGVHVOXMXN
      UQUOTURTVRVLRZXGWSXLXDXSVSWRWOXSVSVLVPOWRVRVLVPUJVJVKCDUKULUTXSXHWTXKXCXS
      WBVJVGEVJVKVRXOXPUNZVAXSXIXAXJXBXSWBVJVGXTVBXSWFVKVHFVJVKVRXOXPUQVATURTVC
      WSXFXDWMWNWPWQVDVEVF $.
  $}

  ${
    $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 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 $.
  $}

  ${
    $d a w x y z $.  $d a w ph $.  $d w ps $.
    cnvoprab.x $e |- F/ x ps $.
    cnvoprab.y $e |- F/ y ps $.
    cnvoprab.1 $e |- ( a = <. x , y >. -> ( ps <-> ph ) ) $.
    cnvoprab.2 $e |- ( ps -> a e. ( _V X. _V ) ) $.
    $( TODO - simplify with ~ dfoprab3 $)
    $( The converse of a class abstraction of nested ordered pairs.
       (Contributed by Thierry Arnoux, 17-Aug-2017.) $)
    cnvoprab $p |- `' { <. <. x , y >. , z >. | ph } = { <. z , a >. | ps } $=
      ( vw copab cv cop wceq wa wex vex cvv wcel ccnv coprab cab excom nfv nfan
      nfex opex opeq1 eqeq2d anbi12d spcev exlimi cxp adantl c1st cfv wi 1stexg
      c2nd ax-mp 2ndexg wb eqcom anbi12i eqopi sylan2br bicomd syl spc2ed mpcom
      mpanr12 exlimiv impbii exbii exrot3 3bitr2ri abbii df-opab cnveqi cnvopab
      df-oprab 3eqtr4ri eqtr3i ) BFELZUAACDEUBZUABEFLWEWFKMZCMZDMZNZEMZNZOZAPZE
      QDQCQZKUCWGFMZWKNZOZBPZEQFQZKUCWFWEWOWTKWTWSFQZEQWNDQZCQZEQWOWSFEUDXCXAEX
      CXAXBXACWSCFWRBCWRCUEGUFZUGWNXADWSDFWRBDWRDUEHUFZUGWSWNFWJWHWICRDRUHWPWJO
      ZWRWMBAXFWQWLWGWPWJWKUIUJIUKZULUMUMWSXCFWPSSUNTZWSXCBXHWRJUOXHWPUPUQZSTZW
      PUTUQZSTZWSXCURWPSTZXJFRZWPSUSVAXMXLXNWPSVBVAXHWNWSCDXIXKSSXDXEXHWHXIOZWI
      XKOZPZPXFWNWSVCXQXHXIWHOZXKWIOZPXFXRXOXSXPXIWHVDXKWIVDVEWPWHWISSVFVGXFWSW
      NXGVHVIVJVLVKVMVNVOWNECDVPVQVRACDEKWBBFEKVSWCVTBFEWAWD $.
  $}

  ${
    $d a x y z A $.  $d a x y z B $.  $d a 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 ) ) ) ) $.
    $( Describe an implicit one-to-one onto function of two variables.
       (Contributed by Thierry Arnoux, 17-Aug-2017.) $)
    f1od2 $p |- ( ph -> F : ( A X. B ) -1-1-onto-> D ) $=
      ( wa wsbc va cxp wfn ccnv wf1o wcel wral ralrimivva fnmpt2 syl cv opelxpi
      cop cmpt ralrimiva eqid fnmpt c1st cfv c2nd wceq copab elxp7 anbi1i anass
      csb cvv sbcbidv sbcan vex 2ndexg ax-mp sbcg sbcel1v anbi12i bitri sbceq2g
      wb sbcbii 1stexg 3bitri sbceq1g csbvarg eqeq1i 3bitr3g anbi2d syl5bb xpss
      simprr adantrr eqeltrd sseldi ex pm4.71rd pm5.32i syl6rbb opabbidv coprab
      eqop bitrd cmpt2 df-mpt2 eqtri cnveqi nfcsb1v nfeq2 nfan nfcv nfcsb eleq1
      nfv opelxp syl6bb csbopeq1a eqeq2d anbi12d adantr cnvoprab df-mpt 3eqtr4g
      sseli fneq1d mpbird dff1o4 sylanbrc ) AIEFUBZUCZIUDZHUCZYFHIUEAGLUFZCFUGB
      EUGYGAYJBCEFPUHBCEFGILOUIUJAYIDHJKUMZUNZHUCZAYKMNUBZUFZDHUGYMAYODHADUKZHU
      FZSJMUFKNUFSYOQJKMNULUJZUODHYKYLYNYLUPUQUJAHYHYLAUAUKZYFUFZYPBYSURUSZCYSU
      TUSZGVFZVFZVAZSZDUAVBZYQYSYKVAZSZDUAVBYHYLAUUFUUIDUAUUFYSVGVGUBZUFZUUAEUF
      ZUUBFUFZSZSZUUESZAUUIYTUUOUUEYSEFVCVDAUUPUUKYQUUAJVAZUUBKVAZSZSZSZUUIUUPU
      UKUUNUUESZSAUVAUUKUUNUUEVEAUVBUUTUUKABUKZEUFZCUKZFUFZSZYPGVAZSZCUUBTZBUUA
      TZYQUVCJVAZUVEKVAZSZSZCUUBTZBUUATZUVBUUTAUVJUVPBUUAAUVIUVOCUUBRVHVHUVKUVD
      UUMSZYPUUCVAZSZBUUATUVRBUUATZUVSBUUATZSUVBUVJUVTBUUAUVJUVGCUUBTZUVHCUUBTZ
      SUVTUVGUVHCUUBVIUWCUVRUWDUVSUWCUVDCUUBTZUVFCUUBTZSUVRUVDUVFCUUBVIUWEUVDUW
      FUUMUUBVGUFZUWEUVDVRYSVGUFZUWGUAVJZYSVGVKVLZUVDCUUBVGVMVLCUUBFVNVOVPUWGUW
      DUVSVRUWJCUUBYPGVGVQVLVOVPVSUVRUVSBUUAVIUWAUUNUWBUUEUWAUVDBUUATZUUMBUUATZ
      SUUNUVDUUMBUUAVIUWKUULUWLUUMBUUAEVNUUAVGUFZUWLUUMVRUWHUWMUWIYSVGVTVLZUUMB
      UUAVGVMVLVOVPUWMUWBUUEVRUWNBUUAYPUUCVGVQVLVOWAUVQYQUVLUURSZSZBUUATYQBUUAT
      ZUWOBUUATZSUUTUVPUWPBUUAUVPYQCUUBTZUVNCUUBTZSUWPYQUVNCUUBVIUWSYQUWTUWOUWG
      UWSYQVRUWJYQCUUBVGVMVLUWTUVLCUUBTZUVMCUUBTZSUWOUVLUVMCUUBVIUXAUVLUXBUURUW
      GUXAUVLVRUWJUVLCUUBVGVMVLUXBCUUBUVEVFZKVAZUURUWGUXBUXDVRUWJCUUBUVEKVGWBVL
      UXCUUBKUWGUXCUUBVAUWJCUUBVGWCVLWDVPVOVPVOVPVSYQUWOBUUAVIUWQYQUWRUUSUWMUWQ
      YQVRUWNYQBUUAVGVMVLUWRUVLBUUATZUURBUUATZSUUSUVLUURBUUAVIUXEUUQUXFUURUXEBU
      UAUVCVFZJVAZUUQUWMUXEUXHVRUWNBUUAUVCJVGWBVLUXGUUAJUWMUXGUUAVAUWNBUUAVGWCV
      LWDVPUWMUXFUURVRUWNUURBUUAVGVMVLVOVPVOWAWEWFWGAUUIUUKUUISUVAAUUIUUKAUUIUU
      KAUUISZYNUUJYSMNWHUXIYSYKYNAYQUUHWIAYQYOUUHYRWJWKWLWMWNUUKUUIUUTUUKUUHUUS
      YQYSJKVGVGWSWFWOWPWTWGWQYHUVIBCDWRZUDUUGIUXJIBCEFGXAUXJOBCDEFGXBXCXDUVIUU
      FBCDUAYTUUEBYTBXKBYPUUDBUUAUUCXEXFXGYTUUECYTCXKCYPUUDCBUUAUUCCUUAXHCUUBGX
      EXIXFXGYSUVCUVEUMZVAZYTUVGUUEUVHUXLYTUXKYFUFUVGYSUXKYFXJUVCUVEEFXLXMUXLUU
      DGYPBCYSGXNXOXPYTUUKUUEYFUUJYSEFWHYAXQXRXCDUAHYKXSXTYBYCYFHIYDYE $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Special "Maps to" operations
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
The following theorems are about maps-to operations (see ~ df-mpt2 ) where 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 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 dmmpt2ssx wrel wfun mpt2fun
      cdm funrel ax-mp relelfvdm mpan df-ov eleq2s fveq2 opeliunxp2 simprbi syl
      sseldi op1stg eleq2d syl5ib ) FGHLZEDMZNZEVBOPZNZGINHJNQZEGNVDVBELZARASZT
      VIOPZUAUBZNZVFVDDUGZVKVHABRVJCDKUCVHVMNZFVHDPZVCDUDZFVONVNDUEVPABRVJCDKUF
      DUHUIFVHDUJUKVBEDULUMURVLVBRNVFARVJVBEVEVIVBOUNUOUPUQVGVEGEGHIJUSUTVA $.
  $}

  ${
    $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 } ) $=
      ( wcel wa cvv cv c1st wceq adantr adantl nfcv cop cfv crab wsbc cmpt2 a1i
      vz fveq2 op1stg sylan9eqr adantrr wb sbceq1a bitrd rabeqbidv opexg rabexg
      simpr ad2antrr wnf equid nfvd ax-mp nfsbc1v nfrabxy nfsbc ovmpt2dxf ) GIL
      ZHJLZMZFGLZMZBCGHUAZFNBOZPUBZADVOUCZACFUDZBVMUDZDGUCZEGNEBCNVOVPUEQVLKUFV
      LVNVMQZCOFQZMZMZAVRDVOGVLVTVOGQWAVTVLVOVMPUBZGVNVMPUHVJWDGQVKGHIJUIRUJZUK
      WCAVQVRWBAVQULZVLWAWFVTACFUMSSWBVQVRULZVLVTWGWAVQBVMUMRSUNUOWEVJVMNLVKGHI
      JUPRVJVKURVHVSNLVIVKVRDGIUQUSUGOZWHQZVLBUTUGVAZWIVLBVBVCWIVLCUTWJWIVLCVBV
      CCVMTZBFTVRBDGVQBVMVDBGTVEVRCDGVQCBVMWKACFVDVFCGTVEVG $.

    $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 E e f p v $.  $d V e f p v $.  $d W e v $.  $d ps e v $.
    sprmpt2.1 $e |- M = ( v e. _V , e e. _V
                          |-> { <. f , p >. | ( f ( v W e ) p /\ ch ) } ) $.
    sprmpt2.2 $e |- ( ( v = V /\ e = E ) -> ( ch <-> ps ) ) $.
    sprmpt2.3 $e |- ( ( V e. _V /\ E e. _V ) -> ( f ( V W E ) p -> th ) ) $.
    sprmpt2.4 $e |- ( ( V e. _V /\ E e. _V ) -> { <. f , p >. | 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.) $)
    sprmpt2 $p |- ( ( V e. _V /\ E e. _V ) -> ( V M E )
                    = { <. f , p >. | ( f ( V W E ) p /\ ps ) } ) $=
      ( cvv wcel wa cv wceq co wbr copab cmpt2 a1i oveq12 adantl breqd opabbidv
      wb anbi12d simpl simpr opabbrex ovmpt2d ) IPQZGPQZRZDEIGPPFSZKSZDSZESZJUA
      ZUBZBRZFKUCZUSUTIGJUAZUBZARZFKUCHPHDEPPVFUDTURLUEURVAITVBGTRZRZVEVIFKVKVD
      VHBAVKVCVGUSUTVJVCVGTURVAIVBGJUFUGUHVJBAUJURMUGUKUIUPUQULUPUQUMACFGIJKNOU
      NUO $.
  $}

  ${
    $d F f p $.  $d P f p $.  $d W f p $.  $d ch f p $.
    isprmpt2.1 $e |- ( ph -> M = { <. f , p >. | ( f W p /\ ps ) } ) $.
    isprmpt2.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.) $)
    isprmpt2 $p |- ( ph -> ( ( F e. X /\ P e. Y )
                     -> ( F M P <-> ( F W P /\ ch ) ) ) ) $=
      ( wcel wa wbr wb cop cv wceq copab adantr eleq2d syl5bb breq12 opelopabga
      df-br anbi12d adantl bitrd ex ) AFINDJNOZFDGPZFDHPZCOZQAULOZUMFDRZESZKSZH
      PZBOZEKUAZNZUOUMUQGNUPVCFDGUGUPGVBUQAGVBTULLUBUCUDULVCUOQAVAUOEKFDIJURFTU
      SDTOUTUNBCURFUSDHUEMUHUFUIUJUK $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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 cross 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 wb wex wceq syl bitri c0 cun
      ctpos reltpos brrelexi a1i elex adantr cv cmpt df-tpos breqi brcog syl5bb
      ccom cfv wfun funmpt funbrfv2b ax-mp snexg cnvex uniex eqid dmmpti eleq2i
      vex eqcom anbi12i cnvexg uniexg cnveqd unieqd fvmptg mpdan eqeq2d pm5.32i
      ancom anbi1i anass exbii exsimpr exsimpl 19.9v sylib simpl breq1 ceqsexgv
      sneq anbi2d pm5.21nii syl6bb expcom pm5.21ndd ) BDGZAHGZABCUCZIZACJKUALUB
      ZGZALZKZMZBCIZNZWRWPOWOABWQCUDUEUFXEWPOWOWTWPXDAWSUGUHUFWPWOWRXEPWPWONZWR
      AEUIZFWSFUIZLZKZMZUJZIZXGBCIZNZEQZXEWRABCXLUOZIXFXPABWQXQFCUKULEABCXLHDUM
      UNXPXGXCRZWTXNNZNZEQZXEXOXTEXOXRWTNZXNNXTXMYBXNXMWTXRNZYBXMAXLJZGZAXLUPZX
      GRZNZYCXLUQXMYHPFWSXKURAXGXLUSUTYHWTXGYFRZNYCYEWTYGYIYDWSAFWSXKXLXJXIXHHG
      XIHGFVGXHHVAUTVBVCXLVDZVEVFYFXGVHVIWTYIXRWTYFXCXGWTXCHGZYFXCRWTXBHGZYKWTX
      AHGYLAWSVAXAHVJSXBHVKSZFAXKXCWSHXLXHARZXJXBYNXIXAXHAWIVLVMYJVNVOVPVQTTWTX
      RVRTVSXRWTXNVTTWAYAWTXEYAXSEQZWTXRXSEWBYOWTEQWTWTXNEWCWTEWDWESWTXDWFWTYKY
      AXEPYMXSXEEXCHXRXNXDWTXGXCBCWGWJWHSWKTWLWMWN $.

    $( 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).  (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 Jim Kingdon, 31-Jan-2019.) $)
    brtposg $p |- ( ( A e. V /\ B e. W /\ C e. X ) ->
        ( <. A , B >. tpos F C <-> <. B , A >. F C ) ) $=
      ( wcel w3a cop cdm ccnv c0 csn cun wbr wa wb 3adant3 cvv opswapg 3ad2ant3
      cuni ctpos breq1d anbi2d brtpos2 opexg ancoms anim1i 3impa breldmg 3expia
      wi syl opelcnvg sylibrd elun1 syl6 pm4.71rd 3bitr4d ) AEHZBFHZCGHZIZABJZD
      KZLZMNZOHZVFNLUCZCDPZQZVJBAJZCDPZQVFCDUDPZVOVEVLVOVJVBVCVLVORVDVBVCQZVKVN
      CDABEFUAUESUFVDVBVPVMRVCVFCDGUGUBVEVOVJVEVOVFVHHZVJVEVOVNVGHZVRVEVNTHZVDQ
      ZVOVSUNVBVCVDWAVQVTVDVCVBVTBAFEUHUIUJUKVTVDVOVSVNCTGDULUMUOVBVCVRVSRVDABE
      FVGUPSUQVFVHVIURUSUTVA $.

    $( The transposition swaps the first two elements in a collection of
       ordered triples.  (Contributed by Mario Carneiro, 1-Dec-2014.) $)
    ottposg $p |- ( ( A e. V /\ B e. W /\ C e. X ) ->
        ( <. A , B , C >. e. tpos F <-> <. B , A , C >. e. F ) ) $=
      ( wcel w3a cop ctpos cotp wbr brtposg df-br 3bitr3g df-ot eleq1i 3bitr4g
      ) AEHBFHCGHIZABJZCJZDKZHZBAJZCJZDHZABCLZUCHBACLZDHTUACUCMUECDMUDUGABCDEFG
      NUACUCOUECDOPUHUBUCABCQRUIUFDBACQRS $.

    $( 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 mtoi df-rel reldmtpos 3imtr4i relcnv brtposg
      jctir wb mp3an a1i exbidv opelcnv bitri 3bitr4g eqrelrdv2 mpancom ) AEZFZ
      GZAFZHZGZIVEGZVCVFJVHVDVGVEKKUAZUBZSVELZUCVHVDVJVKSVILKKUDVEVISUEUFVEUGAU
      HUIVEUJULVHBCVCVFVHBTZCTZMZDTZVBNZDOVMVLMZVOANZDOZVNVCLVNVFLZVHVPVRDVPVRU
      MZVHVLKLVMKLVOKLWABPZCPZDPVLVMVOAKKKUKUNUOUPDVNVBVLVMWBWCQRVTVQVELVSVLVMV
      EWBWCUQDVQAVMVLWCWBQRURUSUTVA $.

    $( 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 ) $=
      ( vx vy vw vz cdm wrel crn cv wcel wbr wex vex elrn cop wceq breldm elrel
      wi cvv ctpos ccnv dmtpos eleq2d syl5ib relcnv mpan breq1 wb brtposg mp3an
      syl6 syl6bb opex brelrn syl6bi syli exlimdv syl5bi ex syl5 syl6bbr impbid
      exlimivv eqrdv ) AFZGZBAUAZHZAHZVGBIZVIJZVKVJJZVLCIZVKVHKZCLVGVMCVKVHBMZN
      VGVOVMCVOVGVNDIZEIZOZPZELDLZVMVGVOVNVFUBZJZWAVOVNVHFZJVGWCVNVKVHCMZVPQVGW
      DWBVNAUCUDUEWBGWCWAVFUFDEVNWBRUGULVTVOVMSDEVTVOVRVQOZVKAKZVMVTVOVSVKVHKZW
      GVNVSVKVHUHVQTJVRTJVKTJWHWGUIDMZEMZVPVQVRVKATTTUJUKZUMWFVKAVRVQWJWIUNVPUO
      UPVDUQURUSVMVNVKAKZCLVGVLCVKAVPNVGWLVLCWLVGVNWFPZDLELZVLWLVNVFJZVGWNVNVKA
      WEVPQVGWOWNEDVNVFRUTVAWMWLVLSEDWMWLWHVLWMWLWGWHVNWFVKAUHWKVBVSVKVHVQVRWIW
      JUNVPUOUPVDUQURUSVCVE $.

    $( 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 $.
  $}

  ${
    $d y A $.  $d y B $.  $d y F $.  $d y V $.  $d y W $.
    $( 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 the reals or some ring, ` tpos F ` is the transposition
       of ` F ` , which is where the name comes from.  (Contributed by Mario
       Carneiro, 10-Sep-2015.) $)
    ovtposg $p |- ( ( A e. V /\ B e. W ) -> ( A tpos F B ) = ( B F A ) ) $=
      ( vy wcel wa cop ctpos cfv co cv wbr cio cvv wb df-fv 3eqtr4g df-ov vex
      brtposg mp3an3 iotabidv ) ADGZBEGZHZABIZCJZKZBAIZCKZABUILBACLUGUHFMZUINZF
      OUKUMCNZFOUJULUGUNUOFUEUFUMPGUNUOQFUAABUMCDEPUBUCUDFUHUIRFUKCRSABUITBACTS
      $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d w x y z F $.  $d x G $.
    $( 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 wcel cvv cxp vex bitr3i syl6bb
      cab coprab wss ccnv relcnv dmtpos releqd mpbiri reltpos jctil sylib sseld
      relrelss elvvv syl6ib pm4.71rd 19.41vvv eleq1 df-br brtposg mp3an pm5.32i
      wb 3exbii abbi2dv df-oprab syl6eqr ) DFZGZDHZEIZAIZBIZJZCIZJZKZVMVLJVODLZ
      MZCNBNANZEUAVRABCUBVIVTEVJVIVKVJOZVQCNBNANZWAMZVTVIWAWBVIWAVKPPQPQZOWBVIV
      JWDVKVIVJGZVJFZGZMVJWDUCVIWGWEVIWGVHUDZGVHUEVIWFWHDUFUGUHDUIUJVJUMUKULABC
      VKUNUOUPWCVQWAMZCNBNANVTVQWAABCUQWIVSABCVQWAVRVQWAVPVJOZVRVKVPVJURWJVNVOV
      JLZVRVNVOVJUSVLPOVMPOVOPOWKVRVCARBRCRVLVMVODPPPUTVASTVBVDSTVEVRABCEVFVG
      $.

    $( 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 opswapg mp2an eleq1i opelcnv bitr4i eleq1d bibi12d exlimivv biimpcd
      elvv mpbiri sylbi elun1 syl6 syl elun2 a1i simpll elun sylib mpjaod simpr
      wo eqbrtrrd jca sylanb brtpos2 sylibr df-br exlimiv relssi eqssi ) BUAZBA
      FFUBZUNGZHZAIZGZJZKZUCZUDZXJBABUEZJZXLHZXQUCZUDZXSABUFYCXRLYDXSLYCXRYBUGZ
      XRYAXKLZYBXMLYEYCMYAUHYFXTUIYAUJUKYAXKXLULAXMYBXQUMUOXRYBUPUQYCXRBURUSUTC
      DXSXJBXRVACIZDIZNZXSOYGEIZXRPZYJYHBPZQZERYIXJOZEYGYHBXRCSZDSZVBYMYNEYMYGY
      HXJPZYNYMYGYBOZYGGZJZKZYHBPZQZYQYKYGXMOZYJUUAMZQZYLUUCXNXMOZYHXQMZQUUDYHU
      UAMZQUUFADYGYJXRYOESZXNYGMZUUGUUDUUHUUIXNYGXMVCUUKXQUUAYHUUKXPYTUUKXOYSXN
      YGVDVEVFVGVHYHYJMUUIUUEUUDYHYJUUAVQVIADXMXQVJVKUUFYLQZYRUUBUULYGXKOZYRYGX
      LOZUULUUAXTOZUUMYRVLUULYJUUAXTUUDUUEYLVMZYLYJXTOUUFYJYHBUUJYPVNVOVPUUOUUM
      YGYAOZYRUUMUUOUUQUUMYGYHYJNZMZERDRUUOUUQTZDEYGWGUUSUUTDEUUSUUTUURGZJZKZXT
      OZUURYAOZTUVDYJYHNZXTOUVEUVCUVFXTYHFOZYJFOUVCUVFMYPUUJYHYJFFVRVSVTYHYJXTY
      PUUJWAWBUUSUUOUVDUUQUVEUUSUUAUVCXTUUSYTUVBUUSYSUVAYGUURVDVEVFWCYGUURYAVCW
      DWHWEWIWFYGYAXLWJWKWLUUNYRVLUULYGXLYAWMWNUULUUDUUMUUNWTUUDUUEYLWOYGXKXLWP
      WQWRUULYJUUAYHBUUPUUFYLWSXAXBXCUVGYQUUCTYPYGYHBFXDUSXEYGYHXJXFWQXGWIXHXI
      $.

    $( 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
      wex sneq opswapg mp2an anbi12d breldm pm4.71ri brtposg mp3an bitr3i breq1
      opex bitr4d exlimivv sylbi iba bitrd pm5.21nii elsni sneqd cnvsn0 brtpos0
      uni0 ax-mp pm5.32i ancom bitri orbi12i andir andi 3bitr4i anbi1i mpbiran2
      elun brxp anbi2i brtpos2 brin eqbrriv ) UABAUBZUBZAEEUCZFGZUDZEUCZUEZXEUF
      XKXJUGXJHXKHAXJUHXIEUIXKXJUJUMUAIZXEUNZJZXHUDKZXLGZJZSZBIZXELZMZXLXSALZXL
      XSXJLZMZXLXSXFLZXLXSXKLXLXNKZXLXHKZNZXTMZYBXLXGKZYGNZMZYAYDYFXTMZYGXTMZNY
      BYJMZYBYGMZNYIYLYMYOYNYPYMYJYOYMXNXGXLXNHXNXGUGXMUKXNULUOYFXTUPUQYBYJURYJ
      YMYBYOYJXLCIZDIZUSZUTZDVFCVFYMYBOZCDXLVAYTUUACDYTYMYSXSALZYBYTYMYRYQUSZXM
      KZUUCXSXELZMZUUBYTYFUUDXTUUEYTYFYSXNKUUDXLYSXNVBYQYRXMCTZDTZVCPYTXRUUCXSX
      EYTXRYSGZJZSZUUCYTXQUUJYTXPUUIXLYSVGVDVEYQEKZYREKZUUKUUCUTUUGUUHYQYREEVHV
      IQRVJUUFUUEUUBUUEUUDUUCXSXEYRYQUUHUUGVQBTZVKVLUUMUULXSEKZUUEUUBOUUHUUGUUN
      YRYQXSAEEEVMVNVOPXLYSXSAVPVRVSVTYJYBWAWBWCYNYGYBMYPYGXTYBYGXTFXSALZYBYGXT
      FXSXELZUUPYGXRFXSXEYGXRFSFYGXQFYGXQXHJFYGXPXHYGXLFXLFWDZWEVDWFQVEWHQRUUOU
      UQUUPOUUNXSAEWGWIPYGXLFXSAUURRVRWJYGYBWKWLWMYFYGXTWNYBYJYGWOWPXOYHXTXLXNX
      HWSWQYCYKYBYCXLXIKZYKYCUUSUUOUUNXLXSXIEWTWRXLXGXHWSWLXAWPUUOYEYAOUUNXLXSX
      EEXBWIXLXSAXJXCWPXD $.

    $( 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 wss wfo wfn ffn dffn4 sylib tposfo2 syl5 imp fof
      wa syl frn adantl fss syl2anc ex ) ADZABCEZAFZBCGZEZUFUGSZUHCHZUIEZULBIZU
      JUKUHULUIJZUMUFUGUOUGAULCJZUFUOUGCAKUPABCLACMNAULCOPQUHULUIRTUGUNUFABCUAU
      BUHULBUIUCUDUE $.

    $( 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 wfn ctpos wceq cv co wral tposfn eqfnov2 mpancom eqcom cvv wcel vex
      wb ovtposg mp2an eqeq2i bitri 2ralbii syl6bb ) DCCEZFZDGZDHZAIZBIZUHJZUJU
      KDJZHZBCKACKZUMUKUJDJZHZBCKACKUHUFFUGUIUOSCCDLABCCUHDMNUNUQABCCUNUMULHUQU
      LUMOULUPUMUJPQUKPQULUPHARBRUJUKDPPTUAUBUCUDUE $.

  $}

  ${
    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 $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Undefined values
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( 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 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 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 Jim Kingdon,
     14-Jan-2020.) $)
  2pwuninelg $p |- ( A e. V -> -. ~P ~P U. A e. A ) $=
    ( wcel cuni cpw wa en2lp wi wss pwuni elpwg mpbiri ax-ia3 syl mtoi ) ABCZAD
    EZEZACZARCZSFZARGPTSUAHPTAQIAJAQBKLTSMNO $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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 wf eqid fmpt frn sylbi ssonuni imp syl2an eqeltrd ) BDEZCFEABGZ
      HABCIZABCJZKZLZFUKULUOMUJABCFNOUJUNPEZUNFQZUOFEZUKUJUMPEUPABCDRUMPSTUKBFU
      MUAUQABFCUMUMUBUCBFUMUDUEUPUQURUNPUFUGUHUI $.
  $}

  $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.) $)
    smofvon2dm $p |- ( ( Smo F /\ B e. dom F ) -> ( F ` B ) e. On ) $=
      ( vy vx wsmo cdm con0 wf word cv cfv wcel wral dfsmo2 simp1bi ffvelrnda )
      BEZBFZGABQRGBHRICJBKDJZBKLCSMDRMDCBNOP $.
  $}

  ${
    $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 word con0 wss wf cv wcel cfv wral syl wb wa eleq2d wbr cvv wi
      wiso w3a cdm wsmo wf1o isof1o f1of ffdm simpld sylan 3adant2 syl3an1 wceq
      fss fdm eqcomd ordeq 4syl biimpa 3adant3 anbi12d 3syl epel isorel syl5bbr
      wfn ffn adantr simprr funfvex funfni epelg syl2anc bitrd biimpd ex sylbid
      ralrimivv 3ad2ant1 df-smo syl3anbrc ) ABFFCUBZAGZBHIZUCCUDZHCJZWFGZDKZEKZ
      LZWICMZWJCMZLZUAZEWFNDWFNZCUEWCABCJZWDWEWGWCABCUFZWQABFFCUGZABCUHZOZWQWEW
      GWDWQWFBCJZWEWGWQXBWFAIABCUIUJWFBHCUOUKULUMWCWDWHWEWCWDWHWCWRWQAWFUNWDWHP
      WSWTWQWFAABCUPZUQAWFURUSUTVAWCWDWPWEWCWODEWFWFWCWIWFLZWJWFLZQZWIALZWJALZQ
      ZWOWCWRWQXFXIPWSWTWQXDXGXEXHWQWFAWIXCRWQWFAWJXCRVBVCWCXIWOWCXIQZWKWNXJWKW
      LWMFSZWNWKWIWJFSXJXKDEVDABWIWJFFCVEVFXJCAVGZXHXKWNPZWCXLXIWCWQXLXAABCVHOV
      IWCXGXHVJXLXHQWMTLZXMXNAWJCWJCVKVLWLWMTVMOVNVOVPVQVRVSVTDECWAWB $.
  $}

  $( 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 $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  "Strong" transfinite recursion
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c recs $.

  $( Notation for a function defined by strong transfinite recursion. $)
  crecs $a class recs ( F ) $.

  ${
    $d F f x y $.
    $( 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-irdg for more details on why
       this definition is desirable.  Unlike ~ df-irdg 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 ~ tfri1d and
       ~ tfri2d for the primary contract of this definition.

       (Contributed by Stefan O'Rear, 18-Jan-2015.) $)
    df-recs $a |- recs ( F ) = U. { f | E. x e. On ( f Fn x /\
        A. y e. x ( f ` y ) = ( F ` ( f |` y ) ) ) } $.
  $}

  ${
    $d F a b c $.  $d G a b c $.  $d x a b c $.
    $( Equality theorem for ` recs ` .  (Contributed by Stefan O'Rear,
       18-Jan-2015.) $)
    recseq $p |- ( F = G -> recs ( F ) = recs ( G ) ) $=
      ( va vb vc wceq cv wfn cfv cres wral wa con0 wrex cuni crecs fveq1 eqeq2d
      cab df-recs ralbidv anbi2d rexbidv abbidv unieqd 3eqtr4g ) ABFZCGZDGZHZEG
      ZUHIZUHUKJZAIZFZEUIKZLZDMNZCSZOUJULUMBIZFZEUIKZLZDMNZCSZOAPBPUGUSVEUGURVD
      CUGUQVCDMUGUPVBUJUGUOVAEUIUGUNUTULUMABQRUAUBUCUDUEDECATDECBTUF $.

    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 ) $=
      ( va vb vc crecs cv wfn cfv cres wceq wral wa con0 wrex cuni df-recs nfcv
      cab nfv nffv nfeq2 nfralxy nfan nfrexxy nfab nfuni nfcxfr ) ABGDHZEHZIZFH
      ZUJJZUJUMKZBJZLZFUKMZNZEOPZDTZQEFDBRAVAUTADUSAEOAOSULURAULAUAUQAFUKAUKSAU
      NUPAUOBCAUOSUBUCUDUEUFUGUHUI $.
  $}

  ${
    $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
      vu raleq r19.21v cres cdm wfn wfun simplll adantr simpld funfn sylib word
      syl simpllr eloni ordelss sylan simplr sstrd simprd fnssres syl2anc simpr
      rspcv syl3c fveq2 eqeq12d sylc fvres adantl 3eqtr4d eqfnfvd fveq2d sselda
      ad2antrr reseq2 rspcva ralrimiva cbvralv sylibr exp31 expcom syl5bi tfis2
      a2d vtoclga mpcom mpi ) ACCMZBNZEOZWRFOZPZBCQZCUCCUDRAWQXBSZGAUANZCMZXABX
      DQZSZSZAXCSUACUDXDCPZXGXCAXIXEWQXFXBXDCCUEXABXDCUIUFUGXHALNZCMZXABXJQZSZS
      ZUALXDXJPZXGXMAXOXEXKXFXLXDXJCUEXABXDXJUIUFUGXNLXDQAXMLXDQZSXDUDRZXHAXMLX
      DUJXQAXPXGAXQXPXGSAXQTZXPXEXFXRXPTZXETZUBNZEOZYAFOZPZUBXDQXFXTYDUBXDXTYAX
      DRZTZEYAUKZDOZFYAUKZDOZYBYCYFYGYIDYFUHYAYGYIYFEEULZUMZYAYKMYGYAUMYFEUNZYL
      YFYMCYKMZYFAYMYNTXTAYEAXQXPXEUOUPZHVAZUQEURUSYFYACYKYFYAXDCXTXDUTZYEYAXDM
      XTXQYQAXQXPXEVBXDVCVAXDYAVDVEXSXEYEVFVGZYFYMYNYPVHVGYKYAEVIVJYFFFULZUMZYA
      YSMYIYAUMYFFUNZYTYFUUACYSMZYFAUUAUUBTYOIVAZUQFURUSYFYACYSYRYFUUAUUBUUCVHV
      GYSYAFVIVJYFUHNZYARZTZUUDEOZUUDFOZUUDYGOZUUDYIOZUUFUUEXABYAQZUUGUUHPZYFUU
      EVKUUFYEXPYACMZUUKXTYEUUEVFXTXPYEUUEXRXPXEVFWCYFUUMUUEYRUPXMUUMUUKSLYAXDX
      JYAPXKUUMXLUUKXJYACUEXABXJYAUIUFVLVMXAUULBUUDYAWRUUDPWSUUGWTUUHWRUUDEVNWR
      UUDFVNVOVLVPUUEUUIUUGPYFUUDYAEVQVRUUEUUJUUHPYFUUDYAFVQVRVSVTWAYFYACRZWSEW
      RUKZDOZPZBCQZYBYHPZXTXDCYAXSXEVKWBZYFAUURYOJVAUUQUUSBYACWRYAPZWSYBUUPYHWR
      YAEVNZUVAUUOYGDWRYAEWDWAVOWEVJYFUUNWTFWRUKZDOZPZBCQZYCYJPZUUTYFAUVFYOKVAU
      VEUVGBYACUVAWTYCUVDYJWRYAFVNZUVAUVCYIDWRYAFWDWAVOWEVJVSWFXAYDBUBXDUVAWSYB
      WTYCUVBUVHVOWGWHWIWJWMWKWLWNWOWP $.
  $}

  ${
    $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 ) ) ) } $.
    $( Lemma for transfinite recursion.  This lemma just changes some bound
       variables in ` A ` for later use.  (Contributed by NM, 9-Apr-1995.) $)
    tfrlem3ag $p |- ( G e. _V -> ( 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 cvv fneq12 simpll simpr reseq12d
      fveq12d fveq2d eqeq12d simplr cbvraldva2 anbi12d cbvrexdva elab2g ) FJZAJ
      ZKZBJZULLZULUOMZGLZNZBUMOZPZAQRHCJZKZDJZHLZHVDMZGLZNZDVBOZPZCQRFHESULHNZV
      AVJACQVKUMVBNZPZUNVCUTVIUMVBULHTVMUSVHBDUMVBVMUOVDNZPZUPVEURVGVOUOVDULHVK
      VLVNUAZVMVNUBZUDVOUQVFGVOULHUOVDVPVQUCUEUFVKVLVNUGUHUIUJIUK $.

    ${
      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 simpr fveq12d reseq12d eqeq12d
        fneq12 simpll fveq2d adantr cbvraldva2 anbi12d cbvrexdva elab2 ) FKZAKZ
        LZBKZULMZULUONZGMZOZBUMPZQZARSHCKZLZDKZHMZHVDNZGMZOZDVBPZQZCRSFHEJULHOZ
        VAVJACRVKUMVBOZQZUNVCUTVIUMVBULHUDVMUSVHBDUMVBVMUOVDOZQZUPVEURVGVOUOVDU
        LHVKVLVNUEZVMVNTZUAVOUQVFGVOULHUOVDVPVQUBUFUCVMVLVNVKVLTUGUHUIUJIUK $.
    $}

    $( 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 g x F $.
    tfrlem3-2.1 $e |- ( Fun F /\ ( F ` x ) e. _V ) $.
    $( Lemma for transfinite recursion which changes a bound variable
       (Contributed by Jim Kingdon, 17-Apr-2019.) $)
    tfrlem3-2 $p |- ( Fun F /\ ( F ` g ) e. _V ) $=
      ( wfun cv cfv cvv wcel wa wceq fveq2 eleq1d anbi2d chvarv ) CEZAFZCGZHIZJ
      PBFZCGZHIZJABQTKZSUBPUCRUAHQTCLMNDO $.
  $}

  ${
    $d g x F $.
    tfrlem3-2d.1 $e |- ( ph -> A. x ( Fun F /\ ( F ` x ) e. _V ) ) $.
    $( Lemma for transfinite recursion which changes a bound variable
       (Contributed by Jim Kingdon, 2-Jul-2019.) $)
    tfrlem3-2d $p |- ( ph -> ( Fun F /\ ( F ` g ) e. _V ) ) $=
      ( wfun cv cfv cvv wcel wal weq fveq2 eleq1d anbi2d cbvalv sylib 19.21bi
      wa ) ADFZCGZDHZIJZSZCATBGZDHZIJZSZBKUDCKEUHUDBCBCLZUGUCTUIUFUBIUEUADMNOPQ
      R $.
  $}

  ${
    $d f g x y z B $.  $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 simp2ll simp3l fnbr syl2anc simp2rl simp3r elin sylanbrc onin
      cin 3ad2ant1 wfun cdm wss fnfun syl inss1 fndm syl5sseqr jca inss2 ssralv
      simp2lr mpsyl simp2rr tfrlem1 eqeq12d sylc funbrfv 3eqtr3d 3exp rexlimdva
      fveq2 rspcv rexlimiv sylbir syl2anb ) GNZEOWGKNZUAZLNZWGPZWGWJUBIPQZLWHRZ
      SZKTUCZHNZMNZUAZWJWPPZWPWJUBIPQZLWQRZSZMTUCZANZDNZWGUGZXDCNZWPUGZSZXEXGQZ
      UDZWPEOABKLEFIWGJGUHUEABMLEFIWPJHUHUEWOXCSWNXBSZMTUCZKTUCXKWNXBKMTTUFXMXK
      KTWHTOZXLXKMTXNWQTOSZXLXIXJXOXLXIUIZXDWGPZXDWPPZXEXGXPXDWHWQUSZOZWKWSQZLX
      SRXQXRQZXPXDWHOZXDWQOZXTXPWIXFYCWIWMXBXOXIUJZXOXLXFXHUKZWHXDXEWGULUMXPWRX
      HYDWRXAWNXOXIUNZXOXLXFXHUOZWQXDXGWPULUMXDWHWQUPUQXPLXSIWGWPXOXLXSTOXIWHWQ
      URUTXPWGVAZXSWGVBZVCXPWIYIYEWHWGVDVEZXPWHXSYJWHWQVFZXPWIYJWHQYEWHWGVGVEVH
      VIXPWPVAZXSWPVBZVCXPWRYMYGWQWPVDVEZXPWQXSYNWHWQVJZXPWRYNWQQYGWQWPVGVEVHVI
      XSWHVCXPWMWLLXSRYLWIWMXBXOXIVLWLLXSWHVKVMXSWQVCXPXAWTLXSRYPWRXAWNXOXIVNWT
      LXSWQVKVMVOYAYBLXDXSWJXDQWKXQWSXRWJXDWGWBWJXDWPWBVPWCVQXPYIXFXQXEQYKYFXDX
      EWGVRVQXPYMXHXRXGQYOYHXDXGWPVRVQVSVTWAWDWEWF $.

    $( 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 df-recs 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 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 df-recs 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 $.
  $}

  ${
    $d f x y A $.  $d x y F $.  $d f x y G $.
    tfr.1 $e |- F = recs ( G ) $.
    $( A weak version of transfinite recursion.  (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 $.

    $( Transfinite recursion at the empty set.  (Contributed by Jim Kingdon,
       8-May-2020.) $)
    tfr0 $p |- ( ( G ` (/) ) e. V -> ( F ` (/) ) = ( G ` (/) ) ) $=
      ( vx vy vf c0 cfv wcel wceq cv wfn cres wral wa con0 cvv 0ex mpan cop csn
      wrex opexg snidg syl fnsng fvsng res0 fveq2i syl6eqr fveq2 reseq2 eqeq12d
      fveq2d ralsn sylibr csuc 0elon onsuci eqeltrri fneq2 raleq anbi12d rspcev
      suc0 syl2anc wex wi snexg eleq2 fneq1 fveq1 reseq1 ralbidv rexbidv spcegv
      3syl crecs cab eleq2i df-recs eluniab 3bitri syl6ibr mp2and opeldmg tfr2a
      cuni cdm syl6 eqeq2i syl6ib mpd ) HBIZCJZHWOUAZAJZHAIZWOKZWPWQWQUBZJZXAEL
      ZMZFLZXAIZXAXENZBIZKZFXCOZPZEQUCZWRWPWQRJZXBHRJZWPXMSHWORCUDTZWQRUEUFWPXA
      HUBZMZXIFXPOZXLXNWPXQSHWORCUGTWPHXAIZXAHNZBIZKZXRWPXSWOYAXNWPXSWOKSHWORCU
      HTXTHBXAUIUJUKXIYBFHSXEHKZXFXSXHYAXEHXAULYCXGXTBXEHXAUMUOUNUPUQXPQJXQXRPZ
      XLHURXPQVFHUSUTVAXKYDEXPQXCXPKXDXQXJXRXCXPXAVBXIFXCXPVCVDVETVGWPXBXLPZWQG
      LZJZYFXCMZXEYFIZYFXENZBIZKZFXCOZPZEQUCZPZGVHZWRWPXMXARJYEYQVIXOWQRVJYPYEG
      XARYFXAKZYGXBYOXLYFXAWQVKYRYNXKEQYRYHXDYMXJXCYFXAVLYRYLXIFXCYRYIXFYKXHXEY
      FXAVMYRYJXGBYFXAXEVNUOUNVOVDVPVDVQVRWRWQBVSZJWQYOGVTWIZJYQAYSWQDWAYSYTWQE
      FGBWBWAYOGWQWCWDWEWFWPWRWSAHNZBIZKZWTWPWRHAWJJZUUCXNWPWRUUDVISHWOARCWGTHA
      BDWHWKUUBWOWSUUAHBAUIUJWLWMWN $.
  $}

  ${
    $d e f g h k t u v w x y z A $.  $d e f g h k t u v w x y z F $.
    $d ph v w y $.
    tfrlemisucfn.1 $e |- A = { f | E. x e. On ( f Fn x /\
                A. y e. x ( f ` y ) = ( F ` ( f |` y ) ) ) } $.
    tfrlemisucfn.2 $e |- ( ph -> A. x ( Fun F /\ ( F ` x ) e. _V ) ) $.
    ${
      $d u w y ph $.
      tfrlemisucfn.3 $e |- ( ph -> z e. On ) $.
      tfrlemisucfn.4 $e |- ( ph -> g Fn z ) $.
      tfrlemisucfn.5 $e |- ( ph -> g e. A ) $.
      $( We can extend an acceptable function by one element to produce a
         function.  Lemma for ~ tfrlemi1 .  (Contributed by Jim Kingdon,
         2-Jul-2019.) $)
      tfrlemisucfn $p |- ( ph -> ( g u. { <. z , ( F ` g ) >. } ) Fn suc z ) $=
        ( cv csuc cfv cop cvv wcel a1i csn cun wfun tfrlem3-2d simprd df-suc wn
        vex eqid elirrv fnunsn ) ADNZULOGNZUMULUMHPZQUAUBZULUNULRSADUHTAHUCUNRS
        ABGHJUDUELUOUIULUFULULSUGADUJTUK $.

      $( We can extend an acceptable function by one element to produce an
         acceptable function.  Lemma for ~ tfrlemi1 .  (Contributed by Jim
         Kingdon, 4-Mar-2019.)  (Proof shortened by Mario Carneiro,
         24-May-2019.) $)
      tfrlemisucaccv $p |- ( ph -> ( g u. { <. z , ( F ` g ) >. } ) e. A ) $=
        ( vu cfv wcel wceq wa con0 cvv vw vv cv cop csn cun cres wral wrex csuc
        wfn suceloni syl tfrlemisucfn vex elsuc tfrlem3a simprrr simprrl adantr
        wo sylib fndmu syl2anc raleqdv mpbid rexlimddv wne elirrv elequ2 mtbiri
        r19.21bi necon2ai adantl fvunsng sylancr wss word eloni ordelss resabs1
        sylan wn fsnunres sylancl reseq1d eqtr3d fveq2d 3eqtr4d wfun tfrlem3-2d
        cdm simprd eleq2d fsnunfv syl3anc simpr reseq2 sylan9eqr jaodan sylan2b
        fndm ralrimiva fneq2 raleq anbi12d rspcev syl12anc wb opexg snexg unexg
        tfrlem3ag mpbird ) AGUCZDUCZXOHOZUDZUEZUFZEPZXTUAUCZUKZNUCZXTOZXTYDUGZH
        OZQZNYBUHZRZUASUIZAXPUJZSPZXTYLUKZYHNYLUHZYKAXPSPZYMKXPULUMABCDEFGHIJKL
        MUNAYHNYLYDYLPAYDXPPZYDXPQZVAYHYDXPNUOZUPAYQYHYRAYQRZYDXOOZXOYDUGZHOZYE
        YGAUUAUUCQZNXPAXOUBUCZUKZUUDNUUEUHZRZUUDNXPUHZUBSAXOEPUUHUBSUIMBCUBNEFH
        XOIGUOZUQVBAUUESPZUUHRZRZUUGUUIAUUKUUFUUGURUUMUUDNUUEXPUUMUUFXOXPUKZUUE
        XPQAUUKUUFUUGUSAUUNUULLUTUUEXPXOVCVDVEVFVGVLYTYDTPXPYDVHZYEUUAQYSYQUUOA
        YQXPYDXPYDQYQYDYDPNVIDNNVJVKVMVNXOXPXQYDTVOVPYTYFUUBHYTXTXPUGZYDUGZYFUU
        BYTYDXPVQZUUQYFQAXPVRZYQUURAYPUUSKXPVSUMXPYDVTWBXTYDXPWAUMAUUQUUBQYQAUU
        PXOYDAUUNXPXPPZWCUUPXOQLDVIZXPXOXPXQWDWEZWFUTWGWHWIAYRRZXPXTOZXQYEYGAUV
        DXQQZYRAYPXQTPZXPXOWLZPZWCUVEKAHWJUVFABGHJWKWMZAUVHUUTUVAAUVGXPXPAUUNUV
        GXPQLXPXOXBUMWNVKXOSTXPXQWOWPUTUVCYDXPXTAYRWQWHUVCYFXOHYRAYFUUPXOYDXPXT
        WRUVBWSWHWIWTXAXCYJYNYORUAYLSYBYLQYCYNYIYOYBYLXTXDYHNYBYLXEXFXGXHAXTTPZ
        YAYKXIAXOTPXSTPZUVJUUJAXRTPZUVKAXPTPUVFUVLDUOUVIXPXQTTXJVPXRTXKUMXOXSTT
        XLVPBCUANEFHXTIXMUMXN $.
    $}

    ${
      $d u w f g h z B $.  $d g h y z w ph $.
      tfrlemi1.3 $e |- B = { h | E. z e. x E. g ( g Fn z /\ g e. A /\
         h = ( g u. { <. z , ( F ` g ) >. } ) ) } $.
      tfrlemi1.4 $e |- ( ph -> x e. On ) $.
      tfrlemi1.5 $e |- ( ph -> A. z e. x E. g ( g Fn z /\
        A. w e. z ( g ` w ) = ( F ` ( g |` w ) ) ) ) $.
      $( Each element of ` B ` is an acceptable function.  Lemma for
         ~ tfrlemi1 .  (Contributed by Jim Kingdon, 14-Mar-2019.)  (Proof
         shortened by Mario Carneiro, 24-May-2019.) $)
      tfrlemibacc $p |- ( ph -> B C_ A ) $=
        ( cv wcel cfv wa wfn cop csn cun wceq w3a wex wrex simpr3 wfun ad2antrr
        cab cvv con0 simplr onelon syl2anc simpr1 simpr2 tfrlemisucaccv eqeltrd
        wal ex exlimdv rexlimdva abssdv syl5eqss ) AGIQZDQZUAZVHFRZJQZVHVIVHKSU
        BUCUDZUEZUFZIUGZDBQZUHZJULFNAVRJFAVPVLFRZDVQAVIVQRZTZVOVSIWAVOVSWAVOTZV
        LVMFWAVJVKVNUIWBBCDFHIKLAKUJVQKSUMRTBVBVTVOMUKWBVQUNRZVTVIUNRAWCVTVOOUK
        AVTVOUOVQVIUPUQWAVJVKVNURWAVJVKVNUSUTVAVCVDVEVFVG $.

      $( The union of ` B ` is defined on all ordinals.  Lemma for ~ tfrlemi1 .
         (Contributed by Jim Kingdon, 18-Mar-2019.)  (Proof shortened by Mario
         Carneiro, 24-May-2019.) $)
      tfrlemibxssdm $p |- ( ph -> x C_ dom U. B ) $=
        ( cv wcel wa cvv cuni cdm wral wss wfn cfv cres wceq con0 wi tfrlem3-2d
        wex w3a cop wfun simprd 3ad2ant1 csn cun opexg sylancr snidg elun2 3syl
        simp2r simp3l wrex onelon rspe sylan tfrlem3a sylibr 3adant1 3jca snexg
        vex unexg isset sylib simpr3 19.8a abeq2i sylan2 eqeltrrd 3exp2 exlimdv
        mpan 3imp sylc elunii syl2anc opeq2 eleq1d spcegv eldm2 syl6ibr anassrs
        3expia ralimdva mpdan mpd dfss3 ) ADQZGUAZUBZRZDBQZUCZXGXEUDAIQZXCUEZEQ
        ZXIUFXIXKUGKUFUHEXCUCZSZIULZDXGUCZXHPAXGUIRZXOXHUJOAXPSXNXFDXGAXPXCXGRZ
        XNXFUJAXPXQSZSXMXFIAXRXMXFAXRXMUMZXIKUFZTRZXCXTUNZXDRZXFAXRYAXMAKUOYAAB
        IKMUKUPZUQXSYBXIYBURZUSZRZYFGRZYCAXRYGXMAYBTRZYBYERYGAXCTRYAYIDVPZYDXCX
        TTTUTVAZYBTVBYBYEXIVCVDUQXSXQXJXIFRZUMZJQZYFUHZJULZYHXSXQXJYLAXPXQXMVEA
        XRXJXLVFXRXMYLAXRXMSXMDUIVGZYLXRXCUIRXMYQXGXCVHXMDUIVIVJBCDEFHKXILIVPZV
        KVLVMVNAXRYPXMAYFTRZYPAYIYETRZYSYKYBTVOXITRYTYSYRXIYETTVQWGVDJYFVRVSUQY
        MYOYHJXQXJYLYOYHUJXQXJYLYOYHXQXJYLYOUMZSYNYFGXQXJYLYOVTUUAXQUUAIULZYNGR
        ZUUAIWAXQUUBSUUBDXGVGZUUCUUBDXGVIUUDJGNWBVLWCWDWEWHWFWIYBYFGWJWKYAYCXCX
        KUNZXDRZEULXFUUFYCEXTTXKXTUHUUEYBXDXKXTXCWLWMWNEXCXDYJWOWPWIWRWFWQWSWTX
        ADXGXEXBVL $.

      $( The union of ` B ` is a function defined on ` x ` .  Lemma for
         ~ tfrlemi1 .  (Contributed by Jim Kingdon, 18-Mar-2019.)  (Proof
         shortened by Mario Carneiro, 24-May-2019.) $)
      tfrlemibfn $p |- ( ph -> U. B Fn x ) $=
        ( wss cvv wcel syl cuni wfun cdm cv wceq wfn crecs tfrlemibacc recsfval
        unissd syl6sseqr tfrlem7 funss cxp cpw cfv cop csn cun w3a wex wrex cab
        mpisyl wa simpr3 csuc wf wal ad2antrr con0 simplr onelon syl2anc simpr1
        simpr2 tfrlemisucfn dffn2 sylib fssxp word eloni ordsucss sylc xpss1 wb
        sstrd vex tfrlem3-2d simprd opexg sylancr snexg unexg mpbird eqeltrd ex
        elpwg exlimdv rexlimdva abssdv sspwuni dmss dmxpss syl6ss tfrlemibxssdm
        syl5eqss eqssd df-fn sylanbrc ) AGUAZUBZXKUCZBUDZUEXKXNUFAXKKUGZQXOUBXL
        AXKFUAXOAGFABCDEFGHIJKLMNOPUHUJBCFHKLUIUKBCFHKLULXKXOUMVDAXMXNAXMXNRUNZ
        UCZXNAXKXPQZXMXQQAGXPUOZQXRAGIUDZDUDZUFZXTFSZJUDZXTYAXTKUPZUQZURZUSZUEZ
        UTZIVAZDXNVBZJVCXSNAYLJXSAYKYDXSSZDXNAYAXNSZVEZYJYMIYOYJYMYOYJVEZYDYHXS
        YOYBYCYIVFYPYHXSSZYHXPQZYPYHYAVGZRUNZXPYPYSRYHVHZYHYTQYPYHYSUFUUAYPBCDF
        HIKLAKUBZXNKUPRSVEBVIYNYJMVJYPXNVKSZYNYAVKSAUUCYNYJOVJZAYNYJVLZXNYAVMVN
        YOYBYCYIVOYOYBYCYIVPVQYSYHVRVSYSRYHVTTYPYSXNQZYTXPQYPXNWAZYNUUFYPUUCUUG
        UUDXNWBTUUEYAXNWCWDYSXNRWETWGAYQYRWFZYNYJAYHRSZUUHAXTRSYGRSZUUIIWHAYFRS
        ZUUJAYARSYERSZUUKDWHAUUBUULABIKMWIWJYAYERRWKWLYFRWMTXTYGRRWNWLYHXPRWRTV
        JWOWPWQWSWTXAXGGXPXBVSXKXPXCTXNRXDXEABCDEFGHIJKLMNOPXFXHXKXNXIXJ $.

      $( The set ` B ` exists.  Lemma for ~ tfrlemi1 .  (Contributed by Jim
         Kingdon, 17-Mar-2019.)  (Proof shortened by Mario Carneiro,
         24-May-2019.) $)
      tfrlemibex $p |- ( ph -> B e. _V ) $=
        ( cuni cvv wcel cv wfn tfrlemibfn vex fnex sylancl uniexb sylibr ) AGQZ
        RSZGRSAUHBTZUAUJRSUIABCDEFGHIJKLMNOPUBBUCUJRUHUDUEGUFUG $.

      $( The union of ` B ` satisfies the recursion rule (lemma for
         ~ tfrlemi1 ).  (Contributed by Jim Kingdon, 22-Apr-2019.)  (Proof
         shortened by Mario Carneiro, 24-May-2019.) $)
      tfrlemiubacc $p |- ( ph ->
          A. u e. x ( U. B ` u ) = ( F ` ( U. B |` u ) ) ) $=
        ( cfv wceq wcel cv cuni cres wral crecs cdm wfn tfrlemibfn fndm syl wss
        tfrlemibacc unissd recsfval syl6sseqr dmss eqsstr3d sselda tfrlem9 wfun
        wa tfrlem7 a1i adantr eleq2d biimpar funssfv syl3anc word eloni ordelss
        sylan sseqtr4d fun2ssres fveq2d 3eqtr3d ralrimiva fveq2 eqeq12d cbvralv
        con0 reseq2 sylibr ) AEUAZHUBZRZWEWDUCZLRZSZEBUAZUDFUAZWERZWEWKUCZLRZSZ
        FWJUDAWIEWJAWDWJTZVAZWDLUEZRZWRWDUCZLRZWFWHWQWDWRUFZTWSXASAWJXBWDAWJWEU
        FZXBAWEWJUGXCWJSZABCDEGHIJKLMNOPQUHWJWEUIUJZAWEWRUKZXCXBUKAWEGUBWRAHGAB
        CDEGHIJKLMNOPQULUMBCGILMUNUOZWEWRUPUJUQURBCGWDILMUSUJWQWRUTZXFWDXCTZWSW
        FSXHWQBCGILMVBVCZAXFWPXGVDZAXIWPAXCWJWDXEVEVFWDWRWEVGVHWQWTWGLWQXHXFWDX
        CUKWTWGSXJXKWQWDWJXCAWJVIZWPWDWJUKAWJWATXLPWJVJUJWJWDVKVLAXDWPXEVDVMWDW
        RWEVNVHVOVPVQWOWIFEWJWKWDSZWLWFWNWHWKWDWEVRXMWMWGLWKWDWEWBVOVSVTWC $.

      $( Lemma for ~ tfrlemi1 .  (Contributed by Jim Kingdon, 18-Mar-2019.)
         (Proof shortened by Mario Carneiro, 24-May-2019.) $)
      tfrlemiex $p |- ( ph ->
          E. f ( f Fn x /\ A. u e. x ( f ` u ) = ( F ` ( f |` u ) ) ) ) $=
        ( cvv cv cfv cuni wcel wfn cres wceq wral wex tfrlemibex syl tfrlemibfn
        wa uniexg tfrlemiubacc fneq1 fveq1 reseq1 fveq2d eqeq12d ralbidv spcegv
        jca anbi12d sylc ) AHUAZRUBZVDBSZUCZFSZVDTZVDVHUDZLTZUEZFVFUFZUKZISZVFU
        CZVHVOTZVOVHUDZLTZUEZFVFUFZUKZIUGAHRUBVEABCDEGHIJKLMNOPQUHHRULUIAVGVMAB
        CDEGHIJKLMNOPQUJABCDEFGHIJKLMNOPQUMVAWBVNIVDRVOVDUEZVPVGWAVMVFVOVDUNWCV
        TVLFVFWCVQVIVSVKVHVOVDUOWCVRVJLVOVDVHUPUQURUSVBUTVC $.
    $}

    $d g u z C $.  $d ph e f h z $.
    $( We can define an acceptable function on any ordinal.

       As with many of the transfinite recursion theorems, we have a hypothesis
       that states that ` F ` is a function and that it is defined for all
       ordinals.  (Contributed by Jim Kingdon, 4-Mar-2019.)  (Proof shortened
       by Mario Carneiro, 24-May-2019.) $)
    tfrlemi1 $p |- ( ( ph /\ C e. On ) -> E. g ( g Fn C /\
        A. u e. C ( g ` u ) = ( F ` ( g |` u ) ) ) ) $=
      ( vz vk vw vv cv cfv wral wa weq ve vt vh con0 wcel wfn cres wex wi simpr
      wceq simpl fneq12d fveq1d reseq1d fveq2d eqeq12d raleqbidv anbi12d imbi2d
      cbvexdva fneq2 raleq exbidv r19.21v cop csn cun w3a wrex cab tfrlem3 wfun
      cvv fveq2 eleq1d anbi2d cbvalv sylib adantr simplr simpll opeq12d uneq12d
      wal 3anbi123d cbvrexdva cbvabv adantl fveq12d reseq12d cbvraldva2 cbvralv
      sneqd tfrlemiex expr expcom a2d syl5bi tfis3 impcom ) FUDUEAHPZFUFZDPZXBQ
      ZXBXDUGZIQZUKZDFRZSZHUHZAXBLPZUFZXHDXLRZSZHUHZUIZAMPZNPZUFZXDXRQZXRXDUGZI
      QZUKZDXSRZSZMUHZUIZAXKUILNFLNTZXPYGAYIXOYFHMYIHMTZSZXMXTXNYEYKXLXSXBXRYIY
      JUJZYIYJULZUMYKXHYDDXLXSYMYKXEYAXGYCYKXDXBXRYLUNYKXFYBIYKXBXRXDYLUOUPUQUR
      USVAUTXLFUKZXPXKAYNXOXJHYNXMXCXNXIXLFXBVBXHDXLFVCUSVDUTYHNXLRAYGNXLRZUIXL
      UDUEZXQAYGNXLVEYPAYOXPAYPYOXPUIAYPYOXPAYPYOSZSLUAOCDEXTXREUEZUBPZXRXSXRIQ
      ZVFZVGZVHZUKZVIZMUHZNXLVJZUBVKHGUCIBCLUAEGHIJVLAIVMZXLIQZVNUEZSZLWEZYQAUU
      HBPZIQZVNUEZSZBWEUULKUUPUUKBLBLTZUUOUUJUUHUUQUUNUUIVNUUMXLIVOVPVQVRVSVTUU
      GGPZOPZUFZUUREUEZUCPZUURUUSUURIQZVFZVGZVHZUKZVIZGUHZOXLVJUBUCUBUCTZUUFUVI
      NOXLUVJNOTZSZUUEUVHMGUVLMGTZSZXTUUTYRUVAUUDUVGUVNXSUUSXRUURUVLUVMUJZUVJUV
      KUVMWAZUMUVNXRUUREUVOVPUVNYSUVBUUCUVFUVJUVKUVMWBUVNXRUURUUBUVEUVOUVNUUAUV
      DUVNXSUUSYTUVCUVPUVNXRUURIUVOUPWCWNWDUQWFVAWGWHYQYPAYPYOULWIYQUUTCPZUURQZ
      UURUVQUGZIQZUKZCUUSRZSZGUHZOXLRZAYQYOUWEYPYOUJYGUWDNOXLUVKYFUWCMGUVKUVMSZ
      XTUUTYEUWBUWFXSUUSXRUURUVKUVMUJUVKUVMULUMUWFYDUWADCXSUUSUWFDCTZSZYAUVRYCU
      VTUWHXDUVQXRUURUVKUVMUWGWAZUWFUWGUJZWJUWHYBUVSIUWHXRUURXDUVQUWIUWJWKUPUQU
      VKUVMUWGWBWLUSVAWMVSWIWOWPWQWRWSWTXA $.
  $}

  ${
    $d f g h u w x y z A $.  $d f g h u w x y z F $.  $d f g ph w y z $.
    tfrlemi14d.1 $e |- A = { f | E. x e. On ( f Fn x /\
                A. y e. x ( f ` y ) = ( F ` ( f |` y ) ) ) } $.
    tfrlemi14d.2 $e |- ( ph -> A. x ( Fun F /\ ( F ` x ) e. _V ) ) $.
    $( The domain of ` recs ` is all ordinals (lemma for transfinite
       recursion).  (Contributed by Jim Kingdon, 9-Jul-2019.) $)
    tfrlemi14d $p |- ( ph -> dom recs ( F ) = On ) $=
      ( vh vz vg vu vw cdm con0 cv wcel wa cfv cvv crecs word tfrlem8 mp1i ciun
      wss ordsson wrex wfn cres wceq wral tfrlemi1 cop csn wfun ad2antrr simplr
      cun wal simprl fneq2 raleq anbi12d rspcev adantll tfrlem3a tfrlemisucaccv
      vex sylibr tfrlem3-2d simprd opexg sylancr snidg 3syl wi opeldmg mpd dmeq
      elun2 eleq2d syl2anc exlimddv eliun ssrdv cuni recsfval dmeqi dmuni eqtri
      ex syl6sseqr eqssd ) AFUAZNZOWPUBWPOUFABCDEFGUCWPUGUDAOIDIPZNZUEZWPAJOWSA
      JPZOQZWTWSQZAXARZWTWRQZIDUHZXBXCKPZWTUIZLPZXFSXFXHUJFSUKZLWTULZRZXEKABCLD
      WTEKFGHUMXCXKRZXFWTXFFSZUNZUOZUSZDQWTXPNZQZXEXLBCJDEKFGAFUPZBPFSTQRBUTXAX
      KHUQAXAXKURXCXGXJVAXLXFMPZUIZXILXTULZRZMOUHZXFDQXAXKYDAYCXKMWTOXTWTUKYAXG
      YBXJXTWTXFVBXILXTWTVCVDVEVFBCMLDEFXFGKVIVGVJVHXLXNXPQZXRAYEXAXKAXNTQZXNXO
      QYEAWTTQZXMTQZYFJVIZAXSYHABKFHVKVLZWTXMTTVMVNXNTVOXNXOXFWAVPUQAYEXRVQZXAX
      KAYGYHYKYIYJWTXMXPTTVRVNUQVSXDXRIXPDWQXPUKWRXQWTWQXPVTWBVEWCWDIWTDWRWEVJW
      LWFWPDWGZNWSWOYLBCDEFGWHWIIDWJWKWMWN $.
  $}

  ${
    $d e f g h u v t w x y z A $.  $d e f g h u v t w x y z F $.  $d z C $.
    $d u v z ph $.
    tfrexlem.1 $e |- A = { f | E. x e. On ( f Fn x /\
                A. y e. x ( f ` y ) = ( F ` ( f |` y ) ) ) } $.
    tfrexlem.2 $e |- ( ph -> A. x ( Fun F /\ ( F ` x ) e. _V ) ) $.
    $( The transfinite recursion function is set-like if the input is.
       (Contributed by Mario Carneiro, 3-Jul-2019.) $)
    tfrexlem $p |- ( ( ph /\ C e. V ) -> ( recs ( F ) ` C ) e. _V ) $=
      ( vz vv wcel cfv cvv cv wceq con0 wa syl vg vw vu vh vt ve crecs wi fveq2
      eleq1d imbi2d csuc cin cuni wfn cres wral wex word wss inss2 ssorduni vex
      ax-mp sucex inex1 uniex elon2 mpbir2an tfrlem3 wal anbi2d cbvalv tfrlemi1
      wfun sylib mpan2 crn wbr cop recsfval breqi df-br eluni 3bitri sucid wrex
      simpr tfrlem3a simprl simprrl simpll fnop syl2anc onelon rexlimddv adantl
      cdm suceloni onss df-ss unieqd wtr eloni ordtr 3syl unisuc syl5eleqr fndm
      eqtrd ad2antrr eleqtrrd fneq2 raleq anbi12d rspcev sylibr simplrr simplrl
      eldm mpan tfrlem5 imp syl22anc breqtrd exlimddv brelrn elssuni ex exlimdv
      syl5bi alrimiv fvss rnex ssex exlimiv vtoclg impcom ) EHMAEGUGZNZOMZAKPZY
      SNZOMZUHAUUAUHKEHUUBEQZUUDUUAAUUEUUCYTOUUBEYSUIUJUKAUAPZUUBULZULZRUMZUNZU
      OZUBPZUUFNUUFUULUPGNQZUBUUJUQZSZUAURZUUDAUUJRMZUUPUUQUUJUSZUUJOMUUIRUTUUR
      UUHRVAUUIVBVDUUIUUHRUUGUUBKVCZVEZVEVFVGUUJVHVIZAKUCUBDUUJLUAGBCKUCDFLGIVJ
      ZAGVOZBPZGNZOMZSZBVKUVCUUBGNZOMZSZKVKJUVGUVJBKUVDUUBQZUVFUVIUVCUVKUVEUVHO
      UVDUUBGUIUJVLVMVPVNVQUUOUUDUAUUOUUCUUFVRZUNZUTZUUDUUOUUBCPZYSVSZUVOUVMUTZ
      UHZCVKUVNUUOUVRCUVPUUBUVOVTZUDPZMZUVTDMZSZUDURZUUOUVQUVPUUBUVODUNZVSUVSUW
      EMUWDUUBUVOYSUWEKUCDLGUVBWAWBUUBUVOUWEWCUDUVSDWDWEUUOUWCUVQUDUUOUWCUVQUUO
      UWCSZUVOUVLMZUVQUWFUUBUVOUUFVSZUWGUWFUUBUVDUUFVSZUWHBUWFUUBUUFWRZMUWIBURU
      WFUUBUUJUWJUWFUUBUUGUUJUUBUUSWFUWFUUJUUHUNZUUGUWFUUIUUHUWFUUHRUTZUUIUUHQU
      WFUUHRMZUWLUWFUUGRMZUWMUWFUUBRMZUWNUWCUWOUUOUWCUVTUEPZUOZUFPZUVTNUVTUWRUP
      GNQUFUWPUQZSZUWOUERUWCUWBUWTUERWGUWAUWBWHBCUEUFDFGUVTIUDVCWIVPUWCUWPRMZUW
      TSZSZUXAUUBUWPMZUWOUWCUXAUWTWJUXCUWQUWAUXDUWCUXAUWQUWSWKUWAUWBUXBWLUWPUUB
      UVOUVTWMWNUWPUUBWOWNWPWQUUBWSTZUUGWSTUUHWTTUUHRXAVPXBUWFUUGXCZUWKUUGQUWFU
      WNUUGUSUXFUXEUUGXDUUGXEXFUUGUUTXGVPXJXHUUKUWJUUJQUUNUWCUUJUUFXIXKXLBUUBUU
      FUUSXTVPUWFUWISZUUBUVDUVOUUFUWFUWIWHZUXGUUFDMZUWBUWIUUBUVOUVTVSZUVDUVOQZU
      UOUXIUWCUWIUUOUUFLPZUOZUUMUBUXLUQZSZLRWGZUXIUUQUUOUXPUVAUXOUUOLUUJRUXLUUJ
      QUXMUUKUXNUUNUXLUUJUUFXMUUMUBUXLUUJXNXOXPYABCLUBDFGUUFIUAVCZWIXQXKUUOUWAU
      WBUWIXRUXHUXGUWAUXJUUOUWAUWBUWIXSUUBUVOUVTWCXQUXIUWBSUWIUXJSUXKKUCCBDLUAU
      DGUVBYBYCYDYEYFUUBUVOUUFUUSCVCYGTUVOUVLYHTYIYJYKYLCUUBUVMYSYMTUUCUVMUVLUU
      FUXQYNVGYOTYPTYQYR $.
  $}

  ${
    $d G f g u w x y z $.  $d ph f y $.
    tfri1d.1 $e |- F = recs ( G ) $.
    tfri1d.2 $e |- ( ph -> A. x ( Fun G /\ ( G ` x ) e. _V ) ) $.
    $( Principle of Transfinite Recursion, part 1 of 3.  Theorem 7.41(1) of
       [TakeutiZaring] p. 47, with an additional condition.

       The condition is that ` G ` is defined "everywhere", which is stated
       here as ` ( G `` x ) e. _V ` .  Alternately,
       ` A. x e. On A. f ( f Fn x -> f e. dom G ) ` would suffice.

       Given a function ` G ` satisfying that condition, we 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 Jim Kingdon, 4-May-2019.)  (Revised by Mario
       Carneiro, 24-May-2019.) $)
    tfri1d $p |- ( ph -> F Fn On ) $=
      ( vy vg vz vu vf vw con0 wfn wceq wa cv cfv cres wral crecs wfun cdm wrex
      cab eqid tfrlem3 tfrlemi14d tfrlem7 jctil df-fn sylibr fneq1i ) ADUAZMNZC
      MNAUNUBZUNUCMOZPUOAUQUPABGHQZIQZNJQZURRURUTSDROJUSTPIMUDHUEZKDIJBGVAHKDVA
      UFUGFUHGILQZGQZNUSVBRVBUSSDROIVCTPGMUDLUEZLDVDUFUIUJUNMUKULMCUNEUMUL $.

    $( Principle of Transfinite Recursion, part 2 of 3.  Theorem 7.41(2) of
       [TakeutiZaring] p. 47, with an additional condition on the recursion
       rule ` G ` ( as described at ~ tfri1 ).  Here we show that the function
       ` F ` has the property that for any function ` G ` satisfying that
       condition, the "next" value of ` F ` is ` G ` recursively applied to all
       "previous" values of ` F ` .  (Contributed by Jim Kingdon,
       4-May-2019.) $)
    tfri2d $p |- ( ( ph /\ A e. On ) -> ( F ` A ) = ( G ` ( F |` A ) ) ) $=
      ( con0 wcel wa cdm cfv cres wceq wfn tfri1d fndm syl eleq2d biimpar tfr2a
      ) ACHIZJCDKZIZCDLDCMELNAUDUBAUCHCADHOUCHNABDEFGPHDQRSTCDEFUAR $.
  $}

  ${
    $d G x $.
    tfri1.1 $e |- F = recs ( G ) $.
    tfri1.2 $e |- ( Fun G /\ ( G ` x ) e. _V ) $.
    $( Principle of Transfinite Recursion, part 1 of 3.  Theorem 7.41(1) of
       [TakeutiZaring] p. 47, with an additional condition.

       The condition is that ` G ` is defined "everywhere", which is stated
       here as ` ( G `` x ) e. _V ` .  Alternately,
       ` A. x e. On A. f ( f Fn x -> f e. dom G ) ` would suffice.

       Given a function ` G ` satisfying that condition, we 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 Jim Kingdon, 4-May-2019.)  (Revised by Mario
       Carneiro, 24-May-2019.) $)
    tfri1 $p |- F Fn On $=
      ( con0 wfn wtru wfun cv cfv cvv wcel wa wal ax-gen a1i tfri1d trud ) BFGH
      ABCDCIAJCKLMNZAOHTAEPQRS $.

    $( Principle of Transfinite Recursion, part 2 of 3.  Theorem 7.41(2) of
       [TakeutiZaring] p. 47, with an additional condition on the recursion
       rule ` G ` ( as described at ~ tfri1 ).  Here we show that the function
       ` F ` has the property that for any function ` G ` satisfying that
       condition, the "next" value of ` F ` is ` G ` recursively applied to all
       "previous" values of ` F ` .  (Contributed by Jim Kingdon,
       4-May-2019.) $)
    tfri2 $p |- ( A e. On -> ( F ` A ) = ( G ` ( F |` A ) ) ) $=
      ( con0 wcel cdm cfv cres wceq wfn tfri1 fndm ax-mp eleq2i tfr2a sylbir )
      BGHBCIZHBCJCBKDJLTGBCGMTGLACDEFNGCOPQBCDERS $.
  $}

  ${
    $d B x y $.  $d F x y $.  $d G x y $.
    tfri3.1 $e |- F = recs ( G ) $.
    tfri3.2 $e |- ( Fun G /\ ( G ` x ) e. _V ) $.
    $( Principle of Transfinite Recursion, part 3 of 3.  Theorem 7.41(3) of
       [TakeutiZaring] p. 47, with an additional condition on the recursion
       rule ` G ` ( as described at ~ tfri1 ).  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 Jim Kingdon, 4-May-2019.) $)
    tfri3 $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 wi fveq2 wb imp nfan wcel nfim
      nfra1 eqeq12d imbi2d r19.21v rsp onss tfri1 fvreseq mpanl2 syl6bir sylan2
      wss ancoms adantr tfri2 jctr jcab sylibr eqeq12 adantl mpbird exp43 com4t
      syl6 exp4a pm2.43d syl com3l a2d syl5bi tfis2f com12 ralrimi eqfnfv mpan2
      impd biimpar syldan ) BHIZAJZBKZBWCLZDKZMZAHNZWDWCCKZMZAHNZBCMZWBWHOZWJAH
      WBWHAWBAPWGAHUDUAZWCHUBZWMWJWMWJQZWMGJZBKZWQCKZMZQZAGWMWTAWNWTAPUCWCWQMZW
      JWTWMXBWDWRWIWSWCWQBRWCWQCRUEUFXAGWCNWMWTGWCNZQWOWPWMWTGWCUGWOWMXCWJWOWBW
      HXCWJQZWHWOWBXDWHWOWGQZWOWBXDQZQWGAHUHXEWOXFXEWOWOWBXDWOWBOZXCXEWOWJXGXCX
      EWOWJXGXCOZXEWOOZOWJWFCWCLZDKZMZXHXLXIXGXCXLWBWOXCXLQZWOWBWCHUOZXMWCUIWBX
      NOXCWEXJMZXLWBCHIZXNXOXCSACDEFUJZGHWCBCUKULWEXJDRUMUNUPTUQXIWJXLSZXHXEWOX
      RXEWOWGWIXKMZOZXRXEXEWOXSQZOWOXTQXEYAAWCCDEFURUSWOWGXSUTVAWDWFWIXKVBVGTVC
      VDVEVFVHVIVJVKVSVLVMVNVOVPWBWLWKWBXPWLWKSXQAHBCVQVRVTWA $.
  $}

  ${
    $d f g u x y z G $.
    tfrex.1 $e |- F = recs ( G ) $.
    tfrex.2 $e |- ( ph -> A. x ( Fun G /\ ( G ` x ) e. _V ) ) $.
    $( The transfinite recursion function is set-like if the input is.
       (Contributed by Mario Carneiro, 3-Jul-2019.) $)
    tfrex $p |- ( ( ph /\ A e. V ) -> ( F ` A ) e. _V ) $=
      ( vy vg vz vu vf wcel wa cfv crecs cvv fveq1i cv cres wceq wral con0 wrex
      wfn cab eqid tfrlem3 tfrexlem syl5eqel ) ACFNOCDPCEQZPRCDULGSABIJTZKTZUFL
      TZUMPUMUOUAEPUBLUNUCOKUDUEJUGZCMEFKLBIUPJMEUPUHUIHUJUK $.
  $}

  ${
    $d F f x y $.
    $( Transfinite recursion produces a function.  (Contributed by Jim Kingdon,
       20-Aug-2021.) $)
    tfrfun $p |- Fun recs ( F ) $=
      ( vx vy vf cv wfn cfv cres wceq wral wa con0 wrex cab eqid tfrlem7 ) BCDE
      ZBEZFCEZQGQSHAGICRJKBLMDNZDATOP $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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 x g F $.  $d x g I $.
    $( Define a recursive definition generator on ` On ` (the class of ordinal
       numbers) with characteristic function ` F ` and initial value ` I ` .
       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.  In classical logic it would be easier to divide this definition
       into cases based on whether the domain of ` g ` is zero, a successor, or
       a limit ordinal.  Cases do not (in general) work that way in
       intuitionistic logic, so instead we choose a definition which takes the
       union of all the results of the characteristic function for ordinals in
       the domain of ` g ` .  This means that this definition has the expected
       properties for increasing and continuous ordinal functions, which
       include ordinal addition and multiplication.

       For finite recursion we also define ~ df-frec and for suitable
       characteristic functions ~ df-frec yields the same result as ` rec `
       restricted to ` _om ` , as seen at ~ frecrdg .

       _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 Jim Kingdon, 19-May-2019.) $)
    df-irdg $a |- rec ( F , I ) = recs ( ( g e. _V |-> ( I u.
      U_ x e. dom g ( F ` ( g ` x ) ) ) ) ) $.
  $}

  ${
    $d x g F $.  $d x g G $.  $d x g A $.  $d x 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 vx wceq cvv cv cdm cfv ciun cun cmpt crecs crdg fveq1 iuneq2d uneq2d
      mpteq2dv df-irdg recseq syl 3eqtr4g ) BCFZDGAEDHZIZEHUEJZBJZKZLZMZNZDGAEU
      FUGCJZKZLZMZNZBAOCAOUDUKUPFULUQFUDDGUJUOUDUIUNAUDEUFUHUMUGBCPQRSUKUPUAUBE
      DBATEDCATUC $.

    $( 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 vx wceq cvv cv cdm cfv ciun cun cmpt crecs uneq1 mpteq2dv recseq syl
      crdg df-irdg 3eqtr4g ) ABFZDGAEDHZIEHUCJCJKZLZMZNZDGBUDLZMZNZCASCBSUBUFUI
      FUGUJFUBDGUEUHABUDOPUFUIQREDCATEDCBTUA $.
  $}

  ${
    $d x y z f g F $.  $d x y z f g A $.
    $( The recursive definition generator is a function.  (Contributed by Mario
       Carneiro, 16-Nov-2014.) $)
    rdgfun $p |- Fun rec ( F , A ) $=
      ( vg vx vy vz vf crdg wfun cvv cdm cfv ciun cun cmpt crecs wfn cres wceq
      cv wral wa con0 wrex cab eqid tfrlem7 df-irdg funeqi mpbir ) BAHZICJADCTZ
      KDTULLBLMNOZPZIEFGTZETZQFTZUOLUOUQRUMLSFUPUAUBEUCUDGUEZGUMURUFUGUKUNDCBAU
      HUIUJ $.
  $}

  ${
    $d A g $.  $d g x z F $.
    $( The recursion rule for the recursive definition generator is defined
       everywhere.  (Contributed by Jim Kingdon, 14-May-2020.) $)
    rdgtfr $p |- ( ( A. z ( F ` z ) e. _V /\ A e. V ) -> (
        Fun ( g e. _V |-> ( A u. U_ x e. dom g ( F ` ( g ` x ) ) ) )
        /\ ( ( g e. _V |-> ( A u. U_ x e. dom g ( F ` ( g ` x ) ) ) ) ` f )
          e. _V ) ) $=
      ( wcel cv cfv cvv wal cdm wa vex wral wceq ralrimivw sylancr sylan2 fveq2
      ciun cun cmpt wfun elex funmpt dmex fvex eleq1d spcv iunexg ancoms dmmptg
      unexg syl syl5eleqr funfvex jctil ) CGHBIZFJZKHZBLZCKHZEKCAEIZMZAIZVEJZFJ
      ZUBZUCZUDZUEZDIZVLJKHZNCGUFVCVDNZVOVMVPVMVNVLMZHVOEKVKUGZVPVNKVQDOVPVKKHZ
      EKPVQKQVPVSEKVDVCVSVCVDVJKHZVSVCVFKHVIKHZAVFPVTVEEOZUHVCWAAVFVBWABVHVGVEK
      KWBAOUIUTVHQVAVIKUTVHFUAUJUKRAVFVIKKULSCVJKKUOTUMREKVKKUNUPUQVNVLURSVRUST
      $.
  $}

  ${
    $d A g $.  $d g x F $.
    $( The recursion rule for the recursive definition generator is defined
       everywhere.  (Contributed by Jim Kingdon, 4-Jul-2019.) $)
    rdgruledefgg $p |- ( ( F Fn _V /\ A e. V ) -> (
        Fun ( g e. _V |-> ( A u. U_ x e. dom g ( F ` ( g ` x ) ) ) )
        /\ ( ( g e. _V |-> ( A u. U_ x e. dom g ( F ` ( g ` x ) ) ) ) ` f )
          e. _V ) ) $=
      ( wcel cvv wfn cv cdm cfv ciun wa vex wral funfvex ralrimivw syl sylan2
      cun cmpt wfun elex funmpt wceq fvex funfni mpan2 dmex iunexg unexg ancoms
      mpan dmmptg syl5eleqr sylancr jctil ) BFGEHIZBHGZDHBADJZKZAJZVALZELZMZUAZ
      UBZUCZCJZVHLHGZNBFUDUSUTNZVKVIVLVIVJVHKZGVKDHVGUEZVLVJHVMCOVLVGHGZDHPVMHU
      FVLVODHUTUSVOUSUTVFHGZVOUSVEHGZAVBPZVPUSVQAVBUSVDHGVQVCVAHHDOZAOUGVQHVDEV
      DEQUHUIRVBHGVRVPVAVSUJAVBVEHHUKUNSBVFHHULTUMRDHVGHUOSUPVJVHQUQVNURT $.
  $}

  ${
    $d A g $.  $d V g $.  $d g x F $.
    rdgruledefg.1 $e |- F Fn _V $.
    $( The recursion rule for the recursive definition generator is defined
       everywhere.  (Contributed by Jim Kingdon, 4-Jul-2019.) $)
    rdgruledefg $p |- ( A e. V -> (
        Fun ( g e. _V |-> ( A u. U_ x e. dom g ( F ` ( g ` x ) ) ) )
        /\ ( ( g e. _V |-> ( A u. U_ x e. dom g ( F ` ( g ` x ) ) ) ) ` f )
          e. _V ) ) $=
      ( cvv wfn wcel cv cdm cfv ciun cun cmpt wfun wa rdgruledefgg mpan ) EHIBF
      JDHBADKZLAKUAMEMNOPZQCKUBMHJRGABCDEFST $.
  $}

  ${
    $d A g x y $.  $d F g x y $.  $d V g y $.
    $( The recursive definition generator produces a set on a set input.
       (Contributed by Jim Kingdon, 4-Jul-2019.) $)
    rdgexggg $p |- ( ( F Fn _V /\ A e. V /\ B e. W ) ->
        ( rec ( F , A ) ` B ) e. _V ) $=
      ( vy vg vx cvv wfn wcel crdg cfv wa cv cdm ciun cun cmpt df-irdg alrimiv
      wfun rdgruledefgg tfrex 3impa ) CIJZADKZBEKBCALZMIKUFUGNZFBUHGIAHGOZPHOUJ
      MCMQRSZEHGCATUIUKUBFOUKMIKNFHAFGCDUCUAUDUE $.
  $}

  ${
    rdgexgg.1 $e |- F Fn _V $.
    $( The recursive definition generator produces a set on a set input.
       (Contributed by Jim Kingdon, 4-Jul-2019.) $)
    rdgexgg $p |- ( ( A e. V /\ B e. W ) -> ( rec ( F , A ) ` B ) e. _V ) $=
      ( cvv wfn wcel crdg cfv rdgexggg mp3an1 ) CGHADIBEIBCAJKGIFABCDELM $.
  $}

  ${
    $d A f g x $.  $d F f g x $.  $d V f $.
    $( The recursive definition generator is a function on ordinal numbers.
       The ` F Fn _V ` condition states that the characteristic function is
       defined for all sets (being defined for all ordinals might be enough if
       being used in a manner similar to ~ rdgon ; in cases like ~ df-oadd
       either presumably could work).  (Contributed by Jim Kingdon,
       13-Jul-2019.) $)
    rdgifnon $p |- ( ( F Fn _V /\ A e. V ) ->
      rec ( F , A ) Fn On ) $=
      ( vf vg vx cvv wfn wcel wa crdg cv cdm cfv ciun cmpt df-irdg rdgruledefgg
      cun wfun alrimiv tfri1d ) BGHACIJZDBAKEGAFELZMFLUDNBNOSPZFEBAQUCUETDLUENG
      IJDFADEBCRUAUB $.
  $}

  ${
    $d A f g x $.  $d F f g x z $.  $d V f $.
    $( The recursive definition generator is a function on ordinal numbers.
       (Contributed by Jim Kingdon, 14-May-2020.) $)
    rdgifnon2 $p |- ( ( A. z ( F ` z ) e. _V /\ A e. V ) ->
        rec ( F , A ) Fn On ) $=
      ( vf vg vx cv cfv cvv wcel wal wa crdg cdm ciun cun cmpt df-irdg wfun
      rdgtfr alrimiv tfri1d ) AHCIJKALBDKMZECBNFJBGFHZOGHUEICIPQRZGFCBSUDUFTEHU
      FIJKMEGABEFCDUAUBUC $.
  $}

  ${
    $d A g x y $.  $d B g x $.  $d F g x y $.  $d V g x y $.
    $( Value of the recursive definition generator.  Lemma for ~ rdgival which
       simplifies the value further.  (Contributed by Jim Kingdon,
       13-Jul-2019.)  (New usage is discouraged.) $)
    rdgivallem $p |- ( ( F Fn _V /\ A e. V /\ B e. On ) ->
        ( rec ( F , A ) ` B ) =
        ( A u. U_ x e. B ( F ` ( ( rec ( F , A ) |` B ) ` x ) ) ) ) $=
      ( vg vy cvv wfn wcel con0 cfv cv cdm ciun cun wceq wa wfun wss w3a tfri2d
      crdg cres cmpt df-irdg rdgruledefgg alrimiv 3impa eqidd 3ad2ant3 rdgifnon
      dmeq onss fndm syl 3adant3 sseqtr4d ssdmres sylib sylan9eqr fveq2d adantl
      fveq1 iuneq12d uneq2d rdgfun resfunexg mpan simpr fvexg sylancl ralrimivw
      wral vex wi funfvex funfni ex ralimdv adantr iunexg syl2anc 3adant2 unexg
      mpd 3ad2ant2 fvmptd eqtrd ) DHIZBEJZCKJZUAZCDBUCZLZWNCUDZFHBAFMZNZAMZWQLZ
      DLZOZPZUEZLZBACWSWPLZDLZOZPZWJWKWLWOXEQWJWKRZGCWNXDAFDBUFXJXDSGMXDLHJRGAB
      GFDEUGUHUBUIWMFWPXCXIHXDHWMXDUJWMWQWPQZRZXBXHBXLAWRCXAXGXKWMWRWPNZCWQWPUM
      WMCWNNZTXMCQWMCKXNWLWJCKTWKCUNUKWJWKXNKQZWLXJWNKIXOBDEULKWNUOUPUQURCWNUSU
      TVAXKXAXGQWMXKWTXFDWSWQWPVDVBVCVEVFWLWJWPHJZWKWNSWLXPBDVGWNCKVHVIZUKWMXHH
      JZXIHJZWJWLXRWKWJWLRZWLXGHJZACVNZXRWJWLVJXTXFHJZACVNZYBWLYDWJWLYCACWLXPWS
      HJYCXQAVOWSWPHHVKVLVMVCWJYDYBVPWLWJYCYAACWJYCYAYAHXFDXFDVQVRVSVTWAWFACXGK
      HWBWCWDWKWJXRXSVPWLWKXRXSBXHEHWEVSWGWFWHWI $.

    $( Value of the recursive definition generator.  (Contributed by Jim
       Kingdon, 26-Jul-2019.) $)
    rdgival $p |- ( ( F Fn _V /\ A e. V /\ B e. On ) -> ( rec ( F , A ) ` B ) =
        ( A u. U_ x e. B ( F ` ( rec ( F , A ) ` x ) ) ) ) $=
      ( cvv wfn wcel con0 w3a crdg cfv cv cres ciun cun rdgivallem fvres fveq2d
      iuneq2i uneq2i syl6eq ) DFGBEHCIHJCDBKZLBACAMZUCCNLZDLZOZPBACUDUCLZDLZOZP
      ABCDEQUGUJBACUFUIUDCHUEUHDUDCUCRSTUAUB $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d F x y $.  $d I x y $.  $d V x y $.  $d ph x $.
    rdgss.1 $e |- ( ph -> F Fn _V ) $.
    rdgss.2 $e |- ( ph -> I e. V ) $.
    rdgss.3 $e |- ( ph -> A e. On ) $.
    rdgss.4 $e |- ( ph -> B e. On ) $.
    rdgss.5 $e |- ( ph -> A C_ B ) $.
    $( Subset and recursive definition generator.  (Contributed by Jim Kingdon,
       15-Jul-2019.) $)
    rdgss $p |- ( ph -> ( rec ( F , I ) ` A ) C_ ( rec ( F , I ) ` B ) ) $=
      ( vx vy cv cfv ciun cun wss wcel wceq crdg wrex wral fveq2d sseq2d rspcev
      ssel ssid fveq2 mpan2 syl6 ralrimiv syl iunss2 unss2 3syl cvv wfn rdgival
      con0 syl3anc 3sstr4d ) AELBLNZDEUAZOZDOZPZQZEMCMNZVDOZDOZPZQZBVDOZCVDOZAV
      FVKRZMCUBZLBUCZVGVLRVHVMRABCRZVRKVSVQLBVSVCBSVCCSZVQBCVCUGVTVFVFRZVQVFUHV
      PWAMVCCVIVCTZVKVFVFWBVJVEDVIVCVDUIUDUEUFUJUKULUMLMBCVFVKUNVGVLEUOUPADUQUR
      ZEFSZBUTSVNVHTGHILEBDFUSVAAWCWDCUTSVOVMTGHJMECDFUSVAVB $.
  $}

  ${
    $d F x $.  $d A x $.  $d B x $.  $d V x $.
    rdgisuc1.1 $e |- ( ph -> F Fn _V ) $.
    rdgisuc1.2 $e |- ( ph -> A e. V ) $.
    rdgisuc1.3 $e |- ( ph -> B e. On ) $.
    $( One way of describing the value of the recursive definition generator at
       a successor.  There is no condition on the characteristic function ` F `
       other than ` F Fn _V ` .  Given that, the resulting expression
       encompasses both the expected successor term
       ` ( F `` ( rec ( F , A ) `` B ) ) ` but also terms that correspond to
       the initial value ` A ` and to limit ordinals
       ` U_ x e. B ( F `` ( rec ( F , A ) `` x ) ) ` .

       If we add conditions on the characteristic function, we can show tighter
       results such as ~ rdgisucinc .  (Contributed by Jim Kingdon,
       9-Jun-2019.) $)
    rdgisuc1 $p |- ( ph -> ( rec ( F , A ) ` suc B ) =
        ( A u. ( U_ x e. B ( F ` ( rec ( F , A ) ` x ) )
          u. ( F ` ( rec ( F , A ) ` B ) ) ) ) ) $=
      ( csuc crdg cfv cv ciun cun wcel con0 wceq syl uneq2d cvv rdgival syl3anc
      wfn suceloni df-suc iuneq1 ax-mp iunxun eqtri fveq2 fveq2d iunxsng syl5eq
      csn eqtrd ) ADJZECKZLZCBUQBMZURLZELZNZOZCBDVBNZDURLZELZOZOZAEUAUDCFPUQQPZ
      USVDRGHADQPZVJIDUESBCUQEFUBUCAVKVDVIRIVKVCVHCVKVCVEBDUOZVBNZOZVHVCBDVLOZV
      BNZVNUQVORVCVPRDUFBUQVOVBUGUHBDVLVBUIUJVKVMVGVEBDVBVGQUTDRVAVFEUTDURUKULU
      MTUNTSUP $.

    ${
      $d A x $.  $d B x $.  $d F x $.
      rdgisucinc.inc $e |- ( ph -> A. x x C_ ( F ` x ) ) $.
      $( Value of the recursive definition generator at a successor.

         This can be thought of as a generalization of ~ oasuc and ~ omsuc .
         (Contributed by Jim Kingdon, 29-Aug-2019.) $)
      rdgisucinc $p |- ( ph -> ( rec ( F , A ) ` suc B ) =
          ( F ` ( rec ( F , A ) ` B ) ) ) $=
        ( csuc crdg cfv cun cvv wcel con0 wceq syl3anc wss cv ciun rdgisuc1 wfn
        unass syl6eqr rdgival uneq1d wal rdgexggg id fveq2 sseq12d sylc ssequn1
        spcgv sylib 3eqtr2d ) ADKECLZMZCBDBUAZUSMEMUBZNZDUSMZEMZNZVDVENZVEAUTCV
        BVENNVFABCDEFGHIUCCVBVEUEUFAVDVCVEAEOUDZCFPZDQPZVDVCRGHIBCDEFUGSUHAVDVE
        TZVGVERAVDOPZVAVAEMZTZBUIVKAVHVIVJVLGHICDEFQUJSJVNVKBVDOVAVDRZVAVDVMVEV
        OUKVAVDEULUMUPUNVDVEUOUQUR $.
    $}
  $}

  ${
    $d A w x z $.  $d B z $.  $d F w x z $.  $d ph x z $.
    rdgon.1 $e |- ( ph -> F Fn _V ) $.
    rdgon.2 $e |- ( ph -> A e. On ) $.
    rdgon.3 $e |- ( ph -> A. x e. On ( F ` x ) e. On ) $.
    $( Evaluating the recursive definition generator produces an ordinal.
       There is a hypothesis that the characteristic function produces ordinals
       on ordinal arguments.  (Contributed by Jim Kingdon, 26-Jul-2019.) $)
    rdgon $p |- ( ( ph /\ B e. On ) -> ( rec ( F , A ) ` B ) e. On ) $=
      ( vz vw con0 wcel cfv cv wi wceq fveq2 eleq1d wral wa crdg imbi2d r19.21v
      cres ciun cun wb fvres adantl cbvralv sylib rspcv syl5com adantr ralimdva
      sylbird cvv vex iunon mpan syl6 onun2 syl6an wfn rdgivallem 3expa sylibrd
      jca sylan expcom a2d syl5bi tfis3 impcom ) DKLADECUAZMZKLZAINZVOMZKLZOZAB
      NZVOMZKLZOZAVQOIBDVRWBPZVTWDAWFVSWCKVRWBVOQRUBVRDPZVTVQAWGVSVPKVRDVOQRUBW
      EBVRSAWDBVRSZOVRKLZWAAWDBVRUCWIAWHVTAWIWHVTOAWITZWHCBVRWBVOVRUDMZEMZUEZUF
      ZKLZVTAWHWOOWIACKLZWHWMKLZWOGAWHWLKLZBVRSZWQAWDWRBVRAWBVRLZTWDWKKLZWRWTXA
      WDUGAWTWKWCKWBVRVOUHRUIAXAWROWTAJNZEMZKLZJKSZXAWRAWBEMZKLZBKSXEHXGXDBJKWB
      XBPXFXCKWBXBEQRUJUKXDWRJWKKXBWKPXCWLKXBWKEQRULUMUNUPUOVRUQLWSWQIURBVRWLUQ
      USUTVACWMVBVCUNWJVSWNKAEUQVDZWPTWIVSWNPZAXHWPFGVHXHWPWIXIBCVREKVEVFVIRVGV
      JVKVLVMVN $.
  $}

  ${
    $d x g F $.  $d x g A $.
    ${
      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 $=
        ( vg vx c0 crdg cfv cvv cdm ciun cun cmpt wcel wceq ax-mp eqtri eqeltri
        cv 0ex dmeq fveq1 fveq2d iuneq12d uneq2d eqid iuneq1 0iun fvmpt df-irdg
        dm0 unex tfr0 uneq2i un0 ) FBAGZHZFDIAEDSZJZESZURHZBHZKZLZMZHZAVFINUQVF
        OVFAEFJZUTFHZBHZKZLZIFINVFVKOTDFVDVKIVEURFOZVCVJAVLEUSVGVBVIURFUAVLVAVH
        BUTURFUBUCUDUEVEUFAVJCVJFIVJEFVIKZFVGFOVJVMOUKEVGFVIUGPEVIUHQZTRULZUIPZ
        VORUPVEIEDBAUJUMPVFAFLZAVFVKVQVPVJFAVNUNQAUOQQ $.
    $}
  $}

  ${
    $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 $.
  $}

  ${
    rdg0.1 $e |- A e. _V $.
    rdg0.2 $e |- F Fn _V $.
    $( The recursive definition generator produces a set on a set input.
       (Contributed by Mario Carneiro, 3-Jul-2019.) $)
    rdgexg $p |- ( B e. V -> ( rec ( F , A ) ` B ) e. _V ) $=
      ( cvv wcel crdg cfv rdgexgg mpan ) AGHBDHBCAIJGHEABCGDFKL $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Finite recursion
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Define a constant for the finite recursive definition generator. $)
  $c frec $.

  $( Extend class notation with the fnite recursive definition generator, with
     characteristic function ` F ` and initial value ` I ` . $)
  cfrec $a class frec ( F , I ) $.

  ${
    $d x g m F $.  $d x g m I $.
    $( Define a recursive definition generator on ` _om ` (the class of finite
       ordinals) with characteristic function ` F ` and initial value ` I ` .
       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 ` frec ` 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; see ~ frec0g and ~ frecsuc .

       Unlike with transfinite recursion, finite recurson can readily divide
       definitions and proofs into zero and successor cases, because even
       without excluded middle we have theorems such as ~ nn0suc .  The
       analogous situation with transfinite recursion - being able to say that
       an ordinal is zero, successor, or limit - is enabled by excluded middle
       and thus is not available to us.  For the characteristic functions which
       satisfy the conditions given at ~ frecrdg , this definition and
       ~ df-irdg restricted to ` _om ` produce the same result.

       _Note:  We introduce_ ` frec ` _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 Mario Carneiro and Jim Kingdon, 10-Aug-2019.) $)
    df-frec $a |- frec ( F , I ) = ( recs ( ( g e. _V |-> { x |
      ( E. m e. _om ( dom g = suc m /\ x e. ( F ` ( g ` m ) ) ) \/
      ( dom g = (/) /\ x e. I ) ) } ) ) |` _om ) $.
  $}

  ${
    $d x g m F $.  $d x g m G $.  $d x g m A $.  $d x g m B $.
    $( Equality theorem for the finite recursive definition generator.
       (Contributed by Jim Kingdon, 30-May-2020.) $)
    freceq1 $p |- ( F = G -> frec ( F , A ) = frec ( G , A ) ) $=
      ( vg vm vx wceq cvv cv cfv wcel wa com wrex wo cab cmpt crecs cres cfrec
      csuc c0 simpl fveq1d eleq2d anbi2d rexbidv orbi1d abbidv mpteq2dva recseq
      cdm syl reseq1d df-frec 3eqtr4g ) BCGZDHDIZULZEIZUAGZFIZUTURJZBJZKZLZEMNZ
      USUBGVBAKLZOZFPZQZRZMSDHVAVBVCCJZKZLZEMNZVHOZFPZQZRZMSBATCATUQVLVTMUQVKVS
      GVLVTGUQDHVJVRUQURHKZLZVIVQFWBVGVPVHWBVFVOEMWBVEVNVAWBVDVMVBWBVCBCUQWAUCU
      DUEUFUGUHUIUJVKVSUKUMUNFDEBAUOFDECAUOUP $.

    $( Equality theorem for the finite recursive definition generator.
       (Contributed by Jim Kingdon, 30-May-2020.) $)
    freceq2 $p |- ( A = B -> frec ( F , A ) = frec ( F , B ) ) $=
      ( vg vm vx wceq cvv cv cfv wcel wa com cab cmpt crecs cres cfrec df-frec
      wo cdm csuc c0 simpl eleq2d anbi2d orbi2d abbidv mpteq2dva recseq reseq1d
      wrex syl 3eqtr4g ) ABGZDHDIZUAZEIZUBGFIZURUPJCJKLEMULZUQUCGZUSAKZLZTZFNZO
      ZPZMQDHUTVAUSBKZLZTZFNZOZPZMQCARCBRUOVGVMMUOVFVLGVGVMGUODHVEVKUOUPHKZLZVD
      VJFVOVCVIUTVOVBVHVAVOABUSUOVNUDUEUFUGUHUIVFVLUJUMUKFDECASFDECBSUN $.
  $}

  ${
    $d A g m x $.  $d F g m x $.
    $( Finite recursion produces a set.  (Contributed by Jim Kingdon,
       20-Aug-2021.) $)
    frecex $p |- frec ( F , A ) e. _V $=
      ( vg vm vx cfrec cvv cv cdm csuc wceq cfv wcel wa com wrex c0 wo cab cmpt
      crecs cres df-frec wfun tfrfun omex resfunexg mp2an eqeltri ) BAFCGCHZIZD
      HZJKEHZULUJLBLMNDOPUKQKUMAMNRESTZUAZOUBZGECDBAUCUOUDOGMUPGMUNUEUFUOOGUGUH
      UI $.
  $}

  ${
    $d A f g m u v x $.  $d F f g m u v x $.
    $( Finite recursion produces a function.  See also ~ frecfnom which also
       states that the domain of that function is ` _om ` but which puts
       conditions on ` A ` and ` F ` .  (Contributed by Jim Kingdon,
       13-Feb-2022.) $)
    frecfun $p |- Fun frec ( F , A ) $=
      ( vg vm vx cfrec wfun cvv cv cdm csuc wceq cfv wcel wa com wrex c0 wo cab
      cmpt crecs cres tfrfun funres ax-mp df-frec funeqi mpbir ) BAFZGCHCIZJZDI
      ZKLEIZUMUKMBMNODPQULRLUNANOSETUAZUBZPUCZGZUPGURUOUDPUPUEUFUJUQECDBAUGUHUI
      $.
  $}

  ${
    $d g m y F $.  $d g m y A $.  $d x g m y $.
    nffrec.1 $e |- F/_ x F $.
    nffrec.2 $e |- F/_ x A $.
    $( Bound-variable hypothesis builder for the finite recursive definition
       generator.  (Contributed by Jim Kingdon, 30-May-2020.) $)
    nffrec $p |- F/_ x frec ( F , A ) $=
      ( vg vm vy cfrec cvv cv wceq cfv wcel wa com nfcv nfv nfcri nfan cdm csuc
      wrex c0 wo cab cmpt crecs cres df-frec nffv nfrexya nfor nfab nfmpt nfres
      nfrecs nfcxfr ) ACBIFJFKZUAZGKZUBLZHKZVAUSMZCMZNZOZGPUCZUTUDLZVCBNZOZUEZH
      UFZUGZUHZPUIHFGCBUJAVOPAVNAFJVMAJQVLAHVHVKAVGAGPAPQZVBVFAVBARAHVEAVDCDAVD
      QUKSTULVIVJAVIARAHBESTUMUNUOUQVPUPUR $.
  $}

  ${
    $d A g m x $.  $d F g m x $.
    $( The initial value resulting from finite recursive definition generation.
       (Contributed by Jim Kingdon, 7-May-2020.) $)
    frec0g $p |- ( A e. V -> ( frec ( F , A ) ` (/) ) = A ) $=
      ( vg vm vx wcel c0 cfv cvv cv cdm wceq wa com wrex wo cab dm0 ax-mp cfrec
      csuc cmpt biantrur wn wne vex nsuceq0g nesymi eqeq1i mtbir intnanr biorfi
      a1i nrex orcom 3bitri abbii abid2 eqtr3i elex syl5eqel dmeq eqeq1d fveq2d
      0ex fveq1 eleq2d anbi12d rexbidv anbi1d orbi12d abbidv eqid fvmptg syl6eq
      mpan syl eqeltrd crecs cres df-frec fveq1i peano1 fvres eqtri tfr0 syl5eq
      eqtrd ) ACGZHBAUAZIZHDJDKZLZEKZUBZMZFKZWOWMIZBIZGZNZEOPZWNHMZWRAGZNZQZFRZ
      UCZIZAWJXJJGZWLXJMWJXJAJWJHLZWPMZWRWOHIZBIZGZNZEOPZXLHMZXENZQZFRZJGZXJAMW
      JYBAJXEFRYBAXEYAFXEXTXTXRQYAXSXESUDXRXTXQEOXQUEWOOGXMXPXMHWPMWPHWOJGWPHUF
      EUGWOJUHTUIXLHWPSUJUKULUNUOUMXTXRUPUQURFAUSUTZACVAZVBYCXJYBAHJGYCXJYBMVFD
      HXHYBJJXIWMHMZXGYAFYFXCXRXFXTYFXBXQEOYFWQXMXAXPYFWNXLWPWMHVCZVDYFWTXOWRYF
      WSXNBWOWMHVGVEVHVIVJYFXDXSXEYFWNXLHYGVDVKVLVMXIVNVOVQYDVPVRZYEVSXKWLHXIVT
      ZIZXJWLHYIOWAZIZYJHWKYKFDEBAWBWCHOGYLYJMWDHOYIWETWFYIXIJYIVNWGWHVRYHWI $.
  $}

  ${
    $d A x $.  $d F x $.  $d S x y $.  $d m ph $.  $d m x y $.  $d F y $.
    frecabex.sex $e |- ( ph -> S e. V ) $.
    frecabex.fvex $e |- ( ph -> A. y ( F ` y ) e. _V ) $.
    frecabex.aex $e |- ( ph -> A e. W ) $.
    $( The class abstraction from ~ df-frec exists.  This is a lemma for other
       finite recursion proofs.  (Contributed by Jim Kingdon, 13-May-2020.) $)
    frecabex $p |- ( ph -> { x |
        ( E. m e. _om ( dom S = suc m /\ x e. ( F ` ( S ` m ) ) ) \/
        ( dom S = (/) /\ x e. A ) ) } e. _V ) $=
      ( cv wceq cfv wcel wa com cab cvv cdm csuc wrex c0 wo wral omex wss simpr
      abssi wal fvexg sylancl fveq2 eleq1d spcgv sylc ssexg ralrimivw abrexex2g
      vex sylancr jca cun unexb unab eleq1i bitri sylib ) AEUAZFMZUBNZBMZVKEOZG
      OZPZQZFRUCZBSZTPZVJUDNZVMDPZQZBSZTPZQZVRWCUEBSZTPZAVTWEARTPVQBSZTPZFRUFVT
      UGAWJFRAWIVOUHVOTPZWJVQBVOVLVPUIUJAVNTPZCMZGOZTPZCUKWKAEHPVKTPWLJFVAVKEHT
      ULUMKWOWKCVNTWMVNNWNVOTWMVNGUNUOUPUQWIVOTURVBUSVQFBRTTUTVBAWDDUHDIPWEWCBD
      WAWBUIUJLWDDIURVBVCWFVSWDVDZTPWHVSWDVEWPWGTVRWCBVFVGVHVI $.
  $}

  ${
    $d g m x y A $.  $d g m x y z F $.  $d g m y V $.
    frectfr.1 $e |- G = ( g e. _V |-> { x | ( E. m e. _om ( dom g = suc m /\
          x e. ( F ` ( g ` m ) ) ) \/ ( dom g = (/) /\ x e. A ) ) } ) $.
    $( Lemma to connect transfinite recursion theorems with finite recursion.
       That is, given the conditions ` F Fn _V ` and ` A e. V ` on
       ` frec ( F , A ) ` , we want to be able to apply ~ tfri1d or ~ tfri2d ,
       and this lemma lets us satisfy hypotheses of those theorems.

       (Contributed by Jim Kingdon, 15-Aug-2019.) $)
    frectfr $p |- ( ( A. z ( F ` z ) e. _V /\ A e. V ) ->
        A. y ( Fun G /\ ( G ` y ) e. _V ) ) $=
      ( cv cfv cvv wcel wal wa wfun wfn wceq vex cdm csuc com wrex cab wral a1i
      c0 wo simpl simpr frecabex ralrimivw fnmpt funfvex funfni sylancl funmpt2
      syl jctil alrimiv ) CKGLMNCOZDINZPZHQZBKZHLMNZPBVDVGVEVDHMRZVFMNVGVDEKZUA
      ZFKZUBSAKZVKVILGLNPFUCUDVJUHSVLDNPUIAUEZMNZEMUFVHVDVNEMVDACDVIFGMIVIMNVDE
      TUGVBVCUJVBVCUKULUMEMVMHMJUNUSBTVGMVFHVFHUOUPUQEMVMHJURUTVA $.
  $}

  ${
    $d A g m x y z $.  $d B g m x z $.  $d F g m x y z $.  $d G g m x y z $.
    $d V g m x y $.

    $( The function generated by finite recursive definition generation is a
       function on omega.  (Contributed by Jim Kingdon, 13-May-2020.) $)
    frecfnom $p |- ( ( A. z ( F ` z ) e. _V /\ A e. V ) ->
        frec ( F , A ) Fn _om ) $=
      ( vg vm vx vy cv cfv cvv wcel wal wa wceq com con0 cres wfn eqid cdm csuc
      wrex c0 wo cab cmpt crecs cin cfrec frectfr tfri1d fnresin1 syl wb omsson
      wss sseqin2 mpbi reseq2i df-frec eqtr4i fneq12 mp2an sylib ) AICJKLAMBDLN
      ZEKEIZUAZFIZUBOGIZVIVGJCJLNFPUCVHUDOVJBLNUEGUFUGZUHZQPUIZRZVMSZCBUJZPSZVF
      VLQSVOVFHVLVKVLTGHABEFCVKDVKTUKULQPVLUMUNVNVPOVMPOZVOVQUOVNVLPRVPVMPVLPQU
      QVRUPPQURUSZUTGEFCBVAVBVSVMPVNVPVCVDVE $.

    ${
      frecsuclem1.h $e |- G = ( g e. _V |-> { x | (
        E. m e. _om ( dom g = suc m /\ x e. ( F ` ( g ` m ) ) )
        \/ ( dom g = (/) /\ x e. A ) ) } ) $.
      $( Lemma for ~ frecsuc .  (Contributed by Jim Kingdon, 13-Aug-2019.) $)
      frecsuclem1 $p |- ( ( A. z ( F ` z ) e. _V /\ A e. V /\ B e. _om ) ->
          ( frec ( F , A ) ` suc B ) = ( G ` ( recs ( G ) |` suc B ) ) ) $=
        ( vy cv cfv cvv wcel com csuc cres wceq wa wal w3a cfrec crecs cdm wrex
        c0 cab cmpt df-frec recseq ax-mp reseq1i eqtr4i fveq1i peano2 fvres syl
        wo syl5eq 3ad2ant3 con0 nnon eqid frectfr tfri2d sylan2 3impa eqtrd ) B
        LGMNOBUAZCIOZDPOZUBDQZGCUCZMZVMHUDZMZVPVMRHMZVLVJVOVQSVKVLVOVMVPPRZMZVQ
        VMVNVSVNENELZUEZFLZQSALZWCWAMGMOTFPUFWBUGSWDCOTUSAUHUIZUDZPRVSAEFGCUJVP
        WFPHWESVPWFSJHWEUKULUMUNUOVLVMPOZVTVQSDUPZVMPVPUQURUTVAVJVKVLVQVRSZVLVJ
        VKTZVMVBOZWIVLWGWKWHVMVCURWJKVMVPHVPVDAKBCEFGHIJVEVFVGVHVI $.

      $( Lemma for ~ frecsuc .  (Contributed by Jim Kingdon, 15-Aug-2019.) $)
      frecsuclemdm $p |- ( ( A. z ( F ` z ) e. _V /\ A e. V /\ B e. _om ) ->
          dom ( recs ( G ) |` suc B ) = suc B ) $=
        ( vy cv cfv cvv wcel wal cdm wss wceq con0 com w3a csuc crecs cres nnon
        suceloni onss 3syl 3ad2ant3 wb wfn eqid frectfr tfri1d fndm syl 3adant3
        wa sseq2d mpbird ssdmres sylib ) BLGMNOBPZCIOZDUAOZUBZDUCZHUDZQZRZVIVHU
        EQVHSVGVKVHTRZVFVDVLVEVFDTOVHTOVLDUFDUGVHUHUIUJVDVEVKVLUKVFVDVEUSZVJTVH
        VMVITULVJTSVMKVIHVIUMAKBCEFGHIJUNUOTVIUPUQUTURVAVHVIVBVC $.

      $( Lemma for ~ frecsuc .  (Contributed by Jim Kingdon, 15-Aug-2019.) $)
      frecsuclem2 $p |- ( ( A. z ( F ` z ) e. _V /\ A e. V /\ B e. _om ) ->
          ( ( recs ( G ) |` suc B ) ` B ) = ( frec ( F , A ) ` B ) ) $=
        ( com wcel cv cfv cvv crecs csuc cres wceq fvres wal cfrec syl cdm wrex
        sucidg wa c0 cab cmpt df-frec recseq ax-mp reseq1i eqtr4i fveq1i syl5eq
        wo eqtr4d 3ad2ant3 ) DKLZBMGNOLBUADHPZDQZRNZDGCUBZNZSCILVAVDDVBNZVFVADV
        CLVDVGSDKUFDVCVBTUCVAVFDVBKRZNVGDVEVHVEEOEMZUDZFMZQSAMZVKVINGNLUGFKUEVJ
        UHSVLCLUGURAUIUJZPZKRVHAEFGCUKVBVNKHVMSVBVNSJHVMULUMUNUOUPDKVBTUQUSUT
        $.

      $( Lemma for ~ frecsuc .  (Contributed by Jim Kingdon, 15-Aug-2019.) $)
      frecsuclem3 $p |- ( ( A. z ( F ` z ) e. _V /\ A e. V /\ B e. _om ) ->
          ( frec ( F , A ) ` suc B ) = ( F ` ( frec ( F , A ) ` B ) ) ) $=
        ( cv cfv cvv wcel com wceq wa wrex c0 eqeq1d vy wal w3a csuc cfrec cres
        crecs cdm wo cab wfun con0 wfn eqid frectfr tfri1d fnfun 3adant3 peano2
        syl 3ad2ant3 resfunexg syl2anc simp1 simp2 frecabex fveq1 fveq2d eleq2d
        wi dmeq anbi12d rexbidv anbi1d orbi12d abbidv fvmptg ex frecsuclem1 mpd
        sylibrd abeq2d wn frecsuclemdm wne peano3 eqnetrd neneqd intnanrd biorf
        orcom syl6bb vex suc11g mpan2 bitrd eqcom 3bitr2d fveq2 ceqsrexbv eqrdv
        wb 3anibar frecsuclem2 eqtrd ) BKGLMNBUBZCINZDONZUCZDUDZGCUEZLZDHUGZXJU
        FZLZGLZDXKLZGLXIAXLXPXFXGXHAKZXLNZXRXPNZXIXSFKZDPZXRYAXNLZGLZNZQZFORZXH
        XTQXIXSXNUHZYAUDZPZYEQZFORZYHSPZXRCNZQZUIZYLYGXIYPAXLXIYPAUJZMNZXLYQPZX
        IABCXNFGMIXIXMUKZXJONZXNMNZXFXGYTXHXFXGQZXMULUMYTUUCUAXMHXMUNAUABCEFGHI
        JUOUPULXMUQUTURXHXFUUAXGDUSVAXMXJOVBVCZXFXGXHVDXFXGXHVEVFXIYRXNHLZYQPZY
        SXIUUBYRUUFVJUUDUUBYRUUFEXNEKZUHZYIPZXRYAUUGLZGLZNZQZFORZUUHSPZYNQZUIZA
        UJYQMMHUUGXNPZUUQYPAUURUUNYLUUPYOUURUUMYKFOUURUUIYJUULYEUURUUHYHYIUUGXN
        VKZTUURUUKYDXRUURUUJYCGYAUUGXNVGVHVIVLVMUURUUOYMYNUURUUHYHSUUSTVNVOVPJV
        QVRUTXIXLUUEYQABCDEFGHIJVSTWAVTWBXIYLYOYLUIZYPXIYOWCYLUUTXBXIYMYNXIYHSX
        IYHXJSABCDEFGHIJWDZXHXFXJSWEXGDWFVAWGWHWIYOYLWJUTYOYLWKWLXIYKYFFOXIYJYB
        YEXIYJDYAPZYBXIYJXJYIPZUVBXIYHXJYIUVATXHXFUVCUVBXBZXGXHYAMNUVDFWMDYAOMW
        NWOVAWPDYAWQWLVNVMWRYEXTFDOYBYDXPXRYBYCXOGYADXNWSVHVIWTWLXCXAXIXOXQGABC
        DEFGHIJXDVHXE $.
    $}
  $}

  ${
    $d A f g m x y $.  $d A g m y z $.  $d B g m y z $.  $d F f g m n x y $.
    $d F g m y z $.  $d V g m y $.  $d f x n z $.
    $( The successor value resulting from finite recursive definition
       generation.  (Contributed by Jim Kingdon, 15-Aug-2019.) $)
    frecsuc $p |- ( ( A. z ( F ` z ) e. _V /\ A e. V /\ B e. _om ) ->
        ( frec ( F , A ) ` suc B ) = ( F ` ( frec ( F , A ) ` B ) ) ) $=
      ( vy vg vm vf vx cvv cv wceq cfv wcel wa com wrex wo cab vn cdm csuc cmpt
      c0 suceq eqeq2d fveq2 fveq2d eleq2d anbi12d cbvrexv orbi1i anbi2d rexbidv
      abbii eleq1 orbi12d cbvabv eqtri mpteq2i dmeq eqeq1d fveq1 anbi1d cbvmptv
      abbidv frecsuclem3 ) FABCGHDIKILZUBZUALZUCZMZJLZVKVINZDNZOZPZUAQRZVJUEMZV
      NBOZPZSZJTZUDZEWEIKVJHLZUCZMZFLZWFVINZDNZOZPZHQRZVTWIBOZPZSZFTZUDGKGLZUBZ
      WGMZWIWFWSNZDNZOZPZHQRZWTUEMZWOPZSZFTZUDIKWDWRWDWHVNWKOZPZHQRZWBSZJTWRWCX
      NJVSXMWBVRXLUAHQVKWFMZVMWHVQXKXOVLWGVJVKWFUFUGXOVPWKVNXOVOWJDVKWFVIUHUIUJ
      UKULUMUPXNWQJFVNWIMZXMWNWBWPXPXLWMHQXPXKWLWHVNWIWKUQUNUOXPWAWOVTVNWIBUQUN
      URUSUTVAIGKWRXJVIWSMZWQXIFXQWNXFWPXHXQWMXEHQXQWHXAWLXDXQVJWTWGVIWSVBZVCXQ
      WKXCWIXQWJXBDWFVIWSVDUIUJUKUOXQVTXGWOXQVJWTUEXRVCVEURVGVFUTVH $.
  $}

  ${
    frecrdg.1 $e |- ( ph -> F Fn _V ) $.
    frecrdg.2 $e |- ( ph -> A e. V ) $.
    frecrdg.inc $e |- ( ph -> A. x x C_ ( F ` x ) ) $.
    $d A x y z $.  $d F x y z $.  $d V x $.  $d ph x y $.
    $( Transfinite recursion restricted to omega.

       Given a suitable characteristic function, ~ df-frec produces the same
       results as ~ df-irdg restricted to ` _om ` .

       Presumably the theorem would also hold if ` F Fn _V ` were changed to
       ` A. z ( F `` z ) e. _V ` .  (Contributed by Jim Kingdon,
       29-Aug-2019.) $)
    frecrdg $p |- ( ph -> frec ( F , A ) = ( rec ( F , A ) |` _om ) ) $=
      ( vz com cfv cvv wcel wfn syl con0 wceq c0 fveq2 adantr vy cfrec crdg wal
      cv vex funfvex funfni mpan2 alrimiv frecfnom syl2anc wss rdgifnon2 omsson
      cres fnssres sylancl csuc eqeq12d frec0g peano1 fvres ax-mp syl5eq eqtr4d
      rdg0g wi wa simpr ad2antlr eqtrd fveq2d jca frecsuc 3expa nnon rdgisucinc
      sylan 3eqtr4d peano2 ex expcom finds2 impcom eqfnfvd ) ABJDCUBZDCUCZJUPZA
      IUEZDKLMZIUDZCEMZWGJNADLNZWLFWNWKIWNWJLMWKIUFWKLWJDWJDUGUHUIUJOZGICDEUKUL
      AWHPNZJPUMWIJNAWLWMWPWOGICDEUNULUOPJWHUQURBUEZJMAWQWGKZWQWIKZQZWTRWGKZRWI
      KZQUAUEZWGKZXCWIKZQZXCUSZWGKZXGWIKZQZABUAWQRQWRXAWSXBWQRWGSWQRWISUTWQXCQW
      RXDWSXEWQXCWGSWQXCWISUTWQXGQWRXHWSXIWQXGWGSWQXGWISUTAXACXBAWMXACQGCDEVAOA
      XBRWHKZCRJMXBXKQVBRJWHVCVDAWMXKCQGCEDVGOVEVFAXCJMZXFXJVHAXLVIZXFXJXMXFVIZ
      XHXGWHKZXIXNXDDKZXCWHKZDKZXHXOXNXDXQDXNXDXEXQXMXFVJXLXEXQQAXFXCJWHVCVKVLV
      MXMXHXPQZXFAWLWMVIXLXSAWLWMWOGVNWLWMXLXSICXCDEVOVPVSTXMXOXRQXFXMBCXCDEAWN
      XLFTAWMXLGTXMXLXCPMAXLVJXCVQOAWQWQDKUMBUDXLHTVRTVTXLXIXOQZAXFXLXGJMXTXCWA
      XGJWHVCOVKVFWBWCWDWEWF $.
  $}

  ${
    $d A x y z $.  $d B x $.  $d F x y z $.  $d S x y z $.  $d ph x y z $.
    freccl.ex $e |- ( ph -> A. z ( F ` z ) e. _V ) $.
    freccl.a $e |- ( ph -> A e. S ) $.
    freccl.cl $e |- ( ( ph /\ z e. S ) -> ( F ` z ) e. S ) $.
    freccl.b $e |- ( ph -> B e. _om ) $.
    $( Closure for finite recursion.  (Contributed by Jim Kingdon,
       25-May-2020.) $)
    freccl $p |- ( ph -> ( frec ( F , A ) ` B ) e. S ) $=
      ( vx com wcel cfv cv wi wceq fveq2 eleq1d adantr cfrec imbi2d csuc frec0g
      vy c0 syl eqeltrd wa wex cvv wfn wal frecfnom syl2anc funfvex sylan isset
      funfni sylib ex wb eleq1 adantl 3imtr3d exlimdv mpd simpr frecsuc syl3anc
      sylibrd expcom finds2 vtoclga mpcom ) DLMADFCUAZNZEMZJAKOZVPNZEMZPAVRPKDL
      VSDQZWAVRAWBVTVQEVSDVPRSUBWAUFVPNZEMUEOZVPNZEMZWDUCZVPNZEMZAKUEVSUFQVTWCE
      VSUFVPRSVSWDQVTWEEVSWDVPRSVSWGQVTWHEVSWGVPRSAWCCEACEMZWCCQHCFEUDUGHUHAWDL
      MZWFWIPAWKUIZWFWEFNZEMZWIWLBOZWEQZBUJZWFWNPZWLWEUKMZWQAVPLULZWKWSAWOFNZUK
      MBUMZWJWTGHBCFEUNUOWSLWDVPWDVPUPUSUQBWEURUTAWQWRPWKAWPWRBAWPWRAWPUIWOEMZX
      AEMZWFWNAXCXDPWPAXCXDIVATWPXCWFVBAWOWEEVCVDWPXDWNVBAWPXAWMEWOWEFRSVDVEVAV
      FTVGWLWHWMEWLXBWJWKWHWMQAXBWKGTAWJWKHTAWKVHBCWDFEVIVJSVKVLVMVNVO $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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 ^oi $.  $( Ordinal exponentiation operation (caret subscript oi) $)

  $( 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. $)
  coei $a class ^oi $.

  $( 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.

       This definition is similar to a conventional definition of
       exponentiation except that it defines ` (/) ^oi A ` to be ` 1o ` for all
       ` A e. On ` , in order to avoid having different cases for whether the
       base is ` (/) ` or not.  (Contributed by Mario Carneiro, 4-Jul-2019.) $)
    df-oexpi $a |- ^oi = ( x e. On , y e. On |->
                 ( 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 con0 wcel wne 1on nsuceq0g ax-mp eqnetri ) ABCZDEBF
    GMDHIBFJKL $.

  $( 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 Jim
     Kingdon, 26-Jun-2019.) $)
  ordge1n0im $p |- ( Ord A -> ( 1o C_ A -> A =/= (/) ) ) $=
    ( word c1o wss c0 wcel wne ordgt0ge1 ne0i syl6bir ) ABCADEAFAEGAHAEIJ $.

  $( 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 $.

  $( 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 $.

  $( The characteristic function for ordinal addition is defined everywhere.
     (Contributed by Jim Kingdon, 27-Jul-2019.) $)
  oafnex $p |- ( x e. _V |-> suc x ) Fn _V $=
    ( cvv cv csuc cmpt vex sucex eqid fnmpti ) ABACZDZABKEZJAFGLHI $.

  ${
    $d x z $.
    sucinc.1 $e |- F = ( z e. _V |-> suc z ) $.
    $( Successor is increasing.  (Contributed by Jim Kingdon, 25-Jun-2019.) $)
    sucinc $p |- A. x x C_ ( F ` x ) $=
      ( cv cfv wss csuc sssucid cvv wcel wceq sucex suceq fvmptg mp2an sseqtr4i
      vex ax-gen ) AEZTCFZGATTHZUATITJKUBJKUAUBLARZTUCMBTBEZHUBJJCUDTNDOPQS $.

    $d A z $.  $d B z $.
    $( Successor is increasing.  (Contributed by Jim Kingdon, 14-Jul-2019.) $)
    sucinc2 $p |- ( ( B e. On /\ A e. B ) ->
        ( F ` A ) C_ ( F ` B ) ) $=
      ( con0 wcel wa csuc cfv wss word syl wceq cvv sucexg suceq fvmptg syl2anc
      elex wi eloni ordsucss imp sssucid syl6ss onelon cv adantr 3sstr4d ) CFGZ
      BCGZHZBIZCIZBDJZCDJZUMUNCUOUKULUNCKZUKCLULURUACUBBCUCMUDCUEUFUMBFGZUPUNNZ
      CBUGUSBOGUNOGUTBFTBFPABAUHZIZUNOODVABQERSMUKUQUONZULUKCOGUOOGVCCFTCFPACVB
      UOOODVACQERSUIUJ $.
  $}

  ${
    $d x y z $.
    $( Functionality and domain of ordinal addition.  (Contributed by NM,
       26-Aug-1995.)  (Proof shortened by Mario Carneiro, 3-Jul-2019.) $)
    fnoa $p |- +o Fn ( On X. On ) $=
      ( vx vy vz con0 cvv csuc cmpt crdg cfv coa df-oadd wcel vex oafnex rdgexg
      cv ax-mp fnmpt2i ) ABDDBPZCECPFGZAPZHIZJABCKSELUBELBMUASTEAMCNOQR $.

    $( Ordinal addition is a set.  (Contributed by Mario Carneiro,
       3-Jul-2019.) $)
    oaexg $p |- ( ( A e. V /\ B e. W ) -> ( A +o B ) e. _V ) $=
      ( vy vz vx cv cvv csuc cmpt crdg cfv wcel wal coa co vex oafnex con0 gen2
      rdgexg ax-mp df-oadd mpt2fvex mp3an1 ) EHZFIFHJKZGHZLMZINZEOGOACNBDNABPQI
      NUKGEUGINUKERUIUGUHIGRFSUBUCUAGETTUJABPICDGEFUDUEUF $.
  $}

  ${
    $d x A $.  $d x V $.
    $( The characteristic function for ordinal multiplication is defined
       everywhere.  (Contributed by Jim Kingdon, 23-Aug-2019.) $)
    omfnex $p |- ( A e. V -> ( x e. _V |-> ( x +o A ) ) Fn _V ) $=
      ( wcel cv coa cvv wral cmpt wfn vex oaexg mpan ralrimivw eqid fnmpt syl
      co ) BCDZAEZBFRZGDZAGHAGUAIZGJSUBAGTGDSUBAKTBGCLMNAGUAUCGUCOPQ $.
  $}

  ${
    $d x y z $.
    $( Functionality and domain of ordinal multiplication.  (Contributed by NM,
       26-Aug-1995.)  (Revised by Mario Carneiro, 3-Jul-2019.) $)
    fnom $p |- .o Fn ( On X. On ) $=
      ( vx vy vz con0 cv cvv coa co cmpt crdg cfv comu df-omul wcel vex 0ex wfn
      c0 omfnex ax-mp rdgexg fnmpt2i ) ABDDBEZCFCEAEZGHIZRJKZLABCMUCFNUFFNBORUC
      UEFPUDFNUEFQAOCUDFSTUATUB $.

    $( Ordinal multiplication is a set.  (Contributed by Mario Carneiro,
       3-Jul-2019.) $)
    omexg $p |- ( ( A e. V /\ B e. W ) -> ( A .o B ) e. _V ) $=
      ( vy vz vx cv cvv coa co cmpt c0 crdg wcel wal comu vex ax-mp con0 omfnex
      cfv 0ex wfn rdgexg gen2 df-omul mpt2fvex mp3an1 ) EHZFIFHGHZJKLZMNUBZIOZE
      PGPACOBDOABQKIOUNGEUJIOUNERMUJULIUCUKIOULIUDGRFUKIUASUESUFGETTUMABQICDGEF
      UGUHUI $.

    $( Functionality and domain of ordinal exponentiation.  (Contributed by
       Mario Carneiro, 29-May-2015.)  (Revised by Mario Carneiro,
       3-Jul-2019.) $)
    fnoei $p |- ^oi Fn ( On X. On ) $=
      ( vx vy vz con0 cv cvv comu co cmpt c1o crdg cfv coei df-oexpi wcel elexi
      vex 1on omexg mp2an eqid fnmpti rdgexg ax-mp fnmpt2i ) ABDDBEZCFCEZAEZGHZ
      IZJKLZMABCNUFFOUKFOBQJUFUJFJDRPCFUIUJUGFOUHFOUIFOCQAQUGUHFFSTUJUAUBUCUDUE
      $.

    $( Ordinal exponentiation is a set.  (Contributed by Mario Carneiro,
       3-Jul-2019.) $)
    oeiexg $p |- ( ( A e. V /\ B e. W ) -> ( A ^oi B ) e. _V ) $=
      ( vy vz vx cv cvv comu co cmpt c1o crdg cfv wcel wal coei vex con0 fnmpti
      1on elexi omexg mp2an eqid rdgexg ax-mp gen2 df-oexpi mpt2fvex mp3an1 ) E
      HZFIFHZGHZJKZLZMNOZIPZEQGQACPBDPABRKIPUSGEUMIPUSESMUMUQIMTUBUCFIUPUQUNIPU
      OIPUPIPFSGSUNUOIIUDUEUQUFUAUGUHUIGETTURABRICDGEFUJUKUL $.
  $}

  ${
    $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 wcel cvv cv csuc cmpt crdg cfv co wceq oafnex rdgexgg rdgeq2
      coa fveq1d fveq2 df-oadd ovmpt2g mpd3an3 ) BFGCFGCAHAIJKZBLZMZHGBCSNUGOBC
      UEFFAPQDEBCFFEIZUEDIZLZMUGSUHUFMHUIBOUHUJUFUIBUERTUHCUFUADEAUBUCUD $.

    $( 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 wcel cvv cv coa co cmpt crdg cfv comu wceq 0elon wfn omfnex
      c0 rdgexggg syl3an1 mp3an2 oveq2 mpteq2dv rdgeq1 syl fveq1d fveq2 df-omul
      ovmpt2g mpd3an3 ) BFGZCFGZCAHAIZBJKZLZTMZNZHGZBCOKUSPUMTFGZUNUTQUMUQHRVAU
      NUTABFSTCUQFFUAUBUCDEBCFFEIZAHUODIZJKZLZTMZNUSOVBURNHVCBPZVBVFURVGVEUQPVF
      URPVGAHVDUPVCBUOJUDUETVEUQUFUGUHVBCURUIDEAUJUKUL $.
  $}

  ${
    $d x y z A $.  $d y z B $.
    $( Value of ordinal exponentiation.  (Contributed by Jim Kingdon,
       9-Jul-2019.) $)
    oeiv $p |- ( ( A e. On /\ B e. On ) -> ( A ^oi B ) =
        ( rec ( ( x e. _V |-> ( x .o A ) ) , 1o ) ` B ) ) $=
      ( vy vz con0 wcel cvv cv comu co cmpt c1o crdg cfv coei wceq 1on wfn syl
      wral vex omexg mpan ralrimivw eqid fnmpt rdgexggg syl3an1 mp3an2 mpteq2dv
      oveq2 rdgeq1 fveq1d fveq2 df-oexpi ovmpt2g mpd3an3 ) BFGZCFGZCAHAIZBJKZLZ
      MNZOZHGZBCPKVEQUSMFGZUTVFRUSVCHSZVGUTVFUSVBHGZAHUAVHUSVIAHVAHGUSVIAUBVABH
      FUCUDUEAHVBVCHVCUFUGTMCVCFFUHUIUJDEBCFFEIZAHVADIZJKZLZMNZOVEPVJVDOHVKBQZV
      JVNVDVOVMVCQVNVDQVOAHVLVBVKBVAJULUKMVMVCUMTUNVJCVDUODEAUPUQUR $.
  $}

  ${
    $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 exponent.  Definition 8.30 of
       [TakeutiZaring] p. 67.  (Contributed by NM, 31-Dec-2004.)  (Revised by
       Mario Carneiro, 8-Sep-2013.) $)
    oei0 $p |- ( A e. On -> ( A ^oi (/) ) = 1o ) $=
      ( vx con0 wcel c0 coei co cvv cv comu cmpt c1o crdg wceq 0elon oeiv mpan2
      cfv 1on rdg0g ax-mp syl6eq ) ACDZAEFGZEBHBIAJGKZLMRZLUCECDUDUFNOBAEPQLCDU
      FLNSLCUETUAUB $.
  $}

  ${
    $d x y z w A $.  $d x y B $.
    $( Closure law for ordinal addition.  Proposition 8.2 of [TakeutiZaring]
       p. 57.  (Contributed by NM, 5-May-1995.)  (Constructive proof by Jim
       Kingdon, 26-Jul-2019.) $)
    oacl $p |- ( ( A e. On /\ B e. On ) -> ( A +o B ) e. On ) $=
      ( vz vw con0 wcel wa coa co cvv cv csuc cmpt crdg cfv oav wfn oafnex a1i
      id wral wceq vex suceq eqid sucex fvmpt ax-mp eleq1i ralbii mprgbir rdgon
      suceloni eqeltrd ) AEFZBEFGABHIBCJCKZLZMZANOECABPUODABURURJQUOCRSUOTDKZUR
      OZEFZDEUAZUOVBUSLZEFZDEVAVDDEUTVCEUSJFUTVCUBDUCZCUSUQVCJURUPUSUDURUEUSVEU
      FUGUHUIUJUSUMUKSULUN $.

    $( Closure law for ordinal multiplication.  Proposition 8.16 of
       [TakeutiZaring] p. 57.  (Contributed by NM, 3-Aug-2004.)  (Constructive
       proof by Jim Kingdon, 26-Jul-2019.) $)
    omcl $p |- ( ( A e. On /\ B e. On ) -> ( A .o B ) e. On ) $=
      ( vx vy con0 wcel wa comu co cvv cv coa cmpt c0 crdg cfv omv omfnex 0elon
      eqeltrd a1i wceq oacl oveq1 eqid fvmptg sylancr ancoms ralrimiva rdgon
      vex ) AEFZBEFGABHIBCJCKZALIZMZNOPECABQULDNBUOCAERNEFULSUAULDKZUOPZEFZDEUP
      EFZULURUSULGZUQUPALIZEUTUPJFVAEFUQVAUBDUKUPAUCZCUPUNVAJEUOUMUPALUDUOUEUFU
      GVBTUHUIUJT $.

    $( Closure law for ordinal exponentiation.  (Contributed by Jim Kingdon,
       26-Jul-2019.) $)
    oeicl $p |- ( ( A e. On /\ B e. On ) -> ( A ^oi B ) e. On ) $=
      ( vx vy con0 wcel wa coei cvv comu cmpt c1o crdg cfv vex mpan syl eqeltrd
      co cv oeiv wral wfn omexg ralrimivw eqid fnmpt 1on wceq omcl oveq1 fvmptg
      a1i ancoms ralrimiva rdgon ) AEFZBEFGABHSBCICTZAJSZKZLMNECABUAUQDLBUTUQUS
      IFZCIUBUTIUCUQVACIURIFUQVACOURAIEUDPUECIUSUTIUTUFZUGQLEFUQUHUMUQDTZUTNZEF
      ZDEVCEFZUQVEVFUQGZVDVCAJSZEVGVHEFZVDVHUIZVCAUJZVCIFVIVJDOCVCUSVHIEUTURVCA
      JUKVBULPQVKRUNUOUPR $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( Value of ordinal addition.  (Contributed by Mario Carneiro and Jim
       Kingdon, 12-Aug-2019.) $)
    oav2 $p |- ( ( A e. On /\ B e. On ) ->
        ( A +o B ) = ( A u. U_ x e. B suc ( A +o x ) ) ) $=
      ( vy con0 wcel wa cvv cv csuc cmpt crdg cfv ciun cun coa co wfn wceq oav
      oafnex rdgival mp3an1 onelon vex oaexg mpan2 sucexg syl suceq eqid fvmptg
      syl2anc adantr fveq2d eqtr3d sylan2 anassrs iuneq2dv uneq2d 3eqtr4d ) BEF
      ZCEFZGZCDHDIZJZKZBLZMZBACAIZVHMZVGMZNZOZBCPQBACBVJPQZJZNZOVGHRVBVCVIVNSDU
      AABCVGEUBUCDBCTVDVQVMBVDACVPVLVBVCVJCFZVPVLSZVCVRGVBVJEFZVSCVJUDVBVTGZVOV
      GMZVPVLVBWBVPSZVTVBVOHFZVPHFZWCVBVJHFWDAUEBVJEHUFUGZVBWDWEWFVOHUHUIDVOVFV
      PHHVGVEVOUJVGUKULUMUNWAVOVKVGDBVJTUOUPUQURUSUTVA $.

    $( 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 coa co cun cv ciun wceq suceloni sylan2 csn df-suc
      oav2 iuneq1 uneq2d ax-mp iunxun eqtri oveq2 suceq syl syl5eq adantl eqtrd
      iunxsng unass syl6eqr uneq1d eqtr4d wss sssucid ssequn1 mpbi syl6eq ) ADE
      ZBDEZFZABGZHIZABHIZVEGZJZVFVBVDACBACKZHIZGZLZJZVFJZVGVBVDAVKVFJZJZVMVBVDA
      CVCVJLZJZVOVAUTVCDEVDVQMBNCAVCROVAVQVOMUTVAVPVNAVAVPVKCBPZVJLZJZVNVPCBVRJ
      ZVJLZVTVCWAMVPWBMBQCVCWAVJSUACBVRVJUBUCVAVSVFVKCBVJVFDVHBMVIVEMVJVFMVHBAH
      UDVIVEUEUFUJTUGTUHUIAVKVFUKULVBVEVLVFCABRUMUNVEVFUOVGVFMVEUPVEVFUQURUS $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( Value of ordinal multiplication.  (Contributed by Jim Kingdon,
       23-Aug-2019.) $)
    omv2 $p |- ( ( A e. On /\ B e. On ) ->
        ( A .o B ) = U_ x e. B ( ( A .o x ) +o A ) ) $=
      ( vy con0 wcel wa comu co c0 coa ciun cun cvv cmpt cfv wceq omv syl2anc
      cv crdg wfn omfnex 0elon rdgival mp3an2 sylan omexg omcl simpl oacl oveq1
      onelon eqid fvmptg fveq2d eqtr3d sylan2 anassrs iuneq2dv uneq2d uncom un0
      3eqtr4d eqtri syl6eq ) BEFZCEFZGZBCHIZJACBATZHIZBKIZLZMZVNVICDNDTZBKIZOZJ
      UAZPZJACVKVSPZVRPZLZMZVJVOVGVRNUBZVHVTWDQZDBEUCWEJEFVHWFUDAJCVREUEUFUGDBC
      RVIVNWCJVIACVMWBVGVHVKCFZVMWBQZVHWGGVGVKEFZWHCVKUMVGWIGZVLVRPZVMWBWJVLNFV
      MEFZWKVMQBVKEEUHWJVLEFVGWLBVKUIVGWIUJVLBUKSDVLVQVMNEVRVPVLBKULVRUNUOSWJVL
      WAVRDBVKRUPUQURUSUTVAVDVOVNJMVNJVNVBVNVCVEVF $.
  $}

  $( Addition with successor.  Theorem 4I(A2) of [Enderton] p. 79.
     (Contributed by Mario Carneiro, 16-Nov-2014.) $)
  onasuc $p |- ( ( A e. On /\ B e. _om ) ->
                ( A +o suc B ) = suc ( A +o B ) ) $=
    ( com wcel con0 csuc coa co wceq nnon oasuc sylan2 ) BCDAEDBEDABFGHABGHFIBJ
    ABKL $.

  $( 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 $.

  $( 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 $.

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( Weak ordering property of ordinal addition.  (Contributed by Jim
       Kingdon, 27-Jul-2019.) $)
    oawordi $p |- ( ( A e. On /\ B e. On /\ C e. On ) ->
                 ( A C_ B -> ( C +o A ) C_ ( C +o B ) ) ) $=
      ( vx con0 wcel w3a wss coa co wa cvv cv csuc cmpt cfv wceq jca oav syl ex
      crdg wfn oafnex a1i simpl3 simpl1 simpl2 simpr rdgss 3sstr4d ) AEFZBEFZCE
      FZGZABHZCAIJZCBIJZHUOUPKZADLDMNOZCUBZPZBVAPZUQURUSABUTCEUTLUCUSDUDUEULUMU
      NUPUFZULUMUNUPUGZULUMUNUPUHZUOUPUIUJUSUNULKUQVBQUSUNULVDVERDCASTUSUNUMKUR
      VCQUSUNUMVDVFRDCBSTUKUA $.
  $}

  $( An ordinal is less than or equal to its sum with another.  Part of
     Exercise 5 of [TakeutiZaring] p. 62.  (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 wi 0elon oawordi 3com13 mp3an3
    0ss mpi eqsstr3d ) ACDZBCDZEZAAFGHZABGHZUAUDAIUBAJKUCFBLZUDUELZBRUAUBFCDZUF
    UGMZNUHUBUAUIFBAOPQST $.

  ${
    $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 comu co coa cun ciun wceq csn df-suc iuneq1 iunxun
      cv ax-mp omv2 oveq1d iunxsng uneq2d syl5eq adantl suceloni sylan2 3eqtr4d
      eqtri oveq2 uneq1d omcl simpl wss oaword1 ssequn1 sylib syl2anc eqtrd ) A
      DEZBDEZFZABGZHIZABHIZVEAJIZKZVFVBCVCACRZHIZAJIZLZCBVJLZVFKZVDVGVAVKVMMUTV
      AVKVLCBNZVJLZKZVMVKCBVNKZVJLZVPVCVQMVKVRMBOCVCVQVJPSCBVNVJQUIVAVOVFVLCBVJ
      VFDVHBMVIVEAJVHBAHUJUAUBUCUDUEVAUTVCDEVDVKMBUFCAVCTUGVBVEVLVFCABTUKUHVBVE
      DEZUTVGVFMZABULUTVAUMVSUTFVEVFUNVTVEAUOVEVFUPUQURUS $.
  $}

  $( 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 ) ) $=
    ( com wcel con0 csuc comu co coa wceq nnon omsuc sylan2 ) BCDAEDBEDABFGHABG
    HAIHJBKABLM $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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 $.

  ${
    $d x y A $.  $d x B $.
    $( Addition to zero.  Remark in proof of Theorem 4K(2) of [Enderton] p. 81.
       (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 con0 0elon om0 ax-mp com coa
      wcel oveq1 oa0 syl6eq peano1 nnmsuc mpan syl5ibr finds ) DBEZFGZDHDDFGZDH
      ZDCEZFGZDHZDUKIZFGZDHZDAFGZDHBCAUGDHUHUIDUGDDFJKUGUKHUHULDUGUKDFJKUGUNHUH
      UODUGUNDFJKUGAHUHUQDUGADFJKDLRZUJMDNOUMUPUKPRZULDQGZDHUMUTDDQGZDULDDQSURV
      ADHMDTOUAUSUOUTDDPRUSUOUTHUBDUKUCUDKUEUF $.

    $( 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 $.
  $}

  ${
    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 $.

  $}

  ${
    $d x y A $.  $d x y z B $.
    $( 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 $.
  $}

  ${
    $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 sylan 3impa 3adant1
      nndi syl3an2 3exp expd com34 pm2.43d 3imp eqtrd syl5ibr com3r impd finds2
      vtoclga expdcom ) AFGZBFGZCFGZABHIZCHIZABCHIZHIZJZVHVFVGVMVFVGKZVIDLZHIZA
      BVOHIZHIZJZMVNVMMDCFVOCJZVSVMVNVTVPVJVRVLVOCVIHNVTVQVKAHVOCBHNOPUAVSVIQHI
      ZABQHIZHIZJVIELZHIZABWDHIZHIZJZVIWDUBZHIZABWIHIZHIZJZVNDEVOQJZVPWAVRWCVOQ
      VIHNWNVQWBAHVOQBHNOPVOWDJZVPWEVRWGVOWDVIHNWOVQWFAHVOWDBHNOPVOWIJZVPWJVRWL
      VOWIVIHNWPVQWKAHVOWIBHNOPVNWAQWCVNVIFGZWAQJABRZVISUCVGVFWCAQHIQVGWBQAHBSO
      ASUDUEWDFGZVFVGWHWMMZVFVGWSWTVFVGWSWTWHWMVFVGWSUFZWEVITIZWGVITIZJWEWGVITU
      GXAWJXBWLXCVFVGWSWJXBJZVNWQWSXDWRVIWDUHUIUJXAWLAWFBTIZHIZXCXAWKXEAHVGWSWK
      XEJVFBWDUHUKOVFVGWSXFXCJZVFVGWSXGMVFVGWSVGXGVFVGWSVGXGMVFVGWSKZVGXGXHVFWF
      FGVGXGBWDRAWFBULUMUNUOUPUQURUSPUTUNVAVBVCVDVEUR $.

    $( 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 $.
  $}

  $( Distributive law for natural numbers (right-distributivity).  (Contributed
     by Jim Kingdon, 3-Dec-2019.) $)
  nndir $p |- ( ( A e. _om /\ B e. _om /\ C e. _om ) ->
               ( ( A +o B ) .o C ) = ( ( A .o C ) +o ( B .o C ) ) ) $=
    ( com wcel w3a coa co comu wceq nndi 3coml nnacl nnmcom sylan2 ancoms 3impa
    wa 3adant2 3adant1 oveq12d 3eqtr3d ) ADEZBDEZCDEZFZCABGHZIHZCAIHZCBIHZGHZUG
    CIHZACIHZBCIHZGHUEUCUDUHUKJCABKLUCUDUEUHULJZUEUCUDRZUOUPUEUGDEUOABMCUGNOPQU
    FUIUMUJUNGUCUEUIUMJZUDUEUCUQCANPSUDUEUJUNJZUCUEUDURCBNPTUAUB $.

  ${
    $d x y A $.  $d x y B $.
    $( Membership is inherited by successors.  The reverse direction holds for
       all ordinals, as seen at ~ onsucelsucr , but the forward direction, for
       all ordinals, implies excluded middle as seen as ~ onsucelsucexmid .
       (Contributed by Jim Kingdon, 25-Aug-2019.) $)
    nnsucelsuc $p |- ( B e. _om -> ( A e. B <-> suc A e. suc B ) ) $=
      ( vx vy com wcel csuc cv wi c0 wceq eleq2 suceq eleq2d imbi12d pm2.21i wa
      noel wo a1i elsuci adantl simpl orim12d mpd vex sucex elsuc2 sylibr finds
      ex con0 nnon onsucelsucr syl impbid ) BEFZABFZAGZBGZFZACHZFZUSVBGZFZIAJFZ
      USJGZFZIADHZFZUSVIGZFZIZAVKFZUSVKGZFZIZURVAICDBVBJKZVCVFVEVHVBJALVRVDVGUS
      VBJMNOVBVIKZVCVJVEVLVBVIALVSVDVKUSVBVIMNOVBVKKZVCVNVEVPVBVKALVTVDVOUSVBVK
      MNOVBBKZVCURVEVAVBBALWAVDUTUSVBBMNOVFVHARPVMVQIVIEFVMVNVPVMVNQZVLUSVKKZSZ
      VPWBVJAVIKZSZWDVNWFVMAVIUAUBWBVJVLWEWCVMVNUCWEWCIWBAVIMTUDUEVKUSVIDUFUGUH
      UIUKTUJUQBULFVAURIBUMABUNUOUP $.

    $( Membership is inherited by successors.  The reverse direction holds for
       all ordinals, as seen at ~ onsucsssucr , but the forward direction, for
       all ordinals, implies excluded middle as seen as ~ onsucsssucexmid .
       (Contributed by Jim Kingdon, 25-Aug-2019.) $)
    nnsucsssuc $p |- ( ( A e. _om /\ B e. _om ) ->
        ( A C_ B <-> suc A C_ suc B ) ) $=
      ( vx vy com wcel wa wss csuc wi wceq sseq1 suceq sseq1d imbi12d c0 syl wb
      ordelsuc mpbid cv imbi2d wn peano3 neneqd peano2 0elnn ord mpd word nnord
      ordsucim cvv 0ex mpan 3syl a1d w3a simp3 simp1l simp1r syl2anc nnsucelsuc
      wo mpbird 3expia exp31 finds2 vtoclga con0 nnon onsucsssucr syl2an impbid
      imp ) AEFZBEFZGABHZAIZBIZHZVPVQVRWAJZVQCUAZBHZWCIZVTHZJZJVQWBJCAEWCAKZWGW
      BVQWHWDVRWFWAWCABLWHWEVSVTWCAMNOUBWGPBHZPIZVTHZJDUAZBHZWLIZVTHZJZWNBHZWNI
      ZVTHZJZVQCDWCPKZWDWIWFWKWCPBLXAWEWJVTWCPMNOWCWLKZWDWMWFWOWCWLBLXBWEWNVTWC
      WLMNOWCWNKZWDWQWFWSWCWNBLXCWEWRVTWCWNMNOVQWKWIVQPVTFZWKVQVTPKZUCXDVQVTPBU
      DUEVQXEXDVQVTEFXEXDVDBUFVTUGQUHUIVQBUJZVTUJZXDWKRZBUKZBULZPUMFXGXHUNPVTUM
      SUOUPTUQWLEFZVQWPWTXKVQGZWPWQWSXLWPWQURZWNVTFZWSXMWLBFZXNXMXOWQXLWPWQUSXM
      XKXFXOWQRXKVQWPWQUTZXMVQXFXKVQWPWQVAZXIQZWLBESVBVEXMVQXOXNRXQWLBVCQTXMWNE
      FZXGXNWSRXMXKXSXPWLUFQXMXFXGXRXJQWNVTESVBTVFVGVHVIVOVPAVJFXFWAVRJVQAVKXIA
      BVLVMVN $.

    $( Trichotomy for natural numbers.  (Contributed by Jim Kingdon,
       25-Aug-2019.) $)
    nntri3or $p |- ( ( A e. _om /\ B e. _om ) ->
        ( A e. B \/ A = B \/ B e. A ) ) $=
      ( vx vy com wcel wceq cv wi eleq2 eqeq2 eleq1 3orbi123d c0 csuc wo 3orass
      w3o sylibr syl imbi2d 0elnn olc wa df-3or elex elsuc2g syl6bir nnsucelsuc
      cvv 3mix1 elsuci syl6bi orbi2i biimpi orcomd olcd syl6 jaao syl5bi finds2
      eqcom ex vtoclga impcom ) BEFAEFZABFZABGZBAFZRZVFACHZFZAVKGZVKAFZRZIVFVJI
      CBEVKBGZVOVJVFVPVLVGVMVHVNVIVKBAJVKBAKVKBALMUAVOANFZANGZNAFZRZADHZFZAWAGZ
      WAAFZRZAWAOZFZAWFGZWFAFZRZVFCDVKNGVLVQVMVRVNVSVKNAJVKNAKVKNALMVKWAGVLWBVM
      WCVNWDVKWAAJVKWAAKVKWAALMVKWFGVLWGVMWHVNWIVKWFAJVKWFAKVKWFALMVFVRVSPZVTAU
      BWKVQWKPVTWKVQUCVQVRVSQSTWAEFZVFWEWJIWEWBWCPZWDPWLVFUDWJWBWCWDUEWLWMWJVFW
      DWLWAUJFZWMWJIWAEUFWNWMWGWJAWAUJUGWGWHWIUKUHTVFWDWIWFAGZPZWJVFWDWFAOFWPWA
      AUIWFAULUMWPWGWHWIPZPWJWPWQWGWPWIWHWPWIWHPWOWHWIWFAVBUNUOUPUQWGWHWIQSURUS
      UTVCVAVDVE $.

    $( A trichotomy law for natural numbers.  (Contributed by Jim Kingdon,
       28-Aug-2019.) $)
    nntri2 $p |- ( ( A e. _om /\ B e. _om ) ->
        ( A e. B <-> -. ( A = B \/ B e. A ) ) ) $=
      ( com wcel wa wceq wo elirr eleq2 mtbii con2i en2lp imnani ioran sylanbrc
      wn w3o nntri3or 3orass sylib orcomd ord impbid2 ) ACDBCDEZABDZABFZBADZGZP
      ZUEUFPUGPUIUFUEUFAADUEAHABAIJKUEUGABLMUFUGNOUDUHUEUDUEUHUDUEUFUGQUEUHGABR
      UEUFUGSTUAUBUC $.
  $}

  $( A trichotomy law for natural numbers.  (Contributed by Jim Kingdon,
     28-Aug-2019.) $)
  nntri1 $p |- ( ( A e. _om /\ B e. _om ) -> ( A C_ B <-> -. B e. A ) ) $=
    ( com wcel wa wss wn ssnel wceq wo w3o wi nntri3or df-3or biimpi orcomd ord
    syl word nnord ordelss sylan ex adantl eqimss a1i jaod syld impbid2 ) ACDZB
    CDZEZABFZBADZGZABHULUOABDZABIZJZUMULUPUQUNKZUOURLABMUSUNURUSURUNUSURUNJUPUQ
    UNNOPQRULUPUMUQUKUPUMLUJUKUPUMUKBSUPUMBTBAUAUBUCUDUQUMLULABUEUFUGUHUI $.

  $( A trichotomy law for natural numbers.  (Contributed by Jim Kingdon,
     15-May-2020.) $)
  nntri3 $p |- ( ( A e. _om /\ B e. _om ) ->
      ( A = B <-> ( -. A e. B /\ -. B e. A ) ) ) $=
    ( com wcel wa wceq wn wb elirr eleq2 mtbii con2i adantl simpl 2falsed simpr
    eleq1 jca 2thd nntri3or mpjao3dan ) ACDBCDEZABDZABFZUCGZBADZGZEZHUDUFUBUCEU
    DUHUCUDGZUBUDUCUDAADZUCAIZABAJKZLMUCUHGZUBUHUCUEUGNLMOUBUDEUDUHUBUDPUDUHUBU
    DUEUGULUDUJUFUKABAQKZRMSUBUFEUDUHUFUIUBUDUFUNLMUFUMUBUHUFUEUGPLMOABTUA $.

  $( A trichotomy law for natural numbers.  (Contributed by Jim Kingdon,
     15-Sep-2021.) $)
  nntri2or2 $p |- ( ( A e. _om /\ B e. _om ) -> ( A C_ B \/ B C_ A ) ) $=
    ( com wcel wa wss wo wceq con0 wi nnon adantl onelss syl orcd eqimss adantr
    imp olcd nntri3or mpjao3dan ) ACDZBCDZEZABDZABFZBAFZGABHZBADZUDUEEUFUGUDUEU
    FUDBIDZUEUFJUCUJUBBKLBAMNROUDUHEUFUGUHUFUDABPLOUDUIEUGUFUDUIUGUDAIDZUIUGJUB
    UKUCAKQABMNRSABTUA $.

  $( Equality of natural numbers is decidable.  Theorem 7.2.6 of [HoTT], p.
     (varies).  For the specific case where ` B ` is zero, see ~ nndceq0 .
     (Contributed by Jim Kingdon, 31-Aug-2019.) $)
  nndceq $p |- ( ( A e. _om /\ B e. _om ) -> DECID A = B ) $=
    ( com wcel wa wceq wn wo wdc w3o nntri3or elirr eleq2 mtbii olcd orc mtbiri
    con2i 3jaoi syl df-dc sylibr ) ACDBCDEZABFZUDGZHZUDIUCABDZUDBADZJUFABKUGUFU
    DUHUGUEUDUDUGUDAADUGALABAMNROUDUEPUHUEUDUDUHUDUHBBDBLABBMQROSTUDUAUB $.

  $( Set membership between two natural numbers is decidable.  (Contributed by
     Jim Kingdon, 6-Sep-2019.) $)
  nndcel $p |- ( ( A e. _om /\ B e. _om ) -> DECID A e. B ) $=
    ( com wcel wa wn wo wdc wceq w3o nntri3or orc elirr eleq1 mtbiri olcd en2lp
    imnani 3jaoi syl df-dc sylibr ) ACDBCDEZABDZUDFZGZUDHUCUDABIZBADZJUFABKUDUF
    UGUHUDUELUGUEUDUGUDBBDBMABBNOPUHUEUDUHUDBAQRPSTUDUAUB $.

  $( For natural numbers, inclusion is equivalent to membership or equality.
     (Contributed by Jim Kingdon, 16-Sep-2021.) $)
  nnsseleq $p |- ( ( A e. _om /\ B e. _om ) ->
      ( A C_ B <-> ( A e. B \/ A = B ) ) ) $=
    ( com wcel wa wss wceq wo wn nntri1 w3o nntri3or df-3or sylib orcomd sylbid
    ord word wi nnord adantl ordelss ex syl eqimss a1i jaod impbid ) ACDZBCDZEZ
    ABFZABDZABGZHZUKULBADZIUOABJUKUPUOUKUOUPUKUMUNUPKUOUPHABLUMUNUPMNOQPUKUMULU
    NUKBRZUMULSUJUQUIBTUAUQUMULBAUBUCUDUNULSUKABUEUFUGUH $.

  ${
    $d A x $.  $d B x $.
    $( If we remove a single element from a natural number then put it back in,
       we end up with the original natural number.  This strengthens ~ difsnss
       from subset to equality but the proof relies on equality being
       decidable.  (Contributed by Jim Kingdon, 31-Aug-2021.) $)
    nndifsnid $p |- ( ( A e. _om /\ B e. A ) ->
        ( ( A \ { B } ) u. { B } ) = A ) $=
      ( vx com wcel wa csn cdif cun wss difsnss adantl cv wceq simpr syl simplr
      wn elnn syl2anc velsn sylibr elun2 sylnibr eldifd elun1 wdc simpll nndceq
      wo df-dc sylib mpjaodan ex ssrdv eqssd ) ADEZBAEZFZABGZHZUTIZAURVBAJUQABK
      LUSCAVBUSCMZAEZVCVBEZUSVDFZVCBNZVEVGRZVFVGFZVCUTEZVEVIVGVJVFVGOCBUAZUBVCU
      TVAUCPVFVHFZVCVAEVEVLVCAUTUSVDVHQVLVGVJVFVHOVKUDUEVCVAUTUFPVFVGUGZVGVHUJV
      FVCDEZBDEZVMVFVDUQVNUSVDOUQURVDUHZVCASTVFURUQVOUQURVDQVPBASTVCBUITVGUKULU
      MUNUOUP $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d C x $.

    $( 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 wa wi wceq oveq2 eleq12d c0 csuc syl syl2anc con0
      nnon cv imbi2d simpr elnn ancoms nna0 adantr 3eltr4d wb simprl nnsucelsuc
      simpl nnacl adantl oasuc ad2antrl bitr4d biimpd finds2 vtoclga imp nnacom
      ex adantrr 3eltr3d 3impb 3com12 3expia ) BFGZCFGZABGZCAHIZCBHIZGZVJVIVKVN
      VJVIVKVNVJVIVKJZJZACHIZBCHIZVLVMVJVOVQVRGZVOADUAZHIZBVTHIZGZKVOVSKDCFVTCL
      ZWCVSVOWDWAVQWBVRVTCAHMVTCBHMNUBWCAOHIZBOHIZGAEUAZHIZBWGHIZGZAWGPZHIZBWKH
      IZGZVODEVTOLWAWEWBWFVTOAHMVTOBHMNVTWGLWAWHWBWIVTWGAHMVTWGBHMNVTWKLWAWLWBW
      MVTWKAHMVTWKBHMNVOABWEWFVIVKUCVOAFGZWEALVKVIWOABUDUEZAUFQVIWFBLVKBUFUGUHW
      GFGZVOWJWNKWQVOJZWJWNWRWJWHPZWIPZGZWNWRWIFGZWJXAUIWRVIWQXBWQVIVKUJWQVOULB
      WGUMRWHWIUKQWRWLWSWMWTWRASGZWGSGZWLWSLWRWOXCVOWOWQWPUNATQWQXDVOWGTUGZAWGU
      ORWRBSGZXDWMWTLVIXFWQVKBTUPXEBWGUORNUQURVCUSUTVAVPWOVJVQVLLVOWOVJWPUNVJVO
      ULACVBRVJVIVRVMLZVKVIVJXGBCVBUEVDVEVFVGVH $.
  $}

  $( 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 w3a coa co wi nnaordi 3adant1 wo wn oveq2 a1i wa wb nnacl nntri2
    wceq 3adant2 orim12d con3d df-3an ancom anandi 3bitri anim12i sylbi 3adant3
    syl 3imtr4d impbid ) ADEZBDEZCDEZFZABEZCAGHZCBGHZEZUOUPURVAIUNABCJKUQUSUTTZ
    UTUSEZLZMZABTZBAEZLZMZVAURUQVHVDUQVFVBVGVCVFVBIUQABCGNOUNUPVGVCIUOBACJUAUBU
    CUQUSDEZUTDEZPZVAVEQUQUPUNPZUPUOPZPZVLUQUNUOPZUPPUPVPPVOUNUOUPUDVPUPUEUPUNU
    OUFUGVMVJVNVKCARCBRUHUIUSUTSUKUNUOURVIQUPABSUJULUM $.

  $( 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 $.

    $( 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 ) ) ) $=
      ( vx vy com wcel wss co wb wa wi wceq oveq1 sseq12d bibi2d c0 csuc nnacom
      coa cv imbi2d nna0r eqcomd adantr adantl nnacl 3adant3 3adant2 nnsucsssuc
      w3a syl2anc nnasuc peano2 sylan2 syl 3eqtr3rd ancoms biimpd 3expib finds2
      suceq bitrd vtoclga impcom 3impa ) AFGZBFGZCFGZABHZCATIZCBTIZHZJZVIVGVHKZ
      VNVOVJDUAZATIZVPBTIZHZJZLVOVNLDCFVPCMZVTVNVOWAVSVMVJWAVQVKVRVLVPCATNVPCBT
      NOPUBVTVJQATIZQBTIZHZJVJEUAZATIZWEBTIZHZJZVJWERZATIZWJBTIZHZJZVODEVPQMZVS
      WDVJWOVQWBVRWCVPQATNVPQBTNOPVPWEMZVSWHVJWPVQWFVRWGVPWEATNVPWEBTNOPVPWJMZV
      SWMVJWQVQWKVRWLVPWJATNVPWJBTNOPVOAWBBWCVGAWBMVHVGWBAAUCUDUEVHBWCMVGVHWCBB
      UCUDUFOWEFGZVGVHWIWNLWRVGVHUKZWIWNWSWHWMVJWSWHWFRZWGRZHZWMWSWFFGZWGFGZWHX
      BJWRVGXCVHWEAUGUHWRVHXDVGWEBUGUIWFWGUJULWSWTWKXAWLWRVGWTWKMZVHVGWRXEVGWRK
      ZAWJTIZAWETIZRZWKWTAWEUMWRVGWJFGZXGWKMWEUNZAWJSUOXFXHWFMXIWTMAWESXHWFVBUP
      UQURUHWRVHXAWLMZVGVHWRXLVHWRKZBWJTIZBWETIZRZWLXABWEUMWRVHXJXNWLMXKBWJSUOX
      MXOWGMXPXAMBWESXOWGVBUPUQURUIOVCPUSUTVAVDVEVF $.
  $}

  $( 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 con0 coa co wss nnon oaword1 syl2an ) ACDAEDBEDAABFGHBCDAIBIABJK
    $.

  $( 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 $.

  $( 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 ) ) ) $=
    ( com wcel w3a wss co nnaword biimpd nnacom 3adant2 3adant1 sseq12d sylibrd
    coa wceq ) ADEZBDEZCDEZFZABGZCAPHZCBPHZGZACPHZBCPHZGUAUBUEABCIJUAUFUCUGUDRT
    UFUCQSACKLSTUGUDQRBCKMNO $.

  ${
    $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 wo syl2anc
    wn w3a impd ne0i nnm0r eqeq1d syl5ibrcom necon3d syl5 adantr nn0eln0 adantl
    oveq1 sylibrd oveq2 a1i 3adantl2 orim12d con3d simpl3 simpl1 simpl2 3imtr4d
    nnmcl nntri2 mpdd jcad impbid ) ADEZBDEZCDEZUAZABEZFCEZGZCAHIZCBHIZEZVIVJVN
    VQJVHVIVJGZVLVMVQVRVMVLVQVRVMVLVQJABCKLMUBNVKVQVLVMVKVQVMVLVIVJVQVMJVHVRVQC
    FOZVMVIVQVSJVJVQVPFOVIVSVPVOUCVICFVPFVIVPFPCFPZFBHIZFPBUDVTVPWAFCFBHULUEUFU
    GUHUIVJVMVSQVICUJUKUMNZVKVMVQVLVKVMVQVLJVKVMGZVOVPPZVPVOEZRZTZABPZBAEZRZTZV
    QVLWCWJWFWCWHWDWIWEWHWDJWCABCHUNUOVHVJVMWIWEJVIBACKUPUQURWCVODEZVPDEZVQWGQW
    CVJVHWLVHVIVJVMUSZVHVIVJVMUTZCAVCSWCVJVIWMWNVHVIVJVMVAZCBVCSVOVPVDSWCVHVIVL
    WKQWOWPABVDSVBLMVEWBVFVG $.

  $( 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 wss iba nnmord 3com12 sylan9bbr nntri1 syl2anc
    co wb nnmcl notbid simpl1 simpl2 simpl3 3bitr4d ) ADEZBDEZCDEZFZGCEZHZBAEZI
    ZCBJRZCAJRZEZIZABKZUOUNKZUKULUPUJULULUJHZUIUPUJULLUGUFUHUTUPSBACMNOUAUKUFUG
    URUMSUFUGUHUJUBZUFUGUHUJUCZABPQUKUODEZUNDEZUSUQSUKUHUFVCUFUGUHUJUDZVACATQUK
    UHUGVDVEVBCBTQUOUNPQUE $.

  $( 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 $.

  $( 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
    $.

  $( 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 $.

  ${
    $d A b x y $.  $d A x y z $.  $d B b x y $.
    $( 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 ) ) ) $=
      ( vz com wcel wa c0 cv co wceq wrex wi eleq2 eqeq2 anbi2d rexbidv imbi12d
      coa c1o vb vy imbi2d csuc noel pm2.21i a1i wo elsuci simpr peano2 elelsuc
      ad2antlr nnasuc suceq sylan9eq ex anim12d imp oveq2 eqeq1d anbi12d rspcev
      syl2anc rexlimdva cbvrexv syl6ib syld con0 nnon oa1suc syl 1onn mpan jaod
      0lt1o syl5 exp31 finds2 vtoclga impcom peano1 nnaord mp3an1 ancoms adantr
      wb nna0 eleq1d bitrd anbi1d biimpac syl6bi impbid ) BEFZCEFZGBCFZHAIZFZBW
      RSJZCKZGZAELZWPWOWQXCMZWOBUAIZFZWSWTXEKZGZAELZMZMWOXDMUACEXECKZXJXDWOXKXF
      WQXIXCXECBNXKXHXBAEXKXGXAWSXECWTOPQRUCXJBHFZWSWTHKZGZAELZMZBUBIZFZWSWTXQK
      ZGZAELZMZBXQUDZFZWSWTYCKZGZAELZMZWOUAUBXEHKZXFXLXIXOXEHBNYIXHXNAEYIXGXMWS
      XEHWTOPQRXEXQKZXFXRXIYAXEXQBNYJXHXTAEYJXGXSWSXEXQWTOPQRXEYCKZXFYDXIYGXEYC
      BNYKXHYFAEYKXGYEWSXEYCWTOPQRXPWOXLXOBUEUFUGXQEFZWOYBYHYDXRBXQKZUHYLWOGZYB
      GZYGBXQUIYOXRYGYMYOXRYAYGYNYBUJWOYAYGMYLYBWOYAHDIZFZBYPSJZYCKZGZDELZYGWOX
      TUUAAEWOWREFZGZXTUUAUUCXTGWRUDZEFZHUUDFZBUUDSJZYCKZGZUUAUUBUUEWOXTWRUKUMU
      UCXTUUIUUCWSUUFXSUUHWSUUFMUUCHWRULUGUUCXSUUHUUCXSUUGWTUDYCBWRUNWTXQUOUPUQ
      URUSYTUUIDUUDEYPUUDKZYQUUFYSUUHYPUUDHNUUJYRUUGYCYPUUDBSUTVAVBVCVDUQVEYTYF
      DAEYPWRKZYQWSYSYEYPWRHNUUKYRWTYCYPWRBSUTVAVBVFVGUMVHWOYMYGMYLYBWOYMYGWOYM
      GZHTFZBTSJZYCKZYGUUMUULVPUGWOYMUUNBUDZYCWOBVIFUUNUUPKBVJBVKVLBXQUOUPTEFUU
      MUUOGZYGVMYFUUQATEWRTKZWSUUMYEUUOWRTHNUURWTUUNYCWRTBSUTVAVBVCVNVDUQUMVOVQ
      VRVSVTWAWOXCWQMWPWOXBWQAEUUCXBBWTFZXAGWQUUCWSUUSXAUUCWSBHSJZWTFZUUSUUBWOW
      SUVAWGZHEFUUBWOUVBWBHWRBWCWDWEUUCUUTBWTWOUUTBKUUBBWHWFWIWJWKXAUUSWQWTCBNW
      LWMVEWFWN $.
  $}

  ${
    $d x A $.  $d x 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 ) ) $=
      ( com wcel wa wss cv coa co wceq wrex w3a nntri3or 3adant3 wi c0 nnaordex
      w3o syl5ibcom simpr reximi syl6bi nna0 3ad2ant1 eqeq2 peano1 oveq2 eqeq1d
      rspcev mpan wn nntri1 biimp3a pm2.21d 3jaod mpd 3expia nnaword1 rexlimdva
      syl6 sseq2 adantr impbid ) BDEZCDEZFZBCGZBAHZIJZCKZADLZVEVFVHVLVEVFVHMZBC
      EZBCKZCBEZSZVLVEVFVQVHBCNOVMVNVLVOVPVEVFVNVLPVHVGVNQVIEZVKFZADLVLABCRVSVK
      ADVRVKUAUBUCOVMVOBQIJZCKZVLVMVTBKZVOWAVEVFWBVHBUDUEBCVTUFTQDEWAVLUGVKWAAQ
      DVIQKVJVTCVIQBIUHUIUJUKVAVMVPVLVEVFVHVPULBCUMUNUOUPUQURVEVLVHPVFVEVKVHADV
      EVIDEFBVJGVKVHBVIUSVJCBVBTUTVCVD $.
  $}

  $( The product of two natural numbers is zero iff at least one of them is
     zero.  (Contributed by Jim Kingdon, 11-Nov-2004.) $)
  nnm00 $p |- ( ( A e. _om /\ B e. _om ) -> ( ( A .o B ) = (/) <->
              ( A = (/) \/ B = (/) ) ) ) $=
    ( com wcel wa comu co c0 wceq wo wi simpl jaoi orcd a1i adantr ex sylan9eqr
    jaod 0elnn olcd simplr wn nnmordi expimpd ancoms nnm0 eleq1d sylibd imp n0i
    simpr pm2.21dd anim12i anddi sylib mpjaod oveq1 nnm0r adantl oveq2 impbid
    syl ) ACDZBCDZEZABFGZHIZAHIZBHIZJZVFVHVKVFVHEZVIVJEZVIHBDZEZJZVKHADZVJEZVQV
    NEZJZVPVKKVLVPVIVJVMVIVOVIVJLVIVNLMNOVLVRVKVSVRVKKVLVRVJVIVQVJULUAOVLVSVKVL
    VSEZVHVKVFVHVSUBWAHVGDZVHUCVLVSWBVFVSWBKVHVFVSAHFGZVGDZWBVEVDVSWDKVEVDEVQVN
    WDHBAUDUEUFVFWCHVGVDWCHIVEAUGZPUHUIPUJVGHUKVCUMQSVFVPVTJZVHVFVIVQJZVJVNJZEW
    FVDWGVEWHATBTUNVIVQVJVNUOUPPUQQVFVIVHVJVEVIVHKVDVEVIVHVIVEVGHBFGHAHBFURBUSR
    QUTVDVJVHKVEVDVJVHVJVDVGWCHBHAFVAWERQPSVB $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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 $.

  ${
    $d A x $.  $d B x $.  $d R x $.
    $( An inhabited equivalence class implies the representative is a set.
       (Contributed by Mario Carneiro, 9-Jul-2014.) $)
    ecexr $p |- ( A e. [ B ] R -> B e. _V ) $=
      ( vx cec wcel cv wceq wex cvv wbr csn wrex elimag ibi df-ec eleq2s df-rex
      cima wa simpl velsn sylib eximi sylbi syl isset sylibr ) ABCEZFZDGZBHZDIZ
      BJFUJUKACKZDBLZMZUMUPACUOSZUIAUQFUPDACUOUQNOBCPQUPUKUOFZUNTZDIUMUNDUORUSU
      LDUSURULURUNUADBUBUCUDUEUFDBUGUH $.
  $}

  ${
    $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 xpexg anidms ssexg syl2an ex ) ABDZACEZBFEZOB
    AAGZHRFEZQPABIPSAACCJKBRFLMN $.

  $( 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 $.
  $}

  ${
    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 $.
    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 $.
    $}
  $}

  ${
    $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 brabsb nfeq csbief
      wbr nfv nfcv csbeq1 syl5eqr eqeq2d ax-mp csbeq1a eqeq1d syl5bb bitri ) CJ
      ZDJZGUDEFKZBUPLZAUOLZAUOEMZAUPEMZKZUQABUOUPGIUAUONOUSVBPCQURVBAUONAUTVAAU
      OERAUPERUBUREVAKZACSZVBUPNOURVCPDQUQVCBUPNVCBUEBDSZFVAEVEFABJZEMVAAVFEFBQ
      AFUFHUCAVFUPEUGUHUITUJVDEUTVAAUOEUKULUMTUJUN $.

    $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.) $)
    eqer $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 wceq id df-id eqer ) ABACZBCZDIJEFABGH $.

    $( The empty set is an equivalence relation on the empty set.  (Contributed
       by Mario Carneiro, 5-Sep-2015.) $)
    0er $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 an inhabited equivalence class belongs to the domain
       of the equivalence relation.  (Contributed by Jim Kingdon,
       21-Aug-2019.) $)
    ecdmn0m $p |- ( A e. dom R <-> E. x x e. [ A ] R ) $=
      ( cdm wcel cvv cv cec wex elex ecexr exlimiv wbr eldmg wb vex mpan exbidv
      elecg bitr4d pm5.21nii ) BCDZEZBFEZAGZBCHEZAIZBUBJUFUDAUEBCKLUDUCBUECMZAI
      UGABCFNUDUFUHAUEFEUDUFUHOAPUEBCFFSQRTUA $.
  $}

  ${
    $d A x $.  $d B x $.  $d R x $.  $d ph x $.
    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 ) ) $=
      ( vx cdm wcel cv cec wex eleq2d exbidv ecdmn0m 3bitr4g wer wceq erdm syl
      3bitr3d ) ABDIZJZCUCJZBEJCEJAHKZBDLZJZHMUFCDLZJZHMUDUEAUHUJHAUGUIUFGNOHBD
      PHCDPQAUCEBAEDRUCESFEDTUAZNAUCECUKNUB $.
  $}

  ${
    $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 $.
  $}

  $( 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 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 y A $.  $d y V $.
    $( A set is equal to its converse epsilon coset.  (Note: converse epsilon
       is not an equivalence relation.)  (Contributed by Jim Kingdon,
       8-Jan-2020.) $)
    ecidg $p |- ( A e. V -> [ A ] `' _E = A ) $=
      ( vy wcel cep ccnv cec cv wbr cvv wb elecg mpan brcnvg mpan2 epelg 3bitrd
      vex eqrdv ) ABDZCAEFZGZATCHZUBDZAUCUAIZUCAEIZUCADUCJDZTUDUEKCRZUCAUAJBLMT
      UGUEUFKUHAUCBJENOUCABPQS $.
  $}

  ${
    $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 ) $=
        ( wcel cv cec wceq wrex cqs elqsi eleq2s wa wb syl5ibcom rexlimdva syl5
        eqcoms imp ) CEHLZBUGEDMZGNZOZDFPZCBUKEFGQHDFEGRISCUJBDFCUHFLTAUJBKABUA
        UIEJUEUBUCUDUF $.
    $}

    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 y R $.  $d x y A $.  $d x y B $.
    $( An element of a quotient set is inhabited.  (Contributed by Jim Kingdon,
       21-Aug-2019.) $)
    elqsn0m $p |- ( ( dom R = A /\ B e. ( A /. R ) ) -> E. x x e. B ) $=
      ( vy cv cec wcel wex cdm wceq cqs eqid eleq2 exbidv biimpar ecdmn0m sylib
      wa ectocld ) AFZEFZDGZHZAIZUACHZAIDJZBKZECBDBDLZUIMUCCKUDUFAUCCUANOUHUBBH
      ZSUBUGHZUEUHUKUJUGBUBNPAUBDQRT $.

    $( 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 cdm wceq cqs wcel wa cv wex c0 wne elqsn0m n0r syl ) CEAFBACGHIDJBHD
      KBLMDABCNDBOP $.
  $}

  ${
    $d A x $.  $d B x $.  $d R x $.
    $( 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 ) $=
      ( vx cdm wceq cec cqs wcel wa cv wex elqsn0m ecdmn0m sylibr simpl eleqtrd
      ) CEZAFZBCGZACHIZJZBRAUBDKTIDLBRIDATCMDBCNOSUAPQ $.
  $}

  ${
    $d x A $.
    $( A square Cartesian product is an equivalence relation (in general it's
       not a poset).  (Contributed by Jim Kingdon, 22-Aug-2019.) $)
    xpiderm $p |- ( E. x x e. A -> ( A X. A ) Er A ) $=
      ( wcel wex cxp wrel cdm wceq ccnv ccom cun wss wer relxp a1i dmxpm xpidtr
      cv cnvxp uneq1 unss2 wi unidm wa eqtr sseq2 biimpd syl mpan2 syl2im df-er
      mp2 syl3anbrc ) ARBCADZBBEZFZUOGBHUOIZUOUOJZKZUOLZBUOMUPUNBBNOABBPUTUNUQU
      OHZURUOLZUTBBSBQVAUQUOKZUOUOKZHZVBUSVCLZUTUQUOUOTURUOUQUAVEVDUOHZVFUTUBZU
      OUCVEVGUDVCUOHZVHVCVDUOUEVIVFUTVCUOUSUFUGUHUIUJULOBUOUKUM $.
  $}

  ${
    $d a u v w x A $.  $d u v w x B $.  $d u v w R $.  $d a y A $.
    $( The intersection of a nonempty family of equivalence relations is an
       equivalence relation.  (Contributed by Mario Carneiro, 27-Sep-2015.) $)
    iinerm $p |- ( ( E. y y e. A /\ A. x e. A R Er B ) ->
                  |^|_ x e. A R Er B ) $=
      ( va vu cv wcel wral bitri wa cvv wbr cop df-br wb opex eliin ax-mp vv vw
      wex wer ciin eleq1 cbvexv cxp wrel r19.2m errel df-rel sylib reximi iinss
      wss wrex 3syl sylibr ersymb biimpd 3imtr3g ral2imi adantl vex 3imtr4g imp
      wi r19.26 ertr anbi12i syl5bir simpl simpr erref expcom ralimdv com12 cdm
      id opeldm erdm eleq2d biimpa sylan2 rexlimivw syl ex expdimp impbid iserd
      syl6bbr sylanbr ) BHZCIZBUCZAHZCIZAUCZDEUDZACJZDACEUEZUDWSFHZCIZFUCWPWRXD
      AFWQXCCUFUGXDWOFBXCWNCUFUGKWSXALZGUAUBDXBXEXBMMUHZUPZXBUIXEWTACUQEXFUPZAC
      UQXGWTACUJWTXHACWTEUIXHDEUKEULUMUNACEXFUOURXBULUSXEGHZUAHZXBNZXJXIXBNZXEX
      IXJOZEIZACJZXJXIOZEIZACJZXKXLXAXOXRVHWSWTXNXQACWTXIXJENZXJXIENZXNXQWTXSXT
      WTXIXJEDWTVTZUTVAXIXJEPZXJXIEPVBVCVDXKXMXBIZXOXIXJXBPXMMIYCXOQXIXJGVEZUAV
      EZRAXMCEMSTKZXLXPXBIZXRXJXIXBPXPMIYGXRQXJXIYEYDRAXPCEMSTKVFVGXEXKXJUBHZXB
      NZLZXIYHXBNZXEXOXJYHOZEIZACJZLZXIYHOZEIZACJZYJYKYOXNYMLZACJZXEYRXNYMACVIX
      AYTYRVHWSWTYSYQACWTXSXJYHENZLXIYHENYSYQWTXIXJYHEDYAVJXSXNUUAYMYBXJYHEPVKX
      IYHEPVBVCVDVLXKXOYIYNYFYIYLXBIZYNXJYHXBPYLMIUUBYNQXJYHYEUBVEZRAYLCEMSTKVK
      YKYPXBIZYRXIYHXBPYPMIUUDYRQXIYHYDUUCRAYPCEMSTKVFVGXEXIDIZXIXIOZEIZACJZXIX
      IXBNZXEUUEUUHXAUUEUUHVHWSUUEXAUUHUUEWTUUGACWTUUEUUGWTUUELZXIXIENUUGUUJXIE
      DWTUUEVMWTUUEVNVOXIXIEPUMVPVQVRVDWSXAUUHUUEXAUUHLWTUUGLZACJZWSUUEWTUUGACV
      IWSUULUUEWSUULLUUKACUQUUEUUKACUJUUKUUEACUUGWTXIEVSZIZUUEXIXIEYDYDWAWTUUNU
      UEWTUUMDXIDEWBWCWDWEWFWGWHVLWIWJUUIUUFXBIZUUHXIXIXBPUUFMIUUOUUHQXIXIYDYDR
      AUUFCEMSTKWLWKWM $.

    $( The relative intersection of a family of equivalence relations is an
       equivalence relation.  (Contributed by Mario Carneiro, 27-Sep-2015.) $)
    riinerm $p |- ( ( E. y y e. A /\ A. x e. A R Er B ) ->
      ( ( B X. B ) i^i |^|_ x e. A R ) Er B ) $=
      ( va cv wcel wex wer wral wa cxp ciin cin iinerm wb eleq1 cbvexv bitri
      wceq wss erssxp ralimi riinm sylan ereq1 syl sylan2br ancoms mpbird ) BGZ
      CHZBIZDEJZACKZLDDDMZACENZOZJZDURJZABCDEPUPUNUTVAQZUNUPAGZCHZAIZVBVEFGZCHZ
      FIUNVDVGAFVCVFCRSVGUMFBVFULCRSTUPVELUSURUAZVBUPEUQUBZACKVEVHUOVIACDEUCUDA
      UQECUEUFDUSURUGUHUIUJUK $.
  $}

  ${
    $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 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 $.
  $}

  ${
    $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 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 $.
  $}

  ${
    $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 w x y z R $.  $d p q w x y z K $.
    $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 ~ 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 ~ 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 ) $.
    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 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 $.
    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 ) ) ) $.
    $( 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
          breq2 anbi12d imbi1d anbi2d wb ecopoveq 3adant3 3adant1 oveq12 simp2l
          eqid simp2r simp1l simp3r adantl caov411d simp1r simp3l caov4d eqtr3d
          eqeq12d syl5ibr sylbid impbid1 caovcl syl2anc caovcld caovcand sylibd
          a1i oveq2 3adant2 sylibrd 3optocl mpcom ) GLLUGZRZHXARZIXARZUHZGHKUIZ
          HIKUIZSZGIKUIZXHXBXCXDSZSXEXFXBXGXJXFXBXCGHXAXAKKAUJZXARBUJZXARSXKCUJ
          ZDUJZUKULXLEUJZFUJZUKULSXMXPJTXNXOJTULSFUOEUODUOCUOZSABUMXAXAUGMXQABX
          AXAUNUPZUQURHIXAXAKXRUQUSXBXCXDUTVAUAUJZUBUJZUKZUCUJZUDUJZUKZKUIZYDUE
          UJZUFUJZUKZKUIZSZYAYHKUIZVBGYDKUIZYISZGYHKUIZVBXFHYHKUIZSZYNVBXHXIVBU
          AUBUCUDUEUFGHILXALXAVPYAGULZYJYMYKYNYQYEYLYIYAGYDKVCVDYAGYHKVCVEYDHUL
          ZYMYPYNYRYLXFYIYOYDHGKVFYDHYHKVCVGVHYHIULZYPXHYNXIYSYOXGXFYHIHKVFVIYH
          IGKVFVEXSLRZXTLRZSZYBLRZYCLRZSZYFLRZYGLRZSZUHZYJXSYGJTZXTYFJTZULZYKUU
          IYJYBYCJTZUUJJTZUUMUUKJTZULZUULUUIYJXSYCJTZXTYBJTZULZYBYGJTZYCYFJTZUL
          ZSZUUPUUIYEUUSYIUVBUUBUUEYEUUSVJUUHABCDEFXSXTYBYCJKLMVKVLUUEUUHYIUVBV
          JUUBABCDEFYBYCYFYGJKLMVKVMVGUVCUUPUUIUUQUUTJTZUURUVAJTZULUUQUURUUTUVA
          JVNUUIUUNUVDUUOUVEUUIABCYBYCXSYGLJUUBUUCUUDUUHVOZUUBUUCUUDUUHVQZYTUUA
          UUEUUHVRZXKXLJTZXLXKJTULUUIXKLRZXLLRZSZSNWOZUVIXMJTXKXLXMJTJTULUUIUVJ
          UVKXMLRZUHZSPWOZUUBUUEUUFUUGVSZUVLUVILRUUIOVTZWAUUIXTYCJTYBYFJTJTUUOU
          VEUUIABCXTYCYBYFLJYTUUAUUEUUHWBZUVGUVFUVMUVPUUBUUEUUFUUGWCZUVRWAUUIAB
          CXTYCYBYFLJUVSUVGUVFUVMUVPUVTUVRWDWEWFWGWHUUIABCUUMUUJUUKLLJUVOUVIXKX
          MJTULZXLXMULZVJUUIUVOUWAUWBUVJUVKUWAUWBVBUVNQVLXLXMXKJWPWIVTUUIUUCUUD
          UUMLRUVFUVGABYBYCLJOWJWKUUIYTUUGUUJLRUVHUVQABXSYGLJOWJWKUUIABXTYFLLLJ
          UVRUVSUVTWLWMWNUUBUUHYKUULVJUUEABCDEFXSXTYFYGJKLMVKWQWRWSWT $.

        $( 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.) $)
        ecopover $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 $.
      $}

    $}

    ${
      ecopoprg.com $e |- ( ( x e. S /\ y e. S ) -> ( x .+ y ) = ( y .+ x ) ) $.
      $( Assuming the operation ` F ` is commutative, show that the relation
         ` .~ ` , specified by the first hypothesis, is symmetric.
         (Contributed by Jim Kingdon, 1-Sep-2019.) $)
      ecopovsymg $p |- ( A .~ B -> B .~ A ) $=
        ( wbr wcel wa wb cv wceq co vf vg vh cxp cop wex copab opabssxp eqsstri
        vt brel breq1 breq2 bibi12d adantl simpll simprr caovcomd simplr simprl
        eqid eqeq12d eqcom syl6bb ecopoveq ancoms 3bitr4d 2optocl syl ibi ) GHJ
        NZHGJNZVKGKKUDZOHVMOPVKVLQZGHVMVMJJARZVMOBRZVMOPVOCRZDRZUESVPERZFRZUESP
        VQVTITVRVSITSPFUFEUFDUFCUFZPABUGVMVMUDLWAABVMVMUHUIUKUARZUBRZUEZUCRZUJR
        ZUEZJNZWGWDJNZQGWGJNZWGGJNZQVNUAUBUCUJGHKKVMVMVAWDGSWHWJWIWKWDGWGJULWDG
        WGJUMUNWGHSWJVKWKVLWGHGJUMWGHGJULUNWBKOZWCKOZPZWEKOZWFKOZPZPZWBWFITZWCW
        EITZSZWEWCITZWFWBITZSZWHWIWRXAXCXBSXDWRWSXCWTXBWRABWBWFKIVOKOVPKOPVOVPI
        TVPVOITSWRMUOZWLWMWQUPWNWOWPUQURWRABWCWEKIXEWLWMWQUSWNWOWPUTURVBXCXBVCV
        DABCDEFWBWCWEWFIJKLVEWQWNWIXDQABCDEFWEWFWBWCIJKLVEVFVGVHVIVJ $.

      ${
        $( Assume the operation is closed. $)
        ecopoprg.cl $e |- ( ( x e. S /\ y e. S ) -> ( x .+ y ) e. S ) $.
        $( Assume the operation is associative. $)
        ecopoprg.ass $e |- ( ( x e. S /\ y e. S /\ z e. S ) ->
          ( ( x .+ y ) .+ z ) = ( x .+ ( y .+ z ) ) ) $.
        $( Assume the operation has the cancellation property. $)
        ecopoprg.can $e |- ( ( x e. S /\ y e. S /\ z 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 Jim Kingdon, 1-Sep-2019.) $)
        ecopovtrng $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
          breq2 anbi12d imbi1d anbi2d wb ecopoveq 3adant3 3adant1 oveq12 simp2l
          eqid simp2r simp1l adantl simp3r caov411d simp1r simp3l caov4d eqtr3d
          eqeq12d syl5ibr sylbid impbid1 caovcl syl2anc caovcld caovcand sylibd
          oveq2 3adant2 sylibrd 3optocl mpcom ) GLLUGZRZHWTRZIWTRZUHZGHKUIZHIKU
          IZSZGIKUIZXGXAXBXCSZSXDXEXAXFXIXEXAXBGHWTWTKKAUJZWTRBUJZWTRSXJCUJZDUJ
          ZUKULXKEUJZFUJZUKULSXLXOJTXMXNJTULSFUOEUODUOCUOZSABUMWTWTUGMXPABWTWTU
          NUPZUQURHIWTWTKXQUQUSXAXBXCUTVAUAUJZUBUJZUKZUCUJZUDUJZUKZKUIZYCUEUJZU
          FUJZUKZKUIZSZXTYGKUIZVBGYCKUIZYHSZGYGKUIZVBXEHYGKUIZSZYMVBXGXHVBUAUBU
          CUDUEUFGHILWTLWTVPXTGULZYIYLYJYMYPYDYKYHXTGYCKVCVDXTGYGKVCVEYCHULZYLY
          OYMYQYKXEYHYNYCHGKVFYCHYGKVCVGVHYGIULZYOXGYMXHYRYNXFXEYGIHKVFVIYGIGKV
          FVEXRLRZXSLRZSZYALRZYBLRZSZYELRZYFLRZSZUHZYIXRYFJTZXSYEJTZULZYJUUHYIY
          AYBJTZUUIJTZUULUUJJTZULZUUKUUHYIXRYBJTZXSYAJTZULZYAYFJTZYBYEJTZULZSZU
          UOUUHYDUURYHUVAUUAUUDYDUURVJUUGABCDEFXRXSYAYBJKLMVKVLUUDUUGYHUVAVJUUA
          ABCDEFYAYBYEYFJKLMVKVMVGUVBUUOUUHUUPUUSJTZUUQUUTJTZULUUPUUQUUSUUTJVNU
          UHUUMUVCUUNUVDUUHABCYAYBXRYFLJUUAUUBUUCUUGVOZUUAUUBUUCUUGVQZYSYTUUDUU
          GVRZXJLRZXKLRZSZXJXKJTZXKXJJTULUUHNVSZUVHUVIXLLRUHZUVKXLJTXJXKXLJTJTU
          LUUHPVSZUUAUUDUUEUUFVTZUVJUVKLRUUHOVSZWAUUHXSYBJTYAYEJTJTUUNUVDUUHABC
          XSYBYAYELJYSYTUUDUUGWBZUVFUVEUVLUVNUUAUUDUUEUUFWCZUVPWAUUHABCXSYBYAYE
          LJUVQUVFUVEUVLUVNUVRUVPWDWEWFWGWHUUHABCUULUUIUUJLLJUVMUVKXJXLJTULZXKX
          LULZVJUUHUVMUVSUVTQXKXLXJJWOWIVSUUHUUBUUCUULLRUVEUVFABYAYBLJOWJWKUUHY
          SUUFUUILRUVGUVOABXRYFLJOWJWKUUHABXSYELLLJUVPUVQUVRWLWMWNUUAUUGYJUUKVJ
          UUDABCDEFXRXSYEYFJKLMVKWPWQWRWS $.

        $( 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 Jim Kingdon, 1-Sep-2019.) $)
        ecopoverg $p |- .~ Er ( S X. S ) $=
          ( wtru cv wcel wa wceq wbr vf vg vh cxp wer wrel cop wex relopabi a1i
          co ecopovsymg adantl ecopovtrng wi wral simpll simplr caovcomd mpbird
          ecopoveq anidms rgen2a ralxp mpbir rspec copab opabssxp eqsstri ssbri
          wb breq12 brxp simplbi syl impbid1 iserd trud ) IIUDZHUEOUAUBUCVSHHUF
          OAPZVSQBPZVSQRVTCPZDPZUGSWAEPZFPZUGSRWBWEGUKWCWDGUKSRFUHEUHDUHCUHZRZA
          BHJUIUJUAPZUBPZHTZWIWHHTOABCDEFWHWIGHIJKULUMWJWIUCPZHTRWHWKHTOABCDEFW
          HWIWKGHIJKLMNUNUMOWHVSQZWHWHHTZWLWMUOOWMUAVSWMUAVSUPWIWKUGZWNHTZUCIUP
          UBIUPWOUBUCIWIIQZWKIQZRZWOWRWRRZWOWIWKGUKWKWIGUKSWSABWIWKIGVTIQWAIQRV
          TWAGUKWAVTGUKSWSKUMWPWQWRUQWPWQWRURUSABCDEFWIWKWIWKGHIJVAUTVBVCWMWOUA
          UBUCIIWHWNSWMWOVKWHWNWHWNHVLVBVDVEVFUJWMWHWHVSVSUDZTZWLHWTWHWHHWGABVG
          WTJWFABVSVSVHVIVJXAWLWLWHWHVSVSVMVNVOVPVQVR $.
      $}

    $}
  $}

  ${
    $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 A $.  $d x y z w v u B $.
    th3qlem1.1 $e |- .~ Er S $.
    $( Compatibility assumption. $)
    th3qlem1.3 $e |- ( ( ( y e. S /\ w e. S ) /\ ( z e. S /\ v e. S ) ) ->
                 ( ( y .~ w /\ z .~ v ) -> ( y .+ z ) .~ ( w .+ v ) ) ) $.
    $( Lemma for Exercise 44 version of Theorem 3Q of [Enderton] p. 60.  The
       third hypothesis is the compatibility assumption.  (Contributed by NM,
       3-Aug-1995.)  (Revised by Mario Carneiro, 9-Jul-2014.) $)
    th3qlem1 $p |- ( ( A e. ( S /. .~ ) /\ B e. ( S /. .~ ) ) -> E* x
       E. y E. z ( ( A = [ y ] .~ /\ B = [ z ] .~ ) /\
       x = [ ( y .+ z ) ] .~ ) ) $=
      ( vu wcel wa cv cec wceq wex ecelqsdm cqs co wi wal ee4anv eleq1 bi2anan9
      wmo an4 wb adantr biimpac anim12i an4s adantl wer a1i wbr simprl cdm erdm
      eqtr2 ax-mp simpll sylancr mpbird simprr simplr eqeltrrd syl22anc syl2anc
      erth mp2and erthi eqeq12 syl5ibrcom expimpd syl5bi exlimdvv syl5bir eqeq1
      alrimivv anbi2d 2exbidv eceq1 eqeq2d oveq12 eceq1d anbi12d cbvex2v syl6bb
      mo4 sylibr ) FJIUAZNZGWNNZOZFBPZIQZRZGCPZIQZRZOZAPZWRXAHUBZIQZRZOZCSBSZFD
      PZIQZRZGEPZIQZRZOZMPZXKXNHUBZIQZRZOZESDSZOZXEXRRZUCZMUDAUDXJAUHWQYFAMYDXI
      YBOZESDSZCSBSWQYEXIYBBCDEUEWQYHYEBCWQYGYEDEYGXDXQOZXHYAOZOWQYEXDXHXQYAUIW
      QYIYJYEWQYIOZYEYJXGXTRZYKWSWNNZXBWNNZOZWSXLRZXBXORZOZYLYIWQYOXDWQYOUJXQWT
      WOYMXCWPYNFWSWNUFGXBWNUFUGUKULYIYRWQWTXMXCXPYRWTXMOYPXCXPOYQFWSXLVBGXBXOV
      BUMUNUOYOYROZXFXSIJJIUPZYSKUQZYSWRXKIURZXAXNIURZXFXSIURZYSUUBYPYOYPYQUSZY
      SWRXKIJUUAYSIUTJRZYMWRJNZYTUUFKJIVAVCZYMYNYRVDZJWRITVEZVLVFYSUUCYQYOYPYQV
      GZYSXAXNIJUUAYSUUFYNXAJNZUUHYMYNYRVHZJXAITVEZVLVFYSUUGXKJNZUULXNJNZUUBUUC
      OUUDUCUUJYSUUFXLWNNUUOUUHYSWSXLWNUUEUUIVIJXKITVEUUNYSUUFXOWNNUUPUUHYSXBXO
      WNUUKUUMVIJXNITVELVJVMVNVKXEXGXRXTVOVPVQVRVSVSVTWBXJYCAMYEXJXDXRXGRZOZCSB
      SYCYEXIUURBCYEXHUUQXDXEXRXGWAWCWDUURYBBCDEWRXKRZXAXNRZOZXDXQUUQYAUUSWTXMU
      UTXCXPUUSWSXLFWRXKIWEWFUUTXBXOGXAXNIWEWFUGUVAXGXTXRUVAXFXSIWRXKXAXNHWGWHW
      FWIWJWKWLWM $.
  $}

  ${
    $d x y z w v u t s f g h .~ $.  $d x y z w v u t s f g h S $.
    $d x y z w v u t s f A $.  $d x y z w v u t s f B $.  $d x y z w v u t C $.
    $d x y z w v u t D $.  $d x y z w v u t s f g h .+ $.
    th3q.1 $e |- .~ e. _V $.
    th3q.2 $e |- .~ Er ( S X. S ) $.
    $( Compatibility assumption. $)
    th3q.4 $e |- ( ( ( ( w e. S /\ v e. S ) /\ ( u e. S /\ t e. S ) )
       /\ ( ( s e. S /\ f e. S ) /\ ( g e. S /\ h e. S ) ) ) ->
       ( ( <. w , v >. .~ <. u , t >. /\ <. s , f >. .~ <. g , h >. ) ->
       ( <. w , v >. .+ <. s , f >. ) .~ ( <. u , t >. .+ <. g , h >. ) ) ) $.
    $( Lemma for Exercise 44 version of Theorem 3Q of [Enderton] p. 60,
       extended to operations on ordered pairs.  The fourth hypothesis is the
       compatibility assumption.  (Contributed by NM, 4-Aug-1995.)  (Revised by
       Mario Carneiro, 12-Aug-2015.) $)
    th3qlem2 $p |- ( ( A e. ( ( S X. S ) /. .~ ) /\ B e. ( ( S X. S ) /. .~ ) )
           -> E* z E. w E. v E. u E. t (
           ( A = [ <. w , v >. ] .~ /\ B = [ <. u , t >. ] .~ ) /\
                  z = [ ( <. w , v >. .+ <. u , t >. ) ] .~ ) ) $=
      ( wcel wa wceq vx vy cxp cqs cv cec co wex wmo cop wbr breq1 anbi1d oveq1
      eqid breq1d imbi12d imbi2d breq2 breq2d anbi2d oveq2 expcom 2optocl com12
      wi imp th3qlem1 opex eceq1 eqeq2d bi2anan9 oveq12 eceq1d anbi12d exlimivv
      vex spc2ev moimi syl ) FJJUCZIUDZRGWBRSFNUEZIUFZTZGUAUEZIUFZTZSZAUEZWCWFH
      UGZIUFZTZSZUAUHNUHZAUIFBUEZCUEZUJZIUFZTZGDUEZEUEZUJZIUFZTZSZWJWRXCHUGZIUF
      ZTZSZEUHDUHZCUHBUHZAUIANUAKUBFGHIWAPWCWARKUEZWARSWFWARUBUEZWARSZWCXMIUKZW
      FXNIUKZSZWKXMXNHUGZIUKZVFZXOWRXCIUKZXQSZWRWFHUGZXCXNHUGZIUKZVFZVFXOWCXCIU
      KZXQSZWKYEIUKZVFZVFXOYAVFBCDEWCXMJJWAWAUOZWRWCTZYGYKXOYMYCYIYFYJYMYBYHXQW
      RWCXCIULUMYMYDWKYEIWRWCWFHUNUPUQURXCXMTZYKYAXOYNYIXRYJXTYNYHXPXQXCXMWCIUS
      UMYNYEXSWKIXCXMXNHUNUTUQURXOWPJRWQJRSXAJRXBJRSSZYGYOYBWCXMUJZLUEZMUEZUJZI
      UKZSZWRYPHUGZXCYSHUGZIUKZVFZVFYOYBWFYSIUKZSZYDUUCIUKZVFZVFYOYGVFNKLMWFXNJ
      JWAYLYPWFTZUUEUUIYOUUJUUAUUGUUDUUHUUJYTUUFYBYPWFYSIULVAUUJUUBYDUUCIYPWFWR
      HVBUPUQURYSXNTZUUIYGYOUUKUUGYCUUHYFUUKUUFXQYBYSXNWFIUSVAUUKUUCYEYDIYSXNXC
      HVBUTUQURYOWCJRXMJRSYQJRYRJRSSUUEQVCVDVEVDVGVHXLWOAXKWOBCXJWODEWNXJNUAWRX
      CWPWQBVQCVQVIXAXBDVQEVQVIWCWRTZWFXCTZSZWIXFWMXIUULWEWTUUMWHXEUULWDWSFWCWR
      IVJVKUUMWGXDGWFXCIVJVKVLUUNWLXHWJUUNWKXGIWCWRWFXCHVMVNVKVOVRVPVPVSVT $.

    ${
      th3q.5 $e |- G = { <. <. x , y >. , z >. | ( ( x e. ( ( S X. S ) /. .~ )
           /\ y e. ( ( S X. S ) /. .~ ) ) /\ E. w E. v E. u E. t ( (
           x = [ <. w , v >. ] .~ /\ y = [ <. u , t >. ] .~ ) /\
           z = [ ( <. w , v >. .+ <. u , t >. ) ] .~ ) ) } $.
      $( Corollary of Theorem 3Q of [Enderton] p. 60.  (Contributed by NM,
         12-Nov-1995.)  (Revised by David Abernethy, 4-Jun-2013.) $)
      th3qcor $p |- Fun G $=
        ( cv wfun cxp cqs wcel wa cop cec co wex coprab wmo wi th3qlem2 moanimv
        wceq mpbir funoprab funeqi ) NUAATZJJUBIUCZUDBTZUTUDUEZUSDTETUFZIUGUOVA
        FTGTUFZIUGUOUECTVCVDHUHIUGUOUEGUIFUIEUIDUIZUEZABCUJZUAVFABCVFCUKVBVECUK
        ULCDEFGUSVAHIJKLMOPQRUMVBVECUNUPUQNVGSURUP $.

      $( Theorem 3Q of [Enderton] p. 60, extended to operations on ordered
         pairs.  (Contributed by NM, 4-Aug-1995.)  (Revised by Mario Carneiro,
         19-Dec-2013.) $)
      th3q $p |- ( ( ( A e. S /\ B e. S ) /\ ( C e. S /\ D e. S ) ) ->
                 ( [ <. A , B >. ] .~ G [ <. C , D >. ] .~ ) =
                 [ ( <. A , B >. .+ <. C , D >. ) ] .~ ) $=
        ( wcel wa cop cec cxp cqs cv wceq co wex opelxpi ecelqsi anim12i pm3.2i
        syl eqid opeq12 eceq1 eqeq2d anbi1d oveq1 eceq1d anbi12d spc2egv anbi2d
        wb oveq2 2eximdv sylan9 mp2ani cvv ecexg ax-mp w3a eqeq1 bi2anan9 3impa
        wi 4exbidv th3qlem2 ovig mp3an3 sylc ) HNUDINUDUEZJNUDKNUDUEZUEZHIUFZMU
        GZNNUHZMUIZUDZJKUFZMUGZWMUDZUEWKDUJZEUJZUFZMUGZUKZWPFUJZGUJZUFZMUGZUKZU
        EZWJWOLULZMUGZWTXELULZMUGZUKZUEZGUMFUMZEUMDUMZWKWPRULXJUKZWGWNWHWQWGWJW
        LUDWNHINNUNWLWJMTUOURWHWOWLUDWQJKNNUNWLWOMTUOURUPWIWKWKUKZWPWPUKZUEZXJX
        JUKZXPXRXSWKUSWPUSUQXJUSWGXTYAUEZXBXSUEZXJWTWOLULZMUGZUKZUEZEUMDUMWHXPY
        GYBDEHINNWRHUKWSIUKUEWTWJUKZYGYBVIWRWSHIUTYHYCXTYFYAYHXBXRXSYHXAWKWKWTW
        JMVAVBVCYHYEXJXJYHYDXIMWTWJWOLVDVEVBVFURVGWHYGXODEXNYGFGJKNNXCJUKXDKUKU
        EXEWOUKZXNYGVIXCXDJKUTYIXHYCXMYFYIXGXSXBYIXFWPWPXEWOMVAVBVHYIXLYEXJYIXK
        YDMXEWOWTLVJVEVBVFURVGVKVLVMWNWQXJVNUDZXPXQWAMVNUDYJTXIVNMVOVPAUJZXAUKZ
        BUJZXFUKZUEZCUJZXLUKZUEZGUMFUMEUMDUMXPABCWKWPXJVNWMWMRYKWKUKZYMWPUKZYPX
        JUKZVQYRXNDEFGYSYTUUAYRXNVIYSYTUEYOXHUUAYQXMYSYLXBYTYNXGYKWKXAVRYMWPXFV
        RVSYPXJXLVRVSVTWBCDEFGYKYMLMNOPQSTUAUBWCUCWDWEWF $.
    $}
  $}

  ${
    $d a b c d f u v w x y z C $.  $d a b c d f u v w x y z D $.  $d x y z J $.
    $d a b c d f g h u v w x y z A $.  $d u v w z ch $.  $d f u v w x y z H $.
    $d a b c d f g h u v w x y z B $.  $d f u v w x y z K $.  $d u v w z ps $.
    $d f u v w x y z L $.  $d x y ph $.  $d a b c d f g h s t u v w x y z S $.
    $d a b c d g h s t x y z .+ $.  $d a b c d g h s t x y z .~ $.
    oviec.1 $e |- ( ( ( A e. S /\ B e. S ) /\ ( C e. S /\ D e. S ) ) ->
        H e. ( S X. S ) ) $.
    oviec.2 $e |- ( ( ( a e. S /\ b e. S ) /\ ( g e. S /\ h e. S ) ) ->
        K e. ( S X. S ) ) $.
    oviec.3 $e |- ( ( ( c e. S /\ d e. S ) /\ ( t e. S /\ s e. S ) ) ->
        L e. ( S X. S ) ) $.
    oviec.4 $e |- .~ e. _V $.
    oviec.5 $e |- .~ Er ( S X. S ) $.
    $( Equivalence relation. $)
    oviec.7 $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 >. ) /\ ph ) ) } $.
    $( Substitutions for equivalence relation. $)
    oviec.8 $e |- ( ( ( z = a /\ w = b ) /\ ( v = c /\ u = d ) ) ->
                     ( ph <-> ps ) ) $.
    oviec.9 $e |- ( ( ( z = g /\ w = h ) /\ ( v = t /\ u = s ) ) ->
                     ( ph <-> ch ) ) $.
    $( Pre-operation. $)
    oviec.10 $e |- .+ = { <. <. x , y >. , z >. | ( ( x e. ( S X. S ) /\
                      y e. ( S X. S ) ) /\
                      E. w E. v E. u E. f ( ( x = <. w , v >. /\
                      y = <. u , f >. ) /\ z = J ) ) } $.
    $( Substitutions for pre-operation. $)
    oviec.11 $e |- ( ( ( w = a /\ v = b ) /\ ( u = g /\ f = h ) ) -> J = K ) $.
    oviec.12 $e |- ( ( ( w = c /\ v = d ) /\ ( u = t /\ f = s ) ) -> J = L ) $.
    oviec.13 $e |- ( ( ( w = A /\ v = B ) /\ ( u = C /\ f = D ) ) -> J = H ) $.
    $( Main operation. $)
    oviec.14 $e |- .+^ = { <. <. x , y >. , z >. | ( ( x e. Q /\ y e. Q ) /\
           E. a E. b E. c E. d ( (
           x = [ <. a , b >. ] .~ /\ y = [ <. c , d >. ] .~ ) /\
           z = [ ( <. a , b >. .+ <. c , d >. ) ] .~ ) ) } $.
    $( Quotient class for main operation. $)
    oviec.15 $e |- Q = ( ( S X. S ) /. .~ ) $.
    $( Lemma to establish compatibility of pre-operation. $)
    oviec.16 $e |- ( ( ( ( a e. S /\ b e. S ) /\ ( c e. S /\ d e. S ) ) /\
                       ( ( g e. S /\ h e. S ) /\ ( t e. S /\ s e. S ) ) ) ->
                   ( ( ps /\ ch ) -> K .~ L ) ) $.
    $( Express an operation on equivalence classes of ordered pairs in terms of
       equivalence class of operations on ordered pairs.  See iset.mm for
       additional comments describing the hypotheses.  (Unnecessary distinct
       variable restrictions were removed by David Abernethy, 4-Jun-2013.)
       (Contributed by NM, 6-Aug-1995.)  (Revised by Mario Carneiro,
       4-Jun-2013.) $)
    oviec $p |- ( ( ( A e. S /\ B e. S ) /\ ( C e. S /\ D e. S ) ) ->
                ( [ <. A , B >. ] .~ .+^ [ <. C , D >. ] .~ ) =
                   [ H ] .~ ) $=
      ( wcel wa cop cec co wbr opbrop bi2anan9 ovi3 breqan12d an4s 3imtr4d wceq
      cv wb wex coprab cxp cqs eleq2i anbi12i anbi1i oprabbii eqtri th3q eceq1d
      eqtrd ) KSVGLSVGVHMSVGNSVGVHVHZKLVIZRVJMNVIZRVJPVKWOWPOVKZRVJUCRVJDEFUHUI
      UJUKKLMNORSUBJUGPUAUOUPUHVTZSVGUIVTZSVGVHZUJVTZSVGUKVTZSVGVHZVHZUAVTZSVGU
      BVTZSVGVHZJVTZSVGUGVTZSVGVHZVHZVHBCVHUEUFRVLZWRWSVIZXAXBVIZRVLZXEXFVIZXHX
      IVIZRVLZVHXMXPOVKZXNXQOVKZRVLZVFXDXOBXKXRCABDEFGHIWRWSXAXBRSURUQVMACDEFGH
      IXEXFXHXIRSUSUQVMVNWTXGXCXJYAXLWAWTXGVHXCXJVHXSUEXTUFRDEFGHIWRWSXEXFUDUET
      OSUMVAUTVODEFGHIXAXBXHXIUDUFTOSUNVBUTVOVPVQVRPDVTZQVGZEVTZQVGZVHZYBXMRVJV
      SYDXNRVJVSVHFVTXMXNOVKRVJVSVHUKWBUJWBUIWBUHWBZVHZDEFWCYBSSWDRWEZVGZYDYIVG
      ZVHZYGVHZDEFWCVDYHYMDEFYFYLYGYCYJYEYKQYIYBVEWFQYIYDVEWFWGWHWIWJWKWNWQUCRD
      EFGHIKLMNUDUCTOSULVCUTVOWLWM $.
  $}

  ${
    $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.
       Most uses will want ~ ecovicom instead.  (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 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 $.
    ecovicom.1 $e |- C = ( ( S X. S ) /. .~ ) $.
    $( D,G for AFB $)
    ecovicom.2 $e |- ( ( ( x e. S /\ y e. S ) /\ ( z e. S /\ w e. S ) ) ->
 ( [ <. x , y >. ] .~ .+ [ <. z , w >. ] .~ ) = [ <. D , G >. ] .~ ) $.
    $( H,J for BFA $)
    ecovicom.3 $e |- ( ( ( z e. S /\ w e. S ) /\ ( x e. S /\ y e. S ) ) ->
 ( [ <. z , w >. ] .~ .+ [ <. x , y >. ] .~ ) = [ <. H , J >. ] .~ ) $.
    ecovicom.4 $e |- ( ( ( x e. S /\ y e. S ) /\ ( z e. S /\ w e. S ) ) ->
      D = H ) $.
    ecovicom.5 $e |- ( ( ( x e. S /\ y e. S ) /\ ( z e. S /\ w e. S ) ) ->
      G = J ) $.
    $( Lemma used to transfer a commutative law via an equivalence relation.
       (Contributed by Jim Kingdon, 15-Sep-2019.) $)
    ecovicom $p |- ( ( A e. C /\ B e. C ) -> ( A .+ B ) = ( B .+ A ) ) $=
      ( wceq cv cop co oveq1 oveq2 eqeq12d wcel wa opeq12 eceq1d syl2anc ancoms
      cec 3eqtr4d 2ecoptocl ) AUAZBUAZUBJUMZCUAZDUAZUBJUMZIUCZVAURIUCZTEVAIUCZV
      AEIUCZTEFIUCZFEIUCZTABCDEFKKJGOURETVBVDVCVEUREVAIUDUREVAIUEUFVAFTVDVFVEVG
      VAFEIUEVAFEIUDUFUPKUGUQKUGUHZUSKUGUTKUGUHZUHZHLUBZJUMZMNUBZJUMZVBVCVJHMTZ
      LNTZVLVNTRSVOVPUHVKVMJHLMNUIUJUKPVIVHVCVNTQULUNUO $.
  $}

  ${
    $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.
       In most cases ~ ecoviass will be more useful.  (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 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 $.
    ecoviass.1 $e |- D = ( ( S X. S ) /. .~ ) $.
    ecoviass.2 $e |- ( ( ( x e. S /\ y e. S ) /\ ( z e. S /\ w e. S ) ) ->
 ( [ <. x , y >. ] .~ .+ [ <. z , w >. ] .~ ) = [ <. G , H >. ] .~ ) $.
    ecoviass.3 $e |- ( ( ( z e. S /\ w e. S ) /\ ( v e. S /\ u e. S ) ) ->
 ( [ <. z , w >. ] .~ .+ [ <. v , u >. ] .~ ) = [ <. N , Q >. ] .~ ) $.
    ecoviass.4 $e |- ( ( ( G e. S /\ H e. S ) /\ ( v e. S /\ u e. S ) ) ->
 ( [ <. G , H >. ] .~ .+ [ <. v , u >. ] .~ ) = [ <. J , K >. ] .~ ) $.
    ecoviass.5 $e |- ( ( ( x e. S /\ y e. S ) /\ ( N e. S /\ Q e. S ) ) ->
 ( [ <. x , y >. ] .~ .+ [ <. N , Q >. ] .~ ) = [ <. L , M >. ] .~ ) $.
    ecoviass.6 $e |- ( ( ( x e. S /\ y e. S ) /\ ( z e. S /\ w e. S ) ) ->
                     ( G e. S /\ H e. S ) ) $.
    ecoviass.7 $e |- ( ( ( z e. S /\ w e. S ) /\ ( v e. S /\ u e. S ) ) ->
                     ( N e. S /\ Q e. S ) ) $.
    ecoviass.8 $e |- ( ( ( x e. S /\ y e. S ) /\ ( z e. S /\ w e. S )
        /\ ( v e. S /\ u e. S ) ) -> J = L ) $.
    ecoviass.9 $e |- ( ( ( x e. S /\ y e. S ) /\ ( z e. S /\ w e. S )
        /\ ( v e. S /\ u e. S ) ) -> K = M ) $.
    $( Lemma used to transfer an associative law via an equivalence relation.
       (Contributed by Jim Kingdon, 16-Sep-2019.) $)
    ecoviass $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 syl2anc adantr sylan eqtrd 3impa adantl sylan2 3eqtr4d 3ecoptocl
      3impb ) AUKZBUKZULMUMZCUKZDUKZULMUMZKUNZEUKZFUKZULMUMZKUNZVRWAWEKUNZKUNZU
      OGWAKUNZWEKUNZGWGKUNZUOGHKUNZWEKUNZGHWEKUNZKUNZUOWLIKUNZGHIKUNZKUNZUOABCD
      EFGHINMJUBVRGUOZWFWJWHWKWSWBWIWEKVRGWAKUPUQVRGWGKUPURWAHUOZWJWMWKWOWTWIWL
      WEKWAHGKUSUQWTWGWNGKWAHWEKUPUTURWEIUOZWMWPWOWRWEIWLKUSXAWNWQGKWEIHKUSUTUR
      VPNVAVQNVAVBZVSNVAVTNVAVBZWCNVAWDNVAVBZVCZQRULZMUMZSTULZMUMZWFWHXEQSUOZRT
      UOZXGXIUOUIUJXJXKVBXFXHMQRSTVDVEVFXBXCXDWFXGUOXBXCVBZXDVBWFOPULMUMZWEKUNZ
      XGXLWFXNUOXDXLWBXMWEKUCUQVGXLONVAPNVAVBXDXNXGUOUGUEVHVIVJXBXCXDWHXIUOXBXC
      XDVBZVBWHVRUALULMUMZKUNZXIXOWHXQUOXBXOWGXPVRKUDUTVKXOXBUANVALNVAVBXQXIUOU
      HUFVLVIVOVMVN $.
  $}

  ${
    $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.
       Most likely ~ ecovidi will be more helpful.  (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 $.
  $}

  ${
    $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 $.
    ecovidi.1 $e |- D = ( ( S X. S ) /. .~ ) $.
    $( M,N for BFC $)
    ecovidi.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) $)
    ecovidi.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 $)
    ecovidi.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 $)
    ecovidi.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) $)
    ecovidi.6 $e |- ( ( ( W e. S /\ X e. S ) /\ ( Y e. S /\ Z e. S ) ) ->
 ( [ <. W , X >. ] .~ .+ [ <. Y , Z >. ] .~ ) = [ <. K , L >. ] .~ ) $.
    ecovidi.7 $e |- ( ( ( z e. S /\ w e. S ) /\ ( v e. S /\ u e. S ) ) ->
                     ( M e. S /\ N e. S ) ) $.
    ecovidi.8 $e |- ( ( ( x e. S /\ y e. S ) /\ ( z e. S /\ w e. S ) ) ->
                     ( W e. S /\ X e. S ) ) $.
    ecovidi.9 $e |- ( ( ( x e. S /\ y e. S ) /\ ( v e. S /\ u e. S ) ) ->
                     ( Y e. S /\ Z e. S ) ) $.
    ecovidi.10 $e |- ( ( ( x e. S /\ y e. S ) /\ ( z e. S /\ w e. S )
        /\ ( v e. S /\ u e. S ) ) -> H = K ) $.
    ecovidi.11 $e |- ( ( ( x e. S /\ y e. S ) /\ ( z e. S /\ w e. S )
        /\ ( v e. S /\ u e. S ) ) -> J = L ) $.
    $( Lemma used to transfer a distributive law via an equivalence relation.
       (Contributed by Jim Kingdon, 17-Sep-2019.) $)
    ecovidi $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 syl2anc adantl sylan2 eqtrd 3impb oveqan12d syl2an 3eqtr4d
      3impdi 3ecoptocl ) AUPZBUPZUQLVIZCUPZDUPZUQLVIZEUPZFUPZUQLVIZKURZNURZWDWG
      NURZWDWJNURZKURZUSGWKNURZGWGNURZGWJNURZKURZUSGHWJKURZNURZGHNURZWRKURZUSGH
      IKURZNURZXBGINURZKURZUSABCDEFGHIMLJUEWDGUSZWLWPWOWSWDGWKNUTXHWMWQWNWRKWDG
      WGNUTWDGWJNUTVAVBWGHUSZWPXAWSXCXIWKWTGNWGHWJKUTVCXIWQXBWRKWGHGNVDVEVBWJIU
      SZXAXEXCXGXJWTXDGNWJIHKVDVCXJWRXFXBKWJIGNVDVCVBWBMVFWCMVFVGZWEMVFWFMVFVGZ
      WHMVFWIMVFVGZVJZOPUQZLVIZQRUQZLVIZWLWOXNOQUSZPRUSZXPXRUSUNUOXSXTVGXOXQLOP
      QRVHVKVLXKXLXMWLXPUSXKXLXMVGZVGWLWDSTUQLVIZNURZXPYAWLYCUSXKYAWKYBWDNUFVCV
      MYAXKSMVFTMVFVGYCXPUSUKUGVNVOVPXKXLXMWOXRUSXKXLVGZXKXMVGZVGWOUAUBUQLVIZUC
      UDUQLVIZKURZXRYDYEWMYFWNYGKUHUIVQYDUAMVFUBMVFVGUCMVFUDMVFVGYHXRUSYEULUMUJ
      VRVOVTVSWA $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Equinumerosity
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Introduce new constant symbols. $)
  $c ~~ $.  $( Equinumerosity relation ("approximately equals" symbol) $)
  $c ~<_ $.  $( Dominance relation (curly less-than-or-equal) $)
  $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 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.  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 (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 .  (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 $.
  $}

  $( 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 wcel cvv cdom wbr cv wf1 wex wi reldom brrelexi a1i wceq exbidv
      wf f1f cdm fdm vex dmex syl6eqelr syl exlimiv wb f1eq2 f1eq3 df-dom brabg
      expcom pm5.21ndd ) BCGZAHGZABIJZABDKZLZDMZURUQNUPABIOPQVAUQNUPUTUQDUTABUS
      TZUQABUSUAVBAUSUBHABUSUCUSDUDUEUFUGUHQUQUPURVAUIEKZFKZUSLZDMAVDUSLZDMVAEF
      ABHCIVCARVEVFDVCAVDUSUJSVDBRVFUTDVDBAUSUKSEFDULUMUNUO $.

    $( 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 $.  $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 $.
  $}

  ${
    $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 $.
  $}

  $( 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 $.

  $( 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.) $)
    ener $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-setind .)
     (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 opex f1oeq1 spcev ax-mp
      snex bren mpbir df1o2 breqtrri ) ADZEDZFGUDUEGHUDUECIZJZCKZUDUEAELZDZJZUH
      AEBMNUGUKCUJUIAEBMOSUDUEUFUJPQRUDUECTUAUBUC $.
  $}

  ${
    $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 c0 wf1o df1o2 breq2i crn syl 0ex exlimiv
      wcel cvv bren bitri ccnv cfv f1ocnv wfo f1ofo forn cop wf f1of fsn2 rneqd
      simprbi rnsnop syl6eq eqtr3d wfn f1ofn snid funfvex funfni sylancl eqeq2d
      wi sneq spcegv sylc sylbi vex ensn1 breq1 mpbiri impbii ) BDEFZBAGZHZIZAJ
      ZVOBKHZCGZLZCJZVSVOBVTEFWCDVTBEMNBVTCUAUBWBVSCWBVTBWAUCZLZBKWDUDZHZIZVSBV
      TWAUEZWBWEWHWIWEWDOZBWGWEVTBWDUFWJBIVTBWDUGVTBWDUHPWEWJKWFUIHZOWGWEWDWKWE
      VTBWDUJZWDWKIZVTBWDUKWLWFBSWMKBWDQULUNPUMKWFQUOUPUQPWEWFTSZWHVSVEWEWDVTUR
      KVTSWNVTBWDUSKQUTWNVTKWDKWDVAVBVCVRWHAWFTVPWFIVQWGBVPWFVFVDVGPVHRVIVRVOAV
      RVOVQDEFVPAVJVKBVQDEVLVMRVN $.

    $( A set is equinumerous to ordinal one iff it is a singleton.
       (Contributed by Jim Kingdon, 13-Apr-2020.) $)
    en1bg $p |- ( A e. V -> ( A ~~ 1o <-> A = { U. A } ) ) $=
      ( vx wcel c1o cen wbr cuni csn cv wex en1 id unieq vex unisn syl6eq sneqd
      wceq cvv eqtr4d exlimiv sylbi uniexg ensn1g syl breq1 syl5ibrcom impbid2
      ) ABDZAEFGZAAHZIZSZUKACJZIZSZCKUNCALUQUNCUQAUPUMUQMUQULUOUQULUPHUOAUPNUOC
      OPQRUAUBUCUJUKUNUMEFGZUJULTDURABUDULTUEUFAUMEFUGUHUI $.

    $( 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 wcel relen brrelexi uniexg snidg 3syl wceq wb simpld
    cvv encv en1bg syl ibi eleqtrrd ) ABCDZAEZUCFZAUBAPGZUCPGUCUDGABCHIAPJUCPKL
    UBAUDMZUBUEUBUFNUBUEBPGABQOAPRSTUA $.

  ${
    $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 funfvex op1stbg sylancr eqtr2d adantrr impbid en3d )
      AUAZCDAUBZACGZWIAUCZHZDGZIZIZWHJKWGABUDLAJKWGBLWGWIWHKZWKAKWIAUEMWGAUFZWL
      AKZWNWHKZNAUGZWPWQWRAWLUHMUIWGWOWQOZWIWNPZWLWKPZQWGWTOXAXBWGWQXAXBNZWOWGW
      QOZWLEGZFGZHZPZFRERZXCXDWLJJUJZKXIWGAXJWLWGWPAXJUNWSAUKULUMEFWLUOULXDXHXC
      EFXDXHXAXBXDXHXAOZOZWLWIXFHZWKXKWLXMPZXDXAXHXNXAXHOZXMXGPZXNXAXHXPXAXHWIX
      EPZXPXHXQXAWNXEPXHWNXGIZIXEXHWMXRWLXGUPUQXEXFESFSURUSWIWNXEUTVAWIXEXFVBVC
      VDXHXPXNNXAXPXNXHXMXGWLVFVETVQZVGTXLWJXFWIWGWQXHXAWJXFPZWGXAXHWQXTWGXAXHW
      QXTNWGXOOWQXMAKZXTXOWQYAQWGXOWLXMAXSVHTWGYAXTNXOWIXFAVIVJVKVLVMVNVOVPVLVR
      VQVSWGWOXBXANWQWGWOOZXBXAYBXBOWNWKIZIZWIXBWNYDPYBXBWMYCWLWKUPUQTYBYDWIPZX
      BYBWIJKWJJKYECSWIAVTWIWJJJWAWBVJWCMWDWEMWF $.
  $}

  ${
    $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 $.
  $}

  $( 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 x y A $.  $d x y B $.  $d x y C $.  $d x y D $.  $d x y V $.
    $( 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 Jim Kingdon, 13-Apr-2020.) $)
    snfig $p |- ( A e. V -> { A } e. Fin ) $=
      ( vx wcel csn cv cen wbr com wrex cfn c1o 1onn ensn1g rspcev sylancr isfi
      breq2 sylibr ) ABDZAEZCFZGHZCIJZUAKDTLIDUALGHZUDMABNUCUECLIUBLUAGROPCUAQS
      $.

    $( 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 snfig ax-mp eleq1
      wn vex mpbiri df-nel exlimiv abssi ssexg mpan con3i 3imtr4i ) ACZBCZDZEZB
      FZAGZHIZJHIZABKULHLZQJHLZQUMUNUPUOULJMUPUOUKAJUJUGJLZBUJUQUIJLZUHHLURBRUH
      HNOUGUIJPSUAUBULJHUCUDUEULHTJHTUFO $.

    $( 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 $.
  $}

  ${
    $d A x y $.
    $( A singleton (whether of a set or a proper class) is dominated by one.
       (Contributed by Jim Kingdon, 1-Mar-2022.) $)
    1domsn $p |- { A } ~<_ 1o $=
      ( vx vy csn c1o c0 cmpt wf1 cdom wbr wcel wral cv wi 0lt1o rgenw wa elsni
      wceq adantr adantl eqtr4d a1d rgen2a eqid eqidd f1mpt mpbir2an 1onn elexi
      com f1dom ax-mp ) ADZEBUNFGZHZUNEIJUPFEKZBUNLFFSZBMZCMZSZNZCUNLBUNLUQBUNO
      PVBBCUNUSUNKZUTUNKZQZVAURVEUSAUTVCUSASVDUSARTVDUTASVCUTARUAUBUCUDBCUNEFFU
      OUOUEVAFUFUGUHUNEUOEUKUIUJULUM $.
  $}

  ${
    $d f x y A $.  $d f x y B $.
    $( A set equinumerous to an inhabited set is inhabited.  (Contributed by
       Jim Kingdon, 19-May-2020.) $)
    enm $p |- ( ( A ~~ B /\ E. x x e. A ) -> E. y y e. B ) $=
      ( vf cv wcel wex cen wbr wi wf1o bren wf f1of wa cfv ffvelrn syl exlimiv
      elex2 ex sylbi com12 impcom ) AFZCGZAHCDIJZBFDGBHZUGUHUIKAUHUGUIUHCDEFZLZ
      EHUGUIKZCDEMUKULEUKCDUJNZULCDUJOUMUGUIUMUGPUFUJQZDGUICDUFUJRBUNDUASUBSTUC
      UDTUE $.
  $}

  ${
    $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 ) EFABUAZUBZAEHZIZIZFHZBJZAVRCBDUCUDCVTVSKZVTWCGHZJ
      ZLZWCAKZWFVRKZTZTZGMZFMZWBNKZFGVTAVRUEZWLWOFGWHWOWKWHWBWCNWHWBWGIZIWCWHWA
      WQVTWGOPWCWFFQZGQRUFWRUGSUHUIWDNKWIWCBWRDUJUMWEWCWBLZTVTWBBJZLZWBAKZTZWST
      ZVTWDLZWITZWIXETWSWEXCWSWOWEXCUKFWBULWEWSXFTZFMZWOXCWEWNXHWPWMXGFWMWFBLZW
      HWITZTZGMXFXGWLXKGXJWJTWJXJTWLXKXJWJUNWHWIWJUOWJXIXJGBUPUQURUSXJXFGBDXIWH
      XEWIXIWGWDVTWFBWCVDUTVAVBXFWSXETZWITXGXEXLWIXEWSXEWBWDIZIWCXEWAXMVTWDOPWC
      BWRDRVEZVCUQWSXEWIUOVFVGUSVFXFXCFWBNWSXEXAWIXBWSWDWTVTWCWBBVHUTWCWBAVNVIZ
      VJVKVOVLXFXFWSTXDXFWSXEWSWIXNSVMWSXFXCXOVLVPXEWIUNVGVQ $.
  $}

  ${
    $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
      GEUCRDLFLUAUNUDZRUBCDUEVKVAVCMABUPUSCUOEUFSDURFLVLUGSVDUPOZVFUSOZMZVHVAVJ
      VCVMVEUQVNVGUTVDUPCJTVFUSDJTUHVOVIVBGVDUPVFUSUIUJUKULUM $.
  $}

  ${
    $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 cvv copab cop ccom cmpt2 cfv wf1o wfun
      cxp cdm wb xpcomf1o f1ofun funbrfv2b mp2b ancom eqcom f1odm ax-mp anbi12i
      eleq2i 3bitri anbi1i anass bitri exbii csn ccnv cuni wal vex mptfvex snex
      mpan2 cnvex uniex mpg breq1 anbi2d ceqsexv elxp nfcv nfmpt22 nfcxfr 19.41
      nfbr nfmpt21 fveq2 opelxpi sneq cnveqd unieqd mp2an syl6eq opex fvmpt syl
      opswapg sylan9eq breq1d coprab df-br df-mpt2 oprabid baib ancoms pm5.32da
      eqtri adantl bitrd pm5.32i bitr3i 3bitr2i opabbii df-co dfoprab2 3eqtr4i
      ) KNZLNZGOZXRMNZHOZPZLQZKMUAXQCNZBNZUBZRZYDDSZYEESZPZXTFRZPZPZBQZCQZKMUAZ
      HGUCCBDEFUDZYCYOKMYCXRXQGUEZRZXQDEUHZSZYAPZPZLQUUAYRXTHOZPZYOYBUUCLYBYSUU
      APZYAPUUCXSUUFYAXSXQGUIZSZYRXRRZPZUUIUUHPUUFYTEDUHZGUFZGUGXSUUJUJADEGIUKZ
      YTUUKGULXQXRGUMUNUUHUUIUOUUIYSUUHUUAYRXRUPUUGYTXQUULUUGYTRUUMYTUUKGUQURUT
      USVAVBYSUUAYAVCVDVEUUBUUELYRANZVFZVGZVHZTSZYRTSZAUURAVIXQTSUUSKVJAYTUUQXQ
      GTTIVKVMUUPUUOUUNAVJVLVNVOVPYSYAUUDUUAXRYRXTHVQVRVSUUEYGYJPZBQZCQZUUDPUVA
      UUDPZCQYOUUAUVBUUDCBXQDEVTVBUVAUUDCCYRXTHCYRWACHBCEDFUDZJBCEDFWBWCCXTWAWE
      WDUVCYNCUVCUUTUUDPZBQYNUUTUUDBBYRXTHBYRWABHUVDJBCEDFWFWCBXTWAWEWDUVEYMBUV
      EYGYJUUDPZPYMYGYJUUDVCYGUVFYLYGYJUUDYKUUTUUDYEYDUBZXTHOZYKUUTYRUVGXTHYGYJ
      YRYFGUEZUVGXQYFGWGYJYFYTSUVIUVGRYDYEDEWHAYFUUQUVGYTGUUNYFRZUUQYFVFZVGZVHZ
      UVGUVJUUPUVLUVJUUOUVKUUNYFWIWJWKYDTSYETSUVMUVGRCVJZBVJZYDYETTWQWLWMIYEYDU
      VOUVNWNWOWPWRWSYJUVHYKUJZYGYIYHUVPUVHYIYHPZYKUVHUVGXTUBZHSUVRUVQYKPZBCMWT
      ZSUVSUVGXTHXAHUVTUVRHUVDUVTJBCMEDFXBXGUTUVSBCMXCVAXDXEXHXIXFXJVDVEXKVEXLV
      AXMKMLHGXNYQYLCBMWTYPCBMDEFXBYLCBMKXOXGXP $.
  $}

  ${
    $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 csn cxp cen wbr cvv snexg xpcomeng sylan xpsneng ancoms entr syl2anc
    wa ) ACEZBDEZRAFZBGZBUAGZHIZUCBHIZUBBHISUAJETUDACKUABJDLMTSUEBADCNOUBUCBPQ
    $.

  ${
    $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 uniex wceq wa wex vx cxp xpex cvv
      vy vex snex dmex rnex opex a1i sneq dmeqd unieqd sneqd 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
      cv opeq1 eqeq2d anbi1d anbi2d ceqsexv 3bitri 3exbii anbi2i 19.42vv bitr3i
      bitri exrot3 opeq2 en2i ) UAUEABUBZCUBZABCUBZUBZUAWAZKZLZMZKZLZMZXDNZMZXA
      NZMZOZOZUEWAZKZLZMZXNNZMZKZLZMZOZXSNZMZOZWPCABDEUCFUCAWRDBCEFUCUCXLUDPWTW
      QPZXFXKXEXDXCXBXAWTUAUFUGZUHQUGZUHQXHXJXGXDYHUIQXIXAYGUIQUJUJUKYEUDPXMWSP
      ZYBYDXPYAXOXNXMUEUFUGZUHQXTXSXRXQXNYJUIQUGZUHQUJYCXSYKUIQUJUKWTGWAZHWAZOZ
      IWAZOZRZYLAPZYMBPZSZYOCPZSZSZITZHTGTZXMXLRZSZXMYLYMYOOZOZRZYRYSUUASZSZSZI
      TZHTZGTZWTYERZSZYFUUFSYIUUQSUUDUUFSZHTGTUUNUUQSZHTGTUUGUURUUSUUTGHUUCUUFS
      ZITUUMUUQSZITUUSUUTUVAUVBIYQUUFSZUUBSUUJUUQSZUULSUVAUVBUVCUVDUUBUULWTXMYP
      UUIXLYEYQYLXFUUHXKYQXFYPKZLZMZKZLZMZYLYQXEUVIYQXDUVHYQXCUVGYQXBUVFYQXAUVE
      WTYPULZUMUNUOZUMUNUVJYNKZLZMYLUVIUVNUVHUVMUVGYNYNYOYLYMGUFZHUFZUJZIUFZUPU
      QZURUSYLYMUVOUVPUPUTVAYQYMXHYOXJYQXHUVHNZMZYMYQXGUVTYQXDUVHUVLVBUNUWAUVMN
      ZMYMUVTUWBUVHUVMUVSVCUSYLYMUVOUVPVDUTVAYQXJUVENZMYOYQXIUWCYQXAUVEUVKVBUNY
      NYOUVQUVRVDVAVEVEUUJYNYBYOYDUUJYLXPYMYAUUJXPUUIKZLZMYLUUJXOUWEUUJXNUWDXMU
      UIULZUMUNYLUUHUVOYMYOUVPUVRUJZUPVAUUJYAUWDNZMZKZLZMZYMUUJXTUWKUUJXSUWJUUJ
      XRUWIUUJXQUWHUUJXNUWDUWFVBUNUOZUMUNUWLUUHKZLZMYMUWKUWOUWJUWNUWIUUHYLUUHUV
      OUWGVDUQZURUSYMYOUVPUVRUPUTVAVEUUJYDUWJNZMZYOUUJYCUWQUUJXSUWJUWMVBUNUWRUW
      NNZMYOUWQUWSUWJUWNUWPVCUSYMYOUVPUVRVDUTVAVEVFYRYSUUAVGVHYQUUBUUFVIUUJUULU
      UQVIVJVKUUCUUFIVLUUMUUQIVLVMVNUUDUUFGHVOUUNUUQGHVOVMYFUUEUUFYFWTJWAZYOOZR
      ZUWTWPPZUUASSZITJTUXDJTITZUUEJIWTWPCVPUXDJIVQUXEUWTYNRZYTSZUXBUUASZSZHTGT
      ZJTITUXIJTZITHTGTUUEUXDUXJIJUXCUXHSUXGHTGTZUXHSUXDUXJUXCUXLUXHGHUWTABVPVR
      UXBUXCUUAVSUXGUXHGHVOVJVNUXIIJGHVTUXKUUCGHIUXKUXFYTUXHSZSZJTYTYQUUASZSZUU
      CUXIUXNJUXFYTUXHVGVKUXMUXPJYNUVQUXFUXHUXOYTUXFUXBYQUUAUXFUXAYPWTUWTYNYOWB
      WCWDWEWFYTYQUUAVSWGWHWGWGVRYIUUPUUQYIXMYLUWTOZRZYRUWTWRPZSSZJTZGTUUPGJXMA
      WRVPUYAUUOGUYAUWTUUHRZUXRUULSZSZITHTZJTUYDJTZITHTUUOUXTUYEJUXRYRSZUXSSUYG
      UYBUUKSZITHTZSZUXTUYEUXSUYIUYGHIUWTBCVPWIUXRYRUXSVGUYJUYGUYHSZITHTUYEUYGU
      YHHIWJUYKUYDHIUYKUYBUYGUUKSZSUYDUYGUYBUUKVSUYLUYCUYBUXRYRUUKVGWIWLVNWKVMV
      KUYDJHIWMUYFUUMHIUYCUUMJUUHUWGUYBUXRUUJUULUYBUXQUUIXMUWTUUHYLWNWCWDWFVNWG
      VKWLVRVJWO $.
  $}

  ${
    $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 ) ) $=
      ( vf vz vw vv vu cdom cv wa cuni cop cvv wcel wi wceq wb vex vx vy brdomi
      wbr wf1 cxp csn cdm crn cfv wf f1f ffvelrn ex anim2d adantld elxp4 opelxp
      syl 3imtr4g adantl wrex elxp2 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 ) ABJUDZABEKZUEZCAUFZCBUFZJUDEABEUCXAXCLUAUBXDXEUAKZUGZUHZMZXGUIZMZ
      XBUJZNZUBKZUGZUHZMZXOUIZMZXBUJZNZOOXCXFXDPZXMXEPZQXAXCXFXIXKNRZXICPZXKAPZ
      LZLYEXLBPZLZYBYCXCYGYIYDXCYFYHYEXCABXBUKZYFYHQABXBULYJYFYHABXKXBUMUNUSUOU
      PXFCAUQXIXLCBURUTVAXCYBXNXDPZLZXMYARZXFXNRZSZQXAYLXCYOYBXFFKZGKZNZRZGAVBF
      CVBZXNHKZIKZNZRZIAVBHCVBZXCYOQZYKFGXFCAVCHIXNCAVCYTUUEUUFYTUUDUUFHICAYSUU
      ACPZUUBAPZLZUUDUUFQZQFGCAYPCPZYQAPZLZUUIYSUUJUUMUUIYSUUDXCYOUUMUUILZYSUUD
      LZLXCLYPYQXBUJZNZUUAUUBXBUJZNZRZYPUUARZYQUUBRZLZYMYNUUNXCUUTUVCSZUUOUUNXC
      UVDUULUUHXCUVDQUUKUUGUULUUHLZXCUVDUUTUVAUUPUURRZLUVEXCLZUVCYPUUPUUAUURFTZ
      YQXBOOETGTZVDVEUVGUVFUVBUVAXCUVEUVFUVBSABYQUUBXBVFVGVHVKUNVIVJVLUUOYMUUTS
      UUNXCYSUUDXMUUQYAUUSYSXIYPXLUUPYSXIYRUGZUHZMYPYSXHUVKYSXGUVJXFYRWAZVMVNYP
      YQUVHUVIVOVPYSXKYQXBYSXKUVJUIZMYQYSXJUVMYSXGUVJUVLWBVNYPYQUVHUVIVQVPVRVSU
      UDXQUUAXTUURUUDXQUUCUGZUHZMUUAUUDXPUVOUUDXOUVNXNUUCWAZVMVNUUAUUBHTZITZVOV
      PUUDXSUUBXBUUDXSUVNUIZMUUBUUDXRUVSUUDXOUVNUVPWBVNUUAUUBUVQUVRVQVPVRVSVTWC
      UUOYNUVCSUUNXCUUOYNYRUUCRUVCXFYRXNUUCWDYPYQUUAUUBUVHUVIVEWEWCWFWGWHWIWJVJ
      WKWLVAXAXDOPZXCXACOPZAOPUVTDABJWMWNCAOOWOWPWQXAXEOPZXCXAUWABOPUWBDABJWMWR
      CBOOWOWPWQWTWS $.
  $}

  ${
    $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 an inhabited set.
       Exercise 6 of [Suppes] p. 98.  (Contributed by Jim Kingdon,
       15-Apr-2020.) $)
    xpdom3m $p |- ( ( A e. V /\ B e. W /\ E. x x e. B ) ->
        A ~<_ ( A X. B ) ) $=
      ( wcel cv wex cxp cdom wbr wa w3a csn cen xpsneng 3adant2 ensymd cvv wss
      xpexg 3adant3 simp3 snssd xpss2 syl ssdomg endomtr syl2anc 3expia exlimdv
      sylc 3impia ) BDFZCEFZAGZCFZAHBBCIZJKZUNUOLUQUSAUNUOUQUSUNUOUQMZBBUPNZIZO
      KVBURJKZUSUTVBBUNUQVBBOKUOBUPDCPQRUTURSFZVBURTZVCUNUOVDUQBCDEUAUBUTVACTVE
      UTUPCUNUOUQUCUDVACBUEUFVBURSUGULBVBURUHUIUJUKUM $.
  $}

  ${
    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 A a b $.  $d B a b $.  $d F a b $.
    $( Covering implies injection on power sets.  (Contributed by Stefan
       O'Rear, 6-Nov-2014.)  (Revised by Mario Carneiro, 24-Jun-2015.) $)
    fopwdom $p |- ( ( F e. _V /\ F : A -onto-> B ) -> ~P B ~<_ ~P A ) $=
      ( va vb cvv wcel wa cpw cv cima wss crn syl adantl imaeq2 elpwid foimacnv
      wceq wb wfo ccnv imassrn cdm dfdm4 fof fdm syl5eqr syl5sseq cnvexg adantr
      wf imaexg 3syl mpbird a1d simpllr simplrl syl2anc simplrr 3eqtr3d impbid1
      elpwg ex rnexg forn eleq1d syl5ibcom imp pwexg dmfex sylan2 dom3d ) CFGZA
      BCUAZHZDEBIZAIZCUBZDJZKZVSEJZKZFFVPWAVRGZVTVQGZVPWDWAALZVOWFVNVOVSMZWAAVS
      VTUCVOWGCUDZACUEVOABCULZWHASABCUFZABCUGNUHUIOVPVSFGZWAFGWDWFTVNWKVOCFUJUK
      VSVTFUMWAAFVCUNUOUPVPWEWBVQGZHZWAWCSZVTWBSZTVPWMHZWNWOWPWNWOWPWNHZCWAKZCW
      CKZVTWBWNWRWSSWPWAWCCPOWQVOVTBLWRVTSVNVOWMWNUQZWQVTBVPWEWLWNURQABVTCRUSWQ
      VOWBBLWSWBSWTWQWBBVPWEWLWNUTQABWBCRUSVAVDVTWBVSPVBVDVPBFGZVQFGVNVOXAVNCMZ
      FGVOXACFVEVOXBBFABCVFVGVHVIBFVJNVPAFGZVRFGVOVNWIXCWJABFCVKVLAFVJNVM $.
  $}

  $( 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 $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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 opex snex f1osn mp2an difss ssexi enref pm3.2i incom ssrin ax-mp
      f1oen3g word nnord orddisj syl5sseq ss0 disjdif jctil unen sylancr adantr
      uncom nndifsnid phplem1 3brtr3d ) AEFZBAFZGZBHZAVLIZJZAHZVMJZAAKVLILVIVNV
      PLMZVJVIVLVOLMZVMVMLMZGVLVMNOPZVOVMNZOPZGVQVRVSBAUAZHZQFVLVOWDUBVRWCBADCU
      CUDBADCUEVLVOWDQUNUFVMVMACAVLUGZUHUIUJVIWBVTVIWAVMVONZOVOVMUKVIWFORWFOPVI
      AVONZWFOVMARWFWGRWEVMAVOULUMVIAUOWGOPAUPAUQSURWFUSSTVLAUTVAVLVOVMVMVBVCVD
      VKVNVMVLJAVLVMVEABVFTABVGVH $.

    $( Lemma for Pigeonhole Principle.  A natural number is equinumerous to its
       successor minus any element of the successor.  For a version without the
       redundant hypotheses, see ~ phplem3g .  (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 wb eleq2d mpbid vex fvex phplem3 sylan2
      entr syl2an anandirs ex exlimdv syl5bi ) AEZBEZFGWNWOSUAZUBZSUCAHIZBHIZTZ
      ABFGZWNWOSUDWTWQXASWTWQXAWRWSWQXAWRWQTZAWOAWPUEZJZKZFGXEBFGXAWSWQTZXBAWPA
      LZXEFXBXGAXBWNWOWPUFZWOMIZXGAFGZWQXHWRWNWOWPUGUHBDUMXHXITAWNUIAMIXJAUJCWN
      WOAWPMUKULNOWRWQXGWPWNAJZKZLZXEWRAXLWPWRAUNAXLPAUOAUPQRWQWPWNLZXDKXNWPXKL
      ZKZXEXMWQXDXOXNWQWPWNUQZAWNIZXDXOPWNWOWPURZACUSZWNAWPUTNVAWQWOXNXDWQWPVBZ
      WPWPVEZLZWOXNYCYAWPVCVDWQWNWOWPVFZYAWOPWNWOWPVGZWNWOWPVHZQWQYBWNWPWNWOWPV
      IRVJVKWQWPVLVMZXMXPPWQYDYGWNWOWPVNVQWNXKWPVOQVPVRVSXFBXEWQWSXCWOIZBXEFGWQ
      XCYAIZYHWQXQXRYIXSXTWNAWPVTNWQYDYIYHWAYEYDYAWOXCYFWBQWCBXCDAWPMMSWDCWEWFW
      GOAXEBWHWIWJWKWLWM $.
  $}

  ${
    $d A a b $.  $d B b $.
    $( A natural number is equinumerous to its successor minus any element of
       the successor.  Version of ~ phplem3 with unnecessary hypotheses
       removed.  (Contributed by Jim Kingdon, 1-Sep-2021.) $)
    phplem3g $p |- ( ( A e. _om /\ B e. suc A ) -> A ~~ ( suc A \ { B } ) ) $=
      ( vb va com wcel csuc csn cdif cen wbr cv wa wi wceq eleq1 anbi2d imbi12d
      vex vtoclg difeq2d breq2d suceq eleq2d anbi12d id difeq1d breq12d phplem3
      sneq anabsi5 anabsi7 ) AEFZBAGZFZAUNBHZIZJKZUMCLZUNFZMZAUNUSHZIZJKZNZUMUO
      MZURNCBUNUSBOZVAVFVDURVGUTUOUMUSBUNPQVGVCUQAJVGVBUPUNUSBUJUAUBRUMUTVDDLZE
      FZUSVHGZFZMZVHVJVBIZJKZNVEDAEVHAOZVLVAVNVDVOVIUMVKUTVHAEPVOVJUNUSVHAUCZUD
      UEVOVHAVMVCJVOUFVOVJUNVBVPUGUHRVHUSDSCSUITUKTUL $.
  $}

  ${
    $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 A w $.  $d k w $.
    $( 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 ) $=
      ( vw vk cv csuc cen wbr wn c0 wceq id suceq breq12d notbid com wne peano1
      wcel peano3 ax-mp en0 nemtbir ensymb mtbi wi peano2 vex sucex mpdan con3d
      phplem4 finds ) BDZUMEZFGZHIIEZFGZHCDZUREZFGZHUSUSEZFGZHAAEZFGZHBCAUMIJZU
      OUQVEUMIUNUPFVEKUMILMNUMURJZUOUTVFUMURUNUSFVFKUMURLMNUMUSJZUOVBVGUMUSUNVA
      FVGKUMUSLMNUMAJZUOVDVHUMAUNVCFVHKUMALMNUPIFGZUQVIUPIIORUPIPQISTUPUAUBUPIU
      CUDURORZVBUTVJUSORVBUTUEURUFURUSCUGZURVKUHUKUIUJUL $.
  $}

  $( A singleton ` { A } ` is never equinumerous with the ordinal number 2.  If
     ` A ` is a proper class, see ~ snnen2oprc .  (Contributed by Jim Kingdon,
     1-Sep-2021.) $)
  snnen2og $p |- ( A e. V -> -. { A } ~~ 2o ) $=
    ( c1o csuc cen wbr wn wcel csn c2o com 1onn php5 ax-mp ensn1g eqcomi breq2i
    wi df-2o ensymb entr ex sylbi con3rr3 sylnbi mpsyl ) CCDZEFZGZABHAIZCEFZUJJ
    EFZGZCKHUILCMNABOUHCJEFZUKUMRUGJCEJUGSPQUKULUNUKCUJEFZULUNRUJCTUOULUNCUJJUA
    UBUCUDUEUF $.

  $( A singleton ` { A } ` is never equinumerous with the ordinal number 2.  If
     ` A ` is a set, see ~ snnen2og .  (Contributed by Jim Kingdon,
     1-Sep-2021.) $)
  snnen2oprc $p |- ( -. A e. _V -> -. { A } ~~ 2o ) $=
    ( cvv wcel wn csn c2o cen wbr c0 2on0 ensymb en0 bitri nemtbir snprc biimpi
    wceq breq1d mtbiri ) ABCDZAEZFGHIFGHZUBFIJUBFIGHFIQIFKFLMNTUAIFGTUAIQAOPRS
    $.

  $( One and two are not equinumerous.  (Contributed by Jim Kingdon,
     25-Jan-2022.) $)
  1nen2 $p |- -. 1o ~~ 2o $=
    ( c1o c2o cen wbr csuc com wcel wn 1onn php5 ax-mp df-2o breq2i mtbir ) ABC
    DAAEZCDZAFGPHIAJKBOACLMN $.

  ${
    $d A f $.  $d B f $.
    $( Dominance of successors implies dominance of the original natural
       numbers.  (Contributed by Jim Kingdon, 1-Sep-2021.) $)
    phplem4dom $p |- ( ( A e. _om /\ B e. _om ) ->
        ( suc A ~<_ suc B -> A ~<_ B ) ) $=
      ( com wcel csuc cdom wbr adantl syl csn cdif cen cima wss ensymd cvv wceq
      vf wa syl2anc cv wf1 wex wb peano2 brdomg biimpa cfv ad2antrr sssucid a1i
      simpr simplll f1imaen2g syl22anc difexg word nnord orddif wfn f1fn sucidg
      imaeq2d fnsnfv difeq2d ccnv wfun wf simprbi imadif eqtr4d f1f crn imassrn
      df-f1 syl5ss ssdifd eqsstr3d eqsstrd ssdomg sylc endomtr simpllr ffvelrnd
      frn phplem3g domentr exlimddv ex ) ACDZBCDZSZAEZBEZFGZABFGZWLWOSZWMWNRUAZ
      UBZWPRWLWOWSRUCZWLWNCDZWOWTUDWKXAWJBUEHZWMWNCRUFIUGWQWSSZAWNAWRUHZJZKZFGZ
      XFBLGWPXCAWRAMZLGXHXFFGZXGXCXHAXCWSXAAWMNZWJXHALGWQWSULWLXAWOWSXBUIZXJXCA
      UJUKWJWKWOWSUMZWMWNAWRCUNUOOXCXFPDZXHXFNXIXCXAXMXKWNXECUPIXCXHWRWMAJZKZMZ
      XFXCWJXHXPQXLWJAXOWRWJAUQAXOQAURAUSIVCIXCXPWRWMMZXEKZXFXCXRXQWRXNMZKZXPXC
      XEXSXQXCWRWMUTZAWMDZXEXSQWSYAWQWMWNWRVAHXCWJYBXLACVBIZWMAWRVDTVEWSXPXTQZW
      QWSWRVFVGZYDWSWMWNWRVHZYEWMWNWRVOVIWMXNWRVJIHVKXCXQWNXEXCYFXQWNNWSYFWQWMW
      NWRVLHZYFXQWRVMWNWRWMVNWMWNWRWEVPIVQVRVSXHXFPVTWAAXHXFWBTXCBXFXCWKXDWNDBX
      FLGWJWKWOWSWCXCWMWNAWRYGYCWDBXDWFTOAXFBWGTWHWI $.
  $}

  ${
    $d A w $.  $d k w $.
    $( A natural number does not dominate its successor.  (Contributed by Jim
       Kingdon, 1-Sep-2021.) $)
    php5dom $p |- ( A e. _om -> -. suc A ~<_ A ) $=
      ( vw vk vx cv csuc cdom wbr wn c0 wceq suceq id breq12d notbid cen peano1
      com wcel php5 ax-mp wss wa wex 0ex domen ss0 en0 sylibr entr sylan2 sylbi
      exlimiv ensymd mto wi peano2 phplem4dom mpancom con3d finds ) BEZFZVBGHZI
      JFZJGHZICEZFZVGGHZIVHFZVHGHZIAFZAGHZIBCAVBJKZVDVFVNVCVEVBJGVBJLVNMNOVBVGK
      ZVDVIVOVCVHVBVGGVBVGLVOMNOVBVHKZVDVKVPVCVJVBVHGVBVHLVPMNOVBAKZVDVMVQVCVLV
      BAGVBALVQMNOVFJVEPHZJRSVRIQJTUAVFVEJVFVEDEZPHZVSJUBZUCZDUDVEJPHZDVEJUEUFW
      BWCDWAVTVSJPHZWCWAVSJKWDVSUGVSUHUIVEVSJUJUKUMULUNUOVGRSZVKVIVHRSWEVKVIUPV
      GUQVHVGURUSUTVA $.
  $}

  $( 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 wn csuc php5dom ad2antlr wi domtr expcom adantl mtod
    wss ssdomg ad2antrr word nnord ordsucss syl wb nntri1 adantr mpbird impbid
    ex ) ACDZBCDZEZABFGZABQZULUMUNULUMEZUNBADZHZUOUPBIZAQZUOUSURAFGZUOUTURBFGZU
    KVAHUJUMBJKUMUTVALULUTUMVAURABMNOPUJUSUTLUKUMURACRSPUJUPUSLZUKUMUJATVBAUABA
    UBUCSPULUNUQUDUMABUEUFUGUIUKUNUMLUJABCROUH $.

  ${
    $d x y A $.  $d x y B $.
    $( Pigeonhole Principle.  A natural number is not equinumerous to a proper
       subset of itself.  By "proper subset" here we mean that there is an
       element which is in the natural number and not in the subset, or in
       symbols ` E. x x e. ( A \ B ) ` (which is stronger than not being equal
       in the absence of excluded middle).  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.) $)
    phpm $p |- ( ( A e. _om /\ B C_ A /\ E. x x e. ( A \ B ) ) ->
        -. A ~~ B ) $=
      ( vy com wcel wss cv cdif cen wn wa c0 wceq simpr ad2antlr simplr syl2anc
      wbr cdom wex csuc wrex wne eldifi syl neneqd pm2.21dd php5dom csn cvv vex
      sucex difss ssexi eldifn ad3antlr simpllr adantr sseqtrd ssdif cin disjsn
      ne0i wb disj3 bitr3i sseq1 sylbi syl5ibr sylc ssdomg mpsyl eleqtrd ensymd
      phplem3g domentr endomtr eqbrtrrd mtand ex rexlimdva wo ad2antrr mpjaodan
      imp nn0suc exlimdv 3impia ) BEFZCBGZAHZBCIFZAUABCJSZKZWJWKLZWMWOAWPWMWOWP
      WMLZBMNZWOBDHZUBZNZDEUCZWQWRLWRWOWQWROWMWRKWPWRWMBMWMWLBFZBMUDWLBCUEZBWLV
      DUFUGPUHWQXBWOWQXAWODEWQWSEFZLZXAWOXFXALZWNWTWSTSZXEXHKWQXAWSUIPXGWNLZBWT
      WSTXFXAWNQXIWNCWSTSZBWSTSXGWNOXGXJWNXGCWTWLUJZIZTSZXLWSJSZXJXLUKFXGCXLGZX
      MXLWTWSDULUMWTXKUNUOXGWLCFKZCWTGZXOWMXPWPXEXAWLBCUPUQXGCBWTXFWKXAWJWKWMXE
      URUSXFXAOZUTXQXOXPCXKIZXLGZCWTXKVAXPCXSNZXOXTVEXPCXKVBMNYACWLVCCXKVFVGCXS
      XLVHVIVJVKCXLUKVLVMXGXEWLWTFZXNWQXEXAQXGWLBWTWMXCWPXEXAXDUQXRVNXEYBLWSXLW
      SWLVPVORCXLWSVQRUSBCWSVRRVSVTWAWBWFWJWRXBWCWKWMDBWGWDWEWAWHWI $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Pigeonhole Principle.  A natural number is not equinumerous to an
       element of itself.  (Contributed by Jim Kingdon, 6-Sep-2021.) $)
    phpelm $p |- ( ( A e. _om /\ B e. A ) -> -. A ~~ B ) $=
      ( vx com wcel wa wss cv cdif wex cen wbr wn simpl con0 wi nnon onelss syl
      imp simpr elirr a1i eldifd eleq1 spcegv sylc phpm syl3anc ) ADEZBAEZFZUJB
      AGZCHZABIZEZCJZABKLMUJUKNUJUKUMUJAOEUKUMPAQABRSTULUKBUOEZUQUJUKUAZULBABUS
      BBEMULBUBUCUDUPURCBAUNBUOUEUFUGCABUHUI $.
  $}

  ${
    $d A f $.  $d B f $.
    $( Equinumerosity of successors of an ordinal and a natural number implies
       equinumerosity of the originals.  (Contributed by Jim Kingdon,
       5-Sep-2021.) $)
    phplem4on $p |- ( ( A e. On /\ B e. _om ) ->
        ( suc A ~~ suc B -> A ~~ B ) ) $=
      ( vf con0 wcel com wa csuc cen wbr cv adantl csn cdif cima ensymd imaeq2d
      syl wceq syl2anc wf1o wex bren biimpi cfv wf1 wss peano2 ad3antlr sssucid
      f1of1 nnon a1i simplll f1imaen2g syl22anc word eloni orddif ad3antrrr wfn
      f1ofn sucidg fnsnfv difeq2d crn cdm imadmrn eqcomi wfo f1ofo forn 3eqtr3a
      difeq1d ccnv wfun dff1o3 simprbi imadif 3eqtr4rd breqtrd simpllr fnfvelrn
      f1odm eqtrd wb eleq2d mpbid phplem3g entr exlimddv ex ) ADEZBFEZGZAHZBHZI
      JZABIJZWOWRGZWPWQCKZUAZWSCWRXBCUBZWOWRXCWPWQCUCUDLWTXBGZAWQAXAUEZMZNZIJXG
      BIJWSXDAXAAOZXGIXDXHAXDWPWQXAUFZWQDEZAWPUGZWMXHAIJXBXIWTWPWQXAUKLWNXJWMWR
      XBWNWQFEXJBUHWQULRUIXKXDAUJUMWMWNWRXBUNZWPWQAXADUOUPPXDXHXAWPAMZNZOZXGWMX
      HXOSWNWRXBWMAXNXAWMAUQAXNSAURAUSRQUTXDXAWPOZXFNZXPXAXMOZNZXGXOXDXFXRXPXDX
      AWPVAZAWPEZXFXRSXBXTWTWPWQXAVBLZXDWMYAXLADVCRZWPAXAVDTVEXBXGXQSWTXBWQXPXF
      XBXAVFZXAXAVGZOZWQXPYFYDXAVHVIXBWPWQXAVJZYDWQSWPWQXAVKZWPWQXAVLZRXBYEWPXA
      WPWQXAWDQVMVNLXBXOXSSZWTXBXAVOVPZYJXBYGYKWPWQXAVQVRWPXMXAVSRLVTWEWAXDBXGX
      DWNXEWQEZBXGIJWMWNWRXBWBXDXEYDEZYLXDXTYAYMYBYCWPAXAWCTXBYMYLWFZWTXBYGYNYH
      YGYDWQXEYIWGRLWHBXEWITPAXGBWJTWKWL $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Finite sets
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d A n $.
    $( A finite set is countable.  (Contributed by Thierry Arnoux,
       27-Mar-2018.) $)
    fict $p |- ( A e. Fin -> A ~<_ _om ) $=
      ( vn cfn wcel cv cen wbr com cdom wrex isfi biimpi wa simprr cvv wss omex
      word ordom ordelss mpan ssdomg mpsyl ad2antrl endomtr syl2anc rexlimddv )
      ACDZABEZFGZAHIGZBHUHUJBHJBAKLUHUIHDZUJMMUJUIHIGZUKUHULUJNULUMUHUJHODULUIH
      PZUMQHRULUNSHUITUAUIHOUBUCUDAUIHUEUFUG $.
  $}

  ${
    $d A f x $.  $d B f x $.  $d C f x $.
    $( Equality of members of a finite set is decidable.  This may be
       counterintuitive: cannot any two sets be elements of a finite set?
       Well, to show, for example, that ` { B , C } ` is finite would require
       showing it is equinumerous to ` 1o ` or to ` 2o ` but to show that you'd
       need to know ` B = C ` or ` -. B = C ` , respectively.  (Contributed by
       Jim Kingdon, 5-Sep-2021.) $)
    fidceq $p |- ( ( A e. Fin /\ B e. A /\ C e. A ) -> DECID B = C ) $=
      ( vx vf wcel cv wceq wdc com biimpi wa wn wo adantl ffvelrnd elnn syl2anc
      cfv wi cfn w3a cen wbr wrex isfi 3ad2ant1 wf1o bren ad2antll f1of simpll2
      wex wf simplrl simpll3 nndceq exmiddc f1of1 f1veqaeq syl12anc fveq2 con3i
      syl wf1 a1i orim12d mpd df-dc sylibr exlimddv rexlimddv ) AUAFZBAFZCAFZUB
      ZADGZUCUDZBCHZIZDJVMVNVRDJUEZVOVMWADAUFKUGVPVQJFZVRLZLZAVQEGZUHZVTEVRWFEU
      MZVPWBVRWGAVQEUIKUJWDWFLZVSVSMZNZVTWHBWESZCWESZHZWMMZNZWJWHWMIZWOWHWKJFZW
      LJFZWPWHWKVQFWBWQWHAVQBWEWFAVQWEUNWDAVQWEUKOZVMVNVOWCWFULZPVPWBVRWFUOZWKV
      QQRWHWLVQFWBWRWHAVQCWEWSVMVNVOWCWFUPZPXAWLVQQRWKWLUQRWMURVDWHWMVSWNWIWHAV
      QWEVEZVNVOWMVSTWFXCWDAVQWEUSOWTXBAVQBCWEUTVAWNWITWHVSWMBCWEVBVCVFVGVHVSVI
      VJVKVL $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d X x y $.
    $( All decrements of a finite set are equinumerous.  (Contributed by Jim
       Kingdon, 9-Sep-2021.) $)
    fidifsnen $p |- ( ( X e. Fin /\ A e. X /\ B e. X ) ->
        ( X \ { A } ) ~~ ( X \ { B } ) ) $=
      ( vx vy wcel wceq wn wa adantr syl adantl eqeltrd sylanbrc ad2antlr simpr
      neneqad mpjaodan ad2antrr eqeq2d cfn w3a csn cdif cen wbr difexg 3ad2ant1
      cvv enrefg sneq difeq2d breqtrd cv cif cmpt wf1o eqid wne simpll2 simpllr
      iftrue eqeq1d mtbird eldifsn iffalse eldifi wdc wo simpll1 simpll3 fidceq
      syl3anc exmiddc simpl3 necomd wb wi biimpar a1d mpbid eqtr3d simprr velsn
      eldifbd sylnib pm2.21dd ex ad2antll biimprcd sylbid impbid eqtrd ad3antlr
      simplr eqtr2d simprl impbida adantrr f1o2d f1oeng syl2anc ) CUAFZACFZBCFZ
      UBZABGZCAUCZUDZCBUCZUDZUEUFZXGHZXFXGIZXIXIXKUEXNXIUIFZXIXIUEUFXFXOXGXCXDX
      OXECXHUAUGUHZJXIUIUJKXGXIXKGXFXGXHXJCABUKULLUMXFXMIZXOXIXKDXIDUNZBGZAXRUO
      ZUPZUQXLXFXOXMXPJXQDEXIXKXTEUNZAGZBYBUOZYAYAURXQXRXIFZIZXSXTXKFZXSHZYFXSI
      ZXTCFZXTBUSZYGYIXTACXSXTAGZYFXSAXRVBZLZYFXDXSXCXDXEXMYEUTJMYIXTBYIXTBGZXG
      XFXMYEXSVAYIXTABYNVCVDQXTCBVEZNYFYHIZYJYKYGYQXTXRCYHXTXRGZYFXSAXRVFZLZYEX
      RCFZXQYHXRCXHVGZOMYQXTBYQYOXSYFYHPYQXTXRBYTVCVDQYPNYFXSVHZXSYHVIZYFXCUUAX
      EUUCXCXDXEXMYEVJYEUUAXQUUBLXCXDXEXMYEVKCXRBVLVMXSVNKZRXQYBXKFZIZYCYDXIFYC
      HZUUGYCIYDBXIYCYDBGZUUGYCBYBVBZLXQBXIFZUUFYCXQXEBAUSUUKXCXDXEXMVOXQABXQAB
      XFXMPQVPBCAVENSMUUGUUHIZYDYBXIUUHYDYBGZUUGYCBYBVFZLUULYBCFZYBAUSYBXIFUUFU
      UOXQUUHYBCXJVGZOUULYBAUUGUUHPQYBCAVENMUUGYCVHZYCUUHVIZUUGXCUUOXDUUQXCXDXE
      XMUUFVJUUFUUOXQUUPLXCXDXEXMUUFUTCYBAVLZVMYCVNZKRXQYEUUFIZIZXSXRYDGZYBXTGZ
      VQYHUVBXSIZUVCUVDUVEYCUVCUVDVRUUHUVEYCIUVDUVCUVEUVDYCUVEXTAYBXSYLUVBYMLTZ
      VSVTUVEUUHIZUVCUVDUVGUVCIZYBBGZUVDUVHXRYBBUVHUVCXRYBGZUVGUVCPUUHUVCUVJVQU
      VEUVCUUHYDYBXRUUNTOWAUVBXSUUHUVCVAWBUVHYBXJFZUVIUVGUVKHUVCUVGYBCXJUVBUUFX
      SUUHXQYEUUFWCSWEJEBWDWFWGWHUVBUURXSUVBUUQUURUVBXCUUOXDUUQXCXDXEXMUVAVJUUF
      UUOXQYEUUPWIXCXDXEXMUVAUTUUSVMUUTKZJRUVEUVDYCUVCUVFXSYCUVCVRUVBYCUVCXSYCY
      DBXRUUJTWJLWKWLUVBYHIZUVCUVDUVMUVCIZYCUVDUUHUVNYCIZXSUVDUVOXRYDBUVMUVCYCW
      OYCUUIUVNUUJLWMUVBYHUVCYCVAWGUVNUUHIZXTXRYBYHYRUVBUVCUUHYSWNUVPXRYDYBUVMU
      VCUUHWOUUHUUMUVNUUNLWMWPUVBUURYHUVCUVLSRUVMUVDIZYDYBXRUVQUUHUUMUVQYCXRAGZ
      UVBUVRHYHUVDUVBXRXHFUVRUVBXRCXHXQYEUUFWQWEDAWDWFSUVQYBXRAUVQUVDYBXRGZUVMU
      VDPYHUVDUVSVQUVBUVDYHXTXRYBYSTOWAZVCVDUUNKUVTWPWRXQYEUUDUUFUUEWSRWTXIXKUI
      YAXAXBXFXGVHXGXMVICABVLXGVNKR $.
  $}

  ${
    $d A x $.  $d B x $.
    $( If we remove a single element from a finite set then put it back in, we
       end up with the original finite set.  This strengthens ~ difsnss from
       subset to equality when the set is finite.  (Contributed by Jim Kingdon,
       9-Sep-2021.) $)
    fidifsnid $p |- ( ( A e. Fin /\ B e. A ) ->
        ( ( A \ { B } ) u. { B } ) = A ) $=
      ( vx cfn wcel wa csn cdif cun wss difsnss adantl cv wn simpr velsn sylibr
      wceq syl simplr elun2 sylnibr eldifd elun1 wo simpll fidceq syl3anc df-dc
      wdc sylib mpjaodan ex ssrdv eqssd ) ADEZBAEZFZABGZHZUSIZAUQVAAJUPABKLURCA
      VAURCMZAEZVBVAEZURVCFZVBBRZVDVFNZVEVFFZVBUSEZVDVHVFVIVEVFOCBPZQVBUSUTUASV
      EVGFZVBUTEVDVKVBAUSURVCVGTVKVFVIVEVGOVJUBUCVBUTUSUDSVEVFUJZVFVGUEVEUPVCUQ
      VLUPUQVCUFURVCOUPUQVCTAVBBUGUHVFUIUKULUMUNUO $.
  $}

  ${
    $d A x $.
    $( Natural numbers are finite sets.  (Contributed by Stefan O'Rear,
       21-Mar-2015.) $)
    nnfi $p |- ( A e. _om -> A e. Fin ) $=
      ( vx com wcel cv cen wbr wrex cfn enrefg breq2 rspcev mpdan isfi sylibr )
      ACDZABEZFGZBCHZAIDPAAFGZSACJRTBACQAAFKLMBANO $.
  $}

  ${
    $d x A $.  $d x 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 $.
  $}

  ${
    $d ph n x y z $.
    ssfilem.1 $e |- { z e. { (/) } | ph } e. Fin $.
    $( Lemma for ~ ssfiexmid .  (Contributed by Jim Kingdon, 3-Feb-2022.) $)
    ssfilem $p |- ( ph \/ -. ph ) $=
      ( vn vw vy vx c0 csn crab cv cen wbr com wo wcel wceq wa wex ax-mp wn cfn
      wrex isfi mpbi 0elnn breq2 en0 syl6bb biimpac wral rabeq0 wb 0ex r19.3rmv
      snm bitr4i sylib olcd ensym elex2 syl2an biidd elrab simprbi orcd exlimiv
      enm syl jaodan sylan2 ancoms rexlimiva ) ABHIZJZDKZLMZDNUCZAAUAZOZVOUBPVR
      CDVOUDUEVQVTDNVQVPNPZVTWAVQVPHQZHVPPZOVTVPUFVQWBVTWCVQWBRZVSAWDVOHQZVSWBV
      QWEWBVQVOHLMWEVPHVOLUGVOUHUIUJWEVSBVNUKZVSABVNULEKVNPESVSWFUMEHUNUPVSBEVN
      UOTUQURUSVQWCRFKZVOPZFSZVTVQVPVOLMGKVPPGSWIWCVOVPUTGHVPVAGFVPVOVHVBWHVTFW
      HAVSWHWGVNPAAABWGVNBKWGQAVCVDVEVFVGVIVJVKVLVMT $.
  $}

  ${
    $d n ph x y z $.
    ssfiexmid.1 $e |- A. x A. y ( ( x e. Fin /\ y C_ x ) -> y e. Fin ) $.
    $( If any subset of a finite set is finite, excluded middle follows.  One
       direction of Theorem 2.1 of [Bauer], p. 485.  (Contributed by Jim
       Kingdon, 19-May-2020.) $)
    ssfiexmid $p |- ( ph \/ -. ph ) $=
      ( vz c0 csn cfn wcel wss cvv ax-mp cv wa wi wal p0ex wceq eleq1 spcv crab
      snfig ssrab2 sseq2 anbi12d imbi1d albidv rabex sseq1 anbi2d imbi12d mp2an
      0ex ssfilem ) AEFGZHIZAEUOUAZUOJZUQHIZFKIUPUMFKUBLAEUOUCUPCMZUOJZNZUTHIZO
      ZCPZUPURNZUSOZBMZHIZUTVHJZNZVCOZCPZBPVEDVMVEBUOQVHUORZVLVDCVNVKVBVCVNVIUP
      VJVAVHUOHSVHUOUTUDUEUFUGTLVDVGCUQAEUOQUHUTUQRZVBVFVCUSVOVAURUPUTUQUOUIUJU
      TUQHSUKTLULUN $.
  $}

  ${
    $d ph x y $.
    infiexmid.1 $e |- ( x e. Fin -> ( x i^i y ) e. Fin ) $.
    $( If the intersection of any finite set and any other set is finite,
       excluded middle follows.  (Contributed by Jim Kingdon, 5-Feb-2022.) $)
    infiexmid $p |- ( ph \/ -. ph ) $=
      ( cv cfn wcel wss wa wi cin wceq dfss1 biimpi adantl adantr eqeltrrd gen2
      ssfiexmid ) ABCBEZFGZCEZTHZIZUBFGJBCUDTUBKZUBFUCUEUBLZUAUCUFUBTMNOUAUEFGU
      CDPQRS $.
  $}

  ${
    $d ph y z $.  $d x y $.
    domfiexmid.1 $e |- ( ( x e. Fin /\ y ~<_ x ) -> y e. Fin ) $.
    $( If any set dominated by a finite set is finite, excluded middle follows.
       (Contributed by Jim Kingdon, 3-Feb-2022.) $)
    domfiexmid $p |- ( ph \/ -. ph ) $=
      ( vz c0 cfn wcel cdom wbr cvv ax-mp cv wa wi wal p0ex wceq eleq1 spcv csn
      crab 0ex snfig wss ssrab2 ssdomg mp2 gen2 breq2 imbi1d albidv rabex breq1
      anbi12d anbi2d imbi12d mp2an ssfilem ) AEFUAZGHZAEUTUBZUTIJZVBGHZFKHVAUCF
      KUDLZVAVBUTUEVCVEAEUTUFVBUTGUGUHVACMZUTIJZNZVFGHZOZCPZVAVCNZVDOZBMZGHZVFV
      NIJZNZVIOZCPZBPVKVRBCDUIVSVKBUTQVNUTRZVRVJCVTVQVHVIVTVOVAVPVGVNUTGSVNUTVF
      IUJUOUKULTLVJVMCVBAEUTQUMVFVBRZVHVLVIVDWAVGVCVAVFVBUTIUNUPVFVBGSUQTLURUS
      $.
  $}

  ${
    $d A f $.  $d X f $.  $d M f $.
    $( 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 ) $=
      ( vf com wcel cen wbr wf1o csn cdif ensymd 3ad2ant1 syl2anc adantr adantl
      syl wceq cres wfo csuc w3a cv wex simp2 bren sylib wa cfv cfn peano2 nnfi
      enfii simpl3 wf f1of sucidg ffvelrnd fidifsnen syl3anc word orddif eleq1d
      nnord ibi ccnv wfun wfn crn dff1o2 simp2bi f1ofo wb cdm wrel f1orel resdm
      f1odm reseq2d eqtr3d foeq1 mpbid simpl1 f1osng f1ofn mpbird resdif f1oeng
      cop fnressn eqbrtrd entr exlimddv ) BEFZABUAZGHZCAFZUBZWOADUCZIZACJKZBGHZ
      DWRWOAGHWTDUDWRAWOWNWPWQUEZLWOADUFUGWRWTUHZXAABWSUIZJZKZGHZXGBGHXBXDAUJFZ
      WQXEAFZXHWRXIWTWRWOUJFZWPXIWNWPXKWQWNWOEFXKBUKWOULQMXCAWOUMNOWNWPWQWTUNXD
      WOABWSWTWOAWSUOWRWOAWSUPPWRBWOFZWTWNWPXLWQBEUQMOZURZCXEAUSUTXDBXGXDBWOBJZ
      KZXGGWRBXPRZWTWNWPXQWQWNBVAXQBVDBVBQZMOXDXPEFZXPXGWSXPSZIZXPXGGHWRXSWTWNW
      PXSWQWNXSWNBXPEXRVCVEMOXDWSVFVGZWOAWSWOSZTZXOXFWSXOSZTZYAWTYBWRWTWSWOVHZY
      BWSVIARWOAWSVJVKPXDWOAWSTZYDWTYHWRWOAWSVLPXDWSYCRYHYDVMXDWSWSVNZSZWSYCXDW
      SVOZYJWSRWTYKWRWOAWSVPPWSVQQWTYJYCRWRWTYIWOWSWOAWSVRVSPVTWOAWSYCWAQWBXDYF
      XOXFBXEWIJZTZXDXOXFYLIZYMXDWNXJYNWNWPWQWTWCXNBXEEAWDNXOXFYLVLQXDYEYLRZYFY
      MVMXDYGXLYOWTYGWRWOAWSWEPXMWOBWSWJNXOXFYEYLWAQWFWOXOAXFWSWGUTXPXGEXTWHNWK
      LXAXGBWLNWM $.
  $}

  $( Adding one element to a finite set which is equinumerous to a natural
     number.  (Contributed by Jim Kingdon, 13-Sep-2021.) $)
  fiunsnnn $p |- ( ( ( A e. Fin /\ B e. ( _V \ A ) )
      /\ ( N e. _om /\ A ~~ N ) ) ->
      ( A u. { B } ) ~~ suc N ) $=
    ( cfn wcel cvv cdif wa com cen wbr csn cun csuc cin c0 wceq simprr disjsn
    wn en2sn ad2ant2lr simplr eldifbd sylibr elirr mpbir a1i syl22anc syl6breqr
    unen df-suc ) ADEZBFAGZEZHZCIEZACJKZHZHZABLZMZCCLZMZCNJUTURVAVCJKZAVAOPQZCV
    COPQZVBVDJKUPUQURRUOUQVEUMURBCUNIUAUBUTBAETVFUTBFAUMUOUSUCUDABSUEVGUTVGCCET
    CUFCCSUGUHACVAVCUKUICULUJ $.

  ${
    $d A n $.  $d B n $.
    $( A finite set is not equinumerous to a set which adds one element.
       (Contributed by Jim Kingdon, 13-Sep-2021.) $)
    php5fin $p |- ( ( A e. Fin /\ B e. ( _V \ A ) ) ->
        -. A ~~ ( A u. { B } ) ) $=
      ( vn cfn wcel cvv cdif wa cv cen wbr csn cun wn com wrex biimpi adantr wb
      isfi csuc php5 ad2antrl enen1 ad2antll fiunsnnn enen2 syl bitrd rexlimddv
      mtbird ) ADEZBFAGEZHZACIZJKZAABLMZJKZNCOULUPCOPZUMULUSCATQRUNUOOEZUPHHZUR
      UOUOUAZJKZUTVCNUNUPUOUBUCVAURUOUQJKZVCUPURVDSUNUTAUOUQUDUEVAUQVBJKVDVCSAB
      UOUFUQVBUOUGUHUIUKUJ $.
  $}

  ${
    $d A m n $.  $d B m n $.
    $( Schroeder-Bernstein Theorem for finite sets.  (Contributed by Jim
       Kingdon, 12-Sep-2021.) $)
    fisbth $p |- ( ( ( A e. Fin /\ B e. Fin ) /\
        ( A ~<_ B /\ B ~<_ A ) ) -> A ~~ B ) $=
      ( vn vm cfn wcel wa cdom wbr cen com wrex isfi biimpi ad2antrr wss ensymd
      cv simprl syl2anc ad3antlr simplrr endomtr simprr domentr wb nndomo mpbid
      simplrl eqssd breqtrd entr rexlimddv ) AEFZBEFZGZABHIZBAHIZGZGZACRZJIZABJ
      IZCKUNVBCKLZUOUSUNVDCAMNOUTVAKFZVBGZGZBDRZJIZVCDKUOVIDKLZUNUSVFUOVJDBMNUA
      VGVHKFZVIGZGZAVHJIVHBJIZVCVMAVAVHJUTVEVBVLUBZVMVAVHVMVAVHHIZVAVHPZVMVABHI
      ZVIVPVMVAAJIUQVRVMAVAVOQUTUQVFVLUPUQURSOVAABUCTVGVKVIUDZVABVHUETVMVEVKVPV
      QUFUTVEVBVLUIZVGVKVISZVAVHUGTUHVMVHVAHIZVHVAPZVMVHAHIZVBWBVMVNURWDVMBVHVS
      QZUTURVFVLUPUQURUDOVHBAUCTVOVHAVAUETVMVKVEWBWCUFWAVTVHVAUGTUHUJUKWEAVHBUL
      TUMUM $.
  $}

  $( The empty set is finite.  (Contributed by FL, 14-Jul-2008.) $)
  0fin $p |- (/) e. Fin $=
    ( c0 com wcel cfn peano1 nnfi ax-mp ) ABCADCEAFG $.

  ${
    $d A f m n x $.
    $( A nonempty finite set has at least one element.  (Contributed by Jim
       Kingdon, 10-Sep-2021.) $)
    fin0 $p |- ( A e. Fin -> ( A =/= (/) <-> E. x x e. A ) ) $=
      ( vn vm vf cfn wcel cv cen wbr c0 wex com wrex wa wceq simplrr sylib syl
      wn wne wb isfi biimpi csuc simpr breqtrd en0 nner necon2bi 2falsed adantr
      n0r wf1o ensymd bren cfv wf f1of adantl sucidg ad3antlr eleqtrrd ffvelrnd
      simplr elex2 exlimddv ex rexlimdva imp nn0suc ad2antrl mpjaodan rexlimddv
      2thd wo ) BFGZBCHZIJZBKUAZAHBGALZUBZCMVQVSCMNCBUCUDVQVRMGZVSOOZVRKPZWBVRD
      HZUEZPZDMNZWDWEOZVTWAWJBKPZVTTWJBKIJWKWJBVRKIVQWCVSWEQWDWEUFUGBUHRZBKUISW
      JWKWATWLWABKABUMZUJSUKWDWIWBWDWHWBDMWDWFMGZOZWHWBWOWHOZVRBEHZUNZWBEWPVRBI
      JWRELWPBVRWOVSWHVQWCVSWNQULUOVRBEUPRWPWROZVTWAWSWAVTWSWFWQUQZBGWAWSVRBWFW
      QWRVRBWQURWPVRBWQUSUTWSWFWGVRWNWFWGGWDWHWRWFMVAVBWOWHWRVEVCVDAWTBVFSZWMSX
      AVOVGVHVIVJWCWEWIVPVQVSDVRVKVLVMVN $.
  $}

  ${
    $d A f m n x $.
    $( A finite set is either empty or inhabited.  (Contributed by Jim Kingdon,
       30-Sep-2021.) $)
    fin0or $p |- ( A e. Fin -> ( A = (/) \/ E. x x e. A ) ) $=
      ( vn vm vf cfn wcel cv cen wbr c0 wceq wex wo com wrex wa simplrr sylib
      ex isfi biimpi csuc nn0suc ad2antrl simpr breqtrd wf1o adantr ensymd bren
      en0 cfv wf f1of adantl sucidg ad3antlr simplr eleqtrrd ffvelrnd elex2 syl
      exlimddv rexlimdva orim12d mpd rexlimddv ) BFGZBCHZIJZBKLZAHBGAMZNZCOVIVK
      COPCBUAUBVIVJOGZVKQQZVJKLZVJDHZUCZLZDOPZNZVNVOWBVIVKDVJUDUEVPVQVLWAVMVPVQ
      VLVPVQQZBKIJVLWCBVJKIVIVOVKVQRVPVQUFUGBULSTVPVTVMDOVPVROGZQZVTVMWEVTQZVJB
      EHZUHZVMEWFVJBIJWHEMWFBVJWEVKVTVIVOVKWDRUIUJVJBEUKSWFWHQZVRWGUMZBGVMWIVJB
      VRWGWHVJBWGUNWFVJBWGUOUPWIVRVSVJWDVRVSGVPVTWHVROUQURWEVTWHUSUTVAAWJBVBVCV
      DTVEVFVGVH $.
  $}

  ${
    $d a b $.  $d b ph x $.  $d n ph w x y $.
    diffitest.1 $e |- A. a e. Fin A. b ( a \ b ) e. Fin $.
    $( If subtracting any set from a finite set gives a finite set, any
       proposition of the form ` -. ph ` is decidable.  This is not a proof of
       full excluded middle, but it is close enough to show we won't be able to
       prove ` A e. Fin -> ( A \ B ) e. Fin ` .  (Contributed by Jim Kingdon,
       8-Sep-2021.) $)
    diffitest $p |- ( -. ph \/ -. -. ph ) $=
      ( vx vn vw vy c0 cdif cv cen wbr com cfn wcel cvv ax-mp wceq wex csn crab
      wrex wn wo wal wral 0ex snfig difeq1 eleq1d albidv mp2 rabexg difeq2 spcv
      rspcv isfi mpbi 0elnn wa breq2 en0 syl6bb biimpac rabeq0 notrab eqeq1i wb
      snm r19.3rmv 3bitr4i sylib olcd ensym elex2 enm syl2an biidd simprbi orcd
      elrab eleq2s exlimiv syl jaodan sylan2 ancoms rexlimiva ) IUAZAEWJUBZJZFK
      ZLMZFNUCZAUDZWPUDZUEZWLOPZWOWJCKZJZOPZCUFZWSWJOPZBKZWTJZOPZCUFZBOUGXCIQPX
      DUHIQUIRZDXHXCBWJOXEWJSZXGXBCXJXFXAOXEWJWTUJUKULUQUMXBWSCWKXDWKQPXIAEWJOU
      NRWTWKSXAWLOWTWKWJUOUKUPRFWLURUSWNWRFNWNWMNPZWRXKWNWMISZIWMPZUEWRWMUTWNXL
      WRXMWNXLVAZWQWPXNWLISZWQXLWNXOXLWNWLILMXOWMIWLLVBWLVCVDVEWPEWJUBZISWQEWJU
      GZXOWQWPEWJVFWLXPIAEWJVGZVHGKZWJPGTWQXQVIGIUHVJWQEGWJVKRVLVMVNWNXMVAHKZWL
      PZHTZWRWNWMWLLMXSWMPGTYBXMWLWMVOGIWMVPGHWMWLVQVRYAWRHWRXTXPWLXTXPPZWPWQYC
      XTWJPWPWPWPEXTWJEKXTSWPVSWBVTWAXRWCWDWEWFWGWHWIR $.
  $}

  ${
    $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 en0 mpbiri sylbi ax-gen wsbc wne wa peano3 adantr breq1 anbi2d wb
      peano1 peano2 nneneq sylancr biimpa eqcomd syl6bi necon3d mpd ex wex nnfi
      com12 syl enfi adantl mpbird fin0 csn simpll dif1en 3expa fidifsnid sylan
      cdif cun cvv difexg ax-mp uneq1 sbceq1d imbi2d imbi12d rspe sylibr pm2.27
      vex spv sylsyld syl5 snex unex sbcie syl6ibr dfsbcq syl5ib mp2and exlimdv
      vtocl sylbid mpdd com23 alrimdv nfsbc1v nfim sbceq1a cbval finds1 19.21bi
      nfv rexlimiv vtoclga ) AEFIUBMFULZUBQYHPULZRUCZPUDUEAPYHUFYJAPUDYIUDQYJAS
      ZFYKFUGYHTRUCZASZFUGYHUAULZRUCZASZFUGZYHYNUHZRUCZASZFUGZPUAYITUMZYKYMFUUB
      YJYLAYITYHRUIUJUKYIYNUMZYKYPFUUCYJYOAYIYNYHRUIUJUKYIYRUMZYKYTFUUDYJYSAYIY
      RYHRUIUJUKYMFYLYHTUMZAYHUNUUEABNJUOUPUQYNUDQZYQYIYRRUCZAFYIURZSZPUGUUAUUF
      YQUUIPUUFUUGYQUUHUUFUUGYITUSZYQUUHSZUUFUUGUUJUUFUUGUTZYRTUSZUUJUUFUUMUUGY
      NVAVBUULYITYRTUUBUULYRTUMZUUBUULUUFTYRRUCZUTZUUNUUBUUGUUOUUFYITYRRVCVDUUP
      TYRUUFUUOTYRUMZUUFTUDQYRUDQZUUOUUQVEVFYNVGZTYRVHVIVJVKVLVRVMVNVOUUFUUGUUJ
      UUKSUULUUJHULZYIQZHVPZUUKUULYIUBQZUUJUVBVEUULUVCYRUBQZUUFUVDUUGUUFUURUVDU
      USYRVQVSVBUUGUVCUVDVEUUFYIYRVTWAWBZHYIWCVSUULUVAUUKHUULUVAUUKUULUVAUTZUUF
      YIUUTWDZWJZYNRUCZUUKUUFUUGUVAWEUUFUUGUVAUVIYIYNUUTWFWGUVFUVHUVGWKZYIUMZUU
      FUVIUTZUUKSUULUVCUVAUVKUVEYIUUTWHWIUVLYQAFUVJURZSZUVKUUKUUFGULZYNRUCZUTZY
      QAFUVOUVGWKZURZSZSUVLUVNSGUVHYIWLQUVHWLQPXBYIUVGWLWMWNUVOUVHUMZUVQUVLUVTU
      VNUWAUVPUVIUUFUVOUVHYNRVCVDUWAUVSUVMYQUWAAFUVRUVJUVOUVHUVGWOWPWQWRUVQYQDU
      VSYQUVPCSZUVQDYPUWBFGYHUVOUMYOUVPACYHUVOYNRVCKWRXCUVQUVOUBQZUWBCDUVQUVPUA
      UDUEUWCUVPUAUDWSUAUVOUFWTUVPUWBCSUUFUVPCXAWAOXDXEADFUVRUVOUVGGXBUUTHXBXFX
      GLXHXIXNUVKUVMUUHYQAFUVJYIXJWQXKVSXLVOXMXOVOXPXQXRYTUUIFPYTPYEUUGUUHFUUGF
      YEAFYIXSXTYHYIUMYSUUGAUUHYHYIYRRVCAFYIYAWRYBXIYCYDYFUPYG $.
  $}

  ${
    $d A x y z $.  $d ch x $.  $d ph v w y z $.  $d ps x $.  $d ta x $.
    $d th x $.  $d v w x y z $.
    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 ) $=
      ( vw wcel cen wi c0 vv cfn wbr com wrex isfi wal csuc breq2 imbi1d albidv
      cv wceq en0 mpbiri sylbi ax-gen wsbc wne wa peano3 adantr breq1 anbi2d wb
      peano1 peano2 nneneq sylancr biimpa eqcomd syl6bi necon3d mpd ex wex nnfi
      com12 syl enfi adantl mpbird fin0 csn simpll dif1en 3expa fidifsnid sylan
      cdif cun neldifsn cvv vex difexg ax-mp eleq2 notbid anbi12d uneq1 sbceq1d
      wn imbi2d imbi12d spv pm2.27 rspe syld syl5 snex unex sbcie syl6ibr vtocl
      sylibr mpan2 dfsbcq syl5ib mp2and exlimdv sylbid mpdd alrimdv nfv nfsbc1v
      com23 nfim sbceq1a cbval finds1 19.21bi rexlimiv vtoclga ) AEFIUBMFULZUBQ
      YNPULZRUCZPUDUEAPYNUFYPAPUDYOUDQYPASZFYQFUGYNTRUCZASZFUGYNUAULZRUCZASZFUG
      ZYNYTUHZRUCZASZFUGZPUAYOTUMZYQYSFUUHYPYRAYOTYNRUIUJUKYOYTUMZYQUUBFUUIYPUU
      AAYOYTYNRUIUJUKYOUUDUMZYQUUFFUUJYPUUEAYOUUDYNRUIUJUKYSFYRYNTUMZAYNUNUUKAB
      NJUOUPUQYTUDQZUUCYOUUDRUCZAFYOURZSZPUGUUGUULUUCUUOPUULUUMUUCUUNUULUUMYOTU
      SZUUCUUNSZUULUUMUUPUULUUMUTZUUDTUSZUUPUULUUSUUMYTVAVBUURYOTUUDTUUHUURUUDT
      UMZUUHUURUULTUUDRUCZUTZUUTUUHUUMUVAUULYOTUUDRVCVDUVBTUUDUULUVATUUDUMZUULT
      UDQUUDUDQZUVAUVCVEVFYTVGZTUUDVHVIVJVKVLVRVMVNVOUULUUMUUPUUQSUURUUPHULZYOQ
      ZHVPZUUQUURYOUBQZUUPUVHVEUURUVIUUDUBQZUULUVJUUMUULUVDUVJUVEUUDVQVSVBUUMUV
      IUVJVEUULYOUUDVTWAWBZHYOWCVSUURUVGUUQHUURUVGUUQUURUVGUTZUULYOUVFWDZWJZYTR
      UCZUUQUULUUMUVGWEUULUUMUVGUVOYOYTUVFWFWGUVLUVNUVMWKZYOUMZUULUVOUTZUUQSUUR
      UVIUVGUVQUVKYOUVFWHWIUVRUUCAFUVPURZSZUVQUUQUVRUVFUVNQZXBZUVTUVFYOWLUULGUL
      ZYTRUCZUTZUVFUWCQZXBZUTZUUCAFUWCUVMWKZURZSZSUVRUWBUTZUVTSGUVNYOWMQUVNWMQP
      WNYOUVMWMWOWPUWCUVNUMZUWHUWLUWKUVTUWMUWEUVRUWGUWBUWMUWDUVOUULUWCUVNYTRVCV
      DUWMUWFUWAUWCUVNUVFWQWRWSUWMUWJUVSUUCUWMAFUWIUVPUWCUVNUVMWTXAXCXDUWHUUCDU
      WJUUCUWDCSZUWHDUUBUWNFGYNUWCUMUUAUWDACYNUWCYTRVCKXDXEUWHUWNCDUWEUWNCSZUWG
      UWDUWOUULUWDCXFWAVBUWEUWCUBQZUWGCDSUWEUWDUAUDUEUWPUWDUAUDXGUAUWCUFXOOWIXH
      XIADFUWIUWCUVMGWNUVFHWNXJXKLXLXMXNXPUVQUVSUUNUUCAFUVPYOXQXCXRVSXSVOXTYAVO
      YBYFYCUUFUUOFPUUFPYDUUMUUNFUUMFYDAFYOYEYGYNYOUMUUEUUMAUUNYNYOUUDRVCAFYOYH
      XDYIXMYJYKYLUPYM $.
  $}

  ${
    $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 .  If you also need ` y e. Fin ` (which
       doesn't come for free due to ~ ssfiexmid ), use ~ findcard2sd instead.
       (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 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 $.
    findcard2sd.ch $e |- ( x = (/) -> ( ps <-> ch ) ) $.
    findcard2sd.th $e |- ( x = y -> ( ps <-> th ) ) $.
    findcard2sd.ta $e |- ( x = ( y u. { z } ) -> ( ps <-> ta ) ) $.
    findcard2sd.et $e |- ( x = A -> ( ps <-> et ) ) $.
    findcard2sd.z $e |- ( ph -> ch ) $.
    findcard2sd.i $e |- ( ( ( ph /\ y e. Fin ) /\
        ( y C_ A /\ z e. ( A \ y ) ) ) -> ( th -> ta ) ) $.
    findcard2sd.a $e |- ( ph -> A e. Fin ) $.
    $( Deduction form of finite set induction .  (Contributed by Jim Kingdon,
       14-Sep-2021.) $)
    findcard2sd $p |- ( ph -> et ) $=
      ( wcel wa wi wss ssid cfn adantr cv c0 csn cun wceq anbi2d imbi12d simprl
      sseq1 wn simprr unssad jca cdif simpll vsnid elun2 sseldd ad2antll simplr
      id mp1i eldifd syl22anc embantd ex com23 findcard2s mpcom mpan2 ) AJJUAZF
      JUBJUCRZAVOSZFAVPVOQUDAGUEZJUAZSZBTAUFJUAZSZCTAHUEZJUAZSZDTZAWCIUEZUGZUHZ
      JUAZSZETVQFTGHIJVRUFUIZVTWBBCWLVSWAAVRUFJUMUJKUKVRWCUIZVTWEBDWMVSWDAVRWCJ
      UMUJLUKVRWIUIZVTWKBEWNVSWJAVRWIJUMUJMUKVRJUIZVTVQBFWOVSVOAVRJJUMUJNUKACWA
      OUDWCUCRZWGWCRUNZSZWKWFEWRWKWFETWRWKSZWEDEWSAWDWRAWJULZWSWCWHJWRAWJUOUPZU
      QWSAWPWDWGJWCURRDETWTWPWQWKUSXAWSWGJWCWJWGJRWRAWJWIJWGWJVEWGWHRWGWIRWJIUT
      WGWHWCVAVFVBVCWPWQWKVDVGPVHVIVJVKVLVMVN $.
  $}

  ${
    $d A m n $.  $d A x $.  $d B m n $.  $d B x $.
    $( Subtracting a singleton from a finite set produces a finite set.
       (Contributed by Jim Kingdon, 11-Sep-2021.) $)
    diffisn $p |- ( ( A e. Fin /\ B e. A ) -> ( A \ { B } ) e. Fin ) $=
      ( vn vm vx cfn wcel wa cv cen wbr com wrex adantr wceq adantl simplrr en0
      c0 wb csn cdif isfi biimpi csuc wne elex2 fin0 mpbird neneqd biimpri entr
      syl2anc sylib mtand wo nn0suc orcomd ad2antrl ecased nnfi simprl ad2antll
      wex breq2 mpbid simpllr dif1en syl3anc enfii rexlimddv ) AFGZBAGZHZACIZJK
      ZABUAUBZFGZCLVLVPCLMZVMVLVSCAUCUDNVNVOLGZVPHZHZVODIZUEZOZVRDLWBWEDLMZVOSO
      ZWBWGASOZWBASVNASUFZWAVNWIEIAGEVDZVMWJVLEBAUGPVLWIWJTVMEAUHNUINUJWBWGHZAS
      JKZWHWKVPVOSJKZWLVNVTVPWGQWGWMWBWMWGVORUKPAVOSULUMARUNUOVTWFWGUPVNVPVTWGW
      FDVOUQURUSUTWBWCLGZWEHZHZWCFGZVQWCJKZVRWNWQWBWEWCVAUSWPWNAWDJKZVMWRWBWNWE
      VBWPVPWSVNVTVPWOQWEVPWSTWBWNVOWDAJVEVCVFVLVMWAWOVGAWCBVHVIVQWCVJUMVKVK $.
  $}

  ${
    $d A w y z $.  $d B w y z $.
    $( Subtracting one finite set from another produces a finite set.
       (Contributed by Jim Kingdon, 8-Sep-2021.) $)
    diffifi $p |- ( ( A e. Fin /\ B e. Fin /\ B C_ A ) ->
        ( A \ B ) e. Fin ) $=
      ( vw vy vz cfn wcel wss cdif wa cv wi c0 wceq sseq1 anbi2d difeq2 imbi12d
      eleq1d simprr w3a simp2 simp1 simp3 csn cun dif0 eleq1i biimpri adantr wn
      difun1 simprl unssad simplr mp2and vsnid unssbd sseld mpi adantllr eldifd
      simpllr diffisn syl2anc syl5eqel exp31 findcard2s imp syl12anc ) AFGZBFGZ
      BAHZUAVLVKVMABIZFGZVKVLVMUBVKVLVMUCVKVLVMUDVLVKVMJZVOVKCKZAHZJZAVQIZFGZLV
      KMAHZJZAMIZFGZLVKDKZAHZJZAWFIZFGZLZVKWFEKZUEZUFZAHZJZAWNIZFGZLVPVOLCDEBVQ
      MNZVSWCWAWEWSVRWBVKVQMAOPWSVTWDFVQMAQSRVQWFNZVSWHWAWJWTVRWGVKVQWFAOPWTVTW
      IFVQWFAQSRVQWNNZVSWPWAWRXAVRWOVKVQWNAOPXAVTWQFVQWNAQSRVQBNZVSVPWAVOXBVRVM
      VKVQBAOPXBVTVNFVQBAQSRVKWEWBWEVKWDAFAUGUHUIUJWFFGZWLWFGUKZJZWKWPWRXEWKJZW
      PJZWQWIWMIZFAWFWMULXGWJWLWIGXHFGXGVKWGWJXFVKWOUMXGWFWMAXFVKWOTUNXEWKWPUOU
      PXGWLAWFXCWKWPWLAGZXDXCWKJZWPJZWLWMGXIEUQXKWMAWLXKWFWMAXJVKWOTURUSUTVAXCX
      DWKWPVCVBWIWLVDVEVFVGVHVIVJ $.
  $}

  ${
    $d A n $.
    $( An infinite set is not finite.  (Contributed by Jim Kingdon,
       20-Feb-2022.) $)
    infnfi $p |- ( _om ~<_ A -> -. A e. Fin ) $=
      ( vn com cdom wbr cfn wcel wa cv cen wrex isfi biimpi adantl csuc cvv wss
      wn omex ad2antrl word ordom peano2 ordelss sylancr ssdomg mpsyl ad2ant2rl
      domentr domtr syl2anc php5dom pm2.21dd rexlimddv pm2.01da ) CADEZAFGZUPUQ
      HZABIZJEZUQRZBCUQUTBCKZUPUQVBBALMNURUSCGZUTHHZUSOZUSDEZVAVDVECDEZCUSDEZVF
      CPGVDVECQZVGSVDCUAVECGZVIUBVCVJURUTUSUCTCVEUDUEVECPUFUGUPUTVHUQVCCAUSUIUH
      VECUSUJUKVCVFRURUTUSULTUMUNUO $.
  $}

  $( The set of natural numbers is not finite.  Although we supply this theorem
     because we can, the more natural way to express " ` _om ` is infinite" is
     ` _om ~<_ _om ` which is an instance of ~ domrefg .  (Contributed by NM,
     2-Jun-1998.) $)
  ominf $p |- -. _om e. Fin $=
    ( com cvv wcel cdom wbr cfn wn omex domrefg infnfi mp2b ) ABCAADEAFCGHABIAJ
    K $.

  ${
    $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 ) ) $.
    $( Existence of a choice function 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 ) ) $=
      ( wcel wral cv wf wa wex wi c0 wceq raleq anbi12d cvv vu vw vz vg cfn csn
      wrex cun cfv wsbc feq2 exbidv imbi12d feq1 vex fvex sbcie sbceq1d syl5bbr
      fveq1 ralbidv cbvexv syl6bb f0 0ex ral0 biantru spcev wn wss ssun1 ssralv
      mp1i ax-mp imim1i ssun2 wb ralsnsg sbcrex bitri sylib nfv nfsbc1v nfralxy
      nfcv nfan nfex nfim w3a cop cin simprl wf1o f1osn f1of simpl2 fssd simpl1
      snssd disjsn sylibr fun2 syl21anc simprr wne eleq1a necon3bd fvunsng mpan
      impcom dfsbcq syl6rbb 3syl ralbidva syl mpbid simpl3 wfun ffun cdm dmsnop
      vsnid eleqtrri funssfv mp3an23 fvsn syl6req elsni fveq2d biimparc sbceq1a
      eqeq2d ralun syl2anc opex snex unex ex exlimdv syl5 a2d adantl findcard2s
      3exp rexlimd imp ) EUEIADFUGZCEJZEFGKZLZBCEJZMZGNZUUGCUAKZJZUUNFUUILZBCUU
      NJZMZGNZOUUGCPJZPFUUILZBCPJZMZGNZOUUGCUBKZJZUVEFUUILZBCUVEJZMZGNZOZUUGCUV
      EUCKZUFZUHZJZUVNFUDKZLZADCKZUVPUIZUJZCUVNJZMZUDNZOZUUHUUMOUAUBUCEUUNPQZUU
      OUUTUUSUVDUUGCUUNPRUWEUURUVCGUWEUUPUVAUUQUVBUUNPFUUIUKBCUUNPRSULUMUUNUVEQ
      ZUUOUVFUUSUVJUUGCUUNUVERUWFUURUVIGUWFUUPUVGUUQUVHUUNUVEFUUIUKBCUUNUVERSUL
      UMUUNUVNQZUUOUVOUUSUWCUUGCUUNUVNRUWGUUSUVNFUUILZBCUVNJZMZGNUWCUWGUURUWJGU
      WGUUPUWHUUQUWIUUNUVNFUUIUKBCUUNUVNRSULUWJUWBGUDUUIUVPQZUWHUVQUWIUWAUVNFUU
      IUVPUNUWKBUVTCUVNBADUVRUUIUIZUJZUWKUVTABDUWLUVRUUITTGUOZCUOZUPHUQZUWKADUW
      LUVSUVRUUIUVPUTURUSVASVBVCUMUUNEQZUUOUUHUUSUUMUUGCUUNERUWQUURUULGUWQUUPUU
      JUUQUUKUUNEFUUIUKBCUUNERSULUMPFPLZUVDUUTFVDUVCUWRGPVEUVCUVAUUIPQUWRUVBUVA
      BCVFVGPFUUIPUNUSVHVMUVLUVEIZVIZUVKUWDOUVEUEIUVKUVOUVJOUWTUWDUVOUVFUVJUVEU
      VNVJUVOUVFOUVEUVMVKUUGCUVEUVNVLVNVOUWTUVOUVJUWCUVOACUVLUJZDFUGZUWTUVJUWCO
      ZUVOUUGCUVMJZUXBUVMUVNVJUVOUXDOUVMUVEVPUUGCUVMUVNVLVNUXDUUGCUVLUJZUXBUVLT
      IZUXDUXEVQUCUOZUUGCUVLTVRVNACDUVLFVSVTWAUWTUXAUXCDFUWTDWBUVJUWCDUVJDWBUWB
      DUDUVQUWADUVQDWBUVTDCUVNDUVNWEADUVSWCWDWFWGWHUWTDKZFIZUXAUXCUWTUXIUXAWIZU
      VIUWCGUXJUVIUWCUXJUVIMZUVNFUUIUVLUXHWJZUFZUHZLZADUVRUXNUIZUJZCUVNJZUWCUXK
      UVGUVMFUXMLUVEUVMWKPQZUXOUXJUVGUVHWLUXKUVMUXHUFZFUXMUVMUXTUXMWMUVMUXTUXML
      UXKUVLUXHUXGDUOZWNUVMUXTUXMWOVMUXKUXHFUWTUXIUXAUVIWPWSWQUXKUWTUXSUWTUXIUX
      AUVIWRZUVEUVLWTXAUVEUVMFUUIUXMXBXCZUXKUXQCUVEJZUXQCUVMJZUXRUXKUVHUYDUXJUV
      GUVHXDUXKUWTUVHUYDVQUYBUWTBUXQCUVEUWTUVRUVEIZMUVLUVRXEZUXPUWLQZBUXQVQUYFU
      WTUYGUYFUWSUVLUVRUVRUVEUVLXFXGXJUVRTIUYGUYHUWOUUIUVLUXHUVRTXHXIUYHUXQUWMB
      ADUXPUWLXKUWPXLXMXNXOXPUXKUXAUYEUWTUXIUXAUVIXQUXKUXHUVLUXNUIZQZUXAUYEVQUX
      KUYIUVLUXMUIZUXHUXKUXOUXNXRZUYIUYKQZUYCUVNFUXNXSUYLUXMUXNVJUVLUXMXTZIUYMU
      XMUUIVPUVLUVMUYNUCYBUVLUXHUYAYAYCUVLUXNUXMYDYEXMUVLUXHUXGUYAYFYGUXAACUVMJ
      ZUYJUYEUXFUYOUXAVQUXGACUVLTVRVNUYJAUXQCUVMUYJUVRUVMIZMUXHUXPQZAUXQVQUYPUY
      QUYJUYPUXPUYIUXHUYPUVRUVLUXNUVRUVLYHYIYLYJADUXPYKXOXNUSXOXPUXQCUVEUVMYMYN
      UWBUXOUXRMUDUXNUUIUXMUWNUXLUVLUXHUXGUYAYOYPYQUVPUXNQZUVQUXOUWAUXRUVNFUVPU
      XNUNUYRUVTUXQCUVNUYRADUVSUXPUVRUVPUXNUTURVASVHYNYRYSUUDUUEYTUUAYTUUBUUCUU
      F $.
  $}

  ${
    $d A f x $.
    $( An infinite set is inhabited.  (Contributed by Jim Kingdon,
       18-Feb-2022.) $)
    infm $p |- ( _om ~<_ A -> E. x x e. A ) $=
      ( vf com cdom wbr cv wf1 wcel wex brdomi wa c0 cfv wf f1f adantl ffvelrnd
      peano1 a1i elex2 syl exlimddv ) DBEFZDBCGZHZAGBIAJZCDBCKUDUFLZMUENZBIUGUH
      DBMUEUFDBUEOUDDBUEPQMDIUHSTRAUIBUAUBUC $.

    $( An infinite set is not empty.  (Contributed by NM, 23-Oct-2004.) $)
    infn0 $p |- ( _om ~<_ A -> A =/= (/) ) $=
      ( vx com cdom wbr cv wcel wex c0 wne infm n0r syl ) CADEBFAGBHAIJBAKBALM
      $.
  $}

  ${
    $d A f x $.  $d B f x $.  $d C f x $.
    $( 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 } ) ) $=
      ( vf c2o wcel wa adantr c0 c1o simplr simpr eqtr4d ad2antrr mpbid eqeltrd
      wceq syl ad3antrrr mpjaodan vx cen wbr w3a wne cpr wf1o wex bren 3ad2ant1
      cv biimpi cfv wb wf1 f1of1 adantl simpll3 f1fveq syl12anc simpllr simpll2
      prid2g prid1g wn neneqd mtbird ad4antr pm2.21dd wo wf f1of ffvelrnd elpri
      df2o3 eleq2s ffvelrnda ex ssrdv wss prssi syl2anc eqssd exlimddv ) CEUBUC
      ZACFZBCFZUDZABUEZCABUFZQZWHWIGZCEDUKZUGZWKDWHWNDUHZWIWEWFWOWGWEWOCEDUIULU
      JHWLWNGZCWJWPUACWJWPUAUKZCFZWQWJFZWPWRGZWQWMUMZIQZWSXAJQZWTXBGZBWMUMZIQZW
      SXEJQZXDXFGZWQBWJXHXAXEQZWQBQZXHXAIXEWTXBXFKXDXFLMWTXIXJUNZXBXFWTCEWMUOZW
      RWGXKWPXLWRWNXLWLCEWMUPUQZHZWPWRLZWPWGWRWEWFWGWIWNURZHZCEWQBWMUSUTZNOWTBW
      JFZXBXFWTWGXSXQABCVCRZNPXDXGGZAWMUMZIQZWSYBJQZYAYCGZWQAWJYEXAYBQZWQAQZYEX
      AIYBWTXBXGYCVAYAYCLMWTYFYGUNZXBXGYCWTXLWRWFYHXNXOWPWFWRWEWFWGWIWNVBZHZCEW
      QAWMUSUTZSOWTAWJFZXBXGYCWTWFYLYJABCVDRZSPYAYDGZYBXEQZWSYNYBJXEYAYDLXDXGYD
      KMWPYOVEZWRXBXGYDWPYOABQZWPABWHWIWNKVFWPXLWFWGYOYQUNXMYIXPCEABWMUSUTVGZVH
      VIWPYCYDVJZWRXBXGWPYBEFYSWPCEAWMWNCEWMVKWLCEWMVLUQZYIVMYSYBIJUFZEYBIJVNVO
      VPRZSTWPXFXGVJZWRXBWPXEEFUUCWPCEBWMYTXPVMUUCXEUUAEXEIJVNVOVPRZNTWTXCGZXFW
      SXGUUEXFGZYCWSYDUUFYCGZYOWSUUGYBIXEUUFYCLUUEXFYCKMWPYPWRXCXFYCYRVHVIUUFYD
      GZWQAWJUUHYFYGUUHXAJYBWTXCXFYDVAUUFYDLMWTYHXCXFYDYKSOWTYLXCXFYDYMSPWPYSWR
      XCXFUUBSTUUEXGGZWQBWJUUIXIXJUUIXAJXEWTXCXGKUUEXGLMWTXKXCXGXRNOWTXSXCXGXTN
      PWPUUCWRXCUUDNTWTXAEFXBXCVJZWPCEWQWMYTVQUUJXAUUAEXAIJVNVOVPRTVRVSWPWFWGWJ
      CVTYIXPABCWAWBWCWDVR $.
  $}

  ${
    $d A m n $.  $d B m n $.
    $( Trichotomy of dominance for finite sets.  (Contributed by Jim Kingdon,
       15-Sep-2021.) $)
    fientri3 $p |- ( ( A e. Fin /\ B e. Fin ) -> ( A ~<_ B \/ B ~<_ A ) ) $=
      ( vn vm cfn wcel wa cv cen wbr cdom wo wrex biimpi adantr simplrr simplrl
      com isfi syl2anc ad2antlr wss simpr wb nndomo mpbird endomtr domentr orcd
      ensymd olcd simprl nntri2or2 mpjaodan rexlimddv ) AEFZBEFZGZACHZIJZABKJZB
      AKJZLZCRUPUTCRMZUQUPVDCASNOURUSRFZUTGZGZBDHZIJZVCDRUQVIDRMZUPVFUQVJDBSNUA
      VGVHRFZVIGZGZUSVHUBZVCVHUSUBZVMVNGZVAVBVPAVHKJZVHBIJVAVPUTUSVHKJZVQVMUTVN
      URVEUTVLPZOVPVRVNVMVNUCVPVEVKVRVNUDVMVEVNURVEUTVLQZOVGVKVIVNQUSVHUETUFAUS
      VHUGTVPBVHVGVKVIVNPUJAVHBUHTUIVMVOGZVBVAWABUSKJZUSAIJVBWAVIVHUSKJZWBVGVKV
      IVOPWAWCVOVMVOUCWAVKVEWCVOUDVGVKVIVOQVMVEVOVTOVHUSUETUFBVHUSUGTWAAUSVMUTV
      OVSOUJBUSAUHTUKVMVEVKVNVOLVTVGVKVIULUSVHUMTUNUOUO $.
  $}

  ${
    $d A x y $.
    $( A natural number is well-ordered by ` _E ` .  More specifically, this
       order both satisfies ` We ` and is trichotomous.  (Contributed by Jim
       Kingdon, 25-Sep-2021.) $)
    nnwetri $p |- ( A e. _om -> ( _E We A /\
        A. x e. A A. y e. A ( x _E y \/ x = y \/ y _E x ) ) ) $=
      ( com wcel cep wwe cv wbr weq w3o wral word nnord ordwe elnn syl2anc epel
      syl wa simprl simpl simprr nntri3or biid 3orbi123i sylibr ralrimivva jca
      ) CDEZCFGZAHZBHZFIZABJZUMULFIZKZBCLACLUJCMUKCNCOSUJUQABCCUJULCEZUMCEZTZTZ
      ULDEZUMDEZUQVAURUJVBUJURUSUAUJUTUBZULCPQVAUSUJVCUJURUSUCVDUMCPQVBVCTULUME
      ZUOUMULEZKUQULUMUDUNVEUOUOUPVFABRUOUEBARUFUGQUHUI $.
  $}

  ${
    $d A x $.  $d B x $.  $d V x $.
    $( Adding a singleton to create an ordinal.  (Contributed by Jim Kingdon,
       20-Oct-2021.) $)
    onunsnss $p |- ( ( B e. V /\ ( A u. { B } ) e. On ) ->
        B C_ A ) $=
      ( vx wcel csn cun con0 wa cv elirr wceq elsni adantl simplr eqeltrrd mtoi
      ex wo snidg elun2 syl adantr wi ontr1 mpan2d imp elun sylib ecased ssrdv
      ) BCEZABFZGZHEZIZDBAUPDJZBEZUQAEZUPURIZUSUQUMEZUTVABBEZBKUTVAVBUTVAIUQBBV
      AUQBLUTUQBMNUPURVAOPRQUTUQUNEZUSVASUPURVCUPURBUNEZVCULVDUOULBUMEVDBCTBUMA
      UAUBUCUOURVDIVCUDULUQBUNUENUFUGUQAUMUHUIUJRUK $.
  $}

  ${
    $d A m n $.  $d B m n $.  $d V n $.
    $( Adding a singleton to a finite set yields a finite set.  (Contributed by
       Jim Kingdon, 3-Feb-2022.) $)
    unsnfi $p |- ( ( A e. Fin /\ B e. V /\ -. B e. A )
        -> ( A u. { B } ) e. Fin ) $=
      ( vn vm cfn wcel wn cv cen wbr csn cun com wrex isfi wa ad2antrl cin c0
      w3a biimpi 3ad2ant1 csuc peano2 simprr simpl2 simprl en2sn syl2anc disjsn
      wceq biimpri 3ad2ant3 adantr word nnord ordirr syl sylibr syl22anc df-suc
      unen syl6breqr breq2 rspcev rexlimddv ) AFGZBCGZBAGHZUAZADIZJKZABLZMZFGZD
      NVHVIVMDNOZVJVHVQDAPUBUCVKVLNGZVMQZQZVOEIZJKZENOZVPVTVLUDZNGZVOWDJKZWCVRW
      EVKVMVLUERVTVOVLVLLZMZWDJVTVMVNWGJKZAVNSTULZVLWGSTULZVOWHJKVKVRVMUFVTVIVR
      WIVHVIVJVSUGVKVRVMUHBVLCNUIUJVKWJVSVJVHWJVIWJVJABUKUMUNUOVRWKVKVMVRVLVLGH
      ZWKVRVLUPWLVLUQVLURUSVLVLUKUTRAVLVNWGVCVAVLVBVDWBWFEWDNWAWDVOJVEVFUJEVOPU
      TVG $.
  $}

  ${
    $d A m n $.  $d B m n $.
    $( The ` B e. V ` condition in ~ unsnfi .  This is intended to show that
       ~ unsnfi without that condition would not be provable but it probably
       would need to be strengthened (for example, to imply included middle) to
       fully show that.  (Contributed by Jim Kingdon, 6-Feb-2022.) $)
    unsnfidcex $p |- ( ( A e. Fin /\ -. B e. A /\ ( A u. { B } ) e. Fin )
        -> DECID -. B e. _V ) $=
      ( vn vm cfn wcel wn cun cvv wo wdc cen wbr com biimpi wa ad2antrr syl2anc
      wceq c0 csn cv wrex isfi 3ad2ant1 3ad2ant3 adantr simprr ad3antrrr simplr
      w3a breqtrrd ensymd entr cdif simp1 ad4antr simpr eldifd php5fin pm2.65da
      simp2 orcd snprc uneq2d un0 syl6eq adantl eqbrtrrd wb simprl nneneq mpbid
      simplrl eqcomd olcd nndceq exmiddc syl mpjaodan rexlimddv df-dc sylibr )
      AEFZBAFGZABUAZHZEFZUKZBIFZGZWKGZJZWKKWIACUBZLMZWMCNWDWEWOCNUCZWHWDWPCAUDO
      UEWIWNNFZWOPZPZWGDUBZLMZWMDNWIXADNUCZWRWHWDXBWEWHXBDWGUDOUFUGWSWTNFZXAPZP
      ZWTWNSZWMXFGZXEXFPZWKWLXHWJAWGLMZXHWJPZAWTLMZWTWGLMXIXJAWNWTLWSWOXDXFWJWI
      WQWOUHZUIXEXFWJUJULXJWGWTXEXAXFWJWSXCXAUHZQUMAWTWGUNRXJWDBIAUOFXIGWIWDWRX
      DXFWJWDWEWHUPUQXJBIAXHWJURWIWEWRXDXFWJWDWEWHVBUQUSABUTRVAVCXEXGPZWLWKXNWK
      XFXNWKPZWNWTXOWNWTLMZWNWTSZXOWNALMXKXPXOAWNWSWOXDXGWKXLUIUMXOWGAWTLWKWGAS
      XNWKWGATHAWKWFTAWKWFTSBVDOVEAVFVGVHXEXAXGWKXMQVIWNAWTUNRXOWQXCXPXQVJXEWQX
      GWKWIWQWOXDVNZQXEXCXGWKWSXCXAVKZQWNWTVLRVMVOXEXGWKUJVAVPXEXFKZXFXGJXEXCWQ
      XTXSXRWTWNVQRXFVRVSVTWAWAWKWBWC $.
  $}

  ${
    $d A m n $.  $d B m n $.  $d V m n $.
    $( The ` -. B e. A ` condition in ~ unsnfi .  This is intended to show that
       ~ unsnfi without that condition would not be provable but it probably
       would need to be strengthened (for example, to imply included middle) to
       fully show that.  (Contributed by Jim Kingdon, 6-Feb-2022.) $)
    unsnfidcel $p |- ( ( A e. Fin /\ B e. V /\ ( A u. { B } ) e. Fin )
        -> DECID -. B e. A ) $=
      ( vn vm cfn wcel wn wo wdc cv cen wbr com wrex ad2antrr ad3antrrr syl2anc
      wa ensymd csn cun isfi biimpi 3ad2ant1 3ad2ant3 adantr wceq simprr simplr
      w3a breqtrrd entr cdif simp1 ad4antr simpl2 elexd eldifd php5fin pm2.65da
      cvv simpr olcd wb wss snssi ssequn2 sylib breq1d adantl mpbid simprl orcd
      nneneq nndceq exmiddc syl mpjaodan rexlimddv df-dc sylibr ) AFGZBCGZABUAZ
      UBZFGZUKZBAGZHZWJHZIZWJJWHADKZLMZWLDNWCWDWNDNOZWGWCWODAUCUDUEWHWMNGZWNSZS
      ZWFEKZLMZWLENWHWTENOZWQWGWCXAWDWGXAEWFUCUDUFUGWRWSNGZWTSZSZWSWMUHZWLXEHZX
      DXESZWKWJXGWJAWFLMZXGWJSZWFAXIWTWSALMZWFALMXDWTXEWJWRXBWTUIZPXIAWSXIAWMWS
      LWRWNXCXEWJWHWPWNUIZQXDXEWJUJULTWFWSAUMRTXIWCBVBAUNGXHHWHWCWQXCXEWJWCWDWG
      UOUPXIBVBAXIBCWRWDXCXEWJWCWDWGWQUQQURXGWJVCUSABUTRVAVDXDXFSZWJWKXMWIXEXMW
      ISZWSWMLMZXEXNXJWNXOXNAWSXNWTAWSLMZXDWTXFWIXKPWIWTXPVEXMWIWFAWSLWIWEAVFWF
      AUHBAVGWEAVHVIVJVKVLTWRWNXCXFWIXLQWSAWMUMRXNXBWPXOXEVEXDXBXFWIWRXBWTVMZPW
      RWPXCXFWIWHWPWNVMZQWSWMVORVLXDXFWIUJVAVNXDXEJZXEXFIXDXBWPXSXQWRWPXCXRUGWS
      WMVPRXEVQVRVSVTVTWJWAWB $.
  $}

  ${
    $d A w y z $.  $d B w y z $.
    $( The union of two disjoint finite sets is finite.  (Contributed by Jim
       Kingdon, 25-Feb-2022.) $)
    unfidisj $p |- ( ( A e. Fin /\ B e. Fin /\ ( A i^i B ) = (/) )
        -> ( A u. B ) e. Fin ) $=
      ( vw vy vz cfn wcel cin c0 wceq w3a cv cun csn uneq2 eleq1d un0 wa cvv wn
      simp1 syl5eqel wss unass simpr vex a1i wo simplrr eldifad simp3 ad3antrrr
      cdif minel syl2anc eldifbd sylanbrc elun sylnibr unsnfi syl3anc syl5eqelr
      ioran ex simp2 findcard2sd ) AFGZBFGZABHIJZKZACLZMZFGAIMZFGADLZMZFGZAVNEL
      ZNZMZMZFGZABMZFGCDEBVKIJVLVMFVKIAOPVKVNJVLVOFVKVNAOPVKVSJVLVTFVKVSAOPVKBJ
      VLWBFVKBAOPVJVMAFAQVGVHVIUAUBVJVNFGZRZVNBUCZVQBVNUMGZRZRZVPWAWHVPRZVTVOVR
      MZFAVNVRUDWIVPVQSGZVQVOGZTWJFGWHVPUEWKWIEUFUGWIVQAGZVQVNGZUHZWLWIWMTZWNTW
      OTWIVQBGVIWPWIVQBVNWDWEWFVPUIZUJVJVIWCWGVPVGVHVIUKULVQBAUNUOWIVQBVNWQUPWM
      WNVCUQVQAVNURUSVOVQSUTVAVBVDVGVHVIVEVF $.
  $}

  ${
    $d A x $.  $d V x $.
    $( An ordinal which is a singleton is ` { (/) } ` .  (Contributed by Jim
       Kingdon, 19-Oct-2021.) $)
    snon0 $p |- ( ( A e. V /\ { A } e. On ) -> A = (/) ) $=
      ( vx wcel con0 wa cv elirr wceq snidg adantr wi ontr1 adantl mpan2d elsni
      csn syl6 eleq1 biimpcd sylcom mtoi eq0rdv ) ABDZAQZEDZFZCAUGCGZADZAADZAHU
      GUIUHAIZUJUGUIUHUEDZUKUGUIAUEDZULUDUMUFABJKUFUIUMFULLUDUHAUEMNOUHAPRUKUIU
      JUHAASTUAUBUC $.
  $}

  ${
    $d f x y z w A $.  $d f B $.  $d x y z w 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 ) $=
      ( vw vy vz cfn wcel wa cres cv c0 csn cun reseq2 eleq1d syl2anc cvv simpr
      wceq cdm wfn fnresdm adantr res0 0fin eqeltri a1i wss resundi cfv simp-4l
      cdif simplrr eldifad fnressn uneq2d wn elexd funfvex funfni opexg eldifbd
      cop cin opeldmg dmres eleq2i syl6ib elin simplbi syl6 mtod unsnfi syl3anc
      wi eqeltrd syl5eqel ex findcard2sd eqeltrrd ) BAUAZAFGZHZBAIZBFWAWDBSWBAB
      UBUCWCBCJZIZFGBKIZFGZBDJZIZFGZBWIEJZLZMZIZFGZWDFGCDEAWEKSWFWGFWEKBNOWEWIS
      WFWJFWEWIBNOWEWNSWFWOFWEWNBNOWEASWFWDFWEABNOWHWCWGKFBUDUEUFUGWCWIFGZHZWIA
      UHZWLAWIULZGZHZHZWKWPXCWKHZWOWJBWMIZMZFBWIWMUIXDXFWJWLWLBUJZVCZLZMZFXDXEX
      IWJXDWAWLAGZXEXISWAWBWQXBWKUKZXDWLAWIWRWSXAWKUMZUNZAWLBUOPUPXDWKXHQGZXHWJ
      GZUQXJFGXCWKRXDWLQGXGQGZXOXDWLWTXMURXDWAXKXQXLXNXQAWLBWLBUSUTPZWLXGQQVAPX
      DXPWLWIGZXDWLAWIXMVBXDXPWLWIBTZVDZGZXSXDXPWLWJTZGZYBXDXKXQXPYDVOXNXRWLXGW
      JAQVEPYCYAWLBWIVFVGVHYBXSWLXTGWLWIXTVIVJVKVLWJXHQVMVNVPVQVRWAWBRVSVT $.
  $}

  $( The domain of a finite function is finite.  (Contributed by Jim Kingdon,
     5-Feb-2022.) $)
  fundmfi $p |- ( ( A e. Fin /\ Fun A ) -> dom A e. Fin ) $=
    ( cfn wcel wfun cdm cen wbr fundmeng enfii syldan ) ABCADAEZAFGKBCABHKAIJ
    $.

  $( 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 fundmfi ancoms wfn funfn fnfi sylanb impbida ) ABZACDZA
    EZCDZNMPAFGMAOHPNAIOAJKL $.

  $( If a relation is finite, its converse is as well.  (Contributed by Jim
     Kingdon, 5-Feb-2022.) $)
  relcnvfi $p |- ( ( Rel A /\ A e. Fin ) -> `' A e. Fin ) $=
    ( wrel cfn wcel wa ccnv cen wbr wceq dfrel2 biimpi adantr simpr eqeltrd cvv
    relcnv cnvexg cnven sylancr adantl enfii syl2anc ) ABZACDZEZAFZFZCDUFUGGHZU
    FCDUEUGACUCUGAIZUDUCUIAJKLUCUDMNUDUHUCUDUFBUFODUHAPACQUFORSTUFUGUAUB $.

  $( The range of a finite relation is finite if its converse is a function.
     (Contributed by Jim Kingdon, 5-Feb-2022.) $)
  funrnfi $p |- ( ( Rel A /\ Fun `' A /\ A e. Fin ) -> ran A e. Fin ) $=
    ( wrel ccnv wfun cfn wcel w3a crn cdm df-rn relcnvfi 3adant2 simp2 syl5eqel
    fundmfi syl2anc ) ABZACZDZAEFZGZAHRIZEAJUAREFZSUBEFQTUCSAKLQSTMROPN $.

  ${
    $( If a 1-1 and onto function has a finite domain, its range is finite.
       (Contributed by Jim Kingdon, 21-Feb-2022.) $)
    f1ofi $p |- ( ( A e. Fin /\ F : A -1-1-onto-> B ) -> B e. Fin ) $=
      ( cfn wcel wf1o cen wbr wa f1oeng ensymd enfii syldan ) ADEZABCFZBAGHBDEN
      OIABABDCJKBALM $.
  $}

  $( 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 wrel ccnv wfun f1rel ad2antlr wf1o f1cnv syl simpr wb
    wceq f1ofun funrnfi syl3anc cdm cen wbr wi f1dm f1f1orn eleq1 f1oeq2 eqcoms
    anbi12d biimpd expcomd sylc impcom adantr f1oeng enfii syl2anc f1fun mpbird
    fundmfibi impbida ) ADEZABCFZGZCHEZCIZHEZVHVIGCJZCKZLZVIVKVGVLVFVIABCMNVGVN
    VFVIVGVJAVMOVNABCPVJAVMUAQNVHVIRCUBUCVHVKGZVICUDZHEZVOVKVPVJUEUFZVQVHVKRVOV
    PDEZVPVJCOZGZVRVHWAVKVGVFWAVGVPATZAVJCOZVFWAUGABCUHABCUIWBVFWCWAWBVFWCGZWAW
    DWASAVPAVPTVFVSWCVTAVPDUJAVPVJCUKUMULUNUOUPUQURVPVJDCUSQVPVJUTVAVOCLZVIVQSV
    GWEVFVKABCVBNCVDQVCVE $.

  $( 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 $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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.
       (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 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 $.
  $}

  ${
    $d A u v w $.  $d B u v w $.  $d R u v w $.  $d u v w x $.
    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 ) $=
      ( vu vv vw csup cv wbr wn wral wrex wi nfcv nfbr nfralya crab cuni df-sup
      wa nfn nfrexya nfim nfan nfrabxy nfuni nfcxfr ) ABCDKHLZILZDMZNZIBOZUMULD
      MZUMJLZDMZJBPZQZICOZUDZHCUAZUBHIJBCDUCAVDVCAHCUPVBAUOAIBEUNAAULUMDAULRZGA
      UMRZSUETVAAICFUQUTAAUMULDVFGVESUSAJBEAUMURDVFGAURRSUFUGTUHFUIUJUK $.
  $}

  ${
    $d A u v x $.  $d A v w x $.  $d A w x y $.  $d A z $.  $d B w x y z $.
    $d R u v x $.  $d R v w x $.  $d R w x y z $.  $d ph u v x $.
    $d ph v w x $.
    supmoti.ti $e |- ( ( ph /\ ( u e. A /\ v e. A ) ) ->
        ( u = v <-> ( -. u R v /\ -. v R u ) ) ) $.
    $( Any class ` B ` has at most one supremum in ` A ` (where ` R ` is
       interpreted as 'less than').  The hypothesis is satisfied by real
       numbers (see ~ lttri3 ) or other orders which correspond to tight
       apartnesses.  (Contributed by Jim Kingdon, 23-Nov-2021.) $)
    supmoti $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 wrmo wcel anbi2ci 3bitr4i ralnex
      ancom rexbidv imbi12d rspcva breq2 cbvrexv syl6ibr con3d expimpd ad2antrl
      an42 syl5bi ad2antll anim12d wb ralrimivva equequ1 notbid anbi12d bibi12d
      equequ2 rspc2v mpan9 sylibrd ralbidv imbi1d rmo4 sylibr ) ABLZCLZIMZNZCHO
      ZVOVNIMZVODLZIMZDHPZQZCGOZRZKLZVOIMZNZCHOZVOWFIMZWBQZCGOZRZRZBKSZQZKGOBGO
      WEBGUAAWPBKGGAVNGUBZWFGUBZRZRZWNVNWFIMZNZWFVNIMZNZRZWOWNWLVRRZWDWIRZRZWTX
      EVRWIRZWLWDRZRXJWIVRRZRWNXHXIXKXJVRWIUFUCVRWDWIWLUPWLVRWDWIUPUDWTXFXBXGXD
      WQXFXBQAWRWQWLVRXBVRVPCHPZNWQWLRZXBVPCHUEXMXAXLXMXAVNVTIMZDHPZXLWKXAXOQCV
      NGCBSZWJXAWBXOVOVNWFITXPWAXNDHVOVNVTITUGUHUIVPXNCDHVOVTVNIUJUKULUMUQUNUOW
      RXGXDQAWQWRWDWIXDWIWGCHPZNWRWDRZXDWGCHUEXRXCXQXRXCWFVTIMZDHPZXQWCXCXTQCWF
      GCKSZVSXCWBXTVOWFVNITYAWAXSDHVOWFVTITUGUHUIWGXSCDHVOVTWFIUJUKULUMUQUNURUS
      UQAFESZFLZELZIMZNZYDYCIMZNZRZUTZEGOFGOWSWOXEUTZAYJFEGGJVAYJYKBESZVNYDIMZN
      ZYDVNIMZNZRZUTFEVNWFGGFBSZYBYLYIYQFBEVBYRYFYNYHYPYRYEYMYCVNYDITVCYRYGYOYC
      VNYDIUJVCVDVEEKSZYLWOYQXEEKBVFYSYNXBYPXDYSYMXAYDWFVNIUJVCYSYOXCYDWFVNITVC
      VDVEVGVHVIVAWEWMBKGWOVRWIWDWLWOVQWHCHWOVPWGVNWFVOITVCVJWOWCWKCGWOVSWJWBVN
      WFVOIUJVKVJVDVLVM $.

    ${
      supeuti.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 Jim Kingdon,
         23-Nov-2021.) $)
      supeuti $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 supmoti reu5 sylanbrc ) ABLZCLZIM
        NCHOUEUDIMUEDLIMDHPQCGORZBGPUFBGSUFBGTKABCDEFGHIJUAUFBGUBUC $.
    $}

    ${
      supval2ti.ex $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 ) ) ) $.
      $( Alternate expression for the supremum.  (Contributed by Jim Kingdon,
         23-Nov-2021.) $)
      supval2ti $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 ) ) ) ) $=
        ( cv wbr wn wral wrex wi wa crio crab cuni csup supeuti riotauni df-sup
        wreu wceq syl syl6reqr ) ABLZCLZIMNCHOUKUJIMUKDLIMDHPQCGORZBGSZULBGTUAZ
        HGIUBAULBGUFUMUNUGABCDEFGHIJKUCULBGUDUHBCDHGIUEUI $.
    $}

    ${
      $d x y u v C $.  $d B u v $.  $d u v z $.
      $( Sufficient condition for an element to be equal to the supremum.
         (Contributed by Jim Kingdon, 23-Nov-2021.) $)
      eqsupti $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 w3a csup crio wb adantlr breq1
        notbid ralbidv breq2 imbi1d anbi12d rspcev adantl supval2ti 3simpc wreu
        3impb simpr1 supeuti riota2 syl2anc mpbid eqtrd ex ) AHFLZHBMZINZOZBGPZ
        VFHINZVFCMINCGQZRZBFPZUAZGFIUBZHSAVNTZVOKMZVFINZOZBGPZVFVQINZVKRZBFPZTZ
        KFUCZHVPKBCDEFGIAEMZFLDMZFLTWFWGSWFWGINOWGWFINOTUDVNJUEZVNWDKFQZAVEVIVM
        WIWDVIVMTZKHFVQHSZVTVIWCVMWKVSVHBGWKVRVGVQHVFIUFUGUHWKWBVLBFWKWAVJVKVQH
        VFIUIUJUHUKZULUQUMZUNVPWJWEHSZVNWJAVEVIVMUOUMVPVEWDKFUPWJWNUDAVEVIVMURV
        PKBCDEFGIWHWMUSWDWJKFHWLUTVAVBVCVD $.

      $d y ph $.
      eqsuptid.2 $e |- ( ph -> C e. A ) $.
      eqsuptid.3 $e |- ( ( ph /\ y e. B ) -> -. C R y ) $.
      eqsuptid.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 Jim Kingdon, 24-Nov-2021.) $)
      eqsuptid $p |- ( ph -> sup ( B , A , R ) = C ) $=
        ( wcel cv wbr wn wral wrex ralrimiva wi csup wceq expr eqsupti mp3and )
        AHFNHBOZIPQZBGRUGHIPZUGCOIPCGSZUAZBFRGFIUBHUCKAUHBGLTAUKBFAUGFNUIUJMUDT
        ABCDEFGHIJUEUF $.
    $}

    supclti.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 ~ supubti
       and ~ suplubti .  (Contributed by Jim Kingdon, 24-Nov-2021.) $)
    supclti $p |- ( ph -> sup ( B , A , R ) e. A ) $=
      ( csup cv wbr wn wral wrex wi wa crio supval2ti wreu wcel supeuti riotacl
      syl eqeltrd ) AHGILBMZCMZINOCHPUIUHINUIDMINDHQRCGPSZBGTZGABCDEFGHIJKUAAUJ
      BGUBUKGUCABCDEFGHIJKUDUJBGUEUFUG $.

    ${
      $d C w $.
      $( A supremum is an upper bound.  See also ~ supclti and ~ suplubti .

         This proof demonstrates how to expand an iota-based definition
         ( ~ df-iota ) using ~ riotacl2 .

         (Contributed by Jim Kingdon, 24-Nov-2021.) $)
      supubti $p |- ( ph -> ( C e. B -> -. sup ( B , A , R ) R C ) ) $=
        ( vw cv wbr wn wral wcel wi wceq csup crab wrex simpl ss2rabi supval2ti
        wa a1i crio wreu supeuti riotacl2 syl eqeltrd sseldi breq2 notbid breq1
        cbvralv ralbidv syl5bb elrab simprbi rspccv 3syl ) AHGJUAZBNZCNZJOZPZCH
        QZBGUBZRZVFMNZJOZPZMHQZIHRVFIJOZPZSAVKVHVGJOVHDNJODHUCSCGQZUGZBGUBZVLVF
        WAVKBGWAVKSVGGRVKVTUDUHUEAVFWABGUIZWBABCDEFGHJKLUFAWABGUJWCWBRABCDEFGHJ
        KLUKWABGULUMUNUOVMVFGRVQVKVQBVFGVKVGVNJOZPZMHQVGVFTZVQVJWECMHVHVNTVIWDV
        HVNVGJUPUQUSWFWEVPMHWFWDVOVGVFVNJURUQUTVAVBVCVPVSMIHVNITVOVRVNIVFJUPUQV
        DVE $.
    $}

    ${
      $d C w z $.
      $( A supremum is the least upper bound.  See also ~ supclti and
         ~ supubti .  (Contributed by Jim Kingdon, 24-Nov-2021.) $)
      suplubti $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 breq1 wa wn simpr rexbidv imbi12d cbvralv
        csup crab wceq a1i ss2rabi crio supval2ti wreu supeuti riotacl2 eqeltrd
        sylib syl sseldi breq2 imbi1d ralbidv elrab simprbi rspccv impd 3syl )
        AHGJUGZMNZBNZJOZVJDNZJOZDHPZQZMGRZBGUHZSZVJVIJOZVOQZMGRZIGSZIVIJOZUAIVM
        JOZDHPZQAVKCNZJOUBCHRZWGVKJOZWGVMJOZDHPZQZCGRZUAZBGUHZVRVIWNVQBGWNVQQVK
        GSWNWMVQWHWMUCWLVPCMGWGVJUIZWIVLWKVOWGVJVKJTWPWJVNDHWGVJVMJTUDUEUFURUJU
        KAVIWNBGULZWOABCDEFGHJKLUMAWNBGUNWQWOSABCDEFGHJKLUOWNBGUPUSUQUTVSVIGSWB
        VQWBBVIGVKVIUIZVPWAMGWRVLVTVOVKVIVJJVAVBVCVDVEWBWCWDWFWAWDWFQMIGVJIUIZV
        TWDVOWFVJIVIJTWSVNWEDHVJIVMJTUDUEVFVGVH $.
    $}

    ${
      $d A v w x $.  $d A w x y z $.  $d B w x y z $.  $d C w z $.
      $d R v w x $.  $d R w x y z $.  $d ph v w x $.
      suplub2ti.or $e |- ( ph -> R Or A ) $.
      suplub2ti.3 $e |- ( ph -> B C_ A ) $.
      $( Bidirectional form of ~ suplubti .  (Contributed by Jim Kingdon,
         17-Jan-2022.) $)
      suplub2ti $p |- ( ( ph /\ C e. A ) ->
          ( C R sup ( B , A , R ) <-> E. z e. B C R z ) ) $=
        ( vw wcel wa wbr cv ad3antrrr suplubti expdimp breq2 cbvrexv wn simplll
        csup wrex simplr supubti sylc wo simpr wor wi simpllr wss sseldd sowlin
        supclti syl13anc mpd ecased ex rexlimdva syl5bi impbid ) AIGPZQZIHGJUGZ
        JRZIDSZJRZDHUHZAVHVKVNABCDEFGHIJKLUAUBVNIOSZJRZOHUHVIVKVMVPDOHVLVOIJUCU
        DVIVPVKOHVIVOHPZQZVPVKVRVPQZVKVJVOJRZVSAVQVTUEAVHVQVPUFVIVQVPUIZABCDEFG
        HVOJKLUJUKVSVPVKVTULZVRVPUMVSGJUNZVHVOGPVJGPZVPWBUOAWCVHVQVPMTAVHVQVPUP
        VSHGVOAHGUQVHVQVPNTWAURAWDVHVQVPABCDEFGHJKLUTTGIVOVJJUSVAVBVCVDVEVFVG
        $.
    $}
  $}

  ${
    $d A u v x $.  $d A x y z $.  $d B x y z $.  $d C x $.  $d R u v x $.
    $d R x y z $.  $d ph u v x $.
    supelti.ti $e |- ( ( ph /\ ( u e. A /\ v e. A ) ) ->
        ( u = v <-> ( -. u R v /\ -. v R u ) ) ) $.
    supelti.ex $e |- ( ph -> E. x e. C ( A. y e. B -. x R y /\
      A. y e. A ( y R x -> E. z e. B y R z ) ) ) $.
    supelti.ss $e |- ( ph -> C C_ A ) $.
    $( Supremum membership in a set.  (Contributed by Jim Kingdon,
       16-Jan-2022.) $)
    supelti $p |- ( ph -> sup ( B , A , R ) e. C ) $=
      ( cv wceq wcel wex wbr wrex wa csup wss wn wral wi ssrexv supclti elisset
      sylc eqcom exbii sylib simpr crio supval2ti eqeq1d biimpa wb wreu supeuti
      syl riota1 adantr mpbird simpld simprd reupick syl2an2r eqeltrd exlimddv
      jca32 ) AHGJUAZBNZOZVLIPBAVMVLOZBQZVNBQAVLGPVPABCDEFGHJKAIGUBZVMCNZJRUCCH
      UDVRVMJRVRDNJRDHSUECGUDTZBISZVSBGSMLVSBIGUFUIZUGBVLGUHVAVOVNBVMVLUJUKULAV
      NTZVLVMIAVNUMWBVMIPZVMGPZWBWDVSWBWDVSTZVSBGUNZVMOZAVNWGAVLWFVMABCDEFGHJKW
      AUOUPUQAWEWGURZVNAVSBGUSZWHABCDEFGHJKWAUTZVSBGVBVAVCVDZVEAVQVTWITTVNVSWCW
      DURAVQVTWIMLWJVKWBWDVSWKVFVSBIGVGVHVDVIVJ $.
  $}

  ${
    $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 u v x y $.  $d B u v x y $.  $d C u v x y $.  $d R u v x y $.
    $d ph u v y $.
    supmaxti.ti $e |- ( ( ph /\ ( u e. A /\ v e. A ) ) ->
      ( u = v <-> ( -. u R v /\ -. v R u ) ) ) $.
    supmaxti.2 $e |- ( ph -> C e. A ) $.
    supmaxti.3 $e |- ( ph -> C e. B ) $.
    supmaxti.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 Jim Kingdon, 24-Nov-2021.) $)
    supmaxti $p |- ( ph -> sup ( B , A , R ) = C ) $=
      ( vx wcel cv wbr wa wrex simprr breq2 rspcev syl2an2r eqsuptid ) ABMCDEFG
      HIJLAGFNBOZENZUDGHPZQUFUDMOZHPZMFRKAUEUFSUHUFMGFUGGUDHTUAUBUC $.
  $}

  ${
    $d A u v x $.  $d B u v x $.  $d R u v x $.  $d ph u v x $.
    supsnti.ti $e |- ( ( ph /\ ( u e. A /\ v e. A ) ) ->
      ( u = v <-> ( -. u R v /\ -. v R u ) ) ) $.
    supsnti.b $e |- ( ph -> B e. A ) $.
    $( The supremum of a singleton.  (Contributed by Jim Kingdon,
       26-Nov-2021.) $)
    supsnti $p |- ( ph -> sup ( { B } , A , R ) = B ) $=
      ( vx wcel cv wa wbr wn wceq wb wral breq1 notbid breq2 csn snidg syl eqid
      ralrimivva wi eqeq1 anbi12d bibi12d eqeq2 rspc2v syl2anc mpd mpbii simpld
      adantr elsni breq2d adantl mpbird supmaxti ) AIBCDEUAZEFGHAEDJZEVBJHEDUBU
      CAIKZVBJZLEVDFMZNZEEFMZNZAVIVEAVIVIAEEOZVIVILZEUDACKZBKZOZVLVMFMZNZVMVLFM
      ZNZLZPZBDQCDQZVJVKPZAVTCBDDGUEAVCVCWAWBUFHHVTWBEVMOZEVMFMZNZVMEFMZNZLZPCB
      EEDDVLEOZVNWCVSWHVLEVMUGWIVPWEVRWGWIVOWDVLEVMFRSWIVQWFVLEVMFTSUHUIVMEOZWC
      VJWHVKVMEEUJWJWEVIWGVIWJWDVHVMEEFTSWJWFVHVMEEFRSUHUIUKULUMUNUOUPVEVGVIPAV
      EVFVHVEVDEEFVDEUQURSUSUTVA $.
  $}

  ${
    $d A u v $.  $d B u v x y $.  $d F u v x y $.  $d R u v $.  $d S u v x y $.
    $( Lemma for ~ isoti .  (Contributed by Jim Kingdon, 26-Nov-2021.) $)
    isotilem $p |- ( F Isom R , S ( A , B ) -> (
        A. x e. B A. y e. B ( x = y <-> ( -. x S y /\ -. y S x ) ) ->
        A. u e. A A. v e. A ( u = v <-> ( -. u R v /\ -. v R u ) ) ) ) $=
      ( cv wceq wbr wn wa wb wral wcel notbid anbi12d bibi12d wiso wi wf isof1o
      cfv wf1o f1of ffvelrn anim12d 3syl imp eqeq1 breq1 breq2 eqeq2 rspc2v syl
      ex wf1 f1of1 f1fveq sylan bicomd isorel ancom2s sylibrd ralrimdvva ) EFGH
      IUAZAJZBJZKZVIVJHLZMZVJVIHLZMZNZOZBFPAFPZDJZCJZKZVSVTGLZMZVTVSGLZMZNZOZDC
      EEVHVSEQZVTEQZNZNZVRVSIUEZVTIUEZKZWLWMHLZMZWMWLHLZMZNZOZWGWKWLFQZWMFQZNZV
      RWTUBVHWJXCVHEFIUFZEFIUCZWJXCUBEFGHIUDZEFIUGXEWHXAWIXBXEWHXAEFVSIUHURXEWI
      XBEFVTIUHURUIUJUKVQWTWLVJKZWLVJHLZMZVJWLHLZMZNZOABWLWMFFVIWLKZVKXGVPXLVIW
      LVJULXMVMXIVOXKXMVLXHVIWLVJHUMRXMVNXJVIWLVJHUNRSTVJWMKZXGWNXLWSVJWMWLUOXN
      XIWPXKWRXNXHWOVJWMWLHUNRXNXJWQVJWMWLHUMRSTUPUQWKWAWNWFWSWKWNWAVHEFIUSZWJW
      NWAOVHXDXOXFEFIUTUQEFVSVTIVAVBVCWKWCWPWEWRWKWBWOEFVSVTGHIVDRVHWIWHWEWROVH
      WIWHNNWDWQEFVTVSGHIVDRVESTVFVG $.
  $}

  ${
    $d A u v x y $.  $d B u v x y $.  $d F u v x y $.  $d R u v x y $.
    $d S u v x y $.
    $( An isomorphism preserves tightness.  (Contributed by Jim Kingdon,
       26-Nov-2021.) $)
    isoti $p |- ( F Isom R , S ( A , B ) -> (
        A. u e. A A. v e. A ( u = v <-> ( -. u R v /\ -. v R u ) ) <->
        A. u e. B A. v e. B ( u = v <-> ( -. u S v /\ -. v S u ) ) ) ) $=
      ( vx vy wiso weq cv wbr wn wa wb wral isotilem breq1 notbid wi isocnv syl
      ccnv impbid equequ1 breq2 anbi12d bibi12d equequ2 cbvral2v syl6bb ) CDEFG
      JZBAKZBLZALZEMNUPUOEMNOPACQBCQZHIKZHLZILZFMZNZUTUSFMZNZOZPZIDQHDQZUNUOUPF
      MZNZUPUOFMZNZOZPZADQBDQUMUQVGUMDCFEGUDZJUQVGUACDEFGUBBAIHDCFEVNRUCHIABCDE
      FGRUEVFVMBIKZUOUTFMZNZUTUOFMZNZOZPHIBADDHBKZURVOVEVTHBIUFWAVBVQVDVSWAVAVP
      USUOUTFSTWAVCVRUSUOUTFUGTUHUIIAKZVOUNVTVLIABUJWBVQVIVSVKWBVPVHUTUPUOFUGTW
      BVRVJUTUPUOFSTUHUIUKUL $.
  $}

  ${
    $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 ~ supisoti .  (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 ~ supisoti .  (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 $.

    $d A j k w z $.  $d B j k w z $.  $d C j k w z $.  $d F j k w z $.
    $d R j w z v $.  $d S j k w z $.  $d ph j k w v x $.  $d j k u v $.
    supisoti.ti $e |- ( ( ph /\ ( u e. A /\ v e. A ) ) ->
      ( u = v <-> ( -. u R v /\ -. v R u ) ) ) $.
    $( Image of a supremum under an isomorphism.  (Contributed by Jim Kingdon,
       26-Nov-2021.) $)
    supisoti $p |- ( ph ->
        sup ( ( F " C ) , B , S ) = ( F ` sup ( C , A , R ) ) ) $=
      ( vw vj wbr wral vk cima csup cfv cv wcel weq wn wa ralrimivva wiso isoti
      wb syl mpbid r19.21bi anasss wf1o wf isof1o f1of 3syl supclti ffvelrnd wi
      wrex supubti ralrimiv suplubti expd supisolem mpbi2and simpld simprd impr
      mpdan eqsuptid ) AQUAEFHLIUBZIGJUCZLUDZKAFUEZHUFZEUEZHUFFEUGZWAWCKSUHWCWA
      KSUHUIUMZAWBUIWEEHAWEEHTZFHAWDWAWCJSUHWCWAJSUHUIUMZEGTFGTZWFFHTZAWGFEGGPU
      JAGHJKLUKZWHWIUMMEFGHJKLULUNUOUPUPUQAGHVSLAWJGHLURGHLUSMGHJKLUTGHLVAVBABC
      DEFGIJPOVCZVDAVTQUEZKSUHZQVRAWMQVRTZWLVTKSZWLUAUEKSUAVRVFZVEZQHTZAVSRUEZJ
      SUHZRITZWSVSJSZWSDUEJSDIVFZVEZRGTZWNWRUIZAWTRIABCDEFGIWSJPOVGVHAXDRGAWSGU
      FXBXCABCDEFGIWSJPOVIVJVHAVSGUFXAXEUIXFUMWKARDQUAGHIVSJKLMNVKVPVLZVMUPAWLH
      UFWOWPAWQQHAWNWRXGVNUPVOVQ $.
  $}

  $( 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
      $.
  $}

  ${
    $d ph x $.  $d ph y $.  $d ph z $.
    cnvinfex.ex $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 ) ) ) $.
    $( Two ways of expressing existence of an infimum (one in terms of
       converse).  (Contributed by Jim Kingdon, 17-Dec-2021.) $)
    cnvinfex $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 wb vex brcnv a1i ralbidv ccnv rexbidv imbi12d
      notbid anbi12d mpbird ) ABIZCIZGUAZJZKZCFLZUHUGUIJZUHDIZUIJZDFMZNZCELZOZB
      EMUHUGGJZKZCFLZUGUHGJZUNUHGJZDFMZNZCELZOZBEMHAUSVHBEAULVBURVGAUKVACFAUJUT
      UJUTPAUGUHGBQZCQZRSUDTAUQVFCEAUMVCUPVEUMVCPAUHUGGVJVIRSAUOVDDFUOVDPAUHUNG
      VJDQRSUBUCTUEUBUF $.
  $}

  ${
    eqinfti.ti $e |- ( ( ph /\ ( u e. A /\ v e. A ) ) ->
        ( u = v <-> ( -. u R v /\ -. v R u ) ) ) $.
    $d A u v y z $.  $d ph u v $.  $d R u v y z $.

    $( If a relation satisfies a condition corresponding to tightness of an
       apartness generated by an order, so does its converse.  (Contributed by
       Jim Kingdon, 17-Dec-2021.) $)
    cnvti $p |- ( ( ph /\ ( u e. A /\ v e. A ) ) ->
        ( u = v <-> ( -. u `' R v /\ -. v `' R u ) ) ) $=
      ( cv wcel wa weq wbr wn ccnv ancom syl6bb wb brcnvg notbid ancoms anbi12d
      adantl bitr4d ) ACGZDHZBGZDHZIZIZCBJZUEUCEKZLZUCUEEKZLZIZUCUEEMZKZLZUEUCU
      OKZLZIZUHUIUMUKIUNFUMUKNOUGUTUNPAUGUQUKUSUMUGUPUJUCUEDDEQRUGURULUFUDURULP
      UEUCDDEQSRTUAUB $.

    $d B u v y z $.
    ${
      $d C u v y z $.
      $( Sufficient condition for an element to be equal to the infimum.
         (Contributed by Jim Kingdon, 16-Dec-2021.) $)
      eqinfti $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 wa cvv wb bicomd wi w3a cinf wceq ccnv cnvti
        csup df-inf eqsupti vex brcnvg mpan2 ralbidv mpan brcnv rexbidv imbi12d
        notbid a1i anbi12d pm5.32i 3anass 3bitr4i biimpi impel syl5eq ex ) AHFK
        ZBLZHIMZNZBGOZHVIIMZCLZVIIMZCGPZUAZBFOZUBZGFIUCZHUDAVSQVTGFIUEZUGZHGFIU
        HAVHHVIWAMZNZBGOZVIHWAMZVIVNWAMZCGPZUAZBFOZUBZWBHUDVSABCDEFGHWAADEFIJUF
        UIVSWKVHVLVRQZQVHWEWJQZQVSWKVHWLWMVHVLWEVRWJVHVKWDBGVHVJWCVHVIRKZVJWCSB
        UJZVHWNQWCVJHVIFRIUKTULURUMVHVQWIBFVHVMWFVPWHVHWFVMWNVHWFVMSWOVIHRFIUKU
        NTVHVOWGCGVHWGVOWGVOSVHVIVNIWOCUJUOUSTUPUQUMUTVAVHVLVRVBVHWEWJVBVCVDVEV
        FVG $.

      $d ph y $.
      eqinftid.2 $e |- ( ph -> C e. A ) $.
      eqinftid.3 $e |- ( ( ph /\ y e. B ) -> -. y R C ) $.
      eqinftid.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 Jim Kingdon, 16-Dec-2021.) $)
      eqinftid $p |- ( ph -> inf ( B , A , R ) = C ) $=
        ( wcel cv wbr wn wral wrex ralrimiva wi cinf wceq expr eqinfti mp3and )
        AHFNBOZHIPQZBGRHUGIPZCOUGIPCGSZUAZBFRGFIUBHUCKAUHBGLTAUKBFAUGFNUIUJMUDT
        ABCDEFGHIJUEUF $.
    $}

    infvalti.ex $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 ) ) ) $.
    $d A x $.  $d B x $.  $d R x $.  $d ph u v x y z $.
    $( Alternate expression for the infimum.  (Contributed by Jim Kingdon,
       17-Dec-2021.) $)
    infvalti $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 wb vex brcnv a1i cinf ccnv csup wi wa crio cnvinfex
      df-inf supval2ti notbid ralbidv rexbidv imbi12d anbi12d riotabidv syl5eq
      cnvti eqtrd ) AHGIUAHGIUBZUCZCLZBLZIMZNZCHOZVBVAIMZDLZVAIMZDHPZUDZCGOZUEZ
      BGUFZHGIUHAUTVBVAUSMZNZCHOZVAVBUSMZVAVGUSMZDHPZUDZCGOZUEZBGUFVMABCDEFGHUS
      AEFGIJUQABCDGHIKUGUIAWBVLBGAVPVEWAVKAVOVDCHAVNVCVNVCQAVBVAIBRZCRZSTUJUKAV
      TVJCGAVQVFVSVIVQVFQAVAVBIWDWCSTAVRVHDHVRVHQAVAVGIWDDRSTULUMUKUNUOURUP $.
  $}

  ${
    $d A u v x y z $.  $d B u v x y z $.  $d R u v x y z $.  $d ph u v x y z $.
    infclti.ti $e |- ( ( ph /\ ( u e. A /\ v e. A ) ) ->
        ( u = v <-> ( -. u R v /\ -. v R u ) ) ) $.
    infclti.ex $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 belongs to its base class (closure law).  See also ~ inflbti
       and ~ infglbti .  (Contributed by Jim Kingdon, 17-Dec-2021.) $)
    infclti $p |- ( ph -> inf ( B , A , R ) e. A ) $=
      ( cinf ccnv csup df-inf cnvti cnvinfex supclti syl5eqel ) AHGILHGIMZNGHGI
      OABCDEFGHTAEFGIJPABCDGHIKQRS $.

    $( An infimum is a lower bound.  See also ~ infclti and ~ infglbti .
       (Contributed by Jim Kingdon, 18-Dec-2021.) $)
    inflbti $p |- ( ph -> ( C e. B -> -. C R inf ( B , A , R ) ) ) $=
      ( wcel cinf wbr wn wa ccnv csup cnvti cnvinfex supubti wceq df-inf breq2d
      imp a1i wb supclti brcnvg bicomd sylan bitrd mtbird ex ) AIHMZIHGJNZJOZPA
      UPQZURHGJRZSZIUTOZAUPVBPABCDEFGHIUTAEFGJKTZABCDGHJLUAZUBUFUSURIVAJOZVBUSU
      QVAIJUQVAUCUSHGJUDUGUEAVAGMZUPVEVBUHABCDEFGHUTVCVDUIVFUPQVBVEVAIGHJUJUKUL
      UMUNUO $.

    $d C z $.  $d ph z $.
    $( An infimum is the greatest lower bound.  See also ~ infclti and
       ~ inflbti .  (Contributed by Jim Kingdon, 18-Dec-2021.) $)
    infglbti $p |- ( ph -> ( ( C e. A /\ inf ( B , A , R ) R C ) ->
                    E. z e. B z R C ) ) $=
      ( wcel cinf wbr wrex wa wb brcnvg cvv ccnv csup df-inf breq1i simpr cnvti
      cv cnvinfex supclti adantr bicomd syl2anc syl5bb suplubti expdimp sylancl
      vex rexbidv sylibd sylbid expimpd ) AIGMZHGJNZIJOZDUGZIJOZDHPZAVBQZVDIHGJ
      UAZUBZVIOZVGVDVJIJOZVHVKVCVJIJHGJUCUDVHVBVJGMZVLVKRAVBUEZAVMVBABCDEFGHVIA
      EFGJKUFZABCDGHJLUHZUIUJVBVMQVKVLIVJGGJSUKULUMVHVKIVEVIOZDHPZVGAVBVKVRABCD
      EFGHIVIVOVPUNUOVHVQVFDHVHVBVETMVQVFRVNDUQIVEGTJSUPURUSUTVA $.

    $( A lower bound is not greater than the infimum.  (Contributed by Jim
       Kingdon, 18-Dec-2021.) $)
    infnlbti $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 infglbti expdimp rexalim con2d expimpd
      syl6 ) AIGMZDNIJOZPDHQZHGJRIJOZPAUGSZUJUIUKUJUHDHTZUIPAUGUJULABCDEFGHIJKL
      UAUBUHDHUCUFUDUE $.
  $}

  ${
    $d A u v y z $.  $d B u v y z $.  $d C u v y z $.  $d R u v y z $.
    $d u v y z ph $.
    infminti.ti $e |- ( ( ph /\ ( u e. A /\ v e. A ) ) ->
        ( u = v <-> ( -. u R v /\ -. v R u ) ) ) $.
    infminti.2 $e |- ( ph -> C e. A ) $.
    infminti.3 $e |- ( ph -> C e. B ) $.
    infminti.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 Jim Kingdon, 18-Dec-2021.) $)
    infminti $p |- ( ph -> inf ( B , A , R ) = C ) $=
      ( vz wcel cv wbr wa wrex simprr breq1 rspcev syl2an2r eqinftid ) ABMCDEFG
      HIJLAGFNBOZENZGUDHPZQUFMOZUDHPZMFRKAUEUFSUHUFMGFUGGUDHTUAUBUC $.
  $}

  ${
    $d u v x y z A $.  $d u v x y z R $.  $d u v x y z B $.  $d u v x ph $.
    infmoti.ti $e |- ( ( ph /\ ( u e. A /\ v e. A ) ) ->
        ( u = v <-> ( -. u R v /\ -. v R u ) ) ) $.
    $( Any class ` B ` has at most one infimum in ` A ` (where ` R ` is
       interpreted as 'less than').  (Contributed by Jim Kingdon,
       18-Dec-2021.) $)
    infmoti $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 vex brcnv supmoti notbii imbi12i anbi12i
      ccnv cnvti ralbii rexbii rmobii sylib ) ABKZCKZIUEZLZMZCHNZULUKUMLZULDKZU
      MLZDHOZPZCGNZQZBGRULUKILZMZCHNZUKULILZURULILZDHOZPZCGNZQZBGRABCDEFGHUMAEF
      GIJUFUAVCVLBGUPVFVBVKUOVECHUNVDUKULIBSZCSZTUBUGVAVJCGUQVGUTVIULUKIVNVMTUS
      VHDHULURIVNDSTUHUCUGUDUIUJ $.

    infeuti.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 Jim Kingdon, 19-Dec-2021.) $)
    infeuti $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 infmoti reu5 sylanbrc ) ACLZBLZIMNC
      HOUEUDIMDLUDIMDHPQCGORZBGPUFBGSUFBGTKABCDEFGHIJUAUFBGUBUC $.
  $}

  ${
    $d A u v x $.  $d B u v x $.  $d R u v x $.  $d ph u v x $.
    infsnti.ti $e |- ( ( ph /\ ( u e. A /\ v e. A ) ) ->
      ( u = v <-> ( -. u R v /\ -. v R u ) ) ) $.
    infsnti.b $e |- ( ph -> B e. A ) $.
    $( The infimum of a singleton.  (Contributed by Jim Kingdon,
       19-Dec-2021.) $)
    infsnti $p |- ( ph -> inf ( { B } , A , R ) = B ) $=
      ( csn cinf ccnv csup df-inf cnvti supsnti syl5eq ) AEIZDFJQDFKZLEQDFMABCD
      ERABCDFGNHOP $.
  $}

  $( 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 u v x y z $.  $d B u v x y z $.  $d C u v x y z $.  $d F u v x y z $.
    $d R u v x y z $.  $d S u v x y z $.  $d ph u v x y z $.
    infisoti.1 $e |- ( ph -> F Isom R , S ( A , B ) ) $.
    infisoti.2 $e |- ( ph -> C C_ A ) $.
    infisoti.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 ) ) ) $.
    infisoti.ti $e |- ( ( ph /\ ( u e. A /\ v e. A ) ) ->
      ( u = v <-> ( -. u R v /\ -. v R u ) ) ) $.
    $( Image of an infimum under an isomorphism.  (Contributed by Jim Kingdon,
       19-Dec-2021.) $)
    infisoti $p |- ( ph ->
                   inf ( ( F " C ) , B , S ) = ( F ` inf ( C , A , R ) ) ) $=
      ( ccnv csup cfv cinf cima wiso isocnv2 sylib cnvinfex cnvti df-inf fveq2i
      supisoti 3eqtr4g ) ALIUAZHKQZRIGJQZRZLSUKHKTIGJTZLSABCDEFGHIUMULLAGHJKLUB
      GHUMULLUBMGHJKLUCUDNABCDGIJOUEAEFGJPUFUIUKHKUGUOUNLIGJUGUHUJ $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Ordinal isomorphism
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $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 wcel wi weq fveq2 id eqeq12d wa wb syl wiso
      word w3a wral con0 wss ordsson sseld eleq1 imbi12d imbi2d r19.21v ordelss
      3ad2ant2 3ad2antl2 sselda pm5.5 ralbidva isof1o 3ad2ant1 ad2antrr simpll3
      ccnv wf1o simpr wf f1of simplrl ffvelrnd ordtr1 f1ocnvfv2 syl2anc eqeltrd
      jca sylc wbr simpll1 f1ocnv isorel syl12anc vex epelc a1i cvv wfn funfvex
      3syl f1ofn funfni sylan epelg 3bitr3d mpbird simplrr rspcv eqtr3d rspccva
      simprr epel biimpri adantl simpl2 simprl mpbid eqeltrrd eqrdv expr sylbid
      impbida ex com23 a2i syl5bi tfis2 com3l mpdd ralrimiv ffvelrnda 3ad2antl1
      adantll adantlr wrex crn simpl1 wfo f1ofo forn eleq2d adantr bitr3d simpl
      fvelrnb simplr exp43 syldd imp rexlimdv impbid mpdan ) ABHHCUAZAUBZBUBZUC
      ZDIZCJZUUDKZDAUDZABKUUCUUFDAUUCUUDALZUUDUELZUUFUUCAUEUUDUUAYTAUEUFUUBAUGU
      NUHUUIUUCUUHUUFUUCUUHUUFMZMZUUCEIZALZUULCJZUULKZMZMZDEDENZUUJUUPUUCUURUUH
      UUMUUFUUOUUDUULAUIUURUUEUUNUUDUULUUDUULCOUURPQUJUKUUQEUUDUDUUCUUPEUUDUDZM
      ZUUIUUKUUCUUPEUUDULUUTUUKMUUIUUCUUSUUJUUCUUHUUSUUFUUCUUHUUSUUFMUUCUUHRZUU
      SUUOEUUDUDZUUFUVAUUPUUOEUUDUVAUULUUDLRUUMUUPUUOSUVAUUDAUULUUAYTUUHUUDAUFZ
      UUBAUUDUMZUOUPUUMUUOUQTURUUCUUHUVBUUFUUCUUHUVBRZRZFUUEUUDUVFFIZUUELZUVGUU
      DLZUVFUVHRZUVGUVGCVCZJZUUDUVJUVLCJZUVGUVLUVJABCVDZUVGBLZUVMUVGKUUCUVNUVEU
      VHYTUUAUVNUUBABHHCUSZUTVAZUVJUUBUVHUUEBLZRUVOYTUUAUUBUVEUVHVBUVJUVHUVRUVF
      UVHVEZUVJABUUDCUUCABCVFZUVEUVHYTUUAUVTUUBYTUVNUVTUVPABCVGTZUTVAUUCUUHUVBU
      VHVHZVIVNUVGUUEBVJVOZABUVGCVKVLZUVJUVLUUDLZUVBUVMUVLKZUVJUWEUVMUUELZUVJUV
      MUVGUUEUWDUVSVMUVJUVLUUDHVPZUVMUUEHVPZUWEUWGUVJYTUVLALUUHUWHUWISYTUUAUUBU
      VEUVHVQZUVJBAUVGUVKUVJUVNBAUVKVDBAUVKVFUVQABCVRBAUVKVGWGUWCVIUWBABUVLUUDH
      HCVSVTUWHUWESUVJUVLUUDDWAWBWCUVJUUEWDLZUWIUWGSUVJYTUUHUWKUWJUWBYTCAWEZUUH
      UWKYTUVNUWLUVPABCWHTZUWKAUUDCUUDCWFWIWJZVLUVMUUEWDWKTWLWMZUUCUUHUVBUVHWNU
      UOUWFEUVLUUDUULUVLKZUUNUVMUULUVLUULUVLCOUWPPQWOVOWPUWOVMUVFUVIRZUVGCJZUVG
      UUEUVFUVBUVIUWRUVGKZUUCUUHUVBWRUUOUWSEUVGUUDEFNZUUNUWRUULUVGUULUVGCOUWTPQ
      WQWJUWQUWRUUEHVPZUWRUUELZUWQUVGUUDHVPZUXAUVIUXCUVFUXCUVIFDWSWTXAUWQYTUVGA
      LZUUHUXCUXASYTUUAUUBUVEUVIVQZUVFUUDAUVGUVFUUAUUHUVCYTUUAUUBUVEXBUUCUUHUVB
      XCUVDVLUPUUCUUHUVBUVIVHZABUVGUUDHHCVSVTXDUWQUWKUXAUXBSUWQYTUUHUWKUXEUXFUW
      NVLUWRUUEWDWKTXDXEXIXFXGXHXJXKXLWCXMXNXOXPXQUUCUUGRZFABUXGUXDUVOUXGUXDUVO
      UXGUXDRUWRUVGBUUGUXDUWSUUCUUFUWSDUVGADFNZUUEUWRUUDUVGUUDUVGCOUXHPQWQXTUUC
      UXDUWRBLZUUGYTUUAUXDUXIUUBYTABUVGCUWAXRXSYAXEXJUXGUVOGIZCJZUVGKZGAYBZUXDU
      XGUVGCYCZLZUVOUXMUXGUXNBUVGUXGYTUXNBKZYTUUAUUBUUGYDYTUVNABCYEUXPUVPABCYFA
      BCYGWGTYHUXGUWLUXOUXMSUUCUWLUUGYTUUAUWLUUBUWMUTYIGAUVGCYLTYJUXGUXLUXDGAUU
      CUUGUXJALZUXLUXDMZMUUCUXQUUGUXRUUCUXQUUGUXKUXJKZUXRUXQUUGUXSMMUUCUUFUXSDU
      XJADGNZUUEUXKUUDUXJUUDUXJCOUXTPQWOWCUUCUXQUXSUXLUXDUUCUXQRZUXSUXLRZRUVGUX
      JAUYBFGNUYAUYBUXKUVGUXJUXSUXLVEUXSUXLYKWPXAUUCUXQUYBYMVMYNYOXKYPYQXHYRXFY
      S $.

    $( 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 $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Cardinal numbers
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Introduce new constant symbols. $)
  $c card $. $( Cardinal size function $)

  $( Extend class definition to include the cardinal size function. $)
  ccrd $a class card $.

  ${
    $d x y $.
    $( 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.  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 } ) $.
  $}

  ${
    $d x y A $.
    $( The cardinality of a well-orderable set is an ordinal.  (Contributed by
       Jim Kingdon, 30-Aug-2021.) $)
    cardcl $p |- ( E. y e. On y ~~ A -> ( card ` A ) e. On ) $=
      ( vx cen wbr con0 wrex ccrd cfv crab cint cvv cmpt wceq df-card a1i breq2
      cv rabbidv wcel inteqd adantl simprd rexlimivw fvmptd onintrab2im eqeltrd
      encv intexrabim ) ARZBDEZAFGZBHIUKAFJZKZFULCBUJCRZDEZAFJZKZUNLHLHCLURMNUL
      CAOPUOBNZURUNNULUSUQUMUSUPUKAFUOBUJDQSUAUBUKBLTZAFUKUJLTUTUJBUHUCUDUKAFUI
      UEUKAUFUG $.
  $}

  ${
    $d A x y $.  $d B x y $.
    $( 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 ) $=
      ( vy vx con0 wcel cen wbr wa crab cint cvv ccrd cdm wrex breq1 intexrabim
      cv rspcev syl encv simprd wceq rabbidv inteqd eleq1d elrab3 adantl mpbird
      wb breq2 df-card dmmpt syl6eleqr ) AEFZABGHZIZBCRZDRZGHZCEJZKZLFZDLJZMNUQ
      BVDFZURBGHZCEJZKZLFZUQVFCEOVIVFUPCAEURABGPSVFCEQTUPVEVIUJZUOUPBLFZVJUPALF
      VKABUAUBVCVIDBLUSBUCZVBVHLVLVAVGVLUTVFCEUSBURGUKUDUEUFUGTUHUIDLVBMDCULUMU
      N $.
  $}

  ${
    $d x A $.
    $( 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 $.
  $}

  ${
    $d A x y $.  $d A y z $.
    $( The value of ` ( card `` A ) ` .  (Contributed by Jim Kingdon,
       30-Aug-2021.) $)
    cardval3ex $p |- ( E. x e. On x ~~ A ->
        ( card ` A ) = |^| { y e. On | y ~~ A } ) $=
      ( vz cv cen wbr con0 wrex cvv wcel crab cint ccrd cfv wceq encv rexlimivw
      simprd breq1 cbvrexv sylbir breq2 rabbidv inteqd df-card fvmptg syl2anc
      intexrabim ) AEZCFGZAHIZCJKZBEZCFGZBHLZMZJKZCNOUQPUKUMAHUKUJJKUMUJCQSRULU
      OBHIURUOUKBAHUNUJCFTUAUOBHUIUBDCUNDEZFGZBHLZMUQJJNUSCPZVAUPVBUTUOBHUSCUNF
      UCUDUEDBUFUGUH $.
  $}

  ${
    $d x y A $.
    $( The value of the cardinal number function with an ordinal number as its
       argument.  (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 } ) $=
      ( vy con0 wcel cv cen wbr wrex ccrd cfv crab cint wceq enrefg breq1 mpdan
      rspcev cardval3ex syl ) BDEZCFZBGHZCDIZBJKAFBGHADLMNUABBGHZUDBDOUCUECBDUB
      BBGPRQCABST $.

    $( 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 x y $.  $d B x y $.
    $( If two numerable sets are equinumerous, then they have equal
       cardinalities.  (Contributed by Jim Kingdon, 30-Aug-2021.) $)
    carden2bex $p |- ( ( A ~~ B /\ E. x e. On x ~~ A ) ->
        ( card ` A ) = ( card ` B ) ) $=
      ( vy cen wbr cv con0 wrex wa crab cint ccrd cfv wceq enen2 rabbidv inteqd
      adantr cardval3ex adantl entr expcom reximdv imp syl 3eqtr4d ) BCEFZAGZBE
      FZAHIZJZDGZBEFZDHKZLZUMCEFZDHKZLZBMNZCMNZUHUPUSOUKUHUOURUHUNUQDHBCUMPQRSU
      KUTUPOUHADBTUAULUICEFZAHIZVAUSOUHUKVCUHUJVBAHUJUHVBUIBCUBUCUDUEADCTUFUG
      $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( Theorem *54.43 of [WhiteheadRussell] p. 360.  (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 entr wn ex cv
      con0 elexi ensymi mpan2 wcel onirri disjsn mpbir unen mpanr2 sylan2 df-2o
      csuc df-suc eqtri breq2i syl6ibr wex en1 1nen2 unidm sneq uneq2d syl5reqr
      wne a1i syl6eqbr ensymd sylan mtand necon2ai disjsn2 uneq12 breq1d ineq12
      vex syl eqeq1d 3imtr4d exlimdv exlimiv imp syl2anb impbid ) AEFGZBEFGZHZA
      BIZJKZABLZMFGZWHWJWKEENZLZFGZWLWGWFBWMFGZWJWOOWGEWMFGWPWMEEEUBPUCQUDBEWMR
      UEWFWPHZWJWOWQWJEWMIJKZWOWREEUFSEPUGEEUHUIAEBWMUJUKTULMWNWKFMEUNWNUMEUOUP
      UQURWFACUAZNZKZCUSZBDUAZNZKZDUSZWLWJOZWGCAUTDBUTXBXFXGXAXFXGOCXAXEXGDXAXE
      XGXAXEHZWTXDLZMFGZWTXDIZJKZWLWJXJXLOXHXJWSXCVFXLXJWSXCWSXCKZXJEMFGZXNSXMV
      AVGXMEXIFGXJXNXMXIEXMXIWTEFXMWTWTWTLXIWTVBXMWTXDWTWSXCVCVDVEWSCVQQVHVIEXI
      MRVJVKVLWSXCVMVRVGXHWKXIMFAWTBXDVNVOXHWIXKJAWTBXDVPVSVTTWAWBWCWDWE $.
  $}

  $( 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 preq2 c1o wi cvv syl entr ex mtoi a1d
    eqcoms enpr1g adantr prexg eqeng 1nen2 ensym syld mpid syl5 necon2ad 3expia
    com3r pr2nelem impbid ) ACEZBDEZFZABGZHIJZABKZUTVBABABLVAAAGZLZUTVBMZVEBABA
    ANUCUTVEVDOIJZVFURVGUSACUDUEUTVEVAVDIJZVGVFPUTVAQEVEVHPABCDUFVAVDQUGRVHVGUT
    VFVHVGUTVFPZVHVGFVAOIJZVIVAVDOSVJVFUTVJVBOHIJZUHVJOVAIJZVBVKPVAOUIVLVBVKOVA
    HSTRUAUBRTUOUJUKULUMURUSVCVBABCDUPUNUQ $.


$(
###############################################################################
  REAL AND COMPLEX NUMBERS
###############################################################################

This section derives the basics of real and complex numbers.

To construct the real numbers constructively, we follow two main sources.
The first is Metamath Proof Explorer, which has the advantage of being
already formalized in metamath. Its disadvantage, for our purposes, is that
it assumes the law of the excluded middle throughout. Since we have already
developed natural numbers ( for example, ~ nna0 and similar theorems ), going
from there to positive integers ( ~ df-ni ) and then positive rational numbers
( ~ df-nqqs ) does not involve a major change in approach compared with
the Metamath Proof Explorer.

It is when we proceed to Dedekind cuts that we bring in more material from
Section 11.2 of [HoTT], which focuses on the aspects of Dedekind cuts which
are different without excluded middle. With excluded middle, it is natural
to define the cut as the lower set only (as Metamath Proof Explorer does),
but we define the cut as a pair of both the lower and upper sets, as [HoTT]
does. There are also differences in how we handle order and replacing
"not equal to zero" with "apart from zero".
$)

$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  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 addition $)
  $c .Q $. $( Positive fraction multiplication $)
  $c *Q $. $( Positive fraction reciprocal $)
  $c <Q $. $( Positive fraction ordering relation $)

  $c ~Q0 $. $( Equivalence relation to construct non-negative fractions $)
  $c Q0. $. $( Set of non-negative fractions $)
  $c 0Q0 $. $( Non-negative fraction constant 0 $)
  $c +Q0 $. $( Non-negative fraction addition $)
  $c .Q0 $. $( Non-negative fraction multiplication $)

  $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. $)
  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 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 $.

  $( Equivalence class used to construct non-negative fractions. $)
  ceq0 $a class ~Q0 $.
  $( Set of non-negative fractions. $)
  cnq0 $a class Q0. $.
  $( The non-negative fraction constant 0. $)
  c0q0 $a class 0Q0 $.
  $( Non-negative fraction addition. $)
  cplq0 $a class +Q0 $.
  $( Non-negative fraction multiplication. $)
  cmq0 $a class .Q0 $.

  $( 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, and is intended to be used only by
     the construction.  (Contributed by NM, 15-Aug-1995.) $)
  df-ni $a |- N. = ( _om \ { (/) } ) $.

  $( Define addition on positive integers.  This is a "temporary" set used in
     the construction of complex numbers, and is intended to be used only by
     the construction.  (Contributed by NM, 26-Aug-1995.) $)
  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 and is intended to be used
     only by the construction.  (Contributed by NM, 26-Aug-1995.) $)
  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, and is intended to be used only by
     the construction.  (Contributed by NM, 6-Feb-1996.) $)
  df-lti $a |- <N = ( _E i^i ( N. X. N. ) ) $.

  $( Membership in the class of positive integers.  (Contributed by NM,
     15-Aug-1995.) $)
  elni $p |- ( A e. N. <-> ( A e. _om /\ A =/= (/) ) ) $=
    ( cnpi wcel com c0 csn cdif wne wa df-ni eleq2i eldifsn bitri ) ABCADEFGZCA
    DCAEHIBNAJKADELM $.

  $( A positive integer is a natural number.  (Contributed by NM,
     15-Aug-1995.) $)
  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.) $)
  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.) $)
  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.) $)
  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.) $)
  0npi $p |- -. (/) e. N. $=
    ( c0 wceq cnpi wcel wn eqid com wne elni simprbi necon2bi ax-mp ) AABACDZEA
    FMAAMAGDAAHAIJKL $.

  $( Membership in the class of positive integers.  (Contributed by NM,
     27-Nov-1995.) $)
  elni2 $p |- ( A e. N. <-> ( A e. _om /\ (/) e. A ) ) $=
    ( cnpi wcel com c0 wa pinn wceq wn 0npi eleq1 mtbiri con2i wo 0elnn syl ord
    mpd sylib wi jca nndceq0 df-dc anim1i ancom andi bitr3i noel pm2.21d impcom
    wdc eleq2 a1i wne df-ne elni simplbi2 syl5bir adantld jaod adantr impbii )
    ABCZADCZEACZFZVCVDVEAGZVCAEHZIZVEVHVCVHVCEBCJAEBKLMVCVHVEVCVDVHVENVGAOPQRUA
    VFVEVHFZVEVIFZNZVCVFVHVINZVEFZVLVDVMVEVDVHUKVMAUBVHUCSUDVNVEVMFVLVEVMUEVEVH
    VIUFUGSVDVLVCTVEVDVJVCVKVJVCTVDVHVEVCVHVEVCVHVEEECEUHAEEULLUIUJUMVDVIVCVEVI
    AEUNZVDVCAEUOVCVDVOAUPUQURUSUTVARVB $.

  $( Ordinal 'one' is a positive integer.  (Contributed by NM, 29-Oct-1995.) $)
  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.) $)
  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.) $)
  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.) $)
  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.) $)
  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 $.

  ${
    $d x y z $.
    $( Positive integer 'less than' is a strict ordering.  (Contributed by NM,
       8-Feb-1996.)  (Proof shortened by Mario Carneiro, 10-Jul-2014.) $)
    ltsopi $p |- <N Or N. $=
      ( vx vy vz cnpi clti wor wtru cv wcel wbr wn wel wb ltpiord adantl wa w3o
      wi com pinn elirrv anidms mtbiri w3a con0 pion ontr1 syl 3ad2ant3 3adant3
      3adant1 anbi12d 3adant2 3imtr4d ispod weq nntri3or syl2an biidd 3orbi123d
      ancoms mpbird issod trud ) DEFGABDEGABCDEAHZDIZVEVEEJZKGVFVGAALZAUAVFVGVH
      MVEVENUBUCOVFBHZDIZCHZDIZUDZVEVIEJZVIVKEJZPZVEVKEJZRGVMABLZBCLZPZACLZVPVQ
      VLVFVTWARZVJVLVKUEIWBVKUFVEVIVKUGUHUIVMVNVRVOVSVFVJVNVRMVLVEVINZUJVJVLVOV
      SMVFVIVKNUKULVFVLVQWAMVJVEVKNUMUNOUOVFVJPZVNABUPZVIVEEJZQZGWDWGVRWEBALZQZ
      VFVESIVISIWIVJVETVITVEVIUQURWDVNVRWEWEWFWHWCWDWEUSVJVFWFWHMVIVENVAUTVBOVC
      VD $.
  $}

  $( Trichotomy for positive integers.  (Contributed by Jim Kingdon,
     21-Sep-2019.) $)
  pitric $p |- ( ( A e. N. /\ B e. N. ) ->
      ( A <N B <-> -. ( A = B \/ B <N A ) ) ) $=
    ( cnpi wcel wa wceq wo wn clti wbr com wb pinn nntri2 syl2an ltpiord ancoms
    orbi2d notbid 3bitr4d ) ACDZBCDZEZABDZABFZBADZGZHZABIJUEBAIJZGZHUAAKDBKDUDU
    HLUBAMBMABNOABPUCUJUGUCUIUFUEUBUAUIUFLBAPQRST $.

  $( Trichotomy for positive integers.  (Contributed by Jim Kingdon,
     21-Sep-2019.) $)
  pitri3or $p |- ( ( A e. N. /\ B e. N. ) ->
      ( A <N B \/ A = B \/ B <N A ) ) $=
    ( cnpi wcel clti wbr wceq w3o com pinn nntri3or syl2an ltpiord biidd ancoms
    wa wb 3orbi123d mpbird ) ACDZBCDZPZABEFZABGZBAEFZHABDZUDBADZHZTAIDBIDUHUAAJ
    BJABKLUBUCUFUDUDUEUGABMUBUDNUATUEUGQBAMORS $.

  $( Less-than for positive integers is decidable.  (Contributed by Jim
     Kingdon, 12-Dec-2019.) $)
  ltdcpi $p |- ( ( A e. N. /\ B e. N. ) -> DECID A <N B ) $=
    ( cnpi wcel wa clti wbr wdc com pinn nndcel syl2an ltpiord dcbid mpbird ) A
    CDZBCDZEZABFGZHABDZHZPAIDBIDUAQAJBJABKLRSTABMNO $.

  $( Positive integer 'less than' is a relation on positive integers.
     (Contributed by NM, 8-Feb-1996.) $)
  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.) $)
  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.) $)
  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.) $)
  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.) $)
  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 Jim
     Kingdon, 26-Aug-2019.) $)
  addcompig $p |- ( ( A e. N. /\ B e. N. ) -> ( A +N B ) = ( B +N A ) ) $=
    ( cnpi wcel wa coa cpli com wceq pinn nnacom syl2an addpiord ancoms 3eqtr4d
    co ) ACDZBCDZEABFPZBAFPZABGPBAGPZQAHDBHDSTIRAJBJABKLABMRQUATIBAMNO $.

  $( Addition of positive integers is associative.  (Contributed by Jim
     Kingdon, 26-Aug-2019.) $)
  addasspig $p |- ( ( A e. N. /\ B e. N. /\ C e. N. ) ->
      ( ( A +N B ) +N C ) = ( A +N ( B +N C ) ) ) $=
    ( cnpi wcel w3a coa co cpli com wceq pinn nnaass syl3an wa addclpi addpiord
    sylan oveq1d eqtrd adantr 3impa sylan2 oveq2d adantl 3impb 3eqtr4d ) ADEZBD
    EZCDEZFABGHZCGHZABCGHZGHZABIHZCIHZABCIHZIHZUHAJEUIBJEUJCJEULUNKALBLCLABCMNU
    HUIUJUPULKUHUIOZUJOUPUOCGHZULUSUODEUJUPUTKABPUOCQRUSUTULKUJUSUOUKCGABQSUATU
    BUHUIUJURUNKUHUIUJOZOURAUQGHZUNVAUHUQDEURVBKBCPAUQQUCVAVBUNKUHVAUQUMAGBCQUD
    UETUFUG $.

  $( Multiplication of positive integers is commutative.  (Contributed by Jim
     Kingdon, 26-Aug-2019.) $)
  mulcompig $p |- ( ( A e. N. /\ B e. N. ) -> ( A .N B ) = ( B .N A ) ) $=
    ( cnpi wcel wa comu cmi com wceq pinn nnmcom syl2an mulpiord ancoms 3eqtr4d
    co ) ACDZBCDZEABFPZBAFPZABGPBAGPZQAHDBHDSTIRAJBJABKLABMRQUATIBAMNO $.

  $( Multiplication of positive integers is associative.  (Contributed by Jim
     Kingdon, 26-Aug-2019.) $)
  mulasspig $p |- ( ( A e. N. /\ B e. N. /\ C e. N. )
      -> ( ( A .N B ) .N C ) = ( A .N ( B .N C ) ) ) $=
    ( cnpi wcel w3a comu co cmi com wceq pinn nnmass syl3an wa mulclpi mulpiord
    sylan oveq1d eqtrd adantr 3impa sylan2 oveq2d adantl 3impb 3eqtr4d ) ADEZBD
    EZCDEZFABGHZCGHZABCGHZGHZABIHZCIHZABCIHZIHZUHAJEUIBJEUJCJEULUNKALBLCLABCMNU
    HUIUJUPULKUHUIOZUJOUPUOCGHZULUSUODEUJUPUTKABPUOCQRUSUTULKUJUSUOUKCGABQSUATU
    BUHUIUJURUNKUHUIUJOZOURAUQGHZUNVAUHUQDEURVBKBCPAUQQUCVAVBUNKUHVAUQUMAGBCQUD
    UETUFUG $.

  $( Multiplication of positive integers is distributive.  (Contributed by Jim
     Kingdon, 26-Aug-2019.) $)
  distrpig $p |- ( ( A e. N. /\ B e. N. /\ C e. N. )
      -> ( A .N ( B +N C ) ) = ( ( A .N B ) +N ( A .N C ) ) ) $=
    ( cnpi wcel w3a coa co comu cpli cmi wceq pinn nndi mulpiord addpiord eqtrd
    com wa mulclpi syl3an addclpi sylan2 oveq2d adantl syl2an oveqan12d 3eqtr4d
    3impb 3impdi ) ADEZBDEZCDEZFABCGHZIHZABIHZACIHZGHZABCJHZKHZABKHZACKHZJHZUKA
    REULBREUMCREUOURLAMBMCMABCNUAUKULUMUTUOLUKULUMSZSUTAUSIHZUOVDUKUSDEUTVELBCU
    BAUSOUCVDVEUOLUKVDUSUNAIBCPUDUEQUIUKULUMVCURLUKULSZUKUMSZSVCVAVBGHZURVFVADE
    VBDEVCVHLVGABTACTVAVBPUFVFVGVAUPVBUQGABOACOUGQUJUH $.

  $( Addition cancellation law for positive integers.  (Contributed by Jim
     Kingdon, 27-Aug-2019.) $)
  addcanpig $p |- ( ( A e. N. /\ B e. N. /\ C e. N. ) ->
                 ( ( A +N B ) = ( A +N C ) <-> B = C ) ) $=
    ( cnpi wcel w3a cpli co wceq coa addpiord 3adant3 3adant2 eqeq12d wi nnacan
    com pinn biimpd syl3an sylbid oveq2 impbid1 ) ADEZBDEZCDEZFZABGHZACGHZIZBCI
    ZUGUJABJHZACJHZIZUKUGUHULUIUMUDUEUHULIUFABKLUDUFUIUMIUEACKMNUDAQEZUEBQEZUFC
    QEZUNUKOARBRCRUOUPUQFUNUKABCPSTUABCAGUBUC $.

  $( Multiplication cancellation law for positive integers.  (Contributed by
     Jim Kingdon, 29-Aug-2019.) $)
  mulcanpig $p |- ( ( A e. N. /\ B e. N. /\ C e. N. ) ->
                 ( ( A .N B ) = ( A .N C ) <-> B = C ) ) $=
    ( cnpi wcel w3a cmi co wceq wi wa comu mulpiord adantr adantlr eqeq12d pinn
    com c0 elni2 simprbi nnmcan biimpd sylan2 ex syl3an 3exp com4r imp31 sylbid
    pm2.43i 3impa oveq2 impbid1 ) ADEZBDEZCDEZFABGHZACGHZIZBCIZUOUPUQUTVAJUOUPK
    ZUQKZUTABLHZACLHZIZVAVCURVDUSVEVBURVDIUQABMNUOUQUSVEIUPACMOPUOUPUQVFVAJZUOU
    PUQVGJJUOUPUQUOVGUOUPUQUOVGJZUOAREZUPBREZUQCREZVHAQBQCQVIVJVKFZUOVGUOVLSAEZ
    VGUOVIVMATUAVLVMKVFVAABCUBUCUDUEUFUGUHUKUIUJULBCAGUMUN $.

  $( There is no identity element for addition on positive integers.
     (Contributed by NM, 28-Nov-1995.) $)
  addnidpig $p |- ( ( A e. N. /\ B e. N. ) -> -. ( A +N B ) = A ) $=
    ( cnpi wcel wa cpli co wceq coa com wn pinn c0 elni2 wi nnaordi nna0 eleq1d
    word nnord ordirr eleq2 notbid syl5ibrcom sylbid adantl syld expcom sylan2b
    syl con2d imp32 sylan addpiord eqeq1d mtbird ) ACDZBCDZEZABFGZAHABIGZAHZUQA
    JDZURVBKZALURVCBJDZMBDZEVDBNVCVEVFVDVEVCVFVDOVEVCEVFAMIGZVADZVDMBAPVCVHVDOV
    EVCVHAVADZVDVCVGAVAAQRVCVBVIVCVIKVBAADZKZVCASVKATAUAUJVBVIVJVAAAUBUCUDUKUEU
    FUGUHULUIUMUSUTVAAABUNUOUP $.

  ${
    $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.) $)
    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 Jim
     Kingdon, 31-Aug-2019.) $)
  ltapig $p |- ( ( A e. N. /\ B e. N. /\ C e. N. ) ->
      ( A <N B <-> ( C +N A ) <N ( C +N B ) ) ) $=
    ( cnpi wcel clti wbr cpli co wb wa coa com pinn nnaord ltpiord addclpi wceq
    adantr addpiord syl3an 3expa syl2an adantl eleq12d anandis ancoms 3bitr4d
    bitrd 3impa ) ADEZBDEZCDEZABFGZCAHIZCBHIZFGZJUKULKZUMKABEZCALIZCBLIZEZUNUQU
    KULUMUSVBJZUKAMEULBMEUMCMEVCANBNCNABCOUAUBURUNUSJUMABPSUMURUQVBJZUMUKULVDUM
    UKKZUMULKZKZUQUOUPEZVBVEUODEUPDEUQVHJVFCAQCBQUOUPPUCVGUOUTUPVAVEUOUTRVFCATS
    VFUPVARVECBTUDUEUIUFUGUHUJ $.

  $( Ordering property of multiplication for positive integers.  (Contributed
     by Jim Kingdon, 31-Aug-2019.) $)
  ltmpig $p |- ( ( A e. N. /\ B e. N. /\ C e. N. ) ->
      ( A <N B <-> ( C .N A ) <N ( C .N B ) ) ) $=
    ( cnpi wcel clti wbr cmi co wb wa comu com pinn syl2an ltpiord mulclpi wceq
    adantr mulpiord wi c0 elni2 w3a iba nnmord sylan9bbr 3exp1 imp4b syl5bi imp
    adantl eleq12d bitrd anandis ancoms 3bitr4d 3impa ) ADEZBDEZCDEZABFGZCAHIZC
    BHIZFGZJUSUTKZVAKABEZCALIZCBLIZEZVBVEVFVAVGVJJZUSAMEZBMEZVAVKUAUTANBNVACMEZ
    UBCEZKVLVMKVKCUCVLVMVNVOVKVLVMVNVOVKVOVGVGVOKVLVMVNUDVJVOVGUEABCUFUGUHUIUJO
    UKVFVBVGJVAABPSVAVFVEVJJZVAUSUTVPVAUSKZVAUTKZKZVEVCVDEZVJVQVCDEVDDEVEVTJVRC
    AQCBQVCVDPOVSVCVHVDVIVQVCVHRVRCATSVRVDVIRVQCBTULUMUNUOUPUQUR $.

  $( One is less than two (one plus one).  (Contributed by NM, 13-Mar-1996.) $)
  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 Jim Kingdon,
     31-Aug-2019.) $)
  nlt1pig $p |- ( A e. N. -> -. A <N 1o ) $=
    ( cnpi wcel c0 wne c1o clti wbr wn com elni simprbi wceq wa noel wo ltpiord
    wb 1pi mpan2 csuc df-1o eleq2i elsucg syl5bb biimpa ord mpi ex necon3ad mpd
    bitrd ) ABCZADEZAFGHZIUMAJCUNAKLUMUOADUMUOADMZUMUONZADCZIUPAOUQURUPUMUOURUP
    PZUMUOAFCZUSUMFBCUOUTRSAFQTUTADUAZCUMUSFVAAUBUCADBUDUEULUFUGUHUIUJUK $.

  ${
    $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.) $)
    indpi $p |- ( A e. N. -> ta ) $=
      ( wcel com c0 wceq wo c1o cnpi cv wne wa elni cab csuc wral wss wsbc eqid
      orci nfv nfsbc1v nfor 0ex eqeq1 sbceq1a orbi12d elabf mpbir suceq syl6eqr
      wi df-1o olci 1onn elexi elab syl6eqel a1d a1i wn wb simprbi neneqd biorf
      syl vex syl6bbr cpli co 1pi addclpi mpan2 sylib simprd elabg coa addpiord
      con0 pion oa1suc eqtrd eleq1d 3bitr2d 3imtr3d wdc nndceq0 necon3bd anc2li
      df-dc idd syl6ibr orim2d mpjaod rgen peano5 mp2an sseli abid adantr df-ne
      mpd sylbi adantl mpbird vtoclga ) AEFHUALFUBZUAOXSPOZXSQUCZUDZAXSUEYBAXSQ
      RZASZXTYDYAXTXSYDFUFZOYDPYEXSQYEOZGUBZYEOZYGUGZYEOZVDZGPUHPYEUIYFQQRZAFQU
      JZSZYLYMQUKULYDYNFQYLYMFYLFUMAFQUNUOUPYCYCYLAYMXSQQUQAFQURUSUTVAYKGPYGPOZ
      YGQRZYKYGUAOZYPYKVDYOYPYJYHYPYITYEYPYIQUGTYGQVBVEVCTYEOTQRZBSZBYRMVFYDYSF
      TTPVGVHXSTRYCYRABXSTQUQIUSVIVAVJVKVLYQYKVDYOYQCDYHYJNYQCYPCSZYHYQYPVMZCYT
      VNYQYGQYQYOYGQUCZYGUEZVOVPYPCVQVRYDYTFYGGVSXSYGRYCYPACXSYGQUQJUSVIVTYQDYG
      TWAWBZQRZDSZUUDYEOZYJYQUUEVMDUUFVNYQUUDQYQUUDPOZUUDQUCZYQUUDUAOZUUHUUIUDY
      QTUAOZUUJWCYGTWDWEZUUDUEWFWGVPUUEDVQVRYQUUJUUGUUFVNUULYDUUFFUUDUAXSUUDRYC
      UUEADXSUUDQUQKUSWHVRYQUUDYIYEYQUUDYGTWIWBZYIYQUUKUUDUUMRWCYGTWJWEYQYGWKOU
      UMYIRYGWLYGWMVRWNWOWPWQVLYOYPUUASZYPYQSYOYPWRUUNYGWSYPXBWFYOUUAYQYPYOUUAY
      OUUBUDYQYOUUAUUBYOYPYGQYOYPXCWTXAUUCXDXEXNXFXGGYEXHXIXJYDFXKWFXLYAAYDVNZX
      TYAYCVMUUOXSQXMYCAVQXOXPXQXOXR $.
  $}

  $( A natural number plus a positive integer is a positive integer.
     (Contributed by Jim Kingdon, 10-Nov-2019.) $)
  nnppipi $p |- ( ( A e. _om /\ B e. N. ) -> ( A +o B ) e. N. ) $=
    ( com wcel cnpi wa coa co pinn nnacl sylan2 wss nnaword2 sylan ancoms elni2
    c0 simprbi adantl sseldd sylanbrc ) ACDZBEDZFZABGHZCDZQUEDUEEDUCUBBCDZUFBIZ
    ABJKUDBUEQUCUBBUELZUCUGUBUIUHBAMNOUCQBDZUBUCUGUJBPRSTUEPUA $.

  ${
    $d x y z w v u f $.
    $( Define pre-addition on positive fractions.  This is a "temporary" set
       used in the construction of complex numbers, 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-plqqs ) 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.) $)
    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, 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.) $)
    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, and is
       intended to be used only by the construction.  Similar to Definition 5
       of [Suppes] p. 162.  (Contributed by NM, 28-Aug-1995.) $)
    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, 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.) $)
    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, 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.) $)
    df-nqqs $a |- Q. = ( ( N. X. N. ) /. ~Q ) $.

    $( Define addition on positive fractions.  This is a "temporary" set used
       in the construction of complex numbers, 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.) $)
    df-plqqs $a |- +Q = { <. <. x , y >. , z >. | ( ( x e. Q. /\ y e. Q. ) /\
      E. w E. v E. u E. f (
         ( x = [ <. w , v >. ] ~Q /\ y = [ <. u , f >. ] ~Q ) /\
               z = [ ( <. w , v >. +pQ <. u , f >. ) ] ~Q ) ) } $.

    $( Define multiplication on positive fractions.  This is a "temporary" set
       used in the construction of complex numbers, 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.) $)
    df-mqqs $a |- .Q = { <. <. x , y >. , z >. | ( ( x e. Q. /\ y e. Q. ) /\
      E. w E. v E. u E. f (
         ( x = [ <. w , v >. ] ~Q /\ y = [ <. u , f >. ] ~Q ) /\
               z = [ ( <. w , v >. .pQ <. u , f >. ) ] ~Q ) ) } $.

    $( Define positive fraction constant 1.  This is a "temporary" set used in
       the construction of complex numbers, 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.) $)
    df-1nqqs $a |- 1Q = [ <. 1o , 1o >. ] ~Q $.

    $( 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, 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 Jim Kingdon,
       20-Sep-2019.) $)
    df-rq $a |- *Q = { <. x , y >. |
        ( x e. Q. /\ y e. Q. /\ ( x .Q y ) = 1Q ) } $.

    $( Define ordering relation on positive fractions.  This is a "temporary"
       set used in the construction of complex numbers, and is intended to be
       used only by the construction.  Similar to Definition 5 of [Suppes]
       p. 162.  (Contributed by NM, 13-Feb-1996.) $)
    df-ltnqqs $a |- <Q = { <. x , y >. | ( ( x e. Q. /\ y e. Q. ) /\
       E. z E. w E. v E. u
       ( ( x = [ <. z , w >. ] ~Q /\ y = [ <. v , u >. ] ~Q ) /\
                ( z .N u ) <N ( w .N v ) ) ) } $.
  $}

  ${
    $d x y z w v u f $.
    $( Alternate definition of pre-addition on positive fractions.
       (Contributed by Jim Kingdon, 12-Sep-2019.) $)
    dfplpq2 $p |- +pQ = { <. <. x , y >. , z >. | ( ( x e. ( N. X. N. ) /\
        y e. ( N. X. N. ) ) /\ E. w E. v E. u E. f ( ( x = <. w , v >. /\
        y = <. u , f >. ) /\ z = <. ( ( w .N f ) +N ( v .N u ) ) ,
        ( v .N f ) >. ) ) } $=
      ( cnpi cv cfv cmi co cpli cop wcel wa wceq wex vex oveq12d cxp c1st cmpt2
      c2nd coprab cplpq df-mpt2 df-plpq 1st2nd2 eqeq1d bi2anan9 anbi1d ad2antlr
      xp1st biimpa simprd opth2 simplbi eleq1d syl mpbid xp2nd ad2antrr simprbi
      simpld mulcompig syl2anc oveq2d opeq1d eqeq2d pm5.32da bitr3d 4exbidv jca
      wb simpll simprr simprl simplr opeq12d copsex4g pm5.32i oprabbii 3eqtr4i
      syl2an ) ABHHUAZWFAIZUBJZBIZUDJZKLZWIUBJZWGUDJZKLZMLZWMWJKLZNZUCWGWFOZWIW
      FOZPZCIZWQQZPZABCUEUFWTWGDIZEIZNZQZWIFIZGIZNZQZPZXAXDXIKLZXEXHKLZMLZXEXIK
      LZNZQZPZGRFRERDRZPZABCUEABCWFWFWQUGABUHYAXCABCWTXTXBWTWHWMNZXFQZWLWJNZXJQ
      ZPZXAXMXHXEKLZMLZXPNZQZPZGRFRERDRZXTXBWTYKXSDEFGWTXLYJPYKXSWTXLYFYJWRXGYC
      WSXKYEWRWGYBXFWGHHUIUJWSWIYDXJWIHHUIUJUKZULWTXLYJXRWTXLPZYIXQXAYNYHXOXPYN
      YGXNXMMYNXHHOZXEHOZYGXNQYNWLHOZYOWSYQWRXLWIHHUNZUMYNYEYQYOVOYNYCYEWTXLYFY
      MUOZUPYEWLXHHYEWLXHQWJXIQWLWJXHXIFSGSUQURUSUTVAYNWMHOZYPWRYTWSXLWGHHVBZVC
      YNYCYTYPVOYNYCYEYSVEYCWMXEHYCWHXDQWMXEQWHWMXDXEDSESUQVDUSUTVAXHXEVFVGVHVI
      VJVKVLVMWRWHHOZYTPYQWJHOZPYLXBVOWSWRUUBYTWGHHUNUUAVNWSYQUUCYRWIHHVBVNYJXB
      DEFGWHWMWLWJHHXDWHQZXEWMQZPZXHWLQZXIWJQZPZPZYIWQXAUUJYHWOXPWPUUJXMWKYGWNM
      UUJXDWHXIWJKUUDUUEUUIVPUUFUUGUUHVQZTUUJXHWLXEWMKUUFUUGUUHVRUUDUUEUUIVSZTT
      UUJXEWMXIWJKUULUUKTVTVJWAWEVLWBWCWD $.
  $}

  ${
    $d x y z w v u f $.
    $( Alternate definition of pre-multiplication on positive fractions.
       (Contributed by Jim Kingdon, 13-Sep-2019.) $)
    dfmpq2 $p |- .pQ = { <. <. x , y >. , z >. | ( ( x e. ( N. X. N. ) /\ y
        e. ( N. X. N. ) ) /\ E. w E. v E. u E. f ( ( x = <. w , v >. /\
        y = <. u , f >. ) /\ z = <. ( w .N u ) , ( v .N f ) >. ) ) } $=
      ( cnpi cv c1st cfv cmi co c2nd cop wcel wa wceq coprab wex cxp cmpt2 cmpq
      df-mpt2 df-mpq 1st2nd2 eqeq1d bi2anan9 anbi1d bicomd 4exbidv wb xp1st jca
      simpll simprl oveq12d simplr simprr opeq12d eqeq2d copsex4g syl2an bitr3d
      xp2nd pm5.32i oprabbii 3eqtr4i ) ABHHUAZVIAIZJKZBIZJKZLMZVJNKZVLNKZLMZOZU
      BVJVIPZVLVIPZQZCIZVRRZQZABCSUCWAVJDIZEIZOZRZVLFIZGIZOZRZQZWBWEWILMZWFWJLM
      ZOZRZQZGTFTETDTZQZABCSABCVIVIVRUDABUEWTWDABCWAWSWCWAVKVOOZWGRZVMVPOZWKRZQ
      ZWQQZGTFTETDTZWSWCWAXFWRDEFGWAWRXFWAWMXEWQVSWHXBVTWLXDVSVJXAWGVJHHUFUGVTV
      LXCWKVLHHUFUGUHUIUJUKVSVKHPZVOHPZQVMHPZVPHPZQXGWCULVTVSXHXIVJHHUMVJHHVEUN
      VTXJXKVLHHUMVLHHVEUNWQWCDEFGVKVOVMVPHHWEVKRZWFVORZQZWIVMRZWJVPRZQZQZWPVRW
      BXRWNVNWOVQXRWEVKWIVMLXLXMXQUOXNXOXPUPUQXRWFVOWJVPLXLXMXQURXNXOXPUSUQUTVA
      VBVCVDVFVGVH $.
  $}

  ${
    $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.) $)
    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.) $)
  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 cmi co 1st2nd2 xp1st xp2nd jca
    wceq syl2an breqan12d wb enqbreq mulcompig eqeq2d 3bitrd ) ACCDZEZBUGEZFZAB
    GHAIJZAKJZLZBIJZBKJZLZGHZUKUOMNZULUNMNZSZURUNULMNZSUHUIAUMBUPGACCOBCCOUAUHU
    KCEZULCEZFUNCEZUOCEZFUQUTUBUIUHVBVCACCPACCQZRUIVDVEBCCPZBCCQRUKULUNUOUCTUJU
    SVAURUHVCVDUSVASUIVFVGULUNUDTUEUF $.

  ${
    $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.) $)
    enqer $p |- ~Q Er ( N. X. N. ) $=
      ( vx vy vz vw vv cmi ceq cnpi df-enq mulcompig mulclpi mulasspig wcel w3a
      vu cv co wceq mulcanpig biimpd ecopoverg ) ABCDEOFGHABCDEOIAPZBPZJUBUCKUB
      UCCPZLUBHMUCHMUDHMNUBUCFQUBUDFQRUCUDRUBUCUDSTUA $.
  $}

  $( Equivalence class equality of positive fractions in terms of positive
     integers.  (Contributed by NM, 29-Nov-1995.) $)
  enqeceq $p |- ( ( ( A e. N. /\ B e. N. ) /\ ( C e. N. /\ D e. N. ) ) ->
                ( [ <. A , B >. ] ~Q = [ <. C , D >. ] ~Q <->
                ( A .N D ) = ( B .N C ) ) ) $=
    ( cnpi wcel wa cop ceq wbr cec wceq cmi co cxp wer enqer a1i opelxpi adantr
    erth enqbreq bitr3d ) AEFBEFGZCEFDEFGZGZABHZCDHZIJUGIKUHIKLADMNBCMNLUFUGUHI
    EEOZUIIPUFQRUDUGUIFUEABEESTUAABCDUBUC $.

  ${
    $d x y z w v u $.
    $( The equivalence relation for positive fractions exists.  (Contributed by
       NM, 3-Sep-1995.) $)
    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
      $.
  $}

  $( The equivalence relation for positive fractions is decidable.
     (Contributed by Jim Kingdon, 7-Sep-2019.) $)
  enqdc $p |- ( ( ( A e. N. /\ B e. N. ) /\ ( C e. N. /\ D e. N. ) ) ->
      DECID <. A , B >. ~Q <. C , D >. ) $=
    ( cnpi wcel wa cop ceq wbr wdc cmi co wceq mulclpi pinn nndceq syl2an an42s
    com enqbreq dcbid mpbird ) AEFZBEFZGCEFZDEFZGGZABHCDHIJZKADLMZBCLMZNZKZUDUG
    UEUFUMUDUGGUJEFZUKEFZUMUEUFGADOBCOUNUJTFUKTFUMUOUJPUKPUJUKQRRSUHUIULABCDUAU
    BUC $.

  $( The equivalence relation for positive fractions is decidable.
     (Contributed by Jim Kingdon, 7-Sep-2019.) $)
  enqdc1 $p |- ( ( ( A e. N. /\ B e. N. ) /\ C e. ( N. X. N. ) ) ->
      DECID <. A , B >. ~Q C ) $=
    ( cnpi wcel wa cxp cop ceq wbr wdc c1st cfv xp1st xp2nd jca enqdc sylan2 wb
    c2nd 1st2nd2 breq2d dcbid adantl mpbird ) ADEBDEFZCDDGEZFABHZCIJZKZUHCLMZCT
    MZHZIJZKZUGUFUKDEZULDEZFUOUGUPUQCDDNCDDOPABUKULQRUGUJUOSUFUGUIUNUGCUMUHICDD
    UAUBUCUDUE $.

  ${
    $d x y z w u v $.
    $( The class of positive fractions exists.  (Contributed by NM,
       16-Aug-1995.)  (Revised by Mario Carneiro, 27-Apr-2013.) $)
    nqex $p |- Q. e. _V $=
      ( cnq cnpi cxp ceq cqs cvv df-nqqs niex xpex qsex eqeltri ) ABBCZDEFGLDBB
      HHIJK $.

    $( The empty set is not a positive fraction.  (Contributed by NM,
       24-Aug-1995.)  (Revised by Mario Carneiro, 27-Apr-2013.) $)
    0nnq $p |- -. (/) e. Q. $=
      ( c0 cnq wcel cnpi cxp ceq cqs wne neirr cdm wceq enqer erdm ax-mp elqsn0
      wer mpan mto df-nqqs eleq2i mtbir ) ABCADDEZFGZCZUDAAHZAIFJUBKZUDUEUBFPUF
      LUBFMNUBAFOQRBUCASTUA $.

    $( Positive fraction 'less than' is a relation on positive fractions.
       (Contributed by NM, 14-Feb-1996.)  (Revised by Mario Carneiro,
       27-Apr-2013.) $)
    ltrelnq $p |- <Q C_ ( Q. X. Q. ) $=
      ( vx vy vz vw vv vu cltq cv cnq wcel wa cop ceq cec wceq cmi clti wbr wex
      co copab cxp df-ltnqqs opabssxp eqsstri ) GAHZIJBHZIJKUFCHZDHZLMNOUGEHZFH
      ZLMNOKUHUKPTUIUJPTQRKFSESDSCSZKABUAIIUBABCDEFUCULABIIUDUE $.
  $}

  $( The positive fraction 'one'.  (Contributed by NM, 29-Oct-1995.) $)
  1nq $p |- 1Q e. Q. $=
    ( c1o cop ceq cec cnpi cxp cqs c1q cnq wcel 1pi opelxpi mp2an enqex ecelqsi
    ax-mp df-1nqqs df-nqqs 3eltr4i ) AABZCDZEEFZCGZHITUBJZUAUCJAEJZUEUDKKAAEELM
    UBTCNOPQRS $.

  ${
    $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,
       27-Aug-1995.) $)
    addcmpblnq $p |- ( ( ( ( A e. N. /\ B e. N. ) /\ ( C e. N. /\ D e. N. )
             ) /\ ( ( F e. N. /\ G e. N. ) /\ ( R e. N. /\ S e. N. ) ) ) ->
                ( ( ( A .N D ) = ( B .N C ) /\ ( F .N S ) = ( G .N R ) ) ->
                 <. ( ( A .N G ) +N ( B .N F ) ) , ( B .N G ) >. ~Q
                 <. ( ( C .N S ) +N ( D .N R ) ) , ( D .N S ) >. ) ) $=
      ( vx vy vz cnpi wcel wa cmi co wceq cpli adantl mulclpi distrpig ad2ant2l
      cop ceq wbr w3a simplll simprlr syl2anc simpllr simprll addclpi mulcompig
      cv caovdir2d simplrr mulasspig simprrr caov4d eqtrd oveq1 oveq2 oveqan12d
      oveq12d sylan9eq simplrl simprrl syl3anc adantr eqtr4d syl2an jca anim12i
      wb an42s an4s enqbreq syl mpbird ex ) ALMZBLMZNZCLMZDLMZNZNZGLMZHLMZNZELM
      ZFLMZNZNZNZADOPZBCOPZQZGFOPZHEOPZQZNZAHOPZBGOPZRPZBHOPZUCCFOPZDEOPZRPZDFO
      PZUCUDUEZWOXBNZXKXEXJOPZXFXIOPZQZXLXMWQHFOPZOPZBDOPZWTOPZRPZXNWOXBXMWPXPO
      PZXRWSOPZRPZXTWOXMXCXJOPZXDXJOPZRPYCWOIJKXCXDXJLROIUNZLMZJUNZLMZKUNZLMUFZ
      YFYHYJRPOPYFYHOPZYFYJOPRPQWOYFYHYJUASWOWAWIXCLMZWAWBWFWNUGZWGWHWIWMUHZAHT
      ZUIWOWBWHXDLMZWAWBWFWNUJZWGWHWIWMUKZBGTZUIWFWMXJLMZWCWJWEWLUUAWDWKDFTUBZU
      BYGYINZYFYHRPLMWOYFYHULSUUCYLYHYFOPQWOYFYHUMSZUOWOYDYAYEYBRWOIJKAHDFLOYNY
      OWCWDWEWNUPZUUDYKYLYJOPYFYHYJOPOPQWOYFYHYJUQSZWGWJWKWLURZUUCYLLMWOYFYHTSZ
      USWOIJKBGDFLOYRYSUUEUUDUUFUUGUUHUSVDUTWRXAYAXQYBXSRWPWQXPOVAWSWTXROVBVCVE
      WOXNXTQXBWOXNXFXGOPZXFXHOPZRPZXTWOXFLMZXGLMZXHLMZXNUUKQWOWBWIUULYRYOBHTZU
      IWOWDWLUUMWCWDWEWNVFZUUGCFTZUIWOWEWKUUNUUEWGWJWKWLVGZDETZUIXFXGXHUAVHWOUU
      IXQUUJXSRWOIJKBHCFLOYRYOUUPUUDUUFUUGUUHUSWOIJKBHDELOYRYOUUEUUDUUFUURUUHUS
      VDUTVIVJWOXKXOVNZXBWOXELMZUULNZXILMZUUANZNZUUTWCWJWFWMUVEWCWJNZUVBWFWMNZU
      VDUVFUVAUULWAWIWBWHUVAWAWINYMYQUVAWBWHNYPYTXCXDULVKVOWBWIUULWAWHUUOUBVLUV
      GUVCUUAWDWLWEWKUVCWDWLNUUMUUNUVCWEWKNUUQUUSXGXHULVKVOUUBVLVMVPXEXFXIXJVQV
      RVIVSVT $.

    $( Lemma showing compatibility of multiplication.  (Contributed by NM,
       27-Aug-1995.) $)
    mulcmpblnq $p |- ( ( ( ( A e. N. /\ B e. N. ) /\ ( C e. N. /\ D e. N. )
             ) /\ ( ( F e. N. /\ G e. N. ) /\ ( R e. N. /\ S e. N. ) ) ) ->
                ( ( ( A .N D ) = ( B .N C ) /\ ( F .N S ) = ( G .N R ) ) ->
     <. ( A .N F ) , ( B .N G ) >. ~Q <. ( C .N R ) , ( D .N S ) >. ) ) $=
      ( vx vy vz cmi co wceq wa cnpi wcel mulclpi anim12i an4s cop oveq12 wb cv
      ceq wbr enqbreq simplll simprll simplrr mulcompig adantl mulasspig caov4d
      syl w3a simprrr simpllr simprlr simplrl simprrl eqeq12d bitrd syl5ibr ) A
      DLMZBCLMZNGFLMZHELMZNOAGLMZBHLMZUACELMZDFLMZUAUEUFZAPQZBPQZOZCPQZDPQZOZOZ
      GPQZHPQZOZEPQZFPQZOZOZOZVEVGLMZVFVHLMZNZVEVFVGVHLUBWHVMVIVLLMZVJVKLMZNZWK
      WHVIPQZVJPQZOZVKPQZVLPQZOZOZVMWNUCVPWCVSWFXAVPWCOWQVSWFOWTVNWAVOWBWQVNWAO
      WOVOWBOWPAGRBHRSTVQWDVRWEWTVQWDOWRVRWEOWSCERDFRSTSTVIVJVKVLUGUOWHWLWIWMWJ
      WHIJKAGDFPLVNVOVSWGUHVTWAWBWFUIVPVQVRWGUJIUDZPQZJUDZPQZOZXBXDLMZXDXBLMNWH
      XBXDUKULZXCXEKUDZPQUPXGXILMXBXDXILMLMNWHXBXDXIUMULZVTWCWDWEUQXFXGPQWHXBXD
      RULZUNWHIJKBHCEPLVNVOVSWGURVTWAWBWFUSVPVQVRWGUTXHXJVTWCWDWEVAXKUNVBVCVD
      $.
  $}

  $( Lemma for ~ addpipqqs .  (Contributed by Jim Kingdon, 11-Sep-2019.) $)
  addpipqqslem $p |- ( ( ( A e. N. /\ B e. N. ) /\ ( C e. N. /\ D e. N. ) ) ->
      <. ( ( A .N D ) +N ( B .N C ) ) , ( B .N D ) >. e. ( N. X. N. ) ) $=
    ( cnpi wcel wa cmi co cop cxp mulclpi addclpi syl2an an42s ad2ant2l opelxpi
    cpli syl2anc ) AEFZBEFZGCEFZDEFZGGADHIZBCHIZRIZEFZBDHIZEFZUFUHJEEKFTUCUAUBU
    GTUCGUDEFUEEFUGUAUBGADLBCLUDUEMNOUAUCUITUBBDLPUFUHEEQS $.

  ${
    $d x y z w v u t s f g h a b c d A $.
    $d x y z w v u t s f g h a b c d B $.
    $d x y z w v u t s f g h a b c d C $.
    $d x y z w v u t s f g h a b c d D $.
    $( Addition of positive fractions in terms of positive integers.
       (Contributed by NM, 28-Aug-1995.) $)
    addpipqqs $p |- ( ( ( A e. N. /\ B e. N. ) /\
                     ( C e. N. /\ D e. N. ) ) ->
                ( [ <. A , B >. ] ~Q +Q [ <. C , D >. ] ~Q ) =
                   [ <. ( ( A .N D ) +N ( B .N C ) ) ,
                              ( B .N D ) >. ] ~Q ) $=
      ( vz vu vw vv va vd vb vc cv cmi co wceq cpli weq wa oveq12 vg vs vh cplq
      vt vx vy cplpq cnq ceq cnpi cop addpipqqslem enqex enqer df-enq eqeqan12d
      vf wb an42s dfplpq2 oveqan12d ad2ant2l opeq12d df-plqqs addcmpblnq oviec
      df-nqqs ) EMZFMZNOZGMZHMZNOZPZIMZJMZNOZKMZLMZNOZPZUAMZUBMZNOZUCMZUEMZNOZP
      ZUFUGEGHFUEABCDUHUDUIUJUKURUAUCADNOZBCNOZQOZBDNOZULVLURMZNOZVMVJNOZQOZVMW
      NNOZULVPWFNOZVSWCNOZQOZVSWFNOZULVTWDNOZVQWGNOZQOZVQWDNOZULUBIKLJABCDUMVPV
      SWCWFUMVTVQWGWDUMUNUOUFUGEGHFUPEIRZFJRZGKRZHLRZVOWBUSXGXHSXIXJSVKVRVNWAVI
      VPVJVQNTVLVSVMVTNTUQUTEUARZFUBRZGUCRZHUERZVOWIUSXKXLSXMXNSVKWEVNWHVIWCVJW
      DNTVLWFVMWGNTUQUTUFUGEGHFURVAGIRZHKRZSFUARZURUCRZSSWQXAWRXBXOXRXPXQWQXAPX
      OXRSXPXQSWOWSWPWTQVLVPWNWFNTVMVSVJWCNTVBUTXPXRWRXBPXOXQVMVSWNWFNTVCVDGLRZ
      HJRZSFUERZURUBRZSSWQXEWRXFXSYBXTYAWQXEPXSYBSXTYASWOXCWPXDQVLVTWNWDNTVMVQV
      JWGNTVBUTXTYBWRXFPXSYAVMVQWNWDNTVCVDVLAPZVMBPZSVJCPZWNDPZSSWQWLWRWMYCYFYD
      YEWQWLPYCYFSYDYESWOWJWPWKQVLAWNDNTVMBVJCNTVBUTYDYFWRWMPYCYEVMBWNDNTVCVDUF
      UGEIKLJVEVHVPVSVTVQWGWDWCWFVFVG $.
  $}

  ${
    $d A x y $.  $d B x y $.  $d C y $.  $d D y $.
    $( Multiplication of positive fractions in terms of positive integers.
       (Contributed by Mario Carneiro, 8-May-2013.) $)
    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 wcel c1st cfv cmi co c2nd cop cmpq wceq xp1st mulclpi syl2an
      cvv xp2nd fveq2 cxp wa opexg syl2anc oveq1d opeq12d oveq2d df-mpq ovmpt2g
      cv mpd3an3 ) AEEUAZFZBULFZAGHZBGHZIJZAKHZBKHZIJZLZRFZABMJVANUMUNUBUQEFZUT
      EFZVBUMUOEFUPEFVCUNAEEOBEEOUOUPPQUMUREFUSEFVDUNAEESBEESURUSPQUQUTEEUCUDCD
      ABULULCUJZGHZDUJZGHZIJZVEKHZVGKHZIJZLVAMUOVHIJZURVKIJZLRVEANZVIVMVLVNVOVF
      UOVHIVEAGTUEVOVJURVKIVEAKTUEUFVGBNZVMUQVNUTVPVHUPUOIVGBGTUGVPVKUSURIVGBKT
      UGUFCDUHUIUK $.

    $( Multiplication of positive fractions in terms of positive integers.
       (Contributed by NM, 28-Aug-1995.)  (Revised by Mario Carneiro,
       8-May-2013.) $)
    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 $.
  $}

  ${
    $d x y z w v u t s f g h a b c d A $.
    $d x y z w v u t s f g h a b c d B $.
    $d x y z w v u t s f g h a b c d C $.
    $d x y z w v u t s f g h a b c d D $.
    $( Multiplication of positive fractions in terms of positive integers.
       (Contributed by NM, 28-Aug-1995.) $)
    mulpipqqs $p |- ( ( ( A e. N. /\ B e. N. ) /\
                     ( C e. N. /\ D e. N. ) ) ->
                ( [ <. A , B >. ] ~Q .Q [ <. C , D >. ] ~Q ) =
                   [ <. ( A .N C ) , ( B .N D ) >. ] ~Q ) $=
      ( vz vu vw vv va vd cv cmi co wceq cnpi wcel wa mulclpi weq oveq12d vb vc
      vg vs vh vt vx vy vf cmpq cmq cnq ceq cop opelxpi syl2an an4s enqex enqer
      df-enq simpll simprr simplr simprl eqeq12d dfmpq2 opeq12d df-mqqs df-nqqs
      cxp mulcmpblnq oviec ) EKZFKZLMZGKZHKZLMZNIKZJKZLMZUAKZUBKZLMZNUCKZUDKZLM
      ZUEKZUFKZLMZNUGUHEGHFUFABCDUJUKULUMOUIUCUEACLMZBDLMZUNZVPVNLMZVQUIKZLMZUN
      VSWELMZWBWHLMZUNZWCWILMZVTWFLMZUNZUDIUAUBJAOPZCOPZBOPZDOPZWMOOVJZPZXCXDQW
      KOPWLOPXHXEXFQACRBDRWKWLOOUOUPUQVSOPZWEOPZWBOPZWHOPZWSXGPZXIXJQWQOPWROPXM
      XKXLQVSWERWBWHRWQWROOUOUPUQWCOPZWIOPZVTOPZWFOPZXBXGPZXNXOQWTOPXAOPXRXPXQQ
      WCWIRVTWFRWTXAOOUOUPUQURUSUGUHEGHFUTEISZGUASZQZHUBSZFJSZQZQZVOWAVRWDYEVMV
      SVNVTLXSXTYDVAYAYBYCVBTYEVPWBVQWCLXSXTYDVCYAYBYCVDTVEEUCSZGUESZQZHUFSZFUD
      SZQZQZVOWGVRWJYLVMWEVNWFLYFYGYKVAYHYIYJVBTYLVPWHVQWILYFYGYKVCYHYIYJVDTVEU
      GUHEGHFUIVFGISZHUASZQZFUCSZUIUESZQZQZWNWQWPWRYSVPVSVNWELYMYNYRVAYOYPYQVDT
      YSVQWBWOWHLYMYNYRVCYOYPYQVBTVGGUBSZHJSZQZFUFSZUIUDSZQZQZWNWTWPXAUUFVPWCVN
      WILYTUUAUUEVAUUBUUCUUDVDTUUFVQVTWOWFLYTUUAUUEVCUUBUUCUUDVBTVGVPANZVQBNZQZ
      VNCNZWODNZQZQZWNWKWPWLUUMVPAVNCLUUGUUHUULVAUUIUUJUUKVDTUUMVQBWODLUUGUUHUU
      LVCUUIUUJUUKVBTVGUGUHEIUAUBJVHVIVSWBWCVTWIWFWEWHVKVL $.
  $}

  ${
    $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 positive fractions in terms of positive integers.
       (Contributed by Jim Kingdon, 14-Sep-2019.) $)
    ordpipqqs $p |- ( ( ( A e. N. /\ B e. N. ) /\ ( C e. N. /\ D e. N. ) ) ->
        ( [ <. A , B >. ] ~Q <Q [ <. C , D >. ] ~Q <->
          ( A .N D ) <N ( B .N C ) ) ) $=
      ( vx vy vf cv cmi co clti wbr ceq cnpi wcel wa cop cec wceq adantl vz cnq
      vu vw vv cltq enqex enqer df-nqqs df-ltnqqs enqeceq eqcom syl6bb bi2anan9
      wb oveq12 simplll simprlr simplrr mulcompig w3a mulasspig simprrl mulclpi
      caov4d simpllr simprll simplrl simprrr eqeq12d syl5ibr sylbid ltmpig syld
      caovcld caovord3d brecop ) UAHZUCHZIJZUDHZUEHZIJZKLZADIJZBCIJZKLZEFUAUDUE
      UCABCDMNUBUFUGUHUIEFUAUDUEUCUJVRNOZWANOZPZANOZBNOZPZPZWBNOZVSNOZPZCNOZDNO
      ZPZPZPZVRWAQMRABQMRSZWBVSQMRCDQMRSZPZVTWFIJZWCWEIJZSZWDWGUOXBXEVRBIJZWAAI
      JZSZVSCIJZWBDIJZSZPZXHWNXCXKXAXDXNVRWAABUKXAXDXMXLSXNWBVSCDUKXMXLULUMUNXO
      XHXBXIXLIJZXJXMIJZSXIXJXLXMIUPXBXFXPXGXQXBEFGVRVSBCNIWHWIWMXAUQZWNWOWPWTU
      RZWJWKWLXAUSZEHZNOZFHZNOZPZYAYCIJZYCYAIJSXBYAYCUTTZYBYDGHZNOVAZYFYHIJYAYC
      YHIJIJSXBYAYCYHVBTZWNWQWRWSVCZYEYFNOXBYAYCVDTZVEXBEFGWAWBADNIWHWIWMXAVFZW
      NWOWPWTVGZWJWKWLXAVHZYGYJWNWQWRWSVIZYLVEVJVKVLXBEFGVTWFWCWEKNIYIYAYCKLYHY
      AIJYHYCIJKLUOXBYAYCYHVMTXBEFVRVSNNNIYLXRXSVOXBEFBCNNNIYLXTYKVOXBEFWAWBNNN
      IYLYMYNVOYGXBEFADNNNIYLYOYPVOVPVNVQ $.
  $}

  ${
    $d x y z w A $.  $d x y z w B $.
    $( Closure of addition on positive fractions.  (Contributed by NM,
       29-Aug-1995.) $)
    addclnq $p |- ( ( A e. Q. /\ B e. Q. ) -> ( A +Q B ) e. Q. ) $=
      ( vx vy vz vw cnq wcel wa cplq co cnpi ceq cv cop cec df-nqqs cmi mulclpi
      wceq cxp cqs oveq1 eleq1d oveq2 cpli addpipqqs addclpi an42s ad2ant2l jca
      syl2an opelxpi enqex ecelqsi 3syl eqeltrd 2ecoptocl syl6eleqr ) AGHBGHIAB
      JKZLLUAZMUBZGCNZDNZOMPZENZFNZOMPZJKZVBHAVHJKZVBHUTVBHCDEFABLLMGQVEATVIVJV
      BVEAVHJUCUDVHBTVJUTVBVHBAJUEUDVCLHZVDLHZIVFLHZVGLHZIIZVIVCVGRKZVDVFRKZUFK
      ZVDVGRKZOZMPZVBVCVDVFVGUGVOVRLHZVSLHZIVTVAHWAVBHVOWBWCVKVNVLVMWBVKVNIVPLH
      VQLHWBVLVMIVCVGSVDVFSVPVQUHULUIVLVNWCVKVMVDVGSUJUKVRVSLLUMVAVTMUNUOUPUQUR
      QUS $.

    $( Closure of multiplication on positive fractions.  (Contributed by NM,
       29-Aug-1995.) $)
    mulclnq $p |- ( ( A e. Q. /\ B e. Q. ) -> ( A .Q B ) e. Q. ) $=
      ( vx vy vz vw cnq wcel wa cmq co cnpi ceq cop cec df-nqqs wceq eleq1d cmi
      cv cxp oveq1 oveq2 mulpipqqs mulclpi anim12i an4s opelxpi ecelqsi eqeltrd
      cqs enqex 3syl 2ecoptocl syl6eleqr ) AGHBGHIABJKZLLUAZMUKZGCTZDTZNMOZETZF
      TZNMOZJKZURHAVDJKZURHUPURHCDEFABLLMGPVAAQVEVFURVAAVDJUBRVDBQVFUPURVDBAJUC
      RUSLHZUTLHZIVBLHZVCLHZIIZVEUSVBSKZUTVCSKZNZMOZURUSUTVBVCUDVKVLLHZVMLHZIZV
      NUQHVOURHVGVIVHVJVRVGVIIVPVHVJIVQUSVBUEUTVCUEUFUGVLVMLLUHUQVNMULUIUMUJUNP
      UO $.
  $}

  ${
    $d A a v w x $.
    $( Decomposition of a positive fraction into numerator and denominator.
       Lemma for ~ dmaddpq .  (Contributed by Jim Kingdon, 15-Sep-2019.) $)
    dmaddpqlem $p |- ( x e. Q. -> E. w E. v x = [ <. w , v >. ] ~Q ) $=
      ( va cv cop ceq cec wceq wex cnpi cxp cqs cnq wcel wrex elqsi 2eximi syl
      wa elxpi simpl anim1i 19.41vv sylibr simpr eceq1 adantr rexlimiva df-nqqs
      eqtrd eleq2s ) AEZBEZCEZFZGHZIZCJBJZUMKKLZGMZNUMVAOUMDEZGHZIZDUTPUSDUTUMG
      QVDUSDUTVBUTOZVDTZVBUPIZVDTZCJBJZUSVFVGCJBJZVDTVIVEVJVDVEVGUNKOUOKOTZTZCJ
      BJVJBCVBKKUAVLVGBCVGVKUBRSUCVGVDBCUDUEVHURBCVHUMVCUQVGVDUFVGVCUQIVDVBUPGU
      GUHUKRSUISUJUL $.

    $( Decomposition of a positive fraction into numerator and denominator.
       Similar to ~ dmaddpqlem but also shows that the numerator and
       denominator are positive integers.  (Contributed by Jim Kingdon,
       20-Sep-2019.) $)
    nqpi $p |- ( A e. Q. ->
        E. w E. v ( ( w e. N. /\ v e. N. ) /\ A = [ <. w , v >. ] ~Q ) ) $=
      ( va cv cnpi wcel cop ceq cec wceq wex cxp cqs cnq wrex elqsi elxpi syl
      wa anim1i 19.41vv sylibr simplr simpr eceq1 ad2antrr jca 2eximi rexlimiva
      eqtrd df-nqqs eleq2s ) AEZFGBEZFGTZCUNUOHZIJZKZTZBLALZCFFMZINZOCVCGCDEZIJ
      ZKZDVBPVADVBCIQVFVADVBVDVBGZVFTZVDUQKZUPTZVFTZBLALZVAVHVJBLALZVFTVLVGVMVF
      ABVDFFRUAVJVFABUBUCVKUTABVKUPUSVIUPVFUDVKCVEURVJVFUEVIVEURKUPVFVDUQIUFUGU
      KUHUISUJSULUM $.
  $}

  ${
    $d x y z v w u f $.
    $( Domain of addition on positive fractions.  (Contributed by NM,
       24-Aug-1995.) $)
    dmaddpq $p |- dom +Q = ( Q. X. Q. ) $=
      ( vx vy vw vv vu vf vz cplq cdm cv cnq wcel copab ceq cec wceq wex sylibr
      wa cvv cxp cop cplpq co coprab dmoprab df-plqqs dmaddpqlem anim12i ee4anv
      dmeqi enqex ecexg ax-mp isseti ax-ia3 eximdv mpi 2eximi exrot3 syl 19.42v
      pm4.71i bitr4i opabbii 3eqtr4i df-xp eqtr4i ) HIZAJZKLZBJZKLZSZABMZKKUAVN
      VJCJDJUBZNOPZVLEJFJUBZNOPZSZGJVPVRUCUDZNOZPZSZFQEQZDQCQZSZABGUEZIWGGQZABM
      VIVOWGABGUFHWHABGCDEFUGUKVNWIABVNVNWFGQZSWIVNWJVNVTFQEQZDQCQZWJVNVQDQCQZV
      SFQEQZSWLVKWMVMWNACDUHBEFUHUIVQVSCDEFUJRWLWEGQZDQCQWJWKWOCDWKWDGQZFQEQWOV
      TWPEFVTWCGQWPGWBNTLWBTLULWATNUMUNUOVTWCWDGVTWCUPUQURUSWDGEFUTRUSWEGCDUTRV
      AVCVNWFGVBVDVEVFABKKVGVH $.

    $( Domain of multiplication on positive fractions.  (Contributed by NM,
       24-Aug-1995.) $)
    dmmulpq $p |- dom .Q = ( Q. X. Q. ) $=
      ( vx vy vw vv vu vf vz cmq cdm cv cnq wcel wa ceq cec wceq wex sylibr cvv
      copab cxp cop cmpq coprab dmoprab df-mqqs dmeqi dmaddpqlem anim12i ee4anv
      co enqex ecexg ax-mp isseti ax-ia3 eximdv mpi 2eximi exrot3 19.42v bitr4i
      syl pm4.71i opabbii 3eqtr4i df-xp eqtr4i ) HIZAJZKLZBJZKLZMZABTZKKUAVNVJC
      JDJUBZNOPZVLEJFJUBZNOPZMZGJVPVRUCUKZNOZPZMZFQEQZDQCQZMZABGUDZIWGGQZABTVIV
      OWGABGUEHWHABGCDEFUFUGVNWIABVNVNWFGQZMWIVNWJVNVTFQEQZDQCQZWJVNVQDQCQZVSFQ
      EQZMWLVKWMVMWNACDUHBEFUHUIVQVSCDEFUJRWLWEGQZDQCQWJWKWOCDWKWDGQZFQEQWOVTWP
      EFVTWCGQWPGWBNSLWBSLULWASNUMUNUOVTWCWDGVTWCUPUQURUSWDGEFUTRUSWEGCDUTRVCVD
      VNWFGVAVBVEVFABKKVGVH $.
  $}

  ${
    $d A w x y z $.  $d B w z $.
    $( Addition of positive fractions is commutative.  (Contributed by Jim
       Kingdon, 15-Sep-2019.) $)
    addcomnqg $p |- ( ( A e. Q. /\ B e. Q. ) -> ( A +Q B ) = ( B +Q A ) ) $=
      ( vx vy vz vw cnq cv cmi co cpli cplq cnpi addpipqqs wcel wa wceq mulclpi
      mulcompig ancoms ceq df-nqqs oveqan12d an42s ad2ant2rl ad2ant2lr ad2ant2l
      addcompig syl2anc eqtrd ecovicom ) CDEFABGCHZFHZIJZDHZEHZIJZKJZLUAMUOUMIJ
      ZUPUOIJZUMULIJZKJZUMUOIJZUBULUOUPUMNUPUMULUONULMOZUOMOZPUPMOZUMMOZPPZURVA
      UTKJZVBVDVGVEVFURVIQVDVGPVEVFPUNVAUQUTKULUMSUOUPSUCUDVHVAMOZUTMOZVIVBQVDV
      GVJVEVFVGVDVJUMULRTUEVEVFVKVDVGVFVEVKUPUORTUFVAUTUHUIUJVEVGUSVCQVDVFUOUMS
      UGUK $.
  $}

  ${
    $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 $.
    $( Addition of positive fractions is associative.  (Contributed by Jim
       Kingdon, 16-Sep-2019.) $)
    addassnqg $p |- ( ( A e. Q. /\ B e. Q. /\ C e. Q. ) ->
        ( ( A +Q B ) +Q C ) = ( A +Q ( B +Q C ) ) ) $=
      ( vx cv cmi co cnpi cpli addpipqqs wcel mulclpi addclpi syl2anc mulcompig
      wa wceq adantl ancoms mulasspig vy vz vw vv vu vf vg cnq cplq ceq df-nqqs
      vh ad2ant2rl ad2ant2lr ad2ant2l simp1l simp2r simp3r simp1r simp2l simp3l
      jca addasspig syl3anc distrpig 3coml sylan2 3impa 3adant2 3adant1 oveq12d
      w3a 3eqtr3d caovdilemd 3adant1l 3adant2l 3adant3r oveq2d 3eqtr4d 3adant3l
      ecoviass ) DUAUBUCUDUEABCUHUIUCEZUEEZFGZUJHDEZWBFGZUAEZUBEZFGZIGZWGWBFGZW
      JWCFGZWKUDEZFGZIGZWKWCFGZWEWDFGZWGWHWCFGZWBWMFGZIGZFGZIGZWGWDFGZWTUKWEWGW
      HWBJWHWBWMWCJWJWKWMWCJWEWGWTWDJWEHKZWGHKZPZWHHKZWBHKZPZPZWJHKZWKHKZXJWFHK
      ZWIHKZXKXDXHXMXEXGWEWBLUMXEXGXNXDXHWGWHLUNWFWIMNXEXHXLXDXGWGWBLUOVBXIWMHK
      ZWCHKZPZPZWTHKZWDHKZXRWRHKZWSHKZXSXGXPYAXHXOWHWCLZUMXHXOYBXGXPWBWMLZUNWRW
      SMNXHXPXTXGXOWBWCLZUOVBXFXIXQVLZWQWGWRFGZIGZWGWSFGZIGZWQYGYIIGZIGZWOXBYFW
      QHKZYGHKZYIHKZYJYLQYFXDXTYMXDXEXIXQUPZYFXHXPXTXFXGXHXQUQZXFXIXOXPURZYENWE
      WDLNYFXEYAYNXDXEXIXQUSZYFXGXPYAXFXGXHXQUTZYRYCNZWGWRLNYFXEYBYOYSYFXHXOYBY
      QXFXIXOXPVAYDNZWGWSLNWQYGYIVCVDYFWLYHWNYIIYFUFUGULWEWGWBWHHIFWCUFEZHKZUGE
      ZHKZPZUUCUUEFGZUUEUUCFGQYFUUCUUEORUUDUUFULEZHKZVLZUUCUUEIGZUUIFGZUUCUUIFG
      ZUUEUUIFGZIGZQYFUUKUUIUULFGZUUIUUCFGZUUIUUEFGZIGZUUMUUPUUJUUDUUFUUQUUTQUU
      IUUCUUEVEVFUUDUUFUUJUUQUUMQZUUJUUGUVAUUGUUJUULHKUVAUUCUUEMUUIUULOVGSVHUUK
      UURUUNUUSUUOIUUDUUJUURUUNQZUUFUUJUUDUVBUUIUUCOSVIUUFUUJUUSUUOQZUUDUUJUUFU
      VCUUIUUEOSVJVKVMRUUKUUHUUIFGUUCUUOFGQYFUUCUUEUUITRUUGUUHHKYFUUCUUELRYPYSY
      QYTYRVNXFXIXOWNYIQZXPXFXHXOUVDXGXEXHXOUVDXDWGWBWMTVOVPVQVKYFXAYKWQIYFXEYA
      YBXAYKQYSUUAUUBWGWRWSVEVDVRVSXFXIXPWPXCQZXOXFXHXPUVEXGXEXHXPUVEXDWGWBWCTV
      OVPVTWA $.
  $}

  ${
    $d x y z w A $.  $d x y z w B $.
    $( Multiplication of positive fractions is commutative.  (Contributed by
       Jim Kingdon, 17-Sep-2019.) $)
    mulcomnqg $p |- ( ( A e. Q. /\ B e. Q. ) -> ( A .Q B ) = ( B .Q A ) ) $=
      ( vx vy vz vw cnq cv cmi co cmq ceq cnpi df-nqqs mulpipqqs wcel mulcompig
      wceq ad2ant2r ad2ant2l ecovicom ) CDEFABGCHZEHZIJZKLMDHZFHZIJZUCUBIJZUFUE
      IJZNUBUEUCUFOUCUFUBUEOUBMPZUCMPZUDUHRUEMPZUFMPZUBUCQSULUMUGUIRUJUKUEUFQTU
      A $.
  $}

  ${
    $d x y z w v u A $.  $d x y z w v u B $.  $d x y z w v u C $.
    $( Multiplication of positive fractions is associative.  (Contributed by
       Jim Kingdon, 17-Sep-2019.) $)
    mulassnqg $p |- ( ( A e. Q. /\ B e. Q. /\ C e. Q. ) ->
        ( ( A .Q B ) .Q C ) = ( A .Q ( B .Q C ) ) ) $=
      ( vx vy vz vw vv vu cv cmi co cnpi mulpipqqs wa mulclpi ad2ant2r ad2ant2l
      wcel jca cnq cmq ceq df-nqqs 3adant1r 3adant2r 3adant3r 3adant1l 3adant2l
      wceq mulasspig 3adant3l ecoviass ) DEFGHIABCUAUBGJZIJZKLZUCMDJZFJZKLZEJZU
      NKLZUSHJZKLZVAUOKLZUQURVBKLZKLZUTUPKLZVEUDUQUTURUNNURUNVBUONUSVAVBUONUQUT
      VEUPNUQMSZUTMSZOZURMSZUNMSZOZOUSMSZVAMSZVHVKVNVIVLUQURPQVIVLVOVHVKUTUNPRT
      VMVBMSZUOMSZOOVEMSZUPMSZVKVPVRVLVQURVBPQVLVQVSVKVPUNUOPRTVJVMVPVCVFUJZVQV
      JVKVPVTVLVHVKVPVTVIUQURVBUKUEUFUGVJVMVQVDVGUJZVPVJVLVQWAVKVIVLVQWAVHUTUNU
      OUKUHUIULUM $.
  $}

  ${
    $d A x y z $.  $d B x y z $.  $d C x y z $.
    $( Lemma for distributive law: cancellation of common factor.  (Contributed
       by NM, 2-Sep-1995.)  (Revised by Mario Carneiro, 8-May-2013.) $)
    mulcanenq $p |- ( ( A e. N. /\ B e. N. /\ C e. N. ) ->
      <. ( A .N B ) , ( A .N C ) >. ~Q <. B , C >. ) $=
      ( vx vy vz cnpi wcel w3a cmi co cop ceq wbr wceq simp1 cv adantl mulclpi
      wa simp2 simp3 mulcompig mulasspig caov32d anim12i simpr an4s jca enqbreq
      wb 3impdi syl mpbird ) AGHZBGHZCGHZIZABJKZACJKZLBCLMNZUSCJKUTBJKOZURDEFAB
      CGJUOUPUQPUOUPUQUAUOUPUQUBDQZGHZEQZGHZTVCVEJKZVEVCJKOURVCVEUCRVDVFFQZGHIV
      GVHJKVCVEVHJKJKOURVCVEVHUDRUEURUSGHZUTGHZTZUPUQTZTZVAVBUKUOUPUQVMUOUPTZUO
      UQTZTVKVLVNVIVOVJABSACSUFUOUOUPUQVLUOUOTVLUGUHUIULUSUTBCUJUMUN $.
  $}

  $( Lemma for distributive law: cancellation of common factor.  (Contributed
     by Jim Kingdon, 17-Sep-2019.) $)
  mulcanenqec $p |- ( ( A e. N. /\ B e. N. /\ C e. N. ) ->
      [ <. ( A .N B ) , ( A .N C ) >. ] ~Q = [ <. B , C >. ] ~Q ) $=
    ( cnpi wcel w3a cmi co cop ceq cxp wer enqer a1i mulcanenq erthi ) ADEBDECD
    EFZABGHACGHIBCIJDDKZRJLQMNABCOP $.

  ${
    $d A u v w x y z $.  $d B u v w x y z $.  $d C u v w x y z $.
    $d f g h u v w x y z $.
    $( Multiplication of positive fractions is distributive.  (Contributed by
       Jim Kingdon, 17-Sep-2019.) $)
    distrnqg $p |- ( ( A e. Q. /\ B e. Q. /\ C e. Q. ) ->
        ( A .Q ( B +Q C ) ) = ( ( A .Q B ) +Q ( A .Q C ) ) ) $=
      ( vf vg vh ceq cnpi cv cmi co cpli wcel cop cec w3a wceq mulclpi adantl
      wa vx vy vz vw vv vu cnq cplq cmq df-nqqs addpipqqs mulpipqqs jca anim12i
      simpl an12 3anass bitr4i sylib an4s mulcanenqec syl eqtr4d addclpi syl2an
      an42s ad2ant2l an42 anbi2i 3bitr4i ancoms distrpig syl3an simp1r 3ad2ant2
      simp1l 3ad2ant3 syl2anc syl3anc oveq1d adantr simpll simplr simprl simprr
      mulasspig mulcompig caov4d eqtr3d 3adant3 3adant2 oveq12d 3eqtr3d ecovidi
      sylbir ) UAUBUCUDUEUFABCUGUHGHUIUBIZUAIZUCIZUFIZJKZUDIZUEIZJKZLKZJKZJKZWP
      WPXAWSJKZJKZJKZWQWRJKZWPWSJKZJKZWPXAJKZWQXBJKZJKZLKZXMXKJKZXDXGXJXMXNXKUJ
      WRXAXBWSUKWQHMZWPHMZTZXDHMZXGHMZTTZWQWPNGOXDXGNGOUIKXEXHNGOZXFXINGOZWQWPX
      DXGULYCXSXEHMZXHHMZPZYEYDQXRYAXSYBYHXRYATZXSYBTZTYFXSYGTZTZYHYIYFYJYKWQXD
      RYJXSYGXSYBUOWPXGRUMUNYLXSYFYGTTYHYFXSYGUPXSYFYGUQURUSUTWPXEXHVAVBVCWQWPW
      RXAULWQWPXBWSULXJXMXNXKUKWRHMZXAHMZTZXBHMZWSHMZTZTZYAYBYMYQYNYPYAYMYQTZWT
      HMZXCHMZYAYNYPTZWRWSRZXAXBRZWTXCVDZVEVFYNYQYBYMYPXAWSRZVGUMXRYMXSYNXJHMZX
      MHMZTXRYMTUUHXSYNTUUIWQWRRWPXARUNUTXRYPXSYQXNHMZXKHMZTXRYPTUUJXSYQTUUKWQX
      BRWPWSRUNUTXTYOYRPZXTYTUUCPZXFXPQXTYTUUCTZTXTYSTUUMUULUUNYSXTYMYQYNYPVHVI
      XTYTUUCUQXTYOYRUQVJZUUMWPWQJKZXDJKZUUPWTJKZUUPXCJKZLKZXFXPXTUUPHMZYTUUAUU
      CUUBUUQUUTQXSXRUVAWPWQRVKUUDUUEUUPWTXCVLVMUUMXSXRYAUUQXFQXRXSYTUUCVNZXRXS
      YTUUCVPUUMUUAUUBYAYTXTUUAUUCUUDVOUUCXTUUBYTUUEVQUUFVRWPWQXDWFVSUUMUURXLUU
      SXOLXTYTUURXLQUUCXTYTTZWQWPJKZWTJKZUURXLXTUVEUURQYTXTUVDUUPWTJWQWPWGVTWAU
      VCDEFWQWPWRWSHJXRXSYTWBXRXSYTWCXTYMYQWDDIZHMZEIZHMZTZUVFUVHJKZUVHUVFJKQZU
      VCUVFUVHWGZSUVGUVIFIZHMPZUVKUVNJKUVFUVHUVNJKJKQZUVCUVFUVHUVNWFZSXTYMYQWEZ
      UVJUVKHMZUVCUVFUVHRZSWHWIWJXTUUCUUSXOQYTXTUUCTZDEFWPWQXAXBHJXRXSUUCWCXRXS
      UUCWBXTYNYPWDZUVJUVLUWAUVMSUVOUVPUWAUVQSXTYNYPWEUVJUVSUWAUVTSWHWKWLWMWOUU
      LUUMXIXQQUUOUUMWPWPJKXGJKZXIXQUUMXSXSYBUWCXIQUVBUVBUUMYNYQYBXTUUCYNYTUWBW
      KZXTYTYQUUCUVRWJZUUGVRWPWPXGWFVSUUMDEFWPWPXAWSHJUVBUVBUWDUVJUVLUUMUVMSUVO
      UVPUUMUVQSUWEUVJUVSUUMUVTSWHWIWOWN $.
  $}

  $( The equivalence class of ratio 1.  (Contributed by NM, 4-Mar-1996.) $)
  1qec $p |- ( A e. N. -> 1Q = [ <. A , A >. ] ~Q ) $=
    ( cnpi wcel c1q c1o cop ceq cec df-1nqqs cmi co wceq mulcanenqec mp3an23 wa
    1pi mulidpi jca opeq12 eceq1 3syl eqtr3d syl5eq ) ABCZDEEFGHZAAFZGHZIUDAEJK
    ZUHFZGHZUEUGUDEBCZUKUJUELPPAEEMNUDUHALZULOUIUFLUJUGLUDULULAQZUMRUHUHAASUIUF
    GTUAUBUC $.

  ${
    $d x y A $.
    $( Multiplication identity element for positive fractions.  (Contributed by
       NM, 3-Mar-1996.) $)
    mulidnq $p |- ( A e. Q. -> ( A .Q 1Q ) = A ) $=
      ( vx vy cv cop ceq cec c1q cmq co wceq cnpi cnq df-nqqs c1o cmi mulcompig
      wcel 1pi mpan oveq1 id eqeq12d wa df-1nqqs oveq2i mulpipqqs syl5eq adantr
      mpanr12 adantl opeq12d eceq1d mulcanenqec mp3an1 3eqtr2d ecoptocl ) BDZCD
      ZEFGZHIJZUTKAHIJZAKBCALLFMNUTAKZVAVBUTAUTAHIUAVCUBUCURLRZUSLRZUDZVAUROPJZ
      USOPJZEZFGZOURPJZOUSPJZEZFGZUTVFVAUTOOEFGZIJZVJHVOUTIUEUFVFOLRZVQVPVJKSSU
      RUSOOUGUJUHVFVMVIFVFVKVGVLVHVDVKVGKZVEVQVDVRSOURQTUIVEVLVHKZVDVQVEVSSOUSQ
      TUKULUMVQVDVEVNUTKSOURUSUNUOUPUQ $.
  $}

  ${
    $d x y z A $.
    $( Existence of positive fraction reciprocal.  (Contributed by Jim Kingdon,
       20-Sep-2019.) $)
    recexnq $p |- ( A e. Q. -> E. y ( y e. Q. /\ ( A .Q y ) = 1Q ) ) $=
      ( vx vz cv cnq wcel cop ceq cec cmq co c1q wceq wa wex df-nqqs eqeq1d syl
      cnpi oveq1 anbi2d exbidv cxp cqs opelxpi ancoms enqex syl6eleqr mulcompig
      ecelqsi cmi opeq2d eceq1d mulclpi 1qec mulpipqqs an42s 3eqtr4rd jca eleq1
      anidms oveq2 anbi12d spcegv sylc ecoptocl ) AEZFGZCEZDEZHIJZVHKLZMNZOZAPZ
      VIBVHKLZMNZOZAPCDBTTIFQVLBNZVOVSAVTVNVRVIVTVMVQMVLBVHKUARUBUCVJTGZVKTGZOZ
      VKVJHZIJZFGZWFVLWEKLZMNZOZVPWCWETTUDZIUEZFWCWDWJGZWEWKGWBWAWLVKVJTTUFUGWJ
      WDIUHUKSQUIZWCWFWHWMWCVJVKULLZWNHZIJZWNVKVJULLZHZIJZMWGWCWOWRIWCWNWQWNVJV
      KUJUMUNWCWNTGMWPNVJVKUOWNUPSWCWGWSNZWAWBWBWAWTVJVKVKVJUQURVBUSUTVOWIAWEFV
      HWENZVIWFVNWHVHWEFVAXAVMWGMVHWEVLKVCRVDVEVFVG $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y z w v $.
    $( Relationship between reciprocal and multiplication on positive
       fractions.  (Contributed by Jim Kingdon, 19-Sep-2019.) $)
    recmulnqg $p |- ( ( A e. Q. /\ B e. Q. ) ->
      ( ( *Q ` A ) = B <-> ( A .Q B ) = 1Q ) ) $=
      ( vy vx vz vw vv cnq wcel wa crq cfv wceq cmq co c1q oveq1 eqeq1d copab
      cv anbi2d eleq1 oveq2 anbi12d wex wmo weu recexnq 1nq mulcomnqg mulassnqg
      mulidnq caovimo eu5 sylanbrc w3a df-rq 3anass opabbii eqtri fvopab3g ibar
      wb adantl bitr4d ) AHIZBHIZJAKLBMVGABNOZPMZJZVICTZHIZDTZVKNOZPMZJZVLAVKNO
      ZPMZJVJDCABHHKVMAMZVOVRVLVSVNVQPVMAVKNQRUAVKBMZVLVGVRVIVKBHUBVTVQVHPVKBAN
      UCRUDVMHIZVPCUEVPCUFVPCUGCVMUHEFGCVMPHNUIETZFTZUJWBWCGTUKWBULUMVPCUNUOKWA
      VLVOUPZDCSWAVPJZDCSDCUQWDWEDCWAVLVOURUSUTVAVGVIVJVCVFVGVIVBVDVE $.
  $}

  ${
    $d A y $.
    $( Closure law for positive fraction reciprocal.  (Contributed by NM,
       6-Mar-1996.)  (Revised by Mario Carneiro, 8-May-2013.) $)
    recclnq $p |- ( A e. Q. -> ( *Q ` A ) e. Q. ) $=
      ( vy cnq wcel cv cmq co c1q wceq wa wex crq cfv recexnq recmulnqg biimpar
      wi eleq1a ad2antlr mpd expl exlimdv ) ACDZBEZCDZAUDFGHIZJZBKALMZCDZBANUCU
      GUIBUCUEUFUIUCUEJZUFJUHUDIZUIUJUKUFAUDOPUEUKUIQUCUFUDCUHRSTUAUBT $.
  $}

  $( A positive fraction times its reciprocal is 1.  (Contributed by NM,
     6-Mar-1996.)  (Revised by Mario Carneiro, 8-May-2013.) $)
  recidnq $p |- ( A e. Q. -> ( A .Q ( *Q ` A ) ) = 1Q ) $=
    ( cnq wcel crq cfv cmq co c1q wceq recclnq wa eqid recmulnqg mpbii mpdan )
    ABCZADEZBCZAQFGHIZAJPRKQQISQLAQMNO $.

  $( Reciprocal of reciprocal of positive fraction.  (Contributed by NM,
     26-Apr-1996.)  (Revised by Mario Carneiro, 29-Apr-2013.) $)
  recrecnq $p |- ( A e. Q. -> ( *Q ` ( *Q ` A ) ) = A ) $=
    ( cnq wcel crq cfv wceq cmq c1q recclnq mulcomnqg mpancom recidnq recmulnqg
    co eqtrd wb mpbird ) ABCZADEZDEAFZSAGNZHFZRUAASGNZHSBCZRUAUCFAIZSAJKALOUDRT
    UBPUESAMKQ $.

  $( Reciprocal of positive fraction one.  (Contributed by Jim Kingdon,
     29-Dec-2019.) $)
  rec1nq $p |- ( *Q ` 1Q ) = 1Q $=
    ( c1q crq cfv cmq co cnq wcel wceq 1nq recclnq ax-mp mulcomnqg mulidnq mp2b
    mp2an recidnq 3eqtr3i ) ABCZADEZARDEZRARFGZAFGZSTHUBUAIAJZKIRALOUBUASRHIUCR
    MNUBTAHIAPKQ $.

  ${
    $d A u v w z $.  $d B u v $.
    $( Trichotomy for positive fractions.  (Contributed by Jim Kingdon,
       21-Sep-2019.) $)
    nqtri3or $p |- ( ( A e. Q. /\ B e. Q. ) ->
        ( A <Q B \/ A = B \/ B <Q A ) ) $=
      ( vz vw vu vv cv cop ceq cltq wbr wceq w3o cnpi 3orbi123d wcel wa co clti
      cmi cec cnq df-nqqs breq1 eqeq1 breq2 mulclpi ad2ant2rl ad2ant2lr syl2anc
      eqeq2 pitri3or ordpipqqs enqeceq ancoms mulcompig bitr4d mpbird 2ecoptocl
      wb breq12d ) CGZDGZHIUAZEGZFGZHIUAZJKZVDVGLZVGVDJKZMZAVGJKZAVGLZVGAJKZMAB
      JKZABLZBAJKZMCDEFABNNIUBUCVDALVHVLVIVMVJVNVDAVGJUDVDAVGUEVDAVGJUFOVGBLVLV
      OVMVPVNVQVGBAJUFVGBAUKVGBAJUDOVBNPZVCNPZQZVENPZVFNPZQZQZVKVBVFTRZVCVETRZS
      KZWEWFLZWFWESKZMZWDWENPZWFNPZWJVRWBWKVSWAVBVFUGUHVSWAWLVRWBVCVEUGUIWEWFUL
      UJWDVHWGVIWHVJWIVBVCVEVFUMVBVCVEVFUNWDVJVEVCTRZVFVBTRZSKZWIWCVTVJWOUTVEVF
      VBVCUMUOWDWFWMWEWNSVSWAWFWMLVRWBVCVEUPUIVRWBWEWNLVSWAVBVFUPUHVAUQOURUS $.
  $}

  ${
    $d A w x y z $.  $d B w x y z $.
    $( Less-than for positive fractions is decidable.  (Contributed by Jim
       Kingdon, 12-Dec-2019.) $)
    ltdcnq $p |- ( ( A e. Q. /\ B e. Q. ) -> DECID A <Q B ) $=
      ( vx vy vz vw cnq wcel wa cv cnpi cop ceq cec wceq wex cltq wbr wdc nqpi
      anim12i ee4anv sylibr co clti mulclpi ltdcpi syl2an an42s ordpipqqs dcbid
      cmi mpbird ad2ant2r wb breq12 ad2ant2l exlimivv syl ) AGHZBGHZIZCJZKHZDJZ
      KHZIZAVCVELMNZOZIZEJZKHZFJZKHZIZBVKVMLMNZOZIZIZFPEPZDPCPZABQRZSZVBVJDPCPZ
      VRFPEPZIWAUTWDVAWECDATEFBTUAVJVRCDEFUBUCVTWCCDVSWCEFVSWCVHVPQRZSZVGVOWGVI
      VQVGVOIZWGVCVMULUDZVEVKULUDZUERZSZVDVNVFVLWLVDVNIWIKHWJKHWLVFVLIVCVMUFVEV
      KUFWIWJUGUHUIWHWFWKVCVEVKVMUJUKUMUNVSWBWFVIVQWBWFUOVGVOAVHBVPQUPUQUKUMURU
      RUS $.
  $}

  ${
    $d a b c d e f x y z w $.
    $( 'Less than' is a strict ordering on positive fractions.  (Contributed by
       NM, 19-Feb-1996.)  (Revised by Mario Carneiro, 4-May-2013.) $)
    ltsonq $p |- <Q Or Q. $=
      ( vx vy vz cnq cltq wtru cv wcel wbr ceq cnpi wceq wa cmi co clti mulclpi
      wb adantl syl2anc vw va vb vc vd ve vf wor cop cec df-nqqs breq12d notbid
      wn ltsopi ltrelpi soirri ordpipqqs anidms mulcompig breq1d bitrd ecoptocl
      id mtbiri w3a wi breq1 anbi1d imbi12d breq2 anbi12d imbi1d anbi2d 3adant3
      simp1l simp2r simp1r simp2l simp3r ltmpig syl3anc adantrr breqtrd 3adant1
      biimpa adantr simp3l adantrl sotri mulasspig caov411d eqtrd caov4d oveq1d
      caovcomd mpbird 3adant2 ex 3ecoptocl ispod w3o nqtri3or issod trud ) DEUH
      FABDEFABCDEAGZDHZXFXFEIZUNZFCGZUAGZUIJUJZXLEIZUNXICUAXFKKJDUKXLXFLZXMXHXN
      XLXFXLXFEXNVDZXOULUMXJKHZXKKHMZXMXKXJNOZXRPIZXRPKUOUPUQXQXMXJXKNOZXRPIZXS
      XQXMYARXJXKXJXKURUSXQXTXRXRPXJXKUTVAVBVEVCSXGBGZDHZXJDHVFXFYBEIZYBXJEIZMZ
      XFXJEIZVGZFUBGZUCGZUIJUJZUDGZUEGZUIJUJZEIZYNUFGZUGGZUIJUJZEIZMZYKYREIZVGX
      FYNEIZYSMZXFYREIZVGYDYBYREIZMZUUDVGYHUBUCUDUEUFUGXFYBXJKJDUKYKXFLZYTUUCUU
      AUUDUUGYOUUBYSYKXFYNEVHVIYKXFYREVHVJYNYBLZUUCUUFUUDUUHUUBYDYSUUEYNYBXFEVK
      YNYBYREVHVLVMYRXJLZUUFYFUUDYGUUIUUEYEYDYRXJYBEVKVNYRXJXFEVKVJYIKHZYJKHZMZ
      YLKHZYMKHZMZYPKHZYQKHZMZVFZYTUUAUUSYTMZUUAYIYQNOZYJYPNOZPIZUUTUVCYLYMNOZU
      VANOZUVDUVBNOZPIZUUTUVGYLYQNOZYIYMNOZNOZYJYLNOZYMYPNOZNOZPIZUUTUVJUVKUVHN
      OZPIUVOUVMPIZUVNUUTUVJUVHUVKNOZUVOPUUSYOUVJUVQPIZYSUUSYOUVRUUSYOUVIUVKPIZ
      UVRUULUUOYOUVSRUURYIYJYLYMURVOUUSUVIKHZUVKKHZUVHKHZUVSUVRRUUSUUJUUNUVTUUJ
      UUKUUOUURVPZUULUUMUUNUURVQZYIYMQTZUUSUUKUUMUWAUUJUUKUUOUURVRZUULUUMUUNUUR
      VSZYJYLQTZUUSUUMUUQUWBUWGUULUUOUUPUUQVTZYLYQQTZUVIUVKUVHWAWBVBWFWCUUSUVQU
      VOLZYTUUSUWBUWAUWKUWJUWHUVHUVKUTTWGWDUUSYSUVPYOUUSYSUVPUUSYSUVHUVLPIZUVPU
      UOUURYSUWLRUULYLYMYPYQURWEUUSUWBUVLKHZUWAUWLUVPRUWJUUSUUNUUPUWMUWDUULUUOU
      UPUUQWHZYMYPQTUWHUVHUVLUVKWAWBVBWFWIUVJUVOUVMPKUOUPWJTUUSUVGUVNRYTUUSUVEU
      VJUVFUVMPUUSUVEUVIUVHNOUVJUUSABCYLYMYIYQKNUWGUWDUWCXFKHZYBKHZMZXFYBNOZYBX
      FNOLUUSXFYBUTSZUWOUWPXPVFUWRXJNOXFYBXJNONOLUUSXFYBXJWKSZUWIUWQUWRKHUUSXFY
      BQSZWLUUSABUVIUVHKNUWSUWEUWJWPWMUUSUVFYLYJNOZUVLNOUVMUUSABCYLYMYJYPKNUWGU
      WDUWFUWSUWTUWNUXAWNUUSUXBUVKUVLNUUSABYLYJKNUWSUWGUWFWPWOWMULWGWQUUSUVCUVG
      RZYTUUSUVAKHZUVBKHZUVDKHZUXCUUSUUJUUQUXDUWCUWIYIYQQTUUSUUKUUPUXEUWFUWNYJY
      PQTUUSUUMUUNUXFUWGUWDYLYMQTUVAUVBUVDWAWBWGWQUUSUUAUVCRZYTUULUURUXGUUOYIYJ
      YPYQURWRWGWQWSWTSXAXGYCMYDXFYBLYBXFEIXBFXFYBXCSXDXE $.
  $}

  $( Trichotomy for positive fractions.  (Contributed by Jim Kingdon,
     21-Sep-2019.) $)
  nqtric $p |- ( ( A e. Q. /\ B e. Q. ) ->
      ( A <Q B <-> -. ( A = B \/ B <Q A ) ) ) $=
    ( cnq cltq ltsonq nqtri3or sotritric ) CABDEABFG $.

  ${
    $d A x y z w v u f g h $.  $d B x y z w v u f g h $.
    $d C x y z w v u f g h $.
    $( Ordering property of addition for positive fractions.  Proposition
       9-2.6(ii) of [Gleason] p. 120.  (Contributed by Jim Kingdon,
       22-Sep-2019.) $)
    ltanqg $p |- ( ( A e. Q. /\ B e. Q. /\ C e. Q. ) ->
        ( A <Q B <-> ( C +Q A ) <Q ( C +Q B ) ) ) $=
      ( vf vg vh cv cltq wbr cplq co wb cnpi wceq wcel cmi cpli mulclpi syl2anc
      clti vx vy vz vw vv vu cop ceq cec cnq df-nqqs breq1 oveq2 breq1d bibi12d
      breq2 breq2d oveq1 breq12d bibi2d w3a addclpi adantl simp3l simp1r simp3r
      wa simp1l caovcld simp2r ordpipqqs syl22anc simp3 simp1 addpipqqs 3adant3
      simp2l simp2 ltmpig syl3anc ltapig mulcompig mulasspig distrpig caovdir2d
      caov4d caovdid caov411d oveq1d eqtrd 3bitr4d 3bitrd 3bitr4rd 3ecoptocl )
      UAGZUBGZUGUHUIZUCGZUDGZUGUHUIZHIZUEGZUFGZUGUHUIZWQJKZXDWTJKZHIZLAWTHIZXDA
      JKZXFHIZLABHIZXIXDBJKZHIZLXKCAJKZCBJKZHIZLUAUBUCUDUEUFABCMUHUJUKWQANZXAXH
      XGXJWQAWTHULXQXEXIXFHWQAXDJUMUNUOWTBNZXHXKXJXMWTBAHUPXRXFXLXIHWTBXDJUMUQU
      OXDCNZXMXPXKXSXIXNXLXOHXDCAJURXDCBJURUSUTWOMOZWPMOZVGZWRMOZWSMOZVGZXBMOZX
      CMOZVGZVAZXBWPPKZXCWOPKZQKZXCWPPKZUGUHUIZXBWSPKZXCWRPKZQKZXCWSPKZUGUHUIZH
      IZYLYRPKZYMYQPKZTIZXGXAYIYLMOYMMOZYQMOYRMOZYTUUCLYIDEYJYKMMMQDGZMOZEGZMOZ
      VGZUUFUUHQKMOYIUUFUUHVBVCZYIYFYAYJMOZYBYEYFYGVDZXTYAYEYHVEZXBWPRSZYIYGXTY
      KMOZYBYEYFYGVFZXTYAYEYHVHZXCWORSZVIYIYGYAUUDUUQUUNXCWPRSZYIDEYOYPMMMQUUKY
      IDEXBWSMMMPUUJUUFUUHPKZMOYIUUFUUHRVCZUUMYBYCYDYHVJZVIZYIYGYCYPMOZUUQYBYCY
      DYHVQZXCWRRSZVIYIYGYDUUEUUQUVCXCWSRSZYLYMYQYRVKVLYIXEYNXFYSHYIYHYBXEYNNYB
      YEYHVMZYBYEYHVNXBXCWOWPVOSYIYHYEXFYSNUVIYBYEYHVRXBXCWRWSVOSUSYIXAWOWSPKZW
      PWRPKZTIZXCXCPKZUVJPKZUVMUVKPKZTIZUUCYBYEXAUVLLYHWOWPWRWSVKVPYIUVJMOZUVKM
      OZUVMMOZUVLUVPLYIXTYDUVQUURUVCWOWSRSYIYAYCUVRUUNUVFWPWRRSYIYGYGUVSUUQUUQX
      CXCRSUVJUVKUVMVSVTYIYKYRPKZYMYPPKZTIZYJYRPKZUVTQKZUWCUWAQKZTIZUVPUUCYIUVT
      MOZUWAMOZUWCMOZUWBUWFLYIUUPUUEUWGUUSUVHYKYRRSYIUUDUVEUWHUUTUVGYMYPRSYIUUL
      UUEUWIUUOUVHYJYRRSUVTUWAUWCWAVTYIUVNUVTUVOUWATYIDEFXCXCWOWSMPUUQUUQUURUUJ
      UVAUUHUUFPKNYIUUFUUHWBVCZUUGUUIFGZMOVAZUVAUWKPKUUFUUHUWKPKPKNYIUUFUUHUWKW
      CVCZUVCUVBWFYIDEFXCXCWPWRMPUUQUUQUUNUWJUWMUVFUVBWFUSYIUUAUWDUUBUWETYIDEFY
      JYKYRMQPUWLUUFUUHUWKQKPKUVAUUFUWKPKQKNYIUUFUUHUWKWDVCZUUOUUSUVHUUKUWJWEYI
      UUBYMYOPKZUWAQKUWEYIDEFYMYOYPMQPQMUWNUUTUVDUVGWGYIUWOUWCUWAQYIDEFXCWPXBWS
      MPUUQUUNUUMUWJUWMUVCUVBWHWIWJUSWKWLWMWN $.

    $( Ordering property of multiplication for positive fractions.  Proposition
       9-2.6(iii) of [Gleason] p. 120.  (Contributed by Jim Kingdon,
       22-Sep-2019.) $)
    ltmnqg $p |- ( ( A e. Q. /\ B e. Q. /\ C e. Q. ) ->
      ( A <Q B <-> ( C .Q A ) <Q ( C .Q B ) ) ) $=
      ( vf vg cv cop ceq cec cltq wbr cmq co wb cnpi wceq wcel wa cmi caovcld
      vx vy vz vw vv vu vh cnq df-nqqs breq1 oveq2 breq1d bibi12d breq2 breq12d
      breq2d oveq1 bibi2d w3a clti mulclpi adantl simp1l simp2r simp1r 3ad2ant3
      simp2l ltmpig syl3anc simp3l simp3r mulcompig caov4d oveq1d ancoms bitr4d
      mulasspig ordpipqqs 3adant3 syl22anc 3bitr4d mulpipqqs 3adant2 3ecoptocl
      eqtrd 3adant1 ) UAFZUBFZGHIZUCFZUDFZGHIZJKZUEFZUFFZGHIZWILMZWPWLLMZJKZNAW
      LJKZWPALMZWRJKZNABJKZXAWPBLMZJKZNXCCALMZCBLMZJKZNUAUBUCUDUEUFABCOHUHUIWIA
      PZWMWTWSXBWIAWLJUJXIWQXAWRJWIAWPLUKULUMWLBPZWTXCXBXEWLBAJUNXJWRXDXAJWLBWP
      LUKUPUMWPCPZXEXHXCXKXAXFXDXGJWPCALUQWPCBLUQUOURWGOQZWHOQZRZWJOQZWKOQZRZWN
      OQZWOOQZRZUSZWMWNWGSMZWOWHSMZGHIZWNWJSMZWOWKSMZGHIZJKZWSYAWGWKSMZWHWJSMZU
      TKZYBYFSMZYCYESMZUTKZWMYHYAYKWNWOSMZYISMZYOYJSMZUTKZYNYAYIOQYJOQYOOQZYKYR
      NYADEWGWKOOOSDFZOQZEFZOQZRZYTUUBSMZOQYAYTUUBVAVBZXLXMXQXTVCZXNXOXPXTVDZTY
      ADEWHWJOOOSUUFXLXMXQXTVEZXNXOXPXTVGZTXTXNYSXQWNWOVAVFYIYJYOVHVIYAYLYPYMYQ
      UTYADEUGWNWGWOWKOSXNXQXRXSVJZUUGXNXQXRXSVKZUUDUUEUUBYTSMPYAYTUUBVLVBZUUAU
      UCUGFZOQUSUUEUUNSMYTUUBUUNSMSMPYAYTUUBUUNVQVBZUUHUUFVMYAYMWOWNSMZYJSMZYQY
      ADEUGWOWHWNWJOSUULUUIUUKUUMUUOUUJUUFVMXTXNUUQYQPZXQXSXRUURXSXRRUUPYOYJSWO
      WNVLVNVOVFWEUOVPXNXQWMYKNXTWGWHWJWKVRVSYAYBOQYCOQYEOQYFOQYHYNNYADEWNWGOOO
      SUUFUUKUUGTYADEWOWHOOOSUUFUULUUITYADEWNWJOOOSUUFUUKUUJTYADEWOWKOOOSUUFUUL
      UUHTYBYCYEYFVRVTWAYAWQYDWRYGJXNXTWQYDPZXQXTXNUUSWNWOWGWHWBVOWCXQXTWRYGPZX
      NXTXQUUTWNWOWJWKWBVOWFUOVPWD $.
  $}

  $( Ordering property of addition for positive fractions.  One direction of
     ~ ltanqg .  (Contributed by Jim Kingdon, 9-Dec-2019.) $)
  ltanqi $p |- ( ( A <Q B /\ C e. Q. ) -> ( C +Q A ) <Q ( C +Q B ) ) $=
    ( cltq wbr cnq wcel wa cplq co simpl ltrelnq brel ltanqg 3expa sylan mpbid
    wb ) ABDEZCFGZHSCAIJCBIJDEZSTKSAFGZBFGZHTSUARZABFFDLMUBUCTUDABCNOPQ $.

  $( Ordering property of multiplication for positive fractions.  One direction
     of ~ ltmnqg .  (Contributed by Jim Kingdon, 9-Dec-2019.) $)
  ltmnqi $p |- ( ( A <Q B /\ C e. Q. ) -> ( C .Q A ) <Q ( C .Q B ) ) $=
    ( cltq wbr cnq wcel wa cmq co simpl ltrelnq brel ltmnqg 3expa sylan mpbid
    wb ) ABDEZCFGZHSCAIJCBIJDEZSTKSAFGZBFGZHTSUARZABFFDLMUBUCTUDABCNOPQ $.

  $( Ordering property of addition for positive fractions.  (Contributed by Jim
     Kingdon, 7-Dec-2019.) $)
  lt2addnq $p |- ( ( ( A e. Q. /\ B e. Q. ) /\ ( C e. Q. /\ D e. Q. ) ) ->
      ( ( A <Q B /\ C <Q D ) -> ( A +Q C ) <Q ( B +Q D ) ) ) $=
    ( cnq wcel wa cltq wbr cplq co ltanqg 3expa adantrr wceq addcomnqg ad2ant2r
    wb ancoms ad2ant2lr breq12d bitrd adantll anbi12d ltsonq ltrelnq syl6bi
    sotri ) AEFZBEFZGZCEFZDEFZGZGZABHIZCDHIZGACJKZBCJKZHIZUSBDJKZHIZGURVAHIUOUP
    UTUQVBUOUPCAJKZCBJKZHIZUTUKULUPVERZUMUIUJULVFABCLMNUOVCURVDUSHUIULVCUROZUJU
    MULUIVGCAPSQUJULVDUSOZUIUMULUJVHCBPSTUAUBUJUNUQVBRZUIUNUJVIULUMUJVICDBLMSUC
    UDURUSVAHEUEUFUHUG $.

  $( Ordering property of multiplication for positive fractions.  (Contributed
     by Jim Kingdon, 18-Jul-2021.) $)
  lt2mulnq $p |- ( ( ( A e. Q. /\ B e. Q. ) /\ ( C e. Q. /\ D e. Q. ) ) ->
      ( ( A <Q B /\ C <Q D ) -> ( A .Q C ) <Q ( B .Q D ) ) ) $=
    ( cnq wcel wa cltq wbr cmq co wb ltmnqg 3expa adantrr wceq mulcomnqg ancoms
    ad2ant2r ad2ant2lr breq12d bitrd adantll anbi12d ltsonq ltrelnq syl6bi
    sotri ) AEFZBEFZGZCEFZDEFZGZGZABHIZCDHIZGACJKZBCJKZHIZUSBDJKZHIZGURVAHIUOUP
    UTUQVBUOUPCAJKZCBJKZHIZUTUKULUPVELZUMUIUJULVFABCMNOUOVCURVDUSHUIULVCURPZUJU
    MULUIVGCAQRSUJULVDUSPZUIUMULUJVHCBQRTUAUBUJUNUQVBLZUIUNUJVIULUMUJVICDBMNRUC
    UDURUSVAHEUEUFUHUG $.

  $( One is less than two (one plus one).  (Contributed by NM, 13-Mar-1996.)
     (Revised by Mario Carneiro, 10-May-2013.) $)
  1lt2nq $p |- 1Q <Q ( 1Q +Q 1Q ) $=
    ( c1o cop ceq cec cmi co cpli c1q cplq cltq wbr clti cnpi wcel wceq oveq12i
    1pi 3brtr4i wb df-1nqqs 1lt2pi mulidpi ax-mp mulclpi mp2an ltmpig ordpipqqs
    addclpi mp3an mpbi mp4an mpbir addpipqqs eqtri ) AABCDZAAEFZUPGFZUPBCDZHHHI
    FZJUOURJKZAUPEFAUQEFLKZUPUQLKZVAAAAGFUPUQLUAAMNZUPAOQAUBUCZUPAUPAGVDVDPRUPM
    NZUQMNZVCVBVASVCVCVEQQAAUDUEZVEVEVFVGVGUPUPUHUEZQUPUQAUFUIUJVCVCVFVEUTVASQQ
    VHVGAAUQUPUGUKULTUSUOUOIFZURHUOHUOITTPVCVCVCVCVIUROQQQQAAAAUMUKUNR $.

  ${
    $d A r s t $.  $d B r s t $.
    $( The sum of two fractions is greater than one of them.  (Contributed by
       NM, 14-Mar-1996.)  (Revised by Mario Carneiro, 10-May-2013.) $)
    ltaddnq $p |- ( ( A e. Q. /\ B e. Q. ) -> A <Q ( A +Q B ) ) $=
      ( vr vs vt cnq wcel wa cplq co cltq wbr c1q cmq wb addclnq wceq adantl cv
      1nq 1lt2nq mp2an ltmnqg mp3an12 mpbii mulidnq mp3an23 oveq12d eqtrd simpr
      3brtr3d anidms simpl ltanqg syl3anc mpbid addcomnqg w3a addassnqg caov12d
      distrnqg mpbird ) AFGZBFGZHZAABIJZKLZBAIJZBVFIJZKLZVEVFABBIJZIJZVHVIKVEBV
      KKLZVFVLKLZVDVMVCVDBMNJZBMMIJZNJZBVKKVDMVPKLZVOVQKLZUAMFGZVPFGZVDVRVSOTVT
      VTWATTMMPUBMVPBUCUDUEBUFZVDVQVOVOIJZVKVDVTVTVQWCQTTBMMVAUGVDVOBVOBIWBWBUH
      UIUKRVEVDVKFGZVCVMVNOVCVDUJZVDWDVCVDWDBBPULRVCVDUMZBVKAUNUOUPABUQVECDEABB
      FIWFWEWECSZFGZDSZFGZHWGWIIJZWIWGIJQVEWGWIUQRWHWJESZFGURWKWLIJWGWIWLIJIJQV
      EWGWIWLUSRUTUKVEVCVFFGVDVGVJOWFABPWEAVFBUNUOVB $.
  $}

  ${
    $d f g h x y z w v u A $.  $d x y z w v u B $.
    $( Ordering on positive fractions in terms of existence of sum.  Definition
       in Proposition 9-2.6 of [Gleason] p. 119.  (Contributed by Jim Kingdon,
       23-Sep-2019.) $)
    ltexnqq $p |- ( ( A e. Q. /\ B e. Q. ) ->
        ( A <Q B <-> E. x e. Q. ( A +Q x ) = B ) ) $=
      ( vu cnq wcel wa cltq wbr cv cplq co wceq wrex cop ceq cec cnpi cmi syl
      vy vz vw vv vf vg vh df-nqqs breq1 oveq1 rexbidv imbi12d breq2 eqeq2 clti
      wi eqeq1d ordpipqqs cpli wex wb mulclpi an42s ltexpi df-rex syl6bb simpll
      anim12i adantr adantrr addpipqqs simplll simpllr simplrr mulcompig adantl
      simpr w3a mulasspig caov12d oveq1d syl2anc simprl distrpig syl3anc eqtr4d
      jca32 opeq1d eceq1d ad2ant2rl addclpi sylan 3jca mulcanenqec eqtrd 3anass
      biimpri adantll anim1i adantrl opeq1 sylan9eqr 3eqtrd cxp opelxpi ecelqsi
      cqs enqex syl6eleqr oveq2 rspcedv mpd ex exlimdv sylbid 2ecoptocl ltaddnq
      syl5ibcom rexlimdva impbid ) BEFZCEFZGBCHIZBAJZKLZCMZAENZUAJZUBJZOPQZUCJZ
      UDJZOPQZHIZYJYDKLZYMMZAENZUPBYMHIZYEYMMZAENZUPYCYGUPUAUBUCUDBCRRPEUHYJBMZ
      YNYRYQYTYJBYMHUIUUAYPYSAEUUAYOYEYMYJBYDKUJUQUKULYMCMZYRYCYTYGYMCBHUMUUBYS
      YFAEYMCYEUNUKULYHRFZYIRFZGZYKRFZYLRFZGZGZYNYHYLSLZYIYKSLZUOIZYQYHYIYKYLUR
      UUIUULDJZRFZUUJUUMUSLZUUKMZGZDUTZYQUUIUULUUPDRNZUURUUIUUJRFZUUKRFZGZUULUU
      SVAUUCUUGUUDUUFUVBUUCUUGGUUTUUDUUFGUVAYHYLVBZYIYKVBVHVCDUUJUUKVDTUUPDRVEV
      FUUIUUQYQDUUIUUQYQUUIUUQGZYJUUMYIYLSLZOZPQZKLZYMMZYQUVDUVHYHUVESLZYIUUMSL
      ZUSLZYIUVESLZOZPQZUUOUVEOZPQZYMUVDUUEUUNUVERFZGZGZUVHUVOMUUIUUNUVTUUPUUIU
      UNGZUUEUUNUVRUUEUUHUUNVGUUIUUNVQUWAUUDUUGGZUVRUUIUWBUUNUUEUUDUUHUUGUUCUUD
      VQUUFUUGVQVHVIYIYLVBZTZWGVJYHYIUUMUVEVKTUVDUVOYIUUOSLZUVMOZPQZUVQUVDUVNUW
      FPUVDUVLUWEUVMUVDUVLYIUUJSLZUVKUSLZUWEUVDUVJUWHUVKUSUVDUEUFUGYHYIYLRSUUCU
      UDUUHUUQVLZUUCUUDUUHUUQVMZUUEUUFUUGUUQVNZUEJZRFZUFJZRFZGUWMUWOSLZUWOUWMSL
      MUVDUWMUWOVOVPUWNUWPUGJZRFVRUWQUWRSLUWMUWOUWRSLSLMUVDUWMUWOUWRVSVPVTWAUVD
      UUDUUTUUNUWEUWIMUWKUVDUUCUUGUUTUWJUWLUVCWBUUIUUNUUPWCZYIUUJUUMWDWEWFWHWIU
      VDUUDUUORFZUVRVRZUWGUVQMUUIUUNUXAUUPUWAUUDUWTUVRUUCUUDUUHUUNVMUUIUUTUUNUW
      TUUCUUGUUTUUDUUFUVCWJUUJUUMWKWLUWDWMVJYIUUOUVEWNTWOUVDUUDUUFUUGVRZUUPGZUV
      QYMMUUIUUPUXCUUNUUIUXBUUPUUDUUHUXBUUCUXBUUDUUHGUUDUUFUUGWPWQWRWSWTUUPUXBU
      VQUUKUVEOZPQYMUUPUVPUXDPUUOUUKUVEXAWIYIYKYLWNXBTXCUVDYPUVIAUVGEUVDUVGRRXD
      ZPXGZEUVDUUNUVRUVGUXFFZUWSUVDUUDUUGUVRUWKUWLUWCWBUVSUVFUXEFUXGUUMUVERRXEU
      XEUVFPXHXFTWBUHXIYDUVGMZYPUVIVAUVDUXHYOUVHYMYDUVGYJKXJUQVPXKXLXMXNXOXOXPY
      AYGYCUPYBYAYFYCAEYAYDEFGBYEHIYFYCBYDXQYECBHUMXRXSVIXT $.
  $}

  ${
    $d A x $.  $d B x $.
    $( Ordering on positive fractions in terms of existence of sum.
       (Contributed by Jim Kingdon, 30-Apr-2020.) $)
    ltexnqi $p |- ( A <Q B -> E. x e. Q. ( A +Q x ) = B ) $=
      ( cnq wcel wa cltq cv cplq co wceq wrex ltrelnq brel ltexnqq biimpd mpcom
      wbr ) BDECDEFZBCGRZBAHIJCKADLZBCDDGMNSTUAABCOPQ $.
  $}

  ${
    $d A x $.
    $( One-half of any positive fraction is a fraction.  (Contributed by Jim
       Kingdon, 23-Sep-2019.) $)
    halfnqq $p |- ( A e. Q. -> E. x e. Q. ( x +Q x ) = A ) $=
      ( cnq wcel c1q cplq co crq cmq wceq 1nq mp2an ax-mp distrnqg mp3an oveq1i
      addclnq oveq2i mulidnq 3eqtr3i cfv wrex recclnq recidnq oveq12i mulassnqg
      eqtri mulcomnqg eqtr3i syl2anc mp2b mp3an23 3eqtr3a mulclnq mpan2 oveq12d
      cv wb id eqeq1d adantl rspcedv mpd ) BCDZBEEFGZHUAZIGZVGFGZBJZAUQZVJFGZBJ
      ZACUBVDBVFVFFGZIGZBEIGVHBVMEBIVEVMIGZVFIGZVEVFIGZVMEVOVEVFIVOVQVQFGZVEVEC
      DZVFCDZVTVOVRJECDZWAVSKKEEQLZVSVTWBVEUCZMZWDVEVFVFNOVQEVQEFVSVQEJWBVEUDMZ
      WEUEUGPVMVQIGZVMEIGZVPVMVQEVMIWERVMVEIGZVFIGZWFVPVMCDZVSVTWIWFJVTVTWJWDWD
      VFVFQZLZWBWDVMVEVFUFOWHVOVFIWJVSWHVOJWLWBVMVEUHLPUIVSWJWGVMJWBVSVTVTWJWCW
      CWKUJVMSUKTWETRVDVTVTVNVHJWDWDBVFVFNULBSUMVDVLVIAVGCVDVTVGCDWDBVFUNUOVJVG
      JZVLVIURVDWMVKVHBWMVJVGVJVGFWMUSZWNUPUTVAVBVC $.

    $( 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.) $)
    halfnq $p |- ( A e. Q. -> E. x ( x +Q x ) = A ) $=
      ( cnq wcel cv cplq co wceq wrex wex halfnqq rexex syl ) BCDAEZNFGBHZACIOA
      JABKOACLM $.
  $}

  ${
    $d x A $.
    $( There is no smallest positive fraction.  (Contributed by Jim Kingdon,
       24-Sep-2019.) $)
    nsmallnqq $p |- ( A e. Q. -> E. x e. Q. x <Q A ) $=
      ( cnq wcel cv cplq co wceq wrex cltq wbr halfnqq ltaddnq anidms syl5ibcom
      breq2 reximia syl ) BCDAEZSFGZBHZACISBJKZACIABLUAUBACSCDZSTJKZUAUBUCUDSSM
      NTBSJPOQR $.

    $( There is no smallest positive fraction.  (Contributed by NM,
       26-Apr-1996.)  (Revised by Mario Carneiro, 10-May-2013.) $)
    nsmallnq $p |- ( A e. Q. -> E. x x <Q A ) $=
      ( cnq wcel cv cltq wbr wrex wex nsmallnqq rexex syl ) BCDAEBFGZACHMAIABJM
      ACKL $.
  $}

  ${
    $d A x y $.
    $( There is a number which is less than half of any positive fraction.  The
       case where ` A ` is one is Lemma 11.4 of [BauerTaylor], p. 50, and they
       use the word "approximate half" for such a number (since there may be
       constructions, for some structures other than the rationals themselves,
       which rely on such an approximate half but do not require division by
       two as seen at ~ halfnqq ).  (Contributed by Jim Kingdon,
       25-Nov-2019.) $)
    subhalfnqq $p |- ( A e. Q. -> E. x e. Q. ( x +Q x ) <Q A ) $=
      ( vy cnq wcel cv cplq co cltq wbr wa wex wrex halfnqq df-rex eximi sylibr
      wceq syl wb adantr ancli sylbi anbi2i exbii exdistr simprl simpll ltaddnq
      sylib syl2anc breq2 ad2antlr mpbid breq1 ad2antll mpbird jca exlimiv ) BD
      EZAFZDEZVAVAGHZBIJZKZALZVDADMUTCFZDEZVGVGGHZBRZKZVBVCVGRZKZKZALZCLZVFUTVK
      VMALZKZCLZVPUTVKVLADMZKZCLZVSUTVJCDMZWBCBNWCVKCLWBVJCDOVKWACVKVTVHVTVJAVG
      NUAUBPUCSWAVRCVTVQVKVLADOUDUEUJVKVMCAUFQVOVFCVNVEAVNVBVDVKVBVLUGVNVDVGBIJ
      ZVNVGVIIJZWDVNVHVHWEVHVJVMUHZWFVGVGUIUKVJWEWDTVHVMVIBVGIULUMUNVLVDWDTVKVB
      VCVGBIUOUPUQURPUSSVDADOQ $.
  $}

  ${
    $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 Jim Kingdon,
       24-Sep-2019.) $)
    ltbtwnnqq $p |- ( A <Q B <-> E. x e. Q. ( A <Q x /\ x <Q B ) ) $=
      ( vy vz cltq wbr cv wa cnq wrex wcel cplq wceq ltrelnq brel simpld sylan2
      co adantr ltexnqi wex nsmallnq ltaddnq ancoms ltanqi breq2 adantl addclnq
      wb mpbid breq1 anbi12d rspcedv mp2and 3impa 3coml 3expia exlimdv impancom
      syl5 rexlimdva sylc ltsonq sotri rexlimivw impbii ) BCFGZBAHZFGZVICFGZIZA
      JKZVHBJLZBDHZMSZCNZDJKVMVHVNCJLBCJJFOPQDBCUAVNVQVMDJVNVQVOJLZVMVREHZVOFGZ
      EUBVNVQIZVMEVOUCWAVTVMEVNVQVTVMVTVNVQVMVTVNVQVMVTVNIZVQIZBBVSMSZFGZWDCFGZ
      VMWBWEVQVNVTWEVTVNVSJLZWEVTWGVRVSVOJJFOPQZBVSUDRUETWCWDVPFGZWFWBWIVQVSVOB
      UFTVQWIWFUJWBVPCWDFUGUHUKWCVLWEWFIZAWDJWBWDJLZVQVNVTWKVTVNWGWKWHBVSUIRUET
      VIWDNZVLWJUJWCWLVJWEVKWFVIWDBFUGVIWDCFULUMUHUNUOUPUQURUSVAUTVBVCVLVHAJBVI
      CFJVDOVEVFVG $.

    $( 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.) $)
    ltbtwnnq $p |- ( A <Q B <-> E. x ( A <Q x /\ x <Q B ) ) $=
      ( cv cltq wbr wa cnq wrex wcel wex df-rex ltbtwnnqq ltrelnq simprd adantr
      brel pm4.71ri exbii 3bitr4i ) BADZEFZUACEFZGZAHIUAHJZUDGZAKBCEFUDAKUDAHLA
      BCMUDUFAUDUEUBUEUCUBBHJUEBUAHHENQOPRST $.
  $}

  ${
    $d A w x z $.
    $( For any fraction, there is an integer that is greater than it.  This is
       also known as the "archimedean property".  (Contributed by Jim Kingdon,
       1-Dec-2019.) $)
    archnqq $p |- ( A e. Q. -> E. x e. N. A <Q [ <. x , 1o >. ] ~Q ) $=
      ( vz vw wcel cnpi wa ceq wceq c1o cltq wbr co adantr clti comu 1onn sylan
      com c0 cnq cv cop cec wex wrex nqpi cpli 1pi addclpi mpan2 cmi pinn nnacl
      coa sylancl nnm1 syl wss elni2 word nnord ordgt0ge1 biimpa sylbi nnaword1
      adantl wb simprbi sseldd nnmword mp3anl1 syl21anc mpbid eqsstr3d 0lt1o wi
      nna0 nnaordi mpi eqeltrrd mulclpi ltpiord syldan mulpiord addpiord oveq1d
      eqtrd eleq2d bitrd mpbird mulcompig breq2d jctir ordpipqqs mulidpi breq1d
      mpan mpdan breq1 opeq1 eceq1d rspcev syl2anc exlimivv ) BUAECUBZFEZDUBZFE
      ZGZBXFXHUCHUDZIZGZDUECUEBAUBZJUCZHUDZKLZAFUFZCDBUGXMXRCDXMXFJUHMZFEZBXSJU
      CZHUDZKLZXRXJXTXLXGXTXIXGJFEZXTUIXFJUJUKZNZNXMYCXKYBKLZXJYGXLXJYGXFXHXSUL
      MZOLZXJXFXSXHULMZOLZYIXJYKXFXFJUOMZXHPMZEZXJYLYMXFXJYLYLJPMZYMXJYLSEZYOYL
      IXGYPXIXGXFSEZJSEZYPXFUMZQXFJUNUPNZYLUQURXJJXHUSZYOYMUSZXIUUAXGXIXHSEZTXH
      EZGUUAXHUTUUCXHVAZUUDUUAXHVBUUEUUDUUAXHVCVDRVEVGXJUUCYPTYLEZUUAUUBVHZXIUU
      CXGXHUMVGYTXGUUFXIXGXFYLTXGYQYRXFYLUSYSQXFJVFUPXGYQTXFEXFUTVIVJNYRUUCYPUU
      FUUGQJXHYLVKVLVMVNVOXGXFYLEZXIXGYQUUHYSYQXFTUOMZXFYLXFVRYQTJEZUUIYLEZVPYR
      YQUUJUUKVQQTJXFVSWRVTWAURNVJXJYKXFYJEZYNXGXIYJFEZYKUULVHXGXTXIUUMYEXSXHWB
      RXFYJWCWDXJYJYMXFXJYJXSXHPMZYMXGXTXIYJUUNIYEXSXHWERXJXSYLXHPXGXSYLIZXIXGY
      DUUOUIXFJWFUKNWGWHWIWJWKXJYJYHXFOXGXTXIYJYHIYEXSXHWLRWMVNXJYGXFJULMZYHOLZ
      YIXJXTYDGYGUUQVHXJXTYDYFUIWNXFXHXSJWOWSXJUUPXFYHOXGUUPXFIXIXFWPNWQWJWKNXL
      YCYGVHXJBXKYBKWTVGWKXQYCAXSFXNXSIZXPYBBKUURXOYAHXNXSJXAXBWMXCXDXEUR $.
  $}

  ${
    $d A x $.  $d B x $.
    $( A version of the Archimedean property.  This variation is "stronger"
       than ~ archnqq in the sense that we provide an integer which is larger
       than a given rational ` A ` even after being multiplied by a second
       rational ` B ` .  (Contributed by Jim Kingdon, 30-Nov-2019.) $)
    prarloclemarch $p |- ( ( A e. Q. /\ B e. Q. ) ->
        E. x e. N. A <Q ( [ <. x , 1o >. ] ~Q .Q B ) ) $=
      ( cnq wcel wa cmq c1o ceq cltq wbr cnpi wrex mulclnq syl2anc syl3anc wceq
      co syl mulcomnqg crq cfv cv cop cec recclnq sylan2 archnqq simpll cxp cqs
      wb 1pi opelxpi mpan2 enqex ecelqsi df-nqqs syl6eleqr adantl simplr ltmnqg
      c1q mulassnqg recidnq oveq2d mulidnq eqtrd breq12d bitrd biimprd reximdva
      3eqtrd mpd ) BDEZCDEZFZBCUAUBZGRZAUCZHUDZIUEZJKZALMZBWBCGRZJKZALMVQVSDEZW
      DVPVOVRDEZWGCUFZBVRNUGAVSUHSVQWCWFALVQVTLEZFZWFWCWKWFVRBGRZVRWEGRZJKZWCWK
      VOWEDEZWHWFWNULVOVPWJUIZWKWBDEZVPWOWJWQVQWJWBLLUJZIUKZDWJWAWREZWBWSEWJHLE
      WTUMVTHLLUNUOWRWAIUPUQSURUSUTZVOVPWJVAZWBCNOZWKVPWHXBWISZBWEVRVBPWKWLVSWM
      WBJWKWHVOWLVSQXDWPVRBTOWKWMWEVRGRZWBWKWHWOWMXEQXDXCVRWETOWKXEWBCVRGRZGRZW
      BVCGRZWBWKWQVPWHXEXGQXAXBXDWBCVRVDPWKVPXGXHQXBVPXFVCWBGCVEVFSWKWQXHWBQXAW
      BVGSVMVHVIVJVKVLVN $.
  $}

  ${
    $d A x z $.  $d B x z $.  $d C x z $.
    $( Like ~ prarloclemarch but the integer must be at least two, and there is
       also ` B ` added to the right hand side.  These details follow
       straightforwardly but are chosen to be helpful in the proof of
       ~ prarloc .  (Contributed by Jim Kingdon, 25-Nov-2019.) $)
    prarloclemarch2 $p |- ( ( A e. Q. /\ B e. Q. /\ C e. Q. ) ->
        E. x e. N. ( 1o <N x /\
          A <Q ( B +Q ( [ <. x , 1o >. ] ~Q .Q C ) ) ) ) $=
      ( cnq wcel c1o ceq cmq co cltq wbr clti wa cnpi c2o 1pi syl wceq c0 vz cv
      w3a cop cec cplq wrex prarloclemarch 3adant2 cpli coa com pinn csuc elexi
      sucid df-2o eleqtrri wss 2onn nnaword2 mpan sseld o1p1e2 addpiord addclpi
      mpi mp2an eqeltrri mpan2 eleqtrrd ltpiord mpbird adantl adantrr cmi 0lt1o
      wb nna0 con0 wi 1on onsuci ontr1 ax-mp nnaordi eqeltrrd mulidpi mulcompig
      mpdan eqtr3d 3brtr4d ordpipqqs mpanl2 mpanr2 cxp cqs opelxpi ecelqsi 3syl
      df-nqqs syl6eleqr ltmnqg syl3an1 syl3an2 3anidm12 ancoms mulcomnqg sylan2
      enqex mpbid 3brtr3d 3ad2antl3 ltsonq ltrelnq sotri ex mpd mulclnq ltaddnq
      sylan simpl2 syl2anc breq2d simpr breq2 opeq1 eceq1d oveq1d oveq2d rspcev
      addcomnqg anbi12d mp2and rexlimddv ) BEFZCEFZDEFZUCZBUAUBZGUDZHUEZDIJZKLZ
      GAUBZMLZBCUUEGUDZHUEZDIJZUFJZKLZNZAOUGZUAOYPYRUUDUAOUGYQUABDUHUIYSYTOFZUU
      DNZNZGYTPUJJZMLZBCUUQGUDZHUEZDIJZUFJZKLZUUMYSUUNUURUUDUUNUURYSUUNUURGUUQF
      ZUUNGYTPUKJZUUQUUNYTULFZGUVEFZYTUMZUVFGPFUVGGGUNZPGGOQUOUPZUQURUVFPUVEGPU
      LFZUVFPUVEUSUTPYTVAVBVCVGRUUNPOFZUUQUVESGGUKJZPOVDGGUJJZUVMOGOFZUVOUVNUVM
      SQQGGVEVHUVOUVOUVNOFQQGGVFVHVIVIZYTPVEVJZVKUUNUUQOFZUURUVDVRZUUNUVLUVRUVP
      YTPVFVJZUVOUVRUVSQGUUQVLVBRVMVNVOUUPBUVACUFJZKLZUVCUUPBUVAKLZUVAUWAKLZUWB
      UUPUUCUVAKLZUWCYSUUNUWEUUDYRYPUUNUWEYQYRUUNNZDUUBIJZDUUTIJZUUCUVAKUWFUUBU
      UTKLZUWGUWHKLZUUNUWIYRUUNUWIYTGVPJZGUUQVPJZMLZUUNYTUUQUWKUWLMUUNYTUUQMLZY
      TUUQFZUUNYTUVEUUQUUNUVFYTUVEFUVHUVFYTTUKJZYTUVEYTVSUVFTPFZUWPUVEFZTUVIPTG
      FZGUVIFZTUVIFZVQUVJUVIVTFUWSUWTNUXAWAGWBWCTGUVIWDWEVHUQURUVKUVFUWQUWRWAUT
      TPYTWFVBVGWGRUVQVKUUNUVRUWNUWOVRUVTYTUUQVLWJVMYTWHUUNUUQGVPJZUWLUUQUUNUVR
      UXBUWLSZUVTUVRUVOUXCQUUQGWIVJRUUNUVRUXBUUQSUVTUUQWHRWKWLUUNUVRUWIUWMVRZUV
      TUUNUVRUVOUXDQUUNUVOUVRUVONUXDQYTGUUQGWMWNWOWJVMVNUUNYRUWIUWJVRZUUNYRUXEU
      UNUUNUUTEFZYRUXEUUNUUTOOWPZHWQZEUUNUVRUUSUXGFZUUTUXHFUVTUVRUVOUXIQUUQGOOW
      RVJUXGUUSHXJWSWTXAXBZUUNUUBEFZUXFYRUXEUUNUUBUXHEUUNUUAUXGFZUUBUXHFUUNUVOU
      XLQYTGOOWRVJUXGUUAHXJWSRXAXBZUUBUUTDXCXDXEXFXGXKUUNYRUXKUWGUUCSUXMDUUBXHX
      IUUNYRUXFUWHUVASUXJDUUTXHXIXLXMVOUUOUWEUWCWAZYSUUDUXNUUNUUDUWEUWCBUUCUVAK
      EXNXOXPXQVNVNXRYSUUNUWDUUDYSUUNNZUVAEFZYQUWDYRYPUUNUXPYQUUNYRUXPUUNUXFYRU
      XPUXJUUTDXSYAXGXMZYPYQYRUUNYBZUVACXTYCVOBUVAUWAKEXNXOXPYCYSUUNUWBUVCVRUUD
      UXOUWAUVBBKUXOUXPYQUWAUVBSUXQUXRUVACYLYCYDVOXKYSUUNUURUVCNZUUMWAZUUDUXOUU
      NUVRUXTYSUUNYEUVTUVRUXSUUMUULUXSAUUQOUUEUUQSZUUFUURUUKUVCUUEUUQGMYFUYAUUJ
      UVBBKUYAUUIUVACUFUYAUUHUUTDIUYAUUGUUSHUUEUUQGYGYHYIYJYDYMYKXQWTVOYNYO $.
  $}

  $( Ordering property of reciprocal for positive fractions.  For a simplified
     version of the forward implication, see ~ ltrnqi .  (Contributed by Jim
     Kingdon, 29-Dec-2019.) $)
  ltrnqg $p |- ( ( A e. Q. /\ B e. Q. ) ->
      ( A <Q B <-> ( *Q ` B ) <Q ( *Q ` A ) ) ) $=
    ( cnq wcel cltq wbr crq cfv cmq co recclnq mulclnq wceq mulcomnqg mulassnqg
    syl2anc syl3anc c1q recidnq oveq2d wa wb syl2an ltmnqg mpd3an3 simpl adantr
    adantl 3eqtr2d mulidnq sylan9eq eqtrd simpr sylan9eqr 3eqtrd breq12d bitrd
    syl ) ACDZBCDZUAZABEFZAGHZBGHZIJZAIJZVEBIJZEFZVDVCEFUSUTVECDZVBVHUBUSVCCDZV
    DCDZVIUTAKZBKZVCVDLUCZABVEUDUEVAVFVDVGVCEVAVFVDAVCIJZIJZVDVAVFAVEIJZVOVDIJZ
    VPVAVIUSVFVQMVNUSUTUFZVEANPVAUSVJVKVRVQMVSUSVJUTVLUGZUTVKUSVMUHZAVCVDOQVAVO
    CDZVKVRVPMVAUSVJWBVSVTAVCLPWAVOVDNPUIUSUTVPVDRIJZVDUSVORVDIASTUTVKWCVDMVMVD
    UJURUKULVAVGVCVDBIJZIJZVCBVDIJZIJZVCVAVJVKUTVGWEMVTWAUSUTUMZVCVDBOQVAWDWFVC
    IVAVKUTWDWFMWAWHVDBNPTUTUSWGVCRIJZVCUTWFRVCIBSTUSVJWIVCMVLVCUJURUNUOUPUQ $.

  $( Ordering property of reciprocal for positive fractions.  For the converse,
     see ~ ltrnqg .  (Contributed by Jim Kingdon, 24-Sep-2019.) $)
  ltrnqi $p |- ( A <Q B -> ( *Q ` B ) <Q ( *Q ` A ) ) $=
    ( cltq wbr crq cfv cnq wcel wa wb ltrelnq brel ltrnqg syl ibi ) ABCDZBEFAEF
    CDZPAGHBGHIPQJABGGCKLABMNO $.

  $( The canonical embedding of positive integers into positive fractions.
     (Contributed by Jim Kingdon, 26-Apr-2020.) $)
  nnnq $p |- ( A e. N. -> [ <. A , 1o >. ] ~Q e. Q. ) $=
    ( cnpi wcel c1o cop ceq cec cxp cqs cnq 1pi opelxpi mpan2 enqex ecelqsi syl
    df-nqqs syl6eleqr ) ABCZADEZFGZBBHZFIZJSTUBCZUAUCCSDBCUDKADBBLMUBTFNOPQR $.

  $( Ordering of positive integers via ` <N ` or ` <Q ` is equivalent.
     (Contributed by Jim Kingdon, 3-Oct-2020.) $)
  ltnnnq $p |- ( ( A e. N. /\ B e. N. ) -> ( A <N B <->
      [ <. A , 1o >. ] ~Q <Q [ <. B , 1o >. ] ~Q ) ) $=
    ( cnpi wcel wa c1o cop ceq cec cltq wbr cmi co clti wb 1pi wceq mulidpi syl
    simpl a1i simpr ordpipqqs syl22anc mulcompig sylancr eqtrd breq12d bitr2d )
    ACDZBCDZEZAFGHIBFGHIJKZAFLMZFBLMZNKZABNKULUJFCDZUKUQUMUPOUJUKTZUQULPUAZUJUK
    UBZUSAFBFUCUDULUNAUOBNULUJUNAQURARSULUOBFLMZBULUQUKUOVAQPUTFBUEUFULUKVABQUT
    BRSUGUHUI $.

  ${
    $d x y z w v u f $.
    $( Define equivalence relation for non-negative fractions.  This is a
       "temporary" set used in the construction of complex numbers, and is
       intended to be used only by the construction.  (Contributed by Jim
       Kingdon, 2-Nov-2019.) $)
    df-enq0 $a |- ~Q0 = { <. x , y >. | ( ( x e. ( _om X. N. ) /\
                   y e. ( _om X. N. ) ) /\ E. z E. w E. v E. u
                   ( ( x = <. z , w >. /\ y = <. v , u >. ) /\
                   ( z .o u ) = ( w .o v ) ) ) } $.

    $( Define class of non-negative fractions.  This is a "temporary" set used
       in the construction of complex numbers, and is intended to be used only
       by the construction.  (Contributed by Jim Kingdon, 2-Nov-2019.) $)
    df-nq0 $a |- Q0. = ( ( _om X. N. ) /. ~Q0 ) $.

    $( Define non-negative fraction constant 0.  This is a "temporary" set used
       in the construction of complex numbers, and is intended to be used only
       by the construction.  (Contributed by Jim Kingdon, 5-Nov-2019.) $)
    df-0nq0 $a |- 0Q0 = [ <. (/) , 1o >. ] ~Q0 $.

    $( Define addition on non-negative fractions.  This is a "temporary" set
       used in the construction of complex numbers, and is intended to be used
       only by the construction.  (Contributed by Jim Kingdon, 2-Nov-2019.) $)
    df-plq0 $a |- +Q0 = { <. <. x , y >. , z >. | ( ( x e. Q0. /\ y e. Q0. ) /\
      E. w E. v E. u E. f (
         ( x = [ <. w , v >. ] ~Q0 /\ y = [ <. u , f >. ] ~Q0 ) /\
           z = [ <. ( ( w .o f ) +o ( v .o u ) ) ,
             ( v .o f ) >. ] ~Q0 ) ) } $.

    $( Define multiplication on non-negative fractions.  This is a "temporary"
       set used in the construction of complex numbers, and is intended to be
       used only by the construction.  (Contributed by Jim Kingdon,
       2-Nov-2019.) $)
    df-mq0 $a |- .Q0 = { <. <. x , y >. , z >. | ( ( x e. Q0. /\ y e. Q0. ) /\
      E. w E. v E. u E. f (
         ( x = [ <. w , v >. ] ~Q0 /\ y = [ <. u , f >. ] ~Q0 ) /\
               z = [ <. ( w .o u ) , ( v .o f ) >. ] ~Q0 ) ) } $.
  $}

  ${
    $d x y z w v u f $.
    $( Multiplication on non-negative fractions.  This definition is similar to
       ~ df-mq0 but expands ` Q0. ` (Contributed by Jim Kingdon,
       22-Nov-2019.) $)
    dfmq0qs $p |- .Q0 = { <. <. x , y >. , z >. |
      ( ( x e. ( ( _om X. N. ) /. ~Q0 ) /\ y e. ( ( _om X. N. ) /. ~Q0 ) ) /\
      E. w E. v E. u E. f (
         ( x = [ <. w , v >. ] ~Q0 /\ y = [ <. u , f >. ] ~Q0 ) /\
               z = [ <. ( w .o u ) , ( v .o f ) >. ] ~Q0 ) ) } $=
      ( cv cnq0 wcel wa cop ceq0 cec wceq comu co wex coprab df-nq0 com cxp cqs
      cmq0 cnpi df-mq0 eleq2i anbi12i anbi1i oprabbii eqtri ) UDAHZIJZBHZIJZKZU
      LDHZEHZLMNOUNFHZGHZLMNOKCHUQUSPQURUTPQLMNOKGRFRERDRZKZABCSULUAUEUBMUCZJZU
      NVCJZKZVAKZABCSABCDEFGUFVBVGABCUPVFVAUMVDUOVEIVCULTUGIVCUNTUGUHUIUJUK $.

    $( Addition on non-negative fractions.  This definition is similar to
       ~ df-plq0 but expands ` Q0. ` (Contributed by Jim Kingdon,
       24-Nov-2019.) $)
    dfplq0qs $p |- +Q0 = { <. <. x , y >. , z >. |
      ( ( x e. ( ( _om X. N. ) /. ~Q0 ) /\ y e. ( ( _om X. N. ) /. ~Q0 ) ) /\
      E. w E. v E. u E. f (
         ( x = [ <. w , v >. ] ~Q0 /\ y = [ <. u , f >. ] ~Q0 ) /\
           z = [ <. ( ( w .o f ) +o ( v .o u ) ) ,
             ( v .o f ) >. ] ~Q0 ) ) } $=
      ( cv cnq0 wcel wa cop ceq0 cec wceq comu co wex coprab df-nq0 coa com cxp
      cplq0 cnpi cqs df-plq0 eleq2i anbi12i anbi1i oprabbii eqtri ) UDAHZIJZBHZ
      IJZKZUMDHZEHZLMNOUOFHZGHZLMNOKCHURVAPQUSUTPQUAQUSVAPQLMNOKGRFRERDRZKZABCS
      UMUBUEUCMUFZJZUOVDJZKZVBKZABCSABCDEFGUGVCVHABCUQVGVBUNVEUPVFIVDUMTUHIVDUO
      TUHUIUJUKUL $.
  $}

  ${
    $d u v w x y z $.
    $( Equivalence on positive fractions in terms of equivalence on
       non-negative fractions.  (Contributed by Jim Kingdon, 12-Nov-2019.) $)
    enq0enq $p |- ~Q = ( ~Q0 i^i ( ( N. X. N. ) X. ( N. X. N. ) ) ) $=
      ( vx vy vz vw vv vu cnpi cv com wcel wa wceq co copab bitr4i anbi1i anass
      wex 3bitr3i 19.42vv ceq0 cxp cin cop ceq df-enq0 df-xp ineq12i inopab cmi
      comu an32 an4 wss pinn ssriv xpss1 ax-mp sseli anbi12i bitri eleq1 opelxp
      pm4.71ri syl6bb bi2anan9 pm5.32i wb mulpiord eqeqan12d an42s anbi2i ancom
      2exbii opabbii df-enq eqtr4i 3eqtrri ) UAGGUBZVSUBZUCAHZIGUBZJZBHZWBJZKZW
      ACHZDHZUDZLZWDEHZFHZUDZLZKZWGWLUKMZWHWKUKMZLZKZFRERZDRCRZKZABNZWAVSJZWDVS
      JZKZABNZUCXBXFKZABNZUEUAXCVTXGABCDEFUFABVSVSUGUHXBXFABUIXIXFWOWGWLUJMZWHW
      KUJMZLZKZFRERZDRCRKZABNUEXHXOABXHXFXAKZXOXHWFXFKZXAKXPWFXAXFULXQXFXAXQWCX
      DKZWEXEKZKXFWCWEXDXEUMXDXRXEXSXDWCVSWBWAGIUNVSWBUNAGIWAUOUPGIGUQURZUSVDXE
      WEVSWBWDXTUSVDUTOPVAXFWTKZDRCRXFXNKZDRCRXPXOYAYBCDXFWSKZFRERXFXMKZFRERYAY
      BYCYDEFXFWOKZWRKZYEXLKZYCYDWOXFKZWRKZYHXLKZYFYGYIWOWGGJZWHGJZKZWKGJZWLGJZ
      KZKZKZXLKZYJYIWOYQXLKZKZYSYIWOYQWRKZKZUUAYIYRWRKUUCYHYRWRWOXFYQWJXDYMWNXE
      YPWJXDWIVSJYMWAWIVSVBWGWHGGVCVEWNXEWMVSJYPWDWMVSVBWKWLGGVCVEVFVGZPWOYQWRQ
      VAYTUUBWOYQXLWRYKYOYLYNXLWRVHYKYOKYLYNKXJWPXKWQWGWLVIWHWKVIVJVKVGVLOWOYQX
      LQOYHYRXLUUDPOYHYEWRWOXFVMZPYHYEXLUUEPSXFWOWRQXFWOXLQSVNXFWSEFTXFXMEFTSVN
      XFWTCDTXFXNCDTSVAVOABCDEFVPVQVR $.
  $}

  ${
    $d f a b c d u v w x y z $.  $d g a b c d u v w x y z $.
    $( The equivalence relation for non-negative fractions is symmetric.  Lemma
       for ~ enq0er .  (Contributed by Jim Kingdon, 14-Nov-2019.) $)
    enq0sym $p |- ( f ~Q0 g -> g ~Q0 f ) $=
      ( vc vd va vb vz vw vv vu cv com wcel wa wceq comu co wex anbi1d anbi12d
      vx vy ceq0 wbr cnpi cxp cop vex eleq1 eqeq1 4exbidv anbi2d df-enq0 biimpi
      brab opeq12 eqeq2d simpl oveq1d simpr eqeq12d oveq2d cbvex4v anbi2i sylib
      19.42vv sylibr 2exbii pm3.22 adantr ad2antrl simprr opelxp syl6bb biimpcd
      wb im2anan9 adantrr pinn nnmcom sylan2 sylan eqeqan12d an42s mpbid eqcomd
      imp syl jca32 2eximi exrot4 biimpri sylan2br sylbi ) AKZBKZUCUDZWPLUEUFZM
      ZWOWRMZNZWPCKZDKZUGZOZWOEKZFKZUGZOZNZXBXGPQZXCXFPQZOZNZNZDRCRZFRERZWPWOUC
      UDZWQWTWSNZXIXENZXFXCPQZXGXBPQZOZNZNZDRCRZFRERZXQWQXSYDDRCRZNZFRERZYGWQXS
      YHFRERZNZYJWQXSWOGKZHKZUGZOZWPIKZJKZUGZOZNZYMYRPQZYNYQPQZOZNZJRIRHRGRZNZY
      LWQUUGUAKZWRMZUBKZWRMZNZUUHYOOZUUJYSOZNZUUDNZJRIRHRGRZNZWTUUKNZYPUUNNZUUD
      NZJRIRHRGRZNUUGUAUBWOWPUCAUHZBUHZUUHWOOZUULUUSUUQUVBUVEUUIWTUUKUUHWOWRUIS
      UVEUUPUVAGHIJUVEUUOUUTUUDUVEUUMYPUUNUUHWOYOUJSSUKTUUJWPOZUUSXSUVBUUFUVFUU
      KWSWTUUJWPWRUIULUVFUVAUUEGHIJUVFUUTUUAUUDUVFUUNYTYPUUJWPYSUJULSUKTUAUBGHI
      JUMZUOUNUUFYKXSUUEXIYTNZXFYRPQZXGYQPQZOZNYDGHIJEFCDYMXFOZYNXGOZNZUUAUVHUU
      DUVKUVNYPXIYTUVNYOXHWOYMYNXFXGUPUQSUVNUUBUVIUUCUVJUVNYMXFYRPUVLUVMURUSUVN
      YNXGYQPUVLUVMUTUSVATYQXBOZYRXCOZNZUVHXTUVKYCUVQYTXEXIUVQYSXDWPYQYRXBXCUPU
      QULUVQUVIYAUVJYBUVQYRXCXFPUVOUVPUTVBUVQYQXBXGPUVOUVPURVBVATVCVDVEXSYHEFVF
      VGYFYIEFXSYDCDVFVHVGYFXPEFYEXOCDYEXAXJXMXSXAYDWTWSVIVJXTXJXSYCXIXEVIVKYEX
      LXKYEYCXLXKOZXSXTYCVLYEXFLMZXGUEMZNZXBLMZXCUEMZNZNZYCUVRVPZXSXTUWEYCXSXTU
      WEWTXIUWAWSXEUWDXIWTUWAXIWTXHWRMUWAWOXHWRUIXFXGLUEVMVNVOXEWSUWDXEWSXDWRMU
      WDWPXDWRUIXBXCLUEVMVNVOVQWGVRUVSUWCUVTUWBUWFUVSUWCNUVTUWBNYAXLYBXKUWCUVSX
      CLMYAXLOXCVSXFXCVTWAUVTXGLMUWBYBXKOXGVSXGXBVTWBWCWDWHWEWFWIWJWJWHXQXOFRER
      ZDRCRZXRXOEFCDWKUWHXAXNFRERZNZDRCRZXRUWGUWJCDXAXNEFVFVHUWKXAUWIDRCRZNXRXA
      UWICDVFUWLXAWPYOOZWOYSOZNZUUDNZJRIRHRGRZXRUWPXEUWNNZXBYRPQZXCYQPQZOZNXNGH
      IJCDEFYMXBOZYNXCOZNZUWOUWRUUDUXAUXDUWMXEUWNUXDYOXDWPYMYNXBXCUPUQSUXDUUBUW
      SUUCUWTUXDYMXBYRPUXBUXCURUSUXDYNXCYQPUXBUXCUTUSVATYQXFOZYRXGOZNZUWRXJUXAX
      MUXGUWNXIXEUXGYSXHWOYQYRXFXGUPUQULUXGUWSXKUWTXLUXGYRXGXBPUXEUXFUTVBUXGYQX
      FXCPUXEUXFURVBVATVCXRXAUWQNZUURWSUUKNZUWMUUNNZUUDNZJRIRHRGRZNUXHUAUBWPWOU
      CUVDUVCUUHWPOZUULUXIUUQUXLUXMUUIWSUUKUUHWPWRUISUXMUUPUXKGHIJUXMUUOUXJUUDU
      XMUUMUWMUUNUUHWPYOUJSSUKTUUJWOOZUXIXAUXLUWQUXNUUKWTWSUUJWOWRUIULUXNUXKUWP
      GHIJUXNUXJUWOUUDUXNUUNUWNUWMUUJWOYSUJULSUKTUVGUOWLWMWNWNWNWH $.
  $}

  ${
    $d f u v w x y z $.
    $( The equivalence relation for non-negative fractions is reflexive.  Lemma
       for ~ enq0er .  (Contributed by Jim Kingdon, 14-Nov-2019.) $)
    enq0ref $p |- ( f e. ( _om X. N. ) <-> f ~Q0 f ) $=
      ( vz vw vv vu vx vy cv com cnpi wcel ceq0 wceq comu wex vex anbi2d anbi1d
      wa co cxp wbr elxpi ee4anv sylanbrc eqtr2 opth sylib oveq1 oveq2 sylan9eq
      cop equcoms syl ancli ad2ant2r pinn nnmcom sylan2 eqeq2d ancoms ad2ant2lr
      wb ad2ant2l mpbid 2eximi eleq1 eqeq1 4exbidv anbi12d df-enq0 anidm anbi1i
      brab bitri sylibr simplbi impbii ) AHZIJUAZKZVSVSLUBZWAWAVSBHZCHZULZMZVSD
      HZEHZULZMZSZWCWHNTZWDWGNTZMZSZEODOZCOBOZSZWBWAWQWAWFWCIKZWDJKZSZSZWJWGIKZ
      WHJKZSZSZSZEODOZCOBOZWQWAXBCOBOXFEODOXIBCVSIJUCDEVSIJUCXBXFBCDEUDUEXHWPBC
      XGWODEXGWKWLWGWDNTZMZSZWOWFWJXLXAXEWKXKWKWCWGMZWDWHMZSZXKWKWEWIMXOVSWEWIU
      FWCWDWGWHBPCPUGUHXMXNWLWGWHNTZXJWCWGWHNUIXPXJMECWHWDWGNUJUMUKUNUOUPXGXKWN
      WKXAXEXKWNVCZWFWJWTXCXQWSXDXCWTXQXCWTSXJWMWLWTXCWDIKXJWMMWDUQWGWDURUSUTVA
      VBVDQVEVFVFUNUOWBWAWASZWQSZWRFHZVTKZGHZVTKZSZXTWEMZYBWIMZSZWNSZEODOCOBOZS
      WAYCSZWFYFSZWNSZEODOCOBOZSXSFGVSVSLAPZYNXTVSMZYDYJYIYMYOYAWAYCXTVSVTVGRYO
      YHYLBCDEYOYGYKWNYOYEWFYFXTVSWEVHRRVIVJYBVSMZYJXRYMWQYPYCWAWAYBVSVTVGQYPYL
      WOBCDEYPYKWKWNYPYFWJWFYBVSWIVHQRVIVJFGBCDEVKVNXRWAWQWAVLVMVOZVPWBWAWQYQVQ
      VR $.
  $}

  ${
    $d a b c d e f s t u v w x y z $.  $d a b c d e g s t u v w x y z $.
    $d a b c d e h s t u v w x y z $.
    $( The equivalence relation for non-negative fractions is transitive.
       Lemma for ~ enq0er .  (Contributed by Jim Kingdon, 14-Nov-2019.) $)
    enq0tr $p |- ( ( f ~Q0 g /\ g ~Q0 h ) -> f ~Q0 h ) $=
      ( vz vw vs vt vv vu va vb cv wa com wcel wceq comu co wex c0 vx vy vc wbr
      vd ve ceq0 cnpi cxp cop w3a vex eleq1 anbi1d eqeq1 4exbidv anbi12d anbi2d
      df-enq0 anbi12i biimpi an4 sylib 3anass anass anbi2i anidm anbi1i 3bitr2i
      bitr4i sylibr ee8anv 19.42vvvv 2exbii bitri 3simpb adantr simplll simprlr
      brab jca adantl oveq1 simpl3 eqeltrrd opelxp simprd pinn syl nnm0r eqeq2d
      wo syl5ib wb simprr eqtr2 opth eqeqan12d ad2ant2lr ad2ant2r mpbird eqeq1d
      sylibd simpllr simpl2 simpld nnm00 syl2anc wn elni2 simprbi biorf sylibrd
      n0i 3syl simpl1 nnm0 oveq2 syl5ibrcom syld orcom syl6bb jcad eqtr3 eqcomd
      syl6 simplr oveq12d nnmcl nnmcom nnmass caov13d caovassd 3eqtr3d syl31anc
      nnmcan mpbid caov12d 2eximi exlimivv 3jca sylan ex 0elnn mpjaod jca32 ) A
      LZBLZUGUDZUUHCLZUGUDZMZUUGNUHUIZOZUUJUUMOZMZUUGDLZELZUJZPZUUJFLZGLZUJZPZM
      ZUUQUVBQRZUURUVAQRZPZMZMZGSFSZESDSZUUGUUJUGUDZUULUUNUUHUUMOZUUOUKZUUTUUHH
      LZILZUJZPZMZUUQUVQQRZUURUVPQRZPZMZUUHJLZKLZUJZPZUVDMZUWEUVBQRZUWFUVAQRZPZ
      MZMZMZGSFSZKSJSZISHSZESDSZUVLUULUVOUWNGSFSKSJSZISHSESDSZMZUWSUULUVOUWDISH
      SESDSZUWMGSFSKSJSZMZMZUXBUULUUNUVNMZUVNUUOMZMZUXEMZUXFUULUXGUXCMZUXHUXDMZ
      MZUXJUULUXMUUIUXKUUKUXLUALZUUMOZUBLZUUMOZMZUXNUUSPZUXPUVRPZMZUWCMZISHSESD
      SZMUUNUXQMZUUTUXTMZUWCMZISHSESDSZMUXKUAUBUUGUUHUGAULZBULZUXNUUGPZUXRUYDUY
      CUYGUYJUXOUUNUXQUXNUUGUUMUMUNZUYJUYBUYFDEHIUYJUYAUYEUWCUYJUXSUUTUXTUXNUUG
      UUSUOZUNUNUPUQUXPUUHPZUYDUXGUYGUXCUYMUXQUVNUUNUXPUUHUUMUMURUYMUYFUWDDEHIU
      YMUYEUVTUWCUYMUXTUVSUUTUXPUUHUVRUOURUNUPUQUAUBDEHIUSVTUXRUXNUWGPZUXPUVCPZ
      MZUWLMZGSFSKSJSZMUVNUXQMZUWHUYOMZUWLMZGSFSKSJSZMUXLUAUBUUHUUJUGUYICULZUXN
      UUHPZUXRUYSUYRVUBVUDUXOUVNUXQUXNUUHUUMUMUNVUDUYQVUAJKFGVUDUYPUYTUWLVUDUYN
      UWHUYOUXNUUHUWGUOUNUNUPUQUXPUUJPZUYSUXHVUBUXDVUEUXQUUOUVNUXPUUJUUMUMZURVU
      EVUAUWMJKFGVUEUYTUWIUWLVUEUYOUVDUWHUXPUUJUVCUOZURUNUPUQUAUBJKFGUSVTUTVAUX
      GUXCUXHUXDVBVCUVOUXIUXEUVOUUNUXHMZUXIUUNUVNUUOVDUXIUUNUVNUXHMZMUUNUVNUVNM
      ZUUOMZMVUHUUNUVNUXHVEVUKVUIUUNUVNUVNUUOVEVFVUKUXHUUNVUJUVNUUOUVNVGVHVFVIV
      JVHVKUXAUXEUVOUWDUWMDEHIJKFGVLVFVKUWSUVOUWTMZISHSZESDSUXBUWRVUMDEUWQVULHI
      UVOUWNKFGJVMVNVNUVOUWTEHIDVMVOVKUWRUVKDEUWQUVKHIUWPUVKJKUWOUVJFGUWOUUPUVE
      UVHUVOUUPUWNUUNUVNUUOVPVQUWNUVEUVOUWNUUTUVDUUTUVSUWCUWMVRZUWDUWHUVDUWLVSZ
      WAWBUWOUVPTPZUVHTUVPOZUWOVUPUVGTPZUVFTPZMZUVHUWOVUPVURVUSUWOVUPUVATPZVURU
      WOVUPUVQTPZVVAWLZVVAUWOVUPUVQUVAQRZTPZVVCUWOVUPUVPUVBQRZTPZVVEVUPVVFTUVBQ
      RZPUWOVVGUVPTUVBQWCUWOVVHTVVFUWOUVBNOZVVHTPZUWOUVBUHOZVVIUWOUVANOZVVKUWOU
      VCUUMOVVLVVKMUWOUUJUVCUUMUWNUVDUVOVUOWBUUNUVNUUOUWNWDWEUVAUVBNUHWFVCZWGUV
      BWHWIZUVBWJWIZWKWMUWNVVGVVEWNUVOUWNVVFVVDTUWNVVFVVDPZUWLUWDUWIUWLWOUVTUWI
      VVPUWLWNZUWCUWLUVSUWHVVQUUTUVDUVSUWHMZUVPUWEPZUVQUWFPZMZVVQVVRUVRUWGPVWAU
      UHUVRUWGWPUVPUVQUWEUWFHULIULWQVCVVSVVTVVFUWJVVDUWKUVPUWEUVBQWCUVQUWFUVAQW
      CWRWIWSWTXAZXBWBXCUWOUVQNOZVVLVVEVVCWNUWOUVQUHOZVWCUWOUVPNOZVWDUWOUVRUUMO
      VWEVWDMUWOUUHUVRUUMUWNUVSUVOUUTUVSUWCUWMXDWBUUNUVNUUOUWNXEWEUVPUVQNUHWFVC
      ZWGZUVQWHWIZUWOVVLVVKVVMXFZUVQUVAXGXHXCUWOTUVQOZVVBXIZVVAVVCWNUWOVWDVWJVW
      GVWDVWCVWJUVQXJXKWIZUVQTXNZVVBVVAXLXOXMUWOVURVVAUURTQRZTPZUWOUURNOZVWOUWO
      UURUHOZVWPUWOUUQNOZVWQUWOUUSUUMOVWRVWQMUWOUUGUUSUUMUWNUUTUVOVUNWBUUNUVNUU
      OUWNXPWEUUQUURNUHWFVCZWGUURWHWIZUURXQWIZVVAUVGVWNTUVATUURQXRXBXSXTUWOVUPU
      UQTPZVUSUWOVUPVXBVVBWLZVXBUWOVUPUWATPZVXCUWOVUPUWBTPZVXDVUPUWBVWNPUWOVXEU
      VPTUURQXRUWOVWNTUWBVXAWKWMUWOUWAUWBTUVOUVTUWCUWMVSXBXMUWOVWRVWCVXDVXCWNUW
      OVWRVWQVWSXFZVWHUUQUVQXGXHXCUWOVWJVWKVXBVXCWNVWLVWMVWKVXBVVBVXBWLVXCVVBVX
      BXLVVBVXBYAYBXOXMUWOVUSVXBVVJVVOVXBUVFVVHTUUQTUVBQWCXBXSXTYCVUTUVGUVFUVGU
      VFTYDYEYFUWOVUQUVHUWOVUQMUVPUVFQRZUVPUVGQRZPZUVHUWOVXIVUQUWOUUQVVFQRZUVAU
      WBQRZVXGVXHUWOUVQVXJQRZUVQVXKQRZPZVXJVXKPZUWOVVFUWAQRZVVDUWBQRZVXLVXMUWNV
      XPVXQPUVOUWNVVFVVDUWAUWBQVWBUVTUWCUWMYGYHWBUWOUCUEUFVVFUUQUVQNQUWOVWEVVIV
      VFNOZUWOVWEVWDVWFXFZVVNUVPUVBYIXHZVXFVWHUCLZNOZUELZNOZMVYAVYCQRZVYCVYAQRP
      UWOVYAVYCYJWBZVYBVYDUFLZNOUKVYEVYGQRVYAVYCVYGQRQRPUWOVYAVYCVYGYKWBZYLUWOU
      CUEUFUVQUVAUWBNQVYHVWHVWIUWOVWPVWEUWBNOZVWTVXSUURUVPYIXHZYMYNUWOVWCVXJNOZ
      VXKNOZVWJVXNVXOWNVWHUWOVWRVXRVYKVXFVXTUUQVVFYIXHUWOVVLVYIVYLVWIVYJUVAUWBY
      IXHVWLUVQVXJVXKYPYOYQUWOUCUEUFUUQUVPUVBNQVXFVXSVVNVYFVYHYRUWOUCUEUFUVAUUR
      UVPNQVWIVWTVXSVYFVYHYLYNVQUWOVWEUVFNOZUVGNOZUKVUQVXIUVHWNUWOVWEVYMVYNVXSU
      WOVWRVVIVYMVXFVVNUUQUVBYIXHUWOVWPVVLVYNVWTVWIUURUVAYIXHUUAUVPUVFUVGYPUUBY
      QUUCUWOVWEVUPVUQWLVXSUVPUUDWIUUEUUFYSYTYTYSWIUVLUUPUVIGSFSESDSZMZUVMUUPUV
      IEFGDVMUXRUXSUYOMZUVHMZGSFSESDSZMUYDUUTUYOMZUVHMZGSFSESDSZMVYPUAUBUUGUUJU
      GUYHVUCUYJUXRUYDVYSWUBUYKUYJVYRWUADEFGUYJVYQVYTUVHUYJUXSUUTUYOUYLUNUNUPUQ
      VUEUYDUUPWUBVYOVUEUXQUUOUUNVUFURVUEWUAUVIDEFGVUEVYTUVEUVHVUEUYOUVDUUTVUGU
      RUNUPUQUAUBDEFGUSVTVJVC $.
  $}

  ${
    $d f g h x y z w v u $.
    $( The equivalence relation for non-negative fractions is an equivalence
       relation.  (Contributed by Jim Kingdon, 12-Nov-2019.) $)
    enq0er $p |- ~Q0 Er ( _om X. N. ) $=
      ( vf vg vh vx vy vz vw vv vu ceq0 wtru cv wcel wa cop wceq comu wex wbr
      co com cnpi cxp wer df-enq0 relopabi a1i enq0sym adantl enq0tr wb enq0ref
      wrel iserd trud ) UAUBUCZJUDKABCUPJJUMKDLZUPMELZUPMNUQFLZGLZOPURHLZILZOPN
      USVBQTUTVAQTPNIRHRGRFRNDEJDEFGHIUEUFUGALZBLZJSZVDVCJSKABUHUIVEVDCLZJSNVCV
      FJSKABCUJUIVCUPMVCVCJSUKKAULUGUNUO $.
  $}

  ${
    $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 non-negative fractions in terms of natural
       numbers.  (Contributed by NM, 27-Aug-1995.) $)
    enq0breq $p |- ( ( ( A e. _om /\ B e. N. ) /\ ( C e. _om /\ D e. N. ) ) ->
          ( <. A , B >. ~Q0 <. C , D >. <-> ( A .o D ) = ( B .o C ) ) ) $=
      ( vz vw vv vu com wcel cnpi wa cop cv wceq comu co wex cvv anbi1d vx ceq0
      vy cxp wbr wb oveq12 eqeqan12d an42s copsex4g opexg eleq1 4exbidv anbi12d
      anbi2d eqeq1 df-enq0 brabg syl2an opelxpi anim12i biantrurd 3bitr4d ) AIJ
      BKJLZCIJDKJLZLZABMZIKUDZJZCDMZVHJZLZVGENZFNZMZOZVJGNZHNZMZOZLZVMVRPQZVNVQ
      PQZOZLZHRGRFRERZLZVLADPQZBCPQZOZLVGVJUBUEZWJVFWFWJVLWDWJEFGHABCDIKVMAOZVR
      DOZVNBOZVQCOZWDWJUFWLWMLWNWOLWBWHWCWIVMAVRDPUGVNBVQCPUGUHUIUJUOVDVGSJVJSJ
      WKWGUFVEABIKUKCDIKUKUANZVHJZUCNZVHJZLZWPVOOZWRVSOZLZWDLZHRGRFRERZLVIWSLZV
      PXBLZWDLZHRGRFRERZLWGUAUCVGVJSSUBWPVGOZWTXFXEXIXJWQVIWSWPVGVHULTXJXDXHEFG
      HXJXCXGWDXJXAVPXBWPVGVOUPTTUMUNWRVJOZXFVLXIWFXKWSVKVIWRVJVHULUOXKXHWEEFGH
      XKXGWAWDXKXBVTVPWRVJVSUPUOTUMUNUAUCEFGHUQURUSVFVLWJVDVIVEVKABIKUTCDIKUTVA
      VBVC $.
  $}

  $( Equivalence class equality of non-negative fractions in terms of natural
     numbers.  (Contributed by Jim Kingdon, 24-Nov-2019.) $)
  enq0eceq $p |- ( ( ( A e. _om /\ B e. N. ) /\ ( C e. _om /\ D e. N. ) ) ->
                ( [ <. A , B >. ] ~Q0 = [ <. C , D >. ] ~Q0 <->
                ( A .o D ) = ( B .o C ) ) ) $=
    ( com wcel cnpi wa cop ceq0 wbr cec wceq comu co cxp wer enq0er a1i opelxpi
    adantr erth enq0breq bitr3d ) AEFBGFHZCEFDGFHZHZABIZCDIZJKUHJLUIJLMADNOBCNO
    MUGUHUIJEGPZUJJQUGRSUEUHUJFUFABEGTUAUBABCDUCUD $.

  ${
    $d u v w x y z $.
    $( A non-negative fraction is a positive fraction if its numerator and
       denominator are positive integers.  (Contributed by Jim Kingdon,
       10-Nov-2019.) $)
    nqnq0pi $p |- ( ( A e. N. /\ B e. N. ) ->
        [ <. A , B >. ] ~Q0 = [ <. A , B >. ] ~Q ) $=
      ( vy vx vz vw vu vv cnpi wcel wa cop ceq0 wceq cv wex com wb c0 wn opelxp
      cec cxp cin ceq cima wss wbr vex elima2 elxp anbi1i 19.41vv bitr4i simplr
      breq1 adantr biimpa wer enq0er simpr ercl2 sylib 19.42vv sylanbrc syl2anc
      id a1i wne simprrl wo comu co simprbi neneqd ad2antrr ad2antll jca pm4.56
      elni pinn nnm00 mtbird ad2ant2rl breq2 biimpac ad2ant2lr enq0breq sylanl1
      mpbid eqeq1d mtbid sylan sylibr simprd neneqad simprrr ad2antrl mpbir2and
      eleq1 syl6bb exlimivv syl sylbi exlimiv ssriv ecinxp sylbir enq0enq eceq2
      mpan ax-mp syl6eqr ) AIJBIJKZABLZMUBZXOMIIUCZXQUCUDZUBZXOUEUBZXNXOXQJZXPX
      SNZABIIUAMXQUFZXQUGYAYBCYCXQCOZYCJDOZXQJZYEYDMUHZKZDPYDXQJZDYDMXQCUIUJYHY
      IDYHYEEOZFOZLZNZYJIJZYKIJZKZKZYGKZFPEPZYIYHYQFPEPZYGKYSYFYTYGEFYEIIUKULYQ
      YGEFUMUNYRYIEFYRYPYLYDMUHZKZYDGOZHOZLZNZUUCQJZUUDIJZKZKZKZHPGPZYIYRYPUUAU
      ULYMYPYGUOYQYGUUAYMYGUUARYPYEYLYDMUPUQURUUBUUBUUJHPGPZUULUUBVGUUBYDQIUCZJ
      UUMUUBYLYDMUUNUUNMUSUUBUTVHYPUUAVAVBGHYDQIUKVCUUBUUJGHVDVEVFUUKYIGHUUKYIU
      UCIJZUUHUUKUUGUUCSVIUUOUUBUUFUUGUUHVJUUKUUCSUUKYKSNZTZUUCSNZTZUUKUUPUURVK
      ZTUUQUUSKUUKYKUUCVLVMZSNZUUTUUKYJUUDVLVMZSNZUVBYPUUIUVDTUUAUUFYPUUIKZUVDY
      JSNZUUDSNZVKZUVEUVFTZUVGTZKUVHTUVEUVIUVJYNUVIYOUUIYNYJSYNYJQJZYJSVIYJVTVN
      VOVPUUHUVJYPUUGUUHUUDSUUHUUDQJZUUDSVIUUDVTVNVOVQVRUVFUVGVSVCUVEUVKUVLUVDU
      VHRYNUVKYOUUIYJWAZVPUUHUVLYPUUGUUDWAVQYJUUDWBVFWCWDUUKUVCUVASUUKYLUUEMUHZ
      UVCUVANZUUAUUFUVNYPUUIUUFUUAUVNYDUUEYLMWEWFWGYPUUIUVNUVORZUUAUUFYNUVKYOUU
      IUVPUVMYJYKUUCUUDWHWIWDWJWKWLYPUUIUVBUUTRZUUAUUFYOUUGUVQYNUUHYOYKQJUUGUVQ
      YKWAYKUUCWBWMWGWDWLUUPUURVSWNWOWPUUCVTVEUUBUUFUUGUUHWQUUFYIUUOUUHKZRUUBUU
      IUUFYIUUEXQJUVRYDUUEXQWTUUCUUDIIUAXAWRWSXBXCXBXDXEXDXFXQXOMXGXKXHUEXRNXTX
      SNXIUEXRXOXJXLXM $.
  $}

  ${
    $d x y z w v u $.
    $( The equivalence relation for positive fractions exists.  (Contributed by
       Jim Kingdon, 18-Nov-2019.) $)
    enq0ex $p |- ~Q0 e. _V $=
      ( vv vu vx vy vz vw ceq0 com cnpi cxp omex xpex cv wcel cop wceq comu wex
      wa co niex copab df-enq0 opabssxp eqsstri ssexi ) GHIJZUGJZUGUGHIKUALZUIL
      GAMZUGNBMZUGNSUJCMZDMZOPUKEMZFMZOPSULUOQTUMUNQTPSFRERDRCRZSABUBUHABCDEFUC
      UPABUGUGUDUEUF $.
  $}

  $( The class of positive fractions exists.  (Contributed by Jim Kingdon,
     18-Nov-2019.) $)
  nq0ex $p |- Q0. e. _V $=
    ( cnq0 com cnpi cxp ceq0 cqs cvv df-nq0 omex niex xpex qsex eqeltri ) ABCDZ
    EFGHNEBCIJKLM $.

  ${
    $d u v x y $.
    $( A positive fraction is a non-negative fraction.  (Contributed by Jim
       Kingdon, 18-Nov-2019.) $)
    nqnq0 $p |- Q. C_ Q0. $=
      ( vy vx vu vv cnq cnq0 cv wcel cnpi ceq cec wceq wa ceq0 adantl wb adantr
      wex mpbird com cxp cqs wrex df-nqqs eleq2i vex elqs df-rex 3bitri nqnq0pi
      cop elxpi eceq1 eqeq12d pinn opelxpi sylan eleq1 enq0ex ecelqsi syl6eleqr
      df-nq0 syl eqeltrrd exlimivv exlimiv sylbi ssriv ) AEFAGZEHZBGZIIUAZHZVIV
      KJKZLZMZBRZVIFHZVJVIVLJUBZHVOBVLUCVQEVSVIUDUEBVLVIJAUFUGVOBVLUHUIVPVRBVPV
      RVNFHZVMVTVOVMVKCGZDGZUKZLZWAIHZWBIHZMZMZDRCRVTCDVKIIULWHVTCDWHVKNKZVNFWH
      WIVNLZWCNKZWCJKZLZWGWMWDWAWBUJOWDWJWMPWGWDWIWKVNWLVKWCNUMVKWCJUMUNQSWHVKT
      IUAZHZWIFHWHWOWCWNHZWGWPWDWEWATHWFWPWAUOWAWBTIUPUQOWDWOWPPWGVKWCWNURQSWOW
      IWNNUBFWNVKNUSUTVBVAVCVDVEVCQVOVRVTPVMVIVNFUROSVFVGVH $.
  $}

  ${
    $d A a v w $.
    $( Decomposition of a non-negative fraction into numerator and denominator.
       (Contributed by Jim Kingdon, 24-Nov-2019.) $)
    nq0nn $p |- ( A e. Q0. ->
        E. w E. v ( ( w e. _om /\ v e. N. ) /\ A = [ <. w , v >. ] ~Q0 ) ) $=
      ( va cv com wcel cnpi cop ceq0 cec wceq wex cxp cqs cnq0 wrex elqsi syl
      wa elxpi anim1i sylibr simplr simpr eceq1 ad2antrr eqtrd 2eximi rexlimiva
      19.41vv jca df-nq0 eleq2s ) AEZFGBEZHGTZCUOUPIZJKZLZTZBMAMZCFHNZJOZPCVDGC
      DEZJKZLZDVCQVBDVCCJRVGVBDVCVEVCGZVGTZVEURLZUQTZVGTZBMAMZVBVIVKBMAMZVGTVMV
      HVNVGABVEFHUAUBVKVGABUKUCVLVAABVLUQUTVJUQVGUDVLCVFUSVKVGUEVJVFUSLUQVGVEUR
      JUFUGUHULUISUJSUMUN $.
  $}

  ${
    $d A x y z $.  $d B x y z $.  $d C x y z $.  $d D x y z $.  $d F x y z $.
    $d G x y z $.  $d R x y z $.  $d S x y z $.
    $( Lemma showing compatibility of addition on non-negative fractions.
       (Contributed by Jim Kingdon, 23-Nov-2019.) $)
    addcmpblnq0 $p |- ( ( ( ( A e. _om /\ B e. N. ) /\ ( C e. _om /\ D e. N. )
             ) /\ ( ( F e. _om /\ G e. N. ) /\ ( R e. _om /\ S e. N. ) ) ) ->
                ( ( ( A .o D ) = ( B .o C ) /\ ( F .o S ) = ( G .o R ) ) ->
        <. ( ( A .o G ) +o ( B .o F ) ) , ( B .o G ) >. ~Q0
         <. ( ( C .o S ) +o ( D .o R ) ) , ( D .o S ) >. ) ) $=
      ( vx vy com wcel cnpi wa comu co wceq coa nnmcl syl2anc vz cop wbr cv w3a
      ceq0 nndi adantl simplll simprlr pinn syl simpllr simprll simplrr simprrr
      nnacl nnmcom caovdir2d nnmass caov4d eqtrd oveq1 oveq2 oveqan12d sylan9eq
      oveq12d simplrl simprrl syl3anc adantr mulpiord mulclpi eqeltrrd ad2ant2l
      eqtr4d wb cmi ad2ant2r enq0breq syl22anc mpbird ex ) AKLZBMLZNZCKLZDMLZNZ
      NZGKLZHMLZNZEKLZFMLZNZNZNZADOPZBCOPZQZGFOPZHEOPZQZNZAHOPZBGOPZRPZBHOPZUBC
      FOPZDEOPZRPZDFOPZUBUFUCZWRXENZXNXHXMOPZXIXLOPZQZXOXPWTHFOPZOPZBDOPZXCOPZR
      PZXQWRXEXPWSXSOPZYAXBOPZRPZYCWRXPXFXMOPZXGXMOPZRPYFWRIJUAXFXGXMKROIUDZKLZ
      JUDZKLZUAUDZKLUEZYIYKYMRPOPYIYKOPZYIYMOPRPQWRYIYKYMUGUHWRWDHKLZXFKLZWDWEW
      IWQUIZWRWLYPWJWKWLWPUJHUKULZAHSTZWRBKLZWKXGKLZWRWEUUAWDWEWIWQUMBUKULZWJWK
      WLWPUNZBGSTZWRDKLZFKLZXMKLWRWHUUFWFWGWHWQUODUKULZWRWOUUGWJWMWNWOUPFUKULZD
      FSTYJYLNZYIYKRPKLWRYIYKUQUHUUJYOYKYIOPQWRYIYKURUHZUSWRYGYDYHYERWRIJUAAHDF
      KOYRYSUUHUUKYNYOYMOPYIYKYMOPOPQWRYIYKYMUTUHZUUIUUJYOKLWRYIYKSUHZVAWRIJUAB
      GDFKOUUCUUDUUHUUKUULUUIUUMVAVGVBXAXDYDXTYEYBRWSWTXSOVCXBXCYAOVDVEVFWRXQYC
      QXEWRXQXIXJOPZXIXKOPZRPZYCWRXIKLZXJKLZXKKLZXQUUPQWRUUAYPUUQUUCYSBHSTWRWGU
      UGUURWFWGWHWQVHZUUICFSTZWRUUFWNUUSUUHWJWMWNWOVIZDESTZXIXJXKUGVJWRUUNXTUUO
      YBRWRIJUABHCFKOUUCYSUUTUUKUULUUIUUMVAWRIJUABHDEKOUUCYSUUHUUKUULUVBUUMVAVG
      VBVKVPWRXNXRVQZXEWRXHKLZXIMLZXLKLZXMMLZUVDWRYQUUBUVEYTUUEXFXGUQTWFWMUVFWI
      WPWEWLUVFWDWKWEWLNBHVRPXIMBHVLBHVMVNVOVSWRUURUUSUVGUVAUVCXJXKUQTWIWPUVHWF
      WMWHWOUVHWGWNWHWONDFVRPXMMDFVLDFVMVNVOVOXHXIXLXMVTWAVKWBWC $.

    $( Lemma showing compatibility of multiplication on non-negative fractions.
       (Contributed by Jim Kingdon, 20-Nov-2019.) $)
    mulcmpblnq0 $p |- ( ( ( ( A e. _om /\ B e. N. ) /\ ( C e. _om /\ D e. N. )
             ) /\ ( ( F e. _om /\ G e. N. ) /\ ( R e. _om /\ S e. N. ) ) ) ->
                ( ( ( A .o D ) = ( B .o C ) /\ ( F .o S ) = ( G .o R ) ) ->
     <. ( A .o F ) , ( B .o G ) >. ~Q0 <. ( C .o R ) , ( D .o S ) >. ) ) $=
      ( vx vy vz comu co wceq wa com wcel cnpi syl pinn cop wbr oveq12 wb nnmcl
      cmi mulpiord mulclpi eqeltrrd anim12i enq0breq simplll simprll simplrr cv
      ceq0 an4s nnmcom adantl w3a nnmass simprrr caov4d simpllr simprlr simplrl
      simprrl eqeq12d bitrd syl5ibr ) ADLMZBCLMZNGFLMZHELMZNOAGLMZBHLMZUACELMZD
      FLMZUAUPUBZAPQZBRQZOZCPQZDRQZOZOZGPQZHRQZOZEPQZFRQZOZOZOZVKVMLMZVLVNLMZNZ
      VKVLVMVNLUCWNVSVOVRLMZVPVQLMZNZWQWNVOPQZVPRQZOZVQPQZVRRQZOZOZVSWTUDWBWIWE
      WLXGWBWIOXCWEWLOXFVTWGWAWHXCVTWGOXAWAWHOZXBAGUEXHBHUFMVPRBHUGBHUHUIUJUQWC
      WJWDWKXFWCWJOXDWDWKOZXECEUEXIDFUFMVRRDFUGDFUHUIUJUQUJUQVOVPVQVRUKSWNWRWOW
      SWPWNIJKAGDFPLVTWAWEWMULWFWGWHWLUMWNWDDPQWBWCWDWMUNDTSIUOZPQZJUOZPQZOZXJX
      LLMZXLXJLMNWNXJXLURUSZXKXMKUOZPQUTXOXQLMXJXLXQLMLMNWNXJXLXQVAUSZWNWKFPQWF
      WIWJWKVBFTSXNXOPQWNXJXLUEUSZVCWNIJKBHCEPLWNWABPQVTWAWEWMVDBTSWNWHHPQWFWGW
      HWLVEHTSWBWCWDWMVFXPXRWFWIWJWKVGXSVCVHVIVJ $.
  $}

  ${
    $d A x y z $.  $d B x y z $.  $d C x y z $.
    $( Lemma for distributive law: cancellation of common factor.  (Contributed
       by Jim Kingdon, 29-Nov-2019.) $)
    mulcanenq0ec $p |- ( ( A e. N. /\ B e. _om /\ C e. N. ) ->
        [ <. ( A .o B ) , ( A .o C ) >. ] ~Q0 = [ <. B , C >. ] ~Q0 ) $=
      ( vx vy vz cnpi wcel com w3a comu co cop ceq0 cxp wceq pinn cv wa adantl
      wer enq0er a1i wbr 3ad2ant1 simp2 3ad2ant3 nnmcom nnmass caov32d wb nnmcl
      sylan cmi mulpiord mulclpi eqeltrrd anim12i simpr jca 3impdi enq0breq syl
      an4s mpbird erthi ) AGHZBIHZCGHZJZABKLZACKLZMZBCMZNIGOZVONUAVJUBUCVJVMVNN
      UDZVKCKLVLBKLPZVJDEFABCIKVGVHAIHZVIAQZUEVGVHVIUFVIVGCIHVHCQUGDRZIHZERZIHZ
      SVTWBKLZWBVTKLPVJVTWBUHTWAWCFRZIHJWDWEKLVTWBWEKLKLPVJVTWBWEUITUJVJVKIHZVL
      GHZSZVHVISZSZVPVQUKVGVHVIWJVGVHSZVGVISZSWHWIWKWFWLWGVGVRVHWFVSABULUMWLACU
      NLVLGACUOACUPUQURVGVGVHVIWIVGVGSWIUSVDUTVAVKVLBCVBVCVEVF $.
  $}

  ${
    $d z w v u t s q f g h A $.  $d z w v u t s q f g h B $.

    $( Decomposing non-negative fractions into natural numbers.  Lemma for
       ~ addnnnq0 and ~ mulnnnq0 .  (Contributed by Jim Kingdon,
       23-Nov-2019.) $)
    nnnq0lem1 $p |- ( (
        ( A e. ( ( _om X. N. ) /. ~Q0 ) /\ B e. ( ( _om X. N. ) /. ~Q0 ) )
        /\ ( ( ( A = [ <. w , v >. ] ~Q0 /\ B = [ <. u , t >. ] ~Q0 )
          /\ z = [ C ] ~Q0 )
        /\ ( ( A = [ <. s , f >. ] ~Q0 /\ B = [ <. g , h >. ] ~Q0 )
          /\ q = [ D ] ~Q0 ) ) ) -> (
        ( ( ( w e. _om /\ v e. N. ) /\ ( s e. _om /\ f e. N. ) )
          /\ ( ( u e. _om /\ t e. N. ) /\ ( g e. _om /\ h e. N. ) ) )
        /\ ( ( w .o f ) = ( v .o s ) /\ ( u .o h ) = ( t .o g ) ) ) ) $=
      ( com ceq0 wcel wa cv wceq cnpi cxp cqs cop cec comu cdm wer enq0er ax-mp
      co erdm simpll simplll eleq1d adantl mpbid ecelqsdm sylancr sylib simprll
      wb opelxp jca simplr simpllr simprlr wbr eqtr3d a1i erth enq0breq syl2anc
      mpbird jca31 ) FOUAUBZPUCZQZGVQQZRZFBSZCSZUDZPUEZTZGDSZESZUDZPUEZTZRASHPU
      ETZRZFMSZJSZUDZPUEZTZGKSZLSZUDZPUEZTZRNSIPUETZRZRZRZWAOQWBUAQRZWMOQWNUAQR
      ZRWFOQWGUAQRZWROQWSUAQRZRWAWNUFUKWBWMUFUKTZWFWSUFUKWGWRUFUKTZRXFXGXHXFWCV
      PQZXGXFPUGVPTZWDVQQZXMVPPUHZXNUIVPPULUJZXFVRXOVRVSXEUMZXEVRXOVBVTXEFWDVQW
      EWJWKXDUNZUOUPUQVPWCPURUSZWAWBOUAVCUTZXFWOVPQZXHXFXNWPVQQZYBXQXFVRYCXRXEV
      RYCVBVTXEFWPVQWLWQXBXCVAZUOUPUQVPWOPURUSWMWNOUAVCUTZVDXFXIXJXFWHVPQZXIXFX
      NWIVQQZYFXQXFVSYGVRVSXEVEZXEVSYGVBVTXEGWIVQWEWJWKXDVFZUOUPUQVPWHPURUSZWFW
      GOUAVCUTZXFWTVPQZXJXFXNXAVQQZYLXQXFVSYMYHXEVSYMVBVTXEGXAVQWLWQXBXCVGZUOUP
      UQVPWTPURUSWRWSOUAVCUTZVDXFXKXLXFWCWOPVHZXKXFYPWDWPTZXEYQVTXEFWDWPXSYDVIU
      PXFWCWOPVPXPXFUIVJZXTVKVNXFXGXHYPXKVBYAYEWAWBWMWNVLVMUQXFWHWTPVHZXLXFYSWI
      XATZXEYTVTXEGWIXAYIYNVIUPXFWHWTPVPYRYJVKVNXFXIXJYSXLVBYKYOWFWGWRWSVLVMUQV
      DVO $.
  $}

  ${
    $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 non-negative fractions.
       (Contributed by Jim Kingdon, 23-Nov-2019.) $)
    addnq0mo $p |- ( ( A e. ( ( _om X. N. ) /. ~Q0 ) /\
        B e. ( ( _om X. N. ) /. ~Q0 ) ) -> E* z E. w E. v E. u E. t
        ( ( A = [ <. w , v >. ] ~Q0 /\ B = [ <. u , t >. ] ~Q0 )
        /\ z = [ <. ( ( w .o t ) +o ( v .o u ) ) , ( v .o t ) >. ] ~Q0 ) ) $=
      ( vq vs vf ceq0 wcel wa cv cop cec wceq comu co wex vg vh com cxp cqs coa
      wi wal wmo wer enq0er a1i wbr nnnq0lem1 addcmpblnq0 imp syl erthi simprlr
      cnpi simprrr 3eqtr4d expr exlimdvv ex alrimivv opeq12 eceq1d eqeq2d simpl
      anbi1d oveq1d oveq12d opeq12d anbi12d anbi2d oveq2d cbvex4v anbi2i imbi1i
      impd simpr 2albii sylibr eqeq1 4exbidv mo4 ) FUCUTUDZKUEZLGWILMZFBNZCNZOZ
      KPZQZGDNZENZOZKPZQZMZANZWKWQRSZWLWPRSZUFSZWLWQRSZOZKPZQZMZETDTZCTBTZXAHNZ
      XHQZMZETDTCTBTZMZXBXMQZUGZHUHAUHZXLAUIWJXLFINZJNZOZKPZQZGUANZUBNZOZKPZQZM
      ZXMYAYGRSZYBYFRSZUFSZYBYGRSZOZKPZQZMZUBTUATZJTITZMZXRUGZHUHAUHXTWJUUCAHWJ
      XLUUAXRWJXKUUAXRUGZBCWJXJUUDDEWJXJUUDWJXJMZYTXRIJUUEYSXRUAUBWJXJYSXRWJXJY
      SMMZXHYQXBXMUUFXGYPKWHWHKUJUUFUKULUUFWKUCLWLUTLMYAUCLYBUTLMMWPUCLWQUTLMYF
      UCLYGUTLMMMZWKYBRSWLYARSQWPYGRSWQYFRSQMZMXGYPKUMZABCDEFGXGYPJUAUBIHUNUUGU
      UHUUIWKWLYAYBYFYGWPWQUOUPUQURWJXAXIYSUSWJXJYKYRVAVBVCVDVDVEVDVDWAVFXSUUCA
      HXQUUBXRXPUUAXLXOYEWTMZXMYAWQRSZYBWPRSZUFSZYBWQRSZOZKPZQZMYSBCDEIJUAUBWKY
      AQZWLYBQZMZXAUUJXNUUQUUTWOYEWTUUTWNYDFUUTWMYCKWKWLYAYBVGVHVIVKUUTXHUUPXMU
      UTXGUUOKUUTXEUUMXFUUNUUTXCUUKXDUULUFUUTWKYAWQRUURUUSVJVLUUTWLYBWPRUURUUSW
      BZVLVMUUTWLYBWQRUVAVLVNVHVIVOWPYFQZWQYGQZMZUUJYKUUQYRUVDWTYJYEUVDWSYIGUVD
      WRYHKWPWQYFYGVGVHVIVPUVDUUPYQXMUVDUUOYPKUVDUUMYNUUNYOUVDUUKYLUULYMUFUVDWQ
      YGYARUVBUVCWBZVQUVDWPYFYBRUVBUVCVJVQVMUVDWQYGYBRUVEVQVNVHVIVOVRVSVTWCWDXL
      XPAHXRXJXOBCDEXRXIXNXAXBXMXHWEVPWFWGWD $.

    $( There is at most one result from multiplying non-negative fractions.
       (Contributed by Jim Kingdon, 20-Nov-2019.) $)
    mulnq0mo $p |- ( ( A e. ( ( _om X. N. ) /. ~Q0 ) /\
        B e. ( ( _om X. N. ) /. ~Q0 ) ) -> E* z E. w E. v E. u E. t
        ( ( A = [ <. w , v >. ] ~Q0 /\ B = [ <. u , t >. ] ~Q0 )
        /\ z = [ <. ( w .o u ) , ( v .o t ) >. ] ~Q0 ) ) $=
      ( vq vs vf ceq0 wcel wa cv cop cec wceq comu co wex vg vh com cnpi cxp wi
      cqs wal wmo wer a1i wbr nnnq0lem1 mulcmpblnq0 imp simprlr simprrr 3eqtr4d
      enq0er syl erthi expr exlimdvv alrimivv opeq12 eceq1d eqeq2d anbi1d simpl
      ex impd oveq1d opeq12d anbi12d anbi2d oveq2d cbvex4v anbi2i imbi1i 2albii
      simpr sylibr eqeq1 4exbidv mo4 ) FUCUDUEZKUGZLGWGLMZFBNZCNZOZKPZQZGDNZENZ
      OZKPZQZMZANZWIWNRSZWJWORSZOZKPZQZMZETDTZCTBTZWSHNZXDQZMZETDTCTBTZMZWTXIQZ
      UFZHUHAUHZXHAUIWHXHFINZJNZOZKPZQZGUANZUBNZOZKPZQZMZXIXQYBRSZXRYCRSZOZKPZQ
      ZMZUBTUATZJTITZMZXNUFZHUHAUHXPWHYQAHWHXHYOXNWHXGYOXNUFZBCWHXFYRDEWHXFYRWH
      XFMZYNXNIJYSYMXNUAUBWHXFYMXNWHXFYMMMZXDYKWTXIYTXCYJKWFWFKUJYTUSUKYTWIUCLW
      JUDLMXQUCLXRUDLMMWNUCLWOUDLMYBUCLYCUDLMMMZWIXRRSWJXQRSQWNYCRSWOYBRSQMZMXC
      YJKULZABCDEFGXCYJJUAUBIHUMUUAUUBUUCWIWJXQXRYBYCWNWOUNUOUTVAWHWSXEYMUPWHXF
      YGYLUQURVBVCVCVJVCVCVKVDXOYQAHXMYPXNXLYOXHXKYAWRMZXIXQWNRSZXRWORSZOZKPZQZ
      MYMBCDEIJUAUBWIXQQZWJXRQZMZWSUUDXJUUIUULWMYAWRUULWLXTFUULWKXSKWIWJXQXRVEV
      FVGVHUULXDUUHXIUULXCUUGKUULXAUUEXBUUFUULWIXQWNRUUJUUKVIVLUULWJXRWORUUJUUK
      WAVLVMVFVGVNWNYBQZWOYCQZMZUUDYGUUIYLUUOWRYFYAUUOWQYEGUUOWPYDKWNWOYBYCVEVF
      VGVOUUOUUHYKXIUUOUUGYJKUUOUUEYHUUFYIUUOWNYBXQRUUMUUNVIVPUUOWOYCXRRUUMUUNW
      AVPVMVFVGVNVQVRVSVTWBXHXLAHXNXFXKBCDEXNXEXJWSWTXIXDWCVOWDWEWB $.
  $}

  ${
    $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 non-negative fractions in terms of natural numbers.
       (Contributed by Jim Kingdon, 22-Nov-2019.) $)
    addnnnq0 $p |- ( ( ( A e. _om /\ B e. N. ) /\
                     ( C e. _om /\ D e. N. ) ) ->
                ( [ <. A , B >. ] ~Q0 +Q0 [ <. C , D >. ] ~Q0 ) =
                   [ <. ( ( A .o D ) +o ( B .o C ) ) ,
                              ( B .o D ) >. ] ~Q0 ) $=
      ( vw vv vu vt com wcel cnpi wa cop ceq0 cec cv wceq comu co wex vx vy cxp
      vz cqs coa cplq0 opelxpi enq0ex ecelqsi anim12i eqid pm3.2i opeq12 eceq1d
      eqeq2d anbi1d simpl oveq1d oveq12d opeq12d anbi12d spc2egv anbi2d 2eximdv
      syl simpr oveq2d sylan9 mp2ani cvv wi ecexg ax-mp w3a simp1 simp2 4exbidv
      eqeq1d simp3 addnq0mo dfplq0qs ovig mp3an3 sylc ) AIJBKJLZCIJDKJLZLZABMZN
      OZIKUCZNUEZJZCDMZNOZWLJZLWJEPZFPZMZNOZQZWOGPZHPZMZNOZQZLZADRSZBCRSZUFSZBD
      RSZMZNOZWQXCRSZWRXBRSZUFSZWRXCRSZMZNOZQZLZHTGTZFTETZWJWOUGSXMQZWFWMWGWPWF
      WIWKJWMABIKUHWKWINUIUJVFWGWNWKJWPCDIKUHWKWNNUIUJVFUKWHWJWJQZWOWOQZLZXMXMQ
      ZYCYEYFWJULWOULUMXMULWFYGYHLZXAYFLZXMWQDRSZWRCRSZUFSZWRDRSZMZNOZQZLZFTETW
      GYCYRYIEFABIKWQAQZWRBQZLZYJYGYQYHUUAXAYEYFUUAWTWJWJUUAWSWINWQWRABUNUOUPUQ
      UUAYPXMXMUUAYOXLNUUAYMXJYNXKUUAYKXHYLXIUFUUAWQADRYSYTURUSUUAWRBCRYSYTVGZU
      SUTUUAWRBDRUUBUSVAUOUPVBVCWGYRYBEFYAYRGHCDIKXBCQZXCDQZLZXGYJXTYQUUEXFYFXA
      UUEXEWOWOUUEXDWNNXBXCCDUNUOUPVDUUEXSYPXMUUEXRYONUUEXPYMXQYNUUEXNYKXOYLUFU
      UEXCDWQRUUCUUDVGZVHUUEXBCWRRUUCUUDURVHUTUUEXCDWRRUUFVHVAUOUPVBVCVEVIVJWMW
      PXMVKJZYCYDVLNVKJUUGUIXLVKNVMVNUAPZWTQZUBPZXEQZLZUDPZXSQZLZHTGTFTETYCUAUB
      UDWJWOXMVKWLWLUGUUHWJQZUUJWOQZUUMXMQZVOZUUOYAEFGHUUSUULXGUUNXTUUSUUIXAUUK
      XFUUSUUHWJWTUUPUUQUURVPVSUUSUUJWOXEUUPUUQUURVQVSVBUUSUUMXMXSUUPUUQUURVTVS
      VBVRUDEFGHUUHUUJWAUAUBUDEFGHWBWCWDWE $.

    $( Multiplication of non-negative fractions in terms of natural numbers.
       (Contributed by Jim Kingdon, 19-Nov-2019.) $)
    mulnnnq0 $p |- ( ( ( A e. _om /\ B e. N. ) /\
                     ( C e. _om /\ D e. N. ) ) ->
                ( [ <. A , B >. ] ~Q0 .Q0 [ <. C , D >. ] ~Q0 ) =
                   [ <. ( A .o C ) , ( B .o D ) >. ] ~Q0 ) $=
      ( vw vv vu vt com wcel cnpi wa cop ceq0 cec cv wceq comu co wex vx vy cxp
      vz cqs cmq0 opelxpi enq0ex ecelqsi syl anim12i pm3.2i opeq12 eceq1 eqeq2d
      eqid wb anbi1d vex opth oveq1 adantr adantl opeq12d sylbi anbi12d spc2egv
      eceq1d anbi2d oveq2 2eximdv sylan9 mp2ani cvv wi ecexg ax-mp w3a bi2anan9
      eqeq1 3impa 4exbidv mulnq0mo dfmq0qs ovig mp3an3 sylc ) AIJBKJLZCIJDKJLZL
      ZABMZNOZIKUCZNUEZJZCDMZNOZWNJZLWLEPZFPZMZNOZQZWQGPZHPZMZNOZQZLZACRSZBDRSZ
      MZNOZWSXDRSZWTXERSZMZNOZQZLZHTGTZFTETZWLWQUFSXMQZWHWOWIWRWHWKWMJWOABIKUGW
      MWKNUHUIUJWIWPWMJWRCDIKUGWMWPNUHUIUJUKWJWLWLQZWQWQQZLZXMXMQZYAYCYDWLUPWQU
      PULXMUPWHYEYFLZXCYDLZXMWSCRSZWTDRSZMZNOZQZLZFTETWIYAYNYGEFABIKWSAQZWTBQZL
      ZXAWKQZYNYGUQWSWTABUMYRYHYEYMYFYRXCYCYDYRXBWLWLXAWKNUNUOURYRYLXMXMYRYKXLN
      YRYQYKXLQWSWTABEUSFUSUTYQYIXJYJXKYOYIXJQYPWSACRVAVBYPYJXKQYOWTBDRVAVCVDVE
      VHUOVFUJVGWIYNXTEFXSYNGHCDIKXDCQZXEDQZLZXFWPQZXSYNUQXDXECDUMUUBXIYHXRYMUU
      BXHYDXCUUBXGWQWQXFWPNUNUOVIUUBXQYLXMUUBXPYKNUUBUUAXPYKQXDXECDGUSHUSUTUUAX
      NYIXOYJYSXNYIQYTXDCWSRVJVBYTXOYJQYSXEDWTRVJVCVDVEVHUOVFUJVGVKVLVMWOWRXMVN
      JZYAYBVONVNJUUCUHXLVNNVPVQUAPZXBQZUBPZXGQZLZUDPZXQQZLZHTGTFTETYAUAUBUDWLW
      QXMVNWNWNUFUUDWLQZUUFWQQZUUIXMQZVRUUKXSEFGHUULUUMUUNUUKXSUQUULUUMLUUHXIUU
      NUUJXRUULUUEXCUUMUUGXHUUDWLXBVTUUFWQXGVTVSUUIXMXQVTVSWAWBUDEFGHUUDUUFWCUA
      UBUDEFGHWDWEWFWG $.
  $}

  ${
    $d x y z w A $.  $d x y z w B $.
    $( Closure of addition on non-negative fractions.  (Contributed by Jim
       Kingdon, 29-Nov-2019.) $)
    addclnq0 $p |- ( ( A e. Q0. /\ B e. Q0. ) -> ( A +Q0 B ) e. Q0. ) $=
      ( vx vy vz vw cnq0 wcel wa cplq0 co com cnpi ceq0 cv cop df-nq0 wceq comu
      cec cxp cqs oveq1 eleq1d oveq2 coa addnnnq0 pinn nnmcl sylan2 sylan nnacl
      syl2an cmi mulpiord mulclpi eqeltrrd ad2ant2l opelxpi enq0ex ecelqsi 3syl
      an42s jca eqeltrd 2ecoptocl syl6eleqr ) AGHBGHIABJKZLMUAZNUBZGCOZDOZPNTZE
      OZFOZPNTZJKZVJHAVPJKZVJHVHVJHCDEFABLMNGQVMARVQVRVJVMAVPJUCUDVPBRVRVHVJVPB
      AJUEUDVKLHZVLMHZIVNLHZVOMHZIIZVQVKVOSKZVLVNSKZUFKZVLVOSKZPZNTZVJVKVLVNVOU
      GWCWFLHZWGMHZIWHVIHWIVJHWCWJWKVSWBVTWAWJVSWBIWDLHZWELHZWJVTWAIWBVSVOLHWLV
      OUHVKVOUIUJVTVLLHWAWMVLUHVLVNUIUKWDWEULUMVCVTWBWKVSWAVTWBIVLVOUNKWGMVLVOU
      OVLVOUPUQURVDWFWGLMUSVIWHNUTVAVBVEVFQVG $.

    $( Closure of multiplication on non-negative fractions.  (Contributed by
       Jim Kingdon, 30-Nov-2019.) $)
    mulclnq0 $p |- ( ( A e. Q0. /\ B e. Q0. ) -> ( A .Q0 B ) e. Q0. ) $=
      ( vx vy vz vw cnq0 wcel wa cmq0 co com cnpi ceq0 cv cop cec df-nq0 eleq1d
      wceq cxp cqs oveq1 oveq2 comu mulnnnq0 nnmcl cmi mulpiord mulclpi anim12i
      eqeltrrd an4s opelxpi enq0ex ecelqsi 3syl eqeltrd 2ecoptocl syl6eleqr ) A
      GHBGHIABJKZLMUAZNUBZGCOZDOZPNQZEOZFOZPNQZJKZVCHAVIJKZVCHVAVCHCDEFABLMNGRV
      FATVJVKVCVFAVIJUCSVIBTVKVAVCVIBAJUDSVDLHZVEMHZIVGLHZVHMHZIIZVJVDVGUEKZVEV
      HUEKZPZNQZVCVDVEVGVHUFVPVQLHZVRMHZIZVSVBHVTVCHVLVNVMVOWCVLVNIWAVMVOIZWBVD
      VGUGWDVEVHUHKVRMVEVHUIVEVHUJULUKUMVQVRLMUNVBVSNUOUPUQURUSRUT $.
  $}

  ${
    $d A w x y z $.  $d B w x y z $.

    $( A positive fraction plus a non-negative fraction is a positive fraction.
       (Contributed by Jim Kingdon, 30-Nov-2019.) $)
    nqpnq0nq $p |- ( ( A e. Q. /\ B e. Q0. ) -> ( A +Q0 B ) e. Q. ) $=
      ( vx vy vz vw cnq wcel wa cv cnpi cop ceq cec wceq com wex cplq0 syl2anc
      co cnq0 ceq0 nqpi nq0nn anim12i ee4anv sylibr coa oveq12 ad2ant2l nqnq0pi
      comu oveq1d adantr addnnnq0 sylanl1 eqtr3d ad2ant2r eqtrd cxp nnmcl sylan
      pinn cqs ad2ant2lr cmi mulpiord mulclpi eqeltrrd ad2ant2rl nnacom nnppipi
      sylan2 opelxpi enqex ecelqsi syl df-nqqs syl6eleqr eleq1d mpbird exlimivv
      wb eqeltrd ) AGHZBUAHZIZCJZKHZDJZKHZIZAWHWJLZMNZOZIZEJZPHZFJZKHZIZBWQWSLU
      BNZOZIZIZFQEQZDQCQZABRTZGHZWGWPDQCQZXDFQEQZIXGWEXJWFXKCDAUCEFBUDUEWPXDCDE
      FUFUGXFXICDXEXIEFXEXHWHWSULTZWJWQULTZUHTZWJWSULTZLZUBNZGXEXHWNXBRTZXQWOXC
      XHXROWLXAAWNBXBRUIUJWLXAXRXQOWOXCWLXAIZWMUBNZXBRTZXRXQWLYAXROXAWLXTWNXBRW
      HWJUKUMUNWIWHPHWKXAYAXQOWHVCWHWJWQWSUOUPUQURUSWLXAXQGHZWOXCXSYBXPMNZGHZXS
      YCKKUTZMVDZGXSXPYEHZYCYFHXSXNKHZXOKHZYGXSXMXLUHTZXNKXSXMPHZXLKHZYJXNOZWKW
      RYKWIWTWKWJPHWRYKWJVCWJWQVAVBVEZWIWTYLWKWRWIWTIWHWSVFTXLKWHWSVGWHWSVHVIVJ
      ZYLYKXLPHYMXLVCXMXLVKVMSXSYKYLYJKHYNYOXMXLVLSVIZWKWTYIWIWRWKWTIWJWSVFTXOK
      WJWSVGWJWSVHVIUJZXNXOKKVNSYEXPMVOVPVQVRVSXSYHYIYBYDWCYPYQYHYIIXQYCGXNXOUK
      VTSWAURWDWBWBVQ $.
  $}

  ${
    $d A u v w z $.  $d B u v w z $.

    $( Addition of positive fractions is equal with ` +Q ` or ` +Q0 ` .
       (Contributed by Jim Kingdon, 10-Nov-2019.) $)
    nqnq0a $p |- ( ( A e. Q. /\ B e. Q. ) -> ( A +Q B ) = ( A +Q0 B ) ) $=
      ( vz vw vv vu wcel wa cv cnpi cop ceq cec wceq wex cplq co cplq0 ceq0 cmi
      cnq nqpi anim12i ee4anv sylibr oveq12 cpli coa mulclpi ad2ant2rl addpiord
      comu ad2ant2lr syl2anc mulpiord oveq12d ad2ant2l opeq12d eceq1d addpipqqs
      eqtrd addclpi nqnq0pi eqtr4d com anim1i addnnnq0 syl2an 3eqtr4d sylan9eqr
      pinn adantr eqeq2d adantl anbi12d pm5.32i sylbir an4s exlimivv syl ) AUAG
      ZBUAGZHZCIZJGZDIZJGZHZAWDWFKZLMZNZHZEIZJGZFIZJGZHZBWMWOKZLMZNZHZHZFOEOZDO
      COZABPQZABRQZNZWCWLDOCOZXAFOEOZHXDWAXHWBXICDAUBEFBUBUCWLXACDEFUDUEXCXGCDX
      BXGEFWHWQWKWTXGWHWQHZWKWTHZHZXEWISMZWRSMZRQZXFXKXJXEWJWSPQZXOAWJBWSPUFXJW
      DWOTQZWFWMTQZUGQZWFWOTQZKZSMZWDWOULQZWFWMULQZUHQZWFWOULQZKZSMZXPXOXJYAYGS
      XJXSYEXTYFXJXSXQXRUHQZYEXJXQJGZXRJGZXSYINWEWPYJWGWNWDWOUIUJZWGWNYKWEWPWFW
      MUIUMZXQXRUKUNXJXQYCXRYDUHWEWPXQYCNWGWNWDWOUOUJWGWNXRYDNWEWPWFWMUOUMUPVAW
      GWPXTYFNWEWNWFWOUOUQURUSXJXPYALMZYBWDWFWMWOUTXJXSJGZXTJGZYBYNNXJYJYKYOYLY
      MXQXRVBUNWGWPYPWEWNWFWOUIUQXSXTVCUNVDWHWDVEGZWGHWMVEGZWPHXOYHNWQWEYQWGWDV
      KVFWNYRWPWMVKVFWDWFWMWOVGVHVIVJXLXJAXMNZBXNNZHZHXFXONZXJUUAXKXJYSWKYTWTXJ
      XMWJAWHXMWJNWQWDWFVCVLVMXJXNWSBWQXNWSNWHWMWOVCVNVMVOVPUUAUUBXJAXMBXNRUFVN
      VQVDVRVSVSVT $.
  $}

  ${
    $d A z w v u $.  $d B z w v u $.
    $( Multiplication of positive fractions is equal with ` .Q ` or ` .Q0 ` .
       (Contributed by Jim Kingdon, 10-Nov-2019.) $)
    nqnq0m $p |- ( ( A e. Q. /\ B e. Q. ) -> ( A .Q B ) = ( A .Q0 B ) ) $=
      ( vz vw vv vu wcel wa cv cnpi cop ceq cec wceq wex cmq cmq0 ceq0 nqnq0pi
      co cnq nqpi anim12i ee4anv sylibr comu mulpiord ad2ant2r ad2ant2l opeq12d
      oveq12 cmi eceq1d mulpipqqs mulclpi syl2anc eqtr4d com pinn anim1i syl2an
      mulnnnq0 3eqtr4d adantr eqeq2d adantl anbi12d pm5.32i sylbir exlimivv syl
      sylan9eqr an4s ) AUAGZBUAGZHZCIZJGZDIZJGZHZAVQVSKZLMZNZHZEIZJGZFIZJGZHZBW
      FWHKZLMZNZHZHZFOEOZDOCOZABPTZABQTZNZVPWEDOCOZWNFOEOZHWQVNXAVOXBCDAUBEFBUB
      UCWEWNCDEFUDUEWPWTCDWOWTEFWAWJWDWMWTWAWJHZWDWMHZHZWRWBRMZWKRMZQTZWSXDXCWR
      WCWLPTZXHAWCBWLPUKXCVQWFULTZVSWHULTZKZRMZVQWFUFTZVSWHUFTZKZRMZXIXHXCXLXPR
      XCXJXNXKXOVRWGXJXNNVTWIVQWFUGUHVTWIXKXONVRWGVSWHUGUIUJUMXCXIXLLMZXMVQVSWF
      WHUNXCXJJGZXKJGZXMXRNVRWGXSVTWIVQWFUOUHVTWIXTVRWGVSWHUOUIXJXKSUPUQWAVQURG
      ZVTHWFURGZWIHXHXQNWJVRYAVTVQUSUTWGYBWIWFUSUTVQVSWFWHVBVAVCVLXEXCAXFNZBXGN
      ZHZHWSXHNZXCYEXDXCYCWDYDWMXCXFWCAWAXFWCNWJVQVSSVDVEXCXGWLBWJXGWLNWAWFWHSV
      FVEVGVHYEYFXCAXFBXGQUKVFVIUQVMVJVJVK $.
  $}

  ${
    $d A v w $.
    $( Multiplication with zero for non-negative fractions.  (Contributed by
       Jim Kingdon, 5-Nov-2019.) $)
    nq0m0r $p |- ( A e. Q0. -> ( 0Q0 .Q0 A ) = 0Q0 ) $=
      ( vw vv wcel cv com cnpi wa cop ceq0 cec wceq c0q0 cmq0 co c0 comu peano1
      c1o 1pi cnq0 wex nq0nn df-0nq0 oveq12 mpan mpanl12 sylan9eqr nnm0r oveq1d
      mulnnnq0 1onn ax-mp syl6eq adantr cmi mulpiord mulclpi eqeltrrd pinn nnm0
      adantl eqtr4d wb syl6eqel enq0eceq mpanr12 syl2an mpbird syl6eqr exlimivv
      3syl eqtrd syl ) AUADBEZFDZCEZGDZHZAVOVQIJKZLZHZCUBBUBMANOZMLZBCAUCWBWDBC
      WBWCPVOQOZSVQQOZIJKZMWAVSWCPSIJKZVTNOZWGMWHLWAWCWILUDMWHAVTNUEUFPFDZSGDZV
      SWIWGLRTPSVOVQUKUGUHVSWGMLWAVSWGWHMVSWGWHLZWESQOZWFPQOZLZVSWMPWNVPWMPLVRV
      PWMPSQOZPVPWEPSQVOUIZUJSFDWPPLULSUIUMUNUOVRWNPLZVPVRWFGDZWFFDWRWKVRWSTWKV
      RHSVQUPOWFGSVQUQSVQURUSUFZWFUTWFVAVLVBVCVPWEFDZWSWLWOVDZVRVPWEPFWQRVEWTXA
      WSHWJWKXBRTWEWFPSVFVGVHVIUDVJUOVMVKVN $.

    $( Addition with zero for non-negative fractions.  (Contributed by Jim
       Kingdon, 5-Nov-2019.) $)
    nq0a0 $p |- ( A e. Q0. -> ( A +Q0 0Q0 ) = A ) $=
      ( vw vv wcel cv com cnpi wa cop ceq0 cec wceq c0q0 cplq0 c1o comu coa syl
      co c0 cnq0 wex nq0nn df-0nq0 oveq12 peano1 1pi addnnnq0 mpanr12 sylan9eqr
      mpan2 pinn nnm0 oveq2d nnm1 oveq1d nna0 eqtrd adantl eceq1d eqeq2d eqtr4d
      opeq12d biimpar exlimivv ) AUADBEZFDZCEZGDZHZAVFVHIZJKZLZHZCUBBUBAMNSZALZ
      BCAUCVNVPBCVNVOVFOPSZVHTPSZQSZVHOPSZIZJKZAVMVJVOVLTOIJKZNSZWBVMMWCLVOWDLU
      DAVLMWCNUEUKVJTFDOGDWDWBLUFUGVFVHTOUHUIUJVJAWBLVMVJWBVLAVJWAVKJVJVSVFVTVH
      VIVGVSVQTQSZVFVIVHFDZVSWELVHULZWFVRTVQQVHUMUNRVGWEVFTQSVFVGVQVFTQVFUOUPVF
      UQURUJVIVTVHLZVGVIWFWHWGVHUORUSVCUTVAVDVBVER $.
  $}

  $( Addition of non-negative fractions with a common denominator.  You can add
     two fractions with the same denominator by adding their numerators and
     keeping the same denominator.  (Contributed by Jim Kingdon,
     1-Dec-2019.) $)
  nnanq0 $p |- ( ( N e. _om /\ M e. _om /\ A e. N. ) ->
      [ <. ( N +o M ) , A >. ] ~Q0 =
      ( [ <. N , A >. ] ~Q0 +Q0 [ <. M , A >. ] ~Q0 ) ) $=
    ( com wcel cnpi w3a cop ceq0 cec cplq0 co comu wceq addnnnq0 3impdir nnmcom
    coa pinn sylan2 3adant2 oveq1d nndi 3coml syl3an3 eqtr4d opeq1d simp3 nnacl
    eceq1d 3adant3 mulcanenq0ec syl3anc 3eqtrrd ) CDEZBDEZAFEZGZCAHIJBAHIJKLZCA
    MLZABMLZRLZAAMLZHZIJZACBRLZMLZVCHZIJZVFAHIJZUOUQUPUSVENCABAOPURVDVHIURVBVGV
    CURVBACMLZVARLZVGURUTVKVARUOUQUTVKNZUPUQUOADEZVMASZCAQTUAUBUQUOUPVNVGVLNZVO
    VNUOUPVPACBUCUDUEUFUGUJURUQVFDEZUQVIVJNUOUPUQUHZUOUPVQUQCBUIUKVRAVFAULUMUN
    $.

  ${
    $d A u v w x y z $.  $d B u v w x y z $.  $d C u v w x y z $.
    $d f g h u v w x y z $.
    $( Multiplication of non-negative fractions is distributive.  (Contributed
       by Jim Kingdon, 27-Nov-2019.) $)
    distrnq0 $p |- ( ( A e. Q0. /\ B e. Q0. /\ C e. Q0. ) ->
        ( A .Q0 ( B +Q0 C ) ) = ( ( A .Q0 B ) +Q0 ( A .Q0 C ) ) ) $=
      ( cnq0 wcel cplq0 co cmq0 wceq wa cop ceq0 cec com cnpi comu nnmcl adantl
      cv syl vz vw vv vu vx vy vf vg vh df-nq0 oveq1 oveq2d oveq2 oveq1d imbi2d
      wi eqeq12d oveq12d w3a coa an42 anbi2i 3anass 3bitr4i sylan ancoms sylan2
      pinn syl3an simp1r simp1l 3ad2ant2 3ad2ant3 nnacl syl2anc syl3an1 syl3anc
      nnmass nnmcom adantr simpll ad2antlr simprl simprr caov4d 3adant3 3adant2
      nndi eqtr3d 3eqtr3d sylbir cmi mulpiord ad2ant2lr 3adant1 eqeltrrd opeq12
      mulclpi eceq1d addnnnq0 syl2an an42s ad2ant2l eleq1d mpbid mulnnnq0 simpl
      wb jca anim12i an12 bitr4i sylib an4s mulcanenq0ec eqtr4d eqtrd oveqan12d
      3impb 3impdi 3eqtr4d 3expib ecoptocl com12 2ecoptocl 3impib ) ADEZBDEZCDE
      ZABCFGZHGZABHGZACHGZFGZIZYHYIJYGYOYGAUASZUBSZKLMZUCSZUDSZKLMZFGZHGZAYRHGZ
      AUUAHGZFGZIZUPYGABUUAFGZHGZYLUUEFGZIZUPYGYOUPUAUBUCUDBCNOLDUJYRBIZUUGUUKY
      GUULUUCUUIUUFUUJUULUUBUUHAHYRBUUAFUKULUULUUDYLUUEFYRBAHUMUNUQUOUUACIZUUKY
      OYGUUMUUIYKUUJYNUUMUUHYJAHUUACBFUMULUUMUUEYMYLFUUACAHUMULUQUOYGYPNEZYQOEZ
      JZYSNEZYTOEZJZJZUUGUUTUESZUFSZKLMZUUBHGZUVCYRHGZUVCUUAHGZFGZIZUPUUTUUGUPU
      EUFANOLDUJUVCAIZUVHUUGUUTUVIUVDUUCUVGUUFUVCAUUBHUKUVIUVEUUDUVFUUEFUVCAYRH
      UKUVCAUUAHUKURUQUOUVANEZUVBOEZJZUUPUUSUVHUVLUUPUUSUSZUVBUVAYPYTPGZYQYSPGZ
      UTGZPGZPGZUVBUVBYQYTPGZPGZPGZKZLMZUVAYPPGZUVBYTPGZPGZUVBYQPGZUVAYSPGZPGZU
      TGZUWGUWEPGZKZLMZUVDUVGUVMUVRUWJIZUWAUWKIZUWCUWMIUVMUVLUUNUURJZUUOUUQJZUS
      ZUWNUVLUWPUWQJZJUVLUUTJZUWRUVMUWSUUTUVLUUNUURUUOUUQVAVBUVLUWPUWQVCUVLUUPU
      USVCVDZUWRUVBUVAPGZUVPPGZUXBUVNPGZUXBUVOPGZUTGZUVRUWJUVLUXBNEZUWPUVNNEZUW
      QUVONEZUXCUXFIUVKUVJUXGUVKUVBNEZUVJUXGUVBVHZUVBUVAQVEVFUURUUNYTNEZUXHYTVH
      ZYPYTQVGZUUOYQNEZUUQUXIYQVHZYQYSQVEZUXBUVNUVOWHVIUWRUVKUVJUVPNEZUXCUVRIZU
      VJUVKUWPUWQVJZUVJUVKUWPUWQVKUWRUXHUXIUXRUWPUVLUXHUWQUXNVLUWQUVLUXIUWPUXQV
      MUVNUVOVNZVOUVKUXJUVJUXRUXSUXKUVBUVAUVPVRVPVQUWRUXDUWFUXEUWIUTUVLUWPUXDUW
      FIUWQUVLUWPJZUVAUVBPGZUVNPGZUXDUWFUVLUYDUXDIUWPUVLUYCUXBUVNPUVKUVJUXJUYCU
      XBIUXKUVAUVBVSVGUNVTUYBUGUHUIUVAUVBYPYTNPUVJUVKUWPWAUVKUXJUVJUWPUXKWBUVLU
      UNUURWCUGSZNEZUHSZNEZJZUYEUYGPGZUYGUYEPGIZUYBUYEUYGVSZRUYFUYHUISZNEUSZUYJ
      UYMPGUYEUYGUYMPGPGIZUYBUYEUYGUYMVRZRUYBUURUXLUVLUUNUURWDZUXMTUYIUYJNEZUYB
      UYEUYGQZRWEWIWFUVLUWQUXEUWIIUWPUVLUWQJZUGUHUIUVBUVAYQYSNPUVKUXJUVJUWQUXKW
      BUVJUVKUWQWAUYTUUOUXOUVLUUOUUQWCZUXPTUYIUYKUYTUYLRUYNUYOUYTUYPRUVLUUOUUQW
      DUYIUYRUYTUYSRWEWGURWJWKUVMUWRUWOUXAUWRUVBUVBPGUVSPGZUWAUWKUWRUXJUXJUVSNE
      VUBUWAIUWRUVKUXJUXTUXKTZVUCUWRYQYTWLGZUVSNUWPUWQVUDUVSIZUVLUURUUOVUEUUNUU
      QUUOUURVUEYQYTWMZVFWNWOUWRVUDOEZVUDNEUWRUUOUURVUGUVLUWQUUOUWPVUAWGZUVLUWP
      UURUWQUYQWFZYQYTWRZVOVUDVHTWPUVBUVBUVSVRVQUWRUGUHUIUVBUVBYQYTNPVUCVUCUWRU
      UOUXOVUHUXPTUYIUYKUWRUYLRUYNUYOUWRUYPRUWRUURUXLVUIUXMTUYIUYRUWRUYSRWEWIWK
      UWNUWOJUWBUWLLUVRUWAUWJUWKWQWSVOUVLUUPUUSUVDUWCIUWTUVDUVCUVPUVSKLMZHGZUWC
      UUTUVDVULIUVLUUTUUBVUKUVCHYPYQYSYTWTULRUUTUVLUXRUVSOEZJZVULUWCIUUTUXRVUMU
      UNUURUUOUUQUXRUWPUXHUXIUXRUWQUXNUXQUYAXAXBUUTVUGVUMUUOUURVUGUUNUUQVUJXCUU
      OUURVUGVUMXHUUNUUQUUOUURJVUDUVSOVUFXDXCXEXIUVLVUNJZVULUVQUVTKLMZUWCUVAUVB
      UVPUVSXFVUOUVKUVQNEZUVTOEZUSZUWCVUPIUVJUXRUVKVUMVUSUVJUXRJZUVKVUMJZJVUQUV
      KVURJZJZVUSVUTVUQVVAVVBUVAUVPQVVAUVKVURUVKVUMXGVVAUVBUVSWLGUVTOUVBUVSWMUV
      BUVSWRWPXIXJVVCUVKVUQVURJJVUSVUQUVKVURXKUVKVUQVURVCXLXMXNUVBUVQUVTXOTXPVG
      XQXSUVLUUPUUSUVGUWMIUVLUUPJZUVLUUSJZJUVGUWDUWGKLMZUWHUWEKLMZFGZUWMVVDVVEU
      VEVVFUVFVVGFUVAUVBYPYQXFUVAUVBYSYTXFXRVVDUWDNEZUWGOEZJZUWHNEZUWEOEZJZVVHU
      WMIVVEUVJUUNUVKUUOVVKUVJUUNJVVIUVKUUOJZVVJUVAYPQVVOUVBYQWLGUWGOUVBYQWMUVB
      YQWRWPXJXNUVJUUQUVKUURVVNUVJUUQJVVLUVKUURJZVVMUVAYSQVVPUVBYTWLGUWEOUVBYTW
      MUVBYTWRWPXJXNUWDUWGUWHUWEWTXAXQXTYAYBYCYDYEYDYF $.
  $}

  ${
    $d x y z w A $.  $d x y z w B $.
    $( Multiplication of non-negative fractions is commutative.  (Contributed
       by Jim Kingdon, 27-Nov-2019.) $)
    mulcomnq0 $p |- ( ( A e. Q0. /\ B e. Q0. ) ->
        ( A .Q0 B ) = ( B .Q0 A ) ) $=
      ( vx vy vz vw cv cop ceq0 cec cmq0 co wceq com cnpi oveq1 oveq2 wcel comu
      wa cnq0 df-nq0 eqeq12d nnmcom ad2ant2r pinn syl2an ad2ant2l opeq12 eceq1d
      syl2anc mulnnnq0 ancoms 3eqtr4d 2ecoptocl ) CGZDGZHIJZEGZFGZHIJZKLZVAURKL
      ZMAVAKLZVAAKLZMABKLZBAKLZMCDEFABNOIUAUBURAMVBVDVCVEURAVAKPURAVAKQUCVABMVD
      VFVEVGVABAKQVABAKPUCUPNRZUQORZTZUSNRZUTORZTZTZUPUSSLZUQUTSLZHZIJZUSUPSLZU
      TUQSLZHZIJZVBVCVNVOVSMZVPVTMZVRWBMVHVKWCVIVLUPUSUDUEVIVLWDVHVKVIUQNRUTNRW
      DVLUQUFUTUFUQUTUDUGUHWCWDTVQWAIVOVPVSVTUIUJUKUPUQUSUTULVMVJVCWBMUSUTUPUQU
      LUMUNUO $.
  $}

  ${
    $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 $.

    $( A natural number closure law.  Lemma for ~ addassnq0 .  (Contributed by
       Jim Kingdon, 3-Dec-2019.) $)
    addassnq0lemcl $p |- (
        ( ( I e. _om /\ J e. N. ) /\ ( K e. _om /\ L e. N. ) ) ->
        ( ( ( I .o L ) +o ( J .o K ) ) e. _om /\ ( J .o L ) e. N. ) ) $=
      ( com wcel cnpi wa comu co coa pinn nnmcl ad2ant2rl sylan ad2ant2lr nnacl
      sylan2 syl2anc cmi mulpiord mulclpi eqeltrrd ad2ant2l jca ) AEFZBGFZHCEFZ
      DGFZHHZADIJZBCIJZKJEFZBDIJZGFZUJUKEFZULEFZUMUFUIUPUGUHUIUFDEFUPDLADMRNUGU
      HUQUFUIUGBEFUHUQBLBCMOPUKULQSUGUIUOUFUHUGUIHBDTJUNGBDUABDUBUCUDUE $.

    $( Addition of non-negaative fractions is associative.  (Contributed by Jim
       Kingdon, 29-Nov-2019.) $)
    addassnq0 $p |- ( ( A e. Q0. /\ B e. Q0. /\ C e. Q0. ) ->
        ( ( A +Q0 B ) +Q0 C ) = ( A +Q0 ( B +Q0 C ) ) ) $=
      ( cnq0 wcel cplq0 co wceq wa cv cop ceq0 cec wi com cnpi comu coa syl2anc
      nnmcl vz vw vv vu vx vy vf vg vh df-nq0 oveq2 oveq1d oveq1 oveq2d eqeq12d
      imbi2d w3a simp1l simp2r simp3r simp1r simp2l simp3l nnaass nnmcom adantl
      pinn syl3anc nndir nnmass caovdilemd oveq12d nndi 3eqtr4d opeq12 addnnnq0
      syl eceq1d adantr addassnq0lemcl sylan eqtrd 3impa sylan2 3expib ecoptocl
      3impb com12 2ecoptocl 3impib ) ADEZBDEZCDEZABFGZCFGZABCFGZFGZHZWLWMIWKWRW
      KAUAJZUBJZKLMZFGZUCJZUDJZKLMZFGZAXAXEFGZFGZHZNWKWNXEFGZABXEFGZFGZHZNWKWRN
      UAUBUCUDBCOPLDUJXABHZXIXMWKXNXFXJXHXLXNXBWNXEFXABAFUKULXNXGXKAFXABXEFUMUN
      UOUPXECHZXMWRWKXOXJWOXLWQXECWNFUKXOXKWPAFXECBFUKUNUOUPWKWSOEZWTPEZIZXCOEZ
      XDPEZIZIZXIYBUEJZUFJZKLMZXAFGZXEFGZYEXGFGZHZNYBXINUEUFAOPLDUJYEAHZYIXIYBY
      JYGXFYHXHYJYFXBXEFYEAXAFUMULYEAXGFUMUOUPYCOEZYDPEZIZXRYAYIYMXRYAUQZYCWTQG
      YDWSQGRGZXDQGZYDWTQGZXCQGZRGZYQXDQGZKZLMZYCWTXDQGZQGZYDWSXDQGZWTXCQGZRGZQ
      GZRGZYDUUCQGZKZLMZYGYHYNYSUUIHZYTUUJHZUUBUULHYNUUDYDUUEQGZRGZYDUUFQGZRGZU
      UDUUOUUQRGZRGZYSUUIYNUUDOEZUUOOEZUUQOEZUURUUTHYNYKUUCOEZUVAYKYLXRYAURZYNW
      TOEZXDOEZUVDYNXQUVFYMXPXQYAUSWTVGVQZYNXTUVGYMXRXSXTUTXDVGVQZWTXDTSYCUUCTS
      YNYDOEZUUEOEZUVBYNYLUVJYKYLXRYAVAYDVGVQZYNXPUVGUVKYMXPXQYAVBZUVIWSXDTSZYD
      UUETSYNUVJUUFOEZUVCUVLYNUVFXSUVOUVHYMXRXSXTVCZWTXCTSZYDUUFTSUUDUUOUUQVDVH
      YNYPUUPYRUUQRYNUGUHUIYCYDWTWSORQXDUGJZOEZUHJZOEZIZUVRUVTQGZUVTUVRQGHYNUVR
      UVTVEVFUVSUWAUIJZOEUQZUVRUVTRGUWDQGUVRUWDQGUVTUWDQGZRGHYNUVRUVTUWDVIVFUWE
      UWCUWDQGUVRUWFQGHYNUVRUVTUWDVJVFUWBUWCOEYNUVRUVTTVFUVEUVLUVHUVMUVIVKYNUVJ
      UVFXSYRUUQHUVLUVHUVPYDWTXCVJVHVLYNUUHUUSUUDRYNUVJUVKUVOUUHUUSHUVLUVNUVQYD
      UUEUUFVMVHUNVNYNUVJUVFUVGUUNUVLUVHUVIYDWTXDVJVHUUMUUNIUUAUUKLYSYTUUIUUJVO
      VRSYMXRYAYGUUBHYMXRIZYAIYGYOYQKLMZXEFGZUUBUWGYGUWIHYAUWGYFUWHXEFYCYDWSWTV
      PULVSUWGYOOEYQPEIYAUWIUUBHYCYDWSWTVTYOYQXCXDVPWAWBWCYMXRYAYHUULHYMYBIYHYE
      UUGUUCKLMZFGZUULYBYHUWKHYMYBXGUWJYEFWSWTXCXDVPUNVFYBYMUUGOEUUCPEIUWKUULHW
      SWTXCXDVTYCYDUUGUUCVPWDWBWGVNWEWFWHWIWHWJ $.
  $}

  $( Multiplication of non-negative fractions is distributive.  Version of
     ~ distrnq0 with the multiplications commuted.  (Contributed by Jim
     Kingdon, 29-Nov-2019.) $)
  distnq0r $p |- ( ( A e. Q0. /\ B e. Q0. /\ C e. Q0. ) ->
      ( ( B +Q0 C ) .Q0 A ) = ( ( B .Q0 A ) +Q0 ( C .Q0 A ) ) ) $=
    ( cnq0 wcel w3a cplq0 co cmq0 distrnq0 wceq addclnq0 mulcomnq0 sylan2 3impb
    wa 3adant3 3adant2 oveq12d 3eqtr3d ) ADEZBDEZCDEZFZABCGHZIHZABIHZACIHZGHUEA
    IHZBAIHZCAIHZGHABCJUAUBUCUFUIKZUBUCPUAUEDEULBCLAUEMNOUDUGUJUHUKGUAUBUGUJKUC
    ABMQUAUCUHUKKUBACMRST $.

  $( Addition of one to the numerator of a fraction whose denominator is one.
     (Contributed by Jim Kingdon, 26-Apr-2020.) $)
  addpinq1 $p |- ( A e. N. ->
      [ <. ( A +N 1o ) , 1o >. ] ~Q = ( [ <. A , 1o >. ] ~Q +Q 1Q ) ) $=
    ( cnpi wcel c1o cop ceq cec c1q cplq co cpli df-1nqqs oveq2i wceq addpipqqs
    cmi 1pi wa mulidpi ax-mp mpanr12 syl5eq opeq12i syl6eq oveq1d opeq1d eceq1d
    mpan2 eceq1 eqtr2d ) ABCZADEFGZHIJZADPJZDKJZDEZFGZADKJZDEZFGUKUMUNDDPJZKJZU
    TEZFGZUQUKUMULDDEFGZIJZVCHVDULILMUKDBCZVEVCNZQUKVFRVFVFVGQQADDDOUAUHUBVBUPN
    VCUQNVAUOUTDUTDUNKVFUTDNQDSTZMVHUCVBUPFUITUDUKUPUSFUKUOURDUKUNADKASUEUFUGUJ
    $.

  ${
    $d A w z $.
    $( Multiply a non-negative fraction by two.  (Contributed by Jim Kingdon,
       29-Nov-2019.) $)
    nq02m $p |- ( A e. Q0. ->
        ( [ <. 2o , 1o >. ] ~Q0 .Q0 A ) = ( A +Q0 A ) ) $=
      ( vz vw wcel cv com cnpi wa cop ceq0 cec wceq wex c2o c1o cmq0 cplq0 comu
      co adantr cnq0 nq0nn coa 2onn mulnnnq0 mpanl12 nn2m pinn 1onn nnmcom mpan
      1pi nnm1 eqtrd adantl opeq12d eceq1d nnanq0 3anidm12 3eqtrd oveq2 oveq12d
      syl wb id eqeq12d mpbird exlimivv ) AUADBEZFDZCEZGDZHZAVIVKIJKZLZHZCMBMNO
      IJKZAPSZAAQSZLZBCAUBVPVTBCVPVTVQVNPSZVNVNQSZLZVMWCVOVMWANVIRSZOVKRSZIZJKZ
      VIVIUCSZVKIZJKZWBNFDOGDVMWAWGLUDULNOVIVKUEUFVMWFWIJVMWDWHWEVKVJWDWHLVLVIU
      GTVLWEVKLZVJVLVKFDZWKVKUHWLWEVKORSZVKOFDWLWEWMLUIOVKUJUKVKUMUNVCUOUPUQVJV
      LWJWBLVKVIVIURUSUTTVOVTWCVDVMVOVRWAVSWBAVNVQPVAVOAVNAVNQVOVEZWNVBVFUOVGVH
      VC $.
  $}

  ${
    $d l u q r $.
    $( 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.

       Here we follow the definition of a Dedekind cut from Definition 11.2.1
       of [HoTT], p.  (varies) with the one exception that we define it over
       positive rational numbers rather than all rational numbers.

       A Dedekind cut is an ordered pair of a lower set ` l ` and an upper set
       ` u ` which is inhabited ( ` E. q e. Q. q e. l /\ E. r e. Q. r e. u ` ),
       rounded ( ` A. q e. Q. ( q e. l <-> E. r e. Q. ( q <Q r /\ r e. l ) ) `
       and likewise for ` u ` ), disjoint
       ( ` A. q e. Q. -. ( q e. l /\ q e. u ) ` ) and located
       ( ` A. q e. Q. A. r e. Q. ( q <Q r -> ( q e. l \/ r e. u ) ) ` ).  See
       HoTT for more discussion of those terms and different ways of defining
       Dedekind cuts.

       (Note:  This is a "temporary" definition used in the construction of
       complex numbers, and is intended to be used only by the construction.)
       (Contributed by Jim Kingdon, 25-Sep-2019.) $)
    df-inp $a |- P. = { <. l , u >. | ( ( ( l C_ Q. /\ u C_ Q. ) /\
      ( E. q e. Q. q e. l /\ E. r e. Q. r e. u ) ) /\ (
      ( A. q e. Q. ( q e. l <-> E. r e. Q. ( q <Q r /\ r e. l ) ) /\
        A. r e. Q. ( r e. u <-> E. q e. Q. ( q <Q r /\ q e. u ) ) ) /\
      A. q e. Q. -. ( q e. l /\ q e. u ) /\
      A. q e. Q. A. r e. Q. ( q <Q r -> ( q e. l \/ r e. u ) )
      ) ) } $.
  $}

  ${
    $d l u $.
    $( Define the positive real constant 1.  This is a "temporary" set used in
       the construction of complex numbers and is intended to be used only by
       the construction.  (Contributed by Jim Kingdon, 25-Sep-2019.) $)
    df-i1p $a |- 1P = <. { l | l <Q 1Q } , { u | 1Q <Q u } >. $.
  $}

  ${
    $d x y q r s $.
    $( Define addition on positive reals.  From Section 11.2.1 of [HoTT], p.
       (varies).  We write this definition to closely resemble the definition
       in HoTT although some of the conditions are redundant (for example,
       ` r e. ( 1st `` x ) ` implies ` r e. Q. ` ) and can be simplified as
       shown at ~ genpdf .

       This is a "temporary" set used in the construction of complex numbers,
       and is intended to be used only by the construction.  (Contributed by
       Jim Kingdon, 26-Sep-2019.) $)
    df-iplp $a |- +P. = ( x e. P. , y e. P. |->
      <. { q e. Q. | E. r e. Q. E. s e. Q. ( r e. ( 1st ` x ) /\
        s e. ( 1st ` y ) /\ q = ( r +Q s ) ) } ,
        { q e. Q. | E. r e. Q. E. s e. Q. ( r e. ( 2nd ` x ) /\
        s e. ( 2nd ` y ) /\ q = ( r +Q s ) ) } >. ) $.

    $( Define multiplication on positive reals.  Here we use a simple
       definition which is similar to ~ df-iplp or the definition of
       multiplication on positive reals in Metamath Proof Explorer.  This is as
       opposed to the more complicated definition of multiplication given in
       Section 11.2.1 of [HoTT], p.  (varies), which appears to be motivated by
       handling negative numbers or handling modified Dedekind cuts in which
       locatedness is omitted.

       This is a "temporary" set used in the construction of complex numbers,
       and is intended to be used only by the construction.  (Contributed by
       Jim Kingdon, 29-Sep-2019.) $)
    df-imp $a |- .P. = ( x e. P. , y e. P. |->
      <. { q e. Q. | E. r e. Q. E. s e. Q. ( r e. ( 1st ` x ) /\
        s e. ( 1st ` y ) /\ q = ( r .Q s ) ) } ,
        { q e. Q. | E. r e. Q. E. s e. Q. ( r e. ( 2nd ` x ) /\
        s e. ( 2nd ` y ) /\ q = ( r .Q s ) ) } >. ) $.
  $}

  ${
    $d x y q $.
    $( Define ordering on positive reals.  We define ` x <P y ` if there is a
       positive fraction ` q ` which is an element of the upper cut of ` x `
       and the lower cut of ` y ` .  From the definition of < in Section 11.2.1
       of [HoTT], p.  (varies).

       This is a "temporary" set used in the construction of complex numbers,
       and is intended to be used only by the construction.  (Contributed by
       Jim Kingdon, 29-Sep-2019.) $)
    df-iltp $a |- <P = { <. x , y >. | ( ( x e. P. /\ y e. P. ) /\
      E. q e. Q. ( q e. ( 2nd ` x ) /\ q e. ( 1st ` y ) ) ) } $.
  $}

  ${
    $d l u q r $.
    $( Lemma for proving existence of reals.  (Contributed by Jim Kingdon,
       27-Sep-2019.) $)
    npsspw $p |- P. C_ ( ~P Q. X. ~P Q. ) $=
      ( vl vu vq vr cv cnq wss wa wcel wrex cltq wbr wb wral wn wo wi w3a copab
      selpw cpw cnp cxp simpll anbi12i sylibr ssopab2i df-inp df-xp 3sstr4i ) A
      EZFGZBEZFGZHZCEZUKIZCFJDEZUMIZDFJHZHUQUPURKLZURUKIHDFJMCFNUSVAUPUMIZHCFJM
      DFNHUQVBHOCFNVAUQUSPQDFNCFNRZHZABSUKFUAZIZUMVEIZHZABSUBVEVEUCVDVHABVDUOVH
      UOUTVCUDVFULVGUNAFTBFTUEUFUGBDCAUHABVEVEUIUJ $.
  $}

  $( Two reals are equal if and only if their lower and upper cuts are.
     (Contributed by Jim Kingdon, 11-Dec-2019.) $)
  preqlu $p |- ( ( A e. P. /\ B e. P. ) -> ( A = B <->
      ( ( 1st ` A ) = ( 1st ` B ) /\ ( 2nd ` A ) = ( 2nd ` B ) ) ) ) $=
    ( cnp wcel wa wceq c1st cfv c2nd cop cnq cpw npsspw sseli 1st2nd2 eqeqan12d
    cxp syl wb xp1st xp2nd opthg syl2anc adantr bitrd ) ACDZBCDZEABFAGHZAIHZJZB
    GHZBIHZJZFZUHUKFUIULFEZUFUGAUJBUMUFAKLZUPQZDZAUJFCUQAMNZAUPUPORUGBUQDBUMFCU
    QBMNBUPUPORPUFUNUOSZUGUFUHUPDZUIUPDZUTUFURVAUSAUPUPTRUFURVBUSAUPUPUARUHUIUK
    ULUPUPUBUCUDUE $.

  $( The class of positive reals is a set.  (Contributed by NM,
     31-Oct-1995.) $)
  npex $p |- P. e. _V $=
    ( cnp cnq cpw cxp nqex pwex xpex npsspw ssexi ) ABCZJDJJBEFZKGHI $.

  ${
    $d l u q r L $.  $d l u q r U $.
    $( Membership in positive reals.  (Contributed by Jim Kingdon,
       27-Sep-2019.) $)
    elinp $p |- ( <. L , U >. e. P. <-> ( ( ( L C_ Q. /\ U C_ Q. ) /\
        ( E. q e. Q. q e. L /\ E. r e. Q. r e. U ) ) /\ (
        ( A. q e. Q. ( q e. L <-> E. r e. Q. ( q <Q r /\ r e. L ) ) /\
          A. r e. Q. ( r e. U <-> E. q e. Q. ( q <Q r /\ q e. U ) ) ) /\
        A. q e. Q. -. ( q e. L /\ q e. U ) /\
        A. q e. Q. A. r e. Q. ( q <Q r -> ( q e. L \/ r e. U ) )
        ) ) ) $=
      ( vl vu wcel cvv wa cnq wss cv wrex wb wral anbi1d rexbidv anbi12d anbi2d
      eleq2 cop cnp cltq wbr wn wo wi w3a cpw npsspw sseli opelxp sylib anim12i
      cxp elex syl nqex ssex ad2antrr copab df-inp eleq2i sseq1 bibi12d ralbidv
      notbid orbi1d imbi2d 2ralbidv 3anbi123d orbi2d opelopabg syl5bb pm5.21nii
      wceq ) BAUAZUBGZBHGZAHGZIZBJKZAJKZIZDLZBGZDJMZCLZAGZCJMZIZIZWFWEWHUCUDZWH
      BGZIZCJMZNZDJOZWIWMWEAGZIZDJMZNZCJOZIZWFWSIZUEZDJOZWMWFWIUFZUGZCJODJOZUHZ
      IZVRBJUIZGZAXMGZIZWAVRVQXMXMUOZGXPUBXQVQUJUKBAXMXMULUMXNVSXOVTBXMUPAXMUPU
      NUQWDWAWKXKWBVSWCVTBJURUSAJURUSUNUTVRVQELZJKZFLZJKZIZWEXRGZDJMZWHXTGZCJMZ
      IZIZYCWMWHXRGZIZCJMZNZDJOZYEWMWEXTGZIZDJMZNZCJOZIZYCYNIZUEZDJOZWMYCYEUFZU
      GZCJODJOZUHZIZEFVAZGWAXLUBUUHVQFCDEVBVCUUGWBYAIZWGYFIZIZWRYRIZWFYNIZUEZDJ
      OZWMWFYEUFZUGZCJODJOZUHZIXLEFBAHHXRBVPZYHUUKUUFUUSUUTYBUUIYGUUJUUTXSWBYAX
      RBJVDPUUTYDWGYFUUTYCWFDJXRBWETZQPRUUTYSUULUUBUUOUUEUURUUTYMWRYRUUTYLWQDJU
      UTYCWFYKWPUVAUUTYJWOCJUUTYIWNWMXRBWHTSQVEVFPUUTUUAUUNDJUUTYTUUMUUTYCWFYNU
      VAPVGVFUUTUUDUUQDCJJUUTUUCUUPWMUUTYCWFYEUVAVHVIVJVKRXTAVPZUUKWLUUSXKUVBUU
      IWDUUJWKUVBYAWCWBXTAJVDSUVBYFWJWGUVBYEWICJXTAWHTZQSRUVBUULXDUUOXGUURXJUVB
      YRXCWRUVBYQXBCJUVBYEWIYPXAUVCUVBYOWTDJUVBYNWSWMXTAWETZSQVEVFSUVBUUNXFDJUV
      BUUMXEUVBYNWSWFUVDSVGVFUVBUUQXIDCJJUVBUUPXHWMUVBYEWIWFUVCVLVIVJVKRVMVNVO
      $.
  $}

  $( A positive real is an ordered pair of a lower cut and an upper cut.
     (Contributed by Jim Kingdon, 27-Sep-2019.) $)
  prop $p |- ( A e. P. -> <. ( 1st ` A ) , ( 2nd ` A ) >. e. P. ) $=
    ( cnp wcel c1st cfv c2nd cop cnq cpw cxp npsspw sseli 1st2nd2 eleq1 biimpcd
    wceq syl mpd ) ABCZAADEAFEGZPZTBCZSAHIZUCJZCUABUDAKLAUCUCMQUASUBATBNOR $.

  ${
    $d q r A $.
    $( Membership in positive reals, using ` 1st ` and ` 2nd ` to refer to the
       lower and upper cut.  (Contributed by Jim Kingdon, 3-Oct-2019.) $)
    elnp1st2nd $p |- ( A e. P. <-> ( (
        A e. ( ~P Q. X. ~P Q. ) /\
        ( E. q e. Q. q e. ( 1st ` A ) /\ E. r e. Q. r e. ( 2nd ` A ) ) ) /\ (
        ( A. q e. Q. ( q e. ( 1st ` A ) <->
            E. r e. Q. ( q <Q r /\ r e. ( 1st ` A ) ) ) /\
          A. r e. Q. ( r e. ( 2nd ` A ) <->
            E. q e. Q. ( q <Q r /\ q e. ( 2nd ` A ) ) ) ) /\
        A. q e. Q. -. ( q e. ( 1st ` A ) /\ q e. ( 2nd ` A ) ) /\
        A. q e. Q. A. r e. Q. ( q <Q r ->
          ( q e. ( 1st ` A ) \/ r e. ( 2nd ` A ) ) )
        ) ) ) $=
      ( cnp wcel cnq cpw cxp cv c1st cfv wrex wral wss simprd jca elpwid anim1i
      wa wb c2nd cltq wbr wn wo wi w3a npsspw sseli cop prop elinp sylib simpld
      wceq 1st2nd2 ad2antrr xp1st xp2nd sylibr eqeltrd impbii ) ADEZAFGZVDHZEZC
      IZAJKZEZCFLBIZAUAKZEZBFLSZSZVIVGVJUBUCZVJVHESBFLTCFMVLVOVGVKEZSCFLTBFMSVI
      VPSUDCFMVOVIVLUEUFBFMCFMUGZSZVCVNVQVCVFVMDVEAUHUIVCVHFNZVKFNZSZVMVCWAVMSZ
      VQVCVHVKUJZDEZWBVQSZAUKVKVHBCULZUMZUNOPVCWBVQWGOPVRAWCDVFAWCUOVMVQAVDVDUP
      UQVRWEWDVNWBVQVFWAVMVFVSVTVFVHFAVDVDURQVFVKFAVDVDUSQPRRWFUTVAVB $.
  $}

  ${
    $d x y L $.  $d U x y $.
    $( A positive real's lower cut is inhabited.  (Contributed by Jim Kingdon,
       27-Sep-2019.) $)
    prml $p |- ( <. L , U >. e. P. -> E. x e. Q. x e. L ) $=
      ( vy cop cnp wcel cnq wss wa cv wrex cltq wbr wb wral wn wo wi w3a elinp
      simplrl sylbi ) CBEFGCHIBHIJZAKZCGZAHLZDKZBGZDHLZJJUFUEUHMNZUHCGJDHLOAHPU
      IUKUEBGZJAHLODHPJUFULJQAHPUKUFUIRSDHPAHPTZJUGBCDAUAUDUGUJUMUBUC $.

    $( A positive real's upper cut is inhabited.  (Contributed by Jim Kingdon,
       27-Sep-2019.) $)
    prmu $p |- ( <. L , U >. e. P. -> E. x e. Q. x e. U ) $=
      ( vy cop cnp wcel cnq wss wa cv wrex cltq wbr wb wral wn wo wi w3a elinp
      simplrr sylbi ) CBEFGCHIBHIJZDKZCGZDHLZAKZBGZAHLZJJUFUEUHMNZUHCGJAHLODHPU
      IUKUEBGZJDHLOAHPJUFULJQDHPUKUFUIRSAHPDHPTZJUJBCADUAUDUGUJUMUBUC $.

    $( The lower cut of a positive real is a subset of the positive fractions.
       (Contributed by Jim Kingdon, 28-Sep-2019.) $)
    prssnql $p |- ( <. L , U >. e. P. -> L C_ Q. ) $=
      ( vx vy cop cnp wcel cnq wss wa cv wrex cltq wbr wb wral wn wo wi w3a
      elinp simplll sylbi ) BAEFGBHIZAHIZJCKZBGZCHLDKZAGZDHLJZJUGUFUHMNZUHBGJDH
      LOCHPUIUKUFAGZJCHLODHPJUGULJQCHPUKUGUIRSDHPCHPTZJUDABDCUAUDUEUJUMUBUC $.

    $( The upper cut of a positive real is a subset of the positive fractions.
       (Contributed by Jim Kingdon, 28-Sep-2019.) $)
    prssnqu $p |- ( <. L , U >. e. P. -> U C_ Q. ) $=
      ( vx vy cop cnp wcel cnq wss wa cv wrex cltq wbr wb wral wn wo wi w3a
      elinp simpllr sylbi ) BAEFGBHIZAHIZJCKZBGZCHLDKZAGZDHLJZJUGUFUHMNZUHBGJDH
      LOCHPUIUKUFAGZJCHLODHPJUGULJQCHPUKUGUIRSDHPCHPTZJUEABDCUAUDUEUJUMUBUC $.
  $}

  $( An element of a positive real's lower cut is a positive fraction.
     (Contributed by Jim Kingdon, 28-Sep-2019.) $)
  elprnql $p |- ( ( <. L , U >. e. P. /\ B e. L ) -> B e. Q. ) $=
    ( cop cnp wcel cnq prssnql sselda ) CBDEFCGABCHI $.

  $( An element of a positive real's upper cut is a positive fraction.
     (Contributed by Jim Kingdon, 28-Sep-2019.) $)
  elprnqu $p |- ( ( <. L , U >. e. P. /\ B e. U ) -> B e. Q. ) $=
    ( cop cnp wcel cnq prssnqu sselda ) CBDEFBGABCHI $.

  $( The empty set is not a positive real.  (Contributed by NM,
     15-Nov-1995.) $)
  0npr $p |- -. (/) e. P. $=
    ( vx c0 cnp wcel c1st cfv c2nd cop cv cnq wrex noel 1st0 eleq2i mtbir rexex
    wex nex mto prml prop ) BCDBEFZBGFZHCDZUDAIZUBDZAJKZUGUFAQUFAUFUEBDUELUBBUE
    MNORUFAJPSAUCUBTSBUAS $.

  ${
    $d b c L $.  $d b c U $.  $d b c B $.  $d b c C $.
    $( A lower cut is closed downwards under the positive fractions.
       (Contributed by Jim Kingdon, 28-Sep-2019.) $)
    prcdnql $p |- ( ( <. L , U >. e. P. /\ B e. L ) ->
        ( C <Q B -> C e. L ) ) $=
      ( vc vb wcel wa cltq wbr cnq ltrelnq brel cv wi wceq eleq1 wrex wb wral
      cop cnp simpld adantl breq1 imbi12d imbi2d ancomd an42 anbi12d rspcev wss
      breq2 wn wo w3a elinp simpr1l sylbi r19.21bi syl5ibrcom 3impb 3com12 impd
      3expib syl5bi mpand com12 ancoms vtoclg mpcom ex ) DCUAUBGZADGZHZBAIJZBDG
      ZBKGZVOVPHVQVPVRVOVPVRAKGZBAKKILMUCUDVRVOVPVQVOENZAIJZVTDGZOZOVOVPVQOZOEB
      KVTBPZWCWDVOWEWAVPWBVQVTBAIUEVTBDQUFUGVNVMWCWAVNVMHZWBWAVSVTKGZHZWFWBWAWG
      VSVTAKKILMUHWHWFHVSVNHZVMWGHZHWAWBVSWGVNVMUIWAWIWJWBWAVSVNWJWBOZVSWAVNWKV
      SWAVNWKVSWAVNHZHWBWJVTFNZIJZWMDGZHZFKRZWPWLFAKWMAPWNWAWOVNWMAVTIUMWMADQUJ
      UKVMWBWQSZEKVMDKULCKULHWBEKRWMCGZFKRHHZWREKTZWSWNVTCGZHEKRSFKTZHWBXBHUNEK
      TZWNWBWSUOOFKTEKTZUPHXACDFEUQXAXCXDXEWTURUSUTVAVBVCVEVDVFVGVHVIVJVDVKVL
      $.
  $}

  ${
    $d b c L $.  $d b c U $.  $d b c B $.  $d b c C $.
    $( An upper cut is closed upwards under the positive fractions.
       (Contributed by Jim Kingdon, 25-Nov-2019.) $)
    prcunqu $p |- ( ( <. L , U >. e. P. /\ C e. U ) ->
        ( C <Q B -> B e. U ) ) $=
      ( vb vc wcel wa cltq wbr cnq ltrelnq brel cv wi wceq eleq1 wrex wb wral
      cop cnp simprd adantl breq2 imbi12d imbi2d breq1 anbi12d rspcev wss wn wo
      an42 w3a elinp simpr1r sylbi r19.21bi syl5ibrcom 3impb 3com12 3expib impd
      syl5bi mpand com12 ancoms vtoclg mpcom ex ) DCUAUBGZBCGZHZBAIJZACGZAKGZVN
      VOHVPVOVQVNVOBKGZVQBAKKILMUCUDVQVNVOVPVNBENZIJZVSCGZOZOVNVOVPOZOEAKVSAPZW
      BWCVNWDVTVOWAVPVSABIUEVSACQUFUGVMVLWBVTVMVLHZWAVTVRVSKGZHZWEWABVSKKILMWGW
      EHVRVMHZVLWFHZHVTWAVRWFVMVLUNVTWHWIWAVTVRVMWIWAOZVRVTVMWJVRVTVMWJVRVTVMHZ
      HWAWIFNZVSIJZWLCGZHZFKRZWOWKFBKWLBPWMVTWNVMWLBVSIUHWLBCQUIUJVLWAWPSZEKVLD
      KUKCKUKHWLDGZFKRWAEKRHHZWRWMVSDGHEKRSFKTZWQEKTZHWRWNHULFKTZWMWRWAUMOEKTFK
      TZUOHXACDEFUPWTXAXBXCWSUQURUSUTVAVBVCVDVEVFVGVHVIVDVJVK $.
  $}

  $( A positive fraction not in a lower cut is an upper bound.  (Contributed by
     Jim Kingdon, 29-Sep-2019.) $)
  prubl $p |- ( ( ( <. L , U >. e. P. /\ B e. L ) /\ C e. Q. ) ->
      ( -. C e. L -> B <Q C ) ) $=
    ( cop cnp wcel wa cnq wn wceq cltq wbr wo eleq1 biimpcd adantl prcdnql jaod
    wi con3d adantr wb elprnql nqtric sylan sylibrd ) DCEFGZADGZHZBIGZHBDGZJZAB
    KZBALMZNZJZABLMZUJUMUQTUKUJUPULUJUNULUOUIUNULTUHUNUIULABDOPQABCDRSUAUBUJAIG
    UKURUQUCACDUDABUEUFUG $.

  ${
    $d C q $.  $d L q r $.  $d U q r $.
    $( An element of a lower cut is less than an element of the corresponding
       upper cut.  (Contributed by Jim Kingdon, 15-Oct-2019.) $)
    prltlu $p |- ( ( <. L , U >. e. P. /\ B e. L /\ C e. U ) -> B <Q C ) $=
      ( vq vr wcel w3a wn cltq wbr wa wi cnq cv wral wss wrex wb eleq1 simp3 wo
      cop elprnqu 3adant2 elinp simpr2 sylbi 3ad2ant1 wceq anbi12d notbid rspcv
      cnp sylc ancom notbii imnan bitr4i sylib mpd 3simpa prubl syl2anc ) DCUCU
      NGZADGZBCGZHZBDGZIZABJKZVHVGVJVEVFVGUAVHVIVGLZIZVGVJMZVHBNGZEOZDGZVPCGZLZ
      IZENPZVMVEVGVOVFBCDUDUEZVEVFWAVGVEDNQCNQLVQENRFOZCGZFNRLLZVQVPWCJKZWCDGLF
      NRSENPWDWFVRLENRSFNPLZWAWFVQWDUBMFNPENPZHLWACDFEUFWEWGWAWHUGUHUIVTVMEBNVP
      BUJZVSVLWIVQVIVRVGVPBDTVPBCTUKULUMUOVMVGVILZIVNVLWJVIVGUPUQVGVIURUSUTVAVH
      VEVFLVOVJVKMVEVFVGVBWBABCDVCVDVA $.
  $}

  ${
    $d x y B $.  $d x y L $.  $d x y U $.
    $( A lower cut has no largest member.  (Contributed by Jim Kingdon,
       29-Sep-2019.) $)
    prnmaxl $p |- ( ( <. L , U >. e. P. /\ B e. L ) -> E. x e. L B <Q x ) $=
      ( vy cop wcel wa cv cltq wbr wex wrex cnq wb wral wi wss df-rex sylibr wn
      cnp elprnql wo w3a elinp simpr1l sylbi eleq1 breq1 anbi1d rexbidv bibi12d
      wceq rspcv bi1 syl56 impd mpcom sylib ltrelnq brel simprd pm4.71ri anbi1i
      ancom anass 3bitr3i exbii ) DCFUBGZBDGZHZAIZDGZBVMJKZHZALZVOADMVLVMNGZVOV
      NHZHZALZVQVLVSANMZWABNGZVLWBBCDUCWCVJVKWBVJEIZDGZWDVMJKZVNHZANMZOZENPZWCV
      KWBOZVKWBQVJDNRCNRHWEENMVMCGZANMHHZWJWLWFWDCGZHENMOANPZHWEWNHUAENPZWFWEWL
      UDQANPENPZUEHWJCDAEUFWJWOWPWQWMUGUHWIWKEBNWDBUNZWEVKWHWBWDBDUIWRWGVSANWRW
      FVOVNWDBVMJUJUKULUMUOVKWBUPUQURUSVSANSUTVPVTAVSVRVOHZVNHVPVTVOWSVNVOVRVOW
      CVRBVMNNJVAVBVCVDVEVOVNVFVRVOVNVGVHVITVOADST $.

    $( An upper cut has no smallest member.  (Contributed by Jim Kingdon,
       7-Nov-2019.) $)
    prnminu $p |- ( ( <. L , U >. e. P. /\ B e. U ) -> E. x e. U x <Q B ) $=
      ( vy cop wcel wa cv cltq wbr wex wrex cnq wb wral wi wss df-rex sylibr wn
      cnp elprnqu wo w3a elinp simpr1r sylbi eleq1 breq2 anbi1d rexbidv bibi12d
      wceq rspcv bi1 syl56 impd mpcom sylib ltrelnq brel simpld pm4.71ri anbi1i
      ancom anass 3bitr3i exbii ) DCFUBGZBCGZHZAIZCGZVMBJKZHZALZVOACMVLVMNGZVOV
      NHZHZALZVQVLVSANMZWABNGZVLWBBCDUCWCVJVKWBVJEIZCGZVMWDJKZVNHZANMZOZENPZWCV
      KWBOZVKWBQVJDNRCNRHVMDGZANMWEENMHHZWLWFWDDGHENMOANPZWJHWLVNHUAANPZWFWLWEU
      DQENPANPZUEHWJCDEAUFWNWJWOWPWMUGUHWIWKEBNWDBUNZWEVKWHWBWDBCUIWQWGVSANWQWF
      VOVNWDBVMJUJUKULUMUOVKWBUPUQURUSVSANSUTVPVTAVSVRVOHZVNHVPVTVOWRVNVOVRVOVR
      WCVMBNNJVAVBVCVDVEVOVNVFVRVOVNVGVHVITVOACST $.
  $}

  ${
    $d x y B $.  $d x y L $.  $d x y U $.
    $( A lower cut has no largest member.  Addition version.  (Contributed by
       Jim Kingdon, 29-Sep-2019.) $)
    prnmaddl $p |- ( ( <. L , U >. e. P. /\ B e. L ) ->
        E. x e. Q. ( B +Q x ) e. L ) $=
      ( vy cop cnp wcel wa cv cltq wbr wrex cplq co prnmaxl wceq ltexnqi eleq1a
      cnq reximdv syl5 rexlimiv syl ) DCFGHBDHIBEJZKLZEDMBAJNOZDHZATMZEBCDPUFUI
      EDUFUGUEQZATMUEDHZUIABUERUKUJUHATUEDUGSUAUBUCUD $.
  $}

  ${
    $d A q r $.  $d B q r $.  $d L q r $.  $d U q r $.
    $( A Dedekind cut is located.  (Contributed by Jim Kingdon,
       23-Oct-2019.) $)
    prloc $p |- ( ( <. L , U >. e. P. /\ A <Q B ) -> ( A e. L \/ B e. U ) ) $=
      ( vq vr wcel cltq wbr wa cv wo wi cnq wral wss wrex wb simpr adantl elinp
      cop cnp wn w3a simpr3 sylbi adantr ltrelnq brel simpld wceq breq1d eleq1d
      orbi1d imbi12d ralbidv rspcdv simprd breq2d orbi2d syld mp2d ) DCUBUCGZAB
      HIZJZEKZFKZHIZVGDGZVHCGZLZMZFNOZENOZVEADGZBCGZLZVDVOVEVDDNPCNPJVJENQVKFNQ
      JJZVJVIVHDGJFNQRENOVKVIVGCGZJENQRFNOJZVJVTJUDENOZVOUEJVOCDFEUAVSWAWBVOUFU
      GUHVDVESVFVOAVHHIZVPVKLZMZFNOZVEVRMZVFVNWFEANVEANGZVDVEWHBNGZABNNHUIUJZUK
      TVFVGAULZJZVMWEFNWLVIWCVLWDWLVGAVHHVFWKSZUMWLVJVPVKWLVGADWMUNUOUPUQURVFWE
      WGFBNVEWIVDVEWHWIWJUSTVFVHBULZJZWCVEWDVRWOVHBAHVFWNSZUTWOVKVQVPWOVHBCWPUN
      VAUPURVBVC $.
  $}

  ${
    $d A q r $.  $d L q r $.  $d U q r $.
    $( A Dedekind cut is disjoint.  (Contributed by Jim Kingdon,
       15-Dec-2019.) $)
    prdisj $p |- ( ( <. L , U >. e. P. /\ A e. Q. ) ->
        -. ( A e. L /\ A e. U ) ) $=
      ( vq vr cop cnp wcel cnq wa wn cv wi wceq eleq1 anbi2d wss wrex wb wral
      anbi12d notbid imbi12d cltq wbr wo w3a elinp simpr2 sylbi r19.21bi vtoclg
      anabsi7 ) CBFGHZAIHZACHZABHZJZKZUNDLZIHZJZUTCHZUTBHZJZKZMUNUOJZUSMDAIUTAN
      ZVBVGVFUSVHVAUOUNUTAIOPVHVEURVHVCUPVDUQUTACOUTABOUAUBUCUNVFDIUNCIQBIQJVCD
      IRELZBHZEIRJJZVCUTVIUDUEZVICHJEIRSDITVJVLVDJDIRSEITJZVFDITZVLVCVJUFMEITDI
      TZUGJVNBCEDUHVKVMVNVOUIUJUKULUM $.
  $}

  $( Two possible ways of contracting an interval which straddles a Dedekind
     cut.  Lemma for ~ prarloc .  (Contributed by Jim Kingdon, 10-Nov-2019.) $)
  prarloclemlt $p |- ( ( ( X e. _om
      /\ ( <. L , U >. e. P. /\ A e. L /\ P e. Q. ) )
      /\ y e. _om ) ->
      ( A +Q ( [ <. ( y +o 1o ) , 1o >. ] ~Q .Q P ) ) <Q
      ( A +Q ( [ <. ( ( y +o 2o ) +o X ) , 1o >. ] ~Q .Q P ) ) ) $=
    ( com wcel cnq wa c1o coa co ceq c2o wbr cnpi 1pi wceq syl2anc cop cnp cltq
    w3a cv cec cmq cplq cmi clti wss 2onn nnacl mpan2 nnaword1 sylan csuc elexi
    1onn sucid eleqtrri wi nnaordi mpan mpi adantr sseldd ancoms nnppipi adantl
    df-2o o1p1e2 mp2an eqeltrri pinn syl nnacom sylan2 eqeltrrd ltpiord mulidpi
    mpbird mulcompig sylancl eqtr3d breq12d ordpipqqs mpanl2 mpanr2 adantlr cxp
    wb simpr cqs opelxpi enqex ecelqsi df-nqqs syl6eleqr simplr3 ltmnqg syl3anc
    mpbid mulcomnqg mulclnq simplr1 simplr2 elprnql ltanqg ) FGHZEDUAUBHZBEHZCI
    HZUDZJAUEZGHZJZXOKLMZKUAZNUFZCUGMZXOOLMZFLMZKUAZNUFZCUGMZUCPZBYAUHMBYFUHMUC
    PZXQCXTUGMZCYEUGMZUCPZYGXQXTYEUCPZYKXJXPYLXNXJXPJZYLXRKUIMZKYCUIMZUJPZYMYPX
    RYCUJPZYMYQXRYCHZXPXJYRXPXJJYBYCXRXPYBGHZXJYBYCUKXPOGHZYSULXOOUMUNYBFUOUPXP
    XRYBHZXJXPKOHZUUAKKUQOKKGUSURUTVKVAYTXPUUBUUAVBULKOXOVCVDVEVFVGVHYMXRQHZYCQ
    HZYQYRWLXPUUCXJXPKQHZUUCRXOKVIUNZVJZYMFYBLMZYCQXPXJYSUUHYCSXPYBQHZYSXPOQHUU
    IKKLMZOQVLKGHUUEUUJQHUSRKKVIVMVNXOOVIUNZYBVOVPFYBVQVRXPXJUUIUUHQHUUKFYBVIVR
    VSZXRYCVTTWBYMYNXRYOYCUJYMUUCYNXRSUUGXRWAVPYMYCKUIMZYOYCYMUUDUUEUUMYOSUULRY
    CKWCWDYMUUDUUMYCSUULYCWAVPWEWFWBYMXPUUDYLYPWLZXJXPWMUULXPUUCUUDUUNUUFUUCUUD
    UUEUUNRUUCUUEUUDUUEJUUNRXRKYCKWGWHWIUPTWBWJXQXTIHZYEIHZXMYLYKWLXJXPUUOXNYMX
    TQQWKZNWNZIYMXSUUQHZXTUURHYMUUCUUEUUSUUGRXRKQQWOWDUUQXSNWPWQVPWRWSWJZXJXPUU
    PXNYMYEUURIYMYDUUQHZYEUURHYMUUDUUEUVAUULRYCKQQWOWDUUQYDNWPWQVPWRWSWJZXKXLXM
    XJXPWTZXTYECXAXBXCXQYIYAYJYFUCXQXMUUOYIYASUVCUUTCXTXDTXQXMUUPYJYFSUVCUVBCYE
    XDTWFXCXQYAIHZYFIHZBIHZYGYHWLXQUUOXMUVDUUTUVCXTCXETXQUUPXMUVEUVBUVCYECXETXQ
    XKXLUVFXKXLXMXJXPXFXKXLXMXJXPXGBDEXHTYAYFBXIXBXC $.

  ${
    $d A f g h y z $.  $d L f g h y z $.  $d P f g h y z $.  $d U f g h y z $.
    $d X f g h y z $.
    $( Contracting the lower side of an interval which straddles a Dedekind
       cut.  Lemma for ~ prarloc .  (Contributed by Jim Kingdon,
       10-Nov-2019.) $)
    prarloclemlo $p |- ( ( ( X e. _om
      /\ ( <. L , U >. e. P. /\ A e. L /\ P e. Q. ) )
      /\ y e. _om ) -> (
      ( A +Q ( [ <. ( y +o 1o ) , 1o >. ] ~Q .Q P ) ) e. L -> (
        ( ( A +Q0 ( [ <. y , 1o >. ] ~Q0 .Q0 P ) ) e. L
          /\ ( A +Q
            ( [ <. ( ( y +o 2o ) +o suc X ) , 1o >. ] ~Q .Q P ) ) e. U ) ->
        E. y e. _om ( ( A +Q0 ( [ <. y , 1o >. ] ~Q0 .Q0 P ) ) e. L
        /\ ( A +Q
          ( [ <. ( ( y +o 2o ) +o X ) , 1o >. ] ~Q .Q P ) ) e. U ) ) ) ) $=
      ( com wcel cop wa c1o coa co ceq cec cmq cplq c2o wceq oveq1d vf vg vh vz
      cnp cnq w3a cv ceq0 cmq0 cplq0 csuc wrex nnaass adantl simpr 1onn sylancl
      wi nnacl 2onn a1i simpll caovassd nnacom caov4d caovcomd con0 nnon oa1suc
      eqtrd oveq2d 3eqtr2rd opeq1d eceq1d eleq1d biimpd simplr1 simplr2 elprnql
      3syl syl2anc cnpi cxp 1pi nnppipi opelxpi mpan2 cqs enqex ecelqsi df-nqqs
      syl6eleqr simplr3 mulclnq nqnq0a nqnq0m nqnq0pi eqtr4d anbi1d opeq1 oveq1
      anbi12d rspcev ex syl sylbid cbvrexv syl6ib sylan2d expdimp adantld ) FGH
      ZEDIUEHZBEHZCUFHZUGZJZAUHZGHZJZBXSKLMZKIZNOZCPMZQMZEHZBXSKIZUIOZCUJMZUKMZ
      EHZBXSRLMZFULZLMZKIZNOZCPMZQMZDHZJYLBYMFLMZKIZNOZCPMZQMZDHZJZAGUMZUSYAYGJ
      YTUUHYLYAYGYTUUHYAYTBYBRLMZFLMZKIZNOZCPMZQMZDHZYGUUHYAYTUUOYAYSUUNDYAYRUU
      MBQYAYQUULCPYAYPUUKNYAYOUUJKYAUUJYBRFLMLMYMKFLMZLMYOYAUAUBUCYBRFGLUAUHZGH
      ZUBUHZGHZUCUHZGHUGUUQUUSLMZUVALMUUQUUSUVALMLMSYAUUQUUSUVAUNUOZYAXTKGHZYBG
      HZXRXTUPZUQXSKUTURZRGHYAVAVBZXMXQXTVCZVDYAUAUBUCXSRKFGLUVFUVHUVDYAUQVBZUU
      RUUTJZUVBUUSUUQLMSYAUUQUUSVEUOZUVCUVIUVKUVBGHYAUUQUUSUTUOVFYAUUPYNYMLYAUU
      PFKLMZYNYAUAUBKFGLUVLUVJUVIVGYAXMFVHHUVMYNSUVIFVIFVJWAVKVLVMVNVOTVLVPVQYA
      YGUUOJZBUDUHZKIZUIOZCUJMZUKMZEHZBUVORLMZFLMZKIZNOZCPMZQMZDHZJZUDGUMZUUHYA
      UVNBYCUIOZCUJMZUKMZEHZUUOJZUWIYAYGUWMUUOYAYFUWLEYAYFBYEUKMZUWLYABUFHZYEUF
      HZYFUWOSYAXNXOUWPXNXOXPXMXTVRXNXOXPXMXTVSBDEVTWBYAYDUFHZXPUWQYAYBWCHZYCWC
      WCWDZHZUWRYAXTKWCHZUWSUVFWEXSKWFURZUWSUXBUXAWEYBKWCWCWGWHUXAYDUWTNWIUFUWT
      YCNWJWKWLWMWAZXNXOXPXMXTWNZYDCWOWBBYEWPWBYAYEUWKBUKYAYEYDCUJMZUWKYAUWRXPY
      EUXFSUXDUXEYDCWQWBYAUWJYDCUJYAUWSUXBUWJYDSUXCWEYBKWRURTWSVLVKVPWTYAUVEUWN
      UWIUSUVGUVEUWNUWIUWHUWNUDYBGUVOYBSZUVTUWMUWGUUOUXGUVSUWLEUXGUVRUWKBUKUXGU
      VQUWJCUJUXGUVPYCUIUVOYBKXAVOTVLVPUXGUWFUUNDUXGUWEUUMBQUXGUWDUULCPUXGUWCUU
      KNUXGUWBUUJKUXGUWAUUIFLUVOYBRLXBTVNVOTVLVPXCXDXEXFXGUWHUUGUDAGUVOXSSZUVTY
      LUWGUUFUXHUVSYKEUXHUVRYJBUKUXHUVQYICUJUXHUVPYHUIUVOXSKXAVOTVLVPUXHUWFUUED
      UXHUWEUUDBQUXHUWDUUCCPUXHUWCUUBNUXHUWBUUAKUXHUWAYMFLUVOXSRLXBTVNVOTVLVPXC
      XHXIXJXKXLXE $.
  $}

  $( Contracting the upper side of an interval which straddles a Dedekind cut.
     Lemma for ~ prarloc .  (Contributed by Jim Kingdon, 10-Nov-2019.) $)
  prarloclemup $p |- ( ( ( X e. _om
      /\ ( <. L , U >. e. P. /\ A e. L /\ P e. Q. ) )
      /\ y e. _om ) -> (
      ( A +Q ( [ <. ( ( y +o 2o ) +o X ) , 1o >. ] ~Q .Q P ) ) e. U -> (
        ( ( A +Q0 ( [ <. y , 1o >. ] ~Q0 .Q0 P ) ) e. L
          /\ ( A +Q
            ( [ <. ( ( y +o 2o ) +o suc X ) , 1o >. ] ~Q .Q P ) ) e. U ) ->
        E. y e. _om ( ( A +Q0 ( [ <. y , 1o >. ] ~Q0 .Q0 P ) ) e. L
        /\ ( A +Q
          ( [ <. ( ( y +o 2o ) +o X ) , 1o >. ] ~Q .Q P ) ) e. U ) ) ) ) $=
    ( com wcel cop cnp cnq w3a wa coa co c1o ceq cec cmq cplq cv c2o ceq0 cplq0
    cmq0 csuc wrex simpllr simprl simplr rspe syl12anc exp31 ) FGHEDIJHBEHCKHLM
    ZAUAZGHZMZBUOUBNOZFNOPIQRCSOTODHZBUOPIUCRCUEOUDOEHZBURFUFNOPIQRCSOTODHZMZUT
    USMZAGUGZUQUSMZVBMUPUTUSVDUNUPUSVBUHVEUTVAUIUQUSVBUJVCAGUKULUM $.

  ${
    $d A y $.  $d L y $.  $d P y $.  $d U y $.  $d X y $.
    $( Induction step for ~ prarloclem3 .  (Contributed by Jim Kingdon,
       9-Nov-2019.) $)
    prarloclem3step $p |- (
      ( ( X e. _om /\ ( <. L , U >. e. P. /\ A e. L /\ P e. Q. ) )
      /\ E. y e. _om ( ( A +Q0 ( [ <. y , 1o >. ] ~Q0 .Q0 P ) ) e. L
        /\ ( A +Q
          ( [ <. ( ( y +o 2o ) +o suc X ) , 1o >. ] ~Q .Q P ) ) e. U ) ) ->
      E. y e. _om ( ( A +Q0 ( [ <. y , 1o >. ] ~Q0 .Q0 P ) ) e. L
        /\ ( A +Q
          ( [ <. ( ( y +o 2o ) +o X ) , 1o >. ] ~Q .Q P ) ) e. U ) ) $=
      ( com wcel cop wa c1o cec co coa ceq cmq cplq wrex wi ex cnp cnq w3a ceq0
      cmq0 cplq0 c2o csuc nfv nfre1 prarloclemlo prarloclemup cltq prarloclemlt
      cv wbr wo prloc 3ad2ant1 ad2antlr mpd mpjaod rexlimd imp ) FGHZEDIUAHZBEH
      ZCUBHZUCZJZBAUOZKIUDLCUEMUFMEHZBVKUGNMZFUHNMKIOLCPMQMDHJZAGRVLBVMFNMKIOLC
      PMQMZDHZJZAGRZVJVNVRAGVJAUIVQAGUJVJVKGHZVNVRSZVJVSJZBVKKNMKIOLCPMQMZEHZVT
      VPABCDEFUKABCDEFULWAWBVOUMUPZWCVPUQZABCDEFUNVIWDWESZVEVSVFVGWFVHVFWDWEWBV
      ODEURTUSUTVAVBTVCVD $.
  $}

  ${
    $d A j x y z $.  $d L j x y z $.  $d P j x y z $.  $d U j x y z $.
    $d X x y $.
    $( Contracting an interval which straddles a Dedekind cut.  Lemma for
       ~ prarloc .  (Contributed by Jim Kingdon, 27-Oct-2019.) $)
    prarloclem3 $p |- ( ( ( <. L , U >. e. P. /\ A e. L ) /\
      ( X e. _om /\ P e. Q. ) /\
      E. y e. _om ( ( A +Q0 ( [ <. y , 1o >. ] ~Q0 .Q0 P ) ) e. L
        /\ ( A +Q
          ( [ <. ( ( y +o 2o ) +o X ) , 1o >. ] ~Q .Q P ) ) e. U ) ) ->
      E. j e. _om ( ( A +Q0 ( [ <. j , 1o >. ] ~Q0 .Q0 P ) ) e. L /\
        ( A +Q ( [ <. ( j +o 2o ) , 1o >. ] ~Q .Q P ) ) e. U ) ) $=
      ( cop wcel wa com c1o cec co coa ceq cmq cplq wrex wi vx vz cnp ceq0 cmq0
      cnq cv cplq0 c2o simprl simpll simplr simprr w3a wceq oveq2 opeq1d eceq1d
      oveq1d oveq2d eleq1d anbi2d rexbidv imbi1d imbi2d c0 csuc 2onn nnacl nna0
      mpan2 rexbiia opeq1 oveq1 anbi12d cbvrexv bitri biimpi prarloclem3step ex
      syl a1i imim1d finds2 vtoclga imp syl13anc 3impia ) FDHUCIZBFIZJZGKIZCUFI
      ZJZBAUGZLHZUDMZCUENZUHNZFIZBWOUIONZGONZLHZPMZCQNZRNZDIZJZAKSZBEUGZLHZUDMZ
      CUENZUHNZFIZBXJUIONZLHZPMZCQNZRNZDIZJZEKSZWKWNJWLWIWJWMXIYCTZWKWLWMUJWIWJ
      WNUKWIWJWNULWKWLWMUMWLWIWJWMUNZYDYEWTBXAUAUGZONZLHZPMZCQNZRNZDIZJZAKSZYCT
      ZTYEYDTUAGKYFGUOZYOYDYEYPYNXIYCYPYMXHAKYPYLXGWTYPYKXFDYPYJXEBRYPYIXDCQYPY
      HXCPYPYGXBLYFGXAOUPUQURUSUTVAVBVCVDVEYOWTBXAVFONZLHZPMZCQNZRNZDIZJZAKSZYC
      TZWTBXAUBUGZONZLHZPMZCQNZRNZDIZJZAKSZYCTZWTBXAUUFVGZONZLHZPMZCQNZRNZDIZJZ
      AKSZYCTZYEUAUBYFVFUOZYNUUDYCUVFYMUUCAKUVFYLUUBWTUVFYKUUADUVFYJYTBRUVFYIYS
      CQUVFYHYRPUVFYGYQLYFVFXAOUPUQURUSUTVAVBVCVDYFUUFUOZYNUUNYCUVGYMUUMAKUVGYL
      UULWTUVGYKUUKDUVGYJUUJBRUVGYIUUICQUVGYHUUHPUVGYGUUGLYFUUFXAOUPUQURUSUTVAV
      BVCVDYFUUPUOZYNUVDYCUVHYMUVCAKUVHYLUVBWTUVHYKUVADUVHYJUUTBRUVHYIUUSCQUVHY
      HUURPUVHYGUUQLYFUUPXAOUPUQURUSUTVAVBVCVDUUEYEUUDYCUUDWTBXALHZPMZCQNZRNZDI
      ZJZAKSYCUUCUVNAKWOKIZUUBUVMWTUVOUUAUVLDUVOYTUVKBRUVOYSUVJCQUVOYRUVIPUVOYQ
      XALUVOUIKIZYQXAUOZVHUVOUVPJXAKIUVQWOUIVIXAVJWAVKUQURUSUTVAVBVLUVNYBAEKWOX
      JUOZWTXOUVMYAUVRWSXNFUVRWRXMBUHUVRWQXLCUEUVRWPXKUDWOXJLVMURUSUTVAUVRUVLXT
      DUVRUVKXSBRUVRUVJXRCQUVRUVIXQPUVRXAXPLWOXJUIOVNUQURUSUTVAVOVPVQVRWBUUFKIZ
      YEUUOUVETUVSYEJZUVDUUNYCUVTUVDUUNABCDFUUFVSVTWCVTWDWEWFWGWH $.
  $}

  ${
    $d A j x y $.  $d L j x y $.  $d P j x y $.  $d U j x y $.
    $( A slight rearrangement of ~ prarloclem3 .  Lemma for ~ prarloc .
       (Contributed by Jim Kingdon, 4-Nov-2019.) $)
    prarloclem4 $p |- ( ( ( <. L , U >. e. P. /\ A e. L ) /\ P e. Q. ) -> (
      E. x e. _om E. y e. _om ( ( A +Q0 ( [ <. y , 1o >. ] ~Q0 .Q0 P ) ) e. L
        /\ ( A +Q
          ( [ <. ( ( y +o 2o ) +o x ) , 1o >. ] ~Q .Q P ) ) e. U ) ->
      E. j e. _om ( ( A +Q0 ( [ <. j , 1o >. ] ~Q0 .Q0 P ) ) e. L /\
        ( A +Q ( [ <. ( j +o 2o ) , 1o >. ] ~Q .Q P ) ) e. U )
      ) ) $=
      ( cop wcel wa cv c1o ceq0 cec cmq0 co cplq0 c2o coa com cnp cnq cplq wrex
      ceq cmq wi prarloclem3 3expia ancom2s anassrs rexlimdva ) GEHUAICGIJZDUBI
      ZJCBKZLHMNDOPQPGICUORSPAKZSPLHUENDUFPUCPEIJBTUDZCFKZLHMNDOPQPGICURRSPLHUE
      NDUFPUCPEIJFTUDZATUMUNUPTIZUQUSUGZUMUTUNVAUMUTUNJUQUSBCDEFGUPUHUIUJUKUL
      $.
  $}

  ${
    $d N x $.
    $( Subtracting two from a positive integer.  Lemma for ~ prarloc .
       (Contributed by Jim Kingdon, 5-Nov-2019.) $)
    prarloclemn $p |- ( ( N e. N. /\ 1o <N N ) ->
      E. x e. _om ( 2o +o x ) = N ) $=
      ( cnpi wcel c1o clti wbr wa csuc wss c2o cv coa co wceq com wrex mpan syl
      wb simpl 1pi ltpiord biimpa word wi piord ordsucss sylc df-2o sseq1i pinn
      2onn nnawordex adantr syl5bbr mpbid ) BCDZEBFGZHZEIZBJZKALMNBOAPQZUTUREBD
      ZVBURUSUAURUSVDECDURUSVDTUBEBUCRUDURBUEVDVBUFBUGEBUHSUIVBKBJZUTVCKVABUJUK
      URVEVCTZUSURBPDZVFBULKPDVGVFUMAKBUNRSUOUPUQ $.
  $}

  ${
    $d A x y $.  $d L x y $.  $d N x $.  $d P x y $.  $d U x y $.
    $( A substitution of zero for ` y ` and ` N ` minus two for ` x ` .  Lemma
       for ~ prarloc .  (Contributed by Jim Kingdon, 4-Nov-2019.) $)
    prarloclem5 $p |- ( ( ( <. L , U >. e. P. /\ A e. L ) /\
      ( N e. N. /\ P e. Q. /\ 1o <N N ) /\
      ( A +Q ( [ <. N , 1o >. ] ~Q .Q P ) ) e. U ) ->
      E. x e. _om E. y e. _om ( ( A +Q0 ( [ <. y , 1o >. ] ~Q0 .Q0 P ) ) e. L
        /\ ( A +Q
          ( [ <. ( ( y +o 2o ) +o x ) , 1o >. ] ~Q .Q P ) ) e. U ) ) $=
      ( cop wcel c1o ceq cec cmq co c2o coa wceq com c0 c0q0 cnp wa cnq wbr w3a
      cnpi clti cplq wrex ceq0 cmq0 cplq0 prarloclemn 3adant2 3ad2ant2 3ad2ant1
      cv elprnql simp22 cnq0 nqnq0 sseli nq0a0 syl df-0nq0 oveq1i nq0m0r oveq2d
      syl5reqr sylan9req syl2anc simp1r eqeltrrd 2onn nna0r ax-mp eqeq1i opeq1d
      biimpri eceq1d oveq1d eleq1d biimprcd 3ad2ant3 peano1 opeq1 oveq1 anbi12d
      wi rspcev mpan syl6an reximdv mpd ) FEHUAIZCFIZUBZGUFIZDUCIZJGUGUDZUEZCGJ
      HZKLZDMNZUHNZEIZUEZOAUQZPNZGQZARUIZCBUQZJHZUJLZDUKNZULNZFIZCXLOPNZXHPNZJH
      ZKLZDMNZUHNZEIZUBZBRUIZARUIXAWQXKXFWRWTXKWSAGUMUNUOXGXJYFARXGCSJHZUJLZDUK
      NZULNZFIZXJCSOPNZXHPNZJHZKLZDMNZUHNZEIZYFXGCYJFXGCUCIZWSCYJQWQXAYSXFCEFUR
      UPWQWRWSWTXFUSYSWSCCTULNZYJYSCUTIYTCQUCUTCVAVBCVCVDWSTYICULWSYITDUKNZTTYH
      DUKVEVFWSDUTIUUATQUCUTDVAVBDVGVDVIVHVJVKWOWPXAXFVLVMXFWQXJYRWIXAXJYRXFXJY
      QXEEXJYPXDCUHXJYOXCDMXJYNXBKXJYMGJYMGQXJYMXIGYLOXHPORIYLOQVNOVOVPVFVQVSVR
      VTWAVHWBWCWDSRIYKYRUBZYFWEYEUUBBSRXLSQZXQYKYDYRUUCXPYJFUUCXOYICULUUCXNYHD
      UKUUCXMYGUJXLSJWFVTWAVHWBUUCYCYQEUUCYBYPCUHUUCYAYODMUUCXTYNKUUCXSYMJUUCXR
      YLXHPXLSOPWGWAVRVTWAVHWBWHWJWKWLWMWN $.
  $}

  ${
    $d A j x y $.  $d L j x y $.  $d N j x $.  $d P j x y $.  $d U j x y $.
    $( A special case of Lemma 6.16 from [BauerTaylor], p. 32.  Given evenly
       spaced rational numbers from ` A ` to ` A +Q ( N .Q P ) ` (which are in
       the lower and upper cuts, respectively, of a real number), there are a
       pair of numbers, two positions apart in the even spacing, which straddle
       the cut.  (Contributed by Jim Kingdon, 22-Oct-2019.) $)
    prarloclem $p |- ( ( ( <. L , U >. e. P. /\ A e. L ) /\
      ( N e. N. /\ P e. Q. /\ 1o <N N ) /\
      ( A +Q ( [ <. N , 1o >. ] ~Q .Q P ) ) e. U ) ->
      E. j e. _om ( ( A +Q0 ( [ <. j , 1o >. ] ~Q0 .Q0 P ) ) e. L /\
        ( A +Q ( [ <. ( j +o 2o ) , 1o >. ] ~Q .Q P ) ) e. U ) ) $=
      ( vy vx cop wcel wa c1o ceq cec cmq co cplq cv coa com cnp cnpi clti ceq0
      cnq wbr w3a cmq0 cplq0 c2o wrex prarloclem5 prarloclem4 3ad2antr2 3adant3
      wi mpd ) ECIUAJAEJKZFUBJZBUEJZLFUCUFZUGZAFLIMNBOPQPCJZUGAGRZLIUDNBUHPUIPE
      JAVDUJSPHRSPLIMNBOPQPCJKGTUKHTUKZADRZLIUDNBUHPUIPEJAVFUJSPLIMNBOPQPCJKDTU
      KZHGABCEFULURVBVEVGUPZVCURUSUTVHVAHGABCDEUMUNUOUQ $.
  $}

  $( Some calculations for ~ prarloc .  (Contributed by Jim Kingdon,
     26-Oct-2019.) $)
  prarloclemcalc $p |- ( ( (
      A = ( X +Q0 ( [ <. M , 1o >. ] ~Q0 .Q0 Q ) )
      /\
      B = ( X +Q ( [ <. ( M +o 2o ) , 1o >. ] ~Q .Q Q ) ) )
    /\ (
      ( Q e. Q. /\ ( Q +Q Q ) <Q P )
      /\ ( X e. Q. /\ M e. _om )
    ) ) -> B <Q ( A +Q P ) ) $=
    ( c1o ceq0 cmq0 co cplq0 wceq c2o wa cnq wcel syl2anc cnq0 cnpi syl cop cec
    coa ceq cmq cplq cltq wbr com simprll nqnq0a oveq2d simprrl simprrr cxp cqs
    simpll 1pi opelxpi enq0ex ecelqsi df-nq0 syl6eleqr sseldi mulclnq0 nqpnq0nq
    mpan2 eqeltrd addclnq simplr c0 wne 2onn 2on0 elni mpbir2an nnppipi sylancl
    nqnq0 enqex df-nqqs mulclnq nqnq0m oveq1d eqtr4d 3eqtrd nnanq0 mp3an3 mp2an
    nqnq0pi ax-mp eleqtrri distnq0r eqtrd nq02m addclnq0 addassnq0 oveq1 eqeq2d
    syl3anc wb mpbird 3eqtr4rd simprlr ltrelnq brel ltanqg 3expa mpbid eqbrtrd
    ) AFEGUAZHUBZDIJZKJZLZBFEMUCJZGUAZUDUBZDUEJZUFJZLZNZDOPZDDUFJZCUGUHZNZFOPZE
    UIPZNZNZNZBAYDUFJZACUFJZUGYKAYDKJZADDKJZKJZYLBYKYDYOAKYKYCYCYDYOLYBYCYEYIUJ
    ZYQDDUKQULYKAOPZYDOPZYLYNLYKAXNOXOYAYJUQZYKYGXMRPZXNOPYBYFYGYHUMZYKXLRPZDRP
    ZUUAYKYHUUCYBYFYGYHUNZYHXLUISUOZHUPZRYHXKUUFPZXLUUGPYHGSPZUUHUREGUISUSVGUUF
    XKHUTVATVBVCTZYKORDVSYQVDZXLDVEQZFXMVFQVHZYKYCYCYSYQYQDDVIQAYDUKQYKBYPLZBXN
    YOKJZLZYKBFXQHUBZDIJZKJZFXMMGUAZHUBZDIJZKJZKJZUUOYKBXTFXSKJZUUSXOYAYJVJYKYG
    XSOPZXTUVELUUBYKXROPZYCUVFYKYHUVGUUEYHXRSSUOZUDUPZOYHXQUVHPZXRUVIPYHXPSPZUU
    IUVJYHMSPZUVKUVLMUIPZMVKVLVMVNMVOVPEMVQVGZURXPGSSUSVRUVHXQUDVTVATWAVCTZYQXR
    DWBQFXSUKQYKXSUURFKYKXSXRDIJZUURYKUVGYCXSUVPLUVOYQXRDWCQYKUUQXRDIYKYHUUQXRL
    ZUUEYHUVKUUIUVQUVNURXPGWJVRTWDWEULWFYKUURUVCFKYKUURXLUVAKJZDIJZUVCYKUUQUVRD
    IYKYHUVMUUQUVRLZUUEVMYHUVMUUIUVTURGMEWGWHVRWDYKUUDUUCUVSUVCLZUUKUUJUUDUUCUV
    ARPUWAUVAUUGRUUTUUFPZUVAUUGPUVMUUIUWBVMURMGUISUSWIUUFUUTHUTVAWKVBWLDXLUVAWM
    WHQWNULYKUVDFXMYOKJZKJZUUOYKUUDUVDUWDLUUKUUDUVCUWCFKUUDUVBYOXMKDWOULULTYKFR
    PUUAYORPZUUOUWDLYKORFVSUUBVDUULYKUUDUUDUWEUUKUUKDDWPQFXMYOWQWTWEWFYKXOUUNUU
    PXAYTXOYPUUOBAXNYOKWRWSTXBXCYKYEYLYMUGUHZYBYCYEYIXDZYKYSCOPZNZYRYEUWFXAZYKY
    EUWIUWGYDCOOUGXEXFTUUMYSUWHYRUWJYDCAXGXHQXIXJ $.

  ${
    $d L a b m n q x y $.  $d P a b m n q x y $.  $d U a b m n q x y $.
    $( A Dedekind cut is arithmetically located.  Part of Proposition 11.15 of
       [BauerTaylor], p. 52, slightly modified.  It states that given a
       tolerance ` P ` , there are elements of the lower and upper cut which
       are within that tolerance of each other.

       Usually, proofs will be shorter if they use ~ prarloc2 instead.
       (Contributed by Jim Kingdon, 22-Oct-2019.) $)
    prarloc $p |- ( ( <. L , U >. e. P. /\ P e. Q. ) ->
        E. a e. L E. b e. U b <Q ( a +Q P ) ) $=
      ( vx vy vq vn vm wcel cnq wa cv co wex wrex df-rex sylib anbi2d cplq cltq
      cop cnp wbr w3a cnpi c1o clti ceq cec prml adantr subhalfnqq adantl ancli
      cmq prmu 19.42v sylibr eeeanv syl3anbrc prarloclemarch2 3adant1r 3adant2r
      3com12 3adant3r 3adant3l 2eximi eximi com ceq0 cmq0 cplq0 c2o coa simpl1l
      simp3rl simp3rr simp3ll simpl1r simprl simprrl simprrr wi simpl2r prcunqu
      3jca syl2anc mpd prarloclem syl231anc wceq eleq1 anbi1d ceqsexgv biimprcd
      exbidv sylc exbii simprl2 simprl3 simprl1 prarloclemcalc syl12anc ancom1s
      jca simpl anasss syl exlimiv exlimivv 3syl excom anbi2i bitr4i ) CBUCUDKZ
      ALKZMZDNZCKZENZBKZYBXTAUAOUBUEZMZMZEPZDPZYDEBQZDCQZXSYFDPEPZYHXSFNZLKZYLC
      KZMZGNZLKZYPBKZMZXSHNZLKZYTYTUAOAUBUEZMZMZUFZHPGPZFPZUUEINZUGKZUHUUHUIUEZ
      YPYLUUHUHUCUJUKYTUQOUAOZUBUEZMZMZMZIPZHPZGPZFPYKXSYOFPZYSGPZUUDHPZUUGXQUU
      SXRXQYNFLQUUSFBCULYNFLRSUMXQUUTXRXQYRGLQUUTGBCURYRGLRSUMXSXSUUCHPZMUVAXSU
      VBXSUUBHLQZUVBXRUVCXQHAUNUOUUBHLRSUPXSUUCHUSUTYOYSUUDFGHVAVBUUFUURFUUEUUP
      GHUUEUUEUUNIPZMUUPUUEUVDYOYSUUCUVDXSYOYSUUAUVDUUBYOYQUUAUVDYRYMYQUUAUVDYN
      YQYMUUAUVDYQYMUUAUFUUMIUGQUVDIYPYLYTVCUUMIUGRSVFVDVEVGVHUPUUEUUNIUSUTVIVJ
      UUQYKFGUUOYKHIUUOYMUUAUUBUFZJNZVKKZYLUVFUHUCVLUKYTVMOVNOZCKZYLUVFVOVPOUHU
      CUJUKYTUQOUAOZBKZMZMZMZJPZYKUUOUVEUVMJPZMUVOUUOUVEUVPUUOYMUUAUUBYMYNYSUUD
      UUNVQUUEUUAUUNUUAUUBXSYOYSVRUMZUUEUUBUUNUUAUUBXSYOYSVSUMWHUUOUVLJVKQZUVPU
      UOXQYNUUIUUAUUJUUKBKZUVRUUEXQUUNXQXRUUCYOYSVTUMZYMYNYSUUDUUNWAUUEUUIUUMWB
      UVQUUEUUIUUJUULWCUUOUULUVSUUEUUIUUJUULWDUUOXQYRUULUVSWEUVTYQYRYOUUDUUNWFU
      UKYPBCWGWIWJYLYTBJCUUHWKWLUVLJVKRSXGUVEUVMJUSUTUVNYKJUVNYBUVJWMZXTUVHWMZU
      VEUVGYAYCMZMZMZMZMZDPZEPZYKUVNUWAUWFDPZMZEPZUWIUVNUWBUVEUVGYAUVKMZMZMZMZD
      PZUVKUWLUVNUVIUWQUVEUVGUVIUVKWCUVIUWQUVNUWOUVNDUVHCUWBUWNUVMUVEUWBUWMUVLU
      VGUWBYAUVIUVKXTUVHCWNWOTTWPWQWJUVEUVGUVIUVKWDUVKUWLUWQUWJUWQEUVJBUWAUWFUW
      PDUWAUWEUWOUWBUWAUWDUWNUVEUWAUWCUWMUVGUWAYCUVKYAYBUVJBWNTTTTWRWPWQWSUWHUW
      KEUWAUWFDUSWTUTUWGYFEDUWAUWBUWEYFUWBUWAUWEYFUWBUWAMZUWEMZYAYEUWEYAUWRUVEU
      VGYAYCWCUOUWSYCYDUWEYCUWRUVEUVGYAYCWDUOUWSUWRUUCYMUVGMYDUWRUWEXHUWSUUAUUB
      YMUUAUUBUWDUWRXAYMUUAUUBUWDUWRXBXGUWSYMUVGYMUUAUUBUWDUWRXCUWRUVEUVGUWCWCX
      GXTYBAYTUVFYLXDXEXGXGXFXIVIXJXKXJXLXLXMYFEDXNSYHYAYIMZDPYJYGUWTDYGYAYEEPZ
      MUWTYAYEEUSYIUXAYAYDEBRXOXPWTYIDCRXPS $.
  $}

  ${
    $d L a b $.  $d P a b $.  $d U a b $.
    $( A Dedekind cut is arithmetically located.  This is a variation of
       ~ prarloc which only constructs one (named) point and is therefore often
       easier to work with.  It states that given a tolerance ` P ` , there are
       elements of the lower and upper cut which are exactly that tolerance
       from each other.  (Contributed by Jim Kingdon, 26-Dec-2019.) $)
    prarloc2 $p |- ( ( <. L , U >. e. P. /\ P e. Q. ) ->
        E. a e. L ( a +Q P ) e. U ) $=
      ( vb cop cnp wcel cnq wa cv cplq co cltq wbr prarloc wi prcunqu rexlimdva
      wrex reximdv adantr mpd ) CBFGHZAIHZJEKZDKALMZNOZEBTZDCTZUGBHZDCTZABCDEPU
      DUJULQUEUDUIUKDCUDUHUKEBUGUFBCRSUAUBUC $.
  $}

  ${
    $d q x y $.
    $( Positive real 'less than' is a relation on positive reals.  (Contributed
       by NM, 14-Feb-1996.) $)
    ltrelpr $p |- <P C_ ( P. X. P. ) $=
      ( vx vy vq cltp cv cnp wcel c2nd cfv c1st cnq wrex copab df-iltp opabssxp
      wa cxp eqsstri ) DAEZFGBEZFGPCEZSHIGUATJIGPCKLZPABMFFQABCNUBABFFOR $.
  $}

  ${
    $d A q x y $.  $d B q x y $.
    $( More convenient form of ~ df-iltp .  (Contributed by Jim Kingdon,
       15-Dec-2019.) $)
    ltdfpr $p |- ( ( A e. P. /\ B e. P. ) -> ( A <P B <->
        E. q e. Q. ( q e. ( 2nd ` A ) /\ q e. ( 1st ` B ) ) ) ) $=
      ( vx vy cltp wbr cop cv cnp wcel wa c2nd cfv c1st wrex wceq fveq2d eleq2d
      cnq copab df-br df-iltp eleq2i bitri simpl simpr anbi12d rexbidv syl5bb
      opelopab2a ) ABFGZABHZDIZJKEIZJKLCIZUNMNZKZUPUOONZKZLZCTPZLDEUAZKZAJKBJKL
      UPAMNZKZUPBONZKZLZCTPZULUMFKVDABFUBFVCUMDECUCUDUEVBVJDEABJJUNAQZUOBQZLZVA
      VICTVMURVFUTVHVMUQVEUPVMUNAMVKVLUFRSVMUSVGUPVMUOBOVKVLUGRSUHUIUKUJ $.
  $}

  ${
    $d A s $.  $d ph q r s $.
    genpdflem.r $e |- ( ( ph /\ r e. A ) -> r e. Q. ) $.
    genpdflem.s $e |- ( ( ph /\ s e. B ) -> s e. Q. ) $.
    $( Simplification of upper or lower cut expression.  Lemma for ~ genpdf .
       (Contributed by Jim Kingdon, 30-Sep-2019.) $)
    genpdflem $p |- ( ph -> { q e. Q. | E. r e. Q. E. s e. Q.
        ( r e. A /\ s e. B /\ q = ( r G s ) ) } =
        { q e. Q. | E. r e. A E. s e. B q = ( r G s ) } ) $=
      ( cv wcel cnq wrex wa wex ex pm4.71rd anbi1d exbidv df-rex co wceq 3anass
      w3a rexbii r19.42v bitri anass exbii bitr4i syl6bbr rexbidv bitrd rabbidv
      syl6rbbr ) AFJZBKZEJZCKZGJUPURDUAUBZUDZELMZFLMZUTECMZFBMZGLAVCUSUTNZELMZF
      BMZVEAVCUQVGNZFOZVHAVJUPLKZUQNZVGNZFOZVCAVIVMFAUQVLVGAUQVKAUQVKHPQRSVCVKV
      INZFOZVNVCVIFLMVPVBVIFLVBUQVFNZELMVIVAVQELUQUSUTUCUEUQVFELUFUGUEVIFLTUGVM
      VOFVKUQVGUHUIUJUOVGFBTUKAVGVDFBAVGVFEOZVDAVRURLKZUSNZUTNZEOZVGAVFWAEAUSVT
      UTAUSVSAUSVSIPQRSVGVSVFNZEOWBVFELTWAWCEVSUSUTUHUIUJUOUTECTUKULUMUN $.
  $}

  ${
    $d q r s v w $.
    genpdf.1 $e |- F = ( w e. P. , v e. P. |->
      <. { q e. Q. | E. r e. Q. E. s e. Q. ( r e. ( 1st ` w ) /\
        s e. ( 1st ` v ) /\ q = ( r G s ) ) } ,
        { q e. Q. | E. r e. Q. E. s e. Q. ( r e. ( 2nd ` w ) /\
        s e. ( 2nd ` v ) /\ q = ( r G s ) ) } >. ) $.
    $( Simplified definition of addition or multiplication on positive reals.
       (Contributed by Jim Kingdon, 30-Sep-2019.) $)
    genpdf $p |- F = ( w e. P. , v e. P. |-> <.
        { q e. Q. | E. r e. ( 1st ` w ) E. s e. ( 1st ` v ) q = ( r G s ) } ,
        { q e. Q. | E. r e. ( 2nd ` w ) E. s e. ( 2nd ` v ) q = ( r G s ) }
        >. ) $=
      ( cnp cv c1st cfv wcel w3a cnq wrex crab c2nd cop sylan wceq prop elprnql
      co cmpt2 wa adantlr adantll genpdflem elprnqu opeq12d mpt2eq3ia eqtri ) C
      ABIIFJZAJZKLZMZEJZBJZKLZMZGJUNURDUDUAZNEOPFOPGOQZUNUORLZMZURUSRLZMZVBNEOP
      FOPGOQZSZUEABIIVBEUTPFUPPGOQZVBEVFPFVDPGOQZSZUEHABIIVIVLUOIMZUSIMZUFZVCVJ
      VHVKVOUPUTDEFGVMUQUNOMZVNVMUPVDSIMZUQVPUOUBZUNVDUPUCTUGVNVAUROMZVMVNUTVFS
      IMZVAVSUSUBZURVFUTUCTUHUIVOVDVFDEFGVMVEVPVNVMVQVEVPVRUNVDUPUJTUGVNVGVSVMV
      NVTVGVSWAURVFUTUJTUHUIUKULUM $.
  $}

  ${
    $d x y z f g q r s A $.  $d x y z f g q r s B $.
    $d x y z f g w v q r s G $.  $d f g F $.
    genp.1 $e |- F = ( w e. P. , v e. P. |->
      <. { x e. Q. | E. y e. Q. E. z e. Q. ( y e. ( 1st ` w ) /\
        z e. ( 1st ` v ) /\ x = ( y G z ) ) } ,
        { x e. Q. | E. y e. Q. E. z e. Q. ( y e. ( 2nd ` w ) /\
        z e. ( 2nd ` 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 Jim Kingon, 3-Oct-2019.) $)
    genipv $p |- ( ( A e. P. /\ B e. P. ) -> ( A F B ) = <.
        { q e. Q. | E. r e. ( 1st ` A ) E. s e. ( 1st ` B ) q = ( r G s ) } ,
        { q e. Q. | E. r e. ( 2nd ` A ) E. s e. ( 2nd ` B ) q = ( r G s ) }
        >. ) $=
      ( wcel wceq cfv wrex cnq crab vf vg cnp wa co c1st c2nd cop oveq1 rexeqdv
      cv fveq2 rabbidv opeq12d eqeq12d oveq2 rexbidv cvv cxp a1i cab rabssab wi
      nqex elprnql sylan eleq1 syl5ibrcom syl2an rexlimdvva abssdv syl5ss ssexd
      prop an4s elprnqu opelxp sylanbrc ovmpt2g mpd3an3 vtocl2ga eqeq1 2rexbidv
      genpdf eqeq2d cbvrex2v syl6bb cbvrabv opeq12i syl6eq ) FUCOGUCOUDFGHUEZAU
      KZBUKZCUKZIUEZPZCGUFQZRZBFUFQZRZASTZWPCGUGQZRZBFUGQZRZASTZUHZLUKZKUKZJUKZ
      IUEZPZJWQRKWSRZLSTZXLJXBRKXDRZLSTZUHUAUKZUBUKZHUEZWPCXRUFQZRZBXQUFQZRZAST
      ZWPCXRUGQZRZBXQUGQZRZASTZUHZPZFXRHUEZYABWSRZASTZYFBXDRZASTZUHZPWKXGPUAUBF
      GUCUCXQFPZXSYLYJYQXQFXRHUIYRYDYNYIYPYRYCYMASYRYABYBWSXQFUFULUJUMYRYHYOASY
      RYFBYGXDXQFUGULUJUMUNUOXRGPZYLWKYQXGXRGFHUPYSYNXAYPXFYSYMWTASYSYAWRBWSYSW
      PCXTWQXRGUFULUJUQUMYSYOXEASYSYFXCBXDYSWPCYEXBXRGUGULUJUQUMUNUOXQUCOZXRUCO
      ZYJURURUSZOZYKYTUUAUDZYDUROYIUROUUCUUDYDSURSUROUUDVDUTZUUDYDYCAVASYCASVBU
      UDYCASUUDWPWLSOZBCYBXTYTWMYBOZUUAWNXTOZWPUUFVCZYTUUGUDWMSOZWNSOZUUIUUAUUH
      UDYTYBYGUHUCOZUUGUUJXQVNZWMYGYBVEVFUUAXTYEUHUCOZUUHUUKXRVNZWNYEXTVEVFUUJU
      UKUDUUFWPWOSONWLWOSVGVHZVIVOVJVKVLVMUUDYISURUUEUUDYIYHAVASYHASVBUUDYHASUU
      DWPUUFBCYGYEYTWMYGOZUUAWNYEOZUUIYTUUQUDUUJUUKUUIUUAUURUDYTUULUUQUUJUUMWMY
      GYBVPVFUUAUUNUURUUKUUOWNYEXTVPVFUUPVIVOVJVKVLVMYDYIURURVQVRDEXQXRUCUCWPCE
      UKZUFQZRZBDUKZUFQZRZASTZWPCUUSUGQZRZBUVBUGQZRZASTZUHYJHUVABYBRZASTZUVGBYG
      RZASTZUHUUBUVBXQPZUVEUVLUVJUVNUVOUVDUVKASUVOUVABUVCYBUVBXQUFULUJUMUVOUVIU
      VMASUVOUVGBUVHYGUVBXQUGULUJUMUNUUSXRPZUVLYDUVNYIUVPUVKYCASUVPUVAYABYBUVPW
      PCUUTXTUUSXRUFULUJUQUMUVPUVMYHASUVPUVGYFBYGUVPWPCUVFYEUUSXRUGULUJUQUMUNDE
      HICBAMWDVSVTWAXAXNXFXPWTXMALSWLXHPZWTXHWOPZCWQRBWSRXMUVQWPUVRBCWSWQWLXHWO
      WBZWCUVRXLXHXIWNIUEZPZBCKJWSWQWMXIPWOUVTXHWMXIWNIUIWEZWNXJPUVTXKXHWNXJXII
      UPWEZWFWGWHXEXOALSUVQXEUVRCXBRBXDRXOUVQWPUVRBCXDXBUVSWCUVRXLUWABCKJXDXBUW
      BUWCWFWGWHWIWJ $.
  $}

  ${
    $d A x y z $.  $d B x y z $.  $d C x y z $.  $d D x y z $.  $d G x y z $.
    genplt2i.ord $e |- ( ( x e. Q. /\ y e. Q. /\ z e. Q. ) ->
      ( x <Q y <-> ( z G x ) <Q ( z G y ) ) ) $.
    genplt2i.com $e |- ( ( x e. Q. /\ y e. Q. ) -> ( x G y ) = ( y G x ) ) $.
    $( Operating on both sides of two inequalities, when the operation is
       consistent with ` <Q ` .  (Contributed by Jim Kingdon, 6-Oct-2019.) $)
    genplt2i $p |- ( ( A <Q B /\ C <Q D ) -> ( A G C ) <Q ( B G D ) ) $=
      ( cltq wbr wa co cnq cv wcel adantl ltrelnq syl2an simpl wb simpll simplr
      w3a brel simprl wceq caovord2d mpbid simpr simprr caovordd ltsonq syl2anc
      sotri ) DEKLZFGKLZMZDFHNZEFHNZKLZVAEGHNZKLZUTVCKLUSUQVBUQURUAUSABCDEFKOHA
      PZOQZBPZOQZCPZOQUEVEVGKLVIVEHNVIVGHNKLUBUSIRZUQDOQZEOQZMZFOQZGOQZMZVKURDE
      OOKSUFZFGOOKSUFZVKVLVPUCTUQVMVPVLURVQVRVKVLVPUDTZUQVMVPVNURVQVRVMVNVOUGTZ
      VFVHMVEVGHNVGVEHNUHUSJRUIUJUSURVDUQURUKUSABCFGEKOHVJVTUQVMVPVOURVQVRVMVNV
      OULTVSUMUJUTVAVCKOUNSUPUO $.
  $}

  ${
    $d x y z f g h w v q A $.  $d x y z f g h w v q B $.
    $d x y z f g h w v q G $.  $d f g q F $.  $d f g h C $.  $d f g h D $.
    genpelvl.1 $e |- F = ( w e. P. , v e. P. |->
      <. { x e. Q. | E. y e. Q. E. z e. Q. ( y e. ( 1st ` w ) /\
        z e. ( 1st ` v ) /\ x = ( y G z ) ) } ,
        { x e. Q. | E. y e. Q. E. z e. Q. ( y e. ( 2nd ` w ) /\
        z e. ( 2nd ` v ) /\ x = ( y G z ) ) } >. ) $.
    $( Set containing the result of adding or multiplying positive reals.
       (Contributed by Jim Kingdon, 5-Dec-2019.) $)
    genpelxp $p |- ( ( A e. P. /\ B e. P. ) ->
        ( A F B ) e. ( ~P Q. X. ~P Q. ) ) $=
      ( cnp wcel cv c1st cfv w3a cnq wrex crab c2nd wceq cop cpw cxp wss ssrab2
      wa co nqex elpw2 mpbir opelxpi mp2an fveq2 eleq2d 3anbi1d rabbidv opeq12d
      2rexbidv 3anbi2d ovmpt2g mp3an3 syl6eqel ) FKLZGKLZUGFGHUHZBMZFNOZLZCMZGN
      OZLZAMVGVJIUHUAZPZCQRBQRZAQSZVGFTOZLZVJGTOZLZVMPZCQRBQRZAQSZUBZQUCZWEUDZV
      DVEWDWFLZVFWDUAVPWELZWCWELZWGWHVPQUEVOAQUFVPQUIUJUKWIWCQUEWBAQUFWCQUIUJUK
      VPWCWEWEULUMZDEFGKKVGDMZNOZLZVJEMZNOZLZVMPZCQRBQRZAQSZVGWKTOZLZVJWNTOZLZV
      MPZCQRBQRZAQSZUBWDHVIWPVMPZCQRBQRZAQSZVRXCVMPZCQRBQRZAQSZUBWFWKFUAZWSXIXF
      XLXMWRXHAQXMWQXGBCQQXMWMVIWPVMXMWLVHVGWKFNUNUOUPUSUQXMXEXKAQXMXDXJBCQQXMX
      AVRXCVMXMWTVQVGWKFTUNUOUPUSUQURWNGUAZXIVPXLWCXNXHVOAQXNXGVNBCQQXNWPVLVIVM
      XNWOVKVJWNGNUNUOUTUSUQXNXKWBAQXNXJWABCQQXNXCVTVRVMXNXBVSVJWNGTUNUOUTUSUQU
      RJVAVBWJVC $.

    genpelvl.2 $e |- ( ( y e. Q. /\ z e. Q. ) -> ( y G z ) e. Q. ) $.
    $( Membership in lower cut of general operation (addition or
       multiplication) on positive reals.  (Contributed by Jim Kingdon,
       2-Oct-2019.) $)
    genpelvl $p |- ( ( A e. P. /\ B e. P. ) -> ( C e. ( 1st ` ( A F B ) ) <->
        E. g e. ( 1st ` A ) E. h e. ( 1st ` B ) C = ( g G h ) ) ) $=
      ( vf wcel wa cnq cfv wrex cnp co c1st cv wceq crab c2nd cop genipv fveq2d
      rabex op1st syl6eq eleq2d elrabi syl6bi elprnql sylan caovcl syl2an eleq1
      nqex prop an4s syl5ibrcom rexlimdvva wb eqeq1 2rexbidv elrab3 sylan9bb ex
      pm5.21ndd ) FUAPZGUAPZQZHRPZHFGKUBZUCSZPZHIUDZJUDZLUBZUEZJGUCSZTIFUCSZTZV
      PVTHOUDZWCUEZJWETIWFTZORUFZPZVQVPVSWKHVPVSWKWIJGUGSZTIFUGSZTZORUFZUHZUCSW
      KVPVRWQUCABCDEFGKLJIOMNUIUJWKWPWJORVBUKWOORVBUKULUMUNZWJOHRUOUPVPWDVQIJWF
      WEVPWAWFPZWBWEPZQQVQWDWCRPZVNWSVOWTXAVNWSQWARPZWBRPZXAVOWTQVNWFWNUHUAPWSX
      BFVCWAWNWFUQURVOWEWMUHUAPWTXCGVCWBWMWEUQURBCWAWBRLNUSUTVDHWCRVAVEVFVPVQVT
      WGVGVPVTWLVQWGWRWJWGOHRWHHUEWIWDIJWFWEWHHWCVHVIVJVKVLVM $.

    $( Membership in upper cut of general operation (addition or
       multiplication) on positive reals.  (Contributed by Jim Kingdon,
       15-Oct-2019.) $)
    genpelvu $p |- ( ( A e. P. /\ B e. P. ) -> ( C e. ( 2nd ` ( A F B ) ) <->
        E. g e. ( 2nd ` A ) E. h e. ( 2nd ` B ) C = ( g G h ) ) ) $=
      ( vf wcel wa cnq cfv wrex cnp co c2nd cv wceq crab c1st cop genipv fveq2d
      rabex op2nd syl6eq eleq2d elrabi syl6bi elprnqu sylan caovcl syl2an eleq1
      nqex prop an4s syl5ibrcom rexlimdvva wb eqeq1 2rexbidv elrab3 sylan9bb ex
      pm5.21ndd ) FUAPZGUAPZQZHRPZHFGKUBZUCSZPZHIUDZJUDZLUBZUEZJGUCSZTIFUCSZTZV
      PVTHOUDZWCUEZJWETIWFTZORUFZPZVQVPVSWKHVPVSWIJGUGSZTIFUGSZTZORUFZWKUHZUCSW
      KVPVRWQUCABCDEFGKLJIOMNUIUJWPWKWOORVBUKWJORVBUKULUMUNZWJOHRUOUPVPWDVQIJWF
      WEVPWAWFPZWBWEPZQQVQWDWCRPZVNWSVOWTXAVNWSQWARPZWBRPZXAVOWTQVNWNWFUHUAPWSX
      BFVCWAWFWNUQURVOWMWEUHUAPWTXCGVCWBWEWMUQURBCWAWBRLNUSUTVDHWCRVAVEVFVPVQVT
      WGVGVPVTWLVQWGWRWJWGOHRWHHUEWIWDIJWFWEWHHWCVHVIVJVKVLVM $.

    $( Pre-closure law for general operation on lower cuts.  (Contributed by
       Jim Kingdon, 2-Oct-2019.) $)
    genpprecll $p |- ( ( A e. P. /\ B e. P. ) ->
        ( ( C e. ( 1st ` A ) /\ D e. ( 1st ` B ) ) ->
        ( C G D ) e. ( 1st ` ( A F B ) ) ) ) $=
      ( vg vh c1st cfv wcel wa co cnp cv wceq wrex eqid rspceov mp3an3 genpelvl
      syl5ibr ) HFPQZRZIGPQZRZSHIKTZFGJTPQRFUARGUARSUNNUBOUBKTUCOULUDNUJUDZUKUM
      UNUNUCUOUNUENOUJULHIUNKUFUGABCDEFGUNNOJKLMUHUI $.

    $( Pre-closure law for general operation on upper cuts.  (Contributed by
       Jim Kingdon, 7-Nov-2019.) $)
    genppreclu $p |- ( ( A e. P. /\ B e. P. ) ->
        ( ( C e. ( 2nd ` A ) /\ D e. ( 2nd ` B ) ) ->
        ( C G D ) e. ( 2nd ` ( A F B ) ) ) ) $=
      ( vg vh c2nd cfv wcel wa co cnp cv wceq wrex eqid rspceov mp3an3 genpelvu
      syl5ibr ) HFPQZRZIGPQZRZSHIKTZFGJTPQRFUARGUARSUNNUBOUBKTUCOULUDNUJUDZUKUM
      UNUNUCUOUNUENOUJULHIUNKUFUGABCDEFGUNNOJKLMUHUI $.

    $( Domain of general operation on positive reals.  (Contributed by Jim
       Kingdon, 2-Oct-2019.) $)
    genipdm $p |- dom F = ( P. X. P. ) $=
      ( cnp cv c1st cfv wcel w3a cnq wrex crab c2nd nqex co wceq cop rabex opex
      dmmpt2 ) DEJJBKZDKZLMNCKZEKZLMNAKUGUIGUAUBZOCPQBPQZAPRZUGUHSMNUIUJSMNUKOC
      PQBPQZAPRZUCFHUMUOULAPTUDUNAPTUDUEUF $.

    $( The lower cut produced by addition or multiplication on positive reals
       is inhabited.  (Contributed by Jim Kingdon, 5-Oct-2019.) $)
    genpml $p |- ( ( A e. P. /\ B e. P. ) ->
        E. q e. Q. q e. ( 1st ` ( A F B ) ) ) $=
      ( vf vg cnp wcel wa cv cfv cnq c1st co wrex wex c2nd prop prml rexex 3syl
      cop adantr ad2antlr genpprecll imp elprnql sylan anim12i an4s caovcl wceq
      syl simpr eleq1d rspcedv mpd anassrs exlimddv ) FOPZGOPZQZMRZFUASZPZJRZFG
      HUBUASZPZJTUCZMVHVMMUDZVIVHVLFUESZUJOPZVMMTUCVRFUFZMVSVLUGVMMTUHUIUKVJVMQ
      NRZGUASZPZVQNVIWDNUDZVHVMVIWCGUESZUJOPZWDNTUCWEGUFZNWFWCUGWDNTUHUIULVJVMW
      DVQVJVMWDQZQZVKWBIUBZVOPZVQVJWIWLABCDEFGVKWBHIKLUMUNWJVPWLJWKTWJVKTPZWBTP
      ZQZWKTPVHVMVIWDWOVHVMQWMVIWDQWNVHVTVMWMWAVKVSVLUOUPVIWGWDWNWHWBWFWCUOUPUQ
      URBCVKWBTILUSVAWJVNWKUTZQVNWKVOWJWPVBVCVDVEVFVGVG $.

    $( The upper cut produced by addition or multiplication on positive reals
       is inhabited.  (Contributed by Jim Kingdon, 5-Dec-2019.) $)
    genpmu $p |- ( ( A e. P. /\ B e. P. ) ->
        E. q e. Q. q e. ( 2nd ` ( A F B ) ) ) $=
      ( vf vg cnp wcel wa cv cfv cnq c2nd co wrex wex c1st prop prmu rexex 3syl
      cop adantr ad2antlr genppreclu imp elprnqu sylan anim12i an4s caovcl wceq
      syl simpr eleq1d rspcedv mpd anassrs exlimddv ) FOPZGOPZQZMRZFUASZPZJRZFG
      HUBUASZPZJTUCZMVHVMMUDZVIVHFUESZVLUJOPZVMMTUCVRFUFZMVLVSUGVMMTUHUIUKVJVMQ
      NRZGUASZPZVQNVIWDNUDZVHVMVIGUESZWCUJOPZWDNTUCWEGUFZNWCWFUGWDNTUHUIULVJVMW
      DVQVJVMWDQZQZVKWBIUBZVOPZVQVJWIWLABCDEFGVKWBHIKLUMUNWJVPWLJWKTWJVKTPZWBTP
      ZQZWKTPVHVMVIWDWOVHVMQWMVIWDQWNVHVTVMWMWAVKVLVSUOUPVIWGWDWNWHWBWCWFUOUPUQ
      URBCVKWBTILUSVAWJVNWKUTZQVNWKVOWJWPVBVCVDVEVFVGVG $.

    ${
      $d F h $.
      genpcdl.2 $e |- ( ( ( ( A e. P. /\ g e. ( 1st ` A ) ) /\
                       ( B e. P. /\ h e. ( 1st ` B ) ) ) /\ x e. Q. ) ->
                       ( x <Q ( g G h ) -> x e. ( 1st ` ( A F B ) ) ) ) $.
      $( Downward closure of an operation on positive reals.  (Contributed by
         Jim Kingdon, 14-Oct-2019.) $)
      genpcdl $p |- ( ( A e. P. /\ B e. P. ) -> ( f e. ( 1st ` ( A F B ) ) ->
                   ( x <Q f -> x e. ( 1st ` ( A F B ) ) ) ) ) $=
        ( wcel wa cv cltq wi cnp wbr c1st cfv cnq ltrelnq brel simpld wceq wrex
        co genpelvl adantr breq2 biimpd sylan9r exp31 impancom rexlimdvv sylbid
        wb an4s ex syl5 com34 pm2.43d com23 ) FUAPZGUAPZQZARZHRZSUBZVLFGKUKUCUD
        ZPZVKVNPZVJVMVOVPTVJVMVOVMVPVMVKUEPZVJVOVMVPTZTZVMVQVLUEPVKVLUEUESUFUGU
        HVJVQVSVJVQQZVOVLIRZJRZLUKZUIZJGUCUDZUJIFUCUDZUJZVRVJVOWGVAVQABCDEFGVLI
        JKLMNULUMVTWDVRIJWFWEVJWAWFPZWBWEPZQVQWDVRTZVHWHVIWIVQWJTVHWHQVIWIQQZVQ
        WDVRWDVMVKWCSUBZWKVQQVPWDVMWLVLWCVKSUNUOOUPUQVBURUSUTVCVDVEVFVG $.
    $}

    ${
      $d F h $.
      genpcuu.2 $e |- ( ( ( ( A e. P. /\ g e. ( 2nd ` A ) ) /\
                       ( B e. P. /\ h e. ( 2nd ` B ) ) ) /\ x e. Q. ) ->
                       ( ( g G h ) <Q x -> x e. ( 2nd ` ( A F B ) ) ) ) $.
      $( Upward closure of an operation on positive reals.  (Contributed by Jim
         Kingdon, 8-Nov-2019.) $)
      genpcuu $p |- ( ( A e. P. /\ B e. P. ) -> ( f e. ( 2nd ` ( A F B ) ) ->
                   ( f <Q x -> x e. ( 2nd ` ( A F B ) ) ) ) ) $=
        ( wcel wa cv cltq wi cnp wbr c2nd cfv cnq ltrelnq brel simprd wceq wrex
        co genpelvu adantr breq1 biimpd sylan9r exp31 impancom rexlimdvv sylbid
        wb an4s ex syl5 com34 pm2.43d com23 ) FUAPZGUAPZQZHRZARZSUBZVKFGKUKUCUD
        ZPZVLVNPZVJVMVOVPTVJVMVOVMVPVMVLUEPZVJVOVMVPTZTZVMVKUEPVQVKVLUEUESUFUGU
        HVJVQVSVJVQQZVOVKIRZJRZLUKZUIZJGUCUDZUJIFUCUDZUJZVRVJVOWGVAVQABCDEFGVKI
        JKLMNULUMVTWDVRIJWFWEVJWAWFPZWBWEPZQVQWDVRTZVHWHVIWIVQWJTVHWHQVIWIQQZVQ
        WDVRWDVMWCVLSUBZWKVQQVPWDVMWLVKWCVLSUNUOOUPUQVBURUSUTVCVDVEVFVG $.
    $}

    ${
      $d A a b c d q r v w x y z $.  $d B a b c d g h q r v w x y z $.
      $d F a b c d g h q r v w x y z $.  $d G a b c d g h q r v w x y z $.
      genprndl.ord $e |- ( ( x e. Q. /\ y e. Q. /\ z e. Q. ) ->
        ( x <Q y <-> ( z G x ) <Q ( z G y ) ) ) $.
      genprndl.com $e |- ( ( x e. Q. /\ y e. Q. ) ->
        ( x G y ) = ( y G x ) ) $.
      genprndl.lower $e |- ( ( ( ( A e. P. /\ g e. ( 1st ` A ) ) /\
                       ( B e. P. /\ h e. ( 1st ` B ) ) ) /\ x e. Q. ) ->
                       ( x <Q ( g G h ) -> x e. ( 1st ` ( A F B ) ) ) ) $.
      $( The lower cut produced by addition or multiplication on positive reals
         is rounded.  (Contributed by Jim Kingdon, 7-Oct-2019.) $)
      genprndl $p |- ( ( A e. P. /\ B e. P. ) ->
          A. q e. Q. ( q e. ( 1st ` ( A F B ) ) <->
            E. r e. Q. ( q <Q r /\ r e. ( 1st ` ( A F B ) ) ) ) ) $=
        ( wcel wa vc vd va vb cnp cv co c1st cfv cltq wbr wrex wb wceq genpelvl
        cnq wex r2ex syl6bb biimpa adantrl c2nd prop prnmaxl sylan anim12i an4s
        wi cop reeanv sylibr genplt2i reximi syl adantrr breq1 biimprd ad2antll
        reximdv mpd exlimdvv adantr genpprecll imp elprnql caovcl breq2 anbi12d
        eleq1 adantl rspcedv mpan2d rexlimdvva expr wal genpcdl alrimdv imbi12d
        ex cbvalv syl6ib syl6 impd ancomsd ad2antrr rexlimdva impbid ralrimiva
        sp ) FUESZGUESZTZMUFZFGJUGUHUIZSZXMLUFZUJUKZXPXNSZTZLUPULZUMMUPXLXMUPSZ
        TZXOXTXLYAXOXTXLYAXOTZTZXMUAUFZUBUFZKUGZUJUKZUBGUHUIZULZUAFUHUIZULZXTYD
        UCUFZYKSZUDUFZYISZTZXMYMYOKUGZUNZTZUDUQUCUQZYLXLXOUUAYAXLXOUUAXLXOYSUDY
        IULUCYKULUUAABCDEFGXMUCUDJKNOUOYSUCUDYKYIURUSUTVAXLUUAYLVHYCXLYTYLUCUDX
        LYTYLXLYTTYRYGUJUKZUBYIULZUAYKULZYLXLYQUUDYSXLYQTZYMYEUJUKZYOYFUJUKZTZU
        BYIULZUAYKULZUUDUUEUUFUAYKULZUUGUBYIULZTZUUJXJYNXKYPUUMXJYNTUUKXKYPTUUL
        XJYKFVBUIZVIUESZYNUUKFVCZUAYMUUNYKVDVEXKYIGVBUIZVIUESZYPUULGVCZUBYOUUQY
        IVDVEVFVGUUFUUGUAUBYKYIVJVKUUIUUCUAYKUUHUUBUBYIABCYMYEYOYFKPQVLVMVMVNVO
        YSUUDYLVHXLYQYSUUCYJUAYKYSUUBYHUBYIYSYHUUBXMYRYGUJVPVQVSVSVRVTWSWAWBVTX
        LYLXTVHYCXLYHXTUAUBYKYIXLYEYKSZYFYISZTZTZYHYGXNSZXTXLUVBUVDABCDEFGYEYFJ
        KNOWCWDUVCXSYHUVDTZLYGUPUVCYEUPSZYFUPSZTZYGUPSXJUUTXKUVAUVHXJUUTTUVFXKU
        VATUVGXJUUOUUTUVFUUPYEUUNYKWEVEXKUURUVAUVGUUSYFUUQYIWEVEVFVGBCYEYFUPKOW
        FVNXPYGUNZXSUVEUMUVCUVIXQYHXRUVDXPYGXMUJWGXPYGXNWIWHWJWKWLWMWBVTWNYBXSX
        OLUPXLXSXOVHYAXPUPSXLXRXQXOXLXRXQXOXLXRXQXOVHZMWOZUVJXLXRAUFZXPUJUKZUVL
        XNSZVHZAWOUVKXLXRUVOAABCDEFGLHIJKNORWPWQUVOUVJAMUVLXMUNUVMXQUVNXOUVLXMX
        PUJVPUVLXMXNWIWRWTXAUVJMXIXBXCXDXEXFXGXH $.
    $}

    ${
      $d A a b c d q r v w x y z $.  $d B a b c d g h q r v w x y z $.
      $d F a b c d g h q r v w x y z $.  $d G a b c d g h q r v w x y z $.
      genprndu.ord $e |- ( ( x e. Q. /\ y e. Q. /\ z e. Q. ) ->
        ( x <Q y <-> ( z G x ) <Q ( z G y ) ) ) $.
      genprndu.com $e |- ( ( x e. Q. /\ y e. Q. ) ->
        ( x G y ) = ( y G x ) ) $.
      genprndu.upper $e |- ( ( ( ( A e. P. /\ g e. ( 2nd ` A ) ) /\
                       ( B e. P. /\ h e. ( 2nd ` B ) ) ) /\ x e. Q. ) ->
                       ( ( g G h ) <Q x -> x e. ( 2nd ` ( A F B ) ) ) ) $.
      $( The upper cut produced by addition or multiplication on positive reals
         is rounded.  (Contributed by Jim Kingdon, 7-Oct-2019.) $)
      genprndu $p |- ( ( A e. P. /\ B e. P. ) ->
          A. r e. Q. ( r e. ( 2nd ` ( A F B ) ) <->
            E. q e. Q. ( q <Q r /\ q e. ( 2nd ` ( A F B ) ) ) ) ) $=
        ( wcel wa vc vd va vb cnp cv co c2nd cfv cltq wbr wrex wb wceq genpelvu
        cnq wex r2ex syl6bb biimpa adantrl c1st prop prnminu sylan anim12i an4s
        wi cop reeanv sylibr genplt2i reximi syl adantrr breq2 biimprd ad2antll
        reximdv mpd exlimdvv adantr genppreclu imp elprnqu caovcl breq1 anbi12d
        eleq1 adantl rspcedv mpan2d rexlimdvva expr wal genpcuu alrimdv imbi12d
        ex cbvalv syl6ib syl6 impd ancomsd ad2antrr rexlimdva impbid ralrimiva
        sp ) FUESZGUESZTZLUFZFGJUGUHUIZSZMUFZXMUJUKZXPXNSZTZMUPULZUMLUPXLXMUPSZ
        TZXOXTXLYAXOXTXLYAXOTZTZUAUFZUBUFZKUGZXMUJUKZUBGUHUIZULZUAFUHUIZULZXTYD
        UCUFZYKSZUDUFZYISZTZXMYMYOKUGZUNZTZUDUQUCUQZYLXLXOUUAYAXLXOUUAXLXOYSUDY
        IULUCYKULUUAABCDEFGXMUCUDJKNOUOYSUCUDYKYIURUSUTVAXLUUAYLVHYCXLYTYLUCUDX
        LYTYLXLYTTYGYRUJUKZUBYIULZUAYKULZYLXLYQUUDYSXLYQTZYEYMUJUKZYFYOUJUKZTZU
        BYIULZUAYKULZUUDUUEUUFUAYKULZUUGUBYIULZTZUUJXJYNXKYPUUMXJYNTUUKXKYPTUUL
        XJFVBUIZYKVIUESZYNUUKFVCZUAYMYKUUNVDVEXKGVBUIZYIVIUESZYPUULGVCZUBYOYIUU
        QVDVEVFVGUUFUUGUAUBYKYIVJVKUUIUUCUAYKUUHUUBUBYIABCYEYMYFYOKPQVLVMVMVNVO
        YSUUDYLVHXLYQYSUUCYJUAYKYSUUBYHUBYIYSYHUUBXMYRYGUJVPVQVSVSVRVTWSWAWBVTX
        LYLXTVHYCXLYHXTUAUBYKYIXLYEYKSZYFYISZTZTZYHYGXNSZXTXLUVBUVDABCDEFGYEYFJ
        KNOWCWDUVCXSYHUVDTZMYGUPUVCYEUPSZYFUPSZTZYGUPSXJUUTXKUVAUVHXJUUTTUVFXKU
        VATUVGXJUUOUUTUVFUUPYEYKUUNWEVEXKUURUVAUVGUUSYFYIUUQWEVEVFVGBCYEYFUPKOW
        FVNXPYGUNZXSUVEUMUVCUVIXQYHXRUVDXPYGXMUJWGXPYGXNWIWHWJWKWLWMWBVTWNYBXSX
        OMUPXLXSXOVHYAXPUPSXLXRXQXOXLXRXQXOXLXRXQXOVHZLWOZUVJXLXRXPAUFZUJUKZUVL
        XNSZVHZAWOUVKXLXRUVOAABCDEFGMHIJKNORWPWQUVOUVJALUVLXMUNUVMXQUVNXOUVLXMX
        PUJVPUVLXMXNWIWRWTXAUVJLXIXBXCXDXEXFXGXH $.
    $}

    ${
      $d A a b c d q v w x y z $.  $d B a b c d q v w x y z $.
      $d F a b c d q $.  $d G a b c d q v w x y z $.
      genpdisj.ord $e |- ( ( x e. Q. /\ y e. Q. /\ z e. Q. ) ->
        ( x <Q y <-> ( z G x ) <Q ( z G y ) ) ) $.
      genpdisj.com $e |-
        ( ( x e. Q. /\ y e. Q. ) -> ( x G y ) = ( y G x ) ) $.
      $( The lower and upper cuts produced by addition or multiplication on
         positive reals are disjoint.  (Contributed by Jim Kingdon,
         15-Oct-2019.) $)
      genpdisj $p |- ( ( A e. P. /\ B e. P. ) -> A. q e. Q.
          -. ( q e. ( 1st ` ( A F B ) ) /\ q e. ( 2nd ` ( A F B ) ) ) ) $=
        ( va vb vc vd wcel wa cnp cv co c1st cfv c2nd wn cnq wceq wex wfal wrex
        genpelvl r2ex syl6bb genpelvu anbi12d ee4anv syl6bbr biimpa wbr an4 cop
        cltq prop prltlu 3expib syl im2anan9 genplt2i syl6 syl5bir imp adantrlr
        wi adantlr adantrrr eqtr2 ad2ant2l adantl ltsonq soirri breq2 pm2.21fal
        ltrelnq mtbii ex exlimdvv mpd inegd ralrimivw ) FUASZGUASZTZJUBZFGHUCZU
        DUESZWOWPUFUESZTZUGJUHWNWSWNWSTZOUBZFUDUEZSZPUBZGUDUEZSZTZWOXAXDIUCZUIZ
        TZQUBZFUFUEZSZRUBZGUFUEZSZTZWOXKXNIUCZUIZTZTZRUJQUJZPUJOUJZUKWNWSYCWNWS
        XJPUJOUJZXTRUJQUJZTYCWNWQYDWRYEWNWQXIPXEULOXBULYDABCDEFGWOOPHIKLUMXIOPX
        BXEUNUOWNWRXSRXOULQXLULYEABCDEFGWOQRHIKLUPXSQRXLXOUNUOUQXJXTOPQRURUSUTW
        TYBUKOPWTYAUKQRWTYAUKWTYATZXHXRVDVAZWTXJXQYGXSWTXGXQYGXIWNXGXQTZYGWSWNY
        HYGYHXCXMTZXFXPTZTZWNYGXCXMXFXPVBWNYKXAXKVDVAZXDXNVDVAZTYGWLYIYLWMYJYMW
        LXBXLVCUASZYIYLVOFVEYNXCXMYLXAXKXLXBVFVGVHWMXEXOVCUASZYJYMVOGVEYOXFXPYM
        XDXNXOXEVFVGVHVIABCXAXKXDXNIMNVJVKVLVMVPVNVQYFXHXRUIZYGUGYAYPWTXIXSYPXG
        XQWOXHXRVRVSVTYPXHXHVDVAYGXHVDUHWAWEWBXHXRXHVDWCWFVHWDWGWHWHWIWJWK $.
    $}

    ${
      $d A f g h t v w x y z $.  $d B f g h t v w x y z $.
      $d C f g h t v w x y z $.  $d F f g h t v w x y z $.
      $d G f g h t v w x y z $.
      genpassg.4 $e |- dom F = ( P. X. P. ) $.
      genpassg.5 $e |- ( ( f e. P. /\ g e. P. ) -> ( f F g ) e. P. ) $.
      genpassg.6 $e |- ( ( f e. Q. /\ g e. Q. /\ h e. Q. ) ->
          ( ( f G g ) G h ) = ( f G ( g G h ) ) ) $.
      $( Associativity of lower cuts.  Lemma for ~ genpassg .  (Contributed by
         Jim Kingdon, 11-Dec-2019.) $)
      genpassl $p |- ( ( A e. P. /\ B e. P. /\ C e. P. ) ->
          ( 1st ` ( ( A F B ) F C ) ) = ( 1st ` ( A F ( B F C ) ) ) ) $=
        ( vt wa cnp wcel w3a co c1st cfv cv wceq wrex cnq c2nd cop prop elprnql
        wb sylan r19.41v oveq2 adantr adantl eqtr4d eqeq2d expcom pm5.32d 3expa
        wex sylan2 anassrs rexbidva syl5rbbr an32s syl6bb exbidv caovcl elisset
        an31s syl biantrurd 19.41v syl6bbr ancoms df-rex genpelvl anbi1d syl5bb
        rexcom4 3bitr4rd 3impb 3adant3 3impa oveq1 rexbidv pm5.32i exbii rexbii
        bitri 3bitr4d eqrdv ) FUAUBZGUAUBZHUAUBZUCZAFGLUDZHLUDUEUFZFGHLUDZLUDUE
        UFZXBAUGZIUGZSUGZMUDZUHZSXEUEUFZUIZIFUEUFZUIZXGXHJUGZMUDZKUGZMUDZUHZKHU
        EUFZUIZJGUEUFZUIZIXNUIZXGXFUBZXGXDUBZWSWTXAXOYEUOZWTXATZWSYHYIWSTXMYDIX
        NYIWSXHXNUBZXMYDUOZWSYJTZYIXHUJUBZYKWSXNFUKUFZULUAUBYJYMFUMXHYNXNUNUPZY
        IYMTZXIXPXRMUDZUHZXTTZKYAUIZJYCUIZSVFZYRKYAUIZJYCUIZXKTZSVFZYDXMYPUUAUU
        ESYMXAWTUUAUUEUOYMXATZWTTZUUAUUCXKTZJYCUIUUEUUHYTUUIJYCUUGWTXPYCUBZYTUU
        IUOZWTUUJTZUUGXPUJUBZUUKWTYCGUKUFZULUAUBUUJUUMGUMXPUUNYCUNUPZYMUUMXAUUK
        UUIYRXKTZKYAUIYMUUMTZXATZYTYRXKKYAUQUURUUPYSKYAUUQXAXRYAUBZUUPYSUOZXAUU
        STZUUQXRUJUBZUUTXAYAHUKUFZULUAUBUUSUVBHUMXRUVCYAUNUPZYMUUMUVBUUTYMUUMUV
        BUCZYRXKXTYRUVEXKXTUOYRUVETZXJXSXGUVFXJXHYQMUDZXSYRXJUVGUHUVEXIYQXHMURU
        SUVEXSUVGUHYRRUTVAVBVCVDVEVGVHVIVJVKVGVHVIUUCXKJYCUQVLVPVMYIYDUUBUOYMYI
        YDYTSVFZJYCUIZUUBXAWTYDUVIUOXAWTTYBUVHJYCXAWTUUJYBUVHUOZUULXAUUMUVJUUOU
        UMXAUVJUUMXATZYBYSSVFZKYAUIUVHUVKXTUVLKYAUUMXAUUSXTUVLUOZUVAUUMUVBUVMUV
        DUUMUVBTZXTYRSVFZXTTUVLUVNUVOXTUVNYQUJUBUVOBCXPXRUJMOVNSYQUJVOVQVRYRXTS
        VSVTVGVHVIYSKSYAWFVLWAVGVHVIWAYTJSYCWFVLUSYIXMUUFUOYMXMXIXLUBZXKTZSVFYI
        UUFXKSXLWBYIUVQUUESYIUVPUUDXKABCDEGHXIJKLMNOWCWDVMWEUSWGVGVHVIWAWHWSWTX
        AYFXOUOZYIWSXEUAUBUVRIJGHUALQVNABCDEFXEXGISLMNOWCVGWHXBXGXIXRMUDZUHZKYA
        UIZSXCUEUFZUIZXIXQUHZJYCUIZIXNUIZUWATZSVFZYGYEUWCXIUWBUBZUWATZSVFXBUWHU
        WASUWBWBXBUWJUWGSXBUWIUWFUWAWSWTUWIUWFUOXAABCDEFGXIIJLMNOWCWIWDVMWEWSWT
        XAYGUWCUOZWSWTTXCUAUBXAUWKIJFGUALQVNABCDEXCHXGSKLMNOWCUPWJWSWTYEUWHUOZX
        AWTWSUWLWTWSTZYEUWDUWATZJYCUIZIXNUIZSVFZUWHUWMYEUWOSVFZIXNUIUWQUWMYDUWR
        IXNWTWSYJYDUWRUOZYLWTYMUWSYOYMWTUWSYMWTTZYDUWNSVFZJYCUIUWRUWTYBUXAJYCYM
        WTUUJYBUXAUOZUULYMUUMUXBUUOUUQYBUWDSVFZYBTZUXAUUQUXCYBUUQXQUJUBUXCBCXHX
        PUJMOVNSXQUJVOVQVRUXAUWDYBTZSVFUXDUWNUXESUWDUWAYBUWDUVTXTKYAUWDUVSXSXGX
        IXQXRMWKVBWLWMWNUWDYBSVSWPVTVGVHVIUWNJSYCWFVLWAVGVHVIUWOISXNWFVLUWPUWGS
        UWPUWEUWATZIXNUIUWGUWOUXFIXNUWDUWAJYCUQWOUWEUWAIXNUQWPWNVLWAWIWQWGWR $.

      $( Associativity of upper cuts.  Lemma for ~ genpassg .  (Contributed by
         Jim Kingdon, 11-Dec-2019.) $)
      genpassu $p |- ( ( A e. P. /\ B e. P. /\ C e. P. ) ->
          ( 2nd ` ( ( A F B ) F C ) ) = ( 2nd ` ( A F ( B F C ) ) ) ) $=
        ( vt wa cnp wcel w3a co c2nd cfv cv wceq wrex cnq c1st cop prop elprnqu
        wb sylan r19.41v oveq2 adantr adantl eqtr4d eqeq2d expcom pm5.32d 3expa
        wex sylan2 anassrs rexbidva syl5rbbr an32s syl6bb exbidv caovcl elisset
        an31s syl biantrurd 19.41v syl6bbr ancoms df-rex genpelvu anbi1d syl5bb
        rexcom4 3bitr4rd 3impb 3adant3 3impa oveq1 rexbidv pm5.32i exbii rexbii
        bitri 3bitr4d eqrdv ) FUAUBZGUAUBZHUAUBZUCZAFGLUDZHLUDUEUFZFGHLUDZLUDUE
        UFZXBAUGZIUGZSUGZMUDZUHZSXEUEUFZUIZIFUEUFZUIZXGXHJUGZMUDZKUGZMUDZUHZKHU
        EUFZUIZJGUEUFZUIZIXNUIZXGXFUBZXGXDUBZWSWTXAXOYEUOZWTXATZWSYHYIWSTXMYDIX
        NYIWSXHXNUBZXMYDUOZWSYJTZYIXHUJUBZYKWSFUKUFZXNULUAUBYJYMFUMXHXNYNUNUPZY
        IYMTZXIXPXRMUDZUHZXTTZKYAUIZJYCUIZSVFZYRKYAUIZJYCUIZXKTZSVFZYDXMYPUUAUU
        ESYMXAWTUUAUUEUOYMXATZWTTZUUAUUCXKTZJYCUIUUEUUHYTUUIJYCUUGWTXPYCUBZYTUU
        IUOZWTUUJTZUUGXPUJUBZUUKWTGUKUFZYCULUAUBUUJUUMGUMXPYCUUNUNUPZYMUUMXAUUK
        UUIYRXKTZKYAUIYMUUMTZXATZYTYRXKKYAUQUURUUPYSKYAUUQXAXRYAUBZUUPYSUOZXAUU
        STZUUQXRUJUBZUUTXAHUKUFZYAULUAUBUUSUVBHUMXRYAUVCUNUPZYMUUMUVBUUTYMUUMUV
        BUCZYRXKXTYRUVEXKXTUOYRUVETZXJXSXGUVFXJXHYQMUDZXSYRXJUVGUHUVEXIYQXHMURU
        SUVEXSUVGUHYRRUTVAVBVCVDVEVGVHVIVJVKVGVHVIUUCXKJYCUQVLVPVMYIYDUUBUOYMYI
        YDYTSVFZJYCUIZUUBXAWTYDUVIUOXAWTTYBUVHJYCXAWTUUJYBUVHUOZUULXAUUMUVJUUOU
        UMXAUVJUUMXATZYBYSSVFZKYAUIUVHUVKXTUVLKYAUUMXAUUSXTUVLUOZUVAUUMUVBUVMUV
        DUUMUVBTZXTYRSVFZXTTUVLUVNUVOXTUVNYQUJUBUVOBCXPXRUJMOVNSYQUJVOVQVRYRXTS
        VSVTVGVHVIYSKSYAWFVLWAVGVHVIWAYTJSYCWFVLUSYIXMUUFUOYMXMXIXLUBZXKTZSVFYI
        UUFXKSXLWBYIUVQUUESYIUVPUUDXKABCDEGHXIJKLMNOWCWDVMWEUSWGVGVHVIWAWHWSWTX
        AYFXOUOZYIWSXEUAUBUVRIJGHUALQVNABCDEFXEXGISLMNOWCVGWHXBXGXIXRMUDZUHZKYA
        UIZSXCUEUFZUIZXIXQUHZJYCUIZIXNUIZUWATZSVFZYGYEUWCXIUWBUBZUWATZSVFXBUWHU
        WASUWBWBXBUWJUWGSXBUWIUWFUWAWSWTUWIUWFUOXAABCDEFGXIIJLMNOWCWIWDVMWEWSWT
        XAYGUWCUOZWSWTTXCUAUBXAUWKIJFGUALQVNABCDEXCHXGSKLMNOWCUPWJWSWTYEUWHUOZX
        AWTWSUWLWTWSTZYEUWDUWATZJYCUIZIXNUIZSVFZUWHUWMYEUWOSVFZIXNUIUWQUWMYDUWR
        IXNWTWSYJYDUWRUOZYLWTYMUWSYOYMWTUWSYMWTTZYDUWNSVFZJYCUIUWRUWTYBUXAJYCYM
        WTUUJYBUXAUOZUULYMUUMUXBUUOUUQYBUWDSVFZYBTZUXAUUQUXCYBUUQXQUJUBUXCBCXHX
        PUJMOVNSXQUJVOVQVRUXAUWDYBTZSVFUXDUWNUXESUWDUWAYBUWDUVTXTKYAUWDUVSXSXGX
        IXQXRMWKVBWLWMWNUWDYBSVSWPVTVGVHVIUWNJSYCWFVLWAVGVHVIUWOISXNWFVLUWPUWGS
        UWPUWEUWATZIXNUIUWGUWOUXFIXNUWDUWAJYCUQWOUWEUWAIXNUQWPWNVLWAWIWQWGWR $.

      $( Associativity of an operation on reals.  (Contributed by Jim Kingdon,
         11-Dec-2019.) $)
      genpassg $p |- ( ( A e. P. /\ B e. P. /\ C e. P. ) ->
          ( ( A F B ) F C ) = ( A F ( B F C ) ) ) $=
        ( cnp wcel w3a co wceq c1st cfv genpassl genpassu wa caovcl sylan 3impa
        c2nd wb sylan2 3impb preqlu syl2anc mpbir2and ) FSTZGSTZHSTZUAZFGLUBZHL
        UBZFGHLUBZLUBZUCZVDUDUEVFUDUEUCZVDULUEVFULUEUCZABCDEFGHIJKLMNOPQRUFABCD
        EFGHIJKLMNOPQRUGVBVDSTZVFSTZVGVHVIUHUMUSUTVAVJUSUTUHVCSTVAVJIJFGSLQUIIJ
        VCHSLQUIUJUKUSUTVAVKUTVAUHUSVESTVKIJGHSLQUIIJFVESLQUIUNUOVDVFUPUQUR $.
    $}
  $}

  ${
    $d G w y z $.  $d L w y z $.  $d S w y z $.  $d U w y z $.  $d X w y z $.
    $( Lemma to prove downward closure in positive real addition.  (Contributed
       by Jim Kingdon, 7-Dec-2019.) $)
    addnqprllem $p |- ( ( ( <. L , U >. e. P. /\ G e. L ) /\ X e. Q. ) ->
        ( X <Q S -> ( ( X .Q ( *Q ` S ) ) .Q G ) e. L ) ) $=
      ( vy vz vw wcel wa cnq cltq wbr cmq co wb adantl cv syl2anc c1q cop simpr
      cnp crq cfv ltrnqi ltrelnq brel simprd recclnq syl simplr syl3anc mulclnq
      ltmnqg w3a elprnql ad2antrr wceq mulcomnqg caovord2d bitrd syl5ib recidnq
      mpd oveq1d 1nq mpan mulidnq eqtrd sylan9eqr breq2d mpbid wi prcdnql ex )
      DBUAUCICDIJZEKIZJZEALMZEAUDUEZNOZCNOZDIZVSVTJZWCCLMZWDWEWCEEUDUEZNOZCNOZL
      MZWFWEVTWJVSVTUBVTWAWGLMZWEWJEAUFWEWKWBWHLMZWJWEWAKIZWGKIZVRWKWLPWEAKIZWM
      WEVRWOVTVRWOJVSEAKKLUGUHQUIAUJUKZWEVRWNVQVRVTULZEUJUKZWQWAWGEUOUMWEFGHWBW
      HCLKNFRZKIZGRZKIZHRZKIUPWSXALMXCWSNOXCXANOLMPWEWSXAXCUOQWEVRWMWBKIWQWPEWA
      UNSWEVRWNWHKIWQWREWGUNSVQCKIZVRVTCBDUQURZWTXBJWSXANOXAWSNOUSWEWSXAUTQVAVB
      VCVEWEXDVRWJWFPXEWQXDVRJWICWCLVRXDWITCNOZCVRWHTCNEVDVFXDXFCTNOZCTKIXDXFXG
      USVGTCUTVHCVIVJVKVLSVMVQWFWDVNVRVTCWCBDVOURVEVP $.

    $( Lemma to prove upward closure in positive real addition.  (Contributed
       by Jim Kingdon, 7-Dec-2019.) $)
    addnqprulem $p |- ( ( ( <. L , U >. e. P. /\ G e. U ) /\ X e. Q. ) ->
        ( S <Q X -> ( ( X .Q ( *Q ` S ) ) .Q G ) e. U ) ) $=
      ( vy vz vw wcel wa cnq cltq wbr cmq co wb adantl cv syl2anc c1q cop simpr
      cnp crq cfv ltrnqi simplr recclnq syl ltrelnq brel simpld syl3anc mulclnq
      ltmnqg w3a elprnqu ad2antrr wceq mulcomnqg caovord2d bitrd syl5ib recidnq
      mpd oveq1d 1nq mpan mulidnq eqtrd sylan9eqr breq1d mpbid wi prcunqu ex )
      DBUAUCICBIJZEKIZJZAELMZEAUDUEZNOZCNOZBIZVSVTJZCWCLMZWDWEEEUDUEZNOZCNOZWCL
      MZWFWEVTWJVSVTUBVTWGWALMZWEWJAEUFWEWKWHWBLMZWJWEWGKIZWAKIZVRWKWLPWEVRWMVQ
      VRVTUGZEUHUIZWEAKIZWNWEWQVRVTWQVRJVSAEKKLUJUKQULAUHUIZWOWGWAEUOUMWEFGHWHW
      BCLKNFRZKIZGRZKIZHRZKIUPWSXALMXCWSNOXCXANOLMPWEWSXAXCUOQWEVRWMWHKIWOWPEWG
      UNSWEVRWNWBKIWOWREWAUNSVQCKIZVRVTCBDUQURZWTXBJWSXANOXAWSNOUSWEWSXAUTQVAVB
      VCVEWEXDVRWJWFPXEWOXDVRJWICWCLVRXDWITCNOZCVRWHTCNEVDVFXDXFCTNOZCTKIXDXFXG
      USVGTCUTVHCVIVJVKVLSVMVQWFWDVNVRVTWCCBDVOURVEVP $.
  $}

  ${
    $d q r s x y A $.  $d q r s x y B $.
    $( Lemma to prove downward closure in positive real addition.  (Contributed
       by Jim Kingdon, 5-Dec-2019.) $)
    addnqprl $p |- ( ( ( ( A e. P. /\ G e. ( 1st ` A ) ) /\
                       ( B e. P. /\ H e. ( 1st ` B ) ) ) /\ X e. Q. ) ->
                       ( X <Q ( G +Q H ) -> X e. ( 1st ` ( A +P. B ) ) ) ) $=
      ( vr vs cnp wcel c1st cfv wa cnq cplq co cmq wi simpl wceq c1q vq vx cltq
      vy wbr crq cpp c2nd prop addnqprllem sylanl1 adantlr adantll jcad anim12i
      cop df-iplp cv addclnq genpprecll 3syl syld simpr sylan ad2antrr ad2antlr
      elprnql syl2anc recclnq mulassnqg syl3anc mulclnq mulcomnqg recidnq eqtrd
      syl distrnqg oveq2d mulidnq adantl 3eqtr3d eleq1d sylibd ) AHIZCAJKZIZLZB
      HIZDBJKZIZLZLZEMIZLZECDNOZUCUEZEWOUFKZPOZCPOZWRDPOZNOZABUGOJKZIZEXBIWNWPW
      SWEIZWTWIIZLZXCWNWPXDXEWGWMWPXDQZWKWDWEAUHKZUPHIZWFWMXGAUIZWOXHCWEEUJUKUL
      WKWMWPXEQZWGWHWIBUHKZUPHIZWJWMXKBUIZWOXLDWIEUJUKUMUNWNWLWDWHLXFXCQWLWMRWG
      WDWKWHWDWFRWHWJRUOUAFGUBUDABWSWTUGNUBUDGFUAUQFURGURUSUTVAVBWNXAEXBWNWRWOP
      OZEWQWOPOZPOZXAEWNWMWQMIZWOMIZXOXQSWLWMVCZWNXSXRWNCMIZDMIZXSWGYAWKWMWDXIW
      FYAXJCXHWEVGVDVEZWKYBWGWMWHXMWJYBXNDXLWIVGVDVFZCDUSVHZWOVIVPZYEEWQWOVJVKW
      NWRMIZYAYBXOXASWNWMXRYGXTYFEWQVLVHYCYDWRCDVQVKWNXQETPOZEWNXPTEPWNXPWOWQPO
      ZTWNXRXSXPYISYFYEWQWOVMVHWNXSYITSYEWOVNVPVOVRWMYHESWLEVSVTVOWAWBWC $.

    $( Lemma to prove upward closure in positive real addition.  (Contributed
       by Jim Kingdon, 5-Dec-2019.) $)
    addnqpru $p |- ( ( ( ( A e. P. /\ G e. ( 2nd ` A ) ) /\
                       ( B e. P. /\ H e. ( 2nd ` B ) ) ) /\ X e. Q. ) ->
                       ( ( G +Q H ) <Q X -> X e. ( 2nd ` ( A +P. B ) ) ) ) $=
      ( vr vs cnp wcel c2nd cfv wa cnq cplq co cmq wi simpl wceq c1q vq vx cltq
      vy wbr crq cpp c1st prop addnqprulem sylanl1 adantlr adantll jcad anim12i
      cop df-iplp cv addclnq genppreclu 3syl syld simpr sylan ad2antrr ad2antlr
      elprnqu syl2anc recclnq mulassnqg syl3anc mulclnq mulcomnqg recidnq eqtrd
      syl distrnqg oveq2d mulidnq adantl 3eqtr3d eleq1d sylibd ) AHIZCAJKZIZLZB
      HIZDBJKZIZLZLZEMIZLZCDNOZEUCUEZEWOUFKZPOZCPOZWRDPOZNOZABUGOJKZIZEXBIWNWPW
      SWEIZWTWIIZLZXCWNWPXDXEWGWMWPXDQZWKWDAUHKZWEUPHIZWFWMXGAUIZWOWECXHEUJUKUL
      WKWMWPXEQZWGWHBUHKZWIUPHIZWJWMXKBUIZWOWIDXLEUJUKUMUNWNWLWDWHLXFXCQWLWMRWG
      WDWKWHWDWFRWHWJRUOUAFGUBUDABWSWTUGNUBUDGFUAUQFURGURUSUTVAVBWNXAEXBWNWRWOP
      OZEWQWOPOZPOZXAEWNWMWQMIZWOMIZXOXQSWLWMVCZWNXSXRWNCMIZDMIZXSWGYAWKWMWDXIW
      FYAXJCWEXHVGVDVEZWKYBWGWMWHXMWJYBXNDWIXLVGVDVFZCDUSVHZWOVIVPZYEEWQWOVJVKW
      NWRMIZYAYBXOXASWNWMXRYGXTYFEWQVLVHYCYDWRCDVQVKWNXQETPOZEWNXPTEPWNXPWOWQPO
      ZTWNXRXSXPYISYFYEWQWOVMVHWNXSYITSYEWOVNVPVOVRWMYHESWLEVSVTVOWAWBWC $.
  $}

  ${
    $d D f g h $.  $d E f g h $.  $d P f g h $.  $d f g h ph $.
    addlocprlem.a $e |- ( ph -> A e. P. ) $.
    addlocprlem.b $e |- ( ph -> B e. P. ) $.
    addlocprlem.qr $e |- ( ph -> Q <Q R ) $.
    addlocprlem.p $e |- ( ph -> P e. Q. ) $.
    addlocprlem.qppr $e |- ( ph -> ( Q +Q ( P +Q P ) ) = R ) $.
    addlocprlem.dlo $e |- ( ph -> D e. ( 1st ` A ) ) $.
    addlocprlem.uup $e |- ( ph -> U e. ( 2nd ` A ) ) $.
    addlocprlem.du $e |- ( ph -> U <Q ( D +Q P ) ) $.
    addlocprlem.elo $e |- ( ph -> E e. ( 1st ` B ) ) $.
    addlocprlem.tup $e |- ( ph -> T e. ( 2nd ` B ) ) $.
    addlocprlem.et $e |- ( ph -> T <Q ( E +Q P ) ) $.
    $( Lemma for ~ addlocpr .  The ` Q <Q ( D +Q E ) ` case.  (Contributed by
       Jim Kingdon, 6-Dec-2019.) $)
    addlocprlemlt $p |- ( ph ->
        ( Q <Q ( D +Q E ) -> Q e. ( 1st ` ( A +P. B ) ) ) ) $=
      ( cnp wcel c1st cfv wa cnq cplq co cltq wbr cpp wi jca ltrelnq simpld syl
      brel addnqprl syl21anc ) ABUBUCZDBUDUEUCZUFCUBUCZJCUDUEUCZUFFUGUCZFDJUHUI
      UJUKFBCULUIUDUEUCUMAVAVBKPUNAVCVDLSUNAFGUJUKZVEMVFVEGUGUCFGUGUGUJUOURUPUQ
      BCDJFUSUT $.

    $( Lemma for ~ addlocpr .  This is a step used in both the
       ` Q = ( D +Q E ) ` and ` ( D +Q E ) <Q Q ` cases.  (Contributed by Jim
       Kingdon, 7-Dec-2019.) $)
    addlocprlemeqgt $p |- ( ph ->
        ( U +Q T ) <Q ( ( D +Q E ) +Q ( P +Q P ) ) ) $=
      ( vf vg vh cplq co cltq wbr cnq wcel wa wi c1st cfv c2nd cop cnp prop syl
      elprnqu syl2anc elprnql addclnq lt2addnq syl22anc mp2and addcomnqg adantl
      cv wceq w3a addassnqg caov4d breqtrd ) AIHUEUFZDEUEUFZJEUEUFZUEUFZDJUEUFE
      EUEUFUEUFUGAIVPUGUHZHVQUGUHZVOVRUGUHZRUAAIUIUJZVPUIUJZHUIUJZVQUIUJZVSVTUK
      WAULABUMUNZBUOUNZUPUQUJZIWGUJWBABUQUJWHKBURUSZQIWGWFUTVAADUIUJZEUIUJZWCAW
      HDWFUJWJWIPDWGWFVBVAZNDEVCVAACUMUNZCUOUNZUPUQUJZHWNUJWDACUQUJWOLCURUSZTHW
      NWMUTVAAJUIUJZWKWEAWOJWMUJWQWPSJWNWMVBVAZNJEVCVAIVPHVQVDVEVFAUBUCUDDEJEUI
      UEWLNWRUBVIZUIUJZUCVIZUIUJZUKZWSXAUEUFZXAWSUEUFVJAWSXAVGVHWTXBUDVIZUIUJVK
      XDXEUEUFWSXAXEUEUFUEUFVJAWSXAXEVLVHNXCXDUIUJAWSXAVCVHVMVN $.

    $( Lemma for ~ addlocpr .  The ` Q = ( D +Q E ) ` case.  (Contributed by
       Jim Kingdon, 6-Dec-2019.) $)
    addlocprlemeq $p |- ( ph ->
        ( Q = ( D +Q E ) -> R e. ( 2nd ` ( A +P. B ) ) ) ) $=
      ( cplq co wceq cpp c2nd cfv wcel wa cltq wbr addlocprlemeqgt adantr oveq1
      sylan9req breqtrrd wi cnp cnq jca ltrelnq simprd syl addnqpru syl21anc ex
      brel mpd ) AFDJUBUCZUDZGBCUEUCUFUGUHZAVJUIZIHUBUCZGUJUKZVKVLVMVIEEUBUCZUB
      UCZGUJAVMVPUJUKVJABCDEFGHIJKLMNOPQRSTUAULUMAVJGFVOUBUCVPOFVIVOUBUNUOUPAVN
      VKUQZVJABURUHZIBUFUGUHZUICURUHZHCUFUGUHZUIGUSUHZVQAVRVSKQUTAVTWALTUTAFGUJ
      UKZWBMWCFUSUHWBFGUSUSUJVAVGVBVCBCIHGVDVEUMVHVF $.

    $( Lemma for ~ addlocpr .  The ` ( D +Q E ) <Q Q ` case.  (Contributed by
       Jim Kingdon, 6-Dec-2019.) $)
    addlocprlemgt $p |- ( ph ->
        ( ( D +Q E ) <Q Q -> R e. ( 2nd ` ( A +P. B ) ) ) ) $=
      ( cplq co cltq wbr cpp c2nd cfv wcel wa addlocprlemeqgt adantr cnq wb cop
      c1st cnp prop syl elprnql syl2anc addclnq ltrelnq brel simpld ltanqg wceq
      syl3anc addcomnqg breq12d bitrd biimpa breq2d mpbid ltsonq sotri addnqpru
      jca wi simprd syl21anc mpd ex ) ADJUBUCZFUDUEZGBCUFUCUGUHUIZAWEUJZIHUBUCZ
      GUDUEZWFWGWHWDEEUBUCZUBUCZUDUEZWKGUDUEZUJWIWGWLWMAWLWEABCDEFGHIJKLMNOPQRS
      TUAUKULWGWKFWJUBUCZUDUEZWMAWEWOAWEWJWDUBUCZWJFUBUCZUDUEZWOAWDUMUIZFUMUIZW
      JUMUIZWEWRUNADUMUIZJUMUIZWSABUPUHZBUGUHZUOUQUIZDXDUIXBABUQUIZXFKBURUSPDXE
      XDUTVAACUPUHZCUGUHZUOUQUIZJXHUIXCACUQUIZXJLCURUSSJXIXHUTVADJVBVAZAWTGUMUI
      ZAFGUDUEWTXMUJMFGUMUMUDVCVDUSZVEZAEUMUIZXPXANNEEVBVAZWDFWJVFVHAWPWKWQWNUD
      AXAWSWPWKVGXQXLWJWDVIVAAXAWTWQWNVGXQXOWJFVIVAVJVKVLAWOWMUNWEAWNGWKUDOVMUL
      VNVRWHWKGUDUMVOVCVPUSAWIWFVSZWEAXGIXEUIZUJXKHXIUIZUJXMXRAXGXSKQVRAXKXTLTV
      RAWTXMXNVTBCIHGVQWAULWBWC $.

    $( Lemma for ~ addlocpr .  The result, in deduction form.  (Contributed by
       Jim Kingdon, 6-Dec-2019.) $)
    addlocprlem $p |- ( ph ->
        ( Q e. ( 1st ` ( A +P. B ) ) \/ R e. ( 2nd ` ( A +P. B ) ) ) ) $=
      ( cplq co cltq wbr wceq w3o cpp c1st cfv wcel c2nd wo ltrelnq brel simpld
      cnq syl cop cnp prop elprnql syl2anc nqtri3or addlocprlemlt addlocprlemeq
      addclnq orc syl6 olc addlocprlemgt 3jaod mpd ) AFDJUBUCZUDUEZFVNUFZVNFUDU
      EZUGZFBCUHUCZUIUJUKZGVSULUJUKZUMZAFUQUKZVNUQUKZVRAFGUDUEZWCMWEWCGUQUKFGUQ
      UQUDUNUOUPURADUQUKZJUQUKZWDABUIUJZBULUJZUSUTUKZDWHUKWFABUTUKWJKBVAURPDWIW
      HVBVCACUIUJZCULUJZUSUTUKZJWKUKWGACUTUKWMLCVAURSJWLWKVBVCDJVGVCFVNVDVCAVOW
      BVPVQAVOVTWBABCDEFGHIJKLMNOPQRSTUAVEVTWAVHVIAVPWAWBABCDEFGHIJKLMNOPQRSTUA
      VFWAVTVJZVIAVQWAWBABCDEFGHIJKLMNOPQRSTUAVKWNVIVLVM $.
  $}

  ${
    $d A d e h p q r t u $.  $d B d e h p q r t u $.
    $( Locatedness of addition on positive reals.  Lemma 11.16 in
       [BauerTaylor], p. 53.  The proof in BauerTaylor relies on signed
       rationals, so we replace it with another proof which applies ~ prarloc
       to both ` A ` and ` B ` , and uses ~ nqtri3or rather than ~ prloc to
       decide whether ` q ` is too big to be in the lower cut of ` A +P. B `
       (and deduce that if it is, then ` r ` must be in the upper cut).  What
       the two proofs have in common is that they take the difference between
       ` q ` and ` r ` to determine how tight a range they need around the real
       numbers.  (Contributed by Jim Kingdon, 5-Dec-2019.) $)
    addlocpr $p |- ( ( A e. P. /\ B e. P. ) ->
        A. q e. Q. A. r e. Q. ( q <Q r ->
          ( q e. ( 1st ` ( A +P. B ) ) \/ r e. ( 2nd ` ( A +P. B ) ) ) ) ) $=
      ( vp vh vu vd vt ve cnp wcel wa cv co cfv cnq cplq wrex adantr wbr cpp wo
      cltq c1st c2nd wi w3a ltexnqq biimpa 3adant1 halfnqq ad2antrl cop prarloc
      wceq prop sylan adantlr 3ad2antl1 ad2ant2r adantll ad2antrr simpld simprd
      simpll1 simpll3 simplrl simplrr wb eqeq1d ad2antll mpbird simprll simprlr
      oveq2 simprr addlocprlem expr rexlimdvva mpd rexlimddv 3expia ralrimivva
      ) AKLZBKLZMZDNZCNZUDUAZWHABUBOZUEPLWIWKUFPLUCZUGDCQQWGWHQLWIQLMZWJWLWGWMW
      JUHZWHENZROZWIUPZWLEQWMWJWQEQSZWGWMWJWREWHWIUIUJUKWNWOQLZWQMZMZFNZXBROZWO
      UPZWLFQWSXDFQSWNWQFWOULUMXAXBQLZXDMZMZGNZHNZXBROUDUAZGAUFPZSHAUEPZSZWLWNX
      EXMWTXDWGWMXEXMWJWEXEXMWFWEXLXKUNKLXEXMAUQXBXKXLHGUOURUSUTVAXGXJWLHGXLXKX
      GXIXLLZXHXKLZMZXJWLXGXPXJMZMZINZJNZXBROUDUAZIBUFPZSJBUEPZSZWLXGYDXQWNXEYD
      WTXDWGWMXEYDWJWFXEYDWEWFYCYBUNKLXEYDBUQXBYBYCJIUOURVBUTVATXRYAWLJIYCYBXRX
      TYCLZXSYBLZMZYAWLXRYGYAMZMZABXIXBWHWIXSXHXTYIWEWFXGWGXQYHWGWMWJWTXFVFVCZV
      DYIWEWFYJVEXGWJXQYHWGWMWJWTXFVGVCXRXEYHXAXEXDXQVHTXGWHXCROZWIUPZXQYHXGYLW
      QWNWSWQXFVIXDYLWQVJXAXEXDYKWPWIXCWOWHRVPVKVLVMVCXRXNYHXGXNXOXJVNTXRXOYHXG
      XNXOXJVOTXGXPXJYHVIXRYEYFYAVNXRYEYFYAVOXRYGYAVQVRVSVTWAVSVTWAWBWBWCWD $.
  $}

  ${
    $d x y z w v g h q r A $.  $d x y z w v g h q r B $.
    $( Closure of addition on positive reals.  First statement of Proposition
       9-3.5 of [Gleason] p. 123.  Combination of Lemma 11.13 and Lemma 11.16
       in [BauerTaylor], p. 53.  (Contributed by NM, 13-Mar-1996.) $)
    addclpr $p |- ( ( A e. P. /\ B e. P. ) -> ( A +P. B ) e. P. ) $=
      ( vq vr vx vy vz vw vv vg vh cnp wcel wa cpp cnq cv wrex wral cplq co cpw
      cxp c1st cfv c2nd cltq wbr wb wn wo wi w3a df-iplp genpelxp genpml genpmu
      addclnq ltanqg addcomnqg addnqprl genprndl addnqpru genprndu jca genpdisj
      jca32 addlocpr 3jca elnp1st2nd sylanbrc ) ALMBLMNZABOUAZPUBZVNUCMZCQZVMUD
      UEZMZCPRZDQZVMUFUEZMZDPRZNNVRVPVTUGUHZVTVQMNDPRUICPSZWBWDVPWAMZNCPRUIDPSZ
      NZVRWFNUJCPSZWDVRWBUKULDPSCPSZUMVMLMVLVOVSWCEFGHIABOTHIGFEUNZUOEFGHIABOTC
      WKFQZGQZURZUPEFGHIABOTDWKWNUQVGVLWHWIWJVLWEWGEFGHIABJKOTDCWKWNEQZWLWMUSZW
      OWLUTZABJQZKQZWOVAVBEFGHIABJKOTDCWKWNWPWQABWRWSWOVCVDVEEFGHIABOTCWKWNWPWQ
      VFABDCVHVIVMDCVJVK $.
  $}

  ${
    $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 $.
    $( Value of addition on positive reals.  (Contributed by Jim Kingdon,
       8-Dec-2019.) $)
    plpvlu $p |- ( ( A e. P. /\ B e. P. ) -> ( A +P. B ) = <.
        { x e. Q. | E. y e. ( 1st ` A ) E. z e. ( 1st ` B ) x = ( y +Q z ) } ,
        { x e. Q. | E. y e. ( 2nd ` A ) E. z e. ( 2nd ` B ) x = ( y +Q z ) }
        >. ) $=
      ( vf vg vh vw vv cpp cplq df-iplp cv addclnq genipv ) FGHIJDEKLCBAIJHGFMG
      NHNOP $.

    $( Value of multiplication on positive reals.  (Contributed by Jim Kingdon,
       8-Dec-2019.) $)
    mpvlu $p |- ( ( A e. P. /\ B e. P. ) -> ( A .P. B ) = <.
        { x e. Q. | E. y e. ( 1st ` A ) E. z e. ( 1st ` B ) x = ( y .Q z ) } ,
        { x e. Q. | E. y e. ( 2nd ` A ) E. z e. ( 2nd ` B ) x = ( y .Q z ) }
        >. ) $=
      ( vf vg vh vw vv cmp cmq df-imp cv mulclnq genipv ) FGHIJDEKLCBAIJHGFMGNH
      NOP $.

    $( Domain of addition on positive reals.  (Contributed by NM,
       18-Nov-1995.) $)
    dmplp $p |- dom +P. = ( P. X. P. ) $=
      ( vv vw vz vx vy cpp cplq df-iplp cv addclnq genipdm ) ABCDEFGDECBAHBICIJ
      K $.

    $( Domain of multiplication on positive reals.  (Contributed by NM,
       18-Nov-1995.) $)
    dmmp $p |- dom .P. = ( P. X. P. ) $=
      ( vv vw vz vx vy cmp cmq df-imp cv mulclnq genipdm ) ABCDEFGDECBAHBICIJK
      $.
  $}

  ${
    $d A x n r q $.
    $( A cut produced from a rational is inhabited.  Lemma for ~ nqprlu .
       (Contributed by Jim Kingdon, 8-Dec-2019.) $)
    nqprm $p |- ( A e. Q. -> ( E. q e. Q. q e. { x | x <Q A }
        /\ E. r e. Q. r e. { x | A <Q x } ) ) $=
      ( vn cnq wcel cv cltq wbr cab wrex vex elab rexbii sylibr cnpi c1o ceq wa
      nsmallnqq breq1 cop cec wex archnqq sylib cxp cqs 1pi opelxpi ecelqsi syl
      df-rex enqex mpan2 df-nqqs syl6eleqr breq2 rspcev sylan exlimiv jca ) BFG
      ZDHZAHZBIJZAKGZDFLZCHZBVFIJZAKGZCFLZVDVEBIJZDFLVIDBUAVHVNDFVGVNAVEDMVFVEB
      IUBNOPVDBVJIJZCFLZVMVDEHZQGZBVQRUCZSUDZIJZTZEUEZVPVDWAEQLWCEBUFWAEQUNUGWB
      VPEVRVTFGWAVPVRVTQQUHZSUIZFVRRQGZVTWEGZUJVRWFTVSWDGWGVQRQQUKWDVSSUOULUMUP
      UQURVOWACVTFVJVTBIUSUTVAVBUMVLVOCFVKVOAVJCMVFVJBIUSNOPVC $.

    $( A cut produced from a rational is rounded.  Lemma for ~ nqprlu .
       (Contributed by Jim Kingdon, 8-Dec-2019.) $)
    nqprrnd $p |- ( A e. Q. -> ( A. q e. Q. ( q e. { x | x <Q A }
        <-> E. r e. Q. ( q <Q r /\ r e. { x | x <Q A } ) )
        /\ A. r e. Q. ( r e. { x | A <Q x }
        <-> E. q e. Q. ( q <Q r /\ q e. { x | A <Q x } ) ) ) ) $=
      ( cnq wcel cv cltq wbr cab wa wrex wral ltbtwnnqq rexbii vex breq2 anbi2i
      wb elab ancom bitri 3bitr4i rgenw a1i breq1 jctil ) BEFZCGZBAGZHIZAJZFZDG
      ZUIHIZUNULFZKZDELZSZCEMZUNUJBHIZAJZFZUOUIVBFZKZCELZSZDEMUTUHUSCEBUIHIZUOB
      UNHIZKZDELZUMURVHVIUOKZDELVKDBUINVLVJDEVIUOUAOUBUKVHAUICPZUJUIBHQTUQVJDEU
      PVIUOUKVIAUNDPZUJUNBHQTROUCUDUEVGDEUNBHIZUOUIBHIZKZCELVCVFCUNBNVAVOAUNVNU
      JUNBHUFTVEVQCEVDVPUOVAVPAUIVMUJUIBHUFTROUCUDUG $.

    $( A cut produced from a rational is disjoint.  Lemma for ~ nqprlu .
       (Contributed by Jim Kingdon, 8-Dec-2019.) $)
    nqprdisj $p |- ( A e. Q. -> A. q e. Q.
        -. ( q e. { x | x <Q A } /\ q e. { x | A <Q x } ) ) $=
      ( cv cltq wbr cab wcel wa cnq wral ltsonq ltrelnq son2lpi vex breq1 breq2
      wn elab anbi12i mtbir rgenw a1i ) CDZADZBEFZAGHZUDBUEEFZAGHZIZRZCJKBJHUKC
      JUJUDBEFZBUDEFZIUDBEJLMNUGULUIUMUFULAUDCOZUEUDBEPSUHUMAUDUNUEUDBEQSTUAUBU
      C $.

    $( A cut produced from a rational is located.  Lemma for ~ nqprlu .
       (Contributed by Jim Kingdon, 8-Dec-2019.) $)
    nqprloc $p |- ( A e. Q. -> A. q e. Q. A. r e. Q. ( q <Q r
        -> ( q e. { x | x <Q A } \/ r e. { x | A <Q x } ) ) ) $=
      ( cnq wcel cv cltq wbr cab wo wi wral wceq w3o vex breq1 elab ralrimiva
      wa nqtri3or ancoms ad2antrr biimpri orcd a1i simpr syl5ibcom breq2 sylbir
      olc syl6 ltsonq ltrelnq sotri syl expcom adantl 3jaod mpd ex ) BEFZDGZCGZ
      HIZVCAGZBHIZAJFZVDBVFHIZAJFZKZLZCEMDEVBVCEFZTZVLCEVNVDEFZTZVEVKVPVETZVCBH
      IZVCBNZBVCHIZOZVKVNWAVOVEVMVBWAVCBUAUBUCVQVRVKVSVTVRVKLVQVRVHVJVHVRVGVRAV
      CDPVFVCBHQRUDUEUFVQVSBVDHIZVKVQVEVSWBVPVEUGVCBVDHQUHWBVJVKVIWBAVDCPVFVDBH
      UIRVJVHUKUJZULVEVTVKLVPVTVEVKVTVETWBVKBVCVDHEUMUNUOWCUPUQURUSUTVASS $.

    $( The canonical embedding of the rationals into the reals, expressed with
       the same variable for the lower and upper cuts.  (Contributed by Jim
       Kingdon, 8-Dec-2019.) $)
    nqprxx $p |- ( A e. Q. -> <. { x | x <Q A } , { x | A <Q x } >. e. P. ) $=
      ( vq vr cnq wcel cv cltq wbr cab wa wrex wb wral wn wo ltrelnq brel abssi
      wss w3a cop cnp nqprm simpld simprd pm3.2i jctil nqprrnd nqprdisj nqprloc
      wi 3jca elinp sylanbrc ) BEFZAGZBHIZAJZETZBUQHIZAJZETZKZCGZUSFZCELDGZVBFZ
      DELKZKVFVEVGHIZVGUSFKDELMCENVHVJVEVBFZKCELMDENKZVFVKKOCENZVJVFVHPULDENCEN
      ZUAUSVBUBUCFUPVIVDABDCUDUTVCURAEURUQEFZUPUQBEEHQRUESVAAEVAUPVOBUQEEHQRUFS
      UGUHUPVLVMVNABDCUIABCUJABDCUKUMVBUSDCUNUO $.
  $}

  ${
    $d A l a $.  $d A u a $.
    $( The canonical embedding of the rationals into the reals.  (Contributed
       by Jim Kingdon, 24-Jun-2020.) $)
    nqprlu $p |- ( A e. Q. -> <. { l | l <Q A } , { u | A <Q u } >. e. P. ) $=
      ( va cnq wcel cv cltq wbr cab breq2 cbvabv eqtr4i opeq2i nqprxx syl5eqelr
      cop cnp ) BEFCGZBHICJZBAGZHIZAJZQTBSHIZCJZQRUEUCTUEBDGZHIZDJUCUDUGCDSUFBH
      KLUBUGADUAUFBHKLMNCBOP $.
  $}

  ${
    $d A l u $.
    $( The reciprocal of a positive integer, as a positive real.  (Contributed
       by Jim Kingdon, 27-Feb-2021.) $)
    recnnpr $p |- ( A e. N. ->
        <. { l | l <Q ( *Q ` [ <. A , 1o >. ] ~Q ) } ,
        { u | ( *Q ` [ <. A , 1o >. ] ~Q ) <Q u } >. e. P. ) $=
      ( cnpi wcel c1o cop ceq cec cnq crq cfv cv cltq wbr cab cnp nnnq recclnq
      nqprlu 3syl ) BDEBFGHIZJEUBKLZJECMUCNOCPUCAMNOAPGQEBRUBSAUCCTUA $.
  $}

  $( The class of rationals less than a given rational is a set.  (Contributed
     by Jim Kingdon, 13-Dec-2019.) $)
  ltnqex $p |- { x | x <Q A } e. _V $=
    ( cv cltq wbr cab cnq nqex wcel ltrelnq brel simpld abssi ssexi ) ACZBDEZAF
    GHPAGPOGIBGIOBGGDJKLMN $.

  $( The class of rationals greater than a given rational is a set.
     (Contributed by Jim Kingdon, 13-Dec-2019.) $)
  gtnqex $p |- { x | A <Q x } e. _V $=
    ( cv cltq wbr cab cnq nqex wcel ltrelnq brel simprd abssi ssexi ) BACZDEZAF
    GHPAGPBGIOGIBOGGDJKLMN $.

  ${
    $d A l u x $.  $d B x $.
    $( Comparing a fraction to a real can be done by whether it is an element
       of the lower cut, or by ` <P ` .  (Contributed by Jim Kingdon,
       8-Jul-2020.) $)
    nqprl $p |- ( ( A e. Q. /\ B e. P. ) -> ( A e. ( 1st ` B ) <->
        <. { l | l <Q A } , { u | A <Q u } >. <P B ) ) $=
      ( vx cnq wcel cnp wa cfv cv cltq wbr cab cop wi c2nd wrex sylan elprnql
      c1st cltp prop prnmaxl wex ad2ant2r vex breq2 biimpri ltnqex gtnqex op2nd
      elab eleq2i sylibr ad2antll simprl 19.8a syl12anc df-rex wb nqprlu ltdfpr
      simpl syl2anc adantr mpbird rexlimddv adantl biimpa bitri biimpi ad2antrl
      ex simpllr simprrr prcdnql mpd impbid ) BFGZCHGZIZBCUAJZGZDKBLMDNZBAKZLMZ
      ANZOZCUBMZWAWDWJPVTWAWDWJWAWDIZBEKZLMZWJEWCWAWCCQJZOHGZWDWMEWCRCUCZEBWNWC
      UDSWKWLWCGZWMIZIZWJWLWIQJZGZWQIZEFRZWSWLFGZXBIZEUEZXCWSXDXAWQXFWAWQXDWDWM
      WAWOWQXDWPWLWNWCTSUFWMXAWKWQWMWLWHGZXAXGWMWGWMAWLEUGWFWLBLUHUMZUIWTWHWLWE
      WHDBUJABUKULUNZUOUPWKWQWMUQXEEURUSXBEFUTUOWKWJXCVAZWRWKVTWAXJWAWOWDVTWPBW
      NWCTSWAWDVDVTWIHGWAXJABDVBWICEVCSZVEVFVGVHVNVIWBWJWDWBWJIZXBWDEFWBWJXCXKV
      JXLXEIZWMWDXEWMXLXAWMXDWQXAWMXAXGWMXIXHVKVLVMVIXMWAWQWMWDPZVTWAWJXEVOXLXD
      XAWQVPWAWOWQXNWPWLBWNWCVQSVEVRVHVNVS $.
  $}

  ${
    $d A l u x $.  $d B x $.
    $( Comparing a fraction to a real can be done by whether it is an element
       of the upper cut, or by ` <P ` .  (Contributed by Jim Kingdon,
       29-Nov-2020.) $)
    nqpru $p |- ( ( A e. Q. /\ B e. P. ) -> ( A e. ( 2nd ` B ) <->
        B <P <. { l | l <Q A } , { u | A <Q u } >. ) ) $=
      ( vx cnq wcel cnp wa cfv cv cltq wbr cab cop wi c1st wrex sylan elprnqu
      c2nd cltp prop prnminu wex ad2ant2r simprl vex elab biimpri ltnqex gtnqex
      breq1 op1st eleq2i sylibr ad2antll 19.8a syl12anc df-rex wb nqprlu ltdfpr
      sylan2 syldan adantr mpbird rexlimddv adantl ancoms biimpa biimpi simpllr
      ex bitri simprrl prcunqu syl2anc mpd impbid ) BFGZCHGZIZBCUAJZGZCDKZBLMZD
      NZBAKLMANZOZUBMZWBWEWKPWAWBWEWKWBWEIZEKZBLMZWKEWDWBCQJZWDOHGZWEWNEWDRCUCZ
      EBWDWOUDSWLWMWDGZWNIZIZWKWRWMWJQJZGZIZEFRZWTWMFGZXCIZEUEZXDWTXEWRXBXGWBWR
      XEWEWNWBWPWRXEWQWMWDWOTSUFWLWRWNUGWNXBWLWRWNWMWHGZXBXHWNWGWNDWMEUHWFWMBLU
      MUIZUJXAWHWMWHWIDBUKABULUNUOZUPUQXFEURUSXCEFUTUPWLWKXDVAZWSWBWEWAXKWBWPWE
      WAWQBWDWOTSWAWBWJHGXKABDVBCWJEVCVDZVEVFVGVHVNVIWCWKWEWCWKIZXCWEEFWCWKXDWB
      WAXKXLVJVKXMXFIZWNWEXFWNXMXBWNXEWRXBWNXBXHWNXJXIVOVLUQVIXNWBWRWNWEPZWAWBW
      KXFVMXMXEWRXBVPWBWPWRXOWQBWMWDWOVQSVRVSVHVNVT $.
  $}

  ${
    $d A l u $.
    $( The canonical embedding of positive integers into the positive reals.
       (Contributed by Jim Kingdon, 23-Apr-2020.) $)
    nnprlu $p |- ( A e. N. -> <. { l | l <Q [ <. A , 1o >. ] ~Q } ,
        { u | [ <. A , 1o >. ] ~Q <Q u } >. e. P. ) $=
      ( cnpi wcel c1o cop ceq cec cnq cv cltq wbr cab cnp nnnq nqprlu syl ) BDE
      BFGHIZJECKSLMCNSAKLMANGOEBPASCQR $.
  $}

  ${
    $d x y $.
    $( The positive real number 'one'.  (Contributed by NM, 13-Mar-1996.)
       (Revised by Mario Carneiro, 12-Jun-2013.) $)
    1pr $p |- 1P e. P. $=
      ( vx vy c1p cv c1q cltq wbr cab cop cnp df-i1p cnq wcel 1nq ax-mp eqeltri
      nqprlu ) CADEFGAHEBDFGBHIZJBAKELMRJMNBEAQOP $.

    $( The lower cut of the positive real number 'one'.  (Contributed by Jim
       Kingdon, 28-Dec-2019.) $)
    1prl $p |- ( 1st ` 1P ) = { x | x <Q 1Q } $=
      ( vy c1p c1st cfv cv c1q cltq wbr df-i1p fveq2i ltnqex gtnqex op1st eqtri
      cab cop ) CDEAFGHIAPZGBFHIBPZQZDERCTDBAJKRSAGLBGMNO $.

    $( The upper cut of the positive real number 'one'.  (Contributed by Jim
       Kingdon, 28-Dec-2019.) $)
    1pru $p |- ( 2nd ` 1P ) = { x | 1Q <Q x } $=
      ( vy c1p c2nd cfv cv c1q cltq wbr df-i1p fveq2i ltnqex gtnqex op2nd eqtri
      cab cop ) CDEBFGHIBPZGAFHIAPZQZDESCTDABJKRSBGLAGMNO $.
  $}

  ${
    $d A f g h l r s t u x y $.  $d B f g h l r s t u x y $.
    $( Lemma for ~ addnqpr .  The reverse subset relationship for the lower
       cut.  (Contributed by Jim Kingdon, 19-Aug-2020.) $)
    addnqprlemrl $p |- ( ( A e. Q. /\ B e. Q. ) ->
        ( 1st ` ( <. { l | l <Q A } , { u | A <Q u } >. +P.
        <. { l | l <Q B } , { u | B <Q u } >. ) ) C_
        ( 1st ` <. { l | l <Q ( A +Q B ) } , { u | ( A +Q B ) <Q u } >. )
        ) $=
      ( vr vs vt vg vh cnq wcel wa cv cltq wbr cab cop c1st cfv breq1 vf vx cpp
      vy co cplq wceq wrex cnp wb nqprlu df-iplp addclnq genpelvl syl2an biimpa
      ltnqex gtnqex op1st elab2 biimpi ad2antrl adantr ad2antll wi ltrelnq brel
      vex syl lt2addnq syl2anc mp2and adantl mpbird sylibr rexlimdvva mpd ssrdv
      ex ) BJKZCJKZLZEDMZBNOZDPZBAMZNOAPZQZWCCNOZDPZCWFNOAPZQZUCUERSZWCBCUFUEZN
      OZDPZWNWFNOAPZQRSZWBEMZWMKZWSWRKZWBWTLZWSFMZGMZUFUEZUGZGWLRSZUHFWHRSZUHZX
      AWBWTXIVTWHUIKWLUIKWTXIUJWAABDUKACDUKUAHIUBUDWHWLWSFGUCUFUBUDIHUAULHMIMUM
      UNUOUPXBXFXAFGXHXGXBXCXHKZXDXGKZLLZXFXAXLXFLZWSWNNOZXAXMXNXEWNNOZXMXCBNOZ
      XDCNOZXOXLXPXFXJXPXBXKXJXPWDXPDXCXHFVHWCXCBNTWEWGDBUQABURUSUTVAVBVCZXLXQX
      FXKXQXBXJXKXQWIXQDXDXGGVHWCXDCNTWJWKDCUQACURUSUTVAVDVCZXMXCJKVTLZXDJKWALZ
      XPXQLXOVEXMXPXTXRXCBJJNVFVGVIXMXQYAXSXDCJJNVFVGVIXCBXDCVJVKVLXFXNXOUJXLWS
      XEWNNTVMVNWOXNDWSWREVHWCWSWNNTWPWQDWNUQAWNURUSUTVOVSVPVQVSVR $.

    $( Lemma for ~ addnqpr .  The reverse subset relationship for the upper
       cut.  (Contributed by Jim Kingdon, 19-Aug-2020.) $)
    addnqprlemru $p |- ( ( A e. Q. /\ B e. Q. ) ->
        ( 2nd ` ( <. { l | l <Q A } , { u | A <Q u } >. +P.
        <. { l | l <Q B } , { u | B <Q u } >. ) ) C_
        ( 2nd ` <. { l | l <Q ( A +Q B ) } , { u | ( A +Q B ) <Q u } >. )
        ) $=
      ( vr vs vt vg vh cnq wcel wa cv cltq wbr cab cop c2nd cfv breq2 vf vx cpp
      vy co cplq wceq wrex cnp wb nqprlu df-iplp addclnq genpelvu syl2an biimpa
      ltnqex gtnqex op2nd elab2 biimpi ad2antrl adantr ad2antll wi ltrelnq brel
      vex syl lt2addnq syl2anc mp2and adantl mpbird sylibr rexlimdvva mpd ssrdv
      ex ) BJKZCJKZLZEDMZBNODPZBAMZNOZAPZQZWCCNODPZCWENOZAPZQZUCUERSZWCBCUFUEZN
      ODPZWNWENOZAPZQRSZWBEMZWMKZWSWRKZWBWTLZWSFMZGMZUFUEZUGZGWLRSZUHFWHRSZUHZX
      AWBWTXIVTWHUIKWLUIKWTXIUJWAABDUKACDUKUAHIUBUDWHWLWSFGUCUFUBUDIHUAULHMIMUM
      UNUOUPXBXFXAFGXHXGXBXCXHKZXDXGKZLLZXFXAXLXFLZWNWSNOZXAXMXNWNXENOZXMBXCNOZ
      CXDNOZXOXLXPXFXJXPXBXKXJXPWFXPAXCXHFVHWEXCBNTWDWGDBUQABURUSUTVAVBVCZXLXQX
      FXKXQXBXJXKXQWJXQAXDXGGVHWEXDCNTWIWKDCUQACURUSUTVAVDVCZXMVTXCJKLZWAXDJKLZ
      XPXQLXOVEXMXPXTXRBXCJJNVFVGVIXMXQYAXSCXDJJNVFVGVIBXCCXDVJVKVLXFXNXOUJXLWS
      XEWNNTVMVNWPXNAWSWREVHWEWSWNNTWOWQDWNUQAWNURUSUTVOVSVPVQVSVR $.

    $( Lemma for ~ addnqpr .  The forward subset relationship for the lower
       cut.  (Contributed by Jim Kingdon, 19-Aug-2020.) $)
    addnqprlemfl $p |- ( ( A e. Q. /\ B e. Q. ) ->
        ( 1st ` <. { l | l <Q ( A +Q B ) } , { u | ( A +Q B ) <Q u } >. )
        C_ ( 1st ` ( <. { l | l <Q A } , { u | A <Q u } >. +P.
        <. { l | l <Q B } , { u | B <Q u } >. ) ) ) $=
      ( vr cnq wcel wa cv co cltq wbr cab cop c1st cfv c2nd wn syl cnp cplq cpp
      addnqprlemru wor ltsonq addclnq sonr sylancr cvv ltrelnq brel simpld elex
      breq2 elab3 sylnibr ltnqex gtnqex eleq2i ssneldd adantr wo nqprlu addclpr
      op2nd syl2an prop vex breq1 op1st elab2 biimpi prloc ecased ex ssrdv ) BF
      GZCFGZHZEDIZBCUAJZKLZDMZWAAIZKLZAMZNZOPZVTBKLDMBWDKLAMNZVTCKLDMCWDKLAMNZU
      BJZOPZVSEIZWHGZWMWLGZVSWNHWOWAWKQPZGZVSWQRWNVSWPWGQPZWAABCDUCVSWAWFGZWAWR
      GVSWAWAKLZWSVSFKUDWAFGZWTRUEBCUFFWAKUGUHWEWTAWAWTXAWAUIGWTXAXAWAWAFFKUJUK
      ULWAFUMSWDWAWAKUNUOUPWRWFWAWCWFDWAUQZAWAURZVEUSUPUTVAVSWLWPNTGZWMWAKLZWOW
      QVBWNVSWKTGZXDVQWITGWJTGXFVRABDVCACDVCWIWJVDVFWKVGSWNXEWBXEDWMWHEVHVTWMWA
      KVIWCWFXBXCVJVKVLWMWAWPWLVMVFVNVOVP $.

    $( Lemma for ~ addnqpr .  The forward subset relationship for the upper
       cut.  (Contributed by Jim Kingdon, 19-Aug-2020.) $)
    addnqprlemfu $p |- ( ( A e. Q. /\ B e. Q. ) ->
        ( 2nd ` <. { l | l <Q ( A +Q B ) } , { u | ( A +Q B ) <Q u } >. )
        C_ ( 2nd ` ( <. { l | l <Q A } , { u | A <Q u } >. +P.
        <. { l | l <Q B } , { u | B <Q u } >. ) ) ) $=
      ( vr cnq wcel wa cv co cltq wbr cab cop c2nd cfv c1st wn syl cnp cplq cpp
      addnqprlemrl wor ltsonq addclnq sonr sylancr cvv ltrelnq brel simpld elex
      breq1 elab3 sylnibr ltnqex gtnqex eleq2i ssneldd adantr wo nqprlu addclpr
      op1st syl2an prop vex breq2 op2nd elab2 biimpi prloc orcomd ecased ssrdv
      ex ) BFGZCFGZHZEDIZBCUAJZKLZDMZWBAIZKLZAMZNZOPZWABKLDMBWEKLAMNZWACKLDMCWE
      KLAMNZUBJZOPZVTEIZWIGZWNWMGZVTWOHZWPWBWLQPZGZVTWSRWOVTWRWHQPZWBABCDUCVTWB
      WDGZWBWTGVTWBWBKLZXAVTFKUDWBFGZXBRUEBCUFFWBKUGUHWCXBDWBXBXCWBUIGXBXCXCWBW
      BFFKUJUKULWBFUMSWAWBWBKUNUOUPWTWDWBWDWGDWBUQZAWBURZVEUSUPUTVAWQWSWPVTWRWM
      NTGZWBWNKLZWSWPVBWOVTWLTGZXFVRWJTGWKTGXHVSABDVCACDVCWJWKVDVFWLVGSWOXGWFXG
      AWNWIEVHWEWNWBKVIWDWGXDXEVJVKVLWBWNWMWRVMVFVNVOVQVP $.

    $( Addition of fractions embedded into positive reals.  One can either add
       the fractions as fractions, or embed them into positive reals and add
       them as positive reals, and get the same result.  (Contributed by Jim
       Kingdon, 19-Aug-2020.) $)
    addnqpr $p |- ( ( A e. Q. /\ B e. Q. ) ->
        <. { l | l <Q ( A +Q B ) } , { u | ( A +Q B ) <Q u } >. =
        ( <. { l | l <Q A } , { u | A <Q u } >. +P.
          <. { l | l <Q B } , { u | B <Q u } >. ) ) $=
      ( cnq wcel wa cv co cltq wbr cab cop wceq c1st cfv c2nd eqssd cnp nqprlu
      cpp addnqprlemfl addnqprlemrl addnqprlemfu addnqprlemru wb addclnq syl2an
      cplq syl addclpr preqlu syl2anc mpbir2and ) BEFZCEFZGZDHZBCUIIZJKDLUSAHZJ
      KALMZURBJKDLBUTJKALMZURCJKDLCUTJKALMZUAIZNZVAOPZVDOPZNZVAQPZVDQPZNZUQVFVG
      ABCDUBABCDUCRUQVIVJABCDUDABCDUERUQVASFZVDSFZVEVHVKGUFUQUSEFVLBCUGAUSDTUJU
      OVBSFVCSFVMUPABDTACDTVBVCUKUHVAVDULUMUN $.
  $}

  ${
    $d A l u $.
    $( Addition of one to a fraction embedded into a positive real.  One can
       either add the fraction one to the fraction, or the positive real one to
       the positive real, and get the same result.  Special case of ~ addnqpr .
       (Contributed by Jim Kingdon, 26-Apr-2020.) $)
    addnqpr1 $p |- ( A e. Q. ->
        <. { l | l <Q ( A +Q 1Q ) } , { u | ( A +Q 1Q ) <Q u } >. =
        ( <. { l | l <Q A } , { u | A <Q u } >. +P. 1P ) ) $=
      ( cnq wcel cv c1q cplq co cltq wbr cab cop cpp c1p wceq 1nq addnqpr mpan2
      df-i1p oveq2i syl6eqr ) BDEZCFZBGHIZJKCLUEAFZJKALMZUDBJKCLBUFJKALMZUDGJKC
      LGUFJKALMZNIZUHONIUCGDEUGUJPQABGCRSOUIUHNACTUAUB $.
  $}

  ${
    $d A m $.  $d B m $.  $d C m $.
    $( Approximate division for positive rationals.  Proposition 12.7 of
       [BauerTaylor], p. 55 (a special case where ` A ` and ` B ` are positive,
       as well as ` C ` ).  Our proof is simpler than the one in BauerTaylor
       because we have reciprocals.  (Contributed by Jim Kingdon,
       8-Dec-2019.) $)
    appdivnq $p |- ( ( A <Q B /\ C e. Q. ) ->
        E. m e. Q. ( A <Q ( m .Q C ) /\ ( m .Q C ) <Q B ) ) $=
      ( cltq wbr cnq wcel wa cmq co adantr ltmnqg syl3anc syl2anc c1q mulcomnqg
      wb wceq bitrd crq cv wrex simpl ltrelnq brel simpld simprd recclnq adantl
      cfv mpbid ltbtwnnqq sylib mulclnq simpr simplr recidnq ad2antlr mulassnqg
      oveq1d 1nq mpan mulidnq syl 3eqtr3d breq1d breq2d anbi12d biimpd reximdva
      eqtrd mpd ) ABEFZCGHZIZCUAUKZAJKZDUBZEFZVSVQBJKZEFZIZDGUCZAVSCJKZEFZWEBEF
      ZIZDGUCVPVRWAEFZWDVPVNWIVNVOUDVPAGHZBGHZVQGHZVNWIRVPWJWKVNWJWKIVOABGGEUEU
      FLZUGZVPWJWKWMUHZVOWLVNCUIUJZABVQMNULDVRWAUMUNVPWCWHDGVPVSGHZIZWCWHWRWCAC
      VSJKZEFZWSBEFZIWHWRVTWTWBXAWRVTCVRJKZWSEFZWTWRVRGHZWQVOVTXCRWRWLWJXDVPWLW
      QWPLZVPWJWQWNLZVQAUOOVPWQUPZVNVOWQUQZVRVSCMNWRXBAWSEWRCVQJKZAJKZPAJKZXBAV
      OXJXKSVNWQVOXIPAJCURZVAUSWRVOWLWJXJXBSXHXEXFCVQAUTNWRWJXKASXFWJXKAPJKZAPG
      HZWJXKXMSVBPAQVCAVDVLVEVFVGTWRWBWSCWAJKZEFZXAWRWQWAGHZVOWBXPRXGWRWLWKXQXE
      VPWKWQWOLZVQBUOOXHVSWACMNWRXOBWSEWRXIBJKZPBJKZXOBVOXSXTSVNWQVOXIPBJXLVAUS
      WRVOWLWKXSXOSXHXEXRCVQBUTNWRWKXTBSXRWKXTBPJKZBXNWKXTYASVBPBQVCBVDVLVEVFVH
      TVIWRWTWFXAWGWRWSWEAEWRVOWQWSWESXHXGCVSQOZVHWRWSWEBEYBVGVITVJVKVM $.
  $}

  ${
    $d B m x $.  $d C m x $.
    $( Approximate division for positive rationals.  This can be thought of as
       a variation of ~ appdivnq in which ` A ` is zero, although it can be
       stated and proved in terms of positive rationals alone, without zero as
       such.  (Contributed by Jim Kingdon, 9-Dec-2019.) $)
    appdiv0nq $p |- ( ( B e. Q. /\ C e. Q. ) ->
        E. m e. Q. ( m .Q C ) <Q B ) $=
      ( vx cnq wcel wa cv cltq wbr cmq co wrex nsmallnqq adantr appdivnq reximi
      simpr syl ancoms ad2ant2l rexlimddv ) AEFZBEFZGDHZAIJZCHBKLZAIJZCEMZDEUCU
      FDEMUDDANOUDUFUIUCUEEFUFUDUIUFUDGUEUGIJZUHGZCEMUIUEABCPUKUHCEUJUHRQSTUAUB
      $.
  $}

  ${
    prmuloclemcalc.ru $e |- ( ph -> R <Q U ) $.
    prmuloclemcalc.udp $e |- ( ph -> U <Q ( D +Q P ) ) $.
    prmuloclemcalc.axb $e |- ( ph -> ( A +Q X ) = B ) $.
    prmuloclemcalc.pbrx $e |- ( ph -> ( P .Q B ) <Q ( R .Q X ) ) $.
    prmuloclemcalc.a $e |- ( ph -> A e. Q. ) $.
    prmuloclemcalc.b $e |- ( ph -> B e. Q. ) $.
    prmuloclemcalc.d $e |- ( ph -> D e. Q. ) $.
    prmuloclemcalc.p $e |- ( ph -> P e. Q. ) $.
    prmuloclemcalc.x $e |- ( ph -> X e. Q. ) $.
    $( Calculations for ~ prmuloc .  (Contributed by Jim Kingdon,
       9-Dec-2019.) $)
    prmuloclemcalc $p |- ( ph -> ( U .Q A ) <Q ( D .Q B ) ) $=
      ( co cltq syl2anc cmq wbr cplq oveq2d cnq wcel wceq wa ltrelnq syl simprd
      brel distrnqg syl3anc eqtr3d ltmnqi breqtrd eqbrtrrd mulclnq ltanqi sotri
      mulcomnqg ltsonq simpld 3brtr3d addcomnqg wb ltanqg mpbird ) AGBUARZCDUAR
      ZDCUARZSAVJVKSUBZGHUARZVJUCRZVNVKUCRZSUBZAVJVNUCRZVKVNUCRZVOVPSAGCUARZVRV
      SSAGBHUCRZUARZVTVRAWACGUAKUDAGUEUFZBUEUFZHUEUFZWBVRUGAFUEUFZWCAFGSUBZWFWC
      UHIFGUEUESUIULUJZUKZMQGBHUMUNUOACGUARZVTVSSACUEUFZWCWJVTUGNWICGVBTAWJVKFH
      UARZUCRZSUBZWMVSSUBZWJVSSUBAWJVKCEUARZUCRZSUBWQWMSUBZWNAWJCDEUCRZUARZWQSA
      GWSSUBWKWJWTSUBJNGWSCUPTAWKDUEUFZEUEUFZWTWQUGNOPCDEUMUNUQAWPWLSUBVKUEUFZW
      RAECUARZWPWLSAXBWKXDWPUGPNECVBTLURAWKXAXCNOCDUSTZWPWLVKUTTWJWQWMSUEVCUIVA
      TAWLVNSUBXCWOAHFUARZHGUARZWLVNSAWGWEXFXGSUBIQFGHUPTAWEWFXFWLUGQAWFWCWHVDH
      FVBTAWEWCXGVNUGQWIHGVBTVEXEWLVNVKUTTWJWMVSSUEVCUIVATURURAVJUEUFZVNUEUFZVR
      VOUGAWCWDXHWIMGBUSTZAWCWEXIWIQGHUSTZVJVNVFTAXCXIVSVPUGXEXKVKVNVFTVEAXHXCX
      IVMVQVGXJXEXKVJVKVNVHUNVIAWKXAVKVLUGNOCDVBTUQ $.
  $}

  ${
    $d A d p r u x $.  $d B d p r u x $.  $d L d p r u x $.  $d U d p r u x $.
    $( Positive reals are multiplicatively located.  Lemma 12.8 of
       [BauerTaylor], p. 56.  (Contributed by Jim Kingdon, 8-Dec-2019.) $)
    prmuloc $p |- ( ( <. L , U >. e. P. /\ A <Q B ) -> E. d e. Q. E. u e. Q.
        ( d e. L /\ u e. U /\ ( u .Q A ) <Q ( d .Q B ) ) ) $=
      ( vx vr vp wcel cltq wbr wa cv co cmq cnq wrex ad2antrr adantlr cplq wceq
      cop cnp ltexnqi adantl prml simprl simplrl mulclnq syl2anc ltrelnq simprd
      w3a brel ad3antlr appdiv0nq prarloc ad2ant2r r2ex elprnql adantrr simplll
      wex sylib elprnqu prltlu 3adant1r 3adant2l 3adant3l simprr simplrr simpld
      3expa prmuloclemcalc df-3an sylanbrc jca31 2eximdv mpd sylibr rexlimddv
      ex ) EDUCUDJZBCKLZMZBGNZUAOCUBZFNZEJZANZDJZWKBPOWICPOKLZUNZAQRFQRZGQWEWHG
      QRWDGBCUEUFWFWGQJZWHMZMZHNZEJZWOHQWDWTHQRWEWQHDEUGSWRWSQJZWTMZMZINZCPOWSW
      GPOZKLZWOIQXCXEQJZCQJZXFIQRXCXAWPXGWRXAWTUHWFWPWHXBUIZWSWGUJUKWEXHWDWQXBW
      EBQJZXHBCQQKULUOZUMUPZXECIUQUKXCXDQJZXFMZMZWIQJZWKQJZMWNMZAVDFVDZWOXOWJWL
      MZWKWIXDUAOKLZMZAVDFVDZXSXOYAADRFERZYCWRXMYDXBXFWFXMYDWQWDXMYDWEXDDEFAURT
      TUSYAFAEDUTVEXOYBXRFAXOYBXRXOYBMZXPXQWNXOXTXPYAXCWJXPXNWLWRWJXPXBWFWJXPWQ
      WDWJXPWEWIDEVATTTUSVBZYEWDWLXQXCWDXNYBWDWEWQXBVCSYEWJWLXOXTYAUHZUMWKDEVFU
      KYEXTWMWNYGYEBCWIXDWSWKWGXCXTWSWKKLZXNYAWRXBXTYHWFXBXTYHWQWFXBWLYHWJWFWTW
      LYHXAWDWTWLYHWEWSWKDEVGVHVIVJVHVNUSXOXTYAVKXCWHXNYBWFWPWHXBVLSXCXMXFYBVLX
      CXJXNYBWEXJWDWQXBWEXJXHXKVMUPSXCXHXNYBXLSYFXCXMXFYBUIXCWPXNYBXISVOWJWLWMV
      PVQVRWCVSVTWNFAQQUTWAWBWBWB $.
  $}

  ${
    $d B x y $.  $d L x y $.  $d U x y $.
    $( Positive reals are multiplicatively located.  This is a variation of
       ~ prmuloc which only constructs one (named) point and is therefore often
       easier to work with.  It states that given a ratio ` B ` , there are
       elements of the lower and upper cut which have exactly that ratio
       between them.  (Contributed by Jim Kingdon, 28-Dec-2019.) $)
    prmuloc2 $p |- ( ( <. L , U >. e. P. /\ 1Q <Q B ) ->
        E. x e. L ( x .Q B ) e. U ) $=
      ( vy cop wcel c1q cltq wbr wa cv cmq co cnq wrex wi syl2anc mpd ex simpr1
      cnp w3a prmuloc nfv nfre1 simpr3 wceq wb simplrr mulidnq breq1 3syl mpbid
      simplll simpr2 prcunqu rspe anassrs rexlimdva rexlimd ) DCFUBGZHBIJZKZALZ
      DGZELZCGZVGHMNZVEBMNZIJZUCZEOPZAOPVJCGZADPZEHBCDAUDVDVMVOAOVDAUEVNADUFVDV
      EOGZVMVOQVDVPKVLVOEOVDVPVGOGZVLVOQVDVPVQKZKZVLVOVSVLKZVFVNVOVSVFVHVKUAVTV
      GVJIJZVNVTVKWAVSVFVHVKUGVTVQVIVGUHVKWAUIVDVPVQVLUJVGUKVIVGVJIULUMUNVTVBVH
      WAVNQVBVCVRVLUOVSVFVHVKUPVJVGCDUQRSVNADURRTUSUTTVAS $.
  $}

  ${
    $d A v w x y z $.  $d B v w x y z $.  $d G w y z $.  $d H w y z $.
    $d X w y z $.
    $( Lemma to prove downward closure in positive real multiplication.
       (Contributed by Jim Kingdon, 10-Dec-2019.) $)
    mulnqprl $p |- ( ( ( ( A e. P. /\ G e. ( 1st ` A ) ) /\
                       ( B e. P. /\ H e. ( 1st ` B ) ) ) /\ X e. Q. ) ->
                       ( X <Q ( G .Q H ) -> X e. ( 1st ` ( A .P. B ) ) ) ) $=
      ( vy vz vw cnp wcel cfv wa cnq cmq co cltq wbr syl wceq c1q vx vv crq cmp
      c1st cv w3a ltmnqg adantl simpr c2nd prop elprnql sylan ad2antrr ad2antlr
      cop mulclnq syl2anc recclnq mulcomnqg caovord2d mulassnqg syl3anc recidnq
      wb oveq2d mulidnq 3eqtrd breq2d bitrd wi prcdnql sylbid df-imp genpprecll
      exp4b com34 imp32 adantlr adantr syld eqtrd eleq1d sylibd ) AIJZCAUEKZJZL
      ZBIJZDBUEKZJZLZLZEMJZLZECDNOZPQZEDUCKZNOZDNOZABUDOUEKZJZEXBJWPWRWTWGJZXCW
      PWRWTCPQZXDWPWRWTWQWSNOZPQXEWPFGHEWQWSPMNFUFZMJZGUFZMJZHUFZMJUGXGXIPQXKXG
      NOXKXINOPQVFWPXGXIXKUHUIWNWOUJZWPCMJZDMJZWQMJWIXMWMWOWFWGAUKKZUQIJZWHXMAU
      LZCXOWGUMUNUOZWMXNWIWOWJWKBUKKZUQIJWLXNBULDXSWKUMUNUPZCDURUSWPXNWSMJZXTDU
      TRZXHXJLXGXINOXIXGNOSWPXGXIVAUIVBWPXFCWTPWPXFCDWSNOZNOZCTNOZCWPXMXNYAXFYD
      SXRXTYBCDWSVCVDWPXNYDYESXTXNYCTCNDVEZVGRWPXMYECSXRCVHRVIVJVKWIXEXDVLZWMWO
      WFXPWHYGXQCWTXOWGVMUNUOVNWNXDXCVLZWOWFWMYHWHWFWJWLYHWFWJXDWLXCWFWJXDWLXCU
      AFGHUBABWTDUDNHUBGFUAVOXGXIURVPVQVRVSVTWAWBWPXAEXBWPXAEWSDNOZNOZETNOZEWPW
      OYAXNXAYJSXLYBXTEWSDVCVDWPYITENWPYIYCTWPYAXNYIYCSYBXTWSDVAUSWPXNYCTSXTYFR
      WCVGWOYKESWNEVHUIVIWDWE $.

    $( Lemma to prove upward closure in positive real multiplication.
       (Contributed by Jim Kingdon, 10-Dec-2019.) $)
    mulnqpru $p |- ( ( ( ( A e. P. /\ G e. ( 2nd ` A ) ) /\
                       ( B e. P. /\ H e. ( 2nd ` B ) ) ) /\ X e. Q. ) ->
                       ( ( G .Q H ) <Q X -> X e. ( 2nd ` ( A .P. B ) ) ) ) $=
      ( vy vz vw cnp wcel cfv wa cnq cmq co cltq wbr syl wceq c1q vx vv crq cmp
      c2nd cv w3a wb ltmnqg adantl c1st cop prop elprnqu sylan ad2antrr mulclnq
      ad2antlr syl2anc simpr recclnq mulcomnqg caovord2d syl3anc recidnq oveq2d
      mulassnqg mulidnq 3eqtrd breq1d bitrd wi prcunqu sylbid df-imp genppreclu
      exp4b com34 imp32 adantlr adantr syld eqtrd eleq1d sylibd ) AIJZCAUEKZJZL
      ZBIJZDBUEKZJZLZLZEMJZLZCDNOZEPQZEDUCKZNOZDNOZABUDOUEKZJZEXBJWPWRWTWGJZXCW
      PWRCWTPQZXDWPWRWQWSNOZWTPQXEWPFGHWQEWSPMNFUFZMJZGUFZMJZHUFZMJUGXGXIPQXKXG
      NOXKXINOPQUHWPXGXIXKUIUJWPCMJZDMJZWQMJWIXLWMWOWFAUKKZWGULIJZWHXLAUMZCWGXN
      UNUOUPZWMXMWIWOWJBUKKZWKULIJWLXMBUMDWKXRUNUOURZCDUQUSWNWOUTZWPXMWSMJZXSDV
      ARZXHXJLXGXINOXIXGNOSWPXGXIVBUJVCWPXFCWTPWPXFCDWSNOZNOZCTNOZCWPXLXMYAXFYD
      SXQXSYBCDWSVGVDWPXMYDYESXSXMYCTCNDVEZVFRWPXLYECSXQCVHRVIVJVKWIXEXDVLZWMWO
      WFXOWHYGXPWTCWGXNVMUOUPVNWNXDXCVLZWOWFWMYHWHWFWJWLYHWFWJXDWLXCWFWJXDWLXCU
      AFGHUBABWTDUDNHUBGFUAVOXGXIUQVPVQVRVSVTWAWBWPXAEXBWPXAEWSDNOZNOZETNOZEWPW
      OYAXMXAYJSXTYBXSEWSDVGVDWPYITENWPYIYCTWPYAXMYIYCSYBXSWSDVBUSWPXMYCTSXSYFR
      WCVFWOYKESWNEVHUJVIWDWE $.
  $}

  ${
    $d D x y z $.  $d E x y z $.  $d T x y z $.  $d U x y z $.  $d ph x y z $.
    mullocprlem.ab $e |- ( ph -> ( A e. P. /\ B e. P. ) ) $.
    mullocprlem.uqedu $e |- ( ph -> ( U .Q Q ) <Q ( E .Q ( D .Q U ) ) ) $.
    mullocprlem.edutdu $e |- ( ph ->
      ( E .Q ( D .Q U ) ) <Q ( T .Q ( D .Q U ) ) ) $.
    mullocprlem.tdudr $e |- ( ph -> ( T .Q ( D .Q U ) ) <Q ( D .Q R ) ) $.
    mullocprlem.qr $e |- ( ph -> ( Q e. Q. /\ R e. Q. ) ) $.
    mullocprlem.duq $e |- ( ph -> ( D e. Q. /\ U e. Q. ) ) $.
    mullocprlem.du $e |- ( ph -> ( D e. ( 1st ` A ) /\ U e. ( 2nd ` A ) ) ) $.
    mullocprlem.et $e |- ( ph -> ( E e. Q. /\ T e. Q. ) ) $.
    $( Calculations for ~ mullocpr .  (Contributed by Jim Kingdon,
       10-Dec-2019.) $)
    mullocprlem $p |- ( ph -> ( Q e. ( 1st ` ( A .P. B ) ) \/
        R e. ( 2nd ` ( A .P. B ) ) ) ) $=
      ( wcel co cmq vx vy vz c1st cfv cmp c2nd wo wa cltq wbr cnq simpld simprd
      cv wceq mulcomnqg adantl w3a mulassnqg caov13d breqtrd wb mulclnq syl2anc
      ltmnqg syl3anc mpbird adantr cnp wi jca anim1i mulnqprl syl21anc mpd orcd
      caov12d breq1d bitr4d eqbrtrrd mulnqpru olcd syl breq12d bitrd prop prloc
      cop sylan mpjaodan ) AICUDUEZRZEBCUFSZUDUERZFWNUGUERZUHGCUGUEZRZAWMUIZWOW
      PWSEDITSZUJUKZWOAXAWMAXAHETSZHWTTSZUJUKZAXBIDHTSZTSZXCUJKAUAUBUCIDHULTAIU
      LRZGULRZQUMZADULRZHULRZOUMZAXJXKOUNZUAUOZULRZUBUOZULRZUIXNXPTSZXPXNTSUPAX
      NXPUQURZXOXQUCUOZULRUSXRXTTSXNXPXTTSTSUPAXNXPXTUTURZVAVBAEULRZWTULRZXKXAX
      DVCAYBFULRZNUMZAXJXGYCXLXIDIVDVEXMEWTHVFVGVHVIWSBVJRZDBUDUERZUIZCVJRZWMUI
      YBXAWOVKAYHWMAYFYGAYFYIJUMZAYGHBUGUERZPUMVLVIAYIWMAYFYIJUNZVMAYBWMYEVIBCD
      IEVNVOVPVQAWRUIZWPWOYMHGTSZFUJUKZWPAYOWRAGHTSZYNFUJAXHXKYPYNUPAXGXHQUNZXM
      GHUQVEAYPFUJUKZGXETSZDFTSZUJUKZMAYRDYPTSZYTUJUKZUUAAYPULRZYDXJYRUUCVCAXHX
      KUUDYQXMGHVDVEAYBYDNUNZXLYPFDVFVGAYSUUBYTUJAUAUBUCGDHULTYQXLXMXSYAVRVSVTV
      HWAVIYMYFYKUIZYIWRUIYDYOWPVKAUUFWRAYFYKYJAYGYKPUNVLVIAYIWRYLVMAYDWRUUEVIB
      CHGFWBVOVPWCAYIIGUJUKZWMWRUHZYLAUUGXFYSUJUKZLAUUGXEITSZXEGTSZUJUKZUUIAXGX
      HXEULRZUUGUULVCXIYQAXJXKUIUUMODHVDWDZIGXEVFVGAUUJXFUUKYSUJAUUMXGUUJXFUPUU
      NXIXEIUQVEAUUMXHUUKYSUPUUNYQXEGUQVEWEWFVHYIWLWQWIVJRUUGUUHCWGIGWQWLWHWJVE
      WK $.
  $}

  ${
    $d A d e q r t u $.  $d B d e q r t u $.
    $( Locatedness of multiplication on positive reals.  Lemma 12.9 in
       [BauerTaylor], p. 56 (but where both ` A ` and ` B ` are positive, not
       just ` A ` ).  (Contributed by Jim Kingdon, 8-Dec-2019.) $)
    mullocpr $p |- ( ( A e. P. /\ B e. P. ) ->
        A. q e. Q. A. r e. Q. ( q <Q r ->
          ( q e. ( 1st ` ( A .P. B ) ) \/ r e. ( 2nd ` ( A .P. B ) ) ) ) ) $=
      ( vd vu ve vt cnp wcel wa cv cltq wbr co cfv cnq cmq wrex ad2antrr cmp wo
      c1st c2nd wi w3a wex prop prmuloc sylan r2ex sylib adantlr simprr3 simprl
      cop mulclnq syl appdivnq syl2anc simprrr simplll ad2antlr simprrl simpllr
      adantr ad2antll simplrl jca mullocprlem rexlimddv exlimdvv mpd ralrimivva
      3simpa ex ) AIJZBIJZKZDLZCLZMNZVTABUAOZUCPJWAWCUDPJUBZUEDCQQVSVTQJWAQJKZK
      ZWBWDWFWBKZELZQJFLZQJKZWHAUCPZJZWIAUDPZJZWIVTROZWHWAROZMNZUFZKZFUGEUGZWDV
      SWBWTWEVQWBWTVRVQWBKWRFQSEQSZWTVQWKWMUPIJWBXAAUHFVTWAWMWKEUIUJWREFQQUKULU
      MUMWGWSWDEFWGWSWDWGWSKZWOGLZWHWIROZROZMNZXEWPMNZKZWDGQXBWQXDQJZXHGQSWLWNW
      QWJWGUNXBWJXIWGWJWRUOZWHWIUQURZWOWPXDGUSUTXBXCQJZXHKZKZXEHLZXDROZMNZXPWPM
      NZKZWDHQXNXGXIXSHQSXBXLXFXGVAXBXIXMXKVFXEWPXDHUSUTXNXOQJZXSKZKZABWHVTWAXO
      WIXCXBVSXMYAVSWEWBWSVBTXMXFXBYAXLXFXGUOVCXNXTXQXRVDXNXTXQXRVAXBWEXMYAVSWE
      WBWSVETXBWJXMYAXJTXBWLWNKZXMYAWRYCWGWJWLWNWQVOVGTYBXLXTXBXLXHYAVHXNXTXSUO
      VIVJVKVKVPVLVMVPVN $.
  $}

  ${
    $d A q r t u v w x y z $.  $d B q r t u v w x y z $.
    $( Closure of multiplication on positive reals.  First statement of
       Proposition 9-3.7 of [Gleason] p. 124.  (Contributed by NM,
       13-Mar-1996.) $)
    mulclpr $p |- ( ( A e. P. /\ B e. P. ) -> ( A .P. B ) e. P. ) $=
      ( vq vr vx vy vz vw vv vu vt cnp wcel wa cmp cnq cv wrex wral cmq cpw cxp
      co c1st cfv c2nd cltq wbr wb wn w3a df-imp genpelxp mulclnq genpml genpmu
      wo wi jca32 ltmnqg mulcomnqg mulnqprl genprndl mulnqpru genprndu genpdisj
      jca mullocpr 3jca elnp1st2nd sylanbrc ) ALMBLMNZABOUCZPUAZVNUBMZCQZVMUDUE
      ZMZCPRZDQZVMUFUEZMZDPRZNNVRVPVTUGUHZVTVQMNDPRUICPSZWBWDVPWAMZNCPRUIDPSZNZ
      VRWFNUJCPSZWDVRWBUQURDPSCPSZUKVMLMVLVOVSWCEFGHIABOTHIGFEULZUMEFGHIABOTCWK
      FQZGQZUNZUOEFGHIABOTDWKWNUPUSVLWHWIWJVLWEWGEFGHIABJKOTDCWKWNEQZWLWMUTZWOW
      LVAZABJQZKQZWOVBVCEFGHIABJKOTDCWKWNWPWQABWRWSWOVDVEVGEFGHIABOTCWKWNWPWQVF
      ABDCVHVIVMDCVJVK $.
  $}

  ${
    $d A f g h l r s t u x y $.  $d B f g h l r s t u x y $.
    $( Lemma for ~ mulnqpr .  The reverse subset relationship for the lower
       cut.  (Contributed by Jim Kingdon, 18-Jul-2021.) $)
    mulnqprlemrl $p |- ( ( A e. Q. /\ B e. Q. ) ->
        ( 1st ` ( <. { l | l <Q A } , { u | A <Q u } >. .P.
        <. { l | l <Q B } , { u | B <Q u } >. ) ) C_
        ( 1st ` <. { l | l <Q ( A .Q B ) } , { u | ( A .Q B ) <Q u } >. )
        ) $=
      ( vr vs vt vg vh cnq wcel wa cv cltq wbr cab cop c1st cfv breq1 vf vx cmp
      vy co cmq wceq cnp wb nqprlu df-imp mulclnq genpelvl syl2an biimpa ltnqex
      wrex vex gtnqex op1st biimpi ad2antrl adantr ad2antll wi ltrelnq brel syl
      elab2 lt2mulnq syl2anc mp2and adantl mpbird sylibr rexlimdvva mpd ssrdv
      ex ) BJKZCJKZLZEDMZBNOZDPZBAMZNOAPZQZWCCNOZDPZCWFNOAPZQZUCUERSZWCBCUFUEZN
      OZDPZWNWFNOAPZQRSZWBEMZWMKZWSWRKZWBWTLZWSFMZGMZUFUEZUGZGWLRSZUQFWHRSZUQZX
      AWBWTXIVTWHUHKWLUHKWTXIUIWAABDUJACDUJUAHIUBUDWHWLWSFGUCUFUBUDIHUAUKHMIMUL
      UMUNUOXBXFXAFGXHXGXBXCXHKZXDXGKZLLZXFXAXLXFLZWSWNNOZXAXMXNXEWNNOZXMXCBNOZ
      XDCNOZXOXLXPXFXJXPXBXKXJXPWDXPDXCXHFURWCXCBNTWEWGDBUPABUSUTVIVAVBVCZXLXQX
      FXKXQXBXJXKXQWIXQDXDXGGURWCXDCNTWJWKDCUPACUSUTVIVAVDVCZXMXCJKVTLZXDJKWALZ
      XPXQLXOVEXMXPXTXRXCBJJNVFVGVHXMXQYAXSXDCJJNVFVGVHXCBXDCVJVKVLXFXNXOUIXLWS
      XEWNNTVMVNWOXNDWSWREURWCWSWNNTWPWQDWNUPAWNUSUTVIVOVSVPVQVSVR $.

    $( Lemma for ~ mulnqpr .  The reverse subset relationship for the upper
       cut.  (Contributed by Jim Kingdon, 18-Jul-2021.) $)
    mulnqprlemru $p |- ( ( A e. Q. /\ B e. Q. ) ->
        ( 2nd ` ( <. { l | l <Q A } , { u | A <Q u } >. .P.
        <. { l | l <Q B } , { u | B <Q u } >. ) ) C_
        ( 2nd ` <. { l | l <Q ( A .Q B ) } , { u | ( A .Q B ) <Q u } >. )
        ) $=
      ( vr vs vt vg vh cnq wcel wa cv cltq wbr cab cop c2nd cfv breq2 vf vx cmp
      vy co cmq wceq cnp wb nqprlu df-imp mulclnq genpelvu syl2an biimpa ltnqex
      wrex vex gtnqex op2nd biimpi ad2antrl adantr ad2antll wi ltrelnq brel syl
      elab2 lt2mulnq syl2anc mp2and adantl mpbird sylibr rexlimdvva mpd ssrdv
      ex ) BJKZCJKZLZEDMZBNODPZBAMZNOZAPZQZWCCNODPZCWENOZAPZQZUCUERSZWCBCUFUEZN
      ODPZWNWENOZAPZQRSZWBEMZWMKZWSWRKZWBWTLZWSFMZGMZUFUEZUGZGWLRSZUQFWHRSZUQZX
      AWBWTXIVTWHUHKWLUHKWTXIUIWAABDUJACDUJUAHIUBUDWHWLWSFGUCUFUBUDIHUAUKHMIMUL
      UMUNUOXBXFXAFGXHXGXBXCXHKZXDXGKZLLZXFXAXLXFLZWNWSNOZXAXMXNWNXENOZXMBXCNOZ
      CXDNOZXOXLXPXFXJXPXBXKXJXPWFXPAXCXHFURWEXCBNTWDWGDBUPABUSUTVIVAVBVCZXLXQX
      FXKXQXBXJXKXQWJXQAXDXGGURWEXDCNTWIWKDCUPACUSUTVIVAVDVCZXMVTXCJKLZWAXDJKLZ
      XPXQLXOVEXMXPXTXRBXCJJNVFVGVHXMXQYAXSCXDJJNVFVGVHBXCCXDVJVKVLXFXNXOUIXLWS
      XEWNNTVMVNWPXNAWSWREURWEWSWNNTWOWQDWNUPAWNUSUTVIVOVSVPVQVSVR $.

    $( Lemma for ~ mulnqpr .  The forward subset relationship for the lower
       cut.  (Contributed by Jim Kingdon, 18-Jul-2021.) $)
    mulnqprlemfl $p |- ( ( A e. Q. /\ B e. Q. ) ->
        ( 1st ` <. { l | l <Q ( A .Q B ) } , { u | ( A .Q B ) <Q u } >. )
        C_ ( 1st ` ( <. { l | l <Q A } , { u | A <Q u } >. .P.
        <. { l | l <Q B } , { u | B <Q u } >. ) ) ) $=
      ( vr cnq wcel wa cv co cltq wbr cab cop c1st cfv c2nd wn syl cnp cmq sonr
      cmp mulnqprlemru wor ltsonq mulclnq sylancr cvv ltrelnq brel simpld breq2
      elab3 sylnibr ltnqex gtnqex op2nd eleq2i ssneldd adantr wo nqprlu mulclpr
      elex syl2an prop vex breq1 op1st elab2 biimpi prloc ecased ex ssrdv ) BFG
      ZCFGZHZEDIZBCUAJZKLZDMZWAAIZKLZAMZNZOPZVTBKLDMBWDKLAMNZVTCKLDMCWDKLAMNZUC
      JZOPZVSEIZWHGZWMWLGZVSWNHWOWAWKQPZGZVSWQRWNVSWPWGQPZWAABCDUDVSWAWFGZWAWRG
      VSWAWAKLZWSVSFKUEWAFGZWTRUFBCUGFWAKUBUHWEWTAWAWTXAWAUIGWTXAXAWAWAFFKUJUKU
      LWAFVESWDWAWAKUMUNUOWRWFWAWCWFDWAUPZAWAUQZURUSUOUTVAVSWLWPNTGZWMWAKLZWOWQ
      VBWNVSWKTGZXDVQWITGWJTGXFVRABDVCACDVCWIWJVDVFWKVGSWNXEWBXEDWMWHEVHVTWMWAK
      VIWCWFXBXCVJVKVLWMWAWPWLVMVFVNVOVP $.

    $( Lemma for ~ mulnqpr .  The forward subset relationship for the upper
       cut.  (Contributed by Jim Kingdon, 18-Jul-2021.) $)
    mulnqprlemfu $p |- ( ( A e. Q. /\ B e. Q. ) ->
        ( 2nd ` <. { l | l <Q ( A .Q B ) } , { u | ( A .Q B ) <Q u } >. )
        C_ ( 2nd ` ( <. { l | l <Q A } , { u | A <Q u } >. .P.
        <. { l | l <Q B } , { u | B <Q u } >. ) ) ) $=
      ( vr cnq wcel wa cv co cltq wbr cab cop c2nd cfv c1st wn syl cnp cmq sonr
      cmp mulnqprlemrl wor ltsonq mulclnq sylancr cvv ltrelnq brel simpld breq1
      elab3 sylnibr ltnqex gtnqex op1st eleq2i ssneldd adantr wo nqprlu mulclpr
      elex syl2an prop vex breq2 op2nd elab2 biimpi prloc orcomd ecased ssrdv
      ex ) BFGZCFGZHZEDIZBCUAJZKLZDMZWBAIZKLZAMZNZOPZWABKLDMBWEKLAMNZWACKLDMCWE
      KLAMNZUCJZOPZVTEIZWIGZWNWMGZVTWOHZWPWBWLQPZGZVTWSRWOVTWRWHQPZWBABCDUDVTWB
      WDGZWBWTGVTWBWBKLZXAVTFKUEWBFGZXBRUFBCUGFWBKUBUHWCXBDWBXBXCWBUIGXBXCXCWBW
      BFFKUJUKULWBFVESWAWBWBKUMUNUOWTWDWBWDWGDWBUPZAWBUQZURUSUOUTVAWQWSWPVTWRWM
      NTGZWBWNKLZWSWPVBWOVTWLTGZXFVRWJTGWKTGXHVSABDVCACDVCWJWKVDVFWLVGSWOXGWFXG
      AWNWIEVHWEWNWBKVIWDWGXDXEVJVKVLWBWNWMWRVMVFVNVOVQVP $.

    $( Multiplication of fractions embedded into positive reals.  One can
       either multiply the fractions as fractions, or embed them into positive
       reals and multiply them as positive reals, and get the same result.
       (Contributed by Jim Kingdon, 18-Jul-2021.) $)
    mulnqpr $p |- ( ( A e. Q. /\ B e. Q. ) ->
        <. { l | l <Q ( A .Q B ) } , { u | ( A .Q B ) <Q u } >. =
        ( <. { l | l <Q A } , { u | A <Q u } >. .P.
          <. { l | l <Q B } , { u | B <Q u } >. ) ) $=
      ( cnq wcel wa cv co cltq wbr cab cop wceq c1st cfv c2nd eqssd cnp nqprlu
      cmq mulnqprlemfl mulnqprlemrl mulnqprlemfu mulnqprlemru wb mulclnq syl2an
      cmp syl mulclpr preqlu syl2anc mpbir2and ) BEFZCEFZGZDHZBCUAIZJKDLUSAHZJK
      ALMZURBJKDLBUTJKALMZURCJKDLCUTJKALMZUIIZNZVAOPZVDOPZNZVAQPZVDQPZNZUQVFVGA
      BCDUBABCDUCRUQVIVJABCDUDABCDUERUQVASFZVDSFZVEVHVKGUFUQUSEFVLBCUGAUSDTUJUO
      VBSFVCSFVMUPABDTACDTVBVCUKUHVAVDULUMUN $.
  $}

  ${
    $d f g h v w x y z A $.  $d f g h v w x y z B $.  $d f g h v w x y z C $.
    $( Addition of positive reals is commutative.  Proposition 9-3.5(ii) of
       [Gleason] p. 123.  (Contributed by Jim Kingdon, 11-Dec-2019.) $)
    addcomprg $p |- ( ( A e. P. /\ B e. P. ) -> ( A +P. B ) = ( B +P. A ) ) $=
      ( vx vy vz cnp wcel wa cv wceq cfv wrex cnq crab cop sylan sylan2 anassrs
      co rexbidva cplq c1st c2nd wb prop elprnql addcomnqg eqeq2d ancoms rexcom
      cpp syl6bb rabbidv elprnqu opeq12d plpvlu 3eqtr4rd ) AFGZBFGZHZCIZDIZEIZU
      ASZJZEAUBKZLZDBUBKZLZCMNZVEEAUCKZLZDBUCKZLZCMNZOZVAVCVBUASZJZDVHLEVFLZCMN
      ZVRDVMLEVKLZCMNZOBAUKSZABUKSUTVJVTVOWBUTVIVSCMUTVIVREVFLZDVHLVSUTVGWDDVHU
      RUSVBVHGZVGWDUDZUSWEHURVBMGZWFUSVHVMOFGZWEWGBUEZVBVMVHUFPWGURWFWGURHZVEVR
      EVFWGURVCVFGZVEVRUDZURWKHWGVCMGZWLURVFVKOFGZWKWMAUEZVCVKVFUFPWGWMHVDVQVAV
      BVCUGUHZQRTUIQRTVRDEVHVFUJULUMUTVNWACMUTVNVREVKLZDVMLWAUTVLWQDVMURUSVBVMG
      ZVLWQUDZUSWRHURWGWSUSWHWRWGWIVBVMVHUNPWGURWSWJVEVREVKWGURVCVKGZWLURWTHWGW
      MWLURWNWTWMWOVCVKVFUNPWPQRTUIQRTVRDEVMVKUJULUMUOUSURWCVPJCDEBAUPUICEDABUP
      UQ $.

    $( Addition of positive reals is associative.  Proposition 9-3.5(i) of
       [Gleason] p. 123.  (Contributed by Jim Kingdon, 11-Dec-2019.) $)
    addassprg $p |- ( ( A e. P. /\ B e. P. /\ C e. P. ) ->
        ( ( A +P. B ) +P. C ) = ( A +P. ( B +P. C ) ) ) $=
      ( vx vy vz vw vv vf vg vh cplq df-iplp cv addclnq dmplp addclpr addassnqg
      cpp genpassg ) DEFGHABCIJKSLGHFEDMENFNOPINZJNZQUAUBKNRT $.

    $( Multiplication of positive reals is commutative.  Proposition 9-3.7(ii)
       of [Gleason] p. 124.  (Contributed by Jim Kingdon, 11-Dec-2019.) $)
    mulcomprg $p |- ( ( A e. P. /\ B e. P. ) -> ( A .P. B ) = ( B .P. A ) ) $=
      ( vx vz vy cnp wcel wa cv wceq cfv wrex cnq crab cop sylan sylan2 anassrs
      co rexbidva cmq c1st c2nd cmp prop elprnql mulcomnqg eqeq2d ancoms rexcom
      wb syl6bb rabbidv elprnqu opeq12d mpvlu 3eqtr4rd ) AFGZBFGZHZCIZDIZEIZUAS
      ZJZEAUBKZLZDBUBKZLZCMNZVEEAUCKZLZDBUCKZLZCMNZOZVAVCVBUASZJZDVHLEVFLZCMNZV
      RDVMLEVKLZCMNZOBAUDSZABUDSUTVJVTVOWBUTVIVSCMUTVIVREVFLZDVHLVSUTVGWDDVHURU
      SVBVHGZVGWDUKZUSWEHURVBMGZWFUSVHVMOFGZWEWGBUEZVBVMVHUFPWGURWFWGURHZVEVREV
      FWGURVCVFGZVEVRUKZURWKHWGVCMGZWLURVFVKOFGZWKWMAUEZVCVKVFUFPWGWMHVDVQVAVBV
      CUGUHZQRTUIQRTVRDEVHVFUJULUMUTVNWACMUTVNVREVKLZDVMLWAUTVLWQDVMURUSVBVMGZV
      LWQUKZUSWRHURWGWSUSWHWRWGWIVBVMVHUNPWGURWSWJVEVREVKWGURVCVKGZWLURWTHWGWMW
      LURWNWTWMWOVCVKVFUNPWPQRTUIQRTVRDEVMVKUJULUMUOUSURWCVPJCDEBAUPUICEDABUPUQ
      $.

    $( Multiplication of positive reals is associative.  Proposition 9-3.7(i)
       of [Gleason] p. 124.  (Contributed by Jim Kingdon, 11-Dec-2019.) $)
    mulassprg $p |- ( ( A e. P. /\ B e. P. /\ C e. P. ) ->
        ( ( A .P. B ) .P. C ) = ( A .P. ( B .P. C ) ) ) $=
      ( vx vy vz vw vv vf vg vh cmp cmq df-imp cv mulclnq dmmp mulclpr genpassg
      mulassnqg ) DEFGHABCIJKLMGHFEDNEOFOPQIOZJOZRUAUBKOTS $.
  $}

  ${
    $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 Jim
       Kingdon, 12-Dec-2019.) $)
    distrlem1prl $p |- ( ( A e. P. /\ B e. P. /\ C e. P. ) ->
        ( 1st ` ( A .P. ( B +P. C ) ) ) C_
          ( 1st ` ( ( A .P. B ) +P. ( A .P. C ) ) ) ) $=
      ( vw vx vv vf vg vh vy vz cnp wcel co cmp c1st cfv cv cmq wa w3a cpp wceq
      wrex wb addclpr df-imp mulclnq genpelvl sylan2 3impb cplq df-iplp addclnq
      3adant1 adantr cnq c2nd prop elprnql sylan 3ad2antl1 adantrr anim12i an4s
      cop 3adantl1 ad2ant2r 3anass sylanbrc simprr simpr oveq2 biimpac distrnqg
      wi eqeq2d syl5ib sylc mulclpr 3adant3 ad2antrr simpll genpprecll adantlrr
      3adant2 impl simplr imp syl22anc eqeltrd exp32 rexlimdvv com34 impd ssrdv
      sylbid ) ALMZBLMZCLMZUAZDABCUBNZONPQZABONZACONZUBNPQZXADRZXCMZXGERZFRZSNZ
      UCZFXBPQZUDEAPQZUDZXGXFMZWRWSWTXHXOUEZWSWTTWRXBLMXQBCUFGHIJKAXBXGEFOSJKIH
      GUGZHRZIRZUHZUIUJUKXAXLXPEFXNXMXAXIXNMZXJXMMZXLXPVPXAYBXLYCXPXAYBXLYCXPVP
      XAYBXLTZTZYCXJJRZKRZULNZUCZKCPQZUDJBPQZUDZXPXAYCYLUEZYDWSWTYMWRGHIDEBCXJJ
      KUBULDEIHGUMZXSXTUNZUIUOUPYEYIXPJKYKYJYEYFYKMZYGYJMZTZYIXPYEYRYITZTZXGXIY
      FSNZXIYGSNZULNZXFYTXIUQMZYFUQMZYGUQMZUAZXLYITZXGUUCUCZYTUUDUUEUUFTZUUGYEU
      UDYSXAYBUUDXLWRWSYBUUDWTWRXNAURQZVFLMYBUUDAUSXIUUKXNUTVAVBVCUPXAYRUUJYDYI
      WSWTYRUUJWRWSYPWTYQUUJWSYPTUUEWTYQTUUFWSYKBURQZVFLMYPUUEBUSYFUULYKUTVAWTY
      JCURQZVFLMYQUUFCUSYGUUMYJUTVAVDVEVGVHUUDUUEUUFVIVJYEXLYSYIXAYBXLVKYRYIVLV
      DUUHXGXIYHSNZUCZUUGUUIYIXLUUOYIXKUUNXGXJYHXISVMVQVNUUGUUNUUCXGXIYFYGVOVQV
      RVSYTXDLMZXELMZUUAXDPQMZUUBXEPQMZUUCXFMZXAUUPYDYSWRWSUUPWTABVTWAWBXAUUQYD
      YSWRWTUUQWSACVTWFWBYSYEYPUURYPYQYIWCXAYBYPUURXLXAYBYPUURWRWSYBYPTUURVPWTG
      HIJKABXIYFOSXRYAWDWAWGWEUJYSYEYQUUSYPYQYIWHXAYBYQUUSXLXAYBYQUUSWRWTYBYQTU
      USVPWSGHIJKACXIYGOSXRYAWDWFWGWEUJUUPUUQTUURUUSTUUTGHIDEXDXEUUAUUBUBULYNYO
      WDWIWJWKWLWMWQWLWNWOWMWQWP $.

    $( Lemma for distributive law for positive reals.  (Contributed by Jim
       Kingdon, 12-Dec-2019.) $)
    distrlem1pru $p |- ( ( A e. P. /\ B e. P. /\ C e. P. ) ->
        ( 2nd ` ( A .P. ( B +P. C ) ) ) C_
          ( 2nd ` ( ( A .P. B ) +P. ( A .P. C ) ) ) ) $=
      ( vw vx vv vf vg vh vy vz cnp wcel co cmp c2nd cfv cv cmq wa w3a cpp wceq
      wrex wb addclpr df-imp mulclnq genpelvu sylan2 3impb cplq df-iplp addclnq
      3adant1 adantr cnq c1st prop elprnqu sylan 3ad2antl1 adantrr anim12i an4s
      cop 3adantl1 ad2ant2r 3anass sylanbrc simprr simpr oveq2 biimpac distrnqg
      wi eqeq2d syl5ib sylc mulclpr 3adant3 ad2antrr simpll genppreclu adantlrr
      3adant2 impl simplr imp syl22anc eqeltrd exp32 rexlimdvv com34 impd ssrdv
      sylbid ) ALMZBLMZCLMZUAZDABCUBNZONPQZABONZACONZUBNPQZXADRZXCMZXGERZFRZSNZ
      UCZFXBPQZUDEAPQZUDZXGXFMZWRWSWTXHXOUEZWSWTTWRXBLMXQBCUFGHIJKAXBXGEFOSJKIH
      GUGZHRZIRZUHZUIUJUKXAXLXPEFXNXMXAXIXNMZXJXMMZXLXPVPXAYBXLYCXPXAYBXLYCXPVP
      XAYBXLTZTZYCXJJRZKRZULNZUCZKCPQZUDJBPQZUDZXPXAYCYLUEZYDWSWTYMWRGHIDEBCXJJ
      KUBULDEIHGUMZXSXTUNZUIUOUPYEYIXPJKYKYJYEYFYKMZYGYJMZTZYIXPYEYRYITZTZXGXIY
      FSNZXIYGSNZULNZXFYTXIUQMZYFUQMZYGUQMZUAZXLYITZXGUUCUCZYTUUDUUEUUFTZUUGYEU
      UDYSXAYBUUDXLWRWSYBUUDWTWRAURQZXNVFLMYBUUDAUSXIXNUUKUTVAVBVCUPXAYRUUJYDYI
      WSWTYRUUJWRWSYPWTYQUUJWSYPTUUEWTYQTUUFWSBURQZYKVFLMYPUUEBUSYFYKUULUTVAWTC
      URQZYJVFLMYQUUFCUSYGYJUUMUTVAVDVEVGVHUUDUUEUUFVIVJYEXLYSYIXAYBXLVKYRYIVLV
      DUUHXGXIYHSNZUCZUUGUUIYIXLUUOYIXKUUNXGXJYHXISVMVQVNUUGUUNUUCXGXIYFYGVOVQV
      RVSYTXDLMZXELMZUUAXDPQMZUUBXEPQMZUUCXFMZXAUUPYDYSWRWSUUPWTABVTWAWBXAUUQYD
      YSWRWTUUQWSACVTWFWBYSYEYPUURYPYQYIWCXAYBYPUURXLXAYBYPUURWRWSYBYPTUURVPWTG
      HIJKABXIYFOSXRYAWDWAWGWEUJYSYEYQUUSYPYQYIWHXAYBYQUUSXLXAYBYQUUSWRWTYBYQTU
      USVPWSGHIJKACXIYGOSXRYAWDWFWGWEUJUUPUUQTUURUUSTUUTGHIDEXDXEUUAUUBUBULYNYO
      WDWIWJWKWLWMWQWLWNWOWMWQWP $.

    $( Lemma for distributive law for positive reals.  (Contributed by Jim
       Kingdon, 12-Dec-2019.) $)
    distrlem4prl $p |- ( ( ( A e. P. /\ B e. P. /\ C e. P. ) /\
         ( ( x e. ( 1st ` A ) /\ y e. ( 1st ` B ) ) /\
           ( f e. ( 1st ` A ) /\ z e. ( 1st ` C ) ) ) ) ->
         ( ( x .Q y ) +Q ( f .Q z ) ) e. ( 1st ` ( A .P. ( B +P. C ) ) ) ) $=
      ( vw vv vu cnp wcel cv wa cltq cmq co cplq cnq syl2anc vg vh w3a c1st cfv
      wbr wo cpp cmp wn ltmnqg adantl simp1 simpll c2nd cop prop elprnql syl2an
      wb sylan simprl simpl2 simprlr mulcomnqg caovord2d ltanqg mulclnq simprrr
      wceq simpl3 addcomnqg bitrd simpl1 addclpr 3adant1 adantr mulclpr syl3anc
      distrnqg simprrl df-iplp addclnq genpprecll imp syl22anc eqeltrrd prcdnql
      wi df-imp sylbid simprll ltsonq nqtri3or sotritrieq oveq1 oveq2d sylan9eq
      jaod ex sylbird wdc ltdcnq ancoms dcor sylc df-dc sylib mpjaod ) DKLZEKLZ
      FKLZUCZAMZDUDUEZLZBMZEUDUEZLZNZGMZXOLZCMZFUDUEZLZNZNZNZXNYAOUFZYAXNOUFZUG
      ZXNXQPQZYAYCPQZRQZDEFUHQZUIQZUDUEZLZYKUJZYHYIYRYJYHYIYNYAXQPQZYMRQZOUFZYR
      YHYIYLYTOUFUUBYHHIJXNYAXQOSPHMZSLZIMZSLZJMZSLUCZUUCUUEOUFZUUGUUCPQUUGUUEP
      QOUFUTYHUUCUUEUUGUKULZXMXJXPXNSLZYGXJXKXLUMZXPXSYFUNXJXODUOUEZUPKLZXPUUKD
      UQZXNUUMXOURVAUSZXMXJYBYASLZYGUULXTYBYEVBXJUUNYBUUQUUOYAUUMXOURVAUSZYHXKX
      SXQSLZXJXKXLYGVCZXMXPXSYFVDZXKXREUOUEZUPKLXSUUSEUQXQUVBXRURVATZUUDUUFNZUU
      CUUEPQUUEUUCPQVJYHUUCUUEVEULZVFYHHIJYLYTYMOSRUUHUUIUUGUUCRQUUGUUERQOUFUTY
      HUUCUUEUUGVGULYHUUKUUSYLSLZUUPUVCXNXQVHTZYHUUQUUSYTSLUURUVCYAXQVHTYHUUQYC
      SLZYMSLZUURYHXLYEUVHXJXKXLYGVKZXMXTYBYEVIZXLYDFUOUEZUPKLYEUVHFUQYCUVLYDUR
      VATZYAYCVHTZUVDUUCUUERQUUEUUCRQVJYHUUCUUEVLULVFVMYHYPKLZUUAYQLZUUBYRWIZYH
      XJYOKLZUVOXJXKXLYGVNZXMUVRYGXKXLUVRXJEFVOVPVQZDYOVRTZYHYAXQYCRQZPQZUUAYQY
      HUUQUUSUVHUWCUUAVJUURUVCUVMYAXQYCVTVSYHXJUVRYBUWBYOUDUELZUWCYQLZUVSUVTXMX
      TYBYEWAYHXKXLXSYEUWDUUTUVJUVAUVKXKXLNXSYENUWDHUAUBJIEFXQYCUHRJIUBUAHWBUAM
      ZUBMZWCWDWEWFZXJUVRNZYBUWDNUWEHUAUBJIDYOYAUWBUIPJIUBUAHWJZUWFUWGVHZWDWEWF
      WGUVOYQYPUOUEZUPKLZUVPUVQYPUQZUUAYNUWLYQWHVATWKYHYJYNYLXNYCPQZRQZOUFZYRYH
      YJYMUWOOUFZUWQYHHIJYAXNYCOSPUUJUURUUPUVMUVEVFYHUVIUWOSLZUVFUWRUWQUTUVNYHU
      UKUVHUWSUUPUVMXNYCVHTUVGYMUWOYLVGVSVMYHUVOUWPYQLZUWQYRWIZUWAYHXNUWBPQZUWP
      YQYHUUKUUSUVHUXBUWPVJUUPUVCUVMXNXQYCVTVSZYHXJUVRXPUWDUXBYQLZUVSUVTXMXPXSY
      FWLUWHUWIXPUWDNUXDHUAUBJIDYOXNUWBUIPUWJUWKWDWEWFZWGUVOUWMUWTUXAUWNUWPYNUW
      LYQWHVATWKWSYHYSXNYAVJZYRYHUUKUUQUXFYSUTUUPUURSXNYAOWMXNYAWNWOTYHUXFYRYHU
      XFNUXBYNYQYHUXFUXBUWPYNUXCUXFUWOYMYLRXNYAYCPWPWQWRYHUXDUXFUXEVQWGWTXAYHYK
      XBZYKYSUGYHUUKUUQUXGUUPUURUUKUUQNYIXBYJXBZUXGXNYAXCUUQUUKUXHYAXNXCXDYIYJX
      EXFTYKXGXHXI $.

    $( Lemma for distributive law for positive reals.  (Contributed by Jim
       Kingdon, 12-Dec-2019.) $)
    distrlem4pru $p |- ( ( ( A e. P. /\ B e. P. /\ C e. P. ) /\
         ( ( x e. ( 2nd ` A ) /\ y e. ( 2nd ` B ) ) /\
           ( f e. ( 2nd ` A ) /\ z e. ( 2nd ` C ) ) ) ) ->
         ( ( x .Q y ) +Q ( f .Q z ) ) e. ( 2nd ` ( A .P. ( B +P. C ) ) ) ) $=
      ( vw vv vu cnp wcel cv wa cltq cmq co cplq cnq syl2anc vg vh w3a c2nd cfv
      wbr wo cpp cmp wn ltmnqg adantl simp1 simpll c1st cop prop elprnqu syl2an
      wb sylan simprl simpl3 simprrr mulcomnqg caovord2d mulclnq simpl2 simprlr
      wceq ltanqg syl3anc bitrd simpl1 addclpr 3adant1 mulclpr distrnqg simprll
      wi adantr df-iplp addclnq genppreclu imp syl22anc df-imp eqeltrrd prcunqu
      sylbid addcomnqg simprrl ltsonq nqtri3or sotritrieq oveq1 oveq2d sylan9eq
      jaod ex sylbird wdc ltdcnq ancoms dcor sylc df-dc sylib mpjaod ) DKLZEKLZ
      FKLZUCZAMZDUDUEZLZBMZEUDUEZLZNZGMZXOLZCMZFUDUEZLZNZNZNZXNYAOUFZYAXNOUFZUG
      ZXNXQPQZYAYCPQZRQZDEFUHQZUIQZUDUEZLZYKUJZYHYIYRYJYHYIYLXNYCPQZRQZYNOUFZYR
      YHYIYTYMOUFZUUBYHHIJXNYAYCOSPHMZSLZIMZSLZJMZSLUCZUUDUUFOUFZUUHUUDPQUUHUUF
      PQOUFUTYHUUDUUFUUHUKULZXMXJXPXNSLZYGXJXKXLUMZXPXSYFUNXJDUOUEZXOUPKLZXPUUL
      DUQZXNXOUUNURVAUSZXMXJYBYASLZYGUUMXTYBYEVBXJUUOYBUURUUPYAXOUUNURVAUSZYHXL
      YEYCSLZXJXKXLYGVCZXMXTYBYEVDZXLFUOUEZYDUPKLYEUUTFUQYCYDUVCURVATZUUEUUGNZU
      UDUUFPQUUFUUDPQVJYHUUDUUFVEULZVFYHYTSLZYMSLZYLSLZUUCUUBUTYHUULUUTUVGUUQUV
      DXNYCVGTYHUURUUTUVHUUSUVDYAYCVGTZYHUULXQSLZUVIUUQYHXKXSUVKXJXKXLYGVHZXMXP
      XSYFVIZXKEUOUEZXRUPKLXSUVKEUQXQXRUVNURVATZXNXQVGTZYTYMYLVKVLVMYHYPKLZUUAY
      QLZUUBYRVTZYHXJYOKLZUVQXJXKXLYGVNZXMUVTYGXKXLUVTXJEFVOVPWAZDYOVQTZYHXNXQY
      CRQZPQZUUAYQYHUULUVKUUTUWEUUAVJUUQUVOUVDXNXQYCVRVLZYHXJUVTXPUWDYOUDUELZUW
      EYQLZUWAUWBXMXPXSYFVSYHXKXLXSYEUWGUVLUVAUVMUVBXKXLNXSYENUWGHUAUBJIEFXQYCU
      HRJIUBUAHWBUAMZUBMZWCWDWEWFZXJUVTNZXPUWGNUWHHUAUBJIDYOXNUWDUIPJIUBUAHWGZU
      WIUWJVGZWDWEWFZWHUVQYPUOUEZYQUPKLZUVRUVSYPUQZYNUUAYQUWPWIVATWJYHYJYAXQPQZ
      YMRQZYNOUFZYRYHYJUWSYLOUFUXAYHHIJYAXNXQOSPUUKUUSUUQUVOUVFVFYHHIJUWSYLYMOS
      RUUIUUJUUHUUDRQUUHUUFRQOUFUTYHUUDUUFUUHVKULYHUURUVKUWSSLUUSUVOYAXQVGTUVPU
      VJUVEUUDUUFRQUUFUUDRQVJYHUUDUUFWKULVFVMYHUVQUWTYQLZUXAYRVTZUWCYHYAUWDPQZU
      WTYQYHUURUVKUUTUXDUWTVJUUSUVOUVDYAXQYCVRVLYHXJUVTYBUWGUXDYQLZUWAUWBXMXTYB
      YEWLUWKUWLYBUWGNUXEHUAUBJIDYOYAUWDUIPUWMUWNWDWEWFWHUVQUWQUXBUXCUWRYNUWTYQ
      UWPWIVATWJWSYHYSXNYAVJZYRYHUULUURUXFYSUTUUQUUSSXNYAOWMXNYAWNWOTYHUXFYRYHU
      XFNUWEYNYQYHUXFUWEUUAYNUWFUXFYTYMYLRXNYAYCPWPWQWRYHUWHUXFUWOWAWHWTXAYHYKX
      BZYKYSUGYHUULUURUXGUUQUUSUULUURNYIXBYJXBZUXGXNYAXCUURUULUXHYAXNXCXDYIYJXE
      XFTYKXGXHXI $.

    $( Lemma for distributive law for positive reals.  (Contributed by Jim
       Kingdon, 12-Dec-2019.) $)
    distrlem5prl $p |- ( ( A e. P. /\ B e. P. /\ C e. P. ) ->
        ( 1st ` ( ( A .P. B ) +P. ( A .P. C ) ) ) C_
        ( 1st ` ( A .P. ( B +P. C ) ) ) ) $=
      ( vw vv vf vg vh vx vy vz cnp wcel cmp co c1st cfv cv wrex wa vu w3a cplq
      cpp wb mulclpr 3adant3 3adant2 df-iplp addclnq genpelvl syl2anc wi df-imp
      cmq mulclnq anbi2d distrlem4prl oveq12 eqeq2d eleq1 syl6bi imp syl5ibrcom
      wceq exp4b com3l com23 rexlimivv rexlimdvv com3r sylbid impd ssrdv ) ALMZ
      BLMZCLMZUBZDABNOZACNOZUDOPQZABCUDONOPQZVRDRZWAMZWCERZUARZUCOZVEZUAVTPQZSE
      VSPQZSZWCWBMZVRVSLMZVTLMZWDWKUEVOVPWMVQABUFUGVOVQWNVPACUFUHFGHIJVSVTWCEUA
      UDUCIJHGFUIGRZHRZUJUKULVRWHWLEUAWJWIVRWEWJMZWFWIMZTWQWFFRZKRZUOOZVEZKCPQZ
      SFAPQZSZTWHWLUMZVRWRXEWQVOVQWRXEUEVPIGHDEACWFFKNUODEHGIUNWOWPUPZUKUHUQVRW
      QXEXFVRWQWEIRZJRZUOOZVEZJBPQZSIXDSZXEXFUMVOVPWQXMUEVQFGHDEABWEIJNUODEHGFU
      NXGUKUGXMXEVRXFXMXBVRXFUMZFKXDXCXKWSXDMWTXCMTZXBXNUMZUMIJXDXLXHXDMXIXLMTZ
      XOXKXPXQXOXKXBXNVRXQXOTZXKXBTZXFVRXRXSWHWLVRXRTWLXSWHTXJXAUCOZWBMZIJKABCF
      URXSWHWLYAUEZXSWHWCXTVEYBXSWGXTWCWEXJWFXAUCUSUTWCXTWBVAVBVCVDVFVGVFVHVIVJ
      VKVLVMVLVJVLVN $.

    $( Lemma for distributive law for positive reals.  (Contributed by Jim
       Kingdon, 12-Dec-2019.) $)
    distrlem5pru $p |- ( ( A e. P. /\ B e. P. /\ C e. P. ) ->
        ( 2nd ` ( ( A .P. B ) +P. ( A .P. C ) ) ) C_
        ( 2nd ` ( A .P. ( B +P. C ) ) ) ) $=
      ( vw vv vf vg vh vx vy vz cnp wcel cmp co c2nd cfv cv wrex wa vu w3a cplq
      cpp wb mulclpr 3adant3 3adant2 df-iplp addclnq genpelvu syl2anc wi df-imp
      cmq mulclnq anbi2d distrlem4pru oveq12 eqeq2d eleq1 syl6bi imp syl5ibrcom
      wceq exp4b com3l com23 rexlimivv rexlimdvv com3r sylbid impd ssrdv ) ALMZ
      BLMZCLMZUBZDABNOZACNOZUDOPQZABCUDONOPQZVRDRZWAMZWCERZUARZUCOZVEZUAVTPQZSE
      VSPQZSZWCWBMZVRVSLMZVTLMZWDWKUEVOVPWMVQABUFUGVOVQWNVPACUFUHFGHIJVSVTWCEUA
      UDUCIJHGFUIGRZHRZUJUKULVRWHWLEUAWJWIVRWEWJMZWFWIMZTWQWFFRZKRZUOOZVEZKCPQZ
      SFAPQZSZTWHWLUMZVRWRXEWQVOVQWRXEUEVPIGHDEACWFFKNUODEHGIUNWOWPUPZUKUHUQVRW
      QXEXFVRWQWEIRZJRZUOOZVEZJBPQZSIXDSZXEXFUMVOVPWQXMUEVQFGHDEABWEIJNUODEHGFU
      NXGUKUGXMXEVRXFXMXBVRXFUMZFKXDXCXKWSXDMWTXCMTZXBXNUMZUMIJXDXLXHXDMXIXLMTZ
      XOXKXPXQXOXKXBXNVRXQXOTZXKXBTZXFVRXRXSWHWLVRXRTWLXSWHTXJXAUCOZWBMZIJKABCF
      URXSWHWLYAUEZXSWHWCXTVEYBXSWGXTWCWEXJWFXAUCUSUTWCXTWBVAVBVCVDVFVGVFVHVIVJ
      VKVLVMVLVJVLVN $.
  $}

  $( Multiplication of positive reals is distributive.  Proposition 9-3.7(iii)
     of [Gleason] p. 124.  (Contributed by Jim Kingdon, 12-Dec-2019.) $)
  distrprg $p |- ( ( A e. P. /\ B e. P. /\ C e. P. ) ->
      ( A .P. ( B +P. C ) ) = ( ( A .P. B ) +P. ( A .P. C ) ) ) $=
    ( cnp wcel w3a cpp cmp wceq c1st cfv distrlem1prl distrlem5prl distrlem1pru
    co c2nd eqssd addclpr syl2anc mulclpr distrlem5pru wa wb simp1 simp2 preqlu
    simp3 mpbir2and ) ADEZBDEZCDEZFZABCGOZHOZABHOZACHOZGOZIZUNJKZUQJKZIZUNPKZUQ
    PKZIZULUSUTABCLABCMQULVBVCABCNABCUAQULUNDEZUQDEZURVAVDUBUCULUIUMDEZVEUIUJUK
    UDZULUJUKVGUIUJUKUEZUIUJUKUGZBCRSAUMTSULUODEZUPDEZVFULUIUJVKVHVIABTSULUIUKV
    LVHVJACTSUOUPRSUNUQUFSUH $.

  ${
    $d A x y $.  $d B x y $.
    $( If a positive real is less than a second positive real, its lower cut is
       a subset of the second's lower cut.  (Contributed by Jim Kingdon,
       23-Dec-2019.) $)
    ltprordil $p |- ( A <P B -> ( 1st ` A ) C_ ( 1st ` B ) ) $=
      ( vx vy cltp wbr cv c2nd cfv wcel c1st wa wss cnq cnp wrex adantr cop syl
      prop ltrelpr brel ltdfpr biimpd mpcom simpll simpr simprrl simpld syl3an1
      cltq prltlu syl3anc wi simprrr simprd prcdnql sylan syl2anc mpd rexlimddv
      ex ssrdv ) ABEFZCGZAHIZJZVEBKIZJZLZAKIZVHMCNAOJZBOJZLZVDVJCNPZABOOEUAUBZV
      NVDVOABCUCUDUEVDVENJZVJLZLZDVKVHVSDGZVKJZVTVHJZVSWALZVTVEUKFZWBWCVDWAVGWD
      VDVRWAUFZVSWAUGVSVGWAVDVQVGVIUHQVDVKVFROJZWAVGWDVDVLWFVDVLVMVPUIATSVTVEVF
      VKULUJUMWCVDVIWDWBUNZWEVSVIWAVDVQVGVIUOQVDVHBHIZROJZVIWGVDVMWIVDVLVMVPUPB
      TSVEVTWHVHUQURUSUTVBVCVA $.
  $}

  ${
    $d x y z w v u f g h A $.
    $( Lemma for ~ 1idpr .  (Contributed by Jim Kingdon, 13-Dec-2019.) $)
    1idprl $p |- ( A e. P. -> ( 1st ` ( A .P. 1P ) ) = ( 1st ` A ) ) $=
      ( vf vg vw vy wcel c1p co cfv cv cmq wceq wrex cltq wbr wa cnq c1q adantl
      wb vx vu vv vz cnp cmp c1st wss ssid rexss ax-mp r19.42v 1pr c2nd elprnql
      cop prop sylan mpan w3a 3ad2ant3 1prl abeq2i ltmnqg mp3an2 ancoms mulidnq
      breq1 breq2d adantr bitrd syl5rbb 3adant3 syl3an1 syl3an2 3expia pm5.32rd
      1nq rexbidva syl5rbbr syl5bb df-imp mulclnq genpelvl mpan2 prnmaxl wi crq
      ltrelnq brel simpl simpr recclnq mulcomnqg caovord2d recidnq biimpd mpcom
      sylan2 elab2g mpbird mulassnqg caov12d oveq2d 3eqtrrd oveq2 eqeq2d rspcev
      syl syl2anc a1i ancld reximia ex prcdnql adantrd rexlimdva impbid 3bitr4d
      eqrdv ) AUEFZUAAGUFHUGIZAUGIZYAUAJZBJZCJZKHZLZCGUGIZMZBYCMZYDYENOZYJPZBYC
      MZYDYBFZYDYCFZYAYJYMBYCYJYFYIFZYHPZCYIMZYAYEYCFZPZYMYIYIUHYJYSTYIUIYHCYIY
      IUJUKYMYLYHPZCYIMUUAYSYLYHCYIULUUAUUBYRCYIUUAYQPYHYLYQUUAYQYHYLYQTZYQUUAY
      FQFZYHUUCGUEFZYQUUDUMUUEYIGUNIZUPUEFYQUUDGUQYFUUFYIUOURUSUUAYEQFZUUDYHUUC
      YAYCAUNIZUPUEFZYTUUGAUQZYEUUHYCUOURUUGUUDYHUTYLYGYENOZYQYHUUGYLUUKTUUDYDY
      GYENVHVAUUGUUDUUKYQTYHYQYFRNOZUUGUUDPZUUKUULCYICVBZVCUUMUULYGYERKHZNOZUUK
      UUDUUGUULUUPTZUUDRQFUUGUUQVRYFRYEVDVEVFUUGUUPUUKTUUDUUGUUOYEYGNYEVGVIVJVK
      VLVMVKVNVOVPVQVSVTWAVSYAUUEYOYKTUMDUBUCEUDAGYDBCUFKEUDUCUBDWBUBJUCJWCWDWE
      YAYPYNYAYPYNYAYPPYLBYCMZYNYAUUIYPUURUUJBYDUUHYCWFURYLYMBYCYTYLYJYLYJWGYTY
      LYDYEWHIZKHZYIFZYDYEUUTKHZLZYJYLUVAUUTRNOZYDQFZUUGPZYLUVDYDYEQQNWIWJZUVFY
      LUVDUVFYLUUTYEUUSKHZNOZUVDUVFEUDDYDYEUUSNQKEJZQFZUDJZQFZDJZQFUTZUVJUVLNOU
      VNUVJKHUVNUVLKHNOTUVFUVJUVLUVNVDSUVEUUGWKZUVEUUGWLZUUGUUSQFZUVEYEWMZSZUVK
      UVMPUVJUVLKHZUVLUVJKHLUVFUVJUVLWNSZWOUUGUVIUVDTUVEUUGUVHRUUTNYEWPZVISVKWQ
      WRYLUUTQFZUVAUVDTYLUVFUWDUVGUUGUVEUVRUWDUVSYDUUSWCWSXIUULUVDCUUTYIQYFUUTR
      NVHUUNWTXIXAYLUVFUVCUVGUVFUVBYDUVHKHZYDRKHZYDUVFEUDDYEYDUUSQKUVQUVPUVTUWB
      UVOUWAUVNKHUVJUVLUVNKHKHLUVFUVJUVLUVNXBSXCUUGUWEUWFLUVEUUGUVHRYDKUWCXDSUV
      EUWFYDLUUGYDVGVJXEXIYHUVCCUUTYIYFUUTLYGUVBYDYFUUTYEKXFXGXHXJXKXLXMXIXNYAY
      MYPBYCUUAYLYPYJYAUUIYTYLYPWGUUJYEYDUUHYCXOURXPXQXRXSXT $.

    $( Lemma for ~ 1idpr .  (Contributed by Jim Kingdon, 13-Dec-2019.) $)
    1idpru $p |- ( A e. P. -> ( 2nd ` ( A .P. 1P ) ) = ( 2nd ` A ) ) $=
      ( vf vh vw vy wcel c1p co cfv cv cmq wceq wrex cltq wbr wa cnq c1q adantl
      wb vx vu vv vz cnp cmp c2nd wss ssid rexss ax-mp r19.42v 1pr c1st elprnqu
      cop prop sylan mpan w3a 3ad2ant3 1pru abeq2i ltmnqg mp3an1 ancoms mulidnq
      breq2 breq1d adantr bitrd syl5rbb 3adant3 syl3an1 syl3an2 3expia pm5.32rd
      1nq rexbidva syl5rbbr syl5bb df-imp mulclnq genpelvu mpan2 prnminu wi crq
      ltrelnq brel ancomd simpr simpl recclnq mulcomnqg caovord2d recidnq mpcom
      biimpd sylan2 elab2g mpbird mulassnqg caov12d oveq2d 3eqtrrd oveq2 eqeq2d
      3syl syl rspcev syl2anc ancld reximia ex prcunqu adantrd rexlimdva impbid
      a1i 3bitr4d eqrdv ) AUEFZUAAGUFHUGIZAUGIZYCUAJZBJZCJZKHZLZCGUGIZMZBYEMZYG
      YFNOZYLPZBYEMZYFYDFZYFYEFZYCYLYOBYEYLYHYKFZYJPZCYKMZYCYGYEFZPZYOYKYKUHYLU
      UATYKUIYJCYKYKUJUKYOYNYJPZCYKMUUCUUAYNYJCYKULUUCUUDYTCYKUUCYSPYJYNYSUUCYS
      YJYNYSTZYSUUCYHQFZYJUUEGUEFZYSUUFUMUUGGUNIZYKUPUEFYSUUFGUQYHYKUUHUOURUSUU
      CYGQFZUUFYJUUEYCAUNIZYEUPUEFZUUBUUIAUQZYGYEUUJUOURUUIUUFYJUTYNYGYINOZYSYJ
      UUIYNUUMTUUFYFYIYGNVHVAUUIUUFUUMYSTYJYSRYHNOZUUIUUFPZUUMUUNCYKCVBZVCUUOUU
      NYGRKHZYINOZUUMUUFUUIUUNUURTZRQFUUFUUIUUSVRRYHYGVDVEVFUUIUURUUMTUUFUUIUUQ
      YGYINYGVGVIVJVKVLVMVKVNVOVPVQVSVTWAVSYCUUGYQYMTUMDUBUCEUDAGYFBCUFKEUDUCUB
      DWBUBJUCJWCWDWEYCYRYPYCYRYPYCYRPYNBYEMZYPYCUUKYRUUTUULBYFYEUUJWFURYNYOBYE
      UUBYNYLYNYLWGUUBYNYFYGWHIZKHZYKFZYFYGUVBKHZLZYLYNUVCRUVBNOZYFQFZUUIPZYNUV
      FYNUUIUVGYGYFQQNWIWJWKZUVHYNUVFUVHYNYGUVAKHZUVBNOZUVFUVHEUDDYGYFUVANQKEJZ
      QFZUDJZQFZDJZQFUTZUVLUVNNOUVPUVLKHUVPUVNKHNOTUVHUVLUVNUVPVDSUVGUUIWLZUVGU
      UIWMZUUIUVAQFZUVGYGWNZSZUVMUVOPUVLUVNKHZUVNUVLKHLUVHUVLUVNWOSZWPUUIUVKUVF
      TUVGUUIUVJRUVBNYGWQZVISVKWSWRYNUVHUVBQFZUVCUVFTUVIUUIUVGUVTUWFUWAYFUVAWCW
      TUUNUVFCUVBYKQYHUVBRNVHUUPXAXIXBYNUVHUVEUVIUVHUVDYFUVJKHZYFRKHZYFUVHEUDDY
      GYFUVAQKUVRUVSUWBUWDUVQUWCUVPKHUVLUVNUVPKHKHLUVHUVLUVNUVPXCSXDUUIUWGUWHLU
      VGUUIUVJRYFKUWEXESUVGUWHYFLUUIYFVGVJXFXJYJUVECUVBYKYHUVBLYIUVDYFYHUVBYGKX
      GXHXKXLXTXMXNXJXOYCYOYRBYEUUCYNYRYLYCUUKUUBYNYRWGUULYFYGYEUUJXPURXQXRXSYA
      YB $.

    $( 1 is an identity element for positive real multiplication.  Theorem
       9-3.7(iv) of [Gleason] p. 124.  (Contributed by NM, 2-Apr-1996.) $)
    1idpr $p |- ( A e. P. -> ( A .P. 1P ) = A ) $=
      ( cnp wcel c1p cmp co wceq c1st cfv 1idprl 1idpru wa wb 1pr mulclpr mpan2
      c2nd preqlu mpancom mpbir2and ) ABCZADEFZAGZUBHIAHIGZUBQIAQIGZAJAKUBBCZUA
      UCUDUELMUADBCUFNADOPUBARST $.
  $}

  ${
    $d A l x $.  $d A u x $.  $d B l x $.  $d B u x $.
    $( We can order fractions via ` <Q ` or ` <P ` .  (Contributed by Jim
       Kingdon, 19-Jun-2021.) $)
    ltnqpr $p |- ( ( A e. Q. /\ B e. Q. ) -> (
        A <Q B <-> <. { l | l <Q A } , { u | A <Q u } >. <P
        <. { l | l <Q B } , { u | B <Q u } >. ) ) $=
      ( vx cnq wcel wa cltq wbr cab cop wrex cfv cnp nqprlu ltnqex gtnqex elab2
      cv cltp c2nd c1st wb ltdfpr syl2an breq2 op2nd breq1 op1st anbi12i rexbii
      vex syl6bb ltbtwnnqq syl6rbbr ) BFGZCFGZHZDTZBIJDKZBATZIJZAKZLZUTCIJZDKZC
      VBIJAKZLZUAJZBETZIJZVKCIJZHZEFMZBCIJUSVJVKVEUBNZGZVKVIUCNZGZHZEFMZVOUQVEO
      GVIOGVJWAUDURABDPACDPVEVIEUEUFVTVNEFVQVLVSVMVCVLAVKVPEUMZVBVKBIUGVAVDDBQA
      BRUHSVFVMDVKVRWBUTVKCIUIVGVHDCQACRUJSUKULUNEBCUOUP $.
  $}

  ${
    $d A l x $.  $d A u x $.  $d B l x $.  $d B u x $.
    $( We can order fractions via ` <Q ` or ` <P ` .  (Contributed by Jim
       Kingdon, 8-Jan-2021.) $)
    ltnqpri $p |- ( A <Q B -> <. { l | l <Q A } , { u | A <Q u } >. <P
        <. { l | l <Q B } , { u | B <Q u } >. ) $=
      ( vx cltq wbr cv cab cop cnq wrex cfv wcel cnp nqprlu syl ltnqex gtnqex
      wa cltp c2nd c1st wb ltrelnq simpld simprd ltdfpr syl2anc vex breq2 op2nd
      brel elab2 breq1 op1st anbi12i rexbii syl6bb ltbtwnnqq syl6bbr ibir ) BCF
      GZDHZBFGDIZBAHZFGZAIZJZVDCFGZDIZCVFFGAIZJZUAGZVCVNBEHZFGZVOCFGZTZEKLZVCVC
      VNVOVIUBMZNZVOVMUCMZNZTZEKLZVSVCVIONZVMONZVNWEUDVCBKNZWFVCWHCKNZBCKKFUEUM
      ZUFABDPQVCWIWGVCWHWIWJUGACDPQVIVMEUHUIWDVREKWAVPWCVQVGVPAVOVTEUJZVFVOBFUK
      VEVHDBRABSULUNVJVQDVOWBWKVDVOCFUOVKVLDCRACSUPUNUQURUSEBCUTVAVB $.
  $}

  ${
    $d q r s t u $.
    $( Positive real 'less than' is a partial ordering.  Remark ("< is
       transitive and irreflexive") preceding Proposition 11.2.3 of [HoTT], p.
       (varies).  Lemma for ~ ltsopr .  (Contributed by Jim Kingdon,
       15-Dec-2019.) $)
    ltpopr $p |- <P Po P. $=
      ( vq vr cnp cltp wtru cv wcel wbr c2nd cfv c1st wa cnq wrex cop wb ltdfpr
      prop wi mpd vs vt vu wpo wn prdisj sylnib nrexdv anidms mtbird adantl w3a
      sylan ancom 3adant3 3adant1 anbi12d reeanv syl6bbr biimpa simprll syl3an1
      cltq prltlu 3adant3r 3adant2l 3ad2antl2 adantlr prcdnql adantrl 3ad2antl3
      3expb jca ex rexlimdvw reximdv 3adant2 biimprd adantr ispod trud ) CDUDEU
      AUBUCCDUAFZCGZWBWBDHZUEEWCWDAFZWBIJZGZWEWBKJZGZLZAMNZWCWJAMWCWEMGZLWIWGLZ
      WJWCWHWFOCGWLWMUEWBRWEWFWHUFUMWIWGUNUGUHWCWDWKPWBWBAQUIUJUKWCUBFZCGZUCFZC
      GZULZWBWNDHZWNWPDHZLZWBWPDHZSEWRXAXBWRXALZWGWEWPKJZGZLZAMNZXBXCWGWEWNKJZG
      ZLZBFZWNIJZGZXKXDGZLZLZBMNZAMNZXGWRXAXRWRXAXJAMNZXOBMNZLXRWRWSXSWTXTWCWOW
      SXSPWQWBWNAQUOWOWQWTXTPWCWNWPBQUPUQXJXOABMMURUSUTXCXQXFAMXCXPXFBMXCXPXFXC
      XPLZWGXEXCWGXIXOVAYAWEXKVCHZXEWRXPYBXAWOWCXPYBWQWOXJXOYBWOXIXOYBWGWOXIXMY
      BXNWOXHXLOCGXIXMYBWNRWEXKXLXHVDVBVEVFVLVGVHWRXPYBXESZXAWQWCXPYCWOWQXOYCXJ
      WQXNYCXMWQXDWPIJZOCGXNYCWPRXKWEYDXDVIUMVJVJVKVHTVMVNVOVPTWRXGXBSXAWRXBXGW
      CWQXBXGPWOWBWPAQVQVRVSTVNUKVTWA $.
  $}

  ${
    $d q r s x y z $.
    $( Positive real 'less than' is a weak linear order (in the sense of
       ~ df-iso ).  Proposition 11.2.3 of [HoTT], p.  (varies).  (Contributed
       by Jim Kingdon, 16-Dec-2019.) $)
    ltsopr $p |- <P Or P. $=
      ( vx vy vz vq vr vs cnp cltp cv wbr wi wcel cfv wa cnq wrex cltq sylan ex
      mpd wor wpo wo wral ltpopr w3a c2nd wb ltdfpr 3adant3 cop prnminu prnmaxl
      c1st prop anim12i an4s reeanv sylibr 3adantl3 ltsonq ltrelnq sotri adantl
      prloc 3ad2antl3 adantr ad2antrr wex elprnqu ax-ia3 19.8a syl6an 3ad2antl1
      imp df-rex biimprd 3adant2 adantrr elprnql pm3.21 3adant1 adantrl orim12d
      3ad2antl2 ancoms adantlr rexlimdvva rexlimdvw sylbid df-iso mpbir2an
      rgen3 ) GHUAGHUBAIZBIZHJZWNCIZHJZWQWOHJZUCZKZCGUDBGUDAGUDUEXAABCGGGWNGLZW
      OGLZWQGLZUFZWPDIZWNUGMZLZXFWOUNMZLZNZDOPZWTXBXCWPXLUHXDWNWODUIUJXEXKWTDOX
      EXKWTXEXKNZEIZXFQJZXFFIZQJZNZFXIPEXGPZWTXBXCXKXSXDXBXCNXKNXOEXGPZXQFXIPZN
      ZXSXBXHXCXJYBXBXHNXTXCXJNYAXBWNUNMZXGUKGLZXHXTWNUOZEXFXGYCULRXCXIWOUGMZUK
      GLZXJYAWOUOZFXFYFXIUMRUPUQXOXQEFXGXIURUSUTXMXRWTEFXGXIXMXNXGLZXPXILZNZNZX
      RWTYLXRNZXNWQUNMZLZXPWQUGMZLZUCZWTYMXNXPQJZYRXRYSYLXNXFXPQOVAVBVCVDXMYSYR
      KZYKXRXEYTXKXEYSYRXDXBYSYRXCXDYNYPUKGLYSYRWQUOXNXPYPYNVERVFSVGVHTYLYRWTKZ
      XRXEYKUUAXKXEYKNYOWRYQWSXEYIYOWRKYJXEYINZYOWRUUBYONZYIYONZEOPZWRUUCXNOLZU
      UDNZEVIZUUEUUBYOUUHXBXCYIYOUUHKXDXBYINUUFYOUUDUUHXBYDYIUUFYEXNXGYCVJRYIYO
      UUDKXBYIYOVKVDUUGEVLVMVNVOUUDEOVPUSXEUUEWRKZYIYOXBXDUUIXCXBXDNWRUUEWNWQEU
      IVQVRVHTSVSXEYJYQWSKYIXEYJNZYQWSUUJYQNZYQYJNZFOPZWSUUKXPOLZUULNZFVIZUUMUU
      JYQUUPXCXBYJYQUUPKXDXCYJNUUNYQUULUUPXCYGYJUUNYHXPYFXIVTRYJYQUULKXCYJYQWAV
      DUUOFVLVMWEVOUULFOVPUSXEUUMWSKZYJYQXCXDUUQXBXDXCUUQXDXCNWSUUMWQWOFUIVQWFW
      BVHTSWCWDWGVGTSWHTSWIWJWMABCGHWKWL $.
  $}

  ${
    $d A f g h x y p q r $.  $d B f g h x y p q r $.
    $( 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.) $)
    ltaddpr $p |- ( ( A e. P. /\ B e. P. ) -> A <P ( A +P. B ) ) $=
      ( vp vq vr vf vg vh cnp wcel wa cv c1st cfv cnq wrex c2nd cop prop sylan
      vx vy cpp co cltp wbr prml syl cplq cltq prarloc ad2ant2r elprnqu adantlr
      adantl ad2ant2rl adantr simplrr wi simprl simplr jca df-iplp addclnq syl5
      genpprecll imdistani addclpr prcdnql anassrs imp rspe wb ltdfpr ad3antrrr
      syl12anc syldan mpbird ex rexlimdvva mpd rexlimddv ) AIJZBIJZKZCLZBMNZJZA
      ABUCUDZUEUFZCOWDWHCOPZWCWDWGBQNZRIJWKBSCWLWGUGUHUOWEWFOJZWHKZKZDLZELZWFUI
      UDZUJUFZDAQNZPEAMNZPZWJWCWMXBWDWHWCXAWTRIJZWMXBASZWFWTXAEDUKTULWOWSWJEDXA
      WTWOWQXAJZWPWTJZKZKZWSWJXHWSKZWJXFWPWIMNZJZKZDOPZXIWPOJZXFXKXMXHXNWSWEXFX
      NWNXEWCXFXNWDWCXCXFXNXDWPWTXAUMTUNUPUQWOXEXFWSURXHWSXKWEWNXGWSXKUSZWEWNXG
      KZKWEWRXJJZKXOWEXPXQXPXEWHKWEXQXPXEWHWNXEXFUTWMWHXGVAVBFGHUAUBABWQWFUCUIU
      AUBHGFVCGLHLVDVFVEVGWEWIIJZXQXOABVHZXRXJWIQNZRIJXQXOWISWRWPXTXJVITTUHVJVK
      XLDOVLVPWEWJXMVMZWNXGWSWCWDXRYAXSAWIDVNVQVOVRVSVTWAWB $.
  $}

  ${
    $d x y z w u v f g h q r s t A $.  $d x y z w u v f g h q r s t B $.
    $d x y z w u v f g h q r s t C $.
    ltexprlem.1 $e |- C = <. { x e. Q. | E. y (
      y e. ( 2nd ` A ) /\ ( y +Q x ) e. ( 1st ` B ) ) } , { x e. Q. | E. y (
      y e. ( 1st ` A ) /\ ( y +Q x ) e. ( 2nd ` B ) ) } >. $.
    $( Element in lower cut of the constructed difference.  Lemma for
       ~ ltexpri .  (Contributed by Jim Kingdon, 21-Dec-2019.) $)
    ltexprlemell $p |- ( q e. ( 1st ` C ) <-> ( q e. Q. /\
        E. y ( y e. ( 2nd ` A ) /\ ( y +Q q ) e. ( 1st ` B ) ) ) ) $=
      ( cv c2nd cfv wcel cplq co c1st wa wex cnq crab nqex rabex wceq oveq2 cop
      eleq1d anbi2d exbidv fveq2i op1st eqtri elrab2 ) BHZCIJKZUKAHZLMZDNJZKZOZ
      BPZULUKFHZLMZUOKZOZBPAUSQENJZUMUSUAZUQVBBVDUPVAULVDUNUTUOUMUSUKLUBUDUEUFV
      CURAQRZUKCNJKUNDIJKOBPZAQRZUCZNJVEEVHNGUGVEVGURAQSTVFAQSTUHUIUJ $.

    $( Element in upper cut of the constructed difference.  Lemma for
       ~ ltexpri .  (Contributed by Jim Kingdon, 21-Dec-2019.) $)
    ltexprlemelu $p |- ( r e. ( 2nd ` C ) <-> ( r e. Q. /\
        E. y ( y e. ( 1st ` A ) /\ ( y +Q r ) e. ( 2nd ` B ) ) ) ) $=
      ( cv c1st cfv wcel cplq co c2nd wa wex cnq crab nqex rabex wceq oveq2 cop
      eleq1d anbi2d exbidv fveq2i op2nd eqtri elrab2 ) BHZCIJKZUKAHZLMZDNJZKZOZ
      BPZULUKFHZLMZUOKZOZBPAUSQENJZUMUSUAZUQVBBVDUPVAULVDUNUTUOUMUSUKLUBUDUEUFV
      CUKCNJKUNDIJKOBPZAQRZURAQRZUCZNJVGEVHNGUGVFVGVEAQSTURAQSTUHUIUJ $.

    $( Our constructed difference is inhabited.  Lemma for ~ ltexpri .
       (Contributed by Jim Kingdon, 17-Dec-2019.) $)
    ltexprlemm $p |- ( A <P B -> ( E. q e. Q. q e. ( 1st ` C ) /\
        E. r e. Q. r e. ( 2nd ` C ) ) ) $=
      ( vw cv cfv wcel cnq wrex wa wex cnp sylan syl sylibr cltp c1st c2nd cplq
      wbr co ltrelpr brel ltdfpr biimpd mpcom simprrl simprd wceq cltq cop prop
      prnmaxl ltexnqi reximi sylib r19.42v exbii eleq1 biimparc exlimiv adantrl
      df-rex jca expr reximdva mpd rexbii rexcom simpld elprnqu pm4.71rd anbi1d
      ex anass syl6bb exbidv rexbidv syl6bbr mpbird ltexprlemell wss ssid rexss
      wb ax-mp bitr4i nfv nfre1 prmu rexex 3syl prml adantr w3a 3adant3 elprnql
      simp3 3adant2 addcomnqg syl2anc ltaddnq eqeltrrd 19.8a ltexprlemelu 3expa
      wi prcunqu exlimddv exlimdd ) CDUAUEZGJZEUBKLZGMNZFJZEUCKLZFMNZXPBJZCUCKZ
      LZYCXQUDUFZDUBKZLZOZBPZGMNZXSXPYKYIBMNZGMNZXPYIGMNZBMNZYMXPYEYHGMNZOZBMNZ
      YOXPYEYCYGLZOZBMNZYRCQLZDQLZOZXPUUACDQQUAUGUHZUUDXPUUACDBUIUJUKXPYTYQBMXP
      YCMLZYTYQXPUUFYTOOYEYPXPUUFYEYSULXPYTYPUUFXPYSYPYEXPUUCYSYPXPUUBUUCUUEUMZ
      UUCYSOZIJZYGLZYFUUIUNZOZGMNZIPZYPUUHUUJUUKGMNZOZIPZUUNUUHUUOIYGNZUUQUUHYC
      UUIUOUEZIYGNZUURUUCYGDUCKZUPQLZYSUUTDUQZIYCUVAYGURRUUSUUOIYGGYCUUIUSUTSUU
      OIYGVHVAUUMUUPIUUJUUKGMVBVCTUUMYPIUULYHGMUUKYHUUJYFUUIYGVDVEUTVFSRVGVGVIV
      JVKVLYNYQBMYEYHGMVBVMTYIBGMMVNVAXPYKUUFYIOZBPZGMNYMXPYJUVEGMXPYIUVDBXPYIU
      UFYEOZYHOUVDXPYEUVFYHXPYEUUFXPYEUUFXPUUBYEUUFXPUUBUUCUUEVOZUUBCUBKZYDUPQL
      ZYEUUFCUQZYCYDUVHVPRRVSVQVRUUFYEYHVTWAWBWCYLUVEGMYIBMVHVMWDWEXSXQMLYJOZGM
      NZYKXRUVKGMABCDEGHWFVMMMWGYKUVLWJMWHYJGMMWIWKWLTXPXTUVALZYBFXPFWMYAFMWNXP
      UUCUVBUVMFPZUUGUVCUVBUVMFMNUVNFUVAYGWOUVMFMWPSWQXPUVMOZXTMLZYAOZFPZYBUVOU
      VPYAUVRXPUUCUVMUVPUUGUUCUVBUVMUVPUVCXTUVAYGVPRRZUVOYCUVHLZYABXPUVTBPZUVMX
      PUUBUVTBMNZUWAUVGUUBUVIUWBUVJBYDUVHWRSUVTBMWPWQWSXPUVMUVTYAXPUVMUVTWTZUVP
      UVTYCXTUDUFZUVALZOZBPZOYAUWCUVPUWGXPUVMUVPUVTUVSXAZUWCUVTUWEUWGXPUVMUVTXC
      UWCXTYCUDUFZUWDUVAUWCUVPUUFUWIUWDUNUWHXPUVTUUFUVMXPUUBUVTUUFUVGUUBUVIUVTU
      UFUVJYCYDUVHXBRRXDZXTYCXEXFUWCXTUWIUOUEZUWIUVALZUWCUVPUUFUWKUWHUWJXTYCXGX
      FXPUVMUWKUWLXLZUVTXPUUCUVMUWMUUGUUCUVBUVMUWMUVCUWIXTUVAYGXMRRXAVLXHUWFBXI
      XFVIABCDEFHXJTXKXNUVQFXIXFYAFMVHTXOVI $.

    $( The lower cut of our constructed difference is open.  Lemma for
       ~ ltexpri .  (Contributed by Jim Kingdon, 21-Dec-2019.) $)
    ltexprlemopl $p |- ( ( A <P B /\ q e. Q. /\ q e. ( 1st ` C ) )
        -> E. r e. Q. ( q <Q r /\ r e. ( 1st ` C ) ) ) $=
      ( vs wbr cv cnq wcel cfv cltq wa wrex wex cnp syl2anc cltp c1st c2nd cplq
      ltexprlemell simprbi 19.42v anbi2i bitri ltrelpr brel simprd prop prnmaxl
      co cop sylan adantrl wceq simpld ad2antrr simplrr elprnqu simplrl ltaddnq
      simprr ltsonq ltrelnq sotri wb simprl elprnql ltexnqq mpbid adantr ltanqg
      breqtrrd syl3anc mpbird eqeltrd jca jca32 reximdva rexlimddv eximi sylbir
      expr mpd rexcom4 sylibr rexbii sylib sylanr2 3impb ) CDUAJZGKZLMZWPEUBNZM
      ZWPFKZOJZWTWRMZPZFLQZWSWOWQBKZCUCNZMZXEWPUDUOZDUBNZMZPZBRZXDWSWQXLABCDEGH
      UEUFWOWQXLPZPZXAWTLMZXGXEWTUDUOZXIMZPZBRPZPZFLQZXDXNXAXOXRPZPZBRZFLQZYAXN
      YCFLQZBRZYEXNWOWQXKPZPZBRZYGYJWOYHBRZPXNWOYHBUGYKXMWOWQXKBUGUHUIYIYFBYIXH
      IKZOJZYFIXIWOXKYMIXIQZWQWOXJYNXGWODSMZXJYNWOCSMZYOCDSSUAUJUKZULZYOXIDUCNZ
      UPSMZXJYNDUMZIXHYSXIUNUQUQURURYIYLXIMZYMPZPZXPYLUSZFLQZYFUUDXEYLOJZUUFUUD
      XEXHOJZYMUUGUUDXELMZWQUUHUUDYPXGUUIWOYPYHUUCWOYPYOYQUTVAUUDXGXJWOWQXKUUCV
      BUTZYPCUBNZXFUPSMXGUUICUMXEXFUUKVCUQTZWOWQXKUUCVDZXEWPVETYIUUBYMVFXEXHYLO
      LVGVHVITUUDUUIYLLMZUUGUUFVJUULUUDYOUUBUUNWOYOYHUUCYRVAYIUUBYMVKYOYTUUBUUN
      UUAYLYSXIVLUQTFXEYLVMTVNUUDUUEYCFLUUDXOUUEYCUUDXOUUEPZPZXAXOXRUUPXAXHXPOJ
      ZUUPXHYLXPOYIUUBYMUUOVBUUDXOUUEVFZVQUUPWQXOUUIXAUUQVJUUDWQUUOUUMVOUUDXOUU
      EVKZUUDUUIUUOUULVOWPWTXEVPVRVSUUSUUPXGXQUUDXGUUOUUJVOUUPXPYLXIUURYIUUBYMU
      UOVDVTWAWBWGWCWHWDWEWFYCFBLWIWJYDXTFLYDXAYBBRZPXTXAYBBUGUUTXSXAXOXRBUGUHU
      IWKWLXCXTFLXBXSXAABCDEFHUEUHWKWJWMWN $.

    $( The lower cut of our constructed difference is lower.  Lemma for
       ~ ltexpri .  (Contributed by Jim Kingdon, 21-Dec-2019.) $)
    ltexprlemlol $p |- ( ( A <P B /\ q e. Q. ) ->
        ( E. r e. Q. ( q <Q r /\ r e. ( 1st ` C ) ) -> q e. ( 1st ` C ) ) ) $=
      ( wbr cv cnq wcel wa c1st cfv wex cnp sylan 19.42v bitr4i cltp co simprrr
      cltq c2nd cplq simplr simpld simprl ltrelpr brel cop prop elprnqu syl2anc
      simpll ltanqi wi simprd syl prcdnql mpd jca32 ltexprlemell anbi2i 3imtr4i
      eximi ex rexlimdvw ) CDUAIZGJZKLZMZVKFJZUDIZVNENOZLZMZVKVPLZFKVMVRVSVMVOV
      NKLZBJZCUEOZLZWAVNUFUBZDNOZLZMZMZMZMZBPZVLWCWAVKUFUBZWELZMZMZBPZVMVRMZVSW
      JWOBWJVLWCWMVJVLWIUGWJWCWFVMVOVTWGUCZUHZWJWLWDUDIZWMWJVOWAKLZWTVMVOWHUIWJ
      VJWCXAVJVLWIUPZWSVJCQLZWCXAVJXCDQLZCDQQUAUJUKZUHXCCNOZWBULQLWCXACUMWAWBXF
      UNRRUOVKVNWAUQUOWJXDWFWTWMURZWJVJXDXBVJXCXDXEUSUTWJWCWFWRUSXDWEDUEOZULQLW
      FXGDUMWDWLXHWEVARUOVBVCVGWQVMWIBPZMWKVRXIVMVRVOWHBPZMXIVQXJVOVQVTWGBPMXJA
      BCDEFHVDVTWGBSTVEVOWHBSTVEVMWIBSTVSVLWNBPMWPABCDEGHVDVLWNBSTVFVHVI $.

    $( The upper cut of our constructed difference is open.  Lemma for
       ~ ltexpri .  (Contributed by Jim Kingdon, 21-Dec-2019.) $)
    ltexprlemopu $p |- ( ( A <P B /\ r e. Q. /\ r e. ( 2nd ` C ) )
        -> E. q e. Q. ( q <Q r /\ q e. ( 2nd ` C ) ) ) $=
      ( vs wbr cv cnq wcel cfv cltq wa wrex wex cnp adantr vt cltp c2nd c1st co
      cplq ltexprlemelu simprbi 19.42v anbi2i bitri cop ltrelpr brel simprd syl
      prnminu sylan adantrl ltdfpr biimpd mpcom ad2antrr simpld simplrr simprrl
      prop prltlu syl3an1 syl3anc simplll simprrr simplrl ltrelnq sotri syl2anc
      ltsonq rexlimddv wb elprnql elprnqu ad2ant2r ltexnqq mpbid simprr eqbrtrd
      wceq simprl ltanqg mpbird eqeltrd jca jca32 reximdva eximi sylbir rexcom4
      expr mpd sylibr rexbii sylib sylanr2 3impb ) CDUBJZFKZLMZXFEUCNZMZGKZXFOJ
      ZXJXHMZPZGLQZXIXEXGBKZCUDNZMZXOXFUFUEZDUCNZMZPZBRZXNXIXGYBABCDEFHUGUHXEXG
      YBPZPZXKXJLMZXQXOXJUFUEZXSMZPZBRPZPZGLQZXNYDXKYEYHPZPZBRZGLQZYKYDYMGLQZBR
      ZYOYDXEXGYAPZPZBRZYQYTXEYRBRZPYDXEYRBUIUUAYCXEXGYABUIUJUKYSYPBYSIKZXROJZY
      PIXSXEYAUUCIXSQZXGXEXTUUDXQXEDUDNZXSULSMZXTUUDXEDSMZUUFXECSMZUUGCDSSUBUMU
      NZUODVGUPZIXRXSUUEUQURUSUSYSUUBXSMZUUCPZPZYFUUBWGZGLQZYPUUMXOUUBOJZUUOUUM
      UAKZCUCNZMZUUQUUEMZPZUUPUALXEUVAUALQZYRUULUUHUUGPZXEUVBUUIUVCXEUVBCDUAUTV
      AVBVCUUMUUQLMZUVAPZPZXOUUQOJZUUQUUBOJZUUPUVFUUHXQUUSUVGUUMUUHUVEXEUUHYRUU
      LXEUUHUUGUUIVDVCZTUUMXQUVEUUMXQXTXEXGYAUULVEVDZTUUMUVDUUSUUTVFUUHXPUURULS
      MZXQUUSUVGCVGZXOUUQUURXPVHVIVJUVFXEUUTUUKUVHXEYRUULUVEVKUUMUVDUUSUUTVLYSU
      UKUUCUVEVMXEUUFUUTUUKUVHUUJUUQUUBXSUUEVHVIVJXOUUQUUBOLVQVNVOVPVRUUMXOLMZU
      UBLMZUUPUUOVSUUMUUHXQUVMUVIUVJUUHUVKXQUVMUVLXOUURXPVTURVPZXEUUKUVNYRUUCXE
      UUFUUKUVNUUJUUBXSUUEWAURWBGXOUUBWCVPWDUUMUUNYMGLUUMYEUUNYMUUMYEUUNPZPZXKY
      EYHUVQXKYFXROJZUVQYFUUBXROUUMYEUUNWEZYSUUKUUCUVPVEWFUVQYEXGUVMXKUVRVSUUMY
      EUUNWHZUUMXGUVPXEXGYAUULVMTUUMUVMUVPUVOTXJXFXOWIVJWJUVTUVQXQYGUUMXQUVPUVJ
      TUVQYFUUBXSUVSYSUUKUUCUVPVMWKWLWMWRWNWSVRWOWPYMGBLWQWTYNYJGLYNXKYLBRZPYJX
      KYLBUIUWAYIXKYEYHBUIUJUKXAXBXMYJGLXLYIXKABCDEGHUGUJXAWTXCXD $.

    $( The upper cut of our constructed difference is upper.  Lemma for
       ~ ltexpri .  (Contributed by Jim Kingdon, 21-Dec-2019.) $)
    ltexprlemupu $p |- ( ( A <P B /\ r e. Q. ) -> (
        E. q e. Q. ( q <Q r /\ q e. ( 2nd ` C ) ) ->
        r e. ( 2nd ` C ) ) ) $=
      ( wbr cv cnq wcel wa c2nd cfv wex cnp syl2anc 19.42v bitr4i simplr simpld
      cltp cltq c1st cplq simprrr simprl simpll simprrl adantl cop ltrelpr brel
      co prop syl elprnql sylan ltanqi wi simprd prcunqu mpd jca32 ltexprlemelu
      eximi anbi2i 3imtr4i ex rexlimdvw ) CDUCIZFJZKLZMZGJZVMUDIZVPENOZLZMZVMVR
      LZGKVOVTWAVOVQVPKLZBJZCUEOZLZWCVPUFUOZDNOZLZMZMZMZMZBPZVNWEWCVMUFUOZWGLZM
      ZMZBPZVOVTMZWAWLWQBWLVNWEWOVLVNWKUAWLWEWHVOVQWBWIUGZUBWLWFWNUDIZWOWLVQWCK
      LZXAVOVQWJUHWLVLWEXBVLVNWKUIZWKWEVOVQWBWEWHUJUKVLWDCNOZULQLZWEXBVLCQLZXEV
      LXFDQLZCDQQUCUMUNZUBCUPUQWCXDWDURUSRVPVMWCUTRWLXGWHXAWOVAZWLVLXGXCVLXFXGX
      HVBUQWLWEWHWTVBXGDUEOZWGULQLWHXIDUPWNWFWGXJVCUSRVDVEVGWSVOWKBPZMWMVTXKVOV
      TVQWJBPZMXKVSXLVQVSWBWIBPMXLABCDEGHVFWBWIBSTVHVQWJBSTVHVOWKBSTWAVNWPBPMWR
      ABCDEFHVFVNWPBSTVIVJVK $.

    $( Our constructed difference is rounded.  Lemma for ~ ltexpri .
       (Contributed by Jim Kingdon, 17-Dec-2019.) $)
    ltexprlemrnd $p |- ( A <P B -> ( A. q e. Q. ( q e. ( 1st ` C )
        <-> E. r e. Q. ( q <Q r /\ r e. ( 1st ` C ) ) )
        /\ A. r e. Q. ( r e. ( 2nd ` C )
        <-> E. q e. Q. ( q <Q r /\ q e. ( 2nd ` C ) ) ) ) ) $=
      ( wbr cv cfv wcel wa cnq wrex wb wral 3expia impbid ralrimiva cltp c1st
      cltq c2nd ltexprlemopl ltexprlemlol ltexprlemopu ltexprlemupu jca ) CDUAI
      ZGJZEUBKZLZUKFJZUCIZUNULLMFNOZPZGNQUNEUDKZLZUOUKURLMGNOZPZFNQUJUQGNUJUKNL
      ZMUMUPUJVBUMUPABCDEFGHUERABCDEFGHUFSTUJVAFNUJUNNLZMUSUTUJVCUSUTABCDEFGHUG
      RABCDEFGHUHSTUI $.

    $( Our constructed difference is disjoint.  Lemma for ~ ltexpri .
       (Contributed by Jim Kingdon, 17-Dec-2019.) $)
    ltexprlemdisj $p |- ( A <P B -> A. q e. Q.
        -. ( q e. ( 1st ` C ) /\ q e. ( 2nd ` C ) ) ) $=
      ( vz wbr cv cfv wcel wa wn cnq cplq co cltq cnp wex vf cltp c1st c2nd wal
      vg ltsonq ltrelnq son2lpi cop ltrelpr brel simprd prop syl prltlu syl3an1
      vh 3expb adantlr adantrll adantrrl w3a ltanqg adantl simpld elprnqu sylan
      ad2ant2r adantrr elprnql adantrl simplr addcomnqg caovord2d mpbird 3com23
      wb wceq adantrlr adantrrr mtoi alrimivv ltexprlemell ltexprlemelu anbi12i
      jca ex anandi bitr4i baib eleq1 oveq1 eleq1d anbi12d cbvexv anbi2i syl6bb
      eeanv syl6bbr notbid alnex albii bitri ralrimiva ) CDUBIZFJZEUCKLZXGEUDKL
      ZMZNZFOXFXGOLZMZXKBJZCUDKZLZXNXGPQZDUCKZLZMZHJZCUCKZLZYAXGPQZDUDKZLZMZMZN
      ZHUEZBUEZXMYIBHXMYHXNYARIZYAXNRIZMZXNYAROUGUHUIXMYHYNXMYHMZYLYMYOYLXQYDRI
      ZXMXTYFYPYCXMXSYFYPXPXFXSYFMYPXLXFXSYFYPXFXRYEUJSLZXSYFYPXFDSLZYQXFCSLZYR
      CDSSUBUKULZUMDUNUOXQYDYEXRUPUQUSUTVAVBYOUAUFURXNYAXGROPUAJZOLZUFJZOLZURJZ
      OLVCUUAUUCRIUUEUUAPQUUEUUCPQRIVRYOUUAUUCUUEVDVEXMXTXNOLZYGXFXPUUFXLXSXFYB
      XOUJSLZXPUUFXFYSUUGXFYSYRYTVFCUNUOZXNXOYBVGVHVIVJXMYGYAOLZXTXFYCUUIXLYFXF
      UUGYCUUIUUHYAXOYBVKVHVIVLXFXLYHVMUUBUUDMUUAUUCPQUUCUUAPQVSYOUUAUUCVNVEVOV
      PXMXTYCYMYFXMXPYCYMXSXFXPYCMYMXLXFXPYCYMXFYCXPYMXFUUGYCXPYMUUHYAXNXOYBUPU
      QVQUSUTVTWAWGWHWBWCXLXKYKVRXFXLXKYHHTZBTZNZYKXLXJUUKXLXJXTBTZYGHTZMZUUKXL
      XJUUMXNYBLZXQYELZMZBTZMZUUOXJXLUUTXJXLUUMMZXLUUSMZMXLUUTMXHUVAXIUVBABCDEF
      GWDABCDEFGWEWFXLUUMUUSWIWJWKUUSUUNUUMUURYGBHXNYAVSZUUPYCUUQYFXNYAYBWLUVCX
      QYDYEXNYAXGPWMWNWOWPWQWRXTYGBHWSWTXAYKUUJNZBUEUULYJUVDBYHHXBXCUUJBXBXDWTV
      EVPXE $.

    $( Our constructed difference is located.  Lemma for ~ ltexpri .
       (Contributed by Jim Kingdon, 17-Dec-2019.) $)
    ltexprlemloc $p |- ( A <P B -> A. q e. Q. A. r e. Q. ( q <Q r
        -> ( q e. ( 1st ` C ) \/ r e. ( 2nd ` C ) ) ) ) $=
      ( vz wbr cv cltq wcel wo cnq wa cplq co wrex wb vw vf vg vh cltp c1st cfv
      c2nd wi wral wceq ltexnqi adantl cnp ltrelpr brel simpld cop prop prarloc
      sylan ad2ant2r simprd ad2antrr w3a ltanqg elprnqu adantlr elprnql simplrl
      ad2ant2rl addclnq syl2anc ltrelnq addcomnqg syl3anc oveq2d simplrr 3eqtrd
      caovord2d addassnqg breq2d bitrd biimpa prloc anassrs reximdva prml rexex
      ex 3syl r19.45mv adantr prmu r19.9rmv orbi2d r19.43 syl6rbbr rexbidv ibar
      wex orbi12d syl ltexprlemell ltexprlemelu eleq1 oveq1 eleq1d cbvexv bitri
      anbi12d anbi2i orbi12i syl6bbr 3bitr4rd sylibrd mpd rexlimddv ralrimivw
      df-rex ) CDUEJZGKZFKZLJZYBEUFUGMZYCEUHUGMZNZUIZFOUJGOYAYHFOYAYDYGYAYDPZYB
      UAKZQRZYCUKZYGUAOYDYLUAOSYAUAYBYCULUMYIYJOMZYLPZPZBKZIKZYJQRZLJZBCUHUGZSZ
      ICUFUGZSZYGYAYMUUCYDYLYACUNMZYMUUCYAUUDDUNMZCDUNUNUEUOUPZUQZUUDUUBYTURUNM
      ZYMUUCCUSZYJYTUUBIBUTVAVAVBYOUUCYPYBQRZDUFUGZMZYQYCQRZDUHUGZMZNZBYTSZIUUB
      SZYGYOUUAUUQIUUBYOYQUUBMZPYSUUPBYTYOUUSYPYTMZYSUUPUIYOUUSUUTPZPZYSUUPUVBY
      SPUUEUUJUUMLJZUUPYOUUEUVAYSYAUUEYDYNYAUUDUUEUUFVCVDVDUVBYSUVCUVBYSUUJYRYB
      QRZLJUVCUVBUBUCUDYPYRYBLOQUBKZOMZUCKZOMZUDKZOMVEUVEUVGLJUVIUVEQRUVIUVGQRL
      JTUVBUVEUVGUVIVFUMYIUUTYPOMZYNUUSYAUUTUVJYDYAUUDUUTUVJUUGUUDUUHUUTUVJUUIY
      PYTUUBVGVAVAVHVKUVBYQOMZYMYROMYIUUSUVKYNUUTYAUUSUVKYDYAUUDUUSUVKUUGUUDUUH
      UUSUVKUUIYQYTUUBVIVAVAVHVBZYIYMYLUVAVJZYQYJVLVMYIYBOMZYNUVAYDUVNYAYDUVNYC
      OMZYBYCOOLVNUPZUQUMVDZUVFUVHPUVEUVGQRUVGUVEQRUKUVBUVEUVGVOUMVTUVBUVDUUMUU
      JLUVBUVDYQYJYBQRZQRZYQYKQRUUMUVBUVKYMUVNUVDUVSUKUVLUVMUVQYQYJYBWAVPUVBUVR
      YKYQQUVBYMUVNUVRYKUKUVMUVQYJYBVOVMVQUVBYKYCYQQYIYMYLUVAVRVQVSWBWCWDUUEUUK
      UUNURUNMUVCUUPDUSUUJUUMUUNUUKWEVAVMWJWFWGWGYIYGUURTYNYIUULBYTSZUUONZIUUBS
      ZUVTUUOIUUBSZNZUURYGYAUWBUWDTZYDYAUUDUUSIXAZUWEUUGUUDUUHUUSIOSUWFUUIIYTUU
      BWHUUSIOWIWKUVTUUOIUUBWLWKWMYAUURUWBTYDYAUUQUWAIUUBYAUUDAKYTMZAXAZUUQUWAT
      UUGUUDUUHUWGAOSUWHUUIAYTUUBWNUWGAOWIWKUWHUWAUVTUUOBYTSZNUUQUWHUUOUWIUVTUU
      OBAYTWOWPUULUUOBYTWQWRWKWSWMYDYGUWDTYAYDYGUUTUULPBXAZUUSUUOPZIXAZNZUWDYDU
      WMUVNUWJPZUVOUWLPZNZYGYDUVNUVOPZUWMUWPTUVPUWQUWJUWNUWLUWOUVNUWJUWNTUVOUVN
      UWJWTWMUVOUWLUWOTUVNUVOUWLWTUMXBXCYEUWNYFUWOABCDEGHXDYFUVOYPUUBMZYPYCQRZU
      UNMZPZBXAZPUWOABCDEFHXEUXBUWLUVOUXAUWKBIYPYQUKZUWRUUSUWTUUOYPYQUUBXFUXCUW
      SUUMUUNYPYQYCQXGXHXKXIXLXJXMWRUVTUWJUWCUWLUULBYTXTUUOIUUBXTXMXNUMXOWMXPXQ
      XRWJXSXS $.

    $( Our constructed difference is a positive real.  Lemma for ~ ltexpri .
       (Contributed by Jim Kingdon, 17-Dec-2019.) $)
    ltexprlempr $p |- ( A <P B -> C e. P. ) $=
      ( vq vr wbr cnq wcel cv c1st cfv wrex c2nd wa wb wral wex cltp cpw cxp wn
      cltq wo wi w3a cnp ltexprlemm cplq crab cop wss ssrab2 nqex elpw2 opelxpi
      co mpbir mp2an eqeltri jctil ltexprlemrnd ltexprlemdisj ltexprlemloc 3jca
      elnp1st2nd sylanbrc ) CDUAIZEJUBZVKUCZKZGLZEMNZKZGJOHLZEPNZKZHJOQZQVPVNVQ
      UEIZVQVOKQHJORGJSVSWAVNVRKZQGJORHJSQZVPWBQUDGJSZWAVPVSUFUGHJSGJSZUHEUIKVJ
      VTVMABCDEHGFUJEBLZCPNKWFALUKUSZDMNKQBTZAJULZWFCMNKWGDPNKQBTZAJULZUMZVLFWI
      VKKZWKVKKZWLVLKWMWIJUNWHAJUOWIJUPUQUTWNWKJUNWJAJUOWKJUPUQUTWIWKVKVKURVAVB
      VCVJWCWDWEABCDEHGFVDABCDEGFVEABCDEHGFVFVGEHGVHVI $.

    $( Lemma for ~ ltexpri .  One directon of our result for lower cuts.
       (Contributed by Jim Kingdon, 17-Dec-2019.) $)
    ltexprlemfl $p |- ( A <P B -> ( 1st ` ( A +P. C ) ) C_ ( 1st ` B ) ) $=
      ( vz vw vu vf wbr co cfv cv wcel cplq cnp wa cnq cltq vg vh cltp cpp c1st
      wceq wrex ltrelpr brel simpld ltexprlempr df-iplp addclnq genpelvl simprr
      wb syl2anc c2nd wex ltexprlemell biimpi ad2antlr adantl simprd w3a prltlu
      cop prop syl3an1 3adant2r 3adant3r ltanqg ltrelnq elprnql adantrl adantrr
      syl sylan 3adant3 addcomnqg caovord2d wi prcdnql 3adant2 sylbid mpd 3expa
      exlimddv eqeltrd expr rexlimdvva ssrdv ) CDUCKZGCEUDLUEMZDUEMZWMGNZWNOZWP
      HNZINZPLZUFZIEUEMZUGHCUEMZUGZWPWOOZWMCQOZEQOZWQXDUPWMXFDQOZCDQQUCUHUIZUJZ
      ABCDEFUKZJUAUBGBCEWPHIUDPGBUBUAJULUANZUBNZUMUNUQWMXAXEHIXCXBWMWRXCOZWSXBO
      ZRZXAXEWMXPXARZRZWPWTWOWMXPXAUOXRBNZCURMZOZXSWSPLZWOOZRZWTWOOZBXRWSSOZYDB
      USZXQYFYGRZWMXOYHXNXAXOYHABCDEIFUTVAVBVCVDWMXQYDYEWMXQYDVEZWRXSTKZYEWMXQY
      AYJYCWMXPYAYJXAWMXNYAYJXOWMXCXTVGQOZXNYAYJWMXFYKXJCVHVQWRXSXTXCVFVIVJVJVK
      ZYIYJWTYBTKZYEYIJUAUBWRXSWSTSPJNZSOZXLSOZXMSOVEYNXLTKXMYNPLXMXLPLTKUPYIYN
      XLXMVLVCYIWRSOZXSSOZYIYJYQYRRYLWRXSSSTVMUIVQZUJYIYQYRYSVDWMXQYFYDWMXPYFXA
      WMXOYFXNWMXBEURMZVGQOZXOYFWMXGUUAXKEVHVQWSYTXBVNVRVOVPVSYOYPRYNXLPLXLYNPL
      UFYIYNXLVTVCWAWMYDYMYEWBZXQWMYCUUBYAWMWODURMZVGQOZYCUUBWMXHUUDWMXFXHXIVDD
      VHVQYBWTUUCWOWCVRVOWDWEWFWGWHWIWJWKWEWL $.

    $( Lemma for ~ ltexpri .  Reverse directon of our result for lower cuts.
       (Contributed by Jim Kingdon, 17-Dec-2019.) $)
    ltexprlemrl $p |- ( A <P B -> ( 1st ` B ) C_ ( 1st ` ( A +P. C ) ) ) $=
      ( vv vz cfv co cv wcel wa cplq cnq cnp syl sylan syl2anc ad2antrr vw cltp
      vu vs vf vg vh wbr c1st cpp c2nd cop wrex ltrelpr brel prop prnmaddl cltq
      simprd simpld prarloc ad2ant2r wceq w3o simplll simplrl elprnql ad3antrrr
      adantr nqtri3or wb ltexnqq biimpa simprr wex simprl simpr simplrr prcunqu
      wi mpd addcomnqg adantl w3a addassnqg caov32d oveq1 eleq1d mpbird eqeltrd
      eleq1 anbi12d spcegv anabsi5 ltexprlemell sylanbrc ltexprlempr genpprecll
      df-iplp addclnq mp2and eqeltrrd rexlimddv ex ltaddpr ltprordil sseld sylc
      prcdnql sylsyld 3jaod rexlimdvva ssrdv ) CDUBUHZUADUIIZCEUJJZUIIZXNUAKZXO
      LZXRXQLZXNXSMZXRGKZNJZXOLZXTGOXNXODUKIZULPLZXSYDGOUMXNDPLZYFXNCPLZYGCDPPU
      BUNUOZUSDUPQZGXRYEXOUQRYAYBOLZYDMZMZUCKZHKZYBNJZURUHZUCCUKIZUMHCUIIZUMZXT
      XNYKYTXSYDXNYSYRULPLZYKYTXNYHUUAXNYHYGYIUTZCUPQZYBYRYSHUCVARVBYMYQXTHUCYS
      YRYMYOYSLZYNYRLZMZMZYQXTUUGYQMZYOXRURUHZYOXRVCZXRYOURUHZVDZXTUUHYOOLZXROL
      ZUULUUHXNUUDUUMUUGXNYQXNXSYLUUFVEZVIZYMUUDUUEYQVFZXNUUAUUDUUMUUCYOYRYSVGR
      SZYAUUNYLUUFYQXNYFXSUUNYJXRYEXOVGRVHZYOXRVJSUUHUUIXTUUJUUKUUHUUIXTUUHUUIM
      ZYOUDKZNJZXRVCZXTUDOUUHUUIUVCUDOUMZUUHUUMUUNUUIUVDVKUURUUSUDYOXRVLSVMUUTU
      VAOLZUVCMZMZUVBXRXQUUTUVEUVCVNZUVGUUDUVAEUIILZUVBXQLZUUHUUDUUIUVFUUQTUVGU
      VEBKZYRLZUVKUVANJZXOLZMZBVOZUVIUUTUVEUVCVPZUVGYPYRLZYPUVANJZXOLZUVPUUHUVR
      UUIUVFUUHYQUVRUUGYQVQUUHXNUUEYQUVRVTZUUPYMUUDUUEYQVRXNUUAUUEUWAUUCYPYNYRY
      SVSRSWATUVGUVSUVBYBNJZXOUVGUEUFUGYOYBUVAONUUHUUMUUIUVFUURTUUGYKYQUUIUVFYA
      YKYDUUFVFVHUVQUEKZOLZUFKZOLZMUWCUWENJZUWEUWCNJVCUVGUWCUWEWBWCUWDUWFUGKZOL
      WDUWGUWHNJUWCUWEUWHNJNJVCUVGUWCUWEUWHWEWCWFUVGUWBXOLZYDUUGYDYQUUIUVFYAYKY
      DUUFVRVHUVGUVCUWIYDVKUVHUVCUWBYCXOUVBXRYBNWGWHQWIWJUVRUVTUVPUVOUVRUVTMBYP
      YRUVKYPVCZUVLUVRUVNUVTUVKYPYRWKUWJUVMUVSXOUVKYPUVANWGWHWLWMWNSABCDEUDFWOW
      PUVGYHEPLZUUDUVIMUVJVTUUHYHUUIUVFUUHXNYHUUPUUBQTUUHUWKUUIUVFUUHXNUWKUUPAB
      CDEFWQZQTHUEGAUACEYOUVAUJNAUAGUEHWSUWCYBWTWRSXAXBXCXDUUHUUJXTUUHUUJMZXNXR
      YSLZXTUUGXNYQUUJUUOTUWMYOXRYSUUHUUJVQUUHUUDUUJUUQVIXBXNCXPUBUHZUWNXTVTXNY
      HUWKUWOUUBUWLCEXESUWOYSXQXRCXPXFXGQZXHXDUUHXNUUKUWNXTUUPUUHXNUUDUUKUWNVTZ
      UUPUUQXNUUAUUDUWQUUCYOXRYRYSXIRSUWPXJXKWAXDXLWAXCXDXM $.

    $( Lemma for ~ ltexpri .  One direction of our result for upper cuts.
       (Contributed by Jim Kingdon, 17-Dec-2019.) $)
    ltexprlemfu $p |- ( A <P B -> ( 2nd ` ( A +P. C ) ) C_ ( 2nd ` B ) ) $=
      ( vz vw vu vf wbr co cfv cv wcel cplq cnp wa cnq cltq vg vh cltp cpp c2nd
      wceq wrex ltrelpr brel simpld ltexprlempr df-iplp addclnq genpelvu simprr
      wb syl2anc c1st wex ltexprlemelu biimpi ad2antlr simprd adantl w3a prltlu
      cop prop syl syl3an1 3com23 3adant2r ltanqg elprnql sylan adantrr 3adant2
      3adant3r elprnqu 3adant3 adantrl addcomnqg caovord2d prcunqu sylbid 3expa
      wi mpd exlimddv eqeltrd expr rexlimdvva ssrdv ) CDUCKZGCEUDLUEMZDUEMZWNGN
      ZWOOZWQHNZINZPLZUFZIEUEMZUGHCUEMZUGZWQWPOZWNCQOZEQOZWRXEUPWNXGDQOZCDQQUCU
      HUIZUJZABCDEFUKZJUAUBGBCEWQHIUDPGBUBUAJULUANZUBNZUMUNUQWNXBXFHIXDXCWNWSXD
      OZWTXCOZRZXBXFWNXQXBRZRZWQXAWPWNXQXBUOXSBNZCURMZOZXTWTPLZWPOZRZXAWPOZBXRY
      EBUSZWNXRWTSOZYGXPYHYGRZXOXBXPYIABCDEIFUTVAVBVCVDWNXRYEYFWNXRYEVEZXTWSTKZ
      YFWNXRYBYKYDWNXQYBYKXBWNXOYBYKXPWNYBXOYKWNYAXDVGQOZYBXOYKWNXGYLXKCVHVIZXT
      WSXDYAVFVJVKVLVLVRYJYKYCXATKZYFYJJUAUBXTWSWTTSPJNZSOZXMSOZXNSOVEYOXMTKXNY
      OPLXNXMPLTKUPYJYOXMXNVMVDWNYEXTSOZXRWNYBYRYDWNYLYBYRYMXTXDYAVNVOVPVQWNXRW
      SSOZYEWNXQYSXBWNXOYSXPWNYLXOYSYMWSXDYAVSVOVPVPVTWNXRYHYEWNXQYHXBWNXPYHXOW
      NEURMZXCVGQOZXPYHWNXHUUAXLEVHVIWTXCYTVSVOWAVPVTYPYQRYOXMPLXMYOPLUFYJYOXMW
      BVDWCWNYEYNYFWGZXRWNYDUUBYBWNDURMZWPVGQOZYDUUBWNXIUUDWNXGXIXJVCDVHVIXAYCW
      PUUCWDVOWAVQWEWHWFWIWJWKWLWEWM $.

    $( Lemma for ~ ltexpri .  One direction of our result for upper cuts.
       (Contributed by Jim Kingdon, 17-Dec-2019.) $)
    ltexprlemru $p |- ( A <P B -> ( 2nd ` B ) C_ ( 2nd ` ( A +P. C ) ) ) $=
      ( vv vz wbr cfv co cv wcel wa cltq cnp syl cplq cnq ad2antrr vw cltp c2nd
      vt vu vs vq vf vg vh cpp c1st wrex ltrelpr brel simprd prop prnminu sylan
      cop wceq simprr wb elprnqu ad2ant2r adantr ltexnqq syl2anc simpld prarloc
      mpbid adantlr simplll ltdfpr biimpd mpcom simplrl simprrl syl3an1 syl3anc
      prltlu simprrr ltsonq ltrelnq sotri rexlimddv ltexnqi oveq1 eqeq1d mpbird
      simplrr elprnql simprl addcomnqg adantl w3a addassnqg caov32d prcunqu mpd
      simpr wi wex eqeltrd eleq1 eleq1d anbi12d spcegv ltexprlemelu ltexprlempr
      anabsi5 sylanbrc df-iplp addclnq genppreclu mp2and eqeltrrd ex rexlimdvva
      ssrdv ) CDUBIZUADUCJZCEUKKUCJZYAUALZYBMZYDYCMZYAYENZUDLZYDOIZYFUDYBYADULJ
      ZYBUTPMZYEYIUDYBUMYADPMZYKYACPMZYLCDPPUBUNUOZUPDUQQZUDYDYBYJURUSYGYHYBMZY
      INZNZYHGLZRKZYDVAZYFGSYRYIUUAGSUMZYGYPYIVBYRYHSMZYDSMZYIUUBVCYAYPUUCYEYIY
      AYKYPUUCYOYHYBYJVDUSVEYGUUDYQYAYKYEUUDYOYDYBYJVDUSVFGYHYDVGVHVKYRYSSMZUUA
      NZNZUELZHLZYSRKZOIZUECUCJZUMHCULJZUMZYFYGUUEUUNYQUUAYAUUEUUNYEYAUUMUULUTP
      MZUUEUUNYAYMUUOYAYMYLYNVIZCUQQZYSUULUUMHUEVJUSVLVEUUGUUKYFHUEUUMUULUUGUUI
      UUMMZUUHUULMZNZNZUUKYFUVAUUKNZUUIUFLZRKZYHVAZYFUFSUVBUUIYHOIZUVEUFSUMUVBU
      GLZUULMZUVGYJMZNZUVFUGSUVBYAUVJUGSUMZUUGYAUUTUUKYAYEYQUUFVMZTZYMYLNZYAUVK
      YNUVNYAUVKCDUGVNVOVPQUVBUVGSMZUVJNZNZUUIUVGOIZUVGYHOIZUVFUVQYAUURUVHUVRUV
      AYAUUKUVPUUGYAUUTUVLVFZTZUVBUURUVPUUGUURUUSUUKVQZVFUVBUVOUVHUVIVRYAUUOUUR
      UVHUVRUUQUUIUVGUULUUMWAVSVTUVQYAUVIYPUVSUWAUVBUVOUVHUVIWBUVAYPUUKUVPUUGYP
      UUTYGYPYIUUFVQVFZTYAYKUVIYPUVSYOUVGYHYBYJWAVSVTUUIUVGYHOSWCWDWEVHWFUFUUIY
      HWGQUVBUVCSMZUVENZNZUVDYSRKZYDYCUWFUWGYDVAZUUAUVAUUAUUKUWEYRUUEUUAUUTWKTU
      WFUVEUWHUUAVCUVBUWDUVEVBZUVEUWGYTYDUVDYHYSRWHWIQWJUWFUUJUVCRKZUWGYCUWFUHU
      IUJUUIYSUVCSRUVAUUISMZUUKUWEYRUUTUWKUUFYGUURUWKYQUUSYAUURUWKYEYAUUOUURUWK
      UUQUUIUULUUMWLUSVLVEVLTUVAUUEUUKUWEYRUUEUUAUUTVQTUVBUWDUVEWMZUHLZSMZUILZS
      MZNUWMUWORKZUWOUWMRKVAUWFUWMUWOWNWOUWNUWPUJLZSMWPUWQUWRRKUWMUWOUWRRKRKVAU
      WFUWMUWOUWRWQWOWRUWFUUJUULMZUVCEUCJMZUWJYCMZUVBUWSUWEUVBUUKUWSUVAUUKXAUVB
      YAUUSUUKUWSXBZUVMUUGUURUUSUUKWKYAUUOUUSUXBUUQUUJUUHUULUUMWSUSVHWTVFUWFUWD
      BLZUUMMZUXCUVCRKZYBMZNZBXCZUWTUWLUWFUURUVDYBMZUXHUVBUURUWEUWBVFUWFUVDYHYB
      UWIUVAYPUUKUWEUWCTXDUURUXIUXHUXGUURUXINBUUIUUMUXCUUIVAZUXDUURUXFUXIUXCUUI
      UUMXEUXJUXEUVDYBUXCUUIUVCRWHXFXGXHXKVHABCDEUFFXIXLUWFYMEPMZUWSUWTNUXAXBUW
      FYAYMUVAYAUUKUWEUVTTZUUPQUWFYAUXKUXLABCDEFXJQHUHGAUACEUUJUVCUKRAUAGUHHXMU
      WMYSXNXOVHXPXQXQWFXRXSWTWFWFXRXT $.
  $}

  ${
    $d x y z u v A $.  $d x y z u v B $.
    $( Proposition 9-3.5(iv) of [Gleason] p. 123.  (Contributed by NM,
       13-May-1996.)  (Revised by Mario Carneiro, 14-Jun-2013.) $)
    ltexpri $p |- ( A <P B -> E. x e. P. ( A +P. x ) = B ) $=
      ( vz vy vu vv cv c2nd cfv wcel cplq co wa wex cnq crab cnp wceq eleq1d wb
      cltp wbr c1st cop cpp wrex simpr oveq12d anbi12d cbvexdva cbvrabv opeq12i
      simpl ltexprlempr ltexprlemfl ltexprlemrl ltexprlemfu ltexprlemru ltrelpr
      eqssd simpld addclpr syl2anc simprd preqlu mpbir2and oveq2 eqeq1d rspcev
      brel ) BCUBUCZDHZBIJZKZVMEHZLMZCUDJZKZNZDOZEPQZVMBUDJZKZVQCIJZKZNZDOZEPQZ
      UEZRKZBWJUFMZCSZBAHZUFMZCSZARUGFGBCWJWBGHZVNKZWQFHZLMZVRKZNZGOZFPQWIWQWCK
      ZWTWEKZNZGOZFPQWAXCEFPVPWSSZVTXBDGXHVMWQSZNZVOWRVSXAXJVMWQVNXHXIUHZTXJVQW
      TVRXJVMWQVPWSLXKXHXIUNUIZTUJUKULWHXGEFPXHWGXFDGXJWDXDWFXEXJVMWQWCXKTXJVQW
      TWEXLTUJUKULUMZUOZVLWMWLUDJZVRSZWLIJZWESZVLXOVRFGBCWJXMUPFGBCWJXMUQVAVLXQ
      WEFGBCWJXMURFGBCWJXMUSVAVLWLRKZCRKZWMXPXRNUAVLBRKZWKXSVLYAXTBCRRUBUTVKZVB
      XNBWJVCVDVLYAXTYBVEWLCVFVDVGWPWMAWJRWNWJSWOWLCWNWJBUFVHVIVJVD $.
  $}

  ${
    $d A f g h q r s t u v w $.  $d B f g h q r s t u v w $.
    $d C f g h q r s t u v w $.
    $( Lemma for ~ addcanprg .  (Contributed by Jim Kingdon, 25-Dec-2019.) $)
    addcanprleml $p |- ( ( ( A e. P. /\ B e. P. /\ C e. P. ) /\
        ( A +P. B ) = ( A +P. C ) ) -> ( 1st ` B ) C_ ( 1st ` C ) ) $=
      ( vf vg vh cnp wcel co wceq cfv cplq cnq c2nd syl adantr syl2anc ad2antrr
      wa cv vv vw vt vu vr vs w3a cpp c1st wrex cop prop prnmaddl sylan adantlr
      3ad2antl2 simprl halfnqq simplll simp1d prarloc2 wn simp2d addclpr simplr
      elprnql simplrl addclnq simplrr df-iplp genpprecll imp syl22anc addcomnqg
      prdisj adantl addassnqg caov4d simprr oveq2d syl3anc 3eqtrd wi genppreclu
      simpr simp3d mp2and eqeltrrd ad3antrrr fveq2 eleq2d mpbird jca mtand cltq
      wb wbr wo ltaddnq prloc ecased rexlimddv ex ssrdv ) AGHZBGHZCGHZUGZABUHIZ
      ACUHIZJZSZUABUIKZCUIKZXLUATZXMHZXOXNHZXLXPSZXOUBTZLIZXMHZXQUBMXHXPYAUBMUJ
      ZXKXFXEXPYBXGXFXMBNKZUKGHZXPYBBULZUBXOYCXMUMUNUPUOXRXSMHZYASZSZUCTZYILIZX
      SJZXQUCMYHYFYKUCMUJXRYFYAUQUCXSUROYHYIMHZYKSZSZUDTZYILIZANKZHZXQUDAUIKZYN
      YSYQUKGHZYLYRUDYSUJYNXEYTYNXEXFXGYHXHYMXHXKXPYGUSZPUTAULZOYHYLYKUQZYIYQYS
      UDVAQYNYOYSHZYRSZSZXQXOYILIZCNKZHZUUFUUIYOXTLIZXIUIKZHZUUJXINKZHZSZUUFUUK
      UUMUKGHZUUJMHZUUOVBUUFXIGHZUUPUUFXEXFUURUUFXEXFXGYHXHYMUUEUUARZUTZUUFXEXF
      XGUUSVCZABVDQXIULOUUFYOMHZXTMHZUUQUUFYTUUDUVBUUFXEYTUUTUUBOYNUUDYRUQYOYQY
      SVFQZUUFXOMHZYFUVCUUFYDXPUVEUUFXFYDUVAYEOYHXPYMUUEXLXPYGVERXOYCXMVFQZYNYF
      UUEXRYFYAYMVGZPXOXSVHQYOXTVHQUUJUUMUUKVOQUUFUUISZUULUUNUVHXEXFUUDYAUULUUF
      XEUUIUUTPZUUFXFUUIUVAPYNUUDYRUUIVGYNYAUUEUUIXRYFYAYMVIRXEXFSUUDYASUULDEFU
      EUFABYOXTUHLUEUFFEDVJZETZFTZVHZVKVLVMUVHUUNUUJXJNKZHZUVHYPUUGLIZUUJUVNUVH
      UVPYOXOLIZYJLIUVQXSLIZUUJUVHDEFYOYIXOYIMLUUFUVBUUIUVDPZYNYLUUEUUIUUCRZUUF
      UVEUUIUVFPZDTZMHZUVKMHZSZUWBUVKLIZUVKUWBLIJUVHUWBUVKVNVPUWCUWDUVLMHUGUWFU
      VLLIUWBUVKUVLLILIJUVHUWBUVKUVLVQVPUVTUWEUWFMHUVHUWBUVKVHVPVRUVHYJXSUVQLYN
      YKUUEUUIYHYLYKVSRVTUVHUVBUVEYFUVRUUJJUVSUWAYNYFUUEUUIUVGRYOXOXSVQWAWBUVHY
      RUUIUVPUVNHZYNUUDYRUUIVIUUFUUIWEUVHXEXGYRUUISUWGWCUVIUUFXGUUIUUFXEXFXGUUS
      WFZPDEFUEUFACYPUUGUHLUVJUVMWDQWGWHUVHXKUUNUVOWPYNXKUUEUUIXLXKXPYGYMXHXKWE
      WIRXKUUMUVNUUJXIXJNWJWKOWLWMWNUUFXNUUHUKGHZXOUUGWOWQZXQUUIWRUUFXGUWIUWHCU
      LOUUFUVEYLUWJUVFYHYLYKUUEVGXOYIWSQXOUUGUUHXNWTQXAXBXBXBXCXD $.

    $( Lemma for ~ addcanprg .  (Contributed by Jim Kingdon, 25-Dec-2019.) $)
    addcanprlemu $p |- ( ( ( A e. P. /\ B e. P. /\ C e. P. ) /\
        ( A +P. B ) = ( A +P. C ) ) -> ( 2nd ` B ) C_ ( 2nd ` C ) ) $=
      ( vr vw cnp wcel co wceq wa cfv cv cltq wbr c1st adantlr cplq cnq syl2anc
      syl vv vt vu vf vg vh vq vs w3a cpp c2nd wrex cop prnminu sylan 3ad2antl2
      prop simprr ltexnqi simprl halfnqq adantrr 3ad2antl1 wn simplll ad3antrrr
      prarloc2 simp1d addclpr elprnql simplrl addclnq elprnqu addassnqg syl3anc
      simp2d prdisj addcomnqg oveq2d adantr wi simp3d df-iplp genpprecll mp2and
      eqtrd simpr eqeltrd wb eleq2d ad7antlr mpbird genppreclu ancomsd ad2antrr
      fveq2 3adant3 imp adantrlr anassrs ad2ant2rl jca mtand wo ltaddnq simplrr
      breqtrd ltanqi prloc orcomd ecased rexlimddv ex ssrdv ) AFGZBFGZCFGZUIZAB
      UJHZACUJHZIZJZUABUKKZCUKKZYBUALZYCGZYEYDGZYBYFJZDLZYEMNZYGDYCXRYFYJDYCULZ
      YAXPXOYFYKXQXPBOKZYCUMFGZYFYKBUQZDYEYCYLUNUOUPPYHYIYCGZYJJZJZYIELZQHZYEIZ
      YGERYQYJYTERULYHYOYJUREYIYEUSTYQYRRGZYTJZJZUBLZUUDQHZYRIZYGUBRUUCUUAUUFUB
      RULYQUUAYTUTUBYRVATUUCUUDRGZUUFJZJZUCLZUUDQHZAUKKZGZYGUCAOKZYQUUHUUMUCUUN
      ULZUUBYHUUHUUOYPYBUUHUUOYFXRUUHUUOYAXOXPUUHUUOXQXOUUGUUOUUFXOUUNUULUMFGZU
      UGUUOAUQZUUDUULUUNUCVGUOVBVCPPPPUUIUUJUUNGZUUMJZJZYGYIUUDQHZCOKZGZUUTUVCU
      UKYIQHZXSOKZGZUVDXSUKKZGZJZUUTUVEUVGUMFGZUVDRGZUVIVDUUTXSFGZUVJUUTXOXPUVL
      UUTXOXPXQYQXRUUBUUHUUSXRYAYFYPVEVFZVHZUUTXOXPXQUVMVPZABVISXSUQTUUTUUKRGZY
      IRGZUVKUUTUUJRGZUUGUVPUUTUUPUURUVRUUTXOUUPUVNUUQTUUIUURUUMUTUUJUULUUNVJSZ
      UUCUUGUUFUUSVKZUUJUUDVLSUUTYMYOUVQUUTXPYMUVOYNTYQYOUUBUUHUUSYHYOYJUTVFYIY
      CYLVMSZUUKYIVLSUVDUVGUVEVQSUUTUVCJZUVFUVHUWBUVFUVDXTOKZGZUWBUVDUUJUVAQHZU
      WCUUTUVDUWEIUVCUUTUVDUUJUUDYIQHZQHZUWEUUTUVRUUGUVQUVDUWGIUVSUVTUWAUUJUUDY
      IVNVOUUTUUGUVQUWGUWEIUVTUWAUUGUVQJUWFUVAUUJQUUDYIVRVSSWFVTUWBUURUVCUWEUWC
      GZUUIUURUUMUVCVKUUTUVCWGUWBXOXQUURUVCJUWHWAUUTXOUVCUVNVTUUTXQUVCUUTXOXPXQ
      UVMWBZVTUDUEUFUGUHACUUJUVAUJQUGUHUFUEUDWCZUELUFLVLZWDSWEWHYAUVFUWDWIXRYFY
      PUUBUUHUUSUVCYAUVEUWCUVDXSXTOWPWJWKWLUUTUVHUVCUUCUUSUVHUUHYQUUMUVHUUBUURY
      HYPUUMUVHYHYOUUMUVHYJYHYOUUMJZUVHXRUWLUVHWAZYAYFXOXPUWMXQXOXPJUUMYOUVHUDU
      EUFUGUHABUUKYIUJQUWJUWKWMWNWQWOWRWSWTXAPVTXBXCUUTUVCYGUUTUVBYDUMFGZUVAYEM
      NUVCYGXDUUTXQUWNUWICUQTUUTUVAYSYEMUUTUUDYRMNUVQUVAYSMNUUTUUDUUEYRMUUTUUGU
      UGUUDUUEMNUVTUVTUUDUUDXESUUCUUGUUFUUSXFXGUWAUUDYRYIXHSUUCYTUUHUUSYQUUAYTU
      RWOXGUVAYEYDUVBXISXJXKXLXLXLXLXMXN $.
  $}

  $( Addition cancellation law for positive reals.  Proposition 9-3.5(vi) of
     [Gleason] p. 123.  (Contributed by Jim Kingdon, 24-Dec-2019.) $)
  addcanprg $p |- ( ( A e. P. /\ B e. P. /\ C e. P. ) ->
                 ( ( A +P. B ) = ( A +P. C ) -> B = C ) ) $=
    ( cnp wcel w3a cpp co wceq wa c1st cfv addcanprleml wss 3ancomb eqcom sylbi
    c2nd eqssd addcanprlemu anbi12i jca wb preqlu 3adant1 adantr mpbird ex ) AD
    EZBDEZCDEZFZABGHZACGHZIZBCIZULUOJZUPBKLZCKLZIZBRLZCRLZIZJZUQUTVCUQURUSABCMU
    QUIUKUJFZUNUMIZJZUSURNULVEUOVFUIUJUKOUMUNPUAZACBMQSUQVAVBABCTUQVGVBVANVHACB
    TQSUBULUPVDUCZUOUJUKVIUIBCUDUEUFUGUH $.

  ${
    $d A x y $.  $d B x y $.
    $( The difference from ~ ltexpri is unique.  (Contributed by Jim Kingdon,
       7-Jul-2021.) $)
    lteupri $p |- ( A <P B -> E! x e. P. ( A +P. x ) = B ) $=
      ( vy cltp wbr cv cpp co wceq cnp wrex wrmo wreu ltexpri wcel ltrelpr wral
      wa ralrimiva brel simpld w3a eqtr3 addcanprg syl5 3expa oveq2 eqeq1d rmo4
      wi sylibr syl reu5 sylanbrc ) BCEFZBAGZHIZCJZAKLUSAKMZUSAKNABCOUPBKPZUTUP
      VACKPBCKKEQUAUBVAUSBDGZHIZCJZSZUQVBJZUKZDKRZAKRUTVAVHAKVAUQKPZSVGDKVAVIVB
      KPZVGVEURVCJVAVIVJUCVFURVCCUDBUQVBUEUFUGTTUSVDADKVFURVCCUQVBBHUHUIUJULUMU
      SAKUNUO $.
  $}

  ${
    $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.) $)
    ltaprlem $p |- ( C e. P. -> ( A <P B ->
                    ( C +P. A ) <P ( C +P. B ) ) ) $=
      ( vx cltp wbr cnp wcel cpp co wa cv wceq wrex ltexpri adantr ltrelpr brel
      simplr syl2anc simpld addclpr simprl ltaddpr syl3anc oveq2 ad2antll eqtrd
      addassprg breqtrd rexlimddv expcom ) ABEFZCGHZCAIJZCBIJZEFZUMUNKZADLZIJZB
      MZUQDGUMVADGNUNDABOPURUSGHZVAKZKZUOUOUSIJZUPEVDUOGHZVBUOVEEFVDUNAGHZVFUMU
      NVCSZURVGVCUMVGUNUMVGBGHABGGEQRUAPPZCAUBTURVBVAUCZUOUSUDTVDVECUTIJZUPVDUN
      VGVBVEVKMVHVIVJCAUSUIUEVAVKUPMURVBUTBCIUFUGUHUJUKUL $.

    $( Ordering property of addition.  Proposition 9-3.5(v) of [Gleason]
       p. 123.  (Contributed by Jim Kingdon, 26-Dec-2019.) $)
    ltaprg $p |- ( ( A e. P. /\ B e. P. /\ C e. P. ) ->
        ( A <P B <-> ( C +P. A ) <P ( C +P. B ) ) ) $=
      ( vx cnp wcel w3a cltp wbr cpp co wi ltaprlem 3ad2ant3 wa cv wceq ltexpri
      wrex syl2anc adantl simpl1 simprl ltaddpr addassprg 3com12 adantrr simprr
      3expa eqtr3d 3adantl2 simpl3 addclpr simpl2 addcanprg syl3anc mpd breqtrd
      adantlr rexlimddv ex impbid ) AEFZBEFZCEFZGZABHIZCAJKZCBJKZHIZVEVCVGVJLVD
      ABCMNVFVJVGVFVJOVHDPZJKZVIQZVGDEVJVMDESVFDVHVIRUAVFVKEFZVMOZVGVJVFVOOZAAV
      KJKZBHVPVCVNAVQHIVCVDVEVOUBZVFVNVMUCZAVKUDTVPCVQJKZVIQZVQBQZVCVEVOWAVDVCV
      EOZVOOVLVTVIWCVNVLVTQZVMVCVEVNWDVEVCVNWDCAVKUEUFUIUGWCVNVMUHUJUKVPVEVQEFZ
      VDWAWBLVCVDVEVOULVPVCVNWEVRVSAVKUMTVCVDVEVOUNCVQBUOUPUQURUSUTVAVB $.
  $}

  ${
    $d A f g h l u z $.  $d A y z $.  $d Q f g h l u z $.  $d Q y z $.
    $d X f g h z $.  $d X y z $.  $d f g h ph z $.
    prplnqu.x $e |- ( ph -> X e. P. ) $.
    prplnqu.q $e |- ( ph -> Q e. Q. ) $.
    prplnqu.sum $e |- ( ph -> A e.
      ( 2nd ` ( X +P. <. { l | l <Q Q } , { u | Q <Q u } >. ) ) ) $.
    $( Membership in the upper cut of a sum of a positive real and a fraction.
       (Contributed by Jim Kingdon, 16-Jun-2021.) $)
    prplnqu $p |- ( ph -> E. y e. ( 2nd ` X ) ( y +Q Q ) = A ) $=
      ( co wceq cltq wbr cab cltp cpp cnp wcel syl2anc vz vf vg vh cv cplq c2nd
      cfv wrex cnq cop nqprlu ltaddpr addcomprg breqtrd wb addclpr c1st elprnqu
      syl prop sylan nqpru mpbid ltsopr ltrelpr ltnqpr mpbird ltexnqi wa adantr
      sotri simprl addcomnqg simprr eqtr3d abbidv opeq12d addnqpr ltaprg adantl
      breq2 breq1 w3a caovord2d oveq1 eqeq1d rspcev rexlimddv ) AEUAUEZUFKZDLZB
      UEZEUFKZDLZBFUGUHZUIZUAUJAEDMNZWLUAUJUIAWRGUEZEMNGOECUEZMNCOUKZWSDMNZGOZD
      WTMNZCOZUKZPNZAXAFXAQKZPNXHXFPNZXGAXAXAFQKZXHPAXARSZFRSZXAXJPNAEUJSZXKICE
      GULZUTZHXAFUMTAXKXLXJXHLXOHXAFUNTUOADXHUGUHZSZXIJADUJSZXHRSZXQXIUPAXSXQXR
      AXLXKXSHXOFXAUQTZJXSXHURUHZXPUKRSXQXRXHVADXPYAUSVBTZXTCDXHGVCTVDZXAXHXFPR
      VEVFVLTAXMXRWRXGUPIYBCEDGVGTVHUAEDVIUTAWJUJSZWLVJZVJZWJWPSZWJEUFKZDLZWQYF
      YGFWSWJMNGOWJWTMNCOUKZPNZYFYKXHYJXAQKZPNYFXHXFYLPAXIYEYCVKYFWSYHMNZGOZYHW
      TMNZCOZUKZXFYLYFYIYQXFLYFWKYHDYFXMYDWKYHLAXMYEIVKZAYDWLVMZEWJVNTAYDWLVOVP
      ZYIYNXCYPXEYIYMXBGYHDWSMWBVQYIYOXDCYHDWTMWCVQVRUTYFYDXMYQYLLYSYRCWJEGVSTV
      PUOYFUBUCUDFYJXAPRQUBUEZRSZUCUEZRSZUDUEZRSWDUUAUUCPNUUEUUAQKUUEUUCQKPNUPY
      FUUAUUCUUEVTWAAXLYEHVKZYFYDYJRSYSCWJGULUTYFXMXKYRXNUTUUBUUDVJUUAUUCQKUUCU
      UAQKLYFUUAUUCUNWAWEVHYFYDXLYGYKUPYSUUFCWJFGVCTVHYTWOYIBWJWPWMWJLWNYHDWMWJ
      EUFWFWGWHTWI $.
  $}

  ${
    $d A f g $.  $d B f g $.  $d C f g $.  $d D f g $.
    $( Strong extensionality of addition (ordering version).  This is similar
       to ~ addext but for positive reals and based on less-than rather than
       apartness.  (Contributed by Jim Kingdon, 17-Feb-2020.) $)
    addextpr $p |- ( ( ( A e. P. /\ B e. P. ) /\ ( C e. P. /\ D e. P. ) ) ->
        ( ( A +P. B ) <P ( C +P. D ) -> ( A <P C \/ B <P D ) ) ) $=
      ( vf vg cnp wcel wa cpp co cltp wbr wo addclpr adantl syl3anc wb ltaprg
      cv wi adantr simprl simplr syl2anc wor w3a ltsopr sowlin mpan simpll wceq
      addcomprg caovcomd breq12d bitr4d simprr orbi12d sylibrd ) AGHZBGHZIZCGHZ
      DGHZIZIZABJKZCDJKZLMZVGCBJKZLMZVJVHLMZNZACLMZBDLMZNVFVGGHZVHGHZVJGHZVIVMU
      AZVBVPVEABOUBVEVQVBCDOPVFVCVAVRVBVCVDUCZUTVAVEUDZCBOUEGLUFVPVQVRUGVSUHGVG
      VHVJLUIUJQVFVNVKVOVLVFVNBAJKZBCJKZLMZVKVFUTVCVAVNWDRUTVAVEUKZVTWAACBSQVFV
      GWBVJWCLVFEFABGJETZGHFTZGHIWFWGJKWGWFJKULVFWFWGUMPZWEWAUNVFEFCBGJWHVTWAUN
      UOUPVFVAVDVCVOVLRWAVBVCVDUQVTBDCSQURUS $.
  $}

  ${
    $d q r x y z w v u f g h A $.  $d q r x y z w v u f g B $.  $d x y C $.
    recexpr.1 $e |- B = <.
      { x | E. y ( x <Q y /\ ( *Q ` y ) e. ( 2nd ` A ) ) } ,
      { x | E. y ( y <Q x /\ ( *Q ` y ) e. ( 1st ` A ) ) } >. $.
    $( Membership in the lower cut of ` B ` .  Lemma for ~ recexpr .
       (Contributed by Jim Kingdon, 27-Dec-2019.) $)
    recexprlemell $p |- ( C e. ( 1st ` B ) <->
        E. y ( C <Q y /\ ( *Q ` y ) e. ( 2nd ` A ) ) ) $=
      ( c1st cfv wcel cvv cv cltq wbr wa wex cnq ltrelnq brel adantr exlimiv
      crq c2nd elex simpld syl wceq breq1 anbi1d exbidv fveq2i nqex abssi ssexi
      cab cop simprd op1st eqtri elab2g pm5.21nii ) EDGHZIEJIZEBKZLMZVCUAHZCUBH
      IZNZBOZEVAUCVGVBBVDVBVFVDEPIZVBVDVIVCPIZEVCPPLQRUDEPUCUESTAKZVCLMZVFNZBOZ
      VHAEVAJVKEUFZVMVGBVOVLVDVFVKEVCLUGUHUIVAVNAUNZVCVKLMZVECGHIZNZBOZAUNZUOZG
      HVPDWBGFUJVPWAVPPUKVNAPVMVKPIZBVLWCVFVLWCVJVKVCPPLQRUDSTULUMWAPUKVTAPVSWC
      BVQWCVRVQVJWCVCVKPPLQRUPSTULUMUQURUSUT $.

    $( Membership in the upper cut of ` B ` .  Lemma for ~ recexpr .
       (Contributed by Jim Kingdon, 27-Dec-2019.) $)
    recexprlemelu $p |- ( C e. ( 2nd ` B ) <->
        E. y ( y <Q C /\ ( *Q ` y ) e. ( 1st ` A ) ) ) $=
      ( c2nd cfv wcel cvv cv cltq wbr wa wex cnq ltrelnq brel adantr exlimiv
      crq c1st elex simprd syl wceq breq2 anbi1d exbidv cab fveq2i simpld abssi
      cop nqex ssexi op2nd eqtri elab2g pm5.21nii ) EDGHZIEJIZBKZELMZVCUAHZCUBH
      IZNZBOZEVAUCVGVBBVDVBVFVDEPIZVBVDVCPIZVIVCEPPLQRUDEPUCUESTVCAKZLMZVFNZBOZ
      VHAEVAJVKEUFZVMVGBVOVLVDVFVKEVCLUGUHUIVAVKVCLMZVECGHIZNZBOZAUJZVNAUJZUNZG
      HWADWBGFUKVTWAVTPUOVSAPVRVKPIZBVPWCVQVPWCVJVKVCPPLQRULSTUMUPWAPUOVNAPVMWC
      BVLWCVFVLVJWCVCVKPPLQRUDSTUMUPUQURUSUT $.

    $( ` B ` is inhabited.  Lemma for ~ recexpr .  (Contributed by Jim Kingdon,
       27-Dec-2019.) $)
    recexprlemm $p |- ( A e. P. -> ( E. q e. Q. q e. ( 1st ` B ) /\
        E. r e. Q. r e. ( 2nd ` B ) ) ) $=
      ( wcel cv cfv cnq wrex wa crq cltq wbr syl wi eleq1d c1q cnp c1st recclnq
      c2nd cop prop prmu nsmallnqq adantr wex recrecnq wceq breq2 fveq2 anbi12d
      anbi2d spcegv sylbird recexprlemell syl6ibr expcomd imp reximdv rexlimiva
      mpd 3syl prml co 1nq addclnq sylancl ltaddnq rspcev syl2anc recexprlemelu
      cplq breq1 jca ) CUAHZFIZDUBJHZFKLZEIZDUDJHZEKLZVSCUBJZCUDJZUEUAHZAIZWGHZ
      AKLWBCUFZAWGWFUGWJWBAKWIKHZWJMZVTWINJZOPZFKLZWBWLWPWJWLWNKHZWPWIUCZFWNUHQ
      UIWMWOWAFKWLWJWOWARWLWOWJWAWLWOWJMZVTBIZOPZWTNJZWGHZMZBUJZWAWLWSWOWNNJZWG
      HZMZXEWLXGWJWOWLXFWIWGWIUKZSUPWLWQXHXERWRXDXHBWNKWTWNULZXAWOXCXGWTWNVTOUM
      XJXBXFWGWTWNNUNZSUOUQQURABCDVTGUSUTVAVBVCVEVDVFVSWHWIWFHZAKLWEWKAWGWFVGXL
      WEAKWLXLMZWNWCOPZEKLZWEWLXOXLWLWNTVPVHZKHZWNXPOPZXOWLWQTKHZXQWRVIWNTVJVKW
      LWQXSXRWRVIWNTVLVKXNXREXPKWCXPWNOUMVMVNUIXMXNWDEKWLXLXNWDRWLXNXLWDWLXNXLM
      ZWTWCOPZXBWFHZMZBUJZWDWLXTXNXFWFHZMZYDWLYEXLXNWLXFWIWFXISUPWLWQYFYDRWRYCY
      FBWNKXJYAXNYBYEWTWNWCOVQXJXBXFWFXKSUOUQQURABCDWCGVOUTVAVBVCVEVDVFVR $.

    $( The lower cut of ` B ` is open.  Lemma for ~ recexpr .  (Contributed by
       Jim Kingdon, 28-Dec-2019.) $)
    recexprlemopl $p |- ( ( A e. P. /\ q e. Q. /\ q e. ( 1st ` B ) )
        -> E. r e. Q. ( q <Q r /\ r e. ( 1st ` B ) ) ) $=
      ( cv c1st cfv wcel cnp cltq wbr wa cnq wrex crq wex recexprlemell adantll
      c2nd ltbtwnnqq biimpi simpll 19.8a sylibr jca reximdv mpan9 exlimiv sylbi
      expcom 3ad2ant3 ) FHZDIJZKZCLKUOEHZMNZURUPKZOZEPQZUOPKUQUOBHZMNZVCRJCUBJK
      ZOZBSVBABCDUOGTVFVBBVDUSURVCMNZOZEPQZVEVBVDVIEUOVCUCUDVEVHVAEPVHVEVAVHVEO
      USUTUSVGVEUEVGVEUTUSVGVEOZVJBSUTVJBUFABCDURGTUGUAUHUMUIUJUKULUN $.

    $( The lower cut of ` B ` is lower.  Lemma for ~ recexpr .  (Contributed by
       Jim Kingdon, 28-Dec-2019.) $)
    recexprlemlol $p |- ( ( A e. P. /\ q e. Q. ) ->
        ( E. r e. Q. ( q <Q r /\ r e. ( 1st ` B ) ) -> q e. ( 1st ` B ) ) ) $=
      ( cv cltq wbr c1st cfv wcel wa cnq wrex wi cnp wex recexprlemell crq c2nd
      ltsonq ltrelnq sotri ex anim1d eximdv 3imtr4g imp rexlimivw a1i ) FHZEHZI
      JZUNDKLZMZNZEOPUMUPMZQCRMUMOMNURUSEOUOUQUSUOUNBHZIJZUTUALCUBLMZNZBSUMUTIJ
      ZVBNZBSUQUSUOVCVEBUOVAVDVBUOVAVDUMUNUTIOUCUDUEUFUGUHABCDUNGTABCDUMGTUIUJU
      KUL $.

    $( The upper cut of ` B ` is open.  Lemma for ~ recexpr .  (Contributed by
       Jim Kingdon, 28-Dec-2019.) $)
    recexprlemopu $p |- ( ( A e. P. /\ r e. Q. /\ r e. ( 2nd ` B ) )
        -> E. q e. Q. ( q <Q r /\ q e. ( 2nd ` B ) ) ) $=
      ( cv c2nd cfv wcel cnp cltq wbr wa cnq wrex crq wex recexprlemelu adantlr
      c1st ltbtwnnqq biimpi simplr 19.8a sylibr jca reximdv mpan9 exlimiv sylbi
      expcom 3ad2ant3 ) EHZDIJZKZCLKFHZUOMNZURUPKZOZFPQZUOPKUQBHZUOMNZVCRJCUBJK
      ZOZBSVBABCDUOGTVFVBBVDVCURMNZUSOZFPQZVEVBVDVIFVCUOUCUDVEVHVAFPVHVEVAVHVEO
      USUTVGUSVEUEVGVEUTUSVGVEOZVJBSUTVJBUFABCDURGTUGUAUHUMUIUJUKULUN $.

    $( The upper cut of ` B ` is upper.  Lemma for ~ recexpr .  (Contributed by
       Jim Kingdon, 28-Dec-2019.) $)
    recexprlemupu $p |- ( ( A e. P. /\ r e. Q. ) -> (
        E. q e. Q. ( q <Q r /\ q e. ( 2nd ` B ) ) -> r e. ( 2nd ` B ) ) ) $=
      ( cv cltq wbr c2nd cfv wcel wa cnq wrex wi cnp wex recexprlemelu crq c1st
      ltsonq ltrelnq sotri expcom anim1d eximdv 3imtr4g imp rexlimivw a1i ) FHZ
      EHZIJZUMDKLZMZNZFOPUNUPMZQCRMUNOMNURUSFOUOUQUSUOBHZUMIJZUTUALCUBLMZNZBSUT
      UNIJZVBNZBSUQUSUOVCVEBUOVAVDVBVAUOVDUTUMUNIOUCUDUEUFUGUHABCDUMGTABCDUNGTU
      IUJUKUL $.

    $( ` B ` is rounded.  Lemma for ~ recexpr .  (Contributed by Jim Kingdon,
       27-Dec-2019.) $)
    recexprlemrnd $p |- ( A e. P. -> ( A. q e. Q. ( q e. ( 1st ` B )
        <-> E. r e. Q. ( q <Q r /\ r e. ( 1st ` B ) ) )
        /\ A. r e. Q. ( r e. ( 2nd ` B )
        <-> E. q e. Q. ( q <Q r /\ q e. ( 2nd ` B ) ) ) ) ) $=
      ( cnp wcel cv c1st cfv wa cnq wrex wb wral 3expia impbid ralrimiva cltq
      wbr c2nd recexprlemopl recexprlemlol recexprlemopu recexprlemupu jca ) CH
      IZFJZDKLZIZUJEJZUAUBZUMUKIMENOZPZFNQUMDUCLZIZUNUJUQIMFNOZPZENQUIUPFNUIUJN
      IZMULUOUIVAULUOABCDEFGUDRABCDEFGUESTUIUTENUIUMNIZMURUSUIVBURUSABCDEFGUFRA
      BCDEFGUGSTUH $.

    $( ` B ` is disjoint.  Lemma for ~ recexpr .  (Contributed by Jim Kingdon,
       27-Dec-2019.) $)
    recexprlemdisj $p |- ( A e. P. -> A. q e. Q.
        -. ( q e. ( 1st ` B ) /\ q e. ( 2nd ` B ) ) ) $=
      ( vz cnp wcel cv c1st cfv wa wn cnq cltq wbr crq wal wex ltsonq wi simprr
      c2nd ltrelnq son2lpi simplr jca prltlu syl3an1 3expb sylan2 simprl simpll
      cop prop sotri syl2anc ltrnqi syl adantl ex adantr alrimivv recexprlemell
      mtoi recexprlemelu anbi12i breq1 fveq2 eleq1d anbi12d cbvexv anbi2i bitri
      wceq eeanv bitr4i notbii alnex albii sylibr ralrimiva ) CHIZEJZDKLIZWEDUD
      LIZMZNZEOWDWEOIZMZWEBJZPQZWLRLZCUDLZIZMZGJZWEPQZWRRLZCKLZIZMZMZNZGSZBSZWI
      WKXEBGWKXDWTWNPQZWNWTPQZMZWTWNPOUAUEUFWDXDXJUBWJWDXDXJWDXDMXHXIXDWDXBWPMX
      HXDXBWPWQWSXBUCWMWPXCUGUHWDXBWPXHWDXAWOUOHIXBWPXHCUPWTWNWOXAUIUJUKULXDXIW
      DXDWRWLPQZXIXDWSWMXKWQWSXBUMWMWPXCUNWRWEWLPOUAUEUQURWRWLUSUTVAUHVBVCVFVDW
      IXDGTZBTZNZXGWHXMWHWQBTZXCGTZMZXMWHXOWLWEPQZWNXAIZMZBTZMXQWFXOWGYAABCDWEF
      VEABCDWEFVGVHYAXPXOXTXCBGWLWRVPZXRWSXSXBWLWRWEPVIYBWNWTXAWLWRRVJVKVLVMVNV
      OWQXCBGVQVRVSXGXLNZBSXNXFYCBXDGVTWAXLBVTVOVRWBWC $.

    $( ` B ` is located.  Lemma for ~ recexpr .  (Contributed by Jim Kingdon,
       27-Dec-2019.) $)
    recexprlemloc $p |- ( A e. P. -> A. q e. Q. A. r e. Q. ( q <Q r
        -> ( q e. ( 1st ` B ) \/ r e. ( 2nd ` B ) ) ) ) $=
      ( vu vv wcel cv cltq wbr cfv cnq wa crq sylan adantlr syl c1st c2nd wo wi
      cnp wral wrex prop prnmaxl simprr wceq elprnql ad2ant2r recrecnq breqtrrd
      cop wb recclnq ltrelnq brel adantl ad2antrr simprd ltrnqg syl2anc eqeltrd
      mpbird simprl wex breq1 fveq2 eleq1d anbi12d spcegv recexprlemelu syl6ibr
      mp2and rexlimddv olcd prnminu elprnqu eqbrtrd simpld recexprlemell ltrnqi
      breq2 orcd prloc syl2an mpjaodan ex ralrimivw ) CUEJZFKZEKZLMZWNDUANJZWOD
      UBNJZUCZUDZEOUFFOWMWTEOWMWPWSWMWPPZWOQNZCUANZJZWSWNQNZCUBNZJZXAXDPZWRWQXH
      XBHKZLMZWRHXCWMXDXJHXCUGZWPWMXCXFUPUEJZXDXKCUHZHXBXFXCUIRSXHXIXCJZXJPZPZX
      IQNZWOLMZXQQNZXCJZWRXPXRXBXSLMZXPXBXIXSLXHXNXJUJXPXIOJZXSXIUKXAXOYBXDWMXN
      YBWPXJWMXLXNYBXMXIXFXCULRUMSZXIUNTZUOXPXQOJZWOOJZXRYAUQXPYBYEYCXIURTZXPWN
      OJZYFXAYHYFPZXDXOWPYIWMWNWOOOLUSUTVAZVBVCXQWOVDVEVGXPXSXIXCYDXHXNXJVHVFXP
      YEXRXTPZWRUDYGYEYKBKZWOLMZYLQNZXCJZPZBVIWRYPYKBXQOYLXQUKZYMXRYOXTYLXQWOLV
      JYQYNXSXCYLXQQVKVLVMVNABCDWOGVOVPTVQVRVSXAXGPZWQWRYRIKZXELMZWQIXFWMXGYTIX
      FUGZWPWMXLXGUUAXMIXEXFXCVTRSYRYSXFJZYTPZPZWNYSQNZLMZUUEQNZXFJZWQUUDUUFUUG
      XELMZUUDUUGYSXELUUDYSOJZUUGYSUKXAUUBUUJXGYTWMUUBUUJWPWMXLUUBUUJXMYSXFXCWA
      RSUMZYSUNTZYRUUBYTUJWBUUDYHUUEOJZUUFUUIUQUUDYHYFXAYIXGUUCYJVBWCUUDUUJUUMU
      UKYSURTZWNUUEVDVEVGUUDUUGYSXFUULYRUUBYTVHVFUUDUUMUUFUUHPZWQUDUUNUUMUUOWNY
      LLMZYNXFJZPZBVIWQUURUUOBUUEOYLUUEUKZUUPUUFUUQUUHYLUUEWNLWFUUSYNUUGXFYLUUE
      QVKVLVMVNABCDWNGWDVPTVQVRWGWMXLXBXELMXDXGUCWPXMWNWOWEXBXEXFXCWHWIWJWKWLWL
      $.

    $( ` B ` is a positive real.  Lemma for ~ recexpr .  (Contributed by Jim
       Kingdon, 27-Dec-2019.) $)
    recexprlempr $p |- ( A e. P. -> B e. P. ) $=
      ( vq vr cnp wcel cnq cv c1st cfv wrex c2nd wa cltq wbr wb wral cpw cxp wn
      wo w3a recexprlemm crq wex cab cop wss ltrelnq brel simpld adantr exlimiv
      abssi nqex elpw2 mpbir opelxpi mp2an eqeltri recexprlemrnd recexprlemdisj
      wi simprd jctil recexprlemloc 3jca elnp1st2nd sylanbrc ) CHIZDJUAZVNUBZIZ
      FKZDLMZIZFJNGKZDOMZIZGJNPZPVSVQVTQRZVTVRIPGJNSFJTWBWDVQWAIZPFJNSGJTPZVSWE
      PUCFJTZWDVSWBUDVFGJTFJTZUEDHIVMWCVPABCDGFEUFDAKZBKZQRZWJUGMZCOMIZPZBUHZAU
      IZWJWIQRZWLCLMIZPZBUHZAUIZUJZVOEWPVNIZXAVNIZXBVOIXCWPJUKWOAJWNWIJIZBWKXEW
      MWKXEWJJIZWIWJJJQULUMUNUOUPUQWPJURUSUTXDXAJUKWTAJWSXEBWQXEWRWQXFXEWJWIJJQ
      ULUMVGUOUPUQXAJURUSUTWPXAVNVNVAVBVCVHVMWFWGWHABCDGFEVDABCDFEVEABCDGFEVIVJ
      DGFVKVL $.

    $( The lower cut of one is a subset of the lower cut of ` A .P. B ` .
       Lemma for ~ recexpr .  (Contributed by Jim Kingdon, 27-Dec-2019.) $)
    recexprlem1ssl $p |- ( A e. P. ->
        ( 1st ` 1P ) C_ ( 1st ` ( A .P. B ) ) ) $=
      ( vw vz vf wcel cfv co cv c1q cltq wbr wa crq cmq wceq cnq vv vg cnp c1st
      vh vu c1p cmp 1prl abeq2i c2nd wrex rec1nq ltrnqi syl5eqbrr prop prmuloc2
      cop sylan sylan2 prnmaxl ad2ant2r w3a elprnql 3adant3 simp1r ltrelnq brel
      simpld syl simp3 simp2r simpr wb ltmnqg adantl simprl simprd recclnq 3syl
      ad2antrr simplr mulcomnqg caovord2d syl5ib 1nq mulidnq ax-mp mpdan eqtr3d
      recidnq oveqan12d adantr simpll mulassnqg mulclnq caov4d syl5reqr syl2anc
      recmulnqg mpbird eleq1d biimprd wi wex breq2 anbi12d spcegv recexprlemell
      fveq2 syl6ibr syl2and mpd syl22anc 3ad2ant3 mpan2 oveq1d syl3an2 3anidm12
      3eqtr2d eqeq2d rspcev 3expia reximdv recexprlempr df-imp genpelvl sylibrd
      oveq2 rexlimddv ex syl5bi ssrdv ) CUCIZFUGUDJZCDUHKUDJZFLZYOIYQMNOZYNYQYP
      IZYRFYOFUIUJYNYRYSYNYRPZUALZYQQJZRKZCUKJZIZYSUACUDJZYRYNMUUBNOZUUEUAUUFUL
      ZYRMMQJUUBNUMYQMUNUOYNUUFUUDURUCIZUUGUUHCUPZUAUUBUUDUUFUQUSUTYTUUAUUFIZUU
      EPZPZUUAGLZNOZGUUFULZYSYNUUKUUPYRUUEYNUUIUUKUUPUUJGUUAUUDUUFVAUSVBUUMUUPY
      QUUNALZRKZSZADUDJZULZGUUFULZYSUUMUUOUVAGUUFYTUULUUOUVAYTUULUUOVCZUUNQJZYQ
      RKZUUTIZYQUUNUVERKZSZUVAUVCUUATIZYQTIZUUOUUEUVFYTUULUVIUUOYNUUKUVIYRUUEYN
      UUIUUKUVIUUJUUAUUDUUFVDUSVBVEUVCYRUVJYNYRUULUUOVFYRUVJMTIZYQMTTNVGVHVIVJZ
      YTUULUUOVKYTUUKUUEUUOVLUVIUVJPZUUOUUEPZPZUVNUVFUVMUVNVMUVOUUOUVEUUAQJZYQR
      KZNOZUUEUVQQJZUUDIZUVFUUOUVDUVPNOUVOUVRUUAUUNUNUVOHUBUEUVDUVPYQNTRHLZTIZU
      BLZTIZUELZTIVCZUWAUWCNOUWEUWARKUWEUWCRKNOVNUVOUWAUWCUWEVOVPUVOUUOUUNTIZUV
      DTIZUVMUUOUUEVQUUOUVIUWGUUAUUNTTNVGVHVRZUUNVSZVTUVIUVPTIZUVJUVNUUAVSZWAZU
      VIUVJUVNWBZUWBUWDPZUWAUWCRKZUWCUWARKSUVOUWAUWCWCVPZWDWEUVOUVTUUEUVOUVSUUC
      UUDUVOUVSUUCSZUVQUUCRKZMSZUVOMMMRKZUWSUVKUXAMSWFMWGWHUVOUVPUUARKZYQUUBRKZ
      RKZUXAUWSUVMUXDUXASUVNUVIUVJUXBMUXCMRUVIUUAUVPRKZUXBMUVIUWKUXEUXBSUWLUUAU
      VPWCWIUUAWKWJYQWKWLWMUVOHUBUEUVPUUAYQUUBTRUWMUVIUVJUVNWNUWNUWQUWFUWPUWERK
      UWAUWCUWERKRKSUVOUWAUWCUWEWOVPUVOUVJUUBTIZUWNYQVSZVJUWOUWPTIUVOUWAUWCWPZV
      PWQWJWRUVMUWRUWTVNZUVNUVMUVQTIZUUCTIZUXIUVIUWKUVJUXJUWLUVPYQWPUSZUVJUVIUX
      FUXKUXGUUAUUBWPUTUVQUUCWTWSWMXAXBXCUVMUVRUVTPZUVFXDUVNUVMUXMUVEBLZNOZUXNQ
      JZUUDIZPZBXEZUVFUVMUXJUXMUXSXDUXLUXRUXMBUVQTUXNUVQSZUXOUVRUXQUVTUXNUVQUVE
      NXFUXTUXPUVSUUDUXNUVQQXJXBXGXHVJABCDUVEEXIXKWMXLXMXNUVCUWGUVJUVHUUOYTUWGU
      ULUWIXOUVLUWGUVJPYQMYQRKZUUNUVDRKZYQRKZUVGUVJYQUYASUWGUVJYQMRKZYQUYAYQWGU
      VJUVKUYDUYASWFYQMWCXPWJVPUWGUYCUYASUVJUWGUYBMYQRUUNWKXQWMUWGUVJUYCUVGSZUW
      GUWGUWHUVJUYEUWJUUNUVDYQWOXRXSXTWSUUSUVHAUVEUUTUUQUVESUURUVGYQUUQUVEUUNRY
      IYAYBWSYCYDYNYSUVBVNZYRUULYNDUCIUYFABCDEYEUFHUBBFCDYQGAUHRBFUBHUFYFUXHYGW
      IWAYHXMYJYKYLYM $.

    $( The upper cut of one is a subset of the upper cut of ` A .P. B ` .
       Lemma for ~ recexpr .  (Contributed by Jim Kingdon, 27-Dec-2019.) $)
    recexprlem1ssu $p |- ( A e. P. ->
        ( 2nd ` 1P ) C_ ( 2nd ` ( A .P. B ) ) ) $=
      ( vw vf vg wcel cfv co cv c1q cltq wbr wa cmq wceq cnq syl vv vz cnp c2nd
      vh vu c1p cmp 1pru abeq2i c1st wrex prop prmuloc2 sylan prnminu ad2ant2rl
      cop w3a simp3 simp2l elprnql ad2ant2r 3adant3 simp1r ltrelnq brel recclnq
      crq simprd mulassnqg syl3anc oveq2d 3eqtrd eleq1d mpbird ltrnqi wb ltmnqg
      recidnq mulidnq adantl mulclnq simpld mulcomnqg caovord2d 1nq ax-mp mpdan
      syl2anc syl5ib eqtr3d oveqan12d caov4d syl5reqr caovcld recmulnqg biimprd
      wex breq1 fveq2 anbi12d spcegv recexprlemelu syl6ibr syl2and mp2and mpan2
      oveq1d adantr syl3an2 3anidm12 3eqtr2d oveq2 eqeq2d rspcev 3expia reximdv
      wi recexprlempr df-imp genpelvu ad2antrr sylibrd mpd rexlimddv ex syl5bi
      ssrdv ) CUCIZFUGUDJZCDUHKUDJZFLZYKIMYMNOZYJYMYLIZYNFYKFUIUJYJYNYOYJYNPZUA
      LZYMQKZCUDJZIZYOUACUKJZYJUUAYSURUCIZYNYTUAUUAULCUMZUAYMYSUUAUNUOYPYQUUAIZ
      YTPZPZUBLZYRNOZUBYSULZYOYJYTUUIYNUUDYJUUBYTUUIUUCUBYRYSUUAUPUOUQUUFUUIYMU
      UGALZQKZRZADUDJZULZUBYSULZYOUUFUUHUUNUBYSYPUUEUUHUUNYPUUEUUHUSZUUGVIJZYMQ
      KZUUMIZYMUUGUURQKZRZUUNUUPUUHYRYMVIJZQKZUUAIZUUSYPUUEUUHUTZUUPUVDUUDYPUUD
      YTUUHVAUUPUVCYQUUAUUPUVCYQYMUVBQKZQKZYQMQKZYQUUPYQSIZYMSIZUVBSIZUVCUVGRYP
      UUEUVIUUHYJUUDUVIYNYTYJUUBUUDUVIUUCYQYSUUAVBUOVCVDZUUPYNUVJYJYNUUEUUHVEYN
      MSIZUVJMYMSSNVFVGVJTZUUPUVJUVKUVNYMVHTZYQYMUVBVKVLUUPUVFMYQQUUPUVJUVFMRUV
      NYMVTZTVMUUPUVIUVHYQRUVLYQWATVNVOVPUUPUUHYRVIJZYMQKZUURNOZUVDUVRVIJZUUAIZ
      UUSUUHUVQUUQNOUUPUVSUUGYRVQUUPGHUEUVQUUQYMNSQGLZSIZHLZSIZUELZSIUSZUWBUWDN
      OUWFUWBQKUWFUWDQKNOVRUUPUWBUWDUWFVSWBUUPYRSIZUVQSIZUUPUVIUVJUWHUVLUVNYQYM
      WCWJZYRVHZTZUUPUUGSIZUUQSIZUUPUUHUWMUVEUUHUWMUWHUUGYRSSNVFVGWDTZUUGVHZTUV
      NUWCUWEPZUWBUWDQKZUWDUWBQKRUUPUWBUWDWEWBZWFWKUUPUWAUVDUUPUVTUVCUUAUUPUVTU
      VCRZUVRUVCQKZMRZUUPMMMQKZUXAUVMUXCMRWGMWAWHUUPUVQYRQKZUVFQKZUXCUXAUUPUWHU
      VJUXEUXCRUWJUVNUWHUVJUXDMUVFMQUWHYRUVQQKZUXDMUWHUWIUXFUXDRUWKYRUVQWEWIYRV
      TWLUVPWMWJUUPGHUEUVQYRYMUVBSQUWLUWJUVNUWSUWGUWRUWFQKUWBUWDUWFQKQKRUUPUWBU
      WDUWFVKWBUVOUWQUWRSIUUPUWBUWDWCZWBZWNWLWOUUPUVRSIZUVCSIUWTUXBVRUUPGHUVQYM
      SSSQUXHUWLUVNWPZUUPGHYRUVBSSSQUXHUWJUVOWPUVRUVCWQWJVPVOWRUUPUVSUWAPZBLZUU
      RNOZUXLVIJZUUAIZPZBWSZUUSUUPUXIUXKUXQXSUXJUXPUXKBUVRSUXLUVRRZUXMUVSUXOUWA
      UXLUVRUURNWTUXRUXNUVTUUAUXLUVRVIXAVOXBXCTABCDUUREXDXEXFXGUUPUWMUVJUVAUWOU
      VNUWMUVJPYMMYMQKZUUGUUQQKZYMQKZUUTUVJYMUXSRUWMUVJYMMQKZYMUXSYMWAUVJUVMUYB
      UXSRWGYMMWEXHWLWBUWMUYAUXSRUVJUWMUXTMYMQUUGVTXIXJUWMUVJUYAUUTRZUWMUWMUWNU
      VJUYCUWPUUGUUQYMVKXKXLXMWJUULUVAAUURUUMUUJUURRUUKUUTYMUUJUURUUGQXNXOXPWJX
      QXRYJYOUUOVRZYNUUEYJDUCIUYDABCDEXTUFGHBFCDYMUBAUHQBFHGUFYAUXGYBWIYCYDYEYF
      YGYHYI $.

    $( The lower cut of ` A .P. B ` is a subset of the lower cut of one.  Lemma
       for ~ recexpr .  (Contributed by Jim Kingdon, 27-Dec-2019.) $)
    recexprlemss1l $p |- ( A e. P. ->
        ( 1st ` ( A .P. B ) ) C_ ( 1st ` 1P ) ) $=
      ( vw vz vq wcel co c1st cfv cv c1q cltq wbr cmq wi wa cnq vu cnp cmp wceq
      vf vg c1p wrex wb recexprlempr df-imp mulclnq genpelvl mpdan crq c2nd wex
      recexprlemell ltrelnq brel simprd prop elprnql sylan ltmnqi expcom adantr
      cop prltlu syl3an1 3expia mulcomnqg recidnq breq12d sylibd ancoms anim12d
      syl syld ltsonq sotri syl6 exp4b syl5 pm2.43d impd exlimdv breq1 biimprcd
      syl5bi expimpd rexlimdvv sylbid 1prl abeq2i syl6ibr ssrdv ) CUBIZFCDUCJKL
      ZUGKLZWRFMZWSIZXANOPZXAWTIWRXBXAGMZHMZQJZUDZHDKLZUHGCKLZUHZXCWRDUBIXBXJUI
      ABCDEUJUAUEUFBFCDXAGHUCQBFUFUEUAUKUEMUFMULUMUNWRXGXCGHXIXHWRXDXIIZXEXHIZX
      GXCRZWRXKSZXLXFNOPZXMXLXEBMZOPZXPUOLZCUPLZIZSZBUQXNXOABCDXEEURXNYAXOBXNXQ
      XTXOXNXQXTXORZXQXPTIZXNXQYBRXQXETIYCXEXPTTOUSUTVAXNYCXQXTXOXNYCSZYAXFXDXP
      QJZOPZYENOPZSXOYDXQYFXTYGXNXQYFRZYCXNXDTIZYHWRXIXSVHUBIZXKYICVBZXDXSXIVCV
      DZXQYIYFXEXPXDVEVFVRVGYDXTXDXROPZYGXNXTYMRYCWRXKXTYMWRYJXKXTYMYKXDXRXSXIV
      IVJVKVGXNYIYCYMYGRZYLYCYIYNYCYISZYMXPXDQJZXPXRQJZOPZYGYCYMYRRYIYMYCYRXDXR
      XPVEVFVGYOYPYEYQNOXPXDVLYCYQNUDYIXPVMVGVNVOVPVDVSVQXFYENOTVTUSWAWBWCWDWEW
      FWGWJXGXCXOXAXFNOWHWIWBWKWLWMXCFWTFWNWOWPWQ $.

    $( The upper cut of ` A .P. B ` is a subset of the upper cut of one.  Lemma
       for ~ recexpr .  (Contributed by Jim Kingdon, 27-Dec-2019.) $)
    recexprlemss1u $p |- ( A e. P. ->
        ( 2nd ` ( A .P. B ) ) C_ ( 2nd ` 1P ) ) $=
      ( vw vz vq wcel co c2nd cfv cv c1q cltq wbr cmq wi wa cnq vu cnp cmp wceq
      vf vg c1p wrex wb recexprlempr df-imp mulclnq genpelvu mpdan crq c1st wex
      recexprlemelu ltrelnq brel simpld prop elprnqu sylan ltmnqi expcom adantr
      cop syl prltlu syl3an1 3com23 3expia recidnq mulcomnqg sylibd ancoms syld
      breq12d anim12d ltsonq sotri syl6 exp4b syl5 pm2.43d exlimdv syl5bi breq2
      impd biimprcd expimpd rexlimdvv sylbid 1pru abeq2i syl6ibr ssrdv ) CUBIZF
      CDUCJKLZUGKLZWSFMZWTIZNXBOPZXBXAIWSXCXBGMZHMZQJZUDZHDKLZUHGCKLZUHZXDWSDUB
      IXCXKUIABCDEUJUAUEUFBFCDXBGHUCQBFUFUEUAUKUEMUFMULUMUNWSXHXDGHXJXIWSXEXJIZ
      XFXIIZXHXDRZWSXLSZXMNXGOPZXNXMBMZXFOPZXQUOLZCUPLZIZSZBUQXOXPABCDXFEURXOYB
      XPBXOXRYAXPXOXRYAXPRZXRXQTIZXOXRYCRXRYDXFTIXQXFTTOUSUTVAXOYDXRYAXPXOYDSZY
      BXEXQQJZXGOPZNYFOPZSXPYEXRYGYAYHXOXRYGRZYDXOXETIZYIWSXTXJVHUBIZXLYJCVBZXE
      XJXTVCVDZXRYJYGXQXFXEVEVFVIVGYEYAXSXEOPZYHXOYAYNRYDWSXLYAYNWSYAXLYNWSYKYA
      XLYNYLXSXEXJXTVJVKVLVMVGXOYJYDYNYHRZYMYDYJYOYDYJSZYNXQXSQJZXQXEQJZOPZYHYD
      YNYSRYJYNYDYSXSXEXQVEVFVGYPYQNYRYFOYDYQNUDYJXQVNVGXQXEVOVSVPVQVDVRVTYHYGX
      PNYFXGOTWAUSWBVQWCWDWEWFWJWGWHXHXDXPXBXGNOWIWKWCWLWMWNXDFXAFWOWPWQWR $.

    $( ` B ` is the reciprocal of ` A ` .  Lemma for ~ recexpr .  (Contributed
       by Jim Kingdon, 27-Dec-2019.) $)
    recexprlemex $p |- ( A e. P. -> ( A .P. B ) = 1P ) $=
      ( cnp wcel cmp c1p wceq c1st cfv c2nd recexprlemss1l recexprlem1ssl eqssd
      co recexprlemss1u recexprlem1ssu wa recexprlempr mulclpr mpdan 1pr preqlu
      wb sylancl mpbir2and ) CFGZCDHQZIJZUJKLZIKLZJZUJMLZIMLZJZUIULUMABCDENABCD
      EOPUIUOUPABCDERABCDESPUIUJFGZIFGUKUNUQTUFUIDFGURABCDEUACDUBUCUDUJIUEUGUH
      $.
  $}

  ${
    $d A x u v w z $.
    $( 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.) $)
    recexpr $p |- ( A e. P. -> E. x e. P. ( A .P. x ) = 1P ) $=
      ( vz vw vu vv cnp wcel cv cltq wbr crq cfv wa wex cab cmp co c1p wceq cop
      c2nd c1st wrex breq12 simpr fveq2d eleq1d anbi12d cbvexdva cbvabv breq12d
      simpl opeq12i recexprlempr recexprlemex oveq2 eqeq1d rspcev syl2anc ) BGH
      CIZDIZJKZVBLMZBUBMZHZNZDOZCPZVBVAJKZVDBUCMZHZNZDOZCPZUAZGHBVPQRZSTZBAIZQR
      ZSTZAGUDEFBVPVIEIZFIZJKZWCLMZVEHZNZFOZEPVOWCWBJKZWEVKHZNZFOZEPVHWHCEVAWBT
      ZVGWGDFWMVBWCTZNZVCWDVFWFVAWBVBWCJUEWOVDWEVEWOVBWCLWMWNUFZUGZUHUIUJUKVNWL
      CEWMVMWKDFWOVJWIVLWJWOVBWCVAWBJWPWMWNUMULWOVDWEVKWQUHUIUJUKUNZUOEFBVPWRUP
      WAVRAVPGVSVPTVTVQSVSVPBQUQURUSUT $.
  $}

  ${
    $d A f g h s t u v x $.  $d B f g h s t u v x $.
    $( Lemma for ~ aptipr .  (Contributed by Jim Kingdon, 28-Jan-2020.) $)
    aptiprleml $p |- ( ( A e. P. /\ B e. P. /\ -. B <P A ) ->
        ( 1st ` A ) C_ ( 1st ` B ) ) $=
      ( vs vt vu vv cnp wcel wbr cfv cv wa cltq wrex sylan cplq co wceq syl2anc
      cnq vx vf vg vh cltp wn w3a c1st c2nd cop prop prnmaxl ad2ant2rl ad2antll
      wi ltexnqi simplr ad2antrr simprl prarloc2 adantr simpll ad3antrrr simprr
      w3o elprnql nqtri3or simplrl addclnq wb ltanqg adantl addcomnqg caovord2d
      simplrr eqeltrd prcdnql sylbid jctild eleq1 rspcev ltdfpr mpbird pm2.21dd
      imp anbi12d ex syl5ibcom 3jaod mpd rexlimddv expr 3impa ssrdv ) AGHZBGHZB
      AUEIZUFZUGUAAUHJZBUHJZWOWPWRUAKZWSHZXAWTHZUOWOWPLZWRXBXCXDWRXBLZLZXACKZMI
      ZXCCWSWOXBXHCWSNZWPWRWOWSAUIJZUJGHZXBXIAUKZCXAXJWSULOUMXFXGWSHZXHLZLZXADK
      ZPQZXGRZXCDTXHXRDTNXFXMDXAXGUPUNXOXPTHZXRLZLZEKZXPPQZBUIJZHZXCEWTYAWPXSYE
      EWTNZXFWPXNXTWOWPXEUQURZXOXSXRUSWPWTYDUJGHZXSYFBUKZXPYDWTEUTOSYAYBWTHZYEL
      ZLZYBXAMIZYBXARZXAYBMIZVEZXCYLYBTHZXATHZYPYLWPYJYQYAWPYKYGVAZYAYJYEUSZWPY
      HYJYQYIYBYDWTVFOSZYLWOXBYRXFWOXNXTYKWOWPXEVBVCZXFXBXNXTYKXDWRXBVDVCWOXKXB
      YRXLXAXJWSVFOSZYBXAVGSYLYMXCYNYOYLYMXCYLYMLZWQXCUUDWQFKZYDHZUUEWSHZLZFTNZ
      UUDYCTHZYEYCWSHZLZUUIUUDYQXSUUJYLYQYMUUAVAYLXSYMXOXSXRYKVHZVAYBXPVISYLYMU
      ULYLYMUUKYEYLYMYCXQMIZUUKYLUBUCUDYBXAXPMTPUBKZTHZUCKZTHZUDKZTHUGUUOUUQMIU
      USUUOPQUUSUUQPQMIVJYLUUOUUQUUSVKVLUUAUUCUUMUUPUURLUUOUUQPQUUQUUOPQRYLUUOU
      UQVMVLVNYLWOXQWSHZUUNUUKUOZUUBYLXQXGWSXOXSXRYKVOXOXMXTYKXFXMXHUSURVPWOXKU
      UTUVAXLXQYCXJWSVQOSVRYAYJYEVDVSWEUUHUULFYCTUUEYCRUUFYEUUGUUKUUEYCYDVTUUEY
      CWSVTWFWASYLWQUUIVJZYMYLWPWOUVBYSUUBBAFWBSVAWCXOWRXTYKYMXDWRXBXNVHVCWDWGY
      LYJYNXCYTYBXAWTVTWHYLWPYJYOXCUOZYSYTWPYHYJUVCYIYBXAYDWTVQOSWIWJWKWKWKWLWM
      WN $.

    $( Lemma for ~ aptipr .  (Contributed by Jim Kingdon, 28-Jan-2020.) $)
    aptiprlemu $p |- ( ( A e. P. /\ B e. P. /\ -. B <P A ) ->
        ( 2nd ` B ) C_ ( 2nd ` A ) ) $=
      ( vs vt vu cnp wcel wbr cfv cv cltq wrex sylan cplq cnq syl2anc ad3antrrr
      wa co adantr vx vf vg vh cltp wn w3a c2nd c1st cop prop prnminu 3ad2antl2
      wceq simprr ltexnqi syl simpl1 ad2antrr simprl prarloc2 w3o simpr elprnqu
      simpl2 elprnql addclnq nqtri3or wi simplrr breq1 biimprd wb ltanqg adantl
      imp addcomnqg caovord2d mpbird prcdnql mpd rspe syl12anc simpll3 pm2.21dd
      ltdfpr ex eleq1 syl5ibrcom prcunqu 3jaod rexlimddv ssrdv ) AFGZBFGZBAUEHZ
      UFZUGZUABUHIZAUHIZWRUAJZWSGZXAWTGZWRXBRZCJZXAKHZXCCWSWOWNXBXFCWSLZWQWOBUI
      IZWSUJFGZXBXGBUKZCXAWSXHULMUMXDXEWSGZXFRZRZXEDJZNSZXAUNZXCDOXMXFXPDOLXDXK
      XFUODXEXAUPUQXMXNOGZXPRZRZEJZXNNSZWTGZXCEAUIIZXSWNXQYBEYCLZXDWNXLXRWNWOWQ
      XBURZUSXMXQXPUTZWNYCWTUJFGZXQYDAUKZXNWTYCEVAMPXSXTYCGZYBRZRZXAYAKHZXAYAUN
      ZYAXAKHZVBZXCYKXAOGZYAOGZYOYKWOXBYPXDWOXLXRYJWNWOWQXBVEZQZXDXBXLXRYJWRXBV
      CQWOXIXBYPXJXAWSXHVDMPYKXTOGZXQYQYKWNYIYTXDWNXLXRYJYEQZXSYIYBUTZWNYGYIYTY
      HXTWTYCVFMPZXSXQYJYFTZXTXNVGPXAYAVHPYKYLXCYMYNYKYLXCYKYLRZWPXCUUEWPXKXEYC
      GZRZCOLZUUEXEOGZXKUUFUUHXMUUIXRYJYLXMWOXKUUIXDWOXLYRTXDXKXFUTZWOXIXKUUIXJ
      XEWSXHVDMPQZXMXKXRYJYLUUJQUUEXEXTKHZUUFUUEUULXOYAKHZYKYLUUMYKXPYLUUMVIXMX
      QXPYJVJXPUUMYLXOXAYAKVKVLUQVPUUEUBUCUDXEXTXNKONUBJZOGZUCJZOGZUDJZOGUGUUNU
      UPKHUURUUNNSUURUUPNSKHVMUUEUUNUUPUURVNVOUUKYKYTYLUUCTYKXQYLUUDTUUOUUQRUUN
      UUPNSUUPUUNNSUNUUEUUNUUPVQVOVRVSUUEWNYIUULUUFVIZYKWNYLUUATZYKYIYLUUBTWNYG
      YIUUSYHXTXEWTYCVTMPWAUUGCOWBWCUUEWOWNWPUUHVMYKWOYLYSTUUTBACWFPVSXMWQXRYJY
      LWNWOWQXBXLWDQWEWGYKXCYMYBXSYIYBUOZXAYAWTWHWIYKWNYBYNXCVIZUUAUVAWNYGYBUVB
      YHXAYAWTYCWJMPWKWAWLWLWLWGWM $.

    $( Apartness of positive reals is tight.  (Contributed by Jim Kingdon,
       28-Jan-2020.) $)
    aptipr $p |- ( ( A e. P. /\ B e. P. /\ -. ( A <P B \/ B <P A ) )
        -> A = B ) $=
      ( cnp wcel cltp wbr wo wn w3a wceq c1st cfv c2nd simp1 aptiprleml syl3anc
      wss wa eqssd aptiprlemu simp2 ioran biimpi 3ad2ant3 simprd simpld 3adant3
      wb preqlu mpbir2and ) ACDZBCDZABEFZBAEFZGHZIZABJZAKLZBKLZJZAMLZBMLZJZUPUR
      USUPUKULUNHZURUSQUKULUONZUKULUOUAZUPUMHZVDUOUKVGVDRZULUOVHUMUNUBUCUDZUEZA
      BOPUPULUKVGUSURQVFVEUPVGVDVIUFZBAOPSUPVAVBUPULUKVGVAVBQVFVEVKBATPUPUKULVD
      VBVAQVEVFVJABTPSUKULUQUTVCRUHUOABUIUGUJ $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x y C $.
    $( Ordering property of multiplication.  (Contributed by Jim Kingdon,
       18-Feb-2020.) $)
    ltmprr $p |- ( ( A e. P. /\ B e. P. /\ C e. P. ) ->
        ( ( C .P. A ) <P ( C .P. B ) -> A <P B ) ) $=
      ( vy vx cnp wcel cmp co cltp wbr wa cv c1p wceq syl2anc syl3anc mulcomprg
      cpp oveq1d w3a wrex recexpr 3ad2ant3 adantr ltexpri simplll simp1d simprl
      ad2antlr simplrl mulclpr ltaddpr simprr oveq2d distrprg mulassprg simplrr
      simp3d eqtrd 1pr mpan2 1idpr eqtr3d syl 3eqtr2d 3eqtr3d breqtrd rexlimddv
      simp2d ex ) AFGZBFGZCFGZUAZCAHIZCBHIZJKZABJKZVOVRLZCDMZHIZNOZVSDFVOWCDFUB
      ZVRVNVLWDVMDCUCUDUEVTWAFGZWCLZLZVPEMZSIZVQOZVSEFVRWJEFUBVOWFEVPVQUFUJWGWH
      FGZWJLZLZAAWAWHHIZSIZBJWMVLWNFGZAWOJKWMVLVMVNVOVRWFWLUGZUHZWMWEWKWPVTWEWC
      WLUKZWGWKWJUIZWAWHULPAWNUMPWMWAWIHIZWAVQHIZWOBWMWIVQWAHWGWKWJUNUOWMXAWAVP
      HIZWNSIZWACHIZAHIZWNSIWOWMWEVPFGZWKXAXDOWSWMVNVLXGWMVLVMVNWQUSZWRCAULPWTW
      AVPWHUPQWMXFXCWNSWMWEVNVLXFXCOWSXHWRWACAUQQTWMXFAWNSWMXFNAHIZAWMXENAHWMXE
      WBNWMWEVNXEWBOWSXHWACRPVTWEWCWLURUTZTWMVLXIAOWRVLANHIZXIAVLNFGZXKXIOVAANR
      VBAVCVDVEUTTVFWMXEBHIZNBHIZXBBWMXENBHXJTWMWEVNVMXMXBOWSXHWMVLVMVNWQVJZWAC
      BUQQWMVMXNBOXOVMBNHIZXNBVMXLXPXNOVABNRVBBVCVDVEVGVGVHVIVIVK $.
  $}

  ${
    $d A l u w x z $.
    $( For any positive real, there is an integer that is greater than it.
       This is also known as the "archimedean property".  The integer ` x ` is
       embedded into the reals as described at ~ nnprlu .  (Contributed by Jim
       Kingdon, 22-Apr-2020.) $)
    archpr $p |- ( A e. P. -> E. x e. N. A <P
        <. { l | l <Q [ <. x , 1o >. ] ~Q } ,
          { u | [ <. x , 1o >. ] ~Q <Q u } >. ) $=
      ( vz vw cnp wcel cv cfv cop cltq wbr cab cnpi wrex cnq c1st wa ad2antrr
      c2nd c1o ceq cec cltp prop syl archnqq ad2antrl simprl simprr simpr breq1
      vex ltnqex gtnqex op1st elab2 sylibr weq eleq1 anbi12d rspcev syl12anc wb
      prmu simplll nnprlu ad2antlr ltdfpr syl2anc mpbird reximdva mpd rexlimddv
      ex ) CGHZEIZCUAJZHZCDIZAIZUBKUCUDZLMZDNZWCBILMBNZKZUEMZAOPZEQVQCRJZVSKGHV
      TEQPCUFEVSWJVFUGVQVRQHZVTSZSZVRWCLMZAOPZWIWKWOVQVTAVRUHUIWMWNWHAOWMWBOHZS
      ZWNWHWQWNSZWHFIZVSHZWSWGRJZHZSZFQPZWRWKVTVRXAHZXDWMWKWPWNVQWKVTUJTWMVTWPW
      NVQWKVTUKTWRWNXEWQWNULWDWNDVRXAEUNWAVRWCLUMWEWFDWCUOBWCUPUQURUSXCVTXESFVR
      QFEUTWTVTXBXEWSVRVSVAWSVRXAVAVBVCVDWRVQWGGHZWHXDVEVQWLWPWNVGWPXFWMWNBWBDV
      HVICWGFVJVKVLVPVMVNVO $.
  $}

  ${
    $d L f g h $.  $d Q f g h l u $.  $d R f g h l u $.  $d S f g h l u $.
    $d f g h ph $.
    caucvgprlemcanl.l $e |- ( ph -> L e. P. ) $.
    caucvgprlemcanl.s $e |- ( ph -> S e. Q. ) $.
    caucvgprlemcanl.r $e |- ( ph -> R e. Q. ) $.
    caucvgprlemcanl.q $e |- ( ph -> Q e. Q. ) $.
    $( Lemma for ~ cauappcvgprlemladdrl .  Cancelling a term from both sides.
       (Contributed by Jim Kingdon, 15-Aug-2020.) $)
    caucvgprlemcanl $p |- ( ph -> (
        ( R +Q Q ) e. ( 1st ` ( L +P. <. { l | l <Q ( S +Q Q ) } ,
          { u | ( S +Q Q ) <Q u } >. ) ) <->
        R e. ( 1st ` ( L +P. <. { l | l <Q S } ,
          { u | S <Q u } >. ) ) ) ) $=
      ( cltq wbr cab cpp co cltp wcel cnp syl2anc vf vg vh cv cop c1st cfv cplq
      w3a wb ltaprg adantl cnq nqprlu addclpr wa wceq addcomprg caovord2d nqprl
      addnqpr oveq2d breq12d addclnq addassprg syl3anc breq2d 3bitr4d 3bitr4rd
      syl ) AGUDZDLMGNDBUDZLMBNUEZFVKELMGNEVLLMBNUEZOPZQMZVMVKCLMGNCVLLMBNUEZOP
      ZVOVQOPZQMZDVOUFUGRZDCUHPZFVKECUHPZLMGNWCVLLMBNUEZOPZUFUGRZAUAUBUCVMVOVQQ
      SOUAUDZSRZUBUDZSRZUCUDZSRUIWGWIQMWKWGOPWKWIOPQMUJAWGWIWKUKULADUMRZVMSRJBD
      GUNVJAFSRZVNSRZVOSRZHAEUMRZWNIBEGUNVJZFVNUOTZACUMRZVQSRZKBCGUNVJZWHWJUPWG
      WIOPWIWGOPUQAWGWIURULUSAWLWOWAVPUJJWRBDVOGUTTAVKWBLMGNWBVLLMBNUEZWEQMZVRF
      VNVQOPZOPZQMWFVTAXBVRWEXEQAWLWSXBVRUQJKBDCGVATAWDXDFOAWPWSWDXDUQIKBECGVAT
      VBVCAWBUMRZWESRZWFXCUJAWLWSXFJKDCVDTAWMWDSRZXGHAWCUMRZXHAWPWSXIIKECVDTBWC
      GUNVJFWDUOTBWBWEGUTTAVSXEVRQAWMWNWTVSXEUQHWQXAFVNVQVEVFVGVHVI $.
  $}

  ${
    $d A p $.
    cauappcvgpr.f $e |- ( ph -> F : Q. --> Q. ) $.
    cauappcvgpr.app $e |- ( ph -> A. p e. Q. A. q e. Q. (
      ( F ` p ) <Q ( ( F ` q ) +Q ( p +Q q ) ) /\
      ( F ` q ) <Q ( ( F ` p ) +Q ( p +Q q ) ) ) ) $.
    cauappcvgpr.bnd $e |- ( ph -> A. p e. Q. A <Q ( F ` p ) ) $.
    ${
      $d L p q $.  $d ph p q $.
      cauappcvgpr.lim $e |- L = <.
        { l e. Q. | E. q e. Q. ( l +Q q ) <Q ( F ` q ) } ,
        { u e. Q. | E. q e. Q. ( ( F ` q ) +Q q ) <Q u }
        >. $.

      ${
        $d L r s t f g h x y $.  $d A p s x $.  $d F l u p q r s t f g h x y $.
        $d ph r s t f g h x y $.

        $( Lemma for ~ cauappcvgpr .  The putative limit is inhabited.
           (Contributed by Jim Kingdon, 18-Jul-2020.) $)
        cauappcvgprlemm $p |- ( ph -> ( E. s e. Q. s e. ( 1st ` L )
            /\ E. r e. Q. r e. ( 2nd ` L ) ) ) $=
          ( wcel cnq cplq c1q cltq wbr cv c1st cfv wrex c2nd co wceq wral fveq2
          1nq breq2d rspcv mpsyl ltrelnq brel simpld halfnqq wa simplr ad2antrr
          syl wi ad2antlr mpd wb breq1 adantl mpbird oveq2 breq12d rspcev oveq1
          syl2anc breq1d crab cop fveq2i nqex rabex op1st eqtri elrab2 sylanbrc
          rexbidv ex reximdva a1i ffvelrnd addclnq ltaddnq id breq2 op2nd eleq1
          oveq12d jca ) AFUAZEUBUCZOZFPUDZGUAZEUEUCZOZGPUDZAWQWQQUFZCUGZFPUDZWT
          ACPOZXGACRDUCZSTZXHRPOZACIUAZDUCZSTZIPUHZXJUJMXNXJIRPXLRUGXMXICSXLRDU
          IUKULUMXJXHXIPOZCXIPPSUNUOUPVAFCUQVAAXFWSFPAWQPOZURZXFWSXRXFURZXQWQHU
          AZQUFZXTDUCZSTZHPUDZWSAXQXFUSZXSXQXEWQDUCZSTZYDYEXSYGCYFSTZXSXOYHAXOX
          QXFMUTXQXOYHVBAXFXNYHIWQPXLWQUGXMYFCSXLWQDUIUKULVCVDXFYGYHVEXRXECYFSV
          FVGVHYCYGHWQPXTWQUGYAXEYBYFSXTWQWQQVIXTWQDUIVJVKVMJUAZXTQUFZYBSTZHPUD
          ZYDJWQPWRYIWQUGZYKYCHPYMYJYAYBSYIWQXTQVLVNWDWRYLJPVOZYBXTQUFZBUAZSTZH
          PUDZBPVOZVPZUBUCYNEYTUBNVQYNYSYLJPVRVSZYRBPVRVSZVTWAWBWCWEWFVDAXIRQUF
          ZRQUFZPOZUUDXBOZXDAUUCPOZXKUUEAXPXKUUGAPPRDKXKAUJWGZWHUUHXIRWIVMZUUHU
          UCRWIVMZAUUEYOUUDSTZHPUDZUUFUUJAXKUUCUUDSTZUULUUHAUUGXKUUMUUIUUHUUCRW
          JVMUUKUUMHRPXTRUGZYOUUCUUDSUUNYBXIXTRQXTRDUIUUNWKWOVNVKVMYRUULBUUDPXB
          YPUUDUGYQUUKHPYPUUDYOSWLWDXBYTUEUCYSEYTUENVQYNYSUUAUUBWMWAWBWCXCUUFGU
          UDPXAUUDXBWNVKVMWP $.

        $( Lemma for ~ cauappcvgpr .  The lower cut of the putative limit is
           open.  (Contributed by Jim Kingdon, 4-Aug-2020.) $)
        cauappcvgprlemopl $p |- ( ( ph /\ s e. ( 1st ` L ) ) ->
            E. r e. Q. ( s <Q r /\ r e. ( 1st ` L ) ) ) $=
          ( wa cplq cltq wbr cnq wrex vt cv c1st cfv wcel co wceq oveq1 rexbidv
          breq1d crab cop fveq2i rabex op1st eqtri elrab2 simprbi adantl simprr
          nqex ltbtwnnqq sylib simplrl simplbi ad3antlr ltaddnq syl2anc breqtrd
          addcomnqg simprrl ltsonq ltrelnq sotri wb simprl mpbid ad2antrr simpr
          ltexnqq breqtrrd simplr ltanqg syl3anc mpbird simprrr eqtr3d sylanbrc
          rspe jca ex reximdva mpd rexlimddv ) AFUBZEUCUDZUEZOZWOHUBZPUFZWSDUDZ
          QRZWOGUBZQRZXCWPUEZOZGSTZHSWQXBHSTZAWQWOSUEZXHJUBZWSPUFZXAQRZHSTZXHJW
          OSWPXJWOUGZXLXBHSXNXKWTXAQXJWOWSPUHUJUIWPXMJSUKZXAWSPUFBUBQRHSTZBSUKZ
          ULZUCUDXOEXRUCNUMXOXQXMJSVAUNXPBSVAUNUOUPZUQZURUSWRWSSUEZXBOZOZWTUAUB
          ZQRZYDXAQRZOZXGUASYCXBYGUASTWRYAXBUTUAWTXAVBVCYCYDSUEZYGOZOZWSXCPUFZY
          DUGZGSTZXGYJWSYDQRZYMYJWSWTQRYEYNYJWSWSWOPUFZWTQYJYAXIWSYOQRWRYAXBYIV
          DZWQXIAYBYIWQXIXHXTVEVFZWSWOVGVHYJYAXIYOWTUGYPYQWSWOVJVHVIYCYHYEYFVKZ
          WSWTYDQSVLVMVNVHYJYAYHYNYMVOYPYCYHYGVPGWSYDVTVHVQYJYLXFGSYJXCSUEZOZYL
          XFYTYLOZXDXEUUAXDYOYKQRZUUAYOYDYKQUUAYEYOYDQRYJYEYSYLYRVRUUAWTYOYDQUU
          AXIYAWTYOUGYJXIYSYLYQVRZYJYAYSYLYPVRZWOWSVJVHUJVQYTYLVSZWAUUAXIYSYAXD
          UUBVOUUCYJYSYLWBZUUDWOXCWSWCWDWEUUAYSXCWSPUFZXAQRZHSTZXEUUFUUAYAUUHUU
          IUUDUUAUUHYFYJYFYSYLYCYHYEYFWFVRUUAUUGYDXAQUUAYKUUGYDUUAYAYSYKUUGUGUU
          DUUFWSXCVJVHUUEWGUJWEUUHHSWIVHXMUUIJXCSWPXJXCUGZXLUUHHSUUJXKUUGXAQXJX
          CWSPUHUJUIXSUQWHWJWKWLWMWNWN $.

        $( Lemma for ~ cauappcvgpr .  The lower cut of the putative limit is
           lower.  (Contributed by Jim Kingdon, 4-Aug-2020.) $)
        cauappcvgprlemlol $p |- ( ( ph /\ s <Q r /\ r e. ( 1st ` L ) ) ->
            s e. ( 1st ` L ) ) $=
          ( cv cltq wbr wcel cnq cplq vf vg vh c1st cfv w3a wrex ltrelnq simpld
          co brel 3ad2ant2 weq oveq1 breq1d rexbidv crab cop fveq2i rabex op1st
          nqex eqtri elrab2 simprbi 3ad2ant3 wa simpll2 wb ltanqg adantl simprd
          ad2antrr simplr addcomnqg caovord2d mpbid ltsonq sylancom ex reximdva
          wceq sotri mpd sylanbrc ) AFOZGOZPQZWGEUDUEZRZUFZWFSRZWFHOZTUJZWMDUEZ
          PQZHSUGZWFWIRWHAWLWJWHWLWGSRZWFWGSSPUHUKZUIULZWKWGWMTUJZWOPQZHSUGZWQW
          JAXCWHWJWRXCJOZWMTUJZWOPQZHSUGZXCJWGSWIJGUMZXFXBHSXHXEXAWOPXDWGWMTUNU
          OUPWIXGJSUQZWOWMTUJBOPQHSUGZBSUQZURZUDUEXIEXLUDNUSXIXKXGJSVBUTXJBSVBU
          TVAVCZVDVEVFWKXBWPHSWKWMSRZVGZXBWPXOXBWNXAPQZWPXOXBVGZWHXPAWHWJXNXBVH
          XQUAUBUCWFWGWMPSTUAOZSRZUBOZSRZUCOZSRUFXRXTPQYBXRTUJYBXTTUJPQVIXQXRXT
          YBVJVKWKWLXNXBWTVMWKWRXNXBWHAWRWJWHWLWRWSVLULVMWKXNXBVNXSYAVGXRXTTUJX
          TXRTUJWBXQXRXTVOVKVPVQWNXAWOPSVRUHWCVSVTWAWDXGWQJWFSWIJFUMZXFWPHSYCXE
          WNWOPXDWFWMTUNUOUPXMVDWE $.

        $( Lemma for ~ cauappcvgpr .  The upper cut of the putative limit is
           open.  (Contributed by Jim Kingdon, 4-Aug-2020.) $)
        cauappcvgprlemopu $p |- ( ( ph /\ r e. ( 2nd ` L ) ) ->
            E. s e. Q. ( s <Q r /\ s e. ( 2nd ` L ) ) ) $=
          ( cv wcel wa cltq cnq wrex c2nd cfv cplq co wbr weq breq2 rexbidv cop
          crab fveq2i nqex rabex op2nd eqtri elrab2 simprbi adantl simprr sylib
          ltbtwnnqq simplr simplrl adantr simprl rspe syl2anc sylanbrc reximdva
          jca ex mpd rexlimddv ) AGOZEUAUBZPZQZHOZDUBZVRUCUDZVNRUEZFOZVNRUEZWBV
          OPZQZFSTZHSVPWAHSTZAVPVNSPWGVTBOZRUEZHSTZWGBVNSVOBGUFWIWAHSWHVNVTRUGU
          HVOJOVRUCUDVSRUEHSTZJSUJZWJBSUJZUIZUAUBWMEWNUANUKWLWMWKJSULUMWJBSULUM
          UNUOZUPUQURVQVRSPZWAQQZVTWBRUEZWCQZFSTZWFWQWAWTVQWPWAUSFVTVNVAUTWQWSW
          EFSWQWBSPZQZWSWEXBWSQZWCWDXBWRWCUSXCXAWRHSTZWDWQXAWSVBXCWPWRXDXBWPWSV
          QWPWAXAVCVDXBWRWCVEWRHSVFVGWJXDBWBSVOBFUFWIWRHSWHWBVTRUGUHWOUPVHVJVKV
          IVLVM $.

        $( Lemma for ~ cauappcvgpr .  The upper cut of the putative limit is
           upper.  (Contributed by Jim Kingdon, 4-Aug-2020.) $)
        cauappcvgprlemupu $p |- ( ( ph /\ s <Q r /\ s e. ( 2nd ` L ) ) ->
            r e. ( 2nd ` L ) ) $=
          ( cv cltq wbr wcel cnq wrex c2nd cfv w3a cplq ltrelnq simprd 3ad2ant2
          brel weq breq2 rexbidv crab cop fveq2i nqex rabex op2nd eqtri simprbi
          co elrab2 3ad2ant3 wi ltsonq sotri expcom reximdv mpd sylanbrc ) AFOZ
          GOZPQZVJEUAUBZRZUCZVKSRZHOZDUBZVQUDUTZVKPQZHSTZVKVMRVLAVPVNVLVJSRZVPV
          JVKSSPUEUHUFUGVOVSVJPQZHSTZWAVNAWDVLVNWBWDVSBOZPQZHSTZWDBVJSVMBFUIWFW
          CHSWEVJVSPUJUKVMJOVQUDUTVRPQHSTZJSULZWGBSULZUMZUAUBWJEWKUANUNWIWJWHJS
          UOUPWGBSUOUPUQURZVAUSVBVOWCVTHSVLAWCVTVCVNWCVLVTVSVJVKPSVDUEVEVFUGVGV
          HWGWABVKSVMBGUIWFVTHSWEVKVSPUJUKWLVAVI $.

        $( Lemma for ~ cauappcvgpr .  The putative limit is rounded.
           (Contributed by Jim Kingdon, 18-Jul-2020.) $)
        cauappcvgprlemrnd $p |- ( ph -> ( A. s e. Q. ( s e. ( 1st ` L ) <->
              E. r e. Q. ( s <Q r /\ r e. ( 1st ` L ) ) ) /\
            A. r e. Q. ( r e. ( 2nd ` L ) <->
              E. s e. Q. ( s <Q r /\ s e. ( 2nd ` L ) ) ) ) ) $=
          ( cv cfv wcel wa cnq wrex c1st cltq wb wral c2nd cauappcvgprlemopl ex
          cauappcvgprlemlol 3expib rexlimdvw impbid ralrimivw cauappcvgprlemopu
          wbr cauappcvgprlemupu jca ) AFOZEUAPZQZUQGOZUBUNZUTURQZRZGSTZUCZFSUDU
          TEUEPZQZVAUQVFQZRZFSTZUCZGSUDAVEFSAUSVDAUSVDABCDEFGHIJKLMNUFUGAVCUSGS
          AVAVBUSABCDEFGHIJKLMNUHUIUJUKULAVKGSAVGVJAVGVJABCDEFGHIJKLMNUMUGAVIVG
          FSAVAVHVGABCDEFGHIJKLMNUOUIUJUKULUP $.

        $( Lemma for ~ cauappcvgpr .  The putative limit is disjoint.
           (Contributed by Jim Kingdon, 18-Jul-2020.) $)
        cauappcvgprlemdisj $p |- ( ph -> A. s e. Q.
            -. ( s e. ( 1st ` L ) /\ s e. ( 2nd ` L ) ) ) $=
          ( wcel wa cnq cplq co cltq wbr vf vg vh cv c1st cfv c2nd wn wrex wfal
          wral simpl ralimi syl adantr weq oveq1 breq1d rexbidv crab cop fveq2i
          nqex rabex op1st eqtri elrab2 simprbi oveq2 fveq2 breq12d sylib breq2
          cbvrexv anim12i reeanv sylibr adantl r19.29d2r simprl jca wi ad3antlr
          op2nd simplbi simplr addclnq syl2anc ad3antrrr ffvelrnd simpr wor w3a
          wf ltsonq sotr mpan syl3anc syl5 simprr jcad wceq addcomnqg addassnqg
          a1i caov12d anbi1d sylibd ltanqg sylibrd so2nr pm2.21d syld rexlimdva
          wb mpd inegd ralrimivw ) AFUDZEUEUFZNZXSEUGUFZNZOZUHFPAYDAYDOZHUDZDUF
          ZGUDZDUFZYFYHQRZQRZSTZXSYFQRZYGSTZYIYHQRZXSSTZOZOZGPUIZHPUIUJYEYLYQHG
          PPAYLGPUKZHPUKZYDAYLYIYGYJQRSTZOZGPUKZHPUKUUAKUUDYTHPUUCYLGPYLUUBULUM
          UMUNUOYDYQGPUIHPUIZAYDYNHPUIZYPGPUIZOUUEYAUUFYCUUGYAXSYHQRZYISTZGPUIZ
          UUFYAXSPNZUUJIUDZYHQRZYISTZGPUIZUUJIXSPXTIFUPZUUNUUIGPUUPUUMUUHYISUUL
          XSYHQUQURUSXTUUOIPUTZYOBUDZSTZGPUIZBPUTZVAZUEUFUUQEUVBUEMVBUUQUVAUUOI
          PVCVDZUUTBPVCVDZVEVFVGZVHUUIYNGHPGHUPUUHYMYIYGSYHYFXSQVIYHYFDVJVKVNVL
          YCUUKUUGUUTUUGBXSPYBBFUPUUSYPGPUURXSYOSVMUSYBUVBUGUFUVAEUVBUGMVBUUQUV
          AUVCUVDWDVFVGVHVOYNYPHGPPVPVQVRVSYEYSUJHPYEYFPNZOZYRUJGPUVGYHPNZOZYRX
          SYOSTZYPOZUJUVIYRYFXSQRZYFYOQRZSTZYPOZUVKUVIYRYMYKSTZYPOUVOUVIYRUVPYP
          YRYNYLOZUVIUVPYRYNYLYLYNYPVTYLYQULWAUVIYMPNZYGPNZYKPNZUVQUVPWBZUVIUUK
          UVFUVRYDUUKAUVFUVHYAUUKYCYAUUKUUJUVEWEUOWCZYEUVFUVHWFZXSYFWGWHUVIPPYF
          DAPPDWNYDUVFUVHJWIZUWCWJUVIYIPNZYJPNZUVTUVIPPYHDUWDUVGUVHWKZWJZUVIUVF
          UVHUWFUWCUWGYFYHWGWHYIYJWGWHPSWLZUVRUVSUVTWMUWAWOPYMYGYKSWPWQWRWSYRYP
          WBUVIYLYNYPWTXEXAUVIUVPUVNYPUVIYMUVLYKUVMSUVIUUKUVFYMUVLXBUWBUWCXSYFX
          CWHUVIUAUBUCYIYFYHPQUWHUWCUWGUAUDZPNZUBUDZPNZOUWJUWLQRZUWLUWJQRXBUVIU
          WJUWLXCVRUWKUWMUCUDZPNWMUWNUWOQRUWJUWLUWOQRQRXBUVIUWJUWLUWOXDVRXFVKXG
          XHUVIUVJUVNYPUVIUUKYOPNZUVFUVJUVNXOUWBUVIUWEUVHUWPUWHUWGYIYHWGWHZUWCX
          SYOYFXIWRXGXJUVIUVKUJUVIUUKUWPUVKUHZUWBUWQUWIUUKUWPOUWRWOPXSYOSXKWQWH
          XLXMXNXNXPXQXR $.

        $( Lemma for ~ cauappcvgpr .  The putative limit is located.
           (Contributed by Jim Kingdon, 18-Jul-2020.) $)
        cauappcvgprlemloc $p |- ( ph -> A. s e. Q. A. r e. Q.
            ( s <Q r -> ( s e. ( 1st ` L ) \/ r e. ( 2nd ` L ) ) ) ) $=
          ( cltq wbr wcel cnq cplq co vy vx vf vg vh cv c1st c2nd wo wi wa wceq
          wrex ltexnqi adantl subhalfnqq ad2antrl simprr simplrl adantr syl2anc
          cfv ltanqi simplrr breqtrd simprl addclnq wf ad4antr ffvelrnd wor w3a
          ltsonq sowlin mpan syl3anc simpr addassnqg breq1d mpbird wb addcomnqg
          ltanqg caovord2d oveq2 fveq2 breq12d rspcev oveq1 rexbidv crab fveq2i
          mpd cop nqex rabex op1st eqtri elrab2 sylanbrc ex oveq12d sylan breq2
          id op2nd orim12d rexlimddv ralrimivva ) AFUFZGUFZOPZXJEUGVBZQZXKEUHVB
          ZQZUIZUJFGRRAXJRQZXKRQZUKZUKZXLXQYAXLUKZXJUAUFZSTZXKULZXQUARXLYEUARUM
          YAUAXJXKUNUOYBYCRQZYEUKZUKZUBUFZYISTZYCOPZXQUBRYFYKUBRUMYBYEUBYCUPUQY
          HYIRQZYKUKZUKZXJYJSTZYIDVBZYISTZOPZYQXKOPZUIZXQYNYOXKOPZYTYNYOYDXKOYN
          YKXRYOYDOPYHYLYKURYHXRYMYBXRYGAXRXSXLUSUTUTZYJYCXJVCVAYBYFYEYMVDVEYNY
          ORQZXSYQRQZUUAYTUJZYNXRYJRQZUUCUUBYNYLYLUUFYHYLYKVFZUUGYIYIVGVAXJYJVG
          VAYHXSYMYBXSYGAXRXSXLVDUTUTZYNYPRQZYLUUDYNRRYIDARRDVHXTXLYGYMKVIUUGVJ
          ZUUGYPYIVGVAROVKUUCXSUUDVLUUEVMRYOXKYQOVNVOVPWMYNYRXNYSXPYNYRXNYNYRUK
          ZXRXJHUFZSTZUULDVBZOPZHRUMZXNYNXRYRUUBUTZUUKYLXJYISTZYPOPZUUPYHYLYKYR
          USZUUKUUSUURYISTZYQOPZUUKUVBYRYNYRVQUUKUVAYOYQOUUKXRYLYLUVAYOULUUQUUT
          UUTXJYIYIVRVPVSVTUUKUCUDUEUURYPYIORSUCUFZRQZUDUFZRQZUEUFZRQVLUVCUVEOP
          UVGUVCSTUVGUVESTOPWAUUKUVCUVEUVGWCUOUUKXRYLUURRQUUQUUTXJYIVGVAYNUUIYR
          UUJUTUUTUVDUVFUKUVCUVESTUVEUVCSTULUUKUVCUVEWBUOWDVTUUOUUSHYIRUULYIULZ
          UUMUURUUNYPOUULYIXJSWEUULYIDWFZWGWHVAJUFZUULSTZUUNOPZHRUMZUUPJXJRXMUV
          JXJULZUVLUUOHRUVNUVKUUMUUNOUVJXJUULSWIVSWJXMUVMJRWKZUUNUULSTZBUFZOPZH
          RUMZBRWKZWNZUGVBUVOEUWAUGNWLUVOUVTUVMJRWOWPZUVSBRWOWPZWQWRWSWTXAYNYSX
          PYNYSUKXSUVPXKOPZHRUMZXPYNXSYSUUHUTYNYLYSUWEUUGUWDYSHYIRUVHUVPYQXKOUV
          HUUNYPUULYISUVIUVHXEXBVSWHXCUVSUWEBXKRXOUVQXKULUVRUWDHRUVQXKUVPOXDWJX
          OUWAUHVBUVTEUWAUHNWLUVOUVTUWBUWCXFWRWSWTXAXGWMXHXHXAXI $.

        $( Lemma for ~ cauappcvgpr .  The putative limit is a positive real.
           (Contributed by Jim Kingdon, 20-Jun-2020.) $)
        cauappcvgprlemcl $p |- ( ph -> L e. P. ) $=
          ( vs vr cnq wcel cv wrex wa wral cpw cxp c1st cfv c2nd cltq wbr wb wn
          wo wi w3a cnp cauappcvgprlemm cplq co crab cop wss ssrab2 elpw2 mpbir
          nqex opelxpi mp2an eqeltri jctil cauappcvgprlemrnd cauappcvgprlemdisj
          cauappcvgprlemloc 3jca elnp1st2nd sylanbrc ) AEOUAZVNUBZPZMQZEUCUDZPZ
          MORNQZEUEUDZPZNORSZSVSVQVTUFUGZVTVRPSNORUHMOTWBWDVQWAPZSMORUHNOTSZVSW
          ESUIMOTZWDVSWBUJUKNOTMOTZULEUMPAWCVPABCDEMNFGHIJKLUNEHQFQZUOUPWIDUDZU
          FUGFORZHOUQZWJWIUOUPBQUFUGFORZBOUQZURZVOLWLVNPZWNVNPZWOVOPWPWLOUSWKHO
          UTWLOVCVAVBWQWNOUSWMBOUTWNOVCVAVBWLWNVNVNVDVEVFVGAWFWGWHABCDEMNFGHIJK
          LVHABCDEMFGHIJKLVIABCDEMNFGHIJKLVJVKENMVLVM $.
      $}

      ${
        $d F f g h l u p q r s t v $.  $d L f g h q r s t $.
        $d L f g h s t v x y $.  $d S f g h l q r s t u $.
        $d S f g h l s t u v x y $.  $d ph f g h q r s t v $.
        cauappcvgprlemladd.s $e |- ( ph -> S e. Q. ) $.
        $( Lemma for ~ cauappcvgprlemladd .  The forward subset relationship
           for the upper cut.  (Contributed by Jim Kingdon, 11-Jul-2020.) $)
        cauappcvgprlemladdfu $p |- ( ph ->
            ( 2nd ` ( L +P. <. { l | l <Q S } , { u | S <Q u } >. ) ) C_
            ( 2nd ` <.
            { l e. Q. | E. q e. Q. ( l +Q q ) <Q ( ( F ` q ) +Q S ) } ,
            { u e. Q. | E. q e. Q. ( ( ( F ` q ) +Q q ) +Q S ) <Q u }
            >. ) ) $=
          ( cltq wbr co cplq cnq wcel vr vs vt vf vg vh vx cab cop cpp c2nd cfv
          vy cv wrex crab wa cnp wb cauappcvgprlemcl nqprlu syl df-iplp addclnq
          genpelvu syl2anc biimpa breq2 rexbidv fveq2i rabex op2nd eqtri elrab2
          wceq nqex biimpi adantr adantl simpld vex ltnqex gtnqex elab2 ltrelnq
          brel sylbi simprd ad2antll mpbird ad2antrr ad5antr wf simplr ffvelrnd
          eleq1 ltanqg syl3anc mpbid simpr w3a addcomnqg caovord2d ltsonq sotri
          simpllr breqtrrd ex reximdva mpd sylanbrc rexlimdvva ssrdv ) AUAFIUNZ
          DOPIUHZDBUNZOPZBUHZUIZUJQUKULZXNGUNZRQZYAEULZDRQOPGSUOZISUPZYCYARQZDR
          QZXPOPZGSUOZBSUPZUIUKULZAUAUNZXTTZYLYKTZAYMUQZYLUBUNZUCUNZRQZVOZUCXSU
          KULZUOUBFUKULZUOZYNAYMUUBAFURTXSURTZYMUUBUSABCEFGHIJKLMUTADSTZUUCNBDI
          VAVBUDUEUFUGUMFXSYLUBUCUJRUGUMUFUEUDVCUEUNZUFUNZVDVEVFVGYOYSYNUBUCUUA
          YTYOYPUUATZYQYTTZUQZUQZYSYNUUJYSUQZYLSTZYGYLOPZGSUOZYNUUKUULYRSTZUUKY
          PSTZYQSTZUUOUUKUUPYFYPOPZGSUOZUUJUUPUUSUQZYSUUIUUTYOUUGUUTUUHUUGUUTYF
          XPOPZGSUOZUUSBYPSUUAXPYPVOUVAUURGSXPYPYFOVHVIUUAYBYCOPGSUOZISUPZUVBBS
          UPZUIZUKULUVEFUVFUKMVJUVDUVEUVCISVPVKUVBBSVPVKVLVMVNVQVRVSVRZVTZUUJUU
          QYSUUHUUQYOUUGUUHUUDUUQUUHDYQOPZUUDUUQUQXQUVIBYQYTUCWAXPYQDOVHXOXRIDW
          BBDWCVLWDZDYQSSOWEWFWGWHWIVRZYPYQVDVFYSUULUUOUSUUJYLYRSWPVSWJUUKUUSUU
          NUUKUUPUUSUVGWHUUKUURUUMGSUUKYASTZUQZUURUUMUVMUURUQZYGYRYLOUVNYGYFYQR
          QZOPZUVOYROPZYGYROPUVNUVIUVPUUKUVIUVLUURUUJUVIYSUUHUVIYOUUGUUHUVIUVJV
          QWIVRWKUVNUUDUUQYFSTZUVIUVPUSAUUDYMUUIYSUVLUURNWLUUKUUQUVLUURUVKWKZUV
          NYCSTUVLUVRUVNSSYAEASSEWMYMUUIYSUVLUURJWLUUKUVLUURWNZWOUVTYCYAVDVFZDY
          QYFWQWRWSUVNUURUVQUVMUURWTUVNUDUEUFYFYPYQOSRUDUNZSTZUUESTZUUFSTXAUWBU
          UEOPUUFUWBRQUUFUUERQOPUSUVNUWBUUEUUFWQVSUWAUUKUUPUVLUURUVHWKUVSUWCUWD
          UQUWBUUERQUUEUWBRQVOUVNUWBUUEXBVSXCWSYGUVOYROSXDWEXEVFUUJYSUVLUURXFXG
          XHXIXJYIUUNBYLSYKXPYLVOYHUUMGSXPYLYGOVHVIYEYJYDISVPVKYIBSVPVKVLVNXKXH
          XLXJXHXM $.

        $( Lemma for ~ cauappcvgprlemladd .  The forward subset relationship
           for the lower cut.  (Contributed by Jim Kingdon, 11-Jul-2020.) $)
        cauappcvgprlemladdfl $p |- ( ph ->
            ( 1st ` ( L +P. <. { l | l <Q S } , { u | S <Q u } >. ) ) C_
            ( 1st ` <.
            { l e. Q. | E. q e. Q. ( l +Q q ) <Q ( ( F ` q ) +Q S ) } ,
            { u e. Q. | E. q e. Q. ( ( ( F ` q ) +Q q ) +Q S ) <Q u }
            >. ) ) $=
          ( cltq co cplq cnq wcel wa vr vs vt vf vg vh vx vy cv wbr cab cop cpp
          c1st cfv wrex crab cnp wb cauappcvgprlemcl nqprlu syl df-iplp addclnq
          genpelvl syl2anc biimpa oveq1 breq1d rexbidv fveq2i rabex op1st eqtri
          wceq nqex elrab2 biimpi ad2antrl adantr simpld vex breq1 ltnqex elab2
          gtnqex ad2antll ltrelnq eleq1 adantl mpbird simprd ad2antrr addcomnqg
          simplr w3a addassnqg caov32d simpr wi lt2addnq syl2anr mp2and adantlr
          brel eqbrtrrd ad3antlr ex reximdva mpd sylanbrc rexlimdvva ssrdv ) AU
          AFIUIZDOUJZIUKZDBUIZOUJBUKZULZUMPUNUOZXNGUIZQPZYAEUOZDQPZOUJZGRUPZIRU
          QZYCYAQPZDQPXQOUJGRUPZBRUQZULUNUOZAUAUIZXTSZYLYKSZAYMTZYLUBUIZUCUIZQP
          ZVOZUCXSUNUOZUPUBFUNUOZUPZYNAYMUUBAFURSXSURSZYMUUBUSABCEFGHIJKLMUTADR
          SZUUCNBDIVAVBUDUEUFUGUHFXSYLUBUCUMQUGUHUFUEUDVCUEUIZUFUIZVDVEVFVGYOYS
          YNUBUCUUAYTYOYPUUASZYQYTSZTTZYSYNUUIYSTZYLRSZYLYAQPZYDOUJZGRUPZYNUUJU
          UKYRRSZUUJYPRSZYQRSZUUOUUJUUPYPYAQPZYCOUJZGRUPZUUIUUPUUTTZYSUUGUVAYOU
          UHUUGUVAYBYCOUJZGRUPZUUTIYPRUUAXNYPVOZUVBUUSGRUVDYBUURYCOXNYPYAQVHVIV
          JUUAUVCIRUQZYHXQOUJGRUPZBRUQZULZUNUOUVEFUVHUNMVKUVEUVGUVCIRVPVLUVFBRV
          PVLVMVNVQVRVSVTZWAZUUJUUQUUDUUJYQDOUJZUUQUUDTZUUIUVKYSUUHUVKYOUUGUUHU
          VKXOUVKIYQYTUCWBXNYQDOWCXPXRIDWDBDWFVMWEVRWGZVTYQDRROWHXEVBZWAZYPYQVD
          VFYSUUKUUOUSUUIYLYRRWIWJWKUUJUUTUUNUUJUUPUUTUVIWLUUJUUSUUMGRUUJYARSZT
          ZUUSUUMUVQUUSTZUUMYRYAQPZYDOUJZUVRUURYQQPZUVSYDOUVRUDUEUFYPYAYQRQUUJU
          UPUVPUUSUVJWMUUJUVPUUSWOUUJUUQUVPUUSUVOWMUDUIZRSZUUERSZTUWBUUEQPZUUEU
          WBQPVOUVRUWBUUEWNWJUWCUWDUUFRSWPUWEUUFQPUWBUUEUUFQPQPVOUVRUWBUUEUUFWQ
          WJWRUUJUUSUWAYDOUJZUVPUUJUUSTUUSUVKUWFUUJUUSWSUUIUVKYSUUSUVMWMUUSUURR
          SYCRSTUVLUUSUVKTUWFWTUUJUURYCRROWHXEUVNUURYCYQDXAXBXCXDXFYSUUMUVTUSUU
          IUVPUUSYSUULUVSYDOYLYRYAQVHVIXGWKXHXIXJYFUUNIYLRYKXNYLVOZYEUUMGRUWGYB
          UULYDOXNYLYAQVHVIVJYGYJYFIRVPVLYIBRVPVLVMVQXKXHXLXJXHXM $.

        $( Lemma for ~ cauappcvgprlemladd .  The reverse subset relationship
           for the upper cut.  (Contributed by Jim Kingdon, 11-Jul-2020.) $)
        cauappcvgprlemladdru $p |- ( ph ->
            ( 2nd ` <.
            { l e. Q. | E. q e. Q. ( l +Q q ) <Q ( ( F ` q ) +Q S ) } ,
            { u e. Q. | E. q e. Q. ( ( ( F ` q ) +Q q ) +Q S ) <Q u }
            >. ) C_
            ( 2nd ` ( L +P. <. { l | l <Q S } , { u | S <Q u } >. ) ) ) $=
          ( cplq co cltq wbr cnq wcel vr vv vf vg vh cfv wrex crab cop c2nd cab
          cv cpp weq breq2 rexbidv nqex rabex op2nd elrab2 cauappcvgprlemladdfl
          wa c1st wn wss oveq2 fveq2 oveq1d breq12d cbvrexv a1i rabbiia oveq12d
          wb id breq1d opeq12i fveq2i syl6sseq adantr wceq wf ad2antrr ffvelrnd
          simplr addassnqg syl3anc addclnq syl2anc sylancom eqeltrrd wor ltsonq
          simpr so2nr mpan addcomnqg adantl w3a caov32d ltanqg caovord2d biimpd
          3bitr2d wral oveq1 oveq2d breq2d anbi12d ralbidv rspcv mpd rsp simpld
          wi sylc breqtrd jctird mtod nrexdv ffvelrnda elrab3 syl mtbird eleq2i
          op1st sylnibr ssneldd adantlr wo cauappcvgprlemcl nqprlu addclpr prop
          cnp prloc sylan orcomd ecased ex rexlimdva expimpd syl5bi ssrdv ) AUA
          IULZGULZOPZUUFEUFZDOPZQRZGSUGZISUHZUUHUUFOPZDOPZBULZQRZGSUGZBSUHZUIZU
          JUFZFUUEDQRIUKDUUOQRBUKUIZUMPZUJUFZUAULZUUTTUVDSTZUUNUVDQRZGSUGZVBAUV
          DUVCTZUUQUVGBUVDSUUTBUAUNUUPUVFGSUUOUVDUUNQUOUPUULUURUUKISUQURUUQBSUQ
          URUSUTAUVEUVGUVHAUVEVBZUVFUVHGSUVIUUFSTZVBZUVFUVHUVKUVFVBZUVHUUNUVBVC
          UFZTZUVKUVNVDZUVFAUVJUVOUVEAUVJVBZUVMUUEUBULZOPZUVQEUFZDOPZQRZUBSUGZI
          SUHZUVSUVQOPZDOPZUUOQRZUBSUGZBSUHZUIZVCUFZUUNAUVMUWJVEUVJAUVMUUSVCUFU
          WJABCDEFGHIJKLMNVAUUSUWIVCUULUWCUURUWHUUKUWBISUUKUWBVNUUESTUUJUWAGUBS
          GUBUNZUUGUVRUUIUVTQUUFUVQUUEOVFUWKUUHUVSDOUUFUVQEVGZVHVIVJVKVLUUQUWGB
          SUUQUWGVNUUOSTUUPUWFGUBSUWKUUNUWEUUOQUWKUUMUWDDOUWKUUHUVSUUFUVQOUWLUW
          KVOVMVHVPVJVKVLVQVRVSVTUVPUUNUWCTZUUNUWJTUVPUWMUUNUVQOPZUVTQRZUBSUGZU
          VPUWOUBSUVPUVQSTZVBZUWOUUHUUFUVQOPZOPZUVSQRZUVSUWTQRZVBZUWRUWTSTZUVSS
          TZUXCVDZUWRUUMUVQOPZUWTSUWRUUHSTZUVJUWQUXGUWTWAUWRSSUUFEASSEWBUVJUWQJ
          WCZAUVJUWQWEZWDZUXJUVPUWQWNZUUHUUFUVQWFWGZUVPUWQUUMSTZUXGSTUWRUXHUVJU
          XNUXKUXJUUHUUFWHZWIZUUMUVQWHWJZWKUWRSSUVQEUXIUXLWDZSQWLUXDUXEVBUXFWMS
          UWTUVSQWOWPWIUWRUWOUXAUXBUWRUWOUXAUWRUWOUXGDOPZUVTQRUXGUVSQRUXAUWRUWN
          UXSUVTQUWRUCUDUEUUMDUVQSOUXPADSTZUVJUWQNWCZUXLUCULZSTZUDULZSTZVBUYBUY
          DOPZUYDUYBOPWAUWRUYBUYDWQWRZUYCUYEUEULZSTWSZUYFUYHOPUYBUYDUYHOPOPWAUW
          RUYBUYDUYHWFWRWTVPUWRUCUDUEUXGUVSDQSOUYIUYBUYDQRUYHUYBOPUYHUYDOPQRVNU
          WRUYBUYDUYHXAWRUXQUXRUYAUYGXBUWRUXGUWTUVSQUXMVPXDXCUWRUVSUUHUVQUUFOPZ
          OPZUWTQUWRUVSUYKQRZUUHUVSUYJOPZQRZUWRUYLUYNVBZGSXEZUVJUYOUWRHULZEUFZU
          UHUYQUUFOPZOPZQRZUUHUYRUYSOPZQRZVBZGSXEZHSXEZUYPAVUFUVJUWQKWCUWQVUFUY
          PXOUVPVUEUYPHUVQSHUBUNZVUDUYOGSVUGVUAUYLVUCUYNVUGUYRUVSUYTUYKQUYQUVQE
          VGZVUGUYSUYJUUHOUYQUVQUUFOXFZXGVIVUGVUBUYMUUHQVUGUYRUVSUYSUYJOVUHVUIV
          MXHXIXJXKWRXLUXJUYOGSXMXPXNUWRUYJUWSUUHOUWRUWQUVJUYJUWSWAUXLUXJUVQUUF
          WQWIXGXQXRXSXTUVPUUNSTZUWMUWPVNUVPUXNUXTVUJAUVJUXHUXNASSUUFEJYAUXOWJA
          UXTUVJNVTUUMDWHWIUWBUWPIUUNSUUEUUNWAZUWAUWOUBSVUKUVRUWNUVTQUUEUUNUVQO
          XFVPUPYBYCYDUWJUWCUUNUWCUWHUWBISUQURUWGBSUQURYFYEYGYHYIVTUVLUVNUVHUVI
          UVFUVNUVHYJZUVJAUVFVULUVEAUVMUVCUIYOTZUVFVULAUVBYOTZVUMAFYOTUVAYOTZVU
          NABCEFGHIJKLMYKAUXTVUONBDIYLYCFUVAYMWIUVBYNYCUUNUVDUVCUVMYPYQYIYIYRYS
          YTUUAUUBUUCUUD $.

        ${
          $d F f g h l p q r u b $.  $d L f g h b $.  $d S f g h l p u b $.
          $d b f g h p ph q r $.
          $( Lemma for ~ cauappcvgprlemladd .  The forward subset relationship
             for the lower cut.  (Contributed by Jim Kingdon, 11-Jul-2020.) $)
          cauappcvgprlemladdrl $p |- ( ph ->
              ( 1st ` <.
              { l e. Q. | E. q e. Q. ( l +Q q ) <Q ( ( F ` q ) +Q S ) } ,
              { u e. Q. | E. q e. Q. ( ( ( F ` q ) +Q q ) +Q S ) <Q u }
              >. ) C_
              ( 1st ` ( L +P. <. { l | l <Q S } , { u | S <Q u } >. ) ) ) $=
            ( cplq co cltq wbr cnq wcel vr vb vf vg vh cv cfv wrex crab cop cab
            c1st cpp wa oveq1 breq1d rexbidv nqex rabex op1st elrab2 c2nd wn wf
            weq ad3antrrr ffvelrnda simplr addclnq sylan syl2anc adantr simpllr
            ffvelrnd wor ltsonq mpan wceq sylancom addassnqg syl3anc w3a ltanqg
            so2nr adantl addcomnqg caovord2d oveq2d 3bitr4rd simpr eqtrd biimpd
            bitrd wral fveq2 breq12d oveq12d breq2d anbi12d ralbidv rspcv mpan9
            wb rsp sylc simprd breqtrd jctird mtod nrexdv intnand oveq2 cbvralv
            ralbii sylibr cbvrexv rabbiia id opeq12i eqtri cauappcvgprlemladdfu
            a1i sseld breq2 op2nd syl6ib cnp wo cauappcvgprlemcl nqprlu addclpr
            syl prop prloc ecased caucvgprlemcanl mpbid ex rexlimdva expimpd
            syl5bi ssrdv ) AUAIUFZGUFZOPZUUDEUGZDOPZQRZGSUHZISUIZUUFUUDOPZDOPBU
            FZQRGSUHZBSUIZUJULUGZFUUCDQRIUKDUULQRBUKUJUMPULUGZUAUFZUUOTUUQSTZUU
            QUUDOPZUUGQRZGSUHZUNAUUQUUPTZUUIUVAIUUQSUUOIUAVEZUUHUUTGSUVCUUEUUSU
            UGQUUCUUQUUDOUOUPUQUUJUUNUUIISURUSUUMBSURUSUTVAAUURUVAUVBAUURUNZUUT
            UVBGSUVDUUDSTZUNZUUTUVBUVFUUTUNZUUSFUUCDUUDOPZQRIUKUVHUULQRBUKUJZUM
            PZULUGZTZUVBUVGUVLUUGUVJVBUGZTZUVGUVNUUGSTZUBUFZEUGZUVPOPZUVHOPZUUG
            QRZUBSUHZUNZUVGUWAUVOUVGUVTUBSUVGUVPSTZUNZUVTUVQUUDUVPOPZOPZUUFQRZU
            UFUWFQRZUNZUWDUWFSTZUUFSTZUWIVCZUWDUVQSTZUWESTZUWJUVGSSUVPEASSEVDZU
            URUVEUUTJVFZVGZUVGUVEUWCUWNUVDUVEUUTVHZUUDUVPVIVJUVQUWEVIVKUWDSSUUD
            EUVGUWOUWCUWPVLUVDUVEUUTUWCVMZVNZSQVOUWJUWKUNUWLVPSUWFUUFQWDVQVKUWD
            UVTUWGUWHUWDUVTUWGUWDUVTUVRUUDOPZUUFQRZUWGUWDUXADOPZUUGQRUVRUUDDOPZ
            OPZUUGQRUXBUVTUWDUXCUXEUUGQUWDUVRSTZUVEDSTZUXCUXEVRUVGUWCUWMUXFUWQU
            VQUVPVIVSZUWSUVGUXGUWCAUXGUURUVEUUTNVFZVLZUVRUUDDVTWAUPUWDUCUDUEUXA
            UUFDQSOUCUFZSTZUDUFZSTZUEUFZSTWBUXKUXMQRUXOUXKOPUXOUXMOPQRXCUWDUXKU
            XMUXOWCWEUWDUXFUVEUXASTUXHUWSUVRUUDVIVKUWTUXJUXLUXNUNUXKUXMOPUXMUXK
            OPVRUWDUXKUXMWFWEWGUWDUVSUXEUUGQUWDUVHUXDUVROUWDUXGUVEUVHUXDVRUXJUW
            SDUUDWFVKWHUPWIUWDUXAUWFUUFQUWDUXAUVQUVPUUDOPZOPZUWFUWDUWMUWCUVEUXA
            UXQVRUWQUVGUWCWJZUWSUVQUVPUUDVTWAUWDUXPUWEUVQOUWDUWCUVEUXPUWEVRUXRU
            WSUVPUUDWFVKWHZWKUPWMWLUWDUUFUXQUWFQUWDUVQUUFUXPOPZQRZUUFUXQQRZUWDU
            YAUYBUNZGSWNZUVEUYCUVGHUFZEUGZUUFUYEUUDOPZOPZQRZUUFUYFUYGOPZQRZUNZG
            SWNZHSWNZUWCUYDAUYNUURUVEUUTKVFZUYMUYDHUVPSHUBVEZUYLUYCGSUYPUYIUYAU
            YKUYBUYPUYFUVQUYHUXTQUYEUVPEWOZUYPUYGUXPUUFOUYEUVPUUDOUOZWHWPUYPUYJ
            UXQUUFQUYPUYFUVQUYGUXPOUYQUYRWQWRWSWTXAXBUWSUYCGSXDXEXFUXSXGXHXIXJX
            KUVGUVNUUGUUCUVPOPZUVQUVHOPQRUBSUHZISUIZUVSUULQRZUBSUHZBSUIZUJVBUGZ
            TUWBUVGUVMVUEUUGUVGBCUVHEFUBHIUWPUVGUYNUYFUVQUYEUVPOPZOPZQRZUVQUYFV
            UFOPZQRZUNZUBSWNZHSWNUYOVULUYMHSVUKUYLUBGSUBGVEZVUHUYIVUJUYKVUMVUGU
            YHUYFQVUMUVQUUFVUFUYGOUVPUUDEWOZUVPUUDUYEOXLZWQWRVUMUVQUUFVUIUYJQVU
            NVUMVUFUYGUYFOVUOWHWPWSXMXNXOACUYFQRHSWNUURUVEUUTLVFFUUEUUFQRZGSUHZ
            ISUIZUUKUULQRZGSUHZBSUIZUJUYSUVQQRZUBSUHZISUIZUVRUULQRZUBSUHZBSUIZU
            JMVURVVDVVAVVGVUQVVCISVUQVVCXCUUCSTVUPVVBGUBSGUBVEZUUEUYSUUFUVQQUUD
            UVPUUCOXLUUDUVPEWOZWPXPYBXQVUTVVFBSVUTVVFXCUULSTVUSVVEGUBSVVHUUKUVR
            UULQVVHUUFUVQUUDUVPOVVIVVHXRWQUPXPYBXQXSXTUVGUXGUVEUVHSTZUXIUWRDUUD
            VIVKZYAYCVUCUWABUUGSVUEUULUUGVRVUBUVTUBSUULUUGUVSQYDUQVUAVUDUYTISUR
            USVUCBSURUSYEVAYFXIUVFUUTUVJYGTZUVLUVNYHZUVGFYGTZUVIYGTZVVLAVVNUURU
            VEUUTABCEFGHIJKLMYIVFZUVGVVJVVOVVKBUVHIYJYLFUVIYKVKVVLUVKUVMUJYGTUU
            TVVMUVJYMUUSUUGUVMUVKYNVJVSYOUVGBUUDUUQDFIVVPUXIAUURUVEUUTVMUWRYPYQ
            YRYSYTUUAUUB $.
        $}

        ${
          $d S p $.

          $( Lemma for ~ cauappcvgpr .  This takes ` L ` and offsets it by the
             positive fraction ` S ` .  (Contributed by Jim Kingdon,
             23-Jun-2020.) $)
          cauappcvgprlemladd $p |- ( ph ->
            ( L +P. <. { l | l <Q S } , { u | S <Q u } >. ) = <.
            { l e. Q. | E. q e. Q. ( l +Q q ) <Q ( ( F ` q ) +Q S ) } ,
            { u e. Q. | E. q e. Q. ( ( ( F ` q ) +Q q ) +Q S ) <Q u }
            >. ) $=
            ( co cfv cnq wceq wcel syl cltq wbr cab cop cpp cplq wrex crab c1st
            c2nd cauappcvgprlemladdfl cauappcvgprlemladdrl cauappcvgprlemladdfu
            cv eqssd cauappcvgprlemladdru wa wb cauappcvgprlemcl nqprlu addclpr
            cnp syl2anc cpw cxp npsspw sseli 1st2nd2 ssrab2 elpw2 mpbir opelxpi
            wss nqex mp2an mp1i eqeq12d xp1st xp2nd opthg bitrd mpbir2and ) AFI
            UNZDUAUBIUCDBUNZUAUBBUCUDZUEOZWCGUNZUFOWGEPZDUFOUAUBGQUGZIQUHZWHWGU
            FODUFOWDUAUBGQUGZBQUHZUDZRZWFUIPZWMUIPZRZWFUJPZWMUJPZRZAWOWPABCDEFG
            HIJKLMNUKABCDEFGHIJKLMNULUOAWRWSABCDEFGHIJKLMNUMABCDEFGHIJKLMNUPUOA
            WFVBSZWNWQWTUQZURAFVBSWEVBSZXAABCEFGHIJKLMUSADQSXCNBDIUTTFWEVAVCXAW
            NWOWRUDZWPWSUDZRZXBXAWFXDWMXEXAWFQVDZXGVEZSZWFXDRVBXHWFVFVGZWFXGXGV
            HTWMXHSZWMXERXAWJXGSZWLXGSZXKXLWJQVMWIIQVIWJQVNVJVKXMWLQVMWKBQVIWLQ
            VNVJVKWJWLXGXGVLVOWMXGXGVHVPVQXAWOXGSZWRXGSZXFXBURXAXIXNXJWFXGXGVRT
            XAXIXOXJWFXGXGVSTWOWRWPWSXGXGVTVCWATWB $.
        $}
      $}

      ${
        $d F f g h p q l u x $.  $d L q x $.  $d Q f g h p q l u x $.
        $d R f g h p q l u x $.  $d ph f g h q x $.
        cauappcvgprlem.q $e |- ( ph -> Q e. Q. ) $.
        cauappcvgprlem.r $e |- ( ph -> R e. Q. ) $.
        $( Lemma for ~ cauappcvgpr .  Part of showing the putative limit to be
           a limit.  (Contributed by Jim Kingdon, 23-Jun-2020.) $)
        cauappcvgprlem1 $p |- ( ph ->
            <. { l | l <Q ( F ` Q ) } , { u | ( F ` Q ) <Q u } >. <P
            ( L +P.
            <. { l | l <Q ( Q +Q R ) } , { u | ( Q +Q R ) <Q u } >. ) ) $=
          ( cplq co cltq cnq vx vf vg vh cfv cv wbr cab cop c1st wcel cltp wrex
          cpp wceq halfnqq syl wa simprl wral adantr fveq2 oveq1 oveq2d breq12d
          wi oveq12d breq2d anbi12d oveq2 rspc2v syl2anc mpd simpld wf ffvelrnd
          addassnqg syl3anc breqtrrd wb ltanqg adantl addcomnqg caovord2d mpbid
          w3a addclnq simprr 3eqtrd breqtrd oveq1d rexlimddv cauappcvgprlemladd
          rspcev crab fveq2d nqex rabex op1st syl6eq eleq2d breq1d elrab3 bitrd
          rexbidv mpbird cnp cauappcvgprlemcl nqprlu addclpr nqprl ) ADFUEZGJUF
          ZDEQRZSUGJUHXNBUFZSUGBUHUIZUNRZUJUEZUKZXMXLSUGJUHXLXOSUGBUHUIXQULUGZA
          XSXLHUFZQRZYAFUEZXNQRZSUGZHTUMZAUAUFZYGQRZEUOZYFUATAETUKZYIUATUMPUAEU
          PUQAYGTUKZYIURZURZYKXLYGQRZYGFUEZXNQRZSUGZYFAYKYIUSZYMYNYODQRZYGQRZYG
          QRZYPSYMXLYTSUGYNUUASUGYMXLYODYGQRZQRZYTSYMXLUUCSUGZYOXLUUBQRZSUGZYMI
          UFZFUEZYCUUGYAQRZQRZSUGZYCUUHUUIQRZSUGZURZHTUTITUTZUUDUUFURZAUUOYLLVA
          YMDTUKZYKUUOUUPVFAUUQYLOVAZYRUUNUUPXLYCDYAQRZQRZSUGZYCXLUUSQRZSUGZURI
          HDYGTTUUGDUOZUUKUVAUUMUVCUVDUUHXLUUJUUTSUUGDFVBZUVDUUIUUSYCQUUGDYAQVC
          ZVDVEUVDUULUVBYCSUVDUUHXLUUIUUSQUVEUVFVGVHVIYAYGUOZUVAUUDUVCUUFUVGUUT
          UUCXLSUVGYCYOUUSUUBQYAYGFVBZYAYGDQVJZVGVHUVGYCYOUVBUUESUVHUVGUUSUUBXL
          QUVIVDVEVIVKVLVMVNYMYOTUKZUUQYKYTUUCUOYMTTYGFATTFVOYLKVAYRVPZUURYRYOD
          YGVQVRVSYMUBUCUDXLYTYGSTQUBUFZTUKZUCUFZTUKZUDUFZTUKWFUVLUVNSUGUVPUVLQ
          RUVPUVNQRSUGVTYMUVLUVNUVPWAWBAXLTUKZYLATTDFKOVPZVAYMYSTUKZYKYTTUKYMUV
          JUUQUVSUVKUURYODWGVLZYRYSYGWGVLYRUVMUVOURUVLUVNQRUVNUVLQRUOYMUVLUVNWC
          WBWDWEYMUUAYSYHQRZYSEQRZYPYMUVSYKYKUUAUWAUOUVTYRYRYSYGYGVQVRYMYHEYSQA
          YKYIWHVDYMUVJUUQYJUWBYPUOUVKUURAYJYLPVAYODEVQVRWIWJYEYQHYGTUVGYBYNYDY
          PSYAYGXLQVJUVGYCYOXNQUVHWKVEWNVLWLAXSXLXMYAQRZYDSUGZHTUMZJTWOZUKZYFAX
          RUWFXLAXRUWFYCYAQRXNQRXOSUGHTUMZBTWOZUIZUJUEUWFAXQUWJUJABCXNFGHIJKLMN
          AUUQYJXNTUKZOPDEWGVLZWMWPUWFUWIUWEJTWQWRUWHBTWQWRWSWTXAAUVQUWGYFVTUVR
          UWEYFJXLTXMXLUOZUWDYEHTUWMUWCYBYDSXMXLYAQVCXBXEXCUQXDXFAUVQXQXGUKZXSX
          TVTUVRAGXGUKXPXGUKZUWNABCFGHIJKLMNXHAUWKUWOUWLBXNJXIUQGXPXJVLBXLXQJXK
          VLWE $.

        $( Lemma for ~ cauappcvgpr .  Part of showing the putative limit to be
           a limit.  (Contributed by Jim Kingdon, 23-Jun-2020.) $)
        cauappcvgprlem2 $p |- ( ph ->
          L <P <. { l | l <Q ( ( F ` Q ) +Q ( Q +Q R ) ) } ,
          { u | ( ( F ` Q ) +Q ( Q +Q R ) ) <Q u } >. ) $=
          ( cltq wbr cnq wcel vx cfv cplq co cv wa cab cop cltp ltaddnq syl2anc
          wrex ffvelrnd ltanqi ltbtwnnqq sylib c2nd simprl adantr simprrl fveq2
          c1st wceq oveq12d breq1d rspcev breq2 rexbidv crab fveq2i rabex op2nd
          id nqex eqtri elrab2 sylanbrc simprrr breq1 elab sylibr ltnqex gtnqex
          vex op1st syl6eleqr rspe syl12anc cnp cauappcvgprlemcl addclnq nqprlu
          wb syl ltdfpr mpbird rexlimddv ) ADFUBZDUCUDZUAUEZQRZWTWRDEUCUDZUCUDZ
          QRZUFZGJUEZXCQRZJUGZXCBUEZQRBUGZUHZUIRZUASAWSXCQRZXEUASULADXBQRZWRSTZ
          XMADSTZESTZXNOPDEUJUKASSDFKOUMZDXBWRUNUKUAWSXCUOUPAWTSTZXEUFZUFZXLWTG
          UQUBZTZWTXKVBUBZTZUFZUASULZYAXSYCYEYGAXSXEURZYAXSHUEZFUBZYIUCUDZWTQRZ
          HSULZYCYHYAXPXAYMAXPXTOUSAXSXAXDUTYLXAHDSYIDVCZYKWSWTQYNYJWRYIDUCYIDF
          VAYNVMVDVEVFUKYKXIQRZHSULZYMBWTSYBXIWTVCYOYLHSXIWTYKQVGVHYBXFYIUCUDYJ
          QRHSULZJSVIZYPBSVIZUHZUQUBYSGYTUQNVJYRYSYQJSVNVKYPBSVNVKVLVOVPVQYAWTX
          HYDYAXDWTXHTAXSXAXDVRXGXDJWTUAWDXFWTXCQVSVTWAXHXJJXCWBBXCWCWEWFYFUASW
          GWHYAGWITZXKWITZXLYGWMAUUAXTABCFGHIJKLMNWJUSAUUBXTAXCSTZUUBAXOXBSTZUU
          CXRAXPXQUUDOPDEWKUKWRXBWKUKBXCJWLWNUSGXKUAWOUKWPWQ $.
      $}

      ${
        $d F l p q r u x y $.  $d L q r x y $.  $d ph x y q $.
        $( Lemma for ~ cauappcvgpr .  The putative limit is a limit.
           (Contributed by Jim Kingdon, 20-Jun-2020.) $)
        cauappcvgprlemlim $p |- ( ph -> A. q e. Q. A. r e. Q. (
            <. { l | l <Q ( F ` q ) } , { u | ( F ` q ) <Q u } >. <P
              ( L +P. <. { l | l <Q ( q +Q r ) } ,
                { u | ( q +Q r ) <Q u } >. ) /\
            L <P <. { l | l <Q ( ( F ` q ) +Q ( q +Q r ) ) } ,
              { u | ( ( F ` q ) +Q ( q +Q r ) ) <Q u } >. ) ) $=
          ( cltq wbr cab cplq co cltp cnq vx vy cv cfv cop cpp wral wcel adantr
          wa simprl simprr cauappcvgprlem1 cauappcvgprlem2 jca ralrimivva fveq2
          weq breq2d abbidv breq1d opeq12d oveq1 oveq2d breq12d oveq12d anbi12d
          wf oveq2 cbvral2v sylib ) AIUCZUAUCZDUDZNOZIPZVNBUCZNOZBPZUEZEVLVMUBU
          CZQRZNOZIPZWBVQNOZBPZUEZUFRZSOZEVLVNWBQRZNOZIPZWJVQNOZBPZUEZSOZUJZUBT
          UGUATUGVLGUCZDUDZNOZIPZWSVQNOZBPZUEZEVLWRFUCZQRZNOZIPZXFVQNOZBPZUEZUF
          RZSOZEVLWSXFQRZNOZIPZXNVQNOZBPZUEZSOZUJZFTUGGTUGAWQUAUBTTAVMTUHZWATUH
          ZUJZUJZWIWPYEBCVMWADEGHIATTDVHYDJUIZAHUCZDUDZWSYGWRQRZQRNOWSYHYIQRNOU
          JGTUGHTUGYDKUIZACYHNOHTUGYDLUIZMAYBYCUKZAYBYCULZUMYEBCVMWADEGHIYFYJYK
          MYLYMUNUOUPWQYAXDEVLWRWAQRZNOZIPZYNVQNOZBPZUEZUFRZSOZEVLWSYNQRZNOZIPZ
          UUBVQNOZBPZUEZSOZUJUAUBGFTTUAGURZWIUUAWPUUHUUIVTXDWHYTSUUIVPXAVSXCUUI
          VOWTIUUIVNWSVLNVMWRDUQZUSUTUUIVRXBBUUIVNWSVQNUUJVAUTVBUUIWGYSEUFUUIWD
          YPWFYRUUIWCYOIUUIWBYNVLNVMWRWAQVCZUSUTUUIWEYQBUUIWBYNVQNUUKVAUTVBVDVE
          UUIWOUUGESUUIWLUUDWNUUFUUIWKUUCIUUIWJUUBVLNUUIVNWSWBYNQUUJUUKVFZUSUTU
          UIWMUUEBUUIWJUUBVQNUULVAUTVBUSVGUBFURZUUAXMUUHXTUUMYTXLXDSUUMYSXKEUFU
          UMYPXHYRXJUUMYOXGIUUMYNXFVLNWAXEWRQVIZUSUTUUMYQXIBUUMYNXFVQNUUNVAUTVB
          VDUSUUMUUGXSESUUMUUDXPUUFXRUUMUUCXOIUUMUUBXNVLNUUMYNXFWSQUUNVDZUSUTUU
          MUUEXQBUUMUUBXNVQNUUOVAUTVBUSVGVJVK $.
      $}
    $}

    ${
      $d F q y z $.  $d F r y z $.  $d F u $.  $d F p $.  $d F l $.
      $d l q y z $.  $d l r y z $.  $d q u y z $.  $d r u y z $.  $d q r $.
      $d p u $.  $d p r $.  $d p q $.  $d l u $.  $d l p $.  $d ph q $.
      $d ph p $.  $d p z $.  $d q z $.
      $( A Cauchy approximation has a limit.  A Cauchy approximation, here
         ` F ` , is similar to a Cauchy sequence but is indexed by the desired
         tolerance (that is, how close together terms needs to be) rather than
         by natural numbers.  This is basically Theorem 11.2.12 of [HoTT], p.
         (varies) with a few differences such as that we are proving the
         existence of a limit without anything about how fast it converges
         (that is, mere existence instead of existence, in HoTT terms), and
         that the codomain of ` F ` is ` Q. ` rather than ` P. ` .  We also
         specify that every term needs to be larger than a fraction ` A ` , to
         avoid the case where we have positive terms which "converge" to zero
         (which is not a positive real).

         This proof (including its lemmas) is similar to the proofs of
         ~ caucvgpr and ~ caucvgprpr but is somewhat simpler, so reading this
         one first may help understanding the other two.

         (Contributed by Jim Kingdon, 19-Jun-2020.) $)
      cauappcvgpr $p |- ( ph -> E. y e. P. A. q e. Q. A. r e. Q. (
          <. { l | l <Q ( F ` q ) } , { u | ( F ` q ) <Q u } >. <P
            ( y +P. <. { l | l <Q ( q +Q r ) } ,
            { u | ( q +Q r ) <Q u } >. ) /\
          y <P <. { l | l <Q ( ( F ` q ) +Q ( q +Q r ) ) } ,
            { u | ( ( F ` q ) +Q ( q +Q r ) ) <Q u } >. ) ) $=
        ( cv cplq co cltq wbr cnq cab cltp vz cfv wrex crab cop cnp wcel cpp wa
        wral wb wceq oveq2 fveq2 breq12d cbvrexv a1i rabbiia id oveq12d opeq12i
        breq1d cauappcvgprlemcl cauappcvgprlemlim oveq1 breq2d anbi12d 2ralbidv
        breq1 rspcev syl2anc ) AIMZUAMZNOZVMEUBZPQZUARUCZIRUDZVOVMNOZCMZPQZUARU
        CZCRUDZUEZUFUGVLGMZEUBZPQISWFVTPQCSUEZWDVLWEFMNOZPQISWHVTPQCSUEZUHOZTQZ
        WDVLWFWHNOZPQISWLVTPQCSUEZTQZUIZFRUJGRUJZWGBMZWIUHOZTQZWQWMTQZUIZFRUJGR
        UJZBUFUCACDEWDGHIJKLVRVLWENOZWFPQZGRUCZIRUDWCWFWENOZVTPQZGRUCZCRUDVQXEI
        RVQXEUKVLRUGVPXDUAGRVMWEULZVNXCVOWFPVMWEVLNUMVMWEEUNZUOUPUQURWBXHCRWBXH
        UKVTRUGWAXGUAGRXIVSXFVTPXIVOWFVMWENXJXIUSUTVBUPUQURVAZVCACDEWDFGHIJKLXK
        VDXBWPBWDUFWQWDULZXAWOGFRRXLWSWKWTWNXLWRWJWGTWQWDWIUHVEVFWQWDWMTVIVGVHV
        JVK $.
    $}
  $}

  ${
    $d A j $.
    $( Archimedean principle for fractions (reciprocal version).  (Contributed
       by Jim Kingdon, 27-Sep-2020.) $)
    archrecnq $p |- ( A e. Q. -> E. j e. N.
        ( *Q ` [ <. j , 1o >. ] ~Q ) <Q A ) $=
      ( cnq wcel crq cfv c1o cop ceq cec cltq wbr cnpi wrex recclnq archnqq syl
      cv wa wb nnnq ltrnqg syl2an recrecnq breq2d adantr bitrd rexbidva mpbid )
      ACDZAEFZBRZGHIJZKLZBMNZUMEFZAKLZBMNUJUKCDZUOAOZBUKPQUJUNUQBMUJULMDZSUNUPU
      KEFZKLZUQUJURUMCDUNVBTUTUSULUAUKUMUBUCUJVBUQTUTUJVAAUPKAUDUEUFUGUHUI $.
  $}

  ${
    $d A j x $.  $d j l u $.
    $( Archimedean principle for positive reals (reciprocal version).
       (Contributed by Jim Kingdon, 25-Nov-2020.) $)
    archrecpr $p |- ( A e. P. -> E. j e. N.
        <. { l | l <Q ( *Q ` [ <. j , 1o >. ] ~Q ) } ,
          { u | ( *Q ` [ <. j , 1o >. ] ~Q ) <Q u }
        >. <P A ) $=
      ( vx cnp wcel cv c1o cop cfv cnpi wrex cltq wbr cab cnq syl wa syl2anc wi
      ceq cec crq c1st cltp c2nd prop prml archrecnq ad2antrl ad2antrr reximdva
      simplrr prcdnql mpd rexlimddv wb nnnq recclnq adantl simpl nqprl rexbidva
      mpbid ) BFGZCHZIJUBUCZUDKZBUEKZGZCLMZDHVINODPVIAHNOAPJBUFOZCLMVFEHZVJGZVL
      EQVFVJBUGKZJFGZVOEQMBUHZEVPVJUIRVFVNQGZVOSZSZVIVNNOZCLMZVLVSWCVFVOVNCUJUK
      WAWBVKCLWAVGLGZSVQVOWBVKUAVFVQVTWDVRULVFVSVOWDUNVNVIVPVJUOTUMUPUQVFVKVMCL
      VFWDSVIQGZVFVKVMURWDWEVFWDVHQGWEVGUSVHUTRVAVFWDVBAVIBDVCTVDVE $.
  $}

  ${
    caucvgprlemk.jk $e |- ( ph -> J <N K ) $.
    caucvgprlemk.jkq $e |- ( ph ->
      ( *Q ` [ <. J , 1o >. ] ~Q ) <Q Q ) $.
    $( Lemma for ~ caucvgpr .  Reciprocals of positive integers decrease as the
       positive integers increase.  (Contributed by Jim Kingdon,
       9-Oct-2020.) $)
    caucvgprlemk $p |- ( ph ->
        ( *Q ` [ <. K , 1o >. ] ~Q ) <Q Q ) $=
      ( c1o cop ceq cec crq cfv cltq wbr clti cnpi wcel wa wb syl ltrelpi mpbid
      brel ltnnnq ltrnqi cnq ltsonq ltrelnq sotri syl2anc ) ADGHIJZKLZCGHIJZKLZ
      MNZUNBMNULBMNAUMUKMNZUOACDONZUPEACPQDPQRZUQUPSAUQURECDPPOUAUCTCDUDTUBUMUK
      UETFULUNBMUFUGUHUIUJ $.
  $}

  ${
    $d A j $.
    caucvgpr.f $e |- ( ph -> F : N. --> Q. ) $.
    caucvgpr.cau $e |- ( ph ->
      A. n e. N. A. k e. N. ( n <N k ->
      ( ( F ` n ) <Q ( ( F ` k ) +Q ( *Q ` [ <. n , 1o >. ] ~Q ) ) /\
        ( F ` k ) <Q ( ( F ` n ) +Q ( *Q ` [ <. n , 1o >. ] ~Q ) ) ) ) ) $.
    ${
      $d F a b k $.  $d F f g h $.  $d F a k n $.  $d J a b $.  $d J f g h $.
      $d K a b $.  $d K f g h $.  $d S f g h $.  $d f g h ph $.
      caucvgprlemnkj.k $e |- ( ph -> K e. N. ) $.
      caucvgprlemnkj.j $e |- ( ph -> J e. N. ) $.
      caucvgprlemnkj.s $e |- ( ph -> S e. Q. ) $.
      $( Lemma for ~ caucvgpr .  Part of disjointness.  (Contributed by Jim
         Kingdon, 23-Oct-2020.) $)
      caucvgprlemnkj $p |- ( ph -> -.
          ( ( S +Q ( *Q ` [ <. K , 1o >. ] ~Q ) ) <Q ( F ` K ) /\
          ( ( F ` J ) +Q ( *Q ` [ <. J , 1o >. ] ~Q ) ) <Q S ) ) $=
        ( clti wbr cplq co cltq wa cnq cnpi va vb vf vg c1o cop ceq cec crq cfv
        vh wn wceq ltsonq ltrelnq son2lpi simprl cv wi breq1 fveq2 opeq1 eceq1d
        wral fveq2d oveq2d breq12d oveq12d breq2d anbi12d imbi12d oveq1d breq1d
        breq2 cbvral2v sylib wcel rspc2v syl2anc mpd imp simpld adantr sotri wb
        ltanqg adantl ad2antrr ffvelrnd nnnq recclnq addcomnqg caovord2d mpbird
        w3a 3syl ltaddnq simprr jca ex mtoi anbi1d addclnq syl6bi jctird simprd
        bitrd w3o pitri3or mpjao3dan ) AGFMNZBGUEUFZUGUHZUIUJZOPZGEUJZQNZFEUJZF
        UEUFZUGUHZUIUJZOPZBQNZRZULGFUMZFGMNZAXKRZYDBXRQNZXRBQNZRZBXRQSUNUOUPYGY
        DYJYGYDRZYHYIYKYHXOXRXNOPZQNZYKXQXPYLQNZYMYGXQYCUQYGYNYDYGYNXRXPXNOPZQN
        ZAXKYNYPRZAUAURZUBURZMNZYREUJZYSEUJZYRUEUFZUGUHZUIUJZOPZQNZUUBUUAUUEOPZ
        QNZRZUSZUBTVDUATVDZXKYQUSZADURZCURZMNZUUNEUJZUUOEUJZUUNUEUFZUGUHZUIUJZO
        PZQNZUURUUQUVAOPZQNZRZUSZCTVDDTVDUULIUVGUUKYRUUOMNZUUAUURUUEOPZQNZUURUU
        HQNZRZUSDCUAUBTTUUNYRUMZUUPUVHUVFUVLUUNYRUUOMUTUVMUVCUVJUVEUVKUVMUUQUUA
        UVBUVIQUUNYREVAZUVMUVAUUEUUROUVMUUTUUDUIUVMUUSUUCUGUUNYRUEVBVCVEZVFVGUV
        MUVDUUHUURQUVMUUQUUAUVAUUEOUVNUVOVHVIVJVKUUOYSUMZUVHYTUVLUUJUUOYSYRMVNU
        VPUVJUUGUVKUUIUVPUVIUUFUUAQUVPUURUUBUUEOUUOYSEVAZVLVIUVPUURUUBUUHQUVQVM
        VJVKVOVPZAGTVQZFTVQZUULUUMUSJKUUKUUMGYSMNZXPUUBXNOPZQNZUUBYOQNZRZUSUAUB
        GFTTYRGUMZYTUWAUUJUWEYRGYSMUTUWFUUGUWCUUIUWDUWFUUAXPUUFUWBQYRGEVAZUWFUU
        EXNUUBOUWFUUDXMUIUWFUUCXLUGYRGUEVBVCVEZVFVGUWFUUHYOUUBQUWFUUAXPUUEXNOUW
        GUWHVHVIVJVKYSFUMZUWAXKUWEYQYSFGMVNUWIUWCYNUWDYPUWIUWBYLXPQUWIUUBXRXNOY
        SFEVAZVLVIUWIUUBXRYOQUWJVMVJVKVRVSVTWAWBWCXOXPYLQSUNUOWDVSYKUCUDUKBXRXN
        QSOUCURZSVQZUDURZSVQZUKURZSVQWOZUWKUWMQNUWOUWKOPUWOUWMOPQNWEZYKUWKUWMUW
        OWFZWGABSVQZXKYDLWHAXRSVQZXKYDATSFEHKWIZWHZAXNSVQZXKYDAUVSXMSVQUXCJGWJX
        MWKWPZWHUWLUWNRZUWKUWMOPUWMUWKOPUMZYKUWKUWMWLZWGWMWNYKXRYBQNZYCYIYKUWTY
        ASVQZUXHUXBAUXIXKYDAUVTXTSVQUXIKFWJXTWKWPZWHXRYAWQVSYGXQYCWRXRYBBQSUNUO
        WDVSWSWTXAAYERZYDBYAOPZYAOPZBQNZBUXMQNZRUXMBQSUNUOUPUXKYDUXNUXOUXKYDUXM
        YBQNZYCRZUXNUXKYDUXLXRQNZYCRZUXQYEYDUXSWEAYEXQUXRYCYEXOUXLXPXRQYEXNYABO
        YEXMXTUIYEXLXSUGGFUEVBVCVEVFGFEVAVGXBWGUXKUXRUXPYCAUXRUXPWEYEAUCUDUKUXL
        XRYAQSOUWPUWQAUWRWGAUWSUXIUXLSVQZLUXJBYAXCVSZUXAUXJUXEUXFAUXGWGWMWCXBXG
        UXMYBBQSUNUOWDXDAUXOYEABUXLQNZUXLUXMQNZUXOAUWSUXIUYBLUXJBYAWQVSAUXTUXIU
        YCUYAUXJUXLYAWQVSBUXLUXMQSUNUOWDVSWCXEXAAYFRZYDBYBQNZYCRZBYBQSUNUOUPUYD
        YDUYFUYDYDRZUYEYCUYGBXOQNZXOYBQNZUYEUYGUWSUXCUYHAUWSYFYDLWHAUXCYFYDUXDW
        HBXNWQVSUYGXQXPYBQNZUYIUYDXQYCUQUYDUYJYDUYDXRXPYAOPZQNZUYJAYFUYLUYJRZAU
        ULYFUYMUSZUVRAUVTUVSUULUYNUSKJUUKUYNFYSMNZXRUUBYAOPZQNZUUBYBQNZRZUSUAUB
        FGTTYRFUMZYTUYOUUJUYSYRFYSMUTUYTUUGUYQUUIUYRUYTUUAXRUUFUYPQYRFEVAZUYTUU
        EYAUUBOUYTUUDXTUIUYTUUCXSUGYRFUEVBVCVEZVFVGUYTUUHYBUUBQUYTUUAXRUUEYAOVU
        AVUBVHVIVJVKYSGUMZUYOYFUYSUYMYSGFMVNVUCUYQUYLUYRUYJVUCUYPUYKXRQVUCUUBXP
        YAOYSGEVAZVLVIVUCUUBXPYBQVUDVMVJVKVRVSVTWAXFWCXOXPYBQSUNUOWDVSBXOYBQSUN
        UOWDVSUYDXQYCWRWSWTXAAUVSUVTXKYEYFXHJKGFXIVSXJ $.
    $}

    ${
      $d B f g h $.  $d B k n $.  $d F f g h $.  $d F k n $.  $d J f g h $.
      $d J k n $.  $d f g h ph $.
      caucvgprlemnbj.b $e |- ( ph -> B e. N. ) $.
      caucvgprlemnbj.j $e |- ( ph -> J e. N. ) $.
      $( Lemma for ~ caucvgpr .  Non-existence of two elements of the sequence
         which are too far from each other.  (Contributed by Jim Kingdon,
         18-Oct-2020.) $)
      caucvgprlemnbj $p |- ( ph ->
          -. ( ( ( F ` B ) +Q ( *Q ` [ <. B , 1o >. ] ~Q ) )
            +Q ( *Q ` [ <. J , 1o >. ] ~Q ) )
            <Q ( F ` J ) ) $=
        ( cplq co cltq wbr clti wa cnpi wcel syl2anc cnq vf cfv c1o cop ceq cec
        vg vh wn wceq cv wi wral breq1 fveq2 opeq1 eceq1d fveq2d oveq2d breq12d
        crq oveq12d breq2d anbi12d imbi12d breq2 oveq1d breq1d mpd imp ffvelrnd
        rspc2v simprd nnnq recclnq 3syl addclnq ltaddnq adantr ltrelnq sotri wb
        ltsonq adantl mpbid simpld w3a ltanqg addcomnqg caovord2d w3o mpjao3dan
        pitri3or wor so2nr mpan imnan sylibr ) AFEUBZBEUBZBUCUDZUEUFZVAUBZKLZFU
        CUDZUEUFZVAUBZKLZMNZXHWSMNZUIZABFONZXIBFUJZFBONZAXLPZWSXDMNZXDXHMNZXIXO
        WTWSXCKLZMNZXPAXLXSXPPZADUKZCUKZONZYAEUBZYBEUBZYAUCUDZUEUFZVAUBZKLZMNZY
        EYDYHKLZMNZPZULZCQUMDQUMZXLXTULZHABQRZFQRZYOYPULIJYNYPBYBONZWTYEXCKLZMN
        ZYEXDMNZPZULDCBFQQYABUJZYCYSYMUUCYABYBOUNUUDYJUUAYLUUBUUDYDWTYIYTMYABEU
        OZUUDYHXCYEKUUDYGXBVAUUDYFXAUEYABUCUPUQURZUSUTUUDYKXDYEMUUDYDWTYHXCKUUE
        UUFVBVCVDVEYBFUJZYSXLUUCXTYBFBOVFUUGUUAXSUUBXPUUGYTXRWTMUUGYEWSXCKYBFEU
        OZVGVCUUGYEWSXDMUUHVHVDVEVLSVIVJVMAXQXLAXDTRZXGTRZXQAWTTRZXCTRZUUIAQTBE
        GIVKZAYQXBTRUULIBVNXBVOVPZWTXCVQSZAYRXFTRUUJJFVNXFVOVPZXDXGVRSZVSWSXDXH
        MTWCVTWAZSAXMPZXPXQXIUUSWTXDMNZXPAUUTXMAUUKUULUUTUUMUUNWTXCVRSZVSXMUUTX
        PWBAXMWTWSXDMBFEUOVHWDWEAXQXMUUQVSUURSAXNPZWSWTXGKLZMNZUVCXHMNZXIUVBUVD
        WTWSXGKLZMNZAXNUVDUVGPZAYOXNUVHULZHAYRYQYOUVIULJIYNUVIFYBONZWSYEXGKLZMN
        ZYEUVFMNZPZULDCFBQQYAFUJZYCUVJYMUVNYAFYBOUNUVOYJUVLYLUVMUVOYDWSYIUVKMYA
        FEUOZUVOYHXGYEKUVOYGXFVAUVOYFXEUEYAFUCUPUQURZUSUTUVOYKUVFYEMUVOYDWSYHXG
        KUVPUVQVBVCVDVEYBBUJZUVJXNUVNUVHYBBFOVFUVRUVLUVDUVMUVGUVRUVKUVCWSMUVRYE
        WTXGKYBBEUOZVGVCUVRYEWTUVFMUVSVHVDVEVLSVIVJWFAUVEXNAUUTUVEUVAAUAUGUHWTX
        DXGMTKUAUKZTRZUGUKZTRZUHUKZTRWGUVTUWBMNUWDUVTKLUWDUWBKLMNWBAUVTUWBUWDWH
        WDUUMUUOUUPUWAUWCPUVTUWBKLUWBUVTKLUJAUVTUWBWIWDWJWEVSWSUVCXHMTWCVTWASAY
        QYRXLXMXNWKIJBFWMSWLAXIXJPUIZXIXKULAWSTRZXHTRZUWEAQTFEGJVKAUUIUUJUWGUUO
        UUPXDXGVQSTMWNUWFUWGPUWEWCTWSXHMWOWPSXIXJWQWRVI $.
    $}

    caucvgpr.bnd $e |- ( ph -> A. j e. N. A <Q ( F ` j ) ) $.

    ${
      caucvgpr.lim $e |- L = <.
        { l e. Q. | E. j e. N.
          ( l +Q ( *Q ` [ <. j , 1o >. ] ~Q ) ) <Q ( F ` j ) } ,
        { u e. Q. | E. j e. N.
          ( ( F ` j ) +Q ( *Q ` [ <. j , 1o >. ] ~Q ) ) <Q u }
        >. $.

      ${
        $d A s $.  $d F j l $.  $d F r $.  $d F j u $.  $d L r $.  $d j ph s $.
        $d l s $.
        $( Lemma for ~ caucvgpr .  The putative limit is inhabited.
           (Contributed by Jim Kingdon, 27-Sep-2020.) $)
        caucvgprlemm $p |- ( ph -> ( E. s e. Q. s e. ( 1st ` L )
              /\ E. r e. Q. r e. ( 2nd ` L ) ) ) $=
          ( wcel cnq c1o cltq cnpi cv c1st cfv wrex c2nd cplq wceq wbr wral 1pi
          fveq2 breq2d rspcv mpsyl ltrelnq brel simpld halfnqq 3syl cop ceq cec
          co wa crq simplr archrecnq syl simpr wb nnnq recclnq ad2antrr syl3anc
          ltanqg mpbid simpllr breqtrd wi rsp ad4antr mpd ltsonq sotri reximdva
          syl2anc ex oveq1 breq1d rexbidv crab fveq2i nqex rabex op1st sylanbrc
          elrab2 c1q a1i ffvelrnd addclnq sylancl df-1nqqs rec1nq eqtr3i oveq2i
          eqtri ltaddnq syl5eqbr opeq1 eceq1d fveq2d oveq12d rspcev breq2 op2nd
          1nq eleq1 jca ) AIUAZHUBUCZPZIQUDZJUAZHUEUCZPZJQUDZAXTXTUFVCZCUGZIQUD
          ZYCACRGUCZSUHZCQPZYJRTPZACDUAZGUCZSUHZDTUIZYLUJNYQYLDRTYORUGZYPYKCSYO
          RGUKZULUMUNYLYMYKQPZCYKQQSUOUPUQICURUSAYIYBIQAXTQPZVDZYIYBUUCYIVDZUUB
          XTYORUTZVAVBZVEUCZUFVCZYPSUHZDTUDZYBAUUBYIVFZUUDUUGXTSUHZDTUDZUUJUUDU
          UBUUMUUKXTDVGVHUUDUULUUIDTUUDYOTPZVDZUULUUIUUOUULVDZUUHCSUHYQUUIUUPUU
          HYHCSUUPUULUUHYHSUHZUUOUULVIUUPUUGQPZUUBUUBUULUUQVJUUPUUNUUFQPUURUUDU
          UNUULVFZYOVKUUFVLUSUUDUUBUUNUULUUKVMZUUTUUGXTXTVOVNVPUUCYIUUNUULVQVRU
          UPUUNYQUUSAUUNYQVSZUUBYIUUNUULAYRUVANYQDTVTVHWAWBUUHCYPSQWCUOWDWFWGWE
          WBKUAZUUGUFVCZYPSUHZDTUDZUUJKXTQYAUVBXTUGZUVDUUIDTUVFUVCUUHYPSUVBXTUU
          GUFWHWIWJYAUVEKQWKZYPUUGUFVCZBUAZSUHZDTUDZBQWKZUTZUBUCUVGHUVMUBOWLUVG
          UVLUVEKQWMWNZUVKBQWMWNZWOXGWQWPWGWEWBAYKWRUFVCZWRUFVCZQPZUVQYEPZYGAUV
          PQPZWRQPZUVRAUUAUWAUVTATQRGLYNAUJWSZWTXQYKWRXAXBZXQUVPWRXAXBZAUVRUVHU
          VQSUHZDTUDZUVSUWDAYNYKRRUTZVAVBZVEUCZUFVCZUVQSUHZUWFUWBAUWJUVPUVQSUWI
          WRYKUFWRVEUCUWIWRWRUWHVEXCWLXDXEXFAUVTUWAUVPUVQSUHUWCXQUVPWRXHXBXIUWE
          UWKDRTYSUVHUWJUVQSYSYPYKUUGUWIUFYTYSUUFUWHVEYSUUEUWGVAYORRXJXKXLXMWIX
          NWFUVKUWFBUVQQYEUVIUVQUGUVJUWEDTUVIUVQUVHSXOWJYEUVMUEUCUVLHUVMUEOWLUV
          GUVLUVNUVOXPXGWQWPYFUVSJUVQQYDUVQYEXRXNWFXS $.
      $}

      ${
        $d F f g h l r $.  $d F r s t $.  $d F u $.  $d L f g h j r t $.
        $d L s $.  $d j l r s $.  $d j ph f g h r t $.  $d ph s $.
        $d f g h s t $.  $d j u r s $.
        $( Lemma for ~ caucvgpr .  The lower cut of the putative limit is open.
           (Contributed by Jim Kingdon, 20-Oct-2020.) $)
        caucvgprlemopl $p |- ( ( ph /\ s e. ( 1st ` L ) ) ->
            E. r e. Q. ( s <Q r /\ r e. ( 1st ` L ) ) ) $=
          ( wa cltq wbr cnq cnpi vt c1st cfv wcel c1o cop ceq cec crq cplq wrex
          cv co wceq oveq1 breq1d rexbidv crab fveq2i rabex op1st eqtri simprbi
          nqex elrab2 adantl simprr ltbtwnnqq simplrl nnnq recclnq 3syl simplbi
          sylib ad3antlr ltaddnq syl2anc addcomnqg breqtrd simprrl ltsonq sotri
          ltrelnq wb simprl ltexnqq mpbid ad2antrr eqbrtrrd simpr simplr ltanqg
          breqtrrd syl3anc mpbird simprrr eqtr3d rspe sylanbrc jca reximdva mpd
          ex rexlimddv ) AIULZHUBUCZUDZPZXEDULZUEUFUGUHZUIUCZUJUMZXIGUCZQRZXEJU
          LZQRZXOXFUDZPZJSUKZDTXGXNDTUKZAXGXESUDZXTKULZXKUJUMZXMQRZDTUKZXTKXESX
          FYBXEUNZYDXNDTYFYCXLXMQYBXEXKUJUOUPUQXFYEKSURZXMXKUJUMBULQRDTUKZBSURZ
          UFZUBUCYGHYJUBOUSYGYIYEKSVDUTYHBSVDUTVAVBZVEZVCVFXHXITUDZXNPZPZXLUAUL
          ZQRZYPXMQRZPZXSUASYOXNYSUASUKXHYMXNVGUAXLXMVHVNYOYPSUDZYSPZPZXKXOUJUM
          ZYPUNZJSUKZXSUUBXKYPQRZUUEUUBXKXLQRYQUUFUUBXKXKXEUJUMZXLQUUBXKSUDZYAX
          KUUGQRUUBYMXJSUDUUHXHYMXNUUAVIZXIVJXJVKVLZXGYAAYNUUAXGYAXTYLVMVOZXKXE
          VPVQUUBUUHYAUUGXLUNUUJUUKXKXEVRVQVSYOYTYQYRVTZXKXLYPQSWAWCWBVQUUBUUHY
          TUUFUUEWDUUJYOYTYSWEJXKYPWFVQWGUUBUUDXRJSUUBXOSUDZPZUUDXRUUNUUDPZXPXQ
          UUOXPUUGUUCQRZUUOUUGYPUUCQUUOXLUUGYPQUUOYAUUHXLUUGUNUUBYAUUMUUDUUKWHZ
          UUBUUHUUMUUDUUJWHZXEXKVRVQUUBYQUUMUUDUULWHWIUUNUUDWJZWMUUOYAUUMUUHXPU
          UPWDUUQUUBUUMUUDWKZUURXEXOXKWLWNWOUUOUUMXOXKUJUMZXMQRZDTUKZXQUUTUUOYM
          UVBUVCUUBYMUUMUUDUUIWHUUOUVBYRUUBYRUUMUUDYOYTYQYRWPWHUUOUVAYPXMQUUOUU
          CUVAYPUUOUUHUUMUUCUVAUNUURUUTXKXOVRVQUUSWQUPWOUVBDTWRVQYEUVCKXOSXFYBX
          OUNZYDUVBDTUVDYCUVAXMQYBXOXKUJUOUPUQYKVEWSWTXCXAXBXDXD $.

        $( Lemma for ~ caucvgpr .  The lower cut of the putative limit is
           lower.  (Contributed by Jim Kingdon, 20-Oct-2020.) $)
        caucvgprlemlol $p |- ( ( ph /\ s <Q r /\ r e. ( 1st ` L ) ) ->
            s e. ( 1st ` L ) ) $=
          ( cv cltq wcel cnq cplq vf vg vh wbr c1st cfv w3a c1o cop ceq cec crq
          co cnpi wrex ltrelnq brel simpld 3ad2ant2 oveq1 breq1d rexbidv fveq2i
          weq crab nqex rabex op1st eqtri elrab2 simprbi 3ad2ant3 wa simpll2 wb
          ltanqg adantl ad2antrr simprd simplr nnnq recclnq 3syl wceq addcomnqg
          caovord2d mpbid ltsonq sotri sylancom ex reximdva mpd sylanbrc ) AIPZ
          JPZQUDZWPHUEUFZRZUGZWOSRZWODPZUHUIUJUKZULUFZTUMZXBGUFZQUDZDUNUOZWOWRR
          WQAXAWSWQXAWPSRZWOWPSSQUPUQZURUSZWTWPXDTUMZXFQUDZDUNUOZXHWSAXNWQWSXIX
          NKPZXDTUMZXFQUDZDUNUOZXNKWPSWRKJVDZXQXMDUNXSXPXLXFQXOWPXDTUTVAVBWRXRK
          SVEZXFXDTUMBPQUDDUNUOZBSVEZUIZUEUFXTHYCUEOVCXTYBXRKSVFVGYABSVFVGVHVIZ
          VJVKVLWTXMXGDUNWTXBUNRZVMZXMXGYFXMXEXLQUDZXGYFXMVMZWQYGAWQWSYEXMVNYHU
          AUBUCWOWPXDQSTUAPZSRZUBPZSRZUCPZSRUGYIYKQUDYMYITUMYMYKTUMQUDVOYHYIYKY
          MVPVQWTXAYEXMXKVRWTXIYEXMWQAXIWSWQXAXIXJVSUSVRYHYEXCSRXDSRWTYEXMVTXBW
          AXCWBWCYJYLVMYIYKTUMYKYITUMWDYHYIYKWEVQWFWGXEXLXFQSWHUPWIWJWKWLWMXRXH
          KWOSWRKIVDZXQXGDUNYNXPXEXFQXOWOXDTUTVAVBYDVJWN $.

        $( Lemma for ~ caucvgpr .  The upper cut of the putative limit is open.
           (Contributed by Jim Kingdon, 20-Oct-2020.) $)
        caucvgprlemopu $p |- ( ( ph /\ r e. ( 2nd ` L ) ) ->
            E. s e. Q. ( s <Q r /\ s e. ( 2nd ` L ) ) ) $=
          ( wa cltq cnq wrex cnpi cv c2nd cfv wcel c1o cop ceq cec crq cplq wbr
          co weq breq2 rexbidv crab fveq2i nqex rabex op2nd eqtri elrab2 adantl
          simprbi simprr ltbtwnnqq sylib simplr simplrl adantr syl2anc sylanbrc
          simprl rspe jca ex reximdva mpd rexlimddv ) AJUAZHUBUCZUDZPZDUAZGUCZW
          DUEUFUGUHUIUCZUJULZVTQUKZIUAZVTQUKZWIWAUDZPZIRSZDTWBWHDTSZAWBVTRUDWNW
          GBUAZQUKZDTSZWNBVTRWABJUMWPWHDTWOVTWGQUNUOWAKUAWFUJULWEQUKDTSZKRUPZWQ
          BRUPZUFZUBUCWTHXAUBOUQWSWTWRKRURUSWQBRURUSUTVAZVBVDVCWCWDTUDZWHPPZWGW
          IQUKZWJPZIRSZWMXDWHXGWCXCWHVEIWGVTVFVGXDXFWLIRXDWIRUDZPZXFWLXIXFPZWJW
          KXIXEWJVEXJXHXEDTSZWKXDXHXFVHXJXCXEXKXIXCXFWCXCWHXHVIVJXIXEWJVMXEDTVN
          VKWQXKBWIRWABIUMWPXEDTWOWIWGQUNUOXBVBVLVOVPVQVRVS $.

        $( Lemma for ~ caucvgpr .  The upper cut of the putative limit is
           upper.  (Contributed by Jim Kingdon, 20-Oct-2020.) $)
        caucvgprlemupu $p |- ( ( ph /\ s <Q r /\ s e. ( 2nd ` L ) ) ->
            r e. ( 2nd ` L ) ) $=
          ( cv cltq wbr cnq cnpi c2nd cfv wcel w3a c1o cop ceq cec cplq co wrex
          crq ltrelnq brel simprd 3ad2ant2 breq2 rexbidv crab fveq2i nqex rabex
          weq op2nd eqtri elrab2 simprbi 3ad2ant3 ltsonq sotri reximdv sylanbrc
          wi expcom mpd ) AIPZJPZQRZVPHUAUBZUCZUDZVQSUCZDPZGUBZWCUEUFUGUHULUBZU
          IUJZVQQRZDTUKZVQVSUCVRAWBVTVRVPSUCZWBVPVQSSQUMUNUOUPWAWFVPQRZDTUKZWHV
          TAWKVRVTWIWKWFBPZQRZDTUKZWKBVPSVSBIVCWMWJDTWLVPWFQUQURVSKPWEUIUJWDQRD
          TUKZKSUSZWNBSUSZUFZUAUBWQHWRUAOUTWPWQWOKSVAVBWNBSVAVBVDVEZVFVGVHWAWJW
          GDTVRAWJWGVMVTWJVRWGWFVPVQQSVIUMVJVNUPVKVOWNWHBVQSVSBJVCWMWGDTWLVQWFQ
          UQURWSVFVL $.
      $}

      ${
        $d L r s $.  $d ph r s $.  $d F l r $.  $d F s u $.  $d L j r $.
        $d j l r s $.  $d j ph r $.  $d j r u $.
        $( Lemma for ~ caucvgpr .  The putative limit is rounded.  (Contributed
           by Jim Kingdon, 27-Sep-2020.) $)
        caucvgprlemrnd $p |- ( ph -> ( A. s e. Q. ( s e. ( 1st ` L ) <->
              E. r e. Q. ( s <Q r /\ r e. ( 1st ` L ) ) ) /\
            A. r e. Q. ( r e. ( 2nd ` L ) <->
              E. s e. Q. ( s <Q r /\ s e. ( 2nd ` L ) ) ) ) ) $=
          ( cv cfv wcel wa cnq c1st cltq wbr wrex caucvgprlemopl caucvgprlemlol
          wb wral c2nd ex 3expib rexlimdvw impbid caucvgprlemopu caucvgprlemupu
          ralrimivw jca ) AIPZHUAQZRZURJPZUBUCZVAUSRZSZJTUDZUGZITUHVAHUIQZRZVBU
          RVGRZSZITUDZUGZJTUHAVFITAUTVEAUTVEABCDEFGHIJKLMNOUEUJAVDUTJTAVBVCUTAB
          CDEFGHIJKLMNOUFUKULUMUPAVLJTAVHVKAVHVKABCDEFGHIJKLMNOUNUJAVJVHITAVBVI
          VHABCDEFGHIJKLMNOUOUKULUMUPUQ $.
      $}

      ${
        $d F j k $.  $d F j l $.  $d F j u $.  $d F n $.  $d L j k $.
        $d j k ph s $.  $d l s $.  $d s u $.  $d k n $.
        $( Lemma for ~ caucvgpr .  The putative limit is disjoint.
           (Contributed by Jim Kingdon, 27-Sep-2020.) $)
        caucvgprlemdisj $p |- ( ph -> A. s e. Q.
            -. ( s e. ( 1st ` L ) /\ s e. ( 2nd ` L ) ) ) $=
          ( cfv cnq cplq cltq wbr cnpi cv c1st wcel c2nd wa c1o cop ceq cec crq
          wn co wrex wfal weq oveq1 breq1d rexbidv crab fveq2i nqex rabex op1st
          eqtri elrab2 simprbi opeq1 eceq1d fveq2d oveq2d fveq2 breq12d cbvrexv
          sylib breq2 anim12i reeanv sylibr adantl wf ad2antrr clti wral simprl
          op2nd wi simprr simplbi ad2antrl adantr caucvgprlemnkj rexlimdvva mpd
          pm2.21d inegd ralrimivw ) AIUAZHUBOZUCZWQHUDOZUCZUEZUKIPAXBAXBUEZWQEU
          AZUFUGZUHUIZUJOZQULZXDGOZRSZDUAZGOZXKUFUGZUHUIZUJOZQULZWQRSZUEZDTUMET
          UMZUNXBXSAXBXJETUMZXQDTUMZUEXSWSXTXAYAWSWQXOQULZXLRSZDTUMZXTWSWQPUCZY
          DJUAZXOQULZXLRSZDTUMZYDJWQPWRJIUOZYHYCDTYJYGYBXLRYFWQXOQUPUQURWRYIJPU
          SZXPBUAZRSZDTUMZBPUSZUGZUBOYKHYPUBNUTYKYOYIJPVAVBZYNBPVAVBZVCVDVEZVFY
          CXJDETDEUOZYBXHXLXIRYTXOXGWQQYTXNXFUJYTXMXEUHXKXDUFVGVHVIVJXKXDGVKVLV
          MVNXAYEYAYNYABWQPWTBIUOYMXQDTYLWQXPRVOURWTYPUDOYOHYPUDNUTYKYOYQYRWEVD
          VEVFVPXJXQEDTTVQVRVSXCXRUNEDTTXCXDTUCZXKTUCZUEZUEZXRUNUUDWQEFGXKXDATP
          GVTXBUUCKWAAFUAZXDWBSUUEGOZXIUUEUFUGUHUIUJOZQULRSXIUUFUUGQULRSUEWFETW
          CFTWCXBUUCLWAXCUUAUUBWDXCUUAUUBWGXCYEUUCWSYEAXAWSYEYDYSWHWIWJWKWNWLWM
          WOWP $.
      $}

      ${
        $d F f g h $.  $d F j l $.  $d F u $.  $d f g h m j ph r s x y $.
        $d m j l s $.  $d m j r u $.  $d L m x y $.

        $( Lemma for ~ caucvgpr .  The putative limit is located.  (Contributed
           by Jim Kingdon, 27-Sep-2020.) $)
        caucvgprlemloc $p |- ( ph -> A. s e. Q. A. r e. Q.
            ( s <Q r -> ( s e. ( 1st ` L ) \/ r e. ( 2nd ` L ) ) ) ) $=
          ( cltq wbr wcel cnq cplq vy vx vm vf vg vh cv c1st c2nd wo wi wa wceq
          cfv wrex ltexnqi adantl subhalfnqq ad2antrl c1o cop ceq cec archrecnq
          co crq cnpi simprr nnnq recclnq syl simplrl lt2addnq syl22anc simplrr
          mp2and ltsonq ltrelnq sotri syl2anc ad3antrrr ltanqi ad2antrr breqtrd
          addclnq wf ad5antr simprl ffvelrnd wor w3a sowlin mpan syl3anc adantr
          mpd simpr addassnqg breq1d mpbird wb ltanqg addcomnqg caovord2d opeq1
          weq eceq1d fveq2d oveq2d fveq2 breq12d rspcev oveq1 rexbidv crab nqex
          fveq2i rabex op1st eqtri elrab2 sylanbrc ex oveq12d sylan breq2 op2nd
          orim12d rexlimddv ralrimivva ) AIUGZJUGZPQZYKHUHUNZRZYLHUIUNZRZUJZUKI
          JSSAYKSRZYLSRZULZULZYMYRUUBYMULZYKUAUGZTVEZYLUMZYRUASYMUUFUASUOUUBUAY
          KYLUPUQUUCUUDSRZUUFULZULZUBUGZUUJTVEZUUDPQZYRUBSUUGUULUBSUOUUCUUFUBUU
          DURUSUUIUUJSRZUULULZULZUCUGZUTVAZVBVCZVFUNZUUJPQZYRUCVGUUMUUTUCVGUOUU
          IUULUUJUCVDUSUUOUUPVGRZUUTULZULZYKUUSUUSTVEZTVEZUUPGUNZUUSTVEZPQZUVGY
          LPQZUJZYRUVCUVEYLPQZUVJUVCUVEUUEYLPUVCUVDUUDPQZYSUVEUUEPQUVCUVDUUKPQZ
          UULUVLUVCUUTUUTUVMUUOUVAUUTVHZUVNUVCUUSSRZUUMUVOUUMUUTUUTULUVMUKUVAUV
          OUUOUUTUVAUURSRUVOUUPVIUURVJVKUSZUUIUUMUULUVBVLZUVPUVQUUSUUJUUSUUJVMV
          NVPUUIUUMUULUVBVOUVDUUKUUDPSVQVRVSVTUUCYSUUHUUNUVBAYSYTYMVLWAZUVDUUDY
          KWBVTUUIUUFUUNUVBUUCUUGUUFVHWCWDUVCUVESRZYTUVGSRZUVKUVJUKZUVCYSUVDSRZ
          UVSUVRUVCUVOUVOUWBUVPUVPUUSUUSWEVTYKUVDWEVTUUCYTUUHUUNUVBAYSYTYMVOWAZ
          UVCUVFSRZUVOUVTUVCVGSUUPGAVGSGWFUUAYMUUHUUNUVBLWGUUOUVAUUTWHZWIZUVPUV
          FUUSWEVTSPWJUVSYTUVTWKUWAVQSUVEYLUVGPWLWMWNWPUVCUVHYOUVIYQUVCUVHYOUVC
          UVHULZYSYKDUGZUTVAZVBVCZVFUNZTVEZUWHGUNZPQZDVGUOZYOUVCYSUVHUVRWOZUWGU
          VAYKUUSTVEZUVFPQZUWOUUOUVAUUTUVHVLUWGUWRUWQUUSTVEZUVGPQZUWGUWTUVHUVCU
          VHWQUWGUWSUVEUVGPUWGYSUVOUVOUWSUVEUMUWPUVCUVOUVHUVPWOZUXAYKUUSUUSWRWN
          WSWTUWGUDUEUFUWQUVFUUSPSTUDUGZSRZUEUGZSRZUFUGZSRWKUXBUXDPQUXFUXBTVEUX
          FUXDTVEPQXAUWGUXBUXDUXFXBUQUWGYSUVOUWQSRUWPUXAYKUUSWEVTUVCUWDUVHUWFWO
          UXAUXCUXEULUXBUXDTVEUXDUXBTVEUMUWGUXBUXDXCUQXDWTUWNUWRDUUPVGDUCXFZUWL
          UWQUWMUVFPUXGUWKUUSYKTUXGUWJUURVFUXGUWIUUQVBUWHUUPUTXEXGXHZXIUWHUUPGX
          JZXKXLVTKUGZUWKTVEZUWMPQZDVGUOZUWOKYKSYNKIXFZUXLUWNDVGUXNUXKUWLUWMPUX
          JYKUWKTXMWSXNYNUXMKSXOZUWMUWKTVEZBUGZPQZDVGUOZBSXOZVAZUHUNUXOHUYAUHOX
          QUXOUXTUXMKSXPXRZUXSBSXPXRZXSXTYAYBYCUVCUVIYQUVCUVIULYTUXPYLPQZDVGUOZ
          YQUVCYTUVIUWCWOUVCUVAUVIUYEUWEUYDUVIDUUPVGUXGUXPUVGYLPUXGUWMUVFUWKUUS
          TUXIUXHYDWSXLYEUXSUYEBYLSYPBJXFUXRUYDDVGUXQYLUXPPYFXNYPUYAUIUNUXTHUYA
          UIOXQUXOUXTUYBUYCYGXTYAYBYCYHWPYIYIYIYCYJ $.
      $}

      ${
        $d A s a c d $.  $d F j l r a c d $.  $d F j s r u a c d $.  $d F n $.
        $d F j k $.  $d L j r s a c d $.  $d L k $.  $d ph r s a c d $.
        $d l r s $.  $d u r s $.  $d j k r s a c d $.  $d n k a c d $.
        $( Lemma for ~ caucvgpr .  The putative limit is a positive real.
           (Contributed by Jim Kingdon, 26-Sep-2020.) $)
        caucvgprlemcl $p |- ( ph -> L e. P. ) $=
          ( va cnq cfv cltq wbr cnpi cplq vs vr vd vc cpw cxp wcel cv c1st wrex
          c2nd wa wb wral wn wo wi w3a cnp weq fveq2 breq2d cbvralv c1o cop ceq
          sylib cec crq crab opeq1 eceq1d fveq2d oveq2d breq12d cbvrexv rabbiia
          co a1i oveq12d breq1d opeq12i eqtri caucvgprlemm wss nqex elpw2 mpbir
          opelxpi mp2an eqeltri jctil caucvgprlemrnd clti breq1 anbi12d imbi12d
          ssrab2 oveq1d cbvral2v caucvgprlemdisj caucvgprlemloc 3jca elnp1st2nd
          breq2 sylanbrc ) AHOUEZXGUFZUGZUAUHZHUIPZUGZUAOUJUBUHZHUKPZUGZUBOUJUL
          ZULXLXJXMQRZXMXKUGULUBOUJUMUAOUNXOXQXJXNUGZULUAOUJUMUBOUNULZXLXRULUOU
          AOUNZXQXLXOUPUQUBOUNUAOUNZURHUSUGAXPXIABCNEFGHUAUBIJKACDUHZGPZQRZDSUN
          CNUHZGPZQRZNSUNLYDYGDNSDNUTZYCYFCQYBYEGVAZVBVCVGZHIUHZYBVDVEZVFVHZVIP
          ZTVRZYCQRZDSUJZIOVJZYCYNTVRZBUHZQRZDSUJZBOVJZVEZYKYEVDVEZVFVHZVIPZTVR
          ZYFQRZNSUJZIOVJZYFUUGTVRZYTQRZNSUJZBOVJZVEMYRUUKUUCUUOYQUUJIOYQUUJUMY
          KOUGYPUUIDNSYHYOUUHYCYFQYHYNUUGYKTYHYMUUFVIYHYLUUEVFYBYEVDVKVLVMZVNYI
          VOVPVSVQUUBUUNBOUUBUUNUMYTOUGUUAUUMDNSYHYSUULYTQYHYCYFYNUUGTYIUUPVTWA
          VPVSVQWBWCZWDHUUDXHMYRXGUGZUUCXGUGZUUDXHUGUURYROWEYQIOWRYROWFWGWHUUSU
          UCOWEUUBBOWRUUCOWFWGWHYRUUCXGXGWIWJWKWLAXSXTYAABCNEFGHUAUBIJKYJUUQWMA
          BCNUCUDGHUAIJAFUHZEUHZWNRZUUTGPZUVAGPZUUTVDVEZVFVHZVIPZTVRZQRZUVDUVCU
          VGTVRZQRZULZUQZESUNFSUNUDUHZUCUHZWNRZUVNGPZUVOGPZUVNVDVEZVFVHZVIPZTVR
          ZQRZUVRUVQUWATVRZQRZULZUQZUCSUNUDSUNKUVMUWGUVNUVAWNRZUVQUVDUWATVRZQRZ
          UVDUWDQRZULZUQFEUDUCSSFUDUTZUVBUWHUVLUWLUUTUVNUVAWNWOUWMUVIUWJUVKUWKU
          WMUVCUVQUVHUWIQUUTUVNGVAZUWMUVGUWAUVDTUWMUVFUVTVIUWMUVEUVSVFUUTUVNVDV
          KVLVMZVNVOUWMUVJUWDUVDQUWMUVCUVQUVGUWATUWNUWOVTVBWPWQEUCUTZUWHUVPUWLU
          WFUVAUVOUVNWNXEUWPUWJUWCUWKUWEUWPUWIUWBUVQQUWPUVDUVRUWATUVAUVOGVAZWSV
          BUWPUVDUVRUWDQUWQWAWPWQWTVGYJUUQXAABCNEFGHUAUBIJKYJUUQXBXCHUBUAXDXF
          $.
      $}

      ${
        $d F m j r s t u v w z $.  $d F l $.  $d F n k $.
        $d L f g h s t x y $.  $d L k $.  $d L m j r s t v w z $.
        $d S f g h l s t u x y $.  $d S m j l r s t u v w z $.
        $d ph m r s t v w z $.  $d j k $.
        caucvgprlemladd.s $e |- ( ph -> S e. Q. ) $.
        $( Lemma for ~ caucvgpr .  Adding ` S ` after embedding in positive
           reals, or adding it as a rational.  (Contributed by Jim Kingdon,
           9-Oct-2020.) $)
        caucvgprlemladdfu $p |- ( ph ->
            ( 2nd ` ( L +P. <. { l | l <Q S } , { u | S <Q u } >. ) ) C_
            { u e. Q. | E. j e. N.
              ( ( ( F ` j ) +Q ( *Q ` [ <. j , 1o >. ] ~Q ) ) +Q S )
              <Q u } ) $=
          ( cltq wbr cplq cnq wcel vr vs vt vf vg vh vx vy vm vz vw cab cop cpp
          vv cv co c2nd cfv c1o ceq cec crq cnpi wrex crab wa cnp caucvgprlemcl
          wceq nqprlu syl df-iplp addclnq genpelvu syl2anc biimpa breq2 rexbidv
          wb fveq2i rabex op2nd eqtri elrab2 biimpi adantr adantl simpld ltnqex
          nqex vex gtnqex elab2 ltrelnq brel sylbi simprd ad2antll eleq1 mpbird
          fveq2 opeq1 eceq1d fveq2d oveq12d breq1d cbvrexv sylib ad5antr simplr
          ad2antrr wf ffvelrnd nnnq recclnq 3syl ltanqg syl3anc mpbid simpr w3a
          addcomnqg caovord2d ltsonq sotri simpllr breqtrrd reximdva mpd oveq1d
          ex sylibr elrab sylanbrc rexlimdvva ssrdv ) AUAIJUPZDPQJULZDBUPZPQZBU
          LZUMZUNUQURUSZEUPZHUSZUUEUTUMZVAVBZVCUSZRUQZDRUQZYTPQZEVDVEZBSVFZAUAU
          PZUUDTZUUOUUNTZAUUPVGZUUOUBUPZUCUPZRUQZVJZUCUUCURUSZVEUBIURUSZVEZUUQA
          UUPUVEAIVHTUUCVHTZUUPUVEVTABCEFGHIJKLMNVIADSTZUVFOBDJVKVLUDUEUFUGUHIU
          UCUUOUBUCUNRUGUHUFUEUDVMUEUPUFUPVNVOVPVQUURUVBUUQUBUCUVDUVCUURUUSUVDT
          ZUUTUVCTZVGZVGZUVBUUQUVKUVBVGZUUOSTZUUKUUOPQZEVDVEZUUQUVLUVMUVASTZUVL
          UUSSTZUUTSTZUVPUVLUVQUUJUUSPQZEVDVEZUVKUVQUVTVGZUVBUVJUWAUURUVHUWAUVI
          UVHUWAUUJYTPQZEVDVEZUVTBUUSSUVDYTUUSVJUWBUVSEVDYTUUSUUJPVRVSUVDYRUUIR
          UQUUFPQEVDVEZJSVFZUWCBSVFZUMZURUSUWFIUWGURNWAUWEUWFUWDJSWKWBUWCBSWKWB
          WCWDWEWFWGWHWGZWIZUVKUVRUVBUVIUVRUURUVHUVIUVGUVRUVIDUUTPQZUVGUVRVGUUA
          UWJBUUTUVCUCWLYTUUTDPVRYSUUBJDWJBDWMWCWNZDUUTSSPWOWPWQWRWSWGZUUSUUTVN
          VPUVBUVMUVPVTUVKUUOUVASWTWHXAUVLUIUPZHUSZUWMUTUMZVAVBZVCUSZRUQZDRUQZU
          UOPQZUIVDVEZUVOUVLUWRUUSPQZUIVDVEZUXAUVLUVTUXCUVLUVQUVTUWHWRUVSUXBEUI
          VDUUEUWMVJZUUJUWRUUSPUXDUUFUWNUUIUWQRUUEUWMHXBUXDUUHUWPVCUXDUUGUWOVAU
          UEUWMUTXCXDXEXFZXGXHXIUVLUXBUWTUIVDUVLUWMVDTZVGZUXBUWTUXGUXBVGZUWSUVA
          UUOPUXHUWSUWRUUTRUQZPQZUXIUVAPQZUWSUVAPQUXHUWJUXJUVLUWJUXFUXBUVKUWJUV
          BUVIUWJUURUVHUVIUWJUWKWFWSWGXLUXHUVGUVRUWRSTZUWJUXJVTAUVGUUPUVJUVBUXF
          UXBOXJUVLUVRUXFUXBUWLXLZUXHUWNSTUWQSTZUXLUXHVDSUWMHAVDSHXMUUPUVJUVBUX
          FUXBKXJUVLUXFUXBXKZXNUXHUXFUWPSTUXNUXOUWMXOUWPXPXQUWNUWQVNVPZDUUTUWRX
          RXSXTUXHUXBUXKUXGUXBYAUXHUJUKUOUWRUUSUUTPSRUJUPZSTZUKUPZSTZUOUPZSTYBU
          XQUXSPQUYAUXQRUQUYAUXSRUQPQVTUXHUXQUXSUYAXRWHUXPUVLUVQUXFUXBUWIXLUXMU
          XRUXTVGUXQUXSRUQUXSUXQRUQVJUXHUXQUXSYCWHYDXTUWSUXIUVAPSYEWOYFVPUVKUVB
          UXFUXBYGYHYLYIYJUVNUWTEUIVDUXDUUKUWSUUOPUXDUUJUWRDRUXEYKXGXHYMUUMUVOB
          UUOSYTUUOVJUULUVNEVDYTUUOUUKPVRVSYNYOYLYPYJYLYQ $.

        $d a b f g h l u $.  $d S a b $.  $d S k $.  $d a b j $.
        $d F a b f g h k n $.  $d L a b $.  $d A b $.  $d b a r $.
        $d f g h j $.  $d f g h r $.  $d f g h a b ph $.  $d F l $.
        $d r f g h a b k $.
        $( Lemma for ~ caucvgpr .  Adding ` S ` after embedding in positive
           reals, or adding it as a rational.  (Contributed by Jim Kingdon,
           8-Oct-2020.) $)
        caucvgprlemladdrl $p |- ( ph ->
            { l e. Q. | E. j e. N. ( l +Q ( *Q ` [ <. j , 1o >. ] ~Q ) ) <Q
            ( ( F ` j ) +Q S ) } C_
            ( 1st ` ( L +P. <. { l | l <Q S } , { u | S <Q u } >. ) ) ) $=
          ( cplq cltq cnpi cnq wcel va vr vb vf vg vh cv c1o cop ceq cec crq co
          cfv wbr wrex crab cab c1st wb opeq1 eceq1d fveq2d oveq2d fveq2 oveq1d
          cpp weq breq12d cbvrexv rabbiia wa oveq1 breq1d rexbidv elrab c2nd wf
          ad4antr clti wi wral simpr simpllr caucvgprlemnbj ad3antrrr ffvelrnda
          a1i wceq nnnq recclnq addclnq syl2anc addassnqg syl3anc ltanqg adantl
          3syl w3a ffvelrnd addcomnqg caovord2d 3bitr4rd mtbird intnand cbvralv
          nrexdv breq2d sylib oveq12d opeq12i eqtri syl caucvgprlemladdfu sseld
          ad2antlr breq2 syl6ib mtod wo caucvgprlemcl nqprlu addclpr prop prloc
          cnp sylan sylancom ecased caucvgprlemcanl ex rexlimdva expimpd syl5bi
          mpbid ssrdv syl5eqss ) AJUGZEUGZUHUIZUJUKZULUNZPUMZYSHUNZDPUMZQUOZERU
          PZJSUQYRUAUGZUHUIZUJUKZULUNZPUMZUUHHUNZDPUMZQUOZUARUPZJSUQZIYRDQUOJUR
          DBUGZQUOBURUIVGUMUSUNZUUGUUPJSUUGUUPUTYRSTZUUFUUOEUAREUAVHZUUCUULUUEU
          UNQUVAUUBUUKYRPUVAUUAUUJULUVAYTUUIUJYSUUHUHVAVBVCVDUVAUUDUUMDPYSUUHHV
          EVFVIVJWHVKAUBUUQUUSUBUGZUUQTUVBSTZUVBUUKPUMZUUNQUOZUARUPZVLAUVBUUSTZ
          UUPUVFJUVBSJUBVHZUUOUVEUARUVHUULUVDUUNQYRUVBUUKPVMVNVOVPAUVCUVFUVGAUV
          CVLZUVEUVGUARUVIUUHRTZVLZUVEUVGUVKUVEVLZUVDIYRDUUKPUMZQUOJURUVMUURQUO
          BURUIZVGUMZUSUNZTZUVGUVLUVQUUNUVOVQUNZTZUVLUVSUUNSTZUCUGZHUNZUWAUHUIZ
          UJUKZULUNZPUMZUVMPUMZUUNQUOZUCRUPZVLZUVLUWIUVTUVLUWHUCRUVLUWARTZVLZUW
          HUWFUUKPUMZUUMQUOZUWLUWAFGHUUHARSHVRZUVCUVJUVEUWKKVSZAGUGZFUGZVTUOUWQ
          HUNZUWRHUNZUWQUHUIUJUKULUNZPUMQUOUWTUWSUXAPUMQUOVLWAFRWBGRWBZUVCUVJUV
          EUWKLVSUVLUWKWCZUVIUVJUVEUWKWDZWEUWLUWMDPUMZUUNQUOUWFUUKDPUMZPUMZUUNQ
          UOUWNUWHUWLUXEUXGUUNQUWLUWFSTZUUKSTZDSTZUXEUXGWIUWLUWBSTUWESTZUXHUVLR
          SUWAHAUWOUVCUVJUVEKWFZWGUWLUWKUWDSTUXKUXCUWAWJUWDWKWRUWBUWEWLWMZUWLUV
          JUUJSTZUXIUXDUUHWJZUUJWKZWRZAUXJUVCUVJUVEUWKOVSZUWFUUKDWNWOVNUWLUDUEU
          FUWMUUMDQSPUDUGZSTZUEUGZSTZUFUGZSTWSUXSUYAQUOUYCUXSPUMUYCUYAPUMQUOUTU
          WLUXSUYAUYCWPWQUWLUXHUXIUWMSTUXMUXQUWFUUKWLWMUWLRSUUHHUWPUXDWTUXRUXTU
          YBVLUXSUYAPUMUYAUXSPUMWIUWLUXSUYAXAWQXBUWLUWGUXGUUNQUWLUVMUXFUWFPUWLU
          XJUXIUVMUXFWIUXRUXQDUUKXAWMVDVNXCXDXGXEUVLUVSUUNUWGUURQUOZUCRUPZBSUQZ
          TUWJUVLUVRUYFUUNUVLBCUVMUCFGHIJUXLAUXBUVCUVJUVELWFACUWBQUOZUCRWBZUVCU
          VJUVEACUUDQUOZERWBUYHMUYIUYGEUCREUCVHZUUDUWBCQYSUWAHVEZXHXFXIWFIUUCUU
          DQUOZERUPZJSUQZUUDUUBPUMZUURQUOZERUPZBSUQZUIYRUWEPUMZUWBQUOZUCRUPZJSU
          QZUWFUURQUOZUCRUPZBSUQZUINUYNVUBUYRVUEUYMVUAJSUYMVUAUTUUTUYLUYTEUCRUY
          JUUCUYSUUDUWBQUYJUUBUWEYRPUYJUUAUWDULUYJYTUWCUJYSUWAUHVAVBVCZVDUYKVIV
          JWHVKUYQVUDBSUYQVUDUTUURSTUYPVUCEUCRUYJUYOUWFUURQUYJUUDUWBUUBUWEPUYKV
          UFXJVNVJWHVKXKXLUVLUXJUXIUVMSTZAUXJUVCUVJUVEOWFZUVJUXIUVIUVEUVJUXNUXI
          UXOUXPXMXPZDUUKWLWMZXNXOUYEUWIBUUNSUURUUNWIUYDUWHUCRUURUUNUWGQXQVOVPX
          RXSUVKUVEUVOYFTZUVQUVSXTZUVLIYFTZUVNYFTZVUKAVUMUVCUVJUVEABCEFGHIJKLMN
          YAWFZUVLVUGVUNVUJBUVMJYBXMIUVNYCWMVUKUVPUVRUIYFTUVEVULUVOYDUVDUUNUVRU
          VPYEYGYHYIUVLBUUKUVBDIJVUOVUHAUVCUVJUVEWDVUIYJYOYKYLYMYNYPYQ $.
      $}

      ${
        caucvgprlemlim.q $e |- ( ph -> Q e. Q. ) $.
        caucvgprlemlim.jk $e |- ( ph -> J <N K ) $.
        caucvgprlemlim.jkq $e |- ( ph ->
          ( *Q ` [ <. J , 1o >. ] ~Q ) <Q Q ) $.
        ${
          $d F j l $.  $d F l u $.  $d K j l $.  $d K l u $.  $d Q j l $.
          $d Q l u $.  $d Q k $.  $d L j $.  $d L k $.  $d j l $.  $d j u $.
          $d F k n $.  $d j k $.
          $( Lemma for ~ caucvgpr .  Part of showing the putative limit to be a
             limit.  (Contributed by Jim Kingdon, 3-Oct-2020.) $)
          caucvgprlem1 $p |- ( ph ->
             <. { l | l <Q ( F ` K ) } , { u | ( F ` K ) <Q u } >.
             <P ( L +P. <. { l | l <Q Q } , { u | Q <Q u } >. ) ) $=
            ( cltq cfv wbr cab cop cpp c1st wcel cltp c1o ceq cec crq cplq cnpi
            cv co wrex clti wa ltrelpi brel simprd caucvgprlemk ffvelrnd ltanqi
            syl cnq syl2anc wceq opeq1 eceq1d fveq2d oveq2d fveq2 oveq1d rspcev
            breq12d crab wb oveq1 breq1d rexbidv elrab3 caucvgprlemladdrl sseld
            sylbird mpd cnp caucvgprlemcl nqprlu addclpr nqprl mpbid ) AJHUAZKL
            UOZDTUBLUCDBUOZTUBBUCUDZUEUPZUFUAZUGZWOWNTUBLUCWNWPTUBBUCUDWRUHUBZA
            WNEUOZUIUDZUJUKZULUAZUMUPZXBHUAZDUMUPZTUBZEUNUQZWTAJUNUGZWNJUIUDZUJ
            UKZULUAZUMUPZWNDUMUPZTUBZXJAIUNUGZXKAIJURUBXRXKUSRIJUNUNURUTVAVFVBZ
            AXNDTUBWNVGUGZXQADIJRSVCAUNVGJHMXSVDZXNDWNVEVHXIXQEJUNXBJVIZXFXOXHX
            PTYBXEXNWNUMYBXDXMULYBXCXLUJXBJUIVJVKVLVMYBXGWNDUMXBJHVNVOVQVPVHAXJ
            WNWOXEUMUPZXHTUBZEUNUQZLVGVRZUGZWTAXTYGXJVSYAYEXJLWNVGWOWNVIZYDXIEU
            NYHYCXFXHTWOWNXEUMVTWAWBWCVFAYFWSWNABCDEFGHKLMNOPQWDWEWFWGAXTWRWHUG
            ZWTXAVSYAAKWHUGWQWHUGZYIABCEFGHKLMNOPWIADVGUGYJQBDLWJVFKWQWKVHBWNWR
            LWLVHWM $.
        $}

        ${
          $d A j $.  $d F j u x $.  $d F l u x $.  $d F n $.  $d F k $.
          $d K j u x $.  $d K l u x $.  $d L x $.  $d L j $.  $d L k $.
          $d Q l u x $.  $d ph x $.  $d j l $.  $d j k $.  $d k n $.
          $( Lemma for ~ caucvgpr .  Part of showing the putative limit to be a
             limit.  (Contributed by Jim Kingdon, 3-Oct-2020.) $)
          caucvgprlem2 $p |- ( ph ->
              L <P <. { l | l <Q ( ( F ` K ) +Q Q ) } ,
              { u | ( ( F ` K ) +Q Q ) <Q u } >. ) $=
            ( cnq vx cfv c1o cop ceq cec crq cplq co cv cltq wbr cltp wrex wcel
            cab caucvgprlemk cnpi clti ltrelpi brel syl simprd ffvelrnd syl2anc
            wa ltanqi ltbtwnnqq sylib c2nd c1st simprl simprrl wceq fveq2 opeq1
            adantr eceq1d fveq2d oveq12d breq1d rspcev rexbidv crab fveq2i nqex
            breq2 rabex op2nd eqtri elrab2 sylanbrc simprrr breq1 sylibr ltnqex
            vex elab gtnqex op1st syl6eleqr rspe syl12anc caucvgprlemcl addclnq
            cnp wb nqprlu ltdfpr mpbird rexlimddv ) AJHUBZJUCUDZUEUFZUGUBZUHUIZ
            UAUJZUKULZXQXLDUHUIZUKULZVFZKLUJZXSUKULZLUPZXSBUJZUKULBUPZUDZUMULZU
            ATAXPXSUKULZYAUATUNAXODUKULXLTUOZYIADIJRSUQAURTJHMAIURUOZJURUOZAIJU
            SULYKYLVFRIJURURUSUTVAVBVCZVDZXODXLVGVEUAXPXSVHVIAXQTUOZYAVFZVFZYHX
            QKVJUBZUOZXQYGVKUBZUOZVFZUATUNZYQYOYSUUAUUCAYOYAVLZYQYOEUJZHUBZUUEU
            CUDZUEUFZUGUBZUHUIZXQUKULZEURUNZYSUUDYQYLXRUULAYLYPYMVQAYOXRXTVMUUK
            XREJURUUEJVNZUUJXPXQUKUUMUUFXLUUIXOUHUUEJHVOUUMUUHXNUGUUMUUGXMUEUUE
            JUCVPVRVSVTWAWBVEUUJYEUKULZEURUNZUULBXQTYRYEXQVNUUNUUKEURYEXQUUJUKW
            GWCYRYBUUIUHUIUUFUKULEURUNZLTWDZUUOBTWDZUDZVJUBUURKUUSVJPWEUUQUURUU
            PLTWFWHUUOBTWFWHWIWJWKWLYQXQYDYTYQXTXQYDUOAYOXRXTWMYCXTLXQUAWQYBXQX
            SUKWNWRWOYDYFLXSWPBXSWSWTXAUUBUATXBXCYQKXFUOZYGXFUOZYHUUCXGAUUTYPAB
            CEFGHKLMNOPXDVQAUVAYPAXSTUOZUVAAYJDTUOUVBYNQXLDXEVEBXSLXHVBVQKYGUAX
            IVEXJXK $.
        $}
      $}

      ${
        $d A j $.  $d F j u $.  $d F l u $.  $d F k n $.  $d j k ph x $.
        $d k l u x $.  $d j l $.  $d L j $.  $d L k $.
        $( Lemma for ~ caucvgpr .  The putative limit is a limit.  (Contributed
           by Jim Kingdon, 1-Oct-2020.) $)
        caucvgprlemlim $p |- ( ph ->
          A. x e. Q. E. j e. N. A. k e. N. ( j <N k ->
          ( <. { l | l <Q ( F ` k ) } , { u | ( F ` k ) <Q u } >.
              <P ( L +P. <. { l | l <Q x } , { u | x <Q u } >. ) /\
            L <P <. { l | l <Q ( ( F ` k ) +Q x ) } ,
              { u | ( ( F ` k ) +Q x ) <Q u } >. ) ) ) $=
          ( cv wbr cltq cab wa cnpi clti cfv cop cpp co cltp cplq wral wrex cnq
          wi wcel c1o ceq cec archrecnq adantl wf ad5antr simpr ad4antr simpllr
          crq caucvgprlem1 caucvgprlem2 jca ex ralrimiva reximdva mpd ) AEOZFOZ
          UAPZJOZVLHUBZQPJRVOCOZQPCRUCIVNBOZQPJRVQVPQPCRUCUDUEUFPZIVNVOVQUGUEZQ
          PJRVSVPQPCRUCUFPZSZUKZFTUHZETUIZBUJAVQUJULZSZVKUMUCUNUOVCUBVQQPZETUIZ
          WDWEWHAVQEUPUQWFWGWCETWFVKTULZSZWGWCWJWGSZWBFTWKVLTULZSZVMWAWMVMSZVRV
          TWNCDVQEFGHVKVLIJATUJHURWEWIWGWLVMKUSZAGOZVLUAPWPHUBZVOWPUMUCUNUOVCUB
          ZUGUEQPVOWQWRUGUEQPSUKFTUHGTUHWEWIWGWLVMLUSZADVKHUBQPETUHWEWIWGWLVMMU
          SZNWFWEWIWGWLVMAWEUTVAZWMVMUTZWJWGWLVMVBZVDWNCDVQEFGHVKVLIJWOWSWTNXAX
          BXCVEVFVGVHVGVIVJVH $.
      $}
    $}

    ${
      $d A j $.  $d F j k n l u x y z $.  $d j k ph x $.
      $( A Cauchy sequence of positive fractions with a modulus of convergence
         converges to a positive real.  This is basically Corollary 11.2.13 of
         [HoTT], p.  (varies) (one key difference being that this is for
         positive reals rather than signed reals).  Also, the HoTT book theorem
         has a modulus of convergence (that is, a rate of convergence)
         specified by (11.2.9) in HoTT whereas this theorem fixes the rate of
         convergence to say that all terms after the nth term must be within
         ` 1 / n ` of the nth term (it should later be able to prove versions
         of this theorem with a different fixed rate or a modulus of
         convergence supplied as a hypothesis).  We also specify that every
         term needs to be larger than a fraction ` A ` , to avoid the case
         where we have positive terms which "converge" to zero (which is not a
         positive real).

         This proof (including its lemmas) is similar to the proofs of
         ~ cauappcvgpr and ~ caucvgprpr .  Reading ~ cauappcvgpr first (the
         simplest of the three) might help understanding the other two.

         (Contributed by Jim Kingdon, 18-Jun-2020.) $)
      caucvgpr $p |- ( ph ->
          E. y e. P. A. x e. Q. E. j e. N. A. k e. N. ( j <N k ->
          ( <. { l | l <Q ( F ` k ) } , { u | ( F ` k ) <Q u } >.
              <P ( y +P. <. { l | l <Q x } , { u | x <Q u } >. ) /\
            y <P <. { l | l <Q ( ( F ` k ) +Q x ) } ,
              { u | ( ( F ` k ) +Q x ) <Q u } >. ) ) ) $=
        ( cv cplq co cltq wbr cnpi cnq vz c1o cop ceq cec crq cfv wrex crab cnp
        wcel clti cab cpp cltp wa wi wral wceq opeq1 eceq1d fveq2d oveq2d fveq2
        breq12d cbvrexv a1i rabbiia oveq12d breq1d caucvgprlemcl caucvgprlemlim
        wb opeq12i oveq1 breq2d breq1 anbi12d imbi2d rexralbidv ralbidv syl2anc
        rspcev ) AJNZUANZUBUCZUDUEZUFUGZOPZWEIUGZQRZUASUHZJTUIZWJWHOPZDNZQRZUAS
        UHZDTUIZUCZUJUKFNZGNZULRZWDXAIUGZQRJUMXCWOQRDUMUCZWSWDBNZQRJUMXEWOQRDUM
        UCZUNPZUORZWSWDXCXEOPZQRJUMXIWOQRDUMUCZUORZUPZUQZGSURFSUHZBTURZXBXDCNZX
        FUNPZUORZXPXJUORZUPZUQZGSURFSUHZBTURZCUJUHADEFGHIWSJKLMWMWDWTUBUCZUDUEZ
        UFUGZOPZWTIUGZQRZFSUHZJTUIWRYHYFOPZWOQRZFSUHZDTUIWLYJJTWLYJVMWDTUKWKYIU
        AFSWEWTUSZWIYGWJYHQYNWHYFWDOYNWGYEUFYNWFYDUDWEWTUBUTVAVBZVCWEWTIVDZVEVF
        VGVHWQYMDTWQYMVMWOTUKWPYLUAFSYNWNYKWOQYNWJYHWHYFOYPYOVIVJVFVGVHVNZVKABD
        EFGHIWSJKLMYQVLYCXOCWSUJXPWSUSZYBXNBTYRYAXMFGSSYRXTXLXBYRXRXHXSXKYRXQXG
        XDUOXPWSXFUNVOVPXPWSXJUOVQVRVSVTWAWCWB $.
    $}
  $}

  ${
    $d J l $.  $d J u $.  $d K l $.  $d K u $.
    caucvgprprlemk.jk $e |- ( ph -> J <N K ) $.
    caucvgprprlemk.jkq $e |- ( ph ->
      <. { l | l <Q ( *Q ` [ <. J , 1o >. ] ~Q ) } ,
        { u | ( *Q ` [ <. J , 1o >. ] ~Q ) <Q u } >.
      <P Q ) $.
    $( Lemma for ~ caucvgprpr .  Reciprocals of positive integers decrease as
       the positive integers increase.  (Contributed by Jim Kingdon,
       28-Nov-2020.) $)
    caucvgprprlemk $p |- ( ph ->
        <. { l | l <Q ( *Q ` [ <. K , 1o >. ] ~Q ) } ,
          { u | ( *Q ` [ <. K , 1o >. ] ~Q ) <Q u } >.
        <P Q ) $=
      ( cv c1o cop ceq cec crq cfv cltq wbr cab cltp cnpi clti wcel brel ltnnnq
      wa wb ltrelpi 3syl mpbid ltrnqi ltnqpri cnp ltsopr ltrelpr sotri syl2anc
      ) AFIZEJKLMZNOZPQFRUSBIZPQBRKZUQDJKLMZNOZPQFRVCUTPQBRKZSQZVDCSQVACSQAVBUR
      PQZUSVCPQVEADEUAQZVFGAVGDTUBETUBUEVGVFUFGDETTUAUGUCDEUDUHUIVBURUJBUSVCFUK
      UHHVAVDCSULUMUNUOUP $.
  $}

  ${
    $d M l u $.  $d S l u $.  $d T l u $.
    caucvgprprlemloccalc.st $e |- ( ph -> S <Q T ) $.
    caucvgprprlemloccalc.y $e |- ( ph -> Y e. Q. ) $.
    caucvgprprlemloccalc.syt $e |- ( ph -> ( S +Q Y ) = T ) $.
    caucvgprprlemloccalc.x $e |- ( ph -> X e. Q. ) $.
    caucvgprprlemloccalc.xxy $e |- ( ph -> ( X +Q X ) <Q Y ) $.
    caucvgprprlemloccalc.m $e |- ( ph -> M e. N. ) $.
    caucvgprprlemloccalc.mx $e |- ( ph ->
      ( *Q ` [ <. M , 1o >. ] ~Q ) <Q X ) $.
    $( Lemma for ~ caucvgprpr .  Rearranging some expressions for
       ~ caucvgprprlemloc .  (Contributed by Jim Kingdon, 8-Feb-2021.) $)
    caucvgprprlemloccalc $p |- ( ph ->
        ( <. { l | l <Q ( S +Q ( *Q ` [ <. M , 1o >. ] ~Q ) ) } ,
          { u | ( S +Q ( *Q ` [ <. M , 1o >. ] ~Q ) ) <Q u } >.
          +P. <. { l | l <Q ( *Q ` [ <. M , 1o >. ] ~Q ) } ,
            { u | ( *Q ` [ <. M , 1o >. ] ~Q ) <Q u } >. )
        <P <. { l | l <Q T } , { u | T <Q u } >. ) $=
      ( co cltq wbr cab cnq c1o cop ceq cec crq cfv cplq cltp wcel wceq ltrelnq
      cv cpp wa brel simpld cnpi nnnq recclnq addclnq syl2anc addnqpr addassnqg
      syl 3syl syl3anc wi lt2addnq syl22anc mp2and ltsonq sotri breqtrd eqbrtrd
      ltanqi ltnqpri eqbrtrrd ) AHULZCEUAUBUCUDZUEUFZUGPZVTUGPZQRHSWBBULZQRBSUB
      ZVRWAQRHSWAWCQRBSUBVRVTQRHSVTWCQRBSUBUMPZVRDQRHSDWCQRBSUBZUHAWATUIZVTTUIZ
      WDWEUJACTUIZWHWGAWIDTUIZACDQRWIWJUNICDTTQUKUOVDUPZAEUQUIVSTUIWHNEURVSUSVE
      ZCVTUTVAWLBWAVTHVBVAAWBDQRWDWFUHRAWBCVTVTUGPZUGPZDQAWIWHWHWBWNUJWKWLWLCVT
      VTVCVFAWNCGUGPZDQAWMGQRZWIWNWOQRAWMFFUGPZQRZWQGQRWPAVTFQRZWSWROOAWHFTUIZW
      HWTWSWSUNWRVGWLLWLLVTFVTFVHVIVJMWMWQGQTVKUKVLVAWKWMGCVOVAKVMVNBWBDHVPVDVQ
      $.
  $}

  ${
    $d F a b $.  $d F l r $.  $d F u r $.  $d X a b p $.  $d X l p r $.
    $d X p r u $.  $d X a b q $.  $d a p r $.  $d l q r $.  $d q r u $.
    caucvgprprlemell.lim $e |- L = <.
      { l e. Q. | E. r e. N.
        <. { p | p <Q ( l +Q ( *Q ` [ <. r , 1o >. ] ~Q ) ) } ,
          { q | ( l +Q ( *Q ` [ <. r , 1o >. ] ~Q ) ) <Q q }
        >. <P ( F ` r ) } ,
      { u e. Q. | E. r e. N.
        ( ( F ` r ) +P. <. { p | p <Q ( *Q ` [ <. r , 1o >. ] ~Q ) } ,
          { q | ( *Q ` [ <. r , 1o >. ] ~Q ) <Q q } >. ) <P
        <. { p | p <Q u } , { q | u <Q q } >. }
      >. $.
    $( Lemma for ~ caucvgprpr .  Membership in the lower cut of the putative
       limit.  (Contributed by Jim Kingdon, 21-Jan-2021.) $)
    caucvgprprlemell $p |- ( X e. ( 1st ` L ) <-> ( X e. Q. /\
        E. b e. N. <. { p | p <Q ( X +Q ( *Q ` [ <. b , 1o >. ] ~Q ) ) } ,
          { q | ( X +Q ( *Q ` [ <. b , 1o >. ] ~Q ) ) <Q q }
        >. <P ( F ` b ) ) ) $=
      ( cfv cnq cv cop cplq cltq wbr cab cltp cnpi va c1st wcel c1o ceq cec crq
      co wrex wa wceq breq2d abbidv breq1d opeq12d rexbidv crab cpp fveq2i nqex
      oveq1 rabex op1st eqtri elrab2 opeq1 eceq1d fveq2d oveq2d breq12d cbvrexv
      fveq2 bitri anbi2i ) DCUBKZUCDLUCZGMZDEMZUDNZUEUFZUGKZOUHZPQZGRZWBFMZPQZF
      RZNZVRBKZSQZETUIZUJVPVQDHMZUDNZUEUFZUGKZOUHZPQZGRZWPWEPQZFRZNZWLBKZSQZHTU
      IZUJVQIMZWAOUHZPQZGRZXFWEPQZFRZNZWISQZETUIZWKIDLVOXEDUKZXLWJETXNXKWHWISXN
      XHWDXJWGXNXGWCGXNXFWBVQPXEDWAOVAZULUMXNXIWFFXNXFWBWEPXOUNUMUOUNUPVOXMILUQ
      ZWIVQWAPQGRWAWEPQFRNURUHVQAMZPQGRXQWEPQFRNSQETUIZALUQZNZUBKXPCXTUBJUSXPXS
      XMILUTVBXRALUTVBVCVDVEWKXDVPWKVQDUAMZUDNZUEUFZUGKZOUHZPQZGRZYEWEPQZFRZNZY
      ABKZSQZUATUIXDWJYLEUATVRYAUKZWHYJWIYKSYMWDYGWGYIYMWCYFGYMWBYEVQPYMWAYDDOY
      MVTYCUGYMVSYBUEVRYAUDVFVGVHVIZULUMYMWFYHFYMWBYEWEPYNUNUMUOVRYABVLVJVKYLXC
      UAHTYAWLUKZYJXAYKXBSYOYGWRYIWTYOYFWQGYOYEWPVQPYOYDWODOYOYCWNUGYOYBWMUEYAW
      LUDVFVGVHVIZULUMYOYHWSFYOYEWPWEPYPUNUMUOYAWLBVLVJVKVMVNVM $.

    $( Lemma for ~ caucvgprpr .  Membership in the upper cut of the putative
       limit.  (Contributed by Jim Kingdon, 28-Jan-2021.) $)
    caucvgprprlemelu $p |- ( X e. ( 2nd ` L ) <-> ( X e. Q. /\ E. b e. N.
        ( ( F ` b ) +P. <. { p | p <Q ( *Q ` [ <. b , 1o >. ] ~Q ) } ,
          { q | ( *Q ` [ <. b , 1o >. ] ~Q ) <Q q } >. ) <P
        <. { p | p <Q X } , { q | X <Q q } >. ) ) $=
      ( cfv cnq cv cop cltq wbr cab cltp cnpi abbidv va c2nd c1o ceq cec crq co
      wcel cpp wrex wa wceq breq2 breq1 opeq12d breq2d rexbidv cplq crab fveq2i
      rabex op2nd eqtri elrab2 fveq2 opeq1 eceq1d fveq2d breq1d oveq12d cbvrexv
      nqex bitri anbi2i ) DCUBKZUHDLUHZEMZBKZGMZVQUCNZUDUEZUFKZOPZGQZWBFMZOPZFQ
      ZNZUIUGZVSDOPZGQZDWEOPZFQZNZRPZESUJZUKVPHMZBKZVSWQUCNZUDUEZUFKZOPZGQZXAWE
      OPZFQZNZUIUGZWNRPZHSUJZUKWIVSAMZOPZGQZXJWEOPZFQZNZRPZESUJZWPADLVOXJDULZXP
      WOESXRXOWNWIRXRXLWKXNWMXRXKWJGXJDVSOUMTXRXMWLFXJDWEOUNTUOUPUQVOVSIMWBURUG
      ZOPGQXSWEOPFQNVRRPESUJZILUSZXQALUSZNZUBKYBCYCUBJUTYAYBXTILVLVAXQALVLVAVBV
      CVDWPXIVPWPUAMZBKZVSYDUCNZUDUEZUFKZOPZGQZYHWEOPZFQZNZUIUGZWNRPZUASUJXIWOY
      OEUASVQYDULZWIYNWNRYPVRYEWHYMUIVQYDBVEYPWDYJWGYLYPWCYIGYPWBYHVSOYPWAYGUFY
      PVTYFUDVQYDUCVFVGVHZUPTYPWFYKFYPWBYHWEOYQVITUOVJVIVKYOXHUAHSYDWQULZYNXGWN
      RYRYEWRYMXFUIYDWQBVEYRYJXCYLXEYRYIXBGYRYHXAVSOYRYGWTUFYRYFWSUDYDWQUCVFVGV
      HZUPTYRYKXDFYRYHXAWEOYSVITUOVJVIVKVMVNVM $.
  $}

  ${
    caucvgprpr.f $e |- ( ph -> F : N. --> P. ) $.
    caucvgprpr.cau $e |- ( ph ->
      A. n e. N. A. k e. N. ( n <N k ->
        ( ( F ` n ) <P ( ( F ` k ) +P.
          <. { l | l <Q ( *Q ` [ <. n , 1o >. ] ~Q ) } ,
            { u | ( *Q ` [ <. n , 1o >. ] ~Q ) <Q u } >.
        ) /\
        ( F ` k ) <P ( ( F ` n ) +P.
          <. { l | l <Q ( *Q ` [ <. n , 1o >. ] ~Q ) } ,
            { u | ( *Q ` [ <. n , 1o >. ] ~Q ) <Q u } >.
        ) ) ) ) $.
    ${
      $d F a b k $.  $d F a k n $.  $d a b k l $.  $d a b k u $.  $d l n $.
      $d n u $.
      $( Lemma for ~ caucvgprpr .  Change bound variables in Cauchy condition.
         (Contributed by Jim Kingdon, 12-Feb-2021.) $)
      caucvgprprlemcbv $p |- ( ph ->
        A. a e. N. A. b e. N. ( a <N b ->
          ( ( F ` a ) <P ( ( F ` b ) +P.
            <. { l | l <Q ( *Q ` [ <. a , 1o >. ] ~Q ) } ,
              { u | ( *Q ` [ <. a , 1o >. ] ~Q ) <Q u } >.
          ) /\
          ( F ` b ) <P ( ( F ` a ) +P.
            <. { l | l <Q ( *Q ` [ <. a , 1o >. ] ~Q ) } ,
              { u | ( *Q ` [ <. a , 1o >. ] ~Q ) <Q u } >.
          ) ) ) ) $=
        ( cv clti wbr cfv cop cltq cpp co cltp cnpi c1o ceq cec crq cab wa wral
        weq breq1 fveq2 opeq1 eceq1d fveq2d breq2d abbidv breq1d opeq12d oveq2d
        wi breq12d oveq12d anbi12d imbi12d breq2 oveq1d cbvral2v sylib ) ADKZCK
        ZLMZVHENZVIENZHKZVHUAOZUBUCZUDNZPMZHUEZVPBKZPMZBUEZOZQRZSMZVLVKWBQRZSMZ
        UFZUSZCTUGDTUGFKZGKZLMZWIENZWJENZVMWIUAOZUBUCZUDNZPMZHUEZWPVSPMZBUEZOZQ
        RZSMZWMWLXAQRZSMZUFZUSZGTUGFTUGJWHXGWIVILMZWLVLXAQRZSMZVLXDSMZUFZUSDCFG
        TTDFUHZVJXHWGXLVHWIVILUIXMWDXJWFXKXMVKWLWCXISVHWIEUJZXMWBXAVLQXMVRWRWAW
        TXMVQWQHXMVPWPVMPXMVOWOUDXMVNWNUBVHWIUAUKULUMZUNUOXMVTWSBXMVPWPVSPXOUPU
        OUQZURUTXMWEXDVLSXMVKWLWBXAQXNXPVAUNVBVCCGUHZXHWKXLXFVIWJWILVDXQXJXCXKX
        EXQXIXBWLSXQVLWMXAQVIWJEUJZVEUNXQVLWMXDSXRUPVBVCVFVG $.
    $}

    ${
      $d A a b l $.  $d A a b u $.  $d A l p $.  $d A q u $.  $d B b $.
      $d F a b k $.  $d F a k n $.  $d k l n $.  $d k n u $.  $d a b k u $.
      $( Lemma for ~ caucvgprpr .  Cauchy condition expressed in terms of
         classes.  (Contributed by Jim Kingdon, 3-Mar-2021.) $)
      caucvgprprlemval $p |- ( ( ph /\ A <N B ) ->
          ( ( F ` A ) <P ( ( F ` B ) +P.
            <. { p | p <Q ( *Q ` [ <. A , 1o >. ] ~Q ) } ,
              { q | ( *Q ` [ <. A , 1o >. ] ~Q ) <Q q } >.
          ) /\
          ( F ` B ) <P ( ( F ` A ) +P.
            <. { p | p <Q ( *Q ` [ <. A , 1o >. ] ~Q ) } ,
              { q | ( *Q ` [ <. A , 1o >. ] ~Q ) <Q q } >.
          ) ) ) $=
        ( clti wbr wa cltq cpp co cltp cnpi va cfv c1o cop ceq cec crq cab wcel
        vb cv wral ltrelpi brel adantl caucvgprprlemcbv adantr simpr wceq breq1
        fveq2 eceq1d fveq2d breq2d abbidv breq1d opeq12d oveq2d breq12d oveq12d
        wi opeq1 anbi12d imbi12d breq2 oveq1d rspc2v syl3c cbvabv oveq2i breq2i
        opeq12i anbi12i sylib ) ACDMNZOZCGUBZDGUBZJUKZCUCUDZUEUFZUGUBZPNZJUHZWL
        BUKZPNZBUHZUDZQRZSNZWHWGWRQRZSNZOZWGWHIUKZWLPNZIUHZWLHUKZPNZHUHZUDZQRZS
        NZWHWGXJQRZSNZOWFCTUIDTUIOZUAUKZUJUKZMNZXPGUBZXQGUBZWIXPUCUDZUEUFZUGUBZ
        PNZJUHZYCWOPNZBUHZUDZQRZSNZXTXSYHQRZSNZOZVKZUJTULUATULZWEXCWEXOACDTTMUM
        UNUOAYOWEABEFGUAUJJKLUPUQAWEURYNWEXCVKCXQMNZWGXTWRQRZSNZXTXASNZOZVKUAUJ
        CDTTXPCUSZXRYPYMYTXPCXQMUTUUAYJYRYLYSUUAXSWGYIYQSXPCGVAZUUAYHWRXTQUUAYE
        WNYGWQUUAYDWMJUUAYCWLWIPUUAYBWKUGUUAYAWJUEXPCUCVLVBVCZVDVEUUAYFWPBUUAYC
        WLWOPUUCVFVEVGZVHVIUUAYKXAXTSUUAXSWGYHWRQUUBUUDVJVDVMVNXQDUSZYPWEYTXCXQ
        DCMVOUUEYRWTYSXBUUEYQWSWGSUUEXTWHWRQXQDGVAZVPVDUUEXTWHXASUUFVFVMVNVQVRW
        TXLXBXNWSXKWGSWRXJWHQWNXFWQXIWMXEJIWIXDWLPUTVSWPXHBHWOXGWLPVOVSWBZVTWAX
        AXMWHSWRXJWGQUUGVTWAWCWD $.
    $}

    ${
      $d F f g h $.  $d F k n $.  $d J f g h $.  $d K f g h $.  $d S f g h $.
      $d f g h ph $.
      caucvgprprlemnkj.k $e |- ( ph -> K e. N. ) $.
      caucvgprprlemnkj.j $e |- ( ph -> J e. N. ) $.
      caucvgprprlemnkj.s $e |- ( ph -> S e. Q. ) $.
      ${
        $d J f g h p q $.  $d K f g h p q $.  $d K l p $.  $d K q u $.
        $d S f g h p q $.  $d k l n $.  $d k n u $.
        $( Lemma for ~ caucvgprpr .  Part of disjointness.  (Contributed by Jim
           Kingdon, 12-Feb-2021.) $)
        caucvgprprlemnkltj $p |- ( ( ph /\ K <N J ) -> -.
            ( <. { p | p <Q ( S +Q ( *Q ` [ <. K , 1o >. ] ~Q ) ) } ,
                { q | ( S +Q ( *Q ` [ <. K , 1o >. ] ~Q ) ) <Q q } >.
              <P ( F ` K ) /\
            ( ( F ` J ) +P. <. { p | p <Q ( *Q ` [ <. J , 1o >. ] ~Q ) } ,
              { q | ( *Q ` [ <. J , 1o >. ] ~Q ) <Q q } >. ) <P
              <. { p | p <Q S } , { q | S <Q q } >. ) ) $=
          ( wbr cltp cnp wcel vf vg vh clti wa cv c1o cop ceq cec crq cplq cltq
          cfv co cab ltsopr ltrelpr simprl caucvgprprlemval simpld adantr sotri
          cpp son2lpi syl2anc w3a wb ltaprg adantl cnq ad2antrr nqprlu syl cnpi
          ffvelrnd recnnpr wceq addcomprg caovord2d mpbird simprr jca mtoi nnnq
          ltaddpr ex recclnq 3syl addnqpr breq1d anbi1d mtbird ) AHGUDQZUEZJUFZ
          CHUGUHUIUJZUKUNZULUOZUMQJUPWSIUFZUMQIUPUHZHFUNZRQZGFUNZWPGUGUHUIUJUKU
          NZUMQJUPXEWTUMQIUPUHZVDUOZWPCUMQJUPCWTUMQIUPUHZRQZUEXHWPWRUMQJUPWRWTU
          MQIUPUHZVDUOZXBRQZXIUEZWOXMXHXDRQZXDXHRQZUEZXHXDRSUQURVEWOXMXPWOXMUEZ
          XNXOXQXNXKXDXJVDUOZRQZXQXLXBXRRQZXSWOXLXIUSWOXTXMWOXTXDXBXJVDUORQABHG
          DEFIJKLMUTVAVBXKXBXRRSUQURVCVFXQUAUBUCXHXDXJRSVDUAUFZSTZUBUFZSTZUCUFZ
          STVGYAYCRQYEYAVDUOYEYCVDUORQVHXQYAYCYEVIVJXQCVKTZXHSTAYFWNXMPVLICJVMV
          NAXDSTZWNXMAVOSGFLOVPVLZAXJSTZWNXMAHVOTZYINIHJVQVNVLYBYDUEYAYCVDUOYCY
          AVDUOVRXQYAYCVSVJVTWAXQXDXGRQZXIXOXQYGXFSTZYKYHAYLWNXMAGVOTYLOIGJVQVN
          VLXDXFWFVFWOXLXIWBXDXGXHRSUQURVCVFWCWGWDWOXCXLXIWOXAXKXBRWOYFWRVKTZXA
          XKVRAYFWNPVBAYMWNAYJWQVKTYMNHWEWQWHWIVBICWRJWJVFWKWLWM $.
      $}

      ${
        $d J p q $.  $d K p q $.  $d S p q $.
        $( Lemma for ~ caucvgprpr .  Part of disjointness.  (Contributed by Jim
           Kingdon, 12-Feb-2021.) $)
        caucvgprprlemnkeqj $p |- ( ( ph /\ K = J ) -> -.
            ( <. { p | p <Q ( S +Q ( *Q ` [ <. K , 1o >. ] ~Q ) ) } ,
                { q | ( S +Q ( *Q ` [ <. K , 1o >. ] ~Q ) ) <Q q } >.
              <P ( F ` K ) /\
            ( ( F ` J ) +P. <. { p | p <Q ( *Q ` [ <. J , 1o >. ] ~Q ) } ,
              { q | ( *Q ` [ <. J , 1o >. ] ~Q ) <Q q } >. ) <P
              <. { p | p <Q S } , { q | S <Q q } >. ) ) $=
          ( cltq wbr cab cltp wceq wa cv c1o cop ceq cec crq cfv cplq co ltsopr
          cpp cnp ltrelpr son2lpi wcel ffvelrnd ad2antrr cnq adantr syl recclnq
          cnpi nnnq nqprlu ltaddpr syl2anc simprr sotri simprl wb addnqpr mpbid
          breq1d ex mtoi opeq1 eceq1d fveq2d oveq2d breq2d abbidv opeq12d fveq2
          jca breq12d anbi1d adantl mtbird ) AHGUAZUBZJUCZCHUDUEZUFUGZUHUIZUJUK
          ZQRZJSZWQIUCZQRZISZUEZHFUIZTRZGFUIZWMGUDUEZUFUGZUHUIZQRJSXIWTQRISUEZU
          MUKZWMCQRJSCWTQRISUEZTRZUBZWMCXIUJUKZQRZJSZXOWTQRZISZUEZXFTRZXMUBZWLY
          BXFXLTRZXLXFTRZUBZXFXLTUNULUOUPWLYBYEWLYBUBZYCYDYFXFXKTRZXMYCYFXFUNUQ
          ZXJUNUQZYGAYHWKYBAVDUNGFLOURUSWLYIYBWLXIUTUQZYIWLXHUTUQZYJWLGVDUQZYKA
          YLWKOVAGVEVBXHVCVBZIXIJVFVBZVAXFXJVGVHWLYAXMVIXFXKXLTUNULUOVJVHYFXLXL
          XJUMUKZTRZYOXFTRZYDWLYPYBWLXLUNUQZYIYPWLCUTUQZYRAYSWKPVAZICJVFVBYNXLX
          JVGVHVAYFYAYQWLYAXMVKWLYAYQVLYBWLXTYOXFTWLYSYJXTYOUAYTYMICXIJVMVHVOVA
          VNXLYOXFTUNULUOVJVHWFVPVQWKXNYBVLAWKXEYAXMWKXCXTXDXFTWKWSXQXBXSWKWRXP
          JWKWQXOWMQWKWPXICUJWKWOXHUHWKWNXGUFHGUDVRVSVTWAZWBWCWKXAXRIWKWQXOWTQU
          UAVOWCWDHGFWEWGWHWIWJ $.
      $}

      ${
        $d J l p $.  $d J q u $.  $d K p $.  $d K q $.  $d S p $.  $d S q $.
        $d k u $.  $d k l n $.  $d n u $.
        $( Lemma for ~ caucvgprpr .  Part of disjointness.  (Contributed by Jim
           Kingdon, 12-Feb-2021.) $)
        caucvgprprlemnjltk $p |- ( ( ph /\ J <N K ) -> -.
            ( <. { p | p <Q ( S +Q ( *Q ` [ <. K , 1o >. ] ~Q ) ) } ,
                { q | ( S +Q ( *Q ` [ <. K , 1o >. ] ~Q ) ) <Q q } >.
              <P ( F ` K ) /\
            ( ( F ` J ) +P. <. { p | p <Q ( *Q ` [ <. J , 1o >. ] ~Q ) } ,
              { q | ( *Q ` [ <. J , 1o >. ] ~Q ) <Q q } >. ) <P
              <. { p | p <Q S } , { q | S <Q q } >. ) ) $=
          ( wbr cltq cab cltp clti wa cv c1o cop ceq cec crq cfv cplq co ltsopr
          cpp cnp ltrelpr son2lpi wcel ad2antrr recclnq ltaddnq syl2anc ltnqpri
          cnq cnpi nnnq 3syl simprl caucvgprprlemval simprd adantr sotri simprr
          syl jca ex mtoi ) AGHUAQZUBZJUCZCHUDUEUFUGZUHUIZUJUKZRQJSWBIUCZRQISUE
          ZHFUIZTQZGFUIZVSGUDUEUFUGUHUIZRQJSWHWCRQISUEZUMUKZVSCRQJSCWCRQISUEZTQ
          ZUBZWKWJTQZWLUBZWKWJTUNULUOUPVRWMWOVRWMUBZWNWLWPWKWDTQZWDWJTQZWNWPCWB
          RQZWQWPCVCUQZWAVCUQZWSAWTVQWMPURWPHVDUQZVTVCUQXAAXBVQWMNURHVEVTUSVFCW
          AUTVAICWBJVBVMWPWFWEWJTQZWRVRWFWLVGVRXCWMVRWGWEWIUMUKTQXCABGHDEFIJKLM
          VHVIVJWDWEWJTUNULUOVKVAWKWDWJTUNULUOVKVAVRWFWLVLVNVOVP $.
      $}

      ${
        $d J p q $.  $d J u $.  $d J l $.  $d K p q $.  $d K l $.  $d K u $.
        $d S p q $.  $d n u $.  $d l n $.  $d k l $.  $d k u $.  $d q u $.
        $d p l $.
        $( Lemma for ~ caucvgprpr .  Part of disjointness.  (Contributed by Jim
           Kingdon, 20-Jan-2021.) $)
        caucvgprprlemnkj $p |- ( ph -> -.
            ( <. { p | p <Q ( S +Q ( *Q ` [ <. K , 1o >. ] ~Q ) ) } ,
                { q | ( S +Q ( *Q ` [ <. K , 1o >. ] ~Q ) ) <Q q } >.
              <P ( F ` K ) /\
            ( ( F ` J ) +P. <. { p | p <Q ( *Q ` [ <. J , 1o >. ] ~Q ) } ,
              { q | ( *Q ` [ <. J , 1o >. ] ~Q ) <Q q } >. ) <P
              <. { p | p <Q S } , { q | S <Q q } >. ) ) $=
          ( wbr cop cltq cab clti cv c1o ceq cec crq cfv cplq co cltp cpp wa wn
          caucvgprprlemnkltj caucvgprprlemnkeqj caucvgprprlemnjltk w3o pitri3or
          wceq cnpi wcel syl2anc mpjao3dan ) AHGUAQZJUBZCHUCRUDUEUFUGUHUIZSQJTV
          FIUBZSQITRHFUGUJQGFUGVEGUCRUDUEUFUGZSQJTVHVGSQITRUKUIVECSQJTCVGSQITRU
          JQULUMHGUSZGHUAQZABCDEFGHIJKLMNOPUNABCDEFGHIJKLMNOPUOABCDEFGHIJKLMNOP
          UPAHUTVAGUTVAVDVIVJUQNOHGURVBVC $.
      $}
    $}

    ${
      $d B k l n $.  $d B l p $.  $d B p q x y z $.  $d B k n u $.  $d F k n $.
      $d F x y z $.  $d J k l n $.  $d J l p $.  $d J p q x y z $.
      $d J k n u $.  $d ph x y z $.  $d q u $.
      caucvgprprlemnbj.b $e |- ( ph -> B e. N. ) $.
      caucvgprprlemnbj.j $e |- ( ph -> J e. N. ) $.
      $( Lemma for ~ caucvgprpr .  Non-existence of two elements of the
         sequence which are too far from each other.  (Contributed by Jim
         Kingdon, 17-Jun-2021.) $)
      caucvgprprlemnbj $p |- ( ph ->
          -. ( ( ( F ` B ) +P. <. { l | l <Q ( *Q ` [ <. B , 1o >. ] ~Q ) } ,
            { u | ( *Q ` [ <. B , 1o >. ] ~Q ) <Q u } >. )
            +P. <. { l | l <Q ( *Q ` [ <. J , 1o >. ] ~Q ) } ,
            { u | ( *Q ` [ <. J , 1o >. ] ~Q ) <Q u } >. )
            <P ( F ` J ) ) $=
        ( vp cltq wbr cpp co cltp cnp wcel vq vx vy cfv c1o cop ceq cec crq cab
        vz cv wn clti wceq wa caucvgprprlemval simprd cnpi ffvelrnd recnnpr syl
        addclpr syl2anc ltaddpr adantr ltsopr ltrelpr sotri fveq2 breq1d adantl
        wb mpbid simpld w3a ltaprg addcomprg caovord2d pitri3or mpjao3dan so2nr
        w3o wor mpan imnan sylibr mpd breq1 cbvabv breq2 opeq12i oveq2i oveq12i
        wi breq1i sylnib ) ACFUDZMULZCUEUFUGUHUIUDZNOZMUJZWTUAULZNOZUAUJZUFZPQZ
        WSGUEUFUGUHUIUDZNOZMUJZXHXCNOZUAUJZUFZPQZGFUDZROZWRHULZWTNOZHUJZWTBULZN
        OZBUJZUFZPQZXQXHNOZHUJZXHXTNOZBUJZUFZPQZXOROAXOXNROZXPUMZACGUNOZYKCGUOZ
        GCUNOZAYMUPZXOXGROZXGXNROZYKYPWRXOXFPQROYQABCGDEFUAMHIJUQURAYRYMAXGSTZX
        MSTZYRAWRSTZXFSTZYSAUSSCFIKUTZACUSTZUUBKUACMVAVBZWRXFVCVDZAGUSTZYTLUAGM
        VAVBZXGXMVEVDZVFXOXGXNRSVGVHVIZVDAYNUPZYQYRYKUUKWRXGROZYQAUULYNAUUAUUBU
        ULUUCUUEWRXFVEVDZVFYNUULYQVMAYNWRXOXGRCGFVJVKVLVNAYRYNUUIVFUUJVDAYOUPZX
        OWRXMPQZROZUUOXNROZYKUUNUUPWRXOXMPQROABGCDEFUAMHIJUQVOAUUQYOAUULUUQUUMA
        UBUCUKWRXGXMRSPUBULZSTZUCULZSTZUKULZSTVPUURUUTROUVBUURPQUVBUUTPQROVMAUU
        RUUTUVBVQVLUUCUUFUUHUUSUVAUPUURUUTPQUUTUURPQUOAUURUUTVRVLVSVNVFXOUUOXNR
        SVGVHVIVDAUUDUUGYMYNYOWCKLCGVTVDWAAYKXPUPUMZYKYLWOAXOSTZXNSTZUVCAUSSGFI
        LUTAYSYTUVEUUFUUHXGXMVCVDSRWDUVDUVEUPUVCVGSXOXNRWBWEVDYKXPWFWGWHXNYJXOR
        XGYDXMYIPXFYCWRPXBXSXEYBXAXRMHWSXQWTNWIWJXDYAUABXCXTWTNWKWJWLWMXJYFXLYH
        XIYEMHWSXQXHNWIWJXKYGUABXCXTXHNWKWJWLWNWPWQ $.
    $}

    $d A m $.  $d F m $.
    caucvgprpr.bnd $e |- ( ph -> A. m e. N. A <P ( F ` m ) ) $.

    ${
      caucvgprpr.lim $e |- L = <.
        { l e. Q. | E. r e. N.
          <. { p | p <Q ( l +Q ( *Q ` [ <. r , 1o >. ] ~Q ) ) } ,
            { q | ( l +Q ( *Q ` [ <. r , 1o >. ] ~Q ) ) <Q q }
          >. <P ( F ` r ) } ,
        { u e. Q. | E. r e. N.
          ( ( F ` r ) +P. <. { p | p <Q ( *Q ` [ <. r , 1o >. ] ~Q ) } ,
            { q | ( *Q ` [ <. r , 1o >. ] ~Q ) <Q q } >. ) <P
          <. { p | p <Q u } , { q | u <Q q } >. }
        >. $.

      ${
        $d A m r $.  $d A r s x $.  $d F l $.  $d F m $.  $d L x $.
        $d l p q r s $.  $d l u x $.  $d ph r s x $.
        $( Lemma for ~ caucvgprpr .  The lower cut of the putative limit is
           inhabited.  (Contributed by Jim Kingdon, 29-Dec-2020.) $)
        caucvgprprlemml $p |- ( ph -> E. s e. Q. s e. ( 1st ` L ) ) $=
          ( cnq wbr cltq vx c1st cfv wcel wrex cnp c1o cltp cnpi wral 1pi fveq2
          cv wceq breq2d rspcv mpsyl ltrelpr brel simpld syl c2nd cop prop prml
          wa cplq co subhalfnqq ad2antrl ceq cec crq cab simplr archrecnq simpr
          nnnq recclnq 3syl ad2antrr ltanqg syl3anc mpbid simpllr ltrelnq sotri
          wb ltsonq syl2anc wi ad5antr simprr ad4antr prcdnql sylan mpd addclnq
          nqprl sylc ltsopr ex reximdva oveq1 abbidv breq1d opeq12d rexbidv cpp
          crab fveq2i nqex rabex op1st eqtri elrab2 sylanbrc rexlimddv ) AUAUMZ
          CUBUCZUDZIUMZHUBUCZUDZIRUEZUARACUFUDZYAUARUEZACUGGUCZUHSZYFUGUIUDACEU
          MZGUCZUHSZEUIUJZYIUKPYLYIEUGUIYJUGUNYKYHCUHYJUGGULUOUPUQYIYFYHUFUDCYH
          UFUFUHURUSUTVAZYFXTCVBUCZVCUFUDZYGCVDZUAYOXTVEVAVAAXSRUDZYAVFZVFZYBYB
          VGVHZXSTSZIRUEZYEYRUUCAYAIXSVIVJYTUUBYDIRYTYBRUDZVFZUUBYDUUEUUBVFZUUD
          LUMZYBJUMZUGVCVKVLZVMUCZVGVHZTSZLVNZUUKKUMZTSZKVNZVCZUUHGUCZUHSZJUIUE
          ZYDYTUUDUUBVOZUUFUUJYBTSZJUIUEZUUTUUFUUDUVCUVAYBJVPVAUUFUVBUUSJUIUUFU
          UHUIUDZVFZUVBUUSUVEUVBVFZUUQCUHSZCUURUHSZUUSUVFUUKXTUDZUVGUVFUUKXSTSZ
          UVIUVFUUKUUATSZUUBUVJUVFUVBUVKUVEUVBVQUVFUUJRUDZUUDUUDUVBUVKWHUVFUVDU
          UIRUDUVLUUFUVDUVBVOZUUHVRUUIVSVTZUUFUUDUVDUVBUVAWAZUVOUUJYBYBWBWCWDUU
          EUUBUVDUVBWEUUKUUAXSTRWIWFWGWJUVFYFYAUVJUVIWKZAYFYSUUDUUBUVDUVBYNWLZY
          TYAUUDUUBUVDUVBAYRYAWMWNYFYPYAUVPYQXSUUKYOXTWOWPWJWQUVFUUKRUDZYFUVIUV
          GWHUVFUUDUVLUVRUVOUVNYBUUJWRWJUVQKUUKCLWSWJWDUVFUVDYMUVHUVMAYMYSUUDUU
          BUVDUVBPWLYLUVHEUUHUIYJUUHUNYKUURCUHYJUUHGULUOUPWTUUQCUURUHUFXAURWGWJ
          XBXCWQUUGMUMZUUJVGVHZTSZLVNZUVTUUNTSZKVNZVCZUURUHSZJUIUEZUUTMYBRYCUVS
          YBUNZUWFUUSJUIUWHUWEUUQUURUHUWHUWBUUMUWDUUPUWHUWAUULLUWHUVTUUKUUGTUVS
          YBUUJVGXDZUOXEUWHUWCUUOKUWHUVTUUKUUNTUWIXFXEXGXFXHYCUWGMRXJZUURUUGUUJ
          TSLVNUUJUUNTSKVNVCXIVHUUGBUMZTSLVNUWKUUNTSKVNVCUHSJUIUEZBRXJZVCZUBUCU
          WJHUWNUBQXKUWJUWMUWGMRXLXMUWLBRXLXMXNXOXPXQXBXCWQXR $.
      $}

      ${
        $d A m r $.  $d F f g h x $.  $d F m $.  $d F r u x $.  $d L t x $.
        $d f g h p q x $.  $d f g h ph x $.  $d p q r u x $.
        $( Lemma for ~ caucvgprpr .  The upper cut of the putative limit is
           inhabited.  (Contributed by Jim Kingdon, 29-Dec-2020.) $)
        caucvgprprlemmu $p |- ( ph -> E. t e. Q. t e. ( 2nd ` L ) ) $=
          ( wcel cltq wbr vx vf vg vh cv c1o cfv c2nd cnq wrex cnp c1st cop 1pi
          cnpi a1i ffvelrnd prop prmu 3syl wa c1q co simprl 1nq addclnq sylancl
          cplq ceq cec crq cab cltp simprr wb adantr nqpru syl2anc mpbid ltaprg
          cpp w3a adantl nqprlu syl mp1i wceq addcomprg caovord2d fveq2i rec1nq
          eqtr3i breq2i abbii breq1i opeq12i oveq2i addnqpr 3brtr4d fveq2 opeq1
          eceq1d fveq2d breq2d abbidv breq1d opeq12d oveq12d rspcev breq2 breq1
          df-1nqqs rexbidv crab nqex rabex op2nd eqtri sylanbrc eleq1 rexlimddv
          elrab2 ) AUAUEZUFHUGZUHUGZRZCUEZIUHUGZRZCUIUJZUAUIAYDUKRZYDULUGZYEUMU
          KRYFUAUIUJAUOUKUFHNUFUORZAUNUPUQZYDURUAYEYLUSUTAYCUIRZYFVAZVAZYCVBVHV
          CZUIRZYRYHRZYJYQYOVBUIRZYSAYOYFVDZVEYCVBVFVGZYQYSJUEZHUGZLUEZUUDUFUMZ
          VIVJZVKUGZSTZLVLZUUIKUEZSTZKVLZUMZWAVCZUUFYRSTZLVLZYRUULSTZKVLZUMZVMT
          ZJUOUJZYTUUCYQYMYDUUFUFUFUMZVIVJZVKUGZSTZLVLZUVFUULSTZKVLZUMZWAVCZUVA
          VMTZUVCYMYQUNUPYQYDUUFVBSTZLVLZVBUULSTZKVLZUMZWAVCZUUFYCSTLVLYCUULSTK
          VLUMZUVRWAVCZUVLUVAVMYQYDUVTVMTZUVSUWAVMTYQYFUWBAYOYFVNYQYOYKYFUWBVOU
          UBAYKYPYNVPZKYCYDLVQVRVSYQUBUCUDYDUVTUVRVMUKWAUBUEZUKRZUCUEZUKRZUDUEZ
          UKRWBUWDUWFVMTUWHUWDWAVCUWHUWFWAVCVMTVOYQUWDUWFUWHVTWCUWCYQYOUVTUKRUU
          BKYCLWDWEUUAUVRUKRYQVEKVBLWDWFUWEUWGVAUWDUWFWAVCUWFUWDWAVCWGYQUWDUWFW
          HWCWIVSUVLUVSWGYQUVKUVRYDWAUVHUVOUVJUVQUVGUVNLUVFVBUUFSVBVKUGUVFVBVBU
          VEVKXLWJWKWLZWMWNUVIUVPKUVFVBUULSUWIWOWNWPWQUPYQYOUUAUVAUWAWGUUBVEKYC
          VBLWRVGWSUVBUVMJUFUOUUDUFWGZUUPUVLUVAVMUWJUUEYDUUOUVKWAUUDUFHWTUWJUUK
          UVHUUNUVJUWJUUJUVGLUWJUUIUVFUUFSUWJUUHUVEVKUWJUUGUVDVIUUDUFUFXAXBXCZX
          DXEUWJUUMUVIKUWJUUIUVFUULSUWKXFXEXGXHXFXIVRUUPUUFBUEZSTZLVLZUWLUULSTZ
          KVLZUMZVMTZJUOUJZUVCBYRUIYHUWLYRWGZUWRUVBJUOUWTUWQUVAUUPVMUWTUWNUURUW
          PUUTUWTUWMUUQLUWLYRUUFSXJXEUWTUWOUUSKUWLYRUULSXKXEXGXDXMYHUUFMUEUUIVH
          VCZSTLVLUXAUULSTKVLUMUUEVMTJUOUJZMUIXNZUWSBUIXNZUMZUHUGUXDIUXEUHQWJUX
          CUXDUXBMUIXOXPUWSBUIXOXPXQXRYBXSYIYTCYRUIYGYRYHXTXIVRYA $.
      $}

      ${
        $d A r $.  $d A s $.  $d F l $.  $d F u r $.  $d L t $.  $d ph r s $.
        $d l u p q r s $.  $d m r $.
        $( Lemma for ~ caucvgprpr .  The putative limit is inhabited.
           (Contributed by Jim Kingdon, 21-Dec-2020.) $)
        caucvgprprlemm $p |- ( ph -> ( E. s e. Q. s e. ( 1st ` L )
            /\ E. t e. Q. t e. ( 2nd ` L ) ) ) $=
          ( cv cfv c1st wcel cnq wrex c2nd caucvgprprlemml caucvgprprlemmu jca
          ) AJSIUATUBJUCUDCSIUETUBCUCUDABDEFGHIJKLMNOPQRUFABCDEFGHIKLMNOPQRUGUH
          $.
      $}

      ${
        $d A m $.  $d F a b l t $.  $d F m $.  $d F r $.  $d F t u $.
        $d L a b t $.  $d b r $.  $d a b l p q r s t $.  $d p q r s t u $.
        $d ph a b r t $.
        $( Lemma for ~ caucvgprpr .  The lower cut of the putative limit is
           open.  (Contributed by Jim Kingdon, 21-Dec-2020.) $)
        caucvgprprlemopl $p |- ( ( ph /\ s e. ( 1st ` L ) ) ->
            E. t e. Q. ( s <Q t /\ t e. ( 1st ` L ) ) ) $=
          ( cltq wbr vb va cv c1st cfv wcel wa c1o cop ceq cec crq cplq co cltp
          cab cnq wrex cnpi caucvgprprlemell simprbi adantl cnp ad2antrr simprl
          c2nd wf ffvelrnd prop syl simprr wb simplbi ad2antlr recclnq ad2antrl
          nnnq addclnq syl2anc nqprl mpbird prnmaxl wceq adantr ltaddnq breqtrd
          addcomnqg ltrelnq sotri elprnql ltexnqq mpbid eqbrtrrd simpr breqtrrd
          ltsonq simplr ltanqg syl3anc eqtr3d opeq1 eceq1d fveq2d oveq2d breq2d
          ad3antrrr eqeltrd abbidv breq1d opeq12d fveq2 breq12d rspcev sylanbrc
          jca ex reximdva mpd rexlimddv ) AJUCZIUDUEZUFZUGZMUCZXTUAUCZUHUIZUJUK
          ZULUEZUMUNZSTMUPYILUCZSTLUPUIYEHUEZUOTZXTCUCZSTZYMYAUFZUGZCUQURZUAUSY
          BYLUAUSURZAYBXTUQUFZYRBHIXTKLMUANRUTVAVBYCYEUSUFZYLUGZUGZYIUBUCZSTZYQ
          UBYKUDUEZUUBUUEYKVFUEZUIVCUFZYIUUEUFZUUDUBUUEURUUBYKVCUFZUUGUUBUSVCYE
          HAUSVCHVGYBUUAOVDYCYTYLVEZVHZYKVIVJZUUBUUHYLYCYTYLVKUUBYIUQUFZUUIUUHY
          LVLUUBYSYHUQUFZUUMYBYSAUUAYBYSYDXTKUCZUHUIZUJUKZULUEZUMUNZSTMUPUUSYJS
          TLUPUIUUOHUEZUOTKUSURBHIXTKLMKNRUTVMVNZYTUUNYCYLYTYGUQUFUUNYEVQYGVOVJ
          VPZXTYHVRVSUUKLYIYKMVTVSWAUBYIUUFUUEWBVSUUBUUCUUEUFZUUDUGZUGZYHYMUMUN
          ZUUCWCZCUQURZYQUVEYHUUCSTZUVHUVEYHYISTUUDUVIUVEYHYHXTUMUNZYISUVEUUNYS
          YHUVJSTUUBUUNUVDUVBWDZUUBYSUVDUVAWDZYHXTWEVSUVEUUNYSUVJYIWCUVKUVLYHXT
          WGVSWFUUBUVCUUDVKZYHYIUUCSUQWPWHWIVSUVEUUNUUCUQUFZUVIUVHVLUVKUVEUUGUV
          CUVNUUBUUGUVDUULWDUUBUVCUUDVEZUUCUUFUUEWJVSCYHUUCWKVSWLUVEUVGYPCUQUVE
          YMUQUFZUGZUVGYPUVQUVGUGZYNYOUVRYNUVJUVFSTZUVRUVJUUCUVFSUVRYIUVJUUCSUV
          RYSUUNYIUVJWCUVEYSUVPUVGUVLVDZUVEUUNUVPUVGUVKVDZXTYHWGVSUVEUUDUVPUVGU
          VMVDWMUVQUVGWNZWOUVRYSUVPUUNYNUVSVLUVTUVEUVPUVGWQZUWAXTYMYHWRWSWAUVRU
          VPYDYMUURUMUNZSTZMUPZUWDYJSTZLUPZUIZUUTUOTZKUSURZYOUWCUVRYTYDYMYHUMUN
          ZSTZMUPZUWLYJSTZLUPZUIZYKUOTZUWKUUBYTUVDUVPUVGUUJXFUVRUWLUUEUFZUWRUVR
          UWLUUCUUEUVRUVFUWLUUCUVRUUNUVPUVFUWLWCUWAUWCYHYMWGVSUWBWTUVEUVCUVPUVG
          UVOVDXGUVRUWLUQUFZUUIUWSUWRVLUVRUVPUUNUWTUWCUWAYMYHVRVSUUBUUIUVDUVPUV
          GUUKXFLUWLYKMVTVSWLUWJUWRKYEUSUUOYEWCZUWIUWQUUTYKUOUXAUWFUWNUWHUWPUXA
          UWEUWMMUXAUWDUWLYDSUXAUURYHYMUMUXAUUQYGULUXAUUPYFUJUUOYEUHXAXBXCXDZXE
          XHUXAUWGUWOLUXAUWDUWLYJSUXBXIXHXJUUOYEHXKXLXMVSBHIYMKLMKNRUTXNXOXPXQX
          RXSXS $.
      $}

      ${
        $d F l $.  $d F u $.  $d F b x y z $.  $d F r $.  $d L b x y z $.
        $d l p s $.  $d l q s $.  $d l r s $.  $d l p t $.  $d u q s $.
        $d u r s $.  $d u p t $.  $d b r p s x y z $.  $d ph b r x y z $.
        $d b r q t x y z $.  $d b r t x y z $.
        $( Lemma for ~ caucvgprpr .  The lower cut of the putative limit is
           lower.  (Contributed by Jim Kingdon, 21-Dec-2020.) $)
        caucvgprprlemlol $p |- ( ( ph /\ s <Q t /\ t e. ( 1st ` L ) ) ->
            s e. ( 1st ` L ) ) $=
          ( cltq wbr vb vx vy vz c1st cfv wcel w3a cnq c1o cop ceq cec crq cplq
          cv co cab cltp cnpi wrex ltrelnq brel simpld caucvgprprlemell simprbi
          3ad2ant2 3ad2ant3 wa simpll2 wb ltanqg adantl ad2antrr simprd recclnq
          simplr nnnq 3syl addcomnqg caovord2d mpbid ltnqpri syl ltsopr ltrelpr
          wceq cnp sotri sylancom ex reximdva opeq1 eceq1d fveq2d oveq2d breq2d
          mpd abbidv breq1d opeq12d fveq2 breq12d cbvrexv sylib sylanbrc ) AJUP
          ZCUPZSTZXHIUEUFZUGZUHZXGUIUGZMUPZXGKUPZUJUKZULUMZUNUFZUOUQZSTZMURZXSL
          UPZSTZLURZUKZXOHUFZUSTZKUTVAZXGXJUGXIAXMXKXIXMXHUIUGZXGXHUIUISVBVCZVD
          VGZXLXNXGUAUPZUJUKZULUMZUNUFZUOUQZSTZMURZYPYBSTZLURZUKZYLHUFZUSTZUAUT
          VAZYHXLXNXHYOUOUQZSTMURUUEYBSTLURUKZUUBUSTZUAUTVAZUUDXKAUUHXIXKYIUUHB
          HIXHKLMUANRVEVFVHXLUUGUUCUAUTXLYLUTUGZVIZUUGUUCUUJUUGUUAUUFUSTZUUCUUJ
          UUGVIZYPUUESTZUUKUULXIUUMAXIXKUUIUUGVJUULUBUCUDXGXHYOSUIUOUBUPZUIUGZU
          CUPZUIUGZUDUPZUIUGUHUUNUUPSTUURUUNUOUQUURUUPUOUQSTVKUULUUNUUPUURVLVMX
          LXMUUIUUGYKVNXLYIUUIUUGXIAYIXKXIXMYIYJVOVGVNUULUUIYNUIUGYOUIUGXLUUIUU
          GVQYLVRYNVPVSUUOUUQVIUUNUUPUOUQUUPUUNUOUQWGUULUUNUUPVTVMWAWBLYPUUEMWC
          WDUUAUUFUUBUSWHWEWFWIWJWKWLWRUUCYGUAKUTYLXOWGZUUAYEUUBYFUSUUSYRYAYTYD
          UUSYQXTMUUSYPXSXNSUUSYOXRXGUOUUSYNXQUNUUSYMXPULYLXOUJWMWNWOWPZWQWSUUS
          YSYCLUUSYPXSYBSUUTWTWSXAYLXOHXBXCXDXEBHIXGKLMKNRVEXF $.
      $}

      ${
        $d A m $.  $d F l r s $.  $d F m $.  $d F b r s u $.  $d L b s $.
        $d b l p q r s t $.  $d p q r s t u $.  $d b ph r s $.
        $( Lemma for ~ caucvgprpr .  The upper cut of the putative limit is
           open.  (Contributed by Jim Kingdon, 21-Dec-2020.) $)
        caucvgprprlemopu $p |- ( ( ph /\ t e. ( 2nd ` L ) ) ->
            E. s e. Q. ( s <Q t /\ s e. ( 2nd ` L ) ) ) $=
          ( cltq wbr vb cv c2nd cfv wcel wa c1o cop ceq cec crq cab cpp co cltp
          cnq wrex cnpi caucvgprprlemelu simprbi adantl simprr cnp wb ffvelrnda
          recnnpr addclpr syl2anc ad2ant2r simplbi ad2antlr nqprlu ltdfpr mpbid
          c1st syl simpr adantr nqpru vex breq1 ltnqex gtnqex op1st a1i anbi12d
          elab2 biimpd reximdva simplr simplrl simprl fveq2 opeq1 eceq1d fveq2d
          mpd breq2d abbidv breq1d opeq12d oveq12d rspcev sylanbrc ex rexlimddv
          weq jca ) ACUBZIUCUDZUEZUFZUAUBZHUDZMUBZXMUGUHZUIUJZUKUDZSTZMULZXRLUB
          ZSTZLULZUHZUMUNZXOXISTZMULZXIYASTLULZUHZUOTZJUBZXISTZYKXJUEZUFZJUPUQZ
          UAURXKYJUAURUQZAXKXIUPUEZYPBHIXIKLMUANRUSZUTVAXLXMURUEZYJUFZUFZYEXOYK
          STMULYKYASTLULUHZUOTZYLUFZJUPUQZYOUUAYKYEUCUDUEZYKYIVOUDZUEZUFZJUPUQZ
          UUEUUAYJUUJXLYSYJVBUUAYEVCUEZYIVCUEZYJUUJVDAYSUUKXKYJAYSUFXNVCUEYDVCU
          EZUUKAURVCXMHOVEYSUUMALXMMVFVAXNYDVGVHVIZUUAYQUULXKYQAYTXKYQYPYRVJVKL
          XIMVLVPYEYIJVMVHVNUUAUUIUUDJUPUUAYKUPUEZUFZUUIUUDUUPUUFUUCUUHYLUUPUUO
          UUKUUFUUCVDUUAUUOVQUUAUUKUUOUUNVRLYKYEMVSVHUUHYLVDUUPYFYLMYKUUGJVTXOY
          KXISWAYGYHMXIWBLXIWCWDWGWEWFWHWIWQUUAUUDYNJUPUUPUUDYNUUPUUDUFZYLYMUUP
          UUCYLVBUUQUUOKUBZHUDZXOUURUGUHZUIUJZUKUDZSTZMULZUVBYASTZLULZUHZUMUNZU
          UBUOTZKURUQZYMUUAUUOUUDWJUUQYSUUCUVJUUPYSUUDXLYSYJUUOWKVRUUPUUCYLWLUV
          IUUCKXMURKUAXGZUVHYEUUBUOUVKUUSXNUVGYDUMUURXMHWMUVKUVDXTUVFYCUVKUVCXS
          MUVKUVBXRXOSUVKUVAXQUKUVKUUTXPUIUURXMUGWNWOWPZWRWSUVKUVEYBLUVKUVBXRYA
          SUVLWTWSXAXBWTXCVHBHIYKKLMKNRUSXDXHXEWIWQXF $.

        $( Lemma for ~ caucvgprpr .  The upper cut of the putative limit is
           upper.  (Contributed by Jim Kingdon, 21-Dec-2020.) $)
        caucvgprprlemupu $p |- ( ( ph /\ s <Q t /\ s e. ( 2nd ` L ) ) ->
            t e. ( 2nd ` L ) ) $=
          ( cltq wbr vb cv c2nd cfv wcel w3a cnq c1o cop ceq cec crq cab cpp co
          cltp cnpi wrex ltrelnq brel simprd 3ad2ant2 caucvgprprlemelu 3ad2ant3
          simprbi wi ltnqpri cnp ltsopr ltrelpr expcom syl reximdv mpd sylanbrc
          sotri ) AJUBZCUBZSTZVQIUCUDZUEZUFZVRUGUEZUAUBZHUDMUBZWDUHUIUJUKULUDZS
          TMUMWFLUBZSTLUMUIUNUOZWEVRSTMUMVRWGSTLUMUIZUPTZUAUQURZVRVTUEVSAWCWAVS
          VQUGUEZWCVQVRUGUGSUSUTVAVBWBWHWEVQSTMUMVQWGSTLUMUIZUPTZUAUQURZWKWAAWO
          VSWAWLWOBHIVQKLMUANRVCVEVDWBWNWJUAUQWBWMWIUPTZWNWJVFVSAWPWALVQVRMVGVB
          WNWPWJWHWMWIUPVHVIVJVPVKVLVMVNBHIVRKLMUANRVCVO $.
      $}

      ${
        $d F l t $.  $d F t u $.  $d F r $.  $d F s $.  $d L s t $.
        $d l p q r s t $.  $d p q r s t u $.  $d ph r s t $.
        $( Lemma for ~ caucvgprpr .  The putative limit is rounded.
           (Contributed by Jim Kingdon, 21-Dec-2020.) $)
        caucvgprprlemrnd $p |- ( ph -> ( A. s e. Q. ( s e. ( 1st ` L ) <->
              E. t e. Q. ( s <Q t /\ t e. ( 1st ` L ) ) ) /\
            A. t e. Q. ( t e. ( 2nd ` L ) <->
              E. s e. Q. ( s <Q t /\ s e. ( 2nd ` L ) ) ) ) ) $=
          ( wcel cnq cv c1st cfv cltq wbr wa wrex wb wral c2nd caucvgprprlemopl
          caucvgprprlemlol 3expib impbid caucvgprprlemopu caucvgprprlemupu jca
          ex rexlimdvw ralrimivw ) AJUAZIUBUCZSZVACUAZUDUEZVDVBSZUFZCTUGZUHZJTU
          IVDIUJUCZSZVEVAVJSZUFZJTUGZUHZCTUIAVIJTAVCVHAVCVHABCDEFGHIJKLMNOPQRUK
          URAVGVCCTAVEVFVCABCDEFGHIJKLMNOPQRULUMUSUNUTAVOCTAVKVNAVKVNABCDEFGHIJ
          KLMNOPQRUOURAVMVKJTAVEVLVKABCDEFGHIJKLMNOPQRUPUMUSUNUTUQ $.
      $}

      ${
        $d F a b k n $.  $d F l r $.  $d F m $.  $d F r u $.  $d L a b k $.
        $d a b l $.  $d a u $.  $d a b k p r s $.  $d ph a b r s $.
        $d a b k q r s $.  $d l p r s $.  $d l q r s $.  $d p r s u $.
        $d b q r s u $.  $d p q $.  $d n u $.  $d l n $.  $d k l $.  $d k u $.
        $( Lemma for ~ caucvgprpr .  The putative limit is disjoint.
           (Contributed by Jim Kingdon, 21-Dec-2020.) $)
        caucvgprprlemdisj $p |- ( ph -> A. s e. Q.
            -. ( s e. ( 1st ` L ) /\ s e. ( 2nd ` L ) ) ) $=
          ( cfv wbr cnpi va vb cv c1st wcel c2nd wa wn cnq c1o cop ceq cec cplq
          crq cltq cab cltp wrex wfal caucvgprprlemell simprbi caucvgprprlemelu
          co cpp anim12i reeanv sylibr adantl wf ad2antrr clti wi simprl simprr
          cnp simplbi ad2antrl adantr caucvgprprlemnkj pm2.21d rexlimdvva inegd
          wral mpd ralrimivw ) AIUCZHUDRUEZWGHUFRUEZUGZUHIUIAWJAWJUGZLUCZWGUAUC
          ZUJUKULUMUORUNVDZUPSLUQWNKUCZUPSKUQUKWMGRURSZUBUCZGRWLWQUJUKULUMUORZU
          PSLUQWRWOUPSKUQUKVEVDWLWGUPSLUQWGWOUPSKUQUKURSZUGZUBTUSUATUSZUTWJXAAW
          JWPUATUSZWSUBTUSZUGXAWHXBWIXCWHWGUIUEZXBBGHWGJKLUAMQVAVBWIXDXCBGHWGJK
          LUBMQVCVBVFWPWSUAUBTTVGVHVIWKWTUTUAUBTTWKWMTUEZWQTUEZUGZUGZWTUTXHBWGD
          FGWQWMKLMATVPGVJWJXGNVKAFUCZDUCZVLSXIGRZXJGRZMUCXIUJUKULUMUORZUPSMUQX
          MBUCUPSBUQUKZVEVDURSXLXKXNVEVDURSUGVMDTWDFTWDWJXGOVKWKXEXFVNWKXEXFVOW
          KXDXGWHXDAWIWHXDWLWGJUCZUJUKULUMUORUNVDZUPSLUQXPWOUPSKUQUKXOGRURSJTUS
          BGHWGJKLJMQVAVQVRVSVTWAWBWEWCWF $.
      $}

      ${
        $d A m $.  $d F a $.  $d F b $.  $d F f g h $.  $d F l r $.
        $d F u r $.  $d F m $.  $d L c x y $.  $d a c p q s $.  $d b c p q t $.
        $d c f g h p q s t $.  $d c f g h ph s t x y $.  $d l p q r s t $.
        $d u p q r s t $.
        $( Lemma for ~ caucvgprpr .  The putative limit is located.
           (Contributed by Jim Kingdon, 21-Dec-2020.) $)
        caucvgprprlemloc $p |- ( ph -> A. s e. Q. A. t e. Q.
            ( s <Q t -> ( s e. ( 1st ` L ) \/ t e. ( 2nd ` L ) ) ) ) $=
          ( wbr wcel vy vx vc va vf vg vh vb cv cltq c1st cfv c2nd wo wi cnq wa
          cplq wceq wrex ltexnqi adantl subhalfnqq ad2antrl c1o cop ceq cec crq
          co cnpi archrecnq cab cpp simpllr adantr simplrl caucvgprprlemloccalc
          cltp simplrr simprl simprr cnp ad3antrrr nnnq recclnq addclnq syl2anc
          syl nqprlu addclpr wf ad5antr ffvelrnd ltrelnq simpld ad2antll ltsopr
          brel wor w3a sowlin mpan syl3anc mpd simpr ltaprg addcomprg caovord2d
          mpbird opeq1 eceq1d fveq2d oveq2d breq2d abbidv opeq12d fveq2 breq12d
          wb breq1d caucvgprprlemell sylanbrc ex oveq12d sylan caucvgprprlemelu
          rspcev orim12d rexlimddv ralrimivva ) AJUIZCUIZUJSZYLIUKULTZYMIUMULTZ
          UNZUOJCUPUPAYLUPTZYMUPTZUQZUQZYNYQUUAYNUQZYLUAUIZURVJYMUSZYQUAUPYNUUD
          UAUPUTUUAUAYLYMVAVBUUBUUCUPTZUUDUQZUQZUBUIZUUHURVJUUCUJSZYQUBUPUUEUUI
          UBUPUTUUBUUDUBUUCVCVDUUGUUHUPTZUUIUQZUQZUCUIZVEVFZVGVHZVIULZUUHUJSZYQ
          UCVKUUJUUQUCVKUTUUGUUIUUHUCVLVDUULUUMVKTZUUQUQZUQZMUIZYLUUPURVJZUJSZM
          VMZUVBLUIZUJSZLVMZVFZUVAUUPUJSZMVMZUUPUVEUJSZLVMZVFZVNVJZUUMHULZUVMVN
          VJZVSSZUVPUVAYMUJSMVMYMUVEUJSLVMVFZVSSZUNZYQUUTUVNUVRVSSZUVTUUTLYLYMU
          UMUUHUUCMUULYNUUSUUAYNUUFUUKVOVPUULUUEUUSUUBUUEUUDUUKVQVPUULUUDUUSUUB
          UUEUUDUUKVTVPUUGUUJUUIUUSVQUUGUUJUUIUUSVTUULUURUUQWAZUULUURUUQWBVRUUT
          UVNWCTZUVRWCTZUVPWCTZUWAUVTUOZUUTUVHWCTZUVMWCTZUWCUUTUVBUPTZUWGUUTYRU
          UPUPTZUWIUUBYRUUFUUKUUSAYRYSYNVQWDZUUTUUOUPTZUWJUURUWLUULUUQUUMWEVDUU
          OWFWIZYLUUPWGZWHLUVBMWJZWIUUTUWJUWHUWMLUUPMWJZWIUVHUVMWKWHUUTYSUWDUUB
          YSUUFUUKUUSAYRYSYNVTWDZLYMMWJWIUUTUVOWCTZUWHUWEUUTVKWCUUMHAVKWCHWLYTY
          NUUFUUKUUSOWMUWBWNZUUTUWJUWHUUQUWJUULUURUUQUWJUUJUUPUUHUPUPUJWOWSWPWQ
          ZUWPWIUVOUVMWKWHWCVSWTUWCUWDUWEXAUWFWRWCUVNUVRUVPVSXBXCXDXEUUTUVQYOUV
          SYPUUTUVQYOUUTUVQUQZYRUVAYLUDUIZVEVFZVGVHZVIULZURVJZUJSZMVMZUXFUVEUJS
          ZLVMZVFZUXBHULZVSSZUDVKUTZYOUUTYRUVQUWKVPZUXAUURUVHUVOVSSZUXNUULUURUU
          QUVQVQUXAUXPUVQUUTUVQXFUXAUEUFUGUVHUVOUVMVSWCVNUEUIZWCTZUFUIZWCTZUGUI
          ZWCTXAUXQUXSVSSUYAUXQVNVJUYAUXSVNVJVSSXTUXAUXQUXSUYAXGVBUXAUWIUWGUXAY
          RUWJUWIUXOUUTUWJUVQUWTVPZUWNWHUWOWIUUTUWRUVQUWSVPUXAUWJUWHUYBUWPWIUXR
          UXTUQUXQUXSVNVJUXSUXQVNVJUSUXAUXQUXSXHVBXIXJUXMUXPUDUUMVKUXBUUMUSZUXK
          UVHUXLUVOVSUYCUXHUVDUXJUVGUYCUXGUVCMUYCUXFUVBUVAUJUYCUXEUUPYLURUYCUXD
          UUOVIUYCUXCUUNVGUXBUUMVEXKXLXMXNZXOXPUYCUXIUVFLUYCUXFUVBUVEUJUYDYAXPX
          QUXBUUMHXRXSYHWHBHIYLKLMUDNRYBYCYDUUTUVSYPUUTUVSUQYSUHUIZHULZUVAUYEVE
          VFZVGVHZVIULZUJSZMVMZUYIUVEUJSZLVMZVFZVNVJZUVRVSSZUHVKUTZYPUUTYSUVSUW
          QVPUUTUURUVSUYQUWBUYPUVSUHUUMVKUYEUUMUSZUYOUVPUVRVSUYRUYFUVOUYNUVMVNU
          YEUUMHXRUYRUYKUVJUYMUVLUYRUYJUVIMUYRUYIUUPUVAUJUYRUYHUUOVIUYRUYGUUNVG
          UYEUUMVEXKXLXMZXOXPUYRUYLUVKLUYRUYIUUPUVEUJUYSYAXPXQYEYAYHYFBHIYMKLMU
          HNRYGYCYDYIXEYJYJYJYDYK $.
      $}

      ${
        $d A r $.  $d A s $.  $d F l t $.  $d F u r $.  $d F k n $.  $d F s $.
        $d L s t $.  $d L k $.  $d ph t r s $.  $d l u p q r s t $.  $d m r $.
        $d k p q r s $.  $d n u $.  $d l n $.  $d k l $.  $d k u $.
        $( Lemma for ~ caucvgprpr .  The putative limit is a positive real.
           (Contributed by Jim Kingdon, 21-Nov-2020.) $)
        caucvgprprlemcl $p |- ( ph -> L e. P. ) $=
          ( vs vt cnq wcel cpw cxp cv c1st cfv wrex c2nd wa cltq wbr wb wral wn
          wo w3a cnp caucvgprprlemm c1o cop ceq cec crq cplq cab cltp cnpi crab
          wi co cpp wss nqex elpw2 mpbir opelxpi mp2an eqeltri caucvgprprlemrnd
          ssrab2 jctil caucvgprprlemdisj caucvgprprlemloc elnp1st2nd sylanbrc
          3jca ) AHSUAZWFUBZTZQUCZHUDUEZTZQSUFRUCZHUGUEZTZRSUFUHZUHWKWIWLUIUJZW
          LWJTUHRSUFUKQSULWNWPWIWMTZUHQSUFUKRSULUHZWKWQUHUMQSULZWPWKWNUNVHRSULQ
          SULZUOHUPTAWOWHABRCDEFGHQIJKLMNOPUQHKUCZLUCIUCZURUSUTVAVBUEZVCVIZUIUJ
          KVDXDJUCZUIUJJVDUSXBGUEZVEUJIVFUFZLSVGZXFXAXCUIUJKVDXCXEUIUJJVDUSVJVI
          XABUCZUIUJKVDXIXEUIUJJVDUSVEUJIVFUFZBSVGZUSZWGPXHWFTZXKWFTZXLWGTXMXHS
          VKXGLSVSXHSVLVMVNXNXKSVKXJBSVSXKSVLVMVNXHXKWFWFVOVPVQVTAWRWSWTABRCDEF
          GHQIJKLMNOPVRABCDEFGHQIJKLMNOPWAABRCDEFGHQIJKLMNOPWBWEHRQWCWD $.
      $}

      ${
        $d A r $.  $d A s $.  $d F l $.  $d F u r $.  $d F k n $.  $d F s $.
        $d L s $.  $d L k $.  $d ph s $.  $d l u p q r s $.  $d m r $.
        $d m s $.  $d k p q r s $.  $d n u $.  $d l n $.  $d k l $.  $d k u $.
        $( Lemma for ~ caucvgprpr .  The putative limit is a positive real.
           Like ~ caucvgprprlemcl but without a distinct variable constraint
           between ` ph ` and ` r ` .  (Contributed by Jim Kingdon,
           19-Jun-2021.) $)
        caucvgprprlemclphr $p |- ( ph -> L e. P. ) $=
          ( cop cltq wbr cab vs cv c1o ceq cec crq cfv cplq cltp cnpi wrex crab
          co cnq cpp wcel weq eceq1d fveq2d oveq2d breq2d abbidv breq1d opeq12d
          opeq1 fveq2 breq12d cbvrexv a1i rabbiia oveq12d eqtri caucvgprprlemcl
          wb opeq12i ) ABCDEFGHUAJKLMNOHKUBZLUBZIUBZUCQZUDUEZUFUGZUHUMZRSZKTZWB
          JUBZRSZJTZQZVRGUGZUISZIUJUKZLUNULZWIVPWARSZKTZWAWERSZJTZQZUOUMZVPBUBZ
          RSKTWSWERSJTQZUISZIUJUKZBUNULZQVPVQUAUBZUCQZUDUEZUFUGZUHUMZRSZKTZXHWE
          RSZJTZQZXDGUGZUISZUAUJUKZLUNULZXNVPXGRSZKTZXGWERSZJTZQZUOUMZWTUISZUAU
          JUKZBUNULZQPWLXQXCYFWKXPLUNWKXPVNVQUNUPWJXOIUAUJIUAUQZWHXMWIXNUIYGWDX
          JWGXLYGWCXIKYGWBXHVPRYGWAXGVQUHYGVTXFUFYGVSXEUDVRXDUCVEURUSZUTZVAVBYG
          WFXKJYGWBXHWERYIVCVBVDVRXDGVFZVGVHVIVJXBYEBUNXBYEVNWSUNUPXAYDIUAUJYGW
          RYCWTUIYGWIXNWQYBUOYJYGWNXSWPYAYGWMXRKYGWAXGVPRYHVAVBYGWOXTJYGWAXGWER
          YHVCVBVDVKVCVHVIVJVOVLVM $.
      $}

      ${
        $d A m r $.  $d F b f g h x y $.  $d F k l n u $.  $d F m r $.
        $d L b f g h x y $.  $d L k $.  $d Q b f g h p q x y $.
        $d T b f g h x y $.  $d b f g h ph x y $.  $d b p q r y $.
        $d k l p q r u $.  $d ph y $.  $d u y $.
        caucvgprprlemexbt.q $e |- ( ph -> Q e. Q. ) $.
        caucvgprprlemexbt.t $e |- ( ph -> T e. P. ) $.
        caucvgprprlemexbt.lt $e |- ( ph -> ( L +P.
          <. { p | p <Q Q } , { q | Q <Q q } >. ) <P T ) $.
        $( Lemma for ~ caucvgprpr .  Part of showing the putative limit to be a
           limit.  (Contributed by Jim Kingdon, 16-Jun-2021.) $)
        caucvgprprlemexbt $p |- ( ph -> E. b e. N. ( ( ( F ` b ) +P.
          <. { p | p <Q ( *Q ` [ <. b , 1o >. ] ~Q ) } ,
            { q | ( *Q ` [ <. b , 1o >. ] ~Q ) <Q q }
          >. ) +P. <. { p | p <Q Q } , { q | Q <Q q } >.
          ) <P T ) $=
          ( vx vy vf vg vh cv cfv c1o cop ceq cec crq cltq wbr cab co cltp cnpi
          cpp wrex c2nd wcel c1st cnq cnp caucvgprprlemclphr nqprlu syl addclpr
          wa syl2anc ltdfpr mpbid cplq wceq adantr simprrl prplnqu simprl breq2
          weq abbidv breq1 opeq12d breq2d rexbidv crab fveq2i rabex op2nd eqtri
          wb nqex elrab2 biimpi simprd fveq2 opeq1 eceq1d fveq2d breq1d oveq12d
          cbvrexv sylib simpr w3a ltaprg adantl ad4antr simplr ffvelrnd recnnpr
          wf ad2antrr simpld addcomprg caovord2d addnqpr breqtrrd simplrr nqpru
          simplrl mpbird simprrr ad3antrrr jca ex reximdva mpd rexlimddv rexcom
          expr ffvelrnda rexbidva ) ANUHZIUIZMUHZYQUJUKZULUMZUNUIZUOUPZMUQZUUBL
          UHZUOUPZLUQZUKZVAURZYSDUOUPMUQDUUEUOUPLUQUKZVAURZEUSUPZNUTVBUCUHZUUKV
          CUIVDZUUMEVEUIVDZVLZUCVFVBZNUTVBZAUUPNUTVBZUCVFVBZUURAUUMJUUJVAURZVCU
          IVDZUUOVLZUCVFVBZUUTAUVAEUSUPZUVDUBAUVAVGVDZEVGVDZUVEUVDWNAJVGVDZUUJV
          GVDZUVFABCFGHIJKLMOPQRSVHZADVFVDZUVITLDMVIVJZJUUJVKVMUAUVAEUCVNVMVOAU
          VCUUSUCVFAUUMVFVDZUVCUUSAUVMUVCVLZVLZUDUHZDVPURZUUMVQZUUSUDJVCUIZUVOU
          DLUUMDJMAUVHUVNUVJVRAUVKUVNTVRAUVMUVBUUOVSVTUVOUVPUVSVDZUVRVLZVLZUUIY
          SUVPUOUPZMUQZUVPUUEUOUPZLUQZUKZUSUPZNUTVBZUUSUWBKUHZIUIZYSUWJUJUKZULU
          MZUNUIZUOUPZMUQZUWNUUEUOUPZLUQZUKZVAURZUWGUSUPZKUTVBZUWIUWBUVTUXBUVOU
          VTUVRWAZUVTUVPVFVDZUXBUVTUXDUXBVLUWTYSBUHZUOUPZMUQZUXEUUEUOUPZLUQZUKZ
          USUPZKUTVBZUXBBUVPVFUVSBUDWCZUXKUXAKUTUXMUXJUWGUWTUSUXMUXGUWDUXIUWFUX
          MUXFUWCMUXEUVPYSUOWBWDUXMUXHUWELUXEUVPUUEUOWEWDWFWGWHUVSYSOUHUWNVPURZ
          UOUPMUQUXNUUEUOUPLUQUKUWKUSUPKUTVBZOVFWIZUXLBVFWIZUKZVCUIUXQJUXRVCSWJ
          UXPUXQUXOOVFWOWKUXLBVFWOWKWLWMWPWQZWRVJUXAUWHKNUTKNWCZUWTUUIUWGUSUXTU
          WKYRUWSUUHVAUWJYQIWSUXTUWPUUDUWRUUGUXTUWOUUCMUXTUWNUUBYSUOUXTUWMUUAUN
          UXTUWLYTULUWJYQUJWTXAXBZWGWDUXTUWQUUFLUXTUWNUUBUUEUOUYAXCWDWFXDXCXEXF
          UWBUWHUUPNUTUWBYQUTVDZVLZUWHUUPUYCUWHVLZUUNUUOUYDUUNUUKYSUUMUOUPZMUQZ
          UUMUUEUOUPZLUQZUKZUSUPZUYDUUKYSUVQUOUPZMUQZUVQUUEUOUPZLUQZUKZUSUPZUYJ
          UYDUUKUWGUUJVAURZUYOUSUYDUWHUUKUYQUSUPUYCUWHXGUYDUEUFUGUUIUWGUUJUSVGV
          AUEUHZVGVDZUFUHZVGVDZUGUHZVGVDXHUYRUYTUSUPVUBUYRVAURVUBUYTVAURUSUPWNU
          YDUYRUYTVUBXIXJUYDYRVGVDZUUHVGVDZUUIVGVDZUYDUTVGYQIAUTVGIXOUVNUWAUYBU
          WHPXKUWBUYBUWHXLZXMUYDUYBVUDVUFLYQMXNZVJYRUUHVKZVMZUYDUXDUWGVGVDUYDUV
          TUXDUWBUVTUYBUWHUXCXPUVTUXDUXBUXSXQVJZLUVPMVIVJAUVIUVNUWAUYBUWHUVLXKZ
          UYSVUAVLUYRUYTVAURUYTUYRVAURVQUYDUYRUYTXRXJXSVOUYDUXDUVKUYOUYQVQVUJAU
          VKUVNUWAUYBUWHTXKLUVPDMXTVMYAUYDUVRUYPUYJWNUYCUVRUWHUVOUVTUVRUYBYBVRU
          VRUYOUYIUUKUSUVRUYLUYFUYNUYHUVRUYKUYEMUVQUUMYSUOWBWDUVRUYMUYGLUVQUUMU
          UEUOWEWDWFWGVJVOUYDUVMUUKVGVDZUUNUYJWNUWBUVMUYBUWHAUVMUVCUWAYDXPUYDVU
          EUVIVULVUIVUKUUIUUJVKZVMLUUMUUKMYCVMYEUVOUUOUWAUYBUWHAUVMUVBUUOYFYGYH
          YIYJYKYLYNYJYKUUPUCNVFUTYMXFAUULUUQNUTAUYBVLZVULUVGUULUUQWNVUNVUEUVIV
          ULVUNVUCVUDVUEAUTVGYQIPYOUYBVUDAVUGXJVUHVMAUVIUYBUVLVRVUMVMAUVGUYBUAV
          RUUKEUCVNVMYPYE $.
      $}

      ${
        $d A m r $.  $d F b f g h $.  $d F k l n u $.  $d F m r $.
        $d L b f g h $.  $d L k $.  $d Q f g h $.  $d R b f g h p q $.
        $d R b p q $.  $d b f g h ph $.  $d k l p q r u $.  $d b r $.
        caucvgprprlemexb.q $e |- ( ph -> Q e. P. ) $.
        caucvgprprlemexb.r $e |- ( ph -> R e. N. ) $.
        $( Lemma for ~ caucvgprpr .  Part of showing the putative limit to be a
           limit.  (Contributed by Jim Kingdon, 15-Jun-2021.) $)
        caucvgprprlemexb $p |- ( ph -> (
          ( ( L +P. Q ) +P.
          <. { p | p <Q ( *Q ` [ <. R , 1o >. ] ~Q ) } ,
            { q | ( *Q ` [ <. R , 1o >. ] ~Q ) <Q q }
          >. ) <P ( ( F ` R ) +P. Q )
          -> E. b e. N. ( ( ( F ` b ) +P.
          <. { p | p <Q ( *Q ` [ <. b , 1o >. ] ~Q ) } ,
            { q | ( *Q ` [ <. b , 1o >. ] ~Q ) <Q q }
          >. ) +P. ( Q +P. <. { p | p <Q ( *Q ` [ <. R , 1o >. ] ~Q ) } ,
            { q | ( *Q ` [ <. R , 1o >. ] ~Q ) <Q q }
          >. ) ) <P ( ( F ` R ) +P. Q ) ) ) $=
          ( vf vg vh cpp co c1o cop ceq cec crq cfv cltq wbr cab cltp cnpi wrex
          cv cnp wcel wb caucvgprprlemclphr recnnpr syl addclpr ffvelrnd ltaprg
          syl2anc syl3anc addassprg addcomprg oveq1d eqtr3d breq12d bitrd wa wf
          wceq adantr clti wi wral cnq nnnq recclnq simpr caucvgprprlemexbt w3a
          3syl adantl ffvelrnda ad2antrr caovord2d breq1d oveq2d rexbidva mpbid
          3bitrd ex sylbird ) AJDUEUFZMUSZEUGUHUIUJZUKULZUMUNMUOXELUSZUMUNLUOUH
          ZUEUFZEIULZDUEUFZUPUNZJXGUEUFZXIUPUNZNUSZIULZXCXNUGUHUIUJUKULZUMUNMUO
          XPXFUMUNLUOUHZUEUFZDXGUEUFZUEUFZXJUPUNZNUQURZAXMDXLUEUFZDXIUEUFZUPUNZ
          XKAXLUTVAZXIUTVAZDUTVAZXMYEVBAJUTVAZXGUTVAZYFABCFGHIJKLMOPQRSVCZAEUQV
          AZYJUALEMVDZVEZJXGVFVIAUQUTEIPUAVGZTXLXIDVHVJAYCXHYDXJUPADJUEUFZXGUEU
          FZYCXHAYHYIYJYQYCVSTYKYNDJXGVKVJAYPXBXGUEAYHYIYPXBVSTYKDJVLVIVMVNAYHY
          GYDXJVSTYODXIVLVIVOVPAXMYBAXMVQZXRXGUEUFZXIUPUNZNUQURYBYRBCXEXIFGHIJK
          LMNOAUQUTIVRXMPVTZAHUSZFUSZWAUNUUBIULZUUCIULZOUSUUBUGUHUIUJUKULZUMUNO
          UOUUFBUSUMUNBUOUHZUEUFUPUNUUEUUDUUGUEUFUPUNVQWBFUQWCHUQWCXMQVTACGUSIU
          LUPUNGUQWCXMRVTSAXEWDVAZXMAYLXDWDVAUUHUAEWEXDWFWJVTAYGXMYOVTAXMWGWHYR
          YTYANUQYRXNUQVAZVQZYTYSDUEUFZXJUPUNXRXGDUEUFZUEUFZXJUPUNYAUUJUBUCUDYS
          XIDUPUTUEUBUSZUTVAZUCUSZUTVAZUDUSZUTVAWIUUNUUPUPUNUURUUNUEUFUURUUPUEU
          FUPUNVBUUJUUNUUPUURVHWKUUJXRUTVAZYJYSUTVAUUJXOUTVAXQUTVAZUUSYRUQUTXNI
          UUAWLUUIUUTYRLXNMVDWKXOXQVFVIZUUJYLYJAYLXMUUIUAWMYMVEZXRXGVFVIAYGXMUU
          IYOWMAYHXMUUITWMZUUOUUQVQUUNUUPUEUFUUPUUNUEUFVSUUJUUNUUPVLWKWNUUJUUKU
          UMXJUPUUJUUSYJYHUUKUUMVSUVAUVBUVCXRXGDVKVJWOUUJUUMXTXJUPUUJUULXSXRUEU
          UJYJYHUULXSVSUVBUVCXGDVLVIWPWOWSWQWRWTXA $.
      $}

      ${
        $d A m r $.  $d F b f g h l r u $.  $d F b k l n r u $.  $d F m r $.
        $d L f g h $.  $d L k $.  $d Q b f g h r $.  $d X b f g h r $.
        $d b f g h l p q r u $.  $d b f g h ph r $.  $d k l p q r u $.
        $d L b $.
        caucvgprprlemaddq.x $e |- ( ph -> X e. P. ) $.
        caucvgprprlemaddq.q $e |- ( ph -> Q e. P. ) $.
        caucvgprprlemaddq.ex $e |- ( ph -> E. r e. N.
          ( X +P. <. { p | p <Q ( *Q ` [ <. r , 1o >. ] ~Q ) } ,
            { q | ( *Q ` [ <. r , 1o >. ] ~Q ) <Q q }
          >. ) <P ( ( F ` r ) +P. Q ) ) $.
        $( Lemma for ~ caucvgprpr .  Part of showing the putative limit to be a
           limit.  (Contributed by Jim Kingdon, 5-Jun-2021.) $)
        caucvgprprlemaddq $p |- ( ph -> X <P ( L +P. Q ) ) $=
          ( vb vf vg vh c1o cop ceq cec crq cfv cltq wbr cab cpp cltp cnpi wrex
          cv co nfv nfcv cplq cnq crab nfre1 nfrabxy nfop nfcxfr nfov nfbr wcel
          wa wf ad2antrr clti wral simpr simplrl caucvgprprlemnbj wceq ffvelrnd
          cnp wi recnnpr adantl addclpr syl2anc syl addassprg syl3anc breq1d wb
          ltaprg addcomprg caovord2d oveq2d 3bitr4rd mtbird nrexdv breq1 cbvabv
          w3a breq2 opeq12i oveq2i breq1i rexbii adantr simprl caucvgprprlemexb
          oveq12i sylnibr mtod wo simprr caucvgprprlemcl wor ltsopr sowlin mpan
          mpd ecased mpbird exp32 rexlimd ) AJMUSZKUSZUFUGUHUIUJUKZULUMZMUNZYIL
          USZULUMZLUNZUGZUOUTZYHHUKZDUOUTZUPUMZKUQURJIDUOUTZUPUMZUAAYSUUAKUQAKV
          AKJYTUPKJVBKUPVBKIDUOKIYGNUSZYIVCUTZULUMMUNUUCYLULUMLUNUGYQUPUMZKUQUR
          ZNVDVEZYQYOUOUTYGBUSZULUMMUNUUGYLULUMLUNUGUPUMZKUQURZBVDVEZUGRKUUFUUJ
          UUEKNVDUUDKUQVFKVDVBZVGUUIKBVDUUHKUQVFUUKVGVHVIKUOVBKDVBVJVKAYHUQVLZY
          SUUAAUULYSVMZVMZUUAYPYTYOUOUTZUPUMZUUNUUPUUOYRUPUMZUUNUUQUBUSZHUKZYGU
          URUFUGUHUIUJUKZULUMZMUNZUUTYLULUMZLUNZUGZUOUTZDYOUOUTZUOUTZYRUPUMZUBU
          QURZUUNUUSUUBUUTULUMZNUNZUUTUUGULUMZBUNZUGZUOUTZDUUBYIULUMZNUNZYIUUGU
          LUMZBUNZUGZUOUTZUOUTZYRUPUMZUBUQURUVJUUNUWDUBUQUUNUURUQVLZVMZUWDUVPUW
          AUOUTZYQUPUMZUWFBUUREGHYHNAUQWCHVNZUUMUWEOVOZAGUSZEUSZVPUMUWKHUKZUWLH
          UKZUUBUWKUFUGUHUIUJUKZULUMNUNUWOUUGULUMBUNUGZUOUTUPUMUWNUWMUWPUOUTUPU
          MVMWDEUQVQGUQVQZUUMUWEPVOUUNUWEVRZAUULYSUWEVSZVTUWFUWGDUOUTZYRUPUMUVP
          UWADUOUTZUOUTZYRUPUMUWHUWDUWFUWTUXBYRUPUWFUVPWCVLZUWAWCVLZDWCVLZUWTUX
          BWAUWFUUSWCVLUVOWCVLZUXCUWFUQWCUURHUWJUWRWBUWEUXFUUNBUURNWEWFUUSUVOWG
          WHZUWFUULUXDUWSBYHNWEWIZAUXEUUMUWETVOZUVPUWADWJWKWLUWFUCUDUEUWGYQDUPW
          CUOUCUSZWCVLZUDUSZWCVLZUEUSZWCVLXCZUXJUXLUPUMUXNUXJUOUTUXNUXLUOUTUPUM
          WMZUWFUXJUXLUXNWNZWFUWFUXCUXDUWGWCVLUXGUXHUVPUWAWGWHUWFUQWCYHHUWJUWSW
          BUXIUXKUXMVMZUXJUXLUOUTUXLUXJUOUTWAZUWFUXJUXLWOZWFWPUWFUWCUXBYRUPUWFU
          WBUXAUVPUOUWFUXEUXDUWBUXAWAUXIUXHDUWAWOWHWQWLWRWSWTUVIUWDUBUQUVHUWCYR
          UPUVFUVPUVGUWBUOUVEUVOUUSUOUVBUVLUVDUVNUVAUVKMNYGUUBUUTULXAXBUVCUVMLB
          YLUUGUUTULXDXBXEXFYOUWADUOYKUVRYNUVTYJUVQMNYGUUBYIULXAXBYMUVSLBYLUUGY
          IULXDXBXEXFXLXGXHXMUUNBCDYHEFGHIKLMUBNAUWIUUMOXIZAUWQUUMPXIACFUSHUKUP
          UMFUQVQUUMQXIRAUXEUUMTXIZAUULYSXJZXKXNUUNYSUUPUUQXOZAUULYSXPUUNYPWCVL
          ZYRWCVLZUUOWCVLZYSUYDWDZUUNJWCVLZYOWCVLZUYEAUYIUUMSXIZUUNUULUYJUYCLYH
          MWEWIZJYOWGWHUUNYQWCVLUXEUYFUUNUQWCYHHUYAUYCWBUYBYQDWGWHUUNYTWCVLZUYJ
          UYGUUNIWCVLZUXEUYMAUYNUUMABCEFGHIKLMNOPQRXQXIUYBIDWGWHZUYLYTYOWGWHWCU
          PXRUYEUYFUYGXCUYHXSWCYPYRUUOUPXTYAWKYBYCUUNUCUDUEJYTYOUPWCUOUXOUXPUUN
          UXQWFUYKUYOUYLUXRUXSUUNUXTWFWPYDYEYFYB $.
      $}

      ${
        caucvgprprlemlim.q $e |- ( ph -> Q e. P. ) $.
        caucvgprprlemlim.jk $e |- ( ph -> J <N K ) $.
        caucvgprprlemlim.jkq $e |- ( ph ->
          <. { l | l <Q ( *Q ` [ <. J , 1o >. ] ~Q ) } ,
            { u | ( *Q ` [ <. J , 1o >. ] ~Q ) <Q u } >.
          <P Q ) $.

        ${
          $d A m $.  $d A r $.  $d F m $.  $d F r $.  $d F l u $.  $d F n k $.
          $d J l $.  $d J u $.  $d K l r $.  $d K r u $.  $d Q r $.  $d L k $.
          $d ph r $.  $d p q r l u $.  $d m r $.  $d k l u $.  $d k r $.
          $d k p q $.  $d n l u $.  $d n r $.
          $( Lemma for ~ caucvgprpr .  Part of showing the putative limit to be
             a limit.  (Contributed by Jim Kingdon, 25-Nov-2020.) $)
          caucvgprprlem1 $p |- ( ph -> ( F ` K ) <P ( L +P. Q ) ) $=
            ( cfv cnpi cnp wcel clti wbr wa ltrelpi brel syl simprd ffvelrnd cv
            c1o cop ceq cec crq cltq cab cpp co cltp wrex caucvgprprlemk wb cnq
            nnnq recclnq nqprlu ltaprg syl3anc mpbid opeq1 eceq1d fveq2d breq2d
            3syl wceq abbidv breq1d opeq12d oveq2d fveq2 oveq1d breq12d syl2anc
            rspcev breq1 cbvabv opeq12i oveq2i breq1i rexbii caucvgprprlemaddq
            breq2 sylib ) ABCDEFGHKJHUCZLMNOPQRSAUDUEJHPAIUDUFZJUDUFZAIJUGUHXAX
            BUIUAIJUDUDUGUJUKULUMZUNZTAWTOUOZLUOZUPUQZURUSZUTUCZVAUHZOVBZXIBUOZ
            VAUHZBVBZUQZVCVDZXFHUCZDVCVDZVEUHZLUDVFZWTNUOZXIVAUHZNVBZXIMUOZVAUH
            ZMVBZUQZVCVDZXRVEUHZLUDVFAXBWTXEJUPUQZURUSZUTUCZVAUHZOVBZYLXLVAUHZB
            VBZUQZVCVDZWTDVCVDZVEUHZXTXCAYQDVEUHZYTABDIJOUAUBVGAYQUEUFZDUEUFWTU
            EUFUUAYTVHAYKVIUFZYLVIUFUUBAXBUUCXCJVJULYKVKBYLOVLVTTXDYQDWTVMVNVOX
            SYTLJUDXFJWAZXPYRXRYSVEUUDXOYQWTVCUUDXKYNXNYPUUDXJYMOUUDXIYLXEVAUUD
            XHYKUTUUDXGYJURXFJUPVPVQVRZVSWBUUDXMYOBUUDXIYLXLVAUUEWCWBWDWEUUDXQW
            TDVCXFJHWFWGWHWJWIXSYILUDXPYHXRVEXOYGWTVCXKYCXNYFXJYBONXEYAXIVAWKWL
            XMYEBMXLYDXIVAWRWLWMWNWOWPWSWQ $.
        $}

        ${
          $d A r $.  $d F r u x $.  $d F l $.  $d F k $.  $d F n $.
          $d K l p u x $.  $d K p q r u x $.  $d J l $.  $d J u $.  $d L x $.
          $d L k $.  $d Q x $.  $d ph x $.  $d ph r $.  $d k n $.  $d k r $.
          $d l u p q r $.  $d m r $.  $d k p q $.  $d n u $.  $d l n $.
          $d k l $.  $d k u $.
          $( Lemma for ~ caucvgprpr .  Part of showing the putative limit to be
             a limit.  (Contributed by Jim Kingdon, 25-Nov-2020.) $)
          caucvgprprlem2 $p |- ( ph -> L <P ( ( F ` K ) +P. Q ) ) $=
            ( vx cv cfv c1o cop ceq cec crq cltq wbr cab co c2nd wcel c1st cltp
            cpp wa cnq wrex caucvgprprlemk cnp wb cnpi clti ltrelpi brel simprd
            syl nnnq recclnq nqprlu ltaprg syl3anc mpbid addclpr syl2anc ltdfpr
            ffvelrnd simprl adantr simprrl breq1 cbvabv opeq12i oveq2i syl6eleq
            breq2 fveq2i nqpru fveq2 eceq1d fveq2d breq2d abbidv breq1d opeq12d
            wceq opeq1 oveq12d rspcev rexbidv cplq crab nqex rabex op2nd elrab2
            eqtri sylanbrc simprrr syl12anc caucvgprprlemcl mpbird rexlimddv
            rspe ) AUCUDZJHUEZOUDZJUFUGZUHUIZUJUEZUKULZOUMZYDBUDZUKULZBUMZUGZUS
            UNZUOUEZUPZXSXTDUSUNZUQUEUPZUTZKYNURULZUCVAAYKYNURULZYPUCVAVBZAYJDU
            RULZYRABDIJOUAUBVCAYJVDUPZDVDUPZXTVDUPZYTYRVEAYDVAUPZUUAAJVFUPZUUDA
            IVFUPZUUEAIJVGULUUFUUEUTUAIJVFVFVGVHVIVKVJZUUEYCVAUPUUDJVLYCVMVKVKZ
            BYDOVNVKZTAVFVDJHPUUGWAZYJDXTVOVPVQAYKVDUPZYNVDUPZYRYSVEAUUCUUAUUKU
            UJUUIXTYJVRVSAUUCUUBUULUUJTXTDVRVSZYKYNUCVTVSVQAXSVAUPZYPUTZUTZYQXS
            KUOUEZUPZYOUTZUCVAVBZUUPUUNUURYOUUTAUUNYPWBZUUPUUNLUDZHUEZNUDZUVBUF
            UGZUHUIZUJUEZUKULZNUMZUVGMUDZUKULZMUMZUGZUSUNZUVDXSUKULZNUMZXSUVJUK
            ULZMUMZUGZURULZLVFVBZUURUVAUUPUUEXTUVDYDUKULZNUMZYDUVJUKULZMUMZUGZU
            SUNZUVSURULZUWAAUUEUUOUUGWCUUPXSUWGUOUEZUPZUWHUUPXSYLUWIAUUNYMYOWDY
            KUWGUOYJUWFXTUSYFUWCYIUWEYEUWBONYAUVDYDUKWEWFYHUWDBMYGUVJYDUKWJWFWG
            WHWKWIUUPUUNUWGVDUPZUWJUWHVEUVAAUWKUUOAUUCUWFVDUPZUWKUUJAUUDUWLUUHM
            YDNVNVKXTUWFVRVSWCMXSUWGNWLVSVQUVTUWHLJVFUVBJWTZUVNUWGUVSURUWMUVCXT
            UVMUWFUSUVBJHWMUWMUVIUWCUVLUWEUWMUVHUWBNUWMUVGYDUVDUKUWMUVFYCUJUWMU
            VEYBUHUVBJUFXAWNWOZWPWQUWMUVKUWDMUWMUVGYDUVJUKUWNWRWQWSXBWRXCVSUVNU
            VDYGUKULZNUMZYGUVJUKULZMUMZUGZURULZLVFVBZUWABXSVAUUQYGXSWTZUWTUVTLV
            FUXBUWSUVSUVNURUXBUWPUVPUWRUVRUXBUWOUVONYGXSUVDUKWJWQUXBUWQUVQMYGXS
            UVJUKWEWQWSWPXDUUQUVDYAUVGXEUNZUKULNUMUXCUVJUKULMUMUGUVCURULLVFVBZO
            VAXFZUXABVAXFZUGZUOUEUXFKUXGUOSWKUXEUXFUXDOVAXGXHUXABVAXGXHXIXKXJXL
            AUUNYMYOXMUUSUCVAXRXNUUPKVDUPZUULYQUUTVEAUXHUUOABCEFGHKLMNOPQRSXOWC
            AUULUUOUUMWCKYNUCVTVSXPXQ $.
        $}
      $}

      ${
        $d A r $.  $d A j $.  $d F u r $.  $d F l $.  $d F k $.  $d F n $.
        $d ph k r $.  $d L k $.  $d j k ph x $.  $d k l u $.  $d k l p $.
        $d k q r $.  $d j r $.  $d r x $.  $d l u p q r $.  $d m r $.
        $d k n $.  $d n u $.  $d l n $.  $d j l u $.  $d n r $.
        $( Lemma for ~ caucvgprpr .  The putative limit is a limit.
           (Contributed by Jim Kingdon, 21-Nov-2020.) $)
        caucvgprprlemlim $p |- ( ph ->
            A. x e. P. E. j e. N. A. k e. N. ( j <N k ->
            ( ( F ` k ) <P ( L +P. x ) /\ L <P ( ( F ` k ) +P. x ) ) ) ) $=
          ( wbr cnpi cv clti cfv cpp co cltp wral wrex cnp wcel c1o cop ceq cec
          wa wi crq cltq cab archrecpr adantl wf ad5antr ad4antr caucvgprprlem1
          simpr simpllr caucvgprprlem2 jca ex ralrimiva reximdva mpd ) AEUAZFUA
          ZUBSZVOIUCZJBUAZUDUEUFSZJVQVRUDUEUFSZUOZUPZFTUGZETUHZBUIAVRUIUJZUOZNU
          AZVNUKULUMUNUQUCZURSNUSWHCUAZURSCUSULVRUFSZETUHZWDWEWKACVRENUTVAWFWJW
          CETWFVNTUJZUOZWJWCWMWJUOZWBFTWNVOTUJZUOZVPWAWPVPUOZVSVTWQCDVRFGHIVNVO
          JKLMNATUIIVBWEWLWJWOVPOVCZAHUAZVOUBSWSIUCZVQWGWSUKULUMUNUQUCZURSNUSXA
          WIURSCUSULZUDUEUFSVQWTXBUDUEUFSUOUPFTUGHTUGWEWLWJWOVPPVCZADGUAIUCUFSG
          TUGWEWLWJWOVPQVCZRWFWEWLWJWOVPAWEVFVDZWPVPVFZWMWJWOVPVGZVEWQCDVRFGHIV
          NVOJKLMNWRXCXDRXEXFXGVHVIVJVKVJVLVMVK $.
      $}
    $}

    ${
      $d A r $.  $d A j $.  $d F j y $.  $d F k y $.  $d F x y $.  $d F u r $.
      $d F l $.  $d F n $.  $d j l y $.  $d j p y $.  $d j q y $.  $d j r y $.
      $d j u y $.  $d k l y $.  $d k p y $.  $d k q y $.  $d k r y $.
      $d k u y $.  $d k l u $.  $d l x y $.  $d l p $.  $d p x y $.
      $d q x y $.  $d r x y $.  $d u x y $.  $d p q r u $.  $d k q r $.
      $d l u p q r $.  $d ph x k j $.  $d ph r $.  $d m r $.  $d k n $.
      $d n u $.  $d l n $.  $d n r $.
      $( A Cauchy sequence of positive reals with a modulus of convergence
         converges to a positive real.  This is basically Corollary 11.2.13 of
         [HoTT], p.  (varies) (one key difference being that this is for
         positive reals rather than signed reals).  Also, the HoTT book theorem
         has a modulus of convergence (that is, a rate of convergence)
         specified by (11.2.9) in HoTT whereas this theorem fixes the rate of
         convergence to say that all terms after the nth term must be within
         ` 1 / n ` of the nth term (it should later be able to prove versions
         of this theorem with a different fixed rate or a modulus of
         convergence supplied as a hypothesis).  We also specify that every
         term needs to be larger than a given value ` A ` , to avoid the case
         where we have positive terms which "converge" to zero (which is not a
         positive real).

         This is similar to ~ caucvgpr except that values of the sequence are
         positive reals rather than positive fractions.  Reading that proof
         first (or ~ cauappcvgpr ) might help in understanding this one, as
         they are slightly simpler but similarly structured.  (Contributed by
         Jim Kingdon, 14-Nov-2020.) $)
      caucvgprpr $p |- ( ph ->
          E. y e. P. A. x e. P. E. j e. N. A. k e. N. ( j <N k ->
          ( ( F ` k ) <P ( y +P. x ) /\
            y <P ( ( F ` k ) +P. x ) ) ) ) $=
        ( vp vq cv wbr cltp cnpi c1o cop ceq cec crq cfv cplq cltq cab wrex cnq
        vr co crab cpp cnp wcel clti wral eqid caucvgprprlemcl caucvgprprlemlim
        wa wi wceq oveq1 breq2d breq1 anbi12d imbi2d rexralbidv ralbidv syl2anc
        rspcev ) AOQZKQULQZUAUBUCUDUEUFZUGUMZUHROUIVRPQZUHRPUIUBVPJUFZSRULTUJKU
        KUNVTVOVQUHROUIVQVSUHRPUIUBUOUMVODQZUHROUIWAVSUHRPUIUBSRULTUJDUKUNUBZUP
        UQFQGQZURRZWCJUFZWBBQZUOUMZSRZWBWEWFUOUMZSRZVCZVDZGTUSFTUJZBUPUSZWDWECQ
        ZWFUOUMZSRZWOWISRZVCZVDZGTUSFTUJZBUPUSZCUPUJADEGHIJWBULPOKLMNWBUTZVAABD
        EFGHIJWBULPOKLMNXCVBXBWNCWBUPWOWBVEZXAWMBUPXDWTWLFGTTXDWSWKWDXDWQWHWRWJ
        XDWPWGWESWOWBWFUOVFVGWOWBWISVHVIVJVKVLVNVM $.
    $}
  $}

  ${
    $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, 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.) $)
    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, 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.) $)
    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, 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.) $)
    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, 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.) $)
    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, 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.) $)
    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, 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.) $)
    df-0r $a |- 0R = [ <. 1P , 1P >. ] ~R $.

    $( Define signed real constant 1.  This is a "temporary" set used in the
       construction of complex numbers, 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.) $)
    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, and is intended to be used only by the
       construction.  (Contributed by NM, 9-Aug-1995.) $)
    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.) $)
    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.) $)
    enrer $p |- ~R Er ( P. X. P. ) $=
      ( vx vy vz vw vv cpp cer cnp df-enr addcomprg addclpr addassprg addcanprg
      vu cv ecopoverg ) ABCDENFGHABCDENIAOZBOZJQRKQRCOZLQRSMP $.
  $}

  $( Equivalence class equality of positive fractions in terms of positive
     integers.  (Contributed by NM, 29-Nov-1995.) $)
  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.) $)
    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.) $)
    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.) $)
    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 cnp wcel addclpr anim12i an4s syl2anc addassprg syl3anc
      cop cer wbr oveq12 wb enrbreq syl simprll simplrr addcomprg oveq1d oveq2d
      simprrr 3eqtr3d simplll 3eqtr4d simprlr simplrl simprrl simpllr eqeq12d
      bitrd syl5ibr ) ADIJZBCIJZKGFIJZHEIJZKLAGIJZBHIJZUACEIJZDFIJZUAUBUCZAMNZB
      MNZLZCMNZDMNZLZLZGMNZHMNZLZEMNZFMNZLZLZLZVDVFIJZVEVGIJZKZVDVEVFVGIUDWGVLV
      HVKIJZVIVJIJZKZWJWGVHMNZVIMNZLZVJMNZVKMNZLZLZVLWMUEVOWBVRWEWTVOWBLWPVRWEL
      WSVMVTVNWAWPVMVTLWNVNWALWOAGOBHOPQVPWCVQWDWSVPWCLWQVQWDLWRCEOZDFOZPQPQVHV
      IVJVKUFUGWGWKWHWLWIWGAGVKIJZIJZADVFIJZIJZWKWHWGXCXEAIWGGDIJZFIJZDGIJZFIJZ
      XCXEWGXGXIFIWGVTVQXGXIKVSVTWAWEUHZVOVPVQWFUIZGDUJRUKWGVTVQWDXHXCKXKXLVSWB
      WCWDUMZGDFSTWGVQVTWDXJXEKXLXKXMDGFSTUNULWGVMVTWRWKXDKVMVNVRWFUOZXKWGVQWDW
      RXLXMXBRAGVKSTWGVMVQVFMNZWHXFKXNXLWGVTWDXOXKXMGFORADVFSTUPWGBHVJIJZIJZBCV
      GIJZIJZWLWIWGXPXRBIWGHCIJZEIJZCHIJZEIJZXPXRWGXTYBEIWGWAVPXTYBKVSVTWAWEUQZ
      VOVPVQWFURZHCUJRUKWGWAVPWCYAXPKYDYEVSWBWCWDUSZHCESTWGVPWAWCYCXRKYEYDYFCHE
      STUNULWGVNWAWQWLXQKVMVNVRWFUTZYDWGVPWCWQYEYFXARBHVJSTWGVNVPVGMNZWIXSKYGYE
      WGWAWCYHYDYFHEORBCVGSTUPVAVBVC $.

    $( Lemma used in lemma showing compatibility of multiplication.
       (Contributed by Jim Kingdon, 1-Jan-2020.) $)
    mulcmpblnrlemg $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 ) ) ->
            ( ( 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 ) ) ) ) ) ) $=
      ( cnp wcel wa cpp co wceq cmp mulclpr syl2anc syl3anc adantr mulcomprg vx
      vy simpllr simprlr simplrr simprrl addclpr simplrl simprll oveq2 ad2antll
      addassprg simprrr distrprg 3eqtr3d simplll oveq1 ad2antrl oveq12d 3eqtr4d
      vz oveq2d oveq1d 3eqtr2d addcomprg adantl caov12d caov32d adantrr adantrl
      cv w3a eqtrd 3eqtr4rd caov13d caov4d caov42d ex ) AIJZBIJZKZCIJZDIJZKZKZG
      IJZHIJZKZEIJZFIJZKZKZKZADLMZBCLMZNZGFLMZHELMZNZKZDGOMZAGOMZBHOMZLMCFOMZDE
      OMZLMLMZLMZXAAHOMZBGOMZLMCEOMZDFOMZLMLMZLMZNWMWTKZXAXBXDLMZXCXELMZLMZLMZX
      AXHXKLMZXIXJLMZLMZLMZXGXMXNXPXOXALMZLMZXAXSLMZXTLMZXRYBXNXPCHOMZLMZXTLMZX
      PYGXTLMZLMZYFYDWMYIYKNZWTWMXPIJZYGIJZXTIJZYLWMXCIJZXEIJZYMWMVTWGYPVSVTWDW
      LUCZWEWFWGWKUDZBHPQZWMWCWIYQWAWBWCWLUEZWEWHWIWJUFZDEPQZXCXEUGQZWMWBWGYNWA
      WBWCWLUHZYSCHPQZWMXIIJZXJIJZYOWMVTWFUUGYRWEWFWGWKUIZBGPQZWMWBWIUUHUUEUUBC
      EPQZXIXJUGQZXPYGXTULRSXNYEYHXTLXNXHXAXKLMZLMZXCYGLMZXELMZYEYHXNUUNXHDHOMZ
      XELMZLMZXHUUQLMZXELMZUUPXNUUMUURXHLXNDWQOMZDWROMZUUMUURWSUVBUVCNWMWPWQWRD
      OUJUKWMUVBUUMNZWTWMWCWFWJUVDUUAUUIWEWHWIWJUMZDGFUNRSWMUVCUURNZWTWMWCWGWIU
      VFUUAYSUUBDHEUNRSUOVBWMUVAUUSNZWTWMXHIJZUUQIJZYQUVGWMVSWGUVHVSVTWDWLUPZYS
      AHPQZWMWCWGUVIUUAYSDHPQUUCXHUUQXEULRSXNUUTUUOXELXNWNHOMZWOHOMZUUTUUOWPUVL
      UVMNWMWSWNWOHOUQURWMUVLUUTNWTWMHWNOMZHAOMZHDOMZLMZUVLUUTWMWGVSWCUVNUVQNYS
      UVJUUAHADUNRWMWNIJZWGUVLUVNNWMVSWCUVRUVJUUAADUGQZYSWNHTQWMXHUVOUUQUVPLWMV
      SWGXHUVONUVJYSAHTQWMWCWGUUQUVPNUUAYSDHTQUSUTSWMUVMUUONWTWMHWOOMZHBOMZHCOM
      ZLMZUVMUUOWMWGVTWBUVTUWCNYSYRUUEHBCUNRWMWOIJZWGUVMUVTNWMVTWBUWDYRUUEBCUGQ
      ZYSWOHTQWMXCUWAYGUWBLWMVTWGXCUWANYRYSBHTQWMWBWGYGUWBNUUEYSCHTQUSUTSUOVCVD
      WMUUNYENWTWMUAUBVAXHXAXKILUVKWMWCWFXAIJZUUAUUIDGPQZWMWCWJXKIJZUUAUVEDFPQZ
      UAVKZIJZUBVKZIJZKZUWJUWLLMZUWLUWJLMNWMUWJUWLVEVFZUWKUWMVAVKZIJVLUWOUWQLMU
      WJUWLUWQLMLMNWMUWJUWLUWQULVFZVGSWMUUPYHNWTWMUAUBVAXCYGXEILYTUUFUUCUWPUWRV
      HSUOVCXNYCYJXPLXNXBXALMZXDLMZXIYGXJLMZLMZYCYJXNUWTXICGOMZLMZXDLMZUXBWMWPU
      WTUXENWSWMWPKZUWSUXDXDLUXFWNGOMZWOGOMZUWSUXDWPUXGUXHNWMWNWOGOUQVFWMUXGUWS
      NWPWMGWNOMZGAOMZGDOMZLMZUXGUWSWMWFVSWCUXIUXLNUUIUVJUUAGADUNRWMUVRWFUXGUXI
      NUVSUUIWNGTQWMXBUXJXAUXKLWMVSWFXBUXJNUVJUUIAGTQWMWCWFXAUXKNUUAUUIDGTQUSUT
      SWMUXHUXDNWPWMGWOOMZGBOMZGCOMZLMZUXHUXDWMWFVTWBUXMUXPNUUIYRUUEGBCUNRWMUWD
      WFUXHUXMNUWEUUIWOGTQWMXIUXNUXCUXOLWMVTWFXIUXNNYRUUIBGTQWMWBWFUXCUXONUUEUU
      ICGTQUSUTSUOVCVIWMWSUXEUXBNWPWMWSKZUXEXIUXCXDLMZLMZUXBWMUXEUXSNZWSWMUUGUX
      CIJZXDIJZUXTUUJWMWBWFUYAUUEUUICGPQWMWBWJUYBUUEUVECFPQZXIUXCXDULRSUXQUXRUX
      AXILUXQCWQOMZCWROMZUXRUXAWSUYDUYENWMWQWRCOUJVFWMUYDUXRNZWSWMWBWFWJUYFUUEU
      UIUVECGFUNRSWMUYEUXANZWSWMWBWGWIUYGUUEYSUUBCHEUNRSUOVBVMVJVMWMUWTYCNWTWMU
      AUBVAXBXAXDILWMVSWFXBIJZUVJUUIAGPQZUWGUYCUWPUWRVHSWMUXBYJNWTWMUAUBVAXIYGX
      JILUUJUUFUUKUWPUWRVGSUOVBVNWMYDXRNWTWMUAUBVAXPXOXAILUUDWMUYHUYBXOIJUYIUYC
      XBXDUGQUWGUWPUWRVOSWMYFYBNZWTWMUWFXSIJZYOUYJUWGWMUVHUWHUYKUVKUWIXHXKUGQUU
      LXAXSXTULRSUOWMXRXGNWTWMXQXFXALWMUAUBVAXBXDXCXEILUYIUYCYTUWPUWRUUCUWNUWOI
      JWMUWJUWLUGVFZVPVBSWMYBXMNWTWMYAXLXALWMUAUBVAXHXKXIXJILUVKUWIUUJUWPUWRUUK
      UYLVQVBSUOVR $.

    $( Lemma showing compatibility of multiplication.  (Contributed by NM,
       5-Sep-1995.) $)
    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 cer mulclpr syl2anc addclpr wbr simplrr
      mulcmpblnrlemg wi simprll simplll simpllr simprlr simplrl simprrr simprrl
      addcanprg syl3anc syld wb enrbreq syl22anc sylibrd ) AIJZBIJZKZCIJZDIJZKZ
      KZGIJZHIJZKZEIJZFIJZKZKZKZADLMBCLMNGFLMHELMNKZAGOMZBHOMZLMZCFOMZDEOMZLMZL
      MZAHOMZBGOMZLMZCEOMZDFOMZLMZLMZNZVQWDPWGVTPQUAZVMVNDGOMZWALMWKWHLMNZWIABC
      DEFGHUCVMWKIJZWAIJZWHIJZWLWIUDVMVCVFWMVAVBVCVLUBZVEVFVGVKUEZDGRSVMVQIJZVT
      IJZWNVMVOIJZVPIJZWRVMUSVFWTUSUTVDVLUFZWQAGRSVMUTVGXAUSUTVDVLUGZVEVFVGVKUH
      ZBHRSVOVPTSZVMVRIJZVSIJZWSVMVBVJXFVAVBVCVLUIZVEVHVIVJUJZCFRSVMVCVIXGWPVEV
      HVIVJUKZDERSVRVSTSZVQVTTSVMWDIJZWGIJZWOVMWBIJZWCIJZXLVMUSVGXNXBXDAHRSVMUT
      VFXOXCWQBGRSWBWCTSZVMWEIJZWFIJZXMVMVBVIXQXHXJCERSVMVCVJXRWPXIDFRSWEWFTSZW
      DWGTSWKWAWHULUMUNVMWRXLXMWSWJWIUOXEXPXSXKVQWDWGVTUPUQUR $.
  $}

  ${
    $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.) $)
    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.) $)
    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
       Jim Kingdon, 2-Jan-2019.) $)
    ltsrprg $p |- ( ( ( A e. P. /\ B e. P. ) /\ ( C e. P. /\ D e. P. ) ) ->
        ( [ <. A , B >. ] ~R <R [ <. C , D >. ] ~R <->
        ( A +P. D ) <P ( B +P. C ) ) ) $=
      ( vx vy cv cpp co cltp wbr cer cnp wcel wa wceq syl2anc addassprg syl3anc
      addclpr vz vu vw vv vf cnr cltr enrex enrer df-nr df-ltr cop cec wb eqcom
      enreceq syl6bb bi2anan9 simprlr simplrr addcomprg simprrl 3eqtr3d simplll
      oveq12 adantl oveq1d oveq2d ad2ant2lr anim12ci an4s simpld 3eqtr4d adantr
      simprll simplrl simprrr simpllr sylbid w3a ltaprg simprd caovord3d brecop
      ex syld ) UAGZUBGZHIZUCGZUDGZHIZJKZADHIZBCHIZJKZEFUAUCUDUBABCDLMUFUGUHUIU
      JEFUAUCUDUBUKWGMNZWJMNZOZAMNZBMNZOZOZWKMNZWHMNZOZCMNZDMNZOZOZOZWGWJULLUMA
      BULLUMPZWKWHULLUMCDULLUMPZOZWIWOHIZWLWNHIZPZWMWPUNXKXNWGBHIZWJAHIZPZWHCHI
      ZWKDHIZPZOZXQXCXLXTXJXMYCWGWJABUPXJXMYBYAPYCWKWHCDUPYBYAUOUQURXKYDXQXKYDO
      XRYAHIZXSYBHIZXOXPYDYEYFPXKXRXSYAYBHVEVFXKXOYEPYDXKWGWHWOHIZHIZWGBYAHIZHI
      ZXOYEXKYGYIWGHXKWHBHIZCHIZBWHHIZCHIZYGYIXKXEXAYLYNPXCXDXEXIUSZWSWTXAXJUTZ
      XEXAOYKYMCHWHBVAVGQXKXEXAXGYLYGPYOYPXCXFXGXHVBZWHBCRSXKXAXEXGYNYIPYPYOYQB
      WHCRSVCVHXKWQXEWOMNZXOYHPWQWRXBXJVDZYOXKYRWLMNZWSXFXBXIYRYTOWSXFOYTXBXIOY
      RWRXDYTWQXEWJWKTVIXAXGYRWTXHBCTVIVJVKZVLZWGWHWORSXKWQXAYAMNZYEYJPYSYPXKXE
      XGUUCYOYQWHCTQWGBYARSVMVNXKXPYFPYDXKWJWKWNHIZHIZWJAYBHIZHIZXPYFXKUUDUUFWJ
      HXKWKAHIZDHIZAWKHIZDHIZUUDUUFXKUUHUUJDHXKXDWTUUHUUJPXCXDXEXIVOZWSWTXAXJVP
      ZWKAVAQVGXKXDWTXHUUIUUDPUULUUMXCXFXGXHVQZWKADRSXKWTXDXHUUKUUFPUUMUULUUNAW
      KDRSVCVHXKWRXDWNMNZXPUUEPWQWRXBXJVRZUULXKWTXHUUOUUMUUNADTQZWJWKWNRSXKWRWT
      YBMNZYFUUGPUUPUUMXKXDXHUURUULUUNWKDTQWJAYBRSVMVNVMWEVSXKEFUEWIWOWLWNJMHEG
      ZMNZFGZMNZUEGZMNVTUUSUVAJKUVCUUSHIUVCUVAHIJKUNXKUUSUVAUVCWAVFXKWQXEWIMNYS
      YOWGWHTQUUBXKYRYTUUAWBUUTUVBOUUSUVAHIUVAUUSHIPXKUUSUVAVAVFUUQWCWFWD $.
  $}

  $( Greater than zero in terms of positive reals.  (Contributed by NM,
     13-May-1996.) $)
  gt0srpr $p |- ( 0R <R [ <. A , B >. ] ~R <-> B <P A ) $=
    ( c0r cop cer cec cltr wbr cnp wcel wa cltp cxp cnr brel c1p cpp co wb 1pr
    cdm wceq cqs wer enrer ax-mp ltrelsr simprd df-nr syl6eleq ecelqsdm sylancr
    erdm opelxp sylib ltrelpr ancomd df-0r breq1i ltsrprg mpanl12 syl5bb ltaprg
    mp3an3 ancoms bitr4d pm5.21nii ) CABDZEFZGHZAIJZBIJZKZBALHZVJVHIIMZJZVMVJEU
    AVOUBZVIVOEUCZJVPVOEUDVQUEVOEUMUFVJVINVRVJCNJVINJCVINNGUGOUHUIUJVOVHEUKULAB
    IIUNUOVNVLVKBAIILUPOUQVMVJPBQRPAQRLHZVNVJPPDEFZVIGHZVMVSCVTVIGURUSPIJZWBVMW
    AVSSTTPPABUTVAVBVLVKVNVSSZVLVKWBWCTBAPVCVDVEVFVG $.

  $( The empty set is not a signed real.  (Contributed by NM, 25-Aug-1995.)
     (Revised by Mario Carneiro, 10-Jul-2014.) $)
  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.) $)
  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.) $)
  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.) $)
  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.) $)
    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.) $)
    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 f g h r s t 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 Jim Kingdon,
       3-Jan-2020.) $)
    addcomsrg $p |- ( ( A e. R. /\ B e. R. ) -> ( A +R B ) = ( B +R A ) ) $=
      ( vx vy vz vw cnr cv cpp co cplr cer cnp df-nr addsrpr wcel wceq ad2ant2r
      addcomprg ad2ant2l ecovicom ) CDEFABGCHZEHZIJZKLMDHZFHZIJZUCUBIJZUFUEIJZN
      UBUEUCUFOUCUFUBUEOUBMPZUCMPZUDUHQUEMPZUFMPZUBUCSRULUMUGUIQUJUKUEUFSTUA $.

    $( Addition of signed reals is associative.  (Contributed by Jim Kingdon,
       3-Jan-2020.) $)
    addasssrg $p |- ( ( A e. R. /\ B e. R. /\ C e. R. ) ->
        ( ( A +R B ) +R C ) = ( A +R ( B +R C ) ) ) $=
      ( vx vy vz vw vv vu cv cpp co cnp addsrpr wcel addclpr anim12i an4s wceq
      wa cnr cer 3adant1r 3adant2r 3adant3r 3adant1l 3adant2l 3adant3l ecoviass
      cplr df-nr addassprg ) DEFGHIABCUAUJGJZIJZKLZUBMDJZFJZKLZEJZUMKLZURHJZKLZ
      UTUNKLZUPUQVAKLZKLZUSUOKLZVDUKUPUSUQUMNUQUMVAUNNURUTVAUNNUPUSVDUONUPMOZUQ
      MOZUSMOZUMMOZURMOZUTMOZTVGVHTVKVIVJTVLUPUQPUSUMPQRVHVAMOZVJUNMOZVDMOZUOMO
      ZTVHVMTVOVJVNTVPUQVAPUMUNPQRVGVITZVHVJTZVMVBVESZVNVQVHVMVSVJVGVHVMVSVIUPU
      QVAULUCUDUEVQVRVNVCVFSZVMVQVJVNVTVHVIVJVNVTVGUSUMUNULUFUGUHUI $.

    $( Multiplication of signed reals is commutative.  (Contributed by Jim
       Kingdon, 3-Jan-2020.) $)
    mulcomsrg $p |- ( ( A e. R. /\ B e. R. ) -> ( A .R B ) = ( B .R A ) ) $=
      ( vx vy vz vw cv cmp co cpp mulsrpr wcel wceq mulcomprg oveq12d ad2ant2rl
      cnp wa ad2ant2lr mulclpr cnr cmr df-nr ad2ant2r ad2ant2l ancoms addcomprg
      cer syl2anc eqtrd ecovicom ) CDEFABUACGZEGZHIZDGZFGZHIZJIUBUHQULUPHIZUOUM
      HIZJIZUMULHIZUPUOHIZJIUMUOHIZUPULHIZJIZUCULUOUMUPKUMUPULUOKULQLZUOQLZRUMQ
      LZUPQLZRRZUNVAUQVBJVFVHUNVAMVGVIULUMNUDVGVIUQVBMVFVHUOUPNUEOVJUTVDVCJIZVE
      VJURVDUSVCJVFVIURVDMVGVHULUPNPVGVHUSVCMVFVIUOUMNSOVJVDQLZVCQLZVKVEMVFVIVL
      VGVHVIVFVLUPULTUFPVGVHVMVFVIVHVGVMUMUOTUFSVDVCUGUIUJUK $.

    $( Multiplication of signed reals is associative.  (Contributed by Jim
       Kingdon, 3-Jan-2020.) $)
    mulasssrg $p |- ( ( A e. R. /\ B e. R. /\ C e. R. ) ->
        ( ( A .R B ) .R C ) = ( A .R ( B .R C ) ) ) $=
      ( vf vg vh cv cmp co cpp cnp mulsrpr wcel wa mulclpr addclpr syl2anc wceq
      w3a adantl vx vy vz vw vv vu vr vs vt cnr cmr cer df-nr ad2ant2r ad2ant2l
      ad2ant2rl ad2ant2lr mulcomprg distrprg simp1 simp2 simp3 caovdir2d simp1l
      mulassprg simp1r simp2l simp2r simp3l simp3r addcomprg addassprg ecoviass
      jca caovlem2d ) UAUBUCUDUEUFABCUJUKUCGZUFGZHIZUDGZUEGZHIZJIZULKUAGZVPHIZU
      BGZVSHIZJIZWCVSHIZWEVPHIZJIZWGVTHIWJVQHIJIWGVQHIWJVTHIJIWCVPVTHIZVSVQHIZJ
      IZHIWEWBHIJIWCWBHIWEWMHIJIWMUMWCWEVPVSLVPVSVTVQLWGWJVTVQLWCWEWMWBLWCKMZWE
      KMZNZVPKMZVSKMZNZNZWGKMZWJKMZWTWDKMZWFKMZXAWNWQXCWOWRWCVPOUNWOWRXDWNWQWEV
      SOUOWDWFPQWTWHKMZWIKMZXBWNWRXEWOWQWCVSOUPWOWQXFWNWRWEVPOUQWHWIPQVNWSVTKMZ
      VQKMZNZNZWMKMZWBKMZXJWKKMZWLKMZXKWQXGXMWRXHVPVTOUNWRXHXNWQXGVSVQOUOWKWLPQ
      XJVRKMZWAKMZXLWQXHXOWRXGVPVQOUPWRXGXPWQXHVSVTOUQVRWAPQVNWPWSXISZDEFWCWEVP
      VSVQKJHVTDGZKMZEGZKMZNZXRXTHIZXTXRHIRXQXRXTURTZXSYAFGZKMZSZXRXTJIZYEHIXRY
      EHIXTYEHIZJIRXQYGUGUHUIXRXTYEKJHUGGZKMZUHGZKMZUIGZKMSYJYLYNJIHIYJYLHIZYJY
      NHIJIRYGYJYLYNUSTXSYAYFUTXSYAYFVAXSYAYFVBYKYMNZYJYLJIKMYGYJYLPTYPYOYLYJHI
      RYGYJYLURTVCTZYGYCYEHIXRYIHIRXQXRXTYEVETZYBYCKMXQXRXTOTZWNWOWSXIVDZWNWOWS
      XIVFZWPWQWRXIVGZWPWQWRXIVHZWPWSXGXHVIZWPWSXGXHVJZYBYHXTXRJIRXQXRXTVKTZYGY
      HYEJIXRXTYEJIJIRXQXRXTYEVLTZYBYHKMXQXRXTPTZVOXQDEFWCWEVPVSVTKJHVQYDYQYRYS
      YTUUAUUBUUCUUEUUDUUFUUGUUHVOVM $.

    $( Multiplication of signed reals is distributive.  (Contributed by Jim
       Kingdon, 4-Jan-2020.) $)
    distrsrg $p |- ( ( A e. R. /\ B e. R. /\ C e. R. ) ->
        ( A .R ( B +R C ) ) = ( ( A .R B ) +R ( A .R C ) ) ) $=
      ( vf vg vh cnp cv cpp co cmp mulsrpr wcel wa addclpr mulclpr syl2anc wceq
      distrprg syl3anc vx vy vz vw vv vu cnr cplr cer addsrpr ad2ant2r ad2ant2l
      cmr jca ad2ant2rl ad2ant2lr w3a simp1l simp2l simp3l simp1r simp2r simp3r
      df-nr oveq12d addcomprg adantl addassprg caov4d eqtrd ecovidi ) UAUBUCUDU
      EUFABCUGUHUIGUMUAHZUCHZUEHZIJZKJZUBHZUDHZUFHZIJZKJZIJZVLVTKJZVQVOKJZIJZVL
      VMKJZVQVRKJZIJZVLVNKJZVQVSKJZIJZIJZVLVRKJZVQVMKJZIJZVLVSKJZVQVNKJZIJZIJZV
      OVTWHWOWKWRVDVMVRVNVSUJVLVQVOVTLVLVQVMVRLVLVQVNVSLWHWOWKWRUJVMGMZVRGMZNZV
      NGMZVSGMZNZNVOGMZVTGMZWTXCXFXAXDVMVNOUKXAXDXGWTXCVRVSOULUNVLGMZVQGMZNZXBN
      ZWHGMZWOGMZXKWFGMZWGGMZXLXHWTXNXIXAVLVMPZUKXIXAXOXHWTVQVRPZULWFWGOQXKWMGM
      ZWNGMZXMXHXAXRXIWTVLVRPZUOXIWTXSXHXAVQVMPZUPWMWNOQUNXJXENZWKGMZWRGMZYBWIG
      MZWJGMZYCXHXCYEXIXDVLVNPZUKXIXDYFXHXCVQVSPZULWIWJOQYBWPGMZWQGMZYDXHXDYIXI
      XCVLVSPZUOXIXCYJXHXDVQVNPZUPWPWQOQUNXJXBXEUQZWBWFWIIJZWGWJIJZIJWLYMVPYNWA
      YOIYMXHWTXCVPYNRXHXIXBXEURZXJWTXAXEUSZXJXBXCXDUTZVLVMVNSTYMXIXAXDWAYORXHX
      IXBXEVAZXJWTXAXEVBZXJXBXCXDVCZVQVRVSSTVEYMDEFWFWIWGWJGIYMXHWTXNYPYQXPQYMX
      HXCYEYPYRYGQYMXIXAXOYSYTXQQDHZGMZEHZGMZNZUUBUUDIJZUUDUUBIJRYMUUBUUDVFVGZU
      UCUUEFHZGMUQUUGUUIIJUUBUUDUUIIJIJRYMUUBUUDUUIVHVGZYMXIXDYFYSUUAYHQUUFUUGG
      MYMUUBUUDOVGZVIVJYMWEWMWPIJZWNWQIJZIJWSYMWCUULWDUUMIYMXHXAXDWCUULRYPYTUUA
      VLVRVSSTYMXIWTXCWDUUMRYSYQYRVQVMVNSTVEYMDEFWMWPWNWQGIYMXHXAXRYPYTXTQYMXHX
      DYIYPUUAYKQYMXIWTXSYSYQYAQUUHUUJYMXIXCYJYSYRYLQUUKVIVJVK $.
  $}

  $( Minus one plus one is zero for signed reals.  (Contributed by NM,
     5-May-1996.) $)
  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 addassprg mp3an oveq2i mpbir
    wb enreceq ) ABCDEEEFDZGHIZUJEGHIZCDZJAUKBULCKQUAJEEGHIZUMUBUMEUJFDZUJEFDZG
    HIZUNELMZUJLMZUSURUMUQNOURURUSOOEEPRZUTOEUJUJEUCSUNUQNZEUPFDEUOFDNZUPUOEFUR
    URURUPUONOOOEEEUDUEUFURURUOLMZUPLMZVAVBUHOOURUSVCOUTEUJPRUSURVDUTOUJEPREEUO
    UPUISUGTTT $.

  $( Minus one times minus one is plus one for signed reals.  (Contributed by
     NM, 14-May-1996.) $)
  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 mulclpr eqtr4i df-1r mulsrpr mp4an addassprg mp3an 1idpr ax-mp
    distrprg mulcomprg oveq1i oveq2i wb enreceq mpbir ) AABPCCCDPZEFGZUPBPZHAUP
    AUPBIIJHUOCEFGZUQUAUQCCKPZUOUOKPZDPZCUOKPZUOCKPZDPZEFGZURCLMZUOLMZVFVGUQVEN
    QVFVFVGQQCCORZQVHCUOCUOUBUCURVENZUOVDDPZCVADPZNZVJCCVDDPZDPZVKVFVFVDLMZVJVN
    NQQVBLMZVCLMZVOVFVGVPQVHCUOSRVGVFVQVHQUOCSRVBVCORZCCVDUDUEVAVMCDUSCUTVDDVFU
    SCNQCUFUGUTVCVCDPZVDVGVFVFUTVSNVHQQUOCCUHUEVBVCVCDVFVGVBVCNQVHCUOUIRUJTJUKT
    VGVFVALMZVOVIVLULVHQUSLMZUTLMZVTVFVFWAQQCCSRVGVGWBVHVHUOUOSRUSUTORVRUOCVAVD
    UMUCUNTTT $.

  ${
    $d f g h r s t x y z w v u $.
    $( Signed real 'less than' is a transitive relation.  (Contributed by Jim
       Kingdon, 4-Jan-2019.) $)
    lttrsr $p |- ( ( f e. R. /\ g e. R. /\ h e. R. ) ->
        ( ( f <R g /\ g <R h ) -> f <R h ) ) $=
      ( vr vs vt cv cer cltr wbr wa cnp wceq wcel cpp co cltp addclpr syl2anc
      wb vx vy vz vw vv vu cop cec cnr df-nr breq1 anbi1d imbi12d breq2 anbi12d
      wi imbi1d anbi2d ltsrprg ltaprg adantl simp1l simp2r simp1r simp2l simp3r
      3adant3 addcomprg caovord2d addassprg syl3anc breq12d bitrd simp3l ltsopr
      w3a 3adant1 ltrelpr biimprd caov12d 3adant2 3imtr4d syl5 sylbid 3ecoptocl
      sotri ) UAGZUBGZUGHUHZUCGZUDGZUGHUHZIJZWLUEGZUFGZUGHUHZIJZKZWIWPIJZUPAGZW
      LIJZWQKZWTWPIJZUPWTBGZIJZXDWPIJZKZXCUPXEXDCGZIJZKZWTXHIJZUPUAUBUCUDUEUFWT
      XDXHLHUIUJWIWTMZWRXBWSXCXLWMXAWQWIWTWLIUKULWIWTWPIUKUMWLXDMZXBXGXCXMXAXEW
      QXFWLXDWTIUNWLXDWPIUKUOUQWPXHMZXGXJXCXKXNXFXIXEWPXHXDIUNURWPXHWTIUNUMWGLN
      ZWHLNZKZWJLNZWKLNZKZWNLNZWOLNZKZVPZWRWGWKWOOPOPZWHWJWOOPZOPZQJZYGWHWKWNOP
      ZOPZQJZKZWSYDWMYHWQYKYDWMWGWKOPZWHWJOPZQJZYHXQXTWMYOTYCWGWHWJWKUSVGYDYOYM
      WOOPZYNWOOPZQJYHYDDEFYMYNWOQLODGZLNZEGZLNZFGZLNVPZYRYTQJUUBYROPUUBYTOPQJT
      YDYRYTUUBUTVAYDXOXSYMLNXOXPXTYCVBZXQXRXSYCVCZWGWKRSYDXPXRYNLNXOXPXTYCVDZX
      QXRXSYCVEZWHWJRSXQXTYAYBVFZYSUUAKYRYTOPZYTYROPMYDYRYTVHVAZVIYDYPYEYQYGQYD
      XOXSYBYPYEMUUDUUEUUHWGWKWOVJVKYDXPXRYBYQYGMUUFUUGUUHWHWJWOVJVKVLVMVMYDWQY
      FYIQJZYKXTYCWQUUKTXQWJWKWNWOUSVQYDYFLNZYILNZXPUUKYKTYDXRYBUULUUGUUHWJWORS
      YDXSYAUUMUUEXQXTYAYBVNZWKWNRSUUFYFYIWHUTVKVMUOYLYEYJQJZYDWSYEYGYJQLVOVRWF
      YDWKWGWOOPZOPZWKWHWNOPZOPZQJZUUPUURQJZUUOWSYDUVAUUTYDUUPLNZUURLNZXSUVAUUT
      TYDXOYBUVBUUDUUHWGWORSYDXPYAUVCUUFUUNWHWNRSUUEUUPUURWKUTVKVSYDYEUUQYJUUSQ
      YDDEFWGWKWOLOUUDUUEUUHUUJUUCUUIUUBOPYRYTUUBOPOPMYDYRYTUUBVJVAZVTYDDEFWHWK
      WNLOUUFUUEUUNUUJUVDVTVLXQYCWSUVATXTWGWHWNWOUSWAWBWCWDWE $.
  $}

  ${
    $d x y f g h $.
    $( Signed real 'less than' is a partial order.  (Contributed by Jim
       Kingdon, 4-Jan-2019.) $)
    ltposr $p |- <R Po R. $=
      ( vf vg vh vx vy cnr cltr wpo wtru cv wcel wbr wn cer cnp cpp cltp adantl
      wa co cop cec df-nr wceq id breq12d notbid ltsopr soirri addcomprg breq2d
      ltrelpr mtbii wb ltsrprg anidms mtbird ecoptocl w3a wi lttrsr ispod trud
      ) FGHIABCFGAJZFKZVDVDGLZMZIDJZEJZUANUBZVJGLZMVGDEVDOONFUCVJVDUDZVKVFVLVJV
      DVJVDGVLUEZVMUFUGVHOKVIOKSZVKVHVIPTZVIVHPTZQLZVNVOVOQLVQVOQOUHULUIVNVOVPV
      OQVHVIUJUKUMVNVKVQUNVHVIVHVIUOUPUQURRVEBJZFKCJZFKUSVDVRGLVRVSGLSVDVSGLUTI
      ABCVARVBVC $.
  $}

  ${
    $d a b c d e f r s t x y z $.
    $( Signed real 'less than' is a strict ordering.  (Contributed by NM,
       19-Feb-1996.) $)
    ltsosr $p |- <R Or R. $=
      ( vx vy vr vs vt cnr cltr cv wbr wo wi cnp wceq wcel cltp addclpr syl2anc
      cpp co wb vz va vb vc vd ve vf wor wpo wral ltposr cop df-nr breq1 orbi1d
      cer cec imbi12d breq2 orbi2d imbi2d wa simp1l simp3r simp2r simp2l simp1r
      orbi12d simp3l ltsopr sowlin mpan syl3anc ltaprg addcomprg adantl caov12d
      addassprg caovassd eqtr4d caov32d eqtr3d breq12d bitrd caovord2d caovcomd
      w3a eqtrd breq1d bitr4d 3imtr4d ltsrprg 3adant3 3adant2 3adant1 3ecoptocl
      ancoms rgen3 df-iso mpbir2an ) FGUHFGUIAHZBHZGIZXAUAHZGIZXDXBGIZJZKZUAFUJ
      BFUJAFUJUKXHABUAFFFUBHZUCHZULUPUQZUDHZUEHZULUPUQZGIZXKUFHZUGHZULUPUQZGIZX
      RXNGIZJZKXAXNGIZXAXRGIZXTJZKXCYCXRXBGIZJZKXHUBUCUDUEUFUGXAXBXDLUPFUMXKXAM
      ZXOYBYAYDXKXAXNGUNYGXSYCXTXKXAXRGUNUOURXNXBMZYBXCYDYFXNXBXAGUSYHXTYEYCXNX
      BXRGUSUTURXRXDMZYFXGXCYIYCXEYEXFXRXDXAGUSXRXDXBGUNVHVAXILNZXJLNZVBZXLLNZX
      MLNZVBZXPLNZXQLNZVBZWGZXIXMRSZXJXLRSZOIZXIXQRSZXJXPRSZOIZXPXMRSZXQXLRSZOI
      ZJZXOYAYSUUCXMRSZUUGXJRSZOIZUUJUUDXMRSZOIZUUMUUKOIZJZUUBUUIYSUUJLNZUUKLNZ
      UUMLNZUULUUPKZYSUUCLNZYNUUQYSYJYQUVAYJYKYOYRVCZYLYOYPYQVDZXIXQPQZYLYMYNYR
      VEZUUCXMPQYSUUGLNZYKUURYSYQYMUVFUVCYLYMYNYRVFZXQXLPQZYJYKYOYRVGZUUGXJPQYS
      UUDLNZYNUUSYSYKYPUVJUVIYLYOYPYQVIZXJXPPQZUVEUUDXMPQLOUHUUQUURUUSWGUUTVJLU
      UJUUKUUMOVKVLVMYSUUBXQYTRSZXQUUARSZOIZUULYSYTLNZUUALNZYQUUBUVOTYSYJYNUVPU
      VBUVEXIXMPQYSYKYMUVQUVIUVGXJXLPQUVCYTUUAXQVNVMYSUVMUUJUVNUUKOYSUVMXIXQXMR
      SRSUUJYSCDEXQXIXMLRUVCUVBUVECHZLNZDHZLNZVBUVRUVTRSZUVTUVRRSMYSUVRUVTVOVPZ
      UVSUWAEHZLNWGZUWBUWDRSUVRUVTUWDRSRSMYSUVRUVTUWDVRVPZVQYSCDEXIXQXMLRUWFUVB
      UVCUVEVSVTYSXQXJRSXLRSUVNUUKYSCDEXQXJXLLRUWFUVCUVIUVGVSYSCDEXQXJXLLRUVCUV
      IUVGUWCUWFWAWBWCWDYSUUEUUNUUHUUOYSCDEUUCUUDXMOLRUWEUVRUVTOIUWDUVRRSUWDUVT
      RSOITYSUVRUVTUWDVNVPZUVDUVLUVEUWCWEYSUUHUUFXJRSZUUKOIUUOYSCDEUUFUUGXJOLRU
      WGYSYPYNUUFLNUVKUVEXPXMPQZUVHUVIUWCWEYSUUMUWHUUKOYSUUMXJUUFRSUWHYSCDEXJXP
      XMLRUWFUVIUVKUVEVSYSCDXJUUFLRUWCUVIUWIWFWHWIWJVHWKYLYOXOUUBTYRXIXJXLXMWLW
      MYSXSUUEXTUUHYLYRXSUUETYOXIXJXPXQWLWNYOYRXTUUHTZYLYRYOUWJXPXQXLXMWLWQWOVH
      WKWPWRABUAFGWSWT $.
  $}

  $( 0 is less than 1 for signed reals.  (Contributed by NM, 26-Mar-1996.) $)
  0lt1sr $p |- 0R <R 1R $=
    ( c1p cop cer cec cpp co c0r c1r cltr wbr cltp cnp wcel 1pr addclpr ltaddpr
    mp2an wceq addcomprg breqtrri wb ltsrprg mp4an mpbir df-0r df-1r 3brtr4i )
    AABCDZAAEFZABCDZGHIUHUJIJZUIAUIEFZKJZUIUIAEFZULKUILMZALMZUIUNKJUPUPUONNAAOQ
    ZNUIAPQUPUOULUNRNUQAUISQTUPUPUOUPUKUMUANNUQNAAUIAUBUCUDUEUFUG $.

  $( 1 and 0 are distinct for signed reals.  (Contributed by NM,
     26-Mar-1996.) $)
  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.) $)
    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 simpl simpr addcomprg
      cnr a1i adantl w3a addassprg caov12d addclpr mpan2 anim12i enreceq mpbird
      wb mpdan eqtr4d syl5eq ecoptocl ) BGZCGZHIJZKLMZVJNAKLMZANBCAOOIULUAVJANZ
      VKVLVJAVJAKLUBVMUCUDVHOPZVIOPZQZVKVJRRHIJZLMZVJKVQVJLUEUFVPVRVHRSMZVIRSMZ
      HIJZVJVPROPZWBVRWANTTVHVIRRUGUHVPVJWANZVHVTSMVIVSSMNZVPDEFVHVIROSVNVOUIVN
      VOUJWBVPTUMDGZOPZEGZOPZQWEWGSMZWGWESMNVPWEWGUKUNWFWHFGZOPUOWIWJSMWEWGWJSM
      SMNVPWEWGWJUPUNUQVPVSOPZVTOPZQWCWDVCVNWKVOWLVNWBWKTVHRURUSVOWBWLTVIRURUSU
      TVHVIVSVTVAVDVBVEVFVG $.
  $}

  ${
    $d x y A $.  $d x y z w v $.
    $( 1 is an identity element for multiplication.  (Contributed by Jim
       Kingdon, 5-Jan-2020.) $)
    1idsr $p |- ( A e. R. -> ( A .R 1R ) = A ) $=
      ( cv cop cer cec c1r cmr co wceq cnp wcel c1p cpp cmp 1pr addclpr mulclpr
      wa sylancl mpan2 vx vy vz vw vv df-nr oveq1 id eqeq12d df-1r oveq2i mp2an
      cnr mulsrpr mpanr12 distrprg mp3an23 1idpr oveq1d eqtr2d oveqan12d adantl
      eqtrd simpl addassprg syl3anc simpr addcomprg w3a caov12d 3eqtr3d anim12i
      wb syl2an enreceq syldan anidms mpbird eqtr4d syl5eq ecoptocl ) UABZUBBZC
      DEZFGHZWDIAFGHZAIUAUBAJJDUMUFWDAIZWEWFWDAWDAFGUGWGUHUIWBJKZWCJKZRZWEWDLLM
      HZLCDEZGHZWDFWLWDGUJUKWJWMWBWKNHZWCLNHZMHZWBLNHZWCWKNHZMHZCDEZWDWJWKJKZLJ
      KZWMWTIXBXBXAOOLLPULZOWBWCWKLUNUOWJWDWTIZWBWSMHZWCWPMHZIZWJWBWQMHZWRMHZWN
      WCWOMHZMHXEXFWHWIXHWNWRXJMWHWNWQWQMHZXHWHXBXBWNXKIOOWBLLUPUQWHWQWBWQMWBUR
      USUTWIWRWOWOMHZXJWIXBXBWRXLIOOWCLLUPUQWIWOWCWOMWCURUSVCVAWJWHWQJKZWRJKZXI
      XEIWHWIVDZWJWHXBXMXOOWBLQZSWIXNWHWIXAXNXCWCWKQTZVBWBWQWRVEVFWJUCUDUEWNWCW
      OJMWJWHXAWNJKZXOXCWBWKQZSWHWIVGZWJWIXBWOJKZXTOWCLQZSUCBZJKZUDBZJKZRYCYEMH
      ZYEYCMHIWJYCYEVHVBYDYFUEBZJKVIYGYHMHYCYEYHMHMHIWJYCYEYHVEVBVJVKWJXDXGVMZW
      JWJWPJKZWSJKZRYIWJYJWJYKWHXRYAYJWIWHXAXRXCXSTWIXBYAOYBTWNWOPVNWHXMXNYKWIW
      HXBXMOXPTXQWQWRPVNVLWBWCWPWSVOVPVQVRVSVTWA $.
  $}

  ${
    $d x y A $.
    $( A signed real times 0 is 0.  (Contributed by NM, 10-Apr-1996.) $)
    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 r s t x y z w v u $.
    $( Ordering property of addition.  (Contributed by NM, 10-May-1996.) $)
    ltasrg $p |- ( ( A e. R. /\ B e. R. /\ C e. R. ) ->
        ( A <R B <-> ( C +R A ) <R ( C +R B ) ) ) $=
      ( vr vs wcel cltr wbr cplr co wb cop cer cec cnp wceq cpp addclpr syl2anc
      cv vx vy vz vw vv vu vt cnr df-nr oveq1 breq12d bibi2d breq1 oveq2 breq1d
      bibi12d breq2 breq2d w3a cltp simp2l simp3r simp2r simp3l 3ad2ant1 ltaprg
      syl3anc ltsrprg 3adant1 simp1l simp1r syl22anc addcomprg adantl addassprg
      wa caovcomd caov42d eqtrd bitrd 3bitr4d addsrpr 3adant3 3adant2 3ecoptocl
      caov4d bitr4d 3coml ) CUHFAUHFBUHFABGHZCAIJZCBIJZGHZKZUATZUBTZLMNZUCTZUDT
      ZLMNZGHZUETZUFTZLMNZWPIJZXCWSIJZGHZKWTCWPIJZCWSIJZGHZKAWSGHZWJXHGHZKWMUEU
      FUAUBUCUDCABOMUHUIXCCPZXFXIWTXLXDXGXEXHGXCCWPIUJXCCWSIUJUKULWPAPZWTXJXIXK
      WPAWSGUMXMXGWJXHGWPACIUNUOUPWSBPZXJWIXKWLWSBAGUQXNXHWKWJGWSBCIUNURUPXAOFZ
      XBOFZVPZWNOFZWOOFZVPZWQOFZWROFZVPZUSZWTXAWNQJZXBWOQJZLMNZXAWQQJZXBWRQJZLM
      NZGHZXFYDWNWRQJZWOWQQJZUTHZXAXBQJZYLQJZYOYMQJZUTHZWTYKYDYLOFZYMOFZYOOFZYN
      YRKYDXRYBYSXQXRXSYCVAZXQXTYAYBVBZWNWRRSYDXSYAYTXQXRXSYCVCZXQXTYAYBVDZWOWQ
      RSXQXTUUAYCXAXBRVEYLYMYOVFVGXTYCWTYNKXQWNWOWQWRVHVIYDYKYEYIQJZYFYHQJZUTHZ
      YRYDYEOFZYFOFZYHOFZYIOFZYKUUHKYDXOXRUUIXOXPXTYCVJZUUBXAWNRSYDXPXSUUJXOXPX
      TYCVKZUUDXBWORSZYDXOYAUUKUUMUUEXAWQRSZYDXPYBUULUUNUUCXBWRRSYEYFYHYIVHVLYD
      UUFYPUUGYQUTYDDEUGXAWNXBWROQUUMUUBUUNDTZOFZETZOFZVPZUUQUUSQJZUUSUUQQJPYDU
      UQUUSVMVNZUURUUTUGTZOFUSUVBUVDQJUUQUUSUVDQJQJPYDUUQUUSUVDVOVNZUUCUVAUVBOF
      YDUUQUUSRVNZWFYDUUGYHYFQJYQYDDEYFYHOQUVCUUOUUPVQYDDEUGXAWQXBWOOQUUMUUEUUN
      UVCUVEUUDUVFVRVSUKVTWAYDXDYGXEYJGXQXTXDYGPYCXAXBWNWOWBWCXQYCXEYJPXTXAXBWQ
      WRWBWDUKWGWEWH $.
  $}

  $( A signed real plus its negative is zero.  (Contributed by NM,
     14-May-1996.) $)
  pn0sr $p |- ( A e. R. -> ( A +R ( A .R -1R ) ) = 0R ) $=
    ( cnr wcel c0r cmr co c1r cm1r cplr wceq m1r distrsrg mp3an23 m1p1sr oveq2i
    1sr a1i mulclsr mpan2 addcomsrg syl2anc 3eqtr3d 00sr 1idsr oveq1d 3eqtr3rd
    ) ABCZADEFZAGEFZAHEFZIFZDAUJIFUGAHGIFZEFZUJUIIFZUHUKUGHBCZGBCZUMUNJKPAHGLMU
    MUHJUGULDAENOQUGUJBCZUIBCZUNUKJUGUOUQKAHRSUGUPURPAGRSUJUITUAUBAUCUGUIAUJIAU
    DUEUF $.

  ${
    $d x A $.
    $( Existence of negative signed real.  Part of Proposition 9-4.3 of
       [Gleason] p. 126.  (Contributed by NM, 2-May-1996.) $)
    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 f g h $.
    $( The reciprocal of a positive signed real exists and is positive.
       (Contributed by Jim Kingdon, 6-Feb-2020.) $)
    recexgt0sr $p |- ( 0R <R A ->
        E. x e. R. ( 0R <R x /\ ( A .R x ) = 1R ) ) $=
      ( cnr wcel c0r cltr wbr cv co c1r wceq wa cer cnp cpp cmp c1p 1pr syl2anc
      adantr vy vz vw vv vf vg vh cmr wrex ltrelsr brel simprd cop cec wi df-nr
      breq2 oveq1 eqeq1d anbi2d rexbidv imbi12d gt0srpr ltexpri recexpr addclpr
      cltp sylbi adantl mpan2 ecopqsi sylancl ad2antlr simprr ltaddpr addcomprg
      enrex mpan breqtrd sylibr syl anim2i mulsrpr adantlrl eqcomd ad2antll w3a
      jctir mulcomprg 3adant2 3adant1 oveq12d 3coml simp3 3adant3 simplr simprl
      distrprg 3eqtr2rd caovdird oveq2 sylan9eq adantrr eqtrd oveq1d a1i simpll
      mulclpr addassprg caov32d syl3anc oveq2d caov12d 3eqtr4d wb eqeltrd mp2an
      enreceq syl22anc mpbird syl6eqr anbi12d rspcev syl12anc anassrs rexlimdva
      df-1r exp32 mpd syl5 ecoptocl mpcom ) BCDZEBFGZEAHZFGZBYOUHIZJKZLZACUIZYN
      ECDYMEBCCFUJUKULEUAHZUBHZUMMUNZFGZYPUUCYOUHIZJKZLZACUIZUOYNYTUOUAUBBNNMCU
      PUUCBKZUUDYNUUHYTUUCBEFUQUUIUUGYSACUUIUUFYRYPUUIUUEYQJUUCBYOUHURUSUTVAVBU
      UDUUBUCHZOIZUUAKZUCNUIZUUANDZUUBNDZLZUUHUUDUUBUUAVGGUUMUUAUUBVCUCUUBUUAVD
      VHUUPUULUUHUCNUUPUUJNDZLZUUJUDHZPIZQKZUDNUIZUULUUHUOZUUQUVBUUPUDUUJVEVIUU
      RUVAUVCUDNUUPUUQUUSNDZUVAUVCUOUUPUUQUVDLZLZUVAUULUUHUVFUVAUULLZLZUUSQOIZQ
      UMMUNZCDZEUVJFGZUUCUVJUHIZJKZUUHUVEUVKUUPUVGUVDUVKUUQUVDUVINDZQNDZUVKUVDU
      VPUVORUUSQVFZVJZRNUVIQMCVQUPVKVLVIVMUVHUVDUVLUVFUVDUVGUUPUUQUVDVNZTUVDQUV
      IVGGUVLUVDQQUUSOIZUVIVGUVPUVDQUVTVGGRQUUSVOVRUVPUVDUVTUVIKRQUUSVPVRVSUVIQ
      VCVTWAUVHUVMQQOIZQUMMUNZJUVHUVMUUAUVIPIZUUBQPIZOIZUUAQPIZUUBUVIPIZOIZUMMU
      NZUWBUUPUVDUVGUVMUWIKZUUQUUPUVDLZUVGLUUPUVOUVPLZLZUWJUWKUWMUVGUVDUWLUUPUV
      DUVOUVPUVRRWHWBTUUAUUBUVIQWCWAWDUVHUWIUWBKZUWEQOIZUWHUWAOIZKZUVHUUAUUSPIZ
      UWFUWDOIZOIZQOIZUUBUUSPIZUWSOIZUWAOIZUWOUWPUVHUXAUXCQOIZQOIZUXDUVHUWTUXEQ
      OUVHUWTUXBQOIZUWSOIZUXEUVHUWRUXGUWSOUVHUWRUUKUUSPIZUXGUULUWRUXIKUVFUVAUUL
      UXIUWRUUKUUAUUSPURWEWFUVFUVAUXIUXGKUULUVFUVAUXIUXBUUTOIUXGUVFUEUFUGUUBUUJ
      UUSNOPONUEHZNDZUFHZNDZUGHZNDZWGZUXJUXLOIZUXNPIZUXJUXNPIZUXLUXNPIZOIZKUVFU
      XPUYAUXNUXJPIZUXNUXLPIZOIZUXNUXQPIZUXRUXPUXSUYBUXTUYCOUXKUXOUXSUYBKUXMUXJ
      UXNWIWJUXMUXOUXTUYCKUXKUXLUXNWIWKWLUXOUXKUXMUYEUYDKUXNUXJUXLWRWMUXPUXOUXQ
      NDZUYEUXRKUXKUXMUXOWNUXKUXMUYFUXOUXJUXLVFWOUXNUXQWISWSVIUUNUUOUVEWPZUUPUU
      QUVDWQUVSWTUUTQUXBOXAXBXCXDXEUVFUXHUXEKUVGUVFUEUFUGUXBQUWSNOUVFUUOUVDUXBN
      DZUYGUVSUUBUUSXHSZUVPUVFRXFZUVFUWFNDZUWDNDZUWSNDZUVFUUNUVPUYKUUNUUOUVEXGZ
      RUUAQXHVLZUVFUUOUVPUYLUYGRUUBQXHVLZUWFUWDVFSZUXKUXMLUXQUXLUXJOIKUVFUXJUXL
      VPVIZUXPUXQUXNOIUXJUXLUXNOIOIKUVFUXJUXLUXNXIVIZXJTXDXEUVHUXCNDZUVPUVPUXFU
      XDKUVFUYTUVGUVFUYHUYMUYTUYIUYQUXBUWSVFSZTUVPUVHRXFZVUBUXCQQXIXKXDUVFUWOUX
      AKUVGUVFUWEUWTQOUVFUWEUWRUWFOIZUWDOIZUWTUVFUWCVUCUWDOUVFUUNUVDUVPUWCVUCKU
      YNUVSUYJUUAUUSQWRXKXEUVFUWRNDZUYKUYLVUDUWTKUVFUUNUVDVUEUYNUVSUUAUUSXHSUYO
      UYPUWRUWFUWDXIXKXDXETUVFUWPUXDKUVGUVFUWHUXCUWAOUVFUWHUWFUXBUWDOIZOIUXCUVF
      UWGVUFUWFOUVFUUOUVDUVPUWGVUFKUYGUVSUYJUUBUUSQWRXKXLUVFUEUFUGUWFUXBUWDNOUY
      OUYIUYPUYRUYSXMXDZXETXNUVFUWNUWQXOZUVGUVFUWENDZUWHNDUWANDZUVPVUHUVFUWCNDZ
      UYLVUIUVFUUNUVOVUKUYNUVFUVDUVPUVOUVSRUVQVLUUAUVIXHSUYPUWCUWDVFSUVFUWHUXCN
      VUGVUAXPVUJUVFUVPUVPVUJRRQQVFXQXFUYJUWEUWHUWAQXRXSTXTXDYGYAUUGUVLUVNLAUVJ
      CYOUVJKZYPUVLUUFUVNYOUVJEFUQVULUUEUVMJYOUVJUUCUHXAUSYBYCYDYHYEYFYIYFYJYKY
      L $.
  $}

  ${
    $d x A $.
    $( The reciprocal of a positive signed real exists.  Part of Proposition
       9-4.3 of [Gleason] p. 126.  (Contributed by NM, 15-May-1996.) $)
    recexsrlem $p |- ( 0R <R A -> E. x e. R. ( A .R x ) = 1R ) $=
      ( c0r cltr wbr cv cmr co c1r wceq wa cnr wrex recexgt0sr simpr reximi syl
      ) CBDECAFZDEZBRGHIJZKZALMTALMABNUATALSTOPQ $.
  $}

  $( The sum of two positive signed reals is positive.  (Contributed by NM,
     14-May-1996.) $)
  addgt0sr $p |- ( ( 0R <R A /\ 0R <R B ) -> 0R <R ( A +R B ) ) $=
    ( c0r cltr wbr cplr co wa simpr cnr wcel wb ltrelsr simprd 0r ltasrg mp3an1
    brel syl2anr mpbid adantr 0idsr breq1d syl ltsosr sotri syldan ) CADEZCBDEZ
    AABFGZDEZCUJDEUHUIHZACFGZUJDEZUKULUIUNUHUIIUIBJKZAJKZUIUNLZUHUICJKZUOCBJJDM
    RNUHURUPCAJJDMRNZURUOUPUQOCBAPQSTULUPUNUKLUHUPUIUSUAUPUMAUJDAUBUCUDTCAUJDJU
    EMUFUG $.

  $( Adding one to a signed real yields a larger signed real.  (Contributed by
     Jim Kingdon, 7-Jul-2021.) $)
  ltadd1sr $p |- ( A e. R. -> A <R ( A +R 1R ) ) $=
    ( cnr wcel c0r cplr co c1r cltr 0idsr wbr 0lt1sr wb 0r ltasrg mp3an12 mpbii
    1sr eqbrtrrd ) ABCZADEFZAAGEFZHAISDGHJZTUAHJZKDBCGBCSUBUCLMQDGANOPR $.

  ${
    $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.) $)
    mulgt0sr $p |- ( ( 0R <R A /\ 0R <R B ) -> 0R <R ( A .R B ) ) $=
      ( vf vg vh cnr wcel wa c0r cltr wbr co cv cnp wceq cmp cpp adantl mulclpr
      syl2anc vx vy vz vw vv vu cmr ltrelsr simprd anim12i cop cer cec wi df-nr
      brel breq2 anbi1d oveq1 breq2d imbi12d oveq2 cltp gt0srpr anbi12i ltexpri
      anbi2d wrex addclpr simplrr simplr ad2antrr simplrl caovcld adantr simprl
      eqeltrrd ltaddpr simprr oveq12 oveq1d distrprg eqtr3d mulcomprg caovdir2d
      syl3anc oveq12d addcomprg addassprg caov4d 3eqtr4d caov12d caov32d oveq2d
      w3a ad2antlr 3eqtr3d addcanprg breqtrrd rexlimdvaa mulsrpr syl6bb sylibrd
      mpd syl5 impd syl5bi 2ecoptocl mpcom ) AFGZBFGZHIAJKZIBJKZHZIABUGLZJKZXLX
      JXMXKXLIFGZXJIAFFJUHUPUIXMXQXKIBFFJUHUPUIUJIUAMZUBMZUKULUMZJKZIUCMZUDMZUK
      ULUMZJKZHZIXTYDUGLZJKZUNXLYEHZIAYDUGLZJKZUNXNXPUNUAUBUCUDABNNULFUOXTAOZYF
      YIYHYKYLYAXLYEXTAIJUQURYLYGYJIJXTAYDUGUSUTVAYDBOZYIXNYKXPYMYEXMXLYDBIJUQV
      GYMYJXOIJYDBAUGVBUTVAYFXSXRVCKZYCYBVCKZHZXRNGZXSNGZHZYBNGZYCNGZHZHZYHYAYN
      YEYOXRXSVDYBYCVDVEUUCYPXRYCPLZXSYBPLZQLZXRYBPLZXSYCPLZQLZVCKZYHUUCYNYOUUJ
      YNXSUEMZQLZXROZUENVHUUCYOUUJUNZUEXSXRVFUUCUUMUUNUENYOYCUFMZQLZYBOZUFNVHUU
      CUUKNGZUUMHZHZUUJUFYCYBVFUUTUUQUUJUFNUUTUUONGZUUQHZHZUUFUUFUUKUUOPLZQLZUU
      IVCUVCUUFNGUVDNGZUUFUVEVCKUVCCDUUDUUENNNQCMZNGZDMZNGZHZUVGUVIQLZNGUVCUVGU
      VIVIRZUVCYQUUAUUDNGZUVCUULXRNUUCUURUUMUVBVJZUVCCDXSUUKNNNQUVMUUCYRUUSUVBY
      QYRUUBVKVLZUUCUURUUMUVBVMZVNZVQZUUTUUAUVBYSYTUUAUUSVJVOZXRYCSTZUVCYRYTUUE
      NGZUVPUUTYTUVBYSYTUUAUUSVMVOZXSYBSTZVNZUVCUURUVAUVFUVQUUTUVAUUQVPZUUKUUOS
      TZUUFUVDVRTUVCUUKYCPLZUUIQLZUWHUVEQLZOZUUIUVEOZUVCUUGUUHUWHQLZQLZUWHUUEUV
      DQLZQLZUUDQLZUWIUWJUVCUULUUPPLZUWMQLZUWNUWQUVCUUMUUQUWSUWNOUVOUUTUVAUUQVS
      UUMUUQHUWRUUGUWMQUULXRUUPYBPVTWATUVCUWRUWPUWMUUDQUVCUUHXSUUOPLZQLZUWHUVDQ
      LZQLZUUEUXBQLUWRUWPUVCUXAUUEUXBQUVCXSUUPPLZUXAUUEUVCYRUUAUVAUXDUXAOUVPUVT
      UWFXSYCUUOWBWFUVBUXDUUEOZUUTUUQUXEUVAUUPYBXSPVBRRWCWAUVCUULYCPLZUULUUOPLZ
      QLZUWMUWTUVDQLZQLUWRUXCUVCUXFUWMUXGUXIQUVCCDEXSUUKYCNQPUVHUVJEMZNGWOZUVGU
      VIUXJQLZPLUVGUVIPLZUVGUXJPLQLOUVCUVGUVIUXJWBRZUVPUVQUVTUVMUVKUXMUVIUVGPLO
      UVCUVGUVIWDRZWEZUVCCDEXSUUKUUONQPUXNUVPUVQUWFUVMUXOWEWGUVCUULNGUUAUVAUWRU
      XHOUVRUVTUWFUULYCUUOWBWFUVCCDEUUHUWTUWHUVDNQUVCYRUUAUUHNGZUVPUVTXSYCSTZUV
      CYRUVAUWTNGUVPUWFXSUUOSTUVCUURUUAUWHNGZUVQUVTUUKYCSTZUVKUVLUVIUVGQLOUVCUV
      GUVIWHRZUXKUVLUXJQLUVGUXLQLOUVCUVGUVIUXJWIRZUWGUVMWJWKUVCCDEUWHUUEUVDNQUX
      TUWDUWGUYAUYBWLWKUVCUXFUWMUUDUXPUUSUXFUUDOZUUCUVBUUMUYCUURUULXRYCPUSRWPWC
      WGWCUVCUUIUWHQLZUWNUWIUVCUUGNGZUXQUXSUYDUWNOUVCYQYTUYEUVSUWCXRYBSTZUXRUXT
      UUGUUHUWHWIWFUVCUUINGZUXSUYDUWIOUVCUYEUXQUYGUYFUXRUUGUUHVITZUXTUUIUWHWHTW
      CUVCUWHUUDQLUWOQLZUWHUUDUWOQLZQLZUWQUWJUVCUXSUVNUWONGUYIUYKOUXTUWAUVCCDUU
      EUVDNNNQUVMUWDUWGVNZUWHUUDUWOWIWFUVCCDEUWHUWOUUDNQUXTUYLUWAUYAUYBWMUVCUVE
      UYJUWHQUVCUVNUWBUVFUVEUYJOUWAUWDUWGUUDUUEUVDWIWFWNWKWQUVCUXSUYGUVENGUWKUW
      LUNUXTUYHUVCCDUUFUVDNNNQUVMUWEUWGVNUWHUUIUVEWRWFXDWSWTXEWTXEXFUUCYHIUUIUU
      FUKULUMZJKUUJUUCYGUYMIJXRXSYBYCXAUTUUIUUFVDXBXCXGXHXI $.
  $}

  ${
    $d A w x y z $.  $d B w z $.
    $( Apartness of signed reals is tight.  (Contributed by Jim Kingdon,
       29-Jan-2020.) $)
    aptisr $p |- ( ( A e. R. /\ B e. R. /\ -. ( A <R B \/ B <R A ) )
        -> A = B ) $=
      ( vx cnr wcel cltr wbr wo wn wceq cv cer wi cnp orbi12d notbid wa co cltp
      cpp vy vz cop cec df-nr breq1 breq2 imbi12d addcomprg ad2ant2lr ad2ant2rl
      eqeq1 breq12d orbi2d addclpr aptipr 3expia syl2anc sylbird ltsrprg ancoms
      vw eqeq2 wb enreceq 3imtr4d 2ecoptocl 3impia ) ADEBDEABFGZBAFGZHZIZABJZCK
      ZUAKZUCLUDZUBKZVBKZUCLUDZFGZVSVPFGZHZIZVPVSJZMAVSFGZVSAFGZHZIZAVSJZMVLVMM
      CUAUBVBABNNLDUEVPAJZWCWHWDWIWJWBWGWJVTWEWAWFVPAVSFUFVPAVSFUGOPVPAVSULUHVS
      BJZWHVLWIVMWKWGVKWKWEVIWFVJVSBAFUGVSBAFUFOPVSBAVCUHVNNEZVONEZQZVQNEZVRNEZ
      QZQZVNVRTRZVOVQTRZSGZVQVOTRZVRVNTRZSGZHZIZWSWTJZWCWDWRXFXAWTWSSGZHZIZXGWR
      XIXEWRXHXDXAWRWTXBWSXCSWMWOWTXBJWLWPVOVQUIUJWLWPWSXCJWMWOVNVRUIUKUMUNPWRW
      SNEZWTNEZXJXGMWLWPXKWMWOVNVRUOUKWMWOXLWLWPVOVQUOUJXKXLXJXGWSWTUPUQURUSWRW
      BXEWRVTXAWAXDVNVOVQVRUTWQWNWAXDVDVQVRVNVOUTVAOPVNVOVQVRVEVFVGVH $.
  $}

  ${
    $d U f g h $.  $d V f g h $.  $d W f g h $.  $d X f g h $.  $d Y f g h $.
    $d Z f g h $.
    $( Lemma for ~ mulextsr1 .  (Contributed by Jim Kingdon, 17-Feb-2020.) $)
    mulextsr1lem $p |- ( ( ( X e. P. /\ Y e. P. ) /\ ( Z e. P. /\ W e. P. )
        /\ ( U e. P. /\ V e. P. ) ) -> (
        ( ( ( X .P. U ) +P. ( Y .P. V ) ) +P.
          ( ( Z .P. V ) +P. ( W .P. U ) ) )
        <P ( ( ( X .P. V ) +P. ( Y .P. U ) ) +P.
          ( ( Z .P. U ) +P. ( W .P. V ) ) ) ->
        ( ( X +P. W ) <P ( Y +P. Z ) \/ ( Z +P. Y ) <P ( W +P. X ) ) ) ) $=
      ( vf vg vh cnp wcel cmp co cpp cltp wbr wceq adantl mulclpr syl2anc wa wo
      w3a addcomprg addclpr simp2l simp3r simp1r caovcld simp1l simp3l caovcomd
      cv simp2r addassprg caov411d distrprg mulcomprg caovdir2d oveq12d 3eqtr4d
      eqtr4d breq12d wi eqeltrd addextpr syl22anc 3adant2 3adant1 ltmprr sylbid
      syl3anc orim12d syld breq2d orbi12d sylibd ) DJKZEJKZUAZFJKZCJKZUAZAJKZBJ
      KZUAZUCZDALMZEBLMZNMFBLMZCALMZNMNMZDBLMZEALMZNMFALMZCBLMZNMNMZOPZDCNMZFEN
      MZOPZWTWSOPZUBZWSEFNMZOPZWTCDNMZOPZUBWGWRWSALMZWTBLMZNMZWTALMZWSBLMZNMZOP
      ZXCWGWLXJWQXMOWGWJWINMZWHWKNMZNMXPXONMWLXJWGGHXOXPJNGUMZJKZHUMZJKZUAZXQXS
      NMZXSXQNMQWGXQXSUDRZWGGHWJWIJJJNYAYBJKWGXQXSUERZWGWAWEWJJKVTWAWBWFUFZVTWC
      WDWEUGZFBSTZWGVSWEWIJKVRVSWCWFUHZYFEBSTZUIZWGGHWHWKJJJNYDWGVRWDWHJKVRVSWC
      WFUJZVTWCWDWEUKZDASTZWGWBWDWKJKVTWAWBWFUNZYLCASTZUIZULWGGHIWHWIWJWKJNYMYI
      YGYCXRXTIUMZJKUCZYBYQNMXQXSYQNMZNMQWGXQXSYQUORZYOYDUPWGXHXPXIXONWGGHIDCAJ
      NLYRXQYSLMXQXSLMZXQYQLMNMQWGXQXSYQUQRZYKYNYLYDYAUUAXSXQLMQWGXQXSURRZUSZWG
      GHIFEBJNLUUBYEYHYFYDUUCUSZUTVAWGWQWOWNNMZWMWPNMZNMXMWGGHIWMWNWOWPJNWGVRWE
      WMJKYKYFDBSTWGVSWDWNJKYHYLEASTWGWAWDWOJKYEYLFASTYCYTWGWBWEWPJKYNYFCBSTYDU
      PWGXKUUFXLUUGNWGGHIFEAJNLUUBYEYHYLYDUUCUSWGGHIDCBJNLUUBYKYNYFYDUUCUSUTVBV
      CWGXNXHXKOPZXIXLOPZUBZXCWGXHJKXIJKXKJKZXLJKZXNUUJVDWGXHXPJUUDYPVEWGXIXOJU
      UEYJVEWGWTJKZWDUUKWGWAVSUUMYEYHFEUETZYLWTASTWGWSJKZWEUULWGVRWBUUOYKYNDCUE
      TZYFWSBSTXHXIXKXLVFVGWGUUHXAUUIXBWGUUOUUMWDUUHXAVDUUPUUNYLUUOUUMWDUCZUUHA
      WSLMZAWTLMZOPXAUUQXHUURXKUUSOUUOWDXHUURQUUMWSAURVHUUMWDXKUUSQUUOWTAURVIVC
      WSWTAVJVKVLWGUUIBWTLMZBWSLMZOPZXBWGXIUUTXLUVAOWGUUMWEXIUUTQUUNYFWTBURTWGU
      UOWEXLUVAQUUPYFWSBURTVCWGUUMUUOWEUVBXBVDUUNUUPYFWTWSBVJVLVKVMVNVKWGXAXEXB
      XGWGWTXDWSOWGWAVSWTXDQYEYHFEUDTVOWGWSXFWTOWGVRWBWSXFQYKYNDCUDTVOVPVQ $.
  $}

  ${
    $d A u v w x y z $.  $d B u v w z $.  $d C u v $.
    $( Strong extensionality of multiplication of signed reals.  (Contributed
       by Jim Kingdon, 18-Feb-2020.) $)
    mulextsr1 $p |- ( ( A e. R. /\ B e. R. /\ C e. R. )
        -> ( ( A .R C ) <R ( B .R C ) -> ( A <R B \/ B <R A ) ) ) $=
      ( cv cop cer cec cmr co cltr wbr wo cnp wceq wcel cmp cpp mulclpr syl2anc
      wi vx vy vu vv vz vw df-nr oveq1 breq1d breq1 breq2 orbi12d imbi12d oveq2
      cnr breq2d breq12d imbi1d wa cltp mulextsr1lem mulsrpr 3adant2 3adant1 wb
      simp1l simp3l simp1r simp3r addclpr simp2l ltsrprg syl22anc bitrd 3adant3
      w3a simp2r ancoms 3imtr4d 3ecoptocl ) UADZUBDZEFGZUCDZUDDZEFGZHIZUEDZUFDZ
      EFGZWFHIZJKZWCWJJKZWJWCJKZLZTAWFHIZWKJKZAWJJKZWJAJKZLZTWPBWFHIZJKZABJKZBA
      JKZLZTACHIZBCHIZJKZXETUAUBUEUFUCUDABCMFUOUGWCANZWLWQWOWTXIWGWPWKJWCAWFHUH
      UIXIWMWRWNWSWCAWJJUJWCAWJJUKULUMWJBNZWQXBWTXEXJWKXAWPJWJBWFHUHUPXJWRXCWSX
      DWJBAJUKWJBAJUJULUMWFCNZXBXHXEXKWPXFXAXGJWFCAHUNWFCBHUNUQURWAMOZWBMOZUSZW
      HMOZWIMOZUSZWDMOZWEMOZUSZVPZWAWDPIZWBWEPIZQIZWHWEPIZWIWDPIZQIZQIWAWEPIZWB
      WDPIZQIZWHWDPIZWIWEPIZQIZQIUTKZWAWIQIWBWHQIUTKZWHWBQIWIWAQIUTKZLWLWOWDWEW
      IWAWBWHVAYAWLYDYJEFGZYMYGEFGZJKZYNYAWGYQWKYRJXNXTWGYQNXQWAWBWDWEVBVCXQXTW
      KYRNXNWHWIWDWEVBVDUQYAYDMOZYJMOZYMMOZYGMOZYSYNVEYAYBMOZYCMOZYTYAXLXRUUDXL
      XMXQXTVFZXNXQXRXSVGZWAWDRSYAXMXSUUEXLXMXQXTVHZXNXQXRXSVIZWBWERSYBYCVJSYAY
      HMOZYIMOZUUAYAXLXSUUJUUFUUIWAWERSYAXMXRUUKUUHUUGWBWDRSYHYIVJSYAYKMOZYLMOZ
      UUBYAXOXRUULXNXOXPXTVKZUUGWHWDRSYAXPXSUUMXNXOXPXTVQZUUIWIWERSYKYLVJSYAYEM
      OZYFMOZUUCYAXOXSUUPUUNUUIWHWERSYAXPXRUUQUUOUUGWIWDRSYEYFVJSYDYJYMYGVLVMVN
      YAWMYOWNYPXNXQWMYOVEXTWAWBWHWIVLVOXNXQWNYPVEZXTXQXNUURWHWIWAWBVLVRVOULVSV
      T $.
  $}

  ${
    $d A l u w x z $.
    $( For any signed real, there is an integer that is greater than it.  This
       is also known as the "archimedean property".  The expression
       ` [ <. ( <. { l | l <Q [ <. x , 1o >. ] ~Q } ` ,
       ` { u | [ <. x , 1o >. ] ~Q <Q u } >. +P. 1P ) , 1P >. ] ~R ` is the
       embedding of the positive integer ` x ` into the signed reals.
       (Contributed by Jim Kingdon, 23-Apr-2020.) $)
    archsr $p |- ( A e. R. -> E. x e. N. A <R
        [ <. ( <. { l | l <Q [ <. x , 1o >. ] ~Q } ,
          { u | [ <. x , 1o >. ] ~Q <Q u } >. +P. 1P ) , 1P >. ] ~R ) $=
      ( vz cv cop cer cec wbr c1p cpp co cltr cnpi wrex cnp wcel cltp 1pr df-nr
      vw c1o ceq cltq cab cnr wceq breq1 rexbidv wa addclpr mpan2 archpr adantr
      nnprlu adantl sylancl simplr ltaddpr syl2anc addcomprg breqtrrd wi ltsopr
      syl ltrelpr sotri expcom sylsyld reximdva mpd simpl a1i syl12anc rexbidva
      wb ltsrprg mpbird ecoptocl ) EFZUBFZGHIZDFAFZUCGUDIZUEJDUFWEBFUEJBUFGZKLM
      ZKGHIZNJZAOPZCWHNJZAOPEUBCQQHUGUAWCCUHWIWKAOWCCWHNUIUJWAQRZWBQRZUKZWJWAKL
      MZWBWGLMZSJZAOPZWNWOWFSJZAOPZWRWLWTWMWLWOQRZWTWLKQRZXATWAKULUMABWODUNVFUO
      WNWSWQAOWNWDORZUKZWGWPSJZWSWOWGSJZWQXDWGWGWBLMZWPSXDWGQRZWMWGXGSJXDWFQRZX
      BXHXCXIWNBWDDUPUQZTWFKULURZWLWMXCUSZWGWBUTVAXDWMXHWPXGUHXLXKWBWGVBVAVCXDW
      FWGSJZWSXFVDXDXIXBXMXJTWFKUTURWSXMXFWOWFWGSQVEVGVHVIVFXFXEWQWOWGWPSQVEVGV
      HVIVJVKVLWNWIWQAOXDWNXHXBWIWQVQWNXCVMXKXBXDTVNWAWBWGKVRVOVPVSVT $.
  $}

  ${
    $d A a b x $.
    $( Mapping from a signed real greater than zero to a positive real.
       (Contributed by Jim Kingdon, 25-Jun-2021.) $)
    srpospr $p |- ( ( A e. R. /\ 0R <R A ) ->
        E! x e. P. [ <. ( x +P. 1P ) , 1P >. ] ~R = A ) $=
      ( va vb cnr wcel c0r cltr wbr cv c1p cpp co cer wceq cnp wreu wi syl2anc
      wa cop cec df-nr breq2 reubidv imbi12d cltp gt0srpr biimpi adantl lteupri
      eqeq2 syl wb simpr 1pr addclpr simplll simpllr enreceq syl22anc addcomprg
      a1i oveq1d addassprg syl3anc eqtrd eqeq1d addcanprg oveq2 impbid1 3bitrrd
      bitrd reubidva mpbid ex ecoptocl imp ) BEFGBHIZAJZKLMZKUANUBZBOZAPQZGCJZD
      JZUANUBZHIZWBWGOZAPQZRVSWDRCDBPPNEUCWGBOZWHVSWJWDWGBGHUDWKWIWCAPWGBWBULUE
      UFWEPFZWFPFZTZWHWJWNWHTZWFVTLMZWEOZAPQZWJWOWFWEUGIZWRWHWSWNWHWSWEWFUHUIUJ
      AWFWEUKUMWOWQWIAPWOVTPFZTZWIWAWFLMZKWELMZOZVTWFLMZWEOZWQXAWAPFZKPFZWLWMWI
      XDUNXAWTXHXGWOWTUOZXHXAUPVCZVTKUQSXJWLWMWHWTURZWLWMWHWTUSZWAKWEWFUTVAXAXD
      KXELMZXCOZXFXAXBXMXCXAXBKVTLMZWFLMZXMXAWAXOWFLXAWTXHWAXOOXIXJVTKVBSVDXAXH
      WTWMXPXMOXJXIXLKVTWFVEVFVGVHXAXNXFXAXHXEPFZWLXNXFRXJXAWTWMXQXIXLVTWFUQSXK
      KXEWEVIVFXEWEKLVJVKVMXAXEWPWEXAWTWMXEWPOXIXLVTWFVBSVHVLVNVOVPVQVR $.
  $}

  $( Mapping from a positive real to a signed real.  (Contributed by Jim
     Kingdon, 25-Jun-2021.) $)
  prsrcl $p |- ( A e. P. ->
      [ <. ( A +P. 1P ) , 1P >. ] ~R e. R. ) $=
    ( cnp wcel c1p cpp co cop cer cec cxp cqs cnr addclpr mpan2 opelxpi ecelqsi
    1pr enrex 3syl df-nr syl6eleqr ) ABCZADEFZDGZHIZBBJZHKZLUBUCBCZUDUFCZUEUGCU
    BDBCZUHQADMNUHUJUIQUCDBBONUFUDHRPSTUA $.

  $( Mapping from a positive real to a signed real yields a result greater than
     zero.  (Contributed by Jim Kingdon, 25-Jun-2021.) $)
  prsrpos $p |- ( A e. P. -> 0R <R [ <. ( A +P. 1P ) , 1P >. ] ~R ) $=
    ( cnp wcel c1p cpp cltp wbr c0r cop cer cec cltr 1pr ltaddpr mpan addcomprg
    co wceq breqtrd gt0srpr sylibr ) ABCZDADEQZFGHUCDIJKLGUBDDAEQZUCFDBCZUBDUDF
    GMDANOUEUBUDUCRMDAPOSUCDTUA $.

  ${
    $d A f g h $.  $d B f g h $.
    $( Mapping from positive real addition to signed real addition.
       (Contributed by Jim Kingdon, 29-Jun-2021.) $)
    prsradd $p |- ( ( A e. P. /\ B e. P. ) ->
        [ <. ( ( A +P. B ) +P. 1P ) , 1P >. ] ~R =
        ( [ <. ( A +P. 1P ) , 1P >. ] ~R +R
          [ <. ( B +P. 1P ) , 1P >. ] ~R ) ) $=
      ( vf vg vh cnp wcel wa c1p cpp co cop cer cec wceq 1pr addclpr cv syl2anc
      adantl mpan2 addsrpr mpanl2 mpanr2 syl2an simpl simpr addcomprg addassprg
      cplr a1i w3a caov4d mp2an eqtrd oveq1d syl3anc wb enreceq mpbird eqtr2d )
      AFGZBFGZHZAIJKZILMNBIJKZILMNUJKZVEVFJKZIIJKZLMNZABJKZIJKZILMNZVBVEFGZVFFG
      ZVGVJOZVCVBIFGZVNPAIQUAZVCVQVOPBIQUAZVNVOVQVPPVNVQVOVQHVPPVEIVFIUBUCUDUEV
      DVJVMOZVHIJKZVIVLJKZOZVDWAVIVKJKZIJKZWBVDVHWDIJVDVHVKVIJKZWDVDCDEAIBIFJVB
      VCUFVQVDPUKZVBVCUGCRZFGZDRZFGZHZWHWJJKZWJWHJKOVDWHWJUHTWIWKERZFGULWMWNJKW
      HWJWNJKJKOVDWHWJWNUITWGWLWMFGVDWHWJQTUMVDVKFGZVIFGZWFWDOABQZWPVDVQVQWPPPI
      IQUNZUKZVKVIUHSUOUPVDWPWOVQWEWBOWSWQWGVIVKIUIUQUOVDVHFGZVLFGZVTWCURZVBVNV
      OWTVCVRVSVEVFQUEVDWOVQXAWQWGVKIQSWTWPXAXBWRWTWPHXAVQXBPVHVIVLIUSUDUCSUTVA
      $.
  $}

  ${
    $d A f g h $.  $d B f g h $.
    $( Mapping from positive real ordering to signed real ordering.
       (Contributed by Jim Kingdon, 29-Jun-2021.) $)
    prsrlt $p |- ( ( A e. P. /\ B e. P. ) -> ( A <P B <->
        [ <. ( A +P. 1P ) , 1P >. ] ~R <R [ <. ( B +P. 1P ) , 1P >. ] ~R ) ) $=
      ( vf vg vh cnp wcel wa c1p cpp co cltp wbr cop wceq wb syl2anc cv addclpr
      cer cec cltr 1pr a1i simpr addassprg breq2d simpl ltaprg addcomprg breq1d
      syl3anc w3a adantl caovord2d 3bitr2d ltsrprg syl22anc 3bitr4d ) AFGZBFGZH
      ZAIJKZIJKZIBJKZIJKZLMZVDIBIJKZJKZLMZABLMZVCINTUAVHINTUAUBMZVBVFVIVDLVBIFG
      ZVAVMVFVIOVMVBUCUDZUTVAUEZVNIBIUFULUGVBVKIAJKZVELMZVCVELMVGVBUTVAVMVKVQPU
      TVAUHZVOVNABIUIULVBVCVPVELVBUTVMVCVPOVRVNAIUJQUKVBCDEVCVEILFJCRZFGZDRZFGZ
      ERZFGUMVSWALMWCVSJKWCWAJKLMPVBVSWAWCUIUNVBUTVMVCFGZVRVNAISQZVBVMVAVEFGVNV
      OIBSQVNVTWBHVSWAJKWAVSJKOVBVSWAUJUNUOUPVBWDVMVHFGZVMVLVJPWEVNVBVAVMWFVOVN
      BISQVNVCIVHIUQURUS $.
  $}

  ${
    $d A x y $.
    $( Mapping a restricted iota from a positive real to a signed real.
       (Contributed by Jim Kingdon, 29-Jun-2021.) $)
    prsrriota $p |- ( ( A e. R. /\ 0R <R A ) -> [ <. ( ( iota_ x e. P.
        [ <. ( x +P. 1P ) , 1P >. ] ~R = A ) +P. 1P ) , 1P >. ] ~R = A ) $=
      ( vy wcel wa cv c1p cpp co cop cer cec wceq cnp wreu srpospr oveq1 opeq1d
      syl eceq1d cnr c0r cltr crio reurex simprr wb simprl adantr eqeq1d riota2
      wbr wrex syl2anc mpbid eqtrd rexlimddv ) BUADUBBUCULEZCFZGHIZGJZKLZBMZAFZ
      GHIZGJZKLZBMZANUDZGHIZGJZKLZBMCNURVCCNOVCCNUMCBPVCCNUESURUSNDZVCEZEZVLVBB
      VOVIUSMZVLVBMVOVCVPURVMVCUFZVOVMVHANOZVCVPUGURVMVCUHURVRVNABPUIVHVCANUSVD
      USMZVGVBBVSVFVAKVSVEUTGVDUSGHQRTUJUKUNUOVPVKVAKVPVJUTGVIUSGHQRTSVQUPUQ $.
  $}

  ${
    $d A m $.  $d A y $.  $d F m $.  $d F y $.
    caucvgsrlemcl.f $e |- ( ph -> F : N. --> R. ) $.
    caucvgsrlemcl.gt1 $e |- ( ph -> A. m e. N. 1R <R ( F ` m ) ) $.
    $( Lemma for ~ caucvgsr .  Terms of the sequence from ~ caucvgsrlemgt1 can
       be mapped to positive reals.  (Contributed by Jim Kingdon,
       2-Jul-2021.) $)
    caucvgsrlemcl $p |- ( ( ph /\ A e. N. ) -> ( iota_ y e. P.
        ( F ` A ) = [ <. ( y +P. 1P ) , 1P >. ] ~R ) e. P. ) $=
      ( cnpi wcel cfv cv c1p wceq cnp wreu cnr c0r cltr wbr c1r cpp cop cer cec
      wa co crio ffvelrnda 0lt1sr fveq2 breq2d rspcv mpan9 ltsosr ltrelsr sotri
      wral sylancr srpospr syl2anc eqcom reubii sylib riotacl syl ) ACHIZUEZCEJ
      ZBKLUAUFLUBUCUDZMZBNOZVJBNUGNIVGVIVHMZBNOZVKVGVHPIQVHRSZVMAHPCEFUHVGQTRST
      VHRSZVNUIATDKZEJZRSZDHUQVFVOGVRVODCHVPCMVQVHTRVPCEUJUKULUMQTVHRPUNUOUPURB
      VHUSUTVLVJBNVIVHVAVBVCVJBNVDVE $.
  $}

  ${
    $d A m $.
    caucvgsrlemasr.bnd $e |- ( ph -> A. m e. N. A <R ( F ` m ) ) $.
    $( Lemma for ~ caucvgsr .  The lower bound is a signed real.  (Contributed
       by Jim Kingdon, 4-Jul-2021.) $)
    caucvgsrlemasr $p |- ( ph -> A e. R. ) $=
      ( vx cnr wcel cnpi wral cfv cltr wbr ltrelsr brel simpld ralimi syl c1o
      cv wex wb 1pi elex2 r19.3rmv mp2b sylibr ) ABGHZCIJZUHABCTDKZLMZCIJUIEUKU
      HCIUKUHUJGHBUJGGLNOPQRSIHFTIHFUAUHUIUBUCFSIUDUHCFIUEUFUG $.
  $}

  ${
    caucvgsr.f $e |- ( ph -> F : N. --> R. ) $.
    caucvgsr.cau $e |- ( ph ->
      A. n e. N. A. k e. N. ( n <N k ->
        ( ( F ` n ) <R ( ( F ` k ) +R
          [ <. ( <. { l | l <Q ( *Q ` [ <. n , 1o >. ] ~Q ) } ,
            { u | ( *Q ` [ <. n , 1o >. ] ~Q ) <Q u } >. +P. 1P ) , 1P >. ] ~R
        ) /\
        ( F ` k ) <R ( ( F ` n ) +R
          [ <. ( <. { l | l <Q ( *Q ` [ <. n , 1o >. ] ~Q ) } ,
            { u | ( *Q ` [ <. n , 1o >. ] ~Q ) <Q u } >. +P. 1P ) , 1P >. ] ~R
        ) ) ) ) $.

    ${
      caucvgsrlemgt1.gt1 $e |- ( ph -> A. m e. N. 1R <R ( F ` m ) ) $.

      ${
        caucvgsrlemf.xfr $e |- G =
          ( x e. N. |-> ( iota_ y e. P.
            ( F ` x ) = [ <. ( y +P. 1P ) , 1P >. ] ~R ) ) $.
        ${
          $d A m $.  $d A x y $.  $d F m $.  $d F x y $.  $d ph x $.
          $( Lemma for ~ caucvgsr .  Coercing sequence value from a positive
             real to a signed real.  (Contributed by Jim Kingdon,
             29-Jun-2021.) $)
          caucvgsrlemfv $p |- ( ( ph /\ A e. N. ) ->
              [ <. ( ( G ` A ) +P. 1P ) , 1P >. ] ~R = ( F ` A ) ) $=
            ( cnpi c1p cpp wceq cnp wcel wa cfv co cop cer cec cv crio cmpt a1i
            fveq2 eqeq1d adantl simpr caucvgsrlemcl fvmptd oveq1d opeq1d eceq1d
            riotabidv eqcom riotabiia oveq1i opeq1i eceq1 mp1i cnr c0r cltr wbr
            ffvelrnda c1r 0lt1sr wral breq2d rspcv mpan9 ltsosr ltrelsr sylancr
            wb sotri prsrriota syl2anc 3eqtrd ) AEPUAZUBZEJUCZQRUDZQUEZUFUGEIUC
            ZCUHZQRUDQUEUFUGZSZCTUIZQRUDZQUEZUFUGZWNWLSZCTUIZQRUDZQUEZUFUGZWLWH
            WKWRUFWHWJWQQWHWIWPQRWHBEBUHZIUCZWNSZCTUIZWPPJTJBPXHUJSWHOUKXEESZXH
            WPSWHXIXGWOCTXIXFWLWNXEEIULUMVAUNAWGUOACEGILNUPUQURUSUTWRXCSWSXDSWH
            WQXBQWPXAQRWOWTCTWOWTWBWMTUAWLWNVBUKVCVDVEWRXCUFVFVGWHWLVHUAVIWLVJV
            KZXDWLSAPVHEILVLWHVIVMVJVKVMWLVJVKZXJVNAVMGUHZIUCZVJVKZGPVOWGXKNXNX
            KGEPXLESXMWLVMVJXLEIULVPVQVRVIVMWLVJVHVSVTWCWACWLWDWEWF $.
        $}

        ${
          $d F m $.  $d F y $.  $d m x $.  $d ph x $.  $d x y $.
          $( Lemma for ~ caucvgsr .  Defining the sequence in terms of positive
             reals.  (Contributed by Jim Kingdon, 23-Jun-2021.) $)
          caucvgsrlemf $p |- ( ph -> G : N. --> P. ) $=
            ( cnpi cv cfv c1p cpp cnp cop cer cec wceq crio caucvgsrlemcl fmptd
            co ) ABOBPZHQCPRSUHRUAUBUCUDCTUETIACUIFHKMUFNUG $.
        $}

        ${
          $d F m x $.  $d F x y $.  $d k m n x $.  $d k n ph x $.
          $d k n x y $.  $d l n u $.
          $( Lemma for ~ caucvgsr .  Defining the Cauchy condition in terms of
             positive reals.  (Contributed by Jim Kingdon, 23-Jun-2021.) $)
          caucvgsrlemcau $p |- ( ph ->
            A. n e. N. A. k e. N. ( n <N k -> ( ( G ` n ) <P ( ( G ` k ) +P.
              <. { l | l <Q ( *Q ` [ <. n , 1o >. ] ~Q ) } ,
              { u | ( *Q ` [ <. n , 1o >. ] ~Q ) <Q u } >. ) /\
              ( G ` k ) <P ( ( G ` n ) +P.
              <. { l | l <Q ( *Q ` [ <. n , 1o >. ] ~Q ) } ,
              { u | ( *Q ` [ <. n , 1o >. ] ~Q ) <Q u } >. ) ) ) ) $=
            ( wbr cop co cnpi c1p cnp cv clti cfv c1o ceq cec crq cltq cab cltp
            cpp wa wi wral cer cplr cltr wcel wb caucvgsrlemf ad2antrr ffvelrnd
            wf simplr adantr ffvelrnda recnnpr syl addclpr prsrlt caucvgsrlemfv
            syl2anc prsradd adantlr oveq1d eqtrd breq12d bitrd anbi12d ralbidva
            wceq imbi2d mpbird ) AGUAZEUAZUBOZWDIUCZWEIUCZJUAWDUDPUEUFUGUCZUHOJ
            UIWIDUAUHODUIPZUKQZUJOZWHWGWJUKQZUJOZULZUMZERUNZGRUNWFWDHUCZWEHUCZW
            JSUKQSPUOUFZUPQZUQOZWSWRWTUPQZUQOZULZUMZERUNZGRUNLAWQXGGRAWDRURZULZ
            WPXFERXIWERURZULZWOXEWFXKWLXBWNXDXKWLWGSUKQSPUOUFZWKSUKQSPUOUFZUQOZ
            XBXKWGTURZWKTURZWLXNUSXKRTWDIARTIVCZXHXJABCDEFGHIJKLMNUTZVAAXHXJVDZ
            VBZXKWHTURZWJTURZXPXIRTWEIAXQXHXRVEVFZXKXHYBXSDWDJVGVHZWHWJVIVLWGWK
            VJVLXKXLWRXMXAUQXIXLWRWAXJABCDWDEFGHIJKLMNVKVEZXKXMWHSUKQSPUOUFZWTU
            PQZXAXKYAYBXMYGWAYCYDWHWJVMVLXKYFWSWTUPAXJYFWSWAXHABCDWEEFGHIJKLMNV
            KVNZVOVPVQVRXKWNYFWMSUKQSPUOUFZUQOZXDXKYAWMTURZWNYJUSYCXKXOYBYKXTYD
            WGWJVIVLWHWMVJVLXKYFWSYIXCUQYHXKYIXLWTUPQZXCXKXOYBYIYLWAXTYDWGWJVMV
            LXKXLWRWTUPYEVOVPVQVRVSWBVTVTWC $.
        $}

        ${
          $d F m x y w $.  $d ph x w $.  $d G m w $.
          $( Lemma for ~ caucvgsr .  Defining the boundedness condition in
             terms of positive reals.  (Contributed by Jim Kingdon,
             25-Jun-2021.) $)
          caucvgsrlembound $p |- ( ph -> A. m e. N. 1P <P ( G ` m ) ) $=
            ( vw c1p wbr cnpi cltr c1r cv cfv cltp wral wcel wa cpp cop cer cec
            co weq fveq2 breq2d cbvralv sylib r19.21bi wceq df-1r caucvgsrlemfv
            eqcomi a1i 3brtr4d cnp wb 1pr caucvgsrlemf ffvelrnda prsrlt sylancr
            mpbird ralrimiva ) APOUAZIUBZUCQZORUDPFUAZIUBZUCQZFRUDAVOORAVMRUEUF
            ZVOPPUGUKPUHUIUJZVNPUGUKPUHUIUJZSQZVSTVMHUBZVTWASATWCSQZORATVPHUBZS
            QZFRUDWDORUDMWFWDFORFOULWEWCTSVPVMHUMUNUOUPUQVTTURVSTVTUSVAVBABCDVM
            EFGHIJKLMNUTVCVSPVDUEVNVDUEVOWBVEVFARVDVMIABCDEFGHIJKLMNVGVHPVNVIVJ
            VKVLVOVROFROFULVNVQPUCVMVPIUMUNUOUP $.
        $}
      $}

      ${
        $d F a b j k l u $.  $d F a i j k x $.  $d F m $.  $d F w z $.
        $d F k l n u $.  $d F a i j x y $.  $d a b j k ph x $.  $d ph z $.
        $d ph n $.  $d a b j k l u w $.  $d a b j k l u z $.  $d b c j k x $.
        $d m w $.  $d m z $.  $d n u w $.  $d n u z $.  $d w x $.  $d x z $.
        $d k m $.  $d m n $.
        $( Lemma for ~ caucvgsr .  A Cauchy sequence whose terms are greater
           than one converges.  (Contributed by Jim Kingdon, 22-Jun-2021.) $)
        caucvgsrlemgt1 $p |- ( ph ->
            E. y e. R. A. x e. R. ( 0R <R x -> E. j e. N. A. i e. N. (
              j <N i ->
              ( ( F ` i ) <R ( y +R x ) /\
                y <R ( ( F ` i ) +R x ) ) ) ) ) $=
          ( wbr cnpi c1p co cnp cltr vz vw va vb vc cv clti cfv cpp cop cer cec
          wceq crio cmpt cltp wa wral wrex c0r cplr caucvgsrlemf caucvgsrlemcau
          wi eqid caucvgsrlembound caucvgprpr wcel prsrcl ad2antrl wreu srpospr
          cnr riotacl syl adantll simplrr adantr oveq2 breq2d imbi2d rexralbidv
          anbi12d rspcva syl2anc nfv nfcv nfre1 nfralya nfan nfrexya wb ad4antr
          nfra1 wf simpr ffvelrnd simplrl addclpr caucvgsrlemfv adantlr prsradd
          prsrlt oveq2d eqtrd breq12d bitrd oveq12d 3bitrd ralbida rexbid mpbid
          prsrriota breq2 fveq2 breq1d oveq1d imbi12d rexbii sylib ex ralrimiva
          cbvralv oveq1 breq1 ralbidv rspcev rexlimddv ) AFUFZGUFZUGOZYJUAPUAUF
          JUHUBUFQUIRQUJUKULUMUBSUNUOZUHZUCUFZUDUFZUIRZUPOZYNYMYOUIRZUPOZUQZVDZ
          GPURZFPUSZUDSURZUTBUFZTOZYIEUFZUGOZUUGJUHZCUFZUUEVARZTOZUUJUUIUUEVARZ
          TOZUQZVDZEPURFPUSZVDZBVMURZCVMUSZUCSAUDUCDQFGHIYLKAUAUBDGHIJYLKLMNYLV
          EZVBZAUAUBDGHIJYLKLMNUVAVCAUAUBDGHIJYLKLMNUVAVFVGAYNSVHZUUDUQZUQZYNQU
          IRQUJUKULZVMVHZUUFUUHUUIUVFUUEVARZTOZUVFUUMTOZUQZVDZEPURZFPUSZVDZBVMU
          RZUUTUVCUVGAUUDYNVIVJUVEUVOBVMUVEUUEVMVHZUQZUUFUVNUVRUUFUQZYKYJJUHZUV
          HTOZUVFUVTUUEVARZTOZUQZVDZGPURZFPUSZUVNUVSYKYMYNUEUFQUIRQUJUKULUUEUMZ
          UESUNZUIRZUPOZYNYMUWIUIRZUPOZUQZVDZGPURZFPUSZUWGUVSUWISVHZUUDUWQUVQUU
          FUWRUVEUVQUUFUQZUWHUESVKUWRUEUUEVLUWHUESVNVOVPZUVRUUDUUFAUVCUUDUVQVQV
          RUUCUWQUDUWISYOUWIUMZUUAUWOFGPPUXAYTUWNYKUXAYQUWKYSUWMUXAYPUWJYMUPYOU
          WIYNUIVSVTUXAYRUWLYNUPYOUWIYMUIVSVTWCWAWBWDWEUVSUWPUWFFPUVRUUFFUVEUVQ
          FAUVDFAFWFUVCUUDFUVCFWFUUCFUDSFSWGUUBFPWHWIWJWJUVQFWFWJUUFFWFWJUVSUWO
          UWEGPUVRUUFGUVEUVQGAUVDGAGWFUVCUUDGUVCGWFUUCGUDSGSWGUUBGFPGPWGUUAGPWN
          WKWIWJWJUVQGWFWJUUFGWFWJUVSYJPVHZUQZUWNUWDYKUXCUWKUWAUWMUWCUXCUWKYMQU
          IRQUJUKULZUWJQUIRQUJUKULZTOZUWAUXCYMSVHZUWJSVHZUWKUXFWLUXCPSYJYLAPSYL
          WOUVDUVQUUFUXBUVBWMUVSUXBWPWQZUVSUXHUXBUVSUVCUWRUXHUVRUVCUUFAUVCUUDUV
          QWRVRZUWTYNUWIWSWEVRYMUWJXCWEUXCUXDUVTUXEUVHTUVRUXBUXDUVTUMZUUFUVEUXB
          UXKUVQAUXBUXKUVDAUAUBDYJGHIJYLKLMNUVAWTXAXAXAZUVSUXEUVHUMUXBUVSUXEUVF
          UWIQUIRQUJUKULZVARZUVHUVSUVCUWRUXEUXNUMUXJUWTYNUWIXBWEUVQUUFUXNUVHUMU
          VEUWSUXMUUEUVFVAUEUUEXMZXDVPXEVRXFXGUXCUWMUVFUWLQUIRQUJUKULZTOZUVFUXD
          UXMVARZTOUWCUXCUVCUWLSVHZUWMUXQWLUVSUVCUXBUXJVRUXCUXGUWRUXSUXIUVSUWRU
          XBUWTVRZYMUWIWSWEYNUWLXCWEUXCUXPUXRUVFTUXCUXGUWRUXPUXRUMUXIUXTYMUWIXB
          WEVTUXCUXRUWBUVFTUXCUXDUVTUXMUUEVAUXLUVSUXMUUEUMZUXBUVQUUFUYAUVEUXOVP
          VRXHVTXIWCWAXJXKXLUWFUVMFPUWEUVLGEPYJUUGUMZYKUUHUWDUVKYJUUGYIUGXNUYBU
          WAUVIUWCUVJUYBUVTUUIUVHTYJUUGJXOZXPUYBUWBUUMUVFTUYBUVTUUIUUEVAUYCXQVT
          WCXRYCXSXTYAYBUUSUVPCUVFVMUUJUVFUMZUURUVOBVMUYDUUQUVNUUFUYDUUPUVLFEPP
          UYDUUOUVKUUHUYDUULUVIUUNUVJUYDUUKUVHUUITUUJUVFUUEVAYDVTUUJUVFUUMTYEWC
          WAWBWAYFYGWEYH $.
      $}
    $}

    ${
      caucvgsrlembnd.bnd $e |- ( ph -> A. m e. N. A <R ( F ` m ) ) $.
      ${
        caucvgsrlembnd.offset $e |- G = ( a e. N. |->
          ( ( ( F ` a ) +R 1R ) +R ( A .R -1R ) ) ) $.

        ${
          $d A a $.  $d A m $.  $d F a $.  $d J a $.  $d a ph $.
          $( Lemma for ~ caucvgsr .  Offsetting the values of the sequence so
             they are greater than one.  (Contributed by Jim Kingdon,
             3-Jul-2021.) $)
          caucvgsrlemoffval $p |- ( ( ph /\ J e. N. ) ->
              ( ( G ` J ) +R A ) = ( ( F ` J ) +R 1R ) ) $=
            ( wcel cplr co cnr wceq cnpi wa cfv c1r cm1r cmr cv cmpt a1i oveq1d
            fveq2 adantl simpr ffvelrnda 1sr addclsr sylancl caucvgsrlemasr m1r
            adantr mulclsr syl2anc fvmptd addasssrg syl3anc c0r addcomsrg pn0sr
            syl eqtrd oveq2d 0idsr 3eqtrd ) AIUAPZUBZIHUCZCQRIGUCZUDQRZCUEUFRZQ
            RZCQRZVRVSCQRZQRZVRVOVPVTCQVOJIJUGZGUCZUDQRZVSQRZVTUAHSHJUAWGUHTVOO
            UIWDITZWGVTTVOWHWFVRVSQWHWEVQUDQWDIGUKUJUJULAVNUMVOVRSPZVSSPZVTSPVO
            VQSPUDSPWIAUASIGLUNUOVQUDUPUQZVOCSPZUESPWJAWLVNACEGNURUTZUSCUEVAUQZ
            VRVSUPVBVCUJVOWIWJWLWAWCTWKWNWMVRVSCVDVEVOWCVRVFQRZVRVOWBVFVRQVOWBC
            VSQRZVFVOWJWLWBWPTWNWMVSCVGVBVOWLWPVFTWMCVHVIVJVKVOWIWOVRTWKVRVLVIV
            JVM $.
        $}

        ${
          $d A m $.  $d a ph $.
          $( Lemma for ~ caucvgsr .  Offsetting the values of the sequence so
             they are greater than one.  (Contributed by Jim Kingdon,
             3-Jul-2021.) $)
          caucvgsrlemofff $p |- ( ph -> G : N. --> R. ) $=
            ( cnpi c1r co cm1r cnr wcel cv cfv cmr wa ffvelrnda addclsr sylancl
            cplr 1sr caucvgsrlemasr adantr m1r mulclsr syl2anc fmptd ) AIOIUAZG
            UBZPUHQZCRUCQZUHQZSHAUPOTZUDZURSTZUSSTZUTSTVBUQSTPSTVCAOSUPGKUEUIUQ
            PUFUGVBCSTZRSTVDAVEVAACEGMUJUKULCRUMUGURUSUFUNNUO $.
        $}

        ${
          $d A a $.  $d A f g h $.  $d A m $.  $d F a $.  $d F f g h $.
          $d G f g h $.  $d a k n $.  $d a k n ph $.  $d f g h k n ph $.
          $d f g h l n u $.
          $( Lemma for ~ caucvgsr .  Offsetting the values of the sequence so
             they are greater than one.  (Contributed by Jim Kingdon,
             3-Jul-2021.) $)
          caucvgsrlemoffcau $p |- ( ph ->
            A. n e. N. A. k e. N. ( n <N k ->
              ( ( G ` n ) <R ( ( G ` k ) +R
                [ <. ( <. { l | l <Q ( *Q ` [ <. n , 1o >. ] ~Q ) } ,
                  { u | ( *Q ` [ <. n , 1o >. ] ~Q ) <Q u } >.
                  +P. 1P ) , 1P >. ] ~R
              ) /\
              ( G ` k ) <R ( ( G ` n ) +R
                [ <. ( <. { l | l <Q ( *Q ` [ <. n , 1o >. ] ~Q ) } ,
                  { u | ( *Q ` [ <. n , 1o >. ] ~Q ) <Q u } >.
                  +P. 1P ) , 1P >. ] ~R
              ) ) ) ) $=
            ( co cplr cltr cnpi wcel cnr vf vg clti wbr cfv c1o cop ceq cec crq
            vh cv cltq cab c1p cpp cer wa wi wral wceq caucvgsrlemoffval adantr
            c1r eqcomd wf ad2antrr simpr ffvelrnd cnp simplr recnnpr prsrcl 1sr
            3syl a1i addcomsrg adantl addasssrg caov32d adantlr caucvgsrlemofff
            w3a oveq1d caucvgsrlemasr 3eqtr2d breq12d wb ltasrg addclsr syl2anc
            caovord2d 3bitr4d anbi12d biimpd imim2d ralimdva mpd ) AFULZDULZUCU
            DZWSGUEZWTGUEZJULWSUFUGUHUIUJUEZUMUDJUNXDBULUMUDBUNUGZUOUPOUOUGUQUI
            ZPOZQUDZXCXBXFPOZQUDZURZUSZDRUTZFRUTXAWSHUEZWTHUEZXFPOZQUDZXOXNXFPO
            ZQUDZURZUSZDRUTZFRUTLAXMYBFRAWSRSZURZXLYADRYDWTRSZURZXKXTXAYFXKXTYF
            XHXQXJXSYFXBVDPOZXGVDPOZQUDXNCPOZXPCPOZQUDXHXQYFYGYIYHYJQYFYIYGYDYI
            YGVAYEABCDEFGHWSIJKLMNVBVCZVEYFYHXCVDPOZXFPOXOCPOZXFPOYJYFUAUBUKXCX
            FVDTPYFRTWTGARTGVFYCYEKVGZYDYEVHZVIZYFYCXEVJSXFTSZAYCYEVKZBWSJVLXEV
            MVOZVDTSYFVNVPZUAULZTSZUBULZTSZURUUAUUCPOZUUCUUAPOVAYFUUAUUCVQVRZUU
            BUUDUKULZTSWCZUUEUUGPOUUAUUCUUGPOPOVAYFUUAUUCUUGVSVRZVTYFYMYLXFPAYE
            YMYLVAYCABCDEFGHWTIJKLMNVBWAZWDYFUAUBUKXOCXFTPYFRTWTHARTHVFYCYEABCD
            EFGHIJKLMNWBVGZYOVIZACTSYCYEACEGMWEVGZYSUUFUUIVTWFWGYFUAUBUKXBXGVDQ
            TPUUHUUAUUCQUDUUGUUAPOUUGUUCPOQUDWHYFUUAUUCUUGWIVRZYFRTWSGYNYRVIZYF
            XCTSYQXGTSYPYSXCXFWJWKYTUUFWLYFUAUBUKXNXPCQTPUUNYFRTWSHUUKYRVIZYFXO
            TSYQXPTSUULYSXOXFWJWKUUMUUFWLWMYFYLXIVDPOZQUDYMXRCPOZQUDXJXSYFYLYMU
            UQUURQYFYMYLUUJVEYFUUQYGXFPOYIXFPOUURYFUAUBUKXBXFVDTPUUOYSYTUUFUUIV
            TYFYIYGXFPYKWDYFUAUBUKXNCXFTPUUPUUMYSUUFUUIVTWFWGYFUAUBUKXCXIVDQTPU
            UNYPYFXBTSYQXITSUUOYSXBXFWJWKYTUUFWLYFUAUBUKXOXRCQTPUUNUULYFXNTSYQX
            RTSUUPYSXNXFWJWKUUMUUFWLWMWNWOWPWQWQWR $.
        $}

        ${
          $d A a m $.  $d A f g h m $.  $d F a $.  $d F f g h $.  $d a m ph $.
          $d f g h m ph $.
          $( Lemma for ~ caucvgsr .  Offsetting the values of the sequence so
             they are greater than one.  (Contributed by Jim Kingdon,
             3-Jul-2021.) $)
          caucvgsrlemoffgt1 $p |- ( ph -> A. m e. N. 1R <R ( G ` m ) ) $=
            ( c1r cltr wcel cplr co cnr vf vg vh cv cfv wbr cnpi wa r19.21bi wb
            w3a ltasrg adantl caucvgsrlemasr adantr ffvelrnda 1sr a1i addcomsrg
            caovord2d caucvgsrlemoffval caucvgsrlemofff syl2anc breqtrd syl3anc
            wceq mpbid breqtrrd mpbird ralrimiva ) AOEUDZHUEZPUFZEUGAVKUGQZUHZV
            MCORSZCVLRSZPUFZVOVPVLCRSZVQPVOVPVKGUEZORSZVSPVOCVTPUFZVPWAPUFAWBEU
            GMUIVOUAUBUCCVTOPTRUAUDZTQZUBUDZTQZUCUDZTQUKWCWEPUFWGWCRSWGWERSPUFU
            JVOWCWEWGULUMACTQZVNACEGMUNUOZAUGTVKGKUPOTQZVOUQURZWDWFUHWCWERSWEWC
            RSVFVOWCWEUSUMUTVGABCDEFGHVKIJKLMNVAVHVOVLTQZWHVSVQVFAUGTVKHABCDEFG
            HIJKLMNVBUPZWIVLCUSVCVDVOWJWLWHVMVRUJWKWMWIOVLCULVEVIVJ $.
        $}

        ${
          $d A a i k $.  $d A f g h i x $.  $d A i j k x $.  $d A k m $.
          $d A j k x y $.  $d F a i k $.  $d F f g h i z $.  $d F k y z $.
          $d G f g h i x z $.  $d G i j k x z $.  $d G j k l u $.  $d G k m $.
          $d G k l n u $.  $d a k n ph $.  $d f g h i ph x z $.
          $d j k ph x z $.  $d ph m $.  $d m n $.  $d a m $.
          $( Lemma for ~ caucvgsr .  Offsetting the values of the sequence so
             they are greater than one.  (Contributed by Jim Kingdon,
             3-Jul-2021.) $)
          caucvgsrlemoffres $p |- ( ph ->
            E. y e. R. A. x e. R. ( 0R <R x -> E. j e. N. A. k e. N. (
            j <N k -> ( ( F ` k ) <R ( y +R x ) /\
              y <R ( ( F ` k ) +R x ) ) ) ) ) $=
            ( cplr co cnr vi vz vf vg vh c0r cv cltr wbr clti wa cnpi wral wrex
            cfv wi caucvgsrlemoffcau caucvgsrlemoffgt1 caucvgsrlemgt1 wcel cm1r
            caucvgsrlemofff simprl caucvgsrlemasr adantr addclsr syl2anc m1r wb
            sylancl c1r w3a ltasrg adantl ad3antrrr simpr ffvelrnd simpllr wceq
            simplr addcomsrg caovord2d caucvgsrlemoffval breq1d bitrd addasssrg
            wf adantlr caov32d breq2d ad2antrr ffvelrnda 1sr a1i syl3anc m1p1sr
            mp2an eqtri oveq2i 0idsr syl5eq breq12d 3bitrd biimpd oveq1d syl6eq
            syl eqtrd anim12d imim2d breq2 fveq2 anbi12d imbi12d cbvralv syl6ib
            reximdv impr oveq1 breq1 imbi2d rexralbidv ralbidv rspcev rexlimddv
            ralimdva ) AUFBUGZUHUIZFUGZUAUGZUJUIZYJKUOZUBUGZYGRSZUHUIZYMYLYGRSZ
            UHUIZUKZUPZUAULUMZFULUNZUPZBTUMZYHYIGUGZUJUIZUUDJUOZCUGZYGRSZUHUIZU
            UGUUFYGRSZUHUIZUKZUPZGULUMFULUNZUPZBTUMZCTUNZUBTABUBDUAFGHIKMADEGHI
            JKLMNOPQVBZADEGHIJKLMNOPQUQADEGHIJKLMNOPQURUSAYMTUTZUUCUKZUKZYMERSZ
            VARSZTUTZYHUUEUUFUVCYGRSZUHUIZUVCUUJUHUIZUKZUPZGULUMZFULUNZUPZBTUMZ
            UUQUVAUVBTUTZVATUTZUVDUVAUUSETUTZUVNAUUSUUCVCAUVPUUTAEHJPVDZVEYMEVF
            ZVGVHUVBVAVFVJAUUSUUCUVMAUUSUKZUUBUVLBTUVSYGTUTZUKZUUAUVKYHUWAYTUVJ
            FULUWAYTYKYJJUOZUVEUHUIZUVCUWBYGRSZUHUIZUKZUPZUAULUMUVJUWAYSUWGUAUL
            UWAYJULUTZUKZYRUWFYKUWIYOUWCYQUWEUWIYOUWCUWIYOUWBVKRSZYNERSZUHUIZUW
            JUVBYGRSZUHUIZUWCUWIYOYLERSZUWKUHUIUWLUWIUCUDUEYLYNEUHTRUCUGZTUTZUD
            UGZTUTZUEUGZTUTVLZUWPUWRUHUIUWTUWPRSUWTUWRRSUHUIVIUWIUWPUWRUWTVMVNZ
            UWIULTYJKAULTKWGUUSUVTUWHUURVOUWAUWHVPVQZUWIUUSUVTYNTUTAUUSUVTUWHVR
            ZUVSUVTUWHVTZYMYGVFVGAUVPUUSUVTUWHUVQVOZUWQUWSUKUWPUWRRSZUWRUWPRSVS
            UWIUWPUWRWAVNZWBUWIUWOUWJUWKUHUVSUWHUWOUWJVSZUVTAUWHUXIUUSADEGHIJKY
            JLMNOPQWCWHWHZWDWEUWIUWKUWMUWJUHUWIUCUDUEYMYGETRUXDUXEUXFUXHUXAUXGU
            WTRSUWPUWRUWTRSRSVSUWIUWPUWRUWTWFVNZWIWJUWIUWNUWJVARSZUWMVARSZUHUIU
            WCUWIUCUDUEUWJUWMVAUHTRUXBUWIUWBTUTZVKTUTZUWJTUTZUWAULTYJJAULTJWGUU
            SUVTNWKWLZWMUWBVKVFVJZUWIUVNUVTUWMTUTUWIUUSUVPUVNUXDUXFUVRVGZUXEUVB
            YGVFVGUVOUWIVHWNZUXHWBUWIUXLUWBUXMUVEUHUWIUXLUWBVKVARSZRSZUWBUWIUXN
            UXOUVOUXLUYBVSUXQUXOUWIWMWNZUXTUWBVKVAWFWOUWIUYBUWBUFRSZUWBUYAUFUWB
            RUYAVAVKRSZUFUXOUVOUYAUYEVSWMVHVKVAWAWQWPWRZWSUWIUXNUYDUWBVSUXQUWBW
            TXGXAXHUWIUCUDUEUVBYGVATRUXSUXEUXTUXHUXKWIXBWEXCXDUWIYQUWEUWIYQUVBU
            WJYGRSZUHUIZUVCUYGVARSZUHUIUWEUWIYQUVBYPERSZUHUIUYHUWIUCUDUEYMYPEUH
            TRUXBUXDUWIYLTUTUVTYPTUTUXCUXEYLYGVFVGUXFUXHWBUWIUYJUYGUVBUHUWIUYJU
            WOYGRSUYGUWIUCUDUEYLYGETRUXCUXEUXFUXHUXKWIUWIUWOUWJYGRUXJXEXHWJWEUW
            IUCUDUEUVBUYGVAUHTRUXBUXSUWIUXPUVTUYGTUTUXRUXEUWJYGVFVGUXTUXHWBUWIU
            YIUWDUVCUHUWIUYIUWDUFRSZUWDUWIUYIUWDUYARSZUYKUWIUYIUWDVKRSZVARSZUYL
            UWIUYGUYMVARUWIUCUDUEUWBVKYGTRUXQUYCUXEUXHUXKWIXEUWIUWDTUTZUXOUVOUY
            NUYLVSUWIUXNUVTUYOUXQUXEUWBYGVFVGZUYCUXTUWDVKVAWFWOXHUYAUFUWDRUYFWS
            XFUWIUYOUYKUWDVSUYPUWDWTXGXHWJXCXDXIXJYFUWGUVIUAGULYJUUDVSZYKUUEUWF
            UVHYJUUDYIUJXKUYQUWCUVFUWEUVGUYQUWBUUFUVEUHYJUUDJXLZWDUYQUWDUUJUVCU
            HUYQUWBUUFYGRUYRXEWJXMXNXOXPXQXJYFXRUUPUVMCUVCTUUGUVCVSZUUOUVLBTUYS
            UUNUVKYHUYSUUMUVIFGULULUYSUULUVHUUEUYSUUIUVFUUKUVGUYSUUHUVEUUFUHUUG
            UVCYGRXSWJUUGUVCUUJUHXTXMYAYBYAYCYDVGYE $.
        $}
      $}

      ${
        $d A a b k n $.  $d A a j k l u $.  $d A a k m $.  $d A a j k x $.
        $d A j k x y $.  $d F a b k n $.  $d F a j k l u $.  $d F a k m $.
        $d F a j k x $.  $d F j k x y $.  $d b k n ph $.  $d j k ph x $.
        $d ph m $.  $d l n u $.  $d m n $.  $d b m $.
        $( Lemma for ~ caucvgsr .  A Cauchy sequence with a lower bound
           converges.  (Contributed by Jim Kingdon, 19-Jun-2021.) $)
        caucvgsrlembnd $p |- ( ph ->
            E. y e. R. A. x e. R. ( 0R <R x -> E. j e. N. A. k e. N. (
              j <N k -> ( ( F ` k ) <R ( y +R x ) /\
                y <R ( ( F ` k ) +R x ) ) ) ) ) $=
          ( va vb cnpi c1r cplr co cv cfv cm1r cmr cmpt fveq2 caucvgsrlemoffres
          weq oveq1d cbvmptv ) ABCDEFGHIJOQOUAZJUBZRSTZEUCUDTZSTZUEPKLMNOPQUOPU
          AZJUBZRSTZUNSTOPUHZUMURUNSUSULUQRSUKUPJUFUIUIUJUG $.
      $}
    $}

    ${
      $d F f g h m $.  $d F j k l u $.  $d F k l n u $.  $d F j k x y $.
      $d f g h m ph $.  $d j k ph x $.  $d k m ph $.  $d n ph $.  $d m n $.
      $( A Cauchy sequence of signed reals with a modulus of convergence
         converges to a signed real.  This is basically Corollary 11.2.13 of
         [HoTT], p.  (varies).  The HoTT book theorem has a modulus of
         convergence (that is, a rate of convergence) specified by (11.2.9) in
         HoTT whereas this theorem fixes the rate of convergence to say that
         all terms after the nth term must be within ` 1 / n ` of the nth term
         (it should later be able to prove versions of this theorem with a
         different fixed rate or a modulus of convergence supplied as a
         hypothesis).

         This is similar to ~ caucvgprpr but is for signed reals rather than
         positive reals.

         Here is an outline of how we prove it:

         1.  Choose a lower bound for the sequence (see ~ caucvgsrlembnd ).

         2.  Offset each element of the sequence so that each element of the
         resulting sequence is greater than one (greater than zero would not
         suffice, because the limit as well as the elements of the sequence
         need to be positive) (see ~ caucvgsrlemofff ).

         3.  Since a signed real (element of ` R. ` ) which is greater than
         zero can be mapped to a positive real (element of ` P. ` ), perform
         that mapping on each element of the sequence and invoke ~ caucvgprpr
         to get a limit (see ~ caucvgsrlemgt1 ).

         4.  Map the resulting limit from positive reals back to signed reals
         (see ~ caucvgsrlemgt1 ).

         5.  Offset that limit so that we get the limit of the original
         sequence rather than the limit of the offsetted sequence (see
         ~ caucvgsrlemoffres ).  (Contributed by Jim Kingdon, 20-Jun-2021.) $)
      caucvgsr $p |- ( ph ->
          E. y e. R. A. x e. R. ( 0R <R x -> E. j e. N. A. k e. N. ( j <N k ->
          ( ( F ` k ) <R ( y +R x ) /\
            y <R ( ( F ` k ) +R x ) ) ) ) ) $=
        ( c1o cplr co cltr wbr cnpi c1r c1p cnr vm vf vg vh cfv cm1r cv wcel wa
        clti wceq cop ceq cec crq cltq cab cpp wi wral breq1 fveq2 opeq1 eceq1d
        cer fveq2d breq2d abbidv breq1d opeq12d breq12d oveq12d anbi12d imbi12d
        1pi oveq1d opeq1d oveq2d ralbidv rspcv mpsyl simpl imim2i syl breq2 c1q
        ralimi mpan9 df-1nqqs fveq2i rec1nq eqtr3i breq2i breq1i opeq12i df-i1p
        abbii eqtr4i oveq1i opeq1i eceq1 ax-mp df-1r oveq2i syl6ib imp ffvelrnd
        wf adantr a1i ltadd1sr adantl breqtrd nlt1pig pm2.21d w3o pitri3or mpan
        wn mpjao3dan w3a ltasrg ffvelrnda 1sr addclsr addcomsrg caovord2d mpbid
        sylancl m1r addasssrg syl3anc c0r mp2an m1p1sr eqtri 0idsr syl5eq eqtrd
        wb ralrimiva caucvgsrlembnd ) ABCDLHUEZUFMNZEFUAGHIJKAUUDUAUGZHUEZOPUAQ
        AUUEQUHZUIZUUDUUFRMNZUFMNZUUFOUUHUUCUUIOPZUUDUUJOPUUHLUUEUJPZUUKLUUEUKZ
        UUELUJPZUUHUULUUKUUHUULUUCUUFIUGZLLULZUMUNZUOUEZUPPZIUQZUURDUGZUPPZDUQZ
        ULZSURNZSULZVEUNZMNZOPZUUKALFUGZUJPZUUCUVJHUEZUVGMNZOPZUSZFQUTZUUGUULUV
        IUSZAUVKUVNUVLUUCUVGMNZOPZUIZUSZFQUTZUVPLQUHZAGUGZUVJUJPZUWDHUEZUVLUUOU
        WDLULZUMUNZUOUEZUPPZIUQZUWIUVAUPPZDUQZULZSURNZSULZVEUNZMNZOPZUVLUWFUWQM
        NZOPZUIZUSZFQUTZGQUTUWBVOKUXDUWBGLQUWDLUKZUXCUWAFQUXEUWEUVKUXBUVTUWDLUV
        JUJVAUXEUWSUVNUXAUVSUXEUWFUUCUWRUVMOUWDLHVBZUXEUWQUVGUVLMUXEUWPUVFVEUXE
        UWOUVESUXEUWNUVDSURUXEUWKUUTUWMUVCUXEUWJUUSIUXEUWIUURUUOUPUXEUWHUUQUOUX
        EUWGUUPUMUWDLLVCVDVFZVGVHUXEUWLUVBDUXEUWIUURUVAUPUXGVIVHVJVPVQVDZVRVKUX
        EUWTUVRUVLOUXEUWFUUCUWQUVGMUXFUXHVLVGVMVNVSVTWAUWAUVOFQUVTUVNUVKUVNUVSW
        BWCWGWDUVOUVQFUUEQUVJUUEUKZUVKUULUVNUVIUVJUUELUJWEUXIUVMUVHUUCOUXIUVLUU
        FUVGMUVJUUEHVBVPVGVNVTWHUVHUUIUUCOUVGRUUFMUVGSSURNZSULZVEUNZRUVFUXKUKUV
        GUXLUKUVEUXJSUVDSSURUVDUUOWFUPPZIUQZWFUVAUPPZDUQZULSUUTUXNUVCUXPUUSUXMI
        UURWFUUOUPWFUOUEUURWFWFUUQUOWIWJWKWLZWMWQUVBUXODUURWFUVAUPUXQWNWQWODIWP
        WRWSWTUVFUXKVEXAXBXCWRXDWMXEXFUUHUUMUIUUCUUCRMNZUUIOUUHUUCUXROPZUUMUUHU
        UCTUHUXSUUHQTLHAQTHXHUUGJXIUWCUUHVOXJXGZUUCXKWDXIUUMUXRUUIUKUUHUUMUUCUU
        FRMLUUEHVBVPXLXMUUHUUNUUKUUHUUNUUKUUGUUNXSAUUEXNXLXOXFUUGUULUUMUUNXPZAU
        WCUUGUYAVOLUUEXQXRXLXTUUHUBUCUDUUCUUIUFOTMUBUGZTUHZUCUGZTUHZUDUGZTUHYAU
        YBUYDOPUYFUYBMNUYFUYDMNOPYTUUHUYBUYDUYFYBXLUXTUUHUUFTUHZRTUHZUUITUHAQTU
        UEHJYCZYDUUFRYEYIUFTUHZUUHYJXJZUYCUYEUIUYBUYDMNUYDUYBMNUKUUHUYBUYDYFXLY
        GYHUUHUUJUUFRUFMNZMNZUUFUUHUYGUYHUYJUUJUYMUKUYIUYHUUHYDXJUYKUUFRUFYKYLU
        UHUYMUUFYMMNZUUFUYLYMUUFMUYLUFRMNZYMUYHUYJUYLUYOUKYDYJRUFYFYNYOYPXDUUHU
        YGUYNUUFUKUYIUUFYQWDYRYSXMUUAUUB $.
    $}
  $}

  $( 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.  (Contributed by NM, 22-Feb-1996.) $)
  df-c $a |- CC = ( R. X. R. ) $.

  $( Define the complex number 0.  (Contributed by NM, 22-Feb-1996.) $)
  df-0 $a |- 0 = <. 0R , 0R >. $.

  $( Define the complex number 1.  (Contributed by NM, 22-Feb-1996.) $)
  df-1 $a |- 1 = <. 1R , 0R >. $.

  $( Define the complex number ` _i ` (the imaginary unit).  (Contributed by
     NM, 22-Feb-1996.) $)
  df-i $a |- _i = <. 0R , 1R >. $.

  $( Define the set of real numbers.  (Contributed by NM, 22-Feb-1996.) $)
  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.) $)
    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.) $)
    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.  (Contributed
       by NM, 22-Feb-1996.) $)
    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.) $)
  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.) $)
  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.) $)
    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 $.
  $}

  ${
    $d A x y $.
    $( The real number mapping in ~ elreal is unique.  (Contributed by Jim
       Kingdon, 11-Jul-2021.) $)
    elrealeu $p |- ( A e. RR <-> E! x e. R. <. x , 0R >. = A ) $=
      ( vy cr wcel cv c0r cop wceq wreu wrex wrmo elreal biimpi wa wi ralrimiva
      cnr wral sylibr eqtr3 wb 0r opthg mpan2 ad2antlr syl5ib simpl syl6 eqeq1d
      opeq1 rmo4 reu5 sylanbrc reurex impbii ) BDEZAFZGHZBIZARJZUQUTARKZUTARLZV
      AUQVBABMZNUQUTCFZGHZBIZOZURVEIZPZCRSZARSVCUQVKARUQURREZOZVJCRVMVEREZOZVHV
      IGGIZOZVIVHUSVFIZVOVQUSVFBUAVLVRVQUBZUQVNVLGREVSUCURGVEGRRUDUEUFUGVIVPUHU
      IQQUTVGACRVIUSVFBURVEGUKUJULTUTARUMUNVAVBUQUTARUOVDTUP $.
  $}

  $( Ordered pair membership in the class of complex numbers.  (Contributed by
     Mario Carneiro, 15-Jun-2013.) $)
  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.) $)
  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.) $)
    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.) $)
    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 cnr wcel wa wceq cc addclsr opelxpi
      cxp ad2ant2r ad2ant2l syl2anc simpll simprl oveq12d simplr simprr opeq12d
      caddc wex coprab df-add df-c eleq2i anbi12i anbi1i oprabbii eqtri ovi3 )
      EFGHIJABCDHLZJLZMNZILZKLZMNZOZACMNZBDMNZOZKUMPAPQZBPQZRCPQZDPQZRRVKPQZVLP
      QZVMPPUCZQVNVPVRVOVQACUAUDVOVQVSVNVPBDUAUEVKVLPPUBUFVDASZVGBSZRZVECSZVHDS
      ZRZRZVFVKVIVLWGVDAVECMWAWBWFUGWCWDWEUHUIWGVGBVHDMWAWBWFUJWCWDWEUKUIULUMEL
      ZTQZFLZTQZRZWHVDVGOSWJVEVHOSRGLVJSRKUNJUNIUNHUNZRZEFGUOWHVTQZWJVTQZRZWMRZ
      EFGUOEFGHIJKUPWNWREFGWLWQWMWIWOWKWPTVTWHUQURTVTWJUQURUSUTVAVBVC $.

    $( Multiplication of complex numbers in terms of signed reals.
       (Contributed by NM, 9-Aug-1995.) $)
    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 cv cmr co cm1r cplr cnr wcel wa mulclsr wceq oveq12d cop
      vu cmul cxp ad2ant2r ad2ant2l sylancr addclsr syl2anc ad2ant2lr ad2ant2rl
      vf m1r opelxpi simpll simprl simplr simprr oveq2d opeq12d wex coprab df-c
      cc df-mul eleq2i anbi12i anbi1i oprabbii eqtri ovi3 ) EFGHIUBABCDHJZUBJZK
      LZMIJZULJZKLZKLZNLZVOVMKLZVLVPKLZNLZUAZACKLZMBDKLZKLZNLZBCKLZADKLZNLZUAZU
      LUCOAOPZBOPZQCOPZDOPZQQZWGOPZWJOPZWKOOUDZPWPWDOPZWFOPZWQWLWNWTWMWOACRUEWP
      MOPWEOPZXAUMWMWOXBWLWNBDRUFMWERUGWDWFUHUIWPWHOPZWIOPZWRWMWNXCWLWOBCRUJWLW
      OXDWMWNADRUKWHWIUHUIWGWJOOUNUIVLASZVOBSZQZVMCSZVPDSZQZQZVSWGWBWJXKVNWDVRW
      FNXKVLAVMCKXEXFXJUOZXGXHXIUPZTXKVQWEMKXKVOBVPDKXEXFXJUQZXGXHXIURZTUSTXKVT
      WHWAWINXKVOBVMCKXNXMTXKVLAVPDKXLXOTTUTUCEJZVDPZFJZVDPZQZXPVLVOUASXRVMVPUA
      SQGJWCSQULVAUBVAIVAHVAZQZEFGVBXPWSPZXRWSPZQZYAQZEFGVBEFGHIUBULVEYBYFEFGXT
      YEYAXQYCXSYDVDWSXPVCVFVDWSXRVCVFVGVHVIVJVK $.
  $}

  ${
    eqresr.1 $e |- A e. _V $.
    $( Equality of real numbers in terms of intermediate signed reals.
       (Contributed by NM, 10-May-1996.) $)
    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.) $)
  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.) $)
  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 eqtrd an4s mpanr12 m1r mulclsr syl syl5eq mulcomsrg mpan oveqan12rd
    eqtri syl6eq opeq12d ) ACDZBCDZEZAFGBFGHIZABJIZKFFJIZJIZLIZFBJIZAFJIZLIZGZU
    QFGUOFCDZVEUPVDMZRRUMVEUNVEVFAFBFNUAUBUOUTUQVCFUOUTUQFLIZUQUSFUQLUSKFJIZFUR
    FKJVEURFMRFSOPKCDVHFMUCKSOUJPUOUQCDVGUQMABUDUQQUEUFUOVCFFLIZFUNUMVAFVBFLUNV
    ABFJIZFVEUNVAVJMRFBUGUHBSTASUIVEVIFMRFQOUKULT $.

  ${
    $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.) $)
    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 eleq1 eqeq1 2exbidv anbi2d
      anbi12d df-lt brabg bianabs vex eqresr 3bitr4i opth2 bitr4i anbi1i 2exbii
      wb syl6bb syl2anbr breq12 copsex2g bitrd pm5.21nii ) AGHZBGHZIJZAKLZBKLZM
      ZABNJZVKVIOLZVJOLZMZVNVIVJOOIUAUBVPVLVQVMAUCZBUCZUDUEABKKNUFUBVNVKABHCTZD
      TZHPZWAWBNJZMZDQCQZVOVLVPVQVKWFVBVMVSVTVRVKVIWAGHZPZVJWBGHZPZMZWDMZDQCQZW
      FVRVKWMETZOLZFTZOLZMZWNWGPZWPWIPZMZWDMZDQCQZMVPWQMZWHWTMZWDMZDQCQZMVRWMME
      FVIVJOOIWNVIPZWRXDXCXGXHWOVPWQWNVIOUGRXHXBXFCDXHXAXEWDXHWSWHWTWNVIWGUHRRU
      IUKWPVJPZXDVRXGWMXIWQVQVPWPVJOUGUJXIXFWLCDXIXEWKWDXIWTWJWHWPVJWIUHUJRUIUK
      EFCDULUMUNWLWECDWKWCWDWKAWAPZBWBPZMWCWHXJWJXKWGVIPWAAPWHXJWAACUOZUPVIWGSA
      WASUQWIVJPWBBPWJXKWBBDUOZUPVJWISBWBSUQUDABWAWBXLXMURUSUTVAVCVDWDVOCDABKKW
      AAWBBNVEVFVGVH $.
  $}

  $( Ordering of real subset of complex numbers in terms of signed reals.
     (Contributed by NM, 22-Feb-1996.) $)
  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.) $)
  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.) $)
  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 co cplr cep ccnv cec addcnsr wceq opelxpi ecidg syl
    addclsr cxp oveqan12d ad2ant2r ad2ant2l syl2anc 3eqtr4d ) AEFZBEFZGZCEFZDEF
    ZGZGZABHZCDHZIJACKJZBDKJZHZUNLMZNZUOUSNZIJURUSNZABCDOUIULUTUNVAUOIUIUNEEUAZ
    FUTUNPABEEQUNVCRSULUOVCFVAUOPCDEEQUOVCRSUBUMURVCFZVBURPUMUPEFZUQEFZVDUGUJVE
    UHUKACTUCUHUKVFUGUJBDTUDUPUQEEQUEURVCRSUF $.

  $( Technical trick to permit re-use of some equivalence class lemmas for
     operation laws.  The trick involves ~ ecidg , which shows that the coset
     of the converse epsilon relation (which is not an equivalence relation)
     leaves a set unchanged.  See also ~ dfcnqs .  (Contributed by NM,
     13-Aug-1995.) $)
  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 cec wceq opelxpi ecidg mulclsr syl2anc
    co syl cep ccnv mulcnsr cxp simpll simprl m1r simplr simprr sylancr addclsr
    oveqan12d 3eqtr4d ) AEFZBEFZGZCEFZDEFZGZGZABHZCDHZISACJSZKBDJSZJSZLSZBCJSZA
    DJSZLSZHZVAUAUBZMZVBVKMZISVJVKMZABCDUCUPUSVLVAVMVBIUPVAEEUDZFVLVANABEEOVAVO
    PTUSVBVOFVMVBNCDEEOVBVOPTULUTVJVOFZVNVJNUTVFEFZVIEFZVPUTVCEFZVEEFZVQUTUNUQV
    SUNUOUSUEZUPUQURUFZACQRUTKEFVDEFZVTUGUTUOURWCUNUOUSUHZUPUQURUIZBDQRKVDQUJVC
    VEUKRUTVGEFZVHEFZVRUTUOUQWFWDWBBCQRUTUNURWGWAWEADQRVGVHUKRVFVIEEORVJVOPTUM
    $.

  ${
    $d f u v w x y z $.
    $( Existence of a sum.  This is dependent on how we define ` + ` so once we
       proceed to real number axioms we will replace it with theorems such as
       ~ addcl .  (Contributed by Jim Kingdon, 14-Jul-2021.) $)
    addvalex $p |- ( ( A e. V /\ B e. W ) -> ( A + B ) e. _V ) $=
      ( vx vy vz vw vv vu vf wcel wa caddc cop cvv cv cnr cnp cc cfv df-ov cplr
      co cxp cer cqs df-nr npex xpex qsex eqeltri wceq wex coprab df-add eleq2i
      df-c anbi12i anbi1i oprabbii eqtri oprabex3 opexg fvexg sylancr syl5eqel
      ) ACLBDLMZABNUDABOZNUAZPABNUBVHNPLVIPLVJPLEFGHIJHQZJQZUCUDIQZKQZUCUDOZKNR
      RSSUEZUFUGPUHVPUFSSUIUIUJUKULNEQZTLZFQZTLZMZVQVKVMOUMVSVLVNOUMMGQVOUMMKUN
      JUNIUNHUNZMZEFGUOVQRRUEZLZVSWDLZMZWBMZEFGUOEFGHIJKUPWCWHEFGWAWGWBVRWEVTWF
      TWDVQURUQTWDVSURUQUSUTVAVBVCABCDVDVINPPVEVFVG $.
  $}

  ${
    $d K l u $.
    $( Lemma for ~ pitonn .  Two ways to write the number one.  (Contributed by
       Jim Kingdon, 24-Apr-2020.) $)
    pitonnlem1 $p |- <. [ <. ( <. { l | l <Q [ <. 1o , 1o >. ] ~Q } ,
          { u | [ <. 1o , 1o >. ] ~Q <Q u } >.
          +P. 1P ) , 1P >. ] ~R
          , 0R >. = 1 $=
      ( c1r c0r cop cv c1o cec cltq wbr cab c1p cpp cer wceq c1q df-1nqqs abbii
      co eqtri c1 ceq df-1 df-1r df-i1p breq2i breq1i oveq1i opeq1i eceq1 ax-mp
      opeq12i eqtr2i ) UACDEBFZGGEUBHZIJZBKZUOAFZIJZAKZEZLMSZLEZNHZDEUCCVDDCLLM
      SZLEZNHZVDUDVFVCOVGVDOVEVBLLVALMLUNPIJZBKZPURIJZAKZEVAABUEVIUQVKUTVHUPBPU
      OUNIQUFRVJUSAPUOURIQUGRULTUHUIVFVCNUJUKTUIUM $.

    $( Lemma for ~ pitonn .  Simplifying an expression involving signed reals.
       (Contributed by Jim Kingdon, 26-Apr-2020.) $)
    pitonnlem1p1 $p |- ( A e. P. ->
        [ <. ( A +P. ( 1P +P. 1P ) ) , ( 1P +P. 1P ) >. ] ~R =
        [ <. ( A +P. 1P ) , 1P >. ] ~R ) $=
      ( cnp wcel c1p cpp co cop cer cec wceq 1pr addclpr mp2an addcomprg oveq1d
      mpan2 addassprg mp3an13 eqtrd a1i wb enreceq syl22anc mpbird ) ABCZADDEFZ
      EFZUFGHIADEFZDGHIJZUGDEFZUFUHEFZJZUEUJUFAEFZDEFZUKUEUGUMDEUEUFBCZUGUMJDBC
      ZUPUOKKDDLMZAUFNPOUOUEUPUNUKJUQKUFADQRSUEUGBCZUOUHBCZUPUIULUAUEUOURUQAUFL
      PUOUEUQTUEUPUSKADLPUPUEKTUGUFUHDUBUCUD $.

    $( Lemma for ~ pitonn .  Two ways to add one to a number.  (Contributed by
       Jim Kingdon, 24-Apr-2020.) $)
    pitonnlem2 $p |- ( K e. N. ->
        ( <. [ <. ( <. { l | l <Q [ <. K , 1o >. ] ~Q } ,
          { u | [ <. K , 1o >. ] ~Q <Q u } >.
          +P. 1P ) , 1P >. ] ~R
          , 0R >. + 1 ) =
        <. [ <. ( <. { l | l <Q [ <. ( K +N 1o ) , 1o >. ] ~Q } ,
          { u | [ <. ( K +N 1o ) , 1o >. ] ~Q <Q u } >.
          +P. 1P ) , 1P >. ] ~R
          , 0R >. ) $=
      ( wcel c1o cop cec cltq wbr cab c1p cpp co cer c0r c1r wceq cnp 1pr syl
      cnpi cv ceq c1 caddc cplr cpli df-1 oveq2i cnr cxp nnprlu addclpr sylancl
      cqs opelxpi enrex ecelqsi df-nr syl6eleqr 1sr addresr syl5eq pitonnlem1p1
      df-1r mp2an addsrpr mpanl2 mpanr12 c1q cplq addpinq1 breq2d abbidv breq1d
      wa opeq12d cnq nnnq addnqpr1 eqtrd oveq1d opeq1d eceq1d 3eqtr4d ) BUADZCU
      BZBEFUCGZHICJWHAUBZHIAJFZKLMZKFZNGZOFZUDUEMZWMPUFMZOFZWGBEUGMEFUCGZHIZCJZ
      WRWIHIZAJZFZKLMZKFZNGZOFWFWOWNPOFZUEMZWQUDXGWNUEUHUIWFWMUJDPUJDXHWQQWFWMR
      RUKZNUOZUJWFWLXIDZWMXJDWFWKRDZKRDZXKWFWJRDXMXLABCULSWJKUMUNZSWKKRRUPUNXIW
      LNUQURTUSUTVAWMPVBUNVCWFWPXFOWFWKKKLMZLMXOFNGZWKKLMZKFZNGZWPXFWFXLXPXSQXN
      WKVDTWFWPWMXOKFNGZUFMZXPPXTWMUFVEUIWFXLYAXPQZXNXLXORDZXMYBXMXMYCSSKKUMVFS
      XLXMYCXMVPYBSWKKXOKVGVHVITVCWFXEXRNWFXDXQKWFXCWKKLWFXCWGWHVJVKMZHIZCJZYDW
      IHIZAJZFZWKWFWTYFXBYHWFWSYECWFWRYDWGHBVLZVMVNWFXAYGAWFWRYDWIHYJVOVNVQWFWH
      VRDYIWKQBVSAWHCVTTWAWBWCWDWEWCWA $.

  $}

  ${
    $d N l u w z $.  $d k l u w y z $.  $d x y z $.
    $( Mapping from ` N. ` to ` NN ` .  (Contributed by Jim Kingdon,
       22-Apr-2020.) $)
    pitonn $p |- ( N e. N. ->
        <. [ <. ( <. { l | l <Q [ <. N , 1o >. ] ~Q } ,
          { u | [ <. N , 1o >. ] ~Q <Q u } >. +P. 1P ) , 1P >. ] ~R , 0R >. e.
        |^| { x | ( 1 e. x /\ A. y e. x ( y + 1 ) e. x ) } ) $=
      ( wcel c1o cop ceq cec cltq wbr cab c1p cpp co cer c0r eceq1d abbidv cnpi
      vz vw vk cv c1 caddc wral wa cint wi wal cpli opeq1 breq2d breq1d opeq12d
      oveq1d opeq1d eleq1d imbi2d pitonnlem1 eleq1i biimpri adantr oveq1 rspccv
      wceq ad2antll wb pitonnlem2 sylibd indpi alrimiv eleq2 raleqbi1dv anbi12d
      a2d ralab sylibr cnp cxp cqs cnr nnprlu 1pr addclpr sylancl opelxpi enrex
      ex ecelqsi syl 0r elintg mpbird ) DUAFZEUEZDGHZIJZKLZEMZWTCUEZKLZCMZHZNOP
      ZNHZQJZRHZUFAUEZFZBUEZUFUGPZXKFZBXKUHZUIZAMZUJFZXJUBUEZFZUBXRUHZWQUFXTFZX
      NXTFZBXTUHZUIZYAUKZUBULYBWQYGUBYFWRUCUEZGHZIJZKLZEMZYJXCKLZCMZHZNOPZNHZQJ
      ZRHZXTFZUKYFWRGGHZIJZKLZEMZUUBXCKLZCMZHZNOPZNHZQJZRHZXTFZUKYFWRUDUEZGHZIJ
      ZKLZEMZUUOXCKLZCMZHZNOPZNHZQJZRHZXTFZUKYFWRUUMGUMPZGHZIJZKLZEMZUVHXCKLZCM
      ZHZNOPZNHZQJZRHZXTFZUKYGUCUDDYHGVHZYTUULYFUVSYSUUKXTUVSYRUUJRUVSYQUUIQUVS
      YPUUHNUVSYOUUGNOUVSYLUUDYNUUFUVSYKUUCEUVSYJUUBWRKUVSYIUUAIYHGGUNSZUOTUVSY
      MUUECUVSYJUUBXCKUVTUPTUQURUSSUSUTVAYHUUMVHZYTUVEYFUWAYSUVDXTUWAYRUVCRUWAY
      QUVBQUWAYPUVANUWAYOUUTNOUWAYLUUQYNUUSUWAYKUUPEUWAYJUUOWRKUWAYIUUNIYHUUMGU
      NSZUOTUWAYMUURCUWAYJUUOXCKUWBUPTUQURUSSUSUTVAYHUVFVHZYTUVRYFUWCYSUVQXTUWC
      YRUVPRUWCYQUVOQUWCYPUVNNUWCYOUVMNOUWCYLUVJYNUVLUWCYKUVIEUWCYJUVHWRKUWCYIU
      VGIYHUVFGUNSZUOTUWCYMUVKCUWCYJUVHXCKUWDUPTUQURUSSUSUTVAYHDVHZYTYAYFUWEYSX
      JXTUWEYRXIRUWEYQXHQUWEYPXGNUWEYOXFNOUWEYLXBYNXEUWEYKXAEUWEYJWTWRKUWEYIWSI
      YHDGUNSZUOTUWEYMXDCUWEYJWTXCKUWFUPTUQURUSSUSUTVAYCUULYEUULYCUUKUFXTCEVBVC
      VDVEUUMUAFZYFUVEUVRUWGYFUVEUVRUKUWGYFUIUVEUVDUFUGPZXTFZUVRYEUVEUWIUKUWGYC
      YDUWIBUVDXTXMUVDVHXNUWHXTXMUVDUFUGVFUTVGVIUWGUWIUVRVJYFUWGUWHUVQXTCUUMEVK
      UTVEVLWKVRVMVNXQYFYAUBAXKXTVHXLYCXPYEXKXTUFVOXOYDBXKXTXKXTXNVOVPVQVSVTWQX
      JWAWAWBZQWCZWDWBZFZXSYBVJWQXIUWKFZRWDFUWMWQXHUWJFZUWNWQXGWAFZNWAFZUWOWQXF
      WAFUWQUWPCDEWEWFXFNWGWHWFXGNWAWAWIWHUWJXHQWJWLWMWNXIRUWKWDWIWHUBXJXRUWLWO
      WMWP $.
  $}

  ${
    $d N l u $.
    $( Embedding from ` N. ` to ` RR ` yields a number greater than zero.
       (Contributed by Jim Kingdon, 15-Jul-2021.) $)
    pitoregt0 $p |- ( N e. N. ->
        0 <RR <. [ <. ( <. { l | l <Q [ <. N , 1o >. ] ~Q } ,
          { u | [ <. N , 1o >. ] ~Q <Q u } >. +P. 1P ) , 1P >. ] ~R , 0R >.
        ) $=
      ( wcel c1p cop cer cec cv cltq wbr cab cpp co cltr c0r cltrr cltp cnp 1pr
      cnpi c1o ceq cc0 addclpr mp2an ltaddpr sylancr wceq a1i addassprg syl3anc
      nnprlu addcomprg oveq2d eqtrd breqtrd sylancl ltsrprg mpanl12 mpbird df-0
      wb wa breq1i ltresr df-0r 3bitri sylibr ) BUADZEEFGHZCIBUBFUCHZJKCLVLAIJK
      ALFZEMNZEFGHZOKZUDVOPFZQKZVJVPEEMNZEVNMNZRKZVJVSVSVMMNZVTRVJVSSDZVMSDZVSW
      BRKESDZWEWCTTEEUEUFABCUMZVSVMUGUHVJWBEEVMMNZMNZVTVJWEWEWDWBWHUIWEVJTUJZWI
      WFEEVMUKULVJWGVNEMVJWEWDWGVNUITWFEVMUNUHUOUPUQVJVNSDZWEVPWAVCZVJWDWEWJWFT
      VMEUEURTWEWEWJWEVDWKTTEEVNEUSUTURVAVRPPFZVQQKPVOOKVPUDWLVQQVBVEPVOVFPVKVO
      OVGVEVHVI $.
  $}

  ${
    $d N l u $.
    $( Embedding from ` N. ` to ` RR ` .  Similar to ~ pitonn but separate in
       the sense that we have not proved ~ nnssre yet.  (Contributed by Jim
       Kingdon, 15-Jul-2021.) $)
    pitore $p |- ( N e. N. ->
        <. [ <. ( <. { l | l <Q [ <. N , 1o >. ] ~Q } ,
          { u | [ <. N , 1o >. ] ~Q <Q u } >. +P. 1P ) , 1P >. ] ~R , 0R >. e.
        RR ) $=
      ( cnpi wcel c1o cop ceq cec cltq wbr cab c1p cpp cer cnr cnp 1pr sylancl
      cv co c0r cr cxp cqs nnprlu addclpr opelxpi enrex ecelqsi df-nr syl6eleqr
      syl opelreal sylibr ) BDEZCTBFGHIZJKCLUQATJKALGZMNUAZMGZOIZPEVAUBGUCEUPVA
      QQUDZOUEZPUPUTVBEZVAVCEUPUSQEZMQEZVDUPURQEVFVEABCUFRURMUGSRUSMQQUHSVBUTOU
      IUJUMUKULVAUNUO $.
  $}

  ${
    $d N l u $.
    $( Embedding the reciprocal of a natural number into ` RR ` .  (Contributed
       by Jim Kingdon, 15-Jul-2021.) $)
    recnnre $p |- ( N e. N. ->
        <. [ <. ( <. { l | l <Q ( *Q ` [ <. N , 1o >. ] ~Q ) } ,
          { u | ( *Q ` [ <. N , 1o >. ] ~Q ) <Q u } >. +P. 1P ) , 1P >. ] ~R ,
        0R >. e. RR ) $=
      ( cnpi wcel c1o cop ceq cec crq cltq wbr cab c1p cer cnr cnp 1pr sylancl
      cv cfv cpp co c0r cxp cqs recnnpr addclpr opelxpi enrex ecelqsi syl df-nr
      cr syl6eleqr opelreal sylibr ) BDEZCTBFGHIJUAZKLCMUSATKLAMGZNUBUCZNGZOIZP
      EVCUDGUNEURVCQQUEZOUFZPURVBVDEZVCVEEURVAQEZNQEZVFURUTQEVHVGABCUGRUTNUHSRV
      ANQQUISVDVBOUJUKULUMUOVCUPUQ $.
  $}

  ${
    $d x y $.
    peano1nnnn.n $e |- N =
      |^| { x | ( 1 e. x /\ A. y e. x ( y + 1 ) e. x ) } $.

    ${
      $d x y z $.
      $( One is an element of ` NN ` .  This is a counterpart to ~ 1nn designed
         for real number axioms which involve natural numbers (notably,
         ~ axcaucvg ).  (Contributed by Jim Kingdon, 14-Jul-2021.)
         (New usage is discouraged.) $)
      peano1nnnn $p |- 1 e. N $=
        ( vz c1 wcel cv caddc co wral wa cab cint eleq2i cr wb c1r c0r eleq2
        cop df-1 cnr 1sr opelreal mpbir eqeltri elintg ax-mp vex weq raleqbi1dv
        bitri anbi12d elab simplbi mprgbir ) FCGZFEHZGZEFAHZGZBHFIJZVAGZBVAKZLZ
        AMZURFVGNZGZUTEVGKZCVHFDOFPGVIVJQFRSUAZPUBVKPGRUCGUDRUEUFUGEFVGPUHUIUMU
        SVGGUTVCUSGZBUSKZVFUTVMLAUSEUJAEUKVBUTVEVMVAUSFTVDVLBVAUSVAUSVCTULUNUOU
        PUQ $.
    $}

    ${
      $d A y z $.  $d x y z $.
      $( A successor of a positive integer is a positive integer.  This is a
         counterpart to ~ peano2nn designed for real number axioms which
         involve to natural numbers (notably, ~ axcaucvg ).  (Contributed by
         Jim Kingdon, 14-Jul-2021.)  (New usage is discouraged.) $)
      peano2nnnn $p |- ( A e. N -> ( A + 1 ) e. N ) $=
        ( vz wcel c1 caddc co cv wral wa eleq2i elintg syl5bb cvv c1r c0r cnr
        cab cint ibi vex wceq eleq2 raleqbi1dv anbi12d elab oveq1 eleq1d rspcva
        simprbi sylan2 expcom ralimia syl wb cop df-1 0r opexg eqeltri addvalex
        1sr mp2an mpan2 mpbird ) CDGZCHIJZDGZVJFKZGZFHAKZGZBKZHIJZVNGZBVNLZMZAU
        AZLZVICVLGZFWALZWBVIWDVICWAUBZGVIWDDWECENFCWADOPUCWCVMFWAWCVLWAGZVMWFWC
        VQVLGZBVLLZVMWFHVLGZWHVTWIWHMAVLFUDVNVLUEVOWIVSWHVNVLHUFVRWGBVNVLVNVLVQ
        UFUGUHUIUMWGVMBCVLVPCUEVQVJVLVPCHIUJUKULUNUOUPUQVIVJQGZVKWBURVIHQGWJHRS
        USZQUTRTGSTGWKQGVEVARSTTVBVFVCCHDQVDVGVKVJWEGWJWBDWEVJENFVJWAQOPUQVH $.
    $}
  $}

  ${
    $d J l $.  $d J u $.  $d K l $.  $d K u $.

    $( Ordering of natural numbers with ` <N ` or ` <RR ` .  (Contributed by
       Jim Kingdon, 13-Jul-2021.) $)
    ltrennb $p |- ( ( J e. N. /\ K e. N. ) ->
        ( J <N K <-> <. [ <. ( <. { l | l <Q [ <. J , 1o >. ] ~Q } ,
          { u | [ <. J , 1o >. ] ~Q <Q u } >. +P. 1P ) , 1P >. ] ~R , 0R >.
        <RR <. [ <. ( <. { l | l <Q [ <. K , 1o >. ] ~Q } ,
          { u | [ <. K , 1o >. ] ~Q <Q u } >. +P. 1P ) , 1P >. ] ~R , 0R >.
        ) ) $=
      ( cnpi wcel wbr cv c1o cop ceq cec cltq cab c1p cpp co cer c0r cnq ltnnnq
      wa clti cltr cltrr cltp wb adantr adantl ltnqpr syl2anc cnp nqprlu prsrlt
      nnnq syl 3bitrd ltresr syl6bbr ) BEFZCEFZUBZBCUCGZDHZBIJKLZMGDNVEAHZMGANJ
      ZOPQOJRLZVDCIJKLZMGDNVIVFMGANJZOPQOJRLZUDGZVHSJVKSJUEGVBVCVEVIMGZVGVJUFGZ
      VLBCUAVBVETFZVITFZVMVNUGUTVOVABUOUHZVAVPUTCUOUIZAVEVIDUJUKVBVGULFZVJULFZV
      NVLUGVBVOVSVQAVEDUMUPVBVPVTVRAVIDUMUPVGVJUNUKUQVHVKURUS $.
  $}

  ${
    $d J l $.  $d J u $.  $d K l $.  $d K u $.

    $( Ordering of natural numbers with ` <N ` or ` <RR ` .  (Contributed by
       Jim Kingdon, 12-Jul-2021.) $)
    ltrenn $p |- ( J <N K -> <. [ <. ( <. { l | l <Q [ <. J , 1o >. ] ~Q } ,
          { u | [ <. J , 1o >. ] ~Q <Q u } >. +P. 1P ) , 1P >. ] ~R , 0R >.
        <RR <. [ <. ( <. { l | l <Q [ <. K , 1o >. ] ~Q } ,
          { u | [ <. K , 1o >. ] ~Q <Q u } >. +P. 1P ) , 1P >. ] ~R , 0R >.
        ) $=
      ( cnpi wcel clti wbr cv c1o cop ceq cec cltq cab c1p cpp co cer c0r cltrr
      wa ltrelpi brel ltrennb biimpd mpcom ) BEFCEFUBZBCGHZDIZBJKLMZNHDOUKAIZNH
      AOKPQRPKSMTKUJCJKLMZNHDOUMULNHAOKPQRPKSMTKUAHZBCEEGUCUDUHUIUNABCDUEUFUG
      $.
  $}

  ${
    $d N l u $.
    $( Another way of saying that a number times its reciprocal is one.
       (Contributed by Jim Kingdon, 17-Jul-2021.) $)
    recidpipr $p |- ( N e. N. -> ( <. { l | l <Q [ <. N , 1o >. ] ~Q } ,
          { u | [ <. N , 1o >. ] ~Q <Q u } >. .P.
        <. { l | l <Q ( *Q ` [ <. N , 1o >. ] ~Q ) } ,
          { u | ( *Q ` [ <. N , 1o >. ] ~Q ) <Q u } >. ) = 1P ) $=
      ( cnpi wcel cv c1o cop ceq cec cltq wbr cab c1p cnq wceq syl c1q abbidv
      co crq cfv cmq nnnq recclnq mulnqpr syl2anc recidnq breq2d breq1d opeq12d
      cmp df-i1p syl6eqr eqtr3d ) BDEZCFZBGHIJZURUAUBZUCTZKLZCMZUTAFZKLZAMZHZUQ
      URKLCMURVCKLAMHUQUSKLCMUSVCKLAMHULTZNUPUROEZUSOEZVFVGPBUDZUPVHVIVJURUEQAU
      RUSCUFUGUPVFUQRKLZCMZRVCKLZAMZHNUPVBVLVEVNUPVAVKCUPUTRUQKUPVHUTRPVJURUHQZ
      UISUPVDVMAUPUTRVCKVOUJSUKACUMUNUO $.
  $}

  ${
    recidpirqlemcalc.a $e |- ( ph -> A e. P. ) $.
    recidpirqlemcalc.b $e |- ( ph -> B e. P. ) $.
    recidpirqlemcalc.rec $e |- ( ph -> ( A .P. B ) = 1P ) $.
    $( Lemma for ~ recidpirq .  Rearranging some of the expressions.
       (Contributed by Jim Kingdon, 17-Jul-2021.) $)
    recidpirqlemcalc $p |- ( ph ->
        ( ( ( ( A +P. 1P ) .P. ( B +P. 1P ) ) +P. ( 1P .P. 1P ) ) +P. 1P ) =
        ( ( ( ( A +P. 1P ) .P. 1P ) +P. ( 1P .P. ( B +P. 1P ) ) ) +P.
          ( 1P +P. 1P ) ) ) $=
      ( c1p cpp co cmp cnp wcel wceq addclpr syl2anc syl3anc 1idpr eqtrd oveq1d
      syl 1pr addassprg distrprg oveq2d mulcomprg oveq12d 3eqtrd mp1i addcomprg
      a1i 3eqtr4d ) ABGHIZCGHIZHIZGHIZGHIZUNGGHIZHIZULUMJIZGGJIZHIZGHIULGJIZGUM
      JIZHIZUQHIAUNKLZGKLZVFUPURMAULKLZUMKLZVEABKLZVFVGDVFAUAUJZBGNOZACKLZVFVHE
      VJCGNOZULUMNOVJVJUNGGUBPAVAUOGHAVAGCHIZULHIZGHIUOAUSVOUTGHAUSULCJIZVBHIZV
      PULHIVOAVGVLVFUSVQMVKEVJULCGUCPAVBULVPHAVGVBULMVKULQTZUDAVPVNULHAVPCULJIZ
      CBJIZCGJIZHIZVNAVGVLVPVSMVKEULCUEOAVLVIVFVSWBMEDVJCBGUCPAVTGWACHAVTBCJIZG
      AVLVIVTWCMEDCBUEOFRAVLWACMECQTUFUGSUGVFUTGMAUAGQUHUFAVOUNGHAVOUMULHIZUNAV
      NUMULHAVFVLVNUMMVJEGCUIOSAVHVGWDUNMVMVKUMULUIORSRSAVDUNUQHAVBULVCUMHVRAVC
      UMGJIZUMAVFVHVCWEMVJVMGUMUEOAVHWEUMMVMUMQTRUFSUK $.
  $}

  ${
    $d N l u $.
    $( A real number times its reciprocal is one, where reciprocal is expressed
       with ` *Q ` .  (Contributed by Jim Kingdon, 15-Jul-2021.) $)
    recidpirq $p |- ( N e. N. -> (
        <. [ <. ( <. { l | l <Q [ <. N , 1o >. ] ~Q } ,
          { u | [ <. N , 1o >. ] ~Q <Q u } >. +P. 1P ) , 1P >. ] ~R , 0R >.
        x. <. [ <. ( <. { l | l <Q ( *Q ` [ <. N , 1o >. ] ~Q ) } ,
          { u | ( *Q ` [ <. N , 1o >. ] ~Q ) <Q u } >. +P. 1P ) , 1P >.
        ] ~R , 0R >. ) = 1 ) $=
      ( wcel cop cec cltq wbr cab c1p cpp cer c0r wceq cnp syl2anc c1r addclpr
      co cmp cnpi cv c1o ceq crq cfv cmul cmr cnr nnprlu prsrcl recnnpr mulresr
      c1 syl 1pr a1i mulsrpr syl22anc recidpipr recidpirqlemcalc eqeq2i mulclpr
      df-1r wb wa pm3.2i mp1i enreceq syl5bb mpbird eqtrd opeq1d df-1 syl6eqr )
      BUADZCUBZBUCEUDFZGHCIVRAUBZGHAIEZJKSZJELFZMEVQVRUEUFZGHCIWCVSGHAIEZJKSZJE
      LFZMEUGSZWBWFUHSZMEZUNVPWBUIDZWFUIDZWGWINVPVTODZWJABCUJZVTUKUOVPWDODZWKAB
      CULZWDUKUOWBWFUMPVPWIQMEUNVPWHQMVPWHWAWETSZJJTSZKSZWAJTSZJWETSZKSZELFZQVP
      WAODZJODZWEODZXDWHXBNVPWLXDXCWMXDVPUPUQZVTJRPZXFVPWNXDXEWOXFWDJRPZXFWAJWE
      JURUSVPXBQNZWRJKSXAJJKSZKSNZVPVTWDWMWOABCUTVAXIXBXJJELFZNZVPXKQXLXBVDVBVP
      WRODZXAODZXJODZXDXMXKVEVPWPODZWQODZXNVPXCXEXQXGXHWAWEVCPXDXDVFZXRVPXDXDUP
      UPVGZJJVCVHWPWQRPVPWSODZWTODZXOVPXCXDYAXGXFWAJVCPVPXDXEYBXFXHJWEVCPWSWTRP
      XSXPVPXTJJRVHXFWRXAXJJVIUSVJVKVLVMVNVOVL $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Final derivation of real and complex number postulates
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( The complex numbers form a set.  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 for real and
     complex numbers, derived from 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 for real and complex numbers, derived from
     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 $.

  $( 1 is a real number.  Axiom for real and complex numbers, derived from set
     theory.  This construction-dependent theorem should not be referenced
     directly; instead, use ~ ax-1re .

     In the Metamath Proof Explorer, this is not a complex number axiom but is
     proved from ~ ax-1cn and the other axioms.  It is not known whether we can
     do so here, but the Metamath Proof Explorer proof (accessed 13-Jan-2020)
     uses excluded middle.  (Contributed by Jim Kingdon, 13-Jan-2020.)
     (New usage is discouraged.) $)
  ax1re $p |- 1 e. RR $=
    ( c1 c1r c0r cop cr df-1 wcel cnr 1sr opelreal mpbir eqeltri ) ABCDZEFMEGBH
    GIBJKL $.

  $( ` _i ` is a complex number.  Axiom for real and complex numbers, derived
     from 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 A w x y z $.  $d B w x y z $.
    $( Closure law for addition of complex numbers.  Axiom for real and complex
       numbers, derived from 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 ) $=
      ( vx vy vz vw cc wcel wa cv cop wceq cnr wex caddc co elxpi df-c ad2ant2l
      eleq2s cxp anim12i ee4anv sylibr cplr simpll simprl oveq12d addcnsr eqtrd
      addclsr ad2ant2r opelxpi syl2anc syl6eleqr eqeltrd exlimivv syl ) AGHZBGH
      ZIZACJZDJZKZLZVBMHZVCMHZIZIZBEJZFJZKZLZVJMHZVKMHZIZIZIZFNENZDNCNZABOPZGHZ
      VAVIDNCNZVQFNENZIVTUSWCUTWDWCAMMUAZGCDAMMQRTWDBWEGEFBMMQRTUBVIVQCDEFUCUDV
      SWBCDVRWBEFVRWAVBVJUEPZVCVKUEPZKZGVRWAVDVLOPZWHVRAVDBVLOVEVHVQUFVIVMVPUGU
      HVHVPWIWHLVEVMVBVCVJVKUISUJVHVPWHGHVEVMVHVPIZWHWEGWJWFMHZWGMHZWHWEHVFVNWK
      VGVOVBVJUKULVGVOWLVFVNVCVKUKSWFWGMMUMUNRUOSUPUQUQUR $.

    $( Closure law for addition in the real subfield of complex numbers.  Axiom
       for real and complex numbers, derived from 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 for real and
       complex numbers, derived from 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 ) $=
      ( vx vy vz vw cc wcel wa cv cop wceq cnr wex cmul co df-c mulclsr syl2anc
      cmr elxpi eleq2s anim12i ee4anv sylibr cm1r simpll simprl oveq12d mulcnsr
      cxp cplr ad2ant2l simplrl simprrl m1r a1i simplrr simprrr addclsr opelxpi
      eqtrd syl6eleqr eqeltrd exlimivv syl ) AGHZBGHZIZACJZDJZKZLZVJMHZVKMHZIZI
      ZBEJZFJZKZLZVRMHZVSMHZIZIZIZFNENZDNCNZABOPZGHZVIVQDNCNZWEFNENZIWHVGWKVHWL
      WKAMMUKZGCDAMMUAQUBWLBWMGEFBMMUAQUBUCVQWECDEFUDUEWGWJCDWFWJEFWFWIVJVRTPZU
      FVKVSTPZTPZULPZVKVRTPZVJVSTPZULPZKZGWFWIVLVTOPZXAWFAVLBVTOVMVPWEUGVQWAWDU
      HUIVPWDXBXALVMWAVJVKVRVSUJUMVBWFXAWMGWFWQMHZWTMHZXAWMHWFWNMHZWPMHZXCWFVNW
      BXEVMVNVOWEUNZVQWAWBWCUOZVJVRRSWFUFMHZWOMHZXFXIWFUPUQWFVOWCXJVMVNVOWEURZV
      QWAWBWCUSZVKVSRSUFWORSWNWPUTSWFWRMHZWSMHZXDWFVOWBXMXKXHVKVRRSWFVNWCXNXGXL
      VJVSRSWRWSUTSWQWTMMVASQVCVDVEVEVF $.

    $( Closure law for multiplication in the real subfield of complex numbers.
       Axiom for real and complex numbers, derived from 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 A w x y z $.  $d B w z $.
    $( Addition commutes.  Axiom for real and complex numbers, derived from set
       theory.  This construction-dependent theorem should not be referenced
       directly, nor should the proven axiom ~ ax-addcom be used later.
       Instead, use ~ addcom .

       In the Metamath Proof Explorer this is not a complex number axiom but is
       instead proved from other axioms.  That proof relies on real number
       trichotomy and it is not known whether it is possible to prove this from
       the other axioms without it.  (Contributed by Jim Kingdon, 17-Jan-2020.)
       (New usage is discouraged.) $)
    axaddcom $p |- ( ( A e. CC /\ B e. CC ) -> ( A + B ) = ( B + A ) ) $=
      ( vx vy vz vw cv cop caddc co wceq cnr oveq1 oveq2 eqeq12d wcel addcomsrg
      wa cplr addcnsr cc df-c ad2ant2r ad2ant2l opeq12d ancoms 3eqtr4d 2optocl
      ) CGZDGZHZEGZFGZHZIJZUNUKIJZKAUNIJZUNAIJZKABIJZBAIJZKCDEFABLLUAUBUKAKUOUQ
      UPURUKAUNIMUKAUNINOUNBKUQUSURUTUNBAINUNBAIMOUILPZUJLPZRZULLPZUMLPZRZRZUIU
      LSJZUJUMSJZHULUISJZUMUJSJZHZUOUPVGVHVJVIVKVAVDVHVJKVBVEUIULQUCVBVEVIVKKVA
      VDUJUMQUDUEUIUJULUMTVFVCUPVLKULUMUIUJTUFUGUH $.
  $}

  ${
    $d x y z w A $.  $d x y z w B $.
    $( Multiplication of complex numbers is commutative.  Axiom for real and
       complex numbers, derived from 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 cv cmr co cm1r cplr cnr mulcnsrec wcel wa mulcomsrg syl2anc
      wceq oveq12d mulclsr cc cmul dfcnqs simpll simprl simplr simprr addcomsrg
      cep ccnv oveq2d eqtrd ecovicom ) CDEFABUACGZEGZHIZJDGZFGZHIZHIZKIUBUIUJLU
      QUOHIZUNURHIZKIZUOUNHIZJURUQHIZHIZKIURUNHIZUOUQHIZKIZUCUNUQUOURMUOURUNUQM
      UNLNZUQLNZOZUOLNZURLNZOZOZUPVDUTVFKVPVJVMUPVDRVJVKVOUDZVLVMVNUEZUNUOPQVPU
      SVEJHVPVKVNUSVERVJVKVOUFZVLVMVNUGZUQURPQUKSVPVCVHVGKIZVIVPVAVHVBVGKVPVKVM
      VAVHRVSVRUQUOPQVPVJVNVBVGRVQVTUNURPQSVPVHLNZVGLNZWAVIRVPVMVKWBVRVSUOUQTQV
      PVNVJWCVTVQURUNTQVHVGUHQULUM $.
  $}

  ${
    $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 for real
       and complex numbers, derived from 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
      wceq cc caddc ccnv addasssrg 3adant3r 3adant2r 3adant1r 3adant3l 3adant2l
      cep dfcnqs 3adant1l ecoviass ) DEFGHIABCUAUBGJZIJZKLZUJUCMDJZFJZKLZEJZUNK
      LZUSHJZKLZVAUOKLZUQURVBKLZKLZUTUPKLZVEUKUQUTURUNNURUNVBUONUSVAVBUONUQUTVE
      UPNUQMOZURMOZUTMOZUNMOZUSMOZVAMOZPVHVIPVLVJVKPVMUQURQUTUNQRSVIVBMOZVKUOMO
      ZVEMOZUPMOZPVIVNPVPVKVOPVQURVBQUNUOQRSVHVIVKPZVNVOPZVCVFTZVJVHVIVSVTVKVHV
      IVNVTVOUQURVBUDUEUFUGVJVRVSVDVGTZVHVJVKVSWAVIVJVKVOWAVNUTUNUOUDUHUIULUM
      $.
  $}

  ${
    $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 for real and
       complex numbers, derived from 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 cplr cnr cm1r wcel mulclsr syl2anc wceq adantl distrsrg
      co wa syl3anc vx vy vz vw vv vu cc cmul cep ccnv dfcnqs mulcnsrec sylancr
      m1r addclsr syl2an an4s syl2anr an42s jca w3a simp1l simp2l simp3l simp2r
      simp3r simp1r addcomsrg addasssrg caov42d a1i eqtrd mulcomsrg 3coml simp3
      oveq2d oveq12d 3adant3 simp1 3eqtr3d mulasssrg caovdilemd caovcld caov12d
      simp2 3eqtrd 3eqtr4rd ecoviass ) UAUBUCUDUEUFABCUGUHUDGZUEGZHRZUCGZUFGZHR
      ZIRZUIUJJUAGZWLHRZKUBGZWIHRZHRZIRZWRWLHRZWPWIHRZIRZXAWJHRZKXDWMHRZHRZIRZX
      DWJHRZXAWMHRZIRZWPWLWJHRZKWIWMHRZHRZIRZHRZKWRWOHRZHRZIRZWRXOHRZWPWOHRZIRZ
      XOUKWPWRWLWIULWLWIWJWMULXAXDWJWMULWPWRXOWOULWPJLZWRJLZSZWLJLZWIJLZSZSXAJL
      ZXDJLZYCYFYDYGYIYCYFSWQJLWTJLZYIYDYGSZWPWLMYLKJLZWSJLZYKUNWRWIMZKWSMUMWQW
      TUOUPUQYCYGYDYFYJYDYFSXBJLXCJLYJYCYGSWRWLMWPWIMXBXCUOURUSUTYHWJJLZWMJLZSZ
      SXOJLZWOJLZYFYPYGYQYSYFYPSXLJLZXNJLZYSYGYQSZWLWJMZUUCYMXMJLZUUBUNWIWMMZKX
      MMZUMXLXNUOUPUQYFYQYGYPYTYGYPSWKJLZWNJLZYTYFYQSWIWJMZWLWMMZWKWNUOURUSUTYE
      YHYRVAZWPXLHRZWPXNHRZIRZKWRWKHRZHRZKWRWNHRZHRZIRZIRUUMUUQIRZUUSUUNIRZIRXS
      XHUULDEFUUMUUNUUQUUSJIUULYCUUAUUMJLYCYDYHYRVBZUULYFYPUUAYEYFYGYRVCZYEYHYP
      YQVDZUUDNZWPXLMNUULYCUUBUUNJLUVCUULYMUUEUUBUNUULYGYQUUEYEYFYGYRVEZYEYHYPY
      QVFZUUFNZUUGUMZWPXNMNUULYMUUPJLZUUQJLUNUULYDUUHUVKYCYDYHYRVGZUULYGYPUUHUV
      GUVEUUJNZWRWKMNZKUUPMUMDGZJLZEGZJLZSZUVOUVQIRZUVQUVOIROUULUVOUVQVHPZUVPUV
      RFGZJLZVAZUVTUWBIRUVOUVQUWBIRIROUULUVOUVQUWBVIPZUULYMUURJLZUUSJLUNUULYDUU
      IUWFUVLUULYFYQUUIUVDUVHUUKNZWRWNMNZKUURMUMUVSUVTJLZUULUVOUVQUOZPZVJUULXPU
      UOXRUUTIUULYCUUAUUBXPUUOOUVCUVFUVJWPXLXNQTUULXRKUUPUURIRZHRZUUTUULXQUWLKH
      UULYDUUHUUIXQUWLOUVLUVMUWGWRWKWNQTVPUULYMUVKUWFUWMUUTOYMUULUNVKZUVNUWHKUU
      PUURQTVLVQUULXEUVAXGUVBIUULXEUUMKWSWJHRZHRZIRUVAUULDEFWPKWLWSJIHWJUVSUVOU
      VQHRZUVQUVOHROUULUVOUVQVMPZUWDUVTUWBHRZUVOUWBHRZUVQUWBHRZIRZOUULUWDUWBUVT
      HRZUWBUVOHRZUWBUVQHRZIRZUWSUXBUWCUVPUVRUXCUXFOUWBUVOUVQQVNUWDUWCUWIUXCUWS
      OUVPUVRUWCVOZUVPUVRUWIUWCUWJVRUWBUVTVMNUWDUXDUWTUXEUXAIUWDUWCUVPUXDUWTOUX
      GUVPUVRUWCVSUWBUVOVMNUWDUWCUVRUXEUXAOUXGUVPUVRUWCWEUWBUVQVMNVQVTPZUWDUWQU
      WBHRUVOUXAHROUULUVOUVQUWBWAPZUVSUWQJLUULUVOUVQMPZUVCUWNUVDUULYDYGYNUVLUVG
      YONZUVEWBUULUWPUUQUUMIUULUWOUUPKHUULYDYGYPUWOUUPOUVLUVGUVEWRWIWJWATVPVPVL
      UULXGKUURWPXMHRZIRZHRZUUSKUXLHRZIRZUVBUULXFUXMKHUULDEFWRWPWLWIJIHWMUWRUXH
      UXIUXJUVLUVCUVDUVGUVHWBVPUULYMUWFUXLJLUXNUXPOUWNUWHUULDEWPXMJJJHUXJUVCUVI
      WCKUURUXLQTUULUXOUUNUUSIUULDEFKWPXMJHUWNUVCUVIUWRUXIWDVPWFVQWGUULWRXLHRZW
      RXNHRZIRZWPWKHRZWPWNHRZIRZIRUXQUXTIRZUYAUXRIRZIRYBXKUULDEFUXQUXRUXTUYAJIU
      ULDEWRXLJJJHUXJUVLUVFWCUULDEWRXNJJJHUXJUVLUVJWCUULDEWPWKJJJHUXJUVCUVMWCUW
      AUWEUULDEWPWNJJJHUXJUVCUWGWCUWKVJUULXTUXSYAUYBIUULYDUUAUUBXTUXSOUVLUVFUVJ
      WRXLXNQTUULYCUUHUUIYAUYBOUVCUVMUWGWPWKWNQTVQUULXIUYCXJUYDIUULDEFWRWPWLWIJ
      IHWJUWRUXHUXIUXJUVLUVCUVDUVGUVEWBUULXJUYAKWSWMHRZHRZIRUYDUULDEFWPKWLWSJIH
      WMUWRUXHUXIUXJUVCUWNUVDUXKUVHWBUULUYFUXRUYAIUULUYFKWRXMHRZHRUXRUULUYEUYGK
      HUULYDYGYQUYEUYGOUVLUVGUVHWRWIWMWATVPUULDEFKWRXMJHUWNUVLUVIUWRUXIWDVLVPVL
      VQWGWH $.
  $}

  ${
    $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 for
       real and complex numbers, derived from 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 cnr cv cplr co cmr cm1r wcel wa addclsr mulclsr m1r sylancr distrsrg
      wceq syl3anc syl2anc vx vy vz vw vv vu vg vh cc caddc ccnv cmul addcnsrec
      cep dfcnqs mulcnsrec anim12i an4s syl2an syl2anr jca simp1l simp2l simp3l
      an42s w3a simp1r simp2r simp3r oveq2d a1i oveq12d addcomsrg adantl caov4d
      eqtrd addasssrg ecovidi ) UAUBUCUDUEUFABCUIUJUNUKEULUAFZUCFZUEFZGHZIHZJUB
      FZUDFZUFFZGHZIHZIHZGHZWDWBIHZVSWGIHZGHZVSVTIHZJWDWEIHZIHZGHZVSWAIHZJWDWFI
      HZIHZGHZGHZWDVTIHZVSWEIHZGHZWDWAIHZVSWFIHZGHZGHZWBWGWQXEXAXHUOVTWEWAWFUMV
      SWDWBWGUPVSWDVTWEUPVSWDWAWFUPWQXEXAXHUMVTEKZWAEKZWEEKZWFEKZWBEKZWGEKZLXJX
      KLXNXLXMLXOVTWAMWEWFMUQURVSEKZWDEKZLZXJXLLZLWQEKZXEEKZXPXJXQXLXTXPXJLWNEK
      ZWPEKZXTXQXLLZVSVTNZYDJEKZWOEKZYCOWDWENZJWONZPWNWPMUSURXPXLXQXJYAXQXJLXCE
      KZXDEKZYAXPXLLWDVTNZVSWENZXCXDMUTVEVAXRXKXMLZLXAEKZXHEKZXPXKXQXMYOXPXKLWR
      EKZWTEKZYOXQXMLZVSWANZYSYFWSEKZYROWDWFNZJWSNZPWRWTMUSURXPXMXQXKYPXQXKLXFE
      KZXGEKZYPXPXMLWDWANZVSWFNZXFXGMUTVEVAXRXSYNVFZWJWNWRGHZWPWTGHZGHXBUUHWCUU
      IWIUUJGUUHXPXJXKWCUUIRXPXQXSYNVBZXRXJXLYNVCZXRXSXKXMVDZVSVTWAQSUUHWIJWOWS
      GHZIHZUUJUUHWHUUNJIUUHXQXLXMWHUUNRXPXQXSYNVGZXRXJXLYNVHZXRXSXKXMVIZWDWEWF
      QSVJUUHYFYGUUAUUOUUJRYFUUHOVKUUHXQXLYGUUPUUQYHTZUUHXQXMUUAUUPUURUUBTZJWOW
      SQSVPVLUUHDUGUHWNWRWPWTEGUUHXPXJYBUUKUULYETUUHXPXKYQUUKUUMYTTUUHYFYGYCOUU
      SYIPDFZEKZUGFZEKZLZUVAUVCGHZUVCUVAGHRUUHUVAUVCVMVNZUVBUVDUHFZEKVFUVFUVHGH
      UVAUVCUVHGHGHRUUHUVAUVCUVHVQVNZUUHYFUUAYROUUTUUCPUVEUVFEKUUHUVAUVCMVNZVOV
      PUUHWMXCXFGHZXDXGGHZGHXIUUHWKUVKWLUVLGUUHXQXJXKWKUVKRUUPUULUUMWDVTWAQSUUH
      XPXLXMWLUVLRUUKUUQUURVSWEWFQSVLUUHDUGUHXCXFXDXGEGUUHXQXJYJUUPUULYLTUUHXQX
      KUUDUUPUUMUUFTUUHXPXLYKUUKUUQYMTUVGUVIUUHXPXMUUEUUKUURUUGTUVJVOVPVR $.
  $}

  $( i-squared equals -1 (expressed as i-squared plus 1 is 0).  Axiom for real
     and complex numbers, derived from 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 addcomsrg mp2an 3eqtri
    0idsr opeq12i oveq1i addresr m1p1sr opeq1i df-i df-1 df-0 3eqtr4i ) ABCZUTD
    EZBACZFEZAACZGGDEZUAFEUBVCHACZVBFEZHBIEZACZVDVAVFVBFVAAAJEZHBBJEZJEZIEZBAJE
    ZABJEZIEZCZVFAKLZBKLZVRVSVAVQMNONOABABUCUDVMHVPAVMAHIEZHAIEZHVJAVLHIVRVJAMN
    AUEPVLHBJEZHVKBHJVSVKBMOBRPUFHKLZWBHMQHRPSTVRWCVTWAMNQAHUGUHWCWAHMQHUJPUIVP
    AAIEZAVNAVOAIVSVNAMOBUEPVRVOAMNARPTVRWDAMNAUJPSUKSULWCVSVGVIMQOHBUMUHVHAAUN
    UOUIVEVAUAVBFGUTGUTDUPUPTUQTURUS $.

  $( 0 is less than 1.  Axiom for real and complex numbers, derived from set
     theory.  This construction-dependent theorem should not be referenced
     directly; instead, use ~ ax-0lt1 .

     The version of this axiom in the Metamath Proof Explorer reads
     ` 1 =/= 0 ` ; here we change it to ` 0 <RR 1 ` .  The proof of ` 0 <RR 1 `
     from ` 1 =/= 0 ` in the Metamath Proof Explorer (accessed 12-Jan-2020)
     relies on real number trichotomy.  (Contributed by Jim Kingdon,
     12-Jan-2020.)  (New usage is discouraged.) $)
  ax0lt1 $p |- 0 <RR 1 $=
    ( c0r cop c1r cc0 c1 cltrr wbr cltr 0lt1sr ltresr mpbir df-0 df-1 3brtr4i )
    AABZCABZDEFOPFGACHGIACJKLMN $.

  ${
    $d A x y $.
    $( ` 1 ` is an identity element for real multiplication.  Axiom for real
       and complex numbers, derived from set theory.  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 A x y $.
    $( ` 0 ` is an identity element for real addition.  Axiom for real and
       complex numbers, derived from set theory.  This construction-dependent
       theorem should not be referenced directly; instead, use ~ ax-0id .

       In the Metamath Proof Explorer this is not a complex number axiom but is
       instead proved from other axioms.  That proof relies on excluded middle
       and it is not known whether it is possible to prove this from the other
       axioms without excluded middle.  (Contributed by Jim Kingdon,
       16-Jan-2020.)  (New usage is discouraged.) $)
    ax0id $p |- ( A e. CC -> ( A + 0 ) = A ) $=
      ( vx vy cv cop cc0 caddc co wceq cnr cc df-c oveq1 id eqeq12d wcel c0r 0r
      cplr 0idsr wa addcnsr mpanr12 eqcomi oveq2d adantr adantl opeq12d 3eqtr3d
      df-0 a1i optocl ) BDZCDZEZFGHZUOIAFGHZAIBCAJJKLUOAIZUPUQUOAUOAFGMURNOUMJP
      ZUNJPZUAZUOQQEZGHZUMQSHZUNQSHZEZUPUOVAQJPZVGVCVFIRRUMUNQQUBUCVAVBFUOGVBFI
      VAFVBUJUDUKUEVAVDUMVEUNUSVDUMIUTUMTUFUTVEUNIUSUNTUGUHUIUL $.
  $}

  ${
    $d x A $.
    $( Existence of negative of real number.  Axiom for real and complex
       numbers, derived from 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 positive reciprocal of positive real number.  Axiom for
       real and complex numbers, derived from set theory.  This
       construction-dependent theorem should not be referenced directly;
       instead, use ~ ax-precex .

       In treatments which assume excluded middle, the ` 0 <RR A ` condition is
       generally replaced by ` A =/= 0 ` , and it may not be necessary to state
       that the reciproacal is positive.  (Contributed by Jim Kingdon,
       6-Feb-2020.)  (New usage is discouraged.) $)
    axprecex $p |- ( ( A e. RR /\ 0 <RR A ) ->
        E. x e. RR ( 0 <RR x /\ ( A x. x ) = 1 ) ) $=
      ( vy vz cr wcel cc0 cltrr wbr cmul co c1 wceq wrex c0r cop cnr bitri c1r
      wa cv wi wex elreal df-rex breq2 oveq1 eqeq1d anbi2d rexbidv imbi12d cltr
      df-0 breq1i ltresr cmr recexgt0sr opelreal anbi1i a1i mulresr df-1 eqeq2i
      wb eqid 1sr 0r opthg2 mp2an mpbiran2 syl6bb anbi12d pm5.32da syl5bb oveq2
      rspcev syl6bir expd rexlimdv syl5 syl5bi gencl imp ) BEFZGBHIZGAUAZHIZBWF
      JKZLMZTZAENZGCUAZOPZHIZWGWMWFJKZLMZTZAENZUBWEWKUBWLQFZWDCWMBWDWMBMZCQNWSW
      TTCUCCBUDWTCQUERWTWNWEWRWKWMBGHUFWTWQWJAEWTWPWIWGWTWOWHLWMBWFJUGUHUIUJUKW
      NOWLULIZWSWRWNOOPZWMHIXAGXBWMHUMUNOWLUORXAODUAZULIZWLXCUPKZSMZTZDQNWSWRDW
      LUQWSXGWRDQWSXCQFZXGWRWSXHXGTZXCOPZEFZGXJHIZWMXJJKZLMZTZTZWRXPXHXOTWSXIXK
      XHXOXCURUSWSXHXOXGWSXHTZXLXDXNXFXLXDVDXQXLXBXJHIXDGXBXJHUMUNOXCUORUTXQXNX
      EOPZLMZXFXQXMXRLWLXCVAUHXSXRSOPZMZXFLXTXRVBVCYAXFOOMZOVESQFOQFYAXFYBTVDVF
      VGXEOSOQQVHVIVJRVKVLVMVNWQXOAXJEWFXJMZWGXLWPXNWFXJGHUFYCWOXMLWFXJWMJVOUHV
      LVPVQVRVSVTWAWBWC $.
  $}

  ${
    $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 for real and complex numbers,
       derived from 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 ) ) ) $=
      ( cop cmul co caddc wceq cr cnr wcel wa c0r cplr c1r cmr cm1r eqtrd cvv
      0r vz vw cv ci wrex df-c eqeq1 2rexbidv wex opelreal anbi12i biimpri df-i
      cc oveq1i 1sr mulcnsr mpanl12 mpan2 mulcomsrg mpan 00sr oveq1d oveq2i m1r
      ax-mp eqtri 0idsr syl6eq 1idsr syl5eq opeq12d oveq2d adantl mpanl2 mpanr1
      addcnsr addcomsrg opeq12 syl2an 3eqtrrd vex opexg mp2an eleq1 oveq1 oveq2
      bi2anan9 sylan9eq eqeq2d anbi12d spc2ev syl2anc r2ex sylibr optocl ) UAUC
      ZUBUCZDZAUCZUDBUCZEFZGFZHZBIUEAIUEZCXCHZBIUEAIUEUAUBCJJUNUFWSCHXDXFABIIWS
      CXCUGUHWQJKZWRJKZLZWTIKZXAIKZLZXDLZBUIAUIZXEXIWQMDZIKZWRMDZIKZLZWSXOUDXQE
      FZGFZHZXNXSXIXPXGXRXHWQUJWRUJUKULXIYAXOMWRDZGFZWQMNFZMWRNFZDZWSXHYAYDHXGX
      HXTYCXOGXHXTMODZXQEFZYCUDYHXQEUMUOXHYIMWRPFZQOMPFZPFZNFZOWRPFZMMPFZNFZDZY
      CXHMJKZYIYQHZTYROJKZXHYRLYSTUPMOWRMUQURUSXHYMMYPWRXHYMMYLNFZMXHYJMYLNXHYJ
      WRMPFZMYRXHYJUUBHTMWRUTVAWRVBRVCUUAMMNFZMYLMMNYLQMPFZMYKMQPYTYKMHUPOVBVFV
      DQJKUUDMHVEQVBVFVGVDYRUUCMHTMVHVFVGVIXHYPWRYONFZWRXHYNWRYONXHYNWROPFZWRYT
      XHYNUUFHUPOWRUTVAWRVJRVCXHUUEWRMNFZWRYOMWRNYRYOMHTMVBVFVDWRVHZVKRVLRVKVMV
      NXGYRXHYDYGHZTXGYRYRXHLUUITWQMMWRVQVOVPXGYEWQHYFWRHYGWSHXHWQVHXHYFUUGWRYR
      XHYFUUGHTMWRVRVAUUHRYEYFWQWRVSVTWAXMXSYBLABXOXQWQSKYRXOSKUAWBTWQMSJWCWDWR
      SKYRXQSKUBWBTWRMSJWCWDWTXOHZXAXQHZLZXLXSXDYBUUJXJXPUUKXKXRWTXOIWEXAXQIWEW
      HUULXCYAWSUUJUUKXCXOXBGFYAWTXOXBGWFUUKXBXTXOGXAXQUDEWGVMWIWJWKWLWMXDABIIW
      NWOWP $.
  $}

  ${
    $d x A $.
    $( Real number less-than is irreflexive.  Axiom for real and complex
       numbers, derived from set theory.  This construction-dependent theorem
       should not be referenced directly; instead, use ~ ax-pre-ltirr .
       (Contributed by Jim Kingdon, 12-Jan-2020.)
       (New usage is discouraged.) $)
    axpre-ltirr $p |- ( A e. RR -> -. A <RR A ) $=
      ( vx cv c0r cop cltrr wbr wn cnr wcel cr wceq wrex wa elreal df-rex bitri
      wex id cltr breq12d notbid ltsosr ltrelsr soirri ltresr mtbir a1i gencl )
      BCZDEZUKFGZHZAAFGZHUJIJZAKJZBUKAUPUKALZBIMUOUQNBRBAOUQBIPQUQULUNUQUKAUKAF
      UQSZURUAUBUMUOULUJUJTGUJTIUCUDUEUJUJUFUGUHUI $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z C $.
    $( Real number less-than is weakly linear.  Axiom for real and complex
       numbers, derived from set theory.  This construction-dependent theorem
       should not be referenced directly; instead, use ~ ax-pre-ltwlin .
       (Contributed by Jim Kingdon, 12-Jan-2020.)
       (New usage is discouraged.) $)
    axpre-ltwlin $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
        ( A <RR B -> ( A <RR C \/ C <RR B ) ) ) $=
      ( vx vy vz cv c0r cop cltrr wbr wo cnr elreal wceq breq1 breq2 wcel cltr
      wi orbi1d imbi12d orbi2d orbi12d imbi2d w3a wor ltsosr sowlin mpan ltresr
      cr orbi12i 3imtr4g 3gencl ) DGZHIZEGZHIZJKZUQFGZHIZJKZVBUSJKZLZTAUSJKZAVB
      JKZVDLZTABJKZVGVBBJKZLZTVIACJKZCBJKZLZTDEFUQUSVBAMULBCDANEBNFCNUQAOZUTVFV
      EVHUQAUSJPVOVCVGVDUQAVBJPUAUBUSBOZVFVIVHVKUSBAJQVPVDVJVGUSBVBJQUCUBVBCOZV
      KVNVIVQVGVLVJVMVBCAJQVBCBJPUDUEUPMRURMRVAMRUFZUPURSKZUPVASKZVAURSKZLZUTVE
      MSUGVRVSWBTUHMUPURVASUIUJUPURUKVCVTVDWAUPVAUKVAURUKUMUNUO $.
  $}

  ${
    $d x y z A $.  $d y z B $.  $d z C $.
    $( Ordering on reals is transitive.  Axiom for real and complex numbers,
       derived from set theory.  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 A $.  $d x y B $.
    $( Apartness of reals is tight.  Axiom for real and complex numbers,
       derived from set theory.  This construction-dependent theorem should not
       be referenced directly; instead, use ~ ax-pre-apti .

       (Contributed by Jim Kingdon, 29-Jan-2020.)
       (New usage is discouraged.) $)
    axpre-apti $p |- ( ( A e. RR /\ B e. RR /\ -. ( A <RR B \/ B <RR A ) ) ->
        A = B ) $=
      ( vx vy cr wcel cltrr wbr wo wn wceq cv c0r cop wi cnr elreal breq1 breq2
      orbi12d notbid eqeq1 imbi12d eqeq2 wa aptisr 3expia ltresr orbi12i notbii
      cltr vex eqresr 3imtr4g 2gencl 3impia ) AEFBEFABGHZBAGHZIZJZABKZCLZMNZDLZ
      MNZGHZVEVCGHZIZJZVCVEKZOAVEGHZVEAGHZIZJZAVEKZOUTVAOCDVCVEABPECAQDBQVCAKZV
      IVNVJVOVPVHVMVPVFVKVGVLVCAVEGRVCAVEGSTUAVCAVEUBUCVEBKZVNUTVOVAVQVMUSVQVKU
      QVLURVEBAGSVEBAGRTUAVEBAUDUCVBPFZVDPFZUEVBVDUKHZVDVBUKHZIZJZVBVDKZVIVJVRV
      SWCWDVBVDUFUGVHWBVFVTVGWAVBVDUHVDVBUHUIUJVBVDCULUMUNUOUP $.
  $}

  ${
    $d x y z A $.  $d x y z B $.  $d x y z C $.
    $( Ordering property of addition on reals.  Axiom for real and complex
       numbers, derived from set theory.  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 w3a cltrr wbr caddc co cv c0r cop wb cnr elreal wceq
      breq1 oveq2 breq1d bibi12d breq2 breq2d breq12d bibi2d cltr ltasrg ltresr
      oveq1 cplr simp3 simp1 simp2 wa addresr breqan12d syl22anc syl6bb 3bitr4d
      a1i 3gencl biimpd ) AGHBGHCGHIABJKZCALMZCBLMZJKZDNZOPZENZOPZJKZFNZOPZVKLM
      ZVPVMLMZJKZQAVMJKZVPALMZVRJKZQVFWAVPBLMZJKZQVFVIQDEFVKVMVPARGBCDASEBSFCSV
      KATZVNVTVSWBVKAVMJUAWEVQWAVRJVKAVPLUBUCUDVMBTZVTVFWBWDVMBAJUEWFVRWCWAJVMB
      VPLUBUFUDVPCTZWDVIVFWGWAVGWCVHJVPCALULVPCBLULUGUHVJRHZVLRHZVORHZIZVJVLUIK
      ZVOVJUMMZVOVLUMMZUIKZVNVSVJVLVOUJVNWLQWKVJVLUKVCWKVSWMOPZWNOPZJKZWOWKWJWH
      WJWIVSWRQWHWIWJUNZWHWIWJUOWSWHWIWJUPWJWHUQWJWIUQVQWPVRWQJVOVJURVOVLURUSUT
      WMWNUKVAVBVDVE $.
  $}

  ${
    $d x y A $.  $d x y B $.
    $( The product of two positive reals is positive.  Axiom for real and
       complex numbers, derived from set theory.  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 A $.  $d x y z B $.  $d z C $.
    $( Strong extensionality of multiplication (expressed in terms of
       ` <RR ` ).  Axiom for real and complex numbers, derived from set theory.
       This construction-dependent theorem should not be referenced directly;
       instead, use ~ ax-pre-mulext .

       (Contributed by Jim Kingdon, 18-Feb-2020.)
       (New usage is discouraged.) $)
    axpre-mulext $p |- ( ( A e. RR /\ B e. RR /\ C e. RR )
        -> ( ( A x. C ) <RR ( B x. C ) -> ( A <RR B \/ B <RR A ) ) ) $=
      ( vx vz vy cv c0r cop cmul co cltrr wbr wo wi cnr elreal wceq wcel cltr
      cr oveq1 breq1d breq1 breq2 orbi12d imbi12d breq2d breq12d imbi1d w3a cmr
      oveq2 mulextsr1 mulresr 3adant2 3adant1 ltresr syl6bb orbi12i a1i 3imtr4d
      wb 3gencl ) DGZHIZEGZHIZJKZFGZHIZVHJKZLMZVFVKLMZVKVFLMZNZOAVHJKZVLLMZAVKL
      MZVKALMZNZOVQBVHJKZLMZABLMZBALMZNZOACJKZBCJKZLMZWFODFEVFVKVHAPUABCDAQFBQE
      CQVFARZVMVRVPWAWJVIVQVLLVFAVHJUBUCWJVNVSVOVTVFAVKLUDVFAVKLUEUFUGVKBRZVRWC
      WAWFWKVLWBVQLVKBVHJUBUHWKVSWDVTWEVKBALUEVKBALUDUFUGVHCRZWCWIWFWLVQWGWBWHL
      VHCAJUMVHCBJUMUIUJVEPSZVJPSZVGPSZUKZVEVGULKZVJVGULKZTMZVEVJTMZVJVETMZNZVM
      VPVEVJVGUNWPVMWQHIZWRHIZLMWSWPVIXCVLXDLWMWOVIXCRWNVEVGUOUPWNWOVLXDRWMVJVG
      UOUQUIWQWRURUSVPXBVCWPVNWTVOXAVEVJURVJVEURUTVAVBVD $.
  $}

  ${
    $d A x y z $.
    $( The reciprocal from ~ axprecex is unique.  (Contributed by Jim Kingdon,
       15-Jul-2021.) $)
    rereceu $p |- ( ( A e. RR /\ 0 <RR A ) ->
        E! x e. RR ( A x. x ) = 1 ) $=
      ( vy vz cr wcel cc0 cltrr wbr wa cv cmul co c1 wceq wrex adantr cc sseldi
      axresscn wrmo wreu axprecex simpr reximi wi wral eqtr3 wb simpll axmulcom
      syl simprl syl2anc simprr eqeq12d syl6bi axmulass syl3anc sylibd ad2antll
      oveq1 oveq2 ax1rid sylan9eqr rexlimddv syl5 ralrimivva eqeq1d rmo4 sylibr
      reu5 sylanbrc ) BEFZGBHIZJZBAKZLMZNOZAEPZVSAEUAZVSAEUBVPGVQHIZVSJZAEPVTAB
      UCWCVSAEWBVSUDUEULVPVSBCKZLMZNOZJZVQWDOZUFZCEUGAEUGWAVPWIACEEWGVRWEOZVPVQ
      EFZWDEFZJZJZWHVRWENUHWNGDKZHIZBWOLMZNOZJZWJWHUFDEVPWSDEPWMDBUCQWNWOEFZWSJ
      ZJZWJVQWQLMZWDWQLMZOZWHXBWJVQBLMZWOLMZWDBLMZWOLMZOZXEXBWJXFXHOZXJWNWJXKUI
      XAWNVRXFWEXHWNBRFZVQRFZVRXFOWNERBTVNVOWMUJSZWNERVQTVPWKWLUMZSZBVQUKUNWNXL
      WDRFZWEXHOXNWNERWDTVPWKWLUOSZBWDUKUNUPQXFXHWOLVBUQXBXGXCXIXDXBXMXLWORFZXG
      XCOWNXMXAXPQWNXLXAXNQZXBERWOTWNWTWSUMSZVQBWOURUSXBXQXLXSXIXDOWNXQXAXRQXTY
      AWDBWOURUSUPUTXBXCVQXDWDXAWNXCVQNLMZVQWRXCYBOWTWPWQNVQLVCVAWNWKYBVQOXOVQV
      DULVEXAWNXDWDNLMZWDWRXDYCOWTWPWQNWDLVCVAWLYCWDOVPWKWDVDVAVEUPUTVFVGVHVSWF
      ACEWHVRWENVQWDBLVCVIVJVKVSAEVLVM $.
  $}

  ${
    $d N l r u y $.
    $( Two ways to express the reciprocal of a natural number.  (Contributed by
       Jim Kingdon, 11-Jul-2021.) $)
    recriota $p |- ( N e. N. -> ( iota_ r e. RR ( <. [ <. ( <.
        { l | l <Q [ <. N , 1o >. ] ~Q } ,
        { u | [ <. N , 1o >. ] ~Q <Q u } >. +P. 1P ) , 1P >. ] ~R , 0R
        >. x. r ) = 1 ) =
        <. [ <. ( <. { l | l <Q ( *Q ` [ <. N , 1o >. ] ~Q ) } ,
        { u | ( *Q ` [ <. N , 1o >. ] ~Q ) <Q u } >. +P. 1P ) , 1P >.
        ] ~R , 0R >. ) $=
      ( vy wcel cv wbr cop cltq cab c1p co cmul c1 wceq cr syl2anc adantr cc wa
      cnpi cc0 cltrr c1o ceq cec cpp cer c0r crio crq cfv wrex pitore pitoregt0
      axprecex simprrr wreu wb simprl oveq2 eqeq1d riota2 mpbid oveq2d axresscn
      rereceu sseldi recnnre axmulcom recidpirq eqtr3d axmulass syl3anc sylancr
      oveq1d ax1cn 3eqtr3d ax1rid syl eqtrd rexlimddv ) BUBFZUCEGZUDHZDGZBUEIUF
      UGZJHDKWHAGZJHAKILUHMLIUIUGUJIZWENMZOPZUAZWJCGZNMZOPZCQUKZWGWHULUMZJHDKWR
      WIJHAKILUHMLIUIUGUJIZPEQWDWJQFZUCWJUDHZWMEQUNABDUOZABDUPZEWJUQRWDWEQFZWMU
      AZUAZWQWEWSXFWLWQWEPZWDXDWFWLURZXFXDWPCQUSZWLXGUTWDXDWMVAZXFWTXAXIWDWTXEX
      BSZWDXAXEXCSCWJVHRWPWLCQWEWNWEPWOWKOWNWEWJNVBVCVDRVEXFWSWKNMZWSONMZWEWSXF
      WKOWSNXHVFXFXLWEONMZWEXFWSWJNMZWENMZOWENMZXLXNXFXOOWENXFWJWSNMZXOOXFWJTFZ
      WSTFZXRXOPXFQTWJVGXKVIZXFQTWSVGWDWSQFZXEABDVJSZVIZWJWSVKRWDXROPXEABDVLSVM
      VQXFXTXSWETFZXPXLPYDYAXFQTWEVGXJVIZWSWJWEVNVOXFOTFYEXQXNPVRYFOWEVKVPVSXFX
      DXNWEPXJWEVTWAWBXFYBXMWSPYCWSVTWAVSWBWC $.
  $}

  ${
    $d A l n u w x y z $.

    $( Archimedean axiom.  The Archimedean property is more naturally stated
       once we have defined ` NN ` .  Unless we find another way to state it,
       we'll just use the right hand side of ~ dfnn2 in stating what we mean by
       "natural number" in the context of this axiom.

       This construction-dependent theorem should not be referenced directly;
       instead, use ~ ax-arch .  (Contributed by Jim Kingdon, 22-Apr-2020.)
       (New usage is discouraged.) $)
    axarch $p |- ( A e. RR -> E. n e.
        |^| { x | ( 1 e. x /\ A. y e. x ( y + 1 ) e. x ) } A <RR n ) $=
      ( vz vl vw vu wcel cv c0r cop wceq cltrr wbr wa cab wrex cnr cnpi cr wral
      c1 caddc co cint elreal biimpi c1o ceq cec cltq c1p cpp cer cltr ad2antrl
      archsr simplrr simprr ltresr sylibr pitonn simpr breq2d rspcedv rexlimddv
      eqbrtrrd mpd ) CUAIZEJZKLZCMZCDJZNOZDUCAJZIBJUCUDUEVPIBVPUBPAQUFZRZESVJVM
      ESRECUGUHVJVKSIZVMPPZVKFJGJZUILUJUKZULOFQWBHJULOHQLUMUNUEUMLUOUKZUPOZVRGT
      VSWDGTRVJVMGHVKFURUQVTWATIZWDPZPZCWCKLZNOZVRWGVLCWHNVJVSVMWFUSWGWDVLWHNOV
      TWEWDUTVKWCVAVBVHWGVOWIDWHVQWEWHVQIVTWDABHWAFVCUQWGVNWHMZPVNWHCNWGWJVDVEV
      FVIVGVG $.
  $}

  ${
    $d x y $.
    nntopi.n $e |- N = |^| { x | ( 1 e. x /\ A. y e. x ( y + 1 ) e. x ) } $.

    ${
      $d A x y $.  $d A y z $.
      $( Peano's inductive postulate.  This is a counterpart to ~ peano5nni
         designed for real number axioms which involve natural numbers
         (notably, ~ axcaucvg ).  (Contributed by Jim Kingdon, 14-Jul-2021.)
         (New usage is discouraged.) $)
      peano5nnnn $p |- ( ( 1 e. A /\ A. z e. A ( z + 1 ) e. A ) -> N C_ A ) $=
        ( cv c1 caddc co wcel wral wss wceq wa cr ax1re elin mpan2 wi oveq1 cin
        eleq1d cbvralv inss1 ssralv ax-mp inss2 sseli axaddrcl simplbi2com 3syl
        biimpri ralimia syl cvv cc axcnex axresscn ssexi inex2 eleq2 raleqbi1dv
        cab anbi12d elabg cint intss1 syl5eqss syl6bir syl2an syl6ss sylan2br )
        CGZHIJZDKZCDLHDKZBGZHIJZDKZBDLZEDMVTVPBCDVRVNNVSVODVRVNHIUAUCUDVQWAOEDP
        UBZDVQHWBKZVSWBKZBWBLZEWBMZWAVQHPKZWCQWCVQWGOHDPRUMSWAVTBWBLZWEWBDMWAWH
        TDPUEZVTBWBDUFUGVTWDBWBVRWBKVRPKZVSPKZVTWDTWBPVRDPUHUIWJWGWKQVRHUJSWDVT
        WKVSDPRUKULUNUOWBUPKZWCWEOZWFTPDPUQURUSUTVAWLWMWBHAGZKZVSWNKZBWNLZOZAVD
        ZKZWFWRWMAWBUPWNWBNWOWCWQWEWNWBHVBWPWDBWNWBWNWBVSVBVCVEVFWTEWSVGWBFWBWS
        VHVIVJUGVKWIVLVM $.
    $}

    ${
      $d z k $.  $d z A $.  $d z ps $.  $d z ch $.  $d z th $.  $d z ta $.
      $d k ph $.  $d N k y z $.  $d N x y z $.  $d ph x y $.
      nnindnn.1 $e |- ( z = 1 -> ( ph <-> ps ) ) $.
      nnindnn.y $e |- ( z = k -> ( ph <-> ch ) ) $.
      nnindnn.y1 $e |- ( z = ( k + 1 ) -> ( ph <-> th ) ) $.
      nnindnn.a $e |- ( z = A -> ( ph <-> ta ) ) $.
      nnindnn.basis $e |- ps $.
      nnindnn.step $e |- ( k e. N -> ( ch -> th ) ) $.
      $( Principle of Mathematical Induction (inference schema).  This is a
         counterpart to ~ nnind designed for real number axioms which involve
         natural numbers (notably, ~ axcaucvg ).  (Contributed by Jim Kingdon,
         14-Jul-2021.)  (New usage is discouraged.) $)
      nnindnn $p |- ( A e. N -> ta ) $=
        ( wcel c1 crab wa cv caddc co wral wss peano1nnnn elrab mpbir2an elrabi
        peano2nnnn a1d anim12d 3imtr4g mpcom rgen peano5nnnn mp2an sseli simprd
        sylib ) IKSZVCEVCIAHKUAZSVCEUBKVDITVDSZJUCZTUDUEZVDSZJVDUFKVDUGVETKSBFG
        KLUHQABHTKMUIUJVHJVDVFKSZVFVDSZVHAHVFKUKVIVICUBVGKSZDUBVJVHVIVIVKCDVIVK
        VIFGVFKLULUMRUNACHVFKNUIADHVGKOUIUOUPUQFGJVDKLURUSUTAEHIKPUIVBVA $.
    $}

    ${
      $d A w z $.  $d N z $.  $d N k y $.  $d N w y $.  $d N x $.
      $d k l u v z $.  $d k l u w z $.  $d l u y $.  $d x y z $.  $d w x $.
      $d l x $.  $d u x $.
      $( Mapping from ` NN ` to ` N. ` .  (Contributed by Jim Kingdon,
         13-Jul-2021.) $)
      nntopi $p |- ( A e. N -> E. z e. N.
          <. [ <. ( <. { l | l <Q [ <. z , 1o >. ] ~Q } ,
            { u | [ <. z , 1o >. ] ~Q <Q u } >. +P. 1P ) , 1P >. ] ~R , 0R >.
          = A ) $=
        ( c1o cop ceq cec cltq wbr cab c1p cpp wceq cnpi c1 vw vk vv cv cer c0r
        co wrex caddc eqeq2 rexbidv wcel 1pi eqid c1r c1q opeq1 eceq1d df-1nqqs
        syl6eqr breq2d abbidv breq1d opeq12d df-i1p oveq1d opeq1d eqeq1d rspcev
        df-1r df-1 mp2an wa cpli simplr addclpi sylancl pitonnlem2 simpr eqtr3d
        syl syl2anc ex rexlimdva cbvrexv syl6ib nnindnn ) GUDZCUDZIJZKLZMNZGOZW
        KDUDZMNZDOZJZPQUGZPJZUELZUFJZUAUDZRZCSUHXATRZCSUHZXAUBUDZRZCSUHZXAXFTUI
        UGZRZCSUHZXAERZCSUHABUAEUBFHXBTRXCXDCSXBTXAUJUKXBXFRXCXGCSXBXFXAUJUKXBX
        IRXCXJCSXBXIXAUJUKXBERXCXLCSXBEXAUJUKISULZTTRZXEUMTUNXDXNCISWIIRZXATTXO
        XAUOUFJTXOWTUOUFXOWTPPQUGZPJZUELUOXOWSXQUEXOWRXPPXOWQPPQXOWQWHUPMNZGOZU
        PWNMNZDOZJPXOWMXSWPYAXOWLXRGXOWKUPWHMXOWKIIJZKLUPXOWJYBKWIIIUQURUSUTZVA
        VBXOWOXTDXOWKUPWNMYCVCVBVDDGVEUTVFVGURVJUTVGVKUTVHVIVLXFFULZXHWHUCUDZIJ
        ZKLZMNZGOZYGWNMNZDOZJZPQUGZPJZUELZUFJZXIRZUCSUHZXKYDXGYRCSYDWISULZVMZXG
        YRYTXGVMZWIIVNUGZSULZWHUUBIJZKLZMNZGOZUUEWNMNZDOZJZPQUGZPJZUELZUFJZXIRZ
        YRUUAYSXMUUCYDYSXGVOZUMWIIVPVQUUAXATUIUGZUUNXIUUAYSUUQUUNRUUPDWIGVRWAUU
        AXAXFTUIYTXGVSVFVTYQUUOUCUUBSYEUUBRZYPUUNXIUURYOUUMUFUURYNUULUEUURYMUUK
        PUURYLUUJPQUURYIUUGYKUUIUURYHUUFGUURYGUUEWHMUURYFUUDKYEUUBIUQURZVAVBUUR
        YJUUHDUURYGUUEWNMUUSVCVBVDVFVGURVGVHVIWBWCWDYQXJUCCSYEWIRZYPXAXIUUTYOWT
        UFUUTYNWSUEUUTYMWRPUUTYLWQPQUUTYIWMYKWPUUTYHWLGUUTYGWKWHMUUTYFWJKYEWIIU
        QURZVAVBUUTYJWODUUTYGWKWNMUVAVCVBVDVFVGURVGVHWEWFWG $.
    $}
  $}

  ${
    $d F z $.  $d J l u z $.  $d l u y $.  $d x y $.
    axcaucvglemcl.n $e |- N =
      |^| { x | ( 1 e. x /\ A. y e. x ( y + 1 ) e. x ) } $.
    axcaucvglemcl.f $e |- ( ph -> F : N --> RR ) $.
    $( Lemma for ~ axcaucvg .  Mapping to ` N. ` and ` R. ` .  (Contributed by
       Jim Kingdon, 10-Jul-2021.) $)
    axcaucvglemcl $p |- ( ( ph /\ J e. N. ) -> ( iota_ z e. R.
        ( F ` <. [ <. ( <. { l | l <Q [ <. J , 1o >. ] ~Q } ,
        { u | [ <. J , 1o >. ] ~Q <Q u } >. +P. 1P ) , 1P >. ] ~R , 0R >. ) =
        <. z , 0R >. ) e. R. ) $=
      ( wcel wa cv cop cec cltq wbr cab cnr cnpi c1o ceq c1p cpp co cer c0r cfv
      wceq wreu crio cr c1 wral cint pitonn syl6eleqr ffvelrnda sylan2 elrealeu
      caddc sylib eqcom reubii riotacl syl ) AGUALZMZINGUBOUCPZQRISVJENQRESOUDU
      EUFUDOUGPUHOZFUIZDNUHOZUJZDTUKZVNDTULTLVIVMVLUJZDTUKZVOVIVLUMLZVQVHAVKHLV
      RVHVKUNBNZLCNUNVBUFVSLCVSUOMBSUPHBCEGIUQJURAHUMVKFKUSUTDVLVAVCVPVNDTVMVLV
      DVEVCVNDTVFVG $.
  $}

  ${
    axcaucvg.n $e |- N = |^| { x | ( 1 e. x /\ A. y e. x ( y + 1 ) e. x ) } $.
    axcaucvg.f $e |- ( ph -> F : N --> RR ) $.
    axcaucvg.cau $e |- ( ph ->
      A. n e. N A. k e. N ( n <RR k ->
        ( ( F ` n ) <RR ( ( F ` k ) + ( iota_ r e. RR ( n x. r ) = 1 ) ) /\
        ( F ` k ) <RR ( ( F ` n ) + ( iota_ r e. RR ( n x. r ) = 1 ) ) ) ) ) $.

    ${
      axcaucvg.g $e |- G = ( j e. N. |-> ( iota_ z e. R.
        ( F ` <. [ <. ( <. { l | l <Q [ <. j , 1o >. ] ~Q } ,
        { u | [ <. j , 1o >. ] ~Q <Q u } >. +P. 1P ) , 1P >. ] ~R , 0R >. ) =
        <. z , 0R >. ) ) $.

      ${
        $d j ph $.  $d F z $.  $d j l u z $.  $d l u y $.  $d x y $.
        $( Lemma for ~ axcaucvg .  Mapping to ` N. ` and ` R. ` yields a
           sequence.  (Contributed by Jim Kingdon, 9-Jul-2021.) $)
        axcaucvglemf $p |- ( ph -> G : N. --> R. ) $=
          ( cv cop cec cnpi c1o ceq cltq wbr cab c1p cpp cer wceq axcaucvglemcl
          co c0r cfv cnr crio fmptd ) AFUAMRFRZUBSUCTZUDUEMUFUSERUDUEEUFSUGUHUL
          UGSUITUMSIUNDRUMSUJDUOUPUOJABCDEIURKMNOUKQUQ $.
      $}

      ${
        $d F j z $.  $d G z $.  $d J j l u z $.  $d j ph $.  $d l u y $.
        $d x y $.
        $( Lemma for ~ axcaucvg .  Value of sequence when mapping to ` N. ` and
           ` R. ` .  (Contributed by Jim Kingdon, 10-Jul-2021.) $)
        axcaucvglemval $p |- ( ( ph /\ J e. N. ) ->
          ( F ` <. [ <. ( <. { l | l <Q [ <. J , 1o >. ] ~Q } ,
          { u | [ <. J , 1o >. ] ~Q <Q u } >. +P. 1P ) , 1P >.
          ] ~R , 0R >. ) =
          <. ( G ` J ) , 0R >. ) $=
          ( cop cnr cnpi wcel wa cv c1o ceq cec cltq wbr cab c1p cpp co cer c0r
          cfv wceq crio opeq1 eceq1d breq2d abbidv breq1d opeq12d oveq1d opeq1d
          cmpt fveq2d eqeq1d riotabidv adantl simpr axcaucvglemcl fvmptd eqcomd
          a1i wreu wb eqeltrd cr wf adantr caddc wral pitonn syl6eleqr ffvelrnd
          c1 cint elrealeu sylib eqcom reubii eqeq2d riota2 syl2anc mpbird ) AK
          UAUBZUCZNUDZKUESZUFUGZUHUIZNUJZXBEUDZUHUIZEUJZSZUKULUMZUKSZUNUGZUOSZI
          UPZKJUPZUOSZUQZXMDUDZUOSZUQZDTURZXNUQZWSXNXTWSFKWTFUDZUESZUFUGZUHUIZN
          UJZYDXEUHUIZEUJZSZUKULUMZUKSZUNUGZUOSZIUPZXRUQZDTURZXTUAJTJFUAYPVGUQW
          SRVPYBKUQZYPXTUQWSYQYOXSDTYQYNXMXRYQYMXLIYQYLXKUOYQYKXJUNYQYJXIUKYQYI
          XHUKULYQYFXDYHXGYQYEXCNYQYDXBWTUHYQYCXAUFYBKUEUSUTZVAVBYQYGXFEYQYDXBX
          EUHYRVCVBVDVEVFUTVFVHVIVJVKAWRVLABCDEIKLNOPVMZVNZVOWSXNTUBXSDTVQZXPYA
          VRWSXNXTTYTYSVSWSXRXMUQZDTVQZUUAWSXMVTUBUUCWSLVTXLIALVTIWAWRPWBWRXLLU
          BAWRXLWHBUDZUBCUDWHWCUMUUDUBCUUDWDUCBUJWILBCEKNWEOWFVKWGDXMWJWKUUBXSD
          TXRXMWLWMWKXSXPDTXNXQXNUQXRXOXMXQXNUOUSWNWOWPWQ $.
      $}

      ${
        $d F a b k n $.  $d F z $.  $d F j $.  $d N a b k n $.  $d G z $.
        $d a b k l n r u $.  $d j l u z $.  $d j ph $.  $d k n ph $.
        $d l u y $.  $d x y $.  $d j n $.  $d z n $.  $d j k $.  $d k z $.
        $( Lemma for ~ axcaucvg .  The result of mapping to ` N. ` and ` R. `
           satisfies the Cauchy condition.  (Contributed by Jim Kingdon,
           9-Jul-2021.) $)
        axcaucvglemcau $p |- ( ph -> A. n e. N. A. k e. N. ( n <N k ->
          ( ( G ` n ) <R ( ( G ` k ) +R [ <. ( <.
            { l | l <Q ( *Q ` [ <. n , 1o >. ] ~Q ) } ,
            { u | ( *Q ` [ <. n , 1o >. ] ~Q ) <Q u } >.
            +P. 1P ) , 1P >. ] ~R )
          /\ ( G ` k ) <R ( ( G ` n ) +R [ <. ( <.
            { l | l <Q ( *Q ` [ <. n , 1o >. ] ~Q ) } ,
            { u | ( *Q ` [ <. n , 1o >. ] ~Q ) <Q u } >.
            +P. 1P ) , 1P >. ] ~R )
          ) ) ) $=
          ( wbr co cltrr vb va cv clti cfv c1o cop ceq cec crq cltq cab c1p cpp
          cer cplr cltr wa wi cnpi wral wcel c0r cmul c1 wceq crio caddc ltrenn
          cr adantl pitonn syl6eleqr ad2antlr ad3antlr breq1 fveq2 oveq1 eqeq1d
          riotabidv oveq2d breq12d oveq12d breq2d anbi12d imbi12d oveq1d breq1d
          cint breq2 cbvral2v sylib ad3antrrr ralbidv rspcva syl2anc mpd simpld
          axcaucvglemval ad2antrr adantlr adantr recriota axcaucvglemf ffvelrnd
          cnr simplr cnp recnnpr prsrcl syl addresr eqtrd 3brtr3d ltresr simprd
          wf simpllr jca ex ralrimiva ) AHUCZGUCZUDRZYBJUEZYCJUEZMUCZYBUFUGUHUI
          ZUJUEZUKRMULYIEUCZUKREULUGZUMUNSUMUGUOUIZUPSZUQRZYFYEYLUPSZUQRZURZUSZ
          GUTVAHUTAYBUTVBZURZYRGUTYTYCUTVBZURZYDYQUUBYDURZYNYPUUCYEVCUGZYMVCUGZ
          TRYNUUCYGYHUKRMULYHYJUKREULUGUMUNSUMUGUOUIVCUGZIUEZYGYCUFUGUHUIZUKRMU
          LUUHYJUKREULUGUMUNSUMUGUOUIVCUGZIUEZUUFLUCZVDSZVEVFZLVJVGZVHSZUUDUUET
          UUCUUGUUOTRZUUJUUGUUNVHSZTRZUUCUUFUUITRZUUPUURURZYDUUSUUBEYBYCMVIVKUU
          CUUIKVBZUUFUAUCZTRZUUGUVBIUEZUUNVHSZTRZUVDUUQTRZURZUSZUAKVAZUUSUUTUSZ
          UUAUVAYTYDUUAUUIVEBUCZVBCUCVEVHSUVLVBCUVLVAURBULWIZKBCEYCMVLNVMVNUUCU
          UFKVBZUBUCZUVBTRZUVOIUEZUVDUVOUUKVDSZVEVFZLVJVGZVHSZTRZUVDUVQUVTVHSZT
          RZURZUSZUAKVAZUBKVAZUVJYSUVNAUUAYDYSUUFUVMKBCEYBMVLNVMVOAUWHYSUUAYDAY
          BYCTRZYBIUEZYCIUEZYBUUKVDSZVEVFZLVJVGZVHSZTRZUWKUWJUWNVHSZTRZURZUSZGK
          VAHKVAUWHPUWTUWFUVOYCTRZUVQUWKUVTVHSZTRZUWKUWCTRZURZUSHGUBUAKKYBUVOVF
          ZUWIUXAUWSUXEYBUVOYCTVPUXFUWPUXCUWRUXDUXFUWJUVQUWOUXBTYBUVOIVQZUXFUWN
          UVTUWKVHUXFUWMUVSLVJUXFUWLUVRVEYBUVOUUKVDVRVSVTZWAWBUXFUWQUWCUWKTUXFU
          WJUVQUWNUVTVHUXGUXHWCWDWEWFYCUVBVFZUXAUVPUXEUWEYCUVBUVOTWJUXIUXCUWBUX
          DUWDUXIUXBUWAUVQTUXIUWKUVDUVTVHYCUVBIVQZWGWDUXIUWKUVDUWCTUXJWHWEWFWKW
          LWMUWGUVJUBUUFKUVOUUFVFZUWFUVIUAKUXKUVPUVCUWEUVHUVOUUFUVBTVPUXKUWBUVF
          UWDUVGUXKUVQUUGUWAUVETUVOUUFIVQZUXKUVTUUNUVDVHUXKUVSUUMLVJUXKUVRUULVE
          UVOUUFUUKVDVRVSVTZWAWBUXKUWCUUQUVDTUXKUVQUUGUVTUUNVHUXLUXMWCWDWEWFWNW
          OWPUVIUVKUAUUIKUVBUUIVFZUVCUUSUVHUUTUVBUUIUUFTWJUXNUVFUUPUVGUURUXNUVE
          UUOUUGTUXNUVDUUJUUNVHUVBUUIIVQZWGWDUXNUVDUUJUUQTUXOWHWEWFWOWPWQZWRYTU
          UGUUDVFUUAYDABCDEFGHIJYBKLMNOPQWSWTZUUCUUOYFVCUGZYLVCUGZVHSZUUEUUCUUJ
          UXRUUNUXSVHUUBUUJUXRVFZYDAUUAUYAYSABCDEFGHIJYCKLMNOPQWSXAXBZYSUUNUXSV
          FAUUAYDEYBLMXCVOZWCUUCYFXFVBYLXFVBZUXTUUEVFUUCUTXFYCJAUTXFJXQYSUUAYDA
          BCDEFGHIJKLMNOPQXDWMZYTUUAYDXGXEYSUYDAUUAYDYSYKXHVBUYDEYBMXIYKXJXKVOZ
          YFYLXLWPXMXNYEYMXOWLUUCUXRYOVCUGZTRYPUUCUUJUUQUXRUYGTUUCUUPUURUXPXPUY
          BUUCUUQUUDUXSVHSZUYGUUCUUGUUDUUNUXSVHUXQUYCWCUUCYEXFVBUYDUYHUYGVFUUCU
          TXFYBJUYEAYSUUAYDXRXEUYFYEYLXLWPXMXNYFYOXOWLXSXTYAYA $.
      $}

      ${
        $d F b e f g k $.  $d F b e f j k $.  $d F k n $.  $d F b j k y $.
        $d F j z $.  $d G a b c d e f g k x $.  $d G c f g k l u $.
        $d G k l n u $.  $d G z $.  $d N b e f g k $.  $d N b e f j k $.
        $d N k n $.  $d N b j k y $.  $d N x $.  $d a b c e f g k ph x $.
        $d j k l u y $.  $d j k ph x $.  $d k l n r u $.  $d l u z $.
        $d n ph $.  $d x y $.  $d j n $.  $d n z $.  $d k z $.  $d g j $.
        $d g z $.  $d g y $.  $d l x $.  $d u x $.
        $( Lemma for ~ axcaucvg .  Mapping the limit from ` N. ` and ` R. ` .
           (Contributed by Jim Kingdon, 10-Jul-2021.) $)
        axcaucvglemres $p |- ( ph ->
          E. y e. RR A. x e. RR ( 0 <RR x -> E. j e. N A. k e. N ( j <RR k ->
          ( ( F ` k ) <RR ( y + x ) /\
            y <RR ( ( F ` k ) + x ) ) ) ) ) $=
          ( wbr wa cnpi va vc vb vd ve vf vg c0r cv cltr clti cplr co wral wrex
          cfv cnr cc0 cltrr caddc axcaucvglemf axcaucvglemcau caucvgsr wcel cop
          wi cr opelreal biimpri ad2antrl weq breq2 fveq2 breq1d oveq1d anbi12d
          breq2d imbi12d cbvralv rexbii imbi2i ralbii anbi2i wceq elreal biimpi
          ad2antlr simplrr ad2antrr simprr simplr breq1i ltresr syl5rbbr biimpa
          df-0 bitri syl2anc oveq2 imbi2d rexralbidv rspcv breq1 imbi1d ralbidv
          mp2d cbvrexv sylib c1o ceq cec cltq cab c1p cpp cer c1 cint syl6eleqr
          pitonn nntopi adantl simprl adantr sylc simplrl ltrennb bitrd simplll
          wb ad4antr axcaucvglemval fveq2d eqtr3d ad3antrrr rexlimddv ralrimiva
          addresr syl5bbr rspcev ad5antr oveq2d breq12d wf syl ffvelrnd oveq12d
          3imtr3d ex sylan2br oveq1 ) AUHUAUIZUJRZUBUIZGUIZUKRZUUOJUPZUCUIZUULU
          LUMZUJRZUURUUQUULULUMZUJRZSZVFZGTUNZUBTUOZVFZUAUQUNZURBUIZUSRZFUIZUUO
          USRZUUOIUPZCUIZUVIUTUMZUSRZUVNUVMUVIUTUMZUSRZSZVFZGKUNFKUOZVFZBVGUNZC
          VGUOZUCUQAUAUCEUBGHJMABCDEFGHIJKLMNOPQVAZABCDEFGHIJKLMNOPQVBVCAUURUQV
          DZUVHSZSUURUHVEZVGVDZUVJUVLUVMUWHUVIUTUMZUSRZUWHUVQUSRZSZVFZGKUNZFKUO
          ZVFZBVGUNZUWDUWFUWIAUVHUWIUWFUURVHVIVJUWGAUWFUUMUUNUDUIZUKRZUWSJUPZUU
          SUJRZUURUXAUULULUMZUJRZSZVFZUDTUNZUBTUOZVFZUAUQUNZSZUWRUXJUVHUWFUXIUV
          GUAUQUXHUVFUUMUXGUVEUBTUXFUVDUDGTUDGVKZUWTUUPUXEUVCUWSUUOUUNUKVLUXLUX
          BUUTUXDUVBUXLUXAUUQUUSUJUWSUUOJVMZVNUXLUXCUVAUURUJUXLUXAUUQUULULUXMVO
          VQVPVRVSVTWAWBWCAUXKSZUWQBVGUXNUVIVGVDZSZUVJUWPUXPUVJSZUEUIZUHVEZUVIW
          DZUWPUEUQUXOUXTUEUQUOZUXNUVJUXOUYAUEUVIWEWFWGUXQUXRUQVDZUXTSZSZUFUIZU
          WSUKRZUXAUURUXRULUMZUJRZUURUXAUXRULUMZUJRZSZVFZUDTUNZUWPUFTUYDUWTUYKV
          FZUDTUNZUBTUOZUYMUFTUOUYDUXJUHUXRUJRZUYPUXPUXJUVJUYCAUWFUXJUXOWHWIUYD
          UXTUVJUYQUXQUYBUXTWJZUXPUVJUYCWKUXTUVJUYQUYQURUXSUSRZUXTUVJUYSUHUHVEZ
          UXSUSRUYQURUYTUXSUSWPWLUHUXRWMWQUXSUVIURUSVLWNWOWRUYBUXJUYQUYPVFZVFUX
          QUXTUXIVUAUAUXRUQUAUEVKZUUMUYQUXHUYPUULUXRUHUJVLVUBUXFUYNUBUDTTVUBUXE
          UYKUWTVUBUXBUYHUXDUYJVUBUUSUYGUXAUJUULUXRUURULWSVQVUBUXCUYIUURUJUULUX
          RUXAULWSVQVPWTXAVRXBVJXFUYOUYMUBUFTUBUFVKZUYNUYLUDTVUCUWTUYFUYKUUNUYE
          UWSUKXCXDXEXGXHUYDUYETVDZUYMSZSZMUIZUYEXIVEXJXKZXLRMXMVUHEUIZXLREXMVE
          XNXOUMXNVEXPXKUHVEZKVDZVUJUUOUSRZUWMVFZGKUNZUWPVUDVUKUYDUYMVUDVUJXQUV
          IVDUVNXQUTUMUVIVDCUVIUNSBXMXRKBCEUYEMXTNXSVJVUFVUMGKVUFUUOKVDZSZVUGUG
          UIZXIVEXJXKZXLRMXMVURVUIXLREXMVEXNXOUMXNVEXPXKUHVEZUUOWDZVUMUGTVUOVUT
          UGTUOVUFBCUGEUUOKMNYAYBVUPVUQTVDZVUTSZSZUYEVUQUKRZVUQJUPZUYGUJRZUURVV
          EUXRULUMZUJRZSZVULUWMVVCVVAUYMVVDVVIVFZVUPVVAVUTYCZVUPUYMVVBUYDVUDUYM
          VUOWHYDUYLVVJUDVUQTUDUGVKZUYFVVDUYKVVIUWSVUQUYEUKVLVVLUYHVVFUYJVVHVVL
          UXAVVEUYGUJUWSVUQJVMZVNVVLUYIVVGUURUJVVLUXAVVEUXRULVVMVOVQVPVRXBYEVVC
          VVDVUJVUSUSRZVULVVCVUDVVAVVDVVNYJVUPVUDVVBUYDVUDUYMVUOYFYDVVKEUYEVUQM
          YGWRVVCVUSUUOVUJUSVUPVVAVUTWJZVQYHVVCVVFUWKVVHUWLVVFVVEUHVEZUYGUHVEZU
          SRVVCUWKVVEUYGWMVVCVVPUVMVVQUWJUSVVCVUSIUPZVVPUVMVVCAVVAVVRVVPWDUXQAU
          YCVUEVUOVVBAUXKUXOUVJYIYKZVVKABCDEFGHIJVUQKLMNOPQYLWRVVCVUSUUOIVVOYMY
          NZVVCUWHUXSUTUMZVVQUWJVVCUWFUYBVWAVVQWDUXPUWFUVJUYCVUEVUOVVBAUWFUXJUX
          OYFUUAVUFUYBVUOVVBUXQUYBUXTVUEYFWIZUURUXRYRWRUYDVWAUWJWDVUEVUOVVBUYDU
          XSUVIUWHUTUYRUUBYOYNUUCYSVVHUWHVVGUHVEZUSRVVCUWLUURVVGWMVVCVWCUVQUWHU
          SVVCVVPUXSUTUMZVWCUVQVVCVVEUQVDUYBVWDVWCWDVVCTUQVUQJVVCATUQJUUDVVSUWE
          UUEVVKUUFVWBVVEUXRYRWRVVCVVPUVMUXSUVIUTVVTUYDUXTVUEVUOVVBUYRYOUUGYNVQ
          YSVPUUHYPYQUWOVUNFVUJKUVKVUJWDZUWNVUMGKVWEUVLVULUWMUVKVUJUUOUSXCXDXEY
          TWRYPYPUUIYQUUJUWCUWRCUWHVGUVNUWHWDZUWBUWQBVGVWFUWAUWPUVJVWFUVTUWNFGK
          KVWFUVSUWMUVLVWFUVPUWKUVRUWLVWFUVOUWJUVMUSUVNUWHUVIUTUUKVQUVNUWHUVQUS
          XCVPWTXAWTXEYTWRYP $.
      $}
    $}

    ${
      $d F a j k l n u z $.  $d F a b c j k l u x y $.  $d N j k n $.
      $d N x y $.  $d b c j k l n u z $.  $d j k n ph $.  $d k l n r u $.
      $d ph x $.  $d x y $.  $d l x $.  $d u x $.
      $( Real number completeness axiom.  A Cauchy sequence with a modulus of
         convergence converges.  This is basically Corollary 11.2.13 of [HoTT],
         p.  (varies).  The HoTT book theorem has a modulus of convergence
         (that is, a rate of convergence) specified by (11.2.9) in HoTT whereas
         this theorem fixes the rate of convergence to say that all terms after
         the nth term must be within ` 1 / n ` of the nth term (it should later
         be able to prove versions of this theorem with a different fixed rate
         or a modulus of convergence supplied as a hypothesis).

         Because we are stating this axiom before we have introduced notations
         for ` NN ` or division, we use ` N ` for the natural numbers and
         express a reciprocal in terms of ` iota_ ` .

         This construction-dependent theorem should not be referenced directly;
         instead, use ~ ax-caucvg .  (Contributed by Jim Kingdon, 8-Jul-2021.)
         (New usage is discouraged.) $)
      axcaucvg $p |- ( ph ->
          E. y e. RR A. x e. RR ( 0 <RR x -> E. j e. N A. k e. N ( j <RR k ->
          ( ( F ` k ) <RR ( y + x ) /\
            y <RR ( ( F ` k ) + x ) ) ) ) ) $=
        ( vz vu cv cop cltq c1p c0r wceq vb vc va vl c1o ceq cec wbr cab cpp co
        cnpi cer cfv cnr crio cmpt breq1 cbvabv breq2 oveq1i opeq1i eceq1 ax-mp
        opeq12i fveq2i a1i opeq1 eqeq12d cbvriotav mpteq2i axcaucvglemres ) ABC
        MNDEFGDULUAOZDOUEPUFUGZQUHZUAUIZVNUBOZQUHZUBUIZPZRUJUKZRPZUMUGZSPZGUNZU
        COZSPZTZUCUOUPZUQHIUDJKLDULWIUDOZVNQUHZUDUIZVNNOZQUHZNUIZPZRUJUKZRPZUMU
        GZSPZGUNZMOZSPZTZMUOUPWHXDUCMUOWFXBTZWEXAWGXCWEXATXEWDWTGWCWSSWBWRTWCWS
        TWAWQRVTWPRUJVPWLVSWOVOWKUAUDVMWJVNQURUSVRWNUBNVQWMVNQUTUSVEVAVBWBWRUMV
        CVDVBVFVGWFXBSVHVIVJVKVL $.
    $}
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Real and complex number postulates restated as axioms
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( The complex numbers form a set.  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 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 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'; $)

  $( 1 is a real number.  Axiom for real and complex numbers, justified by
     theorem ~ ax1re .  Proofs should use ~ 1re instead.  (Contributed by Jim
     Kingdon, 13-Jan-2020.)  (New usage is discouraged.) $)
  ax-1re $a |- 1 e. RR $.
  $( $j restatement 'ax-1re' of 'ax1re'; $)

  $( ` _i ` is a complex number.  Axiom 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 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
     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 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 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'; $)

  $( Addition commutes.  Axiom for real and complex numbers, justified by
     theorem ~ axaddcom .  Proofs should normally use ~ addcom instead.
     (New usage is discouraged.)  (Contributed by Jim Kingdon, 17-Jan-2020.) $)
  ax-addcom $a |- ( ( A e. CC /\ B e. CC ) -> ( A + B ) = ( B + A ) ) $.
  $( $j restatement 'ax-addcom' of 'axaddcom'; $)

  $( Multiplication of complex numbers is commutative.  Axiom 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 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 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 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 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'; $)

  $( 0 is less than 1.  Axiom for real and complex numbers, justified by
     theorem ~ ax0lt1 .  Proofs should normally use ~ 0lt1 instead.
     (New usage is discouraged.)  (Contributed by Jim Kingdon, 12-Jan-2020.) $)
  ax-0lt1 $a |- 0 <RR 1 $.
  $( $j restatement 'ax-0lt1' of 'ax0lt1'; $)

  $( ` 1 ` is an identity element for real multiplication.  Axiom for real and
     complex numbers, justified by theorem ~ ax1rid .  (Contributed by NM,
     29-Jan-1995.) $)
  ax-1rid $a |- ( A e. RR -> ( A x. 1 ) = A ) $.
  $( $j restatement 'ax-1rid' of 'ax1rid'; $)

  $( ` 0 ` is an identity element for real addition.  Axiom for real and
     complex numbers, justified by theorem ~ ax0id .

     Proofs should normally use ~ addid1 instead.  (New usage is discouraged.)
     (Contributed by Jim Kingdon, 16-Jan-2020.) $)
  ax-0id $a |- ( A e. CC -> ( A + 0 ) = A ) $.
  $( $j restatement 'ax-0id' of 'ax0id'; $)

  ${
    $d x A $.
    $( Existence of negative of real number.  Axiom 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'; $)
  $}

  ${
    $d x A $.
    $( Existence of reciprocal of positive real number.  Axiom for real and
       complex numbers, justified by theorem ~ axprecex .  (Contributed by Jim
       Kingdon, 6-Feb-2020.) $)
    ax-precex $a |- ( ( A e. RR /\ 0 <RR A ) ->
        E. x e. RR ( 0 <RR x /\ ( A x. x ) = 1 ) ) $.
    $( $j restatement 'ax-precex' of 'axprecex'; $)
  $}

  ${
    $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 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'; $)
  $}

  $( Real number less-than is irreflexive.  Axiom for real and complex numbers,
     justified by theorem ~ ax-pre-ltirr .  (Contributed by Jim Kingdon,
     12-Jan-2020.) $)
  ax-pre-ltirr $a |- ( A e. RR -> -. A <RR A ) $.
  $( $j restatement 'ax-pre-ltirr' of 'axpre-ltirr'; $)

  $( Real number less-than is weakly linear.  Axiom for real and complex
     numbers, justified by theorem ~ axpre-ltwlin .  (Contributed by Jim
     Kingdon, 12-Jan-2020.) $)
  ax-pre-ltwlin $a |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
    ( A <RR B -> ( A <RR C \/ C <RR B ) ) ) $.
  $( $j restatement 'ax-pre-ltwlin' of 'axpre-ltwlin'; $)

  $( Ordering on reals is transitive.  Axiom for real and complex numbers,
     justified by theorem ~ axpre-lttrn .  (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'; $)

  $( Apartness of reals is tight.  Axiom for real and complex numbers,
     justified by theorem ~ axpre-apti .  (Contributed by Jim Kingdon,
     29-Jan-2020.) $)
  ax-pre-apti $a |- ( ( A e. RR /\ B e. RR /\ -. ( A <RR B \/ B <RR A ) ) ->
    A = B ) $.
  $( $j restatement 'ax-pre-apti' of 'axpre-apti'; $)

  $( Ordering property of addition on reals.  Axiom for real and complex
     numbers, justified by theorem ~ axpre-ltadd .  (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 for real and complex
     numbers, justified by theorem ~ axpre-mulgt0 .  (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'; $)

  $( Strong extensionality of multiplication (expressed in terms of ` <RR ` ).
     Axiom for real and complex numbers, justified by theorem ~ axpre-mulext

     (Contributed by Jim Kingdon, 18-Feb-2020.) $)
  ax-pre-mulext $a |- ( ( A e. RR /\ B e. RR /\ C e. RR )
      -> ( ( A x. C ) <RR ( B x. C ) -> ( A <RR B \/ B <RR A ) ) ) $.
  $( $j restatement 'ax-pre-mulext' of 'axpre-mulext'; $)

  ${
    $d A n x y $.

    $( Archimedean axiom.  Definition 3.1(2) of [Geuvers], p. 9.  Axiom for
       real and complex numbers, justified by theorem ~ axarch .

       This axiom should not be used directly; instead use ~ arch (which is the
       same, but stated in terms of ` NN ` and ` < ` ).  (Contributed by Jim
       Kingdon, 2-May-2020.)  (New usage is discouraged.) $)
    ax-arch $a |- ( A e. RR -> E. n e.
        |^| { x | ( 1 e. x /\ A. y e. x ( y + 1 ) e. x ) } A <RR n ) $.
    $( $j restatement 'ax-arch' of 'axarch'; $)
  $}

  ${
    ax-caucvg.n $e |- N = |^| { x | ( 1 e. x /\ A. y e. x ( y + 1 ) e. x ) } $.
    ax-caucvg.f $e |- ( ph -> F : N --> RR ) $.
    ax-caucvg.cau $e |- ( ph ->
      A. n e. N A. k e. N ( n <RR k ->
        ( ( F ` n ) <RR ( ( F ` k ) + ( iota_ r e. RR ( n x. r ) = 1 ) ) /\
        ( F ` k ) <RR ( ( F ` n ) + ( iota_ r e. RR ( n x. r ) = 1 ) ) ) ) ) $.

    $d F j k n $.  $d F j k x y $.  $d N j k n $.  $d N x y $.  $d j k n $.
    $d j k n ph $.  $d k n r $.  $d ph x $.  $d x y $.
    $( Completeness.  Axiom for real and complex numbers, justified by theorem
       ~ axcaucvg .

       A Cauchy sequence (as defined here, which has a rate convergence built
       in) of real numbers converges to a real number.  Specifically on rate of
       convergence, all terms after the nth term must be within ` 1 / n ` of
       the nth term.

       This axiom should not be used directly; instead use ~ caucvgre (which is
       the same, but stated in terms of the ` NN ` and ` 1 / n ` notations).
       (Contributed by Jim Kingdon, 19-Jul-2021.)
       (New usage is discouraged.) $)
    ax-caucvg $a |- ( ph ->
      E. y e. RR A. x e. RR ( 0 <RR x -> E. j e. N A. k e. N ( j <RR k ->
      ( ( F ` k ) <RR ( y + x ) /\
        y <RR ( ( F ` k ) + x ) ) ) ) ) $.

    $( $j restatement 'ax-caucvg' of 'axcaucvg'; $)
  $}

$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Derive the basic properties from the field axioms
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Some deductions from the field axioms for complex numbers
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Alias for ~ ax-cnex .  (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.  (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 $.

  $( 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 wa addcl mulcom sylan 3impa 3adant2
    wceq 3adant1 oveq12d 3eqtr4d ) ADEZBDEZCDEZFZCABGHZIHZCAIHZCBIHZGHZUFCIHZAC
    IHZBCIHZGHUDUBUCUGUJRCABJKUBUCUDUKUGRZUBUCLUFDEUDUNABMUFCNOPUEULUHUMUIGUBUD
    ULUHRUCACNQUCUDUMUIRUBBCNSTUA $.

  $( 0 is a complex number.  (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 $.

  $( ` 1 ` is a real number.  (Contributed by Jim Kingdon, 13-Jan-2020.) $)
  1re $p |- 1 e. RR $=
    ( ax-1re ) A $.

  $( ` 0 ` is a real number.  (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
     and ~ mnfnre , and we'll also be able to prove ` +oo =/= -oo ` .

     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 ).  (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.  (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 cvv wn uniex pwuninel2 ax-mp df-pnf eleq1i mtbir
    cnex recn mto nelir ) ABABCADCZSDEZFZDCZTGCUBHDOIDGJKAUADLMNAPQR $.

  $( Minus infinity is not a real number.  (Contributed by NM, 13-Oct-2005.) $)
  mnfnre $p |- -oo e/ RR $=
    ( cmnf cr wcel cc cuni cpw cvv wn cnex 2pwuninelg ax-mp df-mnf df-pnf pweqi
    cpnf eqtri eleq1i mtbir recn mto nelir ) ABABCADCZUBDEFZFZDCZDGCUEHIDGJKAUD
    DAOFUDLOUCMNPQRASTUA $.

  $( 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 disj vex elpr renepnf necon2bi
    wo renemnf jaoi sylbi con2i mprgbir ) BCDEZFGHAIZUCJZKABABUCLUEUDBJZUEUDCHZ
    UDDHZQUFKZUDCDAMNUGUIUHUFUDCUDOPUFUDDUDRPSTUAUB $.

  ${
    $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 $.

  ${
    $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 clt wbr cltrr cv w3a cmnf csn cun cpnf cxp wo brun wceq
      wi wa copab df-ltxr breqi bitri eleq1 breq1 3anbi13d breq2 3anbi23d brabg
      eqid simp3 syl6bi brxp simprbi elsni syl a1i renepnf neneqd pm2.24 syl6ci
      adantl simplbi renemnf adantr jaod syl5bi 3adant3 ibir orcd sylibr 3expia
      wn wb impbid ) AEFZBEFZUAZABGHZABIHZWAABCJZEFZDJZEFZWCWEIHZKZCDUBZHZABELM
      ZNZOMZPZWKEPZNZHZQZVTWBWAABWIWPNZHWRABGWSCDUCUDABWIWPRUEZVTWJWBWQVTWJVRVS
      WBKZWBWHVRWFAWEIHZKXACDABEEWIWCASWDVRWGXBWFWCAEUFWCAWEIUGUHWEBSWFVSXBWBVR
      WEBEUFWEBAIUIUJWIULUKZVRVSWBUMUNWQABWNHZABWOHZQVTWBABWNWORVTXDWBXEVSXDWBT
      VRVSXDBOSZXFVOWBXDXFTVSXDBWMFZXFXDAWLFXGABWLWMUOUPBOUQURUSVSBOBUTVAXFWBVB
      VCVDVRXEWBTVSVRXEALSZXHVOWBXEXHTVRXEAWKFZXHXEXIVSABWKEUOVEALUQURUSVRALAVF
      VAXHWBVBVCVGVHVIVHVIVRVSWBWAXAWRWAXAWJWQXAWJVRVSWJXAVPWBXCVJVKVLWTVMVNVQ
      $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Restate the ordering postulates with extended real "less than"
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Real number less-than is irreflexive.  Axiom for real and complex numbers,
     derived from set theory.  This restates ~ ax-pre-ltirr with ordering on
     the extended reals.  New proofs should use ~ ltnr instead for naming
     consistency.  (New usage is discouraged.)  (Contributed by Jim Kingdon,
     15-Jan-2020.) $)
  axltirr $p |- ( A e. RR -> -. A < A ) $=
    ( cr wcel clt wbr cltrr ax-pre-ltirr wb ltxrlt anidms mtbird ) ABCZAADEZAAF
    EZAGLMNHAAIJK $.

  $( Real number less-than is weakly linear.  Axiom for real and complex
     numbers, derived from set theory.  This restates ~ ax-pre-ltwlin with
     ordering on the extended reals.  (Contributed by Jim Kingdon,
     15-Jan-2020.) $)
  axltwlin $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
      ( A < B -> ( A < C \/ C < B ) ) ) $=
    ( cr wcel w3a cltrr wbr wo clt ax-pre-ltwlin ltxrlt 3adant3 3adant2 3adant1
    wb ancoms orbi12d 3imtr4d ) ADEZBDEZCDEZFZABGHZACGHZCBGHZIABJHZACJHZCBJHZIA
    BCKTUAUGUDPUBABLMUCUHUEUIUFTUBUHUEPUAACLNUAUBUIUFPZTUBUAUJCBLQORS $.

  $( Ordering on reals is transitive.  Axiom for real and complex numbers,
     derived from 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 for real and complex
     numbers, derived from 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 $.

  $( Apartness of reals is tight.  Axiom for real and complex numbers, derived
     from set theory.  (This restates ~ ax-pre-apti with ordering on the
     extended reals.)  (Contributed by Jim Kingdon, 29-Jan-2020.) $)
  axapti $p |- ( ( A e. RR /\ B e. RR /\ -. ( A < B \/ B < A ) ) -> A = B ) $=
    ( cr wcel clt wbr wo wn wceq cltrr ltxrlt ancoms orbi12d notbid ax-pre-apti
    wa wb 3expia sylbid 3impia ) ACDZBCDZABEFZBAEFZGZHZABIZUAUBPZUFABJFZBAJFZGZ
    HZUGUHUEUKUHUCUIUDUJABKUBUAUDUJQBAKLMNUAUBULUGABORST $.

  $( The product of two positive reals is positive.  Axiom for real and complex
     numbers, derived from 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 $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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'.  Part of
     definition 11.2.7(vi) of [HoTT], p.  (varies).  (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' is irreflexive.  (Contributed by NM, 18-Aug-1999.) $)
  ltnr $p |- ( A e. RR -> -. A < A ) $=
    ( axltirr ) AB $.

  ${
    $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 wor wpo cv wbr wo wi wral wtru wcel wn ltnr adantl lttr
      w3a wa ispod trud axltwlin rgen3 df-iso mpbir2an ) DEFDEGZAHZBHZEIZUHCHZE
      IZUKUIEIJKZCDLBDLADLUGMABCDEUHDNZUHUHEIOMUHPQUNUIDNUKDNSUJUIUKEITULKMUHUI
      UKRQUAUBUMABCDDDUHUIUKUCUDABCDEUEUF $.
  $}

  $( 'Greater than' is a strict ordering.  (Contributed by JJ, 11-Oct-2018.) $)
  gtso $p |- `' < Or RR $=
    ( vx cr clt wor ccnv ltso cc0 wcel cv wex wb 0re elex2 cnvsom mp2b mpbi ) B
    CDZBCEDZFGBHAIBHAJQRKLAGBMABCNOP $.

  $( Tightness of real apartness.  (Contributed by NM, 5-May-1999.) $)
  lttri3 $p |- ( ( A e. RR /\ B e. RR ) ->
                ( A = B <-> ( -. A < B /\ -. B < A ) ) ) $=
    ( cr wcel wa wceq clt wbr wn wi ltnr breq2 notbid syl5ibcom breq1 adantr wo
    jcad ioran axapti 3expia syl5bir impbid ) ACDZBCDZEZABFZABGHZIZBAGHZIZEZUDU
    GULJUEUDUGUIUKUDAAGHZIZUGUIAKZUGUMUHABAGLMNUDUNUGUKUOUGUMUJABAGOMNRPULUHUJQ
    IZUFUGUHUJSUDUEUPUGABTUAUBUC $.

  $( Tightness of real apartness.  (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 $.

  $( Transitive law, weaker form of ` ( A < B /\ B <_ C ) -> A < C ` .
     (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 clt wbr cle wn wi wa lttr 3coml expcomd con3 wb lenlt 3adant1
    syl6 3adant2 imbi12d sylibrd impd ) ADEZBDEZCDEZFZABGHZBCIHZACIHZUHUICBGHZJ
    ZCAGHZJZKZUJUKKUHUIUNULKUPUHUNUIULUGUEUFUNUILULKCABMNOUNULPTUHUJUMUKUOUFUGU
    JUMQUEBCRSUEUGUKUOQUFACRUAUBUCUD $.

  $( 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 w3a clt wbr wo wn cle wa wi axltwlin 3coml orcom syl6ib con3d wb lenlt
    wcel 3adant3 3adant1 anbi12d ioran syl6bbr 3adant2 3imtr4d ) ADTZBDTZCDTZEZ
    BAFGZCBFGZHZIZCAFGZIZABJGZBCJGZKZACJGZUKUPUNUKUPUMULHZUNUJUHUIUPVBLCABMNUMU
    LOPQUKUTULIZUMIZKUOUKURVCUSVDUHUIURVCRUJABSUAUIUJUSVDRUHBCSUBUCULUMUDUEUHUJ
    VAUQRUIACSUFUG $.

  $( 'Less than or equal to' is reflexive.  (Contributed by NM,
     18-Aug-1999.) $)
  leid $p |- ( A e. RR -> A <_ A ) $=
    ( cr wcel cle wbr clt wn ltnr wb lenlt anidms mpbird ) ABCZAADEZAAFEGZAHMNO
    IAAJKL $.

  $( 'Less than' implies not equal.  See also ~ ltap which is the same but for
     apartness.  (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 wi wn lttr 3anidm13 expd ltnr adantr con3 syl6ci ) ACD
    ZBCDZEZABFGZBAFGZAAFGZHUBIZUAISTUAUBQRTUAEUBHABAJKLQUCRAMNUAUBOP $.

  $( '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 ) ) $=
    ( cr wcel wa clt wbr wn cle ltnsym lenlt sylibrd ) ACDBCDEABFGBAFGHABIGABJA
    BKL $.

  $( Transitive law.  Part of Definition 11.2.7(vi) of [HoTT], p.  (varies).
     (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 wa wn simprl wb simpl1 simpl2 lenlt syl2anc mpbid
    pm2.21d idd wo simprr wi simpl3 axltwlin syl3anc mpd mpjaod ex ) ADEZBDEZCD
    EZFZABGHZBCIHZJZACIHZUMUPJZBAIHZUQUQURUSUQURUNUSKZUMUNUOLURUJUKUNUTMUJUKULU
    PNZUJUKULUPOZABPQRSURUQTURUOUSUQUAZUMUNUOUBURUKULUJUOVCUCVBUJUKULUPUDVABCAU
    EUFUGUHUI $.

  $( Transitive law.  Part of Definition 11.2.7(vi) of [HoTT], p.  (varies).
     (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 cle wa wn simprr wb simpl2 simpl3 lenlt syl2anc mpbid
    wo simprl wi axltwlin adantr mpd ecased ex ) ADEZBDEZCDEZFZABGHZBCIHZJZACGH
    ZUJUMJZUNCBGHZUOULUPKZUJUKULLUOUHUIULUQMUGUHUIUMNUGUHUIUMOBCPQRUOUKUNUPSZUJ
    UKULTUJUKURUAUMABCUBUCUDUEUF $.

  $( '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
    $.

  $( 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 $.

  ${
    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 eqle mpan ) ADEABFABGHCABIJ $.

    $( 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 eleq1 mpbiri eqle mpancom ) BDEZBAFZBAGHNMADECBADI
      JBAKL $.

    ${
      ltneii.2 $e |- A < B $.
      $( 'Less than' implies not equal.  See also ~ gtapii which is the same
         for apartness.  (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 $.
    $( Tightness of real apartness.  (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 $.

    $( Tightness of real apartness.  (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' 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' 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 $.

    ${
      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 wceq wa letri letri3i biimpri sylan2 3impb 3comr eqcomd sylan
        w3a eqlei 3impa 3jca 3anim123i impbii ) ABGHZBCGHZCAGHZSZABIZBCIZCAIZSU
        HUIUJUKUEUFUGUIUFUGJUEBAGHZUIBCAEFDKUIUEULJABDELMNOUFUGUEUJUFUGUEUJUGUE
        JUFCBGHZUJCABFDEKUJUFUMJBCEFLMNOPUEUFUGUKUEUFJACGHZUGUKABCDEFKUNUGJZACA
        CIUOACDFLMQRUAUBUIUEUJUFUKUGABDTBCETCAFTUCUD $.
    $}

    $( 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.  See also ~ gtapd which is the same but
         for apartness.  (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 $.
    $}

    ltd.2 $e |- ( ph -> B e. RR ) $.
    $( Tightness of real apartness.  (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 $.

    $( Tightness of real apartness.  (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.) $)
    lenltd $p |- ( ph -> ( A <_ B <-> -. B < A ) ) $=
      ( cr wcel cle wbr clt wn wb lenlt 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 $.
    $}

    ${
      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 ) $.
    ${
      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 $.
    $}

    ${
      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 $.
    $}
  $}

  $( 0 is less than 1.  Theorem I.21 of [Apostol] p. 20.  Part of definition
     11.2.7(vi) of [HoTT], p.  (varies).  (Contributed by NM, 17-Jan-1997.) $)
  0lt1 $p |- 0 < 1 $=
    ( cc0 c1 clt wbr cltrr ax-0lt1 cr wcel wb 0re 1re ltxrlt mp2an mpbir ) ABCD
    ZABEDZFAGHBGHOPIJKABLMN $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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 cmul ax-1cn a1i id adddird mulid2 oveq12d eqtrd ) ABC
    ZDDEFAGFDAGFZPEFAAEFODDADBCOHIZQOJKOPAPAEALZRMN $.

  $( A theorem for complex numbers analogous the second Peano postulate
     ~ peano2 .  (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 ~ peano2 .
     (Contributed by NM, 5-Jul-2005.) $)
  peano2re $p |- ( A e. RR -> ( A + 1 ) e. RR ) $=
    ( cr wcel c1 caddc co 1re readdcl mpan2 ) ABCDBCADEFBCGADHI $.

  $( Addition commutes.  (Contributed by Jim Kingdon, 17-Jan-2020.) $)
  addcom $p |- ( ( A e. CC /\ B e. CC ) -> ( A + B ) = ( B + A ) ) $=
    ( ax-addcom ) ABC $.

  $( ` 0 ` is an additive identity.  (Contributed by Jim Kingdon,
     16-Jan-2020.) $)
  addid1 $p |- ( A e. CC -> ( A + 0 ) = A ) $=
    ( ax-0id ) AB $.

  $( ` 0 ` is a left identity for addition.  (Contributed by Scott Fenton,
     3-Jan-2013.) $)
  addid2 $p |- ( A e. CC -> ( 0 + A ) = A ) $=
    ( cc wcel cc0 caddc co wceq 0cn addcom mpan2 addid1 eqtr3d ) ABCZADEFZDAEFZ
    AMDBCNOGHADIJAKL $.

  ${
    $d A x $.  $d B x $.  $d C x $.
    $( Cancellation law for addition over the reals.  (Contributed by Scott
       Fenton, 3-Jan-2013.) $)
    readdcan $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
        ( ( C + A ) = ( C + B ) <-> A = B ) ) $=
      ( vx cr wcel caddc co wceq wa oveq2 recnd addassd adantr cc oveq1d addid2
      cc0 syl eqtrd w3a cv wi ax-rnegex 3ad2ant3 adantl wb simprl simpl3 simpl1
      simpl2 eqeq12d mpbird addcom syl2anc simplrr 3eqtr3d ex rexlimddv impbid1
      wrex eqtr3d ) AEFZBEFZCEFZUAZCAGHZCBGHZIZABIZVFCDUBZGHZRIZVIVJUCDEVEVCVMD
      EVAVDDCUDUEVFVKEFZVMJZJZVIVJVPVIJZVKCGHZAGHZVRBGHZABVQVSVTIZVKVGGHZVKVHGH
      ZIZVIWDVPVGVHVKGKUFVPWAWDUGVIVPVSWBVTWCVPVKCAVPVKVFVNVMUHLZVPCVCVDVEVOUIL
      ZVPAVCVDVEVOUJLZMVPVKCBWEWFVPBVCVDVEVOUKLZMULNUMVQVSRAGHZAVQVRRAGVQVLVRRV
      QCOFZVKOFZVLVRIVPWJVIWFNVPWKVIWENCVKUNUOVFVNVMVIUPVBZPVQAOFZWIAIVPWMVIWGN
      AQSTVQVTRBGHZBVQVRRBGWLPVQBOFZWNBIVPWOVIWHNBQSTUQURUSABCGKUT $.
  $}

  $( ` 0 ` is its own additive identity.  (Contributed by Scott Fenton,
     3-Jan-2013.) $)
  00id $p |- ( 0 + 0 ) = 0 $=
    ( cc0 cc wcel caddc co wceq 0cn addid1 ax-mp ) ABCAADEAFGAHI $.

  ${
    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 $.

    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 $.
    $( 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 ) $.
    $( ` 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 ) ) $=
      ( cc wcel caddc co wceq addcom syl2anc ) ABFGCFGBCHICBHIJDEBCKL $.

    mul12d.3 $e |- ( ph -> C e. CC ) $.
    $( 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 $.
  $}

$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  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.) $)
    add42i $p |- ( ( A + B ) + ( C + D ) ) = ( ( A + C ) + ( D + B ) ) $=
      ( caddc co add4i addcomi oveq2i eqtri ) ABIJCDIJIJACIJZBDIJZIJODBIJZIJABC
      DEFGHKPQOIBDFHLMN $.
  $}

  ${
    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 ) $.

  ${
    $d a b c d x y z A $.  $d x B $.  $d x C $.
    $( Addition cancellation of a real number from two complex numbers.  Lemma
       for ~ cnegex .  (Contributed by Eric Schmidt, 22-May-2007.) $)
    cnegexlem1 $p |- ( ( A e. RR /\ B e. CC /\ C e. CC ) ->
                  ( ( A + B ) = ( A + C ) <-> B = C ) ) $=
      ( vx cr wcel cc caddc co wceq cc0 wi recn wa oveq2 addassd eqeq12d adantl
      wb oveq1 w3a wrex ax-rnegex 3ad2ant1 simpr simpll simplrl simplrr syl5ibr
      cv adantr addcom eqeq1d adantlr addid2 eqeqan12d ad2antrr bitrd ex sylbid
      imp sylibd sylan2 rexlimdva 3impb syl3an1 mpd impbid1 ) AEFZBGFZCGFZUAZAB
      HIZACHIZJZBCJZVLADUJZHIZKJZDEUBZVOVPLZVIVJVTVKDAUCUDVIAGFZVJVKVTWALZAMWBV
      JVKWCWBVJVKNZNZVSWADEVQEFWEVQGFZVSWALVQMWEWFNZVSWAWGVSNVOVQAHIZBHIZWHCHIZ
      JZVPWGVOWKLVSVOWKWGVQVMHIZVQVNHIZJVMVNVQHOWGWIWLWJWMWGVQABWEWFUEZWBWDWFUF
      ZWBVJVKWFUGPWGVQACWNWOWBVJVKWFUHPQUIUKWGVSWKVPSZWGVSWHKJZWPWBWFVSWQSWDWBW
      FNVRWHKAVQULUMUNWGWQWPWGWQNWKKBHIZKCHIZJZVPWQWKWTSWGWQWIWRWJWSWHKBHTWHKCH
      TQRWEWTVPSZWFWQWDXAWBVJVKWRBWSCBUOCUOUPRUQURUSUTVAVBUSVCVDVEVFVGBCAHOVH
      $.

    $( Existence of a real number which produces a real number when multiplied
       by ` _i ` .  (Hint: zero is such a number, although we don't need to
       prove that yet).  Lemma for ~ cnegex .  (Contributed by Eric Schmidt,
       22-May-2007.) $)
    cnegexlem2 $p |- E. y e. RR ( _i x. y ) e. RR $=
      ( vx vz cc wcel cv ci cmul co caddc wceq cr wrex wa wi adantr recn addid2
      cc0 oveq1 0cn cnre ax-rnegex ax-icn mulcl sylancr 3ad2ant3 ad2antrl add32
      w3a 3com23 eqcomd sylan9eq adantrl 3ad2ant2 eqtr3d ex syl3an 3expa simplr
      3eqtr3d imp eqeltrrd exp32 rexlimdva mpd reximdva rexlimiv mp2b ) SDESBFZ
      GAFZHIZJIZKZALMZBLMVLLEZALMZUABASUBVOVQBLVJLEZVNVPALVRVKLEZNZVJCFZJIZSKZC
      LMZVNVPOZVRWDVSCVJUCPVTWCWECLVTWALEZNZWCVNVPWGWCVNNZNWAVLLWGWHWAVLKZVRVSW
      FWHWIOZVRVJDEZVSVLDEZWFWADEZWJVJQVSGDEVKDEWLUDVKQGVKUEUFWAQWKWLWMUJZWHWIW
      NWHNZSWAJIZWAVLWNWPWAKZWHWMWKWQWLWARUGPWOWBVLJIZSVLJIZWPVLWCWRWSKWNVNWBSV
      LJTUHWNVNWRWPKWCWNVNWRVMWAJIZWPWKWMWLWRWTKVJWAVLUIUKVNWPWTSVMWAJTULUMUNWN
      WSVLKZWHWLWKXAWMVLRUOPVAUPUQURUSVBVTWFWHUTVCVDVEVFVGVHVI $.

    $( Existence of real number difference.  Lemma for ~ cnegex .  (Contributed
       by Eric Schmidt, 22-May-2007.) $)
    cnegexlem3 $p |- ( ( b e. RR /\ y e. RR ) -> E. c e. RR ( b + c ) = y ) $=
      ( vx cv cr wcel wa caddc co wceq wrex ax-rnegex adantlr adantr cc wb recn
      cc0 anim1i readdcl anim12i add32 3expa addcl addcom sylan eqtr2d adantllr
      syl sylanl2 ancoms sylan2 id sylan9eq adantlll eqeq12d simpllr cnegexlem1
      an32s simplr syl3anc bitr3d syl2an rexbidva mpbid adantl r19.29a ) BEZFGZ
      AEZFGZHZVKDEZIJZSKZVICEZIJZVKKZCFLZDFVMVNFGZHZVPHZVIVNIJZVQIJZSKZCFLZVTWB
      WGVPVJWAWGVLVJWAHWDFGWGVIVNUACWDMUJNOWCWFVSCFWCVIPGZVKPGZHZWAHZVPHZVQPGZW
      FVSQVQFGWBWKVPVMWJWAVJWHVLWIVIRVKRUBTTVQRWLWMHZVNVRIJZVNVKIJZKZWFVSWNWOWE
      WPSWKWMWOWEKZVPWHWAWMWRWIWAWHVNPGZWMWRVNRZWHWSHWMHWEVRVNIJZWOWHWSWMWEXAKV
      IVNVQUCUDWHWMWSXAWOKZWHWMHVRPGZWSXBVIVQUEZVRVNUFUGUTUHUKUINWLWPSKZWMWIWAV
      PXEWHWIWAHVPWPVOSWAWIWSWPVOKZWTWSWIXFVNVKUFULUMVPUNUOUPOUQWKWMWQVSQZVPWKW
      MHWAXCWIXGWJWAWMVAWJWMXCWAWHWMXCWIXDNNWHWIWAWMURVNVRVKUSVBNVCVDVEVFVLVPDF
      LVJDVKMVGVH $.

    $( Existence of the negative of a complex number.  (Contributed by Eric
       Schmidt, 21-May-2007.) $)
    cnegex $p |- ( A e. CC -> E. x e. CC ( A + x ) = 0 ) $=
      ( va vb vy vc vd cc wcel cv ci cmul co caddc wceq cr wrex cc0 wa ax-icn
      cnre cnegexlem2 cnegexlem3 ad2ant2lr mulcl sylancr syl2an adantlr adantll
      addcl adantr anim12i sylan2 ad2antrr ad2antlr simpr addassd simpll adantl
      recn mpan adddi mp3an1 oveq2d eqtr4d oveq1d eqtr3d adantlrr eqtr2d eqeq1d
      oveq2 biimpa rspcev syl2anc readdcl ax-rnegex ad2ant2rl r19.29a rexlimddv
      adantllr syl rexlimdvaa mpi oveq1 rexbidv syl5ibrcom rexlimivv ) BHIBCJZK
      DJZLMZNMZOZDPQCPQBAJZNMZROZAHQZCDBUAWLWPCDPPWHPIZWIPIZSZWPWLWKWMNMZROZAHQ
      ZWSKEJZLMZPIZEPQXBEUBWSXEXBEPWSXCPIZXESZSZWIFJZNMZXCOZXBFPWRXFXKFPQWQXEED
      FUCUDXHXIPIZXKSZSZWHXDNMZGJZNMZROZXBGPXNXPPIZSZXRSKXILMZXPNMZHIZWKYBNMZRO
      ZXBXTYCXRXMXSYCXHXLXSYCXKXLYAHIZXPHIZYCXSXLKHIZXIHIZYFTXIUTZKXIUEZUFXPUTZ
      YAXPUJUGUHUIUKXTXRYEXTXQYDRWSXMXSXQYDOXGWSXMSXSSYDWHKXJLMZNMZXPNMZXQWSXLX
      SYDYOOZXKWSXLSWHHIZWIHIZSZYISZYGYPXSWSYSXLYIWQYQWRYRWHUTWIUTULYJULYLYTYGS
      ZWKYANMZXPNMYDYOUUAWKYAXPYSWKHIZYIYGYRYQWJHIZUUCYHYRUUDTKWIUEVAZWHWJUJUMU
      NYIYFYSYGYHYIYFTYKVAZUOYTYGUPUQUUAUUBYNXPNYTUUBYNOYGYTUUBWHWJYANMZNMYNYTW
      HWJYAYQYRYIURYRUUDYQYIUUEUOYIYFYSUUFUSUQYTYMUUGWHNYRYIYMUUGOZYQYHYRYIUUHT
      KWIXIVBVCUIVDVEUKVFVGUGVHXMYOXQOZWSXSXKUUIXLXKYNXOXPNXKYMXDWHNXJXCKLVKVDV
      FUSUOVIVTVJVLXAYEAYBHWMYBOWTYDRWMYBWKNVKVJVMVNXHXRGPQZXMWQXEUUJWRXFWQXESX
      OPIUUJWHXDVOGXOVPWAVQUKVRVSWBWCWLWOXAAHWLWNWTRBWKWMNWDVJWEWFWGWA $.
  $}

  ${
    $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 cv caddc co cc0 wceq wrex cnegex addcom eqeq1d rexbidva mpbid
      wa ) BCDZBAEZFGZHIZACJRBFGZHIZACJABKQTUBACQRCDPSUAHBRLMNO $.
  $}

  ${
    $d x A $.  $d x B $.  $d x C $.
    $( 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 $.
  $}

  ${
    addcani.1 $e |- A e. CC $.
    addcani.2 $e |- B e. CC $.
    addcani.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
      $.
  $}

  ${
    addcand.1 $e |- ( ph -> A e. CC ) $.
    addcand.2 $e |- ( ph -> B e. CC ) $.
    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 $.
    $}
  $}

  $( Alternate proof of ~ 0cn .  (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 wcel cv caddc co wceq crio cmin wa negeu riotacl syl riotabidv
      wreu ancoms eqeq2 oveq1 eqeq1d df-sub ovmpt2g mpd3an3 ) BFGZCFGZCAHZIJZBK
      ZAFLZFGZBCMJULKUHUGUMUHUGNUKAFSUMACBOUKAFPQTDEBCFFEHZUIIJZDHZKZAFLULMUOBK
      ZAFLFUPBKUQURAFUPBUOUARUNCKZURUKAFUSUOUJBUNCUIIUBUCRDEAUDUEUF $.
  $}

  $( 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 $.

  ${
    $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 w3a subadd23 subcl addcom sylan 3impa eqtr3d 3com23
    wceq wa ) ADEZCDEZBDEZABCFGHGZBACFGZHGZQSTUAIUCBHGZUBUDACBJSTUAUEUDQZSTRUCD
    EUAUFACKUCBLMNOP $.

  $( 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 addcomi eqtr3i oveq1i ) BAGHZAIHBCAIHBAEDJNCAIAB
      GHNCABDEKFLML $.
  $}

  $( 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 A x $.
    $( Closure law for negative of reals.  (Contributed by NM, 20-Jan-1997.) $)
    renegcl $p |- ( A e. RR -> -u A e. RR ) $=
      ( vx cr wcel cv caddc co cc0 wceq wrex cneg ax-rnegex wa recn cmin df-neg
      cc wb eqeq1i 0cn subadd mp3an1 syl5bb sylan2 wi eleq1a adantl sylbird mpd
      sylan rexlimdva ) ACDZABEZFGHIZBCJAKZCDZBALULUNUPBCULUMCDZMUNUOUMIZUPUQUL
      UMQDZURUNRUMNURHAOGZUMIZULUSMUNUOUTUMAPSULAQDZUSVAUNRZANHQDVBUSVCTHAUMUAU
      BUJUCUDUQURUPUEULUMCUOUFUGUHUKUI $.
  $}

  ${
    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 $=
      ( cr wcel cneg renegcl ax-mp ) ACDAECDBAFG $.

    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 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 analog 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 analog 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 Andrew Salmon, 19-Nov-2011.) $)
    negdii $p |- -u ( A + B ) = ( -u A + -u B ) $=
      ( caddc co cneg wceq cc0 addcli negidi oveq12i eqtri negcli add4i 3eqtr2i
      00id addcani mpbi ) ABEFZTGZEFZTAGZBGZEFZEFZHUAUEHUBIAUCEFZBUDEFZEFZUFTAB
      CDJZKUIIIEFIUGIUHIEACKBDKLQMAUCBUDCACNZDBDNZOPTUAUEUJTUJNUCUDUKULJRS $.

    $( 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.  See also ~ subap0d which
         is the same thing for apartness rather than negated equality.
         (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 ax-1cn a1i pncand ) ABCZADIEDBCIFGH $.

  $( 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 ax-1cn a1i npcand ) ABCZADIEDBCIFGH $.

  ${
    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 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 ax-1cn a1i subcld mulcld ) ABCZAADEFLGZLADMDBCLHIJK
    $.

  $( 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 wa subcl mulcom sylan 3impa 3adant2
    w3a 3adant1 oveq12d 3eqtr4d ) ADEZBDEZCDEZRZCABFGZHGZCAHGZCBHGZFGZUFCHGZACH
    GZBCHGZFGUDUBUCUGUJICABJKUBUCUDUKUGIZUBUCLUFDEUDUNABMUFCNOPUEULUHUMUIFUBUDU
    LUHIUCACNQUCUDUMUIIUBBCNSTUA $.

  $( Multiplication by ` 0 ` .  Theorem I.6 of [Apostol] p. 18.  (Contributed
     by NM, 10-Aug-1999.) $)
  mul02 $p |- ( A e. CC -> ( 0 x. A ) = 0 ) $=
    ( cc wcel cc0 cmul co cmin 0cn subidi oveq1i subdir mp3an12 wa mulcl subidd
    wceq mpan eqtrd syl5eqr ) ABCZDAEFZDDGFZAEFZDUBDAEDHIJTUCUAUAGFZDDBCZUETUCU
    DPHHDDAKLUETUDDPHUETMUADANOQRS $.

  $( Zero times a real is zero.  Although we prove it as a corollary of
     ~ mul02 , the name is for consistency with the Metamath Proof Explorer
     which proves it before ~ mul02 .  (Contributed by Scott Fenton,
     3-Jan-2013.) $)
  mul02lem2 $p |- ( A e. RR -> ( 0 x. A ) = 0 ) $=
    ( cr wcel cc cc0 cmul co wceq recn mul02 syl ) ABCADCEAFGEHAIAJK $.

  $( 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 $.

  ${
    mul01i.1 $e |- A e. CC $.
    $( 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 $.
  $}

  ${
    mul01d.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 $.
  $}

  $( The imaginary unit ` _i ` is not zero.  (Contributed by NM,
     6-May-1999.) $)
  ine0 $p |- _i =/= 0 $=
    ( ci cc0 wceq c1 0lt1 gtneii neii caddc co cmul oveq2 ax-icn mul01i syl6req
    0re oveq1d ax-1cn addid2i ax-i2m1 3eqtr3g mto neir ) ABABCZDBCDBBDOEFGUCBDH
    IAAJIZDHIDBUCBUDDHUCUDABJIBABAJKALMNPDQRSTUAUB $.

  $( 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 $.

  $( 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 $.

    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 $.
  $}

  ${
    mulsubfacd.1 $e |- ( ph -> A e. CC ) $.
    mulsubfacd.2 $e |- ( ph -> B e. CC ) $.
    $( 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 cc wcel ax-1cn a1i subdird mulid2d oveq2d eqtr2d ) ABFG
      HCIHBCIHZFCIHZGHRCGHABFCDFJKALMENASCRGACEOPQ $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Ordering on reals (cont.)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d A x $.  $d B x $.  $d C x $.
    $( 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 ) ) ) $=
      ( vx cr wcel clt wbr caddc co axltadd wceq wi wa readdcld addassd breq12d
      cc0 recnd cc w3a cv wrex ax-rnegex 3ad2ant3 simpl3 simpl1 syl3anc sylibrd
      simpl2 simprl simprr wb addcom eqeq1d syl2anc mpbid oveq1d addid2d sylibd
      eqtrd rexlimddv impbid ) AEFZBEFZCEFZUAZABGHZCAIJZCBIJZGHZABCKVGCDUBZIJZR
      LZVKVHMDEVFVDVNDEUCVEDCUDUEVGVLEFZVNNZNZVKVLCIJZAIJZVRBIJZGHZVHVQVKVLVIIJ
      ZVLVJIJZGHZWAVQVIEFVJEFVOVKWDMVQCAVDVEVFVPUFZVDVEVFVPUGZOVQCBWEVDVEVFVPUJ
      ZOVGVOVNUKZVIVJVLKUHVQVSWBVTWCGVQVLCAVQVLWHSZVQCWESZVQAWFSZPVQVLCBWIWJVQB
      WGSZPQUIVQVSAVTBGVQVSRAIJAVQVRRAIVQVNVRRLZVGVOVNULVQCTFZVLTFZVNWMUMWJWIWN
      WONVMVRRCVLUNUOUPUQZURVQAWKUSVAVQVTRBIJBVQVRRBIWPURVQBWLUSVAQUTVBVC $.
  $}

  ${
    ltadd2i.1 $e |- A e. RR $.
    ltadd2i.2 $e |- B e. RR $.
    ltadd2i.3 $e |- C e. RR $.
    $( Addition to both sides of 'less than'.  (Contributed by NM,
       21-Jan-1997.) $)
    ltadd2i $p |- ( A < B <-> ( C + A ) < ( C + B ) ) $=
      ( cr wcel clt wbr caddc co wb ltadd2 mp3an ) AGHBGHCGHABIJCAKLCBKLIJMDEFA
      BCNO $.
  $}

  ${
    ltadd2d.1 $e |- ( ph -> A e. RR ) $.
    ltadd2d.2 $e |- ( ph -> B e. RR ) $.
    ltadd2d.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 $.

    ${
      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 $.
    $}
  $}

  $( 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
    $.

  ${
    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 $.
  $}

  $( 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'.  Part of definition 11.2.7(vi) of
     [HoTT], p.  (varies).  (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'.  Part of definition
     11.2.7(vi) of [HoTT], p.  (varies).  (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 co clt wbr caddc wb simp1 simp3 simp2 resubcld ltadd1 syl3anc
    cmin recnd npcand breq2d bitr2d ) ADEZBDEZCDEZFZACBRGZHIZABJGZUGBJGZHIZUICH
    IUFUCUGDEUDUHUKKUCUDUELUFCBUCUDUEMZUCUDUENZOUMAUGBPQUFUJCUIHUFCBUFCULSUFBUM
    STUAUB $.

  $( '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 co cle wbr caddc wb simp1 simp3 simp2 resubcld leadd1 syl3anc
    cmin recnd npcand breq2d bitr2d ) ADEZBDEZCDEZFZACBRGZHIZABJGZUGBJGZHIZUICH
    IUFUCUGDEUDUHUKKUCUDUELUFCBUCUDUEMZUCUDUENZOUMAUGBPQUFUJCUIHUFCBUFCULSUFBUM
    STUAUB $.

  $( '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 '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 caddc co wb simpll simprl simplr ltadd1 syl3anc simprr
    ltadd2d readdcld anbi12d wi lttr sylbid ) AEFZBEFZGZCEFZDEFZGZGZACHIZBDHIZG
    ABJKZCBJKZHIZUOCDJKZHIZGZUNUQHIZUKULUPUMURUKUEUHUFULUPLUEUFUJMZUGUHUINZUEUF
    UJOZACBPQUKBDCVCUGUHUIRZVBSUAUKUNEFUOEFUQEFUSUTUBUKABVAVCTUKCBVBVCTUKCDVBVD
    TUNUOUQUCQUD $.

  $( 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 $.

  $( 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 cmin co clt caddc simp1 simp3 simp2 resubcld ltsubadd syl3anc
    wbr wb recnd npcand breq2d bitr2d ) ADEZBDEZCDEZFZACGHBCGHZIQZAUGCJHZIQZABI
    QUFUCUEUGDEUHUJRUCUDUEKUCUDUELZUFBCUCUDUEMZUKNACUGOPUFUIBAIUFBCUFBULSUFCUKS
    TUAUB $.

  $( 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 clt wbr cmin co caddc ltadd2 wb simp3 simp1 readdcld ltsubadd
    simp2 syl3anc recnd addsubd breq1d 3bitr2d resubcld ltaddsub bitrd ) ADEZBD
    EZCDEZFZABGHZCBIJZAKJZCGHZULCAIJGHZUJUKCAKJZCBKJGHZUPBIJZCGHZUNABCLUJUPDEUH
    UIUSUQMUJCAUGUHUINZUGUHUIOZPUGUHUIRZUTUPBCQSUJURUMCGUJCABUJCUTTUJAVATUJBVBT
    UAUBUCUJULDEUGUIUNUOMUJCBUTVBUDVAUTULACUESUF $.

  $( 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 then 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 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 $.

  $( 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 $.

  ${
    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 $.
    $}

    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 $.

    $( 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 $.

    $( 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 $.
    $}

    $( 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 $.
    $}

    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 $.

  $( A positive sum must have a positive addend.  Part of Definition 11.2.7(vi)
     of [HoTT], p.  (varies).  (Contributed by Jim Kingdon, 26-Jan-2020.) $)
  gt0add $p |- ( ( A e. RR /\ B e. RR /\ 0 < ( A + B ) ) ->
      ( 0 < A \/ 0 < B ) ) $=
    ( cr wcel cc0 caddc co clt wbr w3a wo simp3 wi 0red simp1 readdcld axltwlin
    simp2 syl3anc mpd ltaddposd orbi2d mpbird ) ACDZBCDZEABFGZHIZJZEAHIZEBHIZKU
    IAUFHIZKZUHUGULUDUEUGLUHECDUFCDUDUGULMUHNUHABUDUEUGOZUDUEUGRZPUMEUFAQSTUHUJ
    UKUIUHBAUNUMUAUBUC $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Real Apartness
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c #RR $. $( 'Apart' relation (over real numbers) $)

  $( Class of real apartness relation. $)
  creap $a class #RR $.

  ${
    $d x y $.
    $( Define real apartness.  Definition in Section 11.2.1 of [HoTT], p.
       (varies).  Although ` #RR ` is an apartness relation on the reals (see
       ~ df-ap for more discussion of apartness relations), for our purposes it
       is just a stepping stone to defining ` # ` which is an apartness
       relation on complex numbers.  On the reals, ` #RR ` and ` # ` agree
       ( ~ apreap ).  (Contributed by Jim Kingdon, 26-Jan-2020.) $)
    df-reap $a |- #RR = { <. x , y >. | ( ( x e. RR /\ y e. RR ) /\
      ( x < y \/ y < x ) ) } $.
  $}

  ${
    $d A x y $.  $d B x y $.
    $( Real apartness in terms of classes.  Beyond the development of ` # `
       itself, proofs should use ~ reaplt instead.  (New usage is discouraged.)
       (Contributed by Jim Kingdon, 29-Jan-2020.) $)
    reapval $p |- ( ( A e. RR /\ B e. RR ) ->
        ( A #RR B <-> ( A < B \/ B < A ) ) ) $=
      ( vx vy creap wbr cr wcel wa clt wo cv breq12 simpr simpl breq12d orbi12d
      wceq df-reap brab2ga baib ) ABEFAGHBGHIABJFZBAJFZKZCLZDLZJFZUFUEJFZKUDCDA
      BGGEUEARZUFBRZIZUGUBUHUCUEAUFBJMUKUFBUEAJUIUJNUIUJOPQCDSTUA $.
  $}

  $( Real apartness is irreflexive.  Part of Definition 11.2.7(v) of [HoTT],
     p.  (varies).  Beyond the development of ` # ` itself, proofs should use
     ~ apirr instead.  (Contributed by Jim Kingdon, 26-Jan-2020.) $)
  reapirr $p |- ( A e. RR -> -. A #RR A ) $=
    ( cr wcel creap wbr clt ltnr wo wb reapval anidms oridm syl6bb mtbird ) ABC
    ZAADEZAAFEZAGOPQQHZQOPRIAAJKQLMN $.

  ${
    $d x y A $.
    $( Existence of reciprocal of real number.  (Contributed by Jim Kingdon,
       29-Jan-2020.) $)
    recexre $p |- ( ( A e. RR /\ A #RR 0 ) -> E. x e. RR ( A x. x ) = 1 ) $=
      ( vy cr wcel cc0 wbr cmul co c1 wceq wrex clt wb 0re wa cneg pm5.32i recn
      cltrr creap cv reapval mpan2 lt0neg1 renegcl ltxrlt bitrd ax-precex simpr
      sylancr reximi syl sylan sylbi negnegd oveq2d eqeq1d rspcev sylbir adantl
      wo negeq rexlimddv cc mul2neg syl2an rexbidva adantr mpbid ex mpan sylbid
      jaod imp ) BDEZBFUAGZBAUBZHIZJKZADLZVPVQBFMGZFBMGZVBZWAVPFDEZVQWDNOBFUCUD
      VPWBWAWCVPWBWAVPWBPZBQZVRQZHIZJKZADLZWAWFWGCUBZHIZJKZWKCDWFVPFWGTGZPWNCDL
      ZVPWBWOVPWBFWGMGZWOBUEVPWEWGDEZWQWONOBUFZFWGUGUKUHRVPWRWOWPWSWRWOPFWLTGZW
      NPZCDLWPCWGUIXAWNCDWTWNUJULUMUNUOWLDEZWNPZWKWFXCXBWGWLQZQZHIZJKZPWKXBXGWN
      XBXFWMJXBXEWLWGHXBWLWLSUPUQURRXBXDDEXGWKWLUFWJXGAXDDVRXDKZWIXFJXHWHXEWGHV
      RXDVCUQURUSUNUTVAVDVPWKWANWBVPWJVTADVPVRDEZPWIVSJVPBVEEVRVEEWIVSKXIBSVRSB
      VRVFVGURVHVIVJVKVPWCWAVPWCPVPFBTGZPZWAVPWCXJWEVPWCXJNOFBUGVLRXKFVRTGZVTPZ
      ADLWAABUIXMVTADXLVTUJULUMUOVKVNVMVO $.
  $}

  $( Real apartness is tight.  Beyond the development of apartness itself,
     proofs should use ~ apti .  (Contributed by Jim Kingdon, 30-Jan-2020.)
     (New usage is discouraged.) $)
  reapti $p |- ( ( A e. RR /\ B e. RR ) -> ( A = B <-> -. A #RR B ) ) $=
    ( cr wcel wa wceq creap wbr wn clt wo ltnr adantr oridm breq2 breq1 orbi12d
    syl5bbr notbid syl5ibcom reapval sylibrd axapti 3expia sylbid impbid ) ACDZ
    BCDZEZABFZABGHZIZUIUJABJHZBAJHZKZIZULUIAAJHZIZUJUPUGURUHALMUJUQUOUQUQUQKUJU
    OUQNUJUQUMUQUNABAJOABAJPQRSTUIUKUOABUASZUBUIULUPUJUSUGUHUPUJABUCUDUEUF $.

  ${
    $d x A $.
    $( Existence of reciprocal of positive real number.  (Contributed by Jim
       Kingdon, 6-Feb-2020.) $)
    recexgt0 $p |- ( ( A e. RR /\ 0 < A ) ->
        E. x e. RR ( 0 < x /\ ( A x. x ) = 1 ) ) $=
      ( cr wcel cc0 cltrr wbr wa cv cmul co c1 wceq clt ax-precex wb 0re ltxrlt
      wrex mpan pm5.32i anbi1d rexbiia 3imtr4i ) BCDZEBFGZHEAIZFGZBUGJKLMZHZACS
      UEEBNGZHEUGNGZUIHZACSABOUEUKUFECDZUEUKUFPQEBRTUAUMUJACUGCDZULUHUIUNUOULUH
      PQEUGRTUBUCUD $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Complex Apartness
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c # $. $( 'Apart' relation (over complex numbers) $)

  $( Class of complex apartness relation. $)
  cap $a class # $.

  ${
    $d r s t u x y $.
    $( Define complex apartness.  Definition 6.1 of [Geuvers], p. 17.

       Two numbers are considered apart if it is possible to separate them.
       One common usage is that we can divide by a number if it is apart from
       zero (see for example ~ recclap which says that a number apart from zero
       has a reciprocal).

       The defining characteristics of an apartness are irreflexivity
       ( ~ apirr ), symmetry ( ~ apsym ), and cotransitivity ( ~ apcotr ).
       Apartness implies negated equality, as seen at ~ apne , and the converse
       would also follow if we assumed excluded middle.

       In addition, apartness of complex numbers is tight, which means that two
       numbers which are not apart are equal ( ~ apti ).

       (Contributed by Jim Kingdon, 26-Jan-2020.) $)
    df-ap $a |- # = { <. x , y >. | E. r e. RR E. s e. RR E. t e. RR E. u e. RR
      ( ( x = ( r + ( _i x. s ) ) /\ y = ( t + ( _i x. u ) ) ) /\
      ( r #RR t \/ s #RR u ) ) } $.
  $}

  $( ` _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 $.

  $( 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 clt wbr wn co c1 0re 1re caddc wa anidms ex
    cmul mtoi 0lt1 ltnsymi cneg renegcli eqeltri ltadd1i ax-1cn addid2i ax-i2m1
    ax-mp ixi breq12i bitri mtbir mullt0 mulgt0 wb lttri3 mpan2 mpbir2and mto )
    ABCZADEZADFGVBVCADHIZJZDAHIZJZVBVDDAASKZHIZVILDHIZDLHIVJJUADLMNUBUJVIDLOKZV
    HLOKZHIVJDVHLMVHLUCBUKLNUDUENUFVKLVLDHLUGUHUIULUMUNZVBVDVIVBVDPVIAAUOQRTVBV
    FVIVMVBVFVIVBVFPVIAAUPQRTVBDBCVCVEVGPUQMADURUSUTVA $.

  ${
    $d A x $.
    $( 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 ) $=
      ( vx cr wcel ci cmul co wa cc0 wceq creap wbr wn inelr cv c1 recnd ax-icn
      wrex cc recexre adantlr simplll simprl mulass mp3an1 syl2anc oveq2 syl6eq
      mulid1i ad2antll eqtrd simpllr remulcld eqeltrrd rexlimddv ex mtoi wb 0re
      reapti mpan2 adantr mpbird ) ACDZEAFGZCDZHZAIJZAIKLZMZVHVJECDZNVHVJVLVHVJ
      HZABOZFGZPJZVLBCVEVJVPBCSVGBAUAUBVMVNCDZVPHZHZVFVNFGZECVSVTEVOFGZEVSATDZV
      NTDZVTWAJZVSAVEVGVJVRUCQVSVNVMVQVPUDZQETDWBWCWDREAVNUEUFUGVPWAEJVMVQVPWAE
      PFGEVOPEFUHERUJUIUKULVSVFVNVEVGVJVRUMWEUNUOUPUQURVEVIVKUSZVGVEICDWFUTAIVA
      VBVCVD $.
  $}

  $( Decomposition of a real number into real part (itself) and imaginary part
     (zero).  (Contributed by Jim Kingdon, 30-Jan-2020.) $)
  rereim $p |- ( ( ( A e. RR /\ B e. RR ) /\
      ( C e. RR /\ A = ( B + ( _i x. C ) ) ) ) -> ( B = A /\ C = 0 ) ) $=
    ( cr wcel wa ci cmul co caddc wceq cc0 simpll recnd simplr simprr eqcomd cc
    cmin ax-icn a1i simprl mulcld subaddd mpbird resubcld eqeltrrd rimul oveq2d
    syl2anc mul01i syl6eq eqtrd subeq0d jca ) ADEZBDEZFZCDEZABGCHIZJIZKZFZFZBAK
    CLKZVDABVDABVDAUPUQVCMZNZVDBUPUQVCOZNZVDABSIZUTLVDVJUTKVAAKVDAVAURUSVBPQVDA
    BUTVGVIVDGCGREVDTUAVDCURUSVBUBZNUCUDUEZVDUTGLHILVDCLGHVDUSUTDEVEVKVDVJUTDVL
    VDABVFVHUFUGCUHUJZUIGTUKULUMUNQVMUO $.

  ${
    $d A r s t u x y $.  $d B r s t u x y $.

    $( Complex apartness and real apartness agree on the real numbers.
       (Contributed by Jim Kingdon, 31-Jan-2020.) $)
    apreap $p |- ( ( A e. RR /\ B e. RR ) -> ( A # B <-> A #RR B ) ) $=
      ( vr vs vt vu cr wcel wa wbr creap cv ci co caddc wceq wrex 2rexbidv cc0
      wo vx vy cap cmul eqeq1 anbi1d anbi2d df-ap brabg simplll simplrl simplrr
      wn adantr simprll rereim syl22anc simprd simpllr simprlr eqtr4d wb reapti
      syl2anc mpbid simprr ecased simpld ex rexlimdvva sylbid w3a ax-icn mul01i
      3brtr3d oveq2i simp1 recnd addid1d syl5req simp2 olc 3ad2ant3 orcomd 0red
      jca31 simpr oveq2d eqeq2d breq2d orbi2d anbi12d oveq1d orbi1d syld breq1d
      rspcedv rexbidv 3syld 3adant3 sylibrd mpd 3expia impbid ) AGHZBGHZIZABUCJ
      ZABKJZXGXHACLZMDLZUDNZONZPZBELZMFLZUDNZONZPZIZXJXOKJZXKXPKJZTZIZFGQZEGQZD
      GQZCGQZXIUALZXMPZUBLZXRPZIZYCIZFGQEGQZDGQCGQXNYLIZYCIZFGQEGQZDGQCGQYHUAUB
      ABGGUCYIAPZYOYRCDGGYSYNYQEFGGYSYMYPYCYSYJXNYLYIAXMUEUFUFRRYKBPZYRYFCDGGYT
      YQYDEFGGYTYPXTYCYTYLXSXNYKBXRUEUGUFRRUAUBFEDCUHUIZXGYFXICDGGXGXJGHZXKGHZI
      ZIZYDXIEFGGUUEXOGHZXPGHZIZIZYDXIUUIYDIZXJXOABKUUJYAYBUUJXKXPPZYBUMZUUJXKS
      XPUUJXJAPZXKSPZUUJXEUUBUUCXNUUMUUNIUUIXEYDXEXFUUDUUHUJUNUUIUUBYDXGUUBUUCU
      UHUKUNUUIUUCYDXGUUBUUCUUHULUNZUUIXNXSYCUOAXJXKUPUQZURUUJXOBPZXPSPZUUJXFUU
      FUUGXSUUQUURIUUIXFYDXEXFUUDUUHUSUNUUEUUFUUGYDUKUUEUUFUUGYDULZUUIXNXSYCUTB
      XOXPUPUQZURVAUUJUUCUUGUUKUULVBUUOUUSXKXPVCVDVEUUIXTYCVFVGUUJUUMUUNUUPVHUU
      JUUQUURUUTVHVOVIVJVJVKXEXFXIXHXEXFXIVLZAAMSUDNZONZPZBBUVBONZPZIZXISSKJZTZ
      IZXHUVAUVDUVFUVIUVAUVCASONAUVBSAOMVMVNZVPUVAAUVAAXEXFXIVQZVRVSVTUVAUVEBSO
      NBUVBSBOUVKVPUVABUVABXEXFXIWAZVRVSVTUVAUVHXIXIXEUVHXITXFXIUVHWBWCWDWFUVAU
      VJYHXHUVAUVJUVDXSIZAXOKJZSXPKJZTZIZFGQZEGQZAAXLONZPZXSIZUVOYBTZIZFGQZEGQZ
      DGQZYHUVAUVJUVDBBXQONZPZIZXIUVPTZIZFGQZUVTUVAUWMUVJFSGUVAWEZUVAUURIZUWKUV
      GUWLUVIUWPUWJUVFUVDUWPUWIUVEBUWPXQUVBBOUWPXPSMUDUVAUURWGZWHWHWIUGUWPUVPUV
      HXIUWPXPSSKUWQWJWKWLWQUVAUVSUWNEBGUVMUVAUUQIZUVRUWMFGUWRUVNUWKUVQUWLUWRXS
      UWJUVDUWRXRUWIBUWRXOBXQOUVAUUQWGZWMWIUGUWRUVOXIUVPUWRXOBAKUWSWJWNWLWRWQWO
      UVAUWGUVTDSGUWOUVAUUNIZUWEUVREFGGUWTUWCUVNUWDUVQUWTUWBUVDXSUWTUWAUVCAUWTX
      LUVBAOUWTXKSMUDUVAUUNWGZWHWHWIUFUWTYBUVPUVOUWTXKSXPKUXAWPWKWLRWQUVAYGUWHC
      AGUVLUVAUUMIZYEUWFDEGGUXBYDUWEFGUXBXTUWCYCUWDUXBXNUWBXSUXBXMUWAAUXBXJAXLO
      UVAUUMWGZWMWIUFUXBYAUVOYBUXBXJAXOKUXCWPWNWLWRRWQWSXEXFXHYHVBXIUUAWTXAXBXC
      XD $.
  $}

  $( Real apartness in terms of less than.  Part of Definition 11.2.7(vi) of
     [HoTT], p.  (varies).  (Contributed by Jim Kingdon, 1-Feb-2020.) $)
  reaplt $p |- ( ( A e. RR /\ B e. RR ) ->
      ( A # B <-> ( A < B \/ B < A ) ) ) $=
    ( cr wcel wa cap wbr creap clt wo apreap reapval bitrd ) ACDBCDEABFGABHGABI
    GBAIGJABKABLM $.

  $( Real apartness in terms of less than (exclusive-or version).  (Contributed
     by Jim Kingdon, 23-Mar-2020.) $)
  reapltxor $p |- ( ( A e. RR /\ B e. RR ) ->
      ( A # B <-> ( A < B \/_ B < A ) ) ) $=
    ( cr wcel wa cap wbr clt wo reaplt wn ltnsym2 biantrud df-xor syl6bbr bitrd
    wxo ) ACDBCDEZABFGABHGZBAHGZIZSTQZABJRUAUASTEKZEUBRUCUAABLMSTNOP $.

  $( One is apart from zero.  (Contributed by Jim Kingdon, 24-Feb-2020.) $)
  1ap0 $p |- 1 # 0 $=
    ( c1 cc0 cap wbr clt wo 0lt1 olci cr wcel wb 1re 0re reaplt mp2an mpbir ) A
    BCDZABEDZBAEDZFZSRGHAIJBIJQTKLMABNOP $.

  $( 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 $.

  ${
    $d A x $.  $d B x $.  $d C x $.
    $( Multiplication of both sides of 'less than' by a positive number.
       Theorem I.19 of [Apostol] p. 20.  Part of Definition 11.2.7(vi) of
       [HoTT], p.  (varies).  (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 ) ) ) $=
      ( vx cr wcel cc0 clt wbr wa cmul co ltmul1a ex c1 cc recnd adantr 3brtr3d
      w3a cv wceq wrex recexgt0 3ad2ant3 simpl1 simpl3l remulcld simpl2 simprrl
      wi simprl jca 3jca sylan mulassd simprrr oveq2d mulid1d rexlimddv impbid
      ) AEFZBEFZCEFZGCHIZJZTZABHIZACKLZBCKLZHIZVGVHVKABCMNVGGDUAZHIZCVLKLZOUBZJ
      ZVKVHUKDEVFVBVPDEUCVCDCUDUEVGVLEFZVPJZJZVKVHVSVKJZAOKLZBOKLZABHVTAVNKLZBV
      NKLZWAWBHVTVIVLKLZVJVLKLZWCWDHVSVIEFZVJEFZVQVMJZTVKWEWFHIVSWGWHWIVSACVBVC
      VFVRUFZVDVEVBVCVRUGZUHVSBCVBVCVFVRUIZWKUHVSVQVMVGVQVPULZVGVQVMVOUJUMUNVIV
      JVLMUOVTACVLVSAPFVKVSAWJQRZVSCPFVKVSCWKQRZVSVLPFVKVSVLWMQRZUPVTBCVLVSBPFV
      KVSBWLQRZWOWPUPSVTVNOAKVSVOVKVGVQVMVOUQRZURVTVNOBKWRURSVTAWNUSVTBWQUSSNUT
      VA $.
  $}

  $( 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 wn cmul co cle wb ltmul1 notbid lenlt remulcld
    3com12 3adant3 simp1 simp3l simp2 lenltd 3bitr4d ) ADEZBDEZCDEZFCGHZIZJZBAG
    HZKZBCLMZACLMZGHZKZABNHZUPUONHUHUGUKUNUROUHUGUKJUMUQBACPQTUGUHUSUNOUKABRUAU
    LUPUOULACUGUHUKUBUGUHUIUJUCZSULBCUGUHUKUDUTSUEUF $.

  $( Lemma for ~ reapmul1 .  (Contributed by Jim Kingdon, 8-Feb-2020.) $)
  reapmul1lem $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 wo cmul co cap ltmul1 wb 3com12 orbi12d reaplt
    remulcld 3adant3 simp1 simp3l simp2 syl2anc 3bitr4d ) ADEZBDEZCDEZFCGHZIZJZ
    ABGHZBAGHZKZACLMZBCLMZGHZUQUPGHZKZABNHZUPUQNHZULUMURUNUSABCOUHUGUKUNUSPBACO
    QRUGUHVAUOPUKABSUAULUPDEUQDEVBUTPULACUGUHUKUBUGUHUIUJUCZTULBCUGUHUKUDVCTUPU
    QSUEUF $.

  $( Multiplication of both sides of real apartness by a real number apart from
     zero.  Special case of ~ apmul1 .  (Contributed by Jim Kingdon,
     8-Feb-2020.) $)
  reapmul1 $p |- ( ( A e. RR /\ B e. RR /\ ( C e. RR /\ C # 0 ) ) ->
      ( A # B <-> ( A x. C ) # ( B x. C ) ) ) $=
    ( cr wcel cc0 cap wbr wa cmul co wb clt reaplt cneg recnd mulneg2d renegcld
    wo reapmul1lem 0re mpan2 pm5.32i simp1 simp3l simp2 breq12d simp3r lt0neg1d
    mpbid syl112anc remulcld ltnegd orbi12d syl2anc orcom 3bitr4d 3expa anassrs
    w3a syl6bb jaodan anasss sylan2b 3impa ) ADEZBDEZCDEZCFGHZIZABGHZACJKZBCJKZ
    GHZLZVJVFVGIZVHCFMHZFCMHZSZIVOVHVIVSVHFDEVIVSLUACFNUBUCVPVHVSVOVPVHIVQVOVRV
    PVHVQVOVFVGVHVQIZVOVFVGVTUTZACOZJKZBWBJKZGHZVLOZVMOZGHZVKVNWAWCWFWDWGGWAACW
    AAVFVGVTUDZPWACVFVGVHVQUEZPZQWABCWABVFVGVTUFZPWKQUGWAVFVGWBDEFWBMHZVKWELWIW
    LWACWJRWAVQWMVFVGVHVQUHWACWJUIUJABWBTUKWAVLVMMHZVMVLMHZSZWGWFMHZWFWGMHZSZVN
    WHWAWNWQWOWRWAVLVMWAACWIWJULZWABCWLWJULZUMWAVMVLXAWTUMUNWAVLDEVMDEVNWPLWTXA
    VLVMNUOWAWHWRWQSZWSWAWFDEWGDEWHXBLWAVLWTRWAVMXARWFWGNUOWRWQUPVAUQUQURUSVPVH
    VRVOVFVGVHVRIVOABCTURUSVBVCVDVE $.

  $( Real addition respects apartness.  (Contributed by Jim Kingdon,
     13-Feb-2020.) $)
  reapadd1 $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
      ( A # B <-> ( A + C ) # ( B + C ) ) ) $=
    ( cr wcel w3a clt wbr wo caddc co cap ltadd1 wb 3com12 orbi12d reaplt simp1
    3adant3 readdcld simp3 simp2 syl2anc 3bitr4d ) ADEZBDEZCDEZFZABGHZBAGHZIZAC
    JKZBCJKZGHZUMULGHZIZABLHZULUMLHZUHUIUNUJUOABCMUFUEUGUJUONBACMOPUEUFUQUKNUGA
    BQSUHULDEUMDEURUPNUHACUEUFUGRUEUFUGUAZTUHBCUEUFUGUBUSTULUMQUCUD $.

  $( Real negation respects apartness.  (Contributed by Jim Kingdon,
     13-Feb-2020.) $)
  reapneg $p |- ( ( A e. RR /\ B e. RR ) -> ( A # B <-> -u A # -u B ) ) $=
    ( cr wcel wa cap wbr cneg clt wo reaplt ltneg wb ancoms orbi12d bitrd orcom
    syl6bb simpl renegcld simpr syl2anc bitr4d ) ACDZBCDZEZABFGZAHZBHZIGZUIUHIG
    ZJZUHUIFGZUFUGUKUJJZULUFUGABIGZBAIGZJUNABKUFUOUKUPUJABLUEUDUPUJMBALNOPUKUJQ
    RUFUHCDUICDUMULMUFAUDUESTUFBUDUEUATUHUIKUBUC $.

  $( Real apartness is cotransitive.  Part of Definition 11.2.7(v) of [HoTT],
     p.  (varies).  (Contributed by Jim Kingdon, 16-Feb-2020.) $)
  reapcotr $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
      ( A # B -> ( A # C \/ B # C ) ) ) $=
    ( cr w3a cap wbr clt wo wb reaplt 3adant3 axltwlin wi 3com12 orim12d sylbid
    wcel orcom orbi2i or42 bitri syl6ib 3adant2 3adant1 orbi12d sylibrd ) ADRZB
    DRZCDRZEZABFGZACHGZCAHGZIZBCHGZCBHGZIZIZACFGZBCFGZIUKULUMUQIZUPUNIZIZUSUKUL
    ABHGZBAHGZIZVDUHUIULVGJUJABKLUKVEVBVFVCABCMUIUHUJVFVCNBACMOPQVDVBUNUPIZIUSV
    CVHVBUPUNSTUMUQUNUPUAUBUCUKUTUOVAURUHUJUTUOJUIACKUDUIUJVAURJUHBCKUEUFUG $.

  $( Left extensionality for multiplication.  (Contributed by Jim Kingdon,
     19-Feb-2020.) $)
  remulext1 $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) -> (
      ( A x. C ) # ( B x. C ) -> A # B ) ) $=
    ( cr wcel w3a cmul co cap wbr clt wo wb remulcld reaplt cltrr ax-pre-mulext
    syl2anc ltxrlt 3imtr4d simp1 simp3 simp2 orbi12d bitrd wi 3com12 orcom jaod
    syl6bb sylbid ) ADEZBDEZCDEZFZACGHZBCGHZIJZUPUQKJZUQUPKJZLZABIJZUOUPDEZUQDE
    ZURVAMUOACULUMUNUAZULUMUNUBZNZUOBCULUMUNUCZVFNZUPUQORUOUSVBUTUOUPUQPJZABPJZ
    BAPJZLZUSVBABCQUOVCVDUSVJMVGVIUPUQSRUOVBABKJZBAKJZLZVMUOULUMVBVPMVEVHABORUO
    VNVKVOVLUOULUMVNVKMVEVHABSRUOUMULVOVLMVHVEBASRUDUEZTUOUQUPPJZVLVKLZUTVBUMUL
    UNVRVSUFBACQUGUOVDVCUTVRMVIVGUQUPSRUOVBVMVSVQVKVLUHUJTUIUK $.

  $( Right extensionality for real multiplication.  (Contributed by Jim
     Kingdon, 22-Feb-2020.) $)
  remulext2 $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) -> (
      ( C x. A ) # ( C x. B ) -> A # B ) ) $=
    ( cr wcel w3a cmul co cap simp1 recnd simp3 mulcomd simp2 breq12d remulext1
    wbr sylbird ) ADEZBDEZCDEZFZCAGHZCBGHZIQACGHZBCGHZIQABIQUBUEUCUFUDIUBACUBAS
    TUAJKUBCSTUALKZMUBBCUBBSTUANKUGMOABCPR $.

  $( The square of a real number apart from zero is positive.  (Contributed by
     Jim Kingdon, 7-Feb-2020.) $)
  apsqgt0 $p |- ( ( A e. RR /\ A # 0 ) -> 0 < ( A x. A ) ) $=
    ( cr wcel cc0 cap wbr wa clt wo cmul co wb 0re reaplt pm5.32i mullt0 anidms
    mpan2 mulgt0 jaodan sylbi ) ABCZADEFZGUBADHFZDAHFZIZGDAAJKHFZUBUCUFUBDBCUCU
    FLMADNROUBUDUGUEUBUDGUGAAPQUBUEGUGAASQTUA $.

  $( 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 $.

  ${
    $d A r s t u x y $.  $d B r s t u x y $.  $d C r s t u x y $.
    $d D r s t u x y $.
    $( Complex apartness in terms of real and imaginary parts.  (Contributed by
       Jim Kingdon, 12-Feb-2020.) $)
    apreim $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 ) )
        ) $=
      ( vr vs vt vu cr wcel wa ci cmul co caddc wbr wo wceq creap wrex vx vy cv
      cc wb simpll recnd ax-icn simplr mulcld addcld simprl simprr eqeq1 anbi1d
      cap 2rexbidv anbi2d df-ap brabg syl2anc ad3antrrr orbi12d simprll simpllr
      a1i apreap syl21anc mpbid simpld simprlr breq12d simprd mpbird rexlimdvva
      cru bitrd ex sylbid ad2ant2r ad2ant2l pm5.32i eqid pm3.2i biantrur eqeq2d
      oveq1 breq2 orbi1d anbi12d oveq2d orbi2d rspc2ev syl3an3b syl3an3 anassrs
      oveq2 3expa breq1 adantr sylbi impbid ) AIJZBIJZKZCIJZDIJZKZKZALBMNZONZCL
      DMNZONZUPPZACUPPZBDUPPZQZXIXNXKEUCZLFUCZMNZONZRZXMGUCZLHUCZMNZONZRZKZXRYC
      SPZXSYDSPZQZKZHITGITZFITEITZXQXIXKUDJXMUDJXNYNUEZXIAXJXIAXCXDXHUFZUGXILBL
      UDJXIUHVFZXIBXCXDXHUIZUGUJUKXICXLXICXEXFXGULZUGXILDYQXIDXEXFXGUMZUGUJUKUA
      UCZYARZUBUCZYFRZKZYKKZHITGITZFITEITYBUUDKZYKKZHITGITZFITEITYNUAUBXKXMUDUD
      UPUUAXKRZUUGUUJEFIIUUKUUFUUIGHIIUUKUUEUUHYKUUKUUBYBUUDUUAXKYAUNUOUOUQUQUU
      CXMRZUUJYMEFIIUULUUIYLGHIIUULUUHYHYKUULUUDYGYBUUCXMYFUNURUOUQUQUAUBHGFEUS
      UTVAZXIYMXQEFIIXIXRIJXSIJKZKZYLXQGHIIUUOYCIJYDIJKZKZYLXQUUQYLKZXQYKUUQYHY
      KUMUURXQACSPZBDSPZQZYKUURXOUUSXPUUTUURXCXFXOUUSUEZXIXCUUNUUPYLYPVBZXIXFUU
      NUUPYLYSVBZACVGZVAUURXDXGXPUUTUEZXIXDUUNUUPYLYRVBZXIXGUUNUUPYLYTVBZBDVGZV
      AVCUURUUSYIUUTYJUURAXRCYCSUURAXRRZBXSRZUURYBUVJUVKKZUUQYBYGYKVDUURXCXDUUN
      YBUVLUEUVCUVGXIUUNUUPYLVEABXRXSVPVHVIZVJUURCYCRZDYDRZUURYGUVNUVOKZUUQYBYG
      YKVKUURXFXGUUPYGUVPUEUVDUVHUUOUUPYLUICDYCYDVPVHVIZVJVLUURBXSDYDSUURUVJUVK
      UVMVMUURUVNUVOUVQVMVLVCVQVNVRVOVOVSXIXQXNXIXQKXIUVAKZXNXIXQUVAXIXOUUSXPUU
      TXCXFUVBXDXGUVEVTXDXGUVFXCXFUVIWAVCWBUVRXNYNXEXHUVAYNXCXDXHUVAKZYNUVSXCXD
      XKXKRZYGKZAYCSPZBYDSPZQZKZHITGITZYNXFXGUVAUWFUVAXFXGUVTXMXMRZKZUVAKZUWFUW
      HUVAUVTUWGXKWCXMWCWDWEUWEUWIUVTXMCYEONZRZKZUUSUWCQZKGHCDIIYCCRZUWAUWLUWDU
      WMUWNYGUWKUVTUWNYFUWJXMYCCYEOWGWFURUWNUWBUUSUWCYCCASWHWIWJYDDRZUWLUWHUWMU
      VAUWOUWKUWGUVTUWOUWJXMXMUWOYEXLCOYDDLMWQWKWFURUWOUWCUUTUUSYDDBSWHWLWJWMWN
      WRYMUWFXKAXTONZRZYGKZUWBYJQZKZHITGITEFABIIXRARZYLUWTGHIIUXAYHUWRYKUWSUXAY
      BUWQYGUXAYAUWPXKXRAXTOWGWFUOUXAYIUWBYJXRAYCSWSWIWJUQXSBRZUWTUWEGHIIUXBUWR
      UWAUWSUWDUXBUWQUVTYGUXBUWPXKXKUXBXTXJAOXSBLMWQWKWFUOUXBYJUWCUWBXSBYDSWSWL
      WJUQWMWOWRWPXIYOUVAUUMWTVNXAVRXB $.
  $}

  $( Complex multiplication in terms of real and imaginary parts.  (Contributed
     by Jim Kingdon, 23-Feb-2020.) $)
  mulreim $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( C e. RR /\ D e. RR ) ) ->
      ( ( A + ( _i x. B ) ) x. ( C + ( _i x. D ) ) ) =
      ( ( ( A x. C ) + -u ( B x. D ) ) +
        ( _i x. ( ( C x. B ) + ( D x. A ) ) ) ) ) $=
    ( cr wcel wa ci cmul co caddc cneg simpll recnd mulcld mulcomd oveq2d eqtrd
    mul12d oveq12d cc ax-icn a1i simplr simprl simprr muladdd ixi oveq1i syl6eq
    c1 mul4d mulm1d negeqd 3eqtrd addcomd adddid 3eqtr4d ) AEFZBEFZGZCEFZDEFZGZ
    GZAHBIJZKJCHDIJZKJIJACIJZVGVFIJZKJZAVGIJZCVFIJZKJZKJVHBDIJZLZKJZHCBIJZDAIJZ
    KJIJZKJVEAVFCVGVEAUSUTVDMNZVEHBHUAFVEUBUCZVEBUSUTVDUDNZOVECVAVBVCUENZVEHDWA
    VEDVAVBVCUFNZOUGVEVJVPVMVSKVEVIVOVHKVEVIUKLZDBIJZIJZWFLVOVEVIHHIJZWFIJWGVEH
    DHBWAWDWAWBULWHWEWFIUHUIUJVEWFVEDBWDWBOUMVEWFVNVEDBWDWBPUNUOQVEHVRIJZHVQIJZ
    KJWJWIKJVMVSVEWIWJVEHVRWAVEDAWDVTOZOVEHVQWAVECBWCWBOZOUPVEVKWIVLWJKVEVKHADI
    JZIJWIVEAHDVTWAWDSVEWMVRHIVEADVTWDPQRVECHBWCWAWBSTVEHVQVRWAWLWKUQURTR $.

  ${
    $d A x y $.
    $( Apartness is irreflexive.  (Contributed by Jim Kingdon, 16-Feb-2020.) $)
    apirr $p |- ( A e. CC -> -. A # A ) $=
      ( vx vy cc wcel cv ci co cr wrex cap wn wa creap reapirr wb apreap anidms
      wbr mtbird cmul caddc wceq cnre wo anim12i sylibr apreim ad2antlr breq12d
      ioran id notbid adantl mpbird ex rexlimdvva mpd ) ADEZABFZGCFZUAHUBHZUCZC
      IJBIJAAKSZLZBCAUDUSVCVEBCIIUSUTIEZVAIEZMZMZVCVEVIVCMVEVBVBKSZLZVHVKUSVCVH
      VJUTUTKSZVAVAKSZUEZVHVLLZVMLZMVNLVFVOVGVPVFVLUTUTNSZUTOVFVLVQPUTUTQRTVGVM
      VAVANSZVAOVGVMVRPVAVAQRTUFVLVMUKUGVHVJVNPUTVAUTVAUHRTUIVCVEVKPVIVCVDVJVCA
      VBAVBKVCULZVSUJUMUNUOUPUQUR $.
  $}

  ${
    $d A w x y z $.  $d B w x y z $.
    $( Apartness is symmetric.  This theorem for real numbers is part of
       Definition 11.2.7(v) of [HoTT], p.  (varies).  (Contributed by Jim
       Kingdon, 16-Feb-2020.) $)
    apsym $p |- ( ( A e. CC /\ B e. CC ) -> ( A # B <-> B # A ) ) $=
      ( vz vw vx vy cc wcel wa cv co cr wrex cap wbr wb wo clt reaplt syl2anc
      ci cmul caddc wceq adantl ad3antrrr simplrl ad2antrr orcom syl6bbr bitr4d
      cnre simplrr orbi12d syl22anc 3bitr4d simpr simpllr breq12d ex rexlimdvva
      apreim mpd ) AGHZBGHZIZBCJZUADJZUBKUCKZUDZDLMCLMZABNOZBANOZPZVEVKVDCDBULU
      EVFVJVNCDLLVFVGLHZVHLHZIZIZVJVNVRVJIZAEJZUAFJZUBKUCKZUDZFLMELMZVNVDWDVEVQ
      VJEFAULUFVSWCVNEFLLVSVTLHZWALHZIZIZWCVNWHWCIZWBVINOZVIWBNOZVLVMWIVTVGNOZW
      AVHNOZQZVGVTNOZVHWANOZQZWJWKWIWLWOWMWPWIWLVTVGROZVGVTROZQZWOWIWEVOWLWTPVS
      WEWFWCUGZVSVOWGWCVFVOVPVJUGUHZVTVGSTWIWOWSWRQZWTWIVOWEWOXCPXBXAVGVTSTWRWS
      UIUJUKWIWMWAVHROZVHWAROZQZWPWIWFVPWMXFPVSWEWFWCUMZVSVPWGWCVFVOVPVJUMUHZWA
      VHSTWIWPXEXDQZXFWIVPWFWPXIPXHXGVHWASTXDXEUIUJUKUNWIWEWFVOVPWJWNPXAXGXBXHV
      TWAVGVHVBUOWIVOVPWEWFWKWQPXBXHXAXGVGVHVTWAVBUOUPWIAWBBVINWHWCUQZVRVJWGWCU
      RZUSWIBVIAWBNXKXJUSUPUTVAVCUTVAVC $.
  $}

  ${
    $d A u v w x y z $.  $d B u v w x y z $.  $d C u v w x y z $.
    $( Apartness is cotransitive.  (Contributed by Jim Kingdon,
       16-Feb-2020.) $)
    apcotr $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
        ( A # B -> ( A # C \/ B # C ) ) ) $=
      ( vu vv vz vw vx vy cc wcel cv co cr wrex cap wbr wo wa ad3antrrr ci cmul
      w3a caddc wceq wi cnre 3ad2ant3 3ad2ant2 ad2antrr 3ad2ant1 adantr simpllr
      simpr breq12d simplrl simplrr simprl simprr apreim syl22anc bitrd syl3anc
      reapcotr orim12d sylbid or4 syl6ib simplr orbi12d sylibrd rexlimdvva mpd
      wb ex ) AJKZBJKZCJKZUCZCDLZUAELZUBMUDMZUEZENODNOZABPQZACPQZBCPQZRZUFZVRVP
      WDVQDECUGUHVSWCWIDENNVSVTNKZWANKZSZSZWCWIWMWCSZBFLZUAGLZUBMUDMZUEZGNOFNOZ
      WIVSWSWLWCVQVPWSVRFGBUGUIUJWNWRWIFGNNWNWONKZWPNKZSZSZWRWIXCWRSZAHLZUAILZU
      BMUDMZUEZINOHNOZWIWMXIWCXBWRVSXIWLVPVQXIVRHIAUGUKULTXDXHWIHINNXDXENKZXFNK
      ZSZSZXHWIXMXHSZWEXEVTPQZXFWAPQZRZWOVTPQZWPWAPQZRZRZWHXNWEXOXRRZXPXSRZRZYA
      XNWEXEWOPQZXFWPPQZRZYDXNWEXGWQPQZYGXNAXGBWQPXMXHUNZXCWRXLXHUMZUOXNXJXKWTX
      AYHYGVNXDXJXKXHUPZXDXJXKXHUQZXCWTWRXLXHWNWTXAURTZXCXAWRXLXHWNWTXAUSTZXEXF
      WOWPUTVAVBXNYEYBYFYCXNXJWTWJYEYBUFYKYMXCWJWRXLXHWMWJWCXBVSWJWKURUJTZXEWOV
      TVDVCXNXKXAWKYFYCUFYLYNXCWKWRXLXHWMWKWCXBVSWJWKUSUJTZXFWPWAVDVCVEVFXOXRXP
      XSVGVHXNWFXQWGXTXNWFXGWBPQZXQXNAXGCWBPYIXCWCWRXLXHWMWCXBVITZUOXNXJXKWJWKY
      QXQVNYKYLYOYPXEXFVTWAUTVAVBXNWGWQWBPQZXTXNBWQCWBPYJYRUOXNWTXAWJWKYSXTVNYM
      YNYOYPWOWPVTWAUTVAVBVJVKVOVLVMVOVLVMVOVLVM $.
  $}

  ${
    $d A u v w x y z $.  $d B u v w x y z $.  $d C u v w x y z $.
    $( Addition respects apartness.  Analogue of ~ addcan for apartness.
       (Contributed by Jim Kingdon, 13-Feb-2020.) $)
    apadd1 $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
        ( A # B <-> ( A + C ) # ( B + C ) ) ) $=
      ( vu vv wcel cv ci cmul co caddc cr wrex cap wbr wb wa ad2antrr ad3antrrr
      recnd vz vw vx vy cc wceq cnre 3ad2ant3 3ad2ant2 3ad2ant1 simplrl simplrr
      w3a wo simprl simprr apreim syl22anc simpr simpllr readdcld ax-icn mulcld
      breq12d a1i simplr oveq12d adddid oveq2d 3eqtr4d reapadd1 syl3anc orbi12d
      add4d 3bitr4d ex rexlimdvva mpd ) AUEFZBUEFZCUEFZUMZCDGZHEGZIJZKJZUFZELMD
      LMZABNOZACKJZBCKJZNOZPZWAVSWHVTDECUGUHWBWGWMDELLWBWCLFZWDLFZQZQZWGWMWQWGQ
      ZBUAGZHUBGZIJZKJZUFZUBLMUALMZWMWBXDWPWGVTVSXDWAUAUBBUGUIRWRXCWMUAUBLLWRWS
      LFZWTLFZQZQZXCWMXHXCQZAUCGZHUDGZIJZKJZUFZUDLMUCLMZWMWRXOXGXCWBXOWPWGVSVTX
      OWAUCUDAUGUJRRXIXNWMUCUDLLXIXJLFZXKLFZQZQZXNWMXSXNQZXMXBNOZXJWSNOZXKWTNOZ
      UNZWIWLXTXPXQXEXFYAYDPXIXPXQXNUKZXIXPXQXNULZXHXEXCXRXNWRXEXFUOSZXHXFXCXRX
      NWRXEXFUPSZXJXKWSWTUQURXTAXMBXBNXSXNUSZXHXCXRXNUTZVDXTXJWCKJZHXKWDKJZIJZK
      JZWSWCKJZHWTWDKJZIJZKJZNOZYKYONOZYLYPNOZUNZWLYDXTYKLFYLLFYOLFYPLFYSUUBPXT
      XJWCYEXHWNXCXRXNWQWNWGXGWBWNWOUORSZVAXTXKWDYFXHWOXCXRXNWQWOWGXGWBWNWOUPRS
      ZVAXTWSWCYGUUCVAXTWTWDYHUUDVAYKYLYOYPUQURXTWJYNWKYRNXTXMWFKJYKXLWEKJZKJWJ
      YNXTXJXLWCWEXTXJYETXTHXKHUEFXTVBVEZXTXKYFTZVCXTWCUUCTZXTHWDUUFXTWDUUDTZVC
      ZVNXTAXMCWFKYIXHWGXCXRXNWQWGXGVFSZVGXTYMUUEYKKXTHXKWDUUFUUGUUIVHVIVJXTXBW
      FKJYOXAWEKJZKJWKYRXTWSXAWCWEXTWSYGTXTHWTUUFXTWTYHTZVCUUHUUJVNXTBXBCWFKYJU
      UKVGXTYQUULYOKXTHWTWDUUFUUMUUIVHVIVJVDXTYBYTYCUUAXTXPXEWNYBYTPYEYGUUCXJWS
      WCVKVLXTXQXFWOYCUUAPYFYHUUDXKWTWDVKVLVMVOVOVPVQVRVPVQVRVPVQVR $.
  $}

  $( Addition respects apartness.  (Contributed by Jim Kingdon,
     16-Feb-2020.) $)
  apadd2 $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) ->
      ( A # B <-> ( C + A ) # ( C + B ) ) ) $=
    ( cc wcel w3a cap wbr caddc apadd1 simp1 simp3 addcomd simp2 breq12d bitrd
    co ) ADEZBDEZCDEZFZABGHACIQZBCIQZGHCAIQZCBIQZGHABCJUAUBUDUCUEGUAACRSTKRSTLZ
    MUABCRSTNUFMOP $.

  $( Strong extensionality for addition.  Given excluded middle, apartness
     would be equivalent to negated equality and this would follow readily (for
     all operations) from ~ oveq12 .  For us, it is proved a different way.
     (Contributed by Jim Kingdon, 15-Feb-2020.) $)
  addext $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 co cap wbr wo simpll simplr addcld simprl simprr syl3anc
    wi wb apcotr apadd1 apadd2 apsym syl2anc bitrd orbi12d sylibrd ) AEFZBEFZGZ
    CEFZDEFZGZGZABHIZCDHIZJKZUPCBHIZJKZUQUSJKZLZACJKZBDJKZLUOUPEFUQEFZUSEFZURVB
    SUOABUIUJUNMZUIUJUNNZOUOCDUKULUMPZUKULUMQZOZUOCBVIVHOZUPUQUSUARUOVCUTVDVAUO
    UIULUJVCUTTVGVIVHACBUBRUOVDUSUQJKZVAUOUJUMULVDVMTVHVJVIBDCUCRUOVFVEVMVATVLV
    KUSUQUDUEUFUGUH $.

  ${
    $d A w x y z $.  $d B w x y z $.
    $( Negation respects apartness.  (Contributed by Jim Kingdon,
       14-Feb-2020.) $)
    apneg $p |- ( ( A e. CC /\ B e. CC ) -> ( A # B <-> -u A # -u B ) ) $=
      ( vz vw vx vy wcel wa cv ci cmul co caddc cr wrex cap wbr cneg renegcld
      wb cc wceq cnre adantl ad3antrrr wo simpr simpllr breq12d simplrl simplrr
      simprl simprr apreim syl22anc ax-icn mulcld negdid negeqd mulneg2d oveq2d
      recnd a1i 3eqtr4d reapneg syl2anc orbi12d 3bitr4rd 3bitrd rexlimdvva mpd
      ex ) AUAGZBUAGZHZBCIZJDIZKLZMLZUBZDNOCNOZABPQZARZBRZPQZTZVNWAVMCDBUCUDVOV
      TWFCDNNVOVPNGZVQNGZHZHZVTWFWJVTHZAEIZJFIZKLZMLZUBZFNOENOZWFVMWQVNWIVTEFAU
      CUEWKWPWFEFNNWKWLNGZWMNGZHZHZWPWFXAWPHZWBWOVSPQZWLVPPQZWMVQPQZUFZWEXBAWOB
      VSPXAWPUGZWJVTWTWPUHZUIXBWRWSWGWHXCXFTWKWRWSWPUJZWKWRWSWPUKZWJWGVTWTWPVOW
      GWHULUEZWJWHVTWTWPVOWGWHUMUEZWLWMVPVQUNUOXBWLRZJWMRZKLZMLZVPRZJVQRZKLZMLZ
      PQZXMXQPQZXNXRPQZUFZWEXFXBXMNGXNNGXQNGXRNGYAYDTXBWLXISXBWMXJSXBVPXKSXBVQX
      LSXMXNXQXRUNUOXBWCXPWDXTPXBWORXMWNRZMLWCXPXBWLWNXBWLXIVBXBJWMJUAGXBUPVCZX
      BWMXJVBZUQURXBAWOXGUSXBXOYEXMMXBJWMYFYGUTVAVDXBVSRXQVRRZMLWDXTXBVPVRXBVPX
      KVBXBJVQYFXBVQXLVBZUQURXBBVSXHUSXBXSYHXQMXBJVQYFYIUTVAVDUIXBXDYBXEYCXBWRW
      GXDYBTXIXKWLVPVEVFXBWSWHXEYCTXJXLWMVQVEVFVGVHVIVLVJVKVLVJVK $.
  $}

  ${
    $d A u v w x y z $.  $d B u v w x y z $.  $d C u v w x y z $.
    $( Left extensionality for complex multiplication.  (Contributed by Jim
       Kingdon, 22-Feb-2020.) $)
    mulext1 $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) -> (
        ( A x. C ) # ( B x. C ) -> A # B ) ) $=
      ( cc wcel cv cmul co caddc cr wrex cap wbr wi wa ad3antrrr recnd syl22anc
      mulcld remulcld vu vv vz vw vx vy ci wceq cnre 3ad2ant3 3ad2ant2 ad2antrr
      w3a 3ad2ant1 adantr cneg wo simplrl simprl simprr negcld addext remulext1
      simplrr syl3anc apneg syl2anc sylbird orim12d syld remulext2 orcom syl6ib
      jaod simpr simplr oveq12d simpllr breq12d renegcld readdcld apreim 3bitrd
      wb mulreim 3imtr4d sylibrd ex rexlimdvva mpd ) ADEZBDEZCDEZUMZCUAFZUGUBFZ
      GHIHZUHZUBJKUAJKZACGHZBCGHZLMZABLMZNZWMWKWSWLUAUBCUIUJWNWRXDUAUBJJWNWOJEZ
      WPJEZOZOZWRXDXHWROZBUCFZUGUDFZGHIHZUHZUDJKUCJKZXDWNXNXGWRWLWKXNWMUCUDBUIU
      KULXIXMXDUCUDJJXIXJJEZXKJEZOZOZXMXDXRXMOZAUEFZUGUFFZGHIHZUHZUFJKUEJKZXDXH
      YDWRXQXMWNYDXGWKWLYDWMUEUFAUIUNUOPXSYCXDUEUFJJXSXTJEZYAJEZOZOZYCXDYHYCOZX
      BYBXLLMZXCYIXTWOGHZYAWPGHZUPZIHZXJWOGHZXKWPGHZUPZIHZLMZWOYAGHZWPXTGHZIHZW
      OXKGHZWPXJGHZIHZLMZUQZXTXJLMZYAXKLMZUQZXBYJYIYSUUJUUFYIYSYKYOLMZYMYQLMZUQ
      ZUUJYIYKDEYMDEYODEYQDEYSUUMNYIXTWOYIXTXSYEYFYCURZQZYIWOXRXEXMYGYCXHXEWRXQ
      WNXEXFUSULPZQZSYIYLYIYAWPYIYAXSYEYFYCVDZQZYIWPXRXFXMYGYCXHXFWRXQWNXEXFUTU
      LPZQZSZVAYIXJWOYIXJXRXOXMYGYCXIXOXPUSPZQZUUQSYIYPYIXKWPYIXKXRXPXMYGYCXIXO
      XPUTPZQZUVASZVAYKYMYOYQVBRYIUUKUUHUULUUIYIYEXOXEUUKUUHNUUNUVCUUPXTXJWOVCV
      EYIUULYLYPLMZUUIYIYLDEYPDEUVHUULWDUVBUVGYLYPVFVGYIYFXPXFUVHUUINUURUVEUUTY
      AXKWPVCVEVHVIVJYIUUFUUIUUHUQZUUJYIUUFYTUUCLMZUUAUUDLMZUQZUVIYIYTDEUUADEUU
      CDEUUDDEUUFUVLNYIWOYAUUQUUSSYIWPXTUVAUUOSYIWOXKUUQUVFSYIWPXJUVAUVDSYTUUAU
      UCUUDVBRYIUVJUUIUVKUUHYIYFXPXEUVJUUINUURUVEUUPYAXKWOVKVEYIYEXOXFUVKUUHNUU
      NUVCUUTXTXJWPVKVEVIVJUUIUUHVLVMVNYIXBYBWQGHZXLWQGHZLMYNUGUUBGHIHZYRUGUUEG
      HIHZLMZUUGYIWTUVMXAUVNLYIAYBCWQGYHYCVOZXRWRXMYGYCXHWRXQVPPZVQYIBXLCWQGXRX
      MYGYCVRZUVSVQVSYIUVMUVOUVNUVPLYIYEYFXEXFUVMUVOUHUUNUURUUPUUTXTYAWOWPWERYI
      XOXPXEXFUVNUVPUHUVCUVEUUPUUTXJXKWOWPWERVSYIYNJEUUBJEYRJEUUEJEUVQUUGWDYIYK
      YMYIXTWOUUNUUPTYIYLYIYAWPUURUUTTVTWAYIYTUUAYIWOYAUUPUURTYIWPXTUUTUUNTWAYI
      YOYQYIXJWOUVCUUPTYIYPYIXKWPUVEUUTTVTWAYIUUCUUDYIWOXKUUPUVETYIWPXJUUTUVCTW
      AYNUUBYRUUEWBRWCYIYEYFXOXPYJUUJWDUUNUURUVCUVEXTYAXJXKWBRWFYIAYBBXLLUVRUVT
      VSWGWHWIWJWHWIWJWHWIWJ $.
  $}

  $( Right extensionality for complex multiplication.  (Contributed by Jim
     Kingdon, 22-Feb-2020.) $)
  mulext2 $p |- ( ( A e. CC /\ B e. CC /\ C e. CC ) -> (
      ( C x. A ) # ( C x. B ) -> A # B ) ) $=
    ( cc wcel w3a cmul cap wbr simp3 simp1 mulcomd simp2 breq12d mulext1 sylbid
    co ) ADEZBDEZCDEZFZCAGQZCBGQZHIACGQZBCGQZHIABHIUAUBUDUCUEHUACARSTJZRSTKLUAC
    BUFRSTMLNABCOP $.

  $( Strong extensionality for multiplication.  Given excluded middle,
     apartness would be equivalent to negated equality and this would follow
     readily (for all operations) from ~ oveq12 .  For us, it is proved a
     different way.  (Contributed by Jim Kingdon, 23-Feb-2020.) $)
  mulext $p |- ( ( ( A e. CC /\ B e. CC ) /\ ( C e. CC /\ D e. CC ) ) -> (
      ( A x. B ) # ( C x. D ) -> ( A # C \/ B # D ) ) ) $=
    ( cc wcel wa cmul cap wbr simpll simplr mulcld simprl simprr apcotr syl3anc
    co wo wi mulext1 mulext2 wb apsym syl2anc sylibd orim12d syld ) AEFZBEFZGZC
    EFZDEFZGZGZABHRZCDHRZIJZUPCBHRZIJZUQUSIJZSZACIJZBDIJZSUOUPEFUQEFUSEFURVBTUO
    ABUIUJUNKZUIUJUNLZMUOCDUKULUMNZUKULUMOZMUOCBVGVFMUPUQUSPQUOUTVCVAVDUOUIULUJ
    UTVCTVEVGVFACBUAQUOVADBIJZVDUOUMUJULVAVITVHVFVGDBCUBQUOUMUJVIVDUCVHVFDBUDUE
    UFUGUH $.

  $( A product apart from zero.  Lemma 2.13 of [Geuvers], p. 6.  (Contributed
     by Jim Kingdon, 24-Feb-2020.) $)
  mulap0r $p |- ( ( A e. CC /\ B e. CC /\ ( A x. B ) # 0 ) ->
      ( A # 0 /\ B # 0 ) ) $=
    ( cc wcel cmul co cc0 cap wbr wo breqtrrd wi mulext syl22anc wn apirr biorf
    mpd wb 3syl w3a simp3 simp2 mul02d simp1 0cnd orcomd mpbird mul01d jca ) AC
    DZBCDZABEFZGHIZUAZAGHIZBGHIZUOUPBBHIZUPJZUOUPURUOUMGBEFZHIZUPURJZUOUMGUTHUK
    ULUNUBZUOBUKULUNUCZUDKUOUKULGCDZULVAVBLUKULUNUEZVDUOUFZVDABGBMNRUGUOULUROUP
    USSVDBPURUPQTUHUOUQAAHIZUQJZUOUMAGEFZHIZVIUOUMGVJHVCUOAVFUIKUOUKULUKVEVKVIL
    VFVDVFVGABAGMNRUOUKVHOUQVISVFAPVHUQQTUHUJ $.

  $( A square is nonnegative.  Lemma 2.35 of [Geuvers], p. 9.  (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 clt wn remulcl anidms 0re ltnsym2 sylancl cap
    wa wo orc wb reaplt syl5ibr wi w3a cc mulap0r syl3an1 syl3an2 simpld 3expia
    recn apsqgt0 ex 3syld ancld mtod lenlt sylancr mpbird ) ABCZDAAEFZGHZVADIHZ
    JZUTVCVCDVAIHZQZUTVABCZDBCZVFJUTVGAAKLZMVADNOUTVCVEUTVCVADPHZADPHZVEVCVJUTV
    CVERZVCVESUTVGVHVJVLTVIMVADUAOUBUTVJVKUCUTUTVJVKUTUTVJUDVKVKUTUTAUECZVJVKVK
    QZAUKZUTVMVMVJVNVOAAUFUGUHUIUJLUTVKVEAULUMUNUOUPUTVHVGVBVDTMVIDVAUQURUS $.

  ${
    msqge0i.1 $e |- A e. RR $.
    $( 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 $.
  $}

  ${
    msqge0d.1 $e |- ( ph -> A e. RR ) $.
    $( 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 $.
  $}

  $( 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 wa clt wn ad2ant2r 0re sylancl cap wo wb reaplt lenlt
    cc mpbird co remulcl ltnsym2 orc syl5ibr simplll simplrl wi mulap0r syl3an1
    cmul recn syl3an2 3expia imp simpld mpan2 ad3antrrr mpbid mpan biimpa biorf
    ad2antrr simprd ad2antrl adantr ad2antlr mulgt0d ex syld ancld mtod sylancr
    syl ) ACDZEAFGZHZBCDZEBFGZHZHZEABUKUAZFGZWBEIGZJZWAWDWDEWBIGZHZWAWBCDZECDZW
    GJVOVRWHVPVSABUBKZLWBEUCMWAWDWFWAWDWBENGZWFWDWKWAWDWFOZWDWFUDWAWHWIWKWLPWJL
    WBEQMUEWAWKWFWAWKHZABVOVPVTWKUFVQVRVSWKUGWMEAIGZAEIGZWNOZWMAENGZWPWMWQBENGZ
    WAWKWQWRHZVOVRWKWSUHVPVSVOVRWKWSVRVOBSDZWKWSBULVOASDWTWKWSAULABUIUJUMUNKUOZ
    UPVOWQWPPZVPVTWKVOWIXBLAEQUQURUSWMWOJZWNWPPVQXCVTWKVOVPXCWIVOVPXCPLEARUTVAV
    CWOWNVBVNTWMEBIGZBEIGZXDOZWMWRXFWMWQWRXAVDWAWRXFPZWKVRXGVQVSVRWIXGLBEQUQVEV
    FUSWMXEJZXDXFPVTXHVQWKVRVSXHWIVRVSXHPLEBRUTVAVGXEXDVBVNTVHVIVJVKVLWAWIWHWCW
    EPLWJEWBRVMT $.

  ${
    mulge0i.1 $e |- A e. RR $.
    mulge0i.2 $e |- B e. RR $.
    $( 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 $.
  $}

  ${
    mulge0d.1 $e |- ( ph -> A e. RR ) $.
    mulge0d.2 $e |- ( ph -> B e. RR ) $.
    mulge0d.3 $e |- ( ph -> 0 <_ A ) $.
    mulge0d.4 $e |- ( ph -> 0 <_ B ) $.
    $( 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 ) ABHIJBKLCHIJCKLJBCMNKLDFE
      GBCOP $.
  $}

  ${
    $d A w x y z $.  $d B w x y z $.
    $( Complex apartness is tight.  (Contributed by Jim Kingdon,
       21-Feb-2020.) $)
    apti $p |- ( ( A e. CC /\ B e. CC ) -> ( A = B <-> -. A # B ) ) $=
      ( vx vy vz vw cc wcel wa cv co wceq cr wrex cap wbr wn wb syl2anc notbid
      cmul caddc cnre adantr adantl ad2antrr simpr ad3antrrr simplr cru simpllr
      ci eqeq12d apreim ioran syl6bb breq12d simpld reapti apreap bitr4d simprd
      wo creap anbi12d 3bitr4d ex rexlimdvva mpd ) AGHZBGHZIZACJZULDJZUAKUBKZLZ
      DMNCMNZABLZABOPZQZRZVJVQVKCDAUCUDVLVPWACDMMVLVMMHZVNMHZIZIZVPWAWEVPIZBEJZ
      ULFJZUAKUBKZLZFMNEMNZWAVLWKWDVPVKWKVJEFBUCUEUFWFWJWAEFMMWFWGMHZWHMHZIZIZW
      JWAWOWJIZVOWILZVMWGLZVNWHLZIZVRVTWPWDWNWQWTRWEWDVPWNWJVLWDUGUHZWFWNWJUIZV
      MVNWGWHUJSWPAVOBWIWEVPWNWJUKZWOWJUGZUMWPVOWIOPZQZVMWGOPZQZVNWHOPZQZIZVTWT
      WPWDWNXFXKRXAXBWDWNIZXFXGXIVCZQXKXLXEXMVMVNWGWHUNTXGXIUOUPSWPVSXEWPAVOBWI
      OXCXDUQTWPWRXHWSXJWPWBWLWRXHRWPWBWCXAURWPWLWMXBURWBWLIZWRVMWGVDPZQXHVMWGU
      SXNXGXOVMWGUTTVASWPWCWMWSXJRWPWBWCXAVBWPWLWMXBVBWCWMIZWSVNWHVDPZQXJVNWHUS
      XPXIXQVNWHUTTVASVEVFVFVGVHVIVGVHVI $.
  $}

  $( Apartness implies negated equality.  We cannot in general prove the
     converse, which is the whole point of having separate notations for
     apartness and negated equality.  (Contributed by Jim Kingdon,
     21-Feb-2020.) $)
  apne $p |- ( ( A e. CC /\ B e. CC ) -> ( A # B -> A =/= B ) ) $=
    ( cc wcel wa cap wbr wceq wn apti biimpd necon2ad ) ACDBCDEZABFGZABMABHNIAB
    JKL $.

  $( '<_' implies 'less than' is 'apart'.  (Contributed by Jim Kingdon,
     13-Aug-2021.) $)
  leltap $p |- ( ( A e. RR /\ B e. RR /\ A <_ B ) ->
      ( A < B <-> B # A ) ) $=
    ( cr wcel cle wbr w3a clt wo cap wn wb simp3 simp1 simp2 lenltd mpbid biorf
    syl reaplt syl2anc bitr4d ) ACDZBCDZABEFZGZABHFZBAHFZUGIZBAJFZUFUHKZUGUILUF
    UEUKUCUDUEMUFABUCUDUENZUCUDUEOZPQUHUGRSUFUDUCUJUILUMULBATUAUB $.

  $( Positive implies apart from zero.  (Contributed by Jim Kingdon,
     27-Feb-2020.) $)
  gt0ap0 $p |- ( ( A e. RR /\ 0 < A ) -> A # 0 ) $=
    ( cr wcel cc0 clt wbr wa cap wo simpr olcd wb 0red reaplt syldan mpbird ) A
    BCZDAEFZGZADHFZADEFZRIZSRUAQRJKQRDBCTUBLSMADNOP $.

  ${
    gt0ap0i.1 $e |- A e. RR $.
    $( Positive means apart from zero (useful for ordering theorems involving
       division).  (Contributed by Jim Kingdon, 27-Feb-2020.) $)
    gt0ap0i $p |- ( 0 < A -> A # 0 ) $=
      ( cr wcel cc0 clt wbr cap gt0ap0 mpan ) ACDEAFGAEHGBAIJ $.

    ${
      gt0ap0i.2 $e |- 0 < A $.
      $( Positive implies apart from zero.  (Contributed by Jim Kingdon,
         27-Feb-2020.) $)
      gt0ap0ii $p |- A # 0 $=
        ( cc0 clt wbr cap gt0ap0i ax-mp ) DAEFADGFCABHI $.
    $}
  $}

  ${
    gt0ap0d.1 $e |- ( ph -> A e. RR ) $.
    gt0ap0d.2 $e |- ( ph -> 0 < A ) $.
    $( Positive implies apart from zero.  Because of the way we define ` # ` ,
       ` A ` must be an element of ` RR ` , not just ` RR* ` .  (Contributed by
       Jim Kingdon, 27-Feb-2020.) $)
    gt0ap0d $p |- ( ph -> A # 0 ) $=
      ( cr wcel cc0 clt wbr cap gt0ap0 syl2anc ) ABEFGBHIBGJICDBKL $.
  $}

  $( A number is apart from zero iff its negative is apart from zero.
     (Contributed by Jim Kingdon, 27-Feb-2020.) $)
  negap0 $p |- ( A e. CC -> ( A # 0 <-> -u A # 0 ) ) $=
    ( cc wcel cc0 cap wbr cneg wb 0cn apneg mpan2 neg0 breq2i syl6bb ) ABCZADEF
    ZAGZDGZEFZQDEFODBCPSHIADJKRDQELMN $.

  $( Less than in terms of non-strict order and apartness.  (Contributed by Jim
     Kingdon, 28-Feb-2020.) $)
  ltleap $p |- ( ( A e. RR /\ B e. RR ) ->
      ( A < B <-> ( A <_ B /\ A # B ) ) ) $=
    ( cr wcel wa clt wbr cle cap ltle wo orc reaplt syl5ibr wn simprl wb adantr
    jcad mpbid lenlt simprr ecased ex impbid ) ACDBCDEZABFGZABHGZABIGZEZUFUGUHU
    IABJUGUIUFUGBAFGZKZUGUKLABMZNSUFUJUGUFUJEZUGUKUNUHUKOZUFUHUIPUFUHUOQUJABUAR
    TUNUIULUFUHUIUBUFUIULQUJUMRTUCUDUE $.

  $( 'Less than' implies apart.  (Contributed by Jim Kingdon, 12-Aug-2021.) $)
  ltap $p |- ( ( A e. RR /\ B e. RR /\ A < B ) -> B # A ) $=
    ( cr wcel clt wbr w3a cap wo simp3 olcd simp2 simp1 reaplt syl2anc mpbird
    wb ) ACDZBCDZABEFZGZBAHFZBAEFZTIZUATUCRSTJKUASRUBUDQRSTLRSTMBANOP $.

  ${
    ltapii.a $e |- A e. RR $.
    ltapii.b $e |- B e. RR $.
    ${
      ltapii.lt $e |- A < B $.
      $( 'Greater than' implies apart.  (Contributed by Jim Kingdon,
         12-Aug-2021.) $)
      gtapii $p |- B # A $=
        ( cr wcel clt wbr cap ltap mp3an ) AFGBFGABHIBAJICDEABKL $.

      $( 'Less than' implies apart.  (Contributed by Jim Kingdon,
         12-Aug-2021.) $)
      ltapii $p |- A # B $=
        ( cap wbr gtapii cc wcel wb recni apsym mp2an mpbi ) BAFGZABFGZABCDEHBI
        JAIJPQKBDLACLBAMNO $.
    $}

    $( 'Less than' implies apart.  (Contributed by Jim Kingdon,
       12-Aug-2021.) $)
    ltapi $p |- ( A < B -> B # A ) $=
      ( cr wcel clt wbr cap ltap mp3an12 ) AEFBEFABGHBAIHCDABJK $.
  $}

  ${
    ltapd.a $e |- ( ph -> A e. RR ) $.
    ltapd.b $e |- ( ph -> B e. RR ) $.

    ${
      ltapd.lt $e |- ( ph -> A < B ) $.
      $( 'Greater than' implies apart.  (Contributed by Jim Kingdon,
         12-Aug-2021.) $)
      gtapd $p |- ( ph -> B # A ) $=
        ( cr wcel clt wbr cap ltap syl3anc ) ABGHCGHBCIJCBKJDEFBCLM $.

      $( 'Less than' implies apart.  (Contributed by Jim Kingdon,
         12-Aug-2021.) $)
      ltapd $p |- ( ph -> A # B ) $=
        ( cap wbr gtapd cc wcel wb recnd apsym syl2anc mpbid ) ACBGHZBCGHZABCDE
        FIACJKBJKQRLACEMABDMCBNOP $.
    $}

    ${
      leltapd.3 $e |- ( ph -> A <_ B ) $.
      $( '<_' implies 'less than' is 'apart'.  (Contributed by Jim Kingdon,
         13-Aug-2021.) $)
      leltapd $p |- ( ph -> ( A < B <-> B # A ) ) $=
        ( cr wcel cle wbr clt cap wb leltap syl3anc ) ABGHCGHBCIJBCKJCBLJMDEFBC
        NO $.
    $}
  $}

  $( A nonnegative number is apart from zero if and only if it is positive.
     (Contributed by Jim Kingdon, 11-Aug-2021.) $)
  ap0gt0 $p |- ( ( A e. RR /\ 0 <_ A ) -> ( A # 0 <-> 0 < A ) ) $=
    ( cr wcel cc0 cle wbr wa cap wo wb 0red reaplt syldan wn simpr simpl lenltd
    clt mpbid biorf syl bitr4d ) ABCZDAEFZGZADHFZADRFZDARFZIZUHUCUDDBCUFUIJUEKZ
    ADLMUEUGNZUHUIJUEUDUKUCUDOUEDAUJUCUDPQSUGUHTUAUB $.

  ${
    ap0gt0d.1 $e |- ( ph -> A e. RR ) $.
    ${
      ap0gt0d.2 $e |- ( ph -> 0 <_ A ) $.
      ap0gt0d.3 $e |- ( ph -> A # 0 ) $.
      $( A nonzero nonnegative number is positive.  (Contributed by Jim
         Kingdon, 11-Aug-2021.) $)
      ap0gt0d $p |- ( ph -> 0 < A ) $=
        ( cc0 cap wbr clt cr wcel cle wb ap0gt0 syl2anc mpbid ) ABFGHZFBIHZEABJ
        KFBLHQRMCDBNOP $.
    $}
  $}

  ${
    subap0d.a $e |- ( ph -> A e. CC ) $.
    subap0d.b $e |- ( ph -> B e. CC ) $.
    ${
      subap0d.ap $e |- ( ph -> A # B ) $.
      $( Two numbers apart from each other have difference apart from zero.
         (Contributed by Jim Kingdon, 12-Aug-2021.) $)
      subap0d $p |- ( ph -> ( A - B ) # 0 ) $=
        ( cneg caddc co cmin cc0 cap wbr cc wcel wb negcld apadd1 syl3anc mpbid
        negsubd negidd 3brtr3d ) ABCGZHIZCUDHIZBCJIKLABCLMZUEUFLMZFABNOCNOUDNOU
        GUHPDEACEQBCUDRSTABCDEUAACEUBUC $.
    $}
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Reciprocals
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Lemma for ~ recexap .  (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 ~ recexap .  (Contributed by Jim Kingdon, 20-Feb-2020.) $)
  recexaplem2 $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 cap wbr clt wo wa wb 0re cle remulcl anim12i
    anidms w3a ax-icn mul01i oveq2i eqtr2i breq2i apreim mpanr12 syl5bb pm5.32i
    00id adantr apsqgt0 msqge0 an32s addgtge0 syl2anc anassrs jaodan sylbi olcd
    addgegt0 3impa simp1 remulcld simp2 readdcld reaplt sylancl mpbird ) ACDZBC
    DZAEBFGHGZIJKZUAZAAFGZBBFGZHGZIJKZVRILKZIVRLKZMZVOWAVTVKVLVNWAVKVLNZVNNWCAI
    JKZBIJKZMZNWAWCVNWFVNVMIEIFGZHGZJKZWCWFIWHVMJWHIIHGIWGIIHEUBUCUDUKUEUFWCICD
    ZWJWIWFOPPABIIUGUHUIUJWCWDWAWEWCWDNVPCDZVQCDZNZIVPLKZIVQQKZNZWAWCWMWDVKWKVL
    WLVKWKAARTVLWLBBRTSZULVKWDVLWPVKWDNWNVLWOAUMBUNSUOVPVQUPUQWCWENWMIVPQKZIVQL
    KZNZWAWCWMWEWQULVKVLWEWTVKWRVLWENWSAUNBUMSURVPVQVBUQUSUTVCVAVOVRCDWJVSWBOVO
    VPVQVOAAVKVLVNVDZXAVEVOBBVKVLVNVFZXBVEVGPVRIVHVIVJ $.

  ${
    $d x y a b A $.
    $( Existence of reciprocal of nonzero complex number.  (Contributed by Jim
       Kingdon, 20-Feb-2020.) $)
    recexap $p |- ( ( A e. CC /\ A # 0 ) -> E. x e. CC ( A x. x ) = 1 ) $=
      ( va vb vy cc wcel cc0 cap wbr cv cmul co c1 wceq wrex cr wi wa adantr ci
      caddc cnre recexaplem2 3expia wb remulcl anidms readdcl syl2an 0re apreap
      creap sylancl recexre sylan recn cmin ax-icn mulcl mpan subcl addcl simpr
      sylan2 mulassd recextlem1 oveq1d eqtr3d id sylan9eq eqeq1d rspcev syl2anc
      oveq2 exp31 syl5 rexlimdv mpd ex sylbid syld breq1 adantl rexbidv 3imtr4d
      oveq1 rexlimivv syl imp ) BFGZBHIJZBAKZLMZNOZAFPZWKBCKZUADKZLMZUBMZOZDQPC
      QPWLWPRZCDBUCXAXBCDQQWQQGZWRQGZSZXAXBXEXASWTHIJZWTWMLMZNOZAFPZWLWPXEXFXIR
      XAXEXFWQWQLMZWRWRLMZUBMZHIJZXIXCXDXFXMWQWRUDUEXEXMXLHUMJZXIXEXLQGZHQGXMXN
      UFXCXJQGZXKQGZXOXDXCXPWQWQUGUHXDXQWRWRUGUHXJXKUIUJZUKXLHULUNXEXNXIXEXNSXL
      EKZLMZNOZEQPZXIXEXOXNYBXREXLUOUPXEYBXIRZXNXCWQFGZWRFGZYCXDWQUQWRUQYDYESZY
      AXIEQXSQGXSFGZYFYAXIRXSUQYFYGYAXIYFYGSZYASWQWSURMZXSLMZFGZWTYJLMZNOZXIYHY
      KYAYFYIFGZYGYKYEYDWSFGZYNUAFGYEYOUSUAWRUTVAZWQWSVBVEZYIXSUTUPTYHYAYLXTNYH
      WTYILMZXSLMYLXTYHWTYIXSYFWTFGZYGYEYDYOYSYPWQWSVCVETYFYNYGYQTYFYGVDVFYHYRX
      LXSLYFYRXLOYGWQWRVGTVHVIYAVJVKXHYMAYJFWMYJOXGYLNWMYJWTLVOVLVMVNVPVQVRUJTV
      SVTWAWBTXAWLXFUFXEBWTHIWCWDXAWPXIUFXEXAWOXHAFXAWNXGNBWTWMLWGVLWEWDWFVTWHW
      IWJ $.
  $}

  ${
    $d A x $.  $d B x $.
    $( The product of two numbers apart from zero is apart from zero.  Lemma
       2.15 of [Geuvers], p. 6.  (Contributed by Jim Kingdon, 22-Feb-2020.) $)
    mulap0 $p |- ( ( ( A e. CC /\ A # 0 ) /\ ( B e. CC /\ B # 0 ) ) ->
        ( A x. B ) # 0 ) $=
      ( vx cc wcel cc0 cap wa cv cmul co c1 wceq recexap adantl simpllr simplll
      wbr wrex simplrl simprl mulassd simprr oveq2d mulid1d 3eqtrd 3brtr4d 0cnd
      mul02d wi mulcld mulext1 syl3anc mpd rexlimddv ) ADEZAFGRZHZBDEZBFGRZHZHZ
      BCIZJKZLMZABJKZFGRZCDVAVECDSURCBNOVBVCDEZVEHZHZVFVCJKZFVCJKZGRZVGVJAFVKVL
      GUPUQVAVIPVJVKAVDJKALJKAVJABVCUPUQVAVIQZURUSUTVITZVBVHVEUAZUBVJVDLAJVBVHV
      EUCUDVJAVNUEUFVJVCVPUIUGVJVFDEFDEVHVMVGUJVJABVNVOUKVJUHVPVFFVCULUMUNUO $.
  $}

  $( The product of two numbers apart from zero is apart from zero.
     (Contributed by Jim Kingdon, 24-Feb-2020.) $)
  mulap0b $p |- ( ( A e. CC /\ B e. CC ) -> ( ( A # 0 /\ B # 0 ) <->
      ( A x. B ) # 0 ) ) $=
    ( cc wcel wa cc0 cap wbr cmul co mulap0 an4s ex mulap0r 3expia impbid ) ACD
    ZBCDZEZAFGHZBFGHZEZABIJFGHZSUBUCQTRUAUCABKLMQRUCUBABNOP $.

  ${
    mulap0i.1 $e |- A e. CC $.
    mulap0i.2 $e |- B e. CC $.
    mulap0i.3 $e |- A # 0 $.
    mulap0i.4 $e |- B # 0 $.
    $( The product of two numbers apart from zero is apart from zero.
       (Contributed by Jim Kingdon, 23-Feb-2020.) $)
    mulap0i $p |- ( A x. B ) # 0 $=
      ( cc wcel cc0 cap wbr cmul co mulap0 mp4an ) AGHAIJKBGHBIJKABLMIJKCEDFABN
      O $.
  $}

  ${
    mulap0d.1 $e |- ( ph -> A e. CC ) $.
    mulap0d.2 $e |- ( ph -> B e. CC ) $.
    $( The product of two numbers apart from zero is apart from zero.
       (Contributed by Jim Kingdon, 24-Feb-2020.) $)
    mulap0bd $p |- ( ph -> ( ( A # 0 /\ B # 0 ) <-> ( A x. B ) # 0 ) ) $=
      ( cc wcel cc0 cap wbr wa cmul co wb mulap0b syl2anc ) ABFGCFGBHIJCHIJKBCL
      MHIJNDEBCOP $.

    mulap0d.3 $e |- ( ph -> A # 0 ) $.
    mulap0d.4 $e |- ( ph -> B # 0 ) $.
    $( The product of two numbers apart from zero is apart from zero.
       (Contributed by Jim Kingdon, 23-Feb-2020.) $)
    mulap0d $p |- ( ph -> ( A x. B ) # 0 ) $=
      ( cc wcel cc0 cap wbr cmul co mulap0 syl22anc ) ABHIBJKLCHICJKLBCMNJKLDFE
      GBCOP $.
  $}

  ${
    mulap0bad.1 $e |- ( ph -> A e. CC ) $.
    mulap0bad.2 $e |- ( ph -> B e. CC ) $.
    mulap0bad.3 $e |- ( ph -> ( A x. B ) # 0 ) $.
    $( A factor of a complex number apart from zero is apart from zero.
       Partial converse of ~ mulap0d and consequence of ~ mulap0bd .
       (Contributed by Jim Kingdon, 24-Feb-2020.) $)
    mulap0bad $p |- ( ph -> A # 0 ) $=
      ( cc0 cap wbr wa cmul co mulap0bd mpbird simpld ) ABGHIZCGHIZAPQJBCKLGHIF
      ABCDEMNO $.

    $( A factor of a complex number apart from zero is apart from zero.
       Partial converse of ~ mulap0d and consequence of ~ mulap0bd .
       (Contributed by Jim Kingdon, 24-Feb-2020.) $)
    mulap0bbd $p |- ( ph -> B # 0 ) $=
      ( cc0 cap wbr wa cmul co mulap0bd mpbird simprd ) ABGHIZCGHIZAPQJBCKLGHIF
      ABCDEMNO $.
  $}

  ${
    $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.  (Contributed by Jim Kingdon,
       21-Feb-2020.) $)
    mulcanapd $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 cap
      wrex recexap syl2anc simprl mulcomd simprr mulid2d 3eqtr3d eqeq12d syl5ib
      wbr eqtrd rexlimddv impbid1 ) ADBJKZDCJKZLZBCLZADIUAZJKZMLZVAVBUBINADNOZD
      UCUDUOVEINUEGHIDUFUGVAVCUSJKZVCUTJKZLAVCNOZVEPZPZVBUSUTVCJQVKVGBVHCVKVCDJ
      KZBJKMBJKVGBVKVLMBJVKVLVDMVKVCDAVIVEUHZAVFVJGRZUIAVIVEUJUPZSVKVCDBVMVNABN
      OVJERZTVKBVPUKULVKVLCJKMCJKVHCVKVLMCJVOSVKVCDCVMVNACNOVJFRZTVKCVQUKULUMUN
      UQBCDJQUR $.

    $( Cancellation law for multiplication.  (Contributed by Jim Kingdon,
       21-Feb-2020.) $)
    mulcanap2d $p |- ( ph -> ( ( A x. C ) = ( B x. C ) <-> A = B ) ) $=
      ( cmul co wceq mulcomd eqeq12d mulcanapd bitrd ) ABDIJZCDIJZKDBIJZDCIJZKB
      CKAPRQSABDEGLACDFGLMABCDEFGHNO $.
  $}

  ${
    mulcanapad.1 $e |- ( ph -> A e. CC ) $.
    mulcanapad.2 $e |- ( ph -> B e. CC ) $.
    mulcanapad.3 $e |- ( ph -> C e. CC ) $.
    mulcanapad.4 $e |- ( ph -> C # 0 ) $.
    ${
      mulcanapad.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 ~ mulcanapd .  (Contributed by Jim Kingdon,
         21-Feb-2020.) $)
      mulcanapad $p |- ( ph -> A = B ) $=
        ( cmul co wceq mulcanapd mpbid ) ADBJKDCJKLBCLIABCDEFGHMN $.
    $}

    ${
      mulcanap2ad.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 ~ mulcanap2d .  (Contributed by Jim Kingdon,
         21-Feb-2020.) $)
      mulcanap2ad $p |- ( ph -> A = B ) $=
        ( cmul co wceq mulcanap2d mpbid ) ABDJKCDJKLBCLIABCDEFGHMN $.
    $}
  $}

  $( Cancellation law for multiplication (full theorem form).  (Contributed by
     Jim Kingdon, 21-Feb-2020.) $)
  mulcanap $p |- ( ( A e. CC /\ B e. CC /\ ( C e. CC /\ C # 0 ) ) ->
                 ( ( C x. A ) = ( C x. B ) <-> A = B ) ) $=
    ( cc wcel cc0 cap wbr wa w3a simp1 simp2 simp3l simp3r mulcanapd ) ADEZBDEZ
    CDEZCFGHZIZJABCPQTKPQTLPQRSMPQRSNO $.

  $( Cancellation law for multiplication.  (Contributed by Jim Kingdon,
     21-Feb-2020.) $)
  mulcanap2 $p |- ( ( A e. CC /\ B e. CC /\ ( C e. CC /\ C # 0 ) ) ->
                 ( ( A x. C ) = ( B x. C ) <-> A = B ) ) $=
    ( cc wcel cc0 cap wbr wa w3a simp1 simp2 simp3l simp3r mulcanap2d ) ADEZBDE
    ZCDEZCFGHZIZJABCPQTKPQTLPQRSMPQRSNO $.

  ${
    mulcanapi.1 $e |- A e. CC $.
    mulcanapi.2 $e |- B e. CC $.
    mulcanapi.3 $e |- C e. CC $.
    mulcanapi.4 $e |- C # 0 $.
    $( Cancellation law for multiplication.  (Contributed by Jim Kingdon,
       21-Feb-2020.) $)
    mulcanapi $p |- ( ( C x. A ) = ( C x. B ) <-> A = B ) $=
      ( cc wcel cc0 cap wbr wa cmul co wceq wb pm3.2i mulcanap mp3an ) AHIBHICH
      IZCJKLZMCANOCBNOPABPQDEUAUBFGRABCST $.
  $}

  $( 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.  (Contributed by Jim Kingdon,
       21-Feb-2020.) $)
    receuap $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 cap wbr wreu recexap simprl simpll mulcld oveq1 simplr mulassd mulid2d
      ad2antll 3eqtr3d rspcev syl2anc rexlimdvaa 3adant3 mpd eqtr3 syl5ib 3expa
      mulcanap expcom ralrimivv reu4 sylanbrc ) BEFZCEFZCGUAUBZHZCAIZJKZBLZAEMZ
      VMCDIZJKZBLZNZVKVOLZOZDEPAEPVMAEUCVJVPTLZDEMZVNVHVIWBVGDCUDQVGVHWBVNOVIVG
      VHNZWAVNDEWCVOEFZWANZNZVOBJKZEFCWGJKZBLZVNWFVOBWCWDWAUEZVGVHWEUFZUGWFVPBJ
      KZTBJKZWHBWAWLWMLWCWDVPTBJUHULWFCVOBVGVHWEUIWJWKUJWFBWKUKUMVMWIAWGEVKWGLV
      LWHBVKWGCJRSUNUOUPUQURVJVTADEEVHVIVKEFZWDNZVTOVGWOVHVINZVTWNWDWPVTVRVLVPL
      WNWDWPHVSVLVPBUSVKVOCVBUTVAVCQVDVMVQADEVSVLVPBVKVOCJRSVEVF $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Division
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Extend class notation to include division. $)
  cdiv $a class / $.

  ${
    $d x y z $.
    $( Define division.  Theorem ~ divmulap relates it to multiplication, and
       ~ divclap and ~ redivclap prove its closure laws.  (Contributed by NM,
       2-Feb-1995.)  (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 A $.  $d x y z B $.  $d x y C $.
    $( Value of division: the (unique) element ` x ` such that
       ` ( B x. x ) = A ` .  This is meaningful only when ` B ` is apart from
       zero.  (Contributed by Jim Kingdon, 21-Feb-2020.) $)
    divvalap $p |- ( ( A e. CC /\ B e. CC /\ B # 0 ) ->
        ( A / B ) = ( iota_ x e. CC ( B x. x ) = A ) ) $=
      ( vz vy cc wcel cc0 cap wbr w3a csn cdif cv cmul wceq crio cdiv riotabidv
      co simp1 wne simp2 wi 0cn apne mpan2 adantl eldifsn sylanbrc wreu receuap
      3impia riotacl syl eqeq2 oveq1 eqeq1d df-div ovmpt2g syl3anc ) BFGZCFGZCH
      IJZKZVBCFHLMZGZCANZOTZBPZAFQZFGZBCRTVKPVBVCVDUAVEVCCHUBZVGVBVCVDUCVBVCVDV
      MVCVDVMUDZVBVCHFGVNUECHUFUGUHUMCFHUIUJVEVJAFUKVLABCULVJAFUNUODEBCFVFENZVH
      OTZDNZPZAFQVKRVPBPZAFQFVQBPVRVSAFVQBVPUPSVOCPZVSVJAFVTVPVIBVOCVHOUQURSDEA
      USUTVA $.

    $( Relationship between division and multiplication.  (Contributed by Jim
       Kingdon, 22-Feb-2020.) $)
    divmulap $p |- ( ( A e. CC /\ B e. CC /\ ( C e. CC /\ C # 0 ) )
        -> ( ( A / C ) = B <-> ( C x. B ) = A ) ) $=
      ( vx cc wcel cc0 cap wbr wa w3a cdiv co wceq cv cmul 3expb 3adant2 eqeq1d
      crio divvalap wreu wb simp2 receuap oveq2 riota2 syl2anc bitr4d ) AEFZBEF
      ZCEFZCGHIZJZKZACLMZBNCDOZPMZANZDETZBNZCBPMZANZUOUPUTBUJUNUPUTNZUKUJULUMVD
      DACUAQRSUOUKUSDEUBZVCVAUCUJUKUNUDUJUNVEUKUJULUMVEDACUEQRUSVCDEBUQBNURVBAU
      QBCPUFSUGUHUI $.
  $}

  $( Relationship between division and multiplication.  (Contributed by Jim
     Kingdon, 22-Feb-2020.) $)
  divmulap2 $p |- ( ( A e. CC /\ B e. CC /\ ( C e. CC /\ C # 0 ) )
      -> ( ( A / C ) = B <-> A = ( C x. B ) ) ) $=
    ( cc wcel cc0 cap wbr wa w3a cdiv co wceq cmul divmulap eqcom syl6bb ) ADEB
    DECDECFGHIJACKLBMCBNLZAMARMABCORAPQ $.

  $( Relationship between division and multiplication.  (Contributed by Jim
     Kingdon, 22-Feb-2020.) $)
  divmulap3 $p |- ( ( A e. CC /\ B e. CC /\ ( C e. CC /\ C # 0 ) )
      -> ( ( A / C ) = B <-> A = ( B x. C ) ) ) $=
    ( cc wcel cc0 cap wbr wa cdiv co wceq cmul divmulap2 mulcom adantrr 3adant1
    w3a eqeq2d bitr4d ) ADEZBDEZCDEZCFGHZIZRZACJKBLACBMKZLABCMKZLABCNUFUHUGAUBU
    EUHUGLZUAUBUCUIUDBCOPQST $.

  ${
    $d x A $.  $d x B $.
    $( Closure law for division.  (Contributed by Jim Kingdon, 22-Feb-2020.) $)
    divclap $p |- ( ( A e. CC /\ B e. CC /\ B # 0 ) -> ( A / B ) e. CC ) $=
      ( vx cc wcel cc0 cap wbr w3a cdiv co cmul wceq crio divvalap wreu receuap
      cv riotacl syl eqeltrd ) ADEBDEBFGHIZABJKBCRLKAMZCDNZDCABOUBUCCDPUDDECABQ
      UCCDSTUA $.
  $}

  $( Closure law for reciprocal.  (Contributed by Jim Kingdon, 22-Feb-2020.) $)
  recclap $p |- ( ( A e. CC /\ A # 0 ) -> ( 1 / A ) e. CC ) $=
    ( c1 cc wcel cc0 cap wbr cdiv co ax-1cn divclap mp3an1 ) BCDACDAEFGBAHICDJB
    AKL $.

  $( A cancellation law for division.  (Contributed by Jim Kingdon,
     22-Feb-2020.) $)
  divcanap2 $p |- ( ( A e. CC /\ B e. CC /\ B # 0 ) ->
      ( B x. ( A / B ) ) = A ) $=
    ( cc wcel cc0 cap wbr w3a cdiv co wceq cmul eqid wa wb simp1 divclap 3simpc
    divmulap syl3anc mpbii ) ACDZBCDZBEFGZHZABIJZUFKZBUFLJAKZUFMUEUBUFCDUCUDNUG
    UHOUBUCUDPABQUBUCUDRAUFBSTUA $.

  $( A cancellation law for division.  (Contributed by Jim Kingdon,
     22-Feb-2020.) $)
  divcanap1 $p |- ( ( A e. CC /\ B e. CC /\ B # 0 )
      -> ( ( A / B ) x. B ) = A ) $=
    ( cc wcel cc0 cap wbr w3a cdiv cmul divclap simp2 mulcomd divcanap2 eqtrd
    co ) ACDZBCDZBEFGZHZABIPZBJPBUAJPATUABABKQRSLMABNO $.

  $( A ratio is zero iff the numerator is zero.  (Contributed by Jim Kingdon,
     22-Feb-2020.) $)
  diveqap0 $p |- ( ( A e. CC /\ B e. CC /\ B # 0 ) ->
      ( ( A / B ) = 0 <-> A = 0 ) ) $=
    ( cc wcel cc0 cap wbr w3a cdiv co wceq cmul wa wb simp1 0cnd 3simpc syl3anc
    divmulap2 simp2 mul01d eqeq2d bitrd ) ACDZBCDZBEFGZHZABIJEKZABELJZKZAEKUGUD
    ECDUEUFMUHUJNUDUEUFOUGPUDUEUFQAEBSRUGUIEAUGBUDUEUFTUAUBUC $.

  $( The ratio of numbers apart from zero is apart from zero.  (Contributed by
     Jim Kingdon, 22-Feb-2020.) $)
  divap0b $p |- ( ( A e. CC /\ B e. CC /\ B # 0 ) ->
      ( A # 0 <-> ( A / B ) # 0 ) ) $=
    ( cc wcel cc0 cap wbr cdiv co wa cmul simp3 biantrud divclap simp2 mulap0bd
    w3a divcanap1 breq1d 3bitrrd ) ACDZBCDZBEFGZQZABHIZEFGZUFUCJUEBKIZEFGAEFGUD
    UCUFUAUBUCLMUDUEBABNUAUBUCOPUDUGAEFABRST $.

  $( The ratio of numbers apart from zero is apart from zero.  (Contributed by
     Jim Kingdon, 22-Feb-2020.) $)
  divap0 $p |- ( ( ( A e. CC /\ A # 0 ) /\ ( B e. CC /\ B # 0 ) ) ->
      ( A / B ) # 0 ) $=
    ( cc wcel cc0 cap wbr wa cdiv co wb divap0b 3expb biimpa an32s ) ACDZBCDZBE
    FGZHZAEFGZABIJEFGZPSHTUAPQRTUAKABLMNO $.

  $( The reciprocal of a number apart from zero is apart from zero.
     (Contributed by Jim Kingdon, 24-Feb-2020.) $)
  recap0 $p |- ( ( A e. CC /\ A # 0 ) -> ( 1 / A ) # 0 ) $=
    ( c1 cc wcel cc0 cap wbr wa cdiv co ax-1cn 1ap0 divap0 mpanl12 ) BCDBEFGACD
    AEFGHBAIJEFGKLBAMN $.

  $( Multiplication of a number and its reciprocal.  (Contributed by Jim
     Kingdon, 24-Feb-2020.) $)
  recidap $p |- ( ( A e. CC /\ A # 0 ) -> ( A x. ( 1 / A ) ) = 1 ) $=
    ( c1 cc wcel cc0 cap wbr cdiv co cmul wceq ax-1cn divcanap2 mp3an1 ) BCDACD
    AEFGABAHIJIBKLBAMN $.

  $( Multiplication of a number and its reciprocal.  (Contributed by Jim
     Kingdon, 24-Feb-2020.) $)
  recidap2 $p |- ( ( A e. CC /\ A # 0 ) -> ( ( 1 / A ) x. A ) = 1 ) $=
    ( c1 cc wcel cc0 cap wbr cdiv co cmul wceq ax-1cn divcanap1 mp3an1 ) BCDACD
    AEFGBAHIAJIBKLBAMN $.

  $( Relationship between division and reciprocal.  (Contributed by Jim
     Kingdon, 24-Feb-2020.) $)
  divrecap $p |- ( ( A e. CC /\ B e. CC /\ B # 0 ) ->
      ( A / B ) = ( A x. ( 1 / B ) ) ) $=
    ( cc wcel cc0 cap wbr w3a cdiv co c1 cmul wceq simp2 recclap 3adant1 mul12d
    simp1 recidap oveq2d mulid1d 3eqtrd mulcld 3simpc divmulap syl3anc mpbird
    wa wb ) ACDZBCDZBEFGZHZABIJAKBIJZLJZMZBUOLJZAMZUMUQABUNLJZLJAKLJAUMBAUNUJUK
    ULNUJUKULRZUKULUNCDUJBOPZQUMUSKALUKULUSKMUJBSPTUMAUTUAUBUMUJUOCDUKULUHUPURU
    IUTUMAUNUTVAUCUJUKULUDAUOBUEUFUG $.

  $( Relationship between division and reciprocal.  (Contributed by Jim
     Kingdon, 25-Feb-2020.) $)
  divrecap2 $p |- ( ( A e. CC /\ B e. CC /\ B # 0 ) ->
      ( A / B ) = ( ( 1 / B ) x. A ) ) $=
    ( cc wcel cc0 cap wbr w3a cdiv co c1 divrecap simp1 recclap 3adant1 mulcomd
    cmul eqtrd ) ACDZBCDZBEFGZHZABIJAKBIJZQJUCAQJABLUBAUCSTUAMTUAUCCDSBNOPR $.

  $( An associative law for division.  (Contributed by Jim Kingdon,
     25-Feb-2020.) $)
  divassap $p |- ( ( A e. CC /\ B e. CC /\ ( C e. CC /\ C # 0 ) ) ->
      ( ( A x. B ) / C ) = ( A x. ( B / C ) ) ) $=
    ( cc wcel cc0 cap wbr wa w3a cmul cdiv wceq recclap mulass syl3an3 divrecap
    co c1 syl3anc mulcl 3adant3 simp3l simp3r simp2 oveq2d 3eqtr4d ) ADEZBDEZCD
    EZCFGHZIZJZABKRZSCLRZKRZABUOKRZKRZUNCLRZABCLRZKRULUHUIUODEUPURMCNABUOOPUMUN
    DEZUJUKUSUPMUHUIVAULABUAUBUHUIUJUKUCZUHUIUJUKUDZUNCQTUMUTUQAKUMUIUJUKUTUQMU
    HUIULUEVBVCBCQTUFUG $.

  $( A commutative/associative law for division.  (Contributed by Jim Kingdon,
     25-Feb-2020.) $)
  div23ap $p |- ( ( A e. CC /\ B e. CC /\ ( C e. CC /\ C # 0 ) )
      -> ( ( A x. B ) / C ) = ( ( A / C ) x. B ) ) $=
    ( cc wcel cc0 cap wbr wa w3a cmul co cdiv wceq mulcom oveq1d 3adant3 3com12
    divassap simp2 divclap 3expb 3adant2 mulcomd 3eqtrd ) ADEZBDEZCDEZCFGHZIZJZ
    ABKLZCMLZBAKLZCMLZBACMLZKLZUPBKLUFUGUMUONUJUFUGIULUNCMABOPQUGUFUJUOUQNBACSR
    UKBUPUFUGUJTUFUJUPDEZUGUFUHUIURACUAUBUCUDUE $.

  $( A commutative/associative law for division.  (Contributed by Jim Kingdon,
     25-Feb-2020.) $)
  div32ap $p |- ( ( A e. CC /\ ( B e. CC /\ B # 0 ) /\ C e. CC )
      -> ( ( A / B ) x. C ) = ( A x. ( C / B ) ) ) $=
    ( cc wcel cc0 cap wbr wa cdiv cmul wceq w3a div23ap divassap eqtr3d 3com23
    co ) ADEZCDEZBDEBFGHIZABJRCKRZACBJRKRZLSTUAMACKRBJRUBUCACBNACBOPQ $.

  $( A commutative/associative law for division.  (Contributed by Jim Kingdon,
     25-Feb-2020.) $)
  div13ap $p |- ( ( A e. CC /\ ( B e. CC /\ B # 0 ) /\ C e. CC )
      -> ( ( A / B ) x. C ) = ( ( C / B ) x. A ) ) $=
    ( cc wcel cc0 cap wbr wa w3a cmul co cdiv wceq mulcom oveq1d 3adant2 3com23
    div23ap 3coml 3eqtr3d ) ADEZBDEBFGHIZCDEZJACKLZBMLZCAKLZBMLZABMLCKLZCBMLAKL
    ZUBUDUFUHNUCUBUDIUEUGBMACOPQUBUDUCUFUINACBSRUDUBUCUHUJNCABSTUA $.

  $( A commutative/associative law for division.  (Contributed by Jim Kingdon,
     25-Feb-2020.) $)
  div12ap $p |- ( ( A e. CC /\ B e. CC /\ ( C e. CC /\ C # 0 ) )
      -> ( A x. ( B / C ) ) = ( B x. ( A / C ) ) ) $=
    ( cc wcel cc0 cap wbr wa w3a cdiv co cmul divclap 3expb mulcom sylan2 3impb
    wceq div13ap 3comr sylan 3impa 3com23 3eqtrd ) ADEZBDEZCDEZCFGHZIZJABCKLZML
    ZUKAMLZACKLZBMLZBUNMLZUFUGUJULUMSZUGUJIUFUKDEZUQUGUHUIURBCNOAUKPQRUGUJUFUMU
    OSBCATUAUFUJUGUOUPSZUFUJUGUSUFUJIUNDEZUGUSUFUHUIUTACNOUNBPUBUCUDUE $.

  $( An associative law for division and multiplication.  (Contributed by Jim
     Kingdon, 24-Jan-2022.) $)
  divmulassap $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 cap wbr wa cdiv co cmul wceq simpl1 simpl2 simpr divassap
    syl3anc eqcomd oveq1d mulcl 3adant3 adantr simpl3 div32ap eqtrd ) AEFZBEFZC
    EFZGZDEFDHIJKZKZABDLMNMZCNMABNMZDLMZCNMZUPCDLMNMZUNUOUQCNUNUQUOUNUIUJUMUQUO
    OUIUJUKUMPUIUJUKUMQULUMRZABDSTUAUBUNUPEFZUMUKURUSOULVAUMUIUJVAUKABUCUDUEUTU
    IUJUKUMUFUPDCUGTUH $.

  $( An associative/commutative law for division and multiplication.
     (Contributed by Jim Kingdon, 24-Jan-2022.) $)
  divmulasscomap $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 cap wbr wa cdiv co cmul divmulassap mulcom 3adant3 adantr
    wceq oveq1d simpl2 simpl1 anim1i 3anass sylibr divclap syl mulassd divassap
    simp3 simpr syl3anc eqcomd oveq2d eqtrd 3eqtrd ) AEFZBEFZCEFZGZDEFZDHIJZKZK
    ZABDLMNMCNMABNMZCDLMZNMBANMZVFNMZBACNMDLMZNMZABCDOVDVEVGVFNUTVEVGSZVCUQURVK
    USABPQRTVDVHBAVFNMZNMVJVDBAVFUQURUSVCUAUQURUSVCUBZVDUSVAVBGZVFEFVDUSVCKVNUT
    USVCUQURUSUJZUCUSVAVBUDUECDUFUGUHVDVLVIBNVDVIVLVDUQUSVCVIVLSVMUTUSVCVORUTVC
    UKACDUIULUMUNUOUP $.

  $( Distribution of division over addition.  (Contributed by Jim Kingdon,
     25-Feb-2020.) $)
  divdirap $p |- ( ( A e. CC /\ B e. CC /\ ( C e. CC /\ C # 0 ) )
               -> ( ( A + B ) / C ) = ( ( A / C ) + ( B / C ) ) ) $=
    ( cc wcel cc0 cap wbr wa w3a caddc co c1 cdiv cmul simp1 simp2 wceq syl3anc
    divrecap recclap 3ad2ant3 adddird addcld simp3l simp3r oveq12d 3eqtr4d ) AD
    EZBDEZCDEZCFGHZIZJZABKLZMCNLZOLZAUPOLZBUPOLZKLUOCNLZACNLZBCNLZKLUNABUPUIUJU
    MPZUIUJUMQZUMUIUPDEUJCUAUBUCUNUODEUKULUTUQRUNABVCVDUDUIUJUKULUEZUIUJUKULUFZ
    UOCTSUNVAURVBUSKUNUIUKULVAURRVCVEVFACTSUNUJUKULVBUSRVDVEVFBCTSUGUH $.

  $( A cancellation law for division.  (Contributed by Jim Kingdon,
     25-Feb-2020.) $)
  divcanap3 $p |- ( ( A e. CC /\ B e. CC /\ B # 0 ) ->
                 ( ( B x. A ) / B ) = A ) $=
    ( cc wcel cc0 cap wbr w3a cmul co cdiv wceq wa wb simp2 simp1 mulcld 3simpc
    eqid divmulap syl3anc mpbiri ) ACDZBCDZBEFGZHZBAIJZBKJALZUGUGLZUGSUFUGCDUCU
    DUEMUHUINUFBAUCUDUEOUCUDUEPZQUJUCUDUERUGABTUAUB $.

  $( A cancellation law for division.  (Contributed by Jim Kingdon,
     25-Feb-2020.) $)
  divcanap4 $p |- ( ( A e. CC /\ B e. CC /\ B # 0 ) ->
                 ( ( A x. B ) / B ) = A ) $=
    ( cc wcel cc0 cap wbr w3a cmul co cdiv wceq mulcom 3adant3 oveq1d divcanap3
    eqtrd ) ACDZBCDZBEFGZHZABIJZBKJBAIJZBKJAUAUBUCBKRSUBUCLTABMNOABPQ $.

  $( One-to-one relationship for division.  (Contributed by Jim Kingdon,
     25-Feb-2020.) $)
  div11ap $p |- ( ( A e. CC /\ B e. CC /\ ( C e. CC /\ C # 0 ) ) ->
               ( ( A / C ) = ( B / C ) <-> A = B ) ) $=
    ( cc wcel cc0 cap wbr wa w3a cdiv co cmul wceq simp1 simp3l divclap syl3anc
    simp3r divcanap2 simp2 mulcanapd eqeq12d bitr3d ) ADEZBDEZCDEZCFGHZIZJZCACK
    LZMLZCBCKLZMLZNUKUMNABNUJUKUMCUJUEUGUHUKDEUEUFUIOZUEUFUGUHPZUEUFUGUHSZACQRU
    JUFUGUHUMDEUEUFUIUAZUPUQBCQRUPUQUBUJULAUNBUJUEUGUHULANUOUPUQACTRUJUFUGUHUNB
    NURUPUQBCTRUCUD $.

  $( A number divided by itself is one.  (Contributed by Jim Kingdon,
     25-Feb-2020.) $)
  dividap $p |- ( ( A e. CC /\ A # 0 ) -> ( A / A ) = 1 ) $=
    ( cc wcel cc0 cap wbr wa cdiv co cmul wceq divrecap 3anidm12 recidap eqtrd
    c1 ) ABCZADEFZGAAHIZAPAHIJIZPQRSTKAALMANO $.

  $( Division into zero is zero.  (Contributed by Jim Kingdon, 25-Feb-2020.) $)
  div0ap $p |- ( ( A e. CC /\ A # 0 ) -> ( 0 / A ) = 0 ) $=
    ( cc wcel cc0 cap wbr wa cdiv co wceq cmul simpl mul01d wb divmulap mp3an12
    0cn mpbird ) ABCZADEFZGZDAHIDJZADKIDJZUAASTLMDBCZUDUAUBUCNQQDDAOPR $.

  $( 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 cmul mulid2 wb cc0 cap wbr ax-1cn pm3.2i divmulap
    wa 1ap0 mp3an3 anidms mpbird ) ABCZADEFAGZDAHFAGZAIUBUCUDJZUBUBDBCZDKLMZQUE
    UFUGNROAADPSTUA $.

  $( 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 Jim Kingdon,
     25-Feb-2020.) $)
  diveqap1 $p |- ( ( A e. CC /\ B e. CC /\ B # 0 ) ->
      ( ( A / B ) = 1 <-> A = B ) ) $=
    ( cc wcel cc0 cap wbr w3a cdiv co c1 wceq cmul wb wa ax-1cn divmulap2 3impb
    mp3an2 simp2 mulid1d eqeq2d bitrd ) ACDZBCDZBEFGZHZABIJKLZABKMJZLZABLUDUEUF
    UHUJNZUDKCDUEUFOUKPAKBQSRUGUIBAUGBUDUEUFTUAUBUC $.

  $( Move negative sign inside of a division.  (Contributed by Jim Kingdon,
     25-Feb-2020.) $)
  divnegap $p |- ( ( A e. CC /\ B e. CC /\ B # 0 ) ->
                -u ( A / B ) = ( -u A / B ) ) $=
    ( cc wcel cc0 cap wbr w3a cneg c1 cdiv co cmul wceq wa recclap sylan2 3impb
    mulneg1 divrecap negcl syl3an1 negeqd 3eqtr4rd ) ACDZBCDZBEFGZHZAIZJBKLZMLZ
    AUJMLZIZUIBKLZABKLZIUEUFUGUKUMNZUFUGOUEUJCDUPBPAUJSQRUEUICDUFUGUNUKNAUAUIBT
    UBUHUOULABTUCUD $.

  $( Distribution of division over addition with a multiplication.
     (Contributed by Jim Kingdon, 11-Nov-2021.) $)
  muldivdirap $p |- ( ( A e. CC /\ B e. CC /\ ( C e. CC /\ C # 0 ) )
               -> ( ( ( C x. A ) + B ) / C ) = ( A + ( B / C ) ) ) $=
    ( cc wcel cc0 cap wbr wa w3a cmul co caddc cdiv wceq simp3l mulcld divdirap
    simp1 syld3an1 3anass biimpri 3adant2 divcanap3 syl oveq1d eqtrd ) ADEZBDEZ
    CDEZCFGHZIZJZCAKLZBMLCNLZUNCNLZBCNLZMLZAUQMLUNDEUIUHULUOUROUMCAUHUIUJUKPUHU
    IULSQUNBCRTUMUPAUQMUMUHUJUKJZUPAOUHULUSUIUSUHULIUHUJUKUAUBUCACUDUEUFUG $.

  $( Distribution of division over subtraction.  (Contributed by NM,
     4-Mar-2005.) $)
  divsubdirap $p |- ( ( A e. CC /\ B e. CC /\ ( C e. CC /\ C # 0 ) )
               -> ( ( A - B ) / C ) = ( ( A / C ) - ( B / C ) ) ) $=
    ( cc wcel cc0 cap wbr wa w3a cdiv cneg caddc cmin wceq eqtr3d 3expb 3adant1
    co divclap divdirap syl3an2 negsub oveq1d 3adant3 divnegap 3adant2 negsubd
    negcl oveq2d ) ADEZBDEZCDEZCFGHZIZJZACKSZBLZCKSZMSZABNSZCKSZUQBCKSZNSZUPAUR
    MSZCKSZUTVBULUKURDEUOVFUTOBUIAURCUAUBUKULVFVBOUOUKULIVEVACKABUCUDUEPUPUQVCL
    ZMSUTVDUPVGUSUQMULUOVGUSOZUKULUMUNVHBCUFQRUJUPUQVCUKUOUQDEZULUKUMUNVIACTQUG
    ULUOVCDEZUKULUMUNVJBCTQRUHPP $.

  $( A number is equal to the reciprocal of its reciprocal.  (Contributed by
     Jim Kingdon, 25-Feb-2020.) $)
  recrecap $p |- ( ( A e. CC /\ A # 0 ) -> ( 1 / ( 1 / A ) ) = A ) $=
    ( cc wcel cc0 cap wbr wa c1 cdiv co wceq cmul recidap2 wb 1cnd simpl recap0
    recclap divmulap syl112anc mpbird ) ABCZADEFZGZHHAIJZIJAKZUEALJHKZAMUDHBCUB
    UEBCUEDEFUFUGNUDOUBUCPARAQHAUESTUA $.

  $( Reciprocal is one-to-one.  (Contributed by Jim Kingdon, 25-Feb-2020.) $)
  rec11ap $p |- ( ( ( A e. CC /\ A # 0 ) /\ ( B e. CC /\ B # 0 ) )
                  -> ( ( 1 / A ) = ( 1 / B ) <-> A = B ) ) $=
    ( cc wcel cc0 cap wbr wa c1 cdiv co wceq cmul wb 1cnd adantl simpl divmulap
    recclap syl3anc simpll simprl simprr divrecap eqeq1d diveqap1 3bitr2d ) ACD
    ZAEFGZHZBCDZBEFGZHZHZIAJKIBJKZLZAUOMKZILZABJKZILZABLZUNICDUOCDZUJUPURNUNOUM
    VBUJBSPUJUMQIUOARTUNUSUQIUNUHUKULUSUQLUHUIUMUAZUJUKULUBZUJUKULUCZABUDTUEUNU
    HUKULUTVANVCVDVEABUFTUG $.

  $( Mutual reciprocals.  (Contributed by Jim Kingdon, 25-Feb-2020.) $)
  rec11rap $p |- ( ( ( A e. CC /\ A # 0 ) /\ ( B e. CC /\ B # 0 ) )
                  -> ( ( 1 / A ) = B <-> ( 1 / B ) = A ) ) $=
    ( cc wcel cc0 cap wa c1 cdiv co wceq cmul wb simprl simpll simplr divmulap2
    wbr 1cnd syl112anc simprr divmulap3 bitr4d ) ACDZAEFRZGZBCDZBEFRZGZGZHAIJBK
    ZHABLJKZHBIJAKZUJHCDZUGUDUEUKULMUJSZUFUGUHNZUDUEUIOZUDUEUIPHBAQTUJUNUDUGUHU
    MULMUOUQUPUFUGUHUAHABUBTUC $.

  $( Multiplication of two ratios.  (Contributed by Jim Kingdon,
     25-Feb-2020.) $)
  divmuldivap $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 cap wbr wa cdiv co cmul wceq w3a 3anass mulcl syl2an 3adantr1
    divclap ad2ant2r 3adantl1 mulap0 divcanap3 syl3anc simp2 jca mul4 divcanap2
    oveqan12d eqtr3d oveq1d syl2anbr an4s ) AEFZCEFZCGHIZJZBEFZDEFZDGHIZJZACKLZ
    BDKLZMLZABMLZCDMLZKLZNZUOURJUOUPUQOZUSUTVAOZVIUSVBJUOUPUQPUSUTVAPVJVKJZVGVE
    MLZVGKLZVEVHVLVEEFZVGEFZVGGHIZVNVENVJVCEFZVDEFZVOVKACTZBDTZVCVDQRUPUQVKVPUO
    URUTVAVPUSUPUTVPUQVACDQUASUBUPUQVKVQUOURUTVAVQUSCDUCSUBVEVGUDUEVLVMVFVGKVLC
    VCMLZDVDMLZMLZVMVFVJUPVRJUTVSJWDVMNVKVJUPVRUOUPUQUFVTUGVKUTVSUSUTVAUFWAUGCV
    CDVDUHRVJVKWBAWCBMACUIBDUIUJUKULUKUMUN $.

  $( Division of two ratios.  Theorem I.15 of [Apostol] p. 18.  (Contributed by
     Jim Kingdon, 25-Feb-2020.) $)
  divdivdivap $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 cap wbr wa cdiv co cmul wceq divclap syl3anc mulcomd eqtrd c1
    mulcld simprrl simprll simprlr simpll simplrl simplr simprl syl22anc oveq2d
    simplrr divmuldivap simprrr mulap0d dividap syl2anc mulassd mulid2d 3eqtr3d
    simprr oveq1d eqtr3d wb mulap0 ad2ant2lr divap0 adantl divmulap syl112anc
    mpbird ) AEFZBEFZBGHIZJZJZCEFZCGHIZJZDEFZDGHIZJZJZJZABKLZCDKLZKLADMLZBCMLZK
    LZNZWDWGMLZWCNZWBWDDCKLZWCMLZMLZWIWCWBWLWGWDMWBWLWCWKMLZWGWBWKWCWBVRVOVPWKE
    FVNVQVRVSUAZVNVOVPVTUBZVNVOVPVTUCZDCOPZWBVJVKVLWCEFZVJVMWAUDZVJVKVLWAUEZVJV
    KVLWAUJABOPZQWBVJVRVMVQWNWGNWTWOVJVMWAUFVNVQVTUGZADBCUKUHRUIWBWDWKMLZWCMLSW
    CMLWMWCWBXDSWCMWBXDCDMLZDCMLZKLZSWBVOVRVTVQXDXGNWPWOVNVQVTUSXCCDDCUKUHWBXGX
    FXFKLZSWBXEXFXFKWBCDWPWOQUTWBXFEFXFGHIXHSNWBDCWOWPTWBDCWOWPVNVQVRVSULZWQUMX
    FUNUORRUTWBWDWKWCWBVOVRVSWDEFZWPWOXICDOPZWRXBUPWBWCXBUQURVAWBWSWGEFZXJWDGHI
    ZWHWJVBXBWBWEEFWFEFWFGHIZXLWBADWTWOTWBBCXAWPTVMVQXNVJVTBCVCVDWEWFOPXKWAXMVN
    CDVEVFWCWGWDVGVHVI $.

  $( Cancellation of common factor in a ratio.  (Contributed by Jim Kingdon,
     25-Feb-2020.) $)
  divcanap5 $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 cap wbr wa w3a cdiv co cmul c1 dividap oveq1d 3ad2ant3 simp3l
    wceq simp1 simp3 simp2 divmuldivap syl22anc divclap mulid2d 3adant3 3eqtr3d
    3expb ) ADEZBDEZBFGHZIZCDEZCFGHZIZJZCCKLZABKLZMLZNUSMLZCAMLCBMLKLZUSUPUJUTV
    ASUMUPURNUSMCOPQUQUNUJUPUMUTVBSUJUMUNUORUJUMUPTUJUMUPUAUJUMUPUBCACBUCUDUJUM
    VAUSSUPUJUMIUSUJUKULUSDEABUEUIUFUGUH $.

  $( Swap the denominators in the product of two ratios.  (Contributed by Jim
     Kingdon, 26-Feb-2020.) $)
  divmul13ap $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 cap wbr cmul co cdiv wceq mulcom adantr oveq1d divmuldivap
    ancom1s 3eqtr4d ) AEFZBEFZGZCEFCHIJGDEFDHIJGGZGZABKLZCDKLZMLBAKLZUGMLZACMLB
    DMLKLBCMLADMLKLZUEUFUHUGMUCUFUHNUDABOPQABCDRUBUAUDUJUINBACDRST $.

  $( Swap the numerators in the product of two ratios.  (Contributed by Jim
     Kingdon, 26-Feb-2020.) $)
  divmul24ap $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 cap wbr cmul co cdiv wceq mulcom adantl oveq2d divmuldivap
    ad2ant2r ancom2s 3eqtr4d ) AEFBEFGZCEFZCHIJZGZDEFZDHIJZGZGZGZABKLZCDKLZMLUK
    DCKLZMLZACMLBDMLKLADMLBCMLKLZUJULUMUKMUIULUMNZUBUCUFUPUDUGCDOSPQABCDRUBUHUE
    UOUNNABDCRTUA $.

  $( Cross-multiply in an equality of ratios.  (Contributed by Jim Kingdon,
     26-Feb-2020.) $)
  divmuleqap $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 cap cdiv cmul wceq divclap 3expb ad2ant2r ad2ant2l mulassd
    wbr co divcanap1 mulap0 jca adantl mulcanap2 syl3anc simprll simprrl oveq1d
    wb mulcl eqtr3d mulcomd oveq2d 3eqtr2d eqeq12d bitr3d ) AEFZBEFZGZCEFZCHIRZ
    GZDEFZDHIRZGZGZGZACJSZCDKSZKSZBDJSZVIKSZLZVHVKLZADKSZBCKSZLVGVHEFZVKEFZVIEF
    ZVIHIRZGZVMVNUIUQVBVQURVEUQUTVAVQACMNOZURVEVRUQVBURVCVDVRBDMNPZVFWAUSVFVSVT
    UTVCVSVAVDCDUJOCDUAUBUCVHVKVIUDUEVGVJVOVLVPVGVHCKSZDKSVJVOVGVHCDWBUSUTVAVEU
    FZUSVBVCVDUGZQVGWDADKUQVBWDALZURVEUQUTVAWGACTNOUHUKVGVLVKDCKSZKSVKDKSZCKSVP
    VGVIWHVKKVGCDWEWFULUMVGVKDCWCWFWEQVGWIBCKURVEWIBLZUQVBURVCVDWJBDTNPUHUNUOUP
    $.

  $( The reciprocal of a ratio.  (Contributed by Jim Kingdon, 26-Feb-2020.) $)
  recdivap $p |- ( ( ( A e. CC /\ A # 0 ) /\ ( B e. CC /\ B # 0 ) ) ->
                ( 1 / ( A / B ) ) = ( B / A ) ) $=
    ( cc wcel cc0 cap wa c1 cdiv co cmul 1div1e1 oveq1i wceq ax-1cn 1ap0 pm3.2i
    wbr divdivdivap mulid2 mpanl12 syl5eqr oveqan12rd ad2ant2r eqtrd ) ACDZAEFR
    ZGBCDZBEFRZGGZHABIJZIJZHBKJZHAKJZIJZBAIJZUJULHHIJZUKIJZUOUQHUKILMHCDZUSHEFR
    ZGUJURUONOUSUTOPQHHABSUAUBUFUHUOUPNUGUIUHUFUMBUNAIBTATUCUDUE $.

  $( Cancellation of inverted fractions.  (Contributed by Jim Kingdon,
     26-Feb-2020.) $)
  divcanap6 $p |- ( ( ( A e. CC /\ A # 0 ) /\ ( B e. CC /\ B # 0 ) ) ->
         ( ( A / B ) x. ( B / A ) ) = 1 ) $=
    ( cc wcel cc0 cap wbr wa cdiv co c1 cmul recdivap oveq2d wceq divclap 3expb
    adantlr divap0 recidap syl2anc eqtr3d ) ACDZAEFGZHBCDZBEFGZHZHZABIJZKUIIJZL
    JZUIBAIJZLJKUHUJULUILABMNUHUICDZUIEFGUKKOUCUGUMUDUCUEUFUMABPQRABSUITUAUB $.

  $( Swap denominators in a division.  (Contributed by Jim Kingdon,
     26-Feb-2020.) $)
  divdiv32ap $p |- ( ( A e. CC /\ ( B e. CC /\ B # 0 )
      /\ ( C e. CC /\ C # 0 ) ) -> ( ( A / B ) / C ) = ( ( A / C ) / B ) ) $=
    ( cc wcel cc0 cap wbr wa c1 cdiv cmul wceq recclap div23ap syl3an2 divrecap
    w3a co 3expb 3adant3 oveq1d divclap syl3an1 3impa 3com23 3eqtr4d ) ADEZBDEZ
    BFGHZIZCDEZCFGHZIZRZAJBKSZLSZCKSZACKSZUPLSZABKSZCKSUSBKSZUKUHUPDEUNURUTMBNA
    UPCOPUOVAUQCKUHUKVAUQMZUNUHUIUJVCABQTUAUBUHUNUKVBUTMZUHUNUKVDUHUNIZUIUJVDVE
    USDEZUIUJVDUHULUMVFACUCTUSBQUDTUEUFUG $.

  $( Cancel equal divisors in a division.  (Contributed by Jim Kingdon,
     26-Feb-2020.) $)
  divcanap7 $p |- ( ( A e. CC /\ ( B e. CC /\ B # 0 ) /\
    ( C e. CC /\ C # 0 ) ) -> ( ( A / C ) / ( B / C ) ) = ( A / B ) ) $=
    ( cc wcel cc0 cap wbr w3a cdiv cmul wceq divdivdivap 3impdir mulcom adantrr
    wa co 3adant2 oveq1d divcanap5 3eqtrd ) ADEZBDEBFGHQZCDEZCFGHZQZIZACJRBCJRJ
    RZACKRZCBKRZJRZCAKRZUKJRABJRUCUGUDUIULLACBCMNUHUJUMUKJUCUGUJUMLZUDUCUEUNUFA
    COPSTABCUAUB $.

  $( Cancellation law for division and multiplication.  (Contributed by Jim
     Kingdon, 26-Feb-2020.) $)
  dmdcanap $p |- ( ( ( A e. CC /\ A # 0 ) /\ ( B e. CC /\ B # 0 ) /\
         C e. CC ) ->
         ( ( A / B ) x. ( C / A ) ) = ( C / B ) ) $=
    ( cc wcel cc0 cap wbr wa w3a cdiv co cmul wceq simp1l simp3 divclap syl3anc
    simp1r simp2l simp2r div23ap syl112anc divcanap2 oveq1d eqtr3d ) ADEZAFGHZI
    ZBDEZBFGHZIZCDEZJZACAKLZMLZBKLZABKLUOMLZCBKLUNUGUODEZUJUKUQURNUGUHULUMOZUNU
    MUGUHUSUIULUMPZUTUGUHULUMSZCAQRUIUJUKUMTUIUJUKUMUAAUOBUBUCUNUPCBKUNUMUGUHUP
    CNVAUTVBCAUDRUEUF $.

  $( Division into a fraction.  (Contributed by Jim Kingdon, 26-Feb-2020.) $)
  divdivap1 $p |- ( ( A e. CC /\ ( B e. CC /\ B # 0 ) /\
       ( C e. CC /\ C # 0 ) ) -> ( ( A / B ) / C ) = ( A / ( B x. C ) ) ) $=
    ( cc wcel cc0 cap wbr wa w3a cdiv co c1 cmul wceq ax-1cn pm3.2i divdivdivap
    1ap0 mpanr2 3impa oveq2d ad2antrl 3adant1 mulid1 oveq1d 3ad2ant1 3eqtr3d
    div1 ) ADEZBDEBFGHIZCDEZCFGHZIZJABKLZCMKLZKLZAMNLZBCNLZKLZUOCKLZAUSKLZUJUKU
    NUQUTOZUJUKIUNMDEZMFGHZIVCVDVEPSQABCMRTUAUKUNUQVAOZUJULVFUKUMULUPCUOKCUIUBU
    CUDUJUKUTVBOUNUJURAUSKAUEUFUGUH $.

  $( Division by a fraction.  (Contributed by Jim Kingdon, 26-Feb-2020.) $)
  divdivap2 $p |- ( ( A e. CC /\ ( B e. CC /\ B # 0 ) /\ ( C e. CC /\ C # 0 )
              ) -> ( A / ( B / C ) ) = ( ( A x. C ) / B ) ) $=
    ( cc wcel cc0 cap wbr wa w3a c1 cdiv co cmul wceq ax-1cn pm3.2i divdivdivap
    1ap0 mpanl2 3impb 3ad2ant1 oveq1d mulid2 ad2antrl 3adant3 oveq2d 3eqtr3d
    div1 ) ADEZBDEZBFGHZIZCDECFGHIZJZAKLMZBCLMZLMZACNMZKBNMZLMZAUQLMUSBLMUJUMUN
    URVAOZUJKDEZKFGHZIUMUNIVBVCVDPSQAKBCRTUAUOUPAUQLUJUMUPAOUNAUIUBUCUOUTBUSLUJ
    UMUTBOZUNUKVEUJULBUDUEUFUGUH $.

  $( Division into a reciprocal.  (Contributed by Jim Kingdon, 26-Feb-2020.) $)
  recdivap2 $p |- ( ( ( A e. CC /\ A # 0 ) /\ ( B e. CC /\ B # 0 ) ) ->
                ( ( 1 / A ) / B ) = ( 1 / ( A x. B ) ) ) $=
    ( c1 cc wcel cc0 cap wbr wa cdiv co cmul wceq ax-1cn divdivap1 mp3an1 ) CDE
    ADEAFGHIBDEBFGHICAJKBJKCABLKJKMNCABOP $.

  $( Cancellation in a double division.  (Contributed by Jim Kingdon,
     26-Feb-2020.) $)
  ddcanap $p |- ( ( ( A e. CC /\ A # 0 ) /\ ( B e. CC /\ B # 0 ) ) ->
                ( A / ( A / B ) ) = B ) $=
    ( cc wcel cc0 cap wbr cdiv wceq cmul simpll simprl simprr divcanap1 syl3anc
    wa co wb divclap divap0 divmulap syl112anc mpbird ) ACDZAEFGZPZBCDZBEFGZPZP
    ZAABHQZHQBIZUKBJQAIZUJUDUGUHUMUDUEUIKZUFUGUHLZUFUGUHMZABNOUJUDUGUKCDZUKEFGU
    LUMRUNUOUJUDUGUHUQUNUOUPABSOABTABUKUAUBUC $.

  $( Addition of two ratios.  (Contributed by Jim Kingdon, 26-Feb-2020.) $)
  divadddivap $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 cap cmul co caddc cdiv wceq mulcl ad2ant2r syl3anc mulcomd
    wbr oveq12d adantrl adantrr mulap0 jca adantl divdirap simpll simprr simpld
    ad2ant2lr simprll simprl divcanap5 eqtrd simplr oveq1d eqtr2d ) AEFZBEFZGZC
    EFZCHISZGZDEFZDHISZGZGZGZADJKZBCJKZLKCDJKZMKZVIVKMKZVJVKMKZLKZACMKZBDMKZLKV
    HVIEFZVJEFZVKEFZVKHISZGZVLVONUTVFVRVCURVDVRUSVEADOPUAUSVCVSURVFUSVAVSVBBCOU
    BUJVGWBUTVGVTWAVAVDVTVBVECDOPCDUCUDUEVIVJVKUFQVHVMVPVNVQLVHVMDAJKZDCJKZMKZV
    PVHVIWCVKWDMVHADURUSVGUGZVHVDVEUTVCVFUHZUIZRVHCDUTVAVBVFUKZWHRTVHURVCVFWEVP
    NWFUTVCVFULZWGACDUMQUNVHVNCBJKZVKMKZVQVHVJWKVKMVHBCURUSVGUOZWIRUPVHUSVFVCWL
    VQNWMWGWJBDCUMQUNTUQ $.

  $( Subtraction of two ratios.  (Contributed by Jim Kingdon, 26-Feb-2020.) $)
  divsubdivap $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 cap wbr cmul co cneg caddc cdiv cmin syl3anc oveq2d eqtr3d
    wceq sylanl2 simplr simprrl simprrr divnegap simpll simprll simprlr divclap
    negcl divadddivap negsubd mulneg1d mulcld eqtrd oveq1d ) AEFZBEFZGZCEFZCHIJ
    ZGZDEFZDHIJZGZGZGZADKLZBMZCKLZNLZCDKLZOLZACOLZBDOLZPLZVHBCKLZPLZVLOLVGVNVID
    OLZNLZVMVPURUQVIEFVFVTVMTBUJAVICDUKUAVGVNVOMZNLVTVPVGWAVSVNNVGURVCVDWAVSTUQ
    URVFUBZUSVBVCVDUCZUSVBVCVDUDZBDUEQRVGVNVOVGUQUTVAVNEFUQURVFUFZUSUTVAVEUGZUS
    UTVAVEUHACUIQVGURVCVDVOEFWBWCWDBDUIQULSSVGVKVRVLOVGVKVHVQMZNLVRVGVJWGVHNVGB
    CWBWFUMRVGVHVQVGADWEWCUNVGBCWBWFUNULUOUPS $.

  $( Two numbers whose reciprocals sum to 1 are called "conjugates" and satisfy
     this relationship.  (Contributed by Jim Kingdon, 26-Feb-2020.) $)
  conjmulap $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 cap wa cmul co c1 cdiv caddc wceq cmin recclap adantr recidap
    wbr 3eqtrd ad2ant2r simpll simprl mul32d oveq1d mulid2 adantl oveq2d mulid1
    ad2antrl mulassd ad2antrr oveq12d mulcl adddid addcom 3eqtr4d mulid1d addcl
    eqeq12d syl2an mulap0 ax-1cn mulcanap mp3an2 syl12anc eqcom muleqadd syl5bb
    wb 3bitr3d ) ACDZAEFRZGZBCDZBEFRZGZGZABHIZJAKIZJBKIZLIZHIZVRJHIZMZABLIZVRMZ
    WAJMZAJNIBJNIHIJMZVQWBWEWCVRVQVRVSHIZVRVTHIZLIBALIZWBWEVQWIBWJALVQWIAVSHIZB
    HIZJBHIZBVQABVSVKVLVPUAZVMVNVOUBZVMVSCDZVPAOZPZUCVMWMWNMVPVMWLJBHAQUDPVNWNB
    MVMVOBUEUISVQWJABVTHIZHIZAJHIZAVQABVTWOWPVPVTCDZVMBOZUFZUJVPXAXBMVMVPWTJAHB
    QUGUFVKXBAMVLVPAUHUKSULVQVRVSVTVKVNVRCDZVLVOABUMZTZWSXEUNVKVNWEWKMVLVOABUOT
    UPVKVNWCVRMVLVOVKVNGZVRXGUQTUSVQWACDZXFVREFRZWDWGVIZVMWQXCXJVPWRXDVSVTURUTX
    HABVAXJJCDXFXKGXLVBWAJVRVCVDVEVKVNWFWHVIVLVOWFVRWEMXIWHWEVRVFABVGVHTVJ $.

  ${
    $d x A $.
    $( Closure law for reciprocal.  (Contributed by Jim Kingdon,
       26-Feb-2020.) $)
    rerecclap $p |- ( ( A e. RR /\ A # 0 ) -> ( 1 / A ) e. RR ) $=
      ( vx cr wcel cc0 cap wbr wa cv c1 cdiv co wceq wrex creap wb 0re cc recnd
      cmul apreap mpan2 pm5.32i recexre sylbi eqcom 1cnd simpll simplr divmulap
      simpr syl112anc syl5bb rexbidva mpbird risset sylibr ) ACDZAEFGZHZBIZJAKL
      ZMZBCNZVBCDUTVDAVATLJMZBCNZUTURAEOGZHVFURUSVGURECDUSVGPQAEUAUBUCBAUDUEUTV
      CVEBCVCVBVAMZUTVACDZHZVEVAVBUFVJJRDVARDARDUSVHVEPVJUGVJVAUTVIUKSVJAURUSVI
      UHSURUSVIUIJVAAUJULUMUNUOBVBCUPUQ $.
  $}

  $( Closure law for division of reals.  (Contributed by Jim Kingdon,
     26-Feb-2020.) $)
  redivclap $p |- ( ( A e. RR /\ B e. RR /\ B # 0 ) -> ( A / B ) e. RR ) $=
    ( cr wcel cc0 cap wbr cdiv co c1 cmul wceq simp1 recnd simp2 simp3 divrecap
    w3a cc syl3anc rerecclap 3adant1 remulcld eqeltrd ) ACDZBCDZBEFGZRZABHIZAJB
    HIZKIZCUHASDBSDUGUIUKLUHAUEUFUGMZNUHBUEUFUGONUEUFUGPABQTUHAUJULUFUGUJCDUEBU
    AUBUCUD $.

  $( 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 readdcli addgt0ii gt0ap0ii mulcanapd
    cap wbr negcl addcand 3bitr3rd ) ABCZDDEOZAFOZUMGFOZHAAEOZAAIZEOZHAGHAUQHUL
    UNUPUOURAJULURGUOAKUMDDLLMZPNQULAGUMULUAZULUBUMBCULUSRUMGUGUHULUMDDSSUCDDSS
    TTUDUERUFULAAUQUTUTAUIUJUK $.

  ${
    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 Jim Kingdon, 27-Feb-2020.) $)
  div2negap $p |- ( ( A e. CC /\ B e. CC /\ B # 0 ) ->
                  ( -u A / -u B ) = ( A / B ) ) $=
    ( cc wcel cc0 cap wbr w3a cneg cdiv co wceq cmul 3ad2ant2 syl112anc 3adant1
    negcl c1 eqtrd 3ad2ant1 simp1 simp2 simp3 div12ap divnegap syld3an1 dividap
    negeqd eqtr3d oveq2d ax-1cn negcli mulcom mpan2 mulm1 divclap negap0 biimpa
    wb divmulap mpbird ) ACDZBCDZBEFGZHZAIZBIZJKABJKZLZVGVHMKZVFLZVEVJAVGBJKZMK
    ZVFVEVGCDZVBVCVDVJVMLVCVBVNVDBQNZVBVCVDUAVBVCVDUBZVBVCVDUCVGABUDOVEVMARIZMK
    ZVFVEVLVQAMVEBBJKZIZVLVQVCVCVBVDVTVLLVPBBUEUFVEVSRVCVDVSRLVBBUGPUHUIUJVBVCV
    RVFLVDVBVRVQAMKZVFVBVQCDVRWALRUKULAVQUMUNAUOSTSSVEVFCDZVHCDVNVGEFGZVIVKUSVB
    VCWBVDAQTABUPVOVCVDWCVBVCVDWCBUQURPVFVHVGUTOVA $.

  $( Move negative sign inside of a division.  (Contributed by Jim Kingdon,
     27-Feb-2020.) $)
  divneg2ap $p |- ( ( A e. CC /\ B e. CC /\ B # 0 ) ->
                   -u ( A / B ) = ( A / -u B ) ) $=
    ( cc wcel cc0 cap wbr w3a cdiv co cneg divnegap wceq negcl div2negap negneg
    syl3an1 3ad2ant1 oveq1d 3eqtr2d ) ACDZBCDZBEFGZHZABIJKAKZBIJZUEKZBKZIJZAUHI
    JABLUAUECDUBUCUIUFMANUEBOQUDUGAUHIUAUBUGAMUCAPRST $.

  ${
    divclz.1 $e |- A e. CC $.
    $( Closure law for reciprocal.  (Contributed by Jim Kingdon,
       27-Feb-2020.) $)
    recclapzi $p |- ( A # 0 -> ( 1 / A ) e. CC ) $=
      ( cc wcel cc0 cap wbr c1 cdiv co recclap mpan ) ACDAEFGHAIJCDBAKL $.

    $( The reciprocal of a number apart from zero is apart from zero.
       (Contributed by Jim Kingdon, 27-Feb-2020.) $)
    recap0apzi $p |- ( A # 0 -> ( 1 / A ) # 0 ) $=
      ( cc wcel cc0 cap wbr c1 cdiv co recap0 mpan ) ACDAEFGHAIJEFGBAKL $.

    $( Multiplication of a number and its reciprocal.  (Contributed by Jim
       Kingdon, 27-Feb-2020.) $)
    recidapzi $p |- ( A # 0 -> ( A x. ( 1 / A ) ) = 1 ) $=
      ( cc wcel cc0 cap wbr c1 cdiv co cmul wceq recidap mpan ) ACDAEFGAHAIJKJH
      LBAMN $.

    $( 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 $.

    ${
      recclap.2 $e |- A # 0 $.
      $( Closure law for reciprocal.  (Contributed by NM, 30-Apr-2005.) $)
      recclapi $p |- ( 1 / A ) e. CC $=
        ( cc0 cap wbr c1 cdiv co cc wcel recclapzi ax-mp ) ADEFGAHIJKCABLM $.

      $( Multiplication of a number and its reciprocal.  (Contributed by NM,
         9-Feb-1995.) $)
      recidapi $p |- ( A x. ( 1 / A ) ) = 1 $=
        ( cc0 cap wbr c1 cdiv co cmul wceq recidapzi ax-mp ) ADEFAGAHIJIGKCABLM
        $.

      $( A number is equal to the reciprocal of its reciprocal.  Theorem I.10
         of [Apostol] p. 18.  (Contributed by NM, 9-Feb-1995.) $)
      recrecapi $p |- ( 1 / ( 1 / A ) ) = A $=
        ( cc wcel cc0 cap wbr c1 cdiv co wceq recrecap mp2an ) ADEAFGHIIAJKJKAL
        BCAMN $.

      $( A number divided by itself is one.  (Contributed by NM,
         9-Feb-1995.) $)
      dividapi $p |- ( A / A ) = 1 $=
        ( cc wcel cc0 cap wbr cdiv co c1 wceq dividap mp2an ) ADEAFGHAAIJKLBCAM
        N $.

      $( Division into zero is zero.  (Contributed by NM, 12-Aug-1999.) $)
      div0api $p |- ( 0 / A ) = 0 $=
        ( cc wcel cc0 cap wbr cdiv co wceq div0ap mp2an ) ADEAFGHFAIJFKBCALM $.
    $}

    divclz.2 $e |- B e. CC $.
    $( Closure law for division.  (Contributed by Jim Kingdon, 27-Feb-2020.) $)
    divclapzi $p |- ( B # 0 -> ( A / B ) e. CC ) $=
      ( cc wcel cc0 cap wbr cdiv co divclap mp3an12 ) AEFBEFBGHIABJKEFCDABLM $.

    $( A cancellation law for division.  (Contributed by Jim Kingdon,
       27-Feb-2020.) $)
    divcanap1zi $p |- ( B # 0 -> ( ( A / B ) x. B ) = A ) $=
      ( cc wcel cc0 cap wbr cdiv co cmul wceq divcanap1 mp3an12 ) AEFBEFBGHIABJ
      KBLKAMCDABNO $.

    $( A cancellation law for division.  (Contributed by Jim Kingdon,
       27-Feb-2020.) $)
    divcanap2zi $p |- ( B # 0 -> ( B x. ( A / B ) ) = A ) $=
      ( cc wcel cc0 cap wbr cdiv co cmul wceq divcanap2 mp3an12 ) AEFBEFBGHIBAB
      JKLKAMCDABNO $.

    $( Relationship between division and reciprocal.  (Contributed by Jim
       Kingdon, 27-Feb-2020.) $)
    divrecapzi $p |- ( B # 0 -> ( A / B ) = ( A x. ( 1 / B ) ) ) $=
      ( cc wcel cc0 cap wbr cdiv co c1 cmul wceq divrecap mp3an12 ) AEFBEFBGHIA
      BJKALBJKMKNCDABOP $.

    $( A cancellation law for division.  (Contributed by Jim Kingdon,
       27-Feb-2020.) $)
    divcanap3zi $p |- ( B # 0 -> ( ( B x. A ) / B ) = A ) $=
      ( cc wcel cc0 cap wbr cmul co cdiv wceq divcanap3 mp3an12 ) AEFBEFBGHIBAJ
      KBLKAMCDABNO $.

    $( A cancellation law for division.  (Contributed by Jim Kingdon,
       27-Feb-2020.) $)
    divcanap4zi $p |- ( B # 0 -> ( ( A x. B ) / B ) = A ) $=
      ( cc wcel cc0 cap wbr cmul co cdiv wceq divcanap4 mp3an12 ) AEFBEFBGHIABJ
      KBLKAMCDABNO $.

    $( Reciprocal is one-to-one.  (Contributed by Jim Kingdon, 28-Feb-2020.) $)
    rec11api $p |- ( ( A # 0 /\ B # 0 ) ->
               ( ( 1 / A ) = ( 1 / B ) <-> A = B ) ) $=
      ( cc0 cap wbr cc wcel c1 cdiv co wceq wb wa rec11ap mpanl1 mpanr1 ) AEFGZ
      BHIZBEFGZJAKLJBKLMABMNZDAHISTUAOUBCABPQR $.

    ${
      divclap.3 $e |- B # 0 $.
      $( Closure law for division.  (Contributed by Jim Kingdon,
         28-Feb-2020.) $)
      divclapi $p |- ( A / B ) e. CC $=
        ( cc wcel cc0 cap wbr cdiv co divclap mp3an ) AFGBFGBHIJABKLFGCDEABMN
        $.

      $( A cancellation law for division.  (Contributed by Jim Kingdon,
         28-Feb-2020.) $)
      divcanap2i $p |- ( B x. ( A / B ) ) = A $=
        ( cc wcel cc0 cap wbr cdiv co cmul wceq divcanap2 mp3an ) AFGBFGBHIJBAB
        KLMLANCDEABOP $.

      $( A cancellation law for division.  (Contributed by Jim Kingdon,
         28-Feb-2020.) $)
      divcanap1i $p |- ( ( A / B ) x. B ) = A $=
        ( cc wcel cc0 cap wbr cdiv co cmul wceq divcanap1 mp3an ) AFGBFGBHIJABK
        LBMLANCDEABOP $.

      $( Relationship between division and reciprocal.  (Contributed by Jim
         Kingdon, 28-Feb-2020.) $)
      divrecapi $p |- ( A / B ) = ( A x. ( 1 / B ) ) $=
        ( cc wcel cc0 cap wbr cdiv co c1 cmul wceq divrecap mp3an ) AFGBFGBHIJA
        BKLAMBKLNLOCDEABPQ $.

      $( A cancellation law for division.  (Contributed by Jim Kingdon,
         28-Feb-2020.) $)
      divcanap3i $p |- ( ( B x. A ) / B ) = A $=
        ( cc wcel cc0 cap wbr cmul co cdiv wceq divcanap3 mp3an ) AFGBFGBHIJBAK
        LBMLANCDEABOP $.

      $( A cancellation law for division.  (Contributed by Jim Kingdon,
         28-Feb-2020.) $)
      divcanap4i $p |- ( ( A x. B ) / B ) = A $=
        ( cc wcel cc0 cap wbr cmul co cdiv wceq divcanap4 mp3an ) AFGBFGBHIJABK
        LBMLANCDEABOP $.
    $}

    ${
      divap0i.3 $e |- A # 0 $.
      divap0.i4 $e |- B # 0 $.
      $( The ratio of numbers apart from zero is apart from zero.  (Contributed
         by Jim Kingdon, 28-Feb-2020.) $)
      divap0i $p |- ( A / B ) # 0 $=
        ( cc wcel cc0 cap wbr cdiv co divap0 mp4an ) AGHAIJKBGHBIJKABLMIJKCEDFA
        BNO $.

      $( Reciprocal is one-to-one.  (Contributed by Jim Kingdon,
         28-Feb-2020.) $)
      rec11apii $p |- ( ( 1 / A ) = ( 1 / B ) <-> A = B ) $=
        ( cc0 cap wbr c1 cdiv co wceq wb rec11api mp2an ) AGHIBGHIJAKLJBKLMABMN
        EFABCDOP $.
    $}

    divmulz.3 $e |- C e. CC $.
    $( An associative law for division.  (Contributed by Jim Kingdon,
       28-Feb-2020.) $)
    divassapzi $p |- ( C # 0 -> ( ( A x. B ) / C ) = ( A x. ( B / C ) ) ) $=
      ( cc wcel cc0 cap wbr cmul co cdiv wceq wa divassap mp3an12 mpan ) CGHZCI
      JKZABLMCNMABCNMLMOZFAGHBGHTUAPUBDEABCQRS $.

    $( Relationship between division and multiplication.  (Contributed by Jim
       Kingdon, 28-Feb-2020.) $)
    divmulapzi $p |- ( B # 0 -> ( ( A / B ) = C <-> ( B x. C ) = A ) ) $=
      ( cc wcel cc0 cap wbr cdiv co wceq cmul wb wa divmulap mp3an12 mpan ) BGH
      ZBIJKZABLMCNBCOMANPZEAGHCGHUAUBQUCDFACBRST $.

    $( Distribution of division over addition.  (Contributed by Jim Kingdon,
       28-Feb-2020.) $)
    divdirapzi $p |- ( C # 0 ->
                    ( ( A + B ) / C ) = ( ( A / C ) + ( B / C ) ) ) $=
      ( cc wcel cc0 cap wbr caddc co cdiv wceq wa divdirap mp3an12 mpan ) CGHZC
      IJKZABLMCNMACNMBCNMLMOZFAGHBGHTUAPUBDEABCQRS $.

    $( Swap denominators in a division.  (Contributed by Jim Kingdon,
       28-Feb-2020.) $)
    divdiv23apzi $p |- ( ( B # 0 /\ C # 0 ) ->
                ( ( A / B ) / C ) = ( ( A / C ) / B ) ) $=
      ( cc0 cap wbr cc wcel cdiv co wceq wa divdiv32ap mp3an1 mpanl1 mpanr1 ) B
      GHIZCJKZCGHIZABLMCLMACLMBLMNZFBJKZTUAUBOZUCEAJKUDTOUEUCDABCPQRS $.

    ${
      divmulapi.4 $e |- B # 0 $.
      $( Relationship between division and multiplication.  (Contributed by Jim
         Kingdon, 29-Feb-2020.) $)
      divmulapi $p |- ( ( A / B ) = C <-> ( B x. C ) = A ) $=
        ( cc0 cap wbr cdiv co wceq cmul wb divmulapzi ax-mp ) BHIJABKLCMBCNLAMO
        GABCDEFPQ $.

      divdiv32api.5 $e |- C # 0 $.
      $( Swap denominators in a division.  (Contributed by Jim Kingdon,
         29-Feb-2020.) $)
      divdiv32api $p |- ( ( A / B ) / C ) = ( ( A / C ) / B ) $=
        ( cc0 cap wbr cdiv co wceq divdiv23apzi mp2an ) BIJKCIJKABLMCLMACLMBLMN
        GHABCDEFOP $.
    $}

    ${
      divassap.4 $e |- C # 0 $.
      $( An associative law for division.  (Contributed by Jim Kingdon,
         9-Mar-2020.) $)
      divassapi $p |- ( ( A x. B ) / C ) = ( A x. ( B / C ) ) $=
        ( cc wcel cc0 cap wbr wa cmul co cdiv wceq pm3.2i divassap mp3an ) AHIB
        HICHIZCJKLZMABNOCPOABCPONOQDEUAUBFGRABCST $.

      $( Distribution of division over addition.  (Contributed by Jim Kingdon,
         9-Mar-2020.) $)
      divdirapi $p |- ( ( A + B ) / C ) = ( ( A / C ) + ( B / C ) ) $=
        ( cc wcel cc0 cap wbr wa caddc co cdiv wceq pm3.2i divdirap mp3an ) AHI
        BHICHIZCJKLZMABNOCPOACPOBCPONOQDEUAUBFGRABCST $.

      $( A commutative/associative law for division.  (Contributed by Jim
         Kingdon, 9-Mar-2020.) $)
      div23api $p |- ( ( A x. B ) / C ) = ( ( A / C ) x. B ) $=
        ( cc wcel cc0 cap wbr wa cmul co cdiv wceq pm3.2i div23ap mp3an ) AHIBH
        ICHIZCJKLZMABNOCPOACPOBNOQDEUAUBFGRABCST $.

      $( One-to-one relationship for division.  (Contributed by Jim Kingdon,
         9-Mar-2020.) $)
      div11api $p |- ( ( A / C ) = ( B / C ) <-> A = B ) $=
        ( cc wcel cc0 cap wbr wa cdiv co wceq wb pm3.2i div11ap mp3an ) AHIBHIC
        HIZCJKLZMACNOBCNOPABPQDEUAUBFGRABCST $.
    $}

    divmuldivap.4 $e |- D e. CC $.
    divmuldivap.5 $e |- B # 0 $.
    divmuldivap.6 $e |- D # 0 $.
    $( Multiplication of two ratios.  (Contributed by Jim Kingdon,
       9-Mar-2020.) $)
    divmuldivapi $p |- ( ( A / B ) x. ( C / D ) ) =
                      ( ( A x. C ) / ( B x. D ) ) $=
      ( cc wcel cc0 cap wbr wa cdiv co cmul pm3.2i wceq divmuldivap mp4an ) AKL
      CKLBKLZBMNOZPDKLZDMNOZPABQRCDQRSRACSRBDSRQRUAEGUDUEFITUFUGHJTACBDUBUC $.

    $( Swap denominators of two ratios.  (Contributed by Jim Kingdon,
       9-Mar-2020.) $)
    divmul13api $p |- ( ( A / B ) x. ( C / D ) ) =
                   ( ( C / B ) x. ( A / D ) ) $=
      ( cc wcel cc0 cap wbr wa cdiv co cmul pm3.2i wceq divmul13ap mp4an ) AKLC
      KLBKLZBMNOZPDKLZDMNOZPABQRCDQRSRCBQRADQRSRUAEGUDUEFITUFUGHJTACBDUBUC $.

    $( Addition of two ratios.  (Contributed by Jim Kingdon, 9-Mar-2020.) $)
    divadddivapi $p |- ( ( A / B ) + ( C / D ) ) =
                      ( ( ( A x. D ) + ( C x. B ) ) / ( B x. D ) ) $=
      ( cc wcel cc0 cap wbr wa cdiv co caddc cmul wceq pm3.2i divadddivap mp4an
      ) AKLCKLBKLZBMNOZPDKLZDMNOZPABQRCDQRSRADTRCBTRSRBDTRQRUAEGUEUFFIUBUGUHHJU
      BACBDUCUD $.

    divdivdivap.7 $e |- C # 0 $.
    $( Division of two ratios.  (Contributed by Jim Kingdon, 9-Mar-2020.) $)
    divdivdivapi $p |- ( ( A / B ) / ( C / D ) )
                        = ( ( A x. D ) / ( B x. C ) ) $=
      ( cc wcel cc0 cap wbr wa cdiv co pm3.2i cmul wceq divdivdivap mp4an ) ALM
      BLMZBNOPZQCLMZCNOPZQDLMZDNOPZQABRSCDRSRSADUASBCUASRSUBEUEUFFITUGUHGKTUIUJ
      HJTABCDUCUD $.
  $}

  ${
    redivclap.1 $e |- A e. RR $.
    $( Closure law for reciprocal.  (Contributed by Jim Kingdon,
       9-Mar-2020.) $)
    rerecclapzi $p |- ( A # 0 -> ( 1 / A ) e. RR ) $=
      ( cr wcel cc0 cap wbr c1 cdiv co rerecclap mpan ) ACDAEFGHAIJCDBAKL $.

    ${
      rerecclap.2 $e |- A # 0 $.
      $( Closure law for reciprocal.  (Contributed by Jim Kingdon,
         9-Mar-2020.) $)
      rerecclapi $p |- ( 1 / A ) e. RR $=
        ( cc0 cap wbr c1 cdiv co cr wcel rerecclapzi ax-mp ) ADEFGAHIJKCABLM $.
    $}

    redivclap.2 $e |- B e. RR $.
    $( Closure law for division of reals.  (Contributed by Jim Kingdon,
       9-Mar-2020.) $)
    redivclapzi $p |- ( B # 0 -> ( A / B ) e. RR ) $=
      ( cr wcel cc0 cap wbr cdiv co redivclap mp3an12 ) AEFBEFBGHIABJKEFCDABLM
      $.

    redivclap.3 $e |- B # 0 $.
    $( Closure law for division of reals.  (Contributed by Jim Kingdon,
       9-Mar-2020.) $)
    redivclapi $p |- ( A / B ) e. RR $=
      ( cc0 cap wbr cdiv co cr wcel redivclapzi ax-mp ) BFGHABIJKLEABCDMN $.
  $}

  ${
    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 Jim Kingdon,
         3-Mar-2020.) $)
      recclapd $p |- ( ph -> ( 1 / A ) e. CC ) $=
        ( cc wcel cc0 cap wbr c1 cdiv co recclap syl2anc ) ABEFBGHIJBKLEFCDBMN
        $.

      $( The reciprocal of a number apart from zero is apart from zero.
         (Contributed by Jim Kingdon, 3-Mar-2020.) $)
      recap0d $p |- ( ph -> ( 1 / A ) # 0 ) $=
        ( cc wcel cc0 cap wbr c1 cdiv co recap0 syl2anc ) ABEFBGHIJBKLGHICDBMN
        $.

      $( Multiplication of a number and its reciprocal.  (Contributed by Jim
         Kingdon, 3-Mar-2020.) $)
      recidapd $p |- ( ph -> ( A x. ( 1 / A ) ) = 1 ) $=
        ( cc wcel cc0 cap wbr c1 cdiv co cmul wceq recidap syl2anc ) ABEFBGHIBJ
        BKLMLJNCDBOP $.

      $( Multiplication of a number and its reciprocal.  (Contributed by Jim
         Kingdon, 3-Mar-2020.) $)
      recidap2d $p |- ( ph -> ( ( 1 / A ) x. A ) = 1 ) $=
        ( cc wcel cc0 cap wbr c1 cdiv co cmul wceq recidap2 syl2anc ) ABEFBGHIJ
        BKLBMLJNCDBOP $.

      $( A number is equal to the reciprocal of its reciprocal.  (Contributed
         by Jim Kingdon, 3-Mar-2020.) $)
      recrecapd $p |- ( ph -> ( 1 / ( 1 / A ) ) = A ) $=
        ( cc wcel cc0 cap wbr c1 cdiv co wceq recrecap syl2anc ) ABEFBGHIJJBKLK
        LBMCDBNO $.

      $( A number divided by itself is one.  (Contributed by Jim Kingdon,
         3-Mar-2020.) $)
      dividapd $p |- ( ph -> ( A / A ) = 1 ) $=
        ( cc wcel cc0 cap wbr cdiv co c1 wceq dividap syl2anc ) ABEFBGHIBBJKLMC
        DBNO $.

      $( Division into zero is zero.  (Contributed by Jim Kingdon,
         3-Mar-2020.) $)
      div0apd $p |- ( ph -> ( 0 / A ) = 0 ) $=
        ( cc wcel cc0 cap wbr cdiv co wceq div0ap syl2anc ) ABEFBGHIGBJKGLCDBMN
        $.
    $}
  $}

  $( Multiplication of both sides of complex apartness by a complex number
     apart from zero.  (Contributed by Jim Kingdon, 20-Mar-2020.) $)
  apmul1 $p |- ( ( A e. CC /\ B e. CC /\ ( C e. CC /\ C # 0 ) )
      -> ( A # B <-> ( A x. C ) # ( B x. C ) ) ) $=
    ( cc wcel cc0 cap wbr wa cmul co c1 mulassd oveq2d mulid1d 3eqtrd wi mulcld
    w3a mulext1 cdiv simp1 simp3l simp3r recclapd simp2 breq12d syl3anc sylbird
    recidapd 3adant3r impbid ) ADEZBDEZCDEZCFGHZIZSZABGHZACJKZBCJKZGHZURUSUTLCU
    AKZJKZVAVCJKZGHZVBURVDAVEBGURVDACVCJKZJKALJKAURACVCUMUNUQUBZUMUNUOUPUCZURCV
    IUMUNUOUPUDZUEZMURVGLAJURCVIVJUJZNURAVHOPURVEBVGJKBLJKBURBCVCUMUNUQUFZVIVKM
    URVGLBJVLNURBVMOPUGURUTDEVADEVCDEVFVBQURACVHVIRURBCVMVIRVKUTVAVCTUHUIUMUNUO
    VBUSQUPABCTUKUL $.

  ${
    divcld.1 $e |- ( ph -> A e. CC ) $.
    divcld.2 $e |- ( ph -> B e. CC ) $.
    ${
      divclapd.3 $e |- ( ph -> B # 0 ) $.
      $( Closure law for division.  (Contributed by Jim Kingdon,
         29-Feb-2020.) $)
      divclapd $p |- ( ph -> ( A / B ) e. CC ) $=
        ( cc wcel cc0 cap wbr cdiv co divclap syl3anc ) ABGHCGHCIJKBCLMGHDEFBCN
        O $.

      $( A cancellation law for division.  (Contributed by Jim Kingdon,
         29-Feb-2020.) $)
      divcanap1d $p |- ( ph -> ( ( A / B ) x. B ) = A ) $=
        ( cc wcel cc0 cap wbr cdiv co cmul wceq divcanap1 syl3anc ) ABGHCGHCIJK
        BCLMCNMBODEFBCPQ $.

      $( A cancellation law for division.  (Contributed by Jim Kingdon,
         29-Feb-2020.) $)
      divcanap2d $p |- ( ph -> ( B x. ( A / B ) ) = A ) $=
        ( cc wcel cc0 cap wbr cdiv co cmul wceq divcanap2 syl3anc ) ABGHCGHCIJK
        CBCLMNMBODEFBCPQ $.

      $( Relationship between division and reciprocal.  Theorem I.9 of
         [Apostol] p. 18.  (Contributed by Jim Kingdon, 29-Feb-2020.) $)
      divrecapd $p |- ( ph -> ( A / B ) = ( A x. ( 1 / B ) ) ) $=
        ( cc wcel cc0 cap wbr cdiv co c1 cmul wceq divrecap syl3anc ) ABGHCGHCI
        JKBCLMBNCLMOMPDEFBCQR $.

      $( Relationship between division and reciprocal.  (Contributed by Jim
         Kingdon, 29-Feb-2020.) $)
      divrecap2d $p |- ( ph -> ( A / B ) = ( ( 1 / B ) x. A ) ) $=
        ( cc wcel cc0 cap wbr cdiv co c1 cmul wceq divrecap2 syl3anc ) ABGHCGHC
        IJKBCLMNCLMBOMPDEFBCQR $.

      $( A cancellation law for division.  (Contributed by Jim Kingdon,
         29-Feb-2020.) $)
      divcanap3d $p |- ( ph -> ( ( B x. A ) / B ) = A ) $=
        ( cc wcel cc0 cap wbr cmul co cdiv wceq divcanap3 syl3anc ) ABGHCGHCIJK
        CBLMCNMBODEFBCPQ $.

      $( A cancellation law for division.  (Contributed by Jim Kingdon,
         29-Feb-2020.) $)
      divcanap4d $p |- ( ph -> ( ( A x. B ) / B ) = A ) $=
        ( cc wcel cc0 cap wbr cmul co cdiv wceq divcanap4 syl3anc ) ABGHCGHCIJK
        BCLMCNMBODEFBCPQ $.

      ${
        diveqap0d.4 $e |- ( ph -> ( A / B ) = 0 ) $.
        $( If a ratio is zero, the numerator is zero.  (Contributed by Jim
           Kingdon, 19-Mar-2020.) $)
        diveqap0d $p |- ( ph -> A = 0 ) $=
          ( cdiv co cc0 wceq cc wcel cap wbr wb diveqap0 syl3anc mpbid ) ABCHIJ
          KZBJKZGABLMCLMCJNOTUAPDEFBCQRS $.
      $}

      ${
        diveqap1d.4 $e |- ( ph -> ( A / B ) = 1 ) $.
        $( Equality in terms of unit ratio.  (Contributed by Jim Kingdon,
           19-Mar-2020.) $)
        diveqap1d $p |- ( ph -> A = B ) $=
          ( cdiv co c1 wceq cc wcel cc0 cap wbr wb diveqap1 syl3anc mpbid ) ABC
          HIJKZBCKZGABLMCLMCNOPUAUBQDEFBCRST $.
      $}

      $( The quotient of two complex numbers is one iff they are equal.
         Deduction form of ~ diveqap1 .  Generalization of ~ diveqap1d .
         (Contributed by Jim Kingdon, 19-Mar-2020.) $)
      diveqap1ad $p |- ( ph -> ( ( A / B ) = 1 <-> A = B ) ) $=
        ( cc wcel cc0 cap wbr cdiv co c1 wceq wb diveqap1 syl3anc ) ABGHCGHCIJK
        BCLMNOBCOPDEFBCQR $.

      $( A fraction of complex numbers is zero iff its numerator is.  Deduction
         form of ~ diveqap0 .  (Contributed by Jim Kingdon, 19-Mar-2020.) $)
      diveqap0ad $p |- ( ph -> ( ( A / B ) = 0 <-> A = 0 ) ) $=
        ( cc wcel cc0 cap wbr cdiv co wceq wb diveqap0 syl3anc ) ABGHCGHCIJKBCL
        MINBINODEFBCPQ $.

      ${
        divap1d.4 $e |- ( ph -> A # B ) $.
        $( If two complex numbers are apart, their quotient is apart from one.
           (Contributed by Jim Kingdon, 20-Mar-2020.) $)
        divap1d $p |- ( ph -> ( A / B ) # 1 ) $=
          ( c1 cdiv co cmul cap wbr cc wcel cc0 wb recclapd recap0d apmul1
          syl112anc mpbid divrecapd eqcomd recidapd 3brtr3d ) ABHCIJZKJZCUGKJZB
          CIJZHLABCLMZUHUILMZGABNOCNOUGNOUGPLMUKULQDEACEFRACEFSBCUGTUAUBAUJUHAB
          CDEFUCUDACEFUEUF $.
      $}

      $( A ratio is zero iff the numerator is zero.  (Contributed by Jim
         Kingdon, 19-Mar-2020.) $)
      divap0bd $p |- ( ph -> ( A # 0 <-> ( A / B ) # 0 ) ) $=
        ( cc wcel cc0 cap wbr cdiv co wb divap0b syl3anc ) ABGHCGHCIJKBIJKBCLMI
        JKNDEFBCOP $.

      $( Move negative sign inside of a division.  (Contributed by Jim Kingdon,
         19-Mar-2020.) $)
      divnegapd $p |- ( ph -> -u ( A / B ) = ( -u A / B ) ) $=
        ( cc wcel cc0 cap wbr cdiv co cneg wceq divnegap syl3anc ) ABGHCGHCIJKB
        CLMNBNCLMODEFBCPQ $.

      $( Move negative sign inside of a division.  (Contributed by Jim Kingdon,
         19-Mar-2020.) $)
      divneg2apd $p |- ( ph -> -u ( A / B ) = ( A / -u B ) ) $=
        ( cc wcel cc0 cap wbr cdiv co cneg wceq divneg2ap syl3anc ) ABGHCGHCIJK
        BCLMNBCNLMODEFBCPQ $.

      $( Quotient of two negatives.  (Contributed by Jim Kingdon,
         19-Mar-2020.) $)
      div2negapd $p |- ( ph -> ( -u A / -u B ) = ( A / B ) ) $=
        ( cc wcel cc0 cap wbr cneg cdiv co wceq div2negap syl3anc ) ABGHCGHCIJK
        BLCLMNBCMNODEFBCPQ $.
    $}

    ${
      divap0d.3 $e |- ( ph -> A # 0 ) $.
      divap0d.4 $e |- ( ph -> B # 0 ) $.
      $( The ratio of numbers apart from zero is apart from zero.  (Contributed
         by Jim Kingdon, 3-Mar-2020.) $)
      divap0d $p |- ( ph -> ( A / B ) # 0 ) $=
        ( cc wcel cc0 cap wbr cdiv co divap0 syl22anc ) ABHIBJKLCHICJKLBCMNJKLD
        FEGBCOP $.

      $( The reciprocal of a ratio.  (Contributed by Jim Kingdon,
         3-Mar-2020.) $)
      recdivapd $p |- ( ph -> ( 1 / ( A / B ) ) = ( B / A ) ) $=
        ( cc wcel cc0 cap wbr c1 cdiv co wceq recdivap syl22anc ) ABHIBJKLCHICJ
        KLMBCNONOCBNOPDFEGBCQR $.

      $( Division into a reciprocal.  (Contributed by Jim Kingdon,
         3-Mar-2020.) $)
      recdivap2d $p |- ( ph -> ( ( 1 / A ) / B ) = ( 1 / ( A x. B ) ) ) $=
        ( cc wcel cc0 cap wbr c1 cdiv co cmul wceq recdivap2 syl22anc ) ABHIBJK
        LCHICJKLMBNOCNOMBCPONOQDFEGBCRS $.

      $( Cancellation of inverted fractions.  (Contributed by Jim Kingdon,
         3-Mar-2020.) $)
      divcanap6d $p |- ( ph -> ( ( A / B ) x. ( B / A ) ) = 1 ) $=
        ( cc wcel cc0 cap wbr cdiv co cmul c1 wceq divcanap6 syl22anc ) ABHIBJK
        LCHICJKLBCMNCBMNONPQDFEGBCRS $.

      $( Cancellation in a double division.  (Contributed by Jim Kingdon,
         3-Mar-2020.) $)
      ddcanapd $p |- ( ph -> ( A / ( A / B ) ) = B ) $=
        ( cc wcel cc0 cap wbr cdiv co wceq ddcanap syl22anc ) ABHIBJKLCHICJKLBB
        CMNMNCODFEGBCPQ $.

      rec11d.5 $e |- ( ph -> ( 1 / A ) = ( 1 / B ) ) $.
      $( Reciprocal is one-to-one.  (Contributed by Jim Kingdon,
         3-Mar-2020.) $)
      rec11apd $p |- ( ph -> A = B ) $=
        ( c1 cdiv co wceq cc wcel cc0 cap wbr wb rec11ap syl22anc mpbid ) AIBJK
        ICJKLZBCLZHABMNBOPQCMNCOPQUBUCRDFEGBCSTUA $.
    $}

    divmuld.3 $e |- ( ph -> C e. CC ) $.
    ${
      divmulapd.4 $e |- ( ph -> B # 0 ) $.
      $( Relationship between division and multiplication.  (Contributed by Jim
         Kingdon, 8-Mar-2020.) $)
      divmulapd $p |- ( ph -> ( ( A / B ) = C <-> ( B x. C ) = A ) ) $=
        ( cc wcel cc0 cap wbr cdiv co wceq cmul wb divmulap syl112anc ) ABIJDIJ
        CIJCKLMBCNODPCDQOBPREGFHBDCST $.

      $( A commutative/associative law for division.  (Contributed by Jim
         Kingdon, 8-Mar-2020.) $)
      div32apd $p |- ( ph -> ( ( A / B ) x. C ) = ( A x. ( C / B ) ) ) $=
        ( cc wcel cc0 cap wbr cdiv co cmul wceq div32ap syl121anc ) ABIJCIJCKLM
        DIJBCNODPOBDCNOPOQEFHGBCDRS $.

      $( A commutative/associative law for division.  (Contributed by Jim
         Kingdon, 8-Mar-2020.) $)
      div13apd $p |- ( ph -> ( ( A / B ) x. C ) = ( ( C / B ) x. A ) ) $=
        ( cc wcel cc0 cap wbr cdiv co cmul wceq div13ap syl121anc ) ABIJCIJCKLM
        DIJBCNODPODCNOBPOQEFHGBCDRS $.

      divdiv23apd.5 $e |- ( ph -> C # 0 ) $.
      $( Swap denominators in a division.  (Contributed by Jim Kingdon,
         8-Mar-2020.) $)
      divdiv32apd $p |- ( ph -> ( ( A / B ) / C ) = ( ( A / C ) / B ) ) $=
        ( cc wcel cc0 cap wbr cdiv co wceq divdiv32ap syl122anc ) ABJKCJKCLMNDJ
        KDLMNBCOPDOPBDOPCOPQEFHGIBCDRS $.

      $( Cancellation of common factor in a ratio.  (Contributed by Jim
         Kingdon, 8-Mar-2020.) $)
      divcanap5d $p |- ( ph -> ( ( C x. A ) / ( C x. B ) ) = ( A / B ) ) $=
        ( cc wcel cc0 cap wbr cmul co cdiv wceq divcanap5 syl122anc ) ABJKCJKCL
        MNDJKDLMNDBOPDCOPQPBCQPREFHGIBCDST $.

      $( Cancellation of common factor in a ratio.  (Contributed by Jim
         Kingdon, 8-Mar-2020.) $)
      divcanap5rd $p |- ( ph -> ( ( A x. C ) / ( B x. C ) ) = ( A / B ) ) $=
        ( cmul co cdiv mulcomd oveq12d divcanap5d eqtrd ) ABDJKZCDJKZLKDBJKZDCJ
        KZLKBCLKAQSRTLABDEGMACDFGMNABCDEFGHIOP $.

      $( Cancel equal divisors in a division.  (Contributed by Jim Kingdon,
         8-Mar-2020.) $)
      divcanap7d $p |- ( ph -> ( ( A / C ) / ( B / C ) ) = ( A / B ) ) $=
        ( cc wcel cc0 cap wbr cdiv co wceq divcanap7 syl122anc ) ABJKCJKCLMNDJK
        DLMNBDOPCDOPOPBCOPQEFHGIBCDRS $.

      $( Cancellation law for division and multiplication.  (Contributed by Jim
         Kingdon, 8-Mar-2020.) $)
      dmdcanapd $p |- ( ph -> ( ( B / C ) x. ( A / B ) ) = ( A / C ) ) $=
        ( cc wcel cc0 cap wbr cdiv co cmul wceq dmdcanap syl221anc ) ACJKCLMNDJ
        KDLMNBJKCDOPBCOPQPBDOPRFHGIECDBST $.

      $( Cancellation law for division and multiplication.  (Contributed by Jim
         Kingdon, 8-Mar-2020.) $)
      dmdcanap2d $p |- ( ph -> ( ( A / B ) x. ( B / C ) ) = ( A / C ) ) $=
        ( cdiv co cmul divclapd mulcomd dmdcanapd eqtrd ) ABCJKZCDJKZLKRQLKBDJK
        AQRABCEFHMACDFGIMNABCDEFGHIOP $.

      $( Division into a fraction.  (Contributed by Jim Kingdon,
         8-Mar-2020.) $)
      divdivap1d $p |- ( ph -> ( ( A / B ) / C ) = ( A / ( B x. C ) ) ) $=
        ( cc wcel cc0 cap wbr cdiv co cmul wceq divdivap1 syl122anc ) ABJKCJKCL
        MNDJKDLMNBCOPDOPBCDQPOPREFHGIBCDST $.

      $( Division by a fraction.  (Contributed by Jim Kingdon, 8-Mar-2020.) $)
      divdivap2d $p |- ( ph -> ( A / ( B / C ) ) = ( ( A x. C ) / B ) ) $=
        ( cc wcel cc0 cap wbr cdiv co cmul wceq divdivap2 syl122anc ) ABJKCJKCL
        MNDJKDLMNBCDOPOPBDQPCOPREFHGIBCDST $.
    $}

    ${
      divassapd.4 $e |- ( ph -> C # 0 ) $.
      $( Relationship between division and multiplication.  (Contributed by Jim
         Kingdon, 2-Mar-2020.) $)
      divmulap2d $p |- ( ph -> ( ( A / C ) = B <-> A = ( C x. B ) ) ) $=
        ( cc wcel cc0 cap wbr cdiv co wceq cmul wb divmulap2 syl112anc ) ABIJCI
        JDIJDKLMBDNOCPBDCQOPREFGHBCDST $.

      $( Relationship between division and multiplication.  (Contributed by Jim
         Kingdon, 2-Mar-2020.) $)
      divmulap3d $p |- ( ph -> ( ( A / C ) = B <-> A = ( B x. C ) ) ) $=
        ( cc wcel cc0 cap wbr cdiv co wceq cmul wb divmulap3 syl112anc ) ABIJCI
        JDIJDKLMBDNOCPBCDQOPREFGHBCDST $.

      $( An associative law for division.  (Contributed by Jim Kingdon,
         2-Mar-2020.) $)
      divassapd $p |- ( ph -> ( ( A x. B ) / C ) = ( A x. ( B / C ) ) ) $=
        ( cc wcel cc0 cap wbr cmul co cdiv wceq divassap syl112anc ) ABIJCIJDIJ
        DKLMBCNODPOBCDPONOQEFGHBCDRS $.

      $( A commutative/associative law for division.  (Contributed by Jim
         Kingdon, 2-Mar-2020.) $)
      div12apd $p |- ( ph -> ( A x. ( B / C ) ) = ( B x. ( A / C ) ) ) $=
        ( cc wcel cc0 cap wbr cdiv co cmul wceq div12ap syl112anc ) ABIJCIJDIJD
        KLMBCDNOPOCBDNOPOQEFGHBCDRS $.

      $( A commutative/associative law for division.  (Contributed by Jim
         Kingdon, 2-Mar-2020.) $)
      div23apd $p |- ( ph -> ( ( A x. B ) / C ) = ( ( A / C ) x. B ) ) $=
        ( cc wcel cc0 cap wbr cmul co cdiv wceq div23ap syl112anc ) ABIJCIJDIJD
        KLMBCNODPOBDPOCNOQEFGHBCDRS $.

      $( Distribution of division over addition.  (Contributed by Jim Kingdon,
         2-Mar-2020.) $)
      divdirapd $p |- ( ph ->
          ( ( A + B ) / C ) = ( ( A / C ) + ( B / C ) ) ) $=
        ( cc wcel cc0 cap wbr caddc co cdiv wceq divdirap syl112anc ) ABIJCIJDI
        JDKLMBCNODPOBDPOCDPONOQEFGHBCDRS $.

      $( Distribution of division over subtraction.  (Contributed by Jim
         Kingdon, 2-Mar-2020.) $)
      divsubdirapd $p |- ( ph ->
          ( ( A - B ) / C ) = ( ( A / C ) - ( B / C ) ) ) $=
        ( cc wcel cc0 cap wbr cmin co cdiv wceq divsubdirap syl112anc ) ABIJCIJ
        DIJDKLMBCNODPOBDPOCDPONOQEFGHBCDRS $.

      div11apd.5 $e |- ( ph -> ( A / C ) = ( B / C ) ) $.
      $( One-to-one relationship for division.  (Contributed by Jim Kingdon,
         2-Mar-2020.) $)
      div11apd $p |- ( ph -> A = B ) $=
        ( cdiv co wceq cc wcel cc0 cap wbr wb div11ap syl112anc mpbid ) ABDJKCD
        JKLZBCLZIABMNCMNDMNDOPQUBUCREFGHBCDSTUA $.
    $}

    divmuldivapd.4 $e |- ( ph -> D e. CC ) $.
    divmuldivapd.5 $e |- ( ph -> B # 0 ) $.
    divmuldivapd.6 $e |- ( ph -> D # 0 ) $.
    $( Multiplication of two ratios.  (Contributed by Jim Kingdon,
       30-Jul-2021.) $)
    divmuldivapd $p |- ( ph -> ( ( A / B ) x. ( C / D ) ) =
        ( ( A x. C ) / ( B x. D ) ) ) $=
      ( cc wcel cc0 cap wbr wa cdiv co cmul wceq jca divmuldivap syl22anc ) ABL
      MDLMCLMZCNOPZQELMZENOPZQBCRSDERSTSBDTSCETSRSUAFHAUEUFGJUBAUGUHIKUBBDCEUCU
      D $.
  $}

  ${
    redivclapd.1 $e |- ( ph -> A e. RR ) $.
    ${
      rerecclapd.2 $e |- ( ph -> A # 0 ) $.
      $( Closure law for reciprocal.  (Contributed by Jim Kingdon,
         29-Feb-2020.) $)
      rerecclapd $p |- ( ph -> ( 1 / A ) e. RR ) $=
        ( cr wcel cc0 cap wbr c1 cdiv co rerecclap syl2anc ) ABEFBGHIJBKLEFCDBM
        N $.
    $}

    redivclapd.2 $e |- ( ph -> B e. RR ) $.
    redivclapd.3 $e |- ( ph -> B # 0 ) $.
    $( Closure law for division of reals.  (Contributed by Jim Kingdon,
       29-Feb-2020.) $)
    redivclapd $p |- ( ph -> ( A / B ) e. RR ) $=
      ( cr wcel cc0 cap wbr cdiv co redivclap syl3anc ) ABGHCGHCIJKBCLMGHDEFBCN
      O $.
  $}

  ${
    mvllmulapd.1 $e |- ( ph -> A e. CC ) $.
    mvllmulapd.2 $e |- ( ph -> B e. CC ) $.
    mvllmulapd.3 $e |- ( ph -> A # 0 ) $.
    mvllmulapd.4 $e |- ( ph -> ( A x. B ) = C ) $.
    $( Move LHS left multiplication to RHS. (Contributed by Jim Kingdon,
       10-Jun-2020.) $)
    mvllmulapd $p |- ( ph -> B = ( C / A ) ) $=
      ( cmul co cdiv divcanap4d mulcomd eqtr3d oveq1d ) ACBIJZBKJCDBKJACBFEGLAP
      DBKABCIJPDABCEFMHNON $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Ordering on reals (cont.)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( 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 co cap 0re cneg cmul adantr rerecclapd lt0neg1d
    wn cc syl2anc wb cdiv cle 0lt1 1re ax-mp simpll gt0ap0 renegcld simpr simpl
    ltnsymi mpbid simplr mulgt0d recnd recclap mulneg1d recidap2 negeqd breqtrd
    wceq eqtrd 1red mpbird ex mtoi lenlt sylancr recap0 apsym sylancl mpbir2and
    0cn ltleap ) ABCZDAEFZGZDHAUAIZEFZDVRUBFZDVRJFZVQVTVRDEFZQZVQWBHDEFZDHEFWDQ
    UCDHKUDUKUEVQWBWDVQWBGZWDDHLZEFWEDVRLZAMIZWFEWEWGAWEVRWEAVOVPWBUFZVQADJFZWB
    AUGZNZOUHWIWEWBDWGEFVQWBUIWEVRVQVRBCZWBVQAVOVPUJZWKOZNPULVOVPWBUMUNWEWHVRAM
    IZLWFWEVRAWEARCZWJVRRCZVQWQWBVQAWNUOZNZWLAUPZSWTUQWEWPHWEWQWJWPHVAWTWLAURSU
    SVBUTWEHWEVCPVDVEVFVQDBCZWMVTWCTKWODVRVGVHVDVQVRDJFZWAVQWQWJXCWSWKAVISVQWRD
    RCXCWATVQWQWJWRWSWKXASVMVRDVJVKULVQXBWMVSVTWAGTKWODVRVNVHVL $.

  $( Infer that a multiplicand is positive from a positive multiplier and
     positive product.  See ~ prodgt0 for the same theorem with ` 0 < A `
     replaced by the weaker condition ` 0 <_ A ` .  (Contributed by Jim
     Kingdon, 29-Feb-2020.) $)
  prodgt0gt0 $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( 0 < A /\ 0 < ( A x. B ) ) )
                 -> 0 < B ) $=
    ( cr wcel wa cc0 clt wbr cmul co cdiv simpll simplr remulcld simprl gt0ap0d
    c1 rerecclapd simprr recnd recgt0 mulgt0d divrecapd simpr adantr divcanap3d
    ad2ant2r cc eqtr3d breqtrd ) ACDZBCDZEZFAGHZFABIJZGHZEZEZFUOQAKJZIJZBGURUOU
    SURABUKULUQLZUKULUQMNZURAVAURAVAUMUNUPOPZRUMUNUPSUKUNFUSGHULUPAUAUGUBURUOAK
    JUTBURUOAURUOVBTURAVATZVCUCURBAUMBUHDUQUMBUKULUDTUEVDVCUFUIUJ $.

  $( 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 wn cneg renegcld lt0neg1d recnd negcld
    cap mpbird 0red simpllr simplll simplr biimpa simprr simpll mulcomd breqtrd
    mul2negd breqtrrd adantr prodgt0gt0 syl22anc lenltd mpbid pm2.65da remulcld
    simplrl gt0ap0d mulap0bbd cc wb 0cnd apsym syl2anc ltleap mpbir2and ) ACDZB
    CDZEZFAGHZFABIJZKHZEZEZFBKHZFBGHZFBRHZVOVQBFKHZLVOVSAFKHZVOVSEZVTFAMZKHZWAB
    MZCDWBCDFWDKHZFWDWBIJZKHZWCWABVHVIVNVSUANWAAVHVIVNVSUBZNVOVSWEVOBVHVIVNUCZO
    UDVOWGVSVOFWBWDIJZWFKVOFVLWJKVJVKVMUEZVOABVOAVHVIVNUFZPZVOBWIPZUIUJVOWBWDVO
    AWMQVOBWNQUGUHUKWDWBULUMWAAWHOSWAVKVTLVJVKVMVSURWAFAWATWHUNUOUPVOFBVOTZWIUN
    SVOBFRHZVRVOABWMWNVOVLVOABWLWIUQWKUSUTVOBVADFVADWPVRVBWNVOVCBFVDVEUOVOFCDVI
    VPVQVREVBWOWIFBVFVEVG $.

  $( 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 $.

  $( 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, 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.  Part of Definition 11.2.7(vi) of [HoTT], p.  (varies).
     (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 simpl2 simpl1 resubcld simpl3l subge0d
    cmin recnd remulcld simpr mpbird simpl3r mulge0d subdird breqtrd mpbid ) AD
    EZBDEZCDEZFCGHZIZJZABGHZIZFBCKLZACKLZRLZGHUQUPGHUOFBARLZCKLURGUOUSCUOBAUHUI
    ULUNMZUHUIULUNNZOUJUKUHUIUNPZUOFUSGHUNUMUNUAUOBAUTVAQUBUJUKUHUIUNUCUDUOBACU
    OBUTSUOAVASUOCVBSUEUFUOUPUQUOBCUTVBTUOACVAVBTQUG $.

  $( 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 cmul wb simp1 simp2 recnd divrecapd
    simp3l simp3r gt0ap0d rerecclapd recgt0 3ad2ant3 ltmul1 syl112anc breq12d
    bitr4d ) ADEZBDEZCDEZFCGHZIZJZABGHZAKCLMZNMZBUQNMZGHZACLMZBCLMZGHUOUJUKUQDE
    FUQGHZUPUTOUJUKUNPZUJUKUNQZUOCUJUKULUMTZUOCVFUJUKULUMUAUBZUCUNUJVCUKCUDUEAB
    UQUFUGUOVAURVBUSGUOACUOAVDRUOCVFRZVGSUOBCUOBVERVHVGSUHUI $.

  $( 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 co cle wb ltdiv1 3adant1 redivclap syld3an3
    cdiv 3expb 3com12 notbid lenlt 3adant3 cap gt0ap0 3adant2 lenltd 3bitr4d )
    ADEZBDEZCDEZFCGHZIZJZBAGHZKZBCSLZACSLZGHZKABMHZUSURMHUOUPUTUKUJUNUPUTNBACOU
    AUBUJUKVAUQNUNABUCUDUOUSURUJUNUSDEZUKUJULUMVBUJULUMCFUEHZVBULUMVCUJCUFZPACQ
    RTUGUKUNURDEZUJUKULUMVEUKULUMVCVEULUMVCUKVDPBCQRTPUHUI $.

  $( 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 gt0ap0
    cap cc recn div0ap sylan syldan breq1d 3adant1 bitrd ) ACDZBCDZEBFGZHEAFGZE
    BIJZABIJZFGZEUMFGZUHUIUJUKUNKZECDUHUIUJLZUPMEABNOPUIUJUNUOKUHUQULEUMFUIUJBE
    SGZULEQZBRUIBTDURUSBUABUBUCUDUEUFUG $.

  $( 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 cap gt0ap0
    wa wceq cc recn div0ap sylan syldan breq1d 3adant1 bitrd ) ACDZBCDZEBFGZHEA
    IGZEBJKZABJKZIGZEUNIGZUIUJUKULUOLZECDUIUJUKSZUQMEABNOPUJUKUOUPLUIURUMEUNIUJ
    UKBEQGZUMETZBRUJBUADUSUTBUBBUCUDUEUFUGUH $.

  $( 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
    $.

  $( '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 gt0ap0d divcanap4d breq1d bitrd ) ADEZBDEZCDEZFCGHZIZJZ
    ACKLZBGHZULCMLZBCMLZGHZAUOGHULDEUGUFUJUMUPNUKACUFUGUJOZUFUGUHUIPZQULBCSRUKU
    NAUOGUKACUKAUQTUKCURTUKCURUFUGUHUIUAUBUCUDUE $.

  $( '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 adantr ad2antrl cap gt0ap0 adantl divcanap3d breq2d
    wceq bitr2d ) ADEZBDEZCDEZFCGHZIZJZACBKLZGHZACMLZURCMLZGHZUTBGHULURDEZUMUPU
    SVBNUMUPVCULUMUNVCUOUNUMVCCBOPQRAURCUAUBUQVABUTGUMUPVABUJULUMUPIBCUMBSEUPBT
    UCUNCSEUMUOCTUDUPCFUEHUMCUFUGUHRUIUK $.

  $( '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 cle simp3l simp2 remulcld lediv1 recnd
    cdiv wb syld3an2 simp3r gt0ap0d divcanap3d breq2d bitr2d ) ADEZBDEZCDEZFCGH
    ZIZJZACBKLZMHZACSLZUMCSLZMHZUOBMHUGUMDEUHUKUNUQTULCBUGUHUIUJNZUGUHUKOZPAUMC
    QUAULUPBUOMULBCULBUSRULCURRULCURUGUHUIUJUBUCUDUEUF $.

  $( '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 simprl simprrl mulcomd oveq1d syl3anc
    recnd wb simplrl simplrr gt0ap0d divassapd eqtrd breq2d remulcld redivclapd
    simpll simplr ltmuldiv simprr ltdivmul 3bitr4d ) AEFZBEFZGBHIZJZJZCEFZDEFZG
    DHIZJZJZJZACDKLZBMLZHIZADCBMLZKLZHIZABKLVFHIZADMLVIHIZVEVGVJAHVEVGDCKLZBMLV
    JVEVFVNBMVECDVECUSUTVCNZSZVEDUSUTVAVBOZSZPQVEDCBVRVPVEBUOUPUQVDUAZSVEBVSUOU
    PUQVDUBUCZUDUEUFVEUOVFEFURVLVHTUOURVDUIZVECDVOVQUGUOURVDUJAVFBUKRVEUOVIEFVC
    VMVKTWAVECBVOVSVTUHUSUTVCULAVIDUMRUN $.

  $( '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 notbid
    lenltd simp1 simp2 simp3l simp3r gt0ap0d redivclapd remulcld 3bitr4rd ) ADE
    ZBDEZCDEZFCGHZIZJZBCKLZAGHZMBACNLZGHZMAUOOHUQBOHUNUPURUJUIUMUPURPBACQRSUNAU
    OUIUJUMUAZUNBCUIUJUMUBZUIUJUKULUCZUNCVAUIUJUKULUDUEUFTUNUQBUNACUSVAUGUTTUH
    $.

  $( '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 gt0ap0d divrecapd breq2d 3bitr3d ltdivmul
    rerecclapd simprr bitr4d ) ACDZEAFGZHZBCDZEBFGZHZHZABFGZIBIAJKZLKZFGZIBJKUS
    FGZUQIALKZBFGZIBAJKZFGZURVAUQICDZUNUKULVDVFRUQMZUMUNUONZUKULUPOZUKULUPPZIBA
    QSUQVCABFUQAUQAVJTZUAUBUQVEUTIFUQBAUQBVITVLUQAVJVKUCZUDUEUFUQVGUSCDUNUOVBVA
    RVHUQAVJVMUHVIUMUNUOUIIUSBUGSUJ $.

  $( 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 gt0ap0d
    cdiv rerecclapd simpll simprl simprr simplr 3bitr4d ) ACDZEAFGZHZBCDZEBFGZH
    ZHZBAFGZIJASKZJBSKZFGZIABLGUOUNLGULUMUPUKUHUMUPMBANOPULABUFUGUKUAZUHUIUJUBZ
    QULUOUNULBURULBURUHUIUJUCRTULAUQULAUQUFUGUKUDRTQUE $.

  $( 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 clt cmul co wi lt2msq1 3expia cap syl2anc remulcld
    wn lenltd 3imtr4d adantrr simpr simpll con3d simprl wo recnd syl22anc oridm
    cc mulext syl6ib anim12d wb ltleap impbid ) ACDZEAFGZHZBCDZEBFGZHZHZABIGZAA
    JKZBBJKZIGZUSUTVDVGLVAUSUTVDVGABMNUAVCVEVFFGZVEVFOGZHZABFGZABOGZHZVGVDVCVHV
    KVIVLVCVFVEIGZRBAIGZRVHVKVCVOVNVCVBUQVOVNLUSVBUBUQURVBUCZVBUQVOVNBAMNPUDVCV
    EVFVCAAVPVPQZVCBBUSUTVAUEZVRQZSVCABVPVRSTVCVIVLVLUFZVLVCAUJDZWABUJDZWBVIVTL
    VCAVPUGZWCVCBVRUGZWDAABBUKUHVLUIULUMVCVECDVFCDVGVJUNVQVSVEVFUOPVCUQUTVDVMUN
    VPVRABUOPTUP $.

  $( 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 c1 cdiv co cmul wb gt0ap0 3ad2ant1 recnd divrecapd
    w3a cap simp2l 3ad2ant2 rerecclap syldan simp3 ltmul2 syl3anc ltrec 3adant3
    rerecclapd simp3l simp1l breq12d 3bitr4d ) ADEZFAGHZIZBDEZFBGHZIZCDEZFCGHZI
    ZSZJBKLZJAKLZGHZCVEMLZCVFMLZGHZABGHZCBKLZCAKLZGHVDVEDEVFDEZVCVGVJNVDBUQURUS
    VCUAZUTUQBFTHVCBOUBZUJUQUTVNVCUOUPAFTHZVNAOZAUCUDPUQUTVCUEVEVFCUFUGUQUTVKVG
    NVCABUHUIVDVLVHVMVIGVDCBVDCUQUTVAVBUKQZVDBVOQVPRVDCAVSVDAUOUPUTVCULQUQUTVQV
    CVRPRUMUN $.

  $( 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 simpll simplr gt0ap0d rerecclapd recgt0
    wb adantr simpr ltrec syl21anc recnd recrecapd breq2d bitrd ) ACDZEAFGZHZBC
    DEBFGHZHZIAJKZBFGZIBJKZIUKJKZFGZUMAFGUJUKCDEUKFGZUIULUOQUJAUFUGUILZUJAUQUFU
    GUIMNZOUHUPUIAPRUHUISUKBTUAUJUNAUMFUJAUJAUQUBURUCUDUE $.

  $( 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 simprl simprr gt0ap0d rerecclapd
    simpl recgt0 adantl lerec syl12anc recnd recrecapd breq1d bitrd ) ACDEAFGHZ
    BCDZEBFGZHZHZAIBJKZLGZIULJKZIAJKZLGZBUOLGUKUGULCDEULFGZUMUPMUGUJRUKBUGUHUIN
    ZUKBURUGUHUIOPZQUJUQUGBSTAULUAUBUKUNBUOLUKBUKBURUCUSUDUEUF $.

  $( 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 c1 gt0ap0d redivclapd divgt0 recdivapd
    wb recnd simplll simplrl simplrr adantr simprll simprrl simprrr lerec bitrd
    adantl syl22anc simprlr simpllr breq12d ) AEFZGAHIZJZBEFZGBHIZJZJZCEFZGCHIZ
    JZDEFZGDHIZJZJZJZABKLZCDKLZMIZNVKKLZNVJKLZMIZDCKLZBAKLZMIVIVJEFGVJHIZVKEFGV
    KHIZVLVOSVIABUOUPUTVHUAZUQURUSVHUBZVIBWAUQURUSVHUCOZPVAVRVHABQUDVICDVAVBVCV
    GUEZVAVDVEVFUFZVIDWDVAVDVEVFUGOZPVHVSVACDQUJVJVKUHUKVIVMVPVNVQMVICDVICWCTVI
    DWDTVICWCVAVBVCVGULOWERVIABVIAVTTVIBWATVIAVTUOUPUTVHUMOWBRUNUI $.

  $( 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 wb gt0ap0d rerecclapd divrecapd
    cmul recnd simp2l simp2r simp1l simp1r simp3l simp3r lemul2 syl112anc lerec
    3adant3 breq12d 3bitr4d ) ADEZFAGHZIZBDEZFBGHZIZCDEZFCGHZIZJZKBLMZKALMZNHZC
    VCSMZCVDSMZNHZABNHZCBLMZCALMZNHVBVCDEVDDEUSUTVEVHOVBBUOUPUQVAUAZVBBVLUOUPUQ
    VAUBPZQVBAUMUNURVAUCZVBAVNUMUNURVAUDPZQUOURUSUTUEZUOURUSUTUFVCVDCUGUHUOURVI
    VEOVAABUIUJVBVJVFVKVGNVBCBVBCVPTZVBBVLTVMRVBCAVQVBAVNTVORUKUL $.

  $( 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 simp1 simp2l simp2r redivclapd
    gt0ap0d recnd simp3l simp2 ltmul1 syl3anc divcanap1d breq1d remulcld ltdiv1
    syld3an2 simp3r divcanap3d breq2d bitrd 3bitrd ) ADEZBDEZFBGHZIZCDEZFCGHZIZ
    JZABKLZCGHZVCBMLZCBMLZGHZAVFGHZACKLZBGHZVBVCDEUSURVDVGNVBABUOURVAOZUOUPUQVA
    PZVBBVLUOUPUQVAQSZRUOURUSUTUAZUOURVAUBVCCBUCUDVBVEAVFGVBABVBAVKTVBBVLTZVMUE
    UFVBVHVIVFCKLZGHZVJUOVFDEURVAVHVQNVBCBVNVLUGAVFCUHUIVBVPBVIGVBBCVOVBCVNTVBC
    VNUOURUSUTUJSUKULUMUN $.

  $( 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 simp1 simp2l gt0ap0d recnd
    simp2r redivclapd simp3l lemul1 syl112anc divcanap1d breq1d remulcld lediv1
    syld3an2 simp3r divcanap3d breq2d bitrd 3bitrd ) ADEZBDEZFBGHZIZCDEZFCGHZIZ
    JZABKLZCMHZVCBNLZCBNLZMHZAVFMHZACKLZBMHZVBVCDEUSUPUQVDVGOVBABUOURVAPZUOUPUQ
    VAQZVBBVLUOUPUQVATZRZUAUOURUSUTUBZVLVMVCCBUCUDVBVEAVFMVBABVBAVKSVBBVLSZVNUE
    UFVBVHVIVFCKLZMHZVJUOVFDEURVAVHVROVBCBVOVLUGAVFCUHUIVBVQBVIMVBBCVPVBCVOSVBC
    VOUOURUSUTUJRUKULUMUN $.

  $( 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 cmul syl22anc gt0ap0d rerecclapd recnd
    co jca simplrr simprrr simprll simprrl simprlr 0red ltletrd simplll simplrl
    wb lerec mpbid wi simpllr recgt0 syl2anc lemul12a mp2and divrecapd 3brtr4d
    ltled ) AEFZBEFZGZHAIJZABIJZGZGZCEFZDEFZGZHCKJZCDIJZGZGZGZALDMSZNSZBLCMSZNS
    ZADMSBCMSIVPVFVQVSIJZVRVTIJZVDVEVFVOUAVPVMWAVHVKVLVMUBZVPVIVLVJHDKJZVMWAUJV
    HVIVJVNUCZVHVKVLVMUDZVHVIVJVNUEZVPHCDVPUFZWEWGWFWCUGZCDUKOULVPVBVEGVCVQEFZH
    VQIJZGVSEFVFWAGWBUMVPVBVEVBVCVGVOUHZVDVEVFVOUITVBVCVGVOUNZVPWJWKVPDWGVPDWGW
    IPZQZVPHVQWHWOVPVJWDHVQKJWGWIDUOUPVATVPCWEVPCWEWFPZQABVQVSUQOURVPADVPAWLRVP
    DWGRWNUSVPBCVPBWMRVPCWERWPUSUT $.

  $( 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 simpl ltp1 recnd addcomd
    syl 1cnd breqtrd addcld 1red readdcld 1re addgtge0 mpanr1 mpanl1 divcanap1d
    0lt1 gt0ap0d mulid2d 3brtr4d wb redivclapd ltmul1 syl112anc mpbird ) ABCZDA
    EFZGZAHAIJZKJZHLFZVBVAMJZHVAMJZLFZUTAVAVDVELUTAAHIJZVALUTURAVGLFURUSNZAORUT
    AHUTAVHPZUTSZQTUTAVAVIUTHAVJVIUAZUTVAUTHAUTUBZVHUCZHBCZURUSDVALFZUDVNURGDHL
    FUSVOUIHAUEUFUGZUJZUHUTVAVKUKULUTVBBCVNVABCVOVCVFUMUTAVAVHVMVQUNVLVMVPVBHVA
    UOUPUQ $.

  $( 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 simpl gt0ap0 rerecclapd readdcl wi 0re mp3an12 syl mpani
    lttr mpd recgt1 syl2anc mpbii wceq recnd ax-1cn addcom breqtrd simpr ltrec1
    syl22anc jca ) ABCZDAEFZGZHHHAIJZKJZIJZHEFZVIAEFZVFHVHEFZVJVFDVGEFZVLALVFVG
    BCZHBCZVMVLQVFAVDVEUAZAUBUCZMVGHNOPZVFVHBCZDVHEFZVLVJQVFVOVNVSMVQHVGUDRZVFV
    LVTVRVFDHEFZVLVTSVFVSWBVLGVTUEZWADBCVOVSWCUFMDHVHUJUGUHUIUKZVHULUMPVFVGVHEF
    ZVKVFVGVGHKJZVHEVFWBVGWFEFZSVFVOVNWBWGQMVQHVGNRUNVFVGTCHTCWFVHUOVFVGVQUPUQV
    GHUROUSVFVDVEVSVTWEVKQVPVDVEUTWAWDAVHVAVBPVC $.

  $( 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 syl simpll 0red
    co clt recnd simprr ltp1 lelttrd redivclapd simpl divge0 syl12anc jca ltled
    gt0ap0d lemul2a syl31anc divcanap1d breqtrd ) ACDZEAFGZHZBCDZEBFGZHZHZABIJR
    ZKRZBLRZVCVBLRZAFVAURVBCDZVCCDZEVCFGZHBVBFGVDVEFGUQURUSMZVAURVFVIBNOZVAVGVH
    VAAVBUOUPUTPZVJVAVBVJVAEBVBVAQVIVJUQURUSUAVAURBVBSGVIBUBOZUCZUJZUDVAUQVFEVB
    SGVHUQUTUEVJVMAVBUFUGUHVABVBVIVJVLUIBVBVCUKULVAAVBVAAVKTVAVBVJTVNUMUN $.

  ${
    $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 w3a wceq ltnr 3ad2ant1 breq2 imbi12d
      wn rspcva 3adant2 mtod simp1 0red lenltd mpbird simp2 letri3d mpbir2and )
      BCDZEBFGZEAHZIGZBUKIGZJZACKZLZBEMBEFGZUJUPUQEBIGZRUPURBBIGZUIUJUSRUOBNOUI
      UOURUSJZUJUNUTABCUKBMULURUMUSUKBEIPUKBBIPQSTUAUPBEUIUJUOUBZUPUCZUDUEUIUJU
      OUFUPBEVAVBUGUH $.
  $}

  ${
    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 ) $=
        ( cr wcel cc0 clt wbr c1 cdiv co recgt0 mp2an ) ADEFAGHFIAJKGHBCALM $.
    $}

    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 $.

    ${
      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 $.
    $}
  $}

  $( Multiplying a nonnegative number by a nonpositive number yields a
     nonpositive number.  (Contributed by Jim Kingdon, 28-Oct-2021.) $)
  mulle0r $p |- ( ( ( A e. RR /\ B e. RR ) /\ ( A <_ 0 /\ 0 <_ B ) ) ->
      ( A x. B ) <_ 0 ) $=
    ( cr wcel wa cc0 cle cmul co simpll recnd simplr mulcomd 0red simprr simprl
    wbr lemul2ad mul01d breqtrd eqbrtrd ) ACDZBCDZEZAFGQZFBGQZEZEZABHIBAHIZFGUH
    ABUHAUBUCUGJZKUHBUBUCUGLZKZMUHUIBFHIFGUHAFBUJUHNUKUDUEUFOUDUEUFPRUHBULSTUA
    $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Suprema
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $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 wral wrex wcel crio wreu lbreu nfcv nfriota1 nfbr nfralxy
      wbr wa eqid wceq nfra1 nfeq2 breq1 ralbid riotaprop syl simprd breq2 rspc
      nfriota mpan9 3impa ) DEFZAGZBGZHSZBDIZADJZCDKZUSADLZCHSZUOUTTZVBUQHSZBDI
      ZVAVCVDVBDKZVFVDUSADMVGVFTABDNUSVFADVBVEABDADOAVBUQHUSADPAHOAUQOQRVBUAUPV
      BUBURVEBDBUPVBUSBADURBDUCBDOULZUDUPVBUQHUEUFUGUHUIVEVCBCDBVBCHVHBHOBCOQUQ
      CVBHUJUKUMUN $.
  $}

  ${
    $d S f g 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 vg vf cr wss cv cle wbr wral wrex wa crio clt wcel weq wn adantr mpd
      wb lttri3 adantl lbcl wi ssel ssel2 adantlr lble 3expa lensymd infminti )
      CGHZAIBIJKBCLZACMZNZDEFGCUOACOZPFIZGQEIZGQNFERUSUTPKSUTUSPKSNUBUQUSUTUCUD
      UQURCQZURGQZABCUEZUNVAVBUFUPCGURUGTUAZVCUQDIZCQZNURVEUQVBVFVDTUNVFVEGQUPC
      GVEUHUIUNUPVFURVEJKABVECUJUKULUM $.

    $( 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 A x y z $.  $d f g ph x $.
    suprubex.ex $e |- ( ph -> E. x e. RR ( A. y e. A -. x < y
      /\ A. y e. RR ( y < x -> E. z e. A y < z ) ) ) $.
    suprubex.ss $e |- ( ph -> A C_ RR ) $.

    ${
      suprubex.b $e |- ( ph -> B e. A ) $.
      $( A member of a nonempty bounded set of reals is less than or equal to
         the set's upper bound.  (Contributed by Jim Kingdon, 18-Jan-2022.) $)
      suprubex $p |- ( ph -> B <_ sup ( A , RR , < ) ) $=
        ( vg vf cr clt csup sseldd cv wcel wa wbr wn weq lttri3 supclti supubti
        wb adantl mpd nltled ) AFELMNZAELFHIOABCDJKLEMKPZLQJPZLQRKJUAUJUKMSTUKU
        JMSTRUEAUJUKUBUFZGUCAFEQUIFMSTIABCDJKLEFMULGUDUGUH $.
    $}

    ${
      $d A w x y $.  $d A w z $.  $d B w z $.
      suprlubex.b $e |- ( ph -> B e. RR ) $.
      $( The supremum of a nonempty bounded set of reals is the least upper
         bound.  (Contributed by Jim Kingdon, 19-Jan-2022.) $)
      suprlubex $p |- ( ph
          -> ( B < sup ( A , RR , < ) <-> E. z e. A B < z ) ) $=
        ( vg vf cr wcel clt csup wbr cv wb wa wn wrex weq lttri3 adantl wor a1i
        ltso suplub2ti mpdan ) AFLMFELNONPFDQNPDEUARIABCDJKLEFNKQZLMJQZLMSKJUBU
        JUKNPTUKUJNPTSRAUJUKUCUDGLNUEAUGUFHUHUI $.

      $( An upper bound is not less than the supremum of a nonempty bounded set
         of reals.  (Contributed by Jim Kingdon, 19-Jan-2022.) $)
      suprnubex $p |- ( ph
          -> ( -. B < sup ( A , RR , < ) <-> A. z e. A -. B < z ) ) $=
        ( cr clt csup wbr wn cv wrex wral suprlubex notbid ralnex syl6bbr ) AFE
        JKLKMZNFDOKMZDEPZNUCNDEQAUBUDABCDEFGHIRSUCDETUA $.

      $d A w x y z $.  $d f g ph x $.  $d ph w x $.
      $( 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.) $)
      suprleubex $p |- ( ph
          -> ( sup ( A , RR , < ) <_ B <-> A. z e. A z <_ B ) ) $=
        ( vw vg vf cr clt cle wbr cv wral wn wcel csup wa weq wb lttri3 supclti
        adantl lenltd bitrd breq2 notbid cbvralv syl6bbr sselda adantr ralbidva
        suprnubex bitr4d breq1 syl6bb ) AEMNUAZFOPZJQZFOPZJERZDQZFOPZDERAVBFVCN
        PZSZJERZVEAVBFVFNPZSZDERZVJAVBFVANPSVMAVAFABCDKLMENLQZMTKQZMTUBLKUCVNVO
        NPSVOVNNPSUBUDAVNVOUEUGGUFIUHABCDEFGHIUQUIVIVLJDEJDUCVHVKVCVFFNUJUKULUM
        AVDVIJEAVCETZUBVCFAEMVCHUNAFMTVPIUOUHUPURVDVGJDEVCVFFOUSULUT $.
    $}
  $}

  ${
    $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 wb cneg wa wtru wcel simpr adantl negeq
      cc wiso wf1o wral cmpt renegcld recn negcon2 syl2an f1ocnv2d simpli simpl
      cfv trud recnd negcld brcnvg syl2anc fvmptd breq12d ltneg 3bitr4rd rgen2a
      a1i df-isom mpbir2an cbvmptv simpri 3eqtr4i pm3.2i ) FFGGHZBUAZBHZBIVKFFB
      UBZDJZEJZGKZVNBULZVOBULZVJKZLZEFUCDFUCVMVLEFVOMZUDZIZVMWCNOAEFFAJZMZWABCO
      WDFPZNWDOWFQUEOVOFPZNVOOWGQUEWFWGNWDWAIVOWEILZOWFWDTPVOTPZWHWGWDUFVOUFZWD
      VOUGUHRUIUMZUJVTDEFVNFPZWGNZVNMZWAVJKZWAWNGKZVSVPWMWNTPWATPWOWPLWMVNWMVNW
      LWGUKZUNUOZWMVOWGWIWLWJRUOZWNWATTGUPUQWMVQWNVRWAVJWMAVNWEWNFBTBAFWEUDZIWM
      CVCZWDVNIWEWNIWMWDVNSRWQWRURWMAVOWEWAFBTXAWDVOIWEWAIWMWDVOSRWLWGQWSURUSVN
      VOUTVAVBDEFFGVJBVDVEWBWTVLBEAFWAWEVOWDSVFVMWCWKVGCVHVI $.
  $}

  ${
    $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 $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Imaginary and complex number properties
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( The real representation of complex numbers is apart from zero iff one of
     its terms is apart from zero.  (Contributed by Jim Kingdon,
     5-Mar-2020.) $)
  crap0 $p |- ( ( A e. RR /\ B e. RR ) ->
      ( ( A # 0 \/ B # 0 ) <-> ( A + ( _i x. B ) ) # 0 ) ) $=
    ( ci cmul co caddc cc0 cap wbr cr wcel wa ax-icn mul01i oveq2i eqtri breq2i
    wo 00id 0re wb apreim mpanr12 syl5rbbr ) ACBDEFEZGHIUEGCGDEZFEZHIZAJKBJKLZA
    GHIBGHIRZUGGUEHUGGGFEGUFGGFCMNOSPQUIGJKZUKUHUJUATTABGGUBUCUD $.

  ${
    $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
      $.
  $}

$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  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 $.

  ${
    $d x y $.
    $( Definition of the set of positive integers.  For naming consistency with
       the Metamath Proof Explorer usages should refer to ~ dfnn2 instead.
       (Contributed by Jeff Hankins, 12-Sep-2013.)  (Revised by Mario Carneiro,
       3-May-2014.)  (New usage is discouraged.) $)
    df-inn $a |- NN = |^| { x | ( 1 e. x /\ A. y e. x ( y + 1 ) e. x ) } $.

    $( Definition of the set of positive integers.  Another name for ~ df-inn .
       (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 ) } $=
      ( df-inn ) ABC $.
  $}

  ${
    $d x y 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 ) $=
      ( vy c1 wcel cv caddc co wral wa cn cr cin wss elin ax-mp syl cvv eleq2
      wi 1re biimpri mpan2 inss1 ssralv inss2 1red readdcld simplbi2com ralimia
      sseli reex inex2 wceq raleqbi1dv anbi12d elabg cint dfnn2 intss1 syl5eqss
      cab syl6bir syl2an syl6ss ) DBEZAFZDGHZBEZABIZJKBLMZBVFDVKEZVHVKEZAVKIZKV
      KNZVJVFDLEZVLUAVLVFVPJDBLOUBUCVJVIAVKIZVNVKBNVJVQTBLUDZVIAVKBUEPVIVMAVKVG
      VKEZVHLEZVIVMTVSVGDVKLVGBLUFUKVSUGUHVMVIVTVHBLOUIQUJQVKREZVLVNJZVOTLBULUM
      WAWBVKDCFZEZVHWCEZAWCIZJZCVBZEZVOWGWBCVKRWCVKUNWDVLWFVNWCVKDSWEVMAWCVKWCV
      KVHSUOUPUQWIKWHURVKCAUSVKWHUTVAVCPVDVRVE $.
  $}

  $( 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.) $)
    1nn $p |- 1 e. NN $=
      ( vz vx vy c1 cn wcel cv caddc co wral wa cab cint dfnn2 eleq2i cr wb 1re
      elintg eleq2 ax-mp bitri vex weq raleqbi1dv anbi12d elab simplbi mprgbir
      ) DEFZDAGZFZADBGZFZCGDHIZUMFZCUMJZKZBLZUJDUSMZFZULAUSJZEUTDBCNODPFVAVBQRA
      DUSPSUAUBUKUSFULUOUKFZCUKJZURULVDKBUKAUCBAUDUNULUQVDUMUKDTUPVCCUMUKUMUKUO
      TUEUFUGUHUI $.

    $( 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 ) $=
      ( vz vx vy cn wcel c1 caddc co cv wral wa eleq2i elintg syl5bb wceq eleq2
      cab syl cr cint dfnn2 ibi vex raleqbi1dv anbi12d elab oveq1 eleq1d rspcva
      simprbi sylan2 expcom ralimia wb nnre 1red readdcld mpbird ) AEFZAGHIZEFZ
      VABJZFZBGCJZFZDJZGHIZVEFZDVEKZLZCRZKZUTAVCFZBVLKZVMUTVOUTAVLUAZFUTVOEVPAC
      DUBZMBAVLENOUCVNVDBVLVNVCVLFZVDVRVNVHVCFZDVCKZVDVRGVCFZVTVKWAVTLCVCBUDVEV
      CPVFWAVJVTVEVCGQVIVSDVEVCVEVCVHQUEUFUGUKVSVDDAVCVGAPVHVAVCVGAGHUHUIUJULUM
      UNSUTVATFZVBVMUOUTAGAUPUTUQURVBVAVPFWBVMEVPVAVQMBVAVLTNOSUS $.
  $}

  ${
    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.  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 /allow".
       (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 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 wb caddc cmin 1ex sbcie mpbir 1nn mpbiri sbcieg
      wi eleq1 syl dfsbcq bitr3d cv elisset wa pm5.32ri adantr cr nnre peano2re
      a1i 3syl oveq1 sbceq1d adantl mpbid sylbir exlimddv cc nncn npcan sylancl
      ax-1cn bitrd syl5ib nn1m1nn mpjaod ) GMNZGOPZDGOUAQZMNZVSDUHVRVSDAEORZWBB
      KABEOUBHUCUDVSAEGRZDWBVSVRWCDSVSVROMNUEGOMUIUFADEGMJUGZUJAEGOUKULUFVAWAAE
      VTOTQZRZVRDWAFUMZVTPZWFFFVTMUNWAWHUOWGMNZWHUOZWFWHWIWAWGVTMUIUPWJCWFWICWH
      LUQWJAEWGOTQZRZCWFWIWLCSZWHWIWGURNWKURNWMWGUSWGUTACEWKURIUGVBUQWHWLWFSWIW
      HAEWKWEWGVTOTVCVDVEULVFVGVHVRWFWCDVRAEWEGVRGVINOVINWEGPGVJVMGOVKVLVDWDVNV
      OGVPVQ $.
  $}

  ${
    $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 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 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 $.

  $( 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 $.

  $( A positive integer is apart from zero.  (Contributed by Jim Kingdon,
     8-Mar-2020.) $)
  nnap0 $p |- ( A e. NN -> A # 0 ) $=
    ( cn wcel nnre nngt0 gt0ap0d ) ABCAADAEF $.

  ${
    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 $.
  $}

  ${
    $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 caddc co cle wbr cc0 cr nnre adantl nngt0 ltled adantr mpbid
      clt breq2 cv wrex nnaddcl 0red addge01d addge02d anbi12d rspcev syl12anc
      wceq ) BDEZCDEZFZBCGHZDEBUNIJZCUNIJZBAUAZIJZCUQIJZFZADUBBCUCUMKCIJUOUMKCU
      MUDZULCLEUKCMNZULKCSJUKCONPUMBCUKBLEULBMQZVBUERUMKBIJUPUMKBVAVCUKKBSJULBO
      QPUMCBVBVCUFRUTUOUPFAUNDUQUNUJURUOUSUPUQUNBITUQUNCITUGUHUI $.
  $}

  ${
    $d x y A $.
    $( A positive integer is either one or greater than one.  This is for
       ` NN ` ; ~ 0elnn is a similar theorem for ` _om ` (the natural numbers
       as ordinals).  (Contributed by Jim Kingdon, 7-Mar-2020.) $)
    nn1gt1 $p |- ( A e. NN -> ( A = 1 \/ 1 < A ) ) $=
      ( vx vy cv c1 wceq clt wbr wo caddc co eqeq1 breq2 orbi12d eqid orci wcel
      cn cc0 cr nngt0 wb nnre 1re ltaddpos2 sylancl mpbid olcd a1d nnind ) BDZE
      FZEUKGHZIEEFZEEGHZICDZEFZEUPGHZIZUPEJKZEFZEUTGHZIZAEFZEAGHZIBCAULULUNUMUO
      UKEELUKEEGMNUKUPFULUQUMURUKUPELUKUPEGMNUKUTFULVAUMVBUKUTELUKUTEGMNUKAFULV
      DUMVEUKAELUKAEGMNUNUOEOPUPRQZVCUSVFVBVAVFSUPGHZVBUPUAVFUPTQETQVGVBUBUPUCU
      DUPEUEUFUGUHUIUJ $.

  $}

  $( 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 c1 clt wbr wne cr 1re ltne mpan wceq wn nn1gt1 ord syl5bi impbid2
    df-ne ) ABCZDAEFZADGZDHCTUAIDAJKUAADLZMSTADRSUBTANOPQ $.

  $( 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 cap wbr wa cdiv co nnre nnap0 jca redivclap 3expb sylan2 )
    BCDZAEDZBEDZBFGHZIABJKEDZRTUABLBMNSTUAUBABOPQ $.

  $( 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 cap wbr nnap0 divmulapd syl5bb rexbidva syl5rbb ) CBDEZFGA
      HZUHIZAFJBFGZCFGZQZBUIKECIZAFJAUHFLUMUJUNAFUJUHUIIUMUIFGZQZUNUIUHMUPCBUIU
      LCRGUKUOCSNUKBRGULUOBSOUOUIRGUMUISPUKBTUAUBULUOBUCOUDUEUFUG $.
  $}

  $( 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 cc0 cap wbr wceq nncn 3ad2ant2 nnap0 jca
    c1 nnmulcl simp3 3ad2ant1 divmul24ap syl22anc dividapd oveq1d divclap 3expb
    sylan2 ancoms mulid2d 3adant2 3eqtrd eleq1d syl5ib imp ) ADEZBDEZCFEZGZBAHI
    ZDECBHIZDEJZCAHIZDEZVDVBVCKIZDEVAVFVBVCUAVAVGVEDVAVGBBHIZVEKIZTVEKIZVEVABFE
    ZUTAFEZALMNZJZVKBLMNZJZVGVIOUSURVKUTBPZQURUSUTUBURUSVNUTURVLVMAPARSZUCUSURV
    PUTUSVKVOVQBRZSQBCABUDUEUSURVIVJOUTUSVHTVEKUSBVQVSUFUGQURUTVJVEOUSURUTJVEUT
    URVEFEZURUTVNVTVRUTVLVMVTCAUHUIUJUKULUMUNUOUPUQ $.

  ${
    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 $.

    $( A positive integer is apart from zero.  (Contributed by Jim Kingdon,
       25-Aug-2021.) $)
    nnap0d $p |- ( ph -> A # 0 ) $=
      ( cn wcel cc0 cap wbr nnap0 syl ) ABDEBFGHCBIJ $.

    $( 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 ).

  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 ` .

  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 ) $.

  $( ` 0 =/= 1 ` (common case).  See aso ~ 1ap0 .  (Contributed by David A.
     Wheeler, 8-Dec-2018.) $)
  0ne1 $p |- 0 =/= 1 $=
    ( cc0 c1 0re 0lt1 ltneii ) ABCDE $.

  $( ` 1 =/= 0 ` .  See aso ~ 1ap0 .  (Contributed by Jim Kingdon,
     9-Mar-2020.) $)
  1ne0 $p |- 1 =/= 0 $=
    ( cc0 c1 0ne1 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 $.

  $( 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 2 is apart from zero.  (Contributed by Jim Kingdon,
     9-Mar-2020.) $)
  2ap0 $p |- 2 # 0 $=
    ( c2 2re 2pos gt0ap0ii ) 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 3 is apart from zero.  (Contributed by Jim Kingdon,
     10-Oct-2021.) $)
  3ap0 $p |- 3 # 0 $=
    ( c3 3re 3pos gt0ap0ii ) 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 4 is apart from zero.  (Contributed by Jim Kingdon,
     10-Oct-2021.) $)
  4ap0 $p |- 4 # 0 $=
    ( c4 4re 4pos gt0ap0ii ) 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 $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Some properties of specific numbers
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  This includes adding two pairs of values 1..10
  (where the right is less than the left)
  and where the left is less than the right for the values 1..10.

$)

  $( -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 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 $.

  $( -1 is apart from zero.  (Contributed by Jim Kingdon, 9-Jun-2020.) $)
  neg1ap0 $p |- -u 1 # 0 $=
    ( c1 cc0 cap wbr cneg 1ap0 cc wcel wb ax-1cn negap0 ax-mp mpbi ) ABCDZAEBCD
    ZFAGHNOIJAKLM $.

  $( ` -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.) $)
  3m1e2 $p |- ( 3 - 1 ) = 2 $=
    ( c3 c1 c2 3cn ax-1cn 2cn caddc co addcomi df-3 eqtr4i subaddrii ) ABCDEFBC
    GHCBGHABCEFIJKL $.

  $( Two plus two equals four.  For more information, see "2+2=4 Trivia" on the
     Metamath Proof Explorer Home Page:
     ~ http://us.metamath.org/mpeuni/mmset.html#trivia .  (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 $.

  ${
    2times.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 $.
  $}

  $( 2 divided by 2 is 1 (common case).  (Contributed by David A. Wheeler,
     8-Dec-2018.) $)
  2div2e1 $p |- ( 2 / 2 ) = 1 $=
    ( c2 2cn 2ap0 dividapi ) 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 $.

  $( 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 $.

  $( 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 $.

  $( 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 $.

  $( 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 $.

  $( 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 2ap0 divmulapi mpbir ) ABCDBEBBFDAE
    GABBHIIJKL $.

  $( 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 $.

  $( 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 $.

  $( 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 2ap0 rerecclapi ) ABCD $.

  $( One-half is complex.  (Contributed by David A. Wheeler, 8-Dec-2018.) $)
  halfcn $p |- ( 1 / 2 ) e. CC $=
    ( c1 c2 cdiv co halfre recni ) ABCDEF $.

  $( 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 cap wbr wceq 2cn ax-1cn pm3.2i divsubdirap
    wa 2ap0 mp3an 2m1e1 oveq1i 2div2e1 3eqtr3ri ) ABCDZAEDZAAEDZBAEDZCDZUFBUFCD
    AFGZBFGUHAHIJZPUDUGKLMUHUILQNABAORUCBAESTUEBUFCUATUB $.

  $( 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 gt0ap0ii c2 eqtr3i eqtri
    3cn 2cn cc wcel 8pos divmuldivapi mulcomi mul32i 4t2e8 oveq1i mulassi 3t2e6
    3re 3pos oveq2i oveq12i cc0 cap wbr wceq 6re 6pos 4re 4pos divcanap5 mp3an1
    wa mp4an ) ABCDEFCDGDZEAGDZEHGDZCDZAHCDZVEAEGDZBFGDZCDVHABEFIBJKLQBJUAMFUIU
    JMUBVJVFVKVGCAEILUCVKEFNGDZGDZVGEFGDNGDZVKVMENGDZFGDVNVKENFLRQUDVOBFGUEUFOE
    FNLQRUGOVLHEGUHUKPULPHSTZHUMUNUOZESTZEUMUNUOZVHVIUPZHUQKHUQURMLEUSUTMASTVPV
    QVCVRVSVCVTIAHEVAVBVDP $.

  $( 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 c3 wceq caddc cmul 3cn ax-1cn 2cn 2ap0 divmuldivapi
    oveq1i mulid1i 3t2e6 oveq12i 3eqtr3i 3re 3pos gt0ap0ii halfcn mulid2i eqtri
    dividapi cc wcel cc0 cap wbr wa 6cn 6re 6pos pm3.2i divsubdirap mp3an 3m1e2
    oveq2i recclapi 3eqtr2i c4 divdirapi df-4 3eqtr4ri 2t2e4 divclapi ) ABCDZAE
    CDZFDZAGCDZHVJVKIDZBGCDZHVLGECDZVKFDZGAFDZECDZVMVJVPVKFGGCDZVJJDZGAJDZGBJDZ
    CDVJVPGGABKKLMGUAUBUCZNOWAAVJJDVJVTAVJJGKWDUGPVJUDUEUFWBGWCECGKQRSTZPGUHUIA
    UHUIEUHUIZEUJUKULZUMVSVQHKLWFWGUNEUOUPUCZUQGAEURUSVSBECDABJDZWCCDZVMVRBECUT
    PWIBWCECBMUERSVMBBCDZJDVMAJDWJVMWKAVMJBMNUGZVAAGBBLKMMWDNOVMGKWDVBQTVCVCVNV
    DECDZBBJDZWCCDZVOGAIDZECDVPVKIDWMVNGAEKLUNWHVEVDWPECVFPVJVPVKIWEPVGWNVDWCEC
    VHRSVOWKJDVOAJDWOVOWKAVOJWLVABGBBMKMMWDNOVOBGMKWDVIQTVCUQ $.

  $( 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 $.

  $( The imaginary unit ` _i ` is apart from zero.  (Contributed by Jim
     Kingdon, 9-Mar-2020.) $)
  iap0 $p |- _i # 0 $=
    ( cc0 ci c1 cmul co caddc cap wbr wo 1ap0 olci cr wcel wb 0re apreim ax-icn
    1re oveq2i eqtri mp4an mpbir mulid1i addid2i it0e0 00id 3brtr3i ) ABCDEZFEZ
    ABADEZFEZBAGUIUKGHZAAGHZCAGHZIZUNUMJKALMZCLMUPUPULUONOROOACAAPUAUBUIABFEBUH
    BAFBQUCSBQUDTUKAAFEAUJAAFUESUFTUG $.

  $( ` 2 x. _i ` is apart from zero.  (Contributed by Jim Kingdon,
     9-Mar-2020.) $)
  2muliap0 $p |- ( 2 x. _i ) # 0 $=
    ( c2 ci 2cn ax-icn 2ap0 iap0 mulap0i ) ABCDEFG $.

  $( ` ( 2 x. _i ) =/= 0 ` .  See also ~ 2muliap0 .  (Contributed by David A.
     Wheeler, 8-Dec-2018.) $)
  2muline0 $p |- ( 2 x. _i ) =/= 0 $=
    ( c2 ci cmul co cc0 cap wbr wne 2muliap0 cc wcel wi 2mulicn 0cn mp2an ax-mp
    apne ) ABCDZEFGZREHZIRJKEJKSTLMNREQOP $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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 cap wbr cdiv co 2cn 2ap0 divclap mp3an23 ) ABCDBCDEFGADHIB
    CJKADLM $.

  $( Real closure of half.  (Contributed by NM, 1-Jan-2006.) $)
  rehalfcl $p |- ( A e. RR -> ( A / 2 ) e. RR ) $=
    ( cr wcel c2 cc0 cap wbr cdiv co 2re 2ap0 redivclap mp3an23 ) ABCDBCDEFGADH
    IBCJKADLM $.

  $( 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 cap wbr cdiv co wceq wb 2cn 2ap0 diveqap0 mp3an23 ) ABCDBC
    DEFGADHIEJAEJKLMADNO $.

  $( 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 2times oveq1d cc0 cap wbr wceq 2cn 2ap0 divcanap3
    caddc mp3an23 wa pm3.2i divdirap mp3an3 anidms 3eqtr3rd ) ABCZDAEFZDGFZAAQF
    ZDGFZAADGFZUJQFZUEUFUHDGAHIUEDBCZDJKLZUGAMNOADPRUEUIUKMZUEUEULUMSUNULUMNOTA
    ADUAUBUCUD $.

  $( 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 cmul 2times adantr eqtr4d oveq1d 2cn 2ap0
    co c2 mp3an3 syl2anc ppncan 3anidm13 addcl subcl cc0 cap divdirap divcanap3
    wbr pm3.2i mp3an23 3eqtr3d pnncan 3anidm23 adantl divsubdirap jca ) ACDZBCD
    ZEZABFQZRGQZABHQZRGQZFQZAIVBVDHQZBIUTVAVCFQZRGQZRAJQZRGQZVEAUTVGVIRGUTVGAAF
    QZVIURUSVGVKIABAUAUBURVIVKIUSAKLMNUTVACDZVCCDZVHVEIZABUCZABUDZVLVMRCDZRUEUF
    UIZEZVNVQVROPUJZVAVCRUGSTURVJAIZUSURVQVRWAOPARUHUKLULUTVAVCHQZRGQZRBJQZRGQZ
    VFBUTWBWDRGUTWBBBFQZWDURUSWBWFIABBUMUNUSWDWFIURBKUOMNUTVLVMWCVFIZVOVPVLVMVS
    WGVTVAVCRUPSTUSWEBIZURUSVQVRWHOPBRUHUKUOULUQ $.

  $( 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 ex halfpos biimpd jcad wceq breq2 breq1 rspcev syl6an imanim syl
      anbi12d nrex ) CADZEFZCBDZEFZUPUNEFZGZBHIZJGZAHUNHKZUOUTLVAJVBUNMNOZHKUOC
      VCEFZVCUNEFZGZUTUNPVBUOVDVEVBUOVDVBUOGMHKCMEFVDSTUNMQRUAVBUOVEUNUBUCUDUSV
      FBVCHUPVCUEUQVDURVEUPVCCEUFUPVCUNEUGULUHUIUOUTUJUKUM $.
  $}

  $( 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 $.

  ${
    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 $.
  $}

  $( 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 cap
    c2 wbr a1i cmul divcanap1d 2ap0 1cnd subdird mulid2d oveq12d wceq oveq2d id
    2m1e1 subsub3d 3eqtr2rd 3eqtrd mulcanap2ad ) ABCZADEFZPGFZDHFZADHFZPGFZPUNU
    PBCUQBCUNUOAIZJZUPKLUNURAKZJUNMZPNOQUNUARZUNUQPSFUPPSFZDPSFZHFUOPHFZUSPSFZU
    NUPDPVAUNUBZVCUCUNVEUOVFPHUNUOPUTVCVDTUNPVCUDUEUNVHURAPDHFZHFVGUNURPVBVCVDT
    UNVJDAHVJDUFUNUIRUGUNAPDUNUHVCVIUJUKULUM $.

  $( 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 mpbird clt 4re 4ap0 redivclapd peano2re peano2rem
    cap syl rehalfcld 4pos pm3.2i recnd 1cnd divcanap1d mulid2i joinlmuladdmuld
    lemul1 oveq12d 2t2e4 eqcomi oveq2d mulass eqcomd 2ap0 oveq1d subdird 3eqtrd
    w3a breq12d readdcld 2re remulcld leaddsub bicomd 3bitrd ) ABCZDAEFZUAZAGUB
    HZIJHZAIKHZLUBHZEFZAGJHZLJHZALMHZEFZWOXDADJHZXCEFZWOXEAAJHZXCEWMWNXEXGEFWMD
    AADBCWMUCNWMUDZXHUEUFWMXCXGOWNWMAAUMZUGPUHWMXDXFQWNWMXBXEXCEWMXBAGLJHZJHXEW
    MAGLXIGSCWMUINZLSCZWMUJNZUKXJDAJULUNUOUPPUQWMWTXDQWNWMWTWQGMHZWSGMHZEFZXAXC
    LKHZEFZXDWMWQBCZWSBCGBCZTGURFZUAZWTXPQWMWPBCXSWMAGXHXTWMUSNZGTVDFWMUTNZVAZW
    PVBVEWMWRAVCZVFZYBWMXTYAUSVGVHNWQWSGVNRWMXNXAXOXQEWMWPGIXAWMWPYEVIXKWMVJZWM
    WPGMHAIGMHZGJWMAGXIXKYDVKYIGOWMGUIVLNVOVMWMXOWSLLMHZMHZWSLMHZLMHZXQWMGYJWSM
    GYJOWMYJGVPVQNVRWMWSSCZXLXLYKYMOWMWSYGVIXMXMYNXLXLWEYMYKWSLLVSVTRWMYMWRLMHX
    CILMHZKHXQWMYLWRLMWMWRLWMWRYFVIXMLTVDFWMWANVKWBWMAILXIYHXMWCWMYOLXCKYOLOWML
    UJVLNVRWDWDWFWMXABCZLBCZXCBCZXRXDQWMAGXHYCWGYQWMWHNZWMALXHYSWIYPYQYRWEXDXRX
    ALXCWJWKRWLPUQ $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The Archimedean property
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d n x 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 ) $=
      ( vx vy cr wcel cv clt wbr cn wrex cltrr c1 caddc co wral wa cint ax-arch
      cab dfnn2 rexeqi sylibr wb nnre ltxrlt sylan2 rexbidva mpbird ) AEFZABGZH
      IZBJKAUKLIZBJKZUJUMBMCGZFDGMNOUOFDUOPQCTRZKUNCDABSUMBJUPCDUAUBUCUJULUMBJU
      KJFUJUKEFULUMUDUKUEAUKUFUGUHUI $.
  $}

  ${
    $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 wrex simpl gt0ap0 rerecclapd wb
      jca adantr arch syl recgt0 nnre nngt0 ltrec syl2an recrecapd breq2d bitrd
      cc recn rexbidva mpbid ) ACDZEAFGZHZIAJKZBLZFGZBMNZIUSJKZAFGZBMNUQURCDZVA
      UQAUOUPOAPZQZURBUAUBUQUTVCBMUQUSMDZHUTVBIURJKZFGZVCUQVDEURFGZHUSCDZEUSFGZ
      HUTVIRVGUQVDVJVFAUCSVGVKVLUSUDUSUESURUSUFUGUQVIVCRVGUQVHAVBFUQAUOAUKDUPAU
      LTVEUHUITUJUMUN $.
  $}

  ${
    $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 mpd r19.35-1 rexlimiv
      syl ) BDEZBAFZGHZIZCJKZBCFZGHZCJLZADUMDEZUOURMZCJLZUPUSMUTUMUQNHZCJLVBUMC
      OUTVCVACJUQJEUTUQDEZVCVAMUQPUTVDIUOVCURUTVDULUNVCURMZULUTVDUNVEMULUTVDUNV
      CURULUTVDTUNVCIBUQNHZURBUMUQQULVDVFURMUTBUQRSUAUBUCUDUEUFUGUHUOURCJUIUKUJ
      $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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 c0ex snex unex eqeltri ) ABCDZEFGBMHCIJ
    KL $.

  $( 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 $.

  ${
    nnnn0.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 $.

  ${
    nn0re.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 $.

  $( 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 cn cc0 wceq wo cle wbr elnn0 cr clt nnre nngt0 wi ltle mpan sylc
    0re 0le0 breq2 mpbiri jaoi sylbi ) ABCADCZAEFZGEAHIZAJUEUGUFUEAKCZEALIZUGAM
    ANEKCUHUIUGOSEAPQRUFUGEEHITAEEHUAUBUCUD $.

  $( 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 $.

  ${
    nn0ge0.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 0re cneg df-neg eqcomi eleq1i cle wbr nn0ge0
    wn cr nnre le0neg1d clt nngt0 0red lenltd pm2.21 syl6bi mpid sylbird syl5bi
    wi syl5 mt2i df-nel sylibr ) ABCZDAEFZGCZQUPGHUOUQDRCZIUQAJZGCZUOURQZUPUSGU
    SUPAKLMUTDUSNOZUOVAUSPUOVBADNOZVAUOAASZTUOVCDAUAOZVAAUBUOVCVEQVEVAUJUOADVDU
    OUCUDVEVAUEUFUGUHUKUIULUPGUMUN $.

  ${
    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 $.

  ${
    nn0addcl.1 $e |- M e. NN0 $.
    nn0addcl.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.  (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 $.

  ${
    nn0addge1.1 $e |- A e. RR $.
    nn0addge1.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 $.
  $}

  ${
    nn0le2x.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 $.
  $}

  ${
    nn0lele2x.1 $e |- M e. NN0 $.
    nn0lele2x.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.) $)
  nn0supp $p |- ( F : I --> NN0 ->
    ( `' F " ( _V \ { 0 } ) ) = ( `' F " NN ) ) $=
    ( cn0 wf ccnv cn cima cvv cc0 csn cdif dfn2 invdif eqtr4i imaeq2i wfun wceq
    cin ffun inpreima syl wss cdm cnvimass fimacnv syl5sseq sseqin2 sylib eqtrd
    fdm eqtr4d syl5req ) BCADZAEZFGUNCHIJZKZRZGZUNUPGZFUQUNFCUOKUQLCUOMNOUMURUN
    CGZUSRZUSUMAPURVAQBCASCUPATUAUMUSUTUBVAUSQUMAUCZUSUTAUPUDUMVBBUTBCAUJBCAUEU
    KUFUSUTUGUHUIUL $.

  ${
    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 $.

  $( 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 ) $=
    ( cn0 wcel c2 cle wbr wa c1 cmin co cn wo wceq simpl w3a clt 1red 2re 1lt2
    cr a1i nn0re 3jca adantr simpr jctil ltleletr elnnnn0c sylanbrc nn1m1nn syl
    sylc wi wn 1re lenlti biimpi breq2 mtbiri pm2.21d com12 adantl orim1d oridm
    mt2 mpd sylib ) ABCZDAEFZGZAHIJKCZVKLZVKVJAHMZVKLZVLVJAKCZVNVJVHHAEFZVOVHVI
    NVJHTCZDTCZATCZOZHDPFZVIGVPVHVTVIVHVQVRVSVHQVRVHRUAAUBUCUDVJVIWAVHVIUESUFHD
    AUGULAUHUIAUJUKVJVMVKVKVIVMVKUMVHVMVIVKVMVIVKVMVIDHEFZWBWASWBWAUNDHRUOUPUQV
    EAHDEURUSUTVAVBVCVFVKVDVG $.

  $( 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 nn0re adantr simpr nndivred ) ACDZBEDZFABLAGDMAHILMJK
    $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Extended nonnegative integers
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  The function values of the hash (set size) function are either nonnegative
  integers or positive infinity.  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 .

$)

  $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 $.

  ${
    zre.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.  (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 cz cc0 cle wbr wa cr wceq cn cneg w3o nn0re elnn0 adantr a1i clt
    wo wi biimpi orcomd 3mix1 3mix2 jaoi syl elz sylanbrc nn0ge0 jca 0nn0 eleq1
    simprbi mpbiri nnnn0 wn simpr 0red lenltd mpbid nngt0 lt0neg1d syl5ibr mtod
    zre pm2.21d 3jaod mpd impbii ) ABCZADCZEAFGZHZVJVKVLVJAICZAEJZAKCZALZKCZMZV
    KANVJVOVPSVSVJVPVOVJVPVOSAOUAUBVOVSVPVOVPVRUCVPVOVRUDUEUFAUGZUHAUIUJVMVSVJV
    KVSVLVKVNVSVTUMPVMVOVJVPVRVOVJTVMVOVJEBCUKAEBULUNQVPVJTVMAUOQVMVRVJVMVRAERG
    ZVMVLWAUPVKVLUQVMEAVMURVKVNVLAVEPZUSUTVRWAVMEVQRGVQVAVMAWBVBVCVDVFVGVHVI $.

  $( 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 $.

  $( 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 $.

  $( 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 $.

  $( Two 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 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 $.
  $}

  $( 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 cr cn0 cneg wo readdcld cn wa a1i cc recnd cc0 neg1cn
    1red eqtrd elznn0nn biimpi biantrurd orbi2d mpbird wi peano2nn0 adantr 1cnd
    renegcld negdid oveq1d negcld addassd ax-1cn 1pneg1e0 oveq2i syl6eq addid1d
    zre addcomli simpr eqeltrd elnn0nn sylanbrc ex orim12d mpd elznn0 ) ABCZADE
    FZGCVKHCZVKIZHCZJZVKBCVJADAUTZVJSKVJAHCZAIZLCZJZVOVJVTVQAGCZVSMZJZVJWCAUAUB
    VJVSWBVQVJWAVSVPUCUDUEVJVQVLVSVNVQVLUFVJAUGNVJVSVNVJVSMZVMOCVMDEFZLCVNWDVMW
    DVKWDADVJWAVSVPUHZWDSKUJPWDWEVRLWDWEVRQEFZVRWDWEVRDIZDEFZEFZWGWDWEVRWHEFZDE
    FWJWDVMWKDEWDADWDAWFPZWDUIZUKULWDVRWHDWDAWLUMZWHOCWDRNWMUNTWIQVREDWHQUORUPV
    AUQURWDVRWNUSTVJVSVBVCVMVDVEVFVGVHVKVIVE $.

  ${
    $d M x y $.  $d N x $.
    $( Lemma for ~ zaddcl .  Special case in which ` N ` is a positive integer.
       (Contributed by Jim Kingdon, 14-Mar-2020.) $)
    zaddcllempos $p |- ( ( M e. ZZ /\ N e. NN ) -> ( M + N ) e. ZZ ) $=
      ( vx vy cn wcel cz caddc co cv wi c1 wceq oveq2 eleq1d imbi2d peano2z zcn
      wa cc adantl nncn adantr 1cnd addassd syl5ib ex a2d nnind impcom ) BEFAGF
      ZABHIZGFZUKACJZHIZGFZKUKALHIZGFZKUKADJZHIZGFZKUKAUSLHIZHIZGFZKUKUMKCDBUNL
      MZUPURUKVEUOUQGUNLAHNOPUNUSMZUPVAUKVFUOUTGUNUSAHNOPUNVBMZUPVDUKVGUOVCGUNV
      BAHNOPUNBMZUPUMUKVHUOULGUNBAHNOPAQUSEFZUKVAVDVIUKVAVDKVAUTLHIZGFVIUKSZVDU
      TQVKVJVCGVKAUSLUKATFVIARUAVIUSTFUKUSUBUCVKUDUEOUFUGUHUIUJ $.
  $}

  $( "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 cneg caddc zcn negsubdid znegcl peano2z syl eqeltrd cc
    1cnd wb subcld znegclb mpbird ) ABCZADEFZBCZUBGZBCZUAUDAGZDHFZBUAADAIZUAPZJ
    UAUFBCUGBCAKUFLMNUAUBOCUCUEQUAADUHUIRUBSMT $.

  ${
    $d M x y $.  $d N x y $.
    $( Lemma for ~ zaddcl .  Special case in which ` -u N ` is a positive
       integer.  (Contributed by Jim Kingdon, 14-Mar-2020.) $)
    zaddcllemneg $p |- ( ( M e. ZZ /\ N e. RR /\ -u N e. NN ) ->
        ( M + N ) e. ZZ ) $=
      ( vx vy cz wcel cneg cn caddc co oveq2d wa cv wi wceq negeq eleq1d imbi2d
      c1 cmin cr w3a simp2 recnd negnegd cc zcn adantr negsubd peano2zm eqeltrd
      1cnd nncn ad2antrr negdi2d ad2antlr negcld addsubassd adantl eqeltrrd a2d
      exp31 nnind impcom 3impa ) AEFZBUAFZBGZHFZUBZAVHGZIJZABIJEVJVKBAIVJBVJBVF
      VGVIUCUDUEKVFVGVIVLEFZVIVFVGLZVMVNACMZGZIJZEFZNVNASGZIJZEFZNVNADMZGZIJZEF
      ZNVNAWBSIJZGZIJZEFZNVNVMNCDVHVOSOZVRWAVNWJVQVTEWJVPVSAIVOSPKQRVOWBOZVRWEV
      NWKVQWDEWKVPWCAIVOWBPKQRVOWFOZVRWIVNWLVQWHEWLVPWGAIVOWFPKQRVOVHOZVRVMVNWM
      VQVLEWMVPVKAIVOVHPKQRVNVTASTJZEVNASVFAUFFZVGAUGUHZVNULUIVFWNEFVGAUJUHUKWB
      HFZVNWEWIWQVNWEWIWQVNLZWELZWHAWCSTJZIJZEWSWGWTAIWSWBSWQWBUFFVNWEWBUMUNZWS
      ULZUOKWSWDSTJZXAEWSAWCSVNWOWQWEWPUPWSWBXBUQXCURWEXDEFWRWDUJUSUTUKVBVAVCVD
      VEUT $.
  $}

  $( 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 ) $=
    ( cz wcel wa cc0 wceq cn cneg w3o caddc co cr elz simprbi adantl zcn adantr
    cc wi addid1d simpl eqeltrd eleq1d syl5ibrcom zaddcllempos zre zaddcllemneg
    oveq2 ex 3expia sylan2 3jaod mpd ) ACDZBCDZEZBFGZBHDZBIHDZJZABKLZCDZUPVAUOU
    PBMDZVABNOPUQURVCUSUTUQVCURAFKLZCDUQVEACUQAUOASDUPAQRUAUOUPUBUCURVBVECBFAKU
    IUDUEUOUSVCTUPUOUSVCABUFUJRUPUOVDUTVCTBUGUOVDUTVCABUHUKULUMUN $.

  $( 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
    $.

  $( Integer trichotomy (with zero).  (Contributed by Jim Kingdon,
     14-Mar-2020.) $)
  ztri3or0 $p |- ( N e. ZZ -> ( N < 0 \/ N = 0 \/ 0 < N ) ) $=
    ( cz wcel cc0 wceq clt wbr w3o cn cneg cr elz simprbi idd wi nngt0 lt0neg1d
    a1i zre syl5ibr 3orim123d mpd 3orrot sylibr ) ABCZADEZDAFGZADFGZHZUHUFUGHUE
    UFAICZAJZICZHZUIUEAKCUMALMUEUFUFUJUGULUHUEUFNUJUGOUEAPRULUHUEDUKFGUKPUEAASQ
    TUAUBUHUFUGUCUD $.

  $( Integer trichotomy.  (Contributed by Jim Kingdon, 14-Mar-2020.) $)
  ztri3or $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( M < N \/ M = N \/ N < M ) ) $=
    ( cz wcel wa clt wbr wceq w3o cmin cc0 zsubcl ztri3or0 syl cneg zre posdifd
    co cr recnd adantr adantl resubcld lt0neg2d negsubdi2d breq1d 3bitrd bicomd
    subeq0ad 3orbi123d mpbird ) ACDZBCDZEZABFGZABHZBAFGZIABJRZKFGZURKHZKURFGZIZ
    UNURCDVBABLURMNUNUOUSUPUTUQVAUNUOKBAJRZFGVCOZKFGUSUNABULASDUMAPUAZUMBSDULBP
    UBZQUNVCUNBAVFVEUCUDUNVDURKFUNBAUNBVFTZUNAVETZUEUFUGUNUTUPUNABVHVGUIUHUNBAV
    FVEQUJUK $.

  $( Trichotomy law.  (Contributed by Jim Kingdon, 27-Mar-2020.) $)
  zletric $p |- ( ( A e. ZZ /\ B e. ZZ ) -> ( A <_ B \/ B <_ A ) ) $=
    ( cz wcel wa cr clt wbr wceq w3o cle zre anim12i ztri3or ltle orc syl6 eqle
    wo wi ex adantr ancoms olc 3jaod sylc ) ACDZBCDZEAFDZBFDZEZABGHZABIZBAGHZJA
    BKHZBAKHZSZUGUIUHUJALBLMABNUKULUQUMUNUKULUOUQABOUOUPPZQUKUMUOUQUIUMUOTUJUIU
    MUOABRUAUBURQUKUNUPUQUJUIUNUPTBAOUCUPUOUDQUEUF $.

  $( Trichotomy law.  (Contributed by Jim Kingdon, 17-Apr-2020.) $)
  zlelttric $p |- ( ( A e. ZZ /\ B e. ZZ ) -> ( A <_ B \/ B < A ) ) $=
    ( cz wcel wa cr clt wbr wceq w3o cle zre anim12i ztri3or ltle orc syl6 eqle
    wo wi ex adantr olc a1i 3jaod sylc ) ACDZBCDZEAFDZBFDZEZABGHZABIZBAGHZJABKH
    ZUNSZUGUIUHUJALBLMABNUKULUPUMUNUKULUOUPABOUOUNPZQUKUMUOUPUIUMUOTUJUIUMUOABR
    UAUBUQQUNUPTUKUNUOUCUDUEUF $.

  $( 'Less than' expressed in terms of 'less than or equal to'.  (Contributed
     by Jim Kingdon, 14-Mar-2020.) $)
  zltnle $p |- ( ( A e. ZZ /\ B e. ZZ ) -> ( A < B <-> -. B <_ A ) ) $=
    ( cz wcel wa clt wbr cle wn cr zre lenlt syl2anr biimpd con2d wceq w3o syl6
    wb wi ztri3or ax-1 a1i eqcom eqle sylan2b ex adantl sylan2 pm2.24 3jaod mpd
    ltle impbid ) ACDZBCDZEZABFGZBAHGZIZUQUSURUQUSURIZUPBJDZAJDZUSVASUOBKZAKZBA
    LMNOUQURABPZBAFGZQUTURTZABUAUQURVHVFVGURVHTUQURUTUBUCUQVFUSVHUPUOVBVFUSTZVD
    VBVIUOVBVFUSVFVBBAPUSABUDBAUEUFUGUHUIUSURUJZRUQVGUSVHUPVBVCVGUSTUOVDVEBAUMM
    VJRUKULUN $.

  $( Integer 'Less than or equal to' expressed in terms of 'less than' or
     'equals'.  (Contributed by Jim Kingdon, 8-Apr-2020.) $)
  zleloe $p |- ( ( A e. ZZ /\ B e. ZZ ) ->
      ( A <_ B <-> ( A < B \/ A = B ) ) ) $=
    ( cz wcel wa cle wbr clt wo wn cr wb zre lenlt syl2an w3o ztri3or df-3or wi
    wceq sylib orcomd ord sylbid ltle eqle ex adantr jaod impbid ) ACDZBCDZEZAB
    FGZABHGZABTZIZUMUNBAHGZJZUQUKAKDZBKDZUNUSLULAMZBMZABNOUMURUQUMUQURUMUOUPURP
    UQURIABQUOUPURRUAUBUCUDUKUTVAUQUNSULVBVCUTVAEUOUNUPABUEUTUPUNSVAUTUPUNABUFU
    GUHUIOUJ $.

  $( 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 wb 1z zltnle mpan2 bitr4d
    ) ABCZADCZEFAGHZEZAFIHZRSTSRTAJKLRFBCUBUAMNAFOPQ $.

  $( 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 sum of a real number not being an integer and an integer is not an
     integer.  Note that "not being an integer" in this case means "the
     negation of is an integer" rather than "is apart from any integer" (given
     excluded middle, those two would be equivalent).  (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 $.

  $( 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 $.

  $( Subtraction of nonnegative integers.  (Contributed by NM, 9-May-2004.) $)
  nn0sub $p |- ( ( M e. NN0 /\ N e. NN0 ) ->
                ( M <_ N <-> ( N - M ) e. NN0 ) ) $=
    ( cn0 wcel cz cle wbr cmin co wb nn0z znn0sub syl2an ) ACDAEDBEDABFGBAHICDJ
    BCDAKBKABLM $.

  $( 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 $.

  ${
    $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 ) ) $=
      ( cz wcel cr cn0 cneg wo wa 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
      cv cle wbr nnz zletric syl2anr nnnn0 nn0sub nncn negsubdi2 eleq1d orbi12d
      wb bitr4d mpbid jca eleq1 negeq anbi12d syl5ibrcom rexlimivv impbii bitri
      ) CDECFEZCGEZCHZGEZIZJZCAVBZBVBZKLZMZBNUAANUAZCUBWJWOWEWFWOWHWEWFJZCOUCLZ
      NEZONEZCWQOKLZMWOWFWRWECUDUEWSWPPUFWPWTCWPCTEZOTEZWTCMWEXAWFCUGZUHQCOUIUJ
      ULABNNWQOCKUKUMWEWHJZWSOCKLZNECOXEKLZMWOWSXDPUFXDOWGUCLZXENXDXBXAXGXEMQWE
      XAWHXCUHZOCUNRXDWSWHXGNEPWEWHUOOWGUPRUQXDXFCXDXBXAXFCMQXHOCURRULABNNOXECK
      UKUMUSWNWJABNNWKNEZWLNEZJZWJWNWMFEZWMGEZWMHZGEZIZJXKXLXPXIWKFEWLFEXLXJWKU
      TWLUTWKWLVASXKWLWKVCVDZWKWLVCVDZIZXPXJWLDEWKDEXSXIWLVEWKVEWLWKVFVGXKXQXMX
      RXOXJWLGEZWKGEZXQXMVNXIWLVHZWKVHZWLWKVIVGXKXRWLWKKLZGEZXOXIYAXTXRYEVNXJYC
      YBWKWLVISXKXNYDGXIWKTEWLTEXNYDMXJWKVJWLVJWKWLVKSVLVOVMVPVQWNWEXLWIXPCWMFV
      RWNWFXMWHXOCWMGVRWNWGXNGCWMVSVLVMVTWAWBWCWD $.

    $( Alternate 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 $.
  $}

  $( 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 $.

  $( Apartness is equivalent to not equal for integers.  (Contributed by Jim
     Kingdon, 14-Mar-2020.) $)
  zapne $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( M # N <-> M =/= N ) ) $=
    ( cz wcel wa cap wbr wne cc wi zcn apne syl2an wceq wn clt wo w3o cr zre wb
    df-ne ztri3or 3orrot 3orass bitri sylib reaplt syl6bb sylibrd syl5bi impbid
    ord orcom ) ACDZBCDZEZABFGZABHZUOAIDBIDURUSJUPAKBKABLMUSABNZOZUQURABUBUQVAB
    APGZABPGZQZURUQUTVDUQVCUTVBRZUTVDQZABUCVEUTVBVCRVFVCUTVBUDUTVBVCUEUFUGUMUOA
    SDZBSDZURVDUAUPATBTVGVHEURVCVBQVDABUHVCVBUNUIMUJUKUL $.

  $( Equality of integers is decidable.  (Contributed by Jim Kingdon,
     14-Mar-2020.) $)
  zdceq $p |- ( ( A e. ZZ /\ B e. ZZ ) -> DECID A = B ) $=
    ( cz wcel wa clt wbr wceq w3o wdc ztri3or cr zre wne ltne necomd sylibr syl
    wi ex wo olc dcne adantr sylan orc a1i adantl 3jaod mpd ) ACDZBCDZEZABFGZAB
    HZBAFGZIUOJZABKUMUNUQUOUPUKALDZULUNUQSZAMURUSULURUNUQURUNEZABNZUQUTBAABOPVA
    UOVAUAZUQVAUOUBABUCZQZRTUDUEUOUQSUMUOVBUQUOVAUFVCQUGULUPUQSZUKULBLDZVEBMVFU
    PUQVFUPEVAUQBAOVDRTRUHUIUJ $.

  $( Integer ` <_ ` is decidable.  (Contributed by Jim Kingdon, 7-Apr-2020.) $)
  zdcle $p |- ( ( A e. ZZ /\ B e. ZZ ) -> DECID A <_ B ) $=
    ( cz wcel wa clt wbr wceq w3o cle wdc ztri3or cr wi zre ltle wn sylibr syl6
    wo orc df-dc eqle syl ex adantr lenlt biimpd con2d olc 3jaod syl2an mpd ) A
    CDZBCDZEABFGZABHZBAFGZIZABJGZKZABLUNAMDZBMDZUSVANUOAOBOVBVCEZUPVAUQURVDUPUT
    VAABPUTUTUTQZTZVAUTVEUAUTUBZRZSVBUQVANVCVBUQVAVBUQEUTVAABUCVHUDUEUFVDURVEVA
    VDUTURVDUTURQABUGUHUIVEVFVAVEUTUJVGRSUKULUM $.

  $( Integer ` < ` is decidable.  (Contributed by Jim Kingdon, 1-Jun-2020.) $)
  zdclt $p |- ( ( A e. ZZ /\ B e. ZZ ) -> DECID A < B ) $=
    ( cz wcel wa clt wbr wceq w3o wdc ztri3or cr wi zre wn wo orc sylibr adantr
    df-dc a1i ltnr wb breq2 adantl mtbid olc ex ltnsym ancoms syl6 3jaod syl2an
    syl mpd ) ACDZBCDZEABFGZABHZBAFGZIZURJZABKUPALDZBLDZVAVBMUQANBNVCVDEZURVBUS
    UTURVBMVEURURUROZPZVBURVFQURTZRUAVCUSVBMVDVCUSVBVCUSEZVFVBVIAAFGZURVCVJOUSA
    UBSUSVJURUCVCABAFUDUEUFVFVGVBVFURUGVHRZUNUHSVEUTVFVBVDVCUTVFMBAUIUJVKUKULUM
    UO $.

  $( Integer 'Less than' expressed in terms of 'less than or equal to'.  Also
     see ~ ltleap which is a similar result for real numbers.  (Contributed by
     Jim Kingdon, 14-Mar-2020.) $)
  zltlen $p |- ( ( A e. ZZ /\ B e. ZZ ) ->
               ( A < B <-> ( A <_ B /\ B =/= A ) ) ) $=
    ( cz wcel wa clt wbr cle wne cap cr wb zre ltleap syl2an zapne anbi2d bitrd
    necom anbi2i syl6bb ) ACDZBCDZEZABFGZABHGZABIZEZUFBAIZEUDUEUFABJGZEZUHUBAKD
    BKDUEUKLUCAMBMABNOUDUJUGUFABPQRUGUIUFABSTUA $.

  $( 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 ) ) $=
    ( wcel cc0 wne c1 wa c2 wbr wdc wn wi wceq zdceq sylancl dcned sylc syl clt
    cz wb cn0 cle nn0n0n1ge2 3expib nn0z 0z 1z dcan ianordc nnedc orbi12d bitrd
    wo 2pos breq1 mpbiri a1d 1lt2 impcom 2z zltnle adantr mpbid ex sylbid condc
    jaoi impbid ) AUABZACDZAEDZFZGAUBHZVIVJVKVMAUCUDVIVLIZVLJZVMJZKVMVLKVIVJIZV
    KIVNVIACVIASBZCSBACLZIZAUEZUFACMNZOZVIAEVIVRESBAELZIZWAUGAEMNZOVJVKUHPVIVOV
    SWDUMZVPVIVOVJJZVKJZUMZWGVIVQVOWJTWCVJVKUIQVIWHVSWIWDVIVTWHVSTWBACUJQVIWEWI
    WDTWFAEUJQUKULVIWGVPVIWGFAGRHZVPWGVIWKVSVIWKKWDVSWKVIVSWKCGRHUNACGRUOUPUQWD
    WKVIWDWKEGRHURAEGRUOUPUQVGUSVIWKVPTZWGVIVRGSBWLWAUTAGVANVBVCVDVEVLVMVFPVH
    $.

  $( A nonnegative integer less than ` 1 ` is ` 0 ` .  (Contributed by Paul
     Chapman, 22-Jun-2011.) $)
  nn0lt10b $p |- ( N e. NN0 -> ( N < 1 <-> N = 0 ) ) $=
    ( cn0 wcel cc0 wceq cle wbr wa c1 clt cr wb nn0re 0re letri3 mpan2 biantrud
    syl nn0ge0 cz nn0z caddc co 0z zleltp1 0p1e1 breq2i syl6bb 3bitr2rd ) ABCZA
    DEZADFGZDAFGZHZULAIJGZUJAKCZUKUNLZAMUPDKCUQNADOPRUJUMULASQUJATCZULUOLAUAURU
    LADIUBUCZJGZUOURDTCULUTLUDADUEPUSIAJUFUGUHRUI $.

  $( 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 c1 wceq cc0 wo wne wi olc a1i cle cz wb sylancl 1z
    cmin co nn0z 2z zltlem1 2m1e1 breq2i syl6bb necom zltlen nn0lt10b biimpa ex
    orcd sylbird expd syl7bi sylbid imp wdc zdceq adantr dcne sylib mpjaod ) AB
    CZADEFZGZAHIZAJIZVIKZAHLZVIVKMVHVIVJNOVFVGVLVKMZVFVGAHPFZVMVFVGADHUAUBZPFZV
    NVFAQCZDQCVGVPRAUCZUDADUESVOHAPUFUGUHVLHALZVFVNVKAHUIVFVNVSVKVFVNVSGZAHEFZV
    KVFVQHQCZWAVTRVRTAHUJSVFWAVKVFWAGVJVIVFWAVJAUKULUNUMUOUPUQURUSVHVIUTZVIVLKV
    FWCVGVFVQWBWCVRTAHVASVBAHVCVDVE $.

  $( 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 cap wbr cv cmul co wceq wrex cdiv wb cc wi zcn adantr
      nnap0 nncn divcanap3 3coml 3expa sylan2 3adantl2 oveq1 sylan9req eqeltrrd
      w3a simplr exp31 rexlimdv divcanap2 3com12 oveq2 eqeq1d rspcev expcom syl
      impbid 3expia syl2an mpd ) BDEZCFEZGBHIJZBAKZLMZCNZAFOZCBPMZFEZQZVGVIVHBU
      BUAVGBREZCREZVIVPSVHBUCCTVQVRVIVPVQVRVIULZVMVOVSVLVOAFVSVJFEZVLVOVSVTGZVL
      GVJVNFWAVLVJVKBPMZVNVQVIVTWBVJNZVRVTVQVIGVJREZWCVJTVQVIWDWCWDVQVIWCVJBUDU
      EUFUGUHVKCBPUIUJVSVTVLUMUKUNUOVSBVNLMZCNZVOVMSVRVQVIWFCBUPUQVOWFVMVLWFAVN
      FVJVNNVKWECVJVNBLURUSUTVAVBVCVDVEVF $.
  $}

  $( 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 cap wbr zcn nncn nnap0 jca
    divdirap syl3an 3comr adantr zaddcl adantl eqeltrd ) CDEZAFEZBFEZGZACHIZFEB
    CHIZFEJZJABKICHIZULUMKIZFUKUOUPLZUNUIUJUHUQUIAMEUJBMEUHCMEZCNOPZJUQAQBQUHUR
    USCRCSTABCUAUBUCUDUNUPFEUKULUMUEUFUG $.

  $( 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 cap wbr 3ad2ant2 3ad2ant1 nncn
    zcn nnap0 3ad2ant3 divassap syl3anc 3comr adantr zmulcl 3ad2antl3 eqeltrd
    jca ) CDEZAFEZBFEZGZACHIZFEZJBAKICHIZBUOKIZFUNUQURLZUPULUMUKUSULUMUKGBMEZAM
    EZCMEZCNOPZJZUSUMULUTUKBTQULUMVAUKATRUKULVDUMUKVBVCCSCUAUJUBBACUCUDUEUFUMUK
    UPURFEULBUOUGUHUI $.

  ${
    $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 cap 0lt1 0re lttr mp3an12 mpani imdistani gt0ap0 rerecclap
    wi syl syldan lenlt sylancr sylibd mt2d ) ABCZDAEFZGZDAHIZJCZUTDEFZUSKUTEFZ
    VBALZMUSVADUTNFZVBOZUSVCVAVEUSVCVBVDPUTQRUSDBCZUTBCZVEVFSTUQURAKUAFZVHUSUQK
    AEFZGVIUQURVJUQKDEFZURVJUBKBCVGUQVKURGVJUJUCTKDAUDUEUFUGAUHUKAUIULDUTUMUNUO
    UP $.

  $( 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 A w x y z $.  $d f g ph x $.  $d ph w x z $.
    suprzclex.ex $e |- ( ph -> E. x e. RR ( A. y e. A -. x < y /\
        A. y e. RR ( y < x -> E. z e. A y < z ) ) ) $.
    suprzclex.ss $e |- ( ph -> A C_ ZZ ) $.
    $( The supremum of a set of integers is an element of the set.
       (Contributed by Jim Kingdon, 20-Dec-2021.) $)
    suprzclex $p |- ( ph -> sup ( A , RR , < ) e. A ) $=
      ( vw cr clt c1 cv wbr wcel wrex wa wn cz wral adantr vg vf csup cmin wceq
      co lttri3 adantl supclti ltm1d zssre syl6ss peano2rem syl suprlubex mpbid
      wb cle caddc sselda sseldi simprl sseldd peano2re ad2antrr simpr suprubex
      wss zre wi simprr 1red ltsubaddd lelttrd zleltp1 syl2anc mpbird ralrimiva
      breq2 cbvrexv imbi2i ralbii anbi2i rexbii sylib letri3d mpbir2and eqeltrd
      suprleubex rexlimddv ) AEIJUCZKUDUFZDLZJMZWKENDEAWLWKJMWNDEOAWKABCDUAUBIE
      JUBLZINUALZINPWOWPUEWOWPJMQWPWOJMQPUQAWOWPUGUHFUIZUJABCDEWLFAERIGUKULZAWK
      INZWLINWQWKUMUNUOUPAWMENZWNPZPZWKWMEXBWKWMUEWKWMURMZWMWKURMXBXCHLZWMURMZH
      ESXBXEHEXBXDENZPZXEXDWMKUSUFZJMZXGXDWKXHXGRIXDUKXBERXDAERVHXAGTZUTZVAXBWS
      XFAWSXAWQTZTXBXHINZXFXBWMINZXMXBWMRNZXNXBERWMXJAWTWNVBZVCZWMVIUNZWMVDUNTX
      GBCDEXDABLZCLZJMQCESZXTXSJMZXTWMJMZDEOZVJZCISZPZBIOZXAXFFVEAEIVHXAXFWRVEX
      BXFVFVGXBWKXHJMZXFXBWNYIAWTWNVKXBWKKWMXLXBVLXRVMUPTVNXGXDRNXOXEXIUQXKXBXO
      XFXQTXDWMVOVPVQVRXBBCHEWMAYAYBXTXDJMZHEOZVJZCISZPZBIOZXAAYHYOFYGYNBIYFYMY
      AYEYLCIYDYKYBYCYJDHEWMXDXTJVSVTWAWBWCWDWETZXBERIXJUKULZXRWIVQXBBCHEWMYPYQ
      XPVGXBWKWMXLXRWFWGXPWHWJ $.
  $}

  ${
    $d x A $.
    $( Two ways to express " ` A ` is a prime number (or 1)."  (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 c1 wceq wi clt wbr wa wb cz nnz wn syl6bbr adantl nnre
      cr co wo cle w3a wne wdc 1z zdceq mpan2 dfordc df-ne imbi1i imbi2d impexp
      3syl bi2.04 bitri nngt1ne1 anbi1d gtndiv 3expia sylan con2d lenlt sylibrd
      syl2an ancoms syl5 pm4.71rd anbi2d 3anass bitr3d imbi1d bitrd ralbidva )
      BCDZBAEZFUAZCDZVQGHZVQBHZUBZIZGVQJKZVQBUCKZVSUDZWAIZACVPVQCDZLZWCVQGUEZVS
      LZWAIZWGWHWCWLMVPWHWCVSWJWAIZIZWLWHWBWMVSWHVQNDZVTUFZWBWMMVQOWOGNDWPUGVQG
      UHUIWPWBVTPZWAIWMVTWAUJWJWQWAVQGUKULQUOUMWLWJVSWAIIWNWJVSWAUNWJVSWAUPUQQR
      WIWKWFWAWIWDVSLZWKWFWIWDWJVSWHWDWJMVPVQURRUSWIWRWDWEVSLZLWFWIVSWSWDWIVSWE
      VSVRNDZWIWEVROWHVPWTWEIWHVPLZWTBVQJKZPZWEXAXBWTWHVQTDZVPXBWTPZIVQSZXDVPXB
      XEVQBUTVAVBVCWHXDBTDWEXCMVPXFBSVQBVDVFVEVGVHVIVJWDWEVSVKQVLVMVNVO $.
  $}

  $( 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 cmul co clt wbr cn zmulcl anidms adantr wb zapne mpan2
    cap 0z pm5.32i cr zre apsqgt0 sylan sylbir elnnz sylanbrc ) ABCZADEZFZAAGHZ
    BCZDUKIJZUKKCUHULUIUHULAALMNUJUHADRJZFUMUHUNUIUHDBCUNUIOSADPQTUHAUACUNUMAUB
    AUCUDUEUKUFUG $.

  $( 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 wn wceq cmin cc 2cn zcn mulcl sylancr
    a1i wne halfnz adantr adantl 1cnd subaddd subdid oveq1d zsubcl syl cc0 2ap0
    cap wbr divcanap3d eqtr3d eqeltrd oveq1 eleq1d syl5ibcom sylbird mpi necomd
    necon3bd ) ACDZBCDZEZFBGHZIJHZFAGHZVGIFKHZCDZLVIVJUAUBVGVLVIVJVGVIVJMVJVHNH
    ZIMZVLVGVJVHIVGFODZAODZVJODPVEVPVFAQUCZFARSVGVOBODZVHODPVFVRVEBQUDZFBRSVGUE
    UFVGVMFKHZCDVNVLVGVTABNHZCVGFWAGHZFKHVTWAVGWBVMFKVGFABVOVGPTZVQVSUGUHVGWAFV
    GWACDWAODABUIZWAQUJWCFUKUMUNVGULTUOUPWDUQVNVTVKCVMIFKURUSUTVAVDVBVC $.

  ${
    $d j k N $.
    $( A positive integer is even or odd.  (Contributed by Jim Kingdon,
       15-Mar-2020.) $)
    nneoor $p |- ( N e. NN ->
                ( ( N / 2 ) e. NN \/ ( ( N + 1 ) / 2 ) e. NN ) ) $=
      ( vj vk cn wcel c1 caddc co c2 cdiv cv wceq oveq1d eleq1d orbi12d 2div2e1
      wo oveq1 cc 2cn df-2 oveq1i eqtr3i 1nn eqeltri orci peano2nn nncn cc0 cap
      add1p1 wbr wa 2ap0 pm3.2i divdirap mp3an23 oveq2i syl6eq eqtrd syl orim2d
      syl5ibr orcom syl6ib nnind orcomd ) ADEAFGHZIJHZDEZAIJHZDEZBKZFGHZIJHZDEZ
      VMIJHZDEZQFFGHZIJHZDEZFIJHZDEZQCKZFGHZIJHZDEZWDIJHZDEZQZWEFGHZIJHZDEZWGQZ
      VJVLQBCAVMFLZVPWAVRWCWOVOVTDWOVNVSIJVMFFGRMNWOVQWBDVMFIJRNOVMWDLZVPWGVRWI
      WPVOWFDWPVNWEIJVMWDFGRMNWPVQWHDVMWDIJRNOVMWELZVPWMVRWGWQVOWLDWQVNWKIJVMWE
      FGRMNWQVQWFDVMWEIJRNOVMALZVPVJVRVLWRVOVIDWRVNVHIJVMAFGRMNWRVQVKDVMAIJRNOW
      AWCVTFDIIJHZVTFIVSIJUAUBPUCUDUEUFWDDEZWJWGWMQWNWTWIWMWGWIWMWTWHFGHZDEWHUG
      WTWLXADWTWDSEZWLXALWDUHXBWLWDIGHZIJHZXAXBWKXCIJWDUKMXBXDWHWSGHZXAXBISEZXF
      IUIUJULZUMXDXELTXFXGTUNUOWDIIUPUQWSFWHGPURUSUTVANVCVBWGWMVDVEVFVG $.

    $( 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 ) ) $=
      ( cn wcel c2 cdiv co c1 caddc cmul wceq nncn peano2cn syl 2cnd divcanap2d
      wn cc cc0 cz nnz cap wbr 2ap0 a1i oveq1d eqtr4d wne syl2an expcom syl5com
      zneo necon2bd nneoor orcomd ord impbid ) ABCZADEFZBCZAGHFZDEFZBCZPZUQDVAI
      FZDURIFZGHFZJUSVCUQVDUTVFUQUTDUQAQCUTQCAKZALMUQNZDRUAUBUQUCUDZOUQVEAGHUQA
      DVGVHVIOUEUFUSVBVDVFVBUSVDVFUGZVBVASCURSCVJUSVATURTVAURUKUHUIULUJUQVBUSUQ
      USVBAUMUNUOUP $.

    nneo.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 cc0 wceq cn cneg c2 cdiv co c1 caddc 2cn 2ap0 syl cc mp3an23 cmin
    eleq1d ax-1cn cr w3o wa wo elz oveq1 div0api eqeltri syl6eqel adantl nneoor
    0z orcd nnz orim12i wi recn cap wbr divnegap nnnegz syl6bir halfcld negnegd
    sylibd peano2zm negsubdi2i 2m1e1 eqtr2i negcon2i mpbi negcl addsubass negdi
    subcli oveq2i mpan2 3eqtr4a oveq1d peano2cn pm3.2i 2div2e1 syl6reqr 3eqtr4d
    divsubdirap eqcomi syl5ib znegcl syl6 peano2re recnd orim12d adantr 3jaodan
    syl5 mpd sylbi ) ABCAUACZADEZAFCZAGZFCZUBUCAHIJZBCZAKLJZHIJZBCZUDZAUEWRWSXH
    WTXBWSXHWRWSXDXGWSXCDHIJZBADHIUFXIDBHMNUGULUHUIUMUJWTXHWRWTXCFCZXFFCZUDXHAU
    KXJXDXKXGXCUNXFUNUOOUJWRXBUCXAHIJZFCZXAKLJZHIJZFCZUDZXHXBXQWRXAUKUJWRXQXHUP
    XBWRXMXDXPXGWRXMXCGZGZBCZXDWRXMXRFCXTWRXRXLFWRAPCZXRXLEZAUQZYAHPCZHDURUSZYB
    MNAHUTQOSXRVAVBWRXSXCBWRXCWRAYCVCVDSVEXPXOBCZWRXGXOUNWRYFXFGZGZBCZXGWRYFYGB
    CZYIYFXOKRJZBCWRYJXOVFWRYKYGBWRYAYKYGEYCYAXNHRJZHIJZXEGZHIJZYKYGYAYLYNHIYAX
    AKHRJZLJZXAKGZLJZYLYNYPYRXALKYPGZEYPYREYTHKRJKKHTMVGVHVIKYPTKHTMVOVJVKVPYAX
    APCZYLYQEZAVLZUUAKPCZYDUUBTMXAKHVMQOYAUUDYNYSETAKVNVQVRVSYAYMXOHHIJZRJZYKYA
    XNPCZYMUUFEZYAUUAUUGUUCXAVTOUUGYDYDYEUCUUHMYDYEMNWAXNHHWEQOKUUEXORUUEKWBWFV
    PWCYAXEPCZYGYOEZAVTUUIYDYEUUJMNXEHUTQOWDOSWGYGWHWIWRYHXFBWRXFWRXEWRXEAWJWKV
    CVDSVEWOWLWMWPWNWQ $.

  $( 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 cap
    wbr divcanap2d a1i oveq1d eqtr4d wne expcom necon2bd syl5com zeo orcomd ord
    2ap0 zneo impbid ) ABCZADEFZBCZAGHFZDEFZBCZIZUNDURJFZDUOJFZGHFZKUPUTUNVAUQV
    CUNUQDUNALCUQLCAMZANOUNPZDQRSUNUKUAZTUNVBAGHUNADVDVEVFTUBUCUPUSVAVCUSUPVAVC
    UDURUOULUEUFUGUNUSUPUNUPUSAUHUIUJUM $.

  ${
    $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 $.
    $( 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 ) ) $=
      ( vn cz wcel cv c1 caddc co wa cc wceq cn wi oveq1 eleq1d imbi2d ex breq2
      wral cle wbr crab wss elrab anbi2i cmin ad2antrl 1cnd subcld npcan syl2an
      zcn ax-1cn subsub mp3an3 cn0 znn0sub biimpa anasss ancoms adantll nn0p1nn
      eqeltrd simpr simpll adantr pncan3d simprl rspccv ad2antll nncnd ad2antlr
      syl add32d sylibd a2d nnind syl3c eqeltrrd sylanb expcom expdimp ssrdv )
      DFGZDBGZAHZIJKZBGZABUBZLZDCHZUCUDZCFUEZBUFWGWMLZEWPBWGWMEHZWPGZWRBGZWMWSL
      ZWGWTXAWMWRFGZDWRUCUDZLZLZWGWTWSXDWMWOXCCWRFWNWRDUCUAUGUHXEWGLZWRDIUIKZUI
      KZXGJKZWRBXEWRMGZXGMGZXIWRNWGXBXJWMXCWRUOUJZWGDIDUOZWGUKULZWRXGUMUNXFXHOG
      WGWMXIBGZXFXHWRDUIKZIJKZOXEXJDMGZXHXQNZWGXLXMXJXRIMGXSUPWRDIUQURUNXFXPUSG
      ZXQOGXDWGXTWMWGXDXTWGXBXCXTWGXBLXCXTDWRUTVAVBVCVDXPVEVPVFXEWGVGWMXDWGVHWG
      WMWNXGJKZBGZPZPWGWMIXGJKZBGZPZPWGWMWRXGJKZBGZPZPWGWMWRIJKZXGJKZBGZPZPWGWM
      XOPZPCEXHWNINZYCYFWGYOYBYEWMYOYAYDBWNIXGJQRSSWNWRNZYCYIWGYPYBYHWMYPYAYGBW
      NWRXGJQRSSWNYJNZYCYMWGYQYBYLWMYQYAYKBWNYJXGJQRSSWNXHNZYCYNWGYRYBXOWMYRYAX
      IBWNXHXGJQRSSWGWMYEWQYDDBWQIDWQUKWGXRWMXMVIVJWGWHWLVKVFTWROGZWGYIYMYSWGYI
      YMPYSWGLZWMYHYLYTWMYHYLPYTWMLZYHYGIJKZBGZYLWLYHUUCPYTWHWKUUCAYGBWIYGNWJUU
      BBWIYGIJQRVLVMUUAUUBYKBUUAWRXGIUUAWRYSWGWMVHVNWGXKYSWMXNVOUUAUKVQRVRTVSTV
      SVTWAWBWCWDWEWFT $.

    ${
      peano5uz.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 ) $=
        ( cz wcel cv c1 caddc co wral wa cle wbr crab wss wi peano5uzti ax-mp )
        DFGDBGAHIJKBGABLMDCHNOCFPBQREABCDST $.
    $}
  $}

  ${
    $d x y z N $.
    dfuz.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 simprd ) HP
      QZIPQZHIRSZUBZWIEWJWHWIETZWGWHWIWHWKTZWGIHUAUCZRSZUAPUDZQIHFUCZRSZATZFPUD
      ZQWHWITWLWGWOWSIWGHWSQZGUCZUEUFUMZWSQZGWSUGWOWSUHWGWGHHRSZBTZTWTWGXEWGXDB
      WGHHUIZUJNUKULWRXEFHPWPHUNWQXDABWPHHRUOJUPUQURWGXCGWSWGXAPQZHXARSZCTZTZXB
      PQZHXBRSZDTZTXAWSQXCWGXJXKXMWGXGXKXIXGXKUSWGXAUTVAVBWGXJXLDWGXGXIXLWGXGTX
      HXLCWGHVFQZXAVFQZXHXLUSXGXFXAUIXNXOTZXHHXBVCSZXLXPXHXAXBVCSZXQXOXRXNXAVDV
      EXOXNXOXBVFQZTXHXRTXQUSZXOXSXAVGZULXNXOXSXTHXAXBVHVIVJVKXOXNXSXQXLUSYAHXB
      VLVJVMVNVBVOWGXGXHCDWGXGXHCDUSOVPVRVQVQWRXIFXAPWPXAUNWQXHACWPXAHRUOKUPUQW
      RXMFXBPWPXBUNWQXLADWPXBHRUOLUPUQVSVTGWSUAHWAWBWCWNWIUAIPWMIHRUOUQWRWKFIPW
      PIUNWQWIAEWPIHRUOMUPUQWDWEWFWF $.
  $}

  ${
    $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 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 mpdd jaod syl5 ralrimiv wb sylan9eqr eqcomd bicomd rspcdv
      negeq rspccv 3syl ) GDISUAZAHSUAJSTFUBGDISIUCZSTZWDUDZUETZWDUFTZUGZGDWEWG
      WFUDZUFTZUGZWIWEWGWFUHTZWKUNZUGZWLWEWFSTWOWDUIWFUJUKWNWKWGWMWKULUMUOWEWKW
      HWGWEWJWDUFWEWDWDUPUQURUSUTGWGDWHWGGDGAUBZGBUBZGCUBZGEUBZGDUBHIWFHUCZVAVB
      ABGKVCZWTWDVBACGLVCZWTWDVDVEVHVBAEGMVCZWTWFVBZADGNVCPWDUETZGCEGXECEUBQVFV
      GZVIVFGWHCDWHGCWHXEWRWDVJWPWQWRWSWRHIWDXAXBXCXBPXFVIUOVFRVKVLVMVNWCAHSWTS
      TZWCAXGDAIWTUDZSWTUIXGWDXHVBZUNZADXJXDADVOXJWFWTXIXGWFXHUDWTWDXHVTXGWTWTU
      PUQVPVQNUOVRVSVFVNAFHJSOWAWB $.
  $}

  ${
    $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 $.
  $}

  $( 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 $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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 ) $.

  $( 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 $.

  $( 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 $.

  $( 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 $.

  ${
    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 $.
  $}

  $( 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 $.
  $}

  ${
    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 $.

    $( 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 $.
  $}

  ${
    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 $.
  $}

  ${
    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 $.
    $}

    ${
      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 $.
    $}

    ${
      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 $.
  $}

  ${
    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 $.
  $}

  ${
    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 $.
  $}

  ${
    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 $.
  $}

  ${
    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 $.
  $}

  $( 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 $.

  ${
    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 $.
    $}

    ${
      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 $.
    $}

    ${
      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 $.
    $}

    ${
      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 $.
    $}

    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 $.
    $}

    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 $.
    $}

    ${
      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 $.
    $}
  $}

  ${
    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 $.
    $}

    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 $.
    $}

    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 $.
  $}

  ${
    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 $.
  $}

  ${
    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 $.

  $( 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 $.

  $( 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 $.

  $( 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 $.

  $( 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 $.

  $( 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 $.

  $( 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 $.

  $( 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 $.

  $( 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
    $.

  $( 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 $.

  $( 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 $.

  $( 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 $.

  $( 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 $.

  $( 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 $.

  $( 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 $.

  $( 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 $.

  $( 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 $.

  $( 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 $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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 wrel cpw wf frel ax-mp relelfvdm mpan fdmi syl6eleq
      uzf ) BACDEZACFZGCHZRASEGGIZCJTQGUACKLBACMNGUACQOP $.

    $( 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 $.
  $}

  ${
    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 y 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 $=
      ( vy cuz cfv cz cv eluzelz ssriv ) BACDEABFGH $.

    $( 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 $.
  $}

  $( Trichotomy 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 zletric eluz wb ancoms orbi12d mpbird ) ACD
    ZBCDZEZBAFGDZABFGDZHABIJZBAIJZHABKSTUBUAUCABLRQUAUCMBALNOP $.

  $( 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 wa caddc co cle eluzelz zaddcl sylan adantr zred wb eluz1
    wbr syl eluzel2 simpr simpl mpbid simprd leadd1dd zaddcld mpbir2and ) CBDEF
    ZAGFZHZCAIJZBAIJZDEFZULGFZUMULKSZUICGFZUJUOBCLZCAMNUKBCAUKBUIBGFZUJBCUAOZPU
    KCUIUQUJUROPUKAUIUJUBZPUKUQBCKSZUKUIUQVBHZUIUJUCUKUSUIVCQUTBCRTUDUEUFUKUMGF
    UNUOUPHQUKBAUTVAUGUMULRTUH $.

  $( 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 w3a cmin cle wbr wa wb eluz1 syl mpbid cr zred
    eluzelz 3ad2ant3 simp2 zsubcld simp3 simp1 zaddcld simprd syl3anc mpbir2and
    leaddsub ) BDEZADEZCBAFGZHIEZJZCAKGZBHIEZUQDEZBUQLMZUPCAUOULCDEZUMUNCUAUBZU
    LUMUOUCZUDUPUNCLMZUTUPVAVDUPUOVAVDNZULUMUOUEUPUNDEUOVEOUPBAULUMUOUFZVCUGUNC
    PQRUHUPBSEASECSEVDUTOUPBVFTUPAVCTUPCVBTBACUKUIRUPULURUSUTNOVFBUQPQUJ $.

  $( 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 clt wbr wo c1 cmin co wn eluzle eluzel2 zred cz syl2anc
    cle wb eluzelz lenltd mpbid w3o ztri3or df-3or sylib ecased orcomd wi eqcom
    biimpi a1i zltlem1 1zzd zsubcld eluz bitr4d biimpd orim12d mpd ) BACDZEZABF
    ZABGHZIBAFZBJKLZVBEZIVCVEVDVCVEVDIZBAGHZVCABSHVJMABNVCABVCAABOZPVCBABUAZPUB
    UCVCVEVDVJUDZVIVJIVCAQEZBQEZVMVKVLABUERVEVDVJUFUGUHUIVCVDVFVEVHVDVFUJVCVDVF
    ABUKULUMVCVEVHVCVEAVGSHZVHVCVNVOVEVPTVKVLABUNRVCVNVGQEVHVPTVKVCBJVLVCUOUPAV
    GUQRURUSUTVA $.

  $( 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 uztric sseqin2 iftrue df-ss wn wb eluzel2 eluzelz letri3 syl2an
    cif syl2anc biantrurd bitr4d biimprcd eqeq1d sylibrd com12 wi iffalse zdcle
    a1i wdc df-dc mpjaod jaoi ) ACDZBCDZEBAFGZDZABFGZDZHVJVLUAZABIJZBAULZFGZKZA
    BUBVKVRVMVKVNVLVQVKVLVJLVNVLKABMVLVJUCNVKVPBFVKVOVPBKABOVOBAUDZSPQVMVNVJVQV
    MVJVLLVNVJKBAMVJVLUENVMVPAFVMVOVPAKZVOUFZVOVMVTVOVMBAKZVTVMWBVOVMWBBAIJZVOE
    ZVOVMVIVHWBWDUGZBAUHZBAUIZVIBRDARDWEVHBTATBAUJUKUMVMWCVOBAOUNUOUPVOVPBAVSUQ
    URUSWAVTUTVMVOBAVAVCVMVOVDZVOWAHVMVHVIWHWGWFABVBUMVOVENVFPQVGS $.

  $( 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 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.  (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 wceq oveq2 eleq1d imbi2d wa cc
      eluzelcn addid1d ibir ax-1cn addass mp3an3 syl2anr adantr peano2uz adantl
      cfv nn0cn eqeltrrd exp31 a2d nn0ind impcom ) AFGCBHUKZGZCAIJZURGZUSCDKZIJ
      ZURGZLUSCMIJZURGZLUSCEKZIJZURGZLUSCVGNIJZIJZURGZLUSVALDEAVBMOZVDVFUSVMVCV
      EURVBMCIPQRVBVGOZVDVIUSVNVCVHURVBVGCIPQRVBVJOZVDVLUSVOVCVKURVBVJCIPQRVBAO
      ZVDVAUSVPVCUTURVBACIPQRUSVFUSVECURUSCBCUAZUBQUCVGFGZUSVIVLVRUSVIVLVRUSSZV
      ISVHNIJZVKURVSVTVKOZVIUSCTGZVGTGZWAVRVQVGULWBWCNTGWAUDCVGNUEUFUGUHVIVTURG
      VSBVHUIUJUMUNUOUPUQ $.
  $}

  $( 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 x y z $.  $d y w ph $.  $d x w z 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 ) $=
      ( vz vw vu cv cn wcel clt wbr wi wral c1 breq2 imbi1d ralbidv co wceq weq
      caddc nnnlt1 pm2.21d rgen wex wb 1nn elex2 nfra1 r19.3rm mp2b wa wo com12
      rsp adantl wsbc nfv nfsbc1v nfim sbceq1a imbi12d cbvral mpbi rspec dfsbcq
      vex sbcie syl5bbr biimprcd syl6 adantr jcad jaob syl6ibr cle nnleltp1 nnz
      cz zleloe syl2an bitr3d ancoms sylibrd ralimdva syl5bi nnind mpd ) CJZKLD
      JZWLMNZBOZDKPZAWMGJZMNZBOZDKPWMQMNZBOZDKPWMHJZMNZBOZDKPZWMXBQUDUAZMNZBOZD
      KPZWPGHWLWQQUBZWSXADKXJWRWTBWQQWMMRSTGHUCZWSXDDKXKWRXCBWQXBWMMRSTWQXFUBZW
      SXHDKXLWRXGBWQXFWMMRSTGCUCZWSWODKXMWRWNBWQWLWMMRSTXADKWMKLZWTBWMUEUFUGXEX
      EDKPZXBKLZXIQKLIJKLIUHXEXOUIUJIQKUKXEDIKXDDKULUMUNXPXEXHDKXPXNUOZXEXCDHUC
      ZUPZBOZXHXQXEXDXRBOZUOXTXQXEXDYAXNXEXDOXPXEXNXDXDDKURUQUSXPXEYAOXNXPXEACX
      BUTZYAXEYBOZHKWPAOZCKPYCHKPYDCKFUGYDYCCHKYDHVAXEYBCXECVAACXBVBVCCHUCZWPXE
      AYBYEWOXDDKYEWNXCBWLXBWMMRSTACXBVDVEVFVGVHXRBYBBACWMUTXRYBABCWMDVJEVKACWM
      XBVIVLVMVNVOVPXCBXRVQVRXQXGXSBXNXPXGXSUIXNXPUOWMXBVSNZXGXSWMXBVTXNWMWBLXB
      WBLYFXSUIXPWMWAXBWAWMXBWCWDWEWFSWGWHWIWJFWK $.
  $}

  ${
    $d A f g w x y z $.  $d f g ph w x y z $.
    infrenegsupex.ex $e |- ( ph -> E. x e. RR ( A. y e. A -. y < x
        /\ A. y e. RR ( x < y -> E. z e. A z < y ) ) ) $.
    infrenegsupex.ss $e |- ( ph -> A C_ RR ) $.
    $( The infimum of a set of reals ` A ` is the negative of the supremum of
       the negatives of its elements.  (Contributed by Jim Kingdon,
       14-Jan-2022.) $)
    infrenegsupex $p |- ( ph -> inf ( A , RR , < )
        = -u sup ( { z e. RR | -u z e. A } , RR , < ) ) $=
      ( vg vf vw cr clt cneg cv wcel csup wa wceq wbr wiso cinf crab wn infclti
      wb lttri3 adantl recnd negnegd ccnv cmpt cfv cima negeq cbvmptv mptpreima
      eqid negiso simpri imaeq1i eqtr3i supeq1i simpli isocnv ax-mp isoeq1 mpbi
      a1i cnvinfex supisoti syl5eq df-inf eqcomi fveq2i cc negcld fvmptd eqtr2d
      cnvti eqidd negeqd eqtr3d ) AEKLUAZMZMWCDNZMZEODKUBZKLPZMAWCAWCABCDHIKELI
      NZKOHNZKOQWIWJRWIWJLSUCWJWILSUCQUEAWIWJUFUGZFUDZUHZUIAWDWHAWHEKLUJZPZJKJN
      ZMZUKZULZWDAWHWREUMZKLPWSKWGWTLWRUJZEUMWGWTDKWFEWRJDKWQWFWPWEUNUOUPXAWREK
      KLWNWRTZXAWRRZJWRWRUQURZUSZUTVAVBABCDHIKKEWNLWRKKWNLWRTZAKKWNLXATZXFXBXGX
      BXCXDVCKKLWNWRVDVEXCXGXFUEXEKKWNLWRXAVFVEVGVHGABCDKELFVIAHIKLWKVSVJVKAWSW
      CWRULWDWOWCWRWCWOEKLVLVMVNAJWCWQWDKWRVOAWRVTWPWCRWQWDRAWPWCUNUGWLAWCWMVPV
      QVKVRWAWB $.
  $}

  ${
    $d A a b c y z $.  $d A a c w y z $.  $d A a w x y z $.  $d a c ph y $.
    supinfneg.ex $e |- ( ph -> E. x e. RR ( A. y e. A -. x < y
        /\ A. y e. RR ( y < x -> E. z e. A y < z ) ) ) $.
    supinfneg.ss $e |- ( ph -> A C_ RR ) $.
    $( If a set of real numbers has a least upper bound, the set of the
       negation of those numbers has a greatest lower bound.  For a theorem
       which is similar but only for the boundedness part, see ~ ublbneg .
       (Contributed by Jim Kingdon, 15-Jan-2022.) $)
    supinfneg $p |- ( ph -> E. x e. RR (
        A. y e. { w e. RR | -u w e. A } -. y < x /\
        A. y e. RR ( x < y -> E. z e. { w e. RR | -u w e. A } z < y ) ) ) $=
      ( va vb vc cv clt wbr wral wrex wi cr wa wcel cneg crab weq breq1 ralbidv
      notbid breq2 imbi1d anbi12d cbvrexv sylibr cbvralv imbi2i rexbidv imbi12d
      wn ralbii bitri anbi12i rexbii ad2antlr simplr simprl elrabi negeq eleq1d
      renegcl elrab3 biimpd mpcom wceq rspcv syl adantr ltnegcon2 sylan sylibrd
      ancoms ralrimdva sylc nfcv nfre1 nfim nfralya nfan sseld ad6antr renegcld
      wb nfv mpd recnd negnegd eqeltrd elrab sylanbrc simp-4r ltnegcon1d rspcev
      simpr syl2anc simpllr jca31 ltnegcon1 adantl sylbid r19.29af ex ralrimiva
      imp adantrl syl12anc rexlimdva ) AILZJLZMNZUPZJFOZXOXNMNZXOKLZMNZKFPZQZJR
      OZSZIRPZCLZBLZMNZUPZCELZUAZFTZERUBZOZYHYGMNZDLZYGMNZDYNPZQZCROZSZBRPZAXNY
      GMNZUPZCFOZYGXNMNZYGYQMNZDFPZQZCROZSZIRPZYFAYPUPZCFOZYIUUIQZCROZSZBRPUUMG
      UULUURIBRIBUCZUUFUUOUUKUUQUUSUUEUUNCFUUSUUDYPXNYHYGMUDUFUEUUSUUJUUPCRUUSU
      UGYIUUIXNYHYGMUGUHUEUIUJUKYEUULIRXRUUFYDUUKXQUUEJCFJCUCZXPUUDXOYGXNMUGUFU
      LYDXSXOYQMNZDFPZQZJROUUKYCUVCJRYBUVBXSYAUVAKDFXTYQXOMUGUJUMUQUVCUUJJCRUUT
      XSUUGUVBUUIXOYGXNMUDUUTUVAUUHDFXOYGYQMUDUNUOULURUSUTUKAYEUUCIRAXNRTZSZYEU
      UCUVEYESZXNUAZRTZYGUVGMNZUPZCYNOZUVGYGMNZYSQZCROZUUCUVDUVHAYEXNVGVAUVFUVD
      XRUVKAUVDYEVBUVEXRYDVCUVDXRUVJCYNYGYNTZUVDXRUVJQUVOUVDSXRXNYGUAZMNZUPZUVJ
      UVOXRUVRQZUVDUVOUVPFTZUVSYGRTZUVOUVTYMEYGRVDZUWAUVOUVTYMUVTEYGRECUCYLUVPF
      YKYGVEVFVHVIVJXQUVRJUVPFXOUVPVKZXPUVQXOUVPXNMUGUFVLVMVNUVOUWAUVDUVJUVRWIU
      WBUWAUVDSUVIUVQYGXNVOUFVPVQVRVSVTUVEYDUVNXRUVEYDSZUVMCRUWDUWASZUVLYSUWEUV
      LSZUVPXTMNZYSKFUWEUVLKUWDUWAKUVEYDKUVEKWJYCKJRKRWAXSYBKXSKWJYAKFWBWCWDWEU
      WAKWJWEUVLKWJWEUWFXTFTZSZUWGSZXTUAZYNTZUWKYGMNZYSUWJUWKRTUWKUAZFTZUWLUWJX
      TUWJUWHXTRTZUWFUWHUWGVBZAUWHUWPQUVDYDUWAUVLUWHUWGAFRXTHWFWGWKZWHUWJUWNXTF
      UWJXTUWJXTUWRWLWMUWQWNYMUWOEUWKRYKUWKVKYLUWNFYKUWKVEVFWOWPUWJYGXTUWDUWAUV
      LUWHUWGWQUWRUWIUWGWTWRYRUWMDUWKYNYQUWKYGMUDWSXAUWEUVDUWASZYDSZUVLUWGKFPZU
      WEUVDUWAYDAUVDYDUWAXBUWDUWAWTUVEYDUWAVBXCUWTUVLUXAUWTUVLUVPXNMNZUXAUWSUVL
      UXBWIYDXNYGXDVNUWSYDUXBUXAQZUWAYDUXCQZUVDUWAUVPRTUXDYGVGYCUXCJUVPRUWCXSUX
      BYBUXAXOUVPXNMUDUWCYAUWGKFXOUVPXTMUDUNUOVLVMXEXJXFXJVPXGXHXIXKUUBUVKUVNSB
      UVGRYHUVGVKZYOUVKUUAUVNUXEYJUVJCYNUXEYIUVIYHUVGYGMUGUFUEUXEYTUVMCRUXEYPUV
      LYSYHUVGYGMUDUHUEUIWSXLXHXMWK $.
  $}

  ${
    $d A a b c y z $.  $d A a c w y z $.  $d A a w x y z $.  $d a c ph y $.
    infsupneg.ex $e |- ( ph -> E. x e. RR ( A. y e. A -. y < x
        /\ A. y e. RR ( x < y -> E. z e. A z < y ) ) ) $.
    infsupneg.ss $e |- ( ph -> A C_ RR ) $.
    $( If a set of real numbers has a greatest lower bound, the set of the
       negation of those numbers has a least upper bound.  To go in the other
       direction see ~ supinfneg .  (Contributed by Jim Kingdon,
       15-Jan-2022.) $)
    infsupneg $p |- ( ph -> E. x e. RR (
        A. y e. { w e. RR | -u w e. A } -. x < y /\
        A. y e. RR ( y < x -> E. z e. { w e. RR | -u w e. A } y < z ) ) ) $=
      ( vb va vc cv clt wbr wral wrex wi cr wa wcel cneg crab weq breq2 ralbidv
      notbid breq1 imbi1d anbi12d cbvrexv sylibr cbvralv imbi2i rexbidv imbi12d
      wn ralbii bitri anbi12i rexbii ad2antlr simplr simprl elrabi negeq eleq1d
      renegcl elrab3 biimpd mpcom wceq rspcv adantr wb ltnegcon1 ancoms sylibrd
      syl sylan ralrimdva sylc nfv nfcv nfre1 nfim nfralya ad6antr mpd renegcld
      nfan sseld recnd negnegd eqeltrd elrab sylanbrc simp-4r ltnegcon2d rspcev
      simpr syl2anc simpllr jca31 ltnegcon2 adantl sylbid r19.29af ex ralrimiva
      imp adantrl syl12anc rexlimdva ) AILZJLZMNZUPZIFOZXOXNMNZKLZXNMNZKFPZQZIR
      OZSZJRPZBLZCLZMNZUPZCELZUAZFTZERUBZOZYHYGMNZYHDLZMNZDYNPZQZCROZSZBRPZAYHX
      OMNZUPZCFOZXOYHMNZYQYHMNZDFPZQZCROZSZJRPZYFAYPUPZCFOZYIUUIQZCROZSZBRPUUMG
      UULUURJBRJBUCZUUFUUOUUKUUQUUSUUEUUNCFUUSUUDYPXOYGYHMUDUFUEUUSUUJUUPCRUUSU
      UGYIUUIXOYGYHMUGUHUEUIUJUKYEUULJRXRUUFYDUUKXQUUEICFICUCZXPUUDXNYHXOMUGUFU
      LYDXSYQXNMNZDFPZQZIROUUKYCUVCIRYBUVBXSYAUVAKDFXTYQXNMUGUJUMUQUVCUUJICRUUT
      XSUUGUVBUUIXNYHXOMUDUUTUVAUUHDFXNYHYQMUDUNUOULURUSUTUKAYEUUCJRAXORTZSZYEU
      UCUVEYESZXOUAZRTZUVGYHMNZUPZCYNOZYHUVGMNZYSQZCROZUUCUVDUVHAYEXOVGVAUVFUVD
      XRUVKAUVDYEVBUVEXRYDVCUVDXRUVJCYNYHYNTZUVDXRUVJQUVOUVDSXRYHUAZXOMNZUPZUVJ
      UVOXRUVRQZUVDUVOUVPFTZUVSYHRTZUVOUVTYMEYHRVDZUWAUVOUVTYMUVTEYHRECUCYLUVPF
      YKYHVEVFVHVIVJXQUVRIUVPFXNUVPVKZXPUVQXNUVPXOMUGUFVLVRVMUVOUWAUVDUVJUVRVNU
      WBUWAUVDSUVIUVQUVDUWAUVIUVQVNXOYHVOVPUFVSVQVPVTWAUVEYDUVNXRUVEYDSZUVMCRUW
      DUWASZUVLYSUWEUVLSZXTUVPMNZYSKFUWEUVLKUWDUWAKUVEYDKUVEKWBYCKIRKRWCXSYBKXS
      KWBYAKFWDWEWFWJUWAKWBWJUVLKWBWJUWFXTFTZSZUWGSZXTUAZYNTZYHUWKMNZYSUWJUWKRT
      UWKUAZFTZUWLUWJXTUWJUWHXTRTZUWFUWHUWGVBZAUWHUWPQUVDYDUWAUVLUWHUWGAFRXTHWK
      WGWHZWIUWJUWNXTFUWJXTUWJXTUWRWLWMUWQWNYMUWOEUWKRYKUWKVKYLUWNFYKUWKVEVFWOW
      PUWJXTYHUWRUWDUWAUVLUWHUWGWQUWIUWGWTWRYRUWMDUWKYNYQUWKYHMUDWSXAUWEUVDUWAS
      ZYDSZUVLUWGKFPZUWEUVDUWAYDAUVDYDUWAXBUWDUWAWTUVEYDUWAVBXCUWTUVLUXAUWTUVLX
      OUVPMNZUXAUWSUVLUXBVNZYDUWAUVDUXCYHXOXDVPVMUWSYDUXBUXAQZUWAYDUXDQZUVDUWAU
      VPRTUXEYHVGYCUXDIUVPRUWCXSUXBYBUXAXNUVPXOMUDUWCYAUWGKFXNUVPXTMUDUNUOVLVRX
      EXJXFXJVSXGXHXIXKUUBUVKUVNSBUVGRYGUVGVKZYOUVKUUAUVNUXFYJUVJCYNUXFYIUVIYGU
      VGYHMUGUFUEUXFYTUVMCRUXFYPUVLYSYGUVGYHMUDUHUEUIWSXLXHXMWH $.
  $}

  ${
    $d A f g w x y z $.  $d f g ph x y z $.
    supminfex.ex $e |- ( ph -> E. x e. RR ( A. y e. A -. x < y
        /\ A. y e. RR ( y < x -> E. z e. A y < z ) ) ) $.
    supminfex.ss $e |- ( ph -> A C_ RR ) $.
    $( A supremum is the negation of the infimum of that set's image under
       negation.  (Contributed by Jim Kingdon, 14-Jan-2022.) $)
    supminfex $p |- ( ph ->
        sup ( A , RR , < ) = -u inf ( { w e. RR | -u w e. A } , RR , < ) ) $=
      ( vg vf cv cneg wcel cr crab clt wceq adantl wb eleq1d cinf supinfneg wss
      csup ssrab2 a1i infrenegsupex elrabi sselda negeq elrab3 renegcl syl recn
      negnegd 3bitrd eqrdav supeq1d negeqd eqtrd cc wa wbr lttri3 infclti recnd
      wn supclti negcon2 syl2anc mpbid ) AEKZLZFMZENOZNPUAZFNPUDZLZQZVQVPLQZAVP
      DKZLZVOMZDNOZNPUDZLVRABCDVOABCDEFGHUBZVONUCAVNENUEUFUGAWEVQANWDFPABWDFNBK
      ZWDMZWGNMZAWCDWGNUHRAFNWGHUIWIWHWGFMZSAWIWHWGLZVOMZWKLZFMZWJWCWLDWGNWAWGQ
      WBWKVOWAWGUJTUKWIWKNMWLWNSWGULVNWNEWKNVLWKQVMWMFVLWKUJTUKUMWIWMWGFWIWGWGU
      NUOTUPRUQURUSUTAVPVAMVQVAMVSVTSAVPABCDIJNVOPJKZNMIKZNMVBWOWPQWOWPPVCVGWPW
      OPVCVGVBSAWOWPVDRZWFVEVFAVQABCDIJNFPWQGVHVFVPVQVIVJVK $.
  $}

  $( 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 ) ) ) $=
    ( cn wcel c1 wceq c2 cuz cfv wo wne wa olc cz nnz wn 1z zdceq orbi2i sylibr
    wdc mpan2 df-dc sylib df-ne syl ordi sylanbrc eluz2b3 1nn eleq1 mpbiri jaoi
    eluz2nn impbii ) ABCZADEZAFGHCZIZUOUPUOADJZKZIZURUOUPUOIUPUSIZVAUOUPLUOAMCZ
    VBANVCUPUPOZIZVBVCUPTZVEVCDMCVFPADQUAUPUBUCUSVDUPADUDRSUEUPUOUSUFUGUQUTUPAU
    HRSUPUOUQUPUODBCUIADBUJUKAUMULUN $.

  $( 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 $.
  $}

  $( Membership of an integer in an upper set of integers is decidable.
     (Contributed by Jim Kingdon, 18-Apr-2020.) $)
  eluzdc $p |- ( ( M e. ZZ /\ N e. ZZ ) -> DECID N e. ( ZZ>= ` M ) ) $=
    ( cz wcel wa cle wbr clt wo cuz cfv wdc zlelttric wn eluz biimprd wb zltnle
    ancoms notbid sylbid orim12d df-dc syl6ibr mpd ) ACDZBCDZEZABFGZBAHGZIZBAJK
    DZLZABMUHUKULULNZIUMUHUIULUJUNUHULUIABOZPUHUJUINZUNUGUFUJUPQBARSUHUNUPUHULU
    IUOTPUAUBULUCUDUE $.

  ${
    $d A a b x y z $.
    $( The image under negation of a bounded-above set of reals is bounded
       below.  For a theorem which is similar but also adds that the bounds
       need to be the tightest possible, see ~ supinfneg .  (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 x y z $.
    $( The image under negation of an inhabited set of reals is inhabited.
       (Contributed by Jim Kingdon, 10-Apr-2020.) $)
    negm $p |- ( ( A C_ RR /\ E. x x e. A ) ->
        E. y y e. { z e. RR | -u z e. A } ) $=
      ( cr wss cv wcel wex cneg crab ssel renegcl wceq negeq eleq1d elrab3 recn
      wb syl negnegd bitrd biimprd syli elex2 syl6 exlimdv imp ) DEFZAGZDHZAIBG
      CGZJZDHZCEKZHBIZUIUKUPAUIUKUJJZUOHZUPUKUIUJEHZURDEUJLUSURUKUSURUQJZDHZUKU
      SUQEHURVASUJMUNVACUQEULUQNUMUTDULUQOPQTUSUTUJDUSUJUJRUAPUBUCUDBUQUOUEUFUG
      UH $.

    $( 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 $.
  $}

  $( 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 ) ) $=
    ( cn0 wcel c1 cle wbr c3 c2 clt w3o wo wb cz zleloe sylancr syl mpbid caddc
    wceq co w3a simp2 simp1 1z nn0z 1nn0 nn0ltp1le mpan breq1i syl6bbr 2z bitrd
    orbi1d orcomd orcom orbi2i sylib 3orass sylibr wi 3mix1 eqcoms a1i 3mix2 wa
    df-2 simp3 biantrurd 2nn0 cr nn0red 3re letri3 sylancl 3bitr4d 3mix3 syl6bi
    df-3 3jaod mpd ) ABCZDAEFZAGEFZUAZDASZHASZHAIFZJZADSZAHSZAGSZJZWDWEWFWGKZKZ
    WHWDWEWGWFKZKWNWDWOWEWDDAIFZWEKZWOWEKZWDWBWQWAWBWCUBWDWAWBWQLZWAWBWCUCZWADM
    CAMCZWSUDAUEZDANOPQWDWAWQWRLWTWAWPWOWEWAWPHAEFZWOWAWPDDRTZAEFZXCDBCWAWPXELU
    FDAUGUHHXDAEVFUIUJWAHMCXAXCWOLUKXBHANOULUMPQUNWOWMWEWGWFUOUPUQWEWFWGURUSWDW
    EWLWFWGWEWLUTWDWLADWIWJWKVAVBVCWFWLUTWDWLAHWJWIWKVDVBVCWDWGWKWLWDGAEFZWCXFV
    EZWGWKWDWCXFWAWBWCVGVHWDWAWGXFLWTWAWGHDRTZAEFZXFHBCWAWGXILVIHAUGUHGXHAEVRUI
    UJPWDAVJCGVJCWKXGLWDAWTVKVLAGVMVNVOWKWIWJVPVQVSVT $.

  $( 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 $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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 $.

    $( Division restricted to ` ZZ X. NN ` is a function.  Given excluded
       middle, it would be easy to prove this for ` CC X. ( CC \ { 0 } ) ` .
       The key difference is that an element of ` NN ` is apart from zero,
       whereas being an element of ` CC \ { 0 } ` implies being not equal to
       zero.  (Contributed by Jim Kingdon, 19-Mar-2020.) $)
    divfnzn $p |- ( / |` ( ZZ X. NN ) ) Fn ( ZZ X. NN ) $=
      ( vy vz vx cv co wceq cc crio wcel cn wral cz cdiv cres nncn ad2antlr cc0
      wa adantl eqeltrrd cmul cxp wfn zcn ad2antrr cap wbr divmulapd riotabidva
      simpr nnap0 wb eqcom a1i riotabidv simpl divclapd reueq sylib riotacl syl
      wreu sylan rgen2 csn cdif cmpt2 df-div reseq1i wss zsscn eldifsn sylanbrc
      wne nnne0 ssriv resmpt2 mp2an eqtri fnmpt2 ax-mp ) ADZBDZUAECDZFZBGHZGIZA
      JKCLKMLJUBZNZWHUCWGCALJWDLIZWBJIZRZWDWBMEZWCFZBGHZWFGWLWNWEBGWLWCGIZRWDWB
      WCWJWDGIZWKWPWDUDZUEWKWBGIZWJWPWBOZPWLWPUJWKWBQUFUGZWJWPWBUKZPUHUIWLWCWMF
      ZBGHZWOGWLXCWNBGXCWNULWLWCWMUMUNUOWJWQWKXDGIZWRWQWKRZXCBGVBZXEXFWMGIXGXFW
      DWBWQWKUPWKWSWQWTSWKXAWQXBSUQBGWMURUSXCBGUTVAVCTTVDCALJWFWIGWICAGGQVEVFZW
      FVGZWHNZCALJWFVGZMXIWHCABVHVILGVJJXHVJXJXKFVKCJXHWDJIWQWDQVNWDXHIWDOWDVOW
      DGQVLVMVPCAGXHLJWFVQVRVSVTWA $.
  $}

  ${
    $d x y 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 ) ) $=
      ( cq wcel cv cdiv cz cn cxp cres co wceq wrex cima df-q eleq2i resima wfn
      wss wb divfnzn ssid ovelimab mp2an 3bitr2i wa ovres eqeq2d 2rexbiia bitri
      ) CDEZCAFZBFZGHIJZKZLZMZBINAHNZCUMUNGLZMZBINAHNULCGUOOZECUPUOOZEZUSDVBCPQ
      VCVBCGUORQUPUOSUOUOTVDUSUAUBUOUCABUOHICUPUDUEUFURVAABHIUMHEUNIEUGUQUTCUMU
      NHIGUHUIUJUK $.

    $( 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 cap nnap0 divcanap1d simpr eqeltrd eleq1d syl5ibrcom
      wbr oveq1 rexlimdva reximia ) BDEBCFZAFZGHZIZAJKCLKZBUPTHZLEZAJKZCABMUSUR
      CLKZAJKVBURCALJNVCVAAJUPJEZURVACLVDUOLEZOZVAURUQUPTHZLEVFVGUOLVFUOUPVEUOP
      EVDUOQUAVDUPPEVEUPUBRVDUPUCUDUKVEUPUERUFVDVEUGUHURUTVGLBUQUPTULUIUJUMUNSS
      $.
  $}

  ${
    $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 wa cc0 cap wbr zre nnre
      nnap0 jca redivclap 3expb syl2an eleq1 syl5ibrcom rexlimivv sylbi ) ADEAB
      FZCFZGHZIZCJKBLKAMEZBCANUMUNBCLJUJLEZUKJEZOUNUMULMEZUOUJMEZUKMEZUKPQRZOUQ
      UPUJSUPUSUTUKTUKUAUBURUSUTUQUJUKUCUDUEAULMUFUGUHUI $.

    $( 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.  (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 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 vv vu 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 cap wbr anim12i nncn nnap0 divadddivap syl2an an4s
      zcn jca sylan9eqr w3a rspceov sylibr syl3anc rexlimivv rexlimdvv syl2anb
      exp43 imp ) AIJACKZDKZLMZNZDOPCQPZBEKZFKZLMZNZFOPEQPZABRMZIJZBIJCDAUAEFBU
      AWAWFWHWAWEWHEFQOVTWBQJZWCOJZSZWEWHUBUBCDQOVQQJZVROJZSZVTWKWEWHWNWKVTWEWH
      WNWKSZVTWESZSVQWCUCMZWBVRUCMZRMZQJZVRWCUCMZOJZWGWSXALMZNZWHWOWTWPWOWQWRWL
      WJWQQJZWMWIWJWLWCQJXEWCUMVQWCUDUEUFWKWIVRQJZWRQJWNWIWJUGWMXFWLVRUMUHWBVRU
      DUIUJUKWOXBWPWMWJXBWLWIVRWCUNULUKWPWOWGVSWDRMZXCAVSBWDRUOWLWIWMWJXGXCNZWL
      WISVQTJZWBTJZSVRTJZVRUPUQURZSZWCTJZWCUPUQURZSZSXHWMWJSWLXIWIXJVQVEWBVEUSW
      MXMWJXPWMXKXLVRUTVRVAVFWJXNXOWCUTWCVAVFUSVQWBVRWCVBVCVDVGWTXBXDVHWGGKHKLM
      NHOPGQPWHGHQOWSXAWGLVIGHWGUAVJVKVDVOVLVMVPVN $.

    $( 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 cap wbr nnap0 divnegapd znegcl sylan eqeltrd eleq1d syl5ibrcom
      znq negeq rexlimivv sylbi ) ADEABFZCFZGHZIZCJKBLKAMZDEZBCANURUTBCLJUOLEZU
      PJEZOZUTURUQMZDEVCVDUOMZUPGHZDVCUOUPVAUOPEVBUOQRVBUPPEVAUPSTVBUPUAUBUCVAU
      PUDTUEVAVELEVBVFDEUOUFVEUPUKUGUHURUSVDDAUQULUIUJUMUN $.

    $( 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 cap wbr zcn ad2ant2r nncn nnap0
      jca ad2ant2l divmuldivap syl2anc sylan9eqr rspceov 3expa sylibr rexlimivv
      wi exp43 rexlimdvv imp syl2anb ) AIJACKZDKZLMZNZDOPCQPZBEKZFKZLMZNZFOPEQP
      ZABRMZIJZBIJCDAUBEFBUBVMVRVTVMVQVTEFQOVLVNQJZVOOJZSZVQVTVDVDCDQOVIQJZVJOJ
      ZSZVLWCVQVTWFWCVLVQVTWFWCSZVLVQSZSVIVNRMZQJZVJVORMZOJZSZVSWIWKLMZNZVTWGWM
      WHWDWAWEWBWMWDWASWJWEWBSWLVIVNUCVJVOUAUDUEUFWHWGVSVKVPRMZWNAVKBVPRUGWGVIT
      JZVNTJZSZVJTJZVJUHUIUJZSZVOTJZVOUHUIUJZSZSZWPWNNWDWAWSWEWBWDWQWAWRVIUKVNU
      KUDULWEWBXFWDWAWEXBWBXEWEWTXAVJUMVJUNUOWBXCXDVOUMVOUNUOUDUPVIVNVJVOUQURUS
      WMWOSVSGKHKLMNHOPGQPZVTWJWLWOXGGHQOWIWKVSLUTVAGHVSUBVBURUEVEVCVFVGVH $.
  $}

  $( 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 A w x y z $.  $d B w x y z $.
    $( Apartness is equivalent to not equal for rationals.  (Contributed by Jim
       Kingdon, 20-Mar-2020.) $)
    qapne $p |- ( ( A e. QQ /\ B e. QQ ) -> ( A # B <-> A =/= B ) ) $=
      ( vz vw vx vy wcel wa cv cdiv co wceq cn cz cap wbr wb cmul c1 cc cq wrex
      wne elq biimpi adantl simplll sylib simplrl simprl ad3antrrr simprr nncnd
      cc0 zcnd syl divclapd simplrr mulcld recclapd recap0d syl112anc divrecapd
      nnap0 apmul1 eqcomd mulassd recidapd oveq2d mulid1d breq12d bitrd zmulcld
      3eqtrd breq1d mulcomd 3eqtr2d breq2d simpr simpllr 3bitr4d syl2anc bitr3d
      nnzd zapne wn notbid apti qcn ad2antrr eqeltrd necon3bid rexlimdvva mpd
      ex ) AUAGZBUAGZHZBCIZDIZJKZLZDMUBCNUBZABOPZABUCZQZWQXCWPWQXCCDBUDUEUFWRXB
      XFCDNMWRWSNGZWTMGZHZHZXBXFXJXBHZAEIZFIZJKZLZFMUBENUBZXFXKWPXPWPWQXIXBUGEF
      AUDUHXKXOXFEFNMXKXLNGZXMMGZHZHZXOXFXTXOHZXDXLWTRKZXMWSRKZUCZXEYAYBYCOPZXD
      YDYAXLXAXMRKZOPZXNXAOPZYEXDYAYGXLSXMJKZRKZYFYIRKZOPZYHYAXLTGYFTGYITGYIUNO
      PYGYLQYAXLXKXQXRXOUIZUOZYAXAXMYAWSWTYAWSXJXGXBXSXOWRXGXHUJUKZUOZYAWTXJXHX
      BXSXOWRXGXHULUKZUMZYAXHWTUNOPYQWTVDUPZUQZYAXMXKXQXRXOURZUMZUSYAXMUUBYAXRX
      MUNOPUUAXMVDUPZUTZYAXMUUBUUCVAXLYFYIVEVBYAYJXNYKXAOYAXNYJYAXLXMYNUUBUUCVC
      VFYAYKXAXMYIRKZRKXASRKXAYAXAXMYIYTUUBUUDVGYAUUESXARYAXMUUBUUCVHVIYAXAYTVJ
      VNVKVLYAYEXLYCSWTJKZRKZOPZYGYAYEYBUUFRKZUUGOPZUUHYAYBTGZYCTGZUUFTGUUFUNOP
      YEUUJQYAYBYAXLWTYMYAWTYQWDVMZUOZYAYCYAXMWSYAXMUUAWDYOVMZUOZYAWTYRYSUTZYAW
      TYRYSVAYBYCUUFVEVBYAUUIXLUUGOYAUUIXLWTUUFRKZRKXLSRKXLYAXLWTUUFYNYRUUQVGYA
      UURSXLRYAWTYRYSVHVIYAXLYNVJVNVOVLYAUUGYFXLOYAUUGXMWSUUFRKZRKXMXARKYFYAXMW
      SUUFUUBYPUUQVGYAXAUUSXMRYAWSWTYPYRYSVCVIYAXMXAUUBYTVPVQVRVLYAAXNBXAOXTXOV
      SXJXBXSXOVTZVKWAZYAYBNGYCNGYEYDQUUMUUOYBYCWEWBWCYAYBYCABYAYEWFZXDWFZYBYCL
      ZABLZYAYEXDUVAWGYAUUKUULUVDUVBQUUNUUPYBYCWHWBYAATGZBTGUVEUVCQXJUVFXBXSXOW
      PUVFWQXIAWIWJUKYABXATUUTYTWKABWHWBWAWLVLWOWMWNWOWMWN $.
  $}

  $( Rational 'Less than' expressed in terms of 'less than or equal to'.  Also
     see ~ ltleap which is a similar result for real numbers.  (Contributed by
     Jim Kingdon, 11-Oct-2021.) $)
  qltlen $p |- ( ( A e. QQ /\ B e. QQ ) ->
      ( A < B <-> ( A <_ B /\ B =/= A ) ) ) $=
    ( cq wcel wa clt wbr cle wne cap cr wb qre ltleap syl2an qapne anbi2d bitrd
    necom anbi2i syl6bb ) ACDZBCDZEZABFGZABHGZABIZEZUFBAIZEUDUEUFABJGZEZUHUBAKD
    BKDUEUKLUCAMBMABNOUDUJUGUFABPQRUGUIUFABSTUA $.

  $( Apartness is equivalent to not equal for rationals.  (Contributed by Jim
     Kingdon, 9-Nov-2021.) $)
  qlttri2 $p |- ( ( A e. QQ /\ B e. QQ ) ->
      ( A =/= B <-> ( A < B \/ B < A ) ) ) $=
    ( cq wcel wa cap wbr wne clt wo qapne cr wb qre reaplt syl2an bitr3d ) ACDZ
    BCDZEABFGZABHABIGBAIGJZABKRALDBLDTUAMSANBNABOPQ $.

  ${
    $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 cap wbr c1 cdiv co wb cz cn cv wceq wrex wa wne
      ax-1cn 1ap0 div0api 0z 1nn znq mp2an eqeltrri qapne mpan2 biimpar wi cmul
      elq nnne0 ancli nnz zapne sylancl adantl pm5.32i anbi1i breq1 cc zcn nncn
      anim12i divap0b 3expa sylan bicomd sylan9bbr sylbir simplll zmulcl sylan2
      bitrd adantr msqznn adantlr bitri oveq2 dividap oveq1d simpll simpl simpr
      jca divdivdivap syl22anc eqtr3d anass1rs sylan9eqr an32s ex sylbid anasss
      an4s rspceov sylibr syl8 rexlimivv sylbi imp syldan ) AFGZAHUAZAHIJZKALMZ
      FGZXGXIXHXGHFGXIXHNHKLMZHFKUBUCUDHOGZKPGXLFGUEUFHKUGUHUIAHUJUKULXGXIXKXGA
      BQZCQZLMZRZCPSBOSXIXKUMZBCAUOXQXRBCOPXNOGZXOPGZTZXQXIXNXOUNMZOGZXNXNUNMZP
      GZTZXJYBYDLMZRZTZXKXTXSXTXOHUAZTXQXIYIUMZUMZXTYJXOUPUQXSXTYJYLYAYJTZXQYKY
      MXQTZXIXNHUAZYIYNXIXNHIJZYOYNYAXOHIJZTZXQTZXIYPNYRYMXQYAYQYJXTYQYJNZXSXTX
      OOGZXMYTXOURZUEXOHUSUTVAVBVCZXQXIXPHIJZYRYPAXPHIVDYRYPUUDYAXNVEGZXOVEGZTZ
      YQYPUUDNZXSUUEXTUUFXNVFXOVGVHZUUEUUFYQUUHXNXOVIVJVKVLVMVNYNXSXMYPYONXSXTY
      JXQVOUEXNHUSUTZVRYNYOYIYNYOTZYFYHYMYOYFXQYAYOYFYJYAYOTYCYEYAYCYOXTXSUUAYC
      UUBXNXOVPVQVSXSYOYEXTXNVTWAWIWAWAUUKYSYPTZYHUULYNYPTUUKYSYNYPUUCVCYNYPYOU
      UJVBWBYRYPXQYHXQYRYPTXJKXPLMZYGAXPKLWCYAYPYQUUMYGRZYAUUGYPYQTUUNUUIUUEYPU
      UFYQUUNUUEYPTZUUFYQTZTZXNXNLMZXPLMZUUMYGUUQUURKXPLUUOUURKRUUPXNWDVSWEUUQU
      UEUUOUUOUUPUUSYGRUUEYPUUPWFUUOUUPWGZUUTUUOUUPWHXNXNXNXOWJWKWLWSVKWMWNWOVN
      WIWPWQWPWRVQYIXJDQEQLMREPSDOSZXKYCYEYHUVADEOPYBYDXJLWTVJDEXJUOXAXBXCXDXEX
      F $.
  $}

  $( 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 3ad2ant1 3ad2ant2 cap simp3 wb
    wbr cz 0z zq ax-mp qapne mpan2 mpbird divrecapd qreccl qmulcl 3impb eqeltrd
    wa sylan2 ) ACDZBCDZBEFZGZABHIAJBHIZKIZCUQABUNUOALDUPAMNUOUNBLDUPBMOUQBEPSZ
    UPUNUOUPQUOUNUTUPRZUPUOECDZVAETDVBUAEUBUCBEUDUEOUFUGUNUOUPUSCDZUOUPULUNURCD
    VCBUHAURUIUMUJUK $.

  $( 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 a real which is not rational with a nonzero rational is not
     rational.  Note that by "not rational" we mean the negation of "is
     rational" (whereas "irrational" is often defined to mean apart from any
     rational number - given excluded middle these two definitions would be
     equivalent).  (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 cmul co wn wa eldif remulcl wi 3expb 3ad2ant2
    qre cc sylan2 ad2ant2r cdiv qdivcl expcom adantl wceq recn 3ad2ant1 qcn cap
    simp3 wb cz 0z zq ax-mp qapne mpan2 mpbird divcanap4d eleq1d con3d ex com23
    wbr sylibd imp31 jca 3impb syl3an1b sylibr ) ACDEZFZBDFZBGHZIABJKZCFZVQDFZL
    ZMZVQVMFVNACFZADFZLZMZVOVPWAACDNWEVOVPWAWEVOVPMZMVRVTWBVOVRWDVPVOWBBCFVRBSA
    BOUAUBWBWDWFVTWBWFWDVTWBWFWDVTPWBWFMZVSWCWGVSVQBUCKZDFZWCWFVSWIPWBVSWFWIVSV
    OVPWIVQBUDQUEUFWGWHADWBVOVPWHAUGWBVOVPIZABWBVOATFVPAUHUIVOWBBTFVPBUJRWJBGUK
    VFZVPWBVOVPULVOWBWKVPUMZVPVOGDFZWLGUNFWMUOGUPUQBGURUSRUTVAQVBVGVCVDVEVHVIVJ
    VKVQCDNVL $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Complex numbers as pairs of reals
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $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 wral wcel ci cmul co caddc wa cxp wf1 wfo
      wf1o wf wi wfn simpl recnd ax-icn simpr mulcld addcld rgen2a fnmpt2 ax-mp
      a1i c1st c2nd 1st2nd2 fveq2d df-ov syl6eqr xp1st xp2nd oveq1 oveq2 oveq2d
      cop ovmpt2g syl3anc eqtrd eqeltrd rgen ffnfv mpbir2an wb jca syl2an fveq2
      cru oveq12d eqeq12d vtoclga eqeqan12d cvv vex 1stexg 2ndexg syl6bb biimpd
      opth 3bitr4d dff13 wrex cnre eqeq2d 2rexbiia sylibr rexxp dffo3 df-f1o )
      IIUAZJCUDXCJCUBZXCJCUCZXDXCJCUEZEKZCLZFKZCLZMZXGXIMZUFZFXCNEXCNXFCXCUGZXH
      JOZEXCNAKZPBKZQRZSRZJOZBINAINXNXTABIXPIOZXQIOZTZXPXRYCXPYAYBUHUIYCPXQPJOZ
      YCUJUQYCXQYAYBUKUIULUMUNABIIXSCJDUOUPXOEXCXGXCOZXHXGURLZPXGUSLZQRZSRZJYEX
      HYFYGCRZYIYEXHYFYGVIZCLYJYEXGYKCXGIIUTZVAYFYGCVBVCYEYFIOZYGIOZYIJOYJYIMXG
      IIVDZXGIIVEZYEYFYHYEYFYOUIYEPYGYDYEUJUQYEYGYPUIULUMZABYFYGIIXSYICYFXRSRJX
      PYFXRSVFXQYGMXRYHYFSXQYGPQVGVHDVJVKVLZYQVMVNEXCJCVOVPZXMEFXCYEXIXCOZTZXKX
      LUUAYIXIURLZPXIUSLZQRZSRZMZYFUUBMYGUUCMTZXKXLYEYMYNTUUBIOZUUCIOZTUUFUUGVQ
      YTYEYMYNYOYPVRYTUUHUUIXIIIVDXIIIVEVRYFYGUUBUUCWAVSYEYTXHYIXJUUEYRXHYIMXJU
      UEMEXIXCXLXHXJYIUUEXGXICVTXLYFUUBYHUUDSXGXIURVTXLYGUUCPQXGXIUSVTVHWBWCYRW
      DWEUUAXLYKUUBUUCVIZMUUGYEYTXGYKXIUUJYLXIIIUTWEYFYGUUBUUCXGWFOZYFWFOEWGZXG
      WFWHUPUUKYGWFOUULXGWFWIUPWLWJWMWKUNEFXCJCWNVPXEXFXIXHMZEXCWOZFJNYSUUNFJXI
      JOZXIGKZHKZCRZMZHIWOGIWOZUUNUUOXIUUPPUUQQRZSRZMZHIWOGIWOUUTGHXIWPUUSUVCGH
      IIUUPIOZUUQIOZTZUURUVBXIUVFUVDUVEUVBJOUURUVBMUVDUVEUHZUVDUVEUKZUVFUUPUVAU
      VFUUPUVGUIUVFPUUQYDUVFUJUQUVFUUQUVHUIULUMABUUPUUQIIXSUVBCUUPXRSRJXPUUPXRS
      VFXQUUQMXRUVAUUPSXQUUQPQVGVHDVJVKWQWRWSUUMUUSEGHIIXGUUPUUQVIZMZXHUURXIUVJ
      XHUVICLUURXGUVICVTUUPUUQCVBVCWQWTWSVNEFXCJCXAVPXCJCXBVP $.
  $}

$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  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 $.

  $( 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 apart from zero.  (Contributed by Jim Kingdon,
     22-Mar-2020.) $)
  rpap0 $p |- ( A e. RR+ -> A # 0 ) $=
    ( crp wcel rpre rpgt0 gt0ap0d ) ABCAADAEF $.

  $( 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 real number apart from zero.  (Contributed by Jim
     Kingdon, 22-Mar-2020.) $)
  rpreap0 $p |- ( A e. RR+ -> ( A e. RR /\ A # 0 ) ) $=
    ( crp wcel cr cc0 cap wbr rpre rpap0 jca ) ABCADCAEFGAHAIJ $.

  $( 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 is a complex number apart from zero.  (Contributed by Jim
     Kingdon, 22-Mar-2020.) $)
  rpcnap0 $p |- ( A e. RR+ -> ( A e. CC /\ A # 0 ) ) $=
    ( crp wcel cc cc0 cap wbr rpcn rpap0 jca ) ABCADCAEFGAHAIJ $.

  $( 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 cap rpre rpreap0 redivclap syl2an elrp
    3expb divgt0 syl2anb sylanbrc ) ACDZBCDZEABFGZHDZIUDJKZUDCDUBAHDZBHDZBILKZE
    UEUCAMBNUGUHUIUEABORPUBUGIAJKEUHIBJKEUFUCAQBQABSTUDQUA $.

  $( 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 cap wbr wa cdiv co rpreap0 redivclap 3expb sylan2 ) BCDAE
    DZBEDZBFGHZIABJKEDZBLPQRSABMNO $.

  $( 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 real apart from zero or its negation is a positive real, but not
     both.  (Contributed by Jim Kingdon, 23-Mar-2020.) $)
  rpnegap $p |- ( ( A e. RR /\ A # 0 ) -> ( A e. RR+ \/_ -u A e. RR+ ) ) $=
    ( cr wcel cc0 cap wbr wa crp cneg wxo clt 0re reapltxor mpan2 xorcom syl6bb
    wb pm5.32i anxordi elrp bitri biimpi a1i renegcl biantrurd syl6rbbr lt0neg1
    ibar 3bitr2d adantr xorbi12d mpbird ) ABCZADEFZGZAHCZAIZHCZJUMDAKFZGZUMADKF
    ZGZJZUOVCUOUMUSVAJZGVCUMUNVDUMUNVAUSJZVDUMDBCUNVEQLADMNVAUSOPRUMUSVASUAUBUO
    UPUTURVBUPUTQUOATUCUMURVBQUNUMURDUQKFZVAVBUMVFUQBCZVFGURUMVGVFAUDUEUQTUFAUG
    UMVAUHUIUJUKUL $.

  $( 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 $.
  $}

  ${
    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 apart from zero.  (Contributed by Jim Kingdon,
       28-Jul-2021.) $)
    rpap0d $p |- ( ph -> A # 0 ) $=
      ( crp wcel cc0 cap wbr rpap0 syl ) ABDEBFGHCBIJ $.

    $( 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 w3a c1 cdiv co wceq rpgecl rpcn rpap0 dividapd eqcomd
    syl simp3 simp1 lediv2d mpbid eqbrtrd ) ACDZBEDZABFGZHZIBBJKZBAJKZFUGBCDZIU
    HLABMZUJUHIUJBBNBOPQRUGUFUHUIFGUDUEUFSUGABBUDUEUFTUKUKUAUBUC $.

  $( 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 $.
    $}
  $}

  ${
    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 cap nncn nnap0 jca div0ap syl 0le0 syl6eqbr
    cc oveq1 id breq12d adantr mpbird jaoi sylbi imp ) ACDZBEDZABFGZAHIZVCAEDZA
    JKZLVDVFMZANVGVIVHVGVDVFVGVDOPBHIZVFVDVJVGBQRVDVGBUADVJVFSBUBABUCUDUETVHVDV
    FVHVDOZVFJBFGZJHIZVKVLJJHVKBUNDZBJUFIZOZVLJKVDVPVHVDVNVOBUGBUHUIRBUJUKULUMV
    HVFVMSVDVHVEVLAJHAJBFUOVHUPUQURUSTUTVAVB $.


  $( 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 brab2ga a1i brun brxp elun orcom bitri
      wb elsng orbi1d bi2anan9 andir syl6bb anbi1d adantr orbi12d orass df-ltxr
      breqi 3bitr4g ) AEFZBEFZGZABCHZIFZDHZIFZVIVKJKZUAZCDUBZKZABILMZNZOMZPZVQI
      PZNZKZTZAIFZBIFZGABJKZGZALQZBOQZGZWEWJGZWIWFGZTZTZTABRKZWHWKTWNTVHVPWHWCW
      OVPWHUMVHVMWGCDABIIVOVIAVKBJUCVNVJVLGVMGCDVJVLVMUDUEUFUGWCABVTKZABWAKZTZV
      HWOABVTWAUHVHWSWKWLTZWMTWOVHWQWTWRWMWQAVRFZBVSFZGZVHWTABVRVSUIVHXCWIWETZW
      JGWTVFXAXDVGXBWJXAAVQFZWETZVFXDXAWEXETXFAIVQUJWEXEUKULVFXEWIWEALEUNZUOSBO
      EUNUPWIWEWJUQURSWRXEWFGZVHWMABVQIUIVFXHWMUMVGVFXEWIWFXGUSUTSVAWKWLWMVBURS
      VAWPABVOWBNZKWDABRXICDVCVDABVOWBUHULWHWKWNVBVE $.
  $}

  $( 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 $.

  $( 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 $.

  $( 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 $.

  $( 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 $.

  $( 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.) $)
  nn0pnfge0 $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 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 weakly linear ordering on the extended reals.
       (Contributed by NM, 15-Oct-2005.) $)
    xrltso $p |- < Or RR* $=
      ( vx vy vz cxr clt cv wbr wo wcel adantl wa cpnf wceq cmnf mpbird 3jaodan
      wb a1d sylan2b ancoms wor wpo wi wral wtru wn xrltnr xrlttr ispod trud cr
      w3a w3o elxr simplr simpll simpr axltwlin ltpnf ad2antlr breq2 orcd mnflt
      syl3anc ad2antrr breq1 olcd anasss mnfltpnf breq12 mpbiri rexr nltmnf syl
      adantlr mtbird pm2.21d pnfnlt df-3or bitri adantr eqtr3 breq1d olc syl6bi
      mnfltxr jaodan 3impa syl3an3b 3com13 rgen3 df-iso mpbir2an ) DEUADEUBZAFZ
      BFZEGZWOCFZEGZWRWPEGZHZUCZCDUDBDUDADUDWNUEABCDEWODIZWOWOEGUFUEWOUGJXCWPDI
      ZWRDIZULWQWPWREGKWSUCUEWOWPWRUHJUIUJXBABCDDDXEXDXCXBXCXEXDWOUKIZWOLMZWONM
      ZUMZXBWOUNXEXDXIXBXEXDKZXFXBXGXHXFXJXBXFXEXDXBXDXFXEKZWPUKIZWPLMZWPNMZUMX
      BWPUNXKXLXBXMXNXLXKXBXLXFXEXBXEXLXFKZWRUKIZWRLMZWRNMZUMZXBWRUNZXOXPXBXQXR
      XOXPKXFXLXPXBXLXFXPUOXLXFXPUPXOXPUQWOWPWRURVDXOXQKZXAWQYAWSWTYAWSWOLEGZXF
      YBXLXQWOUSZUTXQWSYBQZXOWRLWOEVAZJOVBRXOXRKZXAWQYFWTWSYFWTNWPEGZXLYGXFXRWP
      VCVEXRWTYGQXOWRNWPEVFJOVGRPSVHTXMXKXBXMXFXEXBXEXMXFKZXSXBXTYHXPXBXQXRYHXP
      KZXAWQYIWTWSYIWTWRLEGZXPYJYHWRUSJXMWTYJQXFXPWPLWREVAVEOVGRYHXQKZXAWQYKWSW
      TYKWSYBXFYBXMXQYCUTXQYDYHYEJOVBRYHXRKZXAWQYLWTWSXMXRWTXFXMXRKWTNLEGZVIXRX
      MWTYMQWRNWPLEVJTVKVOVGRPSVHTXKXNKZWQXAYNWQWONEGZXFYOUFZXEXNXFXCYPWOVLWOVM
      VNVEXNWQYOQXKWPNWOEVAJVPVQPSVHTXJXGKZWQXAYQWQLWPEGZXDYRUFXEXGWPVRUTXGWQYR
      QXJWOLWPEVFJVPVQXEXHXBXDXHXEXBXEXHXPXQHZXRHZXBXEXSYTXTXPXQXRVSVTXHYSXBXRX
      HYSKZXAWQUUAWSWTUUAWSNWREGZYSUUBXHWRWFJXHWSUUBQYSWONWREVFWAOVBRXHXRKZWQWT
      XAUUCWOWRWPEWOWRNWBWCWTWSWDWEWGSTVOPWHWIWJWKABCDEWLWM $.
  $}

  $( Extended real version of ~ lttri3 .  (Contributed by NM, 9-Feb-2006.) $)
  xrlttri3 $p |- ( ( A e. RR* /\ B e. RR* ) ->
                ( A = B <-> ( -. A < B /\ -. B < A ) ) ) $=
    ( wcel cpnf wceq cmnf clt wbr wn wa ancoms wne adantr adantl mpbird 2falsed
    wb neneqd breq12 mtbiri cxr cr elxr lttri3 renepnf neeq2 necomd ltpnf breq2
    w3o wo notnot olcs ioran sylnib syl renemnf mnflt breq1 oranim 3syl 3jaodan
    orc eqtr3 eqcomd pnfxr xrltnr ax-mp 2thd mnfnepnf eqeq12 necon3bid mnfltpnf
    jca mpbiri neii neneqad mnfxr syl2anb ) AUACAUBCZADEZAFEZUJZBUBCZBDEZBFEZUJ
    ABEZABGHZIZBAGHZIZJZQZBUACAUCBUCWCWDWMWEWFWDWCWMWDVTWMWAWBVTWDWMABUDKWDWAJZ
    WGWLWNABWNBAWNBALZBDLZWDWPWABUEMWAWOWPQWDADBUFNOUGRWNWJWLIZWNWJBDGHZWDWRWAB
    UHMWAWJWRQWDADBGUINOWJWHWJUKZIZWLWHWJWTIWSULUMWHWJUNUOZUPPWDWBJZWGWLXBABXBB
    AXBWOBFLZWDXCWBBUQMWBWOXCQWDAFBUFNOUGRXBWHWSWQXBWHFBGHZWDXDWBBURMWBWHXDQWDA
    FBGUSNOWHWJVCZWHWJUTZVAPVBKWEWCWMWEVTWMWAWBWEVTJZWGWLXGABXGABLZADLZVTXIWEAU
    ENWEXHXIQVTBDAUFMORXGWHWSWQXGWHADGHZVTXJWEAUHNWEWHXJQVTBDAGUIMOXEXFVAPWEWAJ
    ZWGWLXKBABADVDVEXKWIWKXKWHDDGHZDUACXLIVFDVGVHZWAWEWHXLQADBDGSKTXKWJXLXMBDAD
    GSTVNVIWEWBJZWGWLXNABWBWEXHWBWEJZXHFDLVJXOABFDAFBDVKVLVOKRXNWHWSWQWBWEWHXOW
    HFDGHZVMAFBDGSVOKXEXFVAPVBKWFWCWMWFVTWMWAWBWFVTJZWGWLXQABXQXHAFLZVTXRWFAUQN
    WFXHXRQVTBFAUFMORXQWJWQXQWJFAGHZVTXSWFAURNWFWJXSQVTBFAGUSMOXAUPPWFWAJZWGWLX
    TABXTBAXTBAXTBAEFDEFDVJVPBFADVKTVQUGRXTWJWQXTWJXPVMBFADGSVOXAUPPWFWBJZWGWLW
    BWFWGABFVDKYAWIWKYAWHFFGHZFUACYBIVRFVGVHZWBWFWHYBQAFBFGSKTYAWJYBYCBFAFGSTVN
    VIVBKVBVS $.

  $( '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 ) ) $=
    ( cxr wcel wa clt wbr wn cle xrltnsym xrlenlt sylibrd ) ACDBCDEABFGBAFGHABI
    GABJABKL $.

  $( '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 clt wn xrltnr wb xrlenlt anidms mpbird ) ABCZAADEZAAFEGZ
    AHMNOIAAJKL $.

  $( 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 $.

  $( 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 wa wn simprl simpl1 simpl2 xrlenlt syl2anc mpbid
    wb pm2.21d idd wo simprr wi simpl3 wor xrltso sowlin mpan syl3anc mpjaod ex
    mpd ) ADEZBDEZCDEZFZABGHZBCIHZJZACIHZUPUSJZBAIHZUTUTVAVBUTVAUQVBKZUPUQURLVA
    UMUNUQVCRUMUNUOUSMZUMUNUOUSNZABOPQSVAUTTVAURVBUTUAZUPUQURUBVAUNUOUMURVFUCZV
    EUMUNUOUSUDVDDIUEUNUOUMFVGUFDBCAIUGUHUIULUJUK $.

  $( 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 wa wn simprr simpl2 simpl3 xrlenlt syl2anc mpbid
    wb wo simprl wi wor xrltso sowlin mpan adantr mpd ecased ex ) ADEZBDEZCDEZF
    ZABGHZBCIHZJZACGHZUMUPJZUQCBGHZURUOUSKZUMUNUOLURUKULUOUTRUJUKULUPMUJUKULUPN
    BCOPQURUNUQUSSZUMUNUOTUMUNVAUAZUPDGUBUMVBUCDABCGUDUEUFUGUHUI $.

  $( 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 clt wbr wo wn cle wa wi wor xrltso sowlin mpan 3coml xrlenlt
    wb orcom syl6ib con3d 3adant3 3adant1 anbi12d ioran syl6bbr 3adant2 3imtr4d
    ) ADEZBDEZCDEZFZBAGHZCBGHZIZJZCAGHZJZABKHZBCKHZLZACKHZUNUSUQUNUSUPUOIZUQUMU
    KULUSVEMZDGNUMUKULFVFODCABGPQRUPUOUAUBUCUNVCUOJZUPJZLURUNVAVGVBVHUKULVAVGTU
    MABSUDULUMVBVHTUKBCSUEUFUOUPUGUHUKUMVDUTTULACSUIUJ $.

  ${
    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 wne wceq xrltnr breq2 notbid syl5ibrcom necon2ad 3adant2
    wn imp ) ACDZABEFZBAGZBCDQRSQRBAQROBAHZAAEFZOAITRUABAAEJKLMPN $.

  $( 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 cr cpnf wceq cmnf w3o clt wn wb elxr renepnf neneqd ltpnf notnot
    wbr 2falsed breq1 mtbiri syl id pnfxr xrltnr ax-mp 2thd mnfnepnf neii eqeq1
    mnfltpnf mpbiri necon3bi necon2bi 3jaoi sylbi ) ABCADCZAEFZAGFZHUQAEIQZJZKZ
    ALUPVAUQURUPUQUTUPAEAMNUPUSUTJAOUSPUARUQUQUTUQUBUQUSEEIQZEBCVBJUCEUDUEAEEIS
    TUFURUQUTURUQGEFGEUGUHAGEUITUTAGUSAGURUSGEIQUJAGEISUKULUMRUNUO $.

  $( 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 cr cpnf wceq cmnf w3o clt wbr wn wb renemnf neneqd mnflt 2falsed
    elxr wne mpbiri breq2 notnot syl pnfnemnf mnfltpnf necon3bi necon2bi xrltnr
    neeq1 id mnfxr ax-mp mtbiri 2thd 3jaoi sylbi ) ABCADCZAEFZAGFZHURGAIJZKZLZA
    QUPVAUQURUPURUTUPAGAMNUPUSUTKAOUSUAUBPUQURUTUQAGUQAGREGRUCAEGUHSNUTAEUSAEUQ
    USGEIJUDAEGITSUEUFPURURUTURUIURUSGGIJZGBCVBKUJGUGUKAGGITULUMUNUO $.

  $( 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 cpnf wceq cmnf w3o clt wa wb elxr id necon2bi wn xrltnr ax-mp
    wbr mtbiri 2falsed mnflt ltpnf jca 2thd renepnf pnfxr breq1 intnand renemnf
    mnfxr breq2 intnanrd 3jaoi sylbi ) ABCADCZAEFZAGFZHUOGAIRZAEIRZJZKZALUOVAUP
    UQUOUOUTUOMUOURUSAUAAUBUCUDUPUOUTUOAEAUENUPUSURUPUSEEIRZEBCVBOUFEPQAEEIUGSU
    HTUQUOUTUOAGAUINUQURUSUQURGGIRZGBCVCOUJGPQAGGIUKSULTUMUN $.

  $( 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 wa cmnf clt wne ge0gtmnf wn wb ngtmnft adantr biimpd
    wceq necon2ad mpd ) ABCZDAEFZGZHAIFZAHJAKUBUCAHUBAHQZUCLZTUDUEMUAANOPRS $.

  $( 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 $.

  ${
    $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 cv wrex simplr simpr zred leidd breq2 anbi12d rspcev
      wceq syl12anc simpll zletric mpjaodan ) BDEZCDEZFZBCGHZBAIZGHZCUGGHZFZADJ
      ZCBGHZUEUFFZUDUFCCGHZUKUCUDUFKZUEUFLUMCUMCUOMNUJUFUNFACDUGCRUHUFUIUNUGCBG
      OUGCCGOPQSUEULFZUCBBGHZULUKUCUDULTZUPBUPBURMNUEULLUJUQULFABDUGBRUHUQUIULU
      GBBGOUGBCGOPQSBCUAUB $.
  $}

  $( 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 $.

  $( 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 $.

  ${
    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 $.
  $}

  $( 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 wcel pnfxr mnfxr prexg mp2an unex
    eqeltri ) ABCDEZFGHBQICAJDAJQGJKLCDAAMNOP $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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 x y z A $.  $d x y z C $.  $d x y z B $.  $d x y z R $.  $d x y z S $.
    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 $.
  $}

  ${
    $d x y z R $.  $d x y z S $.  $d x y z A $.  $d x y z B $.  $d x y z C $.
    ixxssxr.1 $e |- O = ( x e. RR* , y e. RR* |->
                   { z e. RR* | ( x R z /\ z S y ) } ) $.
    ${
      $d x y z O $.
      $( 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 wcel wa cv wbr crab elmpt2cl cpw ixxf fovcl elpwid sseld mpcom
        ssriv ) ADEHJZKDKLEKLMZANZUELUGKLABKKUGCNZFOUHBNGOMCKPDEHUGIQUFUEKUGUFU
        EKDEKRKKHABCFGHISTUAUBUCUD $.
    $}

    $( 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 anbi1i cv crab elixx1 3anass syl6bb
      elmpt2cl biadan2 3bitr4ri ) DKLZEKLZMZFKLZMZDFGNZFEHNZMZMUJUKUOMZMUHUIUKO
      ZUOMFDEIPLZUJUKUOQUQULUOUHUIUKRSURUJUPABKKATCTZGNUSBTHNMCKUADEIFJUEUJURUK
      UMUNOUPABCDEFGHIJUBUKUMUNUCUDUFUG $.
  $}

  ${
    $d w x y z A $.  $d w x y z C $.  $d w x y z D $.  $d w x O $.
    $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 $.
    ixxssixx.1 $e |- O = ( x e. RR* , y e. RR* |->
                   { z e. RR* | ( x R z /\ z S y ) } ) $.
    ${
      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 $.
    $}

    ${
      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 $.
    $}
  $}

  ${
    $d w x y z A $.  $d w x y z B $.  $d w x y z C $.
    $( 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 open interval with identical lower and upper bounds is empty.
       (Contributed by Jim Kingdon, 29-Mar-2020.) $)
    iooidg $p |- ( A e. RR* -> ( A (,) A ) = (/) ) $=
      ( vx cxr wcel cioo co cv clt wa crab c0 wceq iooval anidms wral xrltnsym2
      wbr wn ralrimiva rabeq0 sylibr eqtrd ) ACDZAAEFZABGZHQUEAHQIZBCJZKUCUDUGL
      BAAMNUCUFRZBCOUGKLUCUHBCAUEPSUFBCTUAUB $.

    $( 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 $.

    $( 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 $.

    $( 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
       Jim Kingdon, 30-Mar-2020.) $)
    lbioog $p |- ( ( A e. RR* /\ B e. RR* ) -> -. A e. ( A (,) B ) ) $=
      ( cxr wcel wa cioo co clt wbr w3a xrltnr simp2 nsyl adantr elioo1 mtbird
      wn ) ACDZBCDZEAABFGDRAAHIZABHIZJZRUBQSRTUBAKRTUALMNABAOP $.

    $( An open interval does not contain its right endpoint.  (Contributed by
       Jim Kingdon, 30-Mar-2020.) $)
    ubioog $p |- ( ( A e. RR* /\ B e. RR* ) -> -. B e. ( A (,) B ) ) $=
      ( cxr wcel wa cioo co clt wbr w3a xrltnr simp3 nsyl adantl elioo1 mtbird
      wn ) ACDZBCDZEBABFGDSABHIZBBHIZJZSUBQRSUAUBBKSTUALMNABBOP $.

    $( 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 $.

    $( 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,
       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 closed interval of extended reals.  (Contributed by Jim
       Kingdon, 30-Mar-2020.) $)
    icc0r $p |- ( ( A e. RR* /\ B e. RR* ) ->
        ( B < A -> ( A [,] B ) = (/) ) ) $=
      ( vx cxr wcel wa clt wbr cv cle wrex wn cicc co c0 wi xrletr 3com23 3expa
      wceq rexlimdva xrlenlt sylibd con2d crab iccval eqeq1d wral rabeq0 ralnex
      bitri syl6bb sylibrd ) ADEZBDEZFZBAGHZACIZJHURBJHFZCDKZLZABMNZOTZUPUTUQUP
      UTABJHZUQLUPUSVDCDUNUOURDEZUSVDPZUNVEUOVFAURBQRSUAABUBUCUDUPVCUSCDUEZOTZV
      AUPVBVGOCABUFUGVHUSLCDUHVAUSCDUIUSCDUJUKULUM $.
  $}

  ${
    $d x y z $.
    $( An inhabited 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* ) ) $=
      ( vx vy vz cxr cv clt wbr wa crab cioo df-ioo elmpt2cl ) DEGGDHFHZIJPEHIJ
      KFGLBCMADEFNO $.
  $}

  $( 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 $.

  $( 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 $.

  $( 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 cxr clt wbr cicc wss eliooxr adantr eliooord simpld adantl
      wa simprd iccssioo syl12anc ) CABEFZGZDUBGZRZAHGBHGRZACIJZDBIJZCDKFUBLUCU
      FUDCABMNUEUGCBIJZUCUGUIRUDCABONPUEADIJZUHUDUJUHRUCDABOQSABCDTUA $.

    $( 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.  To be useful without excluded middle,
       we'll probably need to change not equal to apart, and perhaps make other
       changes, but the theorem does hold as stated here.  (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 cvv
      co vex wss ioossre cop df-ov iooex opex fvex eqeltri elpw mpbir syl6eqelr
      cfv rgen2a df-ioo fmpt2 mpbi ) ADZBDZEFURCDZEFGBHIZJKZLZCHMAHMHHNVAOPVBAC
      HUQHLUSHLGUTUQUSOSZVABUQUSQVCVALVCJUAUQUSUBVCJVCUQUSUCZOULRUQUSOUDVDORRUE
      UQUSATCTUFUGUHUIUJUKUMACHHUTVAOACBUNUOUP $.

    $( 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 cpw wf wfn wceq ioof ffn
      fnovim mp2b iooval2 mpt2eq3ia eqtri ) DABEEAFZBFZDGZHZABEEUFCFZIJUJUGIJKC
      LMZHEENZLOZDPDULQDUIRSULUMDTABEEDUAUBABEEUHUKCUFUGUCUDUE $.

    $( Open intervals are elements of the set of all open intervals.
       (Contributed by Jim Kingdon, 4-Apr-2020.) $)
    ioorebasg $p |- ( ( A e. RR* /\ B e. RR* ) -> ( A (,) B ) e. ran (,) ) $=
      ( cioo cxr cxp wfn wcel co crn cr cpw wf ioof ffn ax-mp fnovrn mp3an1 ) C
      DDEZFZADGBDGABCHCIGRJKZCLSMRTCNODDABCPQ $.
  $}

  $( 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 $.

  $( 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 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 $.
    $( 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 $.

    $( 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 $.

  $}

  ${
    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 wb ledivmul mp3an2 simpll simprl cap gt0ap0 adantl redivclapd divge0
    adantlr jca biantrurd cc recn ad2antrl mulid1d breq2d 3bitr3d syl5bb ) ABCD
    ZEFGDHZVAIHZEVAJKZLZVAFJKZLZAIHZEAJKZLZBIHZEBMKZLZLZABJKZVBVCVDVFNVGEFVAOPQ
    VCVDVFTRVNVFABFSDZJKZVGVOVHVMVFVQUAZVIVHFIHVMVRPAFBUBUCUKVNVEVFVNVCVDVNABVH
    VIVMUDVJVKVLUEVMBEUFKVJBUGUHUIABUJULUMVNVPBAJVNBVKBUNHVJVLBUOUPUQURUSUT $.

  $( 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 eqid iccshftl syl22anc mpbid resubcld crp difrp biimp3a adantr cap
      rpcnd rpap0 syl divcanap1d mul02d subidd eqtr4d mulid2d oveq12d 0red 1red
      3eltr4d rerpdivcld iccdil mpbird eqcom adantrr divmulap3d syl5bb remulcld
      subadd2d syl6bb subadd23d subdid oveq1d 1cnd subdird eqtrd oveq2d 3eqtr4d
      eqeq2d 3bitrd f1ocnv2d ) CGHZDGHZCDUAIZUCZABJKLMZCDLMZAUBZDNMZKXPOMZCNMZP
      MZBUBZCOMZDCOMZUDMZEFXMXPXNHZUEZXTXSXQPMXOYFXQXSYFXPDYFXPYEXPGHZXMYEYGJXP
      UFIXPKUFIJKXPUGUHUIUJUKZQZYFDXJXKXLYEULZQZUMZYFXRCYFKRHXPRHZXRRHUNYIKXPUO
      UPYFCXJXKXLYEUQZQZUMURCDXPUSUTXMYAXOHZUEZYDXNHZYDYCNMZJYCNMZKYCNMZLMZHZYQ
      YBCCOMZYCLMZYSUUBYQYPYBUUEHZXMYPVAYQXJXKYAGHZXJYPUUFVBXJXKXLYPUQZXJXKXLYP
      ULYQUUGCYAUFIZYADUFIZXMYPUUGUUIUUJUCZXJXKYPUUKVBXLCDYAVCVDVEVFZUUHCDUUDYC
      CYAUUDVGYCVGVHVIVJYQYBYCYQYBYQYACUULUUHVKZQZYQYCXMYCVLHZYPXJXKXLUUOCDVMVN
      VOZVQZYQUUOYCJVPIZUUPYCVRVSZVTYQYTUUDUUAYCLYQYTJUUDYQYCUUQWAYQCYQCUUHQZWB
      WCYQYCUUQWDWEWHYQJGHKGHYDGHUUOYRUUCVBYQWFYQWGYQYBYCUUMUUPWIUUPJKYTUUAYCYD
      YTVGUUAVGWJVIWKXMYEYPUEUEZXPYDSZYBXPYCNMZSZYAUVCCPMZSZYAXTSUVBYDXPSUVAUVD
      XPYDWLUVAYBXPYCXMYPYBRHYEUUNTXMYEYMYPYIWMXMYPYCRHYEUUQTXMYPUURYEUUSTWNWOU
      VAUVDUVEYASUVFUVAYACUVCUVAYAXMYPUUGYEUULTQXMYPCRHYEUUTTUVAUVCXMYEUVCGHYPY
      FXPYCYHYFDCYJYNVKWPWMQWQUVEYAWLWRUVAUVEXTYAXMYEUVEXTSYPYFXQXPCNMZOMZCPMXQ
      CUVGOMZPMUVEXTYFXQUVGCYLYFXPCYIYOUMYOWSYFUVCUVHCPYFXPDCYIYKYOWTXAYFXSUVIX
      QPYFXSKCNMZUVGOMUVIYFKXPCYFXBYIYOXCYFUVJCUVGOYFCYOWDXAXDXEXFWMXGXHXI $.
  $}

  $( ` ( 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 $.

  $( 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 $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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 alternate 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 $.

  ${
    $d x y z M $.  $d z N $.
    $( 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 ) ) ) $=
      ( vx vy vz cz wcel wa cle wbr w3a cfz co anass df-3an anbi1i crab df-fz
      cv elmpt2cl simpl elfz1 3anass ibar syl5bb bitrd pm5.21nii 3bitr4ri ) BGH
      ZCGHZIZAGHZIZBAJKZACJKZIZIULUMUQIZIZUJUKUMLZUQIABCMNHZULUMUQOUTUNUQUJUKUM
      PQVAULUSDEGGDTFTZJKVBETJKIFGRBCMAFDESUAULURUBULVAUMUOUPLZUSABCUCVCURULUSU
      MUOUPUDULURUEUFUGUHUI $.
  $}

  $( 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 $.

  $( 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 inhabited.
       (Contributed by Jim Kingdon, 15-Apr-2020.) $)
    fzm $p |- ( E. x x e. ( M ... N ) <-> N e. ( ZZ>= ` M ) ) $=
      ( cv cfz co wcel wex cuz cfv elfzuz2 exlimiv eluzfz1 elex2 syl impbii ) A
      DZBCEFZGZAHZCBIJGZSUAAQBCKLUABRGTBCMABRNOP $.
  $}

  $( Trichotomy in terms of a finite interval of integers.  (Contributed by Jim
     Kingdon, 1-Jun-2020.) $)
  fztri3or $p |- ( ( K e. ZZ /\ M e. ZZ /\ N e. ZZ ) ->
      ( K < M \/ K e. ( M ... N ) \/ N < K ) ) $=
    ( cz wcel clt wbr wn adantl wa cle simpr zred lenltd mpbird adantr wo zdclt
    wdc df-dc w3a cfz co 3mix1 3mix3 simpl2 simpl1 cr simpll3 wb elfz mpbir2and
    w3o 3mix2d ancoms 3adant2 sylib mpjaodan 3adant3 ) ADEZBDEZCDEZUAZABFGZVDAB
    CUBUCEZCAFGZUMZVDHZVDVGVCVDVEVFUDIVCVHJZVFVGVFHZVFVGVIVFVDVEUEIVIVJJZVEVDVF
    VKVEBAKGZACKGZVIVLVJVIVLVHVCVHLVIBAVIBUTVAVBVHUFMVIAUTVAVBVHUGMZNOPVKVMVJVI
    VJLVKACVIAUHEVJVNPVKCUTVAVBVHVJUIMNOVIVEVLVMJUJZVJVCVOVHABCUKPPULUNVIVFSZVF
    VJQVCVPVHUTVBVPVAVBUTVPCARUOUPPVFTUQURVCVDSZVDVHQUTVAVQVBABRUSVDTUQUR $.

  $( Decidability of membership in a finite interval of integers.  (Contributed
     by Jim Kingdon, 1-Jun-2020.) $)
  fzdcel $p |- ( ( K e. ZZ /\ M e. ZZ /\ N e. ZZ ) ->
      DECID K e. ( M ... N ) ) $=
    ( cz wcel w3a clt wbr cfz co w3o wn cle wb zltnle con3i syl6bi nsyld sylibr
    syl6 wdc fztri3or wa 3adant3 simpl elfz biimpd wo olc df-dc orc a1i 3adant2
    wi ancoms simpr 3jaod mpd ) ADEZBDEZCDEZFZABGHZABCIJEZCAGHZKVDUAZABCUBVBVCV
    FVDVEVBVCVDLZVFVBVCBAMHZACMHZUCZVDVBVCVHLZVJLZUSUTVCVKNVAABOUDVJVHVHVIUEPQV
    BVDVJABCUFUGZRVGVDVGUHZVFVGVDUIVDUJZSZTVDVFUNVBVDVNVFVDVGUKVOSULVBVEVGVFVBV
    EVJVDVBVEVILZVLUSVAVEVQNZUTVAUSVRCAOUOUMVJVIVHVIUPPQVMRVPTUQUR $.

  ${
    $d K x k m $.  $d M x k m $.  $d N x k m $.
    $( A finite set of sequential integers is empty if the bounds are reversed.
       (Contributed by Jim Kingdon, 16-Apr-2020.) $)
    fznlem $p |- ( ( M e. ZZ /\ N e. ZZ ) ->
        ( N < M -> ( M ... N ) = (/) ) ) $=
      ( vk cz wcel wa clt wbr cfz co c0 wceq cv cle wn cr wb zre adantr zred wi
      crab wral lenlt syl2an biimpd con2d imp simplll simpllr letr syl3anc mtod
      simpr ralrimiva rabeq0 sylibr fzval eqeq1d mpbird ex ) ADEZBDEZFZBAGHZABI
      JZKLZVDVEFZVGACMZNHVIBNHFZCDUBZKLZVHVJOZCDUCVLVHVMCDVHVIDEZFZVJABNHZVHVPO
      ZVNVDVEVQVDVPVEVDVPVEOZVBAPEZBPEZVPVRQVCARBRABUDUEUFUGUHSVOVSVIPEVTVJVPUA
      VOAVBVCVEVNUITVOVIVHVNUNTVOBVBVCVEVNUJTAVIBUKULUMUOVJCDUPUQVDVGVLQVEVDVFV
      KKCABURUSSUTVA $.

    $( 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 ) = (/) ) ) $=
      ( vx cz wcel wa clt wbr cfz co c0 wceq fznlem cle wn cv wex neq0r adantr
      wb simpr nsyl3 cuz cfv eluz syl5rbb mtbird zltnle ancoms mpbird ex impbid
      fzm ) ADEZBDEZFZBAGHZABIJZKLZABMUPUSUQUPUSFZUQABNHZOZUTVACPURECQZVCUSUTCU
      RRUPUSUAUBUPVAVCTUSVCBAUCUDEUPVACABUMABUEUFSUGUPUQVBTZUSUOUNVDBAUHUISUJUK
      UL $.

    $( 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 cvv cxp wfn cpw wf fzf ax-mp fnovex mp3an1 3adant3 simp1
      simp3 zaddcld syl2anc zaddcl expcom 3ad2ant3 adantrd leadd1 3com23 3expia
      simp2 impd 3adant2 adantld 3coml 3adant1 3jcad biimprd com12 3impb zsubcl
      ffn syld leaddsub lesubadd ancoms imp simp1d ex zcn subadd 3bitr3g addcom
      cc eqcom eqeq2d bitrd 3expib syl2and en3d ) BDEZCDEZADEZFZUAUBBCGHZBAIHZC
      AIHZGHZUAUCZAIHZUBUCZAUDHZWPWQWTUEEZWRGDDUFZUGZWPWQXHXIDUHZGUIXJUJXIXKGVQ
      UKZBCDDGULUMUNWSXADEZXBDEZXCUEEZWSBAWPWQWRUOWPWQWRUPZUQWSCAWPWQWRVFXPUQXJ
      XMXNXOXLXAXBDDGULUMURWSXDWTEZXDDEZBXDJKZXDCJKZFZXEXCEZWPWQXQYALWRWPWQMZXQ
      YAXDBCNOUNZYAWSYBXRXSXTWSYBLWSXRXSXTMZMZYBWSYFXEDEZXAXEJKZXEXBJKZFZYBWSYF
      YGYHYIWSXRYGYEWRWPXRYGLWQXRWRYGXDAUSUTVAVBWPWRYFYHLWQWPWRMZXRYEYHWPWRXRYE
      YHLZWPXRWRYLWPXRWRFZXSYHXTYMXSYHWPBPEZXRXDPEZWRAPEZXSYHTBQZXDQZAQZBXDAVCR
      OVBVDVEVGVHWQWRYFYILWPWQWRMXRYEYIWQWRXRYEYILZXRWQWRYTXRWQWRFZXTYIXSUUAXTY
      IXRYOWQCPEZWRYPXTYITYRCQZYSXDCAVCROVIVJVEVGVKVLWSYBYJWSXMXNYBYJTWPWRXMWQB
      AUSVHZWQWRXNWPCAUSVKZXEXAXBNURVMVRVNVOVNVRWSXFXCEZXFDEZXAXFJKZXFXBJKZFZXG
      WTEZWSUUFUUJWSXMXNUUFUUJTUUDUUEXFXAXBNUROZUUJWSUUKUUGUUHUUIWSUUKLWSUUGUUH
      UUIMZMZUUKWSUUNXGDEZBXGJKZXGCJKZFZUUKWSUUNUUOUUPUUQWSUUGUUOUUMWRWPUUGUUOL
      WQUUGWRUUOXFAVPUTVAVBWPWRUUNUUPLWQYKUUGUUMUUPWPWRUUGUUMUUPLWPWRUUGFZUUHUU
      PUUIUUSUUHUUPWPYNWRYPUUGXFPEZUUHUUPTYQYSXFQZBAXFVSROVBVEVGVHWQWRUUNUUQLZW
      PWRWQUVBWRWQMUUGUUMUUQWRWQUUGUUMUUQLZUUGWRWQUVCUUGWRWQFZUUIUUQUUHUVDUUQUU
      IUUGUUTWRYPWQUUBUUQUUITUVAYSUUCXFACVTRVMVIVJVEVGWAVKVLWPWQUURUUKLWRYCUUKU
      URXGBCNVMUNVRVNVOVNVRWSXQXRUUFUUGXDXGSZXFXESZTZWSXQXRWSXQMXRXSXTWSXQYAYDW
      BWCWDWSUUFUUGWSUUFMUUGUUHUUIWSUUFUUJUULWBWCWDWRWPXRUUGMUVGLWQWRXRUUGUVGUU
      GWRXRUVGUUGXFWIEZWRAWIEZXRXDWIEZUVGXFWEAWEXDWEUVHUVIUVJFZUVEXFAXDIHZSZUVF
      UVKXGXDSUVLXFSUVEUVMXFAXDWFXGXDWJUVLXFWJWGUVKUVLXEXFUVIUVJUVLXESUVHAXDWHV
      KWKWLRVJWMVAWNWO $.
  $}

  $( 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 $.

  $( 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 clt elfzelz eluzel2 zlelttric elfz5 simpl eluzelz
      syl eluz elfzuzb rbaib zltp1le 3bitr4d mpbird simpr uztrn sylanbrc jaodan
      orbi12d impbida elun syl6bbr eqrdv ) AUAUBEZBFGZHZCAFGHZIZDBCJEZBAJEZVHCJ
      EZUCZVLDUDZVMHZVQVNHZVQVOHZKZVQVPHVLVRWAVLVRIZWAVQALMZAVQUEMZKZVRVQNHZANH
      ZWEVLVQBCUFZVKWGVJACUGOZVQAUHPWBVSWCVTWDVRVQVIHZWGVSWCQVLVQBCRWIVQBAUIPWB
      VQVHFGHZVHVQLMZVTWDVLVHNHZWFWKWLQVRVLVJWMVJVKUJZBVHUKULWHVHVQUMSWBCVQFGZH
      ZVTWKQVRWPVLVQBCTOVTWKWPVQVHCUNUOULVLWGWFWDWLQVRWIWHAVQUPSUQVCURVLVSVRVTV
      LVSIWJWPVRVSWJVLVQBAROVLVKAWOHWPVSVJVKUSVQBATACVQUTSVQBCUNZVAVLVTIWJWPVRV
      TWKVJWJVLVQVHCRWNVHVQBUTPVTWPVLVQVHCTOWQVAVBVDVQVNVOVEVFVG $.

    $( 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 $.

  $( 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 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 can represent an ordered pair.
     (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 $.
  $}

  $( 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 wb cr w3a 0z
    incom wceq clt 0lt1 1z zltnle mpbi eluzel2 zred 1re leaddle0 sylancl mtbiri
    mp2an intnanrd intnand elfz2 sylnibr disjsn sylibr syl5eqr ) BACDEZAFZAGHIZ
    BJIZKVGVEKZLVGVEUCVDAVGEZMVHLUDVDVFNEBNEANEUAZVFAOPZABOPZQZQVIVDVMVJVDVKVLV
    DVKGROPZRGUEPZVNMZUFRNEGNEVOVPSUBUGRGUHUPUIVDATEGTEVKVNSVDAABUJUKULAGUMUNUO
    UQURAVFBUSUTVGAVAVBVC $.

  $( 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 cz eluzelz
    wb peano2zd elsn2g syl orbi2d syl5bb bitrd ) CBDEFZABCGHIZJIZFABCJIZUHKZLZF
    ZAUJFZAUHMZNZUGUIULABCOPUMUNAUKFZNUGUPAUJUKQUGUQUOUNUGUHRFUQUOTUGCBCSUAAUHR
    UBUCUDUEUF $.

  $( 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 clt ltp1d
    cz zre wb peano2z zltnle mpdan mpbid syl pm2.65i disjsn mpbir ) ABCDZBEFDZG
    HIJUKUJKZLULUKBMNZUKABOULBSKZUMLZUKABPUNBUKQNZUOUNBBTRUNUKSKUPUOUABUBBUKUCU
    DUEUFUGUJUKUHUI $.

  ${
    $d M k $.  $d N k $.
    $( 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 ) } ) ) $=
      ( vk wcel cfz co cz elfzelz adantl wa cle wbr adantr elfz syl3anc syl2anc
      wb wn anbi2d bitr4d cuz cfv c1 caddc csn cdif cv eldifi syl simpr eluzel2
      eluzelz clt wne eldif peano2zd wceq velsn notbii nesym bitr4i a1i anbi12d
      syl5bb anass syl6bb zltlen zleltp1 eqrdav ) BAUAUBDZCABEFZABUCUDFZEFZVLUE
      ZUFZGCUGZVKDZVPGDZVJVPABHIVPVODZVRVJVSVPVMDZVRVPVMVNUHVPAVLHUIIVJVRJZVQAV
      PKLZVPBKLZJZVSWAVRAGDZBGDZVQWDQVJVRUJZVJWEVRABUKMZVJWFVRABULMZVPABNOWAVSW
      BVPVLUMLZJZWDWAVSWBVPVLKLZVLVPUNZJZJZWKWAVSWBWLJZWMJZWOVSVTVPVNDZRZJWAWQV
      PVMVNUOWAVTWPWSWMWAVRWEVLGDZVTWPQWGWHWABWIUPZVPAVLNOWSWMQWAWSVPVLUQZRWMWR
      XBCVLURUSVLVPUTVAVBVCVDWBWLWMVEVFWAWJWNWBWAVRWTWJWNQWGXAVPVLVGPSTWAWCWJWB
      WAVRWFWCWJQWGWIVPBVHPSTTVI $.
  $}

  ${
    $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.) $)
  elfz1b $p |- ( N e. ( 1 ... M ) <-> ( N e. NN /\ M e. NN /\ N <_ M ) ) $=
    ( c1 wcel cz w3a cle wbr wa cn wi cc0 clt simpl 0red 1red zre 3jca adantr
    cr cfz co elfz2 a1i simpr ltletr imp syl12anc elnnz sylanbrc 3ad2ant3 com12
    0lt1 impcom 3anim123i 3com23 letr syl ltletrd 3ad2ant2 syld simprr 1zzd nnz
    ex 3ad2ant1 nnge1 simp3 jca32 impbii bitri ) BCAUAUBDCEDZAEDZBEDZFZCBGHZBAG
    HZIZIZBJDZAJDZVQFZBCAUCVSWBVSVTWAVQVRVOVTVPVOVTKVQVOVPVTVNVLVPVTKVMVNVPVTVN
    VPIZVNLBMHZVTVNVPNWCLTDZCTDZBTDZFZLCMHZVPWDVNWHVPVNWEWFWGVNOVNPBQZRSWIWCUMU
    DVNVPUEWHWIVPIWDLCBUFUGUHBUIUJVEUKULSUNVOVRWAVOVRCAGHZWAVOWFWGATDZFZVRWKKVL
    VNVMWMVLWFVNWGVMWLCQWJAQZUOUPCBAUQURVMVLWKWAKVNVMWKWAVMWKIZVMLAMHWAVMWKNWOL
    CAWOOWOPVMWLWKWNSWIWOUMUDVMWKUEUSAUIUJVEUTVAUGVOVPVQVBRWBVOVPVQWBVLVMVNWBVC
    WAVTVMVQAVDUTVTWAVNVQBVDVFRVTWAVPVQBVGVFVTWAVQVHVIVJVK $.

  $( 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 cun cv wo wa cle wbr cz eluzelz syl2an
      wb clt zlelttric eluz eluzel2 elfzm11 df-3an syl6bb syl2anr eluzle adantl
      w3a jca biantrurd bitr4d orbi12d mpbird orcomd ex elfzuz a1i uztrn expcom
      wi jaod impbid elun syl6bbr eqrdv ) BADEZFZCVIABGHIZJIZBDEZKZVJCLZVIFZVOV
      LFZVOVMFZMZVOVNFVJVPVSVJVPVSVJVPNZVRVQVTVRVQMBVOOPZVOBUAPZMZVJBQFZVOQFZWC
      VPABRZAVORZBVOUBSVTVRWAVQWBVJWDWEVRWATVPWFWGBVOUCSVTVQWEAVOOPZNZWBNZWBVPA
      QFZWDVQWJTVJAVOUDWFWKWDNVQWEWHWBUKWJVOABUEWEWHWBUFUGUHVTWIWBVPWIVJVPWEWHW
      GAVOUIULUJUMUNUOUPUQURVJVQVPVRVQVPVCVJVOAVKUSUTVRVJVPBVOAVAVBVDVEVOVLVMVF
      VGVH $.

    $( 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 wfn wb fnresdisj
      reseq1d ffn uneq1d resundir uncom un0 eqtr2i 3eqtr4g fnresdm 3eqtrd nn0zd
      fveq1d peano2zd snidg fvres fveq1i fvsng syl5eq 3eqtr3d incom uneq2d 3jca
      eqcomi 3eqtrrd fzssp1 fssres sylancl nnuz eluzfz2 ffvelrnd eqeltrrd opeq2
      wss fnressn sneqd eqtrd syl6reqr uneq12d reseq2d resundi syl6req impbida
      syl ) FHIZJFUAKZACLZBAIZDCEMZNZUBZJFJUCKZUAKZADLZYLDOZBNZCDYFPZNZUBZYEYKU
      DZYNYPYRYTYNYMAYILZYTYFYLQZMZAYILZUUAYTYGUUBAELZYFUUBUEZRNZUUDYEYGYHYJUFZ
      YTUUBBQZAEYTYLSIZYHUUBUUIELZYEUUJYKFUGZUHZYEYGYHYJUIZUUJYHUDZUUKEYLBUQZQZ
      NGYLBSAEUJUKULZYTBAUUNUMUNZUUGYTJFUOURZYFUUBACEUPUSYTUUCYMAYIYTYMUUCYTJUT
      IZFJJVAKZVBOZIZYMUUCNZVJYTFHUVCYEYKVCZHVDVBOUVCVEUVBVDVBVFVGVHZVIJFVKZVLV
      MVNVOYTYMADYIYEYGYHYJVPZVQVRYTYLDUUBPZOZYLEOZYOBYTYLUVJEYTUVJYIUUBPZEUUBP
      ZEYTDYIUUBUVIWBYTCUUBPZUVNMRUVNMZUVMUVNYTUVORUVNYTUUGUVORNZUUTYTYGCYFVSZU
      UGUVQVTUUHYFACWCZYFUUBCWATVOWDCEUUBWEUVPUVNRMUVNRUVNWFUVNWGWHWIYTUUEEUUBV
      SZUVNENUUSUUBAEWCUUBEWJTWKWMYTYLUTIYLUUBIUVKYONYTFYTFUVFWLWNYLUTWOYLUUBDW
      PTYTUUJYHUVLBNUUMUUNUUOUVLYLUUQOBYLEUUQGWQYLBSAWRWSULWTYTYQYIYFPZCYFPZCYT
      DYIYFUVIWBYTUWBEYFPZMUWBRMZUWAUWBYTUWCRUWBYTUUBYFUEZRNZUWCRNZYTUWEUUFRUUB
      YFXAUUTWSYTUUKUVTUWFUWGVTUURUUBUUIEWCUUBYFEWATVOXBCEYFWEUWDUWBUWBWGXDWIYT
      YGUVRUWBCNUUHUVSYFCWJTXEXCYEYSUDZYGYHYJUWHYGYFAYQLZUWHYNYFYMXNUWIYEYNYPYR
      UFZJFXFYMAYFDXGXHUWHYFACYQYEYNYPYRVPZVQVRUWHYOBAYEYNYPYRUIZUWHYMAYLDUWJUW
      HYLJVBOZIYLYMIZUWHYLSUWMYEUUJYSUULUHXIVIJYLXJYDZXKXLUWHYIYQUVJMZDYMPZDUWH
      CYQEUVJUWKUWHUVJUUQEUWHUVJYLYOUQZQZUUQUWHDYMVSZUWNUVJUWSNUWHYNUWTUWJYMADW
      CZYDUWOYMYLDXOULUWHYPUWSUUQNUWLYPUWRUUPYOBYLXMXPYDXQGXRXSUWHUWQDUUCPUWPUW
      HYMUUCDUWHUVAUVDUVEVJUWHFHUVCYEYSVCUVGVIUVHVLXTDYFUUBYAYBUWHYNUWTUWQDNUWJ
      UXAYMDWJTXEXCYC $.
  $}

  ${
    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 cz elfzelz anim2i eluzel2 syl5ibrcom
    wa eleq1 imdistani jaodan csn cun fzpred eleq2d elun syl6bb orbi1d sylan9bb
    elsng pm5.21nd ) CBDEFZABCGHZFZABIZABJKHZCGHZFZLZULAMFZRZUNUTULABCNOULUOVAU
    RULUOUTULUTUOBMFBCPABMSQTURUTULAUPCNOUAULUNABUBZFZURLZUTUSULUNAVBUQUCZFVDUL
    UMVEABCUDUEAVBUQUFUGUTVCUOURABMUJUHUIUK $.

  $( 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 peano2uz adantl wbr ad2antrr nelneq2
    caddc syl2anc cle eluzelz clt zre ltp1d wb peano2z zltnle mpdan syl elfzle2
    mpbid nsyl eqcom sylnib eluzfz2 sylancom wo simpr adantr eluzdc df-dc sylib
    wdc mpjaodan ) CBDEFZAGFZHZCADEZFZBCIJZVIKZLZVJLZVHVJHZVIVKKZVLVOCMSJZVIFZV
    QVKFZLZVPLVJVRVHACNOVFVTVGVJVFVQCUAPZVSVFCGFZWALZBCUBZWBCVQUCPZWCWBCCUDUEWB
    VQGFWEWCUFCUGCVQUHUIULUJVQBCUKUMQVQVIVKRTVIVKUNUOVHVNCVKFZVMVFWFVGVNBCUPQCV
    KVIRUQVHVJVDZVJVNURVHVGWBWGVFVGUSVFWBVGWDUTACVATVJVBVCVE $.

  $( 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 eluzp1l
    ex syl wb elfzelz zltnle syl2anc sylibd mt2d ) ABCDEFZACGHEIJFZACKLZABCMUHU
    ICANLZUJOZUHCPFZUIUKQABCRZUMUIUKCASTUAUHUMAPFUKULUBUNABCUCCAUDUEUFUG $.

  $( 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 elfzel1
    wa w3a elfzm11 simp3 syl6bi impancom mpancom syl5com eluzelz zltnle syl2anc
    wb sylibd mt2d ) ACDEFZABCGHIZJIFZCAKLZCAMUNUPACNLZUQOZUNCPFZUPURCAQZBPFZUP
    UTURRABUOSVBUTUPURVBUTTUPAPFZBAKLZURUAURABCUBVCVDURUCUDUEUFUGUNVCUTURUSUKCA
    UHVAACUIUJULUM $.

  $( 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 clt zre ltp1d peano2z zltnle
    wb mpdan mpbid intnand 3ad2ant2 elfz2 notbii imnan bitr4i mpbir ) BCDEZABFE
    GZHZAIGZBIGZUJIGZJZAUJKLZUJBKLZMZHZNZUNUMUTUOUNURUQUNBUJOLZURHZUNBBPQUNUOVB
    VCTBRBUJSUAUBUCUDULUPUSMZHVAUKVDUJABUEUFUPUSUGUHUI $.

  ${
    $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 ralrimdv nfv nfcv nfsbc1v nfralxy
      com23 fzrev2i oveq2 sbceq1d rspcv cc zcn zcnd nncan syl2an eqcomd sbceq1a
      sylibrd ralrimd 3ad2ant3 impbid ) EGHZFGHZDGHZUCZABEFIJZKZABDCLZMJZNZCDFM
      JZDEMJZIJZKZVNVPVSCWBVNVQWBHZVPVSVKVLVMWDVPVSOZOVKVLPZVMPZWDWEWGWDPZVRVOH
      ZWEWHWDWIWGWDUAWDWGVQGHZWDWIQZVQVTWARWFVMWJWKDVQEFUDUEUBUFABVRVOUGSUHUIUO
      UJVMVKWCVPOVLVMWCABVOVMBUKVSBCWBBWBULABVRUMUNVMBLZVOHZWCAVMWMWCAOVMWMPZWC
      ABDDWLMJZMJZNZAWNWOWBHWCWQODWLEFUPVSWQCWOWBVQWOTABVRWPVQWODMUQURUSSWNWLWP
      TAWQQWNWPWLVMDUTHWLUTHWPWLTWMDVAWMWLWLEFRVBDWLVCVDVEABWPVFSVGUHUOVHVIVJ
      $.

    $( 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 wa cc wceq cv 0z fzrevral
      w3a mp3an3 3adant3 zsubcl mpan id syl3an 3com12 elfzelz oveq2 sbcco3g syl
      sylan2 ralbidva 3ad2ant3 cneg df-neg oveq2i subneg addcom syl5eqr 3adant2
      zcn eqtrd oveq12d 3coml raleqdv zcnd negsubdi2 syl2an sbceq1d 3bitrd ) EH
      IZFHIZDHIZUDZABEFJKLZABMGUAZNKZOZGMFNKZMENKZJKLZWCGDCUAZNKZOZCDWENKZDWDNK
      ZJKZLZABWGDNKZOZCEDPKZFDPKZJKZLZVPVQVTWFQZVRVPVQMHIZWTUBABGMEFUCUEUFVQVPV
      RWFWMQZVQWDHIZVPWEHIZVRVRXBXAVQXCUBMFUGUHXAVPXDUBMEUGUHVRUIWCGCDWDWEUCUJU
      KVSWMABMWHNKZOZCWLLZXFCWRLZWSVRVPWMXGQVQVRWIXFCWLWGWLIVRWGHIZWIXFQZWGWJWK
      ULVRXIRWHHIXJDWGUGAGBWHWBXEHWAWHMNUMUNUOUPUQURVSXFCWLWRVPESIZVQFSIZVRDSIZ
      WLWRTZEVFFVFDVFZXMXKXLXNXMXKXLUDWJWPWKWQJXMXKWJWPTXLXMXKRZWJDEUSZNKZWPXQW
      EDNEUTVAXPXRDEPKWPDEVBDEVCVGVDUFXMXLWKWQTXKXMXLRZWKDFUSZNKZWQXTWDDNFUTVAX
      SYADFPKWQDFVBDFVCVGVDVEVHVIUJVJVRVPXHWSQVQVRXFWOCWRVRWGWRIZRABXEWNVRXMWGS
      IZXEWNTYBXOYBWGWGWPWQULVKXMYCRXEWHUSWNWHUTDWGVLVDVMVNUQURVOVO $.
  $}

  $( 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 $.

  $( An integer is in the integer range from zero to one iff it is either zero
     or one.  (Contributed by Jim Kingdon, 11-Nov-2021.) $)
  fz01or $p |- ( A e. ( 0 ... 1 ) <-> ( A = 0 \/ A = 1 ) ) $=
    ( cc0 c1 cfz co wcel caddc wo wceq cuz eluzfz1 ax-mp eleq2i elfz1eq eleqtri
    cfv bitri eleq1 mpbiri impbii 1eluzge0 fzsplit elun 0nn0 nn0uz 0p1e1 oveq1i
    cun cn0 cn 1nn nnuz orbi12i ) ABCDEZFZABBDEZFZABCGEZCDEZFZHZABIZACIZHUOAUPU
    SUHZFVAUNVDABUNFZUNVDICBJPZFVEUABCKLBBCUBLMAUPUSUCQUQVBUTVCUQVBABNVBUQBUPFZ
    BVFFVGBUIVFUDUEOBBKLABUPRSTUTACCDEZFZVCUSVHAURCCDUFUGMVIVCACNVCVICVHFZCCJPZ
    FVJCUJVKUKULOCCKLACVHRSTQUMQ $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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 $.

  $( 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 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 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 zltnle ancoms ltle sylbird syl2an 3impia leadd1d lesubadd2d syl3anbrc )
    ADCUKEZFZBWCFZABGHUAZIZBCJEZAUBEZKFZCKFZWICGHZWIWCFWGWILFZDWIGHZWJWDWEWMWFW
    EWHLFZALFZWMWDWEBKFZWKBCGHZIZWOBCMZWQWKWOWRWQWKNWHBCUCUDOPADCUEZWHAUFUGOWGW
    NAWHGHZWDWEXBWFWDWENZAQFZCQFZWHQFZACGHZCWHGHZNZXBWDXDWEWDAXARUHZWDXEWEWDCAD
    CUIRUHZWEXFWDWEWSXFWTWQWKXFWRBCUJOPULZWDXGWEXHADCUMWEDBGHZXHBDCUNWEXEBQFZNZ
    XMXHSWEWSXOWTWQWKXOWRWQXNWKXEBUOZCUOZUPOPCBUQTVBURXDXEXFIXIXBACWHUSUTVAOWGX
    FXDNZWNXBSWDWEXRWFWDWPWEXRXAWPXDWEXFAVCZWEXNXENZXFWEWSXTWTWQWKXTWRWQXNWKXEX
    PXQUROPBCVDTUPVEOWHAVFTVGWIVHVIWDWEWKWFACVJVKWGWLWHACJEGHZWGBAGHZYAWDWEWFYB
    WDWPBLFZWFYBVMWEXABDCUEZWPYCNWFBAVLHZYBYCWPYEWFSBAVNVOYCXNXDYEYBVMWPBVCXSBA
    VPUGVQVRVSWDWEYBYASWFXCBACWEXNWDWEBYDRULXJXKVTOVBWDWEWLYASWFXCWHACXLXJXKWAO
    VGWICMWB $.

  $( 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 one value function.  (Contributed by Alexander van der Vekens,
     3-Dec-2017.) $)
  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 wf1o cz f1osng mpan biimpi adantr
    0z wfo crn wi f1ofo dffo2 wss fzsn ax-mp eqcomi feq2i snssi fss syl2an 3syl
    ex mpcom fvsng jca wb feq1 fveq1 eqeq1d anbi12d adantl mpbird ) BCDZAEBFGZH
    ZIEEJKZCALZEAMZBHZIZVICVGLZEVGMZBHZIZVFVQVHVFVNVPEGZBGZVGNZVFVNEODZVFVTTEBO
    CPQVTVRVSVGUAZVRVSVGLZVGUBVSHZIZVFVNUCZVRVSVGUDWBWEVRVSVGUERWCWFWDWCVFVNWCV
    IVSVGLZVSCUFVNVFWCWGVRVIVSVGVIVRWAVIVRHTEUGUHUIUJRBCUKVIVSCVGULUMUOSUNUPWAV
    FVPTEBOCUQQURSVHVMVQUSVFVHVJVNVLVPVICAVGUTVHVKVOBEAVGVAVBVCVDVE $.

  ${
    $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 $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Half-open integer ranges
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c ..^ $.
  $( Syntax for half-open integer ranges. $)
  cfzo $a class ..^ $.

  ${
    $d m n $.
    $( 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 peano2zm fzf fovcl
      sylan2 rgen2a df-fzo fmpt2 mpbi ) ACZBCZDEFZGFZHIZJZBHKAHKHHLUGMNUHABHUDH
      JUCHJUEHJUHUDOUCUEUGHHGPQRSABHHUFUGMABTUAUB $.

    $( Reverse closure for half-open integer sets.  (Contributed by Stefan
       O'Rear, 14-Aug-2015.) $)
    elfzoel1 $p |- ( A e. ( B ..^ C ) -> B e. ZZ ) $=
      ( vm vn cz cv c1 cmin co cfz cfzo df-fzo elmpt2cl1 ) DEFFDGEGHIJKJBCLADEM
      N $.

    $( Reverse closure for half-open integer sets.  (Contributed by Stefan
       O'Rear, 14-Aug-2015.) $)
    elfzoel2 $p |- ( A e. ( B ..^ C ) -> C e. ZZ ) $=
      ( vm vn cz cv c1 cmin co cfz cfzo df-fzo elmpt2cl2 ) DEFFDGEGHIJKJBCLADEM
      N $.

    $( 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 $.
  $}

  ${
    $d x y z N $.  $d x y z M $.
    $( 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 ) ) ) $=
      ( vx vy vz cz wcel cfzo co c1 cmin cfz cv wi elfzoel1 a1i elfzel1 wb wceq
      wa cpw peano2zm fzf fovcl sylan2 id oveq1 oveqan12d df-fzo mpd3an3 eleq2d
      ovmpt2ga expcom pm5.21ndd eqrdv ) BFGZCABHIZABJKIZLIZUPAFGZCMZUQGZVAUSGZV
      BUTNUPVAABOPVCUTNUPVAAURQPUTUPVBVCRUTUPTUQUSVAUTUPUSFUAZGZUQUSSUPUTURFGVE
      BUBAURVDFFLUCUDUEDEABFFDMZEMZJKIZLIUSHVDVFASZVGBSVFAVHURLVIUFVGBJKUGUHDEU
      IULUJUKUMUNUO $.
  $}

  $( 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
    $.

  $( 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 alternate
     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 alternate
     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 inhabited iff it contains its left
       endpoint.  (Contributed by Jim Kingdon, 20-Apr-2020.) $)
    fzom $p |- ( E. x x e. ( M ..^ N ) <-> M e. ( M ..^ N ) ) $=
      ( cv cfzo co wcel wex elfzolt3b exlimiv elex2 impbii ) ADZBCEFZGZAHBNGZOP
      AMBCIJABNKL $.

    $( 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 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 $.

  ${
    $d A x $.
    $( 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 ) = (/) $=
      ( vx cfzo co c0 wceq cv wcel wn wal wex fzonel fzom mtbir alnex mpbir eq0
      ) AACDZEFBGRHZIBJZTSBKZIUAARHAALBAAMNSBOPBRQP $.
  $}

  $( 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
    $.

  ${
    $d K x $.  $d M x $.  $d N x $.
    $( 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 ) ) $=
      ( vx cuz cfv wcel cfzo co cv wa cz elfzoel2 adantl c1 cmin cfz wss fzoval
      wceq fzss1 adantr 3sstr4d sseld impancom mpd ex ssrdv ) ABEFGZDACHIZBCHIZ
      UIDJZUJGZULUKGZUIUMKCLGZUNUMUOUIULACMNUIUOUMUNUIUOKZUJUKULUPACOPIZQIZBUQQ
      IZUJUKUIURUSRUOABUQUAUBUOUJURTUIACSNUOUKUSTUIBCSNUCUDUEUFUGUH $.
  $}

  $( 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 fzss1 nn0uz eleq2s syl5ss fzssuz
    cfv sseqtr4i syl6ss ) ACDZABEFZGBHFZCTUAABHFZUBABIUCUBJAGKQZCAGBLMNOUBUDCGB
    PMRS $.

  $( 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 simpr elfzoelz adantr a1d elfzo syl3anc
    wb zlelttric syl2anc orcomd elfzole1 ancrd elfzolt2 ancld elfzoel1 elfzoel2
    orim12d mpd orbi12d mpbird ) ABCEFGZDHGZIZABDEFGZADCEFGZJBAKLZADMLZIZDAKLZA
    CMLZIZJZUPUTVBJVEUPVBUTUPUOAHGZVBUTJUNUONZUNVFUOABCOPZDAUAUBUCUPUTVAVBVDUPU
    TUSUPUSUTUNUSUOABCUDPQUEUPVBVCUPVCVBUNVCUOABCUFPQUGUJUKUPUQVAURVDUPVFBHGZUO
    UQVATVHUNVIUOABCUHPVGABDRSUPVFUOCHGZURVDTVHVGUNVJUOABCUIPADCRSULUM $.

  ${
    $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 disj1 cle wbr clt elfzolt2 cz wb
      elfzoelz elfzoel2 zltnle syl2anc mpbid elfzole1 nsyl mpgbir ) ABEFZBCEFZG
      HIDJZUIKZUKUJKZLMDDUIUJNULBUKOPZUMULUKBQPZUNLZUKABRULUKSKBSKUOUPTUKABUAUK
      ABUBUKBUCUDUEUKBCUFUGUH $.

    $( 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 co cun cv wo wa clt wbr cle cz eluzelz zlelttric syl2an
      cfzo wb orcomd id elfzo2 df-3an bitri baib syl2anr eluz orbi12d mpbird ex
      w3a elun syl6ibr ssrdv wss elfzouz ssriv a1i uzss unssd eqssd ) BADEZFZVC
      ABSGZBDEZHZVDCVCVGVDCIZVCFZVHVEFZVHVFFZJZVHVGFVDVIVLVDVIKZVLVHBLMZBVHNMZJ
      VMVOVNVDBOFZVHOFZVOVNJVIABPZAVHPZBVHQRUAVMVJVNVKVOVIVIVPVJVNTVDVIUBVRVJVI
      VPKZVNVJVIVPVNULVTVNKVHABUCVIVPVNUDUEUFUGVDVPVQVKVOTVIVRVSBVHUHRUIUJUKVHV
      EVFUMUNUOVDVEVFVCVEVCUPVDCVEVCVHABUQURUSABUTVAVB $.

    $( 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 c0 wceq cv wcel wn eq0 wa elfzolt2 adantr adantl
      clt wbr cle eluzle cz eluzel2 zred cr eluzelre lenltd mpbid pm2.65i mtbir
      elin mpgbir ) ABDEZBFGZHZIJCKZUPLZMCCUPNURUQUNLZUQUOLZOZVAUQBSTZUSVBUTUQA
      BPQVABUQUATZVBMUTVCUSBUQUBRVABUQVABUTBUCLUSBUQUDRUEUTUQUFLUSBUQUGRUHUIUJU
      QUNUOULUKUM $.
  $}

  $( 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 $.

  $( 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 $.

  $( 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 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 then 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 cz nn0z adantl expd sylbi imp
    cr cn cfzo elfz2nn0 simpl1 necom wb zltlen syl2an bicomd elnn0z 0red adantr
    cfz zre nn0re lelttr syl3anc elnnz simplbi2 syl syld impancom sylbid syl7bi
    3impia biimpd exp4b 3imp syl5bi 3jca ex impcom elfzo0 sylibr ) ABCZADBUMEFZ
    GAHFZBUAFZABIJZKZADBUBEFVPVOVTVPVQBHFZABLJZKZVOVTMABUCWCVOVTWCVOGVQVRVSVQWA
    WBVOUDWCVOVRVQWAWBVOVRMVOBACZVQWAGZWBVRABUEZWEWBWDVRWEWBWDGZVSVRWEVSWGVQANF
    ZBNFZVSWGUFWAAOBOZABUGUHUIZVQWAVSVRMZVQWHDALJZGWAWLMAUJWHWAWMWLWHWAGZWMVSVR
    WNWMVSGZDBIJZVRWNDTFATFZBTFZWOWPMWNUKWHWQWAAUNULWAWRWHBUOPDABUPUQWAWPVRMZWH
    WAWIWSWJVRWIWPBURUSUTPVAQVBRSVCQVDVESWCVOVSVOWDWCVSWFVQWAWBWDVSMVQWAWBWDVSW
    EWGVSWKVFVGVHVISVJVKRVLABVMVN $.

  ${
    $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 $.

  ${
    $d A x $.
    $( A half-open integer range based at 0 is inhabited precisely if the upper
       bound is a positive integer.  (Contributed by Jim Kingdon,
       20-Apr-2020.) $)
    fzo0m $p |- ( E. x x e. ( 0 ..^ A ) <-> A e. NN ) $=
      ( cv cc0 cfzo co wcel wex cn fzom lbfzo0 bitri ) ACDBEFZGAHDMGBIGADBJBKL
      $.
  $}

  $( 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 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 $.

  $( 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 $.

  $( 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.) $)
    fzo0ssnn0 $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 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 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 $.

  $( 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 $.

  ${
    $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 $.

  $( 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 wi elfzo2 cle simpr 3ad2ant1 adantr
    w3a eluzelz ad2antrr wb eluzel2 syl3anc eluzle biantrurd bitr4d notbid zred
    elfzo lenltd biimpd ex com23 imp31 eluz2 syl3anbrc simpll2 simpll3 sylanb
    com12 ) BCAEFGZBCDEFGZHZIDJGZBDAEFGZVDBCKLGZAJGZBAMNZUAZVFVGVHOBCAPVLVFIZVG
    VHVMVGIZBDKLGZVJVKVHVNVGBJGZDBQNZVOVMVGRVLVPVFVGVIVJVPVKCBUBZSUCVLVFVGVQVIV
    JVFVGVQOOVKVIVGVFVQVIVGVFVQOVIVGIZVFVQVSVFBDMNZHVQVSVEVTVSVECBQNZVTIZVTVSVP
    CJGZVGVEWBUDVIVPVGVRTZVIWCVGCBUETVIVGRZBCDULUFVSWAVTVIWAVGCBUGTUHUIUJVSDBVS
    DWEUKVSBWDUKUMUIUNUOUPSUQDBURUSVIVJVKVFVGUTVIVJVKVFVGVABDAPUSUOVBVC $.

  $( 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 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.) $)
  fzosplitprm1 $p |- ( ( A e. ZZ /\ B e. ZZ /\ A < B ) ->
      ( A ..^ ( B + 1 ) ) = ( ( A ..^ ( B - 1 ) ) u. { ( B - 1 ) , B } ) ) $=
    ( cz wcel wbr c1 caddc co cfzo csn cun wceq cle cr zre syl3anbrc fzosplitsn
    eluz2 syl cc clt w3a cmin cpr cuz cfv simp1 simp2 wi ltle syl2an 3impia zcn
    ax-1cn npcan eqcomd sylancl 3ad2ant2 oveq2d peano2zm zltlem1 biimp3a uneq1d
    wa eqtrd unass df-pr eqcomi a1i uneq2d syl5eq 3eqtrd ) ACDZBCDZABUAEZUBZABF
    GHIHZABIHZBJZKZABFUCHZIHZWAJZKZVSKZWBWABUDZKZVPBAUEUFZDZVQVTLVPVMVNABMEZWIV
    MVNVOUGZVMVNVOUHVMVNVOWJVMANDBNDVOWJUIVNAOBOABUJUKULABRPABQSVPVRWDVSVPVRAWA
    FGHZIHZWDVPBWLAIVNVMBWLLZVOVNBTDZFTDZWNBUMUNWOWPVDWLBBFUOUPUQURUSVPWAWHDZWM
    WDLVPVMWACDZAWAMEZWQWKVNVMWRVOBUTURVMVNVOWSABVAVBAWARPAWAQSVEVCVPWEWBWCVSKZ
    KWGWBWCVSVFVPWTWFWBWTWFLVPWFWTWABVGVHVIVJVKVL $.

  $( 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 $.

  $( 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 M n w y $.  $d N n w y $.  $d n ph w y $.  $d ps w y $.
    exfzdc.1 $e |- ( ph -> M e. ZZ ) $.
    exfzdc.2 $e |- ( ph -> N e. ZZ ) $.
    exfzdc.3 $e |- ( ( ph /\ n e. ( M ... N ) ) -> DECID ps ) $.
    $( Decidability of the existence of an integer defined by a decidable
       proposition.  (Contributed by Jim Kingdon, 28-Jan-2022.) $)
    exfzdc $p |- ( ph -> DECID E. n e. ( M ... N ) ps ) $=
      ( cfz co wrex wdc wa wcel syl2anc wi wceq oveq2 rexeqdv dcbid cle wbr cuz
      vw vy wn cz wb eluz biimpar simpl eluzfz2 cv c1 caddc imbi2d wsbc eluzfz1
      cfv wral adantl ralrimiva adantr nfsbc1v nfdc sbceq1a rspc csn syl rexsns
      sylc fzsn syl6bb mpbird expcom cfzo simpr fzofzp1 ad2antrr ad2antlr dcbii
      cun wo sylibr dcor rexun elfzouz fzsuc exp31 a2d fzind2 c0 clt zltnle fzn
      rex0 mpbid mtbiri olcd df-dc zdcle exmiddc mpjaodan ) ADEUAUBZBCDEIJZKZLZ
      XDUFZAXDMEDUCUSZNZAXGAXJXDADUGNZEUGNZXJXDUHFGDEUIOUJAXDUKXJEXENAXGPZDEULA
      BCDUDUMZIJZKZLZPABCDDIJZKZLZPABCDUEUMZIJZKZLZPABCDYAUNUOJZIJZKZLZPXMUDUEE
      DEXNDQZXQXTAYIXPXSYIBCXOXRXNDDIRSTUPXNYAQZXQYDAYJXPYCYJBCXOYBXNYADIRSTUPX
      NYEQZXQYHAYKXPYGYKBCXOYFXNYEDIRSTUPXNEQZXQXGAYLXPXFYLBCXOXEXNEDIRSTUPAXJX
      TAXJMZXTBCDUQZLZYMDXENZBLZCXEUTZYOXJYPADEURVAAYRXJAYQCXEHVBZVCYQYOCDXEYNC
      BCDVDVECUMZDQBYNBCDVFTVGVKYMXSYNYMXSBCDVHZKYNYMBCXRUUAYMXKXRUUAQAXKXJFVCD
      VLVISBCDVJVMTVNVOYADEVPJNZAYDYHUUBAYDYHUUBAMZYDMZYHBCYBYEVHZWBZKZLZUUDYCB
      CUUEKZWCZLZUUHUUDYDUUILZUUKUUCYDVQUUDBCYEUQZLZUULUUDYEXENZYRUUNUUBUUOAYDD
      EYAVRVSAYRUUBYDYSVTYQUUNCYEXEUUMCBCYEVDVEYTYEQBUUMBCYEVFTVGVKUUIUUMBCYEVJ
      WAWDYCUUIWEVKUUGUUJBCYBUUEWFWAWDUUDYGUUGUUDBCYFUUFUUDYAXINZYFUUFQUUBUUPAY
      DYADEWGVSDYAWHVISTVNWIWJWKVIVKAXHMZXFXFUFZWCXGUUQUURXFUUQXFBCWLKBCWPUUQBC
      XEWLUUQEDWMUBZXEWLQZAUUSXHAXLXKUUSXHUHGFEDWNOUJAUUSUUTUHZXHAXKXLUVAFGDEWO
      OVCWQSWRWSXFWTWDAXKXLXDXHWCZFGXKXLMXDLUVBDEXAXDXBVIOXC $.
  $}

  ${
    $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 wb simpl ffvelrnd eleq1
      disj notbid df-nel syl6bbr ralprg syl2anc syl5bb bitrd ) EBUAFZCAUBZBGHZI
      ZAEBJKZAUCBUDFKZLZMNEAOZBAOZJZVTLZMNZWBVTPZWCVTPZIZVRWAWEMVRVSWDVTVRAVOUE
      ZEVOHZBVOHZVSWDNVPWJVQVOCAUFUGVREGHZVQEBQRZWKWMVRUHUIVPVQUJVQWNVPBUKSEBUL
      UMZVQWLVPVQVQVQBBQRWLVQUNZWPVQBBUOUPBBULUMSZVOEBAUQURUSUTWFDVAZVTHZTZDWDV
      BZVRWIDWDVTVGVRWBCHWCCHXAWIVCVRVOCEAVPVQVDZWOVEVRVOCBAXBWQVEWTWGWHDWBWCCC
      WRWBNZWTWBVTHZTWGXCWSXDWRWBVTVFVHWBVTVIVJWRWCNZWTWCVTHZTWHXEWSXFWRWCVTVFV
      HWCVTVIVJVKVLVMVN $.
  $}

  $( 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 $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Rational numbers (cont.)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d M w x y z $.  $d N w x y z $.
    $( Rational trichotomy.  (Contributed by Jim Kingdon, 6-Oct-2021.) $)
    qtri3or $p |- ( ( M e. QQ /\ N e. QQ ) -> ( M < N \/ M = N \/ N < M ) ) $=
      ( vz vw vx vy cq wcel wa cv cdiv co wceq cn wrex cz clt wbr w3o cc biimpi
      elq adantl ad3antrrr cmul simplrl simplrr zmulcld ztri3or syl2anc simpllr
      ad2antrr nnzd breq2d wb breq1 zred nnrpd lt2mul2divd 3bitr4rd eqeq12d cc0
      simpr cap zcnd nncnd nnap0d jca divmuleqap syl22anc bitr2d breq12d bitr4d
      3orbi123d mpbid ex rexlimdvva mpd ) AGHZBGHZIZBCJZDJZKLZMZDNOCPOZABQRZABM
      ZBAQRZSZVTWFVSVTWFCDBUBUAUCWAWEWJCDPNWAWBPHZWCNHZIZIZWEWJWNWEIZAEJZFJZKLZ
      MZFNOEPOZWJVSWTVTWMWEVSWTEFAUBUAUDWOWSWJEFPNWOWPPHZWQNHZIZIZWSWJXDWSIZWPW
      CUELZWBWQUELZQRZXFXGMZXGXFQRZSZWJXEXFPHXGPHXKXEWPWCWOXAXBWSUFZXEWCWOWLXCW
      SWAWKWLWEUGULZUMUHXEWBWQWOWKXCWSWAWKWLWEUFULZXEWQWOXAXBWSUGZUMUHXFXGUIUJX
      EXHWGXIWHXJWIXEWRBQRZWRWDQRWGXHXEBWDWRQWNWEXCWSUKZUNWSWGXPUOXDAWRBQUPUCXE
      WPWCWBWQXEWPXLUQZXEWCXMURZXEWBXNUQZXEWQXOURZUSUTXEWHWRWDMZXIXEAWRBWDXDWSV
      CZXQVAXEWPTHWBTHWQTHZWQVBVDRZIWCTHZWCVBVDRZIYBXIUOXEWPXLVEXEWBXNVEXEYDYEX
      EWQXOVFXEWQXOVGVHXEYFYGXEWCXMVFXEWCXMVGVHWPWBWQWCVIVJVKXEXJWDWRQRWIXEWBWQ
      WPWCXTYAXRXSUSXEBWDAWRQXQYCVLVMVNVOVPVQVRVPVQVR $.
  $}

  $( Rational trichotomy.  (Contributed by Jim Kingdon, 6-Oct-2021.) $)
  qletric $p |- ( ( A e. QQ /\ B e. QQ ) -> ( A <_ B \/ B <_ A ) ) $=
    ( cq wcel wa cr clt wbr wceq w3o cle qre anim12i qtri3or ltle orc syl6 eqle
    wo wi ex adantr ancoms olc 3jaod sylc ) ACDZBCDZEAFDZBFDZEZABGHZABIZBAGHZJA
    BKHZBAKHZSZUGUIUHUJALBLMABNUKULUQUMUNUKULUOUQABOUOUPPZQUKUMUOUQUIUMUOTUJUIU
    MUOABRUAUBURQUKUNUPUQUJUIUNUPTBAOUCUPUOUDQUEUF $.

  $( Rational trichotomy.  (Contributed by Jim Kingdon, 7-Oct-2021.) $)
  qlelttric $p |- ( ( A e. QQ /\ B e. QQ ) -> ( A <_ B \/ B < A ) ) $=
    ( cq wcel wa cr clt wbr wceq w3o cle qre anim12i qtri3or ltle orc syl6 eqle
    wo wi ex adantr olc a1i 3jaod sylc ) ACDZBCDZEAFDZBFDZEZABGHZABIZBAGHZJABKH
    ZUNSZUGUIUHUJALBLMABNUKULUPUMUNUKULUOUPABOUOUNPZQUKUMUOUPUIUMUOTUJUIUMUOABR
    UAUBUQQUNUPTUKUNUOUCUDUEUF $.

  $( 'Less than' expressed in terms of 'less than or equal to'.  (Contributed
     by Jim Kingdon, 8-Oct-2021.) $)
  qltnle $p |- ( ( A e. QQ /\ B e. QQ ) -> ( A < B <-> -. B <_ A ) ) $=
    ( cq wcel wa clt wbr cle wn cr qre lenlt syl2anr biimpd con2d wceq w3o syl6
    wb wi qtri3or ax-1 a1i eqcom eqle sylan2b ex adantl sylan2 pm2.24 3jaod mpd
    ltle impbid ) ACDZBCDZEZABFGZBAHGZIZUQUSURUQUSURIZUPBJDZAJDZUSVASUOBKZAKZBA
    LMNOUQURABPZBAFGZQUTURTZABUAUQURVHVFVGURVHTUQURUTUBUCUQVFUSVHUPUOVBVFUSTZVD
    VBVIUOVBVFUSVFVBBAPUSABUDBAUEUFUGUHUIUSURUJZRUQVGUSVHUPVBVCVGUSTUOVDVEBAUMM
    VJRUKULUN $.

  $( Equality of rationals is decidable.  (Contributed by Jim Kingdon,
     11-Oct-2021.) $)
  qdceq $p |- ( ( A e. QQ /\ B e. QQ ) -> DECID A = B ) $=
    ( cq wcel wa clt wbr wceq w3o wdc qtri3or cr qre wne ltne necomd sylibr syl
    wi ex wo olc dcne adantr sylan orc a1i adantl 3jaod mpd ) ACDZBCDZEZABFGZAB
    HZBAFGZIUOJZABKUMUNUQUOUPUKALDZULUNUQSZAMURUSULURUNUQURUNEZABNZUQUTBAABOPVA
    UOVAUAZUQVAUOUBABUCZQZRTUDUEUOUQSUMUOVBUQUOVAUFVCQUGULUPUQSZUKULBLDZVEBMVFU
    PUQVFUPEVAUQBAOVDRTRUHUIUJ $.

  ${
    $d A j m $.  $d K j m $.
    $( Lemma for ~ qbtwnz .  Induction step.  (Contributed by Jim Kingdon,
       8-Oct-2021.) $)
    qbtwnzlemstep $p |- ( ( K e. NN /\ A e. QQ /\
        E. m e. ZZ ( m <_ A /\ A < ( m + ( K + 1 ) ) ) ) ->
        E. m e. ZZ ( m <_ A /\ A < ( m + K ) ) ) $=
      ( vj wcel cq cle wbr c1 caddc co clt wa wrex simpllr breq1 breq2d anbi12d
      cz oveq1 cn w3a simpll ad2antrr nnzd zaddcld simpr qre ad4antlr zred 1red
      cv readdcld nnred simplrr zcnd nncnd 1cnd addassd breqtrrd nnge1d ltletrd
      cr leadd2dd wceq rspcev syl12anc simplrl weq wo zq ad2antlr nnq ad3antrrr
      qaddcl syl2anc qlelttric mpjaodan ex rexlimdva 3impia cbvrexv sylibr ) CU
      AEZAFEZBULZAGHZAWFCIJKJKZLHZMZBSNZUBDULZAGHZAWLCJKZLHZMZDSNZWGAWFCJKZLHZM
      ZBSNWDWEWKWQWDWEMZWJWQBSXAWFSEZMZWJWQXCWJMZWRAGHZWQWSXDXEMZWRSEXEAWRCJKZL
      HZWQXFWFCXAXBWJXEOZXFCXCWDWJXEWDWEXBUCUDZUEUFZXDXEUGXFAWRIJKZXGWEAVCEWDXB
      WJXEAUHUIXFWRIXFWRXKUJZXFUKZUMXFWRCXMXFCXJUNZUMXFAWHXLLXCWGWIXEUOXFWFCIXF
      WFXIUPXFCXJUQXFURUSUTXFICWRXNXOXMXFCXJVAVDVBWPXEXHMDWRSWLWRVEZWMXEWOXHWLW
      RAGPXPWNXGALWLWRCJTQRVFVGXDWSMXBWGWSWQXAXBWJWSOXCWGWIWSVHXDWSUGWPWTDWFSDB
      VIZWMWGWOWSWLWFAGPXQWNWRALWLWFCJTQRVFVGXDWRFEZWEXEWSVJXDWFFEZCFEZXRXBXSXA
      WJWFVKVLWDXTWEXBWJCVMVNWFCVOVPWDWEXBWJOWRAVQVPVRVSVTWAWTWPBDSBDVIZWGWMWSW
      OWFWLAGPYAWRWNALWFWLCJTQRWBWC $.
  $}

  ${
    $d A k m w x $.  $d J m w $.
    $( Lemma for ~ qbtwnz .  Shrinking the range around the given rational
       number.  (Contributed by Jim Kingdon, 8-Oct-2021.) $)
    qbtwnzlemshrink $p |- ( ( A e. QQ /\ J e. NN /\
        E. m e. ZZ ( m <_ A /\ A < ( m + J ) ) ) ->
        E. x e. ZZ ( x <_ A /\ A < ( x + 1 ) ) ) $=
      ( cv wbr caddc co clt wa cz wrex c1 wi oveq2 breq2d anbi2d rexbidv imbi1d
      wceq vw vk cq wcel cn cle simp2 3simpb breq1 oveq1 anbi12d cbvrexv biimpi
      w3a adantl qbtwnzlemstep 3expia imdistanda imim1d nnind sylc ) BUCUDZDUEU
      DZCEZBUFFZBVDDGHZIFZJZCKLZUNVCVBVIJZAEZBUFFZBVKMGHZIFZJZAKLZVBVCVIUGVBVCV
      IUHVBVEBVDUAEZGHZIFZJZCKLZJZVPNVBVEBVDMGHZIFZJZCKLZJZVPNVBVEBVDUBEZGHZIFZ
      JZCKLZJZVPNVBVEBVDWHMGHZGHZIFZJZCKLZJZVPNVJVPNUAUBDVQMTZWBWGVPWTWAWFVBWTV
      TWECKWTVSWDVEWTVRWCBIVQMVDGOPQRQSVQWHTZWBWMVPXAWAWLVBXAVTWKCKXAVSWJVEXAVR
      WIBIVQWHVDGOPQRQSVQWNTZWBWSVPXBWAWRVBXBVTWQCKXBVSWPVEXBVRWOBIVQWNVDGOPQRQ
      SVQDTZWBVJVPXCWAVIVBXCVTVHCKXCVSVGVEXCVRVFBIVQDVDGOPQRQSWFVPVBWFVPWEVOCAK
      VDVKTZVEVLWDVNVDVKBUFUIXDWCVMBIVDVKMGUJPUKULUMUOWHUEUDZWSWMVPXEVBWRWLXEVB
      WRWLBCWHUPUQURUSUTVA $.
  $}

  ${
    $d A m n x y $.
    $( Lemma for ~ qbtwnz .  Existence of the integer.

       The proof starts by finding two integers which are less than and greater
       than the given rational number.  Then this range can be shrunk by
       choosing an integer in between the endpoints of the range and then
       deciding which half of the range to keep based on rational number
       trichotomy, and iterating until the range consists of two consecutive
       integers.  (Contributed by Jim Kingdon, 8-Oct-2021.) $)
    qbtwnzlemex $p |- ( A e. QQ -> E. x e. ZZ ( x <_ A /\ A < ( x + 1 ) ) ) $=
      ( vm vn vy cq wcel cv clt wbr wa cz wrex cle c1 caddc co cr zred zcnd qre
      btwnz reeanv sylibr cmin cn simpll simplrl ad2antrr simplrr simprl simprr
      syl lttrd wb znnsub ad2antlr mpbid ltled pncan3d breqtrrd weq breq1 oveq1
      breq2d anbi12d rspcev syl12anc qbtwnzlemshrink syl3anc ex rexlimdvva mpd
      ) BFGZCHZBIJZBDHZIJZKZDLMCLMZAHZBNJBWAOPQIJKALMZVNVPCLMVRDLMKZVTVNBRGZWCB
      UAZCDBUBUMVPVRCDLLUCUDVNVSWBCDLLVNVOLGZVQLGZKZKZVSWBWIVSKZVNVQVOUEQZUFGZE
      HZBNJZBWMWKPQZIJZKZELMZWBVNWHVSUGWJVOVQIJZWLWJVOBVQWJVOVNWFWGVSUHZSZVNWDW
      HVSWEUIZWJVQVNWFWGVSUJZSWIVPVRUKZWIVPVRULZUNWHWSWLUOVNVSVOVQUPUQURWJWFVOB
      NJZBVOWKPQZIJZWRWTWJVOBXAXBXDUSWJBVQXGIXEWJVOVQWJVOWTTWJVQXCTUTVAWQXFXHKE
      VOLECVBZWNXFWPXHWMVOBNVCXIWOXGBIWMVOWKPVDVEVFVGVHABEWKVIVJVKVLVM $.
  $}

  ${
    $d A x y $.
    $( There is a unique greatest integer less than or equal to a rational
       number.  (Contributed by Jim Kingdon, 8-Oct-2021.) $)
    qbtwnz $p |- ( A e. QQ -> E! x e. ZZ ( x <_ A /\ A < ( x + 1 ) ) ) $=
      ( vy wcel cv cle wbr c1 caddc co wa cz wral zred readdcld lelttrd zleltp1
      clt wb syl2anc cq wrex wrmo wreu qbtwnzlemex weq simplrl ad2antrr simplrr
      wi cr simprll simprrr mpbird simprrl simprlr letri3d mpbir2and ralrimivva
      qre 1red ex breq1 oveq1 breq2d anbi12d rmo4 sylibr reu5 sylanbrc ) BUADZA
      EZBFGZBVLHIJZRGZKZALUBVPALUCZVPALUDABUEVKVPCEZBFGZBVRHIJZRGZKZKZACUFZUJZC
      LMALMVQVKWEACLLVKVLLDZVRLDZKZKZWCWDWIWCKZWDVLVRFGZVRVLFGZWJWKVLVTRGZWJVLB
      VTWJVLVKWFWGWCUGZNZVKBUKDWHWCBUTUHZWJVRHWJVRVKWFWGWCUIZNZWJVAZOWIVMVOWBUL
      WIVPVSWAUMPWJWFWGWKWMSWNWQVLVRQTUNWJWLVRVNRGZWJVRBVNWRWPWJVLHWOWSOWIVPVSW
      AUOWIVMVOWBUPPWJWGWFWLWTSWQWNVRVLQTUNWJVLVRWOWRUQURVBUSVPWBACLWDVMVSVOWAV
      LVRBFVCWDVNVTBRVLVRHIVDVEVFVGVHVPALVIVJ $.
  $}

  ${
    $d A j m $.  $d K j m $.
    $( Lemma for ~ rebtwn2z .  Induction step.  (Contributed by Jim Kingdon,
       13-Oct-2021.) $)
    rebtwn2zlemstep $p |- ( ( K e. ( ZZ>= ` 2 ) /\ A e. RR /\
        E. m e. ZZ ( m < A /\ A < ( m + ( K + 1 ) ) ) ) ->
        E. m e. ZZ ( m < A /\ A < ( m + K ) ) ) $=
      ( vj c2 cuz wcel cr clt c1 caddc co wa cz wrex simpllr breq1 oveq1 breq2d
      wbr cfv peano2z ad3antlr simpr simplrr zcnd 1cnd eluzelcn ad4antr addassd
      cv w3a addcomd oveq2d eqtrd breqtrrd wceq anbi12d rspcev syl12anc simplrl
      cc weq wo 1red eluzelre ad3antrrr simplr zred 1z eluzp1l mpan df-2 fveq2i
      eleq2s ltadd2dd wi readdcld axltwlin syl3anc mpjaodan ex rexlimdva 3impia
      mpd cbvrexv sylibr ) CEFUAZGZAHGZBUKZAITZAWKCJKLZKLZITZMZBNOZULDUKZAITZAW
      RCKLZITZMZDNOZWLAWKCKLZITZMZBNOWIWJWQXCWIWJMZWPXCBNXGWKNGZMZWPXCXIWPMZWKJ
      KLZAITZXCXEXJXLMZXKNGZXLAXKCKLZITZXCXHXNXGWPXLWKUBUCXJXLUDXMAWNXOIXIWLWOX
      LUEXMXOWKJCKLZKLWNXMWKJCXMWKXGXHWPXLPUFXMUGZWICVBGWJXHWPXLECUHUIZUJXMXQWM
      WKKXMJCXRXSUMUNUOUPXBXLXPMDXKNWRXKUQZWSXLXAXPWRXKAIQXTWTXOAIWRXKCKRSURUSU
      TXJXEMXHWLXEXCXGXHWPXEPXIWLWOXEVAXJXEUDXBXFDWKNDBVCZWSWLXAXEWRWKAIQYAWTXD
      AIWRWKCKRSURUSUTXJXKXDITZXLXEVDZXJJCWKXJVEZWICHGWJXHWPECVFVGZXJWKXGXHWPVH
      VIZWIJCITZWJXHWPYGCJJKLZFUAZWHJNGCYIGYGVJJCVKVLEYHFVMVNVOVGVPXJXKHGXDHGWJ
      YBYCVQXJWKJYFYDVRXJWKCYFYEVRWIWJXHWPPXKXDAVSVTWEWAWBWCWDXFXBBDNBDVCZWLWSX
      EXAWKWRAIQYJXDWTAIWKWRCKRSURWFWG $.
  $}

  ${
    $d A k m w x $.  $d J m w $.
    $( Lemma for ~ rebtwn2z .  Shrinking the range around the given real
       number.  (Contributed by Jim Kingdon, 13-Oct-2021.) $)
    rebtwn2zlemshrink $p |- ( ( A e. RR /\ J e. ( ZZ>= ` 2 ) /\
        E. m e. ZZ ( m < A /\ A < ( m + J ) ) ) ->
        E. x e. ZZ ( x < A /\ A < ( x + 2 ) ) ) $=
      ( c2 cv clt wbr caddc co wa cz wrex wi oveq2 breq2d anbi2d rexbidv imbi1d
      wceq vw vk cr wcel cuz cfv simp2 3simpb c1 2z breq1 oveq1 anbi12d cbvrexv
      w3a biimpi adantl rebtwn2zlemstep 3expia imdistanda imim1d uzind4i sylc )
      BUCUDZDEUEUFZUDZCFZBGHZBVGDIJZGHZKZCLMZUOVFVDVLKZAFZBGHZBVNEIJZGHZKZALMZV
      DVFVLUGVDVFVLUHVDVHBVGUAFZIJZGHZKZCLMZKZVSNVDVHBVGEIJZGHZKZCLMZKZVSNVDVHB
      VGUBFZIJZGHZKZCLMZKZVSNVDVHBVGWKUIIJZIJZGHZKZCLMZKZVSNVMVSNUAUBEDUJVTETZW
      EWJVSXCWDWIVDXCWCWHCLXCWBWGVHXCWAWFBGVTEVGIOPQRQSVTWKTZWEWPVSXDWDWOVDXDWC
      WNCLXDWBWMVHXDWAWLBGVTWKVGIOPQRQSVTWQTZWEXBVSXEWDXAVDXEWCWTCLXEWBWSVHXEWA
      WRBGVTWQVGIOPQRQSVTDTZWEVMVSXFWDVLVDXFWCVKCLXFWBVJVHXFWAVIBGVTDVGIOPQRQSW
      IVSVDWIVSWHVRCALVGVNTZVHVOWGVQVGVNBGUKXGWFVPBGVGVNEIULPUMUNUPUQWKVEUDZXBW
      PVSXHVDXAWOXHVDXAWOBCWKURUSUTVAVBVC $.
  $}

  ${
    $d A m n x y $.
    $( A real number can be bounded by integers above and below which are two
       apart.

       The proof starts by finding two integers which are less than and greater
       than the given real number.  Then this range can be shrunk by choosing
       an integer in between the endpoints of the range and then deciding which
       half of the range to keep based on weak linearity, and iterating until
       the range consists of integers which are two apart.  (Contributed by Jim
       Kingdon, 13-Oct-2021.) $)
    rebtwn2z $p |- ( A e. RR -> E. x e. ZZ ( x < A /\ A < ( x + 2 ) ) ) $=
      ( vm vn vy cr wcel cv clt wbr wa cz wrex c2 caddc co c1 cuz cfv zred cmin
      btwnz reeanv sylibr simpll cn simplrl simprl simprr lttrd znnsub ad2antlr
      simplrr wb mpbid elnnuz eluzp1p1 sylbi df-2 fveq2i syl6eleqr zcnd pncan3d
      eqeltrd resubcld 1red readdcld breqtrrd ltp1d ltadd2dd breq1 oveq1 breq2d
      syl weq anbi12d rspcev syl12anc rebtwn2zlemshrink syl3anc rexlimdvva mpd
      ex ) BFGZCHZBIJZBDHZIJZKZDLMCLMZAHZBIJBWKNOPIJKALMZWDWFCLMWHDLMKWJCDBUBWF
      WHCDLLUCUDWDWIWLCDLLWDWELGZWGLGZKZKZWIWLWPWIKZWDWGWEUAPZQOPZNRSZGZEHZBIJZ
      BXBWSOPZIJZKZELMZWLWDWOWIUEZWQWRUFGZXAWQWEWGIJZXIWQWEBWGWQWEWDWMWNWIUGZTZ
      XHWQWGWDWMWNWIUMZTZWPWFWHUHZWPWFWHUIZUJWOXJXIUNWDWIWEWGUKULUOXIWSQQOPZRSZ
      WTXIWRQRSGWSXRGWRUPQWRUQURNXQRUSUTVAVNWQWMWFBWEWSOPZIJZXGXKXOWQBWEWROPZXS
      XHWQYAWGFWQWEWGWQWEXKVBWQWGXMVBVCZXNVDWQWEWSXLWQWRQWQWGWEXNXLVEZWQVFVGZVG
      WQBWGYAIXPYBVHWQWRWSWEYCYDXLWQWRYCVIVJUJXFWFXTKEWELECVOZXCWFXEXTXBWEBIVKY
      EXDXSBIXBWEWSOVLVMVPVQVRABEWSVSVTWCWAWB $.
  $}

  ${
    qbtwnrelemcalc.m $e |- ( ph -> M e. ZZ ) $.
    qbtwnrelemcalc.n $e |- ( ph -> N e. NN ) $.
    qbtwnrelemcalc.a $e |- ( ph -> A e. RR ) $.
    qbtwnrelemcalc.b $e |- ( ph -> B e. RR ) $.
    qbtwnrelemcalc.lt $e |- ( ph -> M < ( A x. ( 2 x. N ) ) ) $.
    qbtwnrelemcalc.1n $e |- ( ph -> ( 1 / N ) < ( B - A ) ) $.
    $( Lemma for ~ qbtwnre .  Calculations involved in showing the constructed
       rational number is less than ` B ` .  (Contributed by Jim Kingdon,
       14-Oct-2021.) $)
    qbtwnrelemcalc $p |- ( ph -> ( ( M + 2 ) / ( 2 x. N ) ) < B ) $=
      ( c2 co cmul cdiv clt wbr cmin a1i recnd caddc cr wcel 2re nnred remulcld
      resubcld zred c1 2t1e2 oveq1i 1cnd nnap0d cc0 cap 2ap0 divcanap5d syl5eqr
      eqbrtrd crp 2rp nnrpd rpmulcld ltdivmul2d mulcld subdird breqtrd ltsub2dd
      mpbid lttrd ltaddsub2d mpbird readdcld ) ADLUAMZLENMZOMCPQVNCVONMZPQZAVQL
      VPDRMZPQALVPBVONMZRMZVRLUBUCAUDSZAVPVSACVOIALEWAAEGUEZUFZUFZABVOHWCUFZUGA
      VPDWDADFUHZUGALCBRMZVONMZVTPALVOOMZWGPQLWHPQAWIUIEOMZWGPAWILUINMZVOOMWJWK
      LVOOUJUKAUIELAULAEWBTZALWATZAEGUMLUNUOQAUPSUQURKUSALWGVOWAACBIHUGALELUTUC
      AVASAEGVBVCZVDVIACBVOACITABHTALEWMWLVEVFVGADVSVPWFWEWDJVHVJADLVPWFWAWDVKV
      LAVNCVOADLWFWAVMIWNVDVL $.
  $}

  ${
    $d A m n x $.  $d B m n x $.
    $( 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.) $)
    qbtwnre $p |- ( ( A e. RR /\ B e. RR /\ A < B ) ->
                  E. x e. QQ ( A < x /\ x < B ) ) $=
      ( vn vm cr wcel clt wbr cv cdiv co wa cq wrex cn c2 cz adantr a1i c1 cmin
      w3a cc0 simp2 simp1 resubcld simp3 posdifd mpbid nnrecl syl2anc caddc 2re
      cmul simprl nnred remulcld rebtwn2z syl zaddcld 2nn nnmulcld simprrr zred
      2z znq nnrpd ltmuldivd simpll2 simprrl simplrr qbtwnrelemcalc breq2 breq1
      wceq anbi12d rspcev syl12anc rexlimddv ) BFGZCFGZBCHIZUCZUADJZKLCBUBLZHIZ
      BAJZHIZWHCHIZMZANOZDPWDWFFGUDWFHIZWGDPOWDCBWAWBWCUEZWAWBWCUFZUGWDWCWMWAWB
      WCUHWDBCWOWNUIUJWFDUKULWDWEPGZWGMZMZEJZBQWEUOLZUOLZHIZXAWSQUMLZHIZMZWLERW
      RXAFGXEEROWRBWTWDWAWQWOSZWRQWEQFGWRUNTWRWEWDWPWGUPZUQURUREXAUSUTWRWSRGZXE
      MZMZXCWTKLZNGZBXKHIZXKCHIZWLXJXCRGWTPGXLXJWSQWRXHXEUPZQRGXJVFTVAZXJQWEQPG
      XJVBTWRWPXIXGSZVCZXCWTVGULXJXDXMWRXHXBXDVDXJBXCWTWRWAXIXFSZXJXCXPVEXJWTXR
      VHVIUJXJBCWSWEXOXQXSWAWBWCWQXIVJWRXHXBXDVKWDWPWGXIVLVMWKXMXNMAXKNWHXKVPWI
      XMWJXNWHXKBHVNWHXKCHVOVQVRVSVTVT $.

    $( 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 $.
  $}

  $( The average of two rational numbers is less than or equal to at least one
     of them.  (Contributed by Jim Kingdon, 3-Nov-2021.) $)
  qavgle $p |- ( ( A e. QQ /\ B e. QQ ) ->
               ( ( ( A + B ) / 2 ) <_ A \/ ( ( A + B ) / 2 ) <_ B ) ) $=
    ( cq wcel cle wbr wo caddc co c2 cdiv cr wb adantl adantr avgle2 syl2anc cc
    qre qcn wa qletric orcomd addcomd oveq1d breq1d bitr4d orbi12d mpbid ) ACDZ
    BCDZUAZBAEFZABEFZGABHIZJKIZAEFZUPBEFZGULUNUMABUBUCULUMUQUNURULUMBAHIZJKIZAE
    FZUQULBLDZALDZUMVAMUKVBUJBSNZUJVCUKASOZBAPQULUPUTAEULUOUSJKULABUJARDUKATOUK
    BRDUJBTNUDUEUFUGULVCVBUNURMVEVDABPQUHUI $.

  ${
    $d A x $.  $d B x $.
    $( 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 wrex wn cq wb
      eqeq1d xrlttr 3com23 3expa rexlimdva w3a qbtwnxr qre rexrd anim1i reximi2
      wi syl 3expia impbid notbid wral rabeq0 ralnex a1i xrlenlt ancoms 3bitr4d
      bitri bitrd ) ADEZBDEZFZABGHZIJACKZLMVJBLMFZCDNZIJZBAOMZVHVIVLICABPUAVHVK
      CDQZRZABLMZRZVMVNVHVOVQVHVOVQVHVKVQCDVFVGVJDEZVKVQULZVFVSVGVTAVJBUBUCUDUE
      VFVGVQVOVFVGVQUFVKCSQVOCABUGVKVKCSDVJSEZVSVKWAVJVJUHUIUJUKUMUNUOUPVMVPTVH
      VMVKRCDUQVPVKCDURVKCDUSVDUTVGVFVNVRTBAVAVBVCVE $.
  $}

  ${
    $d A x $.  $d B x $.
    $( An open interval of extended reals is inhabited iff the lower argument
       is less than the upper argument.  (Contributed by Jim Kingdon,
       27-Nov-2021.) $)
    ioom $p |- ( ( A e. RR* /\ B e. RR* ) -> ( E. x x e. ( A (,) B ) <->
                 A < B ) ) $=
      ( cxr wcel wa cv cioo wex clt wbr w3a elioo3g biimpi simpld simp1d simprd
      co wi cq simp3d simp2d xrlttrd exlimdv qbtwnxr df-rex sylib simpl1 simpl2
      a1i wrex cr qre ad2antrl rexrd simprrl simprrr biimpri syl32anc ex eximdv
      mpd 3expia impbid ) BDEZCDEZFZAGZBCHREZAIZBCJKZVGVIVKAVIVKSVGVIBVHCVIVEVF
      VHDEZVIVEVFVLLZBVHJKZVHCJKZFZVIVMVPFZBCVHMZNZOZPVIVEVFVLVTUAVIVEVFVLVTUBV
      IVNVOVIVMVPVSQZOVIVNVOWAQUCUJUDVEVFVKVJVEVFVKLZVHTEZVPFZAIZVJWBVPATUKWEAB
      CUEVPATUFUGWBWDVIAWBWDVIWBWDFZVEVFVLVNVOVIVEVFVKWDUHVEVFVKWDUIWFVHWCVHULE
      WBVPVHUMUNUOWBWCVNVOUPWBWCVNVOUQVIVQVRURUSUTVAVBVCVD $.
  $}

  ${
    $d A x $.  $d B x $.
    $( 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 wrex wn wi cq a1i wb crab
      icoval eqeq1d xrlelttr 3com23 3expa rexlimdva w3a qbtwnxr qre rexrd simpl
      simpr1 xrltle syl2anc anim1d anim12d ex syl adantr reximdv2 3expia impbid
      pm2.43b mpd notbid wral rabeq0 ralnex bitri xrlenlt ancoms 3bitr4d bitrd
      ) ADEZBDEZFZABGHZIJACKZLMZVSBNMZFZCDUAZIJZBALMZVQVRWCICABUBUCVQWBCDOZPZAB
      NMZPZWDWEVQWFWHVQWFWHVQWBWHCDVOVPVSDEZWBWHQZVOWJVPWKAVSBUDUEUFUGVOVPWHWFV
      OVPWHUHZAVSNMZWAFZCROWFCABUIWLWNWBCRDWLVSREZWNFZWJWBFZWOWLWPWQQZQZWNWOWJW
      SWOVSVSUJUKZWJWLWRWJWLFZWOWJWNWBWOWJQXAWTSXAWMVTWAXAVOWJWMVTQWJVOVPWHUMWJ
      WLULAVSUNUOUPUQURUSUTVDVAVEVBVCVFWDWGTVQWDWBPCDVGWGWBCDVHWBCDVIVJSVPVOWEW
      ITBAVKVLVMVN $.

    $( 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 wrex wn wi cq a1i wb crab
      iocval eqeq1d xrltletr 3com23 3expa rexlimdva w3a qbtwnxr rexrd 3ad2antr2
      qre xrltle anim2d anim12d ex adantr pm2.43b reximdv2 3expia impbid notbid
      syl mpd wral rabeq0 ralnex bitri xrlenlt ancoms 3bitr4d bitrd ) ADEZBDEZF
      ZABGHZIJACKZLMZVQBNMZFZCDUAZIJZBANMZVOVPWAICABUBUCVOVTCDOZPZABLMZPZWBWCVO
      WDWFVOWDWFVOVTWFCDVMVNVQDEZVTWFQZVMWHVNWIAVQBUDUEUFUGVMVNWFWDVMVNWFUHZVRV
      QBLMZFZCROWDCABUIWJWLVTCRDWJVQREZWLFZWHVTFZWMWJWNWOQZQZWLWMWHWQWMVQVQULUJ
      ZWHWJWPWHWJFZWMWHWLVTWMWHQWSWRSWSWKVSVRWHVMVNWKVSQWFVQBUMUKUNUOUPVCUQURUS
      VDUTVAVBWBWETVOWBVTPCDVEWEVTCDVFVTCDVGVHSVNVMWCWGTBAVIVJVKVL $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  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, ~ flqlelt for its basic property, and ~ flqcl for
       its closure.  For example, ` ( |_ `` ( 3 / 2 ) ) = 1 ` while
       ` ( |_ `` -u ( 3 / 2 ) ) = -u 2 ` ( ~ ex-fl ).

       Although we define this on real numbers so that notations are similar to
       the Metamath Proof Explorer, in the absence of excluded middle few
       theorems will be possible beyond the rationals.  Imagine a real number
       which is around 2.99995 or 3.00001 .  In order to determine whether its
       floor is 2 or 3, it would be necessary to compute the number to
       arbitrary precision.

       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 ~ ceilqval for its value, ~ ceilqge and ~ ceilqm1lt for its basic
     properties, and ~ ceilqcl for its closure.  For example,
     ` ( |^ `` ( 3 / 2 ) ) = 2 ` while ` ( |^ `` -u ( 3 / 2 ) ) = -u 1 `
     ( ~ ex-ceil ).

     As described in ~ df-fl most theorems are only for rationals, not reals.

     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 cvv wcel
      cr anbi12d riotabidv df-fl zex riotaexg ax-mp fvmpt3i ) CBADZCDZEFZUIUHGH
      IZJFZKZALMZUHBEFZBUKJFZKZALMTNUIBOZUMUQALURUJUOULUPUIBUHEPUIBUKJQUAUBCAUC
      LRSUNRSUDUMALRUEUFUG $.
  $}

  ${
    $d A x $.
    $( The floor (greatest integer) function yields an integer when applied to
       a rational (closure law).  It would presumably be possible to prove a
       similar result for some real numbers (for example, those apart from any
       integer), but not real numbers in general.  (Contributed by Jim Kingdon,
       8-Oct-2021.) $)
    flqcl $p |- ( A e. QQ -> ( |_ ` A ) e. ZZ ) $=
      ( vx cq wcel cfl cfv cv cle wbr c1 caddc co clt wa cz crio wceq qre syl
      cr flval wreu qbtwnz riotacl eqeltrd ) ACDZAEFZBGZAHIAUHJKLMINZBOPZOUFATD
      UGUJQARBAUASUFUIBOUBUJODBAUCUIBOUDSUE $.
  $}

  ${
    $d A x $.
    $( A basic property of the floor (greatest integer) function.  (Contributed
       by Jim Kingdon, 8-Oct-2021.) $)
    flqlelt $p |- ( A e. QQ ->
        ( ( |_ ` A ) <_ A /\ A < ( ( |_ ` A ) + 1 ) ) ) $=
      ( vx cq wcel cfl cfv cle wbr c1 caddc co clt wa cv cz crio wceq qre flval
      cr eqcomd syl wreu flqcl qbtwnz breq1 oveq1 breq2d anbi12d riota2 syl2anc
      wb mpbird ) ACDZAEFZAGHZAUOIJKZLHZMZBNZAGHZAUTIJKZLHZMZBOPZUOQZUNATDZVFAR
      VGUOVEBASUAUBUNUOODVDBOUCUSVFULAUDBAUEVDUSBOUOUTUOQZVAUPVCURUTUOAGUFVHVBU
      QALUTUOIJUGUHUIUJUKUM $.
  $}

  ${
    flqcld.1 $e |- ( ph -> A e. QQ ) $.
    $( The floor (greatest integer) function is an integer (closure law).
       (Contributed by Jim Kingdon, 8-Oct-2021.) $)
    flqcld $p |- ( ph -> ( |_ ` A ) e. ZZ ) $=
      ( cq wcel cfl cfv cz flqcl syl ) ABDEBFGHECBIJ $.
  $}

  $( A basic property of the floor (greatest integer) function.  (Contributed
     by Jim Kingdon, 8-Oct-2021.) $)
  flqle $p |- ( A e. QQ -> ( |_ ` A ) <_ A ) $=
    ( cq wcel cfl cfv cle wbr c1 caddc co clt flqlelt simpld ) ABCADEZAFGANHIJK
    GALM $.

  $( A basic property of the floor (greatest integer) function.  (Contributed
     by Jim Kingdon, 8-Oct-2021.) $)
  flqltp1 $p |- ( A e. QQ -> A < ( ( |_ ` A ) + 1 ) ) $=
    ( cq wcel cfl cfv cle wbr c1 caddc co clt flqlelt simprd ) ABCADEZAFGANHIJK
    GALM $.

  $( The fractional part of a rational number is less than one.  (Contributed
     by Jim Kingdon, 8-Oct-2021.) $)
  qfraclt1 $p |- ( A e. QQ -> ( A - ( |_ ` A ) ) < 1 ) $=
    ( cq wcel cfl cfv cmin co c1 clt wbr caddc flqltp1 qre zred 1red ltsubadd2d
    flqcl mpbird ) ABCZAADEZFGHIJATHKGIJALSATHAMSTAQNSOPR $.

  $( The fractional part of a rational number is nonnegative.  (Contributed by
     Jim Kingdon, 8-Oct-2021.) $)
  qfracge0 $p |- ( A e. QQ -> 0 <_ ( A - ( |_ ` A ) ) ) $=
    ( cq wcel cc0 cfl cfv cmin co cle wbr flqle qre flqcl zred subge0d mpbird )
    ABCZDAAEFZGHIJRAIJAKQARALQRAMNOP $.

  $( The floor function value is the greatest integer less than or equal to its
     argument.  (Contributed by Jim Kingdon, 8-Oct-2021.) $)
  flqge $p |- ( ( A e. QQ /\ B e. ZZ ) -> ( B <_ A <-> B <_ ( |_ ` A ) ) ) $=
    ( cq wcel cz wa cle wbr cfl cfv c1 caddc co clt adantr cr wi syl3anc mpan2d
    zred flqltp1 simpr qre simpl flqcld peano2zd lelttr zleltp1 syl2anc sylibrd
    wb flqle letr impbid ) ACDZBEDZFZBAGHZBAIJZGHZUQURBUSKLMZNHZUTUQURAVANHZVBU
    OVCUPAUAOUQBPDZAPDZVAPDURVCFVBQUQBUOUPUBZTZUOVEUPAUCOZUQVAUQUSUQAUOUPUDUEZU
    FTBAVAUGRSUQUPUSEDUTVBUKVFVIBUSUHUIUJUQUTUSAGHZURUOVJUPAULOUQVDUSPDVEUTVJFU
    RQVGUQUSVITVHBUSAUMRSUN $.

  $( The floor function value is less than the next integer.  (Contributed by
     Jim Kingdon, 8-Oct-2021.) $)
  flqlt $p |- ( ( A e. QQ /\ B e. ZZ ) -> ( A < B <-> ( |_ ` A ) < B ) ) $=
    ( cq wcel cz wa cle wbr wn cfl cfv clt flqge notbid wb qltnle sylan2 flqcld
    zq simpl syl adantl syl2anc 3bitr4d ) ACDZBEDZFZBAGHZIZBAJKZGHZIZABLHZUJBLH
    ZUGUHUKABMNUFUEBCDZUMUIOBSZABPQUGUJCDZUOUNULOUGUJEDUQUGAUEUFTRUJSUAUFUOUEUP
    UBUJBPUCUD $.

  $( 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 cq zq flqle syl leidd wb flqge mpancom mpbid
    zre flqcld zred letri3d mpbir2and ) ABCZADEZAFUDAGHZAUDGHZUCAICZUEAJZAKLUCA
    AGHZUFUCAARZMUGUCUIUFNUHAAOPQUCUDAUCUDUCAUHSTUJUAUB $.

  $( The floor function is idempotent.  (Contributed by Jim Kingdon,
     8-Oct-2021.) $)
  flqidm $p |- ( A e. QQ -> ( |_ ` ( |_ ` A ) ) = ( |_ ` A ) ) $=
    ( cq wcel cfl cfv cz wceq flqcl flid syl ) ABCADEZFCKDEKGAHKIJ $.

  $( A rational number equals its floor iff it is an integer.  (Contributed by
     Jim Kingdon, 9-Oct-2021.) $)
  flqidz $p |- ( A e. QQ -> ( ( |_ ` A ) = A <-> A e. ZZ ) ) $=
    ( cq wcel cfl cfv wceq cz flqcl eleq1 syl5ibcom flid impbid1 ) ABCZADEZAFZA
    GCZMNGCOPAHNAGIJAKL $.

  $( If A is not an integer, then the floor of A is less than A. (Contributed
     by Jim Kingdon, 9-Oct-2021.) $)
  flqltnz $p |- ( ( A e. QQ /\ -. A e. ZZ ) -> ( |_ ` A ) < A ) $=
    ( cq wcel cz wn wa cfl cfv clt wbr cap wne wceq flqidz adantr mtbird neqned
    simpr wb mpbird necomd simpl flqcld zq syl qapne syldan cr qre cle c1 caddc
    zred co flqlelt simpld leltapd ) ABCZADCZEZFZAGHZAIJAVBKJZVAVCAVBLZVAVBAVAV
    BAVAVBAMZUSURUTRURVEUSSUTANOPQUAURUTVBBCZVCVDSVAVBDCVFVAAURUTUBUCZVBUDUEAVB
    UFUGTVAVBAVAVBVGUMURAUHCUTAUIOVAVBAUJJZAVBUKULUNIJZURVHVIFUTAUOOUPUQT $.

  $( Ordering relationship for the greatest integer function.  (Contributed by
     Jim Kingdon, 9-Oct-2021.) $)
  flqwordi $p |- ( ( A e. QQ /\ B e. QQ /\ A <_ B ) ->
      ( |_ ` A ) <_ ( |_ ` B ) ) $=
    ( cq wcel cle wbr w3a cfl cfv simp1 flqcld zred qre simp2 flqle simp3 letrd
    cr syl cz wb flqge syl2anc mpbid ) ACDZBCDZABEFZGZAHIZBEFZUIBHIEFZUHUIABUHU
    IUHAUEUFUGJZKZLUHUEARDULAMSUHUFBRDUEUFUGNZBMSUHUEUIAEFULAOSUEUFUGPQUHUFUITD
    UJUKUAUNUMBUIUBUCUD $.

  $( Ordering relationship for the greatest integer function.  (Contributed by
     Jim Kingdon, 9-Oct-2021.) $)
  flqword2 $p |- ( ( A e. QQ /\ B e. QQ /\ A <_ B ) ->
      ( |_ ` B ) e. ( ZZ>= ` ( |_ ` A ) ) ) $=
    ( cq cle wbr w3a cfl cfv cz cuz simp1 flqcld simp2 flqwordi eluz2 syl3anbrc
    wcel ) ACQZBCQZABDEZFZAGHZIQBGHZIQUBUCDEUCUBJHQUAARSTKLUABRSTMLABNUBUCOP $.

  ${
    $d A x $.  $d B x $.
    $( A condition equivalent to floor.  (Contributed by Jim Kingdon,
       9-Oct-2021.) $)
    flqbi $p |- ( ( A e. QQ /\ B e. ZZ ) ->
        ( ( |_ ` A ) = B <-> ( B <_ A /\ A < ( B + 1 ) ) ) ) $=
      ( vx cq wcel cz wa cfl cfv wceq cv cle wbr c1 caddc co clt crio wb cr qre
      flval eqeq1d adantr wreu qbtwnz breq1 breq2d anbi12d riota2 sylan2 ancoms
      syl oveq1 bitr4d ) ADEZBFEZGAHIZBJZCKZALMZAUTNOPZQMZGZCFRZBJZBALMZABNOPZQ
      MZGZUPUSVFSZUQUPATEZVKAUAVLURVEBCAUBUCUMUDUQUPVJVFSZUPUQVDCFUEVMCAUFVDVJC
      FBUTBJZVAVGVCVIUTBALUGVNVBVHAQUTBNOUNUHUIUJUKULUO $.
  $}

  $( A condition equivalent to floor.  (Contributed by Jim Kingdon,
     9-Oct-2021.) $)
  flqbi2 $p |- ( ( N e. ZZ /\ F e. QQ ) ->
      ( ( |_ ` ( N + F ) ) = N <-> ( 0 <_ F /\ F < 1 ) ) ) $=
    ( cz wcel cq wa caddc co cfl cfv wceq cle wbr c1 clt cc0 wb zq qaddcl cr
    sylan simpl syl2anc zre qre addge01 1re ltadd2 mp3an2 ancoms anbi12d syl2an
    flqbi bitr4d ) BCDZAEDZFZBAGHZIJBKZBURLMZURBNGHOMZFZPALMZANOMZFZUQUREDZUOUS
    VBQUOBEDUPVFBRBASUAUOUPUBURBUMUCUOBTDZATDZVEVBQUPBUDAUEVGVHFVCUTVDVABAUFVHV
    GVDVAQZVHNTDVGVIUGANBUHUIUJUKULUN $.

  $( 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 wb 3adant1 jca syl cr anim12i c1
    cdiv caddc cfl cfv wceq simp1 nn0z znq sylan flqbi2 nn0re nn0ge0 nnre nngt0
    cq divge0 biantrurd crp nnrp divlt1lt 3bitr2rd ) ADEZBFEZCGEZHZABCUBIZUCIUD
    UEAUFZJVGKLZVGUAMLZNZVJBCMLZVFVCVGUPEZNVHVKOVFVCVMVCVDVEUGVDVEVMVCVDBDEVEVM
    BUHBCUIUJPQVGAUKRVFVIVJVFBSEZJBKLZNZCSEZJCMLZNZNZVIVDVEVTVCVDVPVEVSVDVNVOBU
    LZBUMQVEVQVRCUNCUOQTPBCUQRURVFVNCUSEZNZVJVLOVDVEWCVCVDVNVEWBWACUTTPBCVARVB
    $.

  $( The floor of a number greater than or equal to 0 is a nonnegative integer.
     (Contributed by Jim Kingdon, 10-Oct-2021.) $)
  flqge0nn0 $p |- ( ( A e. QQ /\ 0 <_ A ) -> ( |_ ` A ) e. NN0 ) $=
    ( cq wcel cc0 cle wbr wa cfl cfv cz cn0 flqcl adantr wb flqge biimpa elnn0z
    0z mpan2 sylanbrc ) ABCZDAEFZGAHIZJCZDUCEFZUCKCUAUDUBALMUAUBUEUADJCUBUENRAD
    OSPUCQT $.

  $( The floor of a number greater than or equal to 1 is a positive integer.
     (Contributed by Jim Kingdon, 10-Oct-2021.) $)
  flqge1nn $p |- ( ( A e. QQ /\ 1 <_ A ) -> ( |_ ` A ) e. NN ) $=
    ( cq wcel c1 cle wbr wa cfl cfv cz cn flqcl adantr wb 1z flqge mpan2 biimpa
    elnnz1 sylanbrc ) ABCZDAEFZGAHIZJCZDUCEFZUCKCUAUDUBALMUAUBUEUADJCUBUENOADPQ
    RUCST $.

  $( 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 cq cc0 cle wbr cfl cfv cz nn0z znq sylan nn0ge0div
    flqge0nn0 syl2anc ) ACDZBEDZFABGHZIDZJUDKLUDMNCDUBAODUCUEAPABQRABSUDTUA $.

  $( 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 cq cz wb znq
    cc nn0z sylan qcn addid2 eqcomd 3syl fveq2d eqeq1d flqbi2 sylancr nn0ge0div
    0z biantrurd cr crp nn0re nnrp divlt1lt syl2an bitr3d 3bitrrd ) ACDZBEDZFZA
    BGHZIJZKLKVGMHZIJZKLZKVGNOZVGPQOZFZABQOZVFVHVJKVFVGVIIVFVGRDZVGUBDZVGVILVDA
    SDVEVPAUCABUAUDZVGUEVQVIVGVGUFUGUHUIUJVFKSDVPVKVNTUNVRVGKUKULVFVMVNVOVFVLVM
    ABUMUOVDAUPDBUQDVMVOTVEAURBUSABUTVAVBVC $.

  $( An integer can be moved in and out of the floor of a sum.  (Contributed by
     Jim Kingdon, 10-Oct-2021.) $)
  flqaddz $p |- ( ( A e. QQ /\ N e. ZZ ) ->
      ( |_ ` ( A + N ) ) = ( ( |_ ` A ) + N ) ) $=
    ( cq wcel cz wa caddc co cfl cfv wceq cle wbr c1 clt flqcl adantr zred zcnd
    cr qre simpr leadd1dd 1red readdcld flqltp1 ltadd1dd 1cnd add32d breqtrd wb
    flqle zq qaddcl sylan2 simpl flqcld zaddcld flqbi syl2anc mpbir2and ) ACDZB
    EDZFZABGHZIJAIJZBGHZKZVGVELMZVEVGNGHZOMZVDVFABVDVFVBVFEDVCAPQZRZVBATDVCAUAQ
    ZVDBVBVCUBZRZVBVFALMVCAULQUCVDVEVFNGHZBGHVJOVDAVQBVNVDVFNVMVDUDUEVPVBAVQOMV
    CAUFQUGVDVFNBVDVFVLSVDUHVDBVOSUIUJVDVECDZVGEDVHVIVKFUKVCVBBCDVRBUMABUNUOVDV
    FBVDAVBVCUPUQVOURVEVGUSUTVA $.

  $( An integer can be moved in and out of the floor of a sum.  (Contributed by
     Jim Kingdon, 10-Oct-2021.) $)
  flqzadd $p |- ( ( N e. ZZ /\ A e. QQ ) ->
      ( |_ ` ( N + A ) ) = ( N + ( |_ ` A ) ) ) $=
    ( cq wcel cz caddc co cfl cfv wceq wa flqaddz cc addcom syl2an fveq2d flqcl
    qcn zcn zcnd 3eqtr3d ancoms ) ACDZBEDZBAFGZHIZBAHIZFGZJUCUDKZABFGZHIUGBFGZU
    FUHABLUIUJUEHUCAMDBMDZUJUEJUDARBSZABNOPUCUGMDULUKUHJUDUCUGAQTUMUGBNOUAUB $.

  $( Move a nonnegative integer in and out of a floor.  (Contributed by Jim
     Kingdon, 10-Oct-2021.) $)
  flqmulnn0 $p |- ( ( N e. NN0 /\ A e. QQ ) ->
      ( N x. ( |_ ` A ) ) <_ ( |_ ` ( N x. A ) ) ) $=
    ( cn0 wcel cq wa cfl cfv cmul co cle wbr cz flqcl adantl zred cr qre nn0red
    simpl nn0ge0d flqle lemul2ad wb nn0z syl qmulcl sylan zmulcl syl2an syl2anc
    zq flqge mpbid ) BCDZAEDZFZBAGHZIJZBAIJZKLZUSUTGHKLZUQURABUQURUPURMDZUOANZO
    PUPAQDUOAROUQBUOUPTZSUQBVEUAUPURAKLUOAUBOUCUQUTEDZUSMDZVAVBUDUOBEDZUPVFUOBM
    DZVHBUEZBULUFBAUGUHUOVIVCVGUPVJVDBURUIUJUTUSUMUKUN $.

  $( 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.
     (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 0red simplll simplr zred adantr
    1red simpr readdcld simplrr lelttrd wb zleltp1 mpan ad3antlr mpbird simplrl
    0z letrd impbida ) ACDZBEDZFZBAGHZABIJKZLHZFZFZMAGHZMBGHZUTVAFZVBMUQLHZVCMA
    UQVCNUMUNUSVAOVCBIUTBCDZVAUTBUMUNUSPQZRVCSUAUTVATUOUPURVAUBUCUNVBVDUDZUMUSV
    AMEDUNVGUJMBUEUFUGUHUTVBFZMBAVHNUTVEVBVFRUMUNUSVBOUTVBTUOUPURVBUIUKUL $.

  $( 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 syl3anc cc 2ap0
    a1i id zmulcld peano2zd zred 2re 2pos ge0div cap wa wceq zcnd 1cnd divdirap
    2cn pm3.2i zcn 2cnd divcanap3d oveq1d eqtrd breq2d halfre readdcld addge01d
    zre halfge0 mpbii 1red halflt1 ltadd2dd btwnzge0 syl22anc 3bitrd ) ABCZDEAF
    GZHIGZJKZDVPELGZJKZDAHELGZIGZJKZDAJKZVNVPMCEMCZDENKZVQVSOVNVPVNVOVNEAEBCVNP
    TVNUAZUBZUCUDWDVNUETWEVNUFTVPEUGQVNVRWADJVNVRVOELGZVTIGZWAVNVORCHRCERCZEDUH
    KZUIZVRWIUJVNVOWGUKVNULWLVNWJWKUNSUOTVOHEUMQVNWHAVTIVNAEAUPVNUQWKVNSTURUSUT
    VAVNWAMCVNAWAJKZWAAHIGNKWBWCOVNAVTAVEZVTMCVNVBTZVCWFVNDVTJKWMVFVNAVTWNWOVDV
    GVNVTHAWOVNVHWNVTHNKVNVITVJWAAVKVLVM $.

  $( 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 syl cr readdcld a1i recnd
    cmul mpbird cq cn peano2z 2nn znq sylancl flqltp1 peano2re flqcld zred 1red
    zre crp 2rp ltdivmuld mpbid 2timesd oveq2d 2cnd adddid 2re remulcld addassd
    3eqtr4d breqtrd ltadd1d wb 2z zmulcld zleltp1 mpdan ) ABCZADAEFGZDHGZIJZSGZ
    KLZAVPEFGZMLZVLVSVMVREFGZMLVLVMDVOEFGZSGZVTMVLVNWAMLZVMWBMLVLVNUACZWCVLVMBC
    DUBCWDAUCUDVMDUEUFZVNUGNVLVMWADVLAOCVMOCAULZAUHNVLVOEVLVOVLVNWEUIZUJZVLUKZP
    DUMCVLUNQUOUPVLVPDESGZFGVPEEFGZFGWBVTVLWJWKVPFVLEVLEWIRZUQURVLDVOEVLUSVLVOW
    HRWLUTVLVPEEVLVPVLDVODOCVLVAQWHVBZRWLWLVCVDVEVLAVREWFVLVPEWMWIPWIVFTVLVPBCV
    QVSVGVLDVODBCVLVHQWGVIAVPVJVKT $.

  $( 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 cn wa cdiv co cq cfl cfv cle wbr cz nn0z znq sylan flqle syl ) A
    CDZBEDZFABGHZIDZUBJKUBLMTANDUAUCAOABPQUBRS $.

  $( 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 w3a clt wbr cdiv co wa cz nn0zd znq syl2anc adantr cr cq qre syl
    cn cfl cfv simp1 simp3 flqcld zred simp2 cle fldivnn0le 3adant2 simpr nn0re
    cc0 wb nnre nngt0 jca 3anim123i ltdiv1 mpbid lelttrd ex ) ADEZCDEZBUAEZFZAC
    GHZABIJZUBUCZCBIJZGHVGVHKZVJVIVKVLVJVGVJLEZVHVGALEZVFVMVGAVDVEVFUDMZVDVEVFU
    EZVNVFKZVIABNZUFOPUGVLVNVFVIQEZVGVNVHVOPVGVFVHVPPZVQVIREVSVRVISTOVLCLEZVFVK
    QEZVGWAVHVGCVDVEVFUHMPVTWAVFKVKREWBCBNVKSTOVGVJVIUIHZVHVDVFWCVEABUJUKPVLVHV
    IVKGHZVGVHULVLAQEZCQEZBQEZUNBGHZKZFZVHWDUOVGWJVHVDWEVEWFVFWIAUMCUMVFWGWHBUP
    BUQURUSPACBUTTVAVBVC $.

  $( 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
    4ap0 divdirapi dividapi eqtri fveq2i 1re 0le1 4pos divge0 mp4an 1lt4 recgt1
    4re cz cq wa 1z znq flqbi2 mpbir2an 1p1e2 mvrraddi 4d2e2 c6 w3a eluz2 mpan2
    flqle adantr flqcld zred zre id redivclapd 3jca leadd1 mpbid div4p1lem1div2
    cap sylan wi peano2re peano2rem rehalfcld mp2and 3adant1 sylbi 5p1e6 eleq2s
    letr jaoi ) ABUAZACDEZFGZHIEZAHJEZKDEZLMZANUBGOZXTHHYCYELHHLMXTUCPXTYCQHIEH
    XTYBQHIXTYBBCDEZFGZQXTYAYHFABCDUDUEBCUFMZYIQUAZUGBUHOCUIOZYJYKUJUKULBCUMUNU
    ORUPUQRXTYEKKDEHXTYDKKDXTYDBHJEKABHJUDURRUPUSRUTYGANUAZANHIEZUBGZOZVAYFNAVB
    YMYFYPYMKKYCYELKKLMYMKVCVDPYMYCHHIEKYMYBHHIYMYBNCDEZFGZHYMYAYQFANCDUDUEYRHH
    CDEZIEZFGZHYQYTFYQCHIEZCDEZYTNUUBCDVEVFUUCCCDEZYSIEYTCHCVGVHVGVIVJUUDHYSICV
    GVIVKVFVLVLVMUUAHUAZQYSLMZYSHUFMZHTOZQHLMCTOZQCUFMZUUFVNVOWAVPHCVQVRHCUFMZU
    UGVSUUIUUJUUKUUGUJWAVPCVTUNUOHWBOZYSWCOZUUEUUFUUGWDUJWEUULYLUUMWEULHCWFUNYS
    HWGUNWHVLRUPWIRYMYECKDEKYMYDCKDYMYDNHJECANHJUDNCHVGVHVEWJRUPWKRUTYFAWLUBGZY
    OAUUNOWLWBOZAWBOZWLALMZWMYFWLAWNUUPUUQYFUUOUUPUUQWDZYCYAHIEZLMZUUSYELMZYFUU
    RYBYALMZUUTUUPUVBUUQUUPYAWCOZUVBUUPYLUVCULACWFWOZYAWPSWQUURYBTOZYATOZUUHWMZ
    UVBUUTUJUUPUVGUUQUUPUVEUVFUUHUUPYBUUPYAUVDWRWSZUUPATOZUVFAWTZUVIACUVIXAUUIU
    VIWAPCQXGMUVIVIPXBSZUUHUUPVNPXCWQYBYAHXDSXEUUPUVIUUQUVAUVJAXFXHUURYCTOZUUST
    OZYETOZWMZUUTUVAWDYFXIUUPUVOUUQUUPUVLUVMUVNUUPUVEUVLUVHYBXJSUUPUVFUVMUVKYAX
    JSUUPUVIUVNUVJUVIYDAXKXLSXCWQYCUUSYEXRSXMXNXOYNWLUBXPVMXQXSSXS $.

  ${
    $d x A $.
    $( The value of the ceiling function.  (Contributed by Jim Kingdon,
       10-Oct-2021.) $)
    ceilqval $p |- ( A e. QQ -> ( |^ ` A ) = -u ( |_ ` -u A ) ) $=
      ( vx cq wcel cr cneg cfl cfv cz cceil wceq qre qnegcl flqcl znegcld negeq
      syl cv fveq2d negeqd df-ceil fvmptg syl2anc ) ACDZAEDAFZGHZFZIDZAJHUGKALU
      DUECDZUHAMUIUFUENOQBABRZFZGHZFUGEIJUJAKZULUFUMUKUEGUJAPSTBUAUBUC $.
  $}

  $( The ceiling function returns an integer (closure law).  (Contributed by
     Jim Kingdon, 11-Oct-2021.) $)
  ceiqcl $p |- ( A e. QQ -> -u ( |_ ` -u A ) e. ZZ ) $=
    ( cq wcel cneg cfl cfv qnegcl flqcld znegcld ) ABCZADZEFJKAGHI $.

  $( Closure of the ceiling function.  (Contributed by Jim Kingdon,
     11-Oct-2021.) $)
  ceilqcl $p |- ( A e. QQ -> ( |^ ` A ) e. ZZ ) $=
    ( cq wcel cceil cfv cneg cfl cz ceilqval ceiqcl eqeltrd ) ABCADEAFGEFHAIAJK
    $.

  $( The ceiling of a real number is greater than or equal to that number.
     (Contributed by Jim Kingdon, 11-Oct-2021.) $)
  ceiqge $p |- ( A e. QQ -> A <_ -u ( |_ ` -u A ) ) $=
    ( cq wcel cneg cfl cfv qnegcl flqcld zred qre cle wbr flqle syl lenegcon2d
    ) ABCZADZEFZAPRPQAGZHIAJPQBCRQKLSQMNO $.

  $( The ceiling of a real number is greater than or equal to that number.
     (Contributed by Jim Kingdon, 11-Oct-2021.) $)
  ceilqge $p |- ( A e. QQ -> A <_ ( |^ ` A ) ) $=
    ( cq wcel cneg cfl cfv cceil cle ceiqge ceilqval breqtrrd ) ABCAADEFDAGFHAI
    AJK $.

  $( One less than the ceiling of a real number is strictly less than that
     number.  (Contributed by Jim Kingdon, 11-Oct-2021.) $)
  ceiqm1l $p |- ( A e. QQ -> ( -u ( |_ ` -u A ) - 1 ) < A ) $=
    ( cq wcel cneg cfl cfv c1 cmin co clt qnegcl flqcld zcnd 1cnd negdid negcld
    caddc negsubd eqtr2d qre peano2zd zred wbr flqltp1 syl ltnegcon1d eqbrtrd )
    ABCZADZEFZDZGHIZUJGQIZDZAJUHUNUKGDQIULUHUJGUHUJUHUIAKZLZMZUHNZOUHUKGUHUJUQP
    URRSUHAUMATUHUMUHUJUPUAUBUHUIBCUIUMJUCUOUIUDUEUFUG $.

  $( One less than the ceiling of a real number is strictly less than that
     number.  (Contributed by Jim Kingdon, 11-Oct-2021.) $)
  ceilqm1lt $p |- ( A e. QQ -> ( ( |^ ` A ) - 1 ) < A ) $=
    ( cq wcel cceil cfv c1 cmin co cneg cfl clt ceilqval oveq1d ceiqm1l eqbrtrd
    ) ABCZADEZFGHAIJEIZFGHAKPQRFGALMANO $.

  $( The ceiling of a real number is the smallest integer greater than or equal
     to it.  (Contributed by Jim Kingdon, 11-Oct-2021.) $)
  ceiqle $p |- ( ( A e. QQ /\ B e. ZZ /\ A <_ B ) -> -u ( |_ ` -u A ) <_ B ) $=
    ( cq wcel cz cle wbr w3a cneg cfl cfv c1 cmin clt ceiqcl peano2rem 3ad2ant1
    co cr zred syl qre zre 3ad2ant2 ceiqm1l simp3 ltletrd zlem1lt sylan 3adant3
    wb mpbird ) ACDZBEDZABFGZHZAIJKIZBFGZUQLMRZBNGZUPUSABUMUNUSSDZUOUMUQSDVAUMU
    QAOZTUQPUAQUMUNASDUOAUBQUNUMBSDUOBUCUDUMUNUSANGUOAUEQUMUNUOUFUGUMUNURUTUKZU
    OUMUQEDUNVCVBUQBUHUIUJUL $.

  $( The ceiling of a real number is the smallest integer greater than or equal
     to it.  (Contributed by Jim Kingdon, 11-Oct-2021.) $)
  ceilqle $p |- ( ( A e. QQ /\ B e. ZZ /\ A <_ B ) -> ( |^ ` A ) <_ B ) $=
    ( cq wcel cz cle wbr w3a cfv cneg cfl wceq ceilqval 3ad2ant1 ceiqle eqbrtrd
    cceil ) ACDZBEDZABFGZHAQIZAJKIJZBFRSUAUBLTAMNABOP $.

  $( 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 cq wceq zq ceilqval syl znegcl flid negeqd zcn
    negnegd 3eqtrd ) ABCZADEZAFZGEZFZUAFASAHCTUCIAJAKLSUBUASUABCUBUAIAMUANLOSAA
    PQR $.

  $( A rational number equals its ceiling iff it is an integer.  (Contributed
     by Jim Kingdon, 11-Oct-2021.) $)
  ceilqidz $p |- ( A e. QQ -> ( A e. ZZ <-> ( |^ ` A ) = A ) ) $=
    ( cq wcel cz cceil cfv wceq ceilid ceilqcl eleq1 syl5ibcom impbid2 ) ABCZAD
    CZAEFZAGZAHMODCPNAIOADJKL $.

  $( The floor of a rational number is less than or equal to its ceiling.
     (Contributed by Jim Kingdon, 11-Oct-2021.) $)
  flqleceil $p |- ( A e. QQ -> ( |_ ` A ) <_ ( |^ ` A ) ) $=
    ( cq wcel cfl cfv cceil flqcl zred qre ceilqcl flqle ceilqge letrd ) ABCZAD
    EZAAFEZNOAGHAINPAJHAKALM $.

  $( A rational number is an integer iff its floor equals its ceiling.
     (Contributed by Jim Kingdon, 11-Oct-2021.) $)
  flqeqceilz $p |- ( A e. QQ -> ( A e. ZZ <-> ( |_ ` A ) = ( |^ ` A ) ) ) $=
    ( cq wcel cz cfv wceq wn wi syl mpancom wa adantr adantl sylbid cle wbr wne
    wb ex clt cfl cceil flid ceilid eqtr4d wo wdc flqcl zq qdceq eqeq1 ceilqidz
    exmiddc eqcom syl6bb biimprd flqle df-ne necom qltlen breq1 ceilqge ceilqcl
    qre zred lenltd pm2.21 syl6bi mpd com23 sylbird expd com3r sylbir mpdi jaoi
    sylbi mpcom impbid2 ) ABCZADCZAUAEZAUBEZFZWAWBAWCAUCAUDUEWBAFZWEGZUFZVTWDWA
    HZVTWEUGZWGWBBCZVTWIVTWBDCWJAUHWBUIIZWBAUJJWEUMIWEVTWHHWFWEVTWHWEVTKWDAWCFZ
    WAWEWDWLRVTWBAWCUKLVTWLWAHWEVTWAWLVTWAWCAFWLAULWCAUNUOUPMNSWFVTWBAOPZWHAUQW
    FWBAQZVTWMWHHHZWBAURWNAWBQZWOWBAUSVTWMWPWHVTWMWPWHVTWMWPKZWBATPZWHWJVTWRWQR
    WKWBAUTJVTWDWRWAVTWDWRWAHVTWDKWRWCATPZWAWDWRWSRVTWBWCATVAMVTWSWAHZWDVTAWCOP
    ZWTAVBVTXAWSGWTVTAWCAVDVTWCAVCVEVFWSWAVGVHVILNSVJVKVLVMVQVNVOVPVRVS $.

  ${
    intqfrac2.1 $e |- Z = ( |_ ` A ) $.
    intqfrac2.2 $e |- F = ( A - Z ) $.
    $( Decompose a real into integer and fractional parts.  (Contributed by Jim
       Kingdon, 18-Oct-2021.) $)
    intqfrac2 $p |- ( A e. QQ -> ( 0 <_ F /\ F < 1 /\ A = ( Z + F ) ) ) $=
      ( cq wcel cc0 cle wbr c1 clt caddc co wceq cfl cfv cmin qfracge0 oveq2i
      eqtri syl6breqr qfraclt1 syl5eqbr flqcl syl5eqel zcnd qcn pncan3d syl5req
      cz 3jca ) AFGZHBIJBKLJACBMNZOUMHAAPQZRNZBIASBACRNZUPECUOARDTUAZUBUMBUPKLU
      RAUCUDUMUNCUQMNABUQCMETUMCAUMCUMCUOUKDAUEUFUGAUHUIUJUL $.
  $}

  ${
    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
       ~ intqfrac2 .  (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 cle wbr c1 cmin co cdiv clt syl cmul cr wb adantl cn caddc wceq
      wa cc0 w3a znq intqfrac2 simp1d cfl cfv qfraclt1 oveq2i eqtri simpr nncnd
      cq a1i nnap0d dividapd 3brtr4d qre flqcld syl5eqel zred resubcld nnre jca
      nngt0 ltmuldiv2 syl3anc mpbird recnd zcnd subdid syl5eq cc zcn divcanap2d
      adantr simpl eqeltrd nnz zmulcld zsubcld zltlem1 syl2anc peano2rem simp3d
      mpbid lemuldiv2 3jca ) BGHZCUAHZUDZUEAIJZACKLMZCNMIJZBCNMZDAUBMUCZWOWPAKO
      JZWTWOWSUQHZWPXAWTUFBCUGZWSADEFUHPZUIWOCAQMZWQIJZWRWOXECOJZXFWOXGACCNMZOJ
      ZWOWSWSUJUKZLMZKAXHOWOXBXKKOJXCWSULPAXKUCWOAWSDLMZXKFDXJWSLEUMUNURWOCWOCW
      MWNUOZUPZWOCXMUSZUTVAWOARHZCRHZXQUECOJZUDZXGXISWOAXLRFWOWSDWOXBWSRHXCWSVB
      PZWODWODXJGEWOWSXCVCVDZVEVFVDZWNXQWMCVGZTWNXSWMWNXQXRYCCVIVHTZACCVJVKVLWO
      XEGHCGHZXGXFSWOXECWSQMZCDQMZLMZGWOXECXLQMYHAXLCQFUMWOCWSDXNWOWSXTVMWODYAV
      NVOVPWOYFYGWOYFBGWOBCWMBVQHWNBVRVTXNXOVSWMWNWAWBWOCDWNYEWMCWCTZYAWDWEWBYI
      XECWFWGWJWOXPWQRHZXSXFWRSYBWNYJWMWNXQYJYCCWHPTYDAWQCWKVKWJWOWPXAWTXDWIWL
      $.
  $}

  $( Cancellation of the embedded floor of a real divided by an integer.
     (Contributed by Jim Kingdon, 18-Oct-2021.) $)
  flqdiv $p |- ( ( A e. QQ /\ N e. NN )
                  -> ( |_ ` ( ( |_ ` A ) / N ) ) = ( |_ ` ( A / N ) ) ) $=
    ( cq wcel wa cdiv co cfl cfv caddc wceq cc0 cle wbr c1 clt eqid cc syl cr
    cn cmin intqfrac2 simp3d adantr oveq1d simpl flqcld cz zq qsubcl qcn syldan
    simpr nncnd nnap0d divdirapd eqtrd flqcl intfracq sylan znq syl2anc wne nnq
    zcnd adantl nnne0d qdivcl syl3anc addassd 3eqtrd fveq2d qre nndivred simp1d
    nnrpd qfracge0 divge0d addge0d peano2rem nnap0 redivclapd nnrecred qfraclt1
    nnre simp2d wb nnred nngt0d 1re ltdiv1 mp3an2 syl12anc leltaddd nncn npcan1
    mpbid recnd ax-1cn divdirap dividapd 3eqtr3d qaddcl flqbi2 mpbir2and eqtr2d
    cap breqtrd ) ACDZBUADZEZABFGZHIAHIZBFGZHIZXOXPUBGZAXNUBGZBFGZJGZJGZHIZXPXL
    XMYAHXLXMXOXSJGZXPXQJGZXSJGYAXLXMXNXRJGZBFGYCXLAYEBFXJAYEKZXKXJLXRMNZXROPNZ
    YFAXRXNXNQXRQUCUDUEUFXLXNXRBXLXNXLAXJXKUGUHZVFXJXKXNCDZXRRDZXLXNUIDZYJYIXNU
    JSZXJYJEXRCDZYKAXNUKZXRULSUMXLBXJXKUNZUOXLBYPUPUQURXLXOYDXSJXJYLXKXOYDKZAUS
    ZYLXKEZLXQMNZXQBOUBGZBFGZMNZYQXQXNBXPXPQXQQUTZUDVAUFXLXPXQXSXLXPXJYLXKXPUID
    ZYRYSXOXNBVBZUHVAZVFXLXQCDZXQRDXLXOCDZXPCDZUUHXLYLXKUUIYIYPUUFVCZXLUUEUUJUU
    GXPUJSXOXPUKVCZXQULSXLXSCDZXSRDXLYNBCDZBLVDUUMXJXKYJYNYMYOUMZXKUUNXJBVEVGXL
    BYPVHXRBVIVJZXSULSVKVLVMXLYBXPKZLXTMNZXTOPNZXLXQXSXLUUHXQTDUULXQVNSZXLXRBXL
    YNXRTDZUUOXRVNSZYPVOZXJYLXKYTYRYSYTUUCYQUUDVPVAXLXRBUVBXLBYPVQXJYGXKAVRUEVS
    VTXLXTUUBOBFGZJGZOPXLXQXSUUBUVDUUTUVCXKUUBTDXJXKUUABXKBTDZUUATDBWFZBWASZUVG
    BWBZWCVGXLBYPWDXJYLXKUUCYRYSYTUUCYQUUDWGVAXLYHXSUVDPNZXJYHXKAWEUEXLUVAUVFLB
    PNZYHUVJWHZUVBXLBYPWIXLBYPWJUVAOTDUVFUVKEUVLWKXROBWLWMWNWRWOXKUVEOKXJXKUUAO
    JGZBFGZBBFGUVEOXKUVMBBFXKBRDZUVMBKBWPZBWQSUFXKUUARDZUVOBLXHNZUVNUVEKZXKUUAU
    VHWSUVPUVIUVQORDUVOUVREUVSWTUUAOBXAWMWNXKBUVPUVIXBXCVGXIXLUUEXTCDZUUQUURUUS
    EWHXLXOUUKUHXLUUHUUMUVTUULUUPXQXSXDVCXTXPXEVCXFXG $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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 ~ modqval for its value.
       For example, ` ( 5 mod 3 ) = 2 ` and ` ( -u 7 mod 2 ) = 1 ` .  As with
       ~ df-fl we define this for first and second arguments which are real and
       positive real, respectively, even though many theorems will need to be
       more restricted (for example, specify rational arguments).  (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 numbers 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.)  As with ~ flqcl we
       only prove this for rationals although other particular kinds of real
       numbers may be possible.  (Contributed by Jim Kingdon, 16-Oct-2021.) $)
    modqval $p |- ( ( A e. QQ /\ B e. QQ /\ 0 < B )
           -> ( A mod B ) = ( A - ( B x. ( |_ ` ( A / B ) ) ) ) ) $=
      ( vx vy cq wcel cc0 cr crp cdiv co cfl cfv cmul cmin cmo wceq qre fveq2d
      cv clt wbr w3a 3ad2ant1 3ad2ant2 simp3 wne gt0ne0d qdivcl syld3an3 flqcld
      elrpd remulcld resubcld oveq1 oveq2d oveq12 mpdan df-mod ovmpt2g syl3anc
      zred oveq2 ) AEFZBEFZGBUAUBZUCZAHFZBIFABABJKZLMZNKZOKZHFABPKVLQVDVEVHVFAR
      UDZVGBVEVDBHFVFBRUEZVDVEVFUFZULVGAVKVMVGBVJVNVGVJVGVIVDVEVFBGUGVIEFVGBVOU
      HABUIUJUKVBUMUNCDABHICTZDTZVPVQJKZLMZNKZOKZVLPAVQAVQJKZLMZNKZOKZHVPAQZVTW
      DQWAWEQWFVSWCVQNWFVRWBLVPAVQJUOSUPVPAVTWDOUQURVQBQZWDVKAOWGWCVJQWDVKQWGWB
      VILVQBAJVCSVQBWCVJNUQURUPCDUSUTVA $.
  $}

  $( The value of the modulo operation (multiplication in reversed order).
     (Contributed by Jim Kingdon, 16-Oct-2021.) $)
  modqvalr $p |- ( ( A e. QQ /\ B e. QQ /\ 0 < B )
                  -> ( A mod B ) = ( A - ( ( |_ ` ( A / B ) ) x. B ) ) ) $=
    ( cq wcel cc0 clt wbr w3a cmo co cdiv cfl cfv cmul cmin modqval cc 3ad2ant2
    qcn wne simp3 gt0ne0d qdivcl syld3an3 flqcld zcnd mulcomd oveq2d eqtrd ) AC
    DZBCDZEBFGZHZABIJABABKJZLMZNJZOJAUOBNJZOJABPUMUPUQAOUMBUOUKUJBQDULBSRUMUOUM
    UNUJUKULBETUNCDUMBUJUKULUAUBABUCUDUEUFUGUHUI $.

  $( Closure law for the modulo operation.  (Contributed by Jim Kingdon,
     16-Oct-2021.) $)
  modqcl $p |- ( ( A e. QQ /\ B e. QQ /\ 0 < B ) -> ( A mod B ) e. QQ ) $=
    ( cq wcel cc0 clt wbr w3a cmo co cdiv cfl cfv cmul cmin modqval simp1 simp2
    cz syl2anc wne gt0ne0d qdivcl syld3an3 flqcld zq syl qmulcl qsubcl eqeltrd
    simp3 ) ACDZBCDZEBFGZHZABIJABABKJZLMZNJZOJZCABPUOULURCDZUSCDULUMUNQUOUMUQCD
    ZUTULUMUNRUOUQSDVAUOUPULUMUNBEUAUPCDUOBULUMUNUKUBABUCUDUEUQUFUGBUQUHTAURUIT
    UJ $.

  $( Partition of a division into its integer part and the remainder.
     (Contributed by Jim Kingdon, 16-Oct-2021.) $)
  flqpmodeq $p |- ( ( A e. QQ /\ B e. QQ /\ 0 < B )
                   -> ( ( ( |_ ` ( A / B ) ) x. B ) + ( A mod B ) ) = A ) $=
    ( cq wcel cc0 clt wbr w3a cdiv co cfl cfv cmul cmin cmo wceq caddc modqvalr
    cc qcn eqcomd 3ad2ant1 wne simp3 gt0ne0d qdivcl syld3an3 flqcld zcnd mulcld
    3ad2ant2 modqcl syl subaddd mpbid ) ACDZBCDZEBFGZHZAABIJZKLZBMJZNJZABOJZPVB
    VDQJAPUSVDVCABRUAUSAVBVDUPUQASDURATUBUSVABUSVAUSUTUPUQURBEUCUTCDUSBUPUQURUD
    UEABUFUGUHUIUQUPBSDURBTUKUJUSVDCDVDSDABULVDTUMUNUO $.

  ${
    modqcld.1 $e |- ( ph -> A e. QQ ) $.
    modqcld.2 $e |- ( ph -> B e. QQ ) $.
    modqcld.3 $e |- ( ph -> 0 < B ) $.
    $( Closure law for the modulo operation.  (Contributed by Jim Kingdon,
       16-Oct-2021.) $)
    modqcld $p |- ( ph -> ( A mod B ) e. QQ ) $=
      ( cq wcel cc0 clt wbr cmo co modqcl syl3anc ) ABGHCGHICJKBCLMGHDEFBCNO $.
  $}

  $( ` A mod B ` is zero iff ` A ` is evenly divisible by ` B ` .  (Contributed
     by Jim Kingdon, 17-Oct-2021.) $)
  modq0 $p |- ( ( A e. QQ /\ B e. QQ /\ 0 < B ) ->
                              ( ( A mod B ) = 0 <-> ( A / B ) e. ZZ ) ) $=
    ( cq wcel cc0 clt wbr w3a cmo co wceq cdiv cfl cfv cz cc qcn 3ad2ant2 bitrd
    cmul cmin modqval eqeq1d 3ad2ant1 simp3 gt0ne0d qdivcl syld3an3 flqcld zcnd
    wne mulcld subeq0ad eqcom cr qre gt0ap0d divmulap2d syl5rbbr wb flqidz syl
    ) ACDZBCDZEBFGZHZABIJZEKZABLJZMNZVIKZVIODZVFVHABVJTJZKZVKVFVHAVMUAJZEKVNVFV
    GVOEABUBUCVFAVMVCVDAPDVEAQUDZVFBVJVDVCBPDVEBQRZVFVJVFVIVCVDVEBEUKVICDZVFBVC
    VDVEUEZUFABUGUHZUIUJZULUMSVKVIVJKVFVNVIVJUNVFAVJBVPWAVQVFBVDVCBUODVEBUPRVSU
    QURUSSVFVRVKVLUTVTVIVAVBS $.

  $( The product of an integer and a positive rational number is 0 modulo the
     positive real number.  (Contributed by Jim Kingdon, 18-Oct-2021.) $)
  mulqmod0 $p |- ( ( A e. ZZ /\ M e. QQ /\ 0 < M ) ->
      ( ( A x. M ) mod M ) = 0 ) $=
    ( cz wcel cq cc0 clt wbr w3a cmul co cmo wceq cdiv simp1 cc qcn 3ad2ant2 cr
    zcnd qre simp3 gt0ap0d divcanap4d eqeltrd wb syl simp2 qmulcl syl2anc modq0
    zq syld3an1 mpbird ) ACDZBEDZFBGHZIZABJKZBLKFMZUSBNKZCDZURVAACURABURAUOUPUQ
    OZTUPUOBPDUQBQRURBUPUOBSDUQBUARUOUPUQUBUCUDVCUEUSEDZUPUOUQUTVBUFURAEDZUPVDU
    RUOVEVCAULUGUOUPUQUHABUIUJUSBUKUMUN $.

  $( ` A ` is divisible by ` B ` iff its negative is.  (Contributed by Jim
     Kingdon, 18-Oct-2021.) $)
  negqmod0 $p |- ( ( A e. QQ /\ B e. QQ /\ 0 < B ) ->
                    ( ( A mod B ) = 0 <-> ( -u A mod B ) = 0 ) ) $=
    ( cq wcel cc0 clt wbr w3a cdiv co cz cneg cmo wceq cc qcn 3ad2ant1 3ad2ant2
    wb modq0 cr qre simp3 gt0ap0d divclapd znegclb syl divnegapd eleq1d syl3an1
    bitrd qnegcl 3bitr4d ) ACDZBCDZEBFGZHZABIJZKDZALZBIJZKDZABMJENUTBMJENZUQUSU
    RLZKDZVBUQURODUSVESUQABUNUOAODUPAPQZUOUNBODUPBPRZUQBUOUNBUADUPBUBRUNUOUPUCU
    DZUEURUFUGUQVDVAKUQABVFVGVHUHUIUKABTUNUTCDUOUPVCVBSAULUTBTUJUM $.

  $( The modulo operation is nonnegative.  (Contributed by Jim Kingdon,
     18-Oct-2021.) $)
  modqge0 $p |- ( ( A e. QQ /\ B e. QQ /\ 0 < B ) -> 0 <_ ( A mod B ) ) $=
    ( cq wcel cc0 clt wbr w3a cdiv co cfl cfv cmul cmin cmo cle wne qre mpbird
    cr simp3 gt0ne0d qdivcl syld3an3 flqle syl wb flqcld zred 3ad2ant1 3ad2ant2
    lemuldiv2 syl112anc remulcld subge0d modqval breqtrrd ) ACDZBCDZEBFGZHZEABA
    BIJZKLZMJZNJZABOJPVAEVEPGVDAPGZVAVFVCVBPGZVAVBCDZVGURUSUTBEQVHVABURUSUTUAZU
    BABUCUDZVBUEUFVAVCTDATDZBTDZUTVFVGUGVAVCVAVBVJUHUIZURUSVKUTARUJZUSURVLUTBRU
    KZVIVCABULUMSVAAVDVNVABVCVOVMUNUOSABUPUQ $.

  $( The modulo operation is less than its second argument.  (Contributed by
     Jim Kingdon, 18-Oct-2021.) $)
  modqlt $p |- ( ( A e. QQ /\ B e. QQ /\ 0 < B ) -> ( A mod B ) < B ) $=
    ( cq wcel cc0 clt wbr w3a cmo co cdiv cmin cmul cc qcn 3ad2ant2 cr qre syl
    c1 cfl cfv 3ad2ant1 simp3 gt0ap0d divcanap2d oveq1d gt0ne0d qdivcl syld3an3
    wne flqcld zcnd subdid modqval 3eqtr4rd qfraclt1 dividapd breqtrrd resubcld
    wb zred ltmuldiv2 syl112anc mpbird eqbrtrd ) ACDZBCDZEBFGZHZABIJZBABKJZVLUA
    UBZLJZMJZBFVJBVLMJZBVMMJZLJAVQLJVOVKVJVPAVQLVJABVGVHANDVIAOUCVHVGBNDVIBOPZV
    JBVHVGBQDZVIBRPZVGVHVIUDZUEZUFUGVJBVLVMVRVJVLCDZVLNDVGVHVIBEUKWCVJBWAUHABUI
    UJZVLOSVJVMVJVLWDULZUMUNABUOUPVJVOBFGZVNBBKJZFGZVJVNTWGFVJWCVNTFGWDVLUQSVJB
    VRWBURUSVJVNQDVSVSVIWFWHVAVJVLVMVJWCVLQDWDVLRSVJVMWEVBUTVTVTWAVNBBVCVDVEVF
    $.

  $( Modular reduction produces a half-open interval.  (Contributed by Jim
     Kingdon, 18-Oct-2021.) $)
  modqelico $p |- ( ( A e. QQ /\ B e. QQ /\ 0 < B ) ->
      ( A mod B ) e. ( 0 [,) B ) ) $=
    ( cq wcel cc0 clt wbr w3a cmo co cico cle modqcl qre syl modqge0 modqlt cxr
    cr wb 0re rexrd 3ad2ant2 elico2 sylancr mpbir3and ) ACDZBCDZEBFGZHZABIJZEBK
    JDZUKSDZEUKLGZUKBFGZUJUKCDUMABMUKNOABPABQUJESDBRDZULUMUNUOHTUAUHUGUPUIUHBBN
    UBUCEBUKUDUEUF $.

  $( The modulo operation differs from ` A ` by an integer multiple of ` B ` .
     (Contributed by Jim Kingdon, 18-Oct-2021.) $)
  modqdiffl $p |- ( ( A e. QQ /\ B e. QQ /\ 0 < B ) ->
      ( ( A - ( A mod B ) ) / B ) = ( |_ ` ( A / B ) ) ) $=
    ( cq wcel cc0 clt wbr w3a cmo co cmin cdiv cfl cfv cmul modqval cc 3ad2ant2
    qcn eqtrd oveq2d 3ad2ant1 gt0ne0d qdivcl syld3an3 flqcld zcnd mulcld nncand
    wne simp3 oveq1d cr qre gt0ap0d divcanap3d ) ACDZBCDZEBFGZHZAABIJZKJZBLJBAB
    LJZMNZOJZBLJVDUTVBVEBLUTVBAAVEKJZKJVEUTVAVFAKABPUAUTAVEUQURAQDUSASUBUTBVDUR
    UQBQDUSBSRZUTVDUTVCUQURUSBEUJVCCDUTBUQURUSUKZUCABUDUEUFUGZUHUITULUTVDBVIVGU
    TBURUQBUMDUSBUNRVHUOUPT $.

  $( The modulo operation differs from ` A ` by an integer multiple of ` B ` .
     (Contributed by Jim Kingdon, 18-Oct-2021.) $)
  modqdifz $p |- ( ( A e. QQ /\ B e. QQ /\ 0 < B ) ->
      ( ( A - ( A mod B ) ) / B ) e. ZZ ) $=
    ( cq wcel cc0 clt wbr w3a cmo co cmin cdiv cfl cfv cz modqdiffl wne gt0ne0d
    simp3 qdivcl syld3an3 flqcld eqeltrd ) ACDZBCDZEBFGZHZAABIJKJBLJABLJZMNOABP
    UGUHUDUEUFBEQUHCDUGBUDUEUFSRABTUAUBUC $.

  $( The fractional part of a number is the number modulo 1.  (Contributed by
     Jim Kingdon, 18-Oct-2021.) $)
  modqfrac $p |- ( A e. QQ -> ( A mod 1 ) = ( A - ( |_ ` A ) ) ) $=
    ( cq wcel c1 cmo co cdiv cfl cfv cmul cmin cc0 clt wbr wceq cz 1z zq oveq2d
    eqtrd ax-mp 0lt1 modqval mp3an23 qcn div1d fveq2d flqcl zcnd mulid2d ) ABCZ
    ADEFZADADGFZHIZJFZKFZAAHIZKFUKDBCZLDMNULUPODPCURQDRUAUBADUCUDUKUOUQAKUKUODU
    QJFUQUKUNUQDJUKUMAHUKAAUEUFUGSUKUQUKUQAUHUIUJTST $.

  $( The floor function expressed in terms of the modulo operation.
     (Contributed by Jim Kingdon, 18-Oct-2021.) $)
  flqmod $p |- ( A e. QQ -> ( |_ ` A ) = ( A - ( A mod 1 ) ) ) $=
    ( cq wcel c1 cmo cmin cfl cfv modqfrac oveq2d qcn flqcl zcnd nncand eqtr2d
    co ) ABCZAADEPZFPAAAGHZFPZFPSQRTAFAIJQASAKQSALMNO $.

  $( Break a number into its integer part and its fractional part.
     (Contributed by Jim Kingdon, 18-Oct-2021.) $)
  intqfrac $p |- ( A e. QQ -> A = ( ( |_ ` A ) + ( A mod 1 ) ) ) $=
    ( cq wcel cfl cfv c1 cmo co caddc cmin modqfrac oveq2d flqcl pncan3d eqtr2d
    zcnd qcn ) ABCZADEZAFGHZIHSASJHZIHARTUASIAKLRSARSAMPAQNO $.

  $( 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 cq wceq zq modqfrac 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 Jim Kingdon, 18-Oct-2021.) $)
  modqmulnn $p |- ( ( N e. NN /\ A e. QQ /\ M e. NN ) -> ( ( N x. ( |_ ` A ) )
           mod ( N x. M ) ) <_ ( ( |_ ` ( N x. A ) ) mod ( N x. M ) ) ) $=
    ( cn wcel cq cfl cfv cmul co cdiv cmin cz syl syl2anc cc0 wbr syl3anc wceq
    zq w3a cmo cle cr nnq 3ad2ant1 flqcl 3ad2ant2 qmulcl qre simp2 zred nnmulcl
    flqcld wa 3adant2 wne cap simp1 nncnd simp3 nnap0d mulap0d wb ax-mp sylancl
    0z qapne mpbid qdivcl remulcld cn0 nnnn0 flqmulnn0 sylan lesub1dd clt nnred
    nngt0d mulgt0d modqval flqdiv 3adant1 zcnd divcanap5d fveq2d 3eqtr4rd eqtrd
    cc qcn oveq2d 3brtr4d ) CDEZAFEZBDEZUAZCAGHZIJZCBIJZWRWSKJZGHZIJZLJZCAIJZGH
    ZXBLJZWRWSUBJZXEWSUBJZUCWPWRXEXBWPWRFEZWRUDEWPCFEZWQFEZXIWMWNXJWOCUEUFZWNWM
    XKWOWNWQMEXKAUGZWQTNUHCWQUIOZWRUJNWPXEWPXDWPXJWNXDFEZXLWMWNWOUKZCAUIOZUNZUL
    WPWSXAWPWSFEZWSUDEWMWOXSWNWMWOUOWSDEZXSCBUMZWSUENUPZWSUJNWPXAWPWTWPXIXSWSPU
    QZWTFEXNYBWPWSPURQZYCWPCBWPCWMWNWOUSZUTZWPBWMWNWOVAZUTZWPCYEVBZWPBYGVBZVCWP
    XSPFEZYDYCVDYBPMEYKVGPTVEWSPVHVFVIWRWSVJRUNULVKWPWMWNWRXEUCQZYEXPWMCVLEWNYL
    CVMACVNVOOVPWPXIXSPWSVQQZXGXCSXNYBWPCBWPCYEVRWPBYGVRWPCYEVSWPBYGVSVTZWRWSWA
    RWPXHXEWSXEWSKJGHZIJZLJZXFWPXEFEZXSYMXHYQSWPXEMEYRXRXETNYBYNXEWSWARWPYPXBXE
    LWPYOXAWSIWPYOXDWSKJZGHZXAWPXOXTYOYTSXQWMWOXTWNYAUPXDWSWBOWPWQBKJZGHZABKJZG
    HZXAYTWNWOUUBUUDSWMABWBWCWPWTUUAGWPWQBCWPWNWQWIEXPWNWQXMWDNYHYFYJYIWEWFWPYS
    UUCGWPABCWPWNAWIEXPAWJNYHYFYJYIWEWFWGWHWKWKWHWL $.

  $( The value of the modulo operation (expressed with sum of denominator and
     nominator).  (Contributed by Jim Kingdon, 20-Oct-2021.) $)
  modqvalp1 $p |- ( ( A e. QQ /\ B e. QQ /\ 0 < B )
      -> ( ( A + B ) - ( ( ( |_ ` ( A / B ) ) + 1 ) x. B ) ) = ( A mod B ) ) $=
    ( cq wcel cc0 clt wbr w3a caddc co cdiv cfl cfv cmul c1 cmo cc qcn 3ad2ant1
    cmin wne simp3 gt0ne0d qdivcl syld3an3 flqcld zcnd 3ad2ant2 mulcld pnpcan2d
    adddirp1d oveq2d modqvalr 3eqtr4d ) ACDZBCDZEBFGZHZABIJZABKJZLMZBNJZBIJZTJA
    VBTJUSVAOIJBNJZTJABPJURAVBBUOUPAQDUQARSURVABURVAURUTUOUPUQBEUAUTCDURBUOUPUQ
    UBUCABUDUEUFUGZUPUOBQDUQBRUHZUIVFUJURVDVCUSTURVABVEVFUKULABUMUN $.

  $( 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 cmul cmin cq adantl syl3anc
    cfv clt wceq adantr nnq nngt0 modqval nnz znq flqcld zmulcld zsubcl eqeltrd
    zq syldan modqge0 elnn0z sylanbrc ) ACDZBEDZFZABGHZCDIVAJKZVALDUTVAABABMHZN
    TZOHZPHZCUTAQDZBQDZIBUAKZVAVFUBURVGUSAUMUCZUSVHURBUDRZUSVIURBUERZABUFSURUSV
    ECDVFCDUTBVDUSBCDURBUGRUTVCABUHUIUJAVEUKUNULUTVGVHVIVBVJVKVLABUOSVAUPUQ $.

  ${
    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 cmin cfz cle wbr clt zmodcl nn0zd nn0ge0d adantl
    c1 cq zq adantr nnq nngt0 modqlt syl3anc w3a nnz elfzm11 sylancr mpbir3and
    wb 0z ) ACDZBEDZFZABGHZIBSJHKHDZUQCDZIUQLMZUQBNMZUPUQABOZPUPUQVBQUPATDZBTDZ
    IBNMZVAUNVCUOAUAUBUOVDUNBUCRUOVEUNBUDRABUEUFUPICDBCDZURUSUTVAUGULUMUOVFUNBU
    HRUQIBUIUJUK $.

  $( 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 Jim Kingdon, 21-Oct-2021.) $)
  modqid $p |- ( ( ( A e. QQ /\ B e. QQ ) /\ ( 0 <_ A /\ A < B ) )
      -> ( A mod B ) = A ) $=
    ( cq wcel wa cc0 cle wbr clt co cfl cfv cmul cmin wceq cr qre syl3anc eqtrd
    c1 cmo cdiv simpll simplr 0red ad2antrr simprl simprr lelttrd modqval caddc
    ad2antlr cc wne gt0ne0d qdivcl qcn addid2 fveq2d 3syl divge0 syl22anc recnd
    mulid1d breqtrrd wb 1red ltdivmul syl112anc mpbird flqbi2 sylancr mpbir2and
    cz 0z eqtr3d oveq2d mul01d subid1d ) ACDZBCDZEZFAGHZABIHZEZEZABUAJZABABUBJZ
    KLZMJZNJZAWFVTWAFBIHZWGWKOVTWAWEUCZVTWAWEUDZWFFABWFUEVTAPDZWAWEAQUFZWABPDZV
    TWEBQULZWBWCWDUGZWBWCWDUHZUIZABUJRWFWKAFNJAWFWJFANWFWJBFMJFWFWIFBMWFFWHUKJZ
    KLZWIFWFWHCDZWHUMDZXCWIOWFVTWABFUNXDWMWNWFBXAUOABUPRZWHUQXEXBWHKWHURUSUTWFX
    CFOZFWHGHZWHTIHZWFWOWCWQWLXHWPWSWRXAABVAVBWFXIABTMJZIHZWFABXJIWTWFBWFBWRVCZ
    VDVEWFWOTPDWQWLXIXKVFWPWFVGWRXAATBVHVIVJWFFVNDXDXGXHXIEVFVOXFWHFVKVLVMVPVQW
    FBXLVRSVQWFAWFAWPVCVSSS $.

  $( A positive real number modulo itself is 0.  (Contributed by Jim Kingdon,
     21-Oct-2021.) $)
  modqid0 $p |- ( ( N e. QQ /\ 0 < N ) -> ( N mod N ) = 0 ) $=
    ( cq wcel cc0 clt wbr wa cmo co wceq cdiv cz c1 cr qre adantr recnd gt0ap0d
    simpr dividapd 1z syl6eqel wb modq0 3anidm12 mpbird ) ABCZDAEFZGZAAHIDJZAAK
    IZLCZUIUKMLUIAUIAUGANCUHAOPZQUIAUMUGUHSRTUAUBUGUHUJULUCAAUDUEUF $.

  $( Identity law for modulo.  (Contributed by Jim Kingdon, 21-Oct-2021.) $)
  modqid2 $p |- ( ( A e. QQ /\ B e. QQ /\ 0 < B ) ->
      ( ( A mod B ) = A <-> ( 0 <_ A /\ A < B ) ) ) $=
    ( cq wcel cc0 clt wbr w3a cmo co wceq cle wa modqge0 modqlt jca breq2 breq1
    anbi12d syl5ibcom wi modqid ex 3adant3 impbid ) ACDZBCDZEBFGZHZABIJZAKZEALG
    ZABFGZMZUIEUJLGZUJBFGZMUKUNUIUOUPABNABOPUKUOULUPUMUJAELQUJABFRSTUFUGUNUKUAU
    HUFUGMUNUKABUBUCUDUE $.

  $( 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 cq wb zq adantl nnq
    adantr nngt0 modqid2 syl3anc nnz w3a 0z elfzm11 mpan 3anass syl6bb syl ibar
    bicomd sylan9bbr bitr4d ) ACDZBEDZFZABGHAIZJAKLZABMLZFZAJBNOHPHDZUTAQDZBQDZ
    JBMLZVAVDRURVFUSASUBUSVGURBUATUSVHURBUCTABUDUEUSVEURVDFZURVDUSBCDZVEVIRBUFV
    JVEURVBVCUGZVIJCDVJVEVKRUHAJBUIUJURVBVCUKULUMURVDVIURVDUNUOUPUQ $.

  $( 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 Jim
     Kingdon, 21-Oct-2021.) $)
  q0mod $p |- ( ( N e. QQ /\ 0 < N ) -> ( 0 mod N ) = 0 ) $=
    ( cq wcel cc0 clt wbr wa cle cmo co wceq cz 0z zq mp1i simpl 0le0 a1i simpr
    modqid syl22anc ) ABCZDAEFZGZDBCZUBDDHFZUCDAIJDKDLCUEUDMDNOUBUCPUFUDQRUBUCS
    DATUA $.

  $( Special case: 1 modulo a real number greater than 1 is 1.  (Contributed by
     Jim Kingdon, 21-Oct-2021.) $)
  q1mod $p |- ( ( N e. QQ /\ 1 < N ) -> ( 1 mod N ) = 1 ) $=
    ( cq wcel c1 clt wbr wa cc0 cle cmo co wceq cz 1z mp1i simpl 0le1 a1i simpr
    zq modqid syl22anc ) ABCZDAEFZGZDBCZUCHDIFZUDDAJKDLDMCUFUENDTOUCUDPUGUEQRUC
    UDSDAUAUB $.

  ${
    modqabs.a $e |- ( ph -> A e. QQ ) $.
    modqabs.b $e |- ( ph -> B e. QQ ) $.
    modqabs.bgt0 $e |- ( ph -> 0 < B ) $.
    modqabs.c $e |- ( ph -> C e. QQ ) $.
    modqabs.bc $e |- ( ph -> B <_ C ) $.
    $( Absorption law for modulo.  (Contributed by Jim Kingdon,
       21-Oct-2021.) $)
    modqabs $p |- ( ph -> ( ( A mod B ) mod C ) = ( A mod B ) ) $=
      ( cmo co cq wcel cc0 wbr clt syl3anc cr qre syl cle modqcld modqlt modqid
      wceq modqge0 ltletrd syl22anc ) ABCJKZLMZDLMZNUIUAOZUIDPOUIDJKUIUEABCEFGU
      BZHABLMZCLMZNCPOZULEFGBCUFQAUICDAUJUIRMUMUISTAUOCRMFCSTAUKDRMHDSTAUNUOUPU
      ICPOEFGBCUCQIUGUIDUDUH $.
  $}

  $( Absorption law for modulo.  (Contributed by Jim Kingdon, 21-Oct-2021.) $)
  modqabs2 $p |- ( ( A e. QQ /\ B e. QQ /\ 0 < B )
           -> ( ( A mod B ) mod B ) = ( A mod B ) ) $=
    ( cq wcel cc0 clt wbr w3a simp1 simp2 simp3 cr qre syl leidd modqabs ) ACDZ
    BCDZEBFGZHZABBQRSIQRSJZQRSKUATBTRBLDUABMNOP $.

  $( The modulo operation is periodic.  (Contributed by Jim Kingdon,
     21-Oct-2021.) $)
  modqcyc $p |- ( ( ( A e. QQ /\ N e. ZZ ) /\ ( B e. QQ /\ 0 < B ) )
        -> ( ( A + ( N x. B ) ) mod B ) = ( A mod B ) ) $=
    ( cq wcel wa cmul co caddc cdiv cfl cfv cmin wceq syl2anc syl3anc cc oveq2d
    qcn syl cc0 clt wbr cmo simpll ad2antlr simprl qmulcl qaddcl simprr modqval
    cz zq qre gt0ap0d divdirapd simplr zcnd divcanap4d eqtrd fveq2d wne gt0ne0d
    cr qdivcl flqaddz flqcld adddid mulcomd 3eqtrd mulcld pnpcan2d eqtr4d ) ADE
    ZCULEZFZBDEZUABUBUCZFZFZACBGHZIHZBUDHZABABJHZKLZGHZMHZABUDHZVTWCWBBWBBJHZKL
    ZGHZMHZWBWFWAIHZMHWGVTWBDEZVQVRWCWLNVTVNWADEZWNVNVOVSUEZVTCDEZVQWOVOWQVNVSC
    UMUFVPVQVRUGZCBUHOZAWAUIOWRVPVQVRUJZWBBUKPVTWKWMWBMVTWKBWECIHZGHWFBCGHZIHWM
    VTWJXABGVTWJWDCIHZKLZXAVTWIXCKVTWIWDWABJHZIHXCVTAWABVTVNAQEWPASTZVTWOWAQEWS
    WASTZVTVQBQEWRBSTZVTBVTVQBVDEWRBUNTWTUOZUPVTXECWDIVTCBVTCVNVOVSUQZURZXHXIUS
    RUTVAVTWDDEZVOXDXANVTVNVQBUAVBXLWPWRVTBWTVCABVEPZXJWDCVFOUTRVTBWECXHVTWEVTW
    DXMVGURZXKVHVTXBWAWFIVTBCXHXKVIRVJRVTAWFWAXFVTBWEXHXNVKXGVLVJVTVNVQVRWHWGNW
    PWRWTABUKPVM $.

  $( The modulo operation is periodic.  (Contributed by Jim Kingdon,
     21-Oct-2021.) $)
  modqcyc2 $p |- ( ( ( A e. QQ /\ N e. ZZ ) /\ ( B e. QQ /\ 0 < B ) )
        -> ( ( A - ( B x. N ) ) mod B ) = ( A mod B ) ) $=
    ( cq wcel cz wa cc0 clt wbr cmul co cmin cmo cneg caddc simplr cc qcn wceq
    zcnd ad2antrl mulneg1d mulcom negeqd syl2anc eqtr4d oveq2d ad2antrr negsubd
    mulcld eqtr2d oveq1d znegcl modqcyc sylanl2 eqtrd ) ADEZCFEZGZBDEZHBIJZGZGZ
    ABCKLZMLZBNLACOZBKLZPLZBNLZABNLZVDVFVIBNVDVIAVEOZPLVFVDVHVLAPVDVHCBKLZOZVLV
    DCBVDCURUSVCQUAZVABREZUTVBBSUBZUCVDVPCREZVLVNTVQVOVPVRGVEVMBCUDUEUFUGUHVDAV
    EURAREUSVCASUIVDBCVQVOUKUJULUMUSURVGFEVCVJVKTCUNABVGUOUPUQ $.

  ${
    modqadd1.a $e |- ( ph -> A e. QQ ) $.
    modqadd1.b $e |- ( ph -> B e. QQ ) $.
    modqadd1.c $e |- ( ph -> C e. QQ ) $.
    modqadd1.dq $e |- ( ph -> D e. QQ ) $.
    modqadd1.dgt0 $e |- ( ph -> 0 < D ) $.
    modqadd1.ab $e |- ( ph -> ( A mod D ) = ( B mod D ) ) $.
    $( Addition property of the modulo operation.  (Contributed by Jim Kingdon,
       22-Oct-2021.) $)
    modqadd1 $p |- ( ph -> ( ( A + C ) mod D ) = ( ( B + C ) mod D ) ) $=
      ( cmo co wceq caddc cmin cq wcel syl3anc cc cdiv cfl cfv cmul cc0 clt wbr
      modqval eqeq12d oveq1 syl6bi qcn syl gt0ne0d qdivcl flqcld mulcld addsubd
      wne zcnd sylibrd cz qaddcl syl2anc modqcyc2 syl22anc syl5ib syld mpd ) AB
      ELMZCELMZNZBDOMZELMZCDOMZELMZNZKAVLVMEBEUAMZUBUCZUDMZPMZVOECEUAMZUBUCZUDM
      ZPMZNZVQAVLBVTPMZDOMZCWDPMZDOMZNZWFAVLWGWINWKAVJWGVKWIABQRZEQRZUEEUFUGZVJ
      WGNFIJBEUHSACQRZWMWNVKWINGIJCEUHSUIWGWIDOUJUKAWAWHWEWJABDVTAWLBTRFBULUMAD
      QRZDTRHDULUMZAEVSAWMETRIEULUMZAVSAVRAWLWMEUEUSZVRQRFIAEJUNZBEUOSUPZUTUQUR
      ACDWDAWOCTRGCULUMWQAEWCWRAWCAWBAWOWMWSWBQRGIWTCEUOSUPZUTUQURUIVAWFWAELMZW
      EELMZNAVQWAWEELUJAXCVNXDVPAVMQRZVSVBRWMWNXCVNNAWLWPXEFHBDVCVDXAIJVMEVSVEV
      FAVOQRZWCVBRWMWNXDVPNAWOWPXFGHCDVCVDXBIJVOEWCVEVFUIVGVHVI $.
  $}

  $( Absorption law for modulo.  (Contributed by Jim Kingdon, 22-Oct-2021.) $)
  modqaddabs $p |- ( ( ( A e. QQ /\ B e. QQ ) /\ ( C e. QQ /\ 0 < C ) ) ->
            ( ( ( A mod C ) + ( B mod C ) ) mod C ) = ( ( A + B ) mod C ) ) $=
    ( cq wa cc0 cmo co caddc cc modqcld qcn syl addcomd oveq1d modqabs2 syl3anc
    wcel wceq modqadd1 clt wbr simpll simprl simprr simplr eqtr4d 3eqtrd ) ADRZ
    BDRZEZCDRZFCUAUBZEZEZACGHZBCGHZIHZCGHUQUPIHZCGHZUPBIHZCGHZABIHCGHUOURUSCGUO
    UPUQUOUPDRUPJRUOACUIUJUNUCZUKULUMUDZUKULUMUEZKZUPLMZUOUQDRUQJRUOBCUIUJUNUFZ
    VDVEKZUQLMNOUOUTBUPIHZCGHVBUOUQBUPCVIVHVFVDVEUOUJULUMUQCGHUQSVHVDVEBCPQTUOV
    AVJCGUOUPBVGUOUJBJRVHBLMNOUGUOUPABCVFVCVHVDVEUOUIULUMUPCGHUPSVCVDVEACPQTUH
    $.

  $( The sum of a number modulo a modulus and another number equals the sum of
     the two numbers modulo the same modulus.  (Contributed by Jim Kingdon,
     23-Oct-2021.) $)
  modqaddmod $p |- ( ( ( A e. QQ /\ B e. QQ ) /\ ( M e. QQ /\ 0 < M ) )
                    -> ( ( ( A mod M ) + B ) mod M ) = ( ( A + B ) mod M ) ) $=
    ( cq wcel cc0 clt wbr cmo simpll simprl simprr modqcld simplr wceq modqabs2
    wa co syl3anc modqadd1 ) ADEZBDEZQZCDEZFCGHZQZQZACIRZABCUGACUAUBUFJZUCUDUEK
    ZUCUDUELZMUIUAUBUFNUJUKUGUAUDUEUHCIRUHOUIUJUKACPST $.

  $( The sum of a positive rational number less than an upper bound and the
     product of an integer and the upper bound is the positive rational number
     modulo the upper bound.  (Contributed by Jim Kingdon, 23-Oct-2021.) $)
  mulqaddmodid $p |- ( ( ( N e. ZZ /\ M e. QQ ) /\
      ( A e. QQ /\ A e. ( 0 [,) M ) ) ) ->
      ( ( ( N x. M ) + A ) mod M ) = A ) $=
    ( cz wcel cq wa cc0 cico co cmul caddc cmo simpll cr recnd wbr clt syl22anc
    wceq zcnd qre ad2antlr mulcld cle w3a simprr cxr wb 0red rexrd elico2 mpbid
    syl2anc simp1d addcomd oveq1d simprl simplr simp2d simp3d lelttrd modqcyc
    modqid 3eqtrd ) CDEZBFEZGZAFEZAHBIJEZGZGZCBKJZALJZBMJAVMLJZBMJZABMJZAVLVNVO
    BMVLVMAVLCBVLCVFVGVKNZUAVLBVGBOEVFVKBUBUCZPUDVLAVLAOEZHAUEQZABRQZVLVJVTWAWB
    UFZVHVIVJUGVLHOEBUHEVJWCUIVLUJZVLBVSUKHBAULUNUMZUOZPUPUQVLVIVFVGHBRQVPVQTVH
    VIVJURZVRVFVGVKUSZVLHABWDWFVSVLVTWAWBWEUTZVLVTWAWBWEVAZVBABCVCSVLVIVGWAWBVQ
    ATWGWHWIWJABVDSVE $.

  $( 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 cmul co cmo c1 caddc cc0 adantl oveq1d cq clt wbr wceq syl a1i
    zq cuz cfv wa cc eluzelcn simpl zcnd mulcomd eluzelz 0red 2re zred 2pos cle
    cr eluzle ltletrd mulqmod0 syl3anc eqtrd 0p1e1 syl6eq syl2anc 1z modqaddmod
    qmulcl mp1i syl22anc eluz2gt1 q1mod 3eqtr3d ) ACDZBEUAUBDZUCZBAFGZBHGZIJGZB
    HGZIBHGZVOIJGBHGZIVNVQIBHVNVQKIJGIVNVPKIJVNVPABFGZBHGZKVNVOWABHVNBAVMBUDDVL
    EBUELVNAVLVMUFZUGUHMVNVLBNDZKBOPZWBKQWCVMWDVLVMBCDZWDEBUIZBTRLZVNKEBVNUJEUO
    DVNUKSVNBVMWFVLWGLULKEOPVNUMSVMEBUNPVLEBUPLUQZABURUSUTMVAVBMVNVONDZINDZWDWE
    VRVTQVNWDANDZWJWHVNVLWLWCATRBAVFVCICDWKVNVDITVGWHWIVOIBVEVHVNWDIBOPZVSIQWHV
    MWMVLBVILBVJVCVK $.

  ${
    $d A k $.  $d B k $.  $d M k $.  $d ph k $.
    modqmuladd.a $e |- ( ph -> A e. ZZ ) $.
    modqmuladd.bq $e |- ( ph -> B e. QQ ) $.
    modqmuladd.b $e |- ( ph -> B e. ( 0 [,) M ) ) $.
    modqmuladd.m $e |- ( ph -> M e. QQ ) $.
    modqmuladd.mgt0 $e |- ( ph -> 0 < M ) $.
    $( Decomposition of an integer into a multiple of a modulus and a
       remainder.  (Contributed by Jim Kingdon, 23-Oct-2021.) $)
    modqmuladd $p |- ( ph ->
        ( ( A mod M ) = B <-> E. k e. ZZ A = ( ( k x. M ) + B ) ) ) $=
      ( cmo co wceq cmul caddc cz cq wcel cc0 ad2antrr cv wrex cdiv cfl cfv wne
      zq syl gt0ne0d qdivcl syl3anc flqcld oveq1 oveq1d eqeq2d adantl flqpmodeq
      wb clt wbr eqcomd rspcedvd oveq2 eqcoms rexbidv syl5ibrcom wa cico simplr
      mulqaddmodid syl22anc eqtrd ex rexlimdva impbid ) ABEKLZCMZBDUAZENLZCOLZM
      ZDPUBZAWBVQBVSVPOLZMZDPUBAWDBBEUCLZUDUEZENLZVPOLZMZDWFPAWEABQRZEQRZESUFWE
      QRABPRWJFBUGUHZIAEJUIBEUJUKULVRWFMZWDWIURAWMWCWHBWMVSWGVPOVRWFENUMUNUOUPA
      WHBAWJWKSEUSUTWHBMWLIJBEUQUKVAVBVQWAWDDPWAWDURCVPCVPMVTWCBCVPVSOVCUOVDVEV
      FAWAVQDPAVRPRZVGZWAVQWOWAVGZVPVTEKLZCWAVPWQMWOBVTEKUMUPWPWNWKCQRZCSEVHLRZ
      WQCMAWNWAVIAWKWNWAITAWRWNWAGTAWSWNWAHTCEVRVJVKVLVMVNVO $.
  $}

  ${
    $d A k $.  $d B k $.  $d M k $.
    $( Implication of a decomposition of an integer into a multiple of a
       modulus and a remainder.  (Contributed by Jim Kingdon, 23-Oct-2021.) $)
    modqmuladdim $p |- ( ( A e. ZZ /\ M e. QQ /\ 0 < M ) -> ( ( A mod M ) = B
                                    -> E. k e. ZZ A = ( ( k x. M ) + B ) ) ) $=
      ( cz wcel cq cc0 clt wbr w3a cmo co wceq cv syl cr cle qre syl3anc simpl1
      cmul caddc wrex simpr simpl2 simpl3 modqcld eqeltrrd cico modqge0 breqtrd
      wa zq modqlt eqbrtrrd cxr wb 0re rexr elico2 sylancr mpbir3and modqmuladd
      3syl mpbid ex ) AEFZDGFZHDIJZKZADLMZBNZACODUBMBUCMNCEUDZVKVMUMZVMVNVKVMUE
      ZVOABCDVHVIVJVMUAZVOVLBGVPVOADVOVHAGFZVQAUNPZVHVIVJVMUFZVHVIVJVMUGZUHUIZV
      OBHDUJMFZBQFZHBRJZBDIJZVOBGFWDWBBSPVOHVLBRVOVRVIVJHVLRJVSVTWAADUKTVPULVOV
      LBDIVPVOVRVIVJVLDIJVSVTWAADUOTUPVOHQFDUQFZWCWDWEWFKURUSVOVIDQFWGVTDSDUTVE
      HDBVAVBVCVTWAVDVFVG $.
  $}

  ${
    $d A i k $.  $d B i k $.  $d M i k $.
    $( Implication of a decomposition of a nonnegative integer into a multiple
       of a modulus and a remainder.  (Contributed by Jim Kingdon,
       23-Oct-2021.) $)
    modqmuladdnn0 $p |- ( ( A e. NN0 /\ M e. QQ /\ 0 < M ) ->
        ( ( A mod M ) = B -> E. k e. NN0 A = ( ( k x. M ) + B ) ) ) $=
      ( vi cn0 wcel cq cc0 wbr co wceq cz cle adantr cdiv ad2antrr syl adantl
      cc clt w3a cmo cv cmul caddc wrex wa simpr cfl cfv cmin nn0cn 3ad2ant1 zq
      nn0z simpl2 simpl3 modqcld qcn wb eleq1 mpbid zcn subadd2d eqcom syl6rbbr
      mulcld subcld qre 3ad2ant2 gt0ap0d divmulap3d oveq2 oveq1d eqcoms syl3an1
      cr modqdiffl eqtrd eqeq1d 3bitr2d wi nn0ge0 simp3 divge0 syl22anc gt0ne0d
      wne simp2 qdivcl syl3anc 0z flqge sylancl breq2 syl5ibcom sylbid sylanbrc
      imp elnn0z oveq1 eqeq2d rspcedvd modqmuladdim r19.29a ex ) AFGZDHGZIDUAJZ
      UBZADUCKZBLZACUDZDUEKZBUFKZLZCFUGZXKXMUHZAEUDZDUEKZBUFKZLZXREMXSXTMGZUHZY
      CUHZXQYCCXTFYFYDIXTNJZXTFGYEYDYCXSYDUIOYEYCYGYEYCADPKZUJUKZXTLZYGYEYCABUL
      KZYALZYKDPKZXTLYJYEYLYBALYCYEABYAXKATGZXMYDXHXIYNXJAUMUNZQXSBTGZYDXSXLTGZ
      YPXSXLHGYQXSADXKAHGZXMXHXIYRXJXHAMGZYRAUPZAUORZUNZOXHXIXJXMUQZXHXIXJXMURZ
      USXLUTRXMYQYPVAXKXLBTVBSVCZOYEXTDYDXTTGXSXTVDSZXSDTGZYDXSXIUUGUUCDUTROZVH
      VEAYBVFVGYEYKXTDXSYKTGYDXSABXKYNXMYOOUUEVIOUUFUUHYEDXKDVRGZXMYDXIXHUUIXJD
      VJVKZQXSXJYDUUDOVLVMYEYMYIXTYEYMAXLULKZDPKZYIXSYMUULLZYDXMUUMXKUUMBXLBXLL
      YKUUKDPBXLAULVNVOVPSOXKUULYILZXMYDXHYRXIXJUUNUUAADVSVQQVTWAWBXKYJYGWCXMYD
      XKIYINJZYJYGXKIYHNJZUUOXKAVRGZIANJZUUIXJUUPXKYRUUQUUBAVJRXHXIUURXJAWDUNUU
      JXHXIXJWEZADWFWGXKYHHGZIMGUUPUUOVAXKYRXIDIWIUUTUUBXHXIXJWJXKDUUSWHADWKWLW
      MYHIWNWOVCYIXTINWPWQQWRWTXTXAWSXNXTLZXQYCVAYFUVAXPYBAUVAXOYABUFXNXTDUEXBV
      OXCSYEYCUIXDXKXMYCEMUGZXHYSXIXJXMUVBWCYTABEDXEVQWTXFXG $.
  $}

  $( 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 Jim Kingdon, 24-Oct-2021.) $)
  qnegmod $p |- ( ( A e. QQ /\ N e. QQ /\ 0 < N )
                       -> ( -u A mod N ) = ( ( N - A ) mod N ) ) $=
    ( cq wcel cc0 clt wbr w3a cmin co cmo cneg caddc cmul qcn 3ad2ant2 3ad2ant1
    c1 cc oveq1d negsubd eqcomd mulid2d 1cnd mulcld qnegcl addcomd cz wceq 1zzd
    syl simp2 simp3 modqcyc syl22anc eqtrd 3eqtr2rd ) ACDZBCDZEBFGZHZBAIJZBKJBA
    LZMJZBKJRBNJZVCMJZBKJZVCBKJZVAVBVDBKVAVDVBVABAUSURBSDUTBOPZURUSASDUTAOQUAUB
    TVAVFVDBKVAVEBVCMVABVIUCTTVAVGVCVEMJZBKJZVHVAVFVJBKVAVEVCVARBVAUDVIUEURUSVC
    SDZUTURVCCDZVLAUFZVCOUKQUGTVAVMRUHDUSUTVKVHUIURUSVMUTVNQVAUJURUSUTULURUSUTU
    MVCBRUNUOUPUQ $.

  $( 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 co cmin cq cc0 clt wbr wceq cz 1z zq mp1i nnq qnegmod
    nngt0 syl3anc cle qsubcl syl2anc nnm1ge0 nnre ltm1d modqid syl22anc eqtrd )
    ABCZDEAFGZADHGZAFGZUMUKDICZAICZJAKLULUNMDNCUOUKODPQZARZATDASUAUKUMICZUPJUMU
    BLUMAKLUNUMMUKUPUOUSURUQADUCUDURAUEUKAAUFUGUMAUHUIUJ $.

  $( 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 simp2 oveq1d cz cc0 3ad2ant2
    cq cr nncnd mulid2d eqcomd cico wceq 1zzd nnq simp1 nn0zd zq nn0re 3ad2ant1
    syl cle nn0ge0d simp3 cxr wb 0re nnre elico2 sylancr mpbir3and mulqaddmodid
    rexrd syl22anc eqtrd ) ACDZBEDZABFGZHZBAIJZBKJLBMJZAIJZBKJZAVKVLVNBKVKBVMAI
    VKVMBVKBVKBVHVIVJNUAUBUCOOVKLPDBSDZASDZAQBUDJDZVOAUEVKUFVIVHVPVJBUGRVKAPDVQ
    VKAVHVIVJUHZUIAUJUMVKVRATDZQAUNGZVJVHVIVTVJAUKULVKAVSUOVHVIVJUPVKQTDBUQDZVR
    VTWAVJHURUSVIVHWBVJVIBBUTVERQBAVAVBVCABLVDVFVG $.

  $( 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 number modulo a modulus and another number equals the sum of
     the two numbers modulo the modulus.  (Contributed by Jim Kingdon,
     24-Oct-2021.) $)
  modqadd2mod $p |- ( ( ( A e. QQ /\ B e. QQ ) /\ ( M e. QQ /\ 0 < M ) )
                    -> ( ( B + ( A mod M ) ) mod M ) = ( ( B + A ) mod M ) ) $=
    ( cq wcel wa cc0 clt wbr cmo co caddc cc qcn ad2antlr simpll simprl addcomd
    syl oveq1d simprr modqcld modqaddmod 3eqtrd ) ADEZBDEZFZCDEZGCHIZFZFZBACJKZ
    LKZCJKULBLKZCJKABLKZCJKBALKZCJKUKUMUNCJUKBULUFBMEUEUJBNOZUKULDEULMEUKACUEUF
    UJPZUGUHUIQUGUHUIUAUBULNSRTABCUCUKUOUPCJUKABUKUEAMEURANSUQRTUD $.

  $( If a number modulo a modulus equals the modulus decreased by 1, the first
     number increased by 1 modulo the modulus equals 0.  (Contributed by Jim
     Kingdon, 24-Oct-2021.) $)
  modqm1p1mod0 $p |- ( ( A e. QQ /\ M e. QQ /\ 0 < M )
                 -> ( ( A mod M ) = ( M - 1 ) -> ( ( A + 1 ) mod M ) = 0 ) ) $=
    ( cq wcel cc0 clt wbr w3a cmo co c1 cmin wceq caddc wa simpl1 adantr oveq1d
    cz syl 1z zq mp1i simp2 simpl3 modqaddmod syl22anc oveq1 adantl qcn modqid0
    cc npcan1 syl2anc 3eqtrd eqtr3d ex ) ACDZBCDZEBFGZHZABIJZBKLJZMZAKNJBIJZEMV
    AVDOZVBKNJZBIJZVEEVFURKCDZUSUTVHVEMURUSUTVDPKSDVIVFUAKUBUCVAUSVDURUSUTUDZQZ
    URUSUTVDUEZAKBUFUGVFVHVCKNJZBIJZBBIJZEVDVHVNMVAVDVGVMBIVBVCKNUHRUIVFVMBBIVF
    BULDZVMBMVAVPVDVAUSVPVJBUJTQBUMTRVFUSUTVOEMVKVLBUKUNUOUPUQ $.

  $( If a number modulo a modulus is less than the modulus decreased by 1, the
     first number increased by 1 modulo the modulus equals the first number
     modulo the modulus, increased by 1.  (Contributed by Jim Kingdon,
     24-Oct-2021.) $)
  modqltm1p1mod $p |- ( ( ( A e. QQ /\ ( A mod M ) < ( M - 1 ) ) /\
      ( M e. QQ /\ 0 < M ) )
      -> ( ( A + 1 ) mod M ) = ( ( A mod M ) + 1 ) ) $=
    ( cq wcel cmo co c1 cmin clt wbr cc0 caddc wceq simpll syl22anc cle qre syl
    wa cr cz mp1i simprl simprr modqaddmod modqcld qaddcl syl2anc 0red readdcld
    1z 1red modqge0 syl3anc lep1d letrd simplr ltaddsubd mpbird modqid eqtr3d
    zq ) ACDZABEFZBGHFIJZSZBCDZKBIJZSZSZVDGLFZBEFZAGLFBEFZVKVJVCGCDZVGVHVLVMMVC
    VEVINZGUADVNVJUKGVBUBZVFVGVHUCZVFVGVHUDZAGBUEOVJVKCDZVGKVKPJVKBIJZVLVKMVJVD
    CDZVNVSVJABVOVQVRUFZVPVDGUGUHVQVJKVDVKVJUIVJWAVDTDWBVDQRZVJVDGWCVJULZUJVJVC
    VGVHKVDPJVOVQVRABUMUNVJVDWCUOUPVJVTVEVCVEVIUQVJVDGBWCWDVJVGBTDVQBQRURUSVKBU
    TOVA $.

  ${
    modqmul1.a $e |- ( ph -> A e. QQ ) $.
    modqmul1.b $e |- ( ph -> B e. QQ ) $.
    modqmul1.c $e |- ( ph -> C e. ZZ ) $.
    modqmul1.d $e |- ( ph -> D e. QQ ) $.
    modqmul1.dgt0 $e |- ( ph -> 0 < D ) $.
    modqmul1.ab $e |- ( ph -> ( A mod D ) = ( B mod D ) ) $.
    $( Multiplication property of the modulo operation.  Note that the
       multiplier ` C ` must be an integer.  (Contributed by Jim Kingdon,
       24-Oct-2021.) $)
    modqmul1 $p |- ( ph
         -> ( ( A x. C ) mod D ) = ( ( B x. C ) mod D ) ) $=
      ( cmo co wceq cmul cmin cq wcel syl3anc syl cfl cfv cc0 clt modqval oveq1
      cdiv wbr eqeq12d syl6bi qcn zcnd wne gt0ne0d qdivcl flqcld mulassd mul32d
      cc eqtr3d oveq2d mulcld subdird eqtr4d sylibrd cz qmulcl syl2anc modqcyc2
      zq zmulcld syl22anc syl5ib syld mpd ) ABELMZCELMZNZBDOMZELMZCDOMZELMZNZKA
      VRVSEDBEUGMZUAUBZOMZOMZPMZWAEDCEUGMZUAUBZOMZOMZPMZNZWCAVRBEWEOMZPMZDOMZCE
      WJOMZPMZDOMZNZWNAVRWPWSNXAAVPWPVQWSABQRZEQRZUCEUDUHZVPWPNFIJBEUESACQRZXCX
      DVQWSNGIJCEUESUIWPWSDOUFUJAWHWQWMWTAWHVSWODOMZPMWQAWGXFVSPAEDOMZWEOMWGXFA
      EDWEAXCEUSRIEUKTZADHULZAWEAWDAXBXCEUCUMZWDQRFIAEJUNZBEUOSUPZULZUQAEDWEXHX
      IXMURUTVAABWODAXBBUSRFBUKTAEWEXHXMVBXIVCVDAWMWAWRDOMZPMWTAWLXNWAPAXGWJOMW
      LXNAEDWJXHXIAWJAWIAXEXCXJWIQRGIXKCEUOSUPZULZUQAEDWJXHXIXPURUTVAACWRDAXECU
      SRGCUKTAEWJXHXPVBXIVCVDUIVEWNWHELMZWMELMZNAWCWHWMELUFAXQVTXRWBAVSQRZWFVFR
      XCXDXQVTNAXBDQRZXSFADVFRXTHDVJTZBDVGVHADWEHXLVKIJVSEWFVIVLAWAQRZWKVFRXCXD
      XRWBNAXEXTYBGYACDVGVHADWJHXOVKIJWAEWKVIVLUIVMVNVO $.
  $}

  ${
    modqmul12d.1 $e |- ( ph -> A e. ZZ ) $.
    modqmul12d.2 $e |- ( ph -> B e. ZZ ) $.
    modqmul12d.3 $e |- ( ph -> C e. ZZ ) $.
    modqmul12d.4 $e |- ( ph -> D e. ZZ ) $.
    modqmul12d.5 $e |- ( ph -> E e. QQ ) $.
    modqmul12d.egt0 $e |- ( ph -> 0 < E ) $.
    modqmul12d.6 $e |- ( ph -> ( A mod E ) = ( B mod E ) ) $.
    modqmul12d.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 Jim Kingdon, 24-Oct-2021.) $)
    modqmul12d $p |- ( ph -> ( ( A x. C ) mod E ) = ( ( B x. D ) mod E ) ) $=
      ( cmul co cmo cz wcel cq zq syl modqmul1 zcnd mulcomd oveq1d 3eqtrd eqtrd
      ) ABDOPFQPCDOPZFQPZCEOPZFQPZABCDFABRSBTSGBUAUBACRSCTSHCUAUBIKLMUCAUJDCOPZ
      FQPECOPZFQPULAUIUMFQACDACHUDZADIUDUEUFADECFADRSDTSIDUAUBAERSETSJEUAUBHKLN
      UCAUNUKFQAECAEJUDUOUEUFUGUH $.
  $}

  ${
    modqnegd.1 $e |- ( ph -> A e. QQ ) $.
    modqnegd.2 $e |- ( ph -> B e. QQ ) $.
    modqnegd.3 $e |- ( ph -> C e. QQ ) $.
    modqnegd.cgt0 $e |- ( ph -> 0 < C ) $.
    modqnegd.4 $e |- ( ph -> ( A mod C ) = ( B mod C ) ) $.
    $( Negation property of the modulo operation.  (Contributed by Jim Kingdon,
       24-Oct-2021.) $)
    modqnegd $p |- ( ph -> ( -u A mod C ) = ( -u B mod C ) ) $=
      ( cneg cmul co cmo wcel cq cc qcn syl mulcomd mulm1d c1 cz neg1z modqmul1
      a1i zcnd eqtrd oveq1d 3eqtr3d ) ABUAJZKLZDMLCUJKLZDMLBJZDMLCJZDMLABCUJDEF
      UJUBNAUCUEZGHIUDAUKUMDMAUKUJBKLUMABUJABONBPNEBQRZAUJUOUFZSABUPTUGUHAULUND
      MAULUJCKLUNACUJACONCPNFCQRZUQSACURTUGUHUI $.
  $}

  ${
    modqadd12d.1 $e |- ( ph -> A e. QQ ) $.
    modqadd12d.2 $e |- ( ph -> B e. QQ ) $.
    modqadd12d.3 $e |- ( ph -> C e. QQ ) $.
    modqadd12d.4 $e |- ( ph -> D e. QQ ) $.
    modqadd12d.5 $e |- ( ph -> E e. QQ ) $.
    modqadd12d.egt0 $e |- ( ph -> 0 < E ) $.
    modqadd12d.6 $e |- ( ph -> ( A mod E ) = ( B mod E ) ) $.
    modqadd12d.7 $e |- ( ph -> ( C mod E ) = ( D mod E ) ) $.
    $( Additive property of the modulo operation.  (Contributed by Jim Kingdon,
       25-Oct-2021.) $)
    modqadd12d $p |- ( ph -> ( ( A + C ) mod E ) = ( ( B + D ) mod E ) ) $=
      ( caddc co cmo cq wcel cc modqadd1 qcn syl addcomd oveq1d 3eqtrd eqtrd )
      ABDOPFQPCDOPZFQPZCEOPZFQPZABCDFGHIKLMUAAUIDCOPZFQPECOPZFQPUKAUHULFQACDACR
      SCTSHCUBUCZADRSDTSIDUBUCUDUEADECFIJHKLNUAAUMUJFQAECAERSETSJEUBUCUNUDUEUFU
      G $.

    $( Subtraction property of the modulo operation.  (Contributed by Jim
       Kingdon, 25-Oct-2021.) $)
    modqsub12d $p |- ( ph -> ( ( A - C ) mod E ) = ( ( B - D ) mod E ) ) $=
      ( co cmo cq wcel syl cc cneg caddc qnegcl modqnegd modqadd12d qcn negsubd
      cmin oveq1d 3eqtr3d ) ABDUAZUBOZFPOCEUAZUBOZFPOBDUHOZFPOCEUHOZFPOABCUKUMF
      GHADQRZUKQRIDUCSAEQRZUMQRJEUCSKLMADEFIJKLNUDUEAULUOFPABDABQRBTRGBUFSAUQDT
      RIDUFSUGUIAUNUPFPACEACQRCTRHCUFSAURETRJEUFSUGUIUJ $.
  $}

  $( The difference of a number modulo a modulus and another number equals the
     difference of the two numbers modulo the modulus.  (Contributed by Jim
     Kingdon, 25-Oct-2021.) $)
  modqsubmod $p |- ( ( ( A e. QQ /\ B e. QQ ) /\ ( M e. QQ /\ 0 < M ) )
                    -> ( ( ( A mod M ) - B ) mod M ) = ( ( A - B ) mod M ) ) $=
    ( cq wcel cc0 clt wbr cmo simpll simprl simprr modqcld simplr wceq modqabs2
    wa co syl3anc eqidd modqsub12d ) ADEZBDEZQZCDEZFCGHZQZQZACIRZABBCUHACUBUCUG
    JZUDUEUFKZUDUEUFLZMUJUBUCUGNZUMUKULUHUBUEUFUICIRUIOUJUKULACPSUHBCIRTUA $.

  $( The difference of a number modulo a modulus and another number modulo the
     same modulus equals the difference of the two numbers modulo the modulus.
     (Contributed by Jim Kingdon, 25-Oct-2021.) $)
  modqsubmodmod $p |- ( ( ( A e. QQ /\ B e. QQ ) /\ ( M e. QQ /\ 0 < M ) )
          -> ( ( ( A mod M ) - ( B mod M ) ) mod M ) = ( ( A - B ) mod M ) ) $=
    ( cq wcel cc0 clt wbr cmo simpll simprl simprr modqcld simplr wceq modqabs2
    wa co syl3anc modqsub12d ) ADEZBDEZQZCDEZFCGHZQZQZACIRZABCIRZBCUGACUAUBUFJZ
    UCUDUEKZUCUDUELZMUJUGBCUAUBUFNZUKULMUMUKULUGUAUDUEUHCIRUHOUJUKULACPSUGUBUDU
    EUICIRUIOUMUKULBCPST $.

  $( Two times a positive number modulo the number is zero.  (Contributed by
     Jim Kingdon, 25-Oct-2021.) $)
  q2txmodxeq0 $p |- ( ( X e. QQ /\ 0 < X ) -> ( ( 2 x. X ) mod X ) = 0 ) $=
    ( cq wcel cc0 clt wbr wa c2 cmul co cmo wceq cdiv cz 2cnd cc qcn adantr cr
    2z qre simpr gt0ap0d divcanap4d syl6eqel wb ax-mp qmulcl mpan simpl syl3anc
    zq modq0 mpbird ) ABCZDAEFZGZHAIJZAKJDLZURAMJZNCZUQUTHNUQHAUQOUOAPCUPAQRUQA
    UOASCUPAUARUOUPUBZUCUDTUEUQURBCZUOUPUSVAUFUOVCUPHBCZUOVCHNCVDTHULUGHAUHUIRU
    OUPUJVBURAUMUKUN $.

  $( If a number is between a modulus and twice the modulus, the first number
     modulo the modulus equals the first number minus the modulus.
     (Contributed by Jim Kingdon, 25-Oct-2021.) $)
  q2submod $p |- ( ( ( A e. QQ /\ B e. QQ /\ 0 < B ) /\
      ( B <_ A /\ A < ( 2 x. B ) ) ) ->
      ( A mod B ) = ( A - B ) ) $=
    ( cq wcel cc0 clt wbr w3a cle c2 cmul co wa c1 cmin cmo wceq cr qre syl qcn
    cc 3ad2ant2 adantr mulid1d oveq2d oveq1d simpl1 1zzd simpl2 simpl3 modqcyc2
    syl22anc qsubcl syl2anc simpr subge0d bicomd caddc 2timesd breq2d ltsubaddd
    cz bitr4d anbi12d mpbid modqid syl21anc 3eqtr3d ) ACDZBCDZEBFGZHZBAIGZAJBKL
    ZFGZMZMZABNKLZOLZBPLZABOLZBPLZABPLZWBVRVTWBBPVRVSBAOVRBVMBUBDZVQVKVJWEVLBUA
    UCUDZUEUFUGVRVJNVCDVKVLWAWDQVJVKVLVQUHZVRUIVJVKVLVQUJZVJVKVLVQUKABNULUMVRWB
    CDZVKEWBIGZWBBFGZMZWCWBQVRVJVKWIWGWHABUNUOWHVRVQWLVMVQUPVRVNWJVPWKVRWJVNVRA
    BVRVJARDWGASTZVRVKBRDWHBSTZUQURVRVPABBUSLZFGWKVRVOWOAFVRBWFUTVAVRABBWMWNWNV
    BVDVEVFWBBVGVHVI $.

  $( 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 ) ) ) $=
    ( cn0 wcel cn c2 co clt wbr wa cq cc0 cle cz syl adantr eqcomd adantl eqtrd
    wceq cmul w3a cmo cmin cif wn simp1 nn0z zq 3ad2ant2 nn0ge0d simpr syl22anc
    nnq modqid iftrue simp2 nngt0d nnred nn0red lenltd simpl3 q2submod syl32anc
    biimpar iffalse wo nnzd wdc zdclt exmiddc syl2anc mpjaodan ) ACDZBEDZAFBUAG
    HIZUBZABHIZABUCGZVRAABUDGZUEZTVRUFZVQVRJZVSAWAWCAKDZBKDZLAMIZVRVSATVQWDVRVQ
    VNWDVNVOVPUGZVNANDZWDAUHZAUIOOZPVQWEVRVOVNWEVPBUNUJZPVQWFVRVQAWGUKPVQVRULAB
    UOUMVRAWATVQVRWAAVRAVTUPQRSVQWBJZVSVTWAWLWDWELBHIBAMIZVPVSVTTVQWDWBWJPVQWEW
    BWKPWLBVQVOWBVNVOVPUQZPURVQWMWBVQBAVQBWNUSVQAWGUTVAVEVNVOVPWBVBABVCVDWLWAVT
    WBWAVTTVQVRAVTVFRQSVQWHBNDZVRWBVGZVQVNWHWGWIOVQBWNVHWHWOJVRVIWPABVJVRVKOVLV
    M $.

  $( 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 ) ) ) $=
    ( cmo co cmin wcel cz wa caddc wceq cq clt wbr cle adantr adantl zq syl cr
    cfzo cn cc0 c2 elfzoelz cn0 zmodcl nn0zd zaddcld simprr nnq nngt0d elfzole1
    cmul nnred nn0red zred mpbid elfzolt2 ad2antrl modqlt syl3anc lt2addd nncnd
    lesubaddd 2timesd breqtrrd q2submod syl32anc modqadd2mod syl22anc eqtr3d
    expcom ) BCACDEZFEZCUAEGZAHGZCUBGZIZBVNJEZCFEZBAJECDEZKVPVSIZVTCDEZWAWBWCVT
    LGZCLGZUCCMNZCVTONZVTUDCUNEZMNWDWAKWCVTHGWEWCBVNVPBHGZVSBVOCUEZPZWCVNVSVNUF
    GVPACUGZQUHUIVTRSWCVRWFVPVQVRUJZCUKSZWCCWNULZWCVOBONZWHVPWQVSBVOCUMPWCCVNBW
    CCWNUOZVSVNTGVPVSVNWMUPQZVPBTGVSVPBWKUQPZVEURWCVTCCJEWIMWCBVNCCWTWSWRWRVPBC
    MNVSBVOCUSPWCALGZWFWGVNCMNVQXAVPVRARUTZWOWPACVAVBVCWCCWCCWNVDVFVGVTCVHVIWCX
    ABLGZWFWGWDWBKXBWCWJXCWLBRSWOWPABCVJVKVLVM $.

  $( 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 caddc wceq cq cle wbr clt adantl zq syl syl22anc
    cmin cfzo elfzoelz cn0 zmodcl adantr nn0zd qaddcl syl2anc simplr nnq nn0red
    zred elfzole1 nn0ge0d addge0d elfzolt2 nnred ltaddsubd mpbird modqid nngt0d
    ad2antrr modqadd2mod eqtr3d ex ) ADEZCFEZGZBHCACIJZUAJZUBJEZBVJKJZBAKJCIJZL
    VIVLGZVMCIJZVMVNVOVMMEZCMEZHVMNOVMCPOZVPVMLVOBMEZVJMEZVQVOBDEZVTVLWBVIBHVKU
    CQZBRSZVOVJDEWAVOVJVIVJUDEVLACUEUFZUGVJRSBVJUHUIVOVHVRVGVHVLUJZCUKSZVOBVJVO
    BWCUMZVOVJWEULZVLHBNOVIBHVKUNQVOVJWEUOUPVOVSBVKPOZVLWJVIBHVKUQQVOBVJCWHWIVO
    CWFURUSUTVMCVATVOAMEZVTVRHCPOVPVNLVGWKVHVLARVCWDWGVOCWFVBABCVDTVEVF $.

  $( The product of a rational number modulo a modulus and an integer equals
     the product of the rational number and the integer modulo the modulus.
     (Contributed by Jim Kingdon, 25-Oct-2021.) $)
  modqmulmod $p |- ( ( ( A e. QQ /\ B e. ZZ ) /\ ( M e. QQ /\ 0 < M ) )
                  -> ( ( ( A mod M ) x. B ) mod M ) = ( ( A x. B ) mod M ) ) $=
    ( cq wcel cz wa cc0 clt wbr cmo co simpll simprl simprr modqcld simplr wceq
    modqabs2 syl3anc modqmul1 ) ADEZBFEZGZCDEZHCIJZGZGZACKLZABCUHACUBUCUGMZUDUE
    UFNZUDUEUFOZPUJUBUCUGQUKULUHUBUEUFUICKLUIRUJUKULACSTUA $.

  $( The product of an integer and a rational number modulo a modulus equals
     the product of the integer and the rational number modulo the modulus.
     (Contributed by Jim Kingdon, 26-Oct-2021.) $)
  modqmulmodr $p |- ( ( ( A e. ZZ /\ B e. QQ ) /\ ( M e. QQ /\ 0 < M ) )
                  -> ( ( A x. ( B mod M ) ) mod M ) = ( ( A x. B ) mod M ) ) $=
    ( cz wcel cq wa cc0 clt wbr cmo co cmul simpll zcnd qcn syl mulcomd oveq1d
    cc simplr simprl simprr modqcld wceq modqmulmod ancom1s 3eqtrd ) ADEZBFEZGZ
    CFEZHCIJZGZGZABCKLZMLZCKLUPAMLZCKLZBAMLZCKLZABMLZCKLUOUQURCKUOAUPUOAUIUJUNN
    OZUOUPFEUPTEUOBCUIUJUNUAZUKULUMUBUKULUMUCUDUPPQRSUJUIUNUSVAUEBACUFUGUOUTVBC
    KUOBAUOUJBTEVDBPQVCRSUH $.

  $( The sum of a rational number and the product of a second rational number
     modulo a modulus and an integer equals the sum of the rational number and
     the product of the other rational number and the integer modulo the
     modulus.  (Contributed by Jim Kingdon, 26-Oct-2021.) $)
  modqaddmulmod $p |- ( ( ( A e. QQ /\ B e. QQ /\ C e. ZZ ) /\
      ( M e. QQ /\ 0 < M ) )
                       -> ( ( A + ( ( B mod M ) x. C ) ) mod M )
                          = ( ( A + ( B x. C ) ) mod M ) ) $=
    ( cq wcel wa cmo co cmul caddc cc qcn modqcld qmulcl syl2anc addcomd oveq1d
    syl wceq w3a cc0 clt wbr simpl1 simpl2 simprl simprr simpl3 3ad2ant3 adantr
    cz modqmulmod 3adantl1 modqabs2 syl3anc eqtr4d modqadd1 modqaddmod syl22anc
    zq eqtrd 3eqtrd ) AEFZBEFZCULFZUAZDEFZUBDUCUDZGZGZABDHIZCJIZKIZDHIVMAKIZDHI
    BCJIZDHIZAKIDHIZAVPKIZDHIZVKVNVODHVKAVMVKVDALFVDVEVFVJUEZAMSZVKVMEFZVMLFVKV
    LEFZCEFZWCVKBDVDVEVFVJUFZVGVHVIUGZVGVHVIUHZNZVKVFWEVDVEVFVJUICVAZSVLCOZPVMM
    SQRVKVMVQADVKWDWEWCWIVGWEVJVFVDWEVEWJUJUKZWKPVKVPDVKVEWEVPEFZWFWLBCOPZWGWHN
    WAWGWHVKVMDHIZVQVQDHIZVEVFVJWOVQTVDBCDUMUNVKWMVHVIWPVQTWNWGWHVPDUOUPUQURVKV
    RVPAKIZDHIZVTVKWMVDVHVIVRWRTWNWAWGWHVPADUSUTVKWQVSDHVKVPAVKWMVPLFWNVPMSWBQR
    VBVC $.

  $( Distribute multiplication over a modulo operation.  (Contributed by Jim
     Kingdon, 26-Oct-2021.) $)
  modqdi $p |- ( ( ( A e. QQ /\ 0 < A ) /\ B e. QQ /\ ( C e. QQ /\ 0 < C ) )
      -> ( A x. ( B mod C ) ) = ( ( A x. B ) mod ( A x. C ) ) ) $=
    ( cq wcel cc0 clt wbr wa co cfl cmul cmin cc qcn syl syl3anc qmulcl syl2anc
    oveq2d w3a cdiv cfv cmo simp1l simp2 simp3l cz simp3r gt0ne0d qdivcl flqcld
    wne zq subdid cr gt0ap0d simp1r divcanap5d fveq2d zcnd mulassd eqtr2d eqtrd
    qre wceq modqval mulgt0d 3eqtr4d ) ADEZFAGHZIZBDEZCDEZFCGHZIZUAZABCBCUBJZKU
    CZLJZMJZLJZABLJZACLJZWCWDUBJZKUCZLJZMJZABCUDJZLJWCWDUDJZVQWBWCAVTLJZMJWHVQA
    BVTVQVJANEVJVKVMVPUEZAOPZVQVMBNEVLVMVPUFZBOPZVQVTDEZVTNEVQVNVSDEZWPVLVMVNVO
    UGZVQVSUHEWQVQVRVQVMVNCFUMVRDEWNWRVQCVLVMVNVOUIZUJBCUKQULZVSUNPCVSRSVTOPUOV
    QWKWGWCMVQWGWDVSLJWKVQWFVSWDLVQWEVRKVQBCAWOVQVNCNEWRCOPZWMVQCVQVNCUPEWRCVEP
    ZWSUQVQAVQVJAUPEWLAVEPZVJVKVMVPURZUQUSUTTVQACVSWMXAVQVSWTVAVBVCTVDVQWIWAALV
    QVMVNVOWIWAVFWNWRWSBCVGQTVQWCDEZWDDEZFWDGHWJWHVFVQVJVMXEWLWNABRSVQVJVNXFWLW
    RACRSVQACXCXBXDWSVHWCWDVGQVI $.

  $( Distribute the modulo operation over a subtraction.  (Contributed by Jim
     Kingdon, 26-Oct-2021.) $)
  modqsubdir $p |- ( ( ( A e. QQ /\ B e. QQ ) /\ ( C e. QQ /\ 0 < C ) )
            -> ( ( B mod C ) <_ ( A mod C )
                 <-> ( ( A - B ) mod C ) = ( ( A mod C ) - ( B mod C ) ) ) ) $=
    ( cq wcel wa cc0 clt wbr cmo co cmin cle wceq cr syl adantr syl3anc cc qcn
    simpll simprl simprr modqcld qre simplr subge0d cdiv cfl cfv cmul cz qsubcl
    wne gt0ne0d qdivcl flqcld zsubcld modqcyc2 syl22anc zq qmulcl syl2anc sub4d
    subdid oveq2d modqval oveq12d 3eqtr4d oveq1d eqtr3d simpr resubcld subge02d
    zcnd modqge0 mpbid modqlt lelttrd modqid eqtrd breqtrd impbida bitr3d ) ADE
    ZBDEZFZCDEZGCHIZFZFZGACJKZBCJKZLKZMIZWMWLMIABLKZCJKZWNNZWKWLWMWKWLDEZWLOEWK
    ACWEWFWJUAZWGWHWIUBZWGWHWIUCZUDZWLUEPZWKWMDEZWMOEWKBCWEWFWJUFZXAXBUDZWMUEPZ
    UGWKWOWRWKWOFZWQWNCJKZWNWKWQXJNWOWKWPCACUHKZUIUJZBCUHKZUIUJZLKZUKKZLKZCJKZW
    QXJWKWPDEZXOULEWHWIXRWQNWGXSWJABUMQZWKXLXNWKXKWKWEWHCGUNZXKDEWTXAWKCXBUOZAC
    UPRUQZWKXMWKWFWHYAXMDEXFXAYBBCUPRUQZURXAXBWPCXOUSUTWKXQWNCJWKWPCXLUKKZCXNUK
    KZLKZLKAYELKZBYFLKZLKXQWNWKABYEYFWKWEASEWTATPWKWFBSEXFBTPWKYEDEZYESEWKWHXLD
    EZYJXAWKXLULEYKYCXLVAPCXLVBVCYETPWKYFDEZYFSEWKWHXNDEZYLXAWKXNULEYMYDXNVAPCX
    NVBVCYFTPVDWKXPYGWPLWKCXLXNWKWHCSEXACTPWKXLYCVOWKXNYDVOVEVFWKWLYHWMYILWKWEW
    HWIWLYHNWTXAXBACVGRWKWFWHWIWMYINXFXAXBBCVGRVHVIVJVKQXIWNDEZWHWOWNCHIZXJWNNW
    KYNWOWKWSXEYNXCXGWLWMUMVCQWKWHWOXAQWKWOVLWKYOWOWKWNWLCWKWLWMXDXHVMXDWKWHCOE
    XACUEPWKGWMMIZWNWLMIWKWFWHWIYPXFXAXBBCVPRWKWLWMXDXHVNVQWKWEWHWIWLCHIWTXAXBA
    CVRRVSQWNCVTUTWAWKWRFGWQWNMWKGWQMIZWRWKXSWHWIYQXTXAXBWPCVPRQWKWRVLWBWCWD $.

  $( A rational number equals the difference of the rational number and a
     modulus modulo the modulus.  (Contributed by Jim Kingdon, 26-Oct-2021.) $)
  modqeqmodmin $p |- ( ( A e. QQ /\ M e. QQ /\ 0 < M )
                     -> ( A mod M ) = ( ( A - M ) mod M ) ) $=
    ( cq wcel cc0 clt wbr w3a cmin cmo cle wceq modqid0 3adant1 modqge0 eqbrtrd
    co wb simp1 simp2 simp3 modqsubdir syl22anc eqcomd oveq2d cc modqcl qcn syl
    mpbid subid1d 3eqtr2rd ) ACDZBCDZEBFGZHZABIQBJQZABJQZBBJQZIQZUREIQURUPUSURK
    GZUQUTLZUPUSEURKUNUOUSELUMBMNZABOPUPUMUNUNUOVAVBRUMUNUOSUMUNUOTZVDUMUNUOUAA
    BBUBUCUJUPEUSURIUPUSEVCUDUEUPURUPURCDURUFDABUGURUHUIUKUL $.

  ${
    $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 syl syl2anr wi clt wb w3a adantr adantl com12
      cn cle wn wo cc0 cfzo csn cdif cv cmo c1 wrex eldifi elfzoelz wdc exmiddc
      cz zdcle zleloe cmin cn0 elfzo0 cc nn0cn 3ad2ant1 nncn 3ad2ant2 subadd23d
      simpl nnz znnsub syl2an biimp3a nn0nnaddcl eqeltrd simp2 cr nn0re sublt0d
      nn0z bicomd biimpa resubcl nnre jca ltaddnegr mpbid syl3anbrc exp31 sylbi
      elfzo1 3adant2 impcom oveq1 zcnd 3jca 3adant3 imp nppcan sylan9eqr oveq1d
      ex eqeq2d biimpi a1d addmodidr eqcomd rspcedvd wne eqneqall sylbid zltnle
      eldifsn jaoi nn0ge0 subge02 ancoms simp3 lelttr mpand sylibr zmodidfzoimp
      impancom npcan mpcom ) CBUAEZYEUBZUCZBUDDUEFZGZCYHBUFZUGGZHZCAUHZBIFZDUIF
      ZJZAUJDUEFZUKZYKCUPGZBUPGZYGYIYKCYHGZYSCYHYJULZCUDDUMZKZBUDDUMZYSYTHYEUNY
      GCBUQYEUOKLYEYLYRMZYFYLYEYRYLYECBNEZCBJZUCZYRYKYSYTYEUUIOYIUUDUUECBURLUUI
      YLYRUUGUUFUUHUUGYLYRUUGYLHZYPCCDIFZDUIFZJZACBUSFZDIFZYQYLUUGUUOYQGZYKYIUU
      GUUPMZYKUUAYIUUQMZUUBUUACUTGZDTGZCDNEZPZUURCDVAZUUSUVAUURUUTYIUUSUVAHZUUQ
      YIBUTGZUUTBDNEZPZUVDUUQMBDVAZUVGUVDUUGUUPUVGUVDHZUUGHZUUOTGZUUTUUODNEZUUP
      UVIUVKUUGUVIUUOCDBUSFZIFZTUVICBDUVDCVBGZUVGUUSUVOUVACVCQRUVGBVBGZUVDUVEUU
      TUVPUVFBVCZVDQUVGDVBGZUVDUUTUVEUVRUVFDVEZVFQVGUVDUUSUVMTGZUVNTGUVGUUSUVAV
      HUVEUUTUVFUVTUVEYTDUPGUVFUVTOUUTBVSZDVIBDVJVKVLCUVMVMLVNQUVIUUTUUGUVGUUTU
      VDUVEUUTUVFVOZQQUVJUUNUDNEZUVLUVIUUGUWCUVIUWCUUGUVICBUVDCVPGZUVGUUSUWDUVA
      CVQZQZRUVGBVPGZUVDUVEUUTUWGUVFBVQVDZQVRVTWAUVJUUNVPGZDVPGZHZUWCUVLOUVIUWK
      UUGUVIUWIUWJUVDUWDUWGUWIUVGUWFUWHCBWBZLUVGUWJUVDUUTUVEUWJUVFDWCVFZQWDQUUN
      DWEKWFDUUOWJWGWHWISWKWIKWLWLUUJYMUUOJZHZYOUULCUWOYNUUKDUIUWNUUJYNUUOBIFZU
      UKYMUUOBIWMUUJUVOUVPUVRPZUWPUUKJYLUWQUUGYIYKUWQYIUVGYKUWQMZUVHUVEUUTUWRUV
      FYKUVEUUTHZUWQYKUUAUWSUWQMUUBUUAUWSUWQUUAUWSHUVOUVPUVRUUAUVOUWSUUACUUCWNZ
      QUWSUVPUUAUVEUVPUUTUVQQRUWSUVRUUAUUTUVRUVEUVSRRWOXAKSWPWIWQRCBDWRKWSWTXBU
      UJUVBUUMYLUVBUUGYKYIUVBYKUUAYIUVBMUUBUUAUVBYIUUAUVBUVCXCXDKWLRUVBUULCCDXE
      XFKXGXAYLUUHYRYKUUHYRMZYIYKUUACBXHZHUXACYHBXLUXBUXAUUAUUHUXBYRYRCBXISRWIR
      SXMSXJSYFYLYRYFYLHZYPCCDUIFZJAUUNYQUXCUUNTGZUUTUUNDNEZPZUUNYQGYLYFUXGYLYF
      BCNEZUXGYLUXHYFYIYTYSUXHYFOYKUUEUUDBCXKVKVTYIYKUXHUXGMZYIUVGYKUXIMUVHYKUV
      GUXIYKUUAUVGUXIMZUUBUUAUVBUXJUVCUUSUVAUXJUUTUVDUVGUXHUXGUVDUVGHZUXHHUXEUU
      TUXFUXKUXHUXEUVGYTYSUXHUXEOUVDUVEUUTYTUVFUWAVDUUSYSUVACVSQBCVJLWAUXKUUTUX
      HUVGUUTUVDUWBRQUXKUXFUXHUVDUVGUXFUUSUVGUVAUXFUUSUVGHZUUNCUAEZUVAUXFUXLUDB
      UAEZUXMUVGUXNUUSUVEUUTUXNUVFBXNVDRUUSUWDUWGUXNUXMOUVGUWEUWHCBXOVKWFUXLUWI
      UWDUWJPZUXMUVAHUXFMUXLUWGUWDUWJPZUXOUXLUWGUWDUWJUVGUWGUUSUWHRUUSUWDUVGUWE
      QUVGUWJUUSUWMRWOUXPUWIUWDUWJUWGUWDUWIUWJUWDUWGUWIUWLXPWPUWGUWDUWJVOUWGUWD
      UWJXQWOKUUNCDXRKXSYBWQQWOWHWKWIKSWIWQXJWLDUUNWJXTUXCYMUUNJZHZYOUXDCUXRYNC
      DUIUXQUXCYNUUNBIFZCYMUUNBIWMYLUXSCJZYFYKUVOUVPUXTYIYKUUAUVOUUBUWTKYIBUUEW
      NCBYCLRWSWTXBUXCUXDCYLUXDCJZYFYKUYAYIYKUUAUYAUUBCDYAKRRXFXGXAXMYD $.
  $}

  $( 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 } ) ) $=
    ( cc0 co wcel c1 wa caddc clt wbr cmo cq cle wceq cz syl cn0 elfzo0 adantr
    cfzo csn cdif wn elfzoelz adantl zq w3a biimpi simp1d qaddcl syl2anc simp2d
    cn nn0zd nnq elfzo1 nnnn0d nn0addcld nn0ge0d simpr modqid syl22anc wne zcnd
    syl3anbrc 0cnd nn0cnd nnne0d addneintr2d addid2d neeqtrd sylanbrc cmin cneg
    eldifsn eqeltrd cmul cc nncnd mulm1d oveq2d addcld negsubd eqtrd oveq1d a1i
    neg1z nngt0d modqcyc qsubcl nnred nn0red lenltd mpbird subge0d zred lt2addd
    cr simp3d ltsubaddd 3eqtr3d nnzd zsubcld elnn0z subcld ltned subne0d eqcomd
    addsubd 3netr4d wo wdc zdclt exmiddc mpjaodan ) ADCUAEZFZBGCUAEFZHZBAIEZCJK
    ZYACLEZXQAUBUCZFYBUDZXTYBHZYCYAYDYFYAMFZCMFZDYANKZYBYCYAOXTYGYBXTBMFZAMFZYG
    XTBPFZYJXSYLXRBGCUEUFZBUGQXTAPFYKXTAXTARFZCUNFZACJKZXRYNYOYPUHZXSXRYQACSUIT
    ZUJZUOAUGQBAUKULZTXTYHYBXTYOYHXTYNYOYPYRUMZCUPQZTXTYIYBXTYAXTBAXTBXTBUNFZYO
    BCJKZXSUUCYOUUDUHZXRXSUUECBUQUIUFZUJZURYSUSZUTTXTYBVAZYACVBVCYFYAXQFZYAAVDZ
    YAYDFYFYARFZYOYBUUJXTUULYBUUHTXTYOYBUUATUUIYACSVFXTUUKYBXTYADAIEZAXTBDAXTBY
    MVEZXTVGZXTAYSVHZXTBUUGVIVJXTAUUPVKZVLTYAXQAVPVMVQXTYEHZYCYACVNEZYDUURYAGVO
    ZCVREZIEZCLEZUUSCLEZYCUUSUURUVBUUSCLUURUVBYACVOZIEZUUSUURUVAUVEYAIUURCXTCVS
    FYEXTCUUAVTZTWAWBXTUVFUUSOYEXTYACXTBAUUNUUPWCUVGWDTWEWFUURYGUUTPFZYHDCJKZUV
    CYCOXTYGYEYTTUVHUURWHWGXTYHYEUUBTZXTUVIYEXTCUUAWITYACUUTWJVCUURUUSMFZYHDUUS
    NKZUUSCJKZUVDUUSOXTUVKYEXTYGYHUVKYTUUBYACWKULTUVJUURUVLCYANKZUURUVNYEXTYEVA
    UURCYAXTCWSFYEXTCUUAWLZTZXTYAWSFYEXTYAUUHWMZTZWNWOUURYACUVRUVPWPWOZXTUVMYEX
    TUVMYACCIEJKXTBACCXTBYMWQZXTAYSWMUVOUVOXTUUCYOUUDUUFWTZXTYNYOYPYRWTWRXTYACC
    UVQUVOUVOXAWOTZUUSCVBVCXBUURUUSXQFZUUSAVDZUUSYDFUURUUSRFZYOUVMUWCUURUUSPFZU
    VLUWEXTUWFYEXTYACXTYAUUHUOZXTCUUAXCZXDTUVSUUSXEVMXTYOYEUUATUWBUUSCSVFXTUWDY
    EXTBCVNEZAIEUUMUUSAXTUWIDAXTBCUUNUVGXFUUOUUPXTBCUUNUVGXTBCUVTUWAXGXHVJXTBAC
    UUNUUPUVGXJXTUUMAUUQXIXKTUUSXQAVPVMVQXTYAPFZCPFZYBYEXLZUWGUWHUWJUWKHYBXMUWL
    YACXNYBXOQULXP $.

  $( 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 $.  $d S k $.
    $( Two nonnegative integers less than the modulus are equal iff the sums of
       these integer with another integer are equal modulo the modulus.
       (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 cq clt wbr cmin nn0cnd ad2antrr ad3antrrr
      c1 cle vk cfzo w3a elfzoelz 3ad2ant1 zq syl simp3 cn elfzo0 biimpi simp2d
      cn0 nnq nngt0d modqaddmod syl22anc 3ad2ant2 eqeq12d zmodcld nn0zd zaddcld
      eqcomd subeq0ad modqcld qaddcl syl2anc modqsubmodmod zcnd pnpcan2d oveq1d
      oveq1 eqtrd q0mod zmodidfzoimp oveq12d eqeq1d cdiv wb qsubcl syl3anc cmul
      modq0 cv wrex zsubcld zdiv wa cneg simpr oveq2d nncnd mul01d eqcom simp1d
      biimpd syl5bi sylbid an32s subfzo0 3adant3 simprd mulid1d 3brtr4d simpllr
      imp simplr zred crp nnrpd ltmul2d mpbird nnge1d lensymd pm2.21dd breqtrrd
      1red simpld cr nnzd adantr zmulcld nnred possumd cc adddid eqtr4d breqtrd
      1cnd peano2zd mulcomd zcn addcomd subnegd ad3antlr suble0d eqbrtrd nnnn0d
      0red sylbird nn0ge0d mulle0r w3o elz simprbi ad2antlr mpjao3dan rexlimdva
      ex syl5 impbid1 ) BEDUBFZGZCUULGZAHGZUCZBAIFZDJFZCAIFZDJFZKZBCKZUUPUVABDJ
      FZAIFZDJFZCDJFZAIFZDJFZKZUVBUUPUURUVEUUTUVHUUPUVEUURUUPBLGZALGZDLGZEDMNZU
      VEUURKUUPBHGZUVJUUMUUNUVNUUOBEDUDUEZBUFUGZUUPUUOUVKUUMUUNUUOUHZAUFUGZUUPD
      UIGZUVLUUPBUMGZUVSBDMNZUUMUUNUVTUVSUWAUCZUUOUUMUWBBDUJUKUEZULZDUNUGZUUPDU
      WDUOZBADUPUQVCUUPUVHUUTUUPCLGZUVKUVLUVMUVHUUTKUUPCHGZUWGUUNUUMUWHUUOCEDUD
      URZCUFUGZUVRUWEUWFCADUPUQVCUSUUPUVIUVEUVHOFZEKZUVBUUPUVEUVHUUPUVEUUPUVDDU
      UPUVCAUUPUVCUUPBDUVOUWDUTZVAUVQVBUWDUTPUUPUVHUUPUVGDUUPUVFAUUPUVFUUPCDUWI
      UWDUTZVAUVQVBUWDUTPVDUWLUWKDJFZEDJFZKZUUPUVBUWKEDJVLUUPUWQUVCUVFOFZDJFZEK
      ZUVBUUPUWOUWSUWPEUUPUWOUVDUVGOFZDJFZUWSUUPUVDLGZUVGLGZUVLUVMUWOUXBKUUPUVC
      LGUVKUXCUUPBDUVPUWEUWFVEUVRUVCAVFVGUUPUVFLGUVKUXDUUPCDUWJUWEUWFVEUVRUVFAV
      FVGUWEUWFUVDUVGDVHUQUUPUXAUWRDJUUPUVCUVFAUUPUVCUWMPUUPUVFUWNPUUPAUVQVIVJV
      KVMUUPUVLUVMUWPEKUWEUWFDVNVGUSUUPUWTBCOFZDJFZEKZUVBUUPUWSUXFEUUPUWRUXEDJU
      UPUVCBUVFCOUUMUUNUVCBKUUOBDVOUEUUNUUMUVFCKUUOCDVOURVPVKVQUUPUXGUXEDVRFHGZ
      UVBUUPUXELGZUVLUVMUXGUXHVSUUPUVJUWGUXIUVPUWJBCVTVGUWEUWFUXEDWCWAUUPUXHDUA
      WDZWBFZUXEKZUAHWEZUVBUUPUVSUXEHGUXMUXHVSUWDUUPBCUVOUWIWFUADUXEWGVGUUPUXLU
      VBUAHUUPUXJHGZWHZUXLUVBUXOUXLWHZUXJEKZUVBUXJUIGZUXJWIZUIGZUXOUXQUXLUVBUXO
      UXQWHZUXLUVBUYAUXLEUXEKZUVBUYAUXKEUXEUYAUXKDEWBFZEUYAUXJEDWBUXOUXQWJWKUUP
      UYCEKUXNUXQUUPDUUPDUWDWLZWMQVMVQUYBUXEEKZUYAUVBEUXEWNUYAUYEUVBUYABCUYABUU
      PUVTUXNUXQUUPUVTUVSUWAUWCWOQPUYACUUPCUMGZUXNUXQUUPUYFUVSCDMNZUUNUUMUYFUVS
      UYGUCZUUOUUNUYHCDUJUKURWOQPVDWPWQWRXFWSUXPUXRWHZUXJSMNZUVBUYIUYJUXKDSWBFZ
      MNUYIUXEDUXKUYKMUYIDWIZUXEMNZUXEDMNZUUPUYMUYNWHZUXNUXLUXRUUMUUNUYOUUOBCDW
      TXAZRXBUXOUXLUXRXGUUPUYKDKUXNUXLUXRUUPDUYDXCZRXDUYIUXJSDUYIUXJUUPUXNUXLUX
      RXEXHZUYIXQZUUPDXIGUXNUXLUXRUUPDUWDXJRXKXLUYISUXJUYSUYRUYIUXJUXPUXRWJXMXN
      XOUXPUXTWHZEDUXJSIFZWBFZMNUVBUYTEUXKDIFZVUBMUYTEVUCMNUYLUXKMNUYTUYLUXEUXK
      MUYTUYMUYNUUPUYOUXNUXLUXTUYPRXRUXOUXLUXTXGXPUYTUXKDUXOUXKXSGUXLUXTUXOUXKU
      XODUXJUUPDHGUXNUUPDUWDXTYAZUUPUXNWJZYBXHQUUPDXSGZUXNUXLUXTUUPDUWDYCRZYDXL
      UYTVUCUXKUYKIFZVUBUUPVUCVUHKUXNUXLUXTUUPDUYKUXKIUUPUYKDUYQVCWKRUYTDUXJSUU
      PDYEGZUXNUXLUXTUYDRUXOUXJYEGUXLUXTUXOUXJVUEVIQUYTYIYFYGYHUYTVUBEUXOVUBXSG
      UXLUXTUXOVUBUXODVUAVUDUXOUXJVUEYJZYBXHQUYTYSUYTVUBVUADWBFZETUXOVUBVUKKUXL
      UXTUXODVUAUUPVUIUXNUYDYAUXOVUAVUJVIYKQUYTVUAXSGZVUFVUAETNEDTNZVUKETNUXOVU
      LUXLUXTUXOVUAVUJXHQVUGUYTVUASUXSOFZETUXNVUAVUNKUUPUXLUXTUXNVUASUXJIFVUNUX
      NUXJSUXJYLZUXNYIZYMUXNSUXJVUPVUOYNYGYOUYTVUNETNSUXSTNUYTUXSUXPUXTWJZXMUYT
      SUXSUYTXQUYTUXSVUQYCYPXLYQUUPVUMUXNUXLUXTUUPDUUPDUWDYRUUARVUADUUBUQYQXNXO
      UXNUXQUXRUXTUUCZUUPUXLUXNUXJXSGVURUXJUUDUUEUUFUUGUUIUUHYTWRWRWRUUJYTWRUVB
      UUQUUSDJBCAIVLVKUUK $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Miscellaneous theorems about integers
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d A w y z $.  $d B w z $.  $d C v w x y z $.  $d G v w y z $.
    frec2uz.1 $e |- ( ph -> C e. ZZ ) $.
    frec2uz.2 $e |- G = frec ( ( x e. ZZ |-> ( x + 1 ) ) , C ) $.
    $( 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.  (Contributed by Jim Kingdon,
       16-May-2020.) $)
    frec2uz0d $p |- ( ph -> ( G ` (/) ) = C ) $=
      ( c0 cfv cz cv c1 caddc co cmpt cfrec fveq1i wcel wceq frec0g syl syl5eq
      ) AGDHGBIBJKLMNZCOZHZCGDUCFPACIQUDCRECUBISTUA $.

    ${
      $d ph w y z $.
      frec2uzzd.a $e |- ( ph -> A e. _om ) $.
      $( The value of ` G ` (see ~ frec2uz0d ) is an integer.  (Contributed by
         Jim Kingdon, 16-May-2020.) $)
      frec2uzzd $p |- ( ph -> ( G ` A ) e. ZZ ) $=
        ( vw vz com wcel cfv cz cv wi wceq eleq1d c1 caddc vy wa fveq2d imbi12d
        simpr c0 csuc fveq2 frec2uz0d eqeltrd cmpt cfrec cvv wal zex mptex fvex
        co vex ax-gen frecsuc mp3an1 sylan fveq1i 3eqtr4g oveq1 cbvmptv peano2z
        fveq2i fvmpt3 sylan9eq adantl ex expcom finds2 com12 vtocld mpd ) ACKLZ
        CEMZNLZHAIOZKLZWBEMZNLZPVSWAPICKHAWBCQZUBZWCVSWEWAWGWBCKAWFUEZRWGWDVTNW
        GWBCEWHUCRUDWCAWEWEUFEMZNLUAOZEMZNLZWJUGZEMZNLZAIUAWBUFQWDWINWBUFEUHRWB
        WJQWDWKNWBWJEUHRWBWMQWDWNNWBWMEUHRAWIDNABDEFGUIFUJAWJKLZWLWOPAWPUBZWLWO
        WQWLUBWNWKSTURZNWQWLWNWKBNBOZSTURZUKZMZWRWQWMXADULZMZWJXCMZXAMZWNXBADNL
        ZWPXDXFQZFJOZXAMUMLZJUNXGWPXHXJJXIXAUMUMBNWTUOUPJUSUQUTJDWJXANVAVBVCWME
        XCGVDWKXEXAWJEXCGVDVIVEJWKXISTURZWRNXANXIWKSTVFBJNWTXKWSXISTVFVGXIVHVJV
        KWLWRNLWQWKVHVLUJVMVNVOVPVQVR $.

      $( The value of ` G ` (see ~ frec2uz0d ) at a successor.  (Contributed by
         Jim Kingdon, 16-May-2020.) $)
      frec2uzsucd $p |- ( ph -> ( G ` suc A ) = ( ( G ` A ) + 1 ) ) $=
        ( vy vz cfv cz cv c1 caddc co wcel wceq cvv fveq1i csuc cfrec com mptex
        cmpt wal zex vex ax-gen frecsuc mp3an1 syl2anc fveq2i 3eqtr4g frec2uzzd
        fvex oveq1 cbvmptv peano2z fvmpt3 syl eqtrd ) ACUAZEKZCEKZBLBMZNOPZUEZK
        ZVENOPZAVCVHDUBZKZCVKKZVHKZVDVIADLQZCUCQZVLVNRZFHIMZVHKSQZIUFVOVPVQVSIV
        RVHSSBLVGUGUDIUHUPUIIDCVHLUJUKULVCEVKGTVEVMVHCEVKGTUMUNAVELQVIVJRABCDEF
        GHUOJVEJMZNOPZVJLVHLVTVENOUQBJLVGWAVFVTNOUQURVTUSUTVAVB $.

      $( The value ` G ` (see ~ frec2uz0d ) at an ordinal natural number is in
         the upper integers.  (Contributed by Jim Kingdon, 16-May-2020.) $)
      frec2uzuzd $p |- ( ph -> ( G ` A ) e. ( ZZ>= ` C ) ) $=
        ( vy vz com wcel cfv cv wi wceq wa eleq1d c0 fveq2 simpr fveq2d imbi12d
        cuz csuc frec2uz0d cz uzid syl eqeltrd c1 caddc co peano2uz frec2uzsucd
        adantl simpl syl5ibr ex finds2 com12 vtocld mpd ) ACKLZCEMZDUDMZLZHAINZ
        KLZVHEMZVFLZOVDVGOICKHAVHCPZQZVIVDVKVGVMVHCKAVLUAZRVMVJVEVFVMVHCEVNUBRU
        CVIAVKVKSEMZVFLJNZEMZVFLZVPUEZEMZVFLZAIJVHSPVJVOVFVHSETRVHVPPVJVQVFVHVP
        ETRVHVSPVJVTVFVHVSETRAVODVFABDEFGUFADUGLZDVFLFDUHUIUJVPKLZAVRWAOVRWAWCA
        QZVQUKULUMZVFLDVQUNWDVTWEVFWDBVPDEAWBWCFUPGWCAUQUORURUSUTVAVBVC $.

      frec2uzltd.b $e |- ( ph -> B e. _om ) $.
      $( Less-than relation for ` G ` (see ~ frec2uz0d ).  (Contributed by Jim
         Kingdon, 16-May-2020.) $)
      frec2uzltd $p |- ( ph -> ( A e. B -> ( G ` A ) < ( G ` B ) ) ) $=
        ( wcel cfv clt wbr wi c0 wceq fveq2 breq2d imbi12d vz vy com csuc eleq2
        cv imbi2d noel pm2.21i a1i wo wa id orim12d wb elsuc2g bicomd adantr c1
        caddc co cle cz adantl simpl frec2uzsucd cuz frec2uzuzd eluzelz zleltp1
        syl2an syl2anc frec2uzzd zleloe 3bitr2rd syl5ib ex a2d finds mpcom ) DU
        CKACDKZCFLZDFLZMNZOZJACUAUFZKZWBWFFLZMNZOZOACPKZWBPFLZMNZOZOACUBUFZKZWB
        WOFLZMNZOZOACWOUDZKZWBWTFLZMNZOZOAWEOUAUBDWFPQZWJWNAXEWGWKWIWMWFPCUEXEW
        HWLWBMWFPFRSTUGWFWOQZWJWSAXFWGWPWIWRWFWOCUEXFWHWQWBMWFWOFRSTUGWFWTQZWJX
        DAXGWGXAWIXCWFWTCUEXGWHXBWBMWFWTFRSTUGWFDQZWJWEAXHWGWAWIWDWFDCUEXHWHWCW
        BMWFDFRSTUGWNAWKWMCUHUIUJWOUCKZAWSXDXIAWSXDOWSWPCWOQZUKZWRWBWQQZUKZOXIA
        ULZXDWSWPWRXJXLWSUMXJXLOWSCWOFRUJUNXNXKXAXMXCXIXKXAUOAXIXAXKCWOUCUPUQUR
        XNXCWBWQUSUTVAZMNZWBWQVBNZXMXNXBXOWBMXNBWOEFAEVCKXIGVDZHXIAVEZVFSXNWBEV
        GLZKZWQXTKZXQXPUOZXNBCEFXRHACUCKXIIVDZVHXNBWOEFXRHXSVHYAWBVCKZWQVCKZYCY
        BEWBVIEWQVIWBWQVJVKVLXNYEYFXQXMUOXNBCEFXRHYDVMXNBWOEFXRHXSVMWBWQVNVLVOT
        VPVQVRVSVT $.

      $( The mapping ` G ` (see ~ frec2uz0d ) preserves order.  (Contributed by
         Jim Kingdon, 16-May-2020.) $)
      frec2uzlt2d $p |- ( ph -> ( A e. B <-> ( G ` A ) < ( G ` B ) ) ) $=
        ( wcel cfv clt wbr frec2uzltd wceq wa adantr zred ex w3o wi com syl2anc
        nntri3or ax-1 a1i fveq2 adantl breq2d biimpar cz frec2uzzd pm2.21dd imp
        ltnrd ltnsymd pm2.21d 3jaod mpd impbid ) ACDKZCFLZDFLZMNZABCDEFGHIJOAVB
        CDPZDCKZUAZVEVBUBZACUCKDUCKVHIJCDUEUDAVBVIVFVGVBVIUBAVBVEUFUGAVFVIAVFQZ
        VEVBVJVEQZVCVCMNZVBVJVLVEVJVCVDVCMVFVCVDPACDFUHUIUJUKVKVCVKVCVJVCULKZVE
        AVMVFABCEFGHIUMZRRSUPUNTTAVGVIAVGQZVEVBVOVDVCVOVDAVDULKVGABDEFGHJUMRSVO
        VCAVMVGVNRSAVGVDVCMNABDCEFGHJIOUOUQURTUSUTVA $.
    $}

    ${
      $d ph x y z $.
      $( Range of ` G ` (see ~ frec2uz0d ).  (Contributed by Jim Kingdon,
         17-May-2020.) $)
      frec2uzrand $p |- ( ph -> ran G = ( ZZ>= ` C ) ) $=
        ( vy vz cz wcel cfv cv com c1 caddc co cvv syl eleq1 c0 vw crn cuz wceq
        wrex wfn wb cmpt cfrec wal zex mptex fvex ax-gen frecfnom fneq1i sylibr
        vex fvelrnb simpl simpr frec2uzuzd syl5ibcom rexlimdva sylbid frec2uz0d
        mpan wa id peano1 fnfvelrn sylancl eqeltrrd wi eluzel2 csuc frec2uzsucd
        oveq1 sylan9eq peano2 syl2an adantr ex uzind4 impbid1 eqrdv ) ACIJZDUBZ
        CUCKZUDEWGGWHWIWGGLZWHJZWJWIJZWGWKHLZDKZWJUDZHMUEZWLWGDMUFZWKWPUGWGBIBL
        NOPZUHZCUIZMUFZWQWMWSKQJZHUJWGXAXBHWMWSQQBIWRUKULHURUMUNHCWSIUOVGMDWTFU
        PUQZHMWJDUSRZWGWOWLHMWGWMMJZVHZWNWIJWOWLXFBWMCDWGXEUTZFWGXEVAZVBWNWJWIS
        VCVDVEUALZWHJCWHJWKWJNOPZWHJZWKUAGCWJXICWHSXIWJWHSZXIXJWHSXLWGTDKZCWHWG
        BCDWGVIFVFWGWQTMJXMWHJXCVJMTDVKVLVMWLWGWKXKVNCWJVOWGWKWPXKXDWGWOXKHMXFW
        OXKXFWOVHWMVPZDKZXJWHXFWOXOWNNOPXJXFBWMCDXGFXHVQWNWJNOVRVSXFXOWHJZWOWGW
        QXNMJXPXEXCWMVTMXNDVKWAWBVMWCVDVERWDWEWFR $.

      $( ` G ` (see ~ frec2uz0d ) is a one-to-one onto mapping.  (Contributed
         by Jim Kingdon, 17-May-2020.) $)
      frec2uzf1od $p |- ( ph -> G : _om -1-1-onto-> ( ZZ>= ` C ) ) $=
        ( vy vz com cfv wceq cv wi cz cvv wcel sylanbrc wn clt adantr wf1o wral
        cuz wf1 crn wf wfn wss c1 caddc co cmpt cfrec wal zex mptex fvex ax-gen
        vex frecfnom sylancr fneq1i sylibr frec2uzrand eqimss syl df-f wa simpr
        w3a wbr frec2uzzd 3adant3 zred ltnrd mtbid simp2 simp3 frec2uzltd con3d
        breq2d mpd breq1d wb nntri3 3adant1 mpbir2and ex 3expb ralrimivva dff13
        mtod dff1o5 ) AICUCJZDUDZDUEZWNKZIWNDUAAIWNDUFZGLZDJZHLZDJZKZWSXAKZMZHI
        UBGIUBWOADIUGZWPWNUHZWRABNBLUIUJUKZULZCUMZIUGZXFAXAXIJOPZHUNCNPZXKXLHXA
        XIOOBNXHUOUPHUSUQUREHCXINUTVAIDXJFVBVCAWQXGABCDEFVDZWPWNVEVFIWNDVGQAXEG
        HIIAWSIPZXAIPZXEAXOXPVJZXCXDXQXCVHZXDWSXAPZRZXAWSPZRZXRWTXBSVKZRZXTXRWT
        WTSVKZYCXQYERXCXQWTXQWTAXOWTNPXPAXOVHBWSCDAXMXOETZFAXOVIVLVMVNVOTZXRWTX
        BWTSXQXCVIZWAVPXQYDXTMXCXQXSYCXQBWSXACDAXOXMXPYFVMZFAXOXPVQZAXOXPVRZVSV
        TTWBXRYAXBWTSVKZXRYEYLYGXRWTXBWTSYHWCVPXQYAYLMXCXQBXAWSCDYIFYKYJVSTWLXQ
        XDXTYBVHWDZXCXOXPYMAWSXAWEWFTWGWHWIWJGHIWNDWKQXNIWNDWMQ $.

      $( ` G ` (see ~ frec2uz0d ) is an isomorphism from natural ordinals to
         upper integers.  (Contributed by Jim Kingdon, 17-May-2020.) $)
      frec2uzisod $p |- ( ph -> G Isom _E , < ( _om , ( ZZ>= ` C ) ) ) $=
        ( vy vz com cuz cfv wf1o cv cep wbr clt wb wral wcel wa wiso ralrimivva
        frec2uzf1od cz adantr simprl simprr frec2uzlt2d syl5bb df-isom sylanbrc
        epel ) AICJKZDLGMZHMZNOZUNDKUODKPOZQZHIRGIRIUMNPDUAABCDEFUCAURGHIIUPUNU
        OSAUNISZUOISZTZTZUQGHULVBBUNUOCDACUDSVAEUEFAUSUTUFAUSUTUGUHUIUBGHIUMNPD
        UJUK $.
    $}

    ${
      $d w x y z F $.  $d A w y z $.  $d C v w x y z $.  $d G v w y z $.
      $d R v w z $.  $d S w x y z $.  $d ph v w x y z $.
      uzrdg.s $e |- ( ph -> S e. V ) $.
      uzrdg.a $e |- ( ph -> A e. S ) $.
      uzrdg.f $e |- ( ( ph /\ ( x e. ( ZZ>= ` C ) /\ y e. S ) ) ->
        ( x F y ) e. S ) $.
      uzrdg.2 $e |- R = frec ( ( x e. ( ZZ>= ` C ) , y e. S |->
        <. ( x + 1 ) , ( x F y ) >. ) , <. C , A >. ) $.

      ${
        $d D z $.
        $( The function ` R ` (used in the definition of the recursive
           definition generator on upper integers) yields ordered pairs of
           integers and elements of ` S ` .  (Contributed by Jim Kingdon,
           27-May-2020.) $)
        frecuzrdgrrn $p |- ( ( ph /\ D e. _om ) ->
            ( R ` D ) e. ( ( ZZ>= ` C ) X. S ) ) $=
          ( wcel cfv cvv vz com wa cuz cv c1 caddc co cop cmpt2 cfrec fveq1i cz
          cxp zex uzssz ssexi a1i adantr mpt2exga syl2anc vex fvexg alrimiv syl
          uzid opelxp sylanbrc c1st c2nd wceq 1st2nd2 fveq2 df-ov syl6eqr xp1st
          adantl xp2nd peano2uz wral ralrimivva ad2antrr wi oveq1 eleq1d rspc2v
          oveq2 mpd opeq12d opeq2d ovmpt2g syl3anc eqtrd eqeltrd simpr syl5eqel
          eqid freccl ) AFUBRZUCZFGSFBCEUDSZHBUEZUFUGUHZXBCUEZIUHZUIZUJZEDUIZUK
          ZSXAHUNZFGXIQULWTUAXHFXJXGWTUAUEZXGSZTRZUAWTXGTRZXKTRZXMWTXATRZHKRZXN
          XPWTXAUMUOEUPUQURAXQWSNUSBCXAHXFTKUTVAXOWTUAVBURXKXGTTVCVAVDAXHXJRZWS
          AEXARZDHRXRAEUMRXSLEVFVEOEDXAHVGVHUSWTXKXJRZUCZXLXKVISZUFUGUHZYBXKVJS
          ZIUHZUIZXJYAXLYBYDXGUHZYFXTXLYGVKZWTXTXKYBYDUIZVKZYHXKXAHVLYJXLYIXGSY
          GXKYIXGVMYBYDXGVNVOVEVQYAYBXARZYDHRZYFXJRZYGYFVKXTYKWTXKXAHVPVQZXTYLW
          TXKXAHVRVQZYAYCXARZYEHRZYMYAYKYPYNEYBVSVEYAXEHRZCHVTBXAVTZYQAYSWSXTAY
          RBCXAHPWAWBYAYKYLYSYQWCYNYOYRYQYBXDIUHZHRBCYBYDXAHXBYBVKZXEYTHXBYBXDI
          WDZWEXDYDVKZYTYEHXDYDYBIWGZWEWFVAWHYCYEXAHVGVHZBCYBYDXAHXFYFXGYCYTUIX
          JUUAXCYCXEYTXBYBUFUGWDUUBWIUUCYTYEYCUUDWJXGWQWKWLWMUUEWNAWSWOWRWP $.
      $}

      ${
        $d B w z $.
        uzrdg.b $e |- ( ph -> B e. _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 ` .
           This lemma shows that evaluating ` R ` at an element of ` _om `
           gives an ordered pair whose first element is the index (translated
           from ` _om ` to ` ( ZZ>= `` C ) ` ).  See comment in ~ frec2uz0d
           which describes ` G ` and the index translation.  (Contributed by
           Jim Kingdon, 24-May-2020.) $)
        frec2uzrdg $p |- ( ph -> ( R ` B ) =
            <. ( G ` B ) , ( 2nd ` ( R ` B ) ) >. ) $=
          ( wcel cfv vz vv vw com c2nd cop wceq cv fveq2 fveq2d opeq12d eqeq12d
          wi imbi2d c0 csuc cuz c1 caddc co cmpt2 cfrec fveq1i cz opexg syl2anc
          cvv frec0g syl syl5eq frec2uz0d uzid op2ndg eqtrd eqtr4d wa wal uzssz
          zex ssexi a1i adantr mpt2exga vex fvexg alrimiv simpr frecsuc syl3anc
          fveq2i 3eqtr4g df-ov frec2uzuzd frecuzrdgrrn peano2uz caovclg adantlr
          cxp xp2nd caovcld opelxp sylanbrc oveq1 oveq2 opeq2d cbvmpt2v ovmpt2g
          syl5eqr sylan9eqr frec2uzsucd frec2uzzd peano2zd expcom vtoclga mpcom
          ex finds2 ) EUDSAEGTZEJTZXRUETZUFZUGZRAUAUHZGTZYCJTZYDUETZUFZUGZUMAYB
          UMUAEUDYCEUGZYHYBAYIYDXRYGYAYCEGUIZYIYEXSYFXTYCEJUIYIYDXRUEYJUJUKULUN
          YHUOGTZUOJTZYKUETZUFZUGUBUHZGTZYOJTZYPUETZUFZUGZYOUPZGTZUUAJTZUUBUETZ
          UFZUGZAUAUBYCUOUGZYDYKYGYNYCUOGUIZUUGYEYLYFYMYCUOJUIUUGYDYKUEUUHUJUKU
          LYCYOUGZYDYPYGYSYCYOGUIZUUIYEYQYFYRYCYOJUIUUIYDYPUEUUJUJUKULYCUUAUGZY
          DUUBYGUUEYCUUAGUIZUUKYEUUCYFUUDYCUUAJUIUUKYDUUBUEUULUJUKULAYKFDUFZYNA
          YKUOBCFUQTZHBUHZURUSUTZUUOCUHZIUTZUFZVAZUUMVBZTZUUMUOGUVAQVCAUUMVGSZU
          VBUUMUGAFVDSZDHSZUVCLOFDVDHVEVFZUUMUUTVGVHVIVJZAYLFYMDABFJLMVKAYMUUMU
          ETZDAYKUUMUEUVGUJAFUUNSZUVEUVHDUGAUVDUVILFVLVIOFDUUNHVMVFVNUKVOAYOUDS
          ZYTUUFUMAUVJVPZYTUUFUVKYTVPZUUBYQURUSUTZYQYRIUTZUFZUUEUVLUUBYPUUTTZUV
          OUVKUUBUVPUGYTUVKUUAUVATZYOUVATZUUTTZUUBUVPUVKYCUUTTVGSZUAVQUVCUVJUVQ
          UVSUGUVKUVTUAUVKUUTVGSZYCVGSZUVTUVKUUNVGSZHKSZUWAUWCUVKUUNVDVSFVRVTWA
          AUWDUVJNWBBCUUNHUUSVGKWCVFUWBUVKUAWDWAYCUUTVGVGWEVFWFAUVCUVJUVFWBAUVJ
          WGZUAUUMYOUUTVGWHWIUUAGUVAQVCYPUVRUUTYOGUVAQVCWJWKWBYTUVKUVPYSUUTTZUV
          OYPYSUUTUIUVKUWFYQYRUUTUTZUVOYQYRUUTWLUVKYQUUNSZYRHSZUVOUUNHWRZSZUWGU
          VOUGUVKBYOFJAUVDUVJLWBZMUWEWMZUVKYPUWJSUWIABCDFYOGHIJKLMNOPQWNYPUUNHW
          SVIZUVKUVMUUNSZUVNHSZUWKUVKUWHUWOUWMFYQWOVIUVKUAUCYQYRUUNHHIAYCUUNSUC
          UHZHSVPYCUWQIUTHSUVJABCYCUWQUUNHHIPWPWQUWMUWNWTZUVMUVNUUNHXAXBUCUAYQY
          RUUNHUWQURUSUTZUWQYCIUTZUFZUVOUUTUVMYQYCIUTZUFUWJUWQYQUGUWSUVMUWTUXBU
          WQYQURUSXCUWQYQYCIXCUKYCYRUGUXBUVNUVMYCYRYQIXDXEBCUCUAUUNHUUSUXAUWSUW
          QUUQIUTZUFUUOUWQUGUUPUWSUURUXCUUOUWQURUSXCUUOUWQUUQIXCUKUUQYCUGUXCUWT
          UWSUUQYCUWQIXDXEXFXGWIXHXIVNZUVLUUCUVMUUDUVNUVKUUCUVMUGYTUVKBYOFJUWLM
          UWEXJWBUVLUUDUVOUETZUVNUVLUUBUVOUEUXDUJUVLUVMVDSZUWPUXEUVNUGUVKUXFYTU
          VKYQUVKBYOFJUWLMUWEXKXLWBUVKUWPYTUWRWBUVMUVNVDHVMVFVNUKVOXPXMXQXNXO
          $.
      $}

      $( The function ` R ` (used in the definition of the recursive definition
         generator on upper integers) is a function defined for all natural
         numbers.  (Contributed by Jim Kingdon, 26-May-2020.) $)
      frecuzrdgrom $p |- ( ph -> R Fn _om ) $=
        ( vz cv cvv wcel cuz cfv c1 caddc co cop cmpt2 cfrec com wfn wal cxp cz
        zex uzssz ssexi mpt2exga sylancr vex fvexg sylancl alrimiv syl sylanbrc
        uzid opelxp frecfnom syl2anc fneq1i sylibr ) ABCEUAUBZGBRZUCUDUEVLCRHUE
        UFZUGZEDUFZUHZUIUJZFUIUJAQRZVNUBSTZQUKVOVKGULZTZVQAVSQAVNSTZVRSTVSAVKST
        GJTWBVKUMUNEUOUPMBCVKGVMSJUQURQUSVRVNSSUTVAVBAEVKTZDGTWAAEUMTWCKEVEVCNE
        DVKGVFVDQVOVNVTVGVHUIFVPPVIVJ $.

      ${
        $d B x y $.
        frecuzrdglem.b $e |- ( ph -> B e. ( ZZ>= ` C ) ) $.
        $( A helper lemma for the value of a recursive definition generator on
           upper integers.  (Contributed by Jim Kingdon, 26-May-2020.) $)
        frecuzrdglem $p |- ( ph ->
            <. B , ( 2nd ` ( R ` ( `' G ` B ) ) ) >. e. ran R ) $=
          ( cfv com ccnv c2nd cop crn wf1o wcel frec2uzf1od f1ocnvdm frec2uzrdg
          cuz syl2anc f1ocnvfv2 opeq1d eqtrd wfn frecuzrdgrom fnfvelrn eqeltrrd
          wceq ) AEJUASZGSZEVAUBSZUCZGUDZAVAUTJSZVBUCVCABCDUTFGHIJKLMNOPQATFUJS
          ZJUEZEVFUFZUTTUFZABFJLMUGZRTVFEJUHUKZUIAVEEVBAVGVHVEEUSVJRTVFEJULUKUM
          UNAGTUOVIVAVDUFABCDFGHIJKLMNOPQUPVKTUTGUQUKUR $.
      $}

      ${
        $d v w z T $.
        frecuzrdgfn.3 $e |- ( ph -> T = ran R ) $.
        $( The recursive definition generator on upper integers is a function.
           See comment in ~ frec2uz0d for the description of ` G ` as the
           mapping from ` _om ` to ` ( ZZ>= `` C ) ` .  (Contributed by Jim
           Kingdon, 26-May-2020.) $)
        frecuzrdgfn $p |- ( ph -> T Fn ( ZZ>= ` C ) ) $=
          ( vz wcel vv vw wfun cdm cuz cfv wceq wfn wrel cv wbr wmo cvv cxp wss
          wral com crn eleq2d wb frecuzrdgrom fvelrnb syl bitrd wa frecuzrdgrrn
          wrex eleq1 syl5ibcom rexlimdva sylbid ssrdv xpss syl6ss df-rel sylibr
          cop wi wal wex ccnv c2nd wf1o frec2uzf1od f1ocnvdm sylan syldan xp2nd
          cz adantr co adantlr simpr frec2uzrdg eqeq1d vex opth2 simplbi syl6bi
          f1ocnvfv syld fveq2 fveq2d syl6 op2ndd adantl eqtr2d ex alrimiv eqeq2
          imp imbi2d albidv spcegv sylc mo2r dmxpss frecuzrdglem mpbird opeldmg
          dmss mpan eqssd pm5.32i df-br mobii 3imtr4i ralrimiva dffun7 sylanbrc
          nfv df-fn ) AHUCZHUDZEUEUFZUGHYOUHAHUIZUAUJZSUJZHUKZSULZUAYNUPYMAHUMU
          MUNZUOYPAHYOGUNZUUAASHUUBAYRHTZUBUJZFUFZYRUGZUBUQVGZYRUUBTZAUUCYRFURZ
          TZUUGAHUUIYRRUSAFUQUHZUUJUUGUTABCDEFGIJKLMNOPQVAZUBUQYRFVBVCVDAUUFUUH
          UBUQAUUDUQTZVEZUUEUUBTUUFUUHABCDEUUDFGIJKLMNOPQVFUUEYRUUBVHVIVJVKVLZY
          OGVMVNHVOVPAYTUAYNAYQYOTZVEZYQYRVQZHTZSULZAYQYNTZVEYTUUQUUSYRUUDUGZVR
          ZSVSZUBVTZUUTUUQYQJWAUFZFUFZWBUFZGTZUUSYRUVHUGZVRZSVSZUVEUUQUVGUUBTZU
          VIAUUPUVFUQTZUVMAUQYOJWCZUUPUVNABEJLMWDZUQYOYQJWEWFABCDEUVFFGIJKLMNOP
          QVFWGUVGYOGWHVCZAUVLUUPAUVKSAUUSUUEUURUGZUBUQVGZUVJAUUSUURUUITZUVSAHU
          UIUURRUSAUUKUVTUVSUTUULUBUQUURFVBVCVDAUVRUVJUBUQUUNUVRUVJUUNUVRVEUVHU
          UEWBUFZYRUUNUVRUVHUWAUGZUUNUVRUVFUUDUGZUWBUUNUVRUUDJUFZYQUGZUWCUUNUVR
          UWDUWAVQZUURUGZUWEUUNUUEUWFUURUUNBCDUUDEFGIJKAEWITZUUMLWJMAGKTZUUMNWJ
          ADGTZUUMOWJABUJZYOTCUJZGTVEZUWKUWLIWKGTZUUMPWLQAUUMWMWNWOUWGUWEUWAYRU
          GZUWDUWAYQYRUAWPZSWPZWQWRWSAUVOUUMUWEUWCVRUVPUQYOUUDYQJWTWFXAUWCUVGUU
          EWBUVFUUDFXBXCXDXKUVRUWOUUNYQYRUUEUWPUWQXEXFXGXHVJVKXIWJUVDUVLUBUVHGU
          UDUVHUGZUVCUVKSUWRUVBUVJUUSUUDUVHYRXJXLXMXNXOUUSSUBUUSUBYKXPVCAUVAUUP
          AYNYOYQAYNYOAYNUUBUDZYOAHUUBUOYNUWSUOUUOHUUBYAVCYOGXQVNAUAYOYNAUUPUVA
          UUQUVIYQUVHVQZHTZUVAUVQUUQUXAUWTUUITZUUQBCDYQEFGIJKAUWHUUPLWJMAUWIUUP
          NWJAUWJUUPOWJAUWMUWNUUPPWLQAUUPWMXRAUXAUXBUTUUPAHUUIUWTRUSWJXSYQUMTUV
          IUXAUVAVRUWPYQUVHHUMGXTYBXOXHVLYCZUSYDYSUUSSYQYRHYEYFYGYHUASHYIYJUXCH
          YOYLYJ $.

        $d B w x y z $.
        $( Closure law for the recursive definition generator on upper
           integers.  See comment in ~ frec2uz0d for the description of ` G `
           as the mapping from ` _om ` to ` ( ZZ>= `` C ) ` .  (Contributed by
           Jim Kingdon, 31-May-2020.) $)
        frecuzrdgcl $p |- ( ( ph /\ B e. ( ZZ>= ` C ) ) ->
            ( T ` B ) e. S ) $=
          ( wcel cuz cfv wa ccnv c2nd cop wceq crn cz adantr cv co frecuzrdglem
          adantlr simpr eleqtrrd wi wfn wfun frecuzrdgfn fnfun funopfv 3syl mpd
          cxp com wf1o frec2uzf1od f1ocnvdm sylan frecuzrdgrrn syldan xp2nd syl
          eqeltrd ) AEFUAUBZTZUCZEIUBZEKUDUBZGUBZUEUBZHVREWBUFZITZVSWBUGZVRWCGU
          HZIVRBCDEFGHJKLAFUITVQMUJNAHLTVQOUJADHTVQPUJABUKZVPTCUKZHTUCWGWHJULHT
          VQQUNRAVQUOUMAIWFUGVQSUJUPAWDWEUQZVQAIVPURIUSWIABCDFGHIJKLMNOPQRSUTVP
          IVAEWBIVBVCUJVDVRWAVPHVETZWBHTAVQVTVFTZWJAVFVPKVGVQWKABFKMNVHVFVPEKVI
          VJABCDFVTGHJKLMNOPQRVKVLWAVPHVMVNVO $.

        $( Initial value of a recursive definition generator on upper integers.
           See comment in ~ frec2uz0d for the description of ` G ` as the
           mapping from ` _om ` to ` ( ZZ>= `` C ) ` .  (Contributed by Jim
           Kingdon, 27-May-2020.) $)
        frecuzrdg0 $p |- ( ph -> ( T ` C ) = A ) $=
          ( wcel c0 wfun cop cfv wceq cuz wfn frecuzrdgfn fnfun syl cv c1 caddc
          crn co cmpt2 cfrec fveq1i cz opexg syl2anc frec0g syl5eq frecuzrdgrom
          cvv com peano1 fnfvelrn sylancl eqeltrrd eleqtrrd funopfv sylc ) AHUA
          ZEDUBZHSEHUCDUDAHEUEUCZUFVMABCDEFGHIJKLMNOPQRUGVOHUHUIAVNFUMZHATFUCZV
          NVPAVQTBCVOGBUJZUKULUNVRCUJIUNUBUOZVNUPZUCZVNTFVTQUQAVNVDSZWAVNUDAEUR
          SDGSWBLOEDURGUSUTVNVSVDVAUIVBAFVEUFTVESVQVPSABCDEFGIJKLMNOPQVCVFVETFV
          GVHVIRVJEDHVKVL $.

        $( Successor value of a recursive definition generator on upper
           integers.  See comment in ~ frec2uz0d for the description of ` G `
           as the mapping from ` _om ` to ` ( ZZ>= `` C ) ` .  (Contributed by
           Jim Kingdon, 28-May-2020.) $)
        frecuzrdgsuc $p |- ( ( ph /\ B e. ( ZZ>= ` C ) ) ->
            ( T ` ( B + 1 ) ) = ( B F ( T ` B ) ) ) $=
          ( wcel vz vw cuz cfv wa c1 caddc co ccnv csuc c2nd cop wceq cz adantr
          crn cv adantlr peano2uz adantl frecuzrdglem eleqtrrd wfun frecuzrdgfn
          wfn fnfun syl funopfv mpd wf1o frec2uzf1od f1ocnvdm sylan frec2uzsucd
          wi com f1ocnvfv2 oveq1d eqtrd peano2 f1ocnvfv syldan fveq2d cmpt2 cvv
          cfrec wal cxp zex uzssz ssexi mpt2exga vex fvexg mpan2 alrimiv opelxp
          mpan sylanbrc frecsuc syl3anc fveq1i 3eqtr4g frec2uzrdg df-ov syl6eqr
          3syl fveq2i frec2uzuzd frecuzrdgrrn mpdan xp2nd eqeltrd caovclg opexg
          caovcld syl2anc oveq1 opeq12d oveq2 opeq2d 3eqtrd op2ndg simpr eqcomd
          cbvmpt2v ovmpt2g oveq12d ) AEFUCUDZTZUEZEUFUGUHZIUDZEKUIZUDZUJZGUDZUK
          UDZYOKUDZYOGUDZUKUDZJUHZEEIUDZJUHYKYMYLYNUDZGUDZUKUDZYRYKYLUUFULZITZY
          MUUFUMZYKUUGGUPZIYKBCDYLFGHJKLAFUNTZYJMUOZNAHLTZYJOUOZADHTZYJPUOZABUQ
          ZYITCUQZHTUEUUQUURJUHZHTYJQURZRYJYLYITAFEUSUTZVAAIUUJUMYJSUOZVBAUUHUU
          IVOZYJAIVCZUVCAIYIVEUVDABCDFGHIJKLMNOPQRSVDYIIVFVGZYLUUFIVHVGUOVIYKUU
          EYQUKYKUUDYPGYKYPKUDZYLUMZUUDYPUMZYKUVFYSUFUGUHZYLYKBYOFKUULNAVPYIKVJ
          ZYJYOVPTZABFKMNVKZVPYIEKVLVMZVNYKYSEUFUGAUVJYJYSEUMUVLVPYIEKVQVMZVRZV
          SAYJYPVPTZUVGUVHVOZYKUVKUVPUVMYOVTVGAUVJUVPUVQUVLVPYIYPYLKWAVMWBVIWCW
          CVSYKYRUVIUUBULZUKUDZUUBYKYQUVRUKYKYQYTBCYIHUUQUFUGUHZUUSULZWDZUDZYSU
          UAUWBUHZUVRYKYPUWBFDULZWFZUDZYOUWFUDZUWBUDZYQUWCYKUAUQZUWBUDWETZUAWGU
          WEUNHWHZTZUVKUWGUWIUMYKUWKUAYKUUMUWBWETZUWKUUNYIWETUUMUWNYIUNWIFWJWKB
          CYIHUWAWELWLWRUWNUWJWETUWKUAWMUWJUWBWEWEWNWOXGWPAUWMYJAUUKUUOUWMMPFDU
          NHWQWSUOUVMUAUWEYOUWBUWLWTXAYPGUWFRXBYTUWHUWBYOGUWFRXBXHXCYKUWCYSUUAU
          LZUWBUDUWDYKYTUWOUWBYKBCDYOFGHJKLUULNUUNUUPUUTRUVMXDWCYSUUAUWBXEXFYKY
          SYITUUAHTZUVRWETZUWDUVRUMYKBYOFKUULNUVMXIZYKYTYIHWHTZUWPYKUVKUWSUVMYK
          BCDFYOGHJKLUULNUUNUUPUUTRXJXKYTYIHXLVGZYKUVIYITZUUBHTZUWQYKUVIYLYIUVO
          UVAXMZYKUAUBYSUUAYIHHJYKBCUWJUBUQZYIHHJUUTXNUWRUWTXPZUVIUUBYIHXOXQUAU
          BYSUUAYIHUWJUFUGUHZUWJUXDJUHZULZUVRUWBUVIYSUXDJUHZULWEUWJYSUMUXFUVIUX
          GUXIUWJYSUFUGXRUWJYSUXDJXRXSUXDUUAUMUXIUUBUVIUXDUUAYSJXTYABCUAUBYIHUW
          AUXHUXFUWJUURJUHZULUUQUWJUMUVTUXFUUSUXJUUQUWJUFUGXRUUQUWJUURJXRXSUURU
          XDUMUXJUXGUXFUURUXDUWJJXTYAYFYGXAYBWCYKUXAUXBUVSUUBUMUXCUXEUVIUUBYIHY
          CXQVSYKYSEUUAUUCJUVNYKUUCUUAYKEUUAULZITZUUCUUAUMZYKUXKUUJIYKBCDEFGHJK
          LUULNUUNUUPUUTRAYJYDVAUVBVBAUXLUXMVOZYJAUVDUXNUVEEUUAIVHVGUOVIYEYHYB
          $.
      $}
    $}
  $}

  ${
    $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 cuz cfv cen cv c1 caddc co cmpt cfrec wf1o wbr id eqid
      frec2uzf1od omex f1oen syl syl6breqr ensymd ) AEFZGBUGGAHIZBJUGGUHDEDKLMN
      OAPZQGUHJRUGDAUIUGSUITUAGUHUIUBUCUDCUEUF $.
  $}

  ${
    $d m n G $.  $d n N $.  $d x z $.
    frecfzennn.1 $e |- G = frec ( ( x e. ZZ |-> ( x + 1 ) ) , 0 ) $.
    $( The cardinality of a finite set of sequential integers.  (See
       ~ frec2uz0d for a description of the hypothesis.)  (Contributed by Jim
       Kingdon, 18-May-2020.) $)
    frecfzennn $p |- ( N e. NN0 -> ( 1 ... N ) ~~ ( `' G ` N ) ) $=
      ( vz c1 cv cfz co cfv cen wbr cc0 wceq c0 com wcel cn0 cvv cz vn vm caddc
      ccnv oveq2 fveq2 breq12d 0ex enref fz10 cuz wf1o wa wtru frec2uzf1od trud
      0zd peano1 frec2uz0d f1ocnvfv mp2 3brtr4i csn cun cin simpr peano2nn0 wfn
      pm3.2i cmpt cfrec wal zex mptex vex ax-gen 0z frecfnom mp2an fneq1i mpbir
      fvex omex fnex cnvex en2sn sylancl adantr fzp1disj a1i word f1ocnvdm mpan
      wn nn0uz eleq2s nnord ordirr 3syl disjsn sylibr unen syl22anc cmin fveq2i
      1z 1m1e0 eqtr4i eleq2i biimpi fzsuc2 sylancr peano2 syl jctil frec2uzsucd
      csuc id f1ocnvfv2 oveq1d eqtrd sylc df-suc syl6eq 3brtr4d ex nn0ind ) FUA
      GZHIZYHBUDZJZKLFMHIZMYJJZKLFUBGZHIZYNYJJZKLZFYNFUCIZHIZYRYJJZKLZFCHIZCYJJ
      ZKLUAUBCYHMNYIYLYKYMKYHMFHUEYHMYJUFUGYHYNNYIYOYKYPKYHYNFHUEYHYNYJUFUGYHYR
      NYIYSYKYTKYHYRFHUEYHYRYJUFUGYHCNYIUUBYKUUCKYHCFHUEYHCYJUFUGOOYLYMKOUHUIUJ
      PMUKJZBULZOPQZUMOBJMNZYMONUUEUUFUUEUNAMBUNUQZDUOUPZURVIUUGUNAMBUUHDUSUPPU
      UDOMBUTVAVBYNRQZYQUUAUUJYQUMZYOYRVCZVDZYPYPVCZVDZYSYTKUUKYQUULUUNKLZYOUUL
      VEONZYPUUNVEONZUUMUUOKLUUJYQVFUUJUUPYQUUJYRRQYPSQUUPYNVGYNYJSSBBPVHZPSQBS
      QUUSATAGFUCIZVJZMVKZPVHZEGZUVAJSQZEVLMTQUVCUVEEUVDUVASSATUUTVMVNEVOWBVPVQ
      EMUVATVRVSPBUVBDVTWAWCPSBWDVSWEUBVOWBYRYPRSWFWGWHUUQUUKFYNWIWJUUKYPYPQWNZ
      UURUUJUVFYQUUJYPPQZYPWKUVFUVGYNUUDRUUEYNUUDQZUVGUUIPUUDYNBWLWMWOWPZYPWQYP
      WRWSWHYPYPWTXAYOYPUULUUNXBXCUUJYSUUMNZYQUUJFTQYNFFXDIZUKJZQZUVJXFUUJUVMRU
      VLYNRUUDUVLWOUVKMUKXGXEXHXIXJFYNXKXLWHUUKYTYPXQZUUOUUJYTUVNNZYQUUJUUEUVNP
      QZUMUVNBJZYRNUVOUUJUVPUUEUUJUVGUVPUVIYPXMXNUUIXOUUJUVQYPBJZFUCIZYRUUJUVGU
      VQUVSNUVIUVGAYPMBUVGUQDUVGXRXPXNUUJUVRYNFUCUUJUUEUVHUVRYNNUUIUUJUVHRUUDYN
      WOXIXJPUUDYNBXSXLXTYAPUUDUVNYRBUTYBWHYPYCYDYEYFYG $.

    $( The cardinality of a finite set of sequential integers with arbitrary
       endpoints.  (Contributed by Jim Kingdon, 18-May-2020.) $)
    frecfzen2 $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 peano2uz uznn0sub frecfzennn
      cn0 3syl entr ) DCUAFZGZCDHIZJDJKIZCLIZHIZMNVJVIBUBFZMNZVGVKMNVFVGCJCLIZK
      IZDVMKIZHIZVJMVFCOGZDOGZVMOGZVGVPMNCDUCZCDUDZVFJOGVQVSUEVTJCUFUGVMCDUHUIV
      FVNJVOVIHVFCPGZJPGZVNJQVFCVTUJRCJUKUMVFVIVOVFVRVQVIVOQZWAVTVRDPGZWBWDVQDS
      CSWEWCWBWDRDJCULUNUOTUPUQURVFVHVEGVIVBGVLCDUSCVHUTABVIEVAVCVGVJVKVDT $.

    $( ` G ` maps ` _om ` one-to-one onto ` NN0 ` .  (Contributed by Jim
       Kingdon, 19-May-2020.) $)
    frechashgf1o $p |- G : _om -1-1-onto-> NN0 $=
      ( com cn0 wf1o cc0 cuz cfv wtru 0zd frec2uzf1od trud wceq wb nn0uz f1oeq3
      ax-mp mpbir ) DEBFZDGHIZBFZUBJAGBJKCLMEUANTUBOPEUADBQRS $.
  $}

  ${
    $d C x $.  $d ph x $.
    frec2uzled.1 $e |- ( ph -> C e. ZZ ) $.
    frec2uzled.2 $e |- G = frec ( ( x e. ZZ |-> ( x + 1 ) ) , C ) $.
    frec2uzled.a $e |- ( ph -> A e. _om ) $.
    frec2uzled.b $e |- ( ph -> B e. _om ) $.
    $( The mapping ` G ` (see ~ frec2uz0d ) preserves order.  (Contributed by
       Jim Kingdon, 24-Feb-2022.) $)
    frec2uzled $p |- ( ph -> ( A C_ B <-> ( G ` A ) <_ ( G ` B ) ) ) $=
      ( wcel wceq wo cfv wbr com wb syl2anc cz frec2uzzd clt wss cle wf1o f1of1
      frec2uzlt2d cuz wf1 frec2uzf1od syl f1fveq syl12anc bicomd orbi12d zleloe
      nnsseleq 3bitr4d ) ACDKZCDLZMZCFNZDFNZUAOZVAVBLZMZCDUBZVAVBUCOZAURVCUSVDA
      BCDEFGHIJUFAVDUSAPEUGNZFUHZCPKZDPKZVDUSQAPVHFUDVIABEFGHUIPVHFUEUJIJPVHCDF
      UKULUMUNAVJVKVFUTQIJCDUPRAVASKVBSKVGVEQABCEFGHITABDEFGHJTVAVBUORUQ $.
  $}

  $( A finite interval of integers is finite.  (Contributed by Jim Kingdon,
     19-May-2020.) $)
  fzfig $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( M ... N ) e. Fin ) $=
    ( vx cz wcel wa cle wbr cfz co cfn wn cuz cfv c1 caddc com cn0 syl c0 cfrec
    eluz cmin cv cmpt cc0 ccnv cen wf1o frechashgf1o peano2uz uznn0sub f1ocnvdm
    eqid sylancr nnfi frecfzen2 enfii syl2anc syl6bir wceq clt wb zltnle ancoms
    fzn bitr3d 0fin eleq1 mpbiri syl6bi wdc wo zdcle df-dc sylib mpjaod ) ADEZB
    DEZFZABGHZABIJZKEZWALZVTWABAMNZEZWCABUBWFBOPJZAUCJZCDCUDOPJUEUFUAZUGNZKEZWB
    WJUHHWCWFWJQEZWKWFQRWIUIWHREZWLCWIWIUNZUJWFWGWEEWMABUKAWGULSQRWHWIUMUOWJUPS
    CWIABWNUQWBWJURUSUTVTWDWBTVAZWCVTBAVBHZWDWOVSVRWPWDVCBAVDVEABVFVGWOWCTKEVHW
    BTKVIVJVKVTWAVLWAWDVMABVNWAVOVPVQ $.

  ${
    fzfigd.m $e |- ( ph -> M e. ZZ ) $.
    fzfigd.n $e |- ( ph -> N e. ZZ ) $.
    $( Deduction form of ~ fzfig .  (Contributed by Jim Kingdon,
       21-May-2020.) $)
    fzfigd $p |- ( ph -> ( M ... N ) e. Fin ) $=
      ( cz wcel cfz co cfn fzfig syl2anc ) ABFGCFGBCHIJGDEBCKL $.
  $}

  $( Half-open integer sets are finite.  (Contributed by Jim Kingdon,
     21-May-2020.) $)
  fzofig $p |- ( ( M e. ZZ /\ N e. ZZ ) -> ( M ..^ N ) e. Fin ) $=
    ( cz wcel wa cfzo co cmin cfz cfn wceq fzoval adantl peano2zm fzfig eqeltrd
    c1 sylan2 ) ACDZBCDZEABFGZABQHGZIGZJTUAUCKSABLMTSUBCDUCJDBNAUBORP $.

  ${
    $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 cz cv c1 caddc cmpt cc0 cfrec wf1o cen wbr nn0ex
      co omex eqid frechashgf1o f1oen2g mp3an nn0ennn entr2i ) BCDBEFCEFBCAGAHI
      JRKLMZNBCOPSQAUFUFTUABCUFEEUBUCUDUE $.
  $}

  $( ` NN ` is countable.  (Contributed by Thierry Arnoux, 29-Dec-2016.) $)
  nnct $p |- NN ~<_ _om $=
    ( cn com cen wbr cdom nnenom endom ax-mp ) ABCDABEDFABGH $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Strong induction over upper sets of integers
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d ch x $.  $d M k w x y $.  $d N w x $.  $d ph k w 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 ) $=
      ( wcel cfz co wral c1 wceq oveq2 raleqdv cz cmin vw vk cuz cfv caddc wsbc
      cv csn c0 ral0 clt wbr zre ltm1d wb peano2zm mpdan mpbid mpbiri uzid rgen
      fzn wi nfv nfsbc1v nfim oveq1 oveq2d sbceq1a imbi12d mpisyl ralsns mpbird
      rspc mpd fzsn cun simpr cbvralv sylib eluzelz adantr zcnd pncand peano2uz
      wa 1cnd sylbird peano2zd syl ralun syl2anc fzsuc uzind4 eluzfz2 rspcdva
      ex ) GFUCUDZKACDFGLMZGIADFUAUGZLMZNADFFLMZNZADFUBUGZLMZNZADFXDOUEMZLMZNZA
      DWSNUAUBFGWTFPADXAXBWTFFLQRWTXDPADXAXEWTXDFLQRWTXGPADXAXHWTXGFLQRWTGPADXA
      WSWTGFLQRFSKZXCADFUHZNZXJXLADFUFZXJBEFFOTMZLMZNZXMXJXPBEUINBEUJXJBEXOUIXJ
      XNFUKULZXOUIPZXJFFUMUNXJXNSKXQXRUOFUPFXNVBUQURRUSXJFWRKBEFDUGZOTMZLMZNZAV
      CZDWRNZXPXMVCZFUTYCDWRJVAZYCYEDFWRXPXMDXPDVDADFVEVFXSFPZYBXPAXMYGBEYAXOYG
      XTXNFLXSFOTVGVHRADFVIVJVNVKVOADFSVLVMXJADXBXKFVPRVMXDWRKZXFXIYHXFWFZXIADX
      EXGUHZVQZNZYIXFADYJNZYLYHXFVRZYIYMADXGUFZYIBEXENZYOYIXFYPYNABDEXEHVSVTYIY
      PBEFXGOTMZLMZNZYOYIBEYRXEYIYQXDFLYIXDOYIXDYHXDSKXFFXDWAZWBWCYIWGWDVHRYIXG
      WRKZYDYSYOVCZYHUUAXFFXDWEWBYFYCUUBDXGWRYSYODYSDVDADXGVEVFXSXGPZYBYSAYOUUC
      BEYAYRUUCXTYQFLXSXGOTVGVHRADXGVIVJVNVKWHVOYIXGSKZYMYOUOYHUUDXFYHXDYTWIWBA
      DXGSVLWJVMADXEYJWKWLYHXIYLUOXFYHADXHYKFXDWMRWBVMWQWNFGWOWP $.
  $}

  ${
    $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 $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The infinite sequence builder "seq"
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c seq $.
  $( Extend class notation with recursive sequence builder. $)
  cseq $a class seq M ( .+ , F , S ) $.

  ${
    $d .+ x y $.  $d F x y $.  $d M x y $.  $d S 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 ~ iseq1 and ~ iseqp1 .
       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 , QQ ) ` with values 1, 3/2, 7/4, 15/8,.., so
       that ` ( seq 1 ( + , F , QQ ) `` 1 ) = 1 ` ,
       ` ( seq 1 ( + , F , QQ ) `` 2 ) = ` 3/2, etc.  In other words,
       ` seq M ( + , F , QQ ) ` transforms a sequence ` F ` into an infinite
       series.

       Internally, the ` frec ` 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 ` frec ` is exactly the sequence we want, and we just
       extract the range and throw away the domain.

       (Contributed by Jim Kingdon, 29-May-2020.) $)
    df-iseq $a |- seq M ( .+ , F , S ) = ran frec (
       ( x e. ( ZZ>= ` M ) , y e. S |->
         <. ( x + 1 ) , ( y .+ ( F ` ( x + 1 ) ) ) >. ) ,
       <. M , ( F ` M ) >. ) $.
  $}

  ${
    $d .+ x y $.  $d F x y $.  $d M x y $.  $d S x y $.
    $( Existence of the sequence builder operation.  (Contributed by Jim
       Kingdon, 20-Aug-2021.) $)
    iseqex $p |- seq M ( .+ , F , S ) e. _V $=
      ( vx vy cseq cuz cfv cv c1 caddc cop cmpt2 cfrec crn cvv df-iseq frecex
      co rnex eqeltri ) ABCDGEFDHIBEJKLTZFJUCCIATMNZDDCIMZOZPQEFABCDRUFUEUDSUAU
      B $.
  $}

  ${
    $d x y F $.  $d x y .+ $.  $d x y G $.  $d x y M $.  $d x y N $.
    $d x y Q $.  $d x y S $.  $d x y T $.
    $( Equality theorem for the sequence builder operation.  (Contributed by
       Jim Kingdon, 30-May-2020.) $)
    iseqeq1 $p |- ( M = N -> seq M ( .+ , F , S ) = seq N ( .+ , F , S ) ) $=
      ( vx vy wceq cuz cfv cv co cop cmpt2 cfrec crn cseq fveq2 syl df-iseq c1
      caddc opeq12d freceq2 eqid mpt2eq12 sylancl freceq1 eqtrd rneqd 3eqtr4g
      id ) DEHZFGDIJZBFKUAUBLZGKUOCJALMZNZDDCJZMZOZPFGEIJZBUPNZEECJZMZOZPABCDQA
      BCEQUMUTVEUMUTUQVDOZVEUMUSVDHUTVFHUMDEURVCUMULDECRUCUSVDUQUDSUMUQVBHZVFVE
      HUMUNVAHBBHVGDEIRBUEFGUNBVABUPUFUGVDUQVBUHSUIUJFGABCDTFGABCETUK $.

    $( Equality theorem for the sequence builder operation.  (Contributed by
       Jim Kingdon, 30-May-2020.) $)
    iseqeq2 $p |- ( .+ = Q -> seq M ( .+ , F , S ) = seq M ( Q , F , S ) ) $=
      ( vx vy wceq cuz cfv cv c1 co cop cmpt2 cfrec crn cseq wcel df-iseq caddc
      w3a simp1 oveqd opeq2d mpt2eq3dva freceq1 syl rneqd 3eqtr4g ) ABHZFGEIJZC
      FKZLUAMZGKZUNDJZAMZNZOZEEDJNZPZQFGULCUNUOUPBMZNZOZUTPZQACDERBCDERUKVAVEUK
      USVDHVAVEHUKFGULCURVCUKUMULSZUOCSZUBZUQVBUNVHABUOUPUKVFVGUCUDUEUFUTUSVDUG
      UHUIFGACDETFGBCDETUJ $.

    $( Equality theorem for the sequence builder operation.  (Contributed by
       Jim Kingdon, 30-May-2020.) $)
    iseqeq3 $p |- ( F = G -> seq M ( .+ , F , S ) = seq M ( .+ , G , S ) ) $=
      ( vx vy wceq cuz cfv cv co cop cmpt2 cfrec crn cseq wcel opeq2d df-iseq
      c1 caddc w3a simp1 fveq1d oveq2d mpt2eq3dva fveq1 freceq1 freceq2 syl2anc
      sylan9eq rneqd 3eqtr4g ) CDHZFGEIJZBFKZUAUBLZGKZURCJZALZMZNZEECJZMZOZPFGU
      PBURUSURDJZALZMZNZEEDJZMZOZPABCEQABDEQUOVFVMUOVCVJHZVEVLHZVFVMHUOFGUPBVBV
      IUOUQUPRZUSBRZUCZVAVHURVRUTVGUSAVRURCDUOVPVQUDUEUFSUGUOVDVKEECDUHSVNVOVFV
      JVEOVMVEVCVJUIVEVLVJUJULUKUMFGABCETFGABDETUN $.

    $( Equality theorem for the sequence builder operation.  (Contributed by
       Jim Kingdon, 30-May-2020.) $)
    iseqeq4 $p |- ( S = T -> seq M ( .+ , F , S ) = seq M ( .+ , F , T ) ) $=
      ( vx vy wceq cuz cfv cv c1 caddc co cop cmpt2 cfrec crn cseq df-iseq eqid
      mpt2eq12 mpan freceq1 syl rneqd 3eqtr4g ) BCHZFGEIJZBFKLMNZGKUJDJANOZPZEE
      DJOZQZRFGUICUKPZUMQZRABDESACDESUHUNUPUHULUOHZUNUPHUIUIHUHUQUIUAFGUIBUICUK
      UBUCUMULUOUDUEUFFGABDETFGACDETUG $.
  $}

  ${
    $d x y z $.  $d y z F $.  $d y z .+ $.  $d y z M $.  $d y z S $.
    nfiseq.1 $e |- F/_ x M $.
    nfiseq.2 $e |- F/_ x .+ $.
    nfiseq.3 $e |- F/_ x F $.
    nfiseq.4 $e |- F/_ x S $.
    $( Hypothesis builder for the sequence builder operation.  (Contributed by
       Jim Kingdon, 30-May-2020.) $)
    nfiseq $p |- F/_ x seq M ( .+ , F , S ) $=
      ( vy vz cseq cuz cfv cv co cop nfcv nffv nfop c1 caddc cmpt2 df-iseq nfov
      cfrec crn nfmpt2 nffrec nfrn nfcxfr ) ABCDELJKEMNZCJOUAUBPZKOZUMDNZBPZQZU
      CZEEDNZQZUFZUGJKBCDEUDAVAAUTURJKAULCUQAEMAMRFSIAUMUPAUMRZAUNUOBAUNRGAUMDH
      VBSUETUHAEUSFAEDHFSTUIUJUK $.
  $}

  ${
    $d F w x y z $.  $d .+ w x y z $.  $d S w x y z $.  $d w x y z ph $.
    $d M w x z $.
    iseqovex.f $e |- ( ( ph /\ x e. ( ZZ>= ` M ) ) -> ( F ` x ) e. S ) $.
    iseqovex.pl $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) -> ( x .+ y ) e. S ) $.
    $( Closure of a function used in proving sequence builder theorems.  This
       can be thought of as a lemma for the small number of sequence builder
       theorems which need it.  (Contributed by Jim Kingdon, 31-May-2020.) $)
    iseqovex $p |- ( ( ph /\ ( x e. ( ZZ>= ` M ) /\ y e. S ) ) -> ( x
        ( z e. ( ZZ>= ` M ) , w e. S |-> ( w .+ ( F ` ( z + 1 ) ) ) )
        y ) e. S ) $=
      ( cv cfv wcel wa c1 caddc co weq simprr cmpt2 eqidd simprl oveq1d oveq12d
      cuz fveq2d caovclg adantlr wral peano2uz syl ralrimiva fveq2 eleq1d sylib
      cbvralv adantr wceq rspcv sylc caovcld ovmpt2d eqeltrd ) ABLZIUFMZNZCLZGN
      ZOZOZVEVHDEVFGELZDLZPQRZHMZFRZUAZRVHVEPQRZHMZFRZGVKDEVEVHVFGVPVTVQGVKVQUB
      VKDBSZECSZOOZVLVHVOVSFVKWAWBTWCVNVRHWCVMVEPQVKWAWBUCUDUGUEAVGVIUCZAVGVITZ
      VKDEVHVSGGGFAVMGNVLGNOVMVLFRGNVJABCVMVLGGGFKUHUIWEVKVRVFNZVMHMZGNZDVFUJZV
      SGNZVKVGWFWDIVEUKULAWIVJAVEHMZGNZBVFUJWIAWLBVFJUMWLWHBDVFBDSWKWGGVEVMHUNU
      OUQUPURWHWJDVRVFVMVRUSWGVSGVMVRHUNUOUTVAVBZVCWMVD $.
  $}

  ${
    $d F a b w x y z $.  $d .+ a b w x y z $.  $d M a b w x y z $.
    $d S a b w x y z $.  $d a b x y ph $.
    iseqval.1 $e |- R = frec (
        ( x e. ( ZZ>= ` M ) , y e. S |-> <. ( x + 1 ) ,
          ( x ( z e. ( ZZ>= ` M ) , w e. S |->
            ( w .+ ( F ` ( z + 1 ) ) ) ) y ) >. ) ,
          <. M , ( F ` M ) >. ) $.
    iseqval.f $e |- ( ( ph /\ x e. ( ZZ>= ` M ) ) -> ( F ` x ) e. S ) $.
    iseqval.pl $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) -> ( x .+ y ) e. S ) $.
    $( Value of the sequence builder function.  (Contributed by Jim Kingdon,
       30-May-2020.) $)
    iseqval $p |- ( ph -> seq M ( .+ , F , S ) = ran R ) $=
      ( cfv cv c1 caddc co wceq wcel va crn cuz cop cmpt2 cfrec cseq w3a simprl
      vb wa simprr caovclg adantlr wral ralrimiva fveq2 eleq1d cbvralv sylib wi
      adantr peano2uz rspcv syl ad2antrl mpd caovcld fveq2d oveq2d eqid ovmpt2g
      oveq1 syl3anc 3impb opeq2d mpt2eq3dva freceq1 syl5eq df-iseq syl6reqr
      rneqd ) AGUBBCJUCNZHBOZPQRZCOZWEINZFRZUDZUEZJJINUDZUFZUBFHIJUGAGWLAGBCWCH
      WEWDWFDEWCHEOZDOZPQRZINZFRZUEZRZUDZUEZWKUFZWLKAXAWJSXBWLSABCWCHWTWIAWDWCT
      ZWFHTZUHWSWHWEAXCXDWSWHSZAXCXDUKZUKZXCXDWHHTXEAXCXDUIAXCXDULZXGUAUJWFWGHH
      HFAUAOZHTUJOZHTUKXIXJFRHTXFABCXIXJHHHFMUMUNXHXGWFINZHTZCWCUOZWGHTZAXMXFAW
      DINZHTZBWCUOXMAXPBWCLUPXPXLBCWCWDWFSXOXKHWDWFIUQURUSUTVBXCXMXNVAZAXDXCWEW
      CTXQJWDVCXLXNCWEWCWFWESXKWGHWFWEIUQURVDVEVFVGVHDEWDWFWCHWQWHWRWMWGFRHWNWD
      SZWPWGWMFXRWOWEIWNWDPQVMVIVJWMWFWGFVMWRVKVLVNVOVPVQWKXAWJVRVEVSWBBCFHIJVT
      WA $.
  $}

  ${
    $d w x y z F $.  $d w x y z .+ $.  $d w x y z M $.  $d x y z w S $.
    $d x y z w ph $.
    iseqfn.m $e |- ( ph -> M e. ZZ ) $.
    iseqfn.ex $e |- ( ph -> S e. V ) $.
    iseqfn.f $e |- ( ( ph /\ x e. ( ZZ>= ` M ) ) -> ( F ` x ) e. S ) $.
    iseqfn.pl $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) -> ( x .+ y ) e. S ) $.
    $( The sequence builder function is a function.  (Contributed by Jim
       Kingdon, 30-May-2020.) $)
    iseqfn $p |- ( ph -> seq M ( .+ , F , S ) Fn ( ZZ>= ` M ) ) $=
      ( vz vw cfv cv c1 caddc co wcel cuz cmpt2 cop cseq cz cmpt eqid wral uzid
      cfrec ralrimiva wceq fveq2 eleq1d rspcv sylc iseqovex iseqval frecuzrdgfn
      syl ) ABCGFOZGBCGUAOZEBPZQRSZVCCPMNVBENPMPQRSFODSUBZSUCUBGVAUCUJZEDEFGUDV
      EBUEVDUFGUJZHIVGUGJAGVBTZVCFOZETZBVBUHVAETZAGUETVHIGUIUTAVJBVBKUKVJVKBGVB
      VCGULVIVAEVCGFUMUNUOUPABCMNDEFGKLUQVFUGZABCMNDVFEFGVLKLURUS $.

    $( Value of the sequence builder function at its initial value.
       (Contributed by Jim Kingdon, 31-May-2020.) $)
    iseq1 $p |- ( ph -> ( seq M ( .+ , F , S ) ` M ) = ( F ` M ) ) $=
      ( vz vw cfv cv c1 caddc co wcel cuz cmpt2 cop cseq cz cmpt eqid wral uzid
      cfrec ralrimiva wceq fveq2 eleq1d rspcv sylc iseqovex iseqval frecuzrdg0
      syl ) ABCGFOZGBCGUAOZEBPZQRSZVCCPMNVBENPMPQRSFODSUBZSUCUBGVAUCUJZEDEFGUDV
      EBUEVDUFGUJZHIVGUGJAGVBTZVCFOZETZBVBUHVAETZAGUETVHIGUIUTAVJBVBKUKVJVKBGVB
      VCGULVIVAEVCGFUMUNUOUPABCMNDEFGKLUQVFUGZABCMNDVFEFGVLKLURUS $.
  $}

  ${
    $d .+ w x y z $.  $d F w x y z $.  $d M w x y z $.  $d N x y $.
    $d S w x y z $.  $d ph w x y z $.
    iseqcl.1 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    iseqcl.ex $e |- ( ph -> S e. V ) $.
    iseqcl.2 $e |- ( ( ph /\ x e. ( ZZ>= ` M ) ) -> ( F ` x ) e. S ) $.
    iseqcl.3 $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) -> ( x .+ y ) e. S ) $.
    $( Closure properties of the recursive sequence builder.  (Contributed by
       Jim Kingdon, 1-Jun-2020.) $)
    iseqcl $p |- ( ph -> ( seq M ( .+ , F , S ) ` N ) e. S ) $=
      ( vz vw cfv wcel cv c1 co cuz cseq caddc cmpt2 cop cfrec cmpt eluzel2 syl
      cz eqid wral uzid ralrimiva wceq fveq2 eleq1d rspcv sylc iseqovex iseqval
      frecuzrdgcl mpdan ) AHGUAPZQZHDEFGUBZPEQJABCGFPZHGBCVDEBRZSUCTZVHCRNOVDEO
      RNRSUCTFPDTUDZTUEUDGVGUEUFZEVFVJBUJVIUGGUFZIAVEGUJQZJGHUHUIZVLUKKAGVDQZVH
      FPZEQZBVDULVGEQZAVMVOVNGUMUIAVQBVDLUNVQVRBGVDVHGUOVPVGEVHGFUPUQURUSABCNOD
      EFGLMUTVKUKZABCNODVKEFGVSLMVAVBVC $.
  $}

  ${
    $d k x y .+ $.  $d k x y F $.  $d k x y M $.  $d k x y ph $.  $d k x y S $.
    $d x Z $.
    iseqf.1 $e |- Z = ( ZZ>= ` M ) $.
    iseqf.ex $e |- ( ph -> S e. V ) $.
    iseqf.2 $e |- ( ph -> M e. ZZ ) $.
    iseqf.3 $e |- ( ( ph /\ x e. Z ) -> ( F ` x ) e. S ) $.
    iseqf.4 $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) -> ( x .+ y ) e. S ) $.
    $( Range of the recursive sequence builder.  (Contributed by Jim Kingdon,
       23-Jul-2021.) $)
    iseqf $p |- ( ph -> seq M ( .+ , F , S ) : Z --> S ) $=
      ( vk cfv wf cv wcel wa cuz cseq wral eleq2i sylan2br iseqfn simpr adantlr
      wfn adantr co iseqcl ralrimiva ffnfv sylanbrc feq2i sylibr ) AGUAPZEDEFGU
      BZQZIEUSQAUSURUIORZUSPESZOURUCUTABCDEFGHLKBRZURSZAVCISVCFPESZIURVCJUDMUEZ
      NUFAVBOURAVAURSZTBCDEFGVAHAVGUGAEHSVGKUJAVDVEVGVFUHAVCESCRZESTVCVHDUKESVG
      NUHULUMOUREUSUNUOIUREUSJUPUQ $.
  $}

  ${
    $d w x y z F $.  $d w x y z .+ $.  $d w x y z M $.  $d w x y z N $.
    $d x y z w S $.  $d x y z w ph $.
    iseqp1.m $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    iseqp1.ex $e |- ( ph -> S e. V ) $.
    iseqp1.f $e |- ( ( ph /\ x e. ( ZZ>= ` M ) ) -> ( F ` x ) e. S ) $.
    iseqp1.pl $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) -> ( x .+ y ) e. S ) $.
    $( Value of the sequence builder function at a successor.  (Contributed by
       Jim Kingdon, 31-May-2020.) $)
    iseqp1 $p |- ( ph ->
        ( seq M ( .+ , F , S ) ` ( N + 1 ) ) =
          ( ( seq M ( .+ , F , S ) ` N ) .+ ( F ` ( N + 1 ) ) ) ) $=
      ( vz vw c1 co cfv wcel wceq caddc cseq cuz cv cmpt2 cfrec cz cmpt eluzel2
      cop syl eqid wral uzid ralrimiva fveq2 eleq1d rspcv sylc iseqovex iseqval
      frecuzrdgsuc mpdan iseqcl peano2uz caovcld fveq2d oveq2d ovmpt2g syl3anc
      oveq1 eqtrd ) AHPUAQZDEFGUBZRZHHVNRZNOGUCRZEOUDZNUDZPUAQZFRZDQZUEZQZVPVMF
      RZDQZAHVQSZVOWDTJABCGFRZHGBCVQEBUDZPUAQZWICUDWCQUJUEGWHUJUFZEVNWCBUGWJUHG
      UFZIAWGGUGSZJGHUIUKZWLULKAGVQSZWIFRZESZBVQUMZWHESZAWMWOWNGUNUKAWQBVQLUOZW
      QWSBGVQWIGTWPWHEWIGFUPUQURUSABCNODEFGLMUTWKULZABCNODWKEFGXALMVAVBVCAWGVPE
      SWFESWDWFTJABCDEFGHIJKLMVDZABCVPWEEEEDMXBAVMVQSZWRWEESZAWGXCJGHVEUKWTWQXD
      BVMVQWIVMTWPWEEWIVMFUPUQURUSVFNOHVPVQEWBWFWCVRWEDQEVSHTZWAWEVRDXEVTVMFVSH
      PUAVKVGVHVRVPWEDVKWCULVIVJVL $.
  $}

  ${
    $d .+ k n w x y $.  $d F k n w x y $.  $d M k n w x y $.  $d S k n w x y $.
    $d T k n w x y $.  $d ph k n w x y $.
    iseqss.m $e |- ( ph -> M e. ZZ ) $.
    iseqss.t $e |- ( ph -> T e. V ) $.
    iseqss.ss $e |- ( ph -> S C_ T ) $.
    iseqss.f $e |- ( ( ph /\ x e. ( ZZ>= ` M ) ) -> ( F ` x ) e. S ) $.
    iseqss.pl $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) -> ( x .+ y ) e. S ) $.
    iseqss.plt $e |- ( ( ph /\ ( x e. T /\ y e. T ) ) -> ( x .+ y ) e. T ) $.
    $( Specifying a larger universe for ` seq ` .  As long as ` F ` and ` .+ `
       are closed over ` S ` , then any set which contains ` S ` can be used as
       the last argument to ` seq ` .  This theorem does not allow ` T ` to be
       a proper class, however.  It also currently requires that ` .+ ` be
       closed over ` T ` (as well as ` S ` ).  (Contributed by Jim Kingdon,
       18-Aug-2021.) $)
    iseqss $p |- ( ph ->
        seq M ( .+ , F , S ) = seq M ( .+ , F , T ) ) $=
      ( cfv wcel wi wceq fveq2 vn vw vk cuz cvv ssexd iseqfn cv wa sseld adantr
      cseq mpd c1 caddc co eqeq12d imbi2d iseq1 eqtr4d a1i oveq1 adantlr iseqp1
      cz simpr syl5ibr expcom a2d uzind4 impcom eqfnfvd ) AUAHUDPZDEGHULZDFGHUL
      ZABCDEGHUEJAEFIKLUFZMNUGABCDFGHIJKABUHZVMQZUIVQGPZEQZVSFQZMAVTWARVRAEFVSL
      UJUKUMZOUGUAUHZVMQAWCVNPZWCVOPZSZAUBUHZVNPZWGVOPZSZRAHVNPZHVOPZSZRZAUCUHZ
      VNPZWOVOPZSZRAWOUNUOUPZVNPZWSVOPZSZRAWFRUBUCHWCWGHSZWJWMAXCWHWKWIWLWGHVNT
      WGHVOTUQURWGWOSZWJWRAXDWHWPWIWQWGWOVNTWGWOVOTUQURWGWSSZWJXBAXEWHWTWIXAWGW
      SVNTWGWSVOTUQURWGWCSZWJWFAXFWHWDWIWEWGWCVNTWGWCVOTUQURWNHVEQAWKHGPWLABCDE
      GHUEJVPMNUSABCDFGHIJKWBOUSUTVAWOVMQZAWRXBAXGWRXBRWRXBAXGUIZWPWSGPZDUPZWQX
      IDUPZSWPWQXIDVBXHWTXJXAXKXHBCDEGHWOUEAXGVFZAEUEQXGVPUKAVRVTXGMVCAVQEQCUHZ
      EQUIVQXMDUPZEQXGNVCVDXHBCDFGHWOIXLAFIQXGKUKAVRWAXGWBVCAVQFQXMFQUIXNFQXGOV
      CVDUQVGVHVIVJVKVL $.
  $}

  ${
    $d .+ x y $.  $d F x y $.  $d M x y $.  $d N x y $.  $d S x y $.
    $d ph x y $.
    iseqm1.m $e |- ( ph -> M e. ZZ ) $.
    iseqm1.n $e |- ( ph -> N e. ( ZZ>= ` ( M + 1 ) ) ) $.
    iseqm1.ex $e |- ( ph -> S e. V ) $.
    iseqm1.f $e |- ( ( ph /\ x e. ( ZZ>= ` M ) ) -> ( F ` x ) e. S ) $.
    iseqm1.pl $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) -> ( x .+ y ) e. S ) $.
    $( Value of the sequence builder function at a successor.  (Contributed by
       Mario Carneiro, 24-Jun-2013.) $)
    iseqm1 $p |- ( ph -> ( seq M ( .+ , F , S ) ` N ) =
          ( ( seq M ( .+ , F , S ) ` ( N - 1 ) ) .+ ( F ` N ) ) ) $=
      ( c1 co caddc cfv wcel cuz cmin cseq cz eluzp1m1 syl2anc wceq cc eluzelcn
      iseqp1 ax-1cn npcan sylancl syl fveq2d oveq2d 3eqtr3d ) AHOUAPZOQPZDEFGUB
      ZRUQUSRZURFRZDPHUSRUTHFRZDPABCDEFGUQIAGUCSHGOQPZTRSZUQGTRSJKGHUDUELMNUIAU
      RHUSAVDURHUFZKVDHUGSOUGSVEVCHUHUJHOUKULUMZUNAVAVBUTDAURHFVFUNUOUP $.
  $}

  ${
    $d k x y z w F $.  $d k x y z w G $.  $d k x y z w K $.  $d k x y z w N $.
    $d k x y z w ph $.  $d k x y z w M $.  $d k x y z w .+ $.
    $d k x y z w S $.
    iseqfveq2.1 $e |- ( ph -> K e. ( ZZ>= ` M ) ) $.
    iseqfveq2.2 $e |- ( ph -> ( seq M ( .+ , F , S ) ` K ) = ( G ` K ) ) $.
    iseqfveq2.s $e |- ( ph -> S e. V ) $.
    iseqfveq2.f $e |- ( ( ph /\ x e. ( ZZ>= ` M ) ) -> ( F ` x ) e. S ) $.
    iseqfveq2.g $e |- ( ( ph /\ x e. ( ZZ>= ` K ) ) -> ( G ` x ) e. S ) $.
    iseqfveq2.pl $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) ->
      ( x .+ y ) e. S ) $.
    ${
      iseqfveq2.3 $e |- ( ph -> N e. ( ZZ>= ` K ) ) $.
      iseqfveq2.4 $e |- ( ( ph /\ k e. ( ( K + 1 ) ... N ) ) ->
                         ( F ` k ) = ( G ` k ) ) $.
      $( Equality of sequences.  (Contributed by Jim Kingdon, 3-Jun-2020.) $)
      iseqfveq2 $p |- ( ph ->
          ( seq M ( .+ , F , S ) ` N ) = ( seq K ( .+ , G , S ) ` N ) ) $=
        ( vz vw cfz co wcel cseq cfv cuz eluzfz2 syl wi cv c1 caddc eleq1 fveq2
        eqeq12d imbi12d imbi2d cz eluzelz iseq1 eqtr4d a1d a1i peano2fzr adantl
        wceq wa expr imim1d oveq1 simprl adantr syl2anc adantlr iseqp1 eluzp1p1
        uztrn ad2antrl elfzuz3 ad2antll elfzuzb sylanbrc ralrimiva rspcv oveq2d
        wral sylc syl5ibr a2d syld expcom uzind4 mpcom mpd ) AKIKUCUDZUEZKDEGJU
        FZUGZKDEHIUFZUGZVHZAKIUHUGZUEZWRSIKUIUJXEAWRXCUKZSAUAULZWQUEZXGWSUGZXGX
        AUGZVHZUKZUKAIWQUEZIWSUGZIXAUGZVHZUKZUKZAUBULZWQUEZXSWSUGZXSXAUGZVHZUKZ
        UKAXSUMUNUDZWQUEZYEWSUGZYEXAUGZVHZUKZUKAXFUKUAUBIKXGIVHZXLXQAYKXHXMXKXP
        XGIWQUOYKXIXNXJXOXGIWSUPXGIXAUPUQURUSXGXSVHZXLYDAYLXHXTXKYCXGXSWQUOYLXI
        YAXJYBXGXSWSUPXGXSXAUPUQURUSXGYEVHZXLYJAYMXHYFXKYIXGYEWQUOYMXIYGXJYHXGY
        EWSUPXGYEXAUPUQURUSXGKVHZXLXFAYNXHWRXKXCXGKWQUOYNXIWTXJXBXGKWSUPXGKXAUP
        UQURUSXRIUTUEZAXPXMAXNIHUGXONABCDEHILAIJUHUGZUEZYOMJIVAUJOQRVBVCVDVEXSX
        DUEZAYDYJAYRYDYJUKAYRVIZYDYFYCUKYJYSYFXTYCAYRYFXTYRYFVIZXTAXSIKVFVGVJVK
        YSYFYCYIAYRYFYCYIUKYCYIAYTVIZYAYEGUGZDUDZYBUUBDUDZVHYAYBUUBDVLUUAYGUUCY
        HUUDUUABCDEGJXSLUUAYRYQXSYPUEAYRYFVMZAYQYTMVNIXSJVSVOAELUEYTOVNZABULZYP
        UEUUGGUGEUEYTPVPAUUGEUECULZEUEVIUUGUUHDUDEUEYTRVPZVQUUAYHYBYEHUGZDUDUUD
        UUABCDEHIXSLUUEUUFAUUGXDUEUUGHUGEUEYTQVPUUIVQUUAUUBUUJYBDUUAYEIUMUNUDZK
        UCUDZUEZFULZGUGZUUNHUGZVHZFUULWHZUUBUUJVHZUUAYEUUKUHUGUEZKYEUHUGUEZUUMY
        RUUTAYFIXSVRVTYFUVAAYRYEIKWAWBYEUUKKWCWDAUURYTAUUQFUULTWEVNUUQUUSFYEUUL
        UUNYEVHUUOUUBUUPUUJUUNYEGUPUUNYEHUPUQWFWIWGVCUQWJVJWKWLWMWKWNWOWP $.
    $}

    iseqfeq2.4 $e |- ( ( ph /\ k e. ( ZZ>= ` ( K + 1 ) ) ) ->
                       ( F ` k ) = ( G ` k ) ) $.
    $( Equality of sequences.  (Contributed by Jim Kingdon, 3-Jun-2020.) $)
    iseqfeq2 $p |- ( ph -> ( seq M ( .+ , F , S ) |` ( ZZ>= ` K ) ) =
                            seq K ( .+ , G , S ) ) $=
      ( cfv wcel vz cuz cseq cres wfn wss cz eluzel2 syl iseqfn fnssres syl2anc
      uzss eluzelz cv wa wceq fvres adantl adantr adantlr co simpr c1 caddc cfz
      elfzuz sylan2 iseqfveq2 eqtrd eqfnfvd ) AUAIUBSZDEGJUCZVLUDZDEHIUCZAVMJUB
      SZUEVLVPUFZVNVLUEABCDEGJKAIVPTZJUGTLJIUHUINOQUJAVRVQLJIUMUIVPVLVMUKULABCD
      EHIKAVRIUGTLJIUNUINPQUJAUAUOZVLTZUPZVSVNSZVSVMSZVSVOSVTWBWCUQAVSVLVMURUSW
      ABCDEFGHIJVSKAVRVTLUTAIVMSIHSUQVTMUTAEKTVTNUTABUOZVPTWDGSETVTOVAAWDVLTWDH
      SETVTPVAAWDETCUOZETUPWDWEDVBETVTQVAAVTVCAFUOZIVDVEVBZVSVFVBTZWFGSWFHSUQZV
      TWHAWFWGUBSTWIWFWGVSVGRVHVAVIVJVK $.
  $}

  ${
    $d k x y F $.  $d k x y G $.  $d k x y M $.  $d k x y N $.  $d k x y ph $.
    $d k x y .+ $.  $d k x y S $.
    iseqfveq.1 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    iseqfveq.2 $e |- ( ( ph /\ k e. ( M ... N ) ) ->
      ( F ` k ) = ( G ` k ) ) $.
    iseqfveq.s $e |- ( ph -> S e. V ) $.
    iseqfveq.f $e |- ( ( ph /\ x e. ( ZZ>= ` M ) ) -> ( F ` x ) e. S ) $.
    iseqfveq.g $e |- ( ( ph /\ x e. ( ZZ>= ` M ) ) -> ( G ` x ) e. S ) $.
    iseqfveq.pl $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) ->
      ( x .+ y ) e. S ) $.
    $( Equality of sequences.  (Contributed by Jim Kingdon, 4-Jun-2020.) $)
    iseqfveq $p |- ( ph ->
        ( seq M ( .+ , F , S ) ` N ) = ( seq M ( .+ , G , S ) ` N ) ) $=
      ( wcel cfv syl cz cuz eluzel2 uzid cseq iseq1 cfz co cv wceq wral eluzfz1
      ralrimiva fveq2 eqeq12d rspcv sylc eqtrd c1 caddc fzp1ss sselda iseqfveq2
      wss syldan ) ABCDEFGHIIJKAIUARZIIUBSZRAJVGRZVFLIJUCTZIUDTAIDEGIUESIGSZIHS
      ZABCDEGIKVINOQUFAIIJUGUHZRZFUIZGSZVNHSZUJZFVLUKVJVKUJZAVHVMLIJULTAVQFVLMU
      MVQVRFIVLVNIUJVOVJVPVKVNIGUNVNIHUNUOUPUQURNOPQLAVNIUSUTUHJUGUHZRVNVLRVQAV
      SVLVNAVFVSVLVDVIIJVATVBMVEVC $.
  $}

  ${
    $d .+ k x y z $.  $d F k x y z $.  $d G k x y z $.  $d M k x y z $.
    $d S k x y z $.  $d k ph x y z $.
    iseqfeq.1 $e |- ( ph -> M e. ZZ ) $.
    iseqfeq.s $e |- ( ph -> S e. V ) $.
    iseqfeq.f $e |- ( ( ph /\ x e. ( ZZ>= ` M ) ) -> ( F ` x ) e. S ) $.
    iseqfeq.2 $e |- ( ( ph /\ k e. ( ZZ>= ` M ) ) -> ( F ` k ) = ( G ` k ) ) $.
    iseqfeq.pl $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) ->
      ( x .+ y ) e. S ) $.
    $( Equality of sequences.  (Contributed by Jim Kingdon, 15-Aug-2021.) $)
    iseqfeq $p |- ( ph -> seq M ( .+ , F , S ) = seq M ( .+ , G , S ) ) $=
      ( cfv cv wcel wa adantlr vz cseq iseqfn wceq wral ralrimiva fveq2 eqeq12d
      cuz rspcv mpan9 eqeltrrd simpr cfz elfzuz sylan2 adantr iseqfveq eqfnfvd
      co ) AUAIUIPZDEGIUBDEHIUBABCDEGIJKLMOUCABCDEHIJKLABQZVARZSVBGPZVBHPZEAFQZ
      GPZVFHPZUDZFVAUEVCVDVEUDZAVIFVANUFVIVJFVBVAVFVBUDVGVDVHVEVFVBGUGVFVBHUGUH
      UJUKMULZOUCAUAQZVARZSBCDEFGHIVLJAVMUMAVFIVLUNUTRZVIVMVNAVFVARVIVFIVLUONUP
      TAEJRVMLUQAVCVDERVMMTAVCVEERVMVKTAVBERCQZERSVBVODUTERVMOTURUS $.
  $}

  ${
    $d .+ n w x y $.  $d F k n x w $.  $d F n x y $.  $d G k n x w $.
    $d G n x y $.  $d K k n x w $.  $d K n x y $.  $d M k n x w $.
    $d M n x y $.  $d N k n x w $.  $d N n x y w $.  $d S n x y w $.
    $d k n ph x w $.  $d ph x y $.
    iseqshft2.1 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    iseqshft2.2 $e |- ( ph -> K e. ZZ ) $.
    iseqshft2.3 $e |- ( ( ph /\ k e. ( M ... N ) ) ->
                       ( F ` k ) = ( G ` ( k + K ) ) ) $.
    iseqshft2.s $e |- ( ph -> S e. V ) $.
    iseqshft2.f $e |- ( ( ph /\ x e. ( ZZ>= ` M ) ) -> ( F ` x ) e. S ) $.
    iseqshft2.g $e |- ( ( ph /\ x e. ( ZZ>= ` ( M + K ) ) ) ->
      ( G ` x ) e. S ) $.
    iseqshft2.pl $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) ->
      ( x .+ y ) e. S ) $.
    $( Shifting the index set of a sequence.  (Contributed by Jim Kingdon,
       15-Aug-2021.) $)
    iseqshft2 $p |- ( ph -> ( seq M ( .+ , F , S ) ` N ) =
        ( seq ( M + K ) ( .+ , G , S ) ` ( N + K ) ) ) $=
      ( wcel vw vn cfz co cseq cfv caddc wceq cuz eluzfz2 syl wi cv eleq1 fveq2
      c1 oveq1 fveq2d eqeq12d imbi12d imbi2d cz eluzfz1 ralrimiva rspcv eluzel2
      wral sylc iseq1 zaddcld 3eqtr4d a1d a1i wa peano2fzr adantl imim1d simprl
      expr adantr adantlr iseqp1 eluzadd syl2anc eluzelz cc ax-1cn add32 mp3an2
      zcn syl2an simprr eqtrd oveq2d syl5ibr a2d syld expcom uzind4 mpcom mpd )
      AKJKUCUDZTZKDEGJUEZUFZKIUGUDZDEHJIUGUDZUEZUFZUHZAKJUIUFZTZXCMJKUJUKXLAXCX
      JULZMAUAUMZXBTZXNXDUFZXNIUGUDZXHUFZUHZULZULAJXBTZJXDUFZXGXHUFZUHZULZULZAU
      BUMZXBTZYGXDUFZYGIUGUDZXHUFZUHZULZULAYGUPUGUDZXBTZYNXDUFZYNIUGUDZXHUFZUHZ
      ULZULAXMULUAUBJKXNJUHZXTYEAUUAXOYAXSYDXNJXBUNUUAXPYBXRYCXNJXDUOUUAXQXGXHX
      NJIUGUQURUSUTVAXNYGUHZXTYMAUUBXOYHXSYLXNYGXBUNUUBXPYIXRYKXNYGXDUOUUBXQYJX
      HXNYGIUGUQURUSUTVAXNYNUHZXTYTAUUCXOYOXSYSXNYNXBUNUUCXPYPXRYRXNYNXDUOUUCXQ
      YQXHXNYNIUGUQURUSUTVAXNKUHZXTXMAUUDXOXCXSXJXNKXBUNUUDXPXEXRXIXNKXDUOUUDXQ
      XFXHXNKIUGUQURUSUTVAYFJVBTZAYDYAAJGUFZXGHUFZYBYCAYAFUMZGUFZUUHIUGUDZHUFZU
      HZFXBVGZUUFUUGUHZAXLYAMJKVCUKAUULFXBOVDZUULUUNFJXBUUHJUHZUUIUUFUUKUUGUUHJ
      GUOUUPUUJXGHUUHJIUGUQURUSVEVHABCDEGJLAXLUUEMJKVFUKZPQSVIABCDEHXGLAJIUUQNV
      JPRSVIVKVLVMYGXKTZAYMYTAUURYMYTULAUURVNZYMYOYLULYTUUSYOYHYLAUURYOYHUURYOV
      NZYHAYGJKVOVPVSVQUUSYOYLYSAUURYOYLYSULYLYSAUUTVNZYIYNGUFZDUDZYKUVBDUDZUHY
      IYKUVBDUQUVAYPUVCYRUVDUVABCDEGJYGLAUURYOVRZAELTUUTPVTZABUMZXKTUVGGUFETUUT
      QWAAUVGETCUMZETVNUVGUVHDUDETUUTSWAZWBUVAYJUPUGUDZXHUFYKUVJHUFZDUDYRUVDUVA
      BCDEHXGYJLUVAUURIVBTZYJXGUIUFZTUVEAUVLUUTNVTZIJYGWCWDUVFAUVGUVMTUVGHUFETU
      UTRWAUVIWBUVAYQUVJXHUVAYGVBTZUVLYQUVJUHZUVAUURUVOUVEJYGWEUKUVNUVOYGWFTZIW
      FTZUVPUVLYGWJIWJUVQUPWFTUVRUVPWGYGUPIWHWIWKWDZURUVAUVBUVKYKDUVAUVBYQHUFZU
      VKUVAYOUUMUVBUVTUHZAUURYOWLAUUMUUTUUOVTUULUWAFYNXBUUHYNUHZUUIUVBUUKUVTUUH
      YNGUOUWBUUJYQHUUHYNIUGUQURUSVEVHUVAYQUVJHUVSURWMWNVKUSWOVSWPWQWRWPWSWTXA
      $.
  $}

  ${
    $d k x F $.  $d k x M $.  $d k x ph $.  $d k Z $.
    iserf.1 $e |- Z = ( ZZ>= ` M ) $.
    iserf.2 $e |- ( ph -> M e. ZZ ) $.
    ${
      iserf.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 Jim Kingdon, 15-Aug-2021.) $)
      iserf $p |- ( ph -> seq M ( + , F , CC ) : Z --> CC ) $=
        ( vx caddc cc cvv wcel cnex a1i cv wa co addcl adantl iseqf ) ABIJKCDLE
        FKLMANOGHBPZKMIPZKMQUBUCJRKMAUBUCSTUA $.
    $}

    iserfre.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.) $)
    iserfre $p |- ( ph -> seq M ( + , F , RR ) : Z --> RR ) $=
      ( vx caddc cr cvv wcel reex a1i cv wa co readdcl adantl iseqf ) ABIJKCDLE
      FKLMANOGHBPZKMIPZKMQUBUCJRKMAUBUCSTUA $.
  $}

  ${
    $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 renegcld c1 wceq cmpt eqid ffvelrnda
      cv wa fmptd cmin caddc ralrimiva oveq1 fveq2d fveq2 breq12d cbvralv sylib
      wral r19.21bi fzp1elp1 adantl cc cuz cz eluzelz zcnd ax-1cn npcan sylancl
      syl oveq2d adantr eleqtrd eleq1d rspcv sylc fzssp1 syl5sseq sselda lenegd
      negeqd fvmptg syl2anc 3brtr4d monoord eluzfz1 eluzfz2 3brtr3d mpbird
      mpbid ) AECJZDCJZKLWJMZWIMZKLADBDENOZBUDZCJZMZUAZJZEWQJZWKWLKAIWQDEFAWMPI
      UDZWQABWMWPPWQAWNWMQUEWOGRWQUBZUFUCAWTDESUGOZNOZQZUEZWTCJZMZWTSUHOZCJZMZW
      TWQJZXHWQJZKXEXIXFKLZXGXJKLAXMIXCAWNSUHOZCJZWOKLZBXCUPXMIXCUPAXPBXCHUIXPX
      MBIXCWNWTTZXOXIWOXFKXQXNXHCWNWTSUHUJUKWNWTCULZUMUNUOUQXEXIXFXEXHWMQZWOPQZ
      BWMUPZXIPQZXEXHDXBSUHOZNOZWMXDXHYDQAWTDXBURUSAYDWMTXDAYCEDNAEUTQSUTQYCETA
      EAEDVAJQZEVBQFDEVCVHVDVEESVFVGVIZVJVKZAYAXDAXTBWMGUIZVJZXTYBBXHWMWNXHTZWO
      XIPWNXHCULZVLVMVNZXEWTWMQZYAXFPQZAXCWMWTAYDXCWMDXBVOYFVPVQZYIXTYNBWTWMXQW
      OXFPXRVLVMVNZVRWHXEYMXGPQXKXGTYOXEXFYPRBWTWPXGWMPWQXQWOXFXRVSXAVTWAXEXSXJ
      PQXLXJTYGXEXIYLRBXHWPXJWMPWQYJWOXIYKVSXAVTWAWBWCADWMQZWKPQWRWKTAYEYQFDEWD
      VHZAWJAYQYAWJPQZYRYHXTYSBDWMWNDTZWOWJPWNDCULZVLVMVNZRBDWPWKWMPWQYTWOWJUUA
      VSXAVTWAAEWMQZWLPQWSWLTAYEUUCFDEWEVHZAWIAUUCYAWIPQZUUDYHXTUUEBEWMWNETZWOW
      IPWNECULZVLVMVNZRBEWPWLWMPWQUUFWOWIUUGVSXAVTWAWFAWIWJUUHUUBVRWG $.
  $}

  ${
    $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 $.
    isermono.1 $e |- ( ph -> K e. ( ZZ>= ` M ) ) $.
    isermono.2 $e |- ( ph -> N e. ( ZZ>= ` K ) ) $.
    isermono.3 $e |- ( ( ph /\ x e. ( ZZ>= ` M ) ) -> ( F ` x ) e. RR ) $.
    isermono.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 Jim Kingdon, 15-Aug-2021.) $)
    isermono $p |- ( ph ->
        ( seq M ( + , F , RR ) ` K ) <_ ( seq M ( + , F , RR ) ` N ) ) $=
      ( caddc cr cfz co wcel cfv adantl c1 cle syl vk vy cseq cv cvv cuz elfzuz
      wa uztrn syl2anr reex a1i adantlr readdcl iseqcl cmin cc0 wbr simpr cz wb
      wral adantr eluzelz peano2zm elfzelz 1zzd fzaddel syl22anc mpbid wceq zcn
      cc ax-1cn npcan sylancl oveq2d eleqtrd ralrimiva fveq2 breq2d sylc fzelp1
      rspcv syldan wss fzp1elp1 sseldd eleq1d addge01d iseqp1 breqtrrd monoord
      fzss1 ) AUAKLCEUCZDFHAUAUDZDFMNZOZUHZBUBKLCEWPUEWRWPDUFPZODEUFPZOZWPXAOZA
      WPDFUGGDWPEUIUJZLUEOZWSUKULABUDZXAOZXFCPZLOZWRIUMXFLOUBUDZLOUHZXFXJKNLOZW
      SXFXJUNZQUOZAWPDFRUPNZMNOZUHZWPWOPZXRWPRKNZCPZKNZXSWOPSXQUQXTSURZXRYASURX
      QXSDRKNZFMNZOUQXHSURZBYDVBZYBXQXSYCXORKNZMNZYDXQXPXSYHOZAXPUSXQDUTOZXOUTO
      ZWPUTOZRUTOXPYIVAXQXBYJAXBXPGVCZEDVDTXQFUTOZYKXQFWTOZYNAYOXPHVCDFVDTZFVET
      XPYLAWPDXOVFQXQVGWPRDXOVHVIVJXQYGFYCMXQYNYGFVKZYPYNFVMORVMOYQFVLVNFRVOVPT
      ZVQVRAYFXPAYEBYDJVSVCYEYBBXSYDXFXSVKZXHXTUQSXFXSCVTZWAWDWBXQXRXTAXPWRXRLO
      XQWPDYGMNZWQXPWPUUAOAWPDXOWCQXQYGFDMYRVQZVRZXNWEXQXSXAOZXIBXAVBZXTLOZXQXS
      EFMNZOUUDXQWQUUGXSXQXBWQUUGWFYMDEFWNTXQXSUUAWQXPXSUUAOAWPDXOWGQUUBVRWHXSE
      FUGTAUUEXPAXIBXAIVSVCXIUUFBXSXAYSXHXTLYTWIWDWBWJVJXQBUBKLCEWPUEAXPWRXCUUC
      XDWEXEXQUKULAXGXIXPIUMXKXLXQXMQWKWLWM $.
  $}

  ${
    $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 $.
    iseqsplit.1 $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) -> ( x .+ y ) e. S ) $.
    iseqsplit.2 $e |- ( ( ph /\ ( x e. S /\ y e. S /\ z e. S ) ) ->
                       ( ( x .+ y ) .+ z ) = ( x .+ ( y .+ z ) ) ) $.
    iseqsplit.3 $e |- ( ph -> N e. ( ZZ>= ` ( M + 1 ) ) ) $.
    iseqsplit.s $e |- ( ph -> S e. V ) $.
    ${
      $d .+ n x y z $.  $d F n x y z $.  $d K n x y z $.  $d M n x y z $.
      $d N n x y z $.  $d S n x y z $.  $d n ph x y z $.
      iseqsplit.4 $e |- ( ph -> M e. ( ZZ>= ` K ) ) $.
      iseqsplit.5 $e |- ( ( ph /\ x e. ( ZZ>= ` K ) ) -> ( F ` x ) e. S ) $.
      $( Split a sequence into two sequences.  (Contributed by Jim Kingdon,
         16-Aug-2021.) $)
      iseqsplit $p |- ( ph -> ( seq K ( .+ , F , S ) ` N ) =
          ( ( seq K ( .+ , F , S ) ` M ) .+
          ( seq ( M + 1 ) ( .+ , F , S ) ` N ) ) ) $=
        ( co wcel cfv vn c1 caddc cfz cseq wceq cuz eluzfz2 syl wi eleq1 oveq2d
        cv fveq2 eqeq12d imbi12d imbi2d iseqp1 eluzel2 eluzelz peano2uzr adantr
        cz wa sylan uztrn syl2anc syldan iseq1 eqtr4d a1d peano2fzr adantl expr
        imim1d oveq1 simprl peano2uz adantlr simpl iseqcl wral fzss1 3syl simpr
        a1i wss ssel2 syl2an elfzuz sylan2 ralrimiva eleq1d rspcv sylc caovassg
        syl13anc syl5ibr a2d syld expcom uzind4 mpcom mpd ) AJIUBUCRZJUDRZSZJEF
        GHUEZTZIXHTZJEFGXEUEZTZERZUFZAJXEUGTZSZXGNXEJUHUIXPAXGXNUJZNABUMZXFSZXR
        XHTZXJXRXKTZERZUFZUJZUJAXEXFSZXEXHTZXJXEXKTZERZUFZUJZUJZAUAUMZXFSZYLXHT
        ZXJYLXKTZERZUFZUJZUJAYLUBUCRZXFSZYSXHTZXJYSXKTZERZUFZUJZUJAXQUJBUAXEJXR
        XEUFZYDYJAUUFXSYEYCYIXRXEXFUKUUFXTYFYBYHXRXEXHUNUUFYAYGXJEXRXEXKUNULUOU
        PUQXRYLUFZYDYRAUUGXSYMYCYQXRYLXFUKUUGXTYNYBYPXRYLXHUNUUGYAYOXJEXRYLXKUN
        ULUOUPUQXRYSUFZYDUUEAUUHXSYTYCUUDXRYSXFUKUUHXTUUAYBUUCXRYSXHUNUUHYAUUBX
        JEXRYSXKUNULUOUPUQXRJUFZYDXQAUUIXSXGYCXNXRJXFUKUUIXTXIYBXMXRJXHUNUUIYAX
        LXJEXRJXKUNULUOUPUQYKXEVCSZAYIYEAYFXJXEGTZERYHABCEFGHIKPOQLURAYGUUKXJEA
        BCEFGXEKAXPUUJNXEJUSUIOAXRXOSZXRHUGTZSZXRGTZFSZAUULVDXRIUGTSZIUUMSZUUNA
        IVCSZUULUUQAUURUUSPHIUTUIIXRVAVEAUURUULPVBIXRHVFVGQVHZLVIULVJVKWFYLXOSZ
        AYRUUEAUVAYRUUEUJAUVAVDZYRYTYQUJUUEUVBYTYMYQAUVAYTYMUVAYTVDZYMAYLXEJVLV
        MVNVOUVBYTYQUUDAUVAYTYQUUDUJYQUUDAUVCVDZYNYSGTZERZYPUVEERZUFYNYPUVEEVPU
        VDUUAUVFUUCUVGUVDBCEFGHYLKUVDUVAXEUUMSZYLUUMSAUVAYTVQZAUVHUVCAUURUVHPHI
        VRZUIVBXEYLHVFVGAFKSUVCOVBZAUUNUUPUVCQVSAXRFSCUMZFSVDXRUVLERFSUVCLVSZUR
        UVDUUCXJYOUVEERZERZUVGUVDUUBUVNXJEUVDBCEFGXEYLKUVIUVKAUULUUPUVCUUTVSZUV
        MURULUVDAXJFSZYOFSUVEFSZUVGUVOUFAUVCVTAUVQUVCABCEFGHIKPOQLWAVBUVDBCEFGX
        EYLKUVIUVKUVPUVMWAUVDYSHJUDRZSZUUPBUVSWBZUVRAXFUVSWGZYTUVTUVCAUURUVHUWB
        PUVJXEHJWCWDUVAYTWEXFUVSYSWHWIAUWAUVCAUUPBUVSXRUVSSAUUNUUPXRHJWJQWKWLVB
        UUPUVRBYSUVSUUHUUOUVEFXRYSGUNWMWNWOABCDXJYOUVEFEMWPWQVJUOWRVNWSWTXAWSXB
        XCXD $.
    $}

    iseq1p.4 $e |- ( ph -> M e. ZZ ) $.
    iseq1p.5 $e |- ( ( ph /\ x e. ( ZZ>= ` M ) ) -> ( F ` x ) e. S ) $.
    $( Removing the first term from a sequence.  (Contributed by Jim Kingdon,
       16-Aug-2021.) $)
    iseq1p $p |- ( ph -> ( seq M ( .+ , F , S ) ` N ) =
        ( ( F ` M ) .+ ( seq ( M + 1 ) ( .+ , F , S ) ` N ) ) ) $=
      ( cseq cfv co wcel c1 caddc cz cuz uzid syl iseqsplit iseq1 oveq1d eqtrd
      ) AIEFGHQZRHUKRZIEFGHUAUBSQRZESHGRZUMESABCDEFGHHIJKLMNAHUCTHHUDRTOHUEUFPU
      GAULUNUMEABCEFGHJONPKUHUIUJ $.
  $}

  ${
    $d .+ n x y z $.  $d F k n x y z $.  $d G k n x y z $.  $d H k n x y z $.
    $d M k n x y z $.  $d N k n x y z $.  $d Q k n x y z $.  $d S k n x y z $.
    $d k n ph x y z $.
    iseqcaopr3.1 $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) -> ( x .+ y ) e. S ) $.
    iseqcaopr3.2 $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) -> ( x Q y ) e. S ) $.
    iseqcaopr3.3 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    iseqcaopr3.4 $e |- ( ( ph /\ k e. ( ZZ>= ` M ) ) -> ( F ` k ) e. S ) $.
    iseqcaopr3.5 $e |- ( ( ph /\ k e. ( ZZ>= ` M ) ) -> ( G ` k ) e. S ) $.
    iseqcaopr3.6 $e |- ( ( ph /\ k e. ( ZZ>= ` M ) ) ->
                        ( H ` k ) = ( ( F ` k ) Q ( G ` k ) ) ) $.
    iseqcaopr3.7 $e |- ( ( ph /\ n e. ( M ..^ N ) ) ->
      ( ( ( seq M ( .+ , F , S ) ` n ) Q ( seq M ( .+ , G , S ) ` n ) ) .+
        ( ( F ` ( n + 1 ) ) Q ( G ` ( n + 1 ) ) ) ) =
      ( ( ( seq M ( .+ , F , S ) ` n ) .+ ( F ` ( n + 1 ) ) ) Q
        ( ( seq M ( .+ , G , S ) ` n ) .+ ( G ` ( n + 1 ) ) ) ) ) $.
    iseqcaopr3.s $e |- ( ph -> S e. V ) $.
    $( Lemma for iseqcaopr2 .  (Contributed by Jim Kingdon, 16-Aug-2021.) $)
    iseqcaopr3 $p |- ( ph -> ( seq M ( .+ , H , S ) ` N ) =
        ( ( seq M ( .+ , F , S ) ` N ) Q ( seq M ( .+ , G , S ) ` N ) ) ) $=
      ( vz cfz co wcel cseq cfv wceq cuz eluzfz2 cv wi c1 caddc oveq12d eqeq12d
      syl fveq2 imbi2d weq wral cz eluzel2 uzid ralrimiva rspcv sylc ralrimivva
      wa adantr oveq1 eleq1d oveq2 rspc2v syl2anc mpd eqeltrd mpan9 3eqtr4d a1i
      cfzo elfzouz adantl adantlr iseqp1 fzofzp1 elfzuz oveq2d 3eqtr4rd syl5ibr
      iseq1 expcom a2d fzind2 mpcom ) MLMUDUEZUFZAMDFKLUGZUHZMDFILUGZUHZMDFJLUG
      ZUHZEUEZUIZAMLUJUHZUFZWRQLMUKURAUCULZWSUHZXIXAUHZXIXCUHZEUEZUIZUMALWSUHZL
      XAUHZLXCUHZEUEZUIZUMZAHULZWSUHZYAXAUHZYAXCUHZEUEZUIZUMAYAUNUOUEZWSUHZYGXA
      UHZYGXCUHZEUEZUIZUMAXFUMUCHMLMXILUIZXNXSAYMXJXOXMXRXILWSUSYMXKXPXLXQEXILX
      AUSXILXCUSUPUQUTUCHVAZXNYFAYNXJYBXMYEXIYAWSUSYNXKYCXLYDEXIYAXAUSXIYAXCUSU
      PUQUTXIYGUIZXNYLAYOXJYHXMYKXIYGWSUSYOXKYIXLYJEXIYGXAUSXIYGXCUSUPUQUTXIMUI
      ZXNXFAYPXJWTXMXEXIMWSUSYPXKXBXLXDEXIMXAUSXIMXCUSUPUQUTXTXHALKUHZLIUHZLJUH
      ZEUEZXOXRALXGUFZGULZKUHZUUBIUHZUUBJUHZEUEZUIZGXGVBZYQYTUIZALVCUFZUUAAXHUU
      JQLMVDURZLVEURAUUGGXGTVFZUUGUUIGLXGUUBLUIZUUCYQUUFYTUUBLKUSUUMUUDYRUUEYSE
      UUBLIUSUUBLJUSUPUQVGVHABCDFKLNUUKUBAUUCFUFZGXGVBBULZXGUFZUUOKUHZFUFZAUUNG
      XGAUUBXGUFZVJZUUCUUFFTUUTUUOCULZEUEZFUFZCFVBBFVBZUUFFUFZAUVDUUSAUVCBCFFPV
      IVKUUTUUDFUFZUUEFUFZUVDUVEUMRSUVCUVEUUDUVAEUEZFUFBCUUDUUEFFUUOUUDUIUVBUVH
      FUUOUUDUVAEVLVMUVAUUEUIUVHUUFFUVAUUEUUDEVNVMVOVPVQVRVFUUNUURGUUOXGGBVAZUU
      CUUQFUUBUUOKUSVMVGVSZOWLAXPYRXQYSEABCDFILNUUKUBAUVFGXGVBUUPUUOIUHZFUFZAUV
      FGXGRVFUVFUVLGUUOXGUVIUUDUVKFUUBUUOIUSVMVGVSZOWLABCDFJLNUUKUBAUVGGXGVBUUP
      UUOJUHZFUFZAUVGGXGSVFUVGUVOGUUOXGUVIUUEUVNFUUBUUOJUSVMVGVSZOWLUPVTWAYALMW
      BUEUFZAYFYLAUVQYFYLUMYFYLAUVQVJZYBYGKUHZDUEZYEUVSDUEZUIYBYEUVSDVLUVRYHUVT
      YKUWAUVRBCDFKLYANUVQYAXGUFAYALMWCWDZAFNUFUVQUBVKZAUUPUURUVQUVJWEAUUOFUFUV
      AFUFVJUUOUVADUEFUFUVQOWEZWFUVRYEYGIUHZYGJUHZEUEZDUEYCUWEDUEZYDUWFDUEZEUEU
      WAYKUAUVRUVSUWGYEDUVRYGXGUFZUUHUVSUWGUIZUVQUWJAUVQYGWQUFUWJLMYAWGYGLMWHUR
      WDAUUHUVQUULVKUUGUWKGYGXGUUBYGUIZUUCUVSUUFUWGUUBYGKUSUWLUUDUWEUUEUWFEUUBY
      GIUSUUBYGJUSUPUQVGVHWIUVRYIUWHYJUWIEUVRBCDFILYANUWBUWCAUUPUVLUVQUVMWEUWDW
      FUVRBCDFJLYANUWBUWCAUUPUVOUVQUVPWEUWDWFUPWJUQWKWMWNWOWP $.
  $}

  ${
    $d .+ n w x y z $.  $d F k n w x y z $.  $d G k n w x y z $.
    $d H k n x y z $.  $d M k n w x y z $.  $d N k n x y z $.
    $d Q k n w x y z $.  $d S k n w x y z $.  $d k n ph w x y z $.
    iseqcaopr2.1 $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) -> ( x .+ y ) e. S ) $.
    iseqcaopr2.2 $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) -> ( x Q y ) e. S ) $.
    iseqcaopr2.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 ) ) ) $.
    iseqcaopr2.4 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    iseqcaopr2.5 $e |- ( ( ph /\ k e. ( ZZ>= ` M ) ) -> ( F ` k ) e. S ) $.
    iseqcaopr2.6 $e |- ( ( ph /\ k e. ( ZZ>= ` M ) ) -> ( G ` k ) e. S ) $.
    iseqcaopr2.7 $e |- ( ( ph /\ k e. ( ZZ>= ` M ) ) ->
                        ( H ` k ) = ( ( F ` k ) Q ( G ` k ) ) ) $.
    iseqcaopr2.s $e |- ( ph -> S e. V ) $.
    $( The sum of two infinite series (generalized to an arbitrary commutative
       and associative operation).  (Contributed by Mario Carneiro,
       30-May-2014.) $)
    iseqcaopr2 $p |- ( ph -> ( seq M ( .+ , H , S ) ` N ) =
        ( ( seq M ( .+ , F , S ) ` N ) Q ( seq M ( .+ , G , S ) ` N ) ) ) $=
      ( vn cv cfzo co wcel wa cseq cfv c1 caddc wceq wral elfzouz adantl adantr
      cuz ralrimiva fveq2 eleq1d rspccva sylan adantlr iseqcl cfz fzssuz sseldi
      fzofzp1 syl2an anassrs oveq1 oveq1d eqeq12d 2ralbidv oveq2d oveq2 rspc2va
      ralrimivva syl21anc iseqcaopr3 ) ABCFGHIUDJKLMNOPQSTUAUBAUDUEZMNUFUGUHZUI
      ZWCFHKMUJUKZHUHWCULUMUGZKUKZHUHZWCFHJMUJUKZDUEZGUGZWGJUKZEUEZGUGZFUGZWJWM
      FUGZWKWNFUGZGUGZUNZEHUODHUOZWJWFGUGZWMWHGUGZFUGZWQWFWHFUGZGUGZUNZWEBCFHKM
      WCOWDWCMUSUKZUHAWCMNUPUQZAHOUHWDUCURZWEIUEZKUKZHUHZIXHUOZBUEZXHUHZXOKUKZH
      UHZAXNWDAXMIXHUAUTZURXMXRIXOXHXKXOUNZXLXQHXKXOKVAVBVCVDAXOHUHCUEZHUHUIZXO
      YAFUGZHUHWDPVEZVFAXNWGXHUHZWIWDXSWDMNVGUGXHWGMNVHMNWCVJVIZXMWIIWGXHXKWGUN
      ZXLWHHXKWGKVAVBVCVKWEWJHUHWMHUHZXOWKGUGZYAWNGUGZFUGZYCWRGUGZUNZEHUODHUOZC
      HUOBHUOZXAWEBCFHJMWCOXIXJAXPXOJUKZHUHZWDAXKJUKZHUHZIXHUOZXPYQAYSIXHTUTZYS
      YQIXOXHXTYRYPHXKXOJVAVBVCVDVEYDVFAYTYEYHWDUUAYFYSYHIWGXHYGYRWMHXKWGJVAVBV
      CVKAYOWDAYNBCHHAYBUIYMDEHHAYBWKHUHWNHUHUIYMRVLVTVTURYNXAWLYJFUGZWJYAFUGZW
      RGUGZUNZEHUODHUOBCWJWMHHXOWJUNZYMUUEDEHHUUFYKUUBYLUUDUUFYIWLYJFXOWJWKGVMV
      NUUFYCUUCWRGXOWJYAFVMVNVOVPYAWMUNZUUEWTDEHHUUGUUBWPUUDWSUUGYJWOWLFYAWMWNG
      VMVQUUGUUCWQWRGYAWMWJFVRVNVOVPVSWAWTXGXBWOFUGZWQWFWNFUGZGUGZUNDEWFWHHHWKW
      FUNZWPUUHWSUUJUUKWLXBWOFWKWFWJGVRVNUUKWRUUIWQGWKWFWNFVMVQVOWNWHUNZUUHXDUU
      JXFUULWOXCXBFWNWHWMGVRVQUULUUIXEWQGWNWHWFFVRVQVOVSWAUCWB $.
  $}

  ${
    $d .+ a b c d k x y z $.  $d F a b c d k $.  $d G a b c d k $.
    $d H a b c k $.  $d M a b c d k $.  $d N a b c k $.
    $d S a b c d k x y z $.  $d a b c d k ph x y z $.
    iseqcaopr.1 $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) -> ( x .+ y ) e. S ) $.
    iseqcaopr.2 $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) ->
                       ( x .+ y ) = ( y .+ x ) ) $.
    iseqcaopr.3 $e |- ( ( ph /\ ( x e. S /\ y e. S /\ z e. S ) ) ->
                       ( ( x .+ y ) .+ z ) = ( x .+ ( y .+ z ) ) ) $.
    iseqcaopr.4 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    iseqcaopr.5 $e |- ( ( ph /\ k e. ( ZZ>= ` M ) ) -> ( F ` k ) e. S ) $.
    iseqcaopr.6 $e |- ( ( ph /\ k e. ( ZZ>= ` M ) ) -> ( G ` k ) e. S ) $.
    iseqcaopr.7 $e |- ( ( ph /\ k e. ( ZZ>= ` M ) ) ->
                        ( H ` k ) = ( ( F ` k ) .+ ( G ` k ) ) ) $.
    iseqcaopr.s $e |- ( ph -> S e. V ) $.
    $( The sum of two infinite series (generalized to an arbitrary commutative
       and associative operation).  (Contributed by Jim Kingdon,
       17-Aug-2021.) $)
    iseqcaopr $p |- ( ph -> ( seq M ( .+ , H , S ) ` N ) =
        ( ( seq M ( .+ , F , S ) ` N ) .+ ( seq M ( .+ , G , S ) ` N ) ) ) $=
      ( va vb vc vd cv caovclg wcel wa co simpl simprrl simprlr caovcomg oveq1d
      syl12anc simprrr caovassg syl13anc 3eqtr3d oveq2d simprll adantrl 3eqtr4d
      wceq iseqcaopr2 ) AUBUCUDUEEEFGHIJKLMABCUBUFZUCUFZFFFENUGZVIAVGFUHZVHFUHZ
      UIZUDUFZFUHZUEUFZFUHZUIZUIZUIZVGVMVHVOEUJZEUJZEUJZVGVHVMVOEUJZEUJZEUJZVGV
      MEUJVTEUJZVGVHEUJWCEUJZVSWAWDVGEVSVMVHEUJZVOEUJZVHVMEUJZVOEUJZWAWDVSWHWJV
      OEVSAVNVKWHWJVEAVRUKZAVLVNVPULZAVJVKVQUMZABCVMVHFEOUNUPUOVSAVNVKVPWIWAVEW
      LWMWNAVLVNVPUQZABCDVMVHVOFEPURUSVSAVKVNVPWKWDVEWLWNWMWOABCDVHVMVOFEPURUSU
      TVAVSAVJVNVTFUHZWFWBVEWLAVJVKVQVBZWMVSAVKVPWPWLWNWOABCVHVOFFFENUGUPABCDVG
      VMVTFEPURUSVSAVJVKWCFUHZWGWEVEWLWQWNAVQWRVLABCVMVOFFFENUGVCABCDVGVHWCFEPU
      RUSVDQRSTUAVF $.
  $}

  ${
    $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 $.
    iseradd.1 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    iseradd.2 $e |- ( ( ph /\ k e. ( ZZ>= ` M ) ) -> ( F ` k ) e. CC ) $.
    iseradd.3 $e |- ( ( ph /\ k e. ( ZZ>= ` M ) ) -> ( G ` k ) e. CC ) $.
    iseradd.4 $e |- ( ( ph /\ k e. ( ZZ>= ` M ) ) ->
                     ( 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.) $)
    iseradd $p |- ( ph -> ( seq M ( + , H , CC ) ` N ) =
        ( ( seq M ( + , F , CC ) ` N ) + ( seq M ( + , G , CC ) ` N ) ) ) $=
      ( vx vy vz caddc cc cv wcel co adantl cvv wa addcl wceq addcom w3a addass
      cnex a1i iseqcaopr ) ALMNOPBCDEFGUALQZPRZMQZPRZUBZUKUMOSZPRAUKUMUCTUOUPUM
      UKOSUDAUKUMUETULUNNQZPRUFUPUQOSUKUMUQOSOSUDAUKUMUQUGTHIJKPUARAUHUIUJ $.
  $}

  ${
    $d F k w x y z $.  $d G k w x y z $.  $d H k x y z $.  $d M k w x y z $.
    $d N k x y z $.  $d k ph w x y z $.
    isersub.1 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    isersub.2 $e |- ( ( ph /\ k e. ( ZZ>= ` M ) ) -> ( F ` k ) e. CC ) $.
    isersub.3 $e |- ( ( ph /\ k e. ( ZZ>= ` M ) ) -> ( G ` k ) e. CC ) $.
    isersub.4 $e |- ( ( ph /\ k e. ( ZZ>= ` M ) ) ->
                     ( 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.) $)
    isersub $p |- ( ph -> ( seq M ( + , H , CC ) ` N ) =
        ( ( seq M ( + , F , CC ) ` N ) - ( seq M ( + , G , CC ) ` N ) ) ) $=
      ( vx caddc cmin cc cv wcel wa co adantl vy vz vw addcl subcl wceq addsub4
      cvv eqcomd cnex a1i iseqcaopr2 ) ALUAUBUCMNOBCDEFGUHLPZOQUAPZOQRZUMUNMSZO
      QAUMUNUDTUOUMUNNSOQAUMUNUETUOUBPZOQUCPZOQRRZUMUQNSUNURNSMSZUPUQURMSNSZUFA
      USVAUTUMUNUQURUGUITHIJKOUHQAUJUKUL $.
  $}

  ${
    $d x y .+ $.  $d x y F $.  $d x y M $.  $d x y ph $.  $d x y Z $.
    $d x y N $.
    iseqid3.1 $e |- ( ph -> ( Z .+ Z ) = Z ) $.
    iseqid3.2 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    iseqid3.3 $e |- ( ( ph /\ x e. ( ZZ>= ` M ) ) -> ( F ` x ) = Z ) $.
    iseqid3.z $e |- ( ph -> Z e. V ) $.
    $( A sequence that consists entirely of zeroes (or whatever the identity
       ` Z ` is for operation ` .+ ` ) sums to zero.  (Contributed by Jim
       Kingdon, 18-Aug-2021.) $)
    iseqid3 $p |- ( ph -> ( seq M ( .+ , F , { Z } ) ` N ) = Z ) $=
      ( vy cfv wcel wceq cvv syl cv elsni csn snexg cuz wa elsn2g adantr mpbird
      cseq wb co oveqan12d eleq1d syl5ibrcom imp iseqcl ) AFCHUAZDEUHNZUPOUQHPA
      BMCUPDEFQJAHGOZUPQOLHGUBRABSZEUCNOZUDUSDNZUPOZVAHPZKAVBVCUIZUTAURVDLVAHGU
      ERUFUGAUSUPOZMSZUPOZUDZUSVFCUJZUPOZAVJVHHHCUJZUPOZAVLVKHPZIAURVLVMUILVKHG
      UERUGVHVIVKUPVEVGUSHVFHCUSHTVFHTUKULUMUNUOUQHTR $.
  $}

  ${
    $d x y k w .+ $.  $d x y k w F $.  $d x y k w M $.  $d x y k w ph $.
    $d x y k w Z $.  $d x y k w N $.  $d x y k w S $.
    iseqid3s.1 $e |- ( ph -> ( Z .+ Z ) = Z ) $.
    iseqid3s.2 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    iseqid3s.3 $e |- ( ( ph /\ x e. ( M ... N ) ) -> ( F ` x ) = Z ) $.
    iseqid3s.z $e |- ( ph -> Z e. S ) $.
    iseqid3s.s $e |- ( ph -> S e. V ) $.
    iseqid3s.f $e |- ( ( ph /\ x e. ( ZZ>= ` M ) ) -> ( F ` x ) e. S ) $.
    iseqid3s.cl $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) -> ( x .+ y ) e. S ) $.
    $( A sequence that consists of zeroes up to ` N ` sums to zero at ` N ` .
       In this case by "zero" we mean whatever the identity ` Z ` is for the
       operation ` .+ ` ).  (Contributed by Jim Kingdon, 18-Aug-2021.) $)
    iseqid3s $p |- ( ph -> ( seq M ( .+ , F , S ) ` N ) = Z ) $=
      ( cfv wceq wcel vw vk cseq cuz cfz co wi eluzfz2 cv c1 caddc fveq2 eqeq1d
      imbi2d eluzel2 syl iseq1 wral ralrimiva eluzfz1 rspcv 3syl mpd eqtrd cfzo
      cz a1i wa elfzouz adantl adantr adantlr iseqp1 simpr fzofzp1 sylc oveq12d
      ad2antrr 3eqtrd ex expcom a2d fzind2 pm2.43i ) AHDEFGUCZRZJSZAHGUDRZTZHGH
      UEUFZTAWGUGZLGHUHAUAUIZWERZJSZUGAGWERZJSZUGZAUBUIZWERZJSZUGAWRUJUKUFZWERZ
      JSZUGWKUAUBHGHWLGSZWNWPAXDWMWOJWLGWEULUMUNWLWRSZWNWTAXEWMWSJWLWRWEULUMUNW
      LXASZWNXCAXFWMXBJWLXAWEULUMUNWLHSZWNWGAXGWMWFJWLHWEULUMUNWQWIAWOGFRZJABCD
      EFGIAWIGVFTLGHUOUPOPQUQABUIZFRZJSZBWJURZXHJSZAXKBWJMUSZAWIGWJTXLXMUGLGHUT
      XKXMBGWJXIGSXJXHJXIGFULUMVAVBVCVDVGWRGHVEUFTZAWTXCAXOWTXCUGAXOVHZWTXCXPWT
      VHZXBWSXAFRZDUFZJJDUFZJXPXBXSSWTXPBCDEFGWRIXOWRWHTAWRGHVIVJAEITXOOVKAXIWH
      TXJETXOPVLAXIETCUIZETVHXIYADUFETXOQVLVMVKXQWSJXRJDXPWTVNXPXRJSZWTXPXAWJTZ
      XLYBXOYCAGHWRVOVJAXLXOXNVKXKYBBXAWJXIXASXJXRJXIXAFULUMVAVPVKVQAXTJSXOWTKV
      RVSVTWAWBWCVBWD $.
  $}

  ${
    $d .+ k x y $.  $d F k x y $.  $d M k x y $.  $d N k x y $.  $d S k x y $.
    $d Z x y $.  $d k ph x y $.
    iseqid.1 $e |- ( ( ph /\ x e. S ) -> ( Z .+ x ) = x ) $.
    iseqid.2 $e |- ( ph -> Z e. S ) $.
    iseqid.3 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    iseqid.4 $e |- ( ph -> ( F ` N ) e. S ) $.
    iseqid.5 $e |- ( ( ph /\ x e. ( M ... ( N - 1 ) ) ) -> ( F ` x ) = Z ) $.
    iseqid.s $e |- ( ph -> S e. V ) $.
    iseqid.f $e |- ( ( ph /\ x e. ( ZZ>= ` M ) ) -> ( F ` x ) e. S ) $.
    iseqid.cl $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) -> ( x .+ y ) e. S ) $.
    $( Discard the first few terms of a sequence that starts with all zeroes
       (or whatever the identity ` Z ` is for operation ` .+ ` ).  (Contributed
       by Mario Carneiro, 13-Jul-2013.)  (Revised by Mario Carneiro,
       27-May-2014.) $)
    iseqid $p |- ( ph -> ( seq M ( .+ , F , S ) |` ( ZZ>= ` N ) ) =
        seq N ( .+ , F , S ) ) $=
      ( cfv wcel vk wceq cseq c1 caddc co cuz cz eluzelz syl cv wa simpr adantr
      uztrn syl2anc syldan iseqeq1 fveq1d eqeq1d syl5ibcom cmin eluzel2 adantlr
      iseq1 iseqm1 wral ralrimiva oveq2 id eqeq12d rspcv sylc eluzp1m1 iseqid3s
      sylan cfz oveq1d 3eqtrd ex wo uzp1 mpjaod eqidd iseqfeq2 ) ABCDEUAFFHGIMA
      HGUBZHDEFGUCZSZHFSZUBZHGUDUEUFUGSTZAHDEFHUCZSZWIUBWFWJABCDEFHIAHGUGSZTZHU
      HTMGHUIUJPABUKZHUGSTZWPWNTZWPFSZETZAWQULWQWOWRAWQUMAWOWQMUNHWPGUOUPQUQZRV
      EWFWMWHWIWFHWLWGDEFHGURUSUTVAAWKWJAWKULZWHHUDVBUFZWGSZWIDUFJWIDUFZWIXBBCD
      EFGHIAGUHTZWKAWOXFMGHVCUJZUNAWKUMAEITWKPUNZAWRWTWKQVDZAWPETCUKZETULWPXJDU
      FETWKRVDZVFXBXDJWIDXBBCDEFGXCIJAJJDUFZJUBZWKAJETZJWPDUFZWPUBZBEVGZXMLAXPB
      EKVHZXPXMBJEWPJUBZXOXLWPJWPJJDVIXSVJVKVLVMUNAXFWKXCWNTXGGHVNVPAWPGXCVQUFT
      WSJUBWKOVDAXNWKLUNXHXIXKVOVRXBWIETZXQXEWIUBZAXTWKNUNAXQWKXRUNXPYABWIEWPWI
      UBZXOXEWPWIWPWIJDVIYBVJVKVLVMVSVTAWOWFWKWAMGHWBUJWCPQXARAUAUKZHUDUEUFUGST
      ULYCFSWDWE $.
  $}

  ${
    $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 $.
    iseqhomo.1 $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) -> ( x .+ y ) e. S ) $.
    iseqhomo.2 $e |- ( ( ph /\ x e. ( ZZ>= ` M ) ) -> ( F ` x ) e. S ) $.
    iseqhomo.s $e |- ( ph -> S e. V ) $.
    ${
      $d .+ n x y w $.  $d F n x y w $.  $d G n x y w $.  $d H n x y w $.
      $d M n x y w $.  $d N n x y w $.  $d Q n x y w $.  $d S n x y w $.
      $d ph x y w $.
      iseqhomo.3 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
      iseqhomo.4 $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) ->
                        ( H ` ( x .+ y ) ) = ( ( H ` x ) Q ( H ` y ) ) ) $.
      iseqhomo.5 $e |- ( ( ph /\ x e. ( ZZ>= ` M ) ) ->
                        ( H ` ( F ` x ) ) = ( G ` x ) ) $.
      iseqhomo.g $e |- ( ( ph /\ x e. ( ZZ>= ` M ) ) -> ( G ` x ) e. S ) $.
      iseqhomo.qcl $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) ->
        ( x Q y ) e. S ) $.
      $( Apply a homomorphism to a sequence.  (Contributed by Jim Kingdon,
         21-Aug-2021.) $)
      iseqhomo $p |- ( ph -> ( H ` ( seq M ( .+ , F , S ) ` N ) ) =
          ( seq M ( Q , G , S ) ` N ) ) $=
        ( vw vn cuz cfv wcel cseq cv wi c1 caddc co fveq2 fveq2d eqeq12d imbi2d
        wceq cz wral eluzel2 syl uzid ralrimiva rspcv sylc iseq1 3eqtr4d a1i wa
        oveq1 simpr adantr adantlr iseqp1 ralrimivva iseqcl eleq1d oveq1d oveq2
        peano2uz oveq2d rspc2v syl2anc mpd 3eqtrd syl5ibr expcom uzind4 mpcom
        a2d ) KJUCUDZUEZAKDFGJUFZUDZIUDZKEFHJUFZUDZUPZPAUAUGZWLUDZIUDZWRWOUDZUP
        ZUHAJWLUDZIUDZJWOUDZUPZUHZAUBUGZWLUDZIUDZXHWOUDZUPZUHAXHUIUJUKZWLUDZIUD
        ZXMWOUDZUPZUHAWQUHUAUBJKWRJUPZXBXFAXRWTXDXAXEXRWSXCIWRJWLULUMWRJWOULUNU
        OWRXHUPZXBXLAXSWTXJXAXKXSWSXIIWRXHWLULUMWRXHWOULUNUOWRXMUPZXBXQAXTWTXOX
        AXPXTWSXNIWRXMWLULUMWRXMWOULUNUOWRKUPZXBWQAYAWTWNXAWPYAWSWMIWRKWLULUMWR
        KWOULUNUOXGJUQUEZAJGUDZIUDZJHUDZXDXEAJWJUEZBUGZGUDZIUDZYGHUDZUPZBWJURZY
        DYEUPZAYBYFAWKYBPJKUSUTZJVAUTAYKBWJRVBZYKYMBJWJYGJUPZYIYDYJYEYPYHYCIYGJ
        GULUMYGJHULUNVCVDAXCYCIABCDFGJLYNONMVEUMABCEFHJLYNOSTVEVFVGXHWJUEZAXLXQ
        AYQXLXQUHXLXQAYQVHZXJXMHUDZEUKZXKYSEUKZUPXJXKYSEVIYRXOYTXPUUAYRXOXIXMGU
        DZDUKZIUDZXJUUBIUDZEUKZYTYRXNUUCIYRBCDFGJXHLAYQVJZAFLUEYQOVKZAYGWJUEZYH
        FUEZYQNVLZAYGFUECUGZFUEVHZYGUULDUKZFUEYQMVLZVMUMYRUUNIUDZYGIUDZUULIUDZE
        UKZUPZCFURBFURZUUDUUFUPZAUVAYQAUUTBCFFQVNVKYRXIFUEUUBFUEZUVAUVBUHYRBCDF
        GJXHLUUGUUHUUKUUOVOYRXMWJUEZUUJBWJURZUVCYRYQUVDUUGJXHVSUTZAUVEYQAUUJBWJ
        NVBVKUUJUVCBXMWJYGXMUPZYHUUBFYGXMGULZVPVCVDUUTUVBXIUULDUKZIUDZXJUUREUKZ
        UPBCXIUUBFFYGXIUPZUUPUVJUUSUVKUVLUUNUVIIYGXIUULDVIUMUVLUUQXJUUREYGXIIUL
        VQUNUULUUBUPZUVJUUDUVKUUFUVMUVIUUCIUULUUBXIDVRUMUVMUURUUEXJEUULUUBIULVT
        UNWAWBWCYRUUEYSXJEYRUVDYLUUEYSUPZUVFAYLYQYOVKYKUVNBXMWJUVGYIUUEYJYSUVGY
        HUUBIUVHUMYGXMHULUNVCVDVTWDYRBCEFHJXHLUUGUUHAUUIYJFUEYQSVLAUUMYGUULEUKF
        UEYQTVLVMUNWEWFWIWGWH $.
    $}

    $d .+ k w $.  $d .+ x y $.  $d F k w $.  $d F x y $.  $d K k w $.
    $d K k x y $.  $d M k w $.  $d M x y $.  $d N k w $.  $d N x y $.
    $d S k w $.  $d S k x y $.  $d Z k w $.  $d Z k x y $.  $d k ph w $.
    $d ph x y $.
    iseqz.3 $e |- ( ( ph /\ x e. S ) -> ( Z .+ x ) = Z ) $.
    iseqz.4 $e |- ( ( ph /\ x e. S ) -> ( x .+ Z ) = Z ) $.
    iseqz.5 $e |- ( ph -> K e. ( M ... N ) ) $.
    iseqz.6 $e |- ( ph -> N e. V ) $.
    iseqz.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.) $)
    iseqz $p |- ( ph -> ( seq M ( .+ , F , S ) ` N ) = Z ) $=
      ( wceq vw vk cuz cfv wcel cseq cfz co elfzuz3 cv wi c1 caddc fveq2 eqeq1d
      imbi2d cz elfzuz eluzelz wa simpr adantr uztrn syl2anc syldan iseq1 eqtrd
      syl iseqeq1 fveq1d syl5ibcom cmin eluzel2 adantlr iseqm1 oveq2d ralrimiva
      oveq1 wral eluzp1m1 sylan iseqcl rspcdva 3eqtrd ex uzp1 mpjaod a1i iseqp1
      wo oveq1d oveq2 eleq1d peano2uz expcom a2d uzind4 mpcom ) IGUCUDZUEZAIDEF
      HUFZUDZKTZAGHIUGUHUEZWTQGHIUIVHAUAUJZXAUDZKTZUKAGXAUDZKTZUKZAUBUJZXAUDZKT
      ZUKAXKULUMUHZXAUDZKTZUKAXCUKUAUBGIXEGTZXGXIAXQXFXHKXEGXAUNUOUPXEXKTZXGXMA
      XRXFXLKXEXKXAUNUOUPXEXNTZXGXPAXSXFXOKXEXNXAUNUOUPXEITZXGXCAXTXFXBKXEIXAUN
      UOUPXJGUQUEZAGHTZXIGHULUMUHUCUDUEZAGDEFGUFZUDZKTYBXIAYEGFUDZKABCDEFGJAGHU
      CUDZUEZYAAXDYHQGHIURVHZHGUSVHNABUJZWSUEZYJYGUEZYJFUDZEUEZAYKUTYKYHYLAYKVA
      AYHYKYIVBGYJHVCVDMVELVFSVGYBYEXHKYBGYDXADEFGHVIVJUOVKAYCXIAYCUTZXHGULVLUH
      ZXAUDZYFDUHYQKDUHZKYOBCDEFHGJAHUQUEZYCAYHYSYIHGVMVHZVBAYCVAAEJUEZYCNVBZAY
      LYNYCMVNZAYJEUECUJZEUEUTZYJUUDDUHEUEZYCLVNZVOYOYFKYQDAYFKTYCSVBVPYOYJKDUH
      ZKTZYRKTBEYQYJYQTUUHYRKYJYQKDVRUOAUUIBEVSYCAUUIBEPVQVBYOBCDEFHYPJAYSYCYPY
      GUEYTHGVTWAUUBUUCUUGWBWCWDWEAYHYBYCWJYIHGWFVHWGWHXKWSUEZAXMXPAUUJXMXPUKAU
      UJUTZXMXPUUKXMUTZXOXLXNFUDZDUHZKUUMDUHZKUUKXOUUNTXMUUKBCDEFHXKJUUKUUJYHXK
      YGUEZAUUJVAAYHUUJYIVBGXKHVCVDZAUUAUUJNVBAYLYNUUJMVNAUUEUUFUUJLVNWIVBUULXL
      KUUMDUUKXMVAWKUUKUUOKTZXMUUKKYJDUHZKTZUURBEUUMYJUUMTUUSUUOKYJUUMKDWLUOAUU
      TBEVSUUJAUUTBEOVQVBUUKYNUUMEUEBYGXNYJXNTYMUUMEYJXNFUNWMAYNBYGVSUUJAYNBYGM
      VQVBUUKUUPXNYGUEUUQHXKWNVHWCWCVBWDWEWOWPWQWR $.
  $}

  ${
    $d .+ b x y $.  $d .+ b x y z $.  $d C a b x y z $.  $d F x y $.
    $d G x y z $.  $d M x y z $.  $d N x y z $.  $d S a b x y z $.
    $d T a b x y z $.  $d ph x y $.
    iseqdistr.1 $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) -> ( x .+ y ) e. S ) $.
    iseqdistr.2 $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) ->
                        ( C T ( x .+ y ) ) = ( ( C T x ) .+ ( C T y ) ) ) $.
    iseqdistr.3 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    iseqdistr.4 $e |- ( ( ph /\ x e. ( ZZ>= ` M ) ) -> ( G ` x ) e. S ) $.
    iseqdistr.5 $e |- ( ( ph /\ x e. ( ZZ>= ` M ) ) ->
      ( F ` x ) = ( C T ( G ` x ) ) ) $.
    iseqdistr.s $e |- ( ph -> S e. V ) $.
    iseqdistr.t $e |- ( ( ph /\ ( x e. S /\ y e. S ) ) -> ( x T y ) e. S ) $.
    iseqdistr.f $e |- ( ( ph /\ x e. ( ZZ>= ` M ) ) -> ( F ` x ) e. S ) $.
    iseqdistr.c $e |- ( ph -> C e. S ) $.
    $( The distributive property for series.  (Contributed by Jim Kingdon,
       21-Aug-2021.) $)
    iseqdistr $p |- ( ph -> ( seq M ( .+ , F , S ) ` N ) =
        ( C T ( seq M ( .+ , G , S ) ` N ) ) ) $=
      ( vz va vb cseq cfv cv co cmpt wcel wceq wral adantr ralrimivva weq oveq1
      wa eleq1d oveq2 cbvral2v sylib rspc2va syl21anc eqid fvmptg simprl simprr
      syl2anc oveq12d 3eqtr4d eqeltrrd eqtr4d iseqhomo iseqcl caovcld eqtr3d
      cuz ) AKEFIJUEUFZUBFDUBUGZGUHZUIZUFZKEFHJUEUFDVRGUHZABCEEFIHWAJKLMPROABUG
      ZFUJZCUGZFUJZUQZUQZDWDWFEUHZGUHZDWDGUHZDWFGUHZEUHWJWAUFZWDWAUFZWFWAUFZEUH
      NWIWJFUJZWKFUJZWNWKUKMWIDFUJZWQUCUGZUDUGZGUHZFUJZUDFULUCFULZWRAWSWHUAUMZM
      AXDWHAWDWFGUHZFUJZCFULBFULXDAXGBCFFSUNXGXCWTWFGUHZFUJBCUCUDFFBUCUOXFXHFWD
      WTWFGUPURCUDUOXHXBFWFXAWTGUSURUTVAUMZXCWRDXAGUHZFUJZUCUDDWJFFWTDUKXBXJFWT
      DXAGUPURZXAWJUKXJWKFXAWJDGUSURVBVCUBWJVTWKFFWAVSWJDGUSWAVDZVEVHWIWOWLWPWM
      EWIWEWLFUJZWOWLUKAWEWGVFZWIWSWEXDXNXEXOXIXCXNXKUCUDDWDFFXLUDBUOXJWLFXAWDD
      GUSURVBVCUBWDVTWLFFWAVSWDDGUSXMVEVHWIWGWMFUJZWPWMUKAWEWGVGZWIWSWGXDXPXEXQ
      XIXCXPXKUCUDDWFFFXLUDCUOXJWMFXAWFDGUSURVBVCUBWFVTWMFFWAVSWFDGUSXMVEVHVIVJ
      AWDJVQUFUJUQZWDIUFZWAUFZDXSGUHZWDHUFZXRXSFUJYAFUJXTYAUKPXRYBYAFQTVKUBXSVT
      YAFFWAVSXSDGUSXMVEVHQVLTMVMAVRFUJWCFUJWBWCUKABCEFIJKLORPMVNZABCDVRFFFGSUA
      YCVOUBVRVTWCFFWAVSVRDGUSXMVEVHVP $.
  $}

  ${
    $d M k v $.  $d N k v $.  $d Z k v $.
    iser0.1 $e |- Z = ( ZZ>= ` M ) $.
    $( The value of the partial sums in a zero-valued infinite series.
       (Contributed by Jim Kingdon, 19-Aug-2021.) $)
    iser0 $p |- ( N e. Z -> ( seq M ( + , ( Z X. { 0 } ) , CC ) ` N ) = 0 ) $=
      ( vk vv wcel caddc cc cc0 cvv co wceq a1i cfv eleq2i cv wa 0cn adantl csn
      cxp 00id cuz biimpi elfzuz syl6eleqr fvconst2g sylancr 0cnd cnex syl6eqel
      cfz biimpri addcl iseqid3s ) BCGZEFHICJUAUBZABKJJJHLJMUQUCNUQBAUDOZGCUSBD
      PUEUQEQZABUMLGZRJIGZUTCGZUTUROZJMZSVAVCUQVAUTUSCUTABUFDUGTCJUTIUHZUIUQUJI
      KGUQUKNUQUTUSGZRZVDJIVHVBVCVESVGVCUQVCVGCUSUTDPUNTVFUISULUTIGFQZIGRUTVIHL
      IGUQUTVIUOTUP $.

    $( A zero-valued infinite series is equal to the constant zero function.
       (Contributed by Jim Kingdon, 19-Aug-2021.) $)
    iser0f $p |- ( M e. ZZ ->
        seq M ( + , ( Z X. { 0 } ) , CC ) = ( Z X. { 0 } ) ) $=
      ( vk vv cz wcel caddc cc cc0 csn cxp cseq wceq cv cfv c0ex wfn cvv adantl
      wral iser0 fvconst2 eqtr4d rgen wb cuz id cnex eleq2i 0cnd eqeltrd sylbir
      a1i wa co addcl iseqfn fneq2i sylibr wf fconst ffn eqfnfv sylancl mpbiri
      ax-mp ) AFGZHIBJKZLZAMZVJNZDOZVKPZVMVJPZNZDBUAZVPDBVMBGZVNJVOAVMBCUBBJVMQ
      UCZUDUEVHVKBRZVJBRZVLVQUFVHVKAUGPZRVTVHDEHIVJASVHUHISGVHUIUNVMWBGZVOIGZVH
      WCVRWDBWBVMCUJVRVOJIVSVRUKULUMTVMIGEOZIGUOVMWEHUPIGVHVMWEUQTURBWBVKCUSUTB
      VIVJVAWABJQVBBVIVJVCVGDBVKVJVDVEVF $.
  $}

  ${
    $d k x y F $.  $d k x G $.  $d k x y M $.  $d k x y N $.  $d k x y ph $.
    serige0.1 $e |- ( ph -> N e. ( ZZ>= ` M ) ) $.
    serige0.2 $e |- ( ( ph /\ k e. ( ZZ>= ` M ) ) -> ( F ` k ) e. RR ) $.
    ${
      serige0.3 $e |- ( ( ph /\ k e. ( ZZ>= ` M ) ) -> 0 <_ ( F ` k ) ) $.
      $( A finite sum of nonnegative terms is nonnegative.  (Contributed by Jim
         Kingdon, 22-Aug-2021.) $)
      serige0 $p |- ( ph -> 0 <_ ( seq M ( + , F , CC ) ` N ) ) $=
        ( vx caddc cc cfv cc0 cle wbr cr wcel wa breq2 elrab vy cseq cv cvv cuz
        crab cz eluzel2 syl cnex a1i ssrab2 ax-resscn sstri sylanbrc co readdcl
        wss ad2ant2r addge0 an4s syl2anb adantl addcl iseqss fveq1d reex iseqcl
        rabex eqeltrrd simprbi ) AEJKCDUBZLZMIUCZNOZIPUFZQZMVMNOZAEJVPCDUBZLVMV
        PAEVSVLABUAJVPKCDUDAEDUELZQDUGQFDEUHUIKUDQAUJUKVPKURAVPPKVOIPULUMUNUKAB
        UCZVTQRWACLZPQMWBNOZWBVPQGHVOWCIWBPVNWBMNSTUOZWAVPQZUAUCZVPQZRWAWFJUPZV
        PQZAWEWAPQZMWANOZRZWFPQZMWFNOZRZWIWGVOWKIWAPVNWAMNSTVOWNIWFPVNWFMNSTWLW
        ORWHPQZMWHNOZWIWJWMWPWKWNWAWFUQUSWJWMWKWNWQWAWFUTVAVOWQIWHPVNWHMNSTUOVB
        VCZWAKQWFKQRWHKQAWAWFVDVCVEVFABUAJVPCDEUDFVPUDQAVOIPVGVIUKWDWRVHVJVQVMP
        QVRVOVRIVMPVNVMMNSTVKUI $.
    $}

    serile.3 $e |- ( ( ph /\ k e. ( ZZ>= ` M ) ) -> ( G ` k ) e. RR ) $.
    serile.4 $e |- ( ( ph /\ k e. ( ZZ>= ` M ) ) -> ( F ` k ) <_ ( G ` k ) ) $.
    $( Comparison of partial sums of two infinite series of reals.
       (Contributed by Jim Kingdon, 22-Aug-2021.) $)
    serile $p |- ( ph ->
        ( seq M ( + , F , CC ) ` N ) <_ ( seq M ( + , G , CC ) ` N ) ) $=
      ( vx cc0 caddc cc cseq cfv cle cvv wcel cr cmin co wbr cv cmpt cuz wa vex
      wceq resubcld oveq12d eqid fvmptg sylancr eqeltrd subge0d mpbird breqtrrd
      fveq2 serige0 recnd isersub breqtrd cz eluzel2 syl cnex a1i wss ax-resscn
      readdcl adantl addcl iseqss fveq1d reex iseqcl eqeltrrd mpbid ) ALFMNDEOZ
      PZFMNCEOZPZUAUBZQUCWCWAQUCALFMNKRKUDZDPZWECPZUAUBZUEZEOPWDQABWIEFGABUDZEU
      FPZSUGZWJWIPZWJDPZWJCPZUAUBZTWLWJRSWPTSWMWPUIBUHWLWNWOIHUJZKWJWHWPRTWIWEW
      JUIWFWNWGWOUAWEWJDUSWEWJCUSUKWIULUMUNZWQUOWLLWPWMQWLLWPQUCWOWNQUCJWLWNWOI
      HUPUQWRURUTABDCWIEFGWLWNIVAWLWOHVAWRVBVCAWAWCAFMTDEOZPWATAFWSVTABKMTNDERA
      FWKSEVDSGEFVEVFZNRSAVGVHZTNVIAVJVHZIWJTSWETSUGWJWEMUBZTSAWJWEVKVLZWJNSWEN
      SUGXCNSAWJWEVMVLZVNVOABKMTDEFRGTRSAVPVHZIXDVQVRAFMTCEOZPWCTAFXGWBABKMTNCE
      RWTXAXBHXDXEVNVOABKMTCEFRGXFHXDVQVRUPVS $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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.  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. 4-Jun-2014:
       The definition was extended to include negative integer exponents.  The
       case ` x = 0 , y < 0 ` gives the value ` ( 1 / 0 ) ` , so we will avoid
       this case in our theorems.  (Contributed by Jim Kingdon, 7-Jun-2020.) $)
    df-iexp $a |- ^ = ( x e. CC , y e. ZZ |-> if ( y = 0 , 1 , if ( 0 < y ,
        ( seq 1 ( x. , ( NN X. { x } ) , CC ) ` y ) ,
        ( 1 / ( seq 1 ( x. , ( NN X. { x } ) , CC ) ` -u y ) ) ) ) ) $.
  $}

  ${
    $d A k n x y $.  $d N n $.

    $( Lemma for ~ expival .  If we take a complex number apart from zero and
       raise it to a positive integer power, the result is apart from zero.
       (Contributed by Jim Kingdon, 7-Jun-2020.) $)
    expivallem $p |- ( ( A e. CC /\ A # 0 /\ N e. NN ) ->
        ( seq 1 ( x. , ( NN X. { A } ) , CC ) ` N ) # 0 ) $=
      ( vx vy cc wcel cc0 cap wbr cn cmul c1 cfv wa cv wi co wceq fveq2 breq1d
      vn csn cxp cseq caddc imbi2d simpr cvv 1zzd cnex a1i cuz elnnuz fvconst2g
      sylan2br adantlr simpll eqeltrd mulcl adantl iseq1 1nn mpan2 adantr eqtrd
      vk mpbird simpl sylib adantll iseqcl simplrl simplrr mulap0d wb peano2nnd
      iseqp1 simprl syl2anc oveq2d exp31 a2d nnind impcom 3impa ) AEFZAGHIZBJFZ
      BKEJAUBUCZLUDZMZGHIZWHWFWGNZWLWMUAOZWJMZGHIZPWMLWJMZGHIZPWMVFOZWJMZGHIZPW
      MWSLUEQZWJMZGHIZPWMWLPUAVFBWNLRZWPWRWMXEWOWQGHWNLWJSTUFWNWSRZWPXAWMXFWOWT
      GHWNWSWJSTUFWNXBRZWPXDWMXGWOXCGHWNXBWJSTUFWNBRZWPWLWMXHWOWKGHWNBWJSTUFWMW
      RWGWFWGUGWMWQAGHWMWQLWIMZAWMCDKEWILUHWMUIEUHFZWMUJUKWMCOZLULMZFZNXKWIMZAE
      WFXMXNARZWGXMWFXKJFXOXKUMJAXKEUNUOUPWFWGXMUQURZXKEFDOZEFNZXKXQKQEFZWMXKXQ
      USZUTVAWFXIARZWGWFLJFYAVBJALEUNVCVDVETVGWSJFZWMXAXDYBWMXAXDYBWMNZXANZXDWT
      AKQZGHIZYDWTAYDCDKEWILWSUHYCWSXLFZXAYCYBYGYBWMVHZWSUMVIZVDXJYDUJUKYCXMXNE
      FZXAWMXMYJYBXPVJZUPXRXSYDXTUTVKYBWFWGXAVLYCXAUGYBWFWGXAVMVNYCXDYFVOXAYCXC
      YEGHYCXCWTXBWIMZKQYEYCCDKEWILWSUHYIXJYCUJUKYKXRXSYCXTUTVQYCYLAWTKYCWFXBJF
      YLARYBWFWGVRYCWSYHVPJAXBEUNVSVTVETVDVGWAWBWCWDWE $.
  $}

  ${
    $d x y z w A $.  $d x y z w N $.
    $( Value of exponentiation to integer powers.  (Contributed by Jim Kingdon,
       7-Jun-2020.) $)
    expival $p |- ( ( A e. CC /\ N e. ZZ /\ ( A # 0 \/ 0 <_ N ) ) ->
        ( A ^ N ) =
        if ( N = 0 , 1 , if ( 0 < N ,
        ( seq 1 ( x. , ( NN X. { A } ) , CC ) ` N ) ,
        ( 1 / ( seq 1 ( x. , ( NN X. { A } ) , CC ) ` -u N ) ) ) ) ) $=
      ( cc wcel cz cc0 wbr wceq c1 clt cmul cn cfv cdiv co cif wa mpbird adantl
      wb vz vw vx vy cap cle wo csn cxp cseq cneg w3a wn iftrue ax-1cn syl6eqel
      cexp wi a1i cvv cuz elnnz elnnuz bitr3i biimpi adantll cv simpl fvconst2g
      cnex sylan2br eleq1d adantlr mulcl iseqcl adantr 3adantl3 simpll2 znegcld
      ex wne simpr zred 0red lenltd simplr neneqad necomd zltlen mpan2 3ad2ant2
      ad2antrr mpbir2and lt0neg1d mpbid sylanbrc sylib 3ad2antl1 simpll1 3com23
      expivallem 3expia syl2anc neneqd ioran zleloe mpan mtbird pm2.21d simpll3
      0z mpjaod recclapd iffalse wdc zdclt df-dc sneq xpeq2d iseqeq3 syl fveq1d
      zdceq oveq2d ifeq12d ifeq2d eqeq1 breq2 fveq2d ifbieq12d ifbieq2d df-iexp
      fveq2 negeq ovmpt2g syld3an3 ) ACDZBEDZAFUEGZFBUFGZUGZBFHZIFBJGZBKCLAUHZU
      IZIUJZMZIBUKZUUFMZNOZPZPZCDZABUQOUULHYQYRUUAULZUUBUUMUUBUMZUUBUUMURUUNUUB
      UULICUUBIUUKUNUOUPUSUUNUUOUUMUUNUUOQZUUMUUKCDZUUPUUCUUQUUCUMZYQYRUUOUUCUU
      QURZUUAYQYRQZUUSUUOUUTUUCUUQUUTUUCQZUUQUUGCDZUVAUAUBKCUUEIBUTYRUUCBIVAMZD
      ZYQYRUUCQZUVDUVEBLDUVDBVBBVCVDVEVFCUTDZUVAVJUSUUTUAVGZUVCDZUVGUUEMZCDZUUC
      YQUVHUVJYRYQUVHQZUVJYQYQUVHVHUVKUVIACUVHYQUVGLDUVIAHUVGVCLAUVGCVIVKVLRZVM
      VMUVGCDUBVGZCDQZUVGUVMKOCDZUVAUVGUVMVNZSVOUUCUUQUVBTUUTUUCUUKUUGCUUCUUGUU
      JUNVLSRVTVPVQUUPUURUUQUUPUURQZUUQUUJCDZUVQUUIUVQUAUBKCUUEIUUHUTUVQUUHLDZU
      UHUVCDUVQUUHEDFUUHJGZUVSUVQBYQYRUUAUUOUURVRZVSUVQBFJGZUVTUVQUWBBFUFGZFBWA
      ZUVQUWCUURUUPUURWBZUVQBFUVQBUWAWCZUVQWDWERUVQBFUVQBFUUNUUOUURWFWGWHZUUNUW
      BUWCUWDQTZUUOUURYRYQUWHUUAYRFEDZUWHXKBFWIWJWKWLWMUVQBUWFWNWOUUHVBWPZUUHVC
      WQUVFUVQVJUSUUPUVHUVJUURUUNUVHUVJUUOYQYRUVHUVJUUAUVLWRVMVMUVNUVOUVQUVPSVO
      UVQYSUUIFUEGZYTUVQYQUVSYSUWKURYQYRUUAUUOUURWSUWJYQUVSYSUWKYQYSUVSUWKAUUHX
      AWTXBXCUVQYTUWKUVQYTUUCFBHZUGZUVQUURUWLUMUWMUMUWEUVQFBUWGXDUUCUWLXEWPUUNY
      TUWMTZUUOUURYRYQUWNUUAUWIYRUWNXKFBXFXGWKWLXHXIYQYRUUAUUOUURXJXLXMUURUUQUV
      RTUUPUURUUKUUJCUUCUUGUUJXNVLSRVTYQYRUUOUUCUURUGZUUAUUTUWOUUOYRUWOYQYRUUCX
      OZUWOUWIYRUWPXKFBXPXGUUCXQWQSVPVQXLUUOUUMUUQTUUNUUOUULUUKCUUBIUUKXNVLSRVT
      YRYQUUBUUOUGZUUAYRUUBXOZUWQYRUWIUWRXKBFYCWJUUBXQWQWKXLUCUDABCEUDVGZFHZIFU
      WSJGZUWSKCLUCVGZUHZUIZIUJZMZIUWSUKZUXEMZNOZPZPUULUQUWTIUXAUWSUUFMZIUXGUUF
      MZNOZPZPCUXBAHZUWTUXJUXNIUXOUXAUXFUXKUXIUXMUXOUWSUXEUUFUXOUXDUUEHUXEUUFHU
      XOUXCUUDLUXBAXRXSKCUXDUUEIXTYAZYBUXOUXHUXLINUXOUXGUXEUUFUXPYBYDYEYFUWSBHZ
      UWTUUBUXNUUKIUWSBFYGUXQUXAUUCUXKUXMUUGUUJUWSBFJYHUWSBUUFYMUXQUXLUUIINUXQU
      XGUUHUUFUWSBYNYIYDYJYKUCUDYLYOYP $.
  $}

  $( Value of exponentiation to positive integer powers.  (Contributed by Jim
     Kingdon, 8-Jun-2020.) $)
  expinnval $p |- ( ( A e. CC /\ N e. NN ) -> ( A ^ N ) =
      ( seq 1 ( x. , ( NN X. { A } ) , CC ) ` N ) ) $=
    ( cc wcel cn wa cexp co cc0 wceq clt wbr cmul csn cxp cfv cif adantl eqtrd
    c1 cseq cneg cdiv cz cap cle wo simpl nnz simpr nnnn0d nn0ge0d olcd expival
    syl3anc nnne0 neneqd iffalsed nngt0 iftrued ) ACDZBEDZFZABGHZBIJZTIBKLZBMCE
    ANOTUAZPZTBUBVGPUCHZQZQZVHVCVABUDDZAIUELZIBUFLZUGVDVKJVAVBUHVBVLVABUIRVCVNV
    MVCBVCBVAVBUJUKULUMABUNUOVBVKVHJVAVBVKVJVHVBVETVJVBBIBUPUQURVBVFVHVIBUSUTSR
    S $.

  $( 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 cap cle wo 0zd 0le0 a1i olcd expival mpd3an23 eqid iftruei syl6eq ) ABC
    ZADEFZDDGZHDDIJDKBLAMNHOZPHDQUPPRFTZTZHUMDSCADUAJZDDUBJZUCUNURGUMUDUMUTUSUT
    UMUEUFUGADUHUIUOHUQDUJUKUL $.

  $( ` 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 $.

  ${
    $d A x y $.
    $( 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 ) $=
      ( vx vy cc wcel c1 cexp co cmul cn csn cxp cfv 1nn mpan2 cvv cv fvconst2g
      wceq wa cseq expinnval 1zzd cnex a1i elnnuz sylan2br simpl eqeltrd adantl
      cuz mulcl iseq1 3eqtrd ) ADEZAFGHZFIDJAKLZFUAMZFUQMZAUOFJEZUPURSNAFUBOUOB
      CIDUQFPUOUCDPEUOUDUEUOBQZFUKMEZTVAUQMZADVBUOVAJEVCASVAUFJAVADRUGUOVBUHUIV
      ADECQZDETVAVDIHDEUOVAVDULUJUMUOUTUSASNJAFDROUN $.
  $}

  ${
    $d A x y $.  $d N x y $.
    $( 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 ) ) $=
      ( vx vy wcel cc cn cc0 wceq c1 caddc co cexp cmul wa cfv cvv simpr elnnuz
      oveq1d cn0 wo elnn0 csn cxp cseq cuz sylib a1i cv simpll fvconst2g eleq1d
      cnex wb sylan2br adantlr mpbird mulcl adantl iseqp1 peano2nn sylan2 eqtrd
      oveq2d expinnval 3eqtr4d exp1 mulid2 eqtr4d adantr 0p1e1 syl6eq sylan9eqr
      oveq2 exp0 jaodan sylan2b ) BUAEAFEZBGEZBHIZUBABJKLZMLZABMLZANLZIZBUCVSVT
      WFWAVSVTOZWBNFGAUDUEZJUFZPZBWIPZANLZWCWEWGWJWKWBWHPZNLWLWGCDNFWHJBQWGVTBJ
      UGPZEVSVTRBSUHFQEWGUNUIWGCUJZWNEZOWOWHPZFEZVSVSVTWPUKVSWPWRVSUOZVTWPVSWOG
      EZWSWOSVSWTOWQAFGAWOFULUMUPUQURWOFEDUJZFEOWOXANLFEWGWOXAUSUTVAWGWMAWKNVTV
      SWBGEZWMAIBVBZGAWBFULVCVEVDVTVSXBWCWJIXCAWBVFVCWGWDWKANABVFTVGVSWAOZAJMLZ
      JANLZWCWEVSXEXFIWAVSXEAXFAVHAVIVJVKXDWBJAMXDWBHJKLJXDBHJKVSWARTVLVMVEXDWD
      JANWAVSWDAHMLJBHAMVOAVPVNTVGVQVR $.
  $}

  $( Value of a complex number raised to a negative integer power.
     (Contributed by Jim Kingdon, 8-Jun-2020.) $)
  expnegap0 $p |- ( ( A e. CC /\ A # 0 /\ N e. NN0 ) ->
      ( A ^ -u N ) = ( 1 / ( A ^ N ) ) ) $=
    ( cc wcel cc0 wbr cneg cexp co c1 cdiv wceq wa cn wo clt cfv adantl adantlr
    oveq2d cap cn0 elnn0 cmul csn cxp cseq cif wn nnne0 nncn negeq0d necon3abid
    wne mpbid iffalsed nnnn0 nn0nlt0 syl nn0red mtbid negnegd fveq2d 3eqtrd w3a
    lt0neg1d cz cle simp1 simp3 nnzd znegcld simp2 orcd expival 3expa expinnval
    syl3anc 3eqtr4d 1div1e1 eqcomi negeq neg0 syl6eq exp0 oveq2 3eqtr4a sylan2b
    sylan9eqr jaodan 3impa ) ACDZAEUAFZBUBDZABGZHIZJABHIZKIZLZWNWLWMMZBNDZBELZO
    WSBUCWTXAWSXBWTXAMWOELZJEWOPFZWOUDCNAUEUFJUGZQZJWOGZXEQZKIZUHZUHZJBXEQZKIZW
    PWRWLXAXKXMLWMWLXAMZXKXJXIXMXNXCJXJXNBEUNZXCUIXAXOWLBUJRXNXCBEXNBXABCDWLBUK
    RZULUMUOUPXNXDXFXIXNBEPFZXDXNWNXQUIXAWNWLBUQRZBURUSXNBXNBXRUTVFVAUPXNXHXLJK
    XNXGBXEXNBXPVBVCTVDSWLWMXAWPXKLZWLWMXAVEZWLWOVGDWMEWOVHFZOXSWLWMXAVIXTBXTBW
    LWMXAVJVKVLXTWMYAWLWMXAVMVNAWOVOVRVPWLXAWRXMLWMXNWQXLJKABVQTSVSWLXBWSWMWLXB
    MZJJJKIZWPWRYCJVTWAXBWLWPAEHIZJXBWOEAHXBWOEGEBEWBWCWDTAWEZWIYBWQJJKXBWLWQYD
    JBEAHWFYEWITWGSWJWHWK $.

  $( Value of a complex number raised to a negative integer power.
     (Contributed by Jim Kingdon, 8-Jun-2020.) $)
  expineg2 $p |- ( ( ( A e. CC /\ A # 0 ) /\ ( N e. CC /\ -u N e. NN0 ) ) ->
      ( A ^ N ) = ( 1 / ( A ^ -u N ) ) ) $=
    ( cc wcel cc0 cap wbr wa cneg cn0 cexp co c1 cdiv negneg ad2antrl expnegap0
    wceq oveq2d 3expa adantrl eqtr3d ) ACDZAEFGZHZBCDZBIZJDZHHZAUGIZKLZABKLMAUG
    KLNLZUIUJBAKUFUJBRUEUHBOPSUEUHUKULRZUFUCUDUHUMAUGQTUAUB $.

  $( A number to the negative one power is the reciprocal.  (Contributed by Jim
     Kingdon, 8-Jun-2020.) $)
  expn1ap0 $p |- ( ( A e. CC /\ A # 0 ) -> ( A ^ -u 1 ) = ( 1 / A ) ) $=
    ( cc wcel cc0 cap wbr wa cneg cexp cdiv cn0 wceq 1nn0 expnegap0 mp3an3 exp1
    c1 co oveq2d adantr eqtrd ) ABCZADEFZGAQHIRZQAQIRZJRZQAJRZUBUCQKCUDUFLMAQNO
    UBUFUGLUCUBUEAQJAPSTUA $.

  ${
    $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 $.

    expcl2lemap.4 $e |- ( ( x e. F /\ x # 0 ) -> ( 1 / x ) e. F ) $.
    $( Lemma for proving integer exponentiation closure laws.  (Contributed by
       Jim Kingdon, 8-Jun-2020.) $)
    expcl2lemap $p |- ( ( A e. F /\ A # 0 /\ B e. ZZ ) -> ( A ^ B ) e. F ) $=
      ( vz wcel cc0 cap wbr co wa c1 cc breq1 elrab cz cexp cr cneg cn elznn0nn
      cn0 wo wi expcllem ex adantr cdiv simpll sseldi simplr simprl recnd nnnn0
      wceq ad2antll expineg2 syl22anc crab ssrab2 simpl sylibr sstri cmul sseli
      cv syl2an anim1i sylbi mulap0 sylanbrc 1ap0 mpbir2an syl2anc sylib simprd
      oveq2 eleq1d imbi12d vtoclga sylc eqeltrd jaod syl5bi 3impia ) CEKZCLMNZD
      UAKZCDUBOZEKZWMDUGKZDUCKZDUDZUEKZPZUHWKWLPZWODUFXAWPWOWTWKWPWOUIWLWKWPWOA
      BCDEFGHUJUKULXAWTWOXAWTPZWNQCWRUBOZUMOZEXBCRKWLDRKWRUGKZWNXDUTXBERCFWKWLW
      TUNUOWKWLWTUPXBDXAWQWSUQURWSXEXAWQWRUSVAZCDVBVCXBXCEKZXCLMNZXDEKZXBJVKZLM
      NZJEVDZEXCXKJEVEZXBCXLKZXEXCXLKZXBXAXNXAWTVFXKWLJCEXJCLMSTVGXFABCWRXLXLER
      XMFVHAVKZXLKZBVKZXLKZPXPXRVIOZEKZXTLMNZXTXLKXQXPEKZXREKZYAXSXLEXPXMVJXLEX
      RXMVJGVLXQXPRKZXPLMNZPZXRRKZXRLMNZPZYBXSXQYCYFPYGXKYFJXPEXJXPLMSTYCYEYFER
      XPFVJVMVNXSYDYIPYJXKYIJXREXJXRLMSTYDYHYIERXRFVJVMVNXPXRVOVLXKYBJXTEXJXTLM
      STVPQXLKQEKQLMNZHVQXKYKJQEXJQLMSTVRUJVSZUOXBXGXHXBXOXGXHPYLXKXHJXCEXJXCLM
      STVTWAYFQXPUMOZEKZUIXHXIUIAXCEXPXCUTZYFXHYNXIXPXCLMSYOYMXDEXPXCQUMWBWCWDY
      CYFYNIUKWEWFWGUKWHWIWJ $.
  $}

  ${
    $d x y z A $.  $d x y z 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 cap wbr cexp co simpl rpap0 adantr simpr cr cc
      cv rpssre ax-resscn sstri rpmulcl 1rp c1 cdiv rpreccl expcl2lemap syl3anc
      ) AEFZBGFZHUKAIJKZULABLMEFUKULNUKUMULAOPUKULQCDABEERSUAUBUCCTZDTUDUEUNEFU
      FUNUGMEFUNIJKUNUHPUIUJ $.

    $( Closure of exponentiation of reals.  (Contributed by Jim Kingdon,
       9-Jun-2020.) $)
    reexpclzap $p |- ( ( A e. RR /\ A # 0 /\ N e. ZZ ) ->
        ( A ^ N ) e. RR ) $=
      ( vx vy cr ax-resscn cv remulcl 1re rerecclap expcl2lemap ) CDABEFCGZDGHI
      LJK $.

    $( 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 wcel cc0 wne cz w3a cap wbr co wb zq ax-mp qapne mpan2 cv c1
      cexp 0z 3anbi2d 3ad2ant1 ibir qsscn qmulcl 1z wa cdiv pm5.32i expcl2lemap
      qreccl sylbi syl ) AEFZAGHZBIFZJZUPAGKLZURJZABUAMEFUSVAUPUQVAUSNURUPUTUQU
      PURUPGEFZUTUQNGIFVBUBGOPZAGQRUCUDUECDABEUFCSZDSUGTIFTEFUHTOPVDEFZVDGKLZUI
      VEVDGHZUITVDUJMEFVEVFVGVEVBVFVGNVCVDGQRUKVDUMUNULUO $.

    $( 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 cap wbr neg1cn ax-1cn cmul wceq eqeltri syl6eqel
      co cc jaoi syl cdiv cpr cz cexp prid1g ax-mp neg1ap0 prssi mp2an cv wo wi
      wss elpri sseli mulm1d negeq negneg1e1 prid2 eqeltrd oveq1 eleq1d syl5ibr
      1ex mulid2d id imp oveq2 1ap0 divneg2ap 1div1e1 negeqi eqtr3i expcl2lemap
      mp3an adantr mp3an12 ) DEZVQDUAZFZVQGHIAUBFVQAUCPVRFVQQFZVSJVQDQUDUEZUFBC
      VQAVRVTDQFZVRQULJKVQDQUGUHZBUIZVRFZCUIZVRFZWDWFLPZVRFZWEWDVQMZWDDMZUJZWGW
      IUKZWDVQDUMZWJWMWKWGWIWJVQWFLPZVRFWGWOWFEZVRWGWFVRQWFWCUNZUOWGWFVQMZWFDMZ
      UJWPVRFZWFVQDUMWRWTWSWRWPVQEZVRWFVQUPXADVRUQVQDVCURZNOWSWPVQVRWFDUPWAORSU
      SWJWHWOVRWDVQWFLUTVAVBWGWIWKDWFLPZVRFWGXCWFVRWGWFWQVDWGVEUSWKWHXCVRWDDWFL
      UTVAVBRSVFXBWEDWDTPZVRFZWDGHIWEWLXEWNWJXEWKWJXDDVQTPZVRWDVQDTVGXFVQVRDDTP
      ZEZXFVQWBWBDGHIXHXFMKKVHDDVIVNXGDVJVKVLWANOWKXDXGVRWDDDTVGXGDVRVJXBNORSVO
      VMVP $.

    $( 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.  Lemma for ~ expclzap and
       ~ expap0i .  (Contributed by Jim Kingdon, 9-Jun-2020.) $)
    expclzaplem $p |- ( ( A e. CC /\ A # 0 /\ N e. ZZ ) ->
        ( A ^ N ) e. { z e. CC | z # 0 } ) $=
      ( vx vy cc wcel cc0 cap wbr cz cexp co cv crab wi wa breq1 elrab c1 mulcl
      ssrab2 cmul ad2ant2r mulap0 sylanbrc syl2anb ax-1cn 1ap0 mpbir2an recclap
      cdiv recap0 jca 3imtr4i adantr expcl2lemap 3expia sylanbr anabss3 3impia
      ) BFGZBHIJZCKGZBCLMANZHIJZAFOZGZVBVCVDVHPZVBVCQBVGGZVCVIVFVCABFVEBHIRSVJV
      CVDVHDEBCVGVFAFUBDNZVGGZVKFGZVKHIJZQZENZFGZVPHIJZQZVKVPUCMZVGGZVPVGGVFVNA
      VKFVEVKHIRSZVFVRAVPFVEVPHIRSVOVSQVTFGZVTHIJZWAVMVQWCVNVRVKVPUAUDVKVPUEVFW
      DAVTFVEVTHIRSUFUGTVGGTFGTHIJZUHUIVFWEATFVETHIRSUJVLTVKULMZVGGZVNVOWFFGZWF
      HIJZQVLWGVOWHWIVKUKVKUMUNWBVFWIAWFFVEWFHIRSUOUPUQURUSUTVA $.

    $( Closure law for integer exponentiation.  (Contributed by Jim Kingdon,
       9-Jun-2020.) $)
    expclzap $p |- ( ( A e. CC /\ A # 0 /\ N e. ZZ ) -> ( A ^ N ) e. CC ) $=
      ( vz cc wcel cc0 cap wbr cz cexp co cv crab expclzaplem breq1 elrab sylib
      w3a wa simpld ) ADEAFGHBIERZABJKZDEZUBFGHZUAUBCLZFGHZCDMEUCUDSCABNUFUDCUB
      DUEUBFGOPQT $.
  $}

  ${
    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 N $.
    $( 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 wcel c1 co wceq cc0 cap wbr 1ex cc cv wa cmul syl6eq cvv syl cdiv
      elsni cz cexp csn snid 1ap0 wss ax-1cn snssi ax-mp oveq12 1t1e1 syl2an wb
      eleq1 mpbiri elsng ibir oveq2d 1div1e1 adantr expcl2lemap mp3an12 ) AUADZ
      EAUBFZEUCZDZVDEGEVEDEHIJVCVFEKUDZUEBCEAVEELDVELUFUGELUHUIBMZVEDZCMZVEDZNV
      HVJOFZEGZVLVEDZVIVHEGZVJEGZVMVKVHETZVJETVOVPNVLEEOFEVHEVJEOUJUKPULVMVNVMV
      LQDZVNVMUMVMVREQDZKVLEQUNUOVLEQUPRUQRVGVIEVHSFZVEDZVHHIJVIVTEGZWAVIVTEESF
      EVIVHEESVQURUSPWBWAWBVTQDZWAWBUMWBWCVSKVTEQUNUOVTEQUPRUQRUTVAVBVDETR $.
  $}

  ${
    $d A j k $.  $d N j $.
    $( Positive integer exponentiation is apart from zero iff its mantissa is
       apart from zero.  That it is easier to prove this first, and then prove
       ~ expeq0 in terms of it, rather than the other way around, is perhaps an
       illustration of the maxim "In constructive analysis, the apartness is
       more basic [ than ] equality."  ([Geuvers], p. 1).  (Contributed by Jim
       Kingdon, 10-Jun-2020.) $)
    expap0 $p |- ( ( A e. CC /\ N e. NN ) ->
                    ( ( A ^ N ) # 0 <-> A # 0 ) ) $=
      ( vj vk cn wcel cexp co cc0 cap wbr wb wi wceq oveq2 breq1d bibi1d imbi2d
      c1 wa cc cv caddc exp1 cmul cn0 nnnn0 expp1 ancoms adantr simplr ad2antrr
      sylan expcl syl2anc mulap0bd anbi1 adantl 3bitr2d anidm syl6bb a2d impcom
      exp31 nnind ) BEFAUAFZABGHZIJKZAIJKZLZVFACUBZGHZIJKZVILZMVFASGHZIJKZVILZM
      VFADUBZGHZIJKZVILZMVFAVRSUCHZGHZIJKZVILZMVFVJMCDBVKSNZVNVQVFWFVMVPVIWFVLV
      OIJVKSAGOPQRVKVRNZVNWAVFWGVMVTVIWGVLVSIJVKVRAGOPQRVKWBNZVNWEVFWHVMWDVIWHV
      LWCIJVKWBAGOPQRVKBNZVNVJVFWIVMVHVIWIVLVGIJVKBAGOPQRVFVOAIJAUDPVREFZVFWAWE
      WJVFWAWEWJVFTZWATZWDVIVITZVIWLWDVSAUEHZIJKZVTVITZWMWKWDWOLZWAWJVRUFFZVFWQ
      VRUGZVFWRWQVFWRTWCWNIJAVRUHPUIUMUJWLVSAWLVFWRVSUAFWJVFWAUKZWJWRVFWAWSULAV
      RUNUOWTUPWAWPWMLWKVTVIVIUQURUSVIUTVAVDVBVEVC $.
  $}

  $( 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 ) ) $=
    ( cc wcel cn wa cexp co cc0 cap wbr wn wceq expap0 notbid wb cn0 nnnn0 apti
    0cn expcl sylan2 sylancl mpan2 adantr 3bitr4d ) ACDZBEDZFZABGHZIJKZLZAIJKZL
    ZUJIMZAIMZUIUKUMABNOUIUJCDZICDZUOULPUHUGBQDUQBRABUAUBTUJISUCUGUPUNPZUHUGURU
    STAISUDUEUF $.

  ${
    $d A z $.  $d N z $.
    $( Integer exponentiation is apart from zero if its mantissa is apart from
       zero.  (Contributed by Jim Kingdon, 10-Jun-2020.) $)
    expap0i $p |- ( ( A e. CC /\ A # 0 /\ N e. ZZ ) -> ( A ^ N ) # 0 ) $=
      ( vz cc wcel cc0 cap wbr cz cexp co cv crab expclzaplem breq1 elrab sylib
      w3a wa simprd ) ADEAFGHBIERZABJKZDEZUBFGHZUAUBCLZFGHZCDMEUCUDSCABNUFUDCUB
      DUEUBFGOPQT $.
  $}

  $( 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.) $)
  expnegzap $p |- ( ( A e. CC /\ A # 0 /\ N e. ZZ ) ->
      ( A ^ -u N ) = ( 1 / ( A ^ N ) ) ) $=
    ( cc wcel cc0 cap wbr cz cneg cexp co c1 cdiv wceq cr cn0 wo wa elznn0 wi
    expnegap0 3expia adantr simpl simprl recnd simprr expineg2 oveq2d ad2ant2rl
    syl12anc expcl simpll simplr nn0zd expap0i syl3anc recrecapd eqtr2d expimpd
    expr jaod syl5bi 3impia ) ACDZAEFGZBHDZABIZJKZLABJKZMKZNZVGBODZBPDZVHPDZQZR
    VEVFRZVLBSVQVMVPVLVQVMRVNVLVOVQVNVLTVMVEVFVNVLABUAUBUCVQVMVOVLVQVMVORZRZVKL
    LVIMKZMKVIVSVJVTLMVSVQBCDVOVJVTNVQVRUDVSBVQVMVOUEUFVQVMVOUGZABUHUKUIVSVIVEV
    OVICDVFVMAVHULUJVSVEVFVHHDVIEFGVEVFVRUMVEVFVRUNVSVHWAUOAVHUPUQURUSVAVBUTVCV
    D $.

  $( 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.  (Contributed by Jim Kingdon,
       10-Jun-2020.) $)
    mulexpzap $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 cap wbr wa cz cmul cexp wceq cdiv expineg2 syl22anc syl3anc
      co c1 eqtr4d cn0 cr cneg cn wo elznn0nn simpl anim12i 3expa sylan simplll
      mulexp simplrl mulcld simpllr simplrr mulap0d recn ad2antrl nnnn0 oveq12d
      ad2antll oveq2d 1t1e1 oveq1i syl6eqr expcl syl2anc nnz ax-1cn divmuldivap
      expap0i mpanl12 jaodan sylan2b 3impa ) ADEZAFGHZIZBDEZBFGHZIZCJEZABKRZCLR
      ZACLRZBCLRZKRZMZWCVSWBIZCUAEZCUBEZCUCZUDEZIZUEWICUFWJWKWIWOWJVQVTIWKWIVSV
      QWBVTVQVRUGVTWAUGUHVQVTWKWIABCULUIUJWJWOIZWESWDWMLRZNRZWHWPWDDEWDFGHCDEZW
      MUAEZWEWRMWPABVQVRWBWOUKZVSVTWAWOUMZUNWPABXAXBVQVRWBWOUOZVSVTWAWOUPZUQWLW
      SWJWNCURUSZWNWTWJWLWMUTVBZWDCOPWPWHSAWMLRZNRZSBWMLRZNRZKRZWRWPWFXHWGXJKWP
      VQVRWSWTWFXHMXAXCXEXFACOPWPVTWAWSWTWGXJMXBXDXEXFBCOPVAWPWRSSKRZXGXIKRZNRZ
      XKWPWRSXMNRXNWPWQXMSNWPVQVTWTWQXMMXAXBXFABWMULQVCXLSXMNVDVEVFWPXGDEZXGFGH
      ZXIDEZXIFGHZXKXNMZWPVQWTXOXAXFAWMVGVHWPVQVRWMJEZXPXAXCWNXTWJWLWMVIVBZAWMV
      LQWPVTWTXQXBXFBWMVGVHWPVTWAXTXRXBXDYABWMVLQSDEZYBXOXPIXQXRIIXSVJVJSSXGXIV
      KVMPTTTVNVOVP $.

    $( Nonnegative integer exponentiation of a reciprocal.  (Contributed by Jim
       Kingdon, 10-Jun-2020.) $)
    exprecap $p |- ( ( A e. CC /\ A # 0 /\ N e. ZZ ) ->
        ( ( 1 / A ) ^ N ) = ( 1 / ( A ^ N ) ) ) $=
      ( cc wcel cc0 cap wbr cz w3a cexp co cdiv expclzap recclap 3adant3 recap0
      c1 simp3 cmul wceq syl3anc expap0i simp1 simp2 oveq1d mulexpzap syl221anc
      recidapd 1exp syl 3eqtr3d mvllmulapd ) ACDZAEFGZBHDZIZABJKZQALKZBJKZQABMU
      PURCDZUREFGZUOUSCDUMUNUTUOANOZUMUNVAUOAPOZUMUNUORZURBMUAABUBUPAURSKZBJKZQ
      BJKZUQUSSKZQUPVEQBJUPAUMUNUOUCZUMUNUOUDZUHUEUPUMUNUTVAUOVFVHTVIVJVBVCVDAU
      RBUFUGUPUOVGQTVDBUIUJUKUL $.

    $( 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 ~ expaddzap .  (Contributed by Jim Kingdon, 10-Jun-2020.) $)
    expaddzaplem $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 cap wbr cr cneg cn w3a simp1l simp3 expcl syl2anc simp2r
      nnnn0d simp1r expap0i divrecap2d simp2l recnd negnegd nnnegz syl eqeltrrd
      nnzd nn0zd zaddcld expclzap divcanap4d expadd cmin negsubd nn0cnd pncan2d
      simpr oveq2d expineg2 syl22anc znegcld negdi2d negcld npcand recdivapd wo
      zcnd elznn0 simprbi mpjaodan 3eqtr4d ) ADEZAUAUBUCZFZBUDEZBUEZUFEZFZCGEZU
      GZACHIZAWLHIZJIZKWRJIZWQLIABCMIZHIZABHIZWQLIWPWQWRWPWHWOWQDEZWHWIWNWOUHZW
      JWNWOUIZACUJUKZWPWHWLGEZWRDEZXEWPWLWJWKWMWOULZUMZAWLUJUKZWPWHWIWLNEWRUAUB
      UCZXEWHWIWNWOUNZWPWLXJVCAWLUOOZUPWPXAGEZXBWSPXAUEZGEZWPXPFZXBWRLIZWRJIXBW
      SXSXBWRWPXBDEZXPWPWHWIXANEZYAXEXNWPBCWPWLUEZBNWPBWPBWJWKWMWOUQURZUSWPWMYC
      NEXJWLUTVAVBWPCXFVDZVEZAXAVFOQWPXIXPXLQWPXMXPXOQVGXSXTWQWRJXSAXAWLMIZHIZX
      TWQXSWHXPXHYHXTPWPWHXPXEQWPXPVMWPXHXPXKQAXAWLVHOXSYGCAHWPYGCPXPWPYGXABVII
      CWPXABWPXAYFWCZYDVJWPBCYDWPCXFVKZVLSQVNRTRWPXRFZXBKAXQHIZJIZWSYKWHWIXADEZ
      XRXBYMPWPWHXRXEQZWPWIXRXNQWPYNXRYIQWPXRVMZAXAVOVPYKYMKWRWQJIZJIZWSYKYLYQK
      JYKYLWQLIZWQJIYLYQYKYLWQWPYLDEZXRWPWHWIXQNEYTXEXNWPXAYFVQAXQVFOQWPXDXRXGQ
      WPWQUAUBUCZXRWPWHWICNEUUAXEXNYEACUOOZQVGYKYSWRWQJYKAXQCMIZHIZYSWRYKWHXRWO
      UUDYSPYOYPWPWOXRXFQAXQCVHOYKUUCWLAHWPUUCWLPXRWPUUCWLCVIIZCMIWLWPXQUUECMWP
      BCYDYJVRTWPWLCWPBYDVSYJVTSQVNRTRVNWPYRWSPXRWPWRWQXLXGXOUUBWAQSSWPYBXPXRWB
      ZYFYBXAUDEUUFXAWDWEVAWFWPXCWTWQLWPWHWIBDEXHXCWTPXEXNYDXKABVOVPTWG $.

    $( Sum of exponents law for integer exponentiation.  (Contributed by Jim
       Kingdon, 10-Jun-2020.) $)
    expaddzap $p |- ( ( ( A e. CC /\ A # 0 ) /\ ( M e. ZZ /\ N e. ZZ ) ) ->
                  ( A ^ ( M + N ) ) = ( ( A ^ M ) x. ( A ^ N ) ) ) $=
      ( cc wcel cc0 cap wa cz co cexp cmul wceq cn0 cneg 3expia syl3anc c1 cdiv
      syl22anc wbr caddc cr cn wo elznn0nn wi expadd adantlr expaddzaplem simp3
      jaodan w3a nn0cnd simp2l recnd addcomd oveq2d simp1l expcl syl2anc simp1r
      negnegd simp2r nnnn0d nn0negz syl eqeltrrd expclzap mulcomd simp3l negdid
      3eqtr4d impancom simp3r eqtrd 1t1e1 oveq1i syl6eqr expap0i ax-1cn mpanl12
      divmuldivap eqtr4d addcld nn0addcld eqeltrd expineg2 oveq12d jaod sylan2b
      nn0zd syl5bi impr ) ADEZAFGUAZHZBIEZCIEZABCUBJZKJZABKJZACKJZLJZMZWSCNEZCU
      CEZCOZUDEZHZUEZWQWRHXECUFWRWQBNEZBUCEZBOZUDEZHZUEZXKXEUGBUFWQXQHXFXEXJWQX
      LXFXEUGZXPWOXLXRWPWOXLXFXEABCUHPUIWQXPXFXEABCUJPULWQXLXJXEUGXPWQXJXLXEWQX
      JXLXEWQXJXLUMZACBUBJZKJXCXBLJXAXDACBUJXSWTXTAKXSBCXSBWQXJXLUKZUNXSCWQXGXI
      XLUOUPZUQURXSXBXCXSWOXLXBDEWOWPXJXLUSZYAABUTVAXSWOWPWSXCDEYCWOWPXJXLVBXSX
      HOZCIXSCYBVCXSXHNEZYDIEXSXHWQXGXIXLVDVEXHVFVGVHACVIQVJVMPVNWQXPXJXEWQXPXJ
      UMZRAWTOZKJZSJZRAXNKJZSJZRAXHKJZSJZLJZXAXDYFYIRRLJZYJYLLJZSJZYNYFYIRYPSJY
      QYFYHYPRSYFYHAXNXHUBJZKJZYPYFYGYRAKYFBCYFBWQXMXOXJUOUPZYFCWQXPXGXIVKUPZVL
      ZURYFWOXNNEZYEYSYPMWOWPXPXJUSZYFXNWQXMXOXJVDVEZYFXHWQXPXGXIVOVEZAXNXHUHQV
      PURYORYPSVQVRVSYFYJDEZYJFGUAZYLDEZYLFGUAZYNYQMZYFWOUUCUUGUUDUUEAXNUTVAYFW
      OWPXNIEUUHUUDWOWPXPXJVBZYFXNUUEWLAXNVTQYFWOYEUUIUUDUUFAXHUTVAYFWOWPXHIEUU
      JUUDUULYFXHUUFWLAXHVTQRDEZUUMUUGUUHHUUIUUJHHUUKWAWARRYJYLWCWBTWDYFWOWPWTD
      EYGNEXAYIMUUDUULYFBCYTUUAWEYFYGYRNUUBYFXNXHUUEUUFWFWGAWTWHTYFXBYKXCYMLYFW
      OWPBDEUUCXBYKMUUDUULYTUUEABWHTYFWOWPCDEYEXCYMMUUDUULUUAUUFACWHTWIVMPULWJW
      KWMWN $.

    $( 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.  (Contributed by
       Jim Kingdon, 11-Jun-2020.) $)
    expmulzap $p |- ( ( ( A e. CC /\ A # 0 ) /\ ( M e. ZZ /\ N e. ZZ ) ) ->
        ( A ^ ( M x. N ) ) = ( ( A ^ M ) ^ N ) ) $=
      ( cc wcel cc0 cap wbr wa cz cmul co cexp wceq cn0 c1 cdiv oveq2d syl22anc
      syl3anc cr cn wo elznn0nn wi expmul 3expia adantlr w3a simp2l recnd simp3
      cneg nn0cnd simp1l simp2r nnnn0d eqtr3d expcl syl2anc simp1r nnzd expap0i
      mulneg1d nn0zd exprecap eqtr4d mulcld nn0mulcld eqeltrrd expineg2 3eqtr4d
      oveq1d jaodan simp3l mulneg2d recclapd recap0d recrecapd mul2negd 3eqtrrd
      simp2 simp3r 3eqtrd jaod sylan2b syl5bi impr ) ADEZAFGHZIZBJEZCJEZABCKLZM
      LZABMLZCMLZNZWMCOEZCUAEZCUMZUBEZIZUCZWKWLIWRCUDWLWKBOEZBUAEZBUMZUBEZIZUCZ
      XDWRUEBUDWKXJIWSWRXCWKXEWSWRUEZXIWIXEXKWJWIXEWSWRABCUFUGUHWKXIWSWRWKXIWSU
      IZPAWNUMZMLZQLZPAXGMLZQLZCMLZWOWQXLXOPXPCMLZQLZXRXLXNXSPQXLAXGCKLZMLZXNXS
      XLYAXMAMXLBCXLBWKXFXHWSUJUKZXLCWKXIWSULZUNZVDZRXLWIXGOEZWSYBXSNWIWJXIWSUO
      ZXLXGWKXFXHWSUPZUQZYDAXGCUFTURRXLXPDEZXPFGHZWMXRXTNXLWIYGYKYHYJAXGUSZUTXL
      WIWJXGJEZYLYHWIWJXIWSVAZXLXGYIVBAXGVCZTXLCYDVEXPCVFTVGXLWIWJWNDEZXMOEZWOX
      ONZYHYOXLBCYCYEVHXLYAXMOYFXLXGCYJYDVIVJAWNVKZSXLWPXQCMXLWIWJBDEZYGWPXQNZY
      HYOYCYJABVKZSVMVLUGVNWKXEXCWRUEXIWKXEXCWRWKXEXCUIZXOPWPXAMLZQLZWOWQUUDXNU
      UEPQUUDABXAKLZMLZXNUUEUUDUUGXMAMUUDBCUUDBWKXEXCWBZUNZUUDCWKXEWTXBVOUKZVPZ
      RUUDWIXEXAOEZUUHUUENWIWJXEXCUOZUUIUUDXAWKXEWTXBWCUQZABXAUFTURRUUDWIWJYQYR
      YSUUNWIWJXEXCVAZUUDBCUUJUUKVHUUDUUGXMOUULUUDBXAUUIUUOVIVJYTSUUDWPDEZWPFGH
      ZCDEZUUMWQUUFNUUDWIXEUUQUUNUUIABUSUTUUDWIWJWLUURUUNUUPUUDBUUIVEABVCTUUKUU
      OWPCVKSVLUGWKXIXCWRWKXIXCUIZWQXRPXQXAMLZQLZWOUUTWPXQCMUUTWIWJUUAYGUUBWIWJ
      XIXCUOZWIWJXIXCVAZUUTBWKXFXHXCUJUKZUUTXGWKXFXHXCUPZUQZUUCSVMUUTXQDEXQFGHU
      USUUMXRUVBNUUTXPUUTWIYGYKUVCUVGYMUTZUUTWIWJYNYLUVCUVDUUTXGUVFVBYPTZVQUUTX
      PUVHUVIVRUUTCWKXIWTXBVOUKZUUTXAWKXIWTXBWCZUQZXQCVKSUUTUVBPPXPXAMLZQLZQLUV
      MWOUUTUVAUVNPQUUTYKYLXAJEZUVAUVNNUVHUVIUUTXAUVKVBZXPXAVFTRUUTUVMUUTYKUUMU
      VMDEUVHUVLXPXAUSUTUUTYKYLUVOUVMFGHUVHUVIUVPXPXAVCTVSUUTAXGXAKLZMLZUVMWOUU
      TWIYGUUMUVRUVMNUVCUVGUVLAXGXAUFTUUTUVQWNAMUUTBCUVEUVJVTRURWDWAUGVNWEWFWGW
      H $.
  $}

  $( 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 neg1ap0 anidms
    co cc cr oveq12 syl6eq cc0 cap wbr wa neg1cn expaddzap mpanl12 cpr m1expcl2
    wo wb neg1rr reexpclzap mp3an12 elprg syl neg1mulneg1e1 1t1e1 syl6bi 3eqtrd
    jaoi mpd ) ABCZDEZFAGPZHPVDAAIPZHPZVDAHPZVHGPZDVCVEVFVDHVCAAJKLVCVGVIMZVDQC
    VDUAUBUCZVCVCUDVJUENVDAAUFUGOVCVHVDDUHCZVIDMZAUIVCVLVHVDMZVHDMZUJZVMVCVHRCZ
    VLVPUKVDRCVKVCVQULNVDAUMUNVHVDDRUOUPVNVMVOVNVIVDVDGPZDVNVIVRMVHVDVHVDGSOUQT
    VOVIDDGPZDVOVIVSMVHDVHDGSOURTVAUSVBUT $.

  $( Exponent subtraction law for nonnegative integer exponentiation.
     (Contributed by Jim Kingdon, 11-Jun-2020.) $)
  expsubap $p |- ( ( ( A e. CC /\ A # 0 ) /\ ( M e. ZZ /\ N e. ZZ ) ) ->
      ( A ^ ( M - N ) ) = ( ( A ^ M ) / ( A ^ N ) ) ) $=
    ( cc wcel cc0 cap wbr wa cz co cexp cmul cdiv wceq zcn oveq2d 3expa adantrl
    expclzap cneg caddc znegcl expaddzap sylanr2 negsub syl2an adantl expnegzap
    cmin c1 adantrr expap0i divrecapd eqtr4d 3eqtr3d ) ADEZAFGHZIZBJEZCJEZIZIZA
    BCUAZUBKZLKZABLKZAVDLKZMKZABCUJKZLKVGACLKZNKZVAUSUTVDJEVFVIOCUCABVDUDUEVCVE
    VJALVBVEVJOZUSUTBDECDEVMVABPCPBCUFUGUHQVCVIVGUKVKNKZMKVLVCVHVNVGMUSVAVHVNOZ
    UTUQURVAVOACUIRSQVCVGVKUSUTVGDEZVAUQURUTVPABTRULUSVAVKDEZUTUQURVAVQACTRSUSV
    AVKFGHZUTUQURVAVRACUMRSUNUOUP $.

  $( Value of a nonzero complex number raised to an integer power plus one.
     (Contributed by Jim Kingdon, 11-Jun-2020.) $)
  expp1zap $p |- ( ( A e. CC /\ A # 0 /\ N e. ZZ ) -> ( A ^ ( N + 1 ) ) =
      ( ( A ^ N ) x. A ) ) $=
    ( cc wcel cc0 cap wbr cz w3a c1 caddc co cexp cmul wceq wa expaddzap mpanr2
    1z 3impa exp1 3ad2ant1 oveq2d eqtrd ) ACDZAEFGZBHDZIZABJKLMLZABMLZAJMLZNLZU
    JANLUEUFUGUIULOZUEUFPUGJHDUMSABJQRTUHUKAUJNUEUFUKAOUGAUAUBUCUD $.

  $( Value of a complex number raised to an integer power minus one.
     (Contributed by Jim Kingdon, 11-Jun-2020.) $)
  expm1ap $p |- ( ( A e. CC /\ A # 0 /\ N e. ZZ ) -> ( A ^ ( N - 1 ) ) =
      ( ( A ^ N ) / A ) ) $=
    ( cc wcel cc0 cap wbr cz w3a c1 cmin co cexp cdiv wceq wa 1z expsubap 3impa
    mpanr2 exp1 3ad2ant1 oveq2d eqtrd ) ACDZAEFGZBHDZIZABJKLMLZABMLZAJMLZNLZUJA
    NLUEUFUGUIULOZUEUFPUGJHDUMQABJRTSUHUKAUJNUEUFUKAOUGAUAUBUCUD $.

  $( Nonnegative integer exponentiation of a quotient.  (Contributed by Jim
     Kingdon, 11-Jun-2020.) $)
  expdivap $p |- ( ( A e. CC /\ ( B e. CC /\ B # 0 ) /\ N e. NN0 ) ->
      ( ( A / B ) ^ N ) = ( ( A ^ N ) / ( B ^ N ) ) ) $=
    ( cc wcel cc0 cap wbr wa cn0 w3a cdiv co cexp c1 cmul wceq divrecap syl3anc
    expcl 3expb 3adant3 oveq1d recclap mulexp syl3an2 cz simp2l simp2r 3ad2ant3
    exprecap oveq2d 3adant2 adantlr 3adant1 expap0i divrecapd eqtr4d 3eqtrd
    nn0z ) ADEZBDEZBFGHZIZCJEZKZABLMZCNMAOBLMZPMZCNMZACNMZVHCNMZPMZVKBCNMZLMZVF
    VGVICNVAVDVGVIQZVEVAVBVCVPABRUAUBUCVDVAVHDEVEVJVMQBUDAVHCUEUFVFVMVKOVNLMZPM
    VOVFVLVQVKPVFVBVCCUGEZVLVQQVAVBVCVEUHZVAVBVCVEUIZVEVAVRVDCUTUJZBCUKSULVFVKV
    NVAVEVKDEVDACTUMVDVEVNDEZVAVBVEWBVCBCTUNUOVFVBVCVRVNFGHVSVTWABCUPSUQURUS $.

  $( 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 wb simpl3 znnsub mpbid expgt1 syl3anc cc cap wceq expsubap syl22anc
    gt0ap0d breqtrd ltmuldivd mpbird eqbrtrrd ) ADEZBFEZCFEZGZHAIJZBCIJZKZKZHAB
    LMZNMZVSACLMZIVRVSVRVSVRVSVRAOEZVLVSOEVRAVKVLVMVQUAZVRTHAVRUBVRUCZWCTHIJVRU
    DUEVNVOVPUFZUGZUHZVKVLVMVQUIZABPQZRSUJVRVTWAIJHWAVSUKMZIJVRHACBUMMZLMZWJIVR
    VKWKUNEZVOHWLIJWCVRVPWMVNVOVPULVRVLVMVPWMUOWHVKVLVMVQUPZBCUQQURWEAWKUSUTVRA
    VAEATVBJVMVLWLWJVCVRAWCSVRAWCWFVFWNWHACBVDVEVGVRHWAVSWDVRWAVRWBVMWAOEWGWNAC
    PQRWIVHVIVJ $.

  $( 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 wceq gt0ap0d expsubap syl22anc
    cc cap eluzelz breqtrd lemuldivd mpbird eqbrtrrd ) ADEZFAGHZCBIJEZUAZFABKLZ
    UBLZVOACKLZGVNVOVNVOVNVOVNAMEZBSEZVOMEVNAVKVLVMUCZVNNFAVNUDVNUEZVTNFUFHVNUG
    UMVKVLVMUHZUIZUJZVMVKVSVLBCUKOZABPQZRTUNVNVPVQGHFVQVOULLZGHVNFACBUOLZKLZWGG
    VNVKWHUPEZVLFWIGHVTVMVKWJVLBCUQOWBAWHURUSVNAVDEANVEHCSEZVSWIWGUTVNAVTTVNAVT
    WCVAVMVKWKVLBCVFOZWEACBVBVCVGVNFVQVOWAVNVQVNVRWKVQMEWDWLACPQRWFVHVIVJ $.

  ${
    $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 Jim Kingdon,
     11-Jun-2020.) $)
  sqdivap $p |- ( ( A e. CC /\ B e. CC /\ B # 0 ) ->
      ( ( A / B ) ^ 2 ) = ( ( A ^ 2 ) / ( B ^ 2 ) ) ) $=
    ( cc wcel cc0 cap wbr cdiv co cmul c2 cexp wa wceq simp1 3simpc divmuldivap
    w3a syl22anc sqval divclap syl oveqan12d 3adant3 3eqtr4d ) ACDZBCDZBEFGZRZA
    BHIZUJJIZAAJIZBBJIZHIZUJKLIZAKLIZBKLIZHIZUIUFUFUGUHMZUSUKUNNUFUGUHOZUTUFUGU
    HPZVAAABBQSUIUJCDUOUKNABUAUJTUBUFUGURUNNUHUFUGUPULUQUMHATBTUCUDUE $.

  $( A number is nonzero iff its square is nonzero.  See also ~ sqap0 which is
     the same but with not equal changed to apart.  (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 $.

  $( A number is apart from zero iff its square is apart from zero.
     (Contributed by Jim Kingdon, 13-Aug-2021.) $)
  sqap0 $p |- ( A e. CC -> ( ( A ^ 2 ) # 0 <-> A # 0 ) ) $=
    ( cc wcel c2 cexp co cc0 cap wbr cmul sqval breq1d wa anidm mulap0b syl5bbr
    wb anidms bitr4d ) ABCZADEFZGHIAAJFZGHIZAGHIZTUAUBGHAKLUDUDUDMZTUCUDNTUEUCQ
    AAORPS $.

  $( 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 Jim Kingdon,
     11-Jun-2020.) $)
  sqgt0ap $p |- ( ( A e. RR /\ A # 0 ) -> 0 < ( A ^ 2 ) ) $=
    ( cr wcel cc0 cap wbr wa cmul co c2 cexp clt apsqgt0 wceq cc recn sqval syl
    adantr breqtrrd ) ABCZADEFZGDAAHIZAJKIZLAMUAUDUCNZUBUAAOCUEAPAQRST $.

  $( 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.  Also see
     ~ sq11ap which would easily follow from this given excluded middle, but
     which for us is proved another way.  (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 $.

    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 $.

    sqdivap.3 $e |- B # 0 $.
    $( Distribution of square over division.  (Contributed by Jim Kingdon,
       12-Jun-2020.) $)
    sqdivapi $p |- ( ( A / B ) ^ 2 ) = ( ( A ^ 2 ) / ( B ^ 2 ) ) $=
      ( cdiv co cmul c2 cexp divmuldivapi divclapi sqvali oveq12i 3eqtr4i ) ABF
      GZPHGAAHGZBBHGZFGPIJGAIJGZBIJGZFGABABCDCDEEKPABCDELMSQTRFACMBDMNO $.
  $}

  ${
    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 Jim Kingdon,
       12-Jun-2020.) $)
    sqgt0api $p |- ( A # 0 -> 0 < ( A ^ 2 ) ) $=
      ( cr wcel cc0 cap wbr c2 cexp co clt sqgt0ap mpan ) ACDAEFGEAHIJKGBALM $.

    $( 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 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 iap0 divmulapi ) ABCDBEZFBSGDZAFTBBGDZEZABBHHIAUBFUAAEFNA
    UAJBBHHKLMOABSJHPQRM $.

  $( ` _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 cq wceq zq cc0 wbr 4z oveq2d ax-icn iap0 eqtrd
    syl c1 cmo cfl cfv cmul cmin clt ax-mp 4pos modqval mp3an23 cn mpan2 flqcld
    4nn znq zmulcl sylancr cc cap wa expsubap mpanl12 mpdan expmulzap i4 oveq1i
    1exp syl5eq expclzap mp3an12 div1d ) ABCZDAEUAFZGFDAEAEHFZUBUCZUDFZUEFZGFZD
    AGFZVLVMVQDGVLAICZVMVQJZAKVTEICZLEUFMWAEBCZWBNEKUGUHAEUIUJSOVLVRVSDVPGFZHFZ
    VSVLVPBCZVRWEJZVLWCVOBCZWFNVLVNVLEUKCVNICUNAEUOULUMZEVOUPUQDURCZDLUSMZVLWFU
    TWGPQDAVPVAVBVCVLWEVSTHFVSVLWDTVSHVLWDDEGFZVOGFZTVLWCWHWDWMJZNWIWJWKWCWHUTW
    NPQDEVOVDVBUQVLWMTVOGFZTWLTVOGVEVFVLWHWOTJWIVOVGSVHROVLVSWJWKVLVSURCPQDAVIV
    JVKRRR $.

  $( 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 $.

  $( 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 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 wa caddc co cmul c2 cexp addcl simpl adddird eqtrd oveq12d mulcld
    addassd wceq sqval syl adddid mulcomd oveq2d addcld 3eqtr2d 2timesd 3eqtr4d
    simpr oveq1d ) ACDZBCDZEZABFGZUMHGZAAHGZABHGZUPFGZFGZBBHGZFGZUMIJGZAIJGZIUP
    HGZFGZBIJGZFGULUNUMAHGZUMBHGZFGZUTULUMABABKZUJUKLZUJUKUHZUAULVHUOUPFGZUPUSF
    GZFGVLUPFGZUSFGUTULVFVLVGVMFULVFUOBAHGZFGVLULABAVJVKVJMULVOUPUOFULBAVKVJUBU
    CNULABBVJVKVKMOULVLUPUSULUOUPULAAVJVJPZULABVJVKPZUDVQULBBVKVKPQULVNURUSFULU
    OUPUPVPVQVQQUIUENULUMCDVAUNRVIUMSTULVDURVEUSFULVBUOVCUQFULUJVBUORVJASTULUPV
    QUFOULUKVEUSRVKBSTOUG $.

  $( 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 $.

  ${
    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 $.

  $( 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 sqval syl oveq1d 2cnd 2ap0 divassapd
    cc a1i c1 caddc zcn cc0 cap wbr adantr zmulcl eqeltrd wn cmin sqcl peano2cn
    eqtrd halfcld pncand binom21 mulcl sylancr 1cnd add32d divdirapd divcanap3d
    2cn 3eqtr3d oveq2d peano2z sylan eqeltrrd simpl zsubcld ex con3d zsqcl zeo2
    wb 3imtr4d imp impbida ) ABCZADEFZBCZADGFZDEFZBCZVRVTHWBAVSIFZBVRWBWDJVTVRW
    BAAIFZDEFWDVRWAWEDEVRAQCZWAWEJAUAZAKLMVRAADWGWGVRNDUBUCUDZVRORPULUEAVSUFUGV
    RWCVTVRWASTFZDEFZBCZUHZASTFZDEFZBCZUHWCVTVRWOWKVRWOWKVRWOHZWJATFZAUIFWJBWPW
    JAWPWIWPWAQCZWIQCWPWFWRVRWFWOWGUEZAUJLZWAUKLZUMWSUNWPWQAWPWMWNIFZWQBWPWMWMI
    FZDEFWIDAIFZTFZDEFZXBWQWPXCXEDEWPWMDGFZWAXDTFSTFZXCXEWPWFXGXHJWSAUOLWPWMQCZ
    XGXCJWPWFXIWSAUKLZWMKLWPWAXDSWTWPDQCWFXDQCVBWSDAUPUQZWPURUSVCMWPWMWMDXJXJWP
    NZWHWPORZPWPXFWJXDDEFZTFWQWPWIXDDXAXKXLXMUTWPXNAWJTWPADWSXLXMVAVDULVCVRWMBC
    WOXBBCAVEWMWNUFVFVGVRWOVHVIVGVJVKVRWABCWCWLVNAVLWAVMLAVMVOVPVQ $.

  $( 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 $.

  ${
    $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 $.
    $( 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 cexp co cn wrex wa adantr simpr cmin 1red resubcld mpbid
      wbr cc0 w3a cv simp1 simp2 simp3 cdiv posdifd gt0ap0d redivclapd arch syl
      3expa adantrl cmul caddc simplll simpllr remulcld readdcld nnnn0d reexpcl
      nnred cn0 syl2anc wb simplr simplrr ltdivmul syl112anc ltsubaddd cle 0red
      0lt1 wi 0re 1re lttr mp3an12 mpani sylc ltled bernneq2 syl3anc ltletrd ex
      reximdva mpd syl22anc 1nn cc wceq simpl2 recnd exp1 breqtrrd oveq2 breq2d
      rspcev sylancr wo axltwlin mp3an1 ancoms 3impia mpjaodan ) ADEZBDEZFBGSZU
      AZFAGSZABCUBZHIZGSZCJKZABGSZXIXJLXFXGXJXHXNXIXFXJXFXGXHUCZMXIXGXJXFXGXHUD
      ZMXIXJNXIXHXJXFXGXHUEZMXFXGLZXJXHLZLZAFOIZBFOIZUFIZXKGSZCJKZXNXSXHYFXJXFX
      GXHYFXIYDDEYFXIYBYCXIAFXPXIPZQXIBFXQYGQZXIYCYHXIXHTYCGSZXRXIFBYGXQUGRUHUI
      YDCUJUKULUMYAYEXMCJYAXKJEZLZYEXMYKYELZAYCXKUNIZFUOIZXLYKXFYEXFXGXTYJUPMZY
      KYNDEYEYKYMFYKYCXKYKBFXFXGXTYJUQZYKPZQYKXKYAYJNZVBURYQUSMYKXLDEZYEYKXGXKV
      CEZYSYPYKXKYRUTBXKVAVDMYLYBYMGSZAYNGSYLYEUUAYKYENYLYBDEXKDEYCDEYIYEUUAVEY
      LAFYOYLPZQYLXKYAYJYEVFZVBZYLBFYKXGYEYPMZUUBQZYLXHYIYKXHYEXSXJXHYJVGZMYLFB
      UUBUUEUGRYBXKYCVHVIRYLAFYMYOUUBYLYCXKUUFUUDURVJRYLXGYTTBVKSZYNXLVKSUUEYLX
      KUUCUTYKUUHYEYKTBYKVLYPYKXGXHTBGSZYPUUGXGTFGSZXHUUIVMTDEFDEZXGUUJXHLUUIVN
      VOVPTFBVQVRVSVTWAMBXKWBWCWDWEWFWGWHXIXOLZFJEABFHIZGSZXNWIUULABUUMGXIXONUU
      LBWJEUUMBWKUULBXFXGXHXOWLWMBWNUKWOXMUUNCFJXKFWKXLUUMAGXKFBHWPWQWRWSXFXGXH
      XJXOWTZXGXFXHUUOVNZUUKXGXFUUPVPFBAXAXBXCXDXE $.

    $( 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
      rpap0 rerecclapd expnbnd syl3an1 wb rpregt0 3ad2ant1 nnnn0 reexpcl sylan2
      cn0 adantlr cz simpll nnz adantl 0lt1 wi 0re 1re mp3an12 mpani imp expgt0
      lttr syl3anc jca 3adantl1 ltrec1 syl2anc rexbidva mpbid ) ADEZBFEZGBHIZJZ
      GAKLZBCMZNLZHIZCOPZGVSKLAHIZCOPVMVQFEVNVOWAVMAAQAUAUBVQBCUCUDVPVTWBCOVPVR
      OEZRAFESAHIRZVSFEZSVSHIZRZVTWBUEVPWDWCVMVNWDVOAUFUGTVNVOWCWGVMVNVORZWCRZW
      EWFVNWCWEVOWCVNVRUKEWEVRUHBVRUIUJULWIVNVRUMEZSBHIZWFVNVOWCUNWCWJWHVRUOUPW
      HWKWCVNVOWKVNSGHIZVOWKUQSFEGFEVNWLVORWKURUSUTSGBVEVAVBVCTBVRVDVFVGVHAVSVI
      VJVKVL $.

    $( 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 $.
  $}

  ${
    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 Jim Kingdon, 12-Jun-2020.) $)
      sqrecapd $p |- ( ph -> ( ( 1 / A ) ^ 2 ) = ( 1 / ( A ^ 2 ) ) ) $=
        ( cc wcel cc0 cap c1 cdiv co c2 cexp wceq cz 2z exprecap mp3an3 syl2anc
        wbr ) ABEFZBGHTZIBJKLMKIBLMKJKNZCDUAUBLOFUCPBLQRS $.

      expclzd.3 $e |- ( ph -> N e. ZZ ) $.
      $( Closure law for integer exponentiation.  (Contributed by Jim Kingdon,
         12-Jun-2020.) $)
      expclzapd $p |- ( ph -> ( A ^ N ) e. CC ) $=
        ( cc wcel cc0 cap wbr cz cexp co expclzap syl3anc ) ABGHBIJKCLHBCMNGHDE
        FBCOP $.

      $( Nonnegative integer exponentiation is nonzero if its mantissa is
         nonzero.  (Contributed by Jim Kingdon, 12-Jun-2020.) $)
      expap0d $p |- ( ph -> ( A ^ N ) # 0 ) $=
        ( cc wcel cc0 cap wbr cz cexp co expap0i syl3anc ) ABGHBIJKCLHBCMNIJKDE
        FBCOP $.

      $( Value of a complex number raised to a negative power.  (Contributed by
         Jim Kingdon, 12-Jun-2020.) $)
      expnegapd $p |- ( ph -> ( A ^ -u N ) = ( 1 / ( A ^ N ) ) ) $=
        ( cc wcel cc0 cap wbr cz cneg cexp co c1 cdiv wceq expnegzap syl3anc )
        ABGHBIJKCLHBCMNOPBCNOQORDEFBCST $.

      $( Nonnegative integer exponentiation of a reciprocal.  (Contributed by
         Jim Kingdon, 12-Jun-2020.) $)
      exprecapd $p |- ( ph -> ( ( 1 / A ) ^ N ) = ( 1 / ( A ^ N ) ) ) $=
        ( cc wcel cc0 cap wbr cz c1 cdiv co cexp wceq exprecap syl3anc ) ABGHBI
        JKCLHMBNOCPOMBCPONOQDEFBCRS $.

      $( Value of a nonzero complex number raised to an integer power plus one.
         (Contributed by Jim Kingdon, 12-Jun-2020.) $)
      expp1zapd $p |- ( ph -> ( A ^ ( N + 1 ) ) = ( ( A ^ N ) x. A ) ) $=
        ( cc wcel cc0 cap wbr cz c1 caddc co cexp cmul wceq expp1zap syl3anc )
        ABGHBIJKCLHBCMNOPOBCPOBQORDEFBCST $.

      $( Value of a complex number raised to an integer power minus one.
         (Contributed by Jim Kingdon, 12-Jun-2020.) $)
      expm1apd $p |- ( ph -> ( A ^ ( N - 1 ) ) = ( ( A ^ N ) / A ) ) $=
        ( cc wcel cc0 cap wbr cz c1 cmin co cexp cdiv wceq expm1ap syl3anc ) AB
        GHBIJKCLHBCMNOPOBCPOBQORDEFBCST $.

      expsubd.3 $e |- ( ph -> M e. ZZ ) $.
      $( Exponent subtraction law for nonnegative integer exponentiation.
         (Contributed by Jim Kingdon, 12-Jun-2020.) $)
      expsubapd $p |- ( ph -> ( A ^ ( M - N ) ) =
          ( ( A ^ M ) / ( A ^ N ) ) ) $=
        ( cc wcel cc0 cap wbr cz cmin co cexp cdiv wceq expsubap syl22anc ) ABI
        JBKLMCNJDNJBCDOPQPBCQPBDQPRPSEFHGBCDTUA $.
    $}

    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 $.

    ${
      sqdivapd.3 $e |- ( ph -> B # 0 ) $.
      $( Distribution of square over division.  (Contributed by Jim Kingdon,
         13-Jun-2020.) $)
      sqdivapd $p |- ( ph -> ( ( A / B ) ^ 2 ) = ( ( A ^ 2 ) / ( B ^ 2 ) ) ) $=
        ( cc wcel cc0 cap wbr cdiv co c2 cexp wceq sqdivap syl3anc ) ABGHCGHCIJ
        KBCLMNOMBNOMCNOMLMPDEFBCQR $.

      expdivapd.3 $e |- ( ph -> N e. NN0 ) $.
      $( Nonnegative integer exponentiation of a quotient.  (Contributed by Jim
         Kingdon, 13-Jun-2020.) $)
      expdivapd $p |- ( ph -> ( ( A / B ) ^ N ) =
          ( ( A ^ N ) / ( B ^ N ) ) ) $=
        ( cc wcel cc0 cap wbr cn0 cdiv co cexp wceq expdivap syl121anc ) ABIJCI
        JCKLMDNJBCOPDQPBDQPCDQPOPREFGHBCDST $.
    $}

    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 zaddcld cc0 cap 2ap0 4ap0 divcanap5d sqvald mulid1d 1cnd 3eqtrd
    wbr adddi ) BUACZADBEFZGHFZIZUBZADJFZGKFZLMFNBDJFZEFZNBEFZHFZLMFZNWGBHFZEFZ
    LMFZBBGHFEFZDMFZWDWFWJLMWDWFWADJFZDWAEFZHFZGHFZGKFZWJWDWEWTGKWCVTWEWBDJFZWT
    AWBDJUCVTWASCXBWTIVTWAVTDBDUACVTUDOVTUEZUFPWAUGUHUIQVTXAWJIWCVTXAWJGHFZGKFZ
    WJVTWTXDGKVTWSWJGHVTWQWHWRWIHVTWQDDJFZWGEFWHVTDBVTVFZBUJZUKVTXFNWGEXFNIVTUL
    OQTVTWRDDEFZBEFZWIVTDSCZXKBSCZWRXJIXGXGXHXKXKXLUMXJWRDDBUNRUOVTXINBEXINIVTU
    POQTUQQQVTWJSCXEWJIVTWHWIVTWHVTNWGNUACVTUROZBUSZUFPVTWIVTNBXMXCUFPUTWJVAUHT
    VBTQVTWKWNIWCVTWJWMLMVTWMWJVTNWGBNSCVTVCOZVTWGXNPXHVDRQVBVTWNWPIWCVTWNWMNDE
    FZMFWLDMFWPVTLXPWMMVTXPLXPLIVTVEORVGVTWLDNVTWLVTWGBXNXCVHPXGXODVIVJVRVTVKON
    VIVJVRVTVLOVMVTWLWODMVTWLBBEFZBHFXQBGEFZHFZWOVTWGXQBHVTBXHVNQVTBXRXQHVTXRBV
    TBXHVORVGVTXLXLGSCZXSWOIXHXHVTVPXLXLXTUMWOXSBBGVSRUOVQQVQVBVQ $.

  ${
    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 $.
  $}

  ${
    reexpclzapd.1 $e |- ( ph -> A e. RR ) $.
    reexpclzapd.2 $e |- ( ph -> A # 0 ) $.
    reexpclzapd.3 $e |- ( ph -> N e. ZZ ) $.
    $( Closure of exponentiation of reals.  (Contributed by Jim Kingdon,
       13-Jun-2020.) $)
    reexpclzapd $p |- ( ph -> ( A ^ N ) e. RR ) $=
      ( cr wcel cc0 cap wbr cz cexp co reexpclzap syl3anc ) ABGHBIJKCLHBCMNGHDE
      FBCOP $.
  $}

  ${
    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 $.

    ${
      sqgt0apd.2 $e |- ( ph -> A # 0 ) $.
      $( The square of a real apart from zero is positive.  (Contributed by Jim
         Kingdon, 13-Jun-2020.) $)
      sqgt0apd $p |- ( ph -> 0 < ( A ^ 2 ) ) $=
        ( cr wcel cc0 cap wbr c2 cexp co clt sqgt0ap syl2anc ) ABEFBGHIGBJKLMIC
        DBNO $.
    $}

    ${
      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 $.
  $}

  $( Analogue to ~ sq11 but for apartness.  (Contributed by Jim Kingdon,
     12-Aug-2021.) $)
  sq11ap $p |- ( ( ( A e. RR /\ 0 <_ A ) /\ ( B e. RR /\ 0 <_ B ) ) ->
      ( ( A ^ 2 ) # ( B ^ 2 ) <-> A # B ) ) $=
    ( cr wcel cc0 cle wbr wa clt wo c2 cexp co cap lt2sq wb ancoms reaplt simpl
    resqcld orbi12d ad2ant2r syl2an 3bitr4rd ) ACDZEAFGZHZBCDZEBFGZHZHZABIGZBAI
    GZJZAKLMZBKLMZIGZUPUOIGZJZABNGZUOUPNGZUKULUQUMURABOUJUGUMURPBAOQUAUEUHUTUNP
    UFUIABRUBUGUOCDUPCDVAUSPUJUGAUEUFSTUJBUHUISTUOUPRUCUD $.

  $( 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 $.
  $}

  ${
    expcanlem.a $e |- ( ph -> A e. RR ) $.
    expcanlem.m $e |- ( ph -> M e. ZZ ) $.
    expcanlem.n $e |- ( ph -> N e. ZZ ) $.
    expcanlem.gt1 $e |- ( ph -> 1 < A ) $.
    $( Lemma for ~ expcan .  Proving the order in one direction.  (Contributed
       by Jim Kingdon, 29-Jan-2022.) $)
    expcanlem $p |- ( ph -> ( ( A ^ M ) <_ ( A ^ N ) -> M <_ N ) ) $=
      ( cexp co clt wbr wn cle wcel cz c1 cc0 reexpclzapd lenltd cr w3a ltexp2a
      wi expr syl31anc con3d 0red 1red 0lt1 a1i lttrd gt0ap0d zred 3imtr4d ) AB
      DIJZBCIJZKLZMDCKLZMUQUPNLCDNLAUSURABUAOZDPOZCPOZQBKLZUSURUDEGFHUTVAVBUBVC
      USURBDCUCUEUFUGAUQUPABCEABEARQBAUHAUIERQKLAUJUKHULUMZFSABDEVDGSTACDACFUNA
      DGUNTUO $.
  $}

  ${
    $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 ) ) $=
      ( cr wcel cz w3a c1 clt wbr wa cexp co wceq cle expcanlem cc0 reexpclzapd
      letri3d zred simpl1 simpl2 simpr anim12d 0red 1red 0lt1 a1i lttrd gt0ap0d
      simpl3 3imtr4d oveq2 impbid1 ) ADEZBFEZCFEZGZHAIJZKZABLMZACLMZNZBCNZUTVAV
      BOJZVBVAOJZKBCOJZCBOJZKVCVDUTVEVGVFVHUTABCUOUPUQUSUAZUOUPUQUSUBZUOUPUQUSU
      KZURUSUCZPUTACBVIVKVJVLPUDUTVAVBUTABVIUTAVIUTQHAUTUEUTUFVIQHIJUTUGUHVLUIU
      JZVJRUTACVIVMVKRSUTBCUTBVJTUTCVKTSULBCALUMUN $.
  $}

  ${
    expcand.1 $e |- ( ph -> A e. RR ) $.
    expcand.2 $e |- ( ph -> M e. ZZ ) $.
    expcand.3 $e |- ( ph -> N e. ZZ ) $.
    expcand.4 $e |- ( ph -> 1 < A ) $.
    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 ) ABCJKBDJK
      LZCDLZIABMNCONDONPBQRUCUDSEFGHBCDTUAUB $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Ordered pair theorem for nonnegative integers
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    nn0le2msqd.1 $e |- ( ph -> A e. NN0 ) $.
    nn0le2msqd.2 $e |- ( ph -> B e. NN0 ) $.
    $( The square function on nonnegative integers is monotonic.  (Contributed
       by Jim Kingdon, 31-Oct-2021.) $)
    nn0le2msqd $p |- ( ph -> ( A <_ B <-> ( A x. A ) <_ ( B x. B ) ) ) $=
      ( cle wbr c2 cexp cmul nn0red nn0ge0d le2sqd nn0cnd sqvald breq12d bitrd
      co ) ABCFGBHIRZCHIRZFGBBJRZCCJRZFGABCABDKACEKABDLACELMASUATUBFABABDNOACAC
      ENOPQ $.
  $}

  ${
    nn0opthlem1d.1 $e |- ( ph -> A e. NN0 ) $.
    nn0opthlem1d.2 $e |- ( ph -> C e. NN0 ) $.
    $( A rather pretty lemma for ~ nn0opth2 .  (Contributed by Jim Kingdon,
       31-Oct-2021.) $)
    nn0opthlem1d $p |- ( ph ->
        ( A < C <-> ( ( A x. A ) + ( 2 x. A ) ) < ( C x. C ) ) ) $=
      ( c1 caddc co cle wbr cmul clt cn0 wcel a1i syl2anc nn0mulcld cexp sqvald
      c2 1nn0 nn0addcld nn0le2msqd wb nn0ltp1le 2nn0 cc wceq nn0cnd 1cnd binom2
      addcld oveq1d oveq12d 3eqtr3d mulid1d oveq2d eqtrd breq1d bitr4d 3bitr4d
      ) ABFGHZCIJZVBVBKHZCCKHZIJZBCLJZBBKHZTBKHZGHZVELJZAVBCABFDFMNAUAOUBEUCABM
      NCMNVGVCUDDEBCUEPAVKVJFGHZVEIJZVFAVJMNVEMNVKVMUDAVHVIABBDDQATBTMNAUFODQUB
      ACCEEQVJVEUEPAVDVLVEIAVDVHTBFKHZKHZGHZFFKHZGHZVLAVBTRHZBTRHZVOGHZFTRHZGHZ
      VDVRABUGNFUGNVSWCUHABDUIZAUJZBFUKPAVBABFWDWEULSAWAVPWBVQGAVTVHVOGABWDSUMA
      FWESUNUOAVPVJVQFGAVOVIVHGAVNBTKABWDUPUQUQAFWEUPUNURUSUTVA $.
  $}

  ${
    nn0opthd.1 $e |- ( ph -> A e. NN0 ) $.
    nn0opthd.2 $e |- ( ph -> B e. NN0 ) $.
    nn0opthd.3 $e |- ( ph -> C e. NN0 ) $.
    nn0opthd.4 $e |- ( ph -> D e. NN0 ) $.
    $( Lemma for ~ nn0opth2 .  (Contributed by Jim Kingdon, 31-Oct-2021.) $)
    nn0opthlem2d $p |- ( ph -> ( ( A + B ) < C
           -> ( ( C x. C ) + D ) =/= ( ( ( A + B ) x. ( A + B ) ) + B ) ) ) $=
      ( caddc co wbr cmul cr wcel nn0red remulcld readdcld adantr cle nn0addcld
      clt wne wa 2re a1i cn0 nn0addge2 syl2anc nn0addge1 recnd 2timesd breqtrrd
      c2 letrd leadd2dd nn0opthlem1d biimpa lelttrd ltletrd gtned ex ) ABCJKZDU
      BLZDDMKZEJKZVCVCMKZCJKZUCAVDUDZVHVFAVHNOVDAVGCAVCVCAVCABCFGUAZPZVKQZACGPZ
      RSZVIVHVEVFVNAVENOZVDADDADHPZVPQZSZAVFNOVDAVEEVQAEIPRSVIVHVGUNVCMKZJKZVEV
      NAVTNOVDAVGVSVLAUNVCUNNOAUEUFVKQZRSVRAVHVTTLVDACVSVGVMWAVLACVCVSVMVKWAACN
      OBUGOCVCTLVMFCBUHUIAVCVCVCJKZVSTAVCNOVCUGOVCWBTLVKVJVCVCUJUIAVCAVCVKUKULU
      MUOUPSAVDVTVEUBLAVCDVJHUQURUSAVEVFTLZVDAVOEUGOWCVQIVEEUJUISUTVAVB $.

    $( 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 Jim Kingdon, 31-Oct-2021.) $)
    nn0opthd $p |- ( ph -> ( ( ( ( A + B ) x. ( A + B ) ) + B ) =
          ( ( ( C + D ) x. ( C + D ) ) + D ) <-> ( A = C /\ B = D ) ) ) $=
      ( caddc co cmul wceq wbr nn0addcld wcel wb syl2anc cc nn0cnd wa cap wn wo
      clt wne nn0opthlem2d imp necomd ex cr nn0red reaplt nn0mulcld nn0zd zapne
      jaod 3imtr4d con3d apti simpr oveq12d oveq1d eqtr4d mulcld addcand adantr
      cz mpbid oveq2d addcan2d jca oveq12 impbid1 ) ABCJKZVOLKZCJKZDEJKZVRLKZEJ
      KZMZBDMZCEMZUAZAWAWDAWAUAZWBWCWEVODCJKZMZWBWEVOVRWFAWAVOVRMZAVQVTUBNZUCZV
      OVRUBNZUCZWAWHAWKWIAVOVRUENZVRVOUENZUDZVQVTUFZWKWIAWMWPWNAWMWPAWMUAVTVQAW
      MVTVQUFABCVREFGADEHIOZIUGUHUIUJADEVOCHIABCFGOZGUGUQAVOUKPVRUKPWKWOQAVOWRU
      LAVRWQULVOVRUMRAVQVHPVTVHPWIWPQAVQAVPCAVOVOWRWRUNGOZUOAVTAVSEAVRVRWQWQUNI
      OZUOVQVTUPRURUSAVQSPVTSPWAWJQAVQWSTAVTWTTVQVTUTRAVOSPVRSPWHWLQAVOWRTZAVRW
      QTVOVRUTRURUHZWECEDJWEVQVPEJKZMZWCWEVQVTXCAWAVAWEVPVSEJWEVOVRVOVRLXBXBVBV
      CVDAXDWCQWAAVPCEAVOVOXAXAVEACGTZAEITVFVGVIZVJVDAWGWBQWAABDCABFTADHTXEVKVG
      VIXFVLUJWDVPVSCEJWDVOVRVOVRLBDCEJVMZXGVBWBWCVAVBVN $.

    $( An ordered pair theorem for nonnegative integers.  Theorem 17.3 of
       [Quine] p. 124.  See comments for ~ nn0opthd .  (Contributed by Jim
       Kingdon, 31-Oct-2021.) $)
    nn0opth2d $p |- ( ph ->
        ( ( ( ( A + B ) ^ 2 ) + B ) = ( ( ( C + D ) ^ 2 ) + D ) <->
        ( A = C /\ B = D ) ) ) $=
      ( caddc co c2 cexp wceq cmul wa nn0addcld nn0cnd sqvald oveq1d nn0opthd
      eqeq12d bitrd ) ABCJKZLMKZCJKZDEJKZLMKZEJKZNUDUDOKZCJKZUGUGOKZEJKZNBDNCEN
      PAUFUKUIUMAUEUJCJAUDAUDABCFGQRSTAUHULEJAUGAUGADEHIQRSTUBABCDEFGHIUAUC $.
  $}

  $( An ordered pair theorem for nonnegative integers.  Theorem 17.3 of [Quine]
     p. 124.  See ~ nn0opthd .  (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 wa simpll simplr simprl simprr nn0opth2d ) AEFZBEFZGZCEFZDEFZGZG
    ABCDMNRHMNRIOPQJOPQKL $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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 , CC ) ) $.

  ${
    $d f g $.
    $( 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 , CC ) ` N ) ) $=
      ( vf vg cfa cfv cmul cc cid c1 wceq cn0 cc0 csn cun cres dfn2 eqtr3i wtru
      cn wcel cseq cdif c0ex 1ex cop cuz nnuz reseq2i wfn cvv 1zzd cnex a1i fvi
      df-fac cv eleq1d ibir eluzelcn syl adantl wa co mulcl iseqfn trud fnresdm
      ax-mp uneq2i eqtr4i fvsnun2 eleq2s ) ADEAFGHIUAZEJAKLMUBZSLIKAVMDUCUDDLIU
      EMZVMNVOVMVNOZNUOVPVMVOVMIUFEZOZVPVMVQVNVMSVQVNUGPQUHVMVQUIZVRVMJVSRBCFGH
      IUJRUKGUJTRULUMBUPZVQTZVTHEZGTZRWAWBVQTZWCWAWDWAWBVTVQVTVQUNUQURIWBUSUTVA
      VTGTCUPZGTVBVTWEFVCGTRVTWEVDVAVEVFVQVMVGVHQVIVJVKPVL $.
  $}

  ${
    $d f g $.
    $( The factorial of 0.  (Contributed by NM, 2-Dec-2004.)  (Revised by Mario
       Carneiro, 13-Jul-2013.) $)
    fac0 $p |- ( ! ` 0 ) = 1 $=
      ( vf vg cc0 c1 cn0 cmul cc cid cseq cfa csn cun cres cfv eqtr3i wtru wcel
      cvv cv adantl c0ex 1ex cop cdif df-fac cuz cn nnuz dfn2 reseq2i wceq 1zzd
      wfn cnex a1i fvi eleq1d ibir eluzelcn syl wa co mulcl iseqfn trud fnresdm
      ax-mp uneq2i eqtr4i fvsnun1 ) CDEFGHDIZJUAUBJCDUCKZVKLVLVKECKUDZMZLUEVNVK
      VLVKDUFNZMZVNVKVOVMVKUGVOVMUHUIOUJVKVOUMZVPVKUKVQPABFGHDRPULGRQPUNUOASZVO
      QZVRHNZGQZPVSVTVOQZWAVSWBVSVTVRVOVRVOUPUQURDVTUSUTTVRGQBSZGQVAVRWCFVBGQPV
      RWCVCTVDVEVOVKVFVGOVHVIVJ $.
  $}

  ${
    $d f g $.
    $( The factorial of 1.  (Contributed by NM, 2-Dec-2004.)  (Revised by Mario
       Carneiro, 13-Jul-2013.) $)
    fac1 $p |- ( ! ` 1 ) = 1 $=
      ( vf vg c1 cfa cfv cmul cc cid cseq cn wcel wceq 1nn facnn ax-mp wtru cvv
      cv fvi adantl 1zzd cnex a1i cuz eleq1d ibir eluzelcn syl wa co mulcl trud
      iseq1 3eqtri ) CDEZCFGHCIEZCHEZCCJKZUOUPLMCNOUPUQLPABFGHCQPUAGQKPUBUCARZC
      UDEZKZUSHEZGKZPVAVBUTKZVCVAVDVAVBUSUTUSUTSUEUFCVBUGUHTUSGKBRZGKUIUSVEFUJG
      KPUSVEUKTUMULURUQCLMCJSOUN $.
  $}

  ${
    $d N f g $.
    $( 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 ) ) ) $=
      ( vf vg wcel cn cc0 wceq c1 caddc co cfa cfv cc cid cvv cv fvi adantl syl
      cmul cn0 wo elnn0 cseq cuz elnnuz biimpi cnex a1i eluzelcn eqeltrd iseqp1
      mulcl peano2nn oveq2d eqtrd facnn oveq1d 3eqtr4d 0p1e1 fveq2i eqtri oveq1
      wa fac1 fveq2d fveq2 oveq12d fac0 oveq12i 1t1e1 syl6eq 3eqtr4a jaoi sylbi
      ) AUADAEDZAFGZUBAHIJZKLZAKLZVRTJZGZAUCVPWBVQVPVRTMNHUDZLZAWCLZVRTJZVSWAVP
      WDWEVRNLZTJWFVPBCTMNHAOVPAHUELZDAUFUGMODVPUHUIBPZWHDZWINLZMDVPWJWKWIMWIWH
      QHWIUJUKRWIMDCPZMDVDWIWLTJMDVPWIWLUMRULVPWGVRWETVPVREDZWGVRGAUNZVREQSUOUP
      VPWMVSWDGWNVRUQSVPVTWEVRTAUQURUSVQFHIJZKLZHVSWAWPHKLHWOHKUTVAVEVBVQVRWOKA
      FHIVCZVFVQWAFKLZWOTJZHVQVTWRVRWOTAFKVGWQVHWSHHTJHWRHWOHTVIUTVJVKVBVLVMVNV
      O $.
  $}

  $( 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 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 cmul vj vk cn0 cv c1 caddc clt wn nngt0 cz wb 0z nnz sylancr
      zltnle mpbid pm2.21d wa wo peano2nn0 nn0zd zleloe nnnn0 nn0leltp1 nn0p1nn
      syl2an sylan nnmulcl sylan2 expcom adantl cc faccl nn0cnd nncn adantr cap
      nncnd nnap0 div23apd sylibrd imim2d com23 sylbird eqeltrd oveq2 syl5ibcom
      divcanap4d a1dd jaod sylbid com34 com12 imp4d facp1 exp4d a2d nn0ind 3imp
      ex ) AUCCBDCZBAEFZAGHZBIJZDCZXABUAUDZEFZXFGHZBIJZDCZKZKXABLEFZLGHZBIJZDCZ
      KZKXABUBUDZEFZXQGHZBIJZDCZKZKXABXQUEUFJZEFZYCGHZBIJZDCZKZKXAXBXEKZKUAUBAX
      FLMZXKXPXAYJXGXLXJXOXFLBENYJXIXNDYJXHXMBIXFLGROPQSXFXQMZXKYBXAYKXGXRXJYAX
      FXQBENYKXIXTDYKXHXSBIXFXQGROPQSXFYCMZXKYHXAYLXGYDXJYGXFYCBENYLXIYFDYLXHYE
      BIXFYCGROPQSXFAMZXKYIXAYMXGXBXJXEXFABENYMXIXDDYMXHXCBIXFAGROPQSXAXLXOXALB
      UGFZXLUHZBUIXALUJCBUJCZYNYOUKULBUMZLBUOUNUPUQXQUCCZXAYBYHYRXAYBYDYGYRXAYB
      YDURURXSYCTJZBIJZDCZYGYRXAYBYDUUAXAYRYBYDUUAKKXAYRYDYBUUAXAYRYDYBUUAKZKXA
      YRURZYDBYCUGFZBYCMZUSZUUBXAYPYCUJCYDUUFUKYRYQYRYCXQUTZVABYCVBVFUUCUUDUUBU
      UEUUCUUDXRUUBXABUCCYRXRUUDUKBVCBXQVDVGUUCYBXRUUAUUCYAUUAXRUUCYAXTYCTJZDCZ
      UUAYRYAUUIKXAYAYRUUIYRYAYCDCUUIXQVEXTYCVHVIVJVKUUCYTUUHDUUCXSYCBYRXSVLCXA
      YRXSXQVMZVRVKZYRYCVLCXAYRYCUUGVNVKXABVLCYRBVOVPZXABLVQFYRBVSVPZVTPWAWBWCW
      DUUCUUEUUAYBUUCXSBTJZBIJZDCUUEUUAUUCUUOXSDUUCXSBUUKUULUUMWHYRXSDCXAUUJVKW
      EUUEUUOYTDUUEUUNYSBIBYCXSTWFOPWGWIWJWKWTWLWMWNYRYFYTDYRYEYSBIXQWOOPWAWPWQ
      WRWS $.
  $}

  $( 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 ad2antrr wceq
    cc wn cr nnre recnz sylan ad2ant2lr facdiv 3expa nnzd adantrl syl5com faccl
    zsubcl nncnd peano2cn syl ad2antlr simplr nnap0d divsubdirapd ax-1cn pncan2
    ex nncn sylancl oveq1d eqtr3d eleq1d sylibd mtod ) ACDZBEDZFZGBHIZBAJIZFZFZ
    AKLZGMNZBONZPDZGBONZPDZVLVNWCUAZVKVOVLBUBDVNWDBUCBUDUEUFVQWAVTVRBONZQNZPDZW
    CVQWEPDZWAWGVMVOWHVNVMVOFWEVKVLVOWEEDABUGUHUIUJWAWHWGVTWEUMVCUKVQWFWBPVQVSV
    RQNZBONZWFWBVQVSVRBVKVSTDZVLVPVKVRTDZWKVKVRAULUNZVRUOUPRVKWLVLVPWMRVLBTDVKV
    PBVDUQVQBVKVLVPURUSUTVKWJWBSVLVPVKWIGBOVKWLGTDWIGSWMVAVRGVBVEVFRVGVHVIVJ $.

  ${
    $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 ) ) $=
      ( cn0 wcel cle wbr cfa cfv wa wi cc0 breq2 anbi2d fveq2 breq2d imbi12d cr
      wceq adantl nnred vj vk cv caddc nn0le0eq0 biimpa fveq2d fac0 1re eqeltri
      c1 co leidi syl6eqbr impexp wo cz wb simpl nn0zd peano2nn0 zleloe syl2anc
      clt nn0leltp1 cmul faccl nn0re peano2re syl nnnn0d nn0ge0d nn0p1nn nnge1d
      lemulge11d facp1 breqtrrd adantr faccld letr syl3anc mpan2d com23 sylbird
      imim2d leidd syl5ibcom syl5 a1dd jaod sylbid com13 com4l a2d imp4a syl5bi
      ex nn0ind 3impib 3com12 ) BCDZACDZABEFZAGHZBGHZEFZXAXBXCXFXBAUAUCZEFZIZXD
      XGGHZEFZJXBAKEFZIZXDKGHZEFZJXBAUBUCZEFZIZXDXPGHZEFZJZXBAXPUKUDULZEFZIZXDY
      BGHZEFZJZXBXCIZXFJUAUBBXGKRZXIXMXKXOYIXHXLXBXGKAELMYIXJXNXDEXGKGNOPXGXPRZ
      XIXRXKXTYJXHXQXBXGXPAELMYJXJXSXDEXGXPGNOPXGYBRZXIYDXKYFYKXHYCXBXGYBAELMYK
      XJYEXDEXGYBGNOPXGBRZXIYHXKXFYLXHXCXBXGBAELMYLXJXEXDEXGBGNOPXMXDXNXNEXMAKG
      XBXLAKRAUEUFUGXNXNUKQUHUIUJUMUNYAXBXQXTJZJZXPCDZYGXBXQXTUOYOYNXBYCYFYOXBY
      MYCYFJYCYOXBYMYFXBYOYCYMYFJZXBYOYCYPJXBYOIZYCAYBVDFZAYBRZUPZYPYQAUQDYBUQD
      YCYTURYQAXBYOUSUTYQYBYOYBCDXBXPVAZSUTAYBVBVCYQYRYPYSYQYRXQYPAXPVEYQYMXQYF
      YQXTYFXQYQXTXSYEEFZYFYOUUBXBYOXSXSYBVFULYEEYOXSYBYOXSXPVGZTZYOXPQDYBQDXPV
      HXPVIVJYOXSYOXSUUCVKVLYOYBXPVMVNVOXPVPVQSYQXDQDZXSQDZYEQDZXTUUBIYFJXBUUEY
      OXBXDAVGTZVRYOUUFXBUUDSYOUUGXBYOYEYOYBUUAVSTSXDXSYEVTWAWBWEWCWDYQYSYFYMXB
      YSYFJYOYSXDYERZXBYFAYBGNXBXDXDEFUUIYFXBXDUUHWFXDYEXDELWGWHVRWIWJWKWQWLWMW
      NWOWPWRWSWT $.

    $( 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 zlelttric mpjaod expcom a2d nn0ind impcom nnnn0d nn0ge0d
      a1dd nn0p1nn 0expd 0exp0e1 oveq1i mulid2d oveq12 anidms oveq1d imp jaoian
      syl5ibr sylanb ) ACDZAUCDZAEFZUDBCDZABGHIZJIZAAJIZBKLZMIZNOZAUEUUFUUHUUNU
      UGUUHUUFUUNUUFAUAVEZGHIZJIZUUKUUOKLZMIZNOZPUUFAEGHIZJIZUUKEKLZMIZNOZPUUFA
      UBVEZGHIZJIZUUKUVFKLZMIZNOZPUUFAUVGGHIZJIZUUKUVGKLZMIZNOZPUUFUUNPUAUBBUUO
      EFZUUTUVEUUFUVQUUQUVBUUSUVDNUVQUUPUVAAJUUOEGHUFQUVQUURUVCUUKMUUOEKUGQUHUI
      UUOUVFFZUUTUVKUUFUVRUUQUVHUUSUVJNUVRUUPUVGAJUUOUVFGHUFQUVRUURUVIUUKMUUOUV
      FKUGQUHUIUUOUVGFZUUTUVPUUFUVSUUQUVMUUSUVONUVSUUPUVLAJUUOUVGGHUFQUVSUURUVN
      UUKMUUOUVGKUGQUHUIUUOBFZUUTUUNUUFUVTUUQUUJUUSUUMNUVTUUPUUIAJUUOBGHUFQUVTU
      URUULUUKMUUOBKUGQUHUIUUFAGJIZUUKUVBUVDNUUFAGAAUJZAUKZUUFAGULLDAUMUNUOUVBU
      WAFUUFUVAGAJUPUQURUUFUVDUUKGMIUUKUVCGUUKMUSUQUUFUUKUUFUUKUUFAAUWBAUTZVAZV
      BZVCVDVFUVFCDZUUFUVKUVPUUFUWGUVKUVPPZUUFUWGRZAUVGNOZUWHUVGAVGOZUWIUVKUWJU
      VPUWIUVKUWJUVPUWIUVKUWJRZRUVHAMIZUVJUVGMIZUVMUVONUWIUVKUWJUWMUWNNOUWIUVKR
      ZUWIUWJRZRZUVHUVJAUVGUWQAUVGUUFASDZUWGUVKUWPUWBVHZUWQUWGUVGCDZUUFUWGUVKUW
      PVIZUVFVJZVOZVAUWQUUKUVIUWQAAUWSUUFUUEUWGUVKUWPUWDVHVAUWQUVIUWQUVFUXAVKVL
      VMUWSUWQUWGUVFSDUVGSDUXAUVFVPUVFVNVQUWQAUVGUWSUXCUWQUWREAVGOZEANOZUWSUUFU
      XDUWGUVKUWPAWGVHESDUWRUXDUXEPVREAVSVTWAZWBUXFUWIUVKUWPWCUWOUWIUWJWDWEWFUW
      IUVMUWMFZUWLUUFAWHDUWTUXGUWGAWIUXBAUVGWJWKTUWIUVOUWNFUWLUWIUVOUUKUVIUVGMI
      ZMIUWNUWIUVNUXHUUKMUWGUVNUXHFUUFUVFWLWMQUWIUUKUVIUVGUUFUUKWHDUWGUWFTUWGUV
      IWHDUUFUWGUVIUVFWNWOWMUWGUVGWHDZUUFUWGUVFWHDUXIUVFWPUVFWQVOWMWSWRTVFWTXAU
      WIUWKUVPUVKUWIUWKUVLANOZUVPUWGUWTUUEUWKUXJXBUUFUXBUWDUVGAXJXCUWIUXJUVPUWI
      UXJRZUVMUUKUVOUWIUVMSDZUXJUUFUWRUVLCDZUXLUWGUWBUWGUWTUXMUXBUVGVJVOZAUVLXD
      WKTUUFUUKSDZUWGUXJUWEXEUWIUVOSDZUXJUUFUXOUVNSDZUXPUWGUWEUWGUVNUWGUVGUXBVK
      ZVLZUUKUVNXFWKTUXKAUVLAUUFUWRUWGUXJUWBXEUUFGANOUWGUXJUWCXEUXKAUVLULLDZUXJ
      UWIUXJXGUXKUVLXHDAXHDZUXTUXJXBUXKUVLUWGUXMUUFUXJUXNXIXKUUFUYAUWGUXJAXLZXE
      UVLAXMXNXOUOUWIUUKUVONOZUXJUWIUXOUXQREUUKNOZGUVNNOZRUYCUUFUXOUWGUXQUWEUXS
      XPUUFUYDUWGUYEUUFUUEUYDUWDUUEAAAVPUUEXQAXRWBVOUWGUVNUXRYAXPUUKUVNXSXNTXTY
      BYCYLUWIUYAUVGXHDUWJUWKUDUUFUYAUWGUYBTUWIUVGUWGUWTUUFUXBWMXKAUVGYDXNYEYFY
      GYHYIUUGUUHUUNUUHUUNUUGEUUIJIZEEJIZUULMIZNOUUHEUULUYFUYHNUUHUULUUHUULBWNZ
      YJYKUUHUUIBYMYNUUHUYHGUULMIUULUYGGUULMYOYPUUHUULUUHUULUYIWOYQVDVFUUGUUJUY
      FUUMUYHNAEUUIJUFUUGUUKUYGUULMUUGUUKUYGFAEAEJYRYSYTUHUUCUUAUUBUUD $.
  $}

  $( 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 syl5eq cc0
    wbr cr caddc cfa cfv 2t2e4 eqtr4i wceq expp1 oveq1d expcl 2ap0 divmuldivapd
    a1i cap 2div2e1 halfcld mulid1d 3eqtr2rd 2nn0 faclbnd 2re peano2nn0 reexpcl
    wb sylancr faccl nnred clt 4re eqeltri 4pos breqtrri pm3.2i ledivmul mp3an3
    wa syl2anc mpbird eqbrtrd ) ABCZDAEFZDGFZDAHUAFZEFZDDEFZGFZAUBUCZIVSWEVTDJF
    ZDDJFZGFZWADDGFZJFZWAVSWEWCWHGFWIWDWHWCGWDKWHLUDUEMVSWCWGWHGDNCZVSWCWGUFODA
    UGPUHQVSVTDDDWLVSVTNCODAUIPZWLVSOULZWNWNDRUMSVSUJULZWOUKVSWKWAHJFWAWJHWAJUN
    MVSWAVSVTWMUOUPQUQVSWEWFISZWCWDWFJFISZDBCVSWQURDAUSPVSWCTCZWFTCZWPWQVCZVSDT
    CWBBCWRUTAVADWBVBVDVSWFAVEVFWRWSWDTCZRWDVGSZVOWTXAXBWDKTLVHVIRKWDVGVJLVKVLW
    CWFWDVMVNVPVQVR $.

  $( 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 $.

  ${
    $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 c2 cle wbr cfv cfa syl cr wi adantr letr syl3anc c1 adantl
    cc0 caddc cdiv cfl cmul cq cz cn nn0addcl nn0zd 2nn znq sylancl flqcld zred
    flqle nn0readdcl rehalfcld nn0re mpand nn0ge0d wb halfnneg2 mpbid flqge0nn0
    syl2anc simpl facwordi 3exp sylc wceq faccl nncnd mulid1d nnnn0d jca nnge1d
    nnred lemul2a mp3anl1 syl21anc eqbrtrrd remulcl syl2an mpan2d 3syld mulid2d
    1re simpr lemul1a wo zq qavgle mpjaod ) ACDZBCDZEZABUAFZGUBFZAHIZWRUCJZKJZA
    KJZBKJZUDFZHIZWRBHIZWPWSWTAHIZXAXBHIZXEWPWTWRHIZWSXGWPWRUEDZXIWPWQUFDGUGDXJ
    WPWQABUHZUIUJWQGUKULZWRUOLZWPWTMDZWRMDZAMDZXIWSEXGNWPWTWPWRXLUMUNZWPWQABUPZ
    UQZWNXPWOAUROWTWRAPQUSWPWTCDZWNXGXHNWPXJTWRHIZXTXLWPTWQHIZYAWPWQXKUTWPWQMDY
    BYAVAXRWQVBLVCWRVDVEZWNWOVFZXTWNXGXHWTAVGVHVIWPXHXBXDHIZXEWPXBRUDFZXBXDHWNY
    FXBVJWOWNXBWNXBAVKZVLVMOWPXCMDZXBMDZTXBHIZEZRXCHIZYFXDHIZWOYHWNWOXCBVKZVQZS
    ZWNYKWOWNYIYJWNXBYGVQZWNXBWNXBYGVNUTVOOWOYLWNWOXCYNVPSRMDZYHYKYLYMWGRXCXBVR
    VSVTWAWPXAMDZYIXDMDZXHYEEXENWPXAWPXTXAUGDYCWTVKLVQZWNYIWOYQOZWNYIYHYTWOYQYO
    XBXCWBWCZXAXBXDPQWDWEWPXFWTBHIZXAXCHIZXEWPXIXFUUDXMWPXNXOBMDZXIXFEUUDNXQXSW
    OUUFWNBURSWTWRBPQUSWPXTWOUUDUUENYCWNWOWHZXTWOUUDUUEWTBVGVHVIWPUUEXCXDHIZXEW
    PRXCUDFZXCXDHWOUUIXCVJWNWOXCWOXCYNVLWFSWPYIYHTXCHIZEZRXBHIZUUIXDHIZUUBWOUUK
    WNWOYHUUJYOWOXCWOXCYNVNUTVOSWNUULWOWNXBYGVPOYRYIUUKUULUUMWGRXBXCWIVSVTWAWPY
    SYHYTUUEUUHEXENUUAYPUUCXAXCXDPQWDWEWPAUEDZBUEDZWSXFWJWPAUFDUUNWPAYDUIAWKLWP
    BUFDUUOWPBUUGUIBWKLABWLVEWM $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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 cn0 wcel cz cc0 cfz cfa cfv cmin cmul cdiv cif wceq adantl faccld
      co cq cbc wa iftrue simpll nnzd fznn0sub elfznn0 nnmulcld syl2anc eqeltrd
      wn cn znq iffalse 0z zq ax-mp syl6eqel wdc simpr 0zd simpl fzdcel syl3anc
      wo nn0zd exmiddc syl mpjaodan cv oveq2 eleq2d fveq2 fveq2d oveq1d oveq12d
      oveq1 ifbieq1d eleq1 oveq2d df-bc ovmpt2g mpd3an3 ) BEFZAGFZAHBISZFZBJKZB
      ALSZJKZAJKZMSZNSZHOZTFZBAUASWNPWDWEUBZWGWOWGUKZWPWGUBZWNWMTWGWNWMPWPWGWMH
      UCQWRWHGFWLULFWMTFWRWHWRBWDWEWGUDRUEWRWJWKWRWIWGWIEFWPAHBUFQRWRAWGAEFWPAB
      UGQRUHWHWLUMUIUJWQWOWPWQWNHTWGWMHUNHGFZHTFUOHUPUQURQWPWGUSZWGWQVEWPWEWSBG
      FWTWDWEUTWPVAWPBWDWEVBVFAHBVCVDWGVGVHVICDBAEGDVJZHCVJZISZFZXBJKZXBXALSZJK
      ZXAJKZMSZNSZHOWNUAXAWFFZWHBXALSZJKZXHMSZNSZHOTXBBPZXDXKXJXOHXPXCWFXAXBBHI
      VKVLXPXEWHXIXNNXBBJVMXPXGXMXHMXPXFXLJXBBXALVQVNVOVPVRXAAPZXKWGXOWMHXAAWFV
      SXQXNWLWHNXQXMWJXHWKMXQXLWIJXAABLVKVNXAAJVMVPVTVRDCWAWBWC $.

    $( 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 ) ) ) $=
    ( wcel cz cc0 co cbc cmin wceq wn cfa cfv cmul cdiv bcval2 fznn0sub2 syl cc
    elfznn0 eqtr4d cn0 wa cfz faccld nncnd mulcomd elfz3nn0 elfzelz nn0cn nncan
    zcn syl2an syl2anc fveq2d oveq1d oveq2d adantl w3a bcval3 simp1 nn0z zsubcl
    sylan 3adant3 eleq1d syl5ib con3d 3impia syl3anc 3expa wdc simpr 0zd adantr
    wo fzdcel exmiddc mpjaodan ) BUACZADCZUBZAEBUCFZCZBAGFZBBAHFZGFZIZWCJZWCWGW
    AWCWDBKLZWEKLZAKLZMFZNFZWFABOWCWFWIBWEHFZKLZWJMFZNFZWMWCWEWBCZWFWQIABPZWEBO
    QWCWLWPWINWCWLWKWJMFWPWCWJWKWCWRWJRCWSWRWJWRWEWEBSUDUEQWCWKWCAABSUDUEUFWCWO
    WKWJMWCWNAKWCVSVTWNAIZABUGAEBUHVSBRCARCWTVTBUIAUKBAUJULZUMUNUOTUPTTUQVSVTWH
    WGVSVTWHURZWDEWFABUSXBVSWEDCZWRJZWFEIVSVTWHUTVSVTXCWHVSBDCZVTXCBVAZBAVBVCVD
    VSVTWHXDWAWRWCWRWNWBCWAWCWEBPWAWNAWBXAVEVFVGVHWEBUSVITVJWAWCVKZWCWHVOWAVTED
    CXEXGVSVTVLWAVMVSXEVTXFVNAEBVPVIWCVQQVR $.

  $( ` 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 nncnd mulid1d oveq2d dividapd
    fac0 nnap0d ) ABCZADEFZAGHZADIFZGHZDGHZJFZKFZLUKDDAMFCULURNAODAPRUKURUMUMKF
    LUKUQUMUMKUKUQUMLJFZUMUKUOUMNUPLNUQUSNUKUNAGUKAAQSUAUIUOUMUPLJUBUCUKUMUKUMA
    UDZUEZUFTUGUKUMVAUKUMUTUJUHTT $.

  $( 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 cfz cuz clt wbr
    cdiv 1eluzge0 a1i elnnuz biimpi elfzuzb sylanbrc bcval2 facnn2 fac1 nnm1nn0
    oveq2i faccld nncnd mulid1d syl5eq oveq12d nncn nnap0d divcanap3d 3eqtrd cz
    syl 0nn0 1z 0lt1 olci bcval4 mp3an oveq1 eqeq12 mpancom mpbiri jaoi sylbi
    wb ) ABCADCZAEFZGAHIJZAFZAKVPVSVQVPVRALMZAHNJZLMZHLMZOJZTJZWBAOJZWBTJAVPHEA
    PJCZVRWEFVPHEQMCZAHQMCZWGWHVPUAUBVPWIAUCUDHEAUEUFHAUGVBVPVTWFWDWBTAUHVPWDWB
    HOJWBWCHWBOUIUKVPWBVPWBVPWAAUJULZUMZUNUOUPVPAWBAUQWKVPWBWJURUSUTVQVSEHIJZEF
    ZEBCHVACHERSZEHRSZGWMVCVDWOWNVEVFHEVGVHVRWLFVQVSWMVOAEHIVIVRWLAEVJVKVLVMVN
    $.

  $( 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 cn nnnn0d faccld nncnd nnap0d
    syl wceq cc0 cbc cuz elfzuz2 nnuz syl6eleqr fznn0sub nn0p1nn elfznn nnm1nn0
    cn0 faccl 3syl nnmulcld divmuldivapd elfzel2 zcnd 1cnd fveq2d oveq1d oveq2d
    subsubd oveq12d facp1 eqcomd facnn2 mul32d mulassd 3eqtr4d divcanap5d 0p1e1
    mulcomd oveq1i cz wss 0z fzp1ss ax-mp eqsstr3i sseli bcval2 cc ax-1cn npcan
    3eqtrrd sylancl peano2zm uzid peano2uz 4syl eqeltrrd fzss2 elfzmlbm sseldd
    ) ACBDEZFZBGHZBAIEZGHZAGHZJEZKEZWPBACIEZIEZGHZXBGHZJEZKEZXCAKEZJEZBAUAEZBXB
    UAEZXHJEWOXIWPWQCLEZJEZWTXLJEZKEZXLWPJEZXLWTJEZKEXAWOWPXLGHZXEJEZKEZXLAKEZJ
    EXMXSAJEZKEXIXOWOWPXSXLAWOWPWOBWOBWOBCUBHMACBUCUDUENOPZWOXSWOXRXEWOXLWOXLWO
    WQUJFZXLMFACBUFZWQUGRZNOZWOAMFZXBUJFXEMFABUHZAUIXBUKULZUMZPWOXLYFPZWOAYIPZW
    OXSYKQWOAYIQUNWOXGXTXHYAJWOXFXSWPKWOXDXRXEJWOXCXLGWOBACWOBACBUOZUPZYMWOUQVA
    ZURUSUTWOXCXLAKYPUSVBWOXNYBXMKWOWRXLJEZWSJEXRXEAJEZJEXNYBWOYQXRWSYRJWOXRYQW
    OYDXRYQSYEWQVCRVDWOYHWSYRSYIAVERVBWOWRWSXLWOWRWOWQYEOZPWOWSWOAWOAYINOZPYLVF
    WOXRXEAWOXRYGPWOXEYJPYMVGVHUTVHWOXMXPXNXQKWOWPXLYCYLVKWOWTXLWOWTWOWRWSYSYTU
    MZPZYLVKVBWOWPWTXLYCUUBYLWOWTUUAQWOXLYFQVIWDWOATBDEZFXJXASWNUUCAWNTCLEZBDEZ
    UUCUUDCBDVJVLTVMFUUEUUCVNVOTBVPVQVRVSABVTRWOXKXGXHJWOXBUUCFXKXGSWOTBCIEZDEZ
    UUCXBWOBUUFUBHZFUUGUUCVNWOUUFCLEZBUUHWOBWAFCWAFUUIBSYOWBBCWCWEWOBVMFUUFVMFU
    UFUUHFUUIUUHFYNBWFUUFWGUUFUUFWHWIWJUUFTBWKRACBWLWMXBBVTRUSVH $.

  $( 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 cn0 wceq faccld nncnd
    syl cn elfz3nn0 facp1 fznn0sub nn0cnd elfznn0 addsubd fveq2d oveq2d 3eqtr4d
    1cnd oveq1d nn0p1nn eqeltrd mul32d eqtrd oveq12d nnap0d divmuldivapd eqtr4d
    nnmulcld fzelp1 bcval2 ) ACBDEFZBGHEZIJZVDAKEZIJZAIJZLEZMEZBIJZBAKEZIJZVHLE
    ZMEZVDVFMEZLEZVDANEZBANEZVPLEVCVJVKVDLEZVNVFLEZMEVQVCVEVTVIWAMVCBOFZVEVTPAB
    UAZBUBSVCVIVMVFLEZVHLEWAVCVGWDVHLVCVLGHEZIJZVMWELEZVGWDVCVLOFZWFWGPACBUCZVL
    UBSVCVFWEIVCBGAVCBWCUDVCUJVCAABUEZUDUFZUGVCVFWEVMLWKUHUIUKVCVMVFVHVCVMVCVLW
    IQZRVCVFVCVFWETWKVCWHWETFWIVLULSUMZRZVCVHVCAWJQZRUNUOUPVCVKVNVDVFVCVKVCBWCQ
    RVCVNVCVMVHWLWOUTZRVCVDVCWBVDTFWCBULSRWNVCVNWPUQVCVFWMUQURUSVCACVDDEFVRVJPA
    CBVAAVDVBSVCVSVOVPLABVBUKUI $.

  $( 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 nnap0d dmdcanap2d ) ACBDEFZBGHEZAGHEZIEZ
    WBWCGJEZIEZWBWEJEZWCKEZLEZBAIEZWBWCKEZLEZWAWCGWBDEZFWDWIMWAWCCGHEZWBDEZWMWA
    WCWOFZWACNFBNFANFZGNFWAWPOACBUAACBUBZACBUCZWAUJAGCBUDUEUKGWNWBDUFUGUHWCWBUI
    PWAWIWJWBWBAJEZKEZLEZWTWCKEZLEZWLWAWFXBWHXCLWAWFWBAIEXBWAWEAWBIWAAQFGQFWEAM
    WAAWSULUMAGUNUOZRABUPTWAWGWTWCKWAWEAWBJXERUQURWAXDWJXAXCLEZLEWLWAWJXAXCWAWJ
    ABUSVBWAXAWAWBWTWAWBWABWRUTZSZWAAWBVAVCZWTVMFZWAABWBWAAWSSWABWRSZXHACBVDWAB
    XKVEVFWAWQWBNFXIXJOWSXGAWBVGVHVIZVJVKWAXCWAWTWCWAWTXLVNWAAVOFWCVMFABVLAVPPZ
    VJVKVQWAXFWKWJLWAWBWTWCWAWBXGULWAWTXLVRWAWCXMVRWAWTXLVSWAWCXMVSVTRTTT $.

  ${
    $d k x y K $.  $d k x y N $.  $d K f g $.  $d N f g $.
    $( 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 Jim Kingdon,
       6-Nov-2021.) $)
    ibcval5 $p |- ( ( N e. NN0 /\ K e. NN ) -> ( N _C K ) =
        ( ( seq ( ( N - K ) + 1 ) ( x. , _I , CC ) ` N ) / ( ! ` K ) ) ) $=
      ( wcel wa cc0 co cmul cc cid c1 cfv cfa cdiv wceq adantl cvv cv cle wbr
      cz vk vx vy vf vg cn0 cfz cbc cmin caddc cseq bcval2 simprl simprr mulcld
      cn w3a simpr1 simpr2 simpr3 mulassd cuz simpll nn0zd simplr nnzd peano2zd
      wn zsubcld 1red nnred nn0red nnge1d lesub2dd zred leaddsub syl3anc mpbird
      cr wb eluz2 syl3anbrc adantrr cnex a1i syl6eleq vex fvi eluzelcn syl5eqel
      nnuz ax-mp iseqsplit elfzuz3 eluznn syl2anc facnn syl oveq1d 3eqtr4d expr
      faccld nncnd mulid2d oveq2d eqtr3d fveq2 fac0 syl6eq oveq1 iseqeq1 fveq1d
      0p1e1 oveq12d eqeq2d syl5ibrcom fznn0sub elnn0 sylib mpjaod iseqcl nnnn0d
      wo mulcl nnap0d divcanap5d 3eqtrd div0apd simpr mul02d mul01d nn0uz elfz5
      clt nn0re ad2antrr nnre 0z sylancl 0zd ad2antlr bitr4d mtbid simpl adantr
      subge0d zltnle zltp1le mpbid nn0ge0 elfz mpbir2and elex mp1i iseqz bcval3
      0cn nnz syl3an2 3expa 3eqtr4rd wdc fzdcel exmiddc mpjaodan ) BUFCZAUPCZDZ
      AEBUGFCZBAUHFZBGHIBAUIFZJUJFZUKZKZALKZMFZNUVIVHZUVHUVIDZUVJBLKZUVKLKZUVOG
      FZMFZUVTUVNGFZUWAMFUVPUVIUVJUWBNUVHABULOUVRUVSUWCUWAMUVRUVKUPCZUVSUWCNZUV
      KENZUVHUVIUWDUWEUVHUVIUWDDDZBGHIJUKZKZUVKUWHKZUVNGFUVSUWCUWGUAUBUCGHIJUVK
      BPUWGUAQZHCZUBQZHCZDZDUWKUWMUWGUWLUWNUMUWGUWLUWNUNUOUWGUWLUWNUCQZHCZUQDUW
      KUWMUWPUWGUWLUWNUWQURUWGUWLUWNUWQUSUWGUWLUWNUWQUTVAUVHUVIBUVLVBKZCZUWDUVR
      UVLTCZBTCZUVLBRSZUWSUVRUVKUVRBAUVRBUVFUVGUVIVCZVDZUVRAUVFUVGUVIVEZVFVIZVG
      UXDUVRUXBUVKBJUIFRSZUVRJABUVRVJZUVRAUXEVKUVRBUXCVLZUVRAUXEVMVNUVRUVKVSCJV
      SCBVSCZUXBUXGVTUVRUVKUXFVOUXHUXIUVKJBVPVQVRUVLBWAWBZWCHPCZUWGWDWEUWGUVKUP
      JVBKZUVHUVIUWDUNZWKWFUWGUWKUXMCZDUWKIKZUWKHUWKPCUXPUWKNUAWGUWKPWHWLZUXOUW
      LUWGJUWKWIOWJWMUWGBUPCZUVSUWINZUVHUVIUXRUWDUVRUVGBAVBKCZUXRUXEUVIUXTUVHAE
      BWNOBAWOWPZWCBWQZWRUWGUVTUWJUVNGUWGUWDUVTUWJNUXNUVKWQWRWSWTXAUVRUWEUWFUVS
      JUWIGFZNUVRJUVSGFUVSUYCUVRUVSUVRUVSUVRBUXCXBXCXDUVRUVSUWIJGUVRUXRUXSUYAUY
      BWRXEXFUWFUWCUYCUVSUWFUVTJUVNUWIGUWFUVTELKJUVKELXGXHXIUWFBUVMUWHUWFUVLJNU
      VMUWHNUWFUVLEJUJFJUVKEJUJXJXMXIGHIUVLJXKWRXLXNXOXPUVRUVKUFCZUWDUWFYCUVIUY
      DUVHAEBXQOZUVKXRXSXTWSUVRUVNUVOUVTUVRUDUEGHIUVLBPUXKUXLUVRWDWEUVRUDQZUWRC
      ZDUYFIKZUYFHUYFPCUYHUYFNUDWGUYFPWHWLUYGUYFHCZUVRUVLUYFWIOWJUYIUEQZHCDUYFU
      YJGFHCUVRUYFUYJYDOYAUVRUVOUVRAUVRAUXEYBXBZXCUVRUVTUVRUVKUYEXBZXCUVRUVOUYK
      YEUVRUVTUYLYEYFYGUVHUVQDZEUVOMFEUVPUVJUYMUVOUYMUVOUYMAUYMAUVFUVGUVQVEYBZX
      BZXCUYMUVOUYOYEYHUYMUVNEUVOMUYMUAUBGHIEUVLBPEUWOUWKUWMGFHCUYMUWKUWMYDOUYM
      UWKUWRCZDUXPUWKHUXQUYPUWLUYMUVLUWKWIOWJUXLUYMWDWEUYMUWLDZUWKUYMUWLYIZYJUY
      QUWKUYRYKUYMEUVLBUGFCZUVLERSZEBRSZUYMUVKEYNSZUYTUYMVUBEUVKRSZVHZUYMUVIVUC
      UVHUVQYIUYMUVIABRSZVUCUYMAEVBKZCUXAUVIVUEVTUYMAUFVUFUYNYLWFUYMBUVFUVGUVQV
      CVDZAEBYMWPUYMBAUVFUXJUVGUVQBYOYPUVGAVSCUVFUVQAYQUUAUUFUUBUUCUYMUVKTCZETC
      ZVUBVUDVTUVHVUHUVQUVHBAUVHBUVFUVGUUDVDZUVHAUVFUVGYIVFZVIUUEZYRUVKEUUGYSVR
      UYMVUHVUIVUBUYTVTVULYRUVKEUUHYSUUIUVFVUAUVGUVQBUUJYPUYMVUIUWTUXAUYSUYTVUA
      DVTUYMYTUYMUVKVULVGVUGEUVLBUUKVQUULUVFBPCUVGUVQBUFUUMYPEHCEIKENUYMUUQEHWH
      UUNUUOWSUVFUVGUVQUVJENZUVGUVFATCZUVQVUMAUURABUUPUUSUUTUVAUVHUVIUVBZUVIUVQ
      YCUVHVUNVUIUXAVUOVUKUVHYTVUJAEBUVCVQUVIUVDWRUVE $.
  $}

  ${
    $d N x y $.
    $( 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 ) ) $=
      ( vx vy wcel c2 co cmul cc cid cmin c1 caddc cfv cdiv wceq ax-1cn syl cvv
      cuz eqtrd cn0 cbc cseq cfa cn 2nn ibcval5 mpan2 2m1e1 oveq2i nn0cn npncan
      mp3an23 syl5eqr iseqeq1 fveq1d cz nn0z peano2zm uzid npcan sylancl fveq2d
      2cn eleqtrrd cnex a1i cv wa eluzelcn adantl fvi eleq1d mulcl iseqm1 iseq1
      ibir oveq12d subcl mulcomd fac2 ) AUADZAEUBFZAGHIAEJFZKLFZUCZMZEUDMZNFZAA
      KJFZGFZENFWBEUEDWCWIOUFEAUGUHWBWGWKWHENWBWGAGHIWJUCZMZWKWBAWFWLWBWEWJOWFW
      LOWBWEWDEKJFZLFZWJWNKWDLUIUJWBAHDZWOWJOZAUKZWPEHDKHDZWQVDPAEKULUMQUNGHIWE
      WJUOQUPWBWMWJAGFZWKWBWMWJWLMZAIMZGFWTWBBCGHIWJARWBAUQDZWJUQDZAURZAUSQZWBA
      ASMZWJKLFZSMWBXCAXGDXEAUTQWBXHASWBWPWSXHAOWRPAKVAVBVCVEHRDWBVFVGZWBBVHZWJ
      SMDZVIXJHDZXJIMZHDZXKXLWBWJXJVJVKXLXNXLXMXJHXJHVLVMVQQZXLCVHZHDVIXJXPGFHD
      WBXJXPVNVKZVOWBXAWJXBAGWBXAWJIMZWJWBBCGHIWJRXFXIXOXQVPWBXDXRWJOXFWJUQVLQT
      AUAVLVRTWBWJAWBWPWSWJHDWRPAKVSVBWRVTTTWHEOWBWAVGVRT $.
  $}

  $( 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 wn wb peano2nn0 cuz cfv elfzp12 nn0uz eleq2s 1p0e1 clt wbr 0z zsubcl
    bcn0 1z mp2an cr ltm1 ax-mp orci bcval4 mp3an23 3eqtr4a oveq2 oveq1 eqeq12d
    syl5ibrcom simpr 0p1e1 oveq1i syl6eleq cn nn0p1nn nnuz fzm1 biimpa sylan cc
    0re nn0cn ax-1cn pncan sylancl eleq2d wss 1eluzge0 fzss1 sseli bcp1n bcrpcl
    crp rpcnd elfzuz2 syl6eleqr peano2nnd 1cnd elfzelz addsubd fznn0sub eqeltrd
    nncnd nnap0d div12apd nnrpd rpdivcld mulcomd eqtrd npcand adddid divcanap1d
    zcnd 3eqtr2d elfznn divdivap2d bcm1k subsub3d oveq1d fzelp1 elfzm1b syl2anc
    nnzd mpbid eleqtrd divap0d divmulap3d div23apd 3eqtr3rd 3eqtrrd nn0re ltp1d
    mpbird olcd mpd3an23 sylan9eqr bcnn adantr jaodan syldan bcval3 syl3anc imp
    ex jaod sylbid adantlr 00id con3i 3expa sylan2 simpll simplr peano2zm nn0zd
    syl2anr fzp1ss eqsstr3i syl6bir sylbird con3dimp 0zd w3a wdc fzdcel exmiddc
    id mpjaodan ) BCDZAEDZFZAGBHIJZKJZDZBALJZBAHMJZLJZIJZUVJALJZNZUVLUAZUVGUVLU
    VRUVHUVGUVLUVRUVGUVLAGNZAGHIJZUVJKJZDZOZUVRUVGUVJCDZUVLUWDUBZBUCZUWFUVJGUDU
    EZCAGUVJUFUGUHPUVGUVTUVRUWCUVGUVRUVTBGLJZBGHMJZLJZIJZUVJGLJZNUVGHGIJHUWLUWM
    UIUVGUWIHUWKGIBUNUVGUWJEDZUWJGUJUKZBUWJUJUKZOUWKGNGEDZHEDUWNULUOGHUMUPUWOUW
    PGUQDUWOVSGURUSUTUWJBVAVBQUVGUWEUWMHNUWGUVJUNPVCUVTUVPUWLUVQUWMUVTUVMUWIUVO
    UWKIAGBLVDUVTUVNUWJBLAGHMVETQAGUVJLVDVFVGUVGUWCUVRUVGUWCAHUVJKJZDZUVRUVGUWC
    FAUWBUWRUVGUWCVHUWAHUVJKVIVJZVKUVGUWSAHUVJHMJZKJZDZAUVJNZOZUVRUVGUVJHUDUEZD
    ZUWSUXEUVGUVJVLUXFBVMZVNVKUXGUWSUXEAHUVJVOVPVQUVGUXCUVRUXDUVGUXCFAHBKJZDZUV
    RUVGUXCUXJUVGUXBUXIAUVGUXABHKUVGBVRDZHVRDZUXABNZBVTZWABHWBZWCZTWDVPUXJUVQUV
    MUVJUVJAMJZRJSJZUVMUXQRJZUXQSJZUXSASJZIJZUVPUXJAGBKJZDZUVQUXRNUXIUYCAHUWHDU
    XIUYCWEWFHGBWGUSWHZABWIPUXJUXRUXSUVJSJZUXSUXQAIJZSJUYBUXJUXRUVJUXSSJUYFUXJU
    VMUVJUXQUXJUVMUXJUYDUVMWKDUYEABWJPZWLZUXJUVJUXJBUXJBUXFVLAHBWMVNWNZWOZXAZUX
    JUXQUXJUXQBAMJZHIJZVLUXJBHAUXJBUYJXAZUXJWPZUXJAAHBWQZXKZWRUXJUYMCDUYNVLDAHB
    WSUYMVMPWTZXAZUXJUXQUYSXBZXCUXJUVJUXSUYLUXJUXSUXJUVMUXQUYHUXJUXQUYSXDZXEWLZ
    XFXGUXJUYGUVJUXSSUXJUVJAUYLUYRXHTUXJUXSUXQAVUCUYTUYRXIXLUXJUXTUVMUYAUVOIUXJ
    UVMUXQUYIUYTVUAXJUXJUVMUXQARJZRJZUVMASJUXQRJUVOUYAUXJUVMUXQAUYIUYTUYRVUAUXJ
    AABXMZXBZXNUXJVUEUVONUVMUVOVUDSJZNUXJUVMUVOBUVNMJZARJZSJVUHABXOUXJVUJVUDUVO
    SUXJVUIUXQARUXJBAHUYOUYRUYPXPXQTXGUXJUVMUVOVUDUYIUXJUVOUXJUVNUYCDZUVOWKDUXJ
    UVNGUXAKJZUYCUXJUWSUVNVULDZAHBXRUXJUVHUVJEDZUWSVUMUBZUYQUXJUVJUYKYAAUVJXSZX
    TYBUXJUXABGKUXJUXKUXLUXMUYOWAUXOWCTYCUVNBWJPWLUXJVUDUXJUXQAVUBUXJAVUFXDXEWL
    UXJUXQAUYTUYRVUAVUGYDYEYKUXJUVMAUXQUYIUYRUYTVUAYFYGQYHPUVGUXDFZUWAHUVPUVQVI
    VUQUVMGUVOHIUXDUVGUVMBUVJLJZGAUVJBLVDUVGVUNUVJGUJUKZBUVJUJUKZOVURGNUVGUVJUX
    HYAZUVGVUTVUSUVGBBYIYJYLUVJBVAYMYNVUQUVOBBLJZHVUQUVNBBLUXDUVGUVNUXABAUVJHMV
    EUXPYNTUVGVVBHNUXDBYOYPXGQUXDUVGUVQUVJUVJLJZHAUVJUVJLVDUVGUWEVVCHNUWGUVJYOP
    YNVCYQYRYRUUBUUCUUDUUAUUEUVIUVSFZGGIJGUVPUVQUUFVVDUVMGUVOGIUVSUVIUYDUAZUVMG
    NZUYDUVLAGBXRUUGUVGUVHVVEVVFABYSUUHUUIVVDUVGUVNEDZVUKUAUVOGNUVGUVHUVSUUJZVV
    DUVHVVGUVGUVHUVSUUKZAUULPUVIVUKUVLUVIVUKVUMUVLUVIVULUYCUVNUVIUXABGKUVIUXKUX
    LUXMUVGUXKUVHUXNYPWAUXOWCTWDUVIVUMUWSUVLUVHUVHVUNVUOUVGUVHUVEUVGUVJUWGUUMVU
    PUUNUWRUVKAUWRUWBUVKUWTUWQUWBUVKWEULGUVJUUOUSUUPWHUUQUURUUSUVNBYSYTQVVDUWEU
    VHUVSUVQGNVVDUVGUWEVVHUWGPVVIUVIUVSVHAUVJYSYTVCUVIUVHUWQVUNUVLUVSOZUVGUVHVH
    UVIUUTUVGVUNUVHVVAYPUVHUWQVUNUVAUVLUVBVVJAGUVJUVCUVLUVDPYTUVF $.

  ${
    $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 wn elfz1eq adantl bcn0 ax-mp eqeltri syl6eqel bcval3
      1nn0 syl mp3an1 0zd w3a wdc fzdcel exmiddc mpd3an23 mpjaodan rgen cbvralv
      wo cmin bcpasc adantlr rspccva peano2zm sylan2 nn0addcld adantll eqeltrrd
      ralrimiva ex syl5bi nn0ind sylan ) BEFBCGZHIZEFZCJKZAJFBAHIZEFZDGZVSHIZEF
      ZCJKLVSHIZEFZCJKUAGZVSHIZEFZCJKZWJMUBIZVSHIZEFZCJKZWBDUABWELNZWGWICJWRWFW
      HEWELVSHOPQWEWJNZWGWLCJWSWFWKEWEWJVSHOPQWEWNNZWGWPCJWTWFWOEWEWNVSHOPQWEBN
      ZWGWACJXAWFVTEWEBVSHOPQWICJVSJFZVSLLUCIFZWIXCUDZXBXCSVSLNZWIXCXEXBVSLUEUF
      XEWHLLHIZEVSLLHRXFMELEFZXFMNTLUGUHULUIUJUMXBXDSWHLEXGXBXDWHLNTVSLUKUNTUJX
      BLJFZXHXCXDVDZXBUOZXJXBXHXHUPXCUQXIVSLLURXCUSUMUTVAVBWMWJWEHIZEFZDJKZWJEF
      ZWQWLXLCDJVSWENWKXKEVSWEWJHRPVCXNXMWQXNXMSZWPCJXOXBSWKWJVSMVEIZHIZUBIZWOE
      XNXBXRWONXMVSWJVFVGXMXBXREFXNXMXBSWKXQXLWLDVSJWEVSNXKWKEWEVSWJHRPVHXBXMXP
      JFXQEFZVSVIXLXSDXPJWEXPNXKXQEWEXPWJHRPVHVJVKVLVMVNVOVPVQWAWDCAJVSANVTWCEV
      SABHRPVHVR $.

    $( 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 cn cmin cmul cc cdiv elfznn0 faccld fznn0sub nnmulcld
    cfv cn0 elfz3nn0 nncnd faccl syl nnap0d divcanap4d eqeltrd cbc bcval2 bccl2
    eqeltrrd nndivtr syl32anc ) ACBDEFZAGQZHFBAIEZGQZUMJEZHFBGQZKFZUPUMLEZHFUQU
    PLEZHFUQUMLEHFULAABMNZULUOUMULUNACBONZVAPULBRFZURABSVCUQBUATUBULUSUOHULUOUM
    ULUOVBTULUMVATULUMVAUCUDVBUEULBAUFEUTHABUGABUHUIUMUPUQUJUK $.

  $( 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 4ap0 divcanap4i fac3 ) ABUACZADEZA
    BUBCZDEZBDEZFCZGCZHBIAUCCJZVRWDKILJZALJZBLJZUDIBMNZBAMNZUEWEWFWGWHUFUNUOUGW
    IWJUHBAUIUJUKULUMBIAUPUQBAUROWDPDEZAFCZAGCZHVSWLWCAGPVGUSCZDEZWKWNFCZVSWLPU
    TJZWOWPKQPVAOAWNDRSAWNWKFRVBVCWCBBFCAWABWBBFWAWBBVTBDABBVDVHVHVEVFSVITVIVJV
    KTVJWMWKHWKAWKWQWKVLJQPVMOVNVDVOVPVQTTT $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
               The ` size ` (set size) function
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c size $.

  $( Extend the definition of a class to include the set size function. $)
  csize $a class size $.

  ${
    $d x y $.
    $( Define the set size function ` size ` , which gives the cardinality of a
       finite set as a member of ` NN0 ` , and assigns all infinite sets the
       value ` +oo ` .  For example, ` ( size `` { 0 , 1 , 2 } ) = 3 ` .

       Note that we use the sharp sign ( ` size ` ) for this function and we
       use the different character octothorpe ( ` # ` ) for the apartness
       relation (see ~ df-ap ).  We adopt the former notation from Corollary
       8.2.4 of [AczelRathjen], p. 80 (although that work only defines it for
       finite sets).

       This definition (in terms of ` U. ` and ` ~<_ ` ) is not taken directly
       from the literature, but for finite sets should be equivalent to the
       conventional definition that the size of a finite set is the unique
       natural number which is equinumerous to the given set.  (Contributed by
       Jim Kingdon, 19-Feb-2022.) $)
    df-size $a |- size = ( ( frec (
        ( x e. ZZ |-> ( x + 1 ) ) , 0 ) u. { <. _om , +oo >. } ) o.
        ( x e. _V |-> U. { y e. ( _om u. { _om } ) | y ~<_ x } ) ) $.
  $}

  ${
    $d A y z $.
    $( The ordinal size of an infinite set is ` _om ` .  (Contributed by Jim
       Kingdon, 20-Feb-2022.) $)
    sizeinfuni $p |- ( _om ~<_ A
        -> U. { y e. ( _om u. { _om } ) | y ~<_ A } = _om ) $=
      ( vz com cdom wbr cv csn cun crab cuni wcel wss wral wceq omex snid elun2
      wb syl breq1 elrab3 mp2b biimpri wo elrabi elun sylib ordom ordelss elsni
      word mpan eqimss jaoi adantl ralrimiva ssunieq syl2anc eqcomd ) DBEFZDAGZ
      BEFZADDHZIZJZKZVADVFLZCGZDMZCVFNDVGOVHVADVDLDVELVHVASDPQDVDDRVCVAADVEVBDB
      EUAUBUCUDVAVJCVFVIVFLZVJVAVKVIDLZVIVDLZUEZVJVKVIVELVNVCAVIVEUFVIDVDUGUHVL
      VJVMDULVLVJUIDVIUJUMVMVIDOVJVIDUKVIDUNTUOTUPUQCDVFURUSUT $.
  $}

  ${
    $d A x y z $.
    $( The value of the ` size ` function on an infinite set.  (Contributed by
       Jim Kingdon, 20-Feb-2022.) $)
    sizeinf $p |- ( _om ~<_ A -> ( size ` A ) = +oo ) $=
      ( vx vy vz com cdom wbr csize cfv cz cv cmpt cc0 cpnf csn wcel wceq ax-mp
      cvv c0 c1 caddc co cfrec cop cun crab cuni ccom df-size fveq1i cdm funmpt
      wfun wrel funrel peano1 reldom brrelex2i sizeinfuni omex syl6eqel rabbidv
      breq2 unieqd eqid fvmptg syl2anc eqtrd syl5eleqr relelfvdm sylancr syl5eq
      fvco fveq2d cxr pnfxr word ordom ordirr wfn wal zex mptex vex fvex ax-gen
      wn 0z frecfnom mp2an fndm eleq2i mtbir fsnunfv mp3an syl6eq ) EAFGZAHIZEB
      JBKZUAUBUCZLZMUDZENUEOUFZIZNWRWSABSCKZWTFGZCEEOUFZUGZUHZLZIZXDIZXEWRWSAXD
      XKUIZIZXMAHXNBCUJUKWRXKUNZAXKULPZXOXMQBSXJUMZWRXKUOZTXLPXQXPXSXRXKUPRWRTE
      XLUQWRXLXFAFGZCXHUGZUHZEWRASPYBSPXLYBQEAFURUSWRYBESCAUTZVAVBBAXJYBSSXKWTA
      QZXIYAYDXGXTCXHWTAXFFVDVCVEXKVFVGVHYCVIZVJTAXKVKVLAXDXKVNVLVMWRXLEXDYEVOV
      IESPNVPPEXCULZPZWHXENQVAVQYGEEPZEVRYHWHVSEVTRYFEEXCEWAZYFEQDKZXBISPZDWBMJ
      PYIYKDYJXBSSBJXAWCWDDWEWFWGWIDMXBJWJWKEXCWLRWMWNXCSVPENWOWPWQ $.
  $}

  ${
    $d A y z $.  $d N y z $.  $d A y z $.
    $( The ordinal size of a set equinumerous to an element of ` _om ` is that
       element of ` _om ` .  (Contributed by Jim Kingdon, 20-Feb-2022.) $)
    sizeennnuni $p |- ( ( N e. _om /\ N ~~ A )
        -> U. { y e. ( _om u. { _om } ) | y ~<_ A } = N ) $=
      ( vz com wcel cen wbr wa cv cdom csn adantr adantl breq1 elrab syl2anc wb
      mpbid cfn cun crab cuni wss wral wceq elun1 sylanbrc biimpi simprd simplr
      endom ensymd domentr simpr simplll nndomo ad3antrrr enfii wn elsni breq1d
      nnfi infnfi syl pm2.21dd wo simpld elun mpjaodan ralrimiva ssunieq eqcomd
      sylib ) CEFZCBGHZIZCAJZBKHZAEELZUAZUBZUCZVQCWBFZDJZCUDZDWBUECWCUFVQCWAFZC
      BKHZWDVOWGVPCEVTUGMVPWHVOCBULNVSWHACWAVRCBKOPUHVQWFDWBVQWEWBFZIZWEEFZWFWE
      VTFZWJWKIZWECKHZWFWJWNWKWJWEBKHZBCGHZWNWJWEWAFZWOWIWQWOIZVQWIWRVSWOAWEWAV
      RWEBKOPUINZUJZWJCBVOVPWIUKUMZWEBCUNQMWMWKVOWNWFRWJWKUOVOVPWIWKUPWECUQQSWJ
      WLIZBTFZWFXBCTFZWPXCVOXDVPWIWLCVCURWJWPWLXAMBCUSQXBEBKHZXCUTXBWOXEWJWOWLW
      TMWLWOXERWJWLWEEBKWEEVAVBNSBVDVEVFWJWQWKWLVGWJWQWOWSVHWEEVTVIVNVJVKDCWBVL
      QVM $.
  $}

  ${
    $d A x y z $.  $d N x y z $.
    $( The size of a set equinumerous to an element of ` _om ` .  (Contributed
       by Jim Kingdon, 21-Feb-2022.) $)
    sizeennn $p |- ( ( N e. _om /\ N ~~ A )
        -> ( size ` A ) = ( frec ( ( x e. ZZ |-> ( x + 1 ) ) , 0 ) ` N ) ) $=
      ( vy vz com wcel cen wbr wa csize cfv cv cvv cdom wceq cfn adantr syl2anc
      eqtrd cz c1 caddc co cmpt cc0 cfrec cpnf cop csn crab cuni df-size fveq1i
      cun ccom wfun cdm funmpt copab sizeennnuni eqcomd nnfi simpr ensymd enfii
      wb simpl breq2 rabbidv unieqd eqeq12d opelopabga mpbird mptv syl6eleqr wi
      opeldmg mpd fvco sylancr syl5eq elexd eqeltrd eqid fvmptg fveq2d wne word
      wn ordom ordirr ax-mp eleq1 mtbii necon2ai fvunsng mpdan ) CFGZCBHIZJZBKL
      ZCAUAAMZUBUCUDUEUFUGZFUHUIUJUOZLZCXDLZXAXBBANDMZXCOIZDFFUJUOZUKZULZUEZLZX
      ELZXFXAXBBXEXMUPZLZXOBKXPADUMUNXAXMUQBXMURGZXQXOPANXLUSXABCUIZXMGZXRXAXSE
      MZXLPZAEUTZXMXAXSYCGZCXHBOIZDXJUKZULZPZXAYGCDBCVAZVBXABQGZWSYDYHVGXACQGZB
      CHIYJWSYKWTCVCRXACBWSWTVDVEBCVFSZWSWTVHZYBYHAEBCQFXCBPZYACPZJZYACXLYGYNYO
      VDYPXKYFYPXIYEDXJYNXIYEVGYOXCBXHOVIZRVJVKVLVMSVNAEXLVOVPXAYJWSXTXRVQYLYMB
      CXMQFVRSVSBXEXMVTWAWBXAXNCXEXAXNYGCXABNGYGFGXNYGPXABQYLWCXAYGCFYIYMWDABXL
      YGNFXMYNXKYFYNXIYEDXJYQVJVKXMWEWFSYITWGTWSXFXGPZWTWSFCWHYRWSFCFCPFFGZWSFW
      IYSWJWKFWLWMFCFWNWOWPXDFUHCFWQWRRT $.
  $}

  ${
    $d A n x y z $.
    $( Closure of the ` size ` function on an finite set.  (Contributed by Jim
       Kingdon, 20-Feb-2022.) $)
    sizecl $p |- ( A e. Fin -> ( size ` A ) e. NN0 ) $=
      ( vn vx cfn wcel cv cen wbr csize cfv cn0 wrex isfi biimpi wa cz c1 caddc
      com cc0 co cmpt cfrec wceq simprl simprr ensymd sizeennn syl2anc cuz eqid
      0zd id frec2uzuzd nn0uz syl6eleqr syl eqeltrd rexlimddv ) ADEZABFZGHZAIJZ
      KEBSUTVBBSLBAMNUTVASEZVBOOZVCVACPCFQRUAUBTUCZJZKVEVDVAAGHVCVGUDUTVDVBUEZV
      EAVAUTVDVBUFUGCAVAUHUIVEVDVGKEVHVDVGTUJJKVDCVATVFVDULVFUKVDUMUNUOUPUQURUS
      $.
  $}

  $( The size of a finite set is either 0 or 1 or greater than 1.  (Contributed
     by Jim Kingdon, 21-Feb-2022.) $)
  sizefiv01gt1 $p |- ( M e. Fin
      -> ( ( size ` M ) = 0 \/ ( size ` M ) = 1 \/ 1 < ( size ` M ) ) ) $=
    ( cfn wcel csize cfv cc0 clt wbr c1 w3o cfz co wa simpr wn cn0 wo adantl cz
    wceq sizecl nn0nlt0 syl adantr pm2.21dd orc fz01or df-3or 3imtr4i 3mix3 0zd
    nn0zd 1zzd fztri3or syl3anc mpjao3dan ) ABCZADEZFGHZURFTZURITZIURGHZJZURFIK
    LCZVBUQUSMUSVCUQUSNUQUSOZUSUQURPCVEAUAZURUBUCUDUEVDVCUQUTVAQZVGVBQVDVCVGVBU
    FURUGUTVAVBUHUIRVBVCUQVBUTVAUJRUQURSCFSCISCUSVDVBJUQURVFULUQUKUQUMURFIUNUOU
    P $.

  ${
    $d A m n x $.  $d B m n x $.  $d N x y $.
    $( The set ` ( 1 ... N ) ` has ` N ` elements.  (Contributed by Jim
       Kingdon, 21-Feb-2022.) $)
    sizefz1 $p |- ( N e. NN0 -> ( size ` ( 1 ... N ) ) = N ) $=
      ( vx vy cn0 wcel c1 cfz co csize cfv cz cv caddc cmpt cc0 cfrec wceq wf1o
      com syl2anc ccnv cen wbr cuz wf eqid frec2uzf1od f1ocnv f1of 3syl elnn0uz
      biimpi ffvelrnd frecfzennn ensymd sizeennn wa oveq1 cbvmptv freceq1 ax-mp
      0zd fveq1i f1ocnvfv2 syl5eqr eqtrd ) ADEZFAGHZIJZABKBLZFMHZNZOPZUAZJZCKCL
      ZFMHZNZOPZJZAVGVOSEVOVHUBUCVIVTQVGOUDJZSAVNVGSWAVMRZWASVNRWASVNUEVGBOVMVG
      VBVMUFZUGZSWAVMUHWASVNUIUJVGAWAEZAUKULZUMVGVHVOBVMAWCUNUOCVHVOUPTVGWBWEVT
      AQWDWFWBWEUQVTVOVMJAVOVMVSVLVRQVMVSQBCKVKVQVJVPFMURUSOVLVRUTVAVCSWAAVMVDV
      ETVF $.

    $( Two finite sets have the same number of elements iff they are
       equinumerous.  (Contributed by Jim Kingdon, 21-Feb-2022.) $)
    sizeen $p |- ( ( A e. Fin /\ B e. Fin ) ->
                   ( ( size ` A ) = ( size ` B ) <-> A ~~ B ) ) $=
      ( vn vm vx cfn wcel wa cv cen wbr csize cfv wceq com wrex syl2anc syl cc0
      wb isfi biimpi adantr ad2antlr simplrl simprl nneneq simplrr enen1 simprr
      enen2 bitrd cz c1 caddc co cmpt cfrec ensymd sizeennn eqeq12d cuz wf1 0zd
      wf1o eqid frec2uzf1od f1of1 f1fveq syl12anc 3bitr4rd rexlimddv ) AFGZBFGZ
      HZACIZJKZALMZBLMZNZABJKZTZCOVMVQCOPZVNVMWCCAUAUBUCVOVPOGZVQHZHZBDIZJKZWBD
      OVNWHDOPZVMWEVNWIDBUAUBUDWFWGOGZWHHZHZVPWGJKZVPWGNZWAVTWLWDWJWMWNTVOWDVQW
      KUEZWFWJWHUFZVPWGUGQWLWAVPBJKZWMWLVQWAWQTVOWDVQWKUHZAVPBUIRWLWHWQWMTWFWJW
      HUJZBWGVPUKRULWLVTVPEUMEIUNUOUPUQSURZMZWGWTMZNZWNWLVRXAVSXBWLWDVPAJKVRXAN
      WOWLAVPWRUSEAVPUTQWLWJWGBJKVSXBNWPWLBWGWSUSEBWGUTQVAWLOSVBMZWTVCZWDWJXCWN
      TWLOXDWTVEXEWLESWTWLVDWTVFVGOXDWTVHRWOWPOXDVPWGWTVIVJULVKVLVL $.
  $}

  ${
    $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.) $)
    sizeeqf1o $p |- ( ( A e. Fin /\ B e. Fin )
        -> ( ( size ` A ) = ( size ` B ) <-> E. f f : A -1-1-onto-> B ) ) $=
      ( cfn wcel wa csize cfv wceq cen wbr cv wf1o wex sizeen bren syl6bb ) ADE
      BDEFAGHBGHIABJKABCLMCNABOABCPQ $.

    $( There is no bijection between a finite set and an infinite set.  By
       ~ infnfi the theorem would also hold if "infinite" were expressed as
       ` _om ~<_ B ` .  (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 f1ofi ex exlimdv con3dimp ) ADEZABCFZGZCHBDEZMOPCM
      OPABNIJKL $.
  $}

  $( 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 $.  $d B f $.  $d F f $.
    $( The size of two finite sets is equal if there is a bijection mapping one
       of the sets onto the other.  (Contributed by Jim Kingdon,
       21-Feb-2022.) $)
    sizeeqf1oi $p |- ( ( A e. Fin /\ F : A -1-1-onto-> B )
        -> ( size ` A ) = ( size ` B ) ) $=
      ( vf cfn wcel wf1o wa csize cfv wceq cv wex f1odm eleq1d biimparc wfun wb
      cdm mpbird f1ofun adantl fundmfibi syl simpr f1oeq1 spcegv sylc sizeeqf1o
      f1ofi syldan ) AEFZABCGZHZAIJBIJKZABDLZGZDMZUNCEFZUMURUNUSCSZEFZUMVAULUMU
      TAEABCNOPUNCQZUSVARUMVBULABCUAUBCUCUDTULUMUEUQUMDCEABUPCUFUGUHULUMBEFUOUR
      RABCUJABDUIUKT $.
  $}

  ${
    $d A f $.  $d B f $.  $d F 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 Jim Kingdon,
       21-Feb-2022.) $)
    sizef1rn $p |- ( ( A e. Fin /\ F : A -1-1-> B )
        -> ( size ` F ) = ( size ` ran F ) ) $=
      ( vf vx cfn wcel wf1 wa crn cv wf1o wex csize cfv wceq c2nd wi cvv ex wfn
      f1fn simpl fnfi syl2an2 cres f1o2ndf1 wfun csn cuni df-2nd funmpt2 wf f1f
      anim2i ancomd fex syl resfunexg sylancr f1oeq1 biimpd eqcoms adantl com13
      spcimedv mpcom impcom sizeeqf1oi exlimdv sylc ) AFGZABCHZIZCFGZCCJZDKZLZD
      MZCNOVPNOPZVMCAUAVLVLVOABCUBVLVMUCACUDUEVMVLVSCVPQCUFZLZVMVLVSRABCUGVLVMW
      BVSVLVMWBVSRVNVRWBDWASVNQUHCSGZWASGESEKUIJUJQEUKULVNABCUMZVLIWCVNVLWDVMWD
      VLABCUNUOUPABFCUQURQCSUSUTVQWAPWBVRRZVNWEWAVQWAVQPWBVRCVPWAVQVAVBVCVDVFTV
      EVGVHVOVRVTDVOVRVTCVPVQVITVJVK $.
  $}

  ${
    $d A f $.  $d B f $.  $d F f $.  $d U f $.  $d ph f $.
    sizeeqf1od.a $e |- ( ph -> A e. Fin ) $.
    sizeeqf1od.f $e |- ( ph -> F : A -1-1-onto-> B ) $.
    $( The size of two finite sets is equal if there is a bijection mapping one
       of the sets onto the other.  (Contributed by Jim Kingdon,
       21-Feb-2022.) $)
    sizeeqf1od $p |- ( ph -> ( size ` A ) = ( size ` B ) ) $=
      ( cfn wcel wf1o csize cfv wceq sizeeqf1oi syl2anc ) ABGHBCDIBJKCJKLEFBCDM
      N $.
  $}

  $( 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 csize cfv fveq2 sizefz1 eqeqan12d syl5ib oveq2
    impbid1 ) ACDZBCDZEZFAGHZFBGHZIZABIZUCUAJKZUBJKZITUDUAUBJLRSUEAUFBAMBMNOABF
    GPQ $.

  $( The size of an infinite set is greater than the size of a finite set.
     (Contributed by Jim Kingdon, 21-Feb-2022.) $)
  filtinf $p |- ( ( A e. Fin /\ _om ~<_ B )
      -> ( size ` A ) < ( size ` B ) ) $=
    ( cfn wcel com cdom wbr wa csize cfv cpnf clt cr sizecl nn0red ltpnf adantr
    syl wceq sizeinf adantl breqtrrd ) ACDZEBFGZHAIJZKBIJZLUCUEKLGZUDUCUEMDUGUC
    UEANOUEPRQUDUFKSUCBTUAUB $.

  $( A finite set is equinumerous to the range of integers from one up to the
     hash value of the set.  (Contributed by Jim Kingdon, 22-Feb-2022.) $)
  isfinite4im $p |- ( A e. Fin -> ( 1 ... ( size ` A ) ) ~~ A ) $=
    ( cfn wcel c1 csize cfv cfz co wceq cen wbr cn0 sizecl sizefz1 syl wb cz 1z
    nn0zd fzfig sylancr sizeen mpancom mpbid ) ABCZDAEFZGHZEFUFIZUGAJKZUEUFLCUH
    AMZUFNOUGBCZUEUHUIPUEDQCUFQCUKRUEUFUJSDUFTUAUGAUBUCUD $.

  $( Two ways of saying a finite set is empty.  (Contributed by Paul Chapman,
     26-Oct-2012.)  (Revised by Mario Carneiro, 27-Jul-2014.)  (Intuitionized
     by Jim Kingdon, 23-Feb-2022.) $)
  sizeeq0 $p |- ( A e. Fin -> ( ( size ` A ) = 0 <-> A = (/) ) ) $=
    ( cfn wcel csize cfv c0 wceq cen wbr cc0 wb 0fin sizeen mpan2 c1 cfz fveq2i
    co fz10 cn0 0nn0 sizefz1 ax-mp eqtr3i eqeq2i en0 3bitr3g ) ABCZADEZFDEZGZAF
    HIZUIJGAFGUHFBCUKULKLAFMNUJJUIOJPRZDEZUJJUMFDSQJTCUNJGUAJUBUCUDUEAUFUG $.

  $( Two ways of saying a finite set is not empty.  Also, "A is inhabited"
     would be equivalent by ~ fin0 .  (Contributed by Alexander van der Vekens,
     23-Sep-2018.)  (Intuitionized by Jim Kingdon, 23-Feb-2022.) $)
  sizeneq0 $p |- ( A e. Fin -> ( 0 < ( size ` A ) <-> A =/= (/) ) ) $=
    ( cfn csize cfv cc0 cap wbr wne clt c0 cz wb sizecl nn0zd 0zd zapne syl2anc
    wcel cn0 cr cle nn0re nn0ge0 ap0gt0 syl sizeeq0 necon3bid 3bitr3d ) ABRZACD
    ZEFGZUJEHZEUJIGZAJHUIUJKREKRUKULLUIUJAMZNUIOUJEPQUIUJSRZUKUMLZUNUOUJTREUJUA
    GUPUJUBUJUCUJUDQUEUIUJEAJAUFUGUH $.

  $( Positive natural closure of the set size function.  (Contributed by Mario
     Carneiro, 16-Jan-2015.) $)
  sizenncl $p |- ( A e. Fin -> ( ( size ` A ) e. NN <-> A =/= (/) ) ) $=
    ( cfn wcel csize cfv cn c0 wne wb cc0 wceq wa simpr nnne0 sizeeq0 necon3bid
    adantl adantr mpbid wn 2thd necon2bi biimpa syl 2falsed cn0 wo sizecl elnn0
    nner sylib mpjaodan ) ABCZADEZFCZUOAGHZIUNJKZUMUOLZUOUPUMUOMURUNJHZUPUOUSUM
    UNNZQUMUSUPIUOUMUNJAGAOZPRSUAUMUQLZUOUPUQUOTUMUOUNJUTUBQVBAGKZUPTUMUQVCVAUC
    AGUJUDUEUMUNUFCUOUQUGAUHUNUIUKUL $.

  $( The empty set has size zero.  (Contributed by Mario Carneiro,
     8-Jul-2014.) $)
  size0 $p |- ( size ` (/) ) = 0 $=
    ( c0 csize cfv cc0 wceq eqid cfn wcel wb 0fin sizeeq0 ax-mp mpbir ) ABCDEZA
    AEZAFAGHNOIJAKLM $.

  $( The size of a singleton.  (Contributed by Paul Chapman, 26-Oct-2012.)
     (Proof shortened by Mario Carneiro, 13-Feb-2013.) $)
  sizesng $p |- ( A e. V -> ( size ` { A } ) = 1 ) $=
    ( wcel csn csize cfv c1 cen wbr cz 1z en2sn mpan2 cfn wb snfig ax-mp sizeen
    wceq sylancl mpbird cfz co cn0 1nn0 sizefz1 fzsn fveq2d syl5reqr syl6eq ) A
    BCZADZEFZGDZEFZGUKUMUOSZULUNHIZUKGJCZUQKAGBJLMUKULNCUNNCZUPUQOABPURUSKGJPQU
    LUNRTUAURUOGSKURGGGUBUCZEFZUOGUDCVAGSUEGUFQURUTUNEGUGUHUIQUJ $.

  $( A finite set has size 1 if and only if it is equinumerous to the ordinal
     1.  (Contributed by AV, 14-Apr-2019.)  (Intuitoinized by Jim Kingdon,
     23-Feb-2022.) $)
  sizeen1 $p |- ( A e. Fin -> ( ( size ` A ) = 1 <-> A ~~ 1o ) ) $=
    ( cfn wcel csize cfv c1 c0 csn cen wbr c1o cvv 0ex sizesng ax-mp eqcomi a1i
    wceq eqeq2d wb snfig sizeen mpan2 df1o2 breq2i 3bitrd ) ABCZADEZFRUHGHZDEZR
    ZAUIIJZAKIJZUGFUJUHFUJRUGUJFGLCZUJFRMGLNOPQSUGUIBCZUKULTUNUOMGLUAOAUIUBUCUL
    UMTUGUIKAIKUIUDPUEQUF $.

  $( A function on a finite set is equinumerous to its domain.  (Contributed by
     Mario Carneiro, 12-Mar-2015.)  (Intuitionized by Jim Kingdon,
     24-Feb-2022.) $)
  sizefn $p |- ( ( F Fn A /\ A e. Fin ) -> ( size ` F ) = ( size ` A ) ) $=
    ( wfn cfn wcel wa csize cfv wceq cen fndmeng ensymd wb fnfi sizeen sylancom
    wbr mpbird ) BACZADEZFZBGHAGHIZBAJQZUAABADBKLSTBDEUBUCMABNBAOPR $.

  $( 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.) $)
  fseq1size $p |- ( ( N e. NN0 /\ F Fn ( 1 ... N ) ) -> ( size ` F ) = N ) $=
    ( cn0 wcel c1 cfz co wfn csize cfv cfn wceq simpr simpl nn0zd fzfigd sizefn
    wa 1zzd syl2anc sizefz1 adantr eqtrd ) BCDZAEBFGZHZRZAIJZUEIJZBUGUFUEKDUHUI
    LUDUFMUGEBUGSUGBUDUFNOPUEAQTUDUIBLUFBUAUBUC $.

  ${
    $d A n z $.  $d B n $.  $d G n z $.
    omgadd.1 $e |- G = frec ( ( x e. ZZ |-> ( x + 1 ) ) , 0 ) $.
    $( Mapping ordinal addition to integer addition.  (Contributed by Jim
       Kingdon, 24-Feb-2022.) $)
    omgadd $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 0zd
      vn vz cv csuc fveq2 eqeq12d imbi2d wf1o wf frechashgf1o f1of ax-mp nn0cnd
      ffvelrni addid1d frec2uz0d 3eqtr4rd w3a wa nnasuc nnacl frec2uzsucd eqtrd
      nna0 3adant3 3ad2ant1 3ad2ant2 1cnd addassd oveq1 3ad2ant3 3eqtr4d 3expia
      cc id expcom a2d finds impcom ) CFGBFGZBCHIZDJZBDJZCDJZKIZLZWABUBUDZHIZDJ
      ZWDWHDJZKIZLZMWABNHIZDJZWDNDJZKIZLZMWABUCUDZHIZDJZWDWSDJZKIZLZMWABWSUEZHI
      ZDJZWDXEDJZKIZLZMWAWGMUBUCCWHNLZWMWRWAXKWJWOWLWQXKWIWNDWHNBHOPXKWKWPWDKWH
      NDUFQUGUHWHWSLZWMXDWAXLWJXAWLXCXLWIWTDWHWSBHOPXLWKXBWDKWHWSDUFQUGUHWHXELZ
      WMXJWAXMWJXGWLXIXMWIXFDWHXEBHOPXMWKXHWDKWHXEDUFQUGUHWHCLZWMWGWAXNWJWCWLWF
      XNWIWBDWHCBHOPXNWKWEWDKWHCDUFQUGUHWAWDRKIWDWQWOWAWDWAWDFSBDFSDUIFSDUJADEU
      KFSDULUMZUOUNZUPWAWPRWDKWAARDWAUAEUQQWAWNBDBVEPURWSFGZWAXDXJWAXQXDXJMWAXQ
      XDXJWAXQXDUSZXGXATKIZXIWAXQXGXSLXDWAXQUTZXGWTUEZDJXSXTXFYADBWSVAPXTAWTRDX
      TUAEBWSVBVCVDVFXRXCTKIZWDXBTKIZKIZXSXIXRWDXBTWAXQWDVOGXDXPVGXQWAXBVOGXDXQ
      XBFSWSDXOUOUNVHXRVIVJXDWAXSYBLXQXAXCTKVKVLXQWAXIYDLXDXQXHYCWDKXQAWSRDXQUA
      EXQVPVCQVHVMVDVNVQVRVSVT $.
  $}

  ${
    $d A m n x $.  $d B m n x $.
    $( Dominance relation for the size function.  (Contributed by Jim Kingdon,
       24-Feb-2022.) $)
    sizedom $p |- ( ( A e. Fin /\ B e. Fin )
         -> ( ( size ` A ) <_ ( size ` B ) <-> A ~<_ B ) ) $=
      ( vn vm vx cfn wcel wa cv cen wbr csize cfv cle cdom wb wrex isfi syl2anc
      com biimpi adantr ad2antlr simplrr domen1 syl simprr domen2 cz caddc cmpt
      wss c1 co cc0 cfrec 0zd eqid simplrl simprl frec2uzled nndomo wceq ensymd
      sizeennn breq12d 3bitr4rd rexlimddv ) AFGZBFGZHZACIZJKZALMZBLMZNKZABOKZPZ
      CTVIVMCTQZVJVIVSCARUAUBVKVLTGZVMHZHZBDIZJKZVRDTVJWDDTQZVIWAVJWEDBRUAUCWBW
      CTGZWDHZHZAWCOKZVLWCOKZVQVPWHVMWIWJPVKVTVMWGUDZAVLWCUEUFWHWDVQWIPWBWFWDUG
      ZBWCAUHUFWHVLWCULZVLEUIEIUMUJUNUKUOUPZMZWCWNMZNKWJVPWHEVLWCUOWNWHUQWNURVK
      VTVMWGUSZWBWFWDUTZVAWHVTWFWJWMPWQWRVLWCVBSWHVNWOVOWPNWHVTVLAJKVNWOVCWQWHA
      VLWKVDEAVLVESWHWFWCBJKVOWPVCWRWHBWCWLVDEBWCVESVFVGVGVHVH $.
  $}

  ${
    $d A j w k y z $.  $d B j w y z $.  $d M j $.  $d N j w k y z $.
    $d j ph w y z $.
    sizeunlem.a $e |- ( ph -> A e. Fin ) $.
    sizeunlem.b $e |- ( ph -> B e. Fin ) $.
    sizeunlem.disj $e |- ( ph -> ( A i^i B ) = (/) ) $.
    sizeunlem.n $e |- ( ph -> N e. _om ) $.
    sizeunlem.m $e |- ( ph -> M e. _om ) $.
    sizeunlem.an $e |- ( ph -> A ~~ N ) $.
    sizeunlem.bm $e |- ( ph -> B ~~ M ) $.
    $( Lemma for ~ sizeun .  Ordinal size of the union.  (Contributed by Jim
       Kingdon, 25-Feb-2022.) $)
    sizeunlem $p |- ( ph -> ( A u. B ) ~~ ( N +o M ) ) $=
      ( vj cen wbr wa com c0 wceq wcel vw vy vz vk cv cun coa co wrex csn breq1
      uneq2 breq1d anbi12d rexbidv peano1 a1i 0ex enref un0 3brtr4d breq2 oveq2
      nna0 syl breq2d rspcev syl12anc cfn wss cdif csuc peano2 ad2antlr simp-4r
      cvv vex simprr ad2antrr eldifbd eldifd simplr simprl fiunsnnn cin ad4antr
      syl22anc incom eqeq1i sylan2b syl5eqr syl2anc unfidisj syl3anc wn eldifad
      ssdisj minel wo ioran elun xchnxbir sylanbrc nnacl unass eqcomd nnasuc ex
      rexlimdva cbvrexv syl6ibr findcard2sd simprrr ensymd entr syl2an2r nneneq
      simprrl wb mpbid oveq2d breqtrrd rexlimddv ) ACMUEZNOZBCUFZEYDUGUHZNOZPZY
      FEDUGUHZNOMQAUAUEZYDNOZBYKUFZYGNOZPZMQUIRYDNOZBRUFZYGNOZPZMQUIZUBUEZYDNOZ
      BUUAUFZYGNOZPZMQUIZUUAUCUEZUJZUFZYDNOZBUUIUFZYGNOZPZMQUIZYIMQUIUAUBUCCYKR
      SZYOYSMQUUOYLYPYNYRYKRYDNUKUUOYMYQYGNYKRBULUMUNUOYKUUASZYOUUEMQUUPYLUUBYN
      UUDYKUUAYDNUKUUPYMUUCYGNYKUUABULUMUNUOYKUUISZYOUUMMQUUQYLUUJYNUULYKUUIYDN
      UKUUQYMUUKYGNYKUUIBULUMUNUOYKCSZYOYIMQUURYLYEYNYHYKCYDNUKUURYMYFYGNYKCBUL
      UMUNUOARQTZRRNOZYQERUGUHZNOZYTUUSAUPUQUUTARURUSUQABEYQUVANKYQBSABUTUQAEQT
      ZUVAESIEVDVEVAYSUUTUVBPMRQYDRSZYPUUTYRUVBYDRRNVBUVDYGUVAYQNYDREUGVCVFUNVG
      VHAUUAVITZPZUUACVJZUUGCUUAVKTZPZPZUUFUUIUDUEZNOZUUKEUVKUGUHZNOZPZUDQUIZUU
      NUVJUUEUVPMQUVJYDQTZPZUUEUVPUVRUUEPZYDVLZQTZUUIUVTNOZUUKEUVTUGUHZNOZUVPUV
      QUWAUVJUUEYDVMVNUVSUVEUUGVPUUAVKTUVQUUBUWBAUVEUVIUVQUUEVOZUVSUUGVPUUAUUGV
      PTUVSUCVQUQZUVSUUGCUUAUVJUVHUVQUUEUVFUVGUVHVRVSZVTZWAUVJUVQUUEWBZUVRUUBUU
      DWCUUAUUGYDWDWGUVSUUCUUHUFZYGVLZUUKUWCNUVSUUCVITZUUGVPUUCVKTYGQTZUUDUWJUW
      KNOUVSBVITZUVEBUUAWEZRSZUWLAUWNUVEUVIUVQUUEFWFUWEUVSUVGBCWEZRSZUWPUVJUVGU
      VQUUEUVFUVGUVHWCVSAUWRUVEUVIUVQUUEHWFZUVGUWRPUWOUUABWEZRUUABWHUWRUVGCBWEZ
      RSUWTRSUWQUXARBCWHWIUUACBWQWJWKWLBUUAWMWNUVSUUGVPUUCUWFUVSUUGBTZWOZUUGUUA
      TZWOZUUGUUCTZWOUVSUUGCTUWRUXCUVSUUGCUUAUWGWPUWSUUGCBWRWLUWHUXBUXDWSUXCUXE
      PUXFUXBUXDWTUUGBUUAXAXBXCWAUVSUVCUVQUWMAUVCUVEUVIUVQUUEIWFZUWIEYDXDWLUVRU
      UBUUDVRUUCUUGYGWDWGUVSUWJUUKUWJUUKSUVSBUUAUUHXEUQXFUVSUVCUVQUWCUWKSUXGUWI
      EYDXGWLVAUVOUWBUWDPUDUVTQUVKUVTSZUVLUWBUVNUWDUVKUVTUUINVBUXHUVMUWCUUKNUVK
      UVTEUGVCVFUNVGVHXHXIUUMUVOMUDQYDUVKSZUUJUVLUULUVNYDUVKUUINVBUXIYGUVMUUKNY
      DUVKEUGVCVFUNXJXKGXLAUVQYIPZPZYFYGYJNAUVQYEYHXMUXKDYDEUGUXKDYDNOZDYDSZADC
      NOUXJYEUXLACDLXNAUVQYEYHXRDCYDXOXPADQTUXJUVQUXLUXMXSJAUVQYIWCDYDXQXPXTYAY
      BYC $.
  $}

  ${
    $d A m n x $.  $d B m n x $.
    $( The size of the union of disjoint finite sets is the sum of their sizes.
       (Contributed by Jim Kingdon, 25-Feb-2022.) $)
    sizeun $p |- ( ( A e. Fin /\ B e. Fin /\ ( A i^i B ) = (/) ) ->
        ( size ` ( A u. B ) ) = ( ( size ` A ) + ( size ` B ) ) ) $=
      ( vn vm vx cfn wcel wceq cv cen wbr csize cfv caddc co com wa syl2anc syl
      sizeennn cin c0 w3a cun wrex isfi biimpi 3ad2ant1 3ad2ant2 adantr cz cmpt
      coa cc0 cfrec simplrl simprl eqid omgadd nnacl enrefg vex sylancl oveq12d
      c1 enref 3eqtr4d simpll1 simpll2 simpll3 simplrr simprr unfidisj ad2antrr
      sizeunlem wb nnfi sizeen mpbird rexlimddv ) AFGZBFGZABUAUBHZUCZACIZJKZABU
      DZLMZALMZBLMZNOZHZCPWAWBWFCPUEZWCWAWMCAUFUGUHWDWEPGZWFQZQZBDIZJKZWLDPWDWR
      DPUEZWOWBWAWSWCWBWSDBUFUGUIUJWPWQPGZWRQZQZWEWQUMOZLMZWELMZWQLMZNOZWHWKXBX
      CEUKEIVENOULUNUOZMZWEXHMZWQXHMZNOZXDXGXBWNWTXIXLHWDWNWFXAUPZWPWTWRUQZEWEW
      QXHXHURUSRXBXCPGZXCXCJKZXDXIHXBWNWTXOXMXNWEWQUTZRZXBXOXPXRXCPVASEXCXCTRXB
      XEXJXFXKNXBWNWEWEJKXEXJHXMWECVBVFEWEWETVCXBWTWQWQJKXFXKHXNWQDVBVFEWQWQTVC
      VDVGXBWHXDHZWGXCJKZXBABWQWEWAWBWCWOXAVHZWAWBWCWOXAVIZWAWBWCWOXAVJXMXNWDWN
      WFXAVKZWPWTWRVLZVOXBWGFGZXCFGZXSXTVPWDYEWOXAABVMVNXBWNWTYFXMXNWNWTQXOYFXQ
      XCVQSRWGXCVRRVSXBWIXEWJXFNXBWIXEHZWFYCXBWAWEFGZYGWFVPYAXBWNYHXMWEVQSAWEVR
      RVSXBWJXFHZWRYDXBWBWQFGZYIWRVPYBXBWTYJXNWQVQSBWQVRRVSVDVGVTVT $.
  $}

  $( 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.) $)
  1elfz0size $p |- ( ( A e. Fin /\ A =/= (/) )
                     -> 1 e. ( 0 ... ( size ` A ) ) ) $=
    ( cfn wcel c0 wne wa c1 cn0 csize cfv cle wbr cc0 cfz 1nn0 sizenncl biimpar
    co a1i cn nnnn0d nnge1d elfz2nn0 syl3anbrc ) ABCZADEZFZGHCZAIJZHCGUIKLGMUIN
    RCUHUGOSUGUIUEUITCUFAPQZUAUGUIUJUBGUIUCUD $.

  $( 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.) $)
  sizeunsng $p |- ( B e. V -> ( ( A e. Fin /\ -. B e. A ) ->
      ( size ` ( A u. { B } ) ) = ( ( size ` A ) + 1 ) ) ) $=
    ( cfn wcel wn wa csn cun csize cfv c1 caddc co wceq cin simpll snfig adantl
    c0 simplr disjsn sylibr sizeun syl3anc sizesng oveq2d eqtrd expcom ) ADEZBA
    EFZGZBCEZABHZIJKZAJKZLMNZOULUMGZUOUPUNJKZMNZUQURUJUNDEZAUNPTOZUOUTOUJUKUMQU
    MVAULBCRSURUKVBUJUKUMUAABUBUCAUNUDUEUMUTUQOULUMUSLUPMBCUFUGSUHUI $.

  $( 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.) $)
  sizeprg $p |- ( ( A e. V /\ B e. W ) ->
      ( A =/= B <-> ( size ` { A , B } ) = 2 ) ) $=
    ( wcel wa wne cpr csize cfv c2 wceq csn cun c1 caddc co cfn imp adantr df-2
    simplr snfig ad2antrr elsni eqcomd necon3ai adantl sizeunsng sizesng oveq1d
    wn syl12anc eqtrd df-pr fveq2i 3eqtr4g 1ne2 a1i eqnetrd dfsn2 preq2 syl5req
    fveq2d neeq1d syl5ibrcom necon2d impbida ) ACEZBDEZFZABGZABHZIJZKLZVKVLFZAM
    ZBMNZIJZOOPQZVNKVPVSVQIJZOPQZVTVPVJVQREZBVQEZULZVSWBLZVIVJVLUBVIWCVJVLACUCU
    DVLWEVKWDABWDBABAUEUFUGUHVJWCWEFWFVQBDUISUMVPWAOOPVKWAOLZVLVIWGVJACUJTZTUKU
    NVMVRIABUOUPUAUQVKVOVLVKABVNKVKVNKGABLZWAKGVKWAOKWHOKGVKURUSUTWIVNWAKWIVMVQ
    IWIVQAAHVMAVAABAVBVCVDVEVFVGSVH $.

  $( There is (at least) one set with two different elements: the unordered
     pair containing ` 0 ` and ` 1 ` .  In contrast to ~ pr0size2ex , numbers
     are used instead of sets because their representation is shorter (and more
     comprehensive).  (Contributed by AV, 29-Jan-2020.) $)
  prsize2ex $p |- ( size ` { 0 , 1 } ) = 2 $=
    ( cc0 c1 cpr csize cfv c2 wceq wne 0ne1 cvv wcel wb c0ex 1ex sizeprg bicomd
    wa mp2an mpbir ) ABCDEFGZABHZIAJKZBJKZTUALMNUBUCQUATABJJOPRS $.

  ${
    sizep1i.1 $e |- A e. _om $.
    sizep1i.2 $e |- B = suc A $.
    sizep1i.3 $e |- ( size ` A ) = M $.
    sizep1i.4 $e |- ( M + 1 ) = N $.
    $( Size of a finite ordinal.  (Contributed by Mario Carneiro,
       5-Jan-2016.) $)
    sizep1i $p |- ( size ` B ) = N $=
      ( csize 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 sizeunsng mp2an oveq1i ) BIJA
      AKLZIJZDBUPIBAMUPFAUANUDUQAIJZOPQZDAUBRZAARUEZUQUSUCZASRZUTEAUFTVCAUGVAEA
      UHAUIUJVCUTVAUKVBULEAASUMTUNUSCOPQDURCOPGUOHNNN $.
  $}

  $( Size of a finite ordinal.  (Contributed by Mario Carneiro, 5-Jan-2016.) $)
  size1 $p |- ( size ` 1o ) = 1 $=
    ( c0 c1o cc0 c1 peano1 df-1o size0 0p1e1 sizep1i ) ABCDEFGHI $.

  $( Size of a finite ordinal.  (Contributed by Mario Carneiro, 5-Jan-2016.) $)
  size2 $p |- ( size ` 2o ) = 2 $=
    ( c1o c2o c1 c2 1onn df-2o size1 1p1e2 sizep1i ) ABCDEFGHI $.

  $( Size of a finite ordinal.  (Contributed by Mario Carneiro, 5-Jan-2016.) $)
  size3 $p |- ( size ` 3o ) = 3 $=
    ( c2o c3o c2 c3 2onn df-3o size2 2p1e3 sizep1i ) ABCDEFGHI $.

  $( Size of a finite ordinal.  (Contributed by Mario Carneiro, 5-Jan-2016.) $)
  size4 $p |- ( size ` 4o ) = 4 $=
    ( c3o c4o c3 c4 3onn df-4o size3 3p1e4 sizep1i ) 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.) $)
  pr0size2ex $p |- ( size ` { (/) , { (/) } } ) = 2 $=
    ( c0 csn cpr csize cfv c2o c2 df2o2 eqcomi fveq2i size2 eqtri ) AABCZDEFDEG
    MFDFMHIJKL $.


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  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 $.
    $( 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.) $)
    shftfvalg $p |- ( ( A e. CC /\ F e. V ) -> ( F shift A ) =
                    { <. x , y >. | ( x e. CC /\ ( x - A ) F y ) } ) $=
      ( vz vw cc wcel wa cv cmin co wbr copab cvv cshi wceq caddc wrex sylancom
      simpr simpl cdm cab crn cxp wss simplr simpll subcld breldmg mp3an2 npcan
      vex eqcomd ancoms adantr oveq1 eqeq2d rspcev syl2anc eqeq1 rexbidv sylibr
      elab brelrng jca ssopab2dv df-xp syl6sseqr dmexg abrexexg syl rnexg xpexg
      expl ssexg syl2an elex breq anbi2d opabbidv oveq2 df-shft ovmpt2g syl3an1
      breq1d syl3anc ) CHIZDEIZJWKWJAKZHIZWLCLMZBKZDNZJZABOZPIZDCQMWRRZWJWKUBWJ
      WKUCWJWRFKZGKZCSMZRZGDUDZTZFUEZDUFZUGZUHXIPIZWSWKWJWRWLXGIZWOXHIZJZABOXIW
      JWQXMABWJWMWPXMWJWMJZWPJZXKXLXOWLXCRZGXETZXKXOWNXEIZWLWNCSMZRZXQXNWPWNHIZ
      XRXOWLCWJWMWPUIWJWMWPUJUKZYAWOPIZWPXRBUOZWNWOHPDULUMUAXNXTWPWMWJXTWMWJJXS
      WLWLCUNUPUQURXPXTGWNXEXBWNRXCXSWLXBWNCSUSUTVAVBXFXQFWLAUOXAWLRXDXPGXEXAWL
      XCVCVDVFVEXNWPYAXLYBYAYCWPXLYDWNWODHPVGUMUAVHVQVIABXGXHVJVKWKXGPIZXHPIXJW
      KXEPIYEDEVLGFXEXCPVMVNDEVOXGXHPPVPVBWRXIPVRVSWKDPIWJWSWTDEVTFGDCPHWMWLXBL
      MZWOXANZJZABOWRQWMYFWODNZJZABOPXADRZYHYJABYKYGYIWMYFWOXADWAWBWCXBCRZYJWQA
      BYLYIWPWMYLYFWNWODXBCWLLWDWHWBWCGABFWEWFWGWI $.
  $}

  ${
    $d A u w z $.  $d F u w z $.  $d V z $.
    $( Existence of the result of applying shift.  (Contributed by Jim Kingdon,
       15-Aug-2021.) $)
    ovshftex $p |- ( ( F e. V /\ A e. CC ) -> ( F shift A ) e. _V ) $=
      ( vz vw vu wcel cc wa cshi co cv cmin wbr copab cvv wceq shftfvalg ancoms
      cnex a1i cab crn rnexg ad2antrr wss breq2 elab simpr simpl subcld brelrng
      vex mp3an2 sylan ex syl5bi ssrdv adantll ssexd opabex3d eqeltrd ) BCGZAHG
      ZIZBAJKZDLZHGZVGAMKZELZBNZIDEOZPVDVCVFVLQDEABCRSVEVKDEHHPGVETUAVEVHIVKEUB
      ZBUCZPVCVNPGVDVHBCUDUEVDVHVMVNUFVCVDVHIZFVMVNFLZVMGVIVPBNZVOVPVNGZVKVQEVP
      FUMZVJVPVIBUGUHVOVQVRVOVIHGZVQVRVOVGAVDVHUIVDVHUJUKVTVPPGVQVRVSVIVPBHPULU
      NUOUPUQURUSUTVAVB $.
  $}

  ${
    $d A x y z $.  $d B x y z $.  $d F x y z $.  $d V z $.
    $( Value of a fiber of the relation ` F ` .  (Contributed by Jim Kingdon,
       15-Aug-2021.) $)
    shftfibg $p |- ( ( F e. V /\ A e. CC /\ B e. CC ) ->
        ( ( F shift A ) " { B } ) = ( F " { ( B - A ) } ) ) $=
      ( vz vx vy wcel cc cv co wbr cab cmin csn cima wa wb cvv wceq simp2 simp1
      w3a cshi simp3 copab shftfvalg breqd vex eleq1 oveq1 breq1d anbi12d breq2
      anbi2d eqid brabg sylan9bb syl21anc 3anibar abbidv imasng 3ad2ant3 subcld
      mpan2 syl 3eqtr4d ) CDHZAIHZBIHZUCZBEJZCAUDKZLZEMZBANKZVLCLZEMZVMBOPZCVPO
      PZVKVNVQEVHVIVJVNVQVKVIVHVJVNVJVQQZRVHVIVJUAZVHVIVJUBVHVIVJUEZVIVHQZVNBVL
      FJZIHZWEANKZGJZCLZQZFGUFZLZVJWAWDVMWKBVLFGACDUGUHVJVLSHWLWAREUIWJVJVPWHCL
      ZQWAFGBVLISWKWEBTZWFVJWIWMWEBIUJWNWGVPWHCWEBANUKULUMWHVLTWMVQVJWHVLVPCUNU
      OWKUPUQVEURUSUTVAVJVHVSVOTVIEBIVMVBVCVKVPIHVTVRTVKBAWCWBVDEVPICVBVFVG $.
  $}

  ${
    $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 sylancom
      cdm cab crn cxp wss simplr simpll subcld vex breldmg mp3an2 eqcomd ancoms
      npcan adantr oveq1 eqeq2d rspcev syl2anc eqeq1 rexbidv sylibr brelrng jca
      elab expl ssopab2dv df-xp syl6sseqr dmex abrexex rnex xpex sylancl anbi2d
      ssexg breq opabbidv oveq2 breq1d df-shft ovmpt2g mp3an1 mpdan ) CHIZAJZHI
      ZWGCKLZBJZDMZNZABOZPIZDCQLWMRZWFWMFJZGJZCSLZRZGDUBZTZFUCZDUDZUEZUFXDPIWNW
      FWMWGXBIZWJXCIZNZABOXDWFWLXGABWFWHWKXGWFWHNZWKNZXEXFXIWGWRRZGWTTZXEXIWIWT
      IZWGWICSLZRZXKXHWKWIHIZXLXIWGCWFWHWKUGWFWHWKUHUIZXOWJPIZWKXLBUJZWIWJHPDUK
      ULUAXHXNWKWHWFXNWHWFNXMWGWGCUOUMUNUPXJXNGWIWTWQWIRWRXMWGWQWICSUQURUSUTXAX
      KFWGAUJWPWGRWSXJGWTWPWGWRVAVBVFVCXHWKXOXFXPXOXQWKXFXRWIWJDHPVDULUAVEVGVHA
      BXBXCVIVJXBXCGFWTWRDEVKVLDEVMVNWMXDPVQVODPIWFWNWOEFGDCPHWHWGWQKLZWJWPMZNZ
      ABOWMQWHXSWJDMZNZABOPWPDRZYAYCABYDXTYBWHXSWJWPDVRVPVSWQCRZYCWLABYEYBWKWHY
      EXSWIWJDWQCWGKVTWAVPVSGABFWBWCWDWE $.

    $( 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
      wb simpr simpl subcld eldmg pm5.32da 19.42v syl6rbbr abbidv dmopab df-rab
      syl 3eqtr4g eqtrd ) BFGZCBHIZJAKZFGZUQBLIZEKCMZNZAEOZJZUSCJGZAFPZUOUPVBAE
      BCDQRUOVAESZATURVDNZATVCVEUOVFVGAUOVGURUTESZNVFUOURVDVHUOURNZUSFGVDVHUAVI
      UQBUOURUBUOURUCUDEUSCFUEULUFURUTEUGUHUIVAAEUJVDAFUKUMUN $.

    $( 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 simpr simpl subcld syl 3eqtr4d
      ) AHIZBHIZJZBEKZCAUCLZMZENZBAOLZVICMZENZVJBPQZCVMPQZVHVKVNEVHVKVGVNJZVNVF
      VKBVIFKZHIZVSAOLZGKZCMZJZFGUAZMZVGVRVFVJWEBVIFGACDUDUBVGVIRIWFVRSEUNWDVGV
      MWBCMZJVRFGBVIHRWEVSBTZVTVGWCWGVSBHUEWHWAVMWBCVSBAOUFUGUHWBVITWGVNVGWBVIV
      MCUIUJWEUKULUOUMVGVNVRSVFVGVNUPUQURUSVGVPVLTVFEBHVJUTUQVHVMHIVQVOTVHBAVFV
      GVAVFVGVBVCEVMHCUTVDVE $.

    $( 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 cmin cfv shftfib wceq dffv3g syl
      eleq2d iotabidv simpr simpl subcld 3eqtr4d ) AFGZBFGZHZEIZCAJKZBLMZGZENZU
      JCBAOKZLMZGZENZBUKPZUOCPZUIUMUQEUIULUPUJABCDQUAUBUIUHUSUNRUGUHUCZEBUKFSTU
      IUOFGUTURRUIBAVAUGUHUDUEEUOCFSTUF $.

    $( 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 cvv wceq simplr vex
      caddc shftfval breqd simpr subcld eleq1 oveq1 breq1d anbi12d breq2 anbi2d
      ad2antrr brabg sylancl bitrd subcl biantrurd ancoms adantll sub32 subsub4
      eqid w3a eqtr3d 3expb 3bitr2d pm5.32da opabbidv ovshftex shftfvalg sylan2
      mpan addcl syl 3eqtr4d ) AIJZBIJZKZELZIJZWABMNZFLZCAONZPZKZEFQZWBWAABUCNZ
      MNZWDCPZKZEFQZWEBONZCWIONZVTWGWLEFVTWBWFWKVTWBKZWFWCIJZWCAMNZWDCPZKZWSWKW
      PWFWCWDGLZIJZXAAMNZHLZCPZKZGHQZPZWTVRWFXHRVSWBVRWEXGWCWDGHACDUDUEUNWPWQWD
      SJXHWTRWPWABVTWBUFVRVSWBUAUGFUBXFWQWRXDCPZKWTGHWCWDISXGXAWCTZXBWQXEXIXAWC
      IUHXJXCWRXDCXAWCAMUIUJUKXDWDTXIWSWQXDWDWRCULUMXGVDUOUPUQVSWBWSWTRZVRWBVSX
      KWBVSKWQWSWABURUSUTVAWPWRWJWDCWBVTWRWJTZWBVRVSXLWBVRVSVEWAAMNBMNWRWJWAABV
      BWAABVCVFVGUTUJVHVIVJVSVRWNWHTZVRVSWESJZXMCSJVRXNDACSVKVNEFBWESVLVMUTVTWI
      IJWOWMTABVOEFWICDUDVPVQ $.

    $( 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 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 $.

    $( Value of a sequence shifted by ` -u A ` .  (Contributed by Jim Kingdon,
       19-Aug-2021.) $)
    shftval4g $p |- ( ( F e. V /\ A e. CC /\ B e. CC ) ->
        ( ( F shift -u A ) ` B ) = ( F ` ( A + B ) ) ) $=
      ( vf wcel cc cneg cshi co cfv caddc wceq wa cv oveq1 fveq1d fveq1 eqeq12d
      wi imbi2d vex shftval4 vtoclg 3impib ) CDFAGFZBGFZBCAHZIJZKZABLJZCKZMZUFU
      GNZBEOZUHIJZKZUKUOKZMZTUNUMTECDUOCMZUSUMUNUTUQUJURULUTBUPUIUOCUHIPQUKUOCR
      SUAABUOEUBUCUDUE $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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 cc wcel cv caddc co cr ci cmin cmul wa crio ccj cfv wceq wreu eleq1d
      oveq1 cju riotacl syl oveq2d anbi12d riotabidv df-cj fvmptg mpdan ) BDEZB
      AFZGHZIEZJBUKKHZLHZIEZMZADNZDEZBOPURQUJUQADRUSABUAUQADUBUCCBCFZUKGHZIEZJU
      TUKKHZLHZIEZMZADNURDDOUTBQZVFUQADVGVBUMVEUPVGVAULIUTBUKGTSVGVDUOIVGVCUNJL
      UTBUKKTUDSUEUFCAUGUHUI $.

    $( 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 syl oveq2
      wa eleq1d riotasbc cjval sbceq1d mpbird wb riotacl eqeltrd oveq2d anbi12d
      cju wceq sbcieg mpbid ) ACDZABEZFGZHDZIAUOJGZKGZHDZSZBALMZNZAVBFGZHDZIAVB
      JGZKGZHDZSZUNVCVABVABCOZNZUNVABCPZVKBAUJZVABCUAQUNVABVBVJBAUBZUCUDUNVBCDV
      CVIUEUNVBVJCVNUNVLVJCDVMVABCUFQUGVAVIBVBCUOVBUKZUQVEUTVHVOUPVDHUOVBAFRTVO
      USVGHVOURVFIKUOVBAJRUHTUIULQUM $.

    $( 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 cc wcel ccj cfv caddc co c2 cdiv cre wceq id addcld halfcld cv fveq2
      cjcl oveq12 mpdan oveq1d df-re fvmptg ) ACDZAAEFZGHZIJHZCDAKFUGLUDUFUDAUE
      UDMARNOBABPZUHEFZGHZIJHUGCCKUHALZUJUFIJUKUIUELUJUFLUHAEQUHAUIUEGSTUABUBUC
      T $.

    $( 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 cc wcel ci cdiv co cre cfv cim wceq ccj caddc ax-icn a1i cc0 cap syl
      c2 id wbr iap0 divclapd reval cjcl addcld halfcld eqeltrd cv oveq1 fveq2d
      df-im fvmptg mpdan ) ACDZAEFGZHIZCDAJIUQKUOUQUPUPLIZMGZSFGZCUOUPCDZUQUTKU
      OAEUOTECDUONOEPQUAUOUBOUCZUPUDRUOUSUOUPURVBUOVAURCDVBUPUERUFUGUHBABUIZEFG
      ZHIUQCCJVCAKVDUPHVCAEFUJUKBULUMUN $.

    $( 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 c1 cc0 cap wbr wceq iap0
      ax-icn divrecap2 mp3an23 irec oveq1i syl6eq fveq2d eqtrd ) ABCZADEAFGHZIE
      FJZAKHZIEALUGUHUJIUGUHMFGHZAKHZUJUGFBCFNOPUHULQSRAFTUAUKUIAKUBUCUDUEUF $.

    $( 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 cap
      mpan wbr iap0 divcanap3 mp3an23 fveq2d eqtr2d ) ABCZDAEFZGHZUFDIFZJHZAJHU
      EUFBCZUGUIKDBCZUEUJLDAMRUFNOUEUHAJUEUKDPQSUHAKLTADUAUBUCUD $.

    $( 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 cap divsubdirapd 3eqtr3d
      wbr 2ap0 divcanap3d mulassd divassapd oveq12d c1 ixi neg1rr eqeltri simpr
      cneg remulcl cjth simprd rehalfcld eqeltrd rimul syl2anc subeq0d eqtrd )
      ACDZBCDZUKZAEBFGZHGZUAUBZWQWQUCUBZHGZIJGZAWOWQKDZWRXAUDWMAKDZWPKDZXBWNAUE
      ZWNEKDZBKDZXDLBUEZEBMZNAWPUFUGZWQUHOZWOXAAWOWTWOWQWSXJWOXBWSKDXJWQUIOZPZU
      JWMXCWNXEULZWOXAARGZCDEXOFGZCDXOUMUDWOXAAWOWRXACXKWOXBWRCDXJWQUNOUOWMWNUP
      UQWOXPEEFGZBFGZEWQWSRGZFGZIJGZRGZCWOEWPXSIJGZRGZFGEWPFGZEYCFGZRGXPYBWOEWP
      YCXFWOLQZWOXFXGXDLWNXGWMXHURZXINZWOXSWOWQWSXJXLUSZUJVBWOXOYDEFWOXAIAFGZIJ
      GZRGZIWPFGZIJGZYCRGZXOYDWOWTYKRGZIJGYNXSRGZIJGYMYPWOYQYRIJWOWTAAHGZRGZWPW
      PHGZXSRGZYQYRWOWQYSRGZWSHGUUAWQRGZWSHGYTUUBWOUUCUUDWSHWOUUCWPARGUUDWOAWPA
      XNYIXNUTWOWPAWPYIXNYIVAVCSWOWQWSYSXJXLWOAAXNXNPVDWOUUAWQWSWOWPWPYIYIPXJXL
      VETWOYKYSWTRWOAXNVFVGWOYNUUAXSRWOWPYIVFSTSWOWTYKIXMWOIKDZXCYKKDVHXNIAMNUU
      EWOVHQZIUMVIVLWOVMQZVJWOYNXSIWOUUEXDYNKDVHYIIWPMNYJUUFUUGVJVKWOYLAXARWOAI
      XNUUFUUGVNVGWOYOWPYCRWOWPIYIUUFUUGVNSVKVGWOXRYEYAYFRWOEEBYGYGYHVOWOEXSIYG
      YJUUFUUGVPVQTWOXRYAWOXQCDWNXRCDXQVRWCCVSVTWAWMWNWBXQBWDNWOXTWOXBXTCDZXJXB
      WTCDUUHWQWEWFOWGUQWHXOWIWJWKWL $.

    $( 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 iap0 cim addcl syl2an imval syl mpan cc0 cap wbr divdirap mpanr12
      3expa sylan2 c1 divrecap2 mp3an23 oveq1i a1i mulneg12 divcanap3 oveqan12d
      irec 3eqtrd negcl addcom sylan 3eqtrrd fveq2d id renegcl syl2anr 3eqtr2d
      crre ) ACDZBCDZEZAFBGHZIHZUAJZVRFKHZLJZBFAMZGHZIHZLJZBVPVRNDZVSWAOVNANDZV
      QNDZWFVOAPZVOFNDZBNDZWHQBPZFBRZSAVQUBUCVRUDUEVPWDVTLVNWGWKWDVTOVOWIWLWGWK
      EVTAFKHZVQFKHZIHZWCBIHZWDWKWGWHVTWPOZWJWKWHQWMUFWGWHEWJFUGUHUIZWRQTWGWHWJ
      WSEWRAVQFUJULUKUMWGWKWNWCWOBIWGWNUNFKHZAGHZFMZAGHZWCWGWJWSWNXAOQTAFUOUPXA
      XCOWGWTXBAGVBUQURWJWGXCWCOQFAUSUFVCWKWJWSWOBOQTBFUTUPVAWGWCNDZWKWQWDOWGWJ
      WBNDXDQAVDFWBRSWCBVEVFVGUCVHVOVOWBCDWEBOVNVOVIAVJBWBVMVKVL $.

    $( 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 real multiplier apart from zero is real iff the
     multiplicand is real.  (Contributed by Jim Kingdon, 14-Jun-2020.) $)
  mulreap $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 cap wbr w3a recl recn anim1i 3adant1 mulcanap syl3anc cim
    simp1 adantr imcl sylancr adddid replim oveq2d mp3an1 syl2an 3eqtr4d fveq2d
    mul12 remulcl sylan2 crre syl2anc eqtr2d eqeq1d sylan bitr4d ancoms 3adant3
    syl 3bitr2d ) ACDZBEDZBUAUBUCZUDZAEDZAFGZAHZBWARIZBARIZHZWDEDZVPVQVTWBJVRAK
    LVSWACDZVPBCDZVRMZWEWBJVPVQWGVRVPWAAUEZNZLVPVQVRULVQVRWIVPVQWHVRBUFZUGUHWAA
    BUIUJVPVQWEWFJZVRVQVPWMVQVPMZWEWDFGZWDHZWFWNWCWOWDWNWOWCSBAUKGZRIZRIZOIZFGZ
    WCWNWDWTFWNBWASWQRIZOIZRIWCBXBRIZOIWDWTWNBWAXBVQWHVPWLUMVPWGVQWKPVPXBCDZVQV
    PSCDZWQCDZXEQVPWQAUNZNZSWQTUOPUPWNAXCBRVPAXCHVQAUQPURWNWSXDWCOVQWHXGWSXDHZV
    PWLXIXFWHXGXJQSBWQVCUSUTURVAVBWNWCEDZWREDZXAWCHVPVQWAEDXKWJBWAVDVEVPVQWQEDX
    LXHBWQVDVEWCWRVFVGVHVIWNWDCDZWFWPJVQWHVPXMWLBATVJWDKVNVKVLVMVO $.

  $( 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 cap wbr wa wb iap0 pm3.2i a1i syl3anc
    mulcanap reim0b 3bitr4d 3bitrrd ) ABCZADEZAFAGEZHAREZIZJKZLKZVIHVJJKZLKZFVL
    VNFZAMCZVGVHVMAVOVGVIVNIZLKVIVNNKVMVHVGVIVNVGVIAUIOZVGHBCZVJBCZVNBCPVGVJAUJ
    OZHVJQSZUAVGVLVRVILVGVTWAVLVRFPWBHVJUBSUCAUDUEAUFUGVGVIVLVNVSVGVTVKBCZVLBCP
    VGVJWBUHZHVKQSWCUKVGVKVJFZVJTFZVPVQWFVJVKFVGWGVKVJULVGVJWBUMUNVGWDWAVTHTUOU
    PZUQZVPWFURWEWBWIVGVTWHPUSUTVAVKVJHVCVBAVDVEVF $.

  $( 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 Jim
     Kingdon, 14-Jun-2020.) $)
  redivap $p |- ( ( A e. CC /\ B e. RR /\ B # 0 ) ->
              ( Re ` ( A / B ) ) = ( ( Re ` A ) / B ) ) $=
    ( cc wcel cr cc0 cap wbr w3a c1 cdiv co cmul cre cfv wa ancom 3anass bitr4i
    wceq rerecclap anim1i sylbir remul2 syl recn divrecap2 fveq2d syl3an2 recnd
    recl 3ad2ant1 3ad2ant2 simp3 divrecap2d 3eqtr4d ) ACDZBEDZBFGHZIZJBKLZAMLZN
    OZVAANOZMLZABKLZNOZVDBKLUTVAEDZUQPZVCVETUTURUSPZUQPZVIVKUQVJPUTVJUQQUQURUSR
    SVJVHUQBUAUBUCVAAUDUEURUQBCDZUSVGVCTBUFZUQVLUSIVFVBNABUGUHUIUTVDBUQURVDCDUS
    UQVDAUKUJULURUQVLUSVMUMUQURUSUNUOUP $.

  $( 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 Jim
     Kingdon, 14-Jun-2020.) $)
  imdivap $p |- ( ( A e. CC /\ B e. RR /\ B # 0 ) ->
              ( Im ` ( A / B ) ) = ( ( Im ` A ) / B ) ) $=
    ( cc wcel cr cc0 cap wbr w3a c1 cdiv co cmul cim cfv wa ancom 3anass bitr4i
    wceq rerecclap anim1i sylbir immul2 syl recn divrecap2 fveq2d syl3an2 recnd
    imcl 3ad2ant1 3ad2ant2 simp3 divrecap2d 3eqtr4d ) ACDZBEDZBFGHZIZJBKLZAMLZN
    OZVAANOZMLZABKLZNOZVDBKLUTVAEDZUQPZVCVETUTURUSPZUQPZVIVKUQVJPUTVJUQQUQURUSR
    SVJVHUQBUAUBUCVAAUDUEURUQBCDZUSVGVCTBUFZUQVLUSIVFVBNABUGUHUIUTVDBUQURVDCDUS
    UQVDAUKUJULURUQVLUSVMUMUQURUSUNUOUP $.

  $( 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 cap wbr 2cn 2ap0 divcanap2 mp3an23 syl eqtr2d ) ABCZDAEFZGQDAAHFZIQZ
    DJQZGQZUJUGUHUKDGAKLUGUJBCZULUJMZUGUIBCUMANAUIOPUMDBCDRSTUNUAUBUJDUCUDUEUF
    $.

  $( 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 cap wbr 2muliap0 divcanap4 mp3an23 recl mulcl sylancr
    cre addcld subsubd replim remim oveq12d 2timesd mulcom mpan2 mulass mp3an12
    2cn eqtrd pncan2d 3eqtr4d 3eqtr4rd eqtr3d ) ABCZADEZFGHIZHIZVIJIZVHAAKEZLIZ
    VIJIVGVHBCZVKVHMZVGVHANOZVNVIBCZVIUAUBUCVOPUDVHVIUEUFRVGVJVMVIJVGAUJEZGVHHI
    ZQIZVRVSLIZLIVTVRLIZVSQIZVMVJVGVTVRVSVGVRVSVGVRAUGOZVGGBCZVNVSBCSVPGVHUHUIZ
    UKWDWFULVGAVTVLWALAUMAUNUOVGFVSHIZVSVSQIVJWCVGVSWFUPVGVNVJWGMVPVNVJVIVHHIZW
    GVNVQVJWHMPVHVIUQURFBCWEVNWHWGMVASFGVHUSUTVBRVGWBVSVSQVGVRVSWDWFVCTVDVETVF
    $.

  $( 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 $.

  ${
    $d A w x y z $.  $d B w x y z $.
    $( Complex conjugate and apartness.  (Contributed by Jim Kingdon,
       14-Jun-2020.) $)
    cjap $p |- ( ( A e. CC /\ B e. CC ) ->
        ( ( * ` A ) # ( * ` B ) <-> A # B ) ) $=
      ( vx vy vz vw cc wcel wa cv ci cmul co caddc wceq cr wrex ccj cap wbr cfv
      wb cnre adantr ad3antlr cneg simplrr ad2antrr recnd apneg syl2anc simpllr
      wo orbi2d simpr breq12d simplrl apreim syl22anc bitrd fveq2d cjreim eqtrd
      cmin ax-icn a1i submul2 syl3anc renegcld 3bitrd 3bitr4rd rexlimdvva mpd
      ex ) AGHZBGHZIZACJZKDJZLMZNMZOZDPQCPQZARUAZBRUAZSTZABSTZUBZVOWCVPCDAUCUDV
      QWBWHCDPPVQVRPHZVSPHZIZIZWBWHWLWBIZBEJZKFJZLMZNMZOZFPQEPQZWHVPWSVOWKWBEFB
      UCUEWMWRWHEFPPWMWNPHZWOPHZIZIZWRWHXCWRIZVRWNSTZVSWOSTZUMZXEVSUFZWOUFZSTZU
      MZWGWFXDXFXJXEXDVSGHZWOGHZXFXJUBXDVSWMWJXBWRVQWIWJWBUGUHZUIZXDWOWMWTXAWRU
      GZUIZVSWOUJUKUNXDWGWAWQSTZXGXDAWABWQSWLWBXBWRULZXCWRUOZUPXDWIWJWTXAXRXGUB
      WMWIXBWRVQWIWJWBUQUHZXNWMWTXAWRUQZXPVRVSWNWOURUSUTXDWFVRVTVDMZWNWPVDMZSTV
      RKXHLMNMZWNKXILMNMZSTZXKXDWDYCWEYDSXDWDWARUAZYCXDAWARXSVAXDWIWJYHYCOYAXNV
      RVSVBUKVCXDWEWQRUAZYDXDBWQRXTVAXDWTXAYIYDOYBXPWNWOVBUKVCUPXDYCYEYDYFSXDVR
      GHKGHZXLYCYEOXDVRYAUIYJXDVEVFZXOVRKVSVGVHXDWNGHYJXMYDYFOXDWNYBUIYKXQWNKWO
      VGVHUPXDWIXHPHWTXIPHYGXKUBYAXDVSXNVIYBXDWOXPVIVRXHWNXIURUSVJVKVNVLVMVNVLV
      M $.
  $}

  $( A number is apart from zero iff its complex conjugate is apart from zero.
     (Contributed by Jim Kingdon, 14-Jun-2020.) $)
  cjap0 $p |- ( A e. CC -> ( A # 0 <-> ( * ` A ) # 0 ) ) $=
    ( ccj cfv cc0 cap wbr cc wcel cj0 breq2i wb 0cn cjap mpan2 syl5rbbr ) ABCZD
    EFPDBCZEFZAGHZADEFZQDPEIJSDGHRTKLADMNO $.

  $( A number is nonzero iff its complex conjugate is nonzero.  Also see
     ~ cjap0 which is similar but for apartness.  (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 Jim Kingdon,
     14-Jun-2020.) $)
  cjdivap $p |- ( ( A e. CC /\ B e. CC /\ B # 0 ) ->
                   ( * ` ( A / B ) ) = ( ( * ` A ) / ( * ` B ) ) ) $=
    ( cc wcel cc0 cap wbr w3a cdiv co ccj cfv cmul divclap cjcl syl simp2 simp3
    wb eqtr3d cjap0 mpbid divcanap4d wceq cjmul syl2anc divcanap1 fveq2d oveq1d
    ) ACDZBCDZBEFGZHZABIJZKLZBKLZMJZUPIJUOAKLZUPIJUMUOUPUMUNCDZUOCDABNZUNOPUMUK
    UPCDUJUKULQZBOPUMULUPEFGZUJUKULRUMUKULVBSVABUAPUBUCUMUQURUPIUMUNBMJZKLZUQUR
    UMUSUKVDUQUDUTVAUNBUEUFUMVCAKABUGUHTUIT $.

  ${
    $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 ) >. ) $=
      ( cc cv cfv cmpt wceq wtru cr wf1o a1i wcel ci cmul co caddc recnd cre wf
      ccnv cim cop cnref1o f1ocnv f1of mp2b feqmptd trud df-ov recl imcl ax-icn
      cxp mulcld addcld oveq1 oveq2 oveq2d ovmpt2g syl3anc replim eqtr4d fveq2d
      syl5eqr opelxpi syl2anc f1ocnvfv1 sylancr eqtr3d mpteq2ia eqtri ) DUCZCFC
      GZVOHZIZCFVPUAHZVPUDHZUEZIVOVRJKCFLLUPZVOFWBVOUBZKWBFDMZFWBVOMWCABDEUFZWB
      FDUGFWBVOUHUINUJUKCFVQWAVPFOZWADHZVOHZVQWAWFWGVPVOWFWGVSPVTQRZSRZVPWFWGVS
      VTDRZWJVSVTDULWFVSLOZVTLOZWJFOWKWJJVPUMZVPUNZWFVSWIWFVSWNTWFPVTPFOWFUONWF
      VTWOTUQURABVSVTLLAGZPBGZQRZSRWJDVSWRSRFWPVSWRSUSWQVTJWRWIVSSWQVTPQUTVAEVB
      VCVGVPVDVEVFWFWDWAWBOZWHWAJWEWFWLWMWSWNWOVSVTLLVHVIWBFWADVJVKVLVMVN $.
  $}

  ${
    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 Jim
       Kingdon, 14-Jun-2020.) $)
    cjdivapi $p |- ( B # 0 ->
                    ( * ` ( A / B ) ) = ( ( * ` A ) / ( * ` B ) ) ) $=
      ( cc wcel cc0 cap wbr cdiv co ccj cfv wceq cjdivap mp3an12 ) AEFBEFBGHIAB
      JKLMALMBLMJKNCDABOP $.
  $}

  ${
    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 which is nonzero has a complex conjugate which is nonzero.
         Also see ~ cjap0d which is similar but for apartness.  (Contributed by
         Mario Carneiro, 29-May-2016.) $)
      cjne0d $p |- ( ph -> ( * ` A ) =/= 0 ) $=
        ( cc0 wne ccj cfv cc wcel wb cjne0 syl mpbid ) ABEFZBGHEFZDABIJOPKCBLMN
        $.
    $}

    ${
      cjap0d.2 $e |- ( ph -> A # 0 ) $.
      $( A number which is apart from zero has a complex conjugate which is
         apart from zero.  (Contributed by Jim Kingdon, 11-Aug-2021.) $)
      cjap0d $p |- ( ph -> ( * ` A ) # 0 ) $=
        ( cc0 cap wbr ccj cfv cc wcel wb cjap0 syl mpbid ) ABEFGZBHIEFGZDABJKPQ
        LCBMNO $.
    $}

    $( 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 $.

    cjdivapd.2 $e |- ( ph -> B # 0 ) $.
    $( Complex conjugate distributes over division.  (Contributed by Jim
       Kingdon, 15-Jun-2020.) $)
    cjdivapd $p |- ( ph ->
                    ( * ` ( A / B ) ) = ( ( * ` A ) / ( * ` B ) ) ) $=
      ( cc wcel cc0 cap wbr cdiv co ccj cfv wceq cjdivap syl3anc ) ABGHCGHCIJKB
      CLMNOBNOCNOLMPDEFBCQR $.
  $}

  ${
    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 $.

      redivapd.2 $e |- ( ph -> A # 0 ) $.
      $( Real part of a division.  Related to ~ remul2 .  (Contributed by Jim
         Kingdon, 15-Jun-2020.) $)
      redivapd $p |- ( ph -> ( Re ` ( B / A ) ) = ( ( Re ` B ) / A ) ) $=
        ( cc wcel cr cc0 cap wbr cdiv co cre cfv wceq redivap syl3anc ) ACGHBIH
        BJKLCBMNOPCOPBMNQEDFCBRS $.

      $( Imaginary part of a division.  Related to ~ remul2 .  (Contributed by
         Jim Kingdon, 15-Jun-2020.) $)
      imdivapd $p |- ( ph -> ( Im ` ( B / A ) ) = ( ( Im ` B ) / A ) ) $=
        ( cc wcel cr cc0 cap wbr cdiv co cim cfv wceq imdivap syl3anc ) ACGHBIH
        BJKLCBMNOPCOPBMNQEDFCBRS $.
    $}

    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 $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Sequence convergence
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d A r $.
    $( Two ways to express a reciprocal.  (Contributed by Jim Kingdon,
       20-Jul-2021.) $)
    caucvgrelemrec $p |- ( ( A e. RR /\ A # 0 ) ->
        ( iota_ r e. RR ( A x. r ) = 1 ) = ( 1 / A ) ) $=
      ( cr wcel cc0 cap wbr wa cv cmul co c1 wceq cdiv rerecclap eqcom cc simpr
      wb recnd simpll simplr ax-1cn divmulap mp3an1 syl12anc syl5rbbr riota5 )
      ACDZAEFGZHZABIZJKLMZBCLANKZAOULUNMUNULMZUKULCDZHZUMUNULPUQULQDZAQDZUJUOUM
      SZUQULUKUPRTUQAUIUJUPUATUIUJUPUBLQDURUSUJHUTUCLULAUDUEUFUGUH $.
  $}

  ${
    $d F i j m x y $.  $d F i k m x y $.  $d F k m n $.  $d k m n ph $.
    $d k n r $.  $d ph x y $.
    caucvgre.f $e |- ( ph -> F : NN --> RR ) $.
    caucvgre.cau $e |- ( ph ->
      A. n e. NN A. k e. ( ZZ>= ` n )
        ( ( F ` n ) < ( ( F ` k ) + ( 1 / n ) ) /\
        ( F ` k ) < ( ( F ` n ) + ( 1 / n ) ) ) ) $.
    ${
      $d k n ph $.  $d n r $.

      $( Lemma for ~ caucvgre .  Converting the Cauchy condition.  (Contributed
         by Jim Kingdon, 20-Jul-2021.) $)
      caucvgrelemcau $p |- ( ph -> A. n e. NN A. k e. NN ( n <RR k ->
          ( ( F ` n ) <RR ( ( F ` k ) + ( iota_ r e. RR ( n x. r ) = 1 ) ) /\
          ( F ` k ) <RR ( ( F ` n ) + ( iota_ r e. RR ( n x. r ) = 1 ) )
        ) ) ) $=
        ( cv cltrr wbr cfv co cr caddc wa cn wcel clt syl2anc wb cmul wceq crio
        c1 wi wral cdiv cle simplr nnred simpr ltle cuz eluznn ex nnz eluz1 syl
        syl6bi jcad anim1i syl5ibr impbid adantl biimpar r19.21bi syldan ltxrlt
        cz expr syld ad2antrr ffvelrnd nnrecred readdcld cc0 cap caucvgrelemrec
        wf nnap0 oveq2d breq2d bitr4d anbi12d 3imtr3d ralrimiva ) ACHZBHZIJZWGD
        KZWHDKZWGEHUALUDUBEMUCZNLZIJZWKWJWLNLZIJZOZUEZBPUFCPAWGPQZOZWRBPWTWHPQZ
        OZWGWHRJZWJWKUDWGUGLZNLZRJZWKWJXDNLZRJZOZWIWQXBXCWGWHUHJZXIXBWGMQZWHMQZ
        XCXJUEXBWGAWSXAUIZUJZXBWHWTXAUKZUJZWGWHULSWTXAXJXIWTXAXJOZWHWGUMKZQZXIW
        TXSXQWSXSXQTAWSXSXQWSXSXAXJWSXSXAWHWGUNUOWSXSWHVIQZXJOZXJWSWGVIQXSYATWG
        UPWGWHUQURZXTXJUKUSUTXQXSWSYAXAXTXJWHUPVAYBVBVCVDVEWTXIBXRAXIBXRUFCPGVF
        VFVGVJVKXBXKXLXCWITXNXPWGWHVHSXBXFWNXHWPXBXFWJXEIJZWNXBWJMQXEMQXFYCTXBP
        MWGDAPMDVSWSXAFVLZXMVMZXBWKXDXBPMWHDYDXOVMZXBWGXMVNZVOWJXEVHSXBWMXEWJIX
        BWLXDWKNXBXKWGVPVQJZWLXDUBXNXBWSYHXMWGVTURWGEVRSZWAWBWCXBXHWKXGIJZWPXBW
        KMQXGMQXHYJTYFXBWJXDYEYGVOWKXGVHSXBWOXGWKIXBWLXDWJNYIWAWBWCWDWEWFWF $.
    $}

    $( Convergence of real sequences.

       A Cauchy sequence (as defined here, which has a rate of convergence
       built in) of real numbers converges to a real number.  Specifically on
       rate of convergence, all terms after the nth term must be within
       ` 1 / n ` of the nth term.

       (Contributed by Jim Kingdon, 19-Jul-2021.) $)
    caucvgre $p |- ( ph ->
        E. y e. RR A. x e. RR+ E. j e. NN A. i e. ( ZZ>= ` j )
        ( ( F ` i ) < ( y + x ) /\ y < ( ( F ` i ) + x ) ) ) $=
      ( vm cv wbr wa cn wral cr clt wcel wb vr cltrr cfv caddc wrex crp cuz cc0
      co wi dfnn2 caucvgrelemcau ax-caucvg ralrp 0re ltxrlt mpan imbi1d ralbiia
      bitri rexbii sylibr c1 wss simpr peano2nnd uznnssnn ssralv 3syl cz eluznn
      cle sylan simplr nnzd eluz1 syl biimpd impancom mpd simprd ad2antlr nnred
      1re ltadd1 mp3an3 syl2anc nnleltp1 bitr4d syldan mpbird syl2an adantll wf
      ad4antr ffvelrnd simpllr adantr ad3antlr readdcld anbi12d imbi12d biimprd
      nnre rpre mpid ralimdva syld breq1d oveq1d breq2d cbvralv syl6ib reximdva
      wceq fveq2 raleqdv rspcev ex rexlimdva ) AKLZFLZUBMZYBHUCZCLZBLZUDUIZUBMZ
      YEYDYFUDUIZUBMZNZUJZFOPZKOUEZBUFPZCQUEZDLZHUCZYGRMZYEYRYFUDUIZRMZNZDELZUG
      UCZPZEOUEZBUFPZCQUEAUHYFUBMZYNUJZBQPZCQUEYPABCKFGHOUABCUKIAFGHUAIJULUMYOU
      UJCQYOUHYFRMZYNUJZBQPUUJYNBUNUULUUIBQYFQSZUUKUUHYNUHQSUUMUUKUUHTUOUHYFUPU
      QURUSUTVAVBAYOUUGCQAYEQSZNZYNUUFBUFUUOYFUFSZNZYNUUBDYAVCUDUIZUGUCZPZKOUEU
      UFUUQYMUUTKOUUQYAOSZNZYMYDYGRMZYEYIRMZNZFUUSPZUUTUVBYMYLFUUSPZUVFUVBUUROS
      ZUUSOVDYMUVGUJUVBYAUUQUVAVEVFZUURVGYLFUUSOVHVIUVBYLUVEFUUSUVBYBUUSSZNZYLY
      AYBRMZUVEUVKUVLUURYBVLMZUVKYBVJSZUVMUVKYBOSZUVNUVMNZUVBUVHUVJUVOUVIYBUURV
      KVMZUVBUVOUVJUVPUVBUVONZUVJUVPUVRUURVJSUVJUVPTUVRUURUVRYAUUQUVAUVOVNVFZVO
      UURYBVPVQVRVSVTWAUVBUVJUVOUVLUVMTUVQUVRUVLUURYBVCUDUIRMZUVMUVRYAQSZYBQSZU
      VLUVTTZUVAUWAUUQUVOYAXDZWBUVRYBUVBUVOVEZWCUWAUWBVCQSUWCWDYAYBVCWEWFWGUVRU
      VHUVOUVMUVTTUVSUWEUURYBWHWGWIWJWKUVBUVJUVOYLUVLUVEUJZUJUVQUVRUWFYLUVRUVLY
      CUVEYKUVAUVOUVLYCTZUUQUVAUWAUWBUWGUVOUWDYBXDYAYBUPWLWMUVRUVCYHUVDYJUVRYDQ
      SYGQSUVCYHTUVROQYBHAOQHWNUUNUUPUVAUVOIWOUWEWPZUVRYEYFUVBUUNUVOAUUNUUPUVAW
      QWRZUUPUUMUUOUVAUVOYFXEWSZWTYDYGUPWGUVRUUNYIQSUVDYJTUWIUVRYDYFUWHUWJWTYEY
      IUPWGXAXBXCWJXFXGXHUVEUUBFDUUSYBYQXOZUVCYSUVDUUAUWKYDYRYGRYBYQHXPZXIUWKYI
      YTYERUWKYDYRYFUDUWLXJXKXAXLXMXNUUQUUTUUFKOUVBUUTUUFUVBUVHUUTUUFUVIUUEUUTE
      UUROUUCUURXOUUBDUUDUUSUUCUURUGXPXQXRVMXSXTXHXGXNVT $.
  $}

  ${
    cvg1nlemcxze.c $e |- ( ph -> C e. RR+ ) $.
    cvg1nlemcxze.x $e |- ( ph -> X e. RR+ ) $.
    cvg1nlemcxze.z $e |- ( ph -> Z e. NN ) $.
    cvg1nlemcxze.e $e |- ( ph -> E e. NN ) $.
    cvg1nlemcxze.a $e |- ( ph -> A e. NN ) $.
    cvg1nlemcxze.1 $e |- ( ph -> ( ( ( ( C x. 2 ) / X ) / Z ) + A ) < E ) $.
    $( Lemma for ~ cvg1n .  Rearranging an expression related to the rate of
       convergence.  (Contributed by Jim Kingdon, 6-Aug-2021.) $)
    cvg1nlemcxze $p |- ( ph -> ( C / ( E x. Z ) ) < ( X / 2 ) ) $=
      ( c2 cmul co clt wbr cdiv nnrpd rpred rpcnd 2cnd rpap0d div23apd crp wcel
      caddc rpmulcld rpdivcld nnred readdcld ltaddrpd lttrd ltdivmul2d eqbrtrrd
      2rp mpbid rerpdivcld nnmulcld ltmuldivd lt2mul2divd nncnd mulcomd breqtrd
      a1i mpbird ) ACMNOZEDFNOZNOZPQCVHROEMROPQAVGVHENOZVIPAVGVJPQCEROZVHMROPQZ
      AVKMNOZVHPQVLAVGEROZVMVHPACMEACGUAAUBAEHUAZAEHUCUDAVNFROZDPQVNVHPQAVPVPBU
      GODAVPAVNFAVGEACMGMUEUFAUPVEZUHHUIZAFISZUITZAVPBVTABKUJUKADJUJZAVPBVTABKS
      ULLUMAVNDFAVNVRTWAVSUNUQUOAVKVHMACEACGTZHURAVHADFJIUSZUJZVQUTUQACMVHEWBVQ
      WDHVAVFAVHEAVHWCVBVOVCVDACMEVHWBVQAEHTAVHWCSVAUQ $.
  $}

  ${
    cvg1n.f $e |- ( ph -> F : NN --> RR ) $.
    cvg1n.c $e |- ( ph -> C e. RR+ ) $.
    cvg1n.cau $e |- ( ph ->
      A. n e. NN A. k e. ( ZZ>= ` n )
        ( ( F ` n ) < ( ( F ` k ) + ( C / n ) ) /\
        ( F ` k ) < ( ( F ` n ) + ( C / n ) ) ) ) $.

    ${
      cvg1nlem.g $e |- G = ( j e. NN |-> ( F ` ( j x. Z ) ) ) $.
      cvg1nlem.z $e |- ( ph -> Z e. NN ) $.
      cvg1nlem.start $e |- ( ph -> C < Z ) $.

      ${
        $d j ph $.
        $( Lemma for ~ cvg1n .  The modified sequence ` G ` is a sequence.
           (Contributed by Jim Kingdon, 1-Aug-2021.) $)
        cvg1nlemf $p |- ( ph -> G : NN --> RR ) $=
          ( cn cv cmul cr wcel adantr co cfv wa simpr nnmulcld ffvelrnd fmptd
          wf ) ACOCPZHQUAZFUBRGAUIOSZUCZORUJFAORFUHUKITULUIHAUKUDAHOSUKMTUEUFLU
          G $.
      $}

      ${
        $d C a b n $.  $d C b k n $.  $d F a b n $.  $d F j k n $.  $d Z a b $.
        $d Z j $.  $d k n ph $.
        $( Lemma for ~ cvg1n .  By selecting spaced out terms for the modified
           sequence ` G ` , the terms are within ` 1 / n ` (without the
           constant ` C ` ).  (Contributed by Jim Kingdon, 1-Aug-2021.) $)
        cvg1nlemcau $p |- ( ph ->
            A. n e. NN A. k e. ( ZZ>= ` n )
            ( ( G ` n ) < ( ( G ` k ) + ( 1 / n ) ) /\
            ( G ` k ) < ( ( G ` n ) + ( 1 / n ) ) ) ) $=
          ( cfv co caddc clt wbr cn vb va cv c1 cdiv wa cuz wral wcel cmul wceq
          cr simplr wf ad2antrr nnmulcld ffvelrnd fveq2d fvmptg syl2anc eqeltrd
          oveq1 eluznn rpred nndivred readdcld nnrecred cle eluzle adantl nnred
          adantll nnrpd lemul1d mpbid cz nnzd mpbird fveq2 oveq1d breq2d breq1d
          wb eluz anbi12d cbvralv ralbii oveq2 oveq2d breq12d oveq12d raleqbidv
          bitri sylib rspcv sylc simpld ltmul1dd nncnd mulid2d 1red lt2mul2divd
          mulcomd 3bitr3d ltadd2dd lttrd simprd jca ralrimiva ) AEUCZGOZDUCZGOZ
          UDXJUEPZQPZRSZXMXKXNQPZRSZUFZDXJUGOZUHETAXJTUIZUFZXSDXTYBXLXTUIZUFZXP
          XRYDXKXMBXJHUJPZUEPZQPZXOYDXKYEFOZULYDYAYHULUIXKYHUKAYAYCUMZYDTULYEFA
          TULFUNYAYCIUOZYDXJHYIAHTUIYAYCMUOZUPZUQZCXJCUCZHUJPZFOZYHTULGYNXJUKYO
          YEFYNXJHUJVBURLUSUTZYMVAZYDXMYFYDXMXLHUJPZFOZULYDXLTUIZYTULUIXMYTUKYA
          YCUUAAXLXJVCVLZYDTULYSFYJYDXLHUUBYKUPZUQZCXLYPYTTULGYNXLUKYOYSFYNXLHU
          JVBURLUSUTZUUDVAZYDBYEABULUIYAYCABJVDUOZYLVEZVFYDXMXNUUFYDXJYIVGZVFYD
          XKYGRSZXMXKYFQPZRSZYDUUJUULUFYHYGRSZXMYHYFQPZRSZUFZYDUUPYHYTYFQPZRSZY
          TUUNRSZUFZYDYSYEUGOZUIZYHUAUCZFOZYFQPZRSZUVDUUNRSZUFZUAUVAUHZUUTYDUVB
          YEYSVHSZYDXJXLVHSZUVJYCUVKYBXJXLVIVJYDXJXLHYDXJYIVKYDXLUUBVKYDHYKVMVN
          VOYDYEVPUIYSVPUIUVBUVJWCYDYEYLVQYDYSUUCVQYEYSWDUTVRYDYETUIUBUCZFOZUVD
          BUVLUEPZQPZRSZUVDUVMUVNQPZRSZUFZUAUVLUGOZUHZUBTUHZUVIYLAUWBYAYCAXJFOZ
          XLFOZBXJUEPZQPZRSZUWDUWCUWEQPZRSZUFZDXTUHZETUHZUWBKUWLUWCUVDUWEQPZRSZ
          UVDUWHRSZUFZUAXTUHZETUHUWBUWKUWQETUWJUWPDUAXTXLUVCUKZUWGUWNUWIUWOUWRU
          WFUWMUWCRUWRUWDUVDUWEQXLUVCFVSZVTWAUWRUWDUVDUWHRUWSWBWEWFWGUWQUWAEUBT
          XJUVLUKZUWPUVSUAXTUVTXJUVLUGVSUWTUWNUVPUWOUVRUWTUWCUVMUWMUVORXJUVLFVS
          ZUWTUWEUVNUVDQXJUVLBUEWHZWIWJUWTUWHUVQUVDRUWTUWCUVMUWEUVNQUXAUXBWKWAW
          EWLWFWMWNUOUWAUVIUBYETUVLYEUKZUVSUVHUAUVTUVAUVLYEUGVSUXCUVPUVFUVRUVGU
          XCUVMYHUVOUVERUVLYEFVSZUXCUVNYFUVDQUVLYEBUEWHZWIWJUXCUVQUUNUVDRUXCUVM
          YHUVNYFQUXDUXEWKWAWEWLWOWPUVHUUTUAYSUVAUVCYSUKZUVFUURUVGUUSUXFUVEUUQY
          HRUXFUVDYTYFQUVCYSFVSZVTWAUXFUVDYTUUNRUXGWBWEWOWPYDUUMUURUUOUUSYDYGUU
          QYHRYDXMYTYFQUUEVTWAYDXMYTUUNRUUEWBWEVRYDUUJUUMUULUUOYDXKYHYGRYQWBYDU
          UKUUNXMRYDXKYHYFQYQVTWAWEVRZWQYDYFXNXMUUHUUIUUFYDYFXNRSZBXJUJPZHXJUJP
          ZRSZYDBHXJUUGYDHYKVKYDXJYIVMZABHRSYAYCNUOWRYDUXJUDYEUJPZRSUXJYERSUXIU
          XLYDUXNYEUXJRYDYEYDYEYLWSWTWAYDBXJUDYEUUGUXMYDXAYDYEYLVMXBYDYEUXKUXJR
          YDXJHYDXJYIWSYDHYKWSXCWAXDVRZXEXFYDXMUUKXQUUFYDXKYFYRUUHVFYDXKXNYRUUI
          VFYDUUJUULUXHXGYDYFXNXKUUHUUIYRUXOXEXFXHXIXI $.
      $}

      ${
        $d C e i k $.  $d C e k n $.  $d F a e j $.  $d F e j k n $.
        $d G a b c e i w y $.  $d G b c e i k y $.  $d G e k n $.
        $d G a b c e i x y $.  $d Z e i j k $.  $d Z e j k n $.
        $d a c e i ph x y $.  $d j k n ph $.  $d j ph x y $.
        $( Lemma for ~ cvg1n .  The original sequence ` F ` has a limit (turns
           out it is the same as the limit of the modified sequence ` G ` ).
           (Contributed by Jim Kingdon, 1-Aug-2021.) $)
        cvg1nlemres $p |- ( ph ->
            E. y e. RR A. x e. RR+ E. j e. NN A. i e. ( ZZ>= ` j )
            ( ( F ` i ) < ( y + x ) /\ y < ( ( F ` i ) + x ) ) ) $=
          ( caddc co clt vb vc va vw ve cv cfv wbr wa cuz wral cn crp cvg1nlemf
          wrex cr cvg1nlemcau caucvgre wcel fveq2 raleqdv cbvrexv ralbii anbi2i
          weq anbi1i cdiv simpr rphalfcld simplr wceq breq2d anbi12d rexralbidv
          c2 oveq2 rspcv sylc sylbir cmul rpred ad4antr 2re remulcld rerpdivcld
          a1i nndivred simprl readdcld arch syl adantr nnmulcld ad6antr simplrl
          nnred wf eluznn sylancom ffvelrnd ad2antrr rehalfcld ad3antrrr oveq2d
          simpllr breq12d oveq12d raleqbidv oveq1d breq1d cvg1nlemcxze leadd2dd
          simplrr ltled ltletrd cle 2rp rpmulcld rpdivcld nnrpd ltaddrp2d lttrd
          simprd cz wb nnzd syl2anc mpbird simprr fveq2d fvmptg simpld ltadd1dd
          eluz oveq1 recnd addassd breqtrd ralrimiva rexlimddv mpbid jca rspcev
          rpcnd 2halvesd sylbi ex reximdva mpd ) AUAUFZJUGZCUFZUBUFZRSZTUHZUULU
          UKUUMRSZTUHZUIZUAUCUFZUJUGZUKZUCULUOZUBUMUKZCUPUOEUFZIUGZUULBUFZRSZTU
          HZUULUVEUVFRSZTUHZUIZEFUFZUJUGZUKZFULUOZBUMUKZCUPUOAUBCUAUCGHJADFGHIJ
          KLMNOPQUNADFGHIJKLMNOPQUQURAUVCUVPCUPAUULUPUSZUIZUVCUVPUVRUVCUIZUVOBU
          MUVSUVFUMUSZUIZUVRUURUAUDUFZUJUGZUKZUDULUOZUBUMUKZUIZUVTUIZUVOUVSUWGU
          VTUVCUWFUVRUVBUWEUBUMUVAUWDUCUDULUCUDVEUURUAUUTUWCUUSUWBUJUTVAVBVCVDV
          FZUWHUUKUULUVFVOVGSZRSZTUHZUULUUKUWJRSZTUHZUIZUAUUTUKZUVOUCULUWHUWAUW
          PUCULUOZUWIUWAUWJUMUSUVCUWQUWAUVFUVSUVTVHVIUVRUVCUVTVJUVBUWQUBUWJUMUU
          MUWJVKZUURUWOUCUAULUUTUWRUUOUWLUUQUWNUWRUUNUWKUUKTUUMUWJUULRVPVLUWRUU
          PUWMUULTUUMUWJUUKRVPVLVMVNVQVRVSUWHUUSULUSZUWPUIZUIZDVOVTSZUVFVGSZKVG
          SZUUSRSZUEUFZTUHZUVOUEULUXAUXEUPUSUXGUEULUOUXAUXDUUSUXAUXCKUXAUXBUVFU
          XADVOADUPUSZUVQUWFUVTUWTADMWAZWBVOUPUSUXAWCWFWDUWGUVTUWTVJZWEAKULUSZU
          VQUWFUVTUWTPWBZWGUXAUUSUWHUWSUWPWHZWPWIUXEUEWJWKUXAUXFULUSZUXGUIZUIZU
          XFKVTSZULUSZUVKEUXQUJUGZUKZUVOUXPUXFKUXAUXNUXGWHUXAUXKUXOUXLWLWMUXPUV
          KEUXSUXPUVDUXSUSZUIZUVHUVJUYBUVEUULUWJUWJRSZRSZUVGTUYBUVEUWKUWJRSZUYD
          TUYBUVEUXQIUGZUWJRSZUYEUYBULUPUVDIAULUPIWQUVQUWFUVTUWTUXOUYALWNZUXPUY
          AUXRUVDULUSUYBUXFKUXAUXNUXGUYAWOZAUXKUVQUWFUVTUWTUXOUYAPWNZWMZUVDUXQW
          RWSWTZUYBUYFUWJUYBULUPUXQIUYHUYKWTZUYBUVFUYBUVFUXAUVTUXOUYAUXJXAZWAXB
          ZWIZUYBUWKUWJUYBUULUWJUWHUVQUWTUXOUYAAUVQUWFUVTXEXCZUYOWIZUYOWIUYBUVE
          UYFDUXQVGSZRSZUYGUYLUYBUYFUYSUYMUYBDUXQAUXHUVQUWFUVTUWTUXOUYAUXIWNUYK
          WGZWIUYPUYBUYFUVEUYSRSZTUHZUVEUYTTUHZUYBUYAUYFGUFZIUGZUYSRSZTUHZVUFUY
          TTUHZUIZGUXSUKZVUCVUDUIZUXPUYAVHUYBUXRHUFZIUGZVUFDVUMVGSZRSZTUHZVUFVU
          NVUORSZTUHZUIZGVUMUJUGZUKZHULUKZVUKUYKAVVCUVQUWFUVTUWTUXOUYANWNVVBVUK
          HUXQULVUMUXQVKZVUTVUJGVVAUXSVUMUXQUJUTVVDVUQVUHVUSVUIVVDVUNUYFVUPVUGT
          VUMUXQIUTZVVDVUOUYSVUFRVUMUXQDVGVPZXDXFVVDVURUYTVUFTVVDVUNUYFVUOUYSRV
          VEVVFXGVLVMXHVQVRVUJVULGUVDUXSGEVEZVUHVUCVUIVUDVVGVUGVUBUYFTVVGVUFUVE
          UYSRVUEUVDIUTZXIVLVVGVUFUVEUYTTVVHXJVMVQVRZYCUYBUYSUWJUYFVUAUYOUYMUYB
          UYSUWJVUAUYBUVFUYBUVFUWHUVTUWTUXOUYAUWGUVTVHXCZWAXBUYBUUSDUXFUVFKADUM
          USUVQUWFUVTUWTUXOUYAMWNZVVJUYJUYIUXAUWSUXOUYAUXMXAZUXAUXNUXGUYAXMZXKX
          NZXLXOUYBUYFUWKUWJUYMUYRUYOUYBUYFUWKTUHZUULUYGTUHZUYBUXFJUGZUWKTUHZUU
          LVVQUWJRSZTUHZUIZVVOVVPUIUYBUXFUUTUSZUWPVWAUYBVWBUUSUXFXPUHZUYBUUSUXF
          UYBUUSVVLWPZUYBUXFUYIWPZUYBUUSUXEUXFVWDUYBUXDUUSUYBUXDUYBUXCKUYBUXBUV
          FUYBDVOVVKVOUMUSUYBXQWFXRVVJXSUYBKUYJXTXSZWAVWDWIVWEUYBUUSUXDVWDVWFYA
          VVMYBXNUYBUUSYDUSUXFYDUSVWBVWCYEUYBUUSVVLYFUYBUXFUYIYFUUSUXFYNYGYHUXA
          UWPUXOUYAUWHUWSUWPYIXAUWOVWAUAUXFUUTUAUEVEZUWLVVRUWNVVTVWGUUKVVQUWKTU
          UJUXFJUTZXJVWGUWMVVSUULTVWGUUKVVQUWJRVWHXIVLVMVQVRUYBVVRVVOVVTVVPUYBV
          VQUYFUWKTUYBUXNUYFUPUSVVQUYFVKUYIUYMFUXFUVLKVTSZIUGUYFULUPJFUEVEVWIUX
          QIUVLUXFKVTYOYJOYKYGZXJUYBVVSUYGUULTUYBVVQUYFUWJRVWJXIVLVMUUAZYLYMYBU
          YBUULUWJUWJUYBUULUYQYPUYBUWJUYOYPZVWLYQYRUYBUYCUVFUULRUYBUVFUYBUVFUYN
          UUDUUEZXDYRUYBUULUVEUYCRSZUVITUYBUULUVEUWJRSZUWJRSZVWNTUYBUULUYGVWPUY
          QUYPUYBVWOUWJUYBUVEUWJUYLUYOWIZUYOWIUYBVVOVVPVWKYCUYBUYFVWOUWJUYMVWQU
          YOUYBUYFVUBVWOUYMUYBUVEUYSUYLVUAWIVWQUYBVUCVUDVVIYLUYBUYSUWJUVEVUAUYO
          UYLVVNXLXOYMYBUYBUVEUWJUWJUYBUVEUYLYPVWLVWLYQYRUYBUYCUVFUVERVWMXDYRUU
          BYSUVNUXTFUXQULUVLUXQVKUVKEUVMUXSUVLUXQUJUTVAUUCYGYTYTUUFYSUUGUUHUUI
          $.
      $}
    $}

    ${
      $d C k n z $.  $d C i j $.  $d C x y $.  $d F x y z $.  $d F k n $.
      $d F i j $.  $d ph k n z $.  $d ph j $.  $d ph i x y $.  $d i z $.
      $d j z $.  $d j x y $.  $d j x $.  $d k n z $.  $d j n $.  $d k y $.
      $d j k $.  $d i k $.
      $( Convergence of real sequences.

         This is a version of ~ caucvgre with a constant multiplier ` C ` on
         the rate of convergence.  That is, all terms after the nth term must
         be within ` C / n ` of the nth term.

         (Contributed by Jim Kingdon, 1-Aug-2021.) $)
      cvg1n $p |- ( ph ->
          E. y e. RR A. x e. RR+ E. j e. NN A. i e. ( ZZ>= ` j )
          ( ( F ` i ) < ( y + x ) /\ y < ( ( F ` i ) + x ) ) ) $=
        ( vz cv clt wbr cfv caddc co cn wa cuz wral wrex crp cr wcel rpred arch
        syl cmul cmpt wf adantr cdiv eqid simprl simprr cvg1nlemres rexlimddv )
        ADMNZOPZENIQZCNZBNZRSOPVDVCVERSOPUAEFNZUBQUCFTUDBUEUCCUFUDMTADUFUGVBMTU
        DADKUHDMUIUJAVATUGZVBUAZUABCDEFGHIFTVFVAUKSIQULZVAATUFIUMVHJUNADUEUGVHK
        UNAHNZIQZGNIQZDVJUOSZRSOPVLVKVMRSOPUAGVJUBQUCHTUCVHLUNVIUPAVGVBUQAVGVBU
        RUSUT $.
    $}
  $}

  ${
    $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 cle wbr uzin simpr simpl zdcle ifcldcd fnfvelrn
      wa cif sylancr eqeltrd 2gencl ) CEZFGZDEZFGZHZFIZJAVAHZVCJABHZVCJCDUSVAAB
      KVCFKLZAVCJUSAMZCKNOKKPZFQVFUAKVHFUBTZCKAFRTVFBVCJVABMZDKNOVIDKBFRTVGVBVD
      VCUSAVAUCSVJVDVEVCVABAUDSURKJZUTKJZUMZVBURUTUEUFZUTURUNZFGZVCURUTUGVMVFVO
      KJVPVCJVIVMVNUTURKVKVLUHVKVLUIURUTUJUKKVOFULUOUPUQ $.
  $}

  ${
    $d j k x y z $.  $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 $.
  $}

  ${
    $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 vz cv wral cz wrex wb c0 wceq raleq rexralbidv bibi12d wcel wa cvv
      vy cuz cfv csn cun wex cc0 0z elex2 ax-mp ral0 rgen2w r19.2m mp2an 2th wi
      cfn anbi1 rexanuz ralunb ralbii rexbii wsbc ralsnsg ralcom syl5bb rexbidv
      vex sbcrex syl6rbbr bitrd anbi2i 3bitr4i 3bitr4g a1i findcard2 ) AEFHZIZD
      CHZUBUCZICJKZADVTIZCJKZEVQIZLAEMIZDVTIZCJKZWCEMIZLAEUAHZIZDVTICJKZWCEWIIZ
      LZAEWIGHZUDZUEZIZDVTIZCJKZWCEWPIZLZAEBIZDVTICJKZWCEBIZLFUAGBVQMNZWAWGWDWH
      XEVRWECDJVTAEVQMOPWCEVQMOQVQWINZWAWKWDWLXFVRWJCDJVTAEVQWIOPWCEVQWIOQVQWPN
      ZWAWSWDWTXGVRWQCDJVTAEVQWPOPWCEVQWPOQVQBNZWAXCWDXDXHVRXBCDJVTAEVQBOPWCEVQ
      BOQWGWHVSJRCUFZWFCJIWGUGJRXIUHCUGJUIUJWECDJVTAEUKULWFCJUMUNWCEUKUOWMXAUPW
      IUQRWMWKWCEWOIZSZWLXJSWSWTWKWLXJURWJAEWOIZSZDVTIZCJKWKXLDVTIZCJKZSWSXKWJX
      LCDUSWRXNCJWQXMDVTAEWIWOUTVAVBXJXPWKWNTRZXJXPLGVHXQXJWCEWNVCZXPWCEWNTVDXQ
      XPWBEWNVCZCJKXRXQXOXSCJXOWBEWOIXQXSADEVTWOVEWBEWNTVDVFVGWBECWNJVIVJVKUJVL
      VMWCEWIWOUTVNVOVP $.
  $}

  ${
    $d j M $.  $d j ph $.  $d j k 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.2m 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 wex cz eluzelz uzid elex2 3syl eleq2s r19.2m
      sylan uztrn2 ex anim1d reximdv2 imp syldan rexlimiva ) ACBGZHIZJZACEKZBEU
      IELZUKACUJKZULUMCGZUJLZCMZUKUNUQUIDHIZEUIURLUINLUIUJLUQDUIOUIPCUIUJQRFSAC
      UJTUAUMUNULUMAACUJEUMUPUOELZAUMUPUSDUOUIEFUBUCUDUEUFUGUH $.
  $}

  ${
    recvguniqlem.f $e |- ( ph -> F : NN --> RR ) $.
    recvguniqlem.a $e |- ( ph -> A e. RR ) $.
    recvguniqlem.b $e |- ( ph -> B e. RR ) $.
    recvguniqlem.k $e |- ( ph -> K e. NN ) $.
    recvguniqlem.lt1 $e |- ( ph -> A < ( ( F ` K ) + ( ( A - B ) / 2 ) ) ) $.
    recvguniqlem.lt2 $e |- ( ph -> ( F ` K ) < ( B + ( ( A - B ) / 2 ) ) ) $.
    $( Lemma for ~ recvguniq .  Some of the rearrangements of the expressions.
       (Contributed by Jim Kingdon, 8-Aug-2021.) $)
    recvguniqlem $p |- ( ph -> F. ) $=
      ( clt wbr cfv cmin co c2 caddc readdcld recnd ffvelrnd resubcld rehalfcld
      cn cr ltadd1dd addassd 2halvesd oveq2d pncan3d 3eqtrd breqtrd lttrd ltnrd
      cdiv pm2.21fal ) ABBLMABEDNZBCOPZQUOPZRPZBGAUQUSAUDUEEDFIUAZAURABCGHUBZUC
      ZSGJAUTCUSRPZUSRPZBLAUQVDUSVAACUSHVCSVCKUFAVECUSUSRPZRPCURRPBACUSUSACHTZA
      USVCTZVHUGAVFURCRAURAURVBTUHUIACBVGABGTUJUKULUMABGUNUP $.
  $}

  ${
    $d F j x $.  $d L j k x $.  $d M j k x $.  $d k ph $.
    recvguniq.f $e |- ( ph -> F : NN --> RR ) $.
    recvguniq.lre $e |- ( ph -> L e. RR ) $.
    recvguniq.l $e |- ( ph ->
      A. x e. RR+ E. j e. NN A. k e. ( ZZ>= ` j )
      ( ( F ` k ) < ( L + x ) /\ L < ( ( F ` k ) + x ) ) ) $.
    recvguniq.mre $e |- ( ph -> M e. RR ) $.
    recvguniq.m $e |- ( ph ->
      A. x e. RR+ E. j e. NN A. k e. ( ZZ>= ` j )
      ( ( F ` k ) < ( M + x ) /\ M < ( ( F ` k ) + x ) ) ) $.
    $( Limits are unique.  (Contributed by Jim Kingdon, 7-Aug-2021.) $)
    recvguniq $p |- ( ph -> L = M ) $=
      ( wbr clt wcel wa co caddc cn crp wceq wn wfal wi wo cr wb reaplt syl2anc
      cap cv cfv cmin c2 cdiv wrex wral simpr adantr difrp rphalfcld cuz r19.26
      mpbid sylanbrc c1 nnuz rexanuz2 ralbii sylibr r19.2uz ralimi oveq2 breq2d
      anbi12d rexbidv rspcv sylc wf ad2antrr simprl simprrr adantl recvguniqlem
      syl simprll rexlimddv ex biimpa simprlr simprrl jaod sylbid dfnot cc apti
      recnd mpbird ) AFGUAZFGUJMZUBZAWTUCUDXAAWTFGNMZGFNMZUEZUCAFUFOZGUFOZWTXDU
      GIKFGUHUIAXBUCXCAXBUCAXBPZDUKZEULZFGFUMQZUNUOQZRQZNMZFXIXKRQZNMZPZXIGXKRQ
      ZNMZGXNNMZPZPZUCDSXGXKTOXIFBUKZRQZNMZFXIYBRQZNMZPZXIGYBRQZNMZGYENMZPZPZDS
      UPZBTUQZYADSUPZXGXJXGXBXJTOZAXBURXGXEXFXBYPUGAXEXBIUSAXFXBKUSFGUTUIVDVAAY
      NXBAYLDCUKVBULZUQCSUPZBTUQZYNAYGDYQUQCSUPZYKDYQUQCSUPZPZBTUQZYSAYTBTUQUUA
      BTUQUUCJLYTUUABTVCVEYRUUBBTYGYKCDVFSVGVHVIVJYRYMBTYLCDVFSVGVKVLWEZUSYMYOB
      XKTYBXKUAZYLYADSUUEYGXPYKXTUUEYDXMYFXOUUEYCXLXINYBXKFRVMVNUUEYEXNFNYBXKXI
      RVMZVNVOUUEYIXRYJXSUUEYHXQXINYBXKGRVMVNUUEYEXNGNUUFVNVOVOVPVQVRXGXHSOZYAP
      ZPGFEXHASUFEVSZXBUUHHVTAXFXBUUHKVTAXEXBUUHIVTXGUUGYAWAUUHXSXGUUGXPXRXSWBW
      CUUHXMXGUUGXMXOXTWFWCWDWGWHAXCUCAXCPZXIFFGUMQZUNUOQZRQZNMZFXIUULRQZNMZPZX
      IGUULRQZNMZGUUONMZPZPZUCDSUUJUULTOYNUVBDSUPZUUJUUKAXCUUKTOZAXFXEXCUVDUGKI
      GFUTUIWIVAAYNXCUUDUSYMUVCBUULTYBUULUAZYLUVBDSUVEYGUUQYKUVAUVEYDUUNYFUUPUV
      EYCUUMXINYBUULFRVMVNUVEYEUUOFNYBUULXIRVMZVNVOUVEYIUUSYJUUTUVEYHUURXINYBUU
      LGRVMVNUVEYEUUOGNUVFVNVOVOVPVQVRUUJUUGUVBPZPFGEXHAUUIXCUVGHVTAXEXCUVGIVTA
      XFXCUVGKVTUUJUUGUVBWAUVGUUPUUJUUGUUNUUPUVAWJWCUVGUUSUUJUUGUUQUUSUUTWKWCWD
      WGWHWLWMWTWNVJAFWOOGWOOWSXAUGAFIWQAGKWQFGWPUIWR $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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 nonnegative real
       number.

       Defining the square root for complex numbers has one difficult part:
       choosing between the two roots.  The usual way to define a principal
       square root for all complex numbers relies on excluded middle or
       something similar.  But in the case of a nonnegative real number, we
       don't have the complications presented for general complex numbers, and
       we can choose the nonnegative root.

       (Contributed by Jim Kingdon, 23-Aug-2020.) $)
    df-rsqrt $a |- sqrt = ( x e. RR |-> ( iota_ y e. RR ( ( y ^ 2 ) = x /\
      0 <_ y ) ) ) $.

    $( Define the function for the absolute value (modulus) of a complex
       number.  (Contributed by NM, 27-Jul-1999.) $)
    df-abs $a |- abs = ( x e. CC |-> ( sqrt ` ( x x. ( * ` x ) ) ) ) $.

    $( Value of square root function.  (Contributed by Jim Kingdon,
       23-Aug-2020.) $)
    sqrtrval $p |- ( A e. RR -> ( sqrt ` A ) =
        ( iota_ x e. RR ( ( x ^ 2 ) = A /\ 0 <_ x ) ) ) $=
      ( vy cv c2 cexp co wceq cc0 cle wbr wa cr crio csqrt anbi1d riotabidv cvv
      eqeq2 wcel df-rsqrt reex riotaexg ax-mp fvmpt ) CBADZEFGZCDZHZIUFJKZLZAMN
      UGBHZUJLZAMNZMOUHBHZUKUMAMUOUIULUJUHBUGSPQCAUAMRTUNRTUBUMAMRUCUDUE $.

    $( 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 vy cc wcel ccj cfv cmul co csqrt cvv cabs wceq cr cv c2 cexp cc0 cle
      mpdan wbr wa crio cmpt df-rsqrt reex mptex eqeltri id cjcl mulcld sylancr
      fvexg fveq2 oveq12 fveq2d df-abs fvmptg ) ADEZAAFGZHIZJGZKEZALGVBMUSJKEVA
      DEVCJBNCOZPQIBOZMRVDSUAUBCNUCZUDKBCUEBNVFUFUGUHUSAUTUSUIAUJUKVAJKDUMULBAV
      EVEFGZHIZJGVBDKLVEAMZVHVAJVIVGUTMVHVAMVEAFUNVEAVGUTHUOTUPBUQURT $.
  $}

  $( 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 $.

  $( Lemma for ~ sqrt0 .  (Contributed by Jim Kingdon, 26-Aug-2020.) $)
  sqrt0rlem $p |- ( ( A e. RR /\ ( ( A ^ 2 ) = 0 /\ 0 <_ A ) ) <-> A = 0 ) $=
    ( cr wcel c2 cexp co cc0 wceq cle wbr wa cc wb sqeq0 syl biimpa adantrr 0re
    recn mpbiri eleq1 sq0i 0le0 breq2 jca32 impbii ) ABCZADEFGHZGAIJZKKAGHZUGUH
    UJUIUGUHUJUGALCUHUJMASANOPQUJUGUHUIUJUGGBCRAGBUATAUBUJUIGGIJUCAGGIUDTUEUF
    $.

  $( 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 cle wbr wa cr crio 0re sqrtrval ax-mp
    wcel id wb sqrt0rlem biimpi ex simpr sylbir impbid1 adantl riota5 eqtri ) B
    CDZAEZFGHBIBUKJKLZAMNZBBMRZUJUMIOABPQUNUMBIOUNULAMBUNSUKMRZULUKBIZTUNUOULUP
    UOULUPUOULLZUPUKUAZUBUCUPUQULURUOULUDUEUFUGUHQUI $.

  ${
    resqrexlemex.seq $e |- F = seq 1 (
      ( y e. RR+ , z e. RR+ |-> ( ( y + ( A / y ) ) / 2 ) ) ,
      ( NN X. { ( 1 + A ) } ) ,
      RR+ ) $.
    resqrexlemex.a $e |- ( ph -> A e. RR ) $.
    resqrexlemex.agt0 $e |- ( ph -> 0 <_ A ) $.

    ${
      $d A y z $.  $d ph y z $.
      $( Lemma for ~ resqrex . ` 1 + A ` is a positive real (expressed in a way
         that will help apply ~ iseqf and similar theorems).  (Contributed by
         Jim Kingdon, 28-Jul-2021.) $)
      resqrexlem1arp $p |- ( ( ph /\ N e. NN ) ->
          ( ( NN X. { ( 1 + A ) } ) ` N ) e. RR+ ) $=
        ( cn wcel wa c1 caddc crp cr adantr cc0 clt wbr co csn cxp cfv readdcld
        wceq 1red cle 0lt1 addgtge0 syl22anc elrpd fvconst2g sylancom eqeltrd
        a1i ) AFJKZLZFJMDNUAZUBUCUDZUSOAUQUSOKUTUSUFURUSURMDURUGZADPKZUQHQZUEUR
        MPKVBRMSTZRDUHTZRUSSTVAVCVDURUIUPAVEUQIQMDUJUKULZJUSFOUMUNVFUO $.
    $}

    ${
      $d A y z $.  $d ph y z $.  $d B y z $.  $d C y z $.
      $( Lemma for ~ resqrex .  Applying the recursion rule yields a positive
         real (expressed in a way that will help apply ~ iseqf and similar
         theorems).  (Contributed by Jim Kingdon, 28-Jul-2021.) $)
      resqrexlemp1rp $p |- ( ( ph /\ ( B e. RR+ /\ C e. RR+ ) ) ->
          ( B ( y e. RR+ , z e. RR+ |-> ( ( y + ( A / y ) ) / 2 ) ) C )
          e. RR+ ) $=
        ( crp wcel cdiv co caddc c2 cr wceq cc0 wbr wa cv cmpt2 eqidd id oveq1d
        oveq2 ad2antrl simprl simprr rpred adantr rerpdivcld readdcld rehalfcld
        oveq12d ovmpt2d clt cle rpgt0d divge0d addgtge0 elrpd rphalfcld eqeltrd
        syl22anc ) AEKLZFKLZUAZUAZEFBCKKBUBZDVKMNZONZPMNZUCZNEDEMNZONZPMNZKVJBC
        EFKKVNVRVOQVJVOUDVKERZVNVRRVJCUBFRVSVMVQPMVSVKEVLVPOVSUEVKEDMUGUPUFUHAV
        GVHUIZAVGVHUJVJVQVJEVPVJEVTUKZVJDEADQLVIIULZVTUMZUNZUOUQVJVQVJVQWDVJEQL
        VPQLSEURTSVPUSTSVQURTWAWCVJEVTUTVJDEWBVTASDUSTVIJULVAEVPVBVFVCVDVE $.
    $}

    ${
      $d A a b y z $.  $d a b ph y z $.
      $( Lemma for ~ resqrex .  The sequence is a function.  (Contributed by
         Mario Carneiro and Jim Kingdon, 27-Jul-2021.) $)
      resqrexlemf $p |- ( ph -> F : NN --> RR+ ) $=
        ( va vb cn crp cv cdiv co caddc c2 c1 wf cvv cmpt2 csn cxp cseq nnuz cr
        wcel reex rpssre ssexi resqrexlem1arp resqrexlemp1rp iseqf feq1i sylibr
        a1i 1zzd ) AKLBCLLBMZDURNOPOQNOUAZLKRDPOUBUCZRUDZSKLESAIJUSLUTRTKUELTUG
        ALUFUHUIUJUPAUQABCDEIMZFGHUKABCDVBJMEFGHULUMKLEVAFUNUO $.
    $}

    ${
      $d A a b y z $.  $d a b ph y z $.
      $( Lemma for ~ resqrex .  Initial value.  Although this sequence
         converges to the square root with any positive initial value, this
         choice makes various steps in the proof of convergence easier.
         (Contributed by Mario Carneiro and Jim Kingdon, 27-Jul-2021.) $)
      resqrexlemf1 $p |- ( ph -> ( F ` 1 ) = ( 1 + A ) ) $=
        ( va vb c1 cfv cn caddc co crp cv cdiv wcel cr csn c2 cmpt2 cseq fveq1i
        cxp cvv 1zzd reex rpssre ssexi a1i elnnuz resqrexlem1arp resqrexlemp1rp
        cuz sylan2br iseq1 syl5eq wceq 1red readdcld fvconst2g sylancl eqtrd
        1nn ) AKELZKMKDNOZUAUFZLZVHAVGKBCPPBQZDVKRONOUBROUCZPVIKUDZLVJKEVMFUEAI
        JVLPVIKUGAUHPUGSAPTUIUJUKULIQZKUPLSAVNMSVNVILPSVNUMABCDEVNFGHUNUQABCDVN
        JQEFGHUOURUSAVHTSKMSVJVHUTAKDAVAGVBVFMVHKTVCVDVE $.
    $}

    ${
      $d A a b c d y z $.  $d F c d $.  $d N a b c d $.  $d ph a b c d y z $.
      $( Lemma for ~ resqrex .  Recursion rule.  This sequence is the ancient
         method for computing square roots, often known as the babylonian
         method, although known to many ancient cultures.  (Contributed by
         Mario Carneiro and Jim Kingdon, 27-Jul-2021.) $)
      resqrexlemfp1 $p |- ( ( ph /\ N e. NN ) -> ( F ` ( N + 1 ) ) =
          ( ( ( F ` N ) + ( A / ( F ` N ) ) ) / 2 ) ) $=
        ( cn wcel c1 caddc co cfv crp cv cdiv c2 wceq va vb vc vd csn cxp cmpt2
        wa cseq cvv cuz elnnuz biimpi adantl cr rpssre ssexi a1i resqrexlem1arp
        reex sylan2br adantlr resqrexlemp1rp iseqp1 fveq1i oveq1i 3eqtr4g oveq2
        id oveq1d eqidd cbvmpt2v ad2antrl resqrexlemf ffvelrnda peano2nn sylan2
        oveq12d rpred adantr rerpdivcld readdcld rehalfcld ovmpt2d eqtrd ) AFJK
        ZUHZFLMNZEOZFEOZWHJLDMNUEUFZOZBCPPBQZDWMRNZMNZSRNZUGZNZWJDWJRNZMNZSRNZW
        GWHWQPWKLUIZOFXBOZWLWQNWIWRWGUAUBWQPWKLFUJWFFLUKOZKZAWFXEFULUMUNPUJKWGP
        UOUTUPUQURAUAQZXDKZXFWKOPKZWFXGAXFJKXHXFULABCDEXFGHIUSVAVBAXFPKUBQZPKUH
        XFXIWQNPKWFABCDXFXIEGHIVCVBVDWHEXBGVEWJXCWLWQFEXBGVEVFVGWGUCUDWJWLPPUCQ
        ZDXJRNZMNZSRNZXAWQUOWQUCUDPPXMUGTWGBCUCUDPPWPXMXMWMXJTZWOXLSRXNWMXJWNXK
        MXNVIWMXJDRVHVRVJCQUDQZTXMVKVLURXJWJTZXMXATWGXOWLTXPXLWTSRXPXJWJXKWSMXP
        VIXJWJDRVHVRVJVMAJPFEABCDEGHIVNVOZWFAWHJKWLPKFVPABCDEWHGHIUSVQWGWTWGWJW
        SWGWJXQVSWGDWJADUOKWFHVTXQWAWBWCWDWE $.
    $}

    ${
      $d A f g h k w y z $.  $d F f g h k $.  $d F k w $.  $d N w $.
      $d ph f g h k w y z $.
      $( Lemma for ~ resqrex .  Each element of the sequence is an
         overestimate.  (Contributed by Mario Carneiro and Jim Kingdon,
         27-Jul-2021.) $)
      resqrexlemover $p |- ( ( ph /\ N e. NN ) -> A < ( ( F ` N ) ^ 2 ) ) $=
        ( wcel c2 cexp co clt wbr c1 caddc oveq1d cc0 c4 vw vk vf vg vh cn wceq
        cfv cv wi fveq2 breq2d imbi2d cmul resqcld cr 2re a1i remulcld readdcld
        1red cle recnd mulid2d w3a 1le2 lemul1a mpan2 syl112anc eqbrtrrd sqge0d
        wa addge02d mpbid letrd ltp1d lelttrd resqrexlemf1 1cnd addcomd binom21
        eqtrd syl breqtrrd cdiv cmin crp resqrexlemf ffvelrnda rpred rerpdivcld
        cc adantr resubcld 4re posdifd biimpa rpgt0d divgt0d sqcld divsubdirapd
        cap rpap0d divcanap3d breqtrd gt0ap0d sqgt0apd 4pos gt0ap0ii redivclapd
        sqvald ltaddpos2d wb resqrexlemfp1 2cnd 2ap0 sqdivapd sq2 oveq2i syl6eq
        divcanap2d oveq2d syl2anc binom2 cneg mulcld negcld 4cn addassd negsubd
        binom2sub 2cn negcli addassi subidi negeqi oveq1i recn adantl 3eqtrd ex
        negsubdii neg0 3eqtr3i addid2i eqtri 3eqtr3ri adddird mulneg1d syl5reqr
        2p2e4 3eqtr3rd addcom syl2an addass syl3an caov32d subcld mpbird expcom
        3eqtr4rd divdirapd a2d nnind impcom ) FUFJADFEUHZKLMZNOZADUAUIZEUHZKLMZ
        NOZUJADPEUHZKLMZNOZUJADUBUIZEUHZKLMZNOZUJADUVPPQMZEUHZKLMZNOZUJAUVHUJUA
        UBFUVIPUGZUVLUVOAUWDUVKUVNDNUWDUVJUVMKLUVIPEUKRULUMUVIUVPUGZUVLUVSAUWEU
        VKUVRDNUWEUVJUVQKLUVIUVPEUKRULUMUVIUVTUGZUVLUWCAUWFUVKUWBDNUWFUVJUWAKLU
        VIUVTEUKRULUMUVIFUGZUVLUVHAUWGUVKUVGDNUWGUVJUVFKLUVIFEUKRULUMADDKLMZKDU
        NMZQMZPQMZUVNNADUWJUWKHAUWHUWIADHUOZAKDKUPJZAUQURZHUSZUTZAUWJPUWPAVAZUT
        ADUWIUWJHUWOUWPAPDUNMZDUWIVBADADHVCZVDAPUPJZUWMDUPJZSDVBOZUWRUWIVBOZUWQ
        UWNHIUWTUWMUXAUXBVLVEPKVBOUXCVFPKDVGVHVIVJASUWHVBOUWIUWJVBOADHVKAUWIUWH
        UWOUWLVMVNVOAUWJUWPVPVQAUVNDPQMZKLMZUWKAUVMUXDKLAUVMPDQMUXDABCDEGHIVRAP
        DAVSUWSVTWBRADWLJZUXEUWKUGUWSDWAWCWBWDUVPUFJZAUVSUWCAUXGUVSUWCUJAUXGVLZ
        UVSUWCUXHUVSVLZUWCDUVQDUVQWEMZWFMZKLMZTWEMZDQMZNOZUXISUXMNOUXOUXIUXLTUX
        IUXKUXHUXKUPJUVSUXHUVQUXJUXHUVQAUFWGUVPEABCDEGHIWHWIZWJZUXHDUVQAUXAUXGH
        WMZUXPWKZWNWMZUOZTUPJZUXIWOURZUXIUXKUXTUXIUXKUXTUXISUVRDWFMZUVQWEMZUXKN
        UXIUYDUVQUXHUYDUPJUVSUXHUVRDUXHUVQUXQUOZUXRWNWMUXHUVQUPJUVSUXQWMUXHUVSS
        UYDNOUXHDUVRUXRUYFWPWQUXHSUVQNOUVSUXHUVQUXPWRWMWSUXIUYEUVRUVQWEMZUXJWFM
        UXKUXIUVRDUVQUXHUVRWLJUVSUXHUVQUXHUVQUXQVCZWTZWMUXHUXFUVSAUXFUXGUWSWMZW
        MUXHUVQWLJZUVSUYHWMZUXHUVQSXBOUVSUXHUVQUXPXCZWMZXAUXIUYGUVQUXJWFUXIUYGU
        VQUVQUNMZUVQWEMUVQUXIUVRUYOUVQWEUXIUVQUYLXKRUXIUVQUVQUYLUYLUYNXDWBRWBXE
        XFXGSTNOUXIXHURWSUXIUXMDUXIUXLTUYAUYCTSXBOZUXITWOXHXIZURXJUXHUXAUVSUXRW
        MXLVNUXHUWCUXOXMUVSUXHUWBUXNDNUXHUWBUXLTDUNMZQMZTWEMZUXMUYRTWEMZQMUXNUX
        HUWBUVQUXJQMZKLMZTWEMZUYTUXHUWBVUCKKLMZWEMZVUDUXHUWBVUBKWEMZKLMVUFUXHUW
        AVUGKLABCDEUVPGHIXNRUXHVUBKUXHVUBUXHUVQUXJUXQUXSUTVCUXHXOZKSXBOUXHXPURX
        QWBVUETVUCWEXRXSXTUXHVUCUYSTWEUXHUVRKUVQUXJUNMZUNMZWFMZUXJKLMZQMZUYRQMU
        VRUWIWFMZVULQMZUYRQMZUYSVUCUXHVUMVUOUYRQUXHVUKVUNVULQUXHVUJUWIUVRWFUXHV
        UIDKUNUXHDUVQUYJUYHUYMYAYBZYBRRUXHUXLVUMUYRQUXHUYKUXJWLJZUXLVUMUGUYHUXH
        UXJUXSVCZUVQUXJYKYCRUXHVUCUVRUWIQMZVULQMZVUNUYRQMZVULQMVUPUXHVUCUVRVUJQ
        MZVULQMZVVAUXHUYKVURVUCVVDUGUYHVUSUVQUXJYDYCUXHVVCVUTVULQUXHVUJUWIUVRQV
        UQYBRWBUXHVUTVVBVULQUXHUVRUWIYEZQMZUYRQMUVRVVEUYRQMZQMVVBVUTUXHUVRVVEUY
        RUYIUXHUWIUXHKDVUHUYJYFZYGUXHTDTWLJUXHYHURZUYJYFZYIUXHVVFVUNUYRQUXHUVRU
        WIUYIVVHYJRUXHVVGUWIUVRQUXHUWIKYEZTQMZDUNMZVVGVVLKDUNVVKKQMZKQMZVVKKKQM
        ZQMKVVLVVKKKKYLYMZYLYLYNVVOSKQMKVVNSKQKKWFMZYESYEVVNSVVRSKYLYOYPKKYLYLU
        UBUUCUUDYQKYLUUEUUFVVPTVVKQUUKXSUUGYQUXHVVMVVKDUNMZUYRQMVVGUXHVVKTDVVKW
        LJUXHVVQURVVIUYJUUHUXHVVSVVEUYRQUXHKDVUHUYJUUIRWBUUJYBUULRUXHUCUDUEVUNU
        YRVULUPQUXHUVRUWIUYFUXHKDUWMUXHUQURUXRUSWNUXHTDUYBUXHWOURUXRUSUXHUXJUXS
        UOUCUIZUPJZUDUIZUPJZVLVVTVWBQMZVWBVVTQMUGZUXHVWAVVTWLJZVWBWLJZVWEVWCVVT
        YRZVWBYRZVVTVWBUUMUUNYSVWAVWCUEUIZUPJZVEVWDVWJQMVVTVWBVWJQMQMUGZUXHVWAV
        WFVWCVWGVWKVWJWLJVWLVWHVWIVWJYRVVTVWBVWJUUOUUPYSUUQYTUVARWBUXHUXLUYRTUX
        HUXKUXHUVQUXJUYHVUSUURWTVVJVVIUYPUXHUYQURZUVBUXHVUADUXMQUXHDTUYJVVIVWMX
        DYBYTULWMUUSUUAUUTUVCUVDUVE $.
    $}

    ${
      $d A y z $.  $d ph y z $.
      $( Lemma for ~ resqrex .  The sequence is decreasing.  (Contributed by
         Mario Carneiro and Jim Kingdon, 29-Jul-2021.) $)
      resqrexlemdec $p |- ( ( ph /\ N e. NN ) ->
          ( F ` ( N + 1 ) ) < ( F ` N ) ) $=
        ( cn wcel caddc co cfv cdiv c2 clt wbr cmul crp wa resqrexlemfp1 adantr
        c1 cr resqrexlemf ffvelrnda rerpdivcld rpred cexp resqrexlemover sqvald
        breqtrd ltdivmuld mpbird ltadd2dd 2timesd breqtrrd readdcld 2rp eqbrtrd
        rpcnd a1i ) AFJKZUAZFUDLMENFENZDVFOMZLMZPOMZVFQABCDEFGHIUBVEVIVFQRVHPVF
        SMZQRVEVHVFVFLMVJQVEVGVFVFVEDVFADUEKVDHUCZAJTFEABCDEGHIUFUGZUHZVEVFVLUI
        ZVNVEVGVFQRDVFVFSMZQRVEDVFPUJMVOQABCDEFGHIUKVEVFVEVFVLVBZULUMVEDVFVFVKV
        NVLUNUOUPVEVFVPUQURVEVHVFPVEVFVGVNVMUSVNPTKVEUTVCUNUOVA $.
    $}

    ${
      resqrexlemdecn.n $e |- ( ph -> N e. NN ) $.
      resqrexlemdecn.m $e |- ( ph -> M e. NN ) $.
      resqrexlemdecn.nm $e |- ( ph -> N < M ) $.
      $d A y z $.  $d ph y z k w $.  $d F k w $.  $d M w $.  $d N k w $.

      $( Lemma for ~ resqrex .  The sequence is decreasing.  (Contributed by
         Jim Kingdon, 31-Jul-2021.) $)
      resqrexlemdecn $p |- ( ph -> ( F ` M ) < ( F ` N ) ) $=
        ( cfv clt wbr c1 wcel wi cn vw vk caddc co cz nnzd peano2zd wb nnltp1le
        cle syl2anc mpbid cv fveq2 breq1d imbi2d resqrexlemdec mpdan a1i w3a wa
        wceq crp wf resqrexlemf ad2antrr simplr2 1red zred cc0 nnred nngt0d 0re
        cr ltle mpan sylc addge02d simplr3 letrd elnnz1 sylanbrc ffvelrnd rpred
        peano2nnd simpll simpr lttrd ex expcom a2d uzind syl3anc pm2.43i ) AFEN
        ZGENZOPZAGQUCUDZUERZFUERWRFUJPZAWQSZAGAGKUFUGZAFLUFAGFOPZWTMAGTRZFTRXCW
        TUHKLGFUIUKULAUAUMZENZWPOPZSAWRENZWPOPZSZAUBUMZENZWPOPZSAXKQUCUDZENZWPO
        PZSXAUAUBWRFXEWRVBZXGXIAXQXFXHWPOXEWREUNUOUPXEXKVBZXGXMAXRXFXLWPOXEXKEU
        NUOUPXEXNVBZXGXPAXSXFXOWPOXEXNEUNUOUPXEFVBZXGWQAXTXFWOWPOXEFEUNUOUPXJWS
        AXDXIKABCDEGHIJUQURUSWSXKUERZWRXKUJPZUTZAXMXPAYCXMXPSAYCVAZXMXPYDXMVAZX
        OXLWPYEXOYETVCXNEATVCEVDYCXMABCDEHIJVEVFZYEXKYEYAQXKUJPXKTRZWSYAYBAXMVG
        ZYEQWRXKYEVHYEWRAWSYCXMXBVFVIYEXKYHVIAQWRUJPZYCXMAVJGUJPZYIAGVNRZVJGOPZ
        YJAGKVKZAGKVLVJVNRYKYLYJSVMVJGVOVPVQAQGAVHYMVRULVFWSYAYBAXMVSVTXKWAWBZW
        EWCWDYEXLYETVCXKEYFYNWCWDYEWPYETVCGEYFAXDYCXMKVFWCWDYEAYGXOXLOPAYCXMWFY
        NABCDEXKHIJUQUKYDXMWGWHWIWJWKWLWMWN $.
    $}

    ${
      $d A y z $.  $d ph y z $.  $d F k w $.  $d N w $.  $d k ph w $.
      $( Lemma for ~ resqrex .  A (variable) lower bound for each term of the
         sequence.  (Contributed by Mario Carneiro and Jim Kingdon,
         29-Jul-2021.) $)
      resqrexlemlo $p |- ( ( ph /\ N e. NN ) ->
          ( 1 / ( 2 ^ N ) ) < ( F ` N ) ) $=
        ( wcel c1 c2 cexp co cdiv clt wbr wi oveq2d adantr vw vk cn cfv cv wceq
        caddc oveq2 fveq2 breq12d crp 2cnd exp1d 2rp syl6eqel rprecred readdcld
        imbi2d 1red halflt1 syl6eqbr cc0 addge01d ltletrd resqrexlemf1 breqtrrd
        cle mpbid wa cmul a1i nnz ad2antlr rpexpcld rpcnd rpap0d recdivap2d cn0
        cz nnnn0 expp1d cr resqrexlemf ffvelrnda rpred rerpdivcld simpr divge0d
        eqtr4d ltdiv1dd resqrexlemfp1 eqbrtrrd ex expcom a2d nnind impcom ) FUC
        JAKLFMNZONZFEUDZPQZAKLUAUEZMNZONZXBEUDZPQZRAKLKMNZONZKEUDZPQZRAKLUBUEZM
        NZONZXKEUDZPQZRAKLXKKUGNZMNZONZXPEUDZPQZRAXARUAUBFXBKUFZXFXJAYAXDXHXEXI
        PYAXCXGKOXBKLMUHSXBKEUIUJURXBXKUFZXFXOAYBXDXMXEXNPYBXCXLKOXBXKLMUHSXBXK
        EUIUJURXBXPUFZXFXTAYCXDXRXEXSPYCXCXQKOXBXPLMUHSXBXPEUIUJURXBFUFZXFXAAYD
        XDWSXEWTPYDXCWRKOXBFLMUHSXBFEUIUJURAXHKDUGNZXIPAXHKYEAXGAXGLUKALAULUMZU
        NUOUPAUSZAKDYGHUQAXHKLONKPAXGLKOYFSUTVAAVBDVGQZKYEVGQIAKDYGHVCVHVDABCDE
        GHIVEVFXKUCJZAXOXTAYIXOXTRAYIVIZXOXTYJXOVIZXMLONZXRXSPYKYLKXLLVJNZONXRY
        KXLLYKXLYKLXKLUKJYKUNVKZYIXKVSJAXOXKVLVMVNZVOYKULZYKXLYOVPYKLYNVPVQYKXQ
        YMKOYKLXKYPYIXKVRJAXOXKVTVMWASWIYKYLXNDXNONZUGNZLONZXSPYKXMYRLYKXLYOUPZ
        YKXNYQYJXNWBJXOYJXNAUCUKXKEABCDEGHIWCWDZWEZTZYJYQWBJXOYJDXNADWBJYIHTZUU
        AWFZTUQZYNYKXMXNYRYTUUCUUFYJXOWGYJXNYRVGQZXOYJVBYQVGQUUGYJDXNUUDUUAAYHY
        IITWHYJXNYQUUBUUEVCVHTVDWJYJXSYSUFXOABCDEXKGHIWKTVFWLWMWNWOWPWQ $.
    $}

    ${
      $d A y z $.  $d ph y z $.
      $( Lemma for ~ resqrex .  Some of the calculations involved in showing
         that the sequence converges.  (Contributed by Mario Carneiro and Jim
         Kingdon, 29-Jul-2021.) $)
      resqrexlemcalc1 $p |- ( ( ph /\ N e. NN ) ->
          ( ( ( F ` ( N + 1 ) ) ^ 2 ) - A ) =
          ( ( ( ( ( F ` N ) ^ 2 ) - A ) ^ 2 ) /
            ( 4 x. ( ( F ` N ) ^ 2 ) ) ) ) $=
        ( wcel caddc co c2 cexp cmin cdiv c4 cmul oveq1d eqtrd cn resqrexlemfp1
        wa c1 cfv crp resqrexlemf ffvelrnda rpred cr adantr rerpdivcld readdcld
        recnd 2cnd cc0 cap wbr 2ap0 a1i sqdivapd sq2 oveq2i syl6eq 4cn 4re 4pos
        cc clt gt0ap0d divcanap3d eqcomd oveq12d sqcld mulcld divsubdirapd cneg
        eqtr4d addsubassd 2cn negsubdi2i oveq1i pncan3oi eqtr3i negeqi mulneg1d
        subdird 3eqtr3a oveq2d negsubd 3eqtrd wceq binom2 syl2anc rpap0d addcld
        2p2e4 divcanap2d addsubd subcld cz 2z rpexpcld divcanap4d sqvald mul32d
        3eqtr4d mulassd eqtr2d divcanap1d adddird binom2sub divdivap1d mulcomd
        ) AFUAJZUCZFUDKLEUEZMNLZDOLZFEUEZDXTPLZKLZMNLZQDRLZOLZQPLZXTMNLZDOLZMNL
        ZYGPLZQPLZYIQYGRLZPLZXPXSYCQPLZYDQPLZOLYFXPXRYNDYOOXPXRYCMMNLZPLZYNXPXR
        YBMPLZMNLYQXPXQYRMNABCDEFGHIUBSXPYBMXPYBXPXTYAXPXTAUAUFFEABCDEGHIUGUHZU
        IZXPDXTADUJJXOHUKZYSULZUMUNZXPUOZMUPUQURXPUSUTVATYPQYCPVBVCVDXPYODXPDQX
        PDUUAUNZQVHJXPVEUTZXPQQUJJXPVFUTUPQVIURXPVGUTVJZVKVLVMXPYCYDQXPYBUUCVNX
        PQDUUFUUEVOZUUFUUGVPVRXPYEYJQPXPYEYGMDRLZOLZYAMNLZKLZYGRLZYGPLZYJXPYGUU
        IKLZYDOLZUUKKLZUULYEUUNXPUUPUUJUUKKXPUUPYGUUIYDOLZKLYGUUIVQZKLUUJXPYGUU
        IYDXPXTXPXTYTUNZVNZXPMDUUDUUEVOZUUHVSXPUURUUSYGKXPMQOLZDRLMVQZDRLUURUUS
        UVCUVDDRQMOLZVQUVCUVDQMVEVTWAUVEMMMKLZMOLUVEMUVFQMOWQWBMMVTVTWCWDWEWDWB
        XPMQDUUDUUFUUEWGXPMDUUDUUEWFWHWIXPYGUUIUVAUVBWJWKSXPYEUUOUUKKLZYDOLUUQX
        PYCUVGYDOXPYCYGMXTYARLZRLZKLZUUKKLZUVGXPXTVHJYAVHJYCUVKWLUUTXPYAUUBUNZX
        TYAWMWNXPUVJUUOUUKKXPUVIUUIYGKXPUVHDMRXPDXTUUEUUTXPXTYSWOZWRWIWISTSXPUU
        OUUKYDXPYGUUIUVAUVBWPXPYAUVLVNZUUHWSTXPUULYGXPUUJUUKXPYGUUIUVAUVBWTZUVN
        WPUVAXPYGXPXTMYSMXAJXPXBUTXCWOZXDXGXPUUMYIYGPXPUUJYGRLZUUKYGRLZKLYGMNLZ
        MYGDRLRLZOLZDMNLZKLZUUMYIXPUVQUWAUVRUWBKXPUVQYGYGRLZUUIYGRLZOLUWAXPYGUU
        IYGUVAUVBUVAWGXPUVSUWDUVTUWEOXPYGUVAXEXPUWEMYGRLDRLUVTXPMDYGUUDUUEUVAXF
        XPMYGDUUDUVAUUEXHXIVMVRXPUVRUWBYGPLZYGRLUWBXPUUKUWFYGRXPDXTUUEUUTUVMVAS
        XPUWBYGXPDUUEVNUVAUVPXJTVMXPUUJUUKYGUVOUVNUVAXKXPYGVHJDVHJYIUWCWLUVAUUE
        YGDXLWNXGSTSXPYKYIYGQRLZPLYMXPYIYGQXPYHXPYGDUVAUUEWTVNUVAUUFUVPUUGXMXPU
        WGYLYIPXPYGQUVAUUFXNWITWK $.
    $}

    ${
      $d A y z $.  $d ph y z $.
      $( Lemma for ~ resqrex .  Some of the calculations involved in showing
         that the sequence converges.  (Contributed by Mario Carneiro and Jim
         Kingdon, 29-Jul-2021.) $)
      resqrexlemcalc2 $p |- ( ( ph /\ N e. NN ) ->
          ( ( ( F ` ( N + 1 ) ) ^ 2 ) - A ) <_
          ( ( ( ( F ` N ) ^ 2 ) - A ) / 4 ) ) $=
        ( wcel c1 co c2 cexp c4 cmul cdiv cle wbr recnd cn cmin resqrexlemcalc1
        wa caddc cfv crp resqrexlemf ffvelrnda rpred resqcld cr adantr resubcld
        rpap0d sqgt0apd elrpd readdcld addge01d mpbid lesub1dd breqtrd lediv1dd
        cc0 pncand gt0ap0d dividapd redivclapd 1red clt resqrexlemover wb difrp
        syl2anc 4re a1i 4pos lemul1d divmuldivapd sqvald mulcomd oveq12d eqtr4d
        rpdivcld rpcnd mulid2d 3brtr3d eqbrtrd ) AFUAJZUDZFKUELEUFMNLDUBLFEUFZM
        NLZDUBLZMNLZOWLPLZQLZWMOQLZRABCDEFGHIUCWJWMWLQLZWQPLZKWQPLZWPWQRWJWRKRS
        WSWTRSWJWRWLWLQLKRWJWMWLWLWJWLDWJWKWJWKAUAUGFEABCDEGHIUHUIZUJZUKZADULJZ
        WIHUMZUNZXCWJWLXCWJWKXBWJWKXAUOUPZUQWJWMWLDUELZDUBLWLRWJWLXHDXCWJWLDXCX
        EURXEWJVDDRSZWLXHRSAXIWIIUMWJWLDXCXEUSUTVAWJWLDWJWLXCTZWJDXETVEVBVCWJWL
        XJWJWLXCXGVFZVGVBWJWRKWQWJWMWLXFXCXKVHWJVIWJWMOWJDWLVJSZWMUGJZABCDEFGHI
        VKWJXDWLULJXLXMVLXEXCDWLVMVNUTWJOOULJWJVOVPZVDOVJSWJVQVPZUQWDZVRUTWJWSW
        MWMPLZWLOPLZQLWPWJWMWLWMOWJWMXFTZXJXSWJOXNTZXKWJOXNXOVFVSWJWNXQWOXRQWJW
        MXSVTWJOWLXTXJWAWBWCWJWQWJWQXPWEWFWGWH $.
    $}

    ${
      $d A y z k w $.  $d ph y z k w $.  $d F k w $.  $d N w $.
      $( Lemma for ~ resqrex .  Some of the calculations involved in showing
         that the sequence converges.  (Contributed by Mario Carneiro and Jim
         Kingdon, 29-Jul-2021.) $)
      resqrexlemcalc3 $p |- ( ( ph /\ N e. NN ) ->
          ( ( ( F ` N ) ^ 2 ) - A ) <_
          ( ( ( F ` 1 ) ^ 2 ) / ( 4 ^ ( N - 1 ) ) ) ) $=
        ( wcel cexp co cmin c1 c4 cdiv cle wbr oveq2d adantr vw vk cn cfv c2 cv
        caddc wceq fveq2 oveq1d oveq1 breq12d imbi2d cneg cc0 renegcld 0red crp
        wi resqrexlemf 1nn ffvelrnd rpred resqcld le0neg2d mpbid leadd2dd recnd
        a1i negsubd addid1d 3brtr3d 1m1e0 oveq2i cc 4cn exp0 ax-mp eqtri syl5eq
        div1d breqtrrd wa cr wf peano2nn adantl resubcld ffvelrnda 4re clt 4pos
        elrpd rerpdivcld cz nnz peano2zm rpexpcld resqrexlemcalc2 lediv1d letrd
        biimpa cmul ad2antrr rpcnd rpap0d divdivap1d simpr pncan1 simplr expm1t
        syl nncnd sylancr eqtrd eqtr4d breqtrd ex expcom a2d nnind impcom ) FUC
        JAFEUDZUEKLZDMLZNEUDZUEKLZOFNMLZKLZPLZQRZAUAUFZEUDZUEKLZDMLZYGOYLNMLZKL
        ZPLZQRZUSAYGDMLZYGONNMLZKLZPLZQRZUSAUBUFZEUDZUEKLZDMLZYGOUUENMLZKLZPLZQ
        RZUSAUUENUGLZEUDZUEKLZDMLZYGOUUMNMLZKLZPLZQRZUSAYKUSUAUBFYLNUHZYSUUDAUV
        AYOYTYRUUCQUVAYNYGDMUVAYMYFUEKYLNEUIUJUJUVAYQUUBYGPUVAYPUUAOKYLNNMUKSSU
        LUMYLUUEUHZYSUULAUVBYOUUHYRUUKQUVBYNUUGDMUVBYMUUFUEKYLUUEEUIUJUJUVBYQUU
        JYGPUVBYPUUIOKYLUUENMUKSSULUMYLUUMUHZYSUUTAUVCYOUUPYRUUSQUVCYNUUODMUVCY
        MUUNUEKYLUUMEUIUJUJUVCYQUURYGPUVCYPUUQOKYLUUMNMUKSSULUMYLFUHZYSYKAUVDYO
        YEYRYJQUVDYNYDDMUVDYMYCUEKYLFEUIUJUJUVDYQYIYGPUVDYPYHOKYLFNMUKSSULUMAYT
        YGUUCQAYGDUNZUGLYGUOUGLYTYGQAUVEUOYGADHUPAUQAYFAYFAUCURNEABCDEGHIUTZNUC
        JAVAVIVBVCVDZAUODQRUVEUOQRIADHVEVFVGAYGDAYGUVGVHZADHVHVJAYGUVHVKVLAUUCY
        GNPLYGUUBNYGPUUBOUOKLZNUUAUOOKVMVNOVOJZUVINUHVPOVQVRVSVNAYGUVHWAVTWBUUE
        UCJZAUULUUTAUVKUULUUTUSAUVKWCZUULUUTUVLUULWCZUUPUUKOPLZUUSQUVMUUPUUHOPL
        ZUVNUVLUUPWDJUULUVLUUODUVLUUNUVLUUNUVLUCURUUMEAUCUREWEUVKUVFTUVKUUMUCJA
        UUEWFWGVBVCVDADWDJUVKHTZWHTUVLUVOWDJUULUVLUUHOUVLUUGDUVLUUFUVLUUFAUCURU
        UEEUVFWIVCVDUVPWHZUVLOOWDJUVLWJVIUOOWKRUVLWLVIWMZWNTUVLUVNWDJUULUVLUUKO
        UVLYGUUJAYGWDJUVKUVGTUVLOUUIUVRUVKUUIWOJZAUVKUUEWOJUVSUUEWPUUEWQXLWGWRZ
        WNZUVRWNTUVLUUPUVOQRUULABCDEUUEGHIWSTUVLUULUVOUVNQRUVLUUHUUKOUVQUWAUVRW
        TXBXAUVMUVNYGUUJOXCLZPLUUSUVMYGUUJOAYGVOJUVKUULUVHXDUVMUUJUVLUUJURJUULU
        VTTZXEUVJUVMVPVIUVMUUJUWCXFUVMOUVLOURJUULUVRTXFXGUVMUURUWBYGPUVMUUROUUE
        KLZUWBUVLUURUWDUHUULUVLUUQUUEOKUVLUUEVOJUUQUUEUHUVLUUEAUVKXHXMUUEXIXLST
        UVMUVJUVKUWDUWBUHVPAUVKUULXJOUUEXKXNXOSXPXQXRXSXTYAYB $.
    $}

    ${
      $d A y z $.  $d ph y z $.  $d M y z $.  $d N y z $.
      resqrexlemnmsq.n $e |- ( ph -> N e. NN ) $.
      resqrexlemnmsq.m $e |- ( ph -> M e. NN ) $.
      resqrexlemnmsq.nm $e |- ( ph -> N <_ M ) $.
      $( Lemma for ~ resqrex .  The difference between the squares of two terms
         of the sequence.  (Contributed by Mario Carneiro and Jim Kingdon,
         30-Jul-2021.) $)
      resqrexlemnmsq $p |- ( ph ->
          ( ( ( F ` N ) ^ 2 ) - ( ( F ` M ) ^ 2 ) ) <
          ( ( ( F ` 1 ) ^ 2 ) / ( 4 ^ ( N - 1 ) ) ) ) $=
        ( c2 cexp co cmin c1 cn wcel cfv c4 cdiv clt resqrexlemf ffvelrnd rpred
        crp resqcld recnd nnncan2d resubcld 1nn a1i cz rpexpcld nnrpd nnzd 1zzd
        2z 4nn zsubcld rpdivcld wbr resqrexlemover mpdan cr difrp syl2anc mpbid
        wb ltsubrpd cle resqrexlemcalc3 ltletrd eqbrtrrd ) AGEUAZNOPZDQPZFEUAZN
        OPZDQPZQPZVRWAQPREUAZNOPZUBGRQPZOPZUCPZUDAVRWADAVRAVQAVQASUHGEABCDEHIJU
        EZKUFUGUIZUJAWAAVTAVTASUHFEWILUFUGUIZUJADIUJUKAWCVSWHAVSWBAVRDWJIULZAWA
        DWKIULULWLAWHAWEWGAWDNASUHREWIRSTAUMUNUFNUOTAUTUNUPAUBWFAUBUBSTAVAUNUQA
        GRAGKURAUSVBUPVCUGAVSWBWLADWAUDVDZWBUHTZAFSTWMLABCDEFHIJVEVFADVGTWAVGTW
        MWNVKIWKDWAVHVIVJVLAGSTVSWHVMVDKABCDEGHIJVNVFVOVP $.

      $( Lemma for ~ resqrex .  The difference between two terms of the
         sequence.  (Contributed by Mario Carneiro and Jim Kingdon,
         31-Jul-2021.) $)
      resqrexlemnm $p |- ( ph -> ( ( F ` N ) - ( F ` M ) ) <
          ( ( ( ( F ` 1 ) ^ 2 ) x. 2 ) / ( 2 ^ ( N - 1 ) ) ) ) $=
        ( co c1 c2 cexp cdiv cmul wcel cfv cmin c4 clt crp resqrexlemf ffvelrnd
        cn rpred resubcld resqcld cc 2cn expm1t sylancr 2nn a1i nnnn0d nnexpcld
        wceq nnrpd eqeltrrd remulcld 1nn nnzd rpexpcld 4re 4pos elrpii peano2zm
        cz syl rpdivcld caddc cle rpaddcld rpmulcld wa cr adantr resqrexlemdecn
        wbr cc0 simpr wb difrp mpbid rpge0d recnd subidd fveq2 oveq2d sylan9req
        syl2anc 0re eqlei wo zleloe mpjaodan 1red nnrecred addid1d resqrexlemlo
        0red mpdan rpgt0d lt2addd eqbrtrrd readdcld ltdivmul2d ltled lemulge11d
        breqtrd rpcnd mulassd mulcomd subsq eqtr4d oveq1d eqtr3d resqrexlemnmsq
        ltmul1dd lelttrd rpap0d div32apd 4d2e2 oveq1i nnm1nn0 expdivapd syl5eqr
        2cnd cn0 recdivapd eqtrd recclapd mul32d mulcld divrecapd ) AGEUAZFEUAZ
        UBNZOEUAZPQNZUCGOUBNZQNZRNZPUUDQNZPSNZSNZUUCPSNZUUGRNZUDAUUAYSPQNZYTPQN
        ZUBNZUUHSNZUUIAYSYTAYSAUHUEGEABCDEHIJUFZKUGZUIZAYTAUHUEFEUUPLUGZUIZUJZA
        UUNUUHAUULUUMAYSUURUKAYTUUTUKUJZAUUHAPGQNZUUHUEAPULTGUHTZUVCUUHUTUMKPGU
        NUOZAUVCAPGPUHTAUPUQZAGKURUSZVAZVBZUIZVCAUUFUUHAUUFAUUCUUEAUUBPAUHUEOEU
        UPOUHTAVDUQUGAPUVFVEVFZAUCUUDUCUETAUCVGVHVIUQZAGVKTZUUDVKTAGKVEZGVJVLZV
        FZVMUIZUVJVCAUUAUUAYSYTVNNZUUHSNZSNZUUOVOAUUAUVSUVAAUVSAUVRUUHAYSYTUUQU
        USVPUVIVQUIZAGFUDWBZWCUUAVOWBZGFUTZAUWBVRZUUAUWEYTYSUDWBZUUAUETZUWEBCDE
        FGHADVSTUWBIVTAWCDVOWBUWBJVTAUVDUWBKVTAFUHTUWBLVTAUWBWDWAUWEYTVSTZYSVST
        ZUWFUWGWEAUWHUWBUUTVTAUWIUWBUURVTYTYSWFWNWGWHAUWDVRWCUUAUTUWCAUWDWCYSYS
        UBNUUAAYSAYSUURWIZWJUWDYSYTYSUBGFEWKWLWMWCUUAWOWPVLAGFVOWBZUWBUWDWQZMAU
        VMFVKTUWKUWLWEUVNAFLVEGFWRWNWGWSAOUVSAWTZUWAAOUVRUVCSNZUVSUDAOUVCRNZUVR
        UDWBOUWNUDWBAUWOWCVNNUWOUVRUDAUWOAUWOAUVCUVGXAZWIXBAUWOWCYSYTUWPAXDUURU
        UTAUVDUWOYSUDWBKABCDEGHIJXCXEAYTUUSXFXGXHAOUVRUVCUWMAYSYTUURUUTXIZUVHXJ
        WGAUVCUUHUVRSUVEWLXMXKXLAUUAUVRSNZUUHSNUVTUUOAUUAUVRUUHAUUAUVAWIZAUVRUW
        QWIZAUUHUVIXNXOAUWRUUNUUHSAUWRUVRUUASNZUUNAUUAUVRUWSUWTXPAYSULTYTULTUUN
        UXAUTUWJAYTUUTWIYSYTXQWNXRXSXTXMAUUNUUFUUHUVBUVQUVIABCDEFGHIJKLMYAYBYCA
        UUIUUJOUUGRNZSNZUUKAUUIUUCUXBSNZPSNZUXCAUUFUUGSNZPSNUUIUXEAUUFUUGPAUUFU
        VQWIAUUGAPUUDAPUVFVAZUVOVFZXNZAYKZXOAUXFUXDPSAUXFUUCUUGUUERNZSNUXDAUUCU
        UEUUGAUUCUVKXNZAUUEUVPXNZUXIAUUEUVPYDZYEAUXBUXKUUCSAUXBOUUEUUGRNZRNUXKA
        UUGUXOORAUUGUCPRNZUUDQNUXOUXPPUUDQYFYGAUCPUUDAUCUVLXNUXJAPUXGYDAUVDUUDY
        LTKGYHVLYIYJWLAUUEUUGUXMUXIUXNAUUGUXHYDZYMYNWLXRXSXTAUUCUXBPUXLAUUGUXIU
        XQYOUXJYPYNAUUJUUGAUUCPUXLUXJYQUXIUXQYRXRXM $.
    $}

    ${
      $d A y z $.  $d F i j k r $.  $d F j k n r $.  $d F i j x r $.
      $d i j k ph r $.  $d k n ph y z $.  $d ph x r $.
      $( Lemma for ~ resqrex .  The sequence has a limit.  (Contributed by Jim
         Kingdon, 6-Aug-2021.) $)
      resqrexlemcvg $p |- ( ph ->
          E. r e. RR A. x e. RR+ E. j e. NN A. i e. ( ZZ>= ` j )
          ( ( F ` i ) < ( r + x ) /\ r < ( ( F ` i ) + x ) ) ) $=
        ( c2 co cn crp a1i wcel clt wbr vk vn c1 cfv cexp cr resqrexlemf rpssre
        cmul wss fssd 1nn ffvelrnd cz 2z rpexpcld 2rp rpmulcld cv cdiv caddc wa
        cuz wral cmin wf ad2antrr simplr rpred eluznn adantll resubcld rpdivcld
        nnzd nnrpd cc0 cle eluzle adantl resqrexlemnm cc wceq 2cn expm1t oveq2d
        sylancr rpcnd cn0 nnm1nn0 syl cap 2ap0 1zzd zsubcld expap0d divcanap5rd
        expcld eqtrd breqtrrd uzid ax-mp nnnn0d bernneq3 mpbid lttrd ltsubadd2d
        ltdiv2d readdcld adantr simpr resqrexlemdecn ltled fveq2 eqcomd eqle wo
        syl2an wb zleloe syl2anc mpjaodan ltaddrpd lelttrd jca ralrimiva cvg1n
        ) ABIUCHUDZMUENZMUINZMUINZFGUAUBHAOPUFHACDEHJKLUGZPUFUJAUHQUKAYIMAYHMAY
        GMAOPUCHYKUCORZAULQUMMUNRZAUOQUPMPRZAUQQZURYOURZAUBUSZHUDZUAUSZHUDZYJYQ
        UTNZVANSTZYTYRUUAVANZSTZVBZUAYQVCUDZVDUBOAYQORZVBZUUEUAUUFUUHYSUUFRZVBZ
        UUBUUDUUJYRYTVENZUUASTUUBUUJUUKYJMYQUENZUTNZUUAUUJYRYTUUJYRUUJOPYQHAOPH
        VFUUGUUIYKVGZAUUGUUIVHZUMVIZUUJYTUUJOPYSHUUNUUGUUIYSORZAYSYQVJVKZUMVIZV
        LUUJUUMUUJYJUULAYJPRUUGUUIYPVGZUUJMYQYNUUJUQQZUUJYQUUOVNZUPZVMVIUUJUUAU
        UJYJYQUUTUUJYQUUOVOZVMZVIZUUJUUKYIMYQUCVENZUENZUTNZUUMSUUJCDEHYSYQJAEUF
        RZUUGUUIKVGZAVPEVQTZUUGUUILVGZUUOUURUUIYQYSVQTZUUHYQYSVRVSZVTUUJUUMYJUV
        HMUINZUTNUVIUUJUULUVPYJUTUUJMWARZUUGUULUVPWBWCUUOMYQWDWFWEUUJYIUVHMUUJY
        IUUJYHMUUJYGMUUJOPUCHUUNYLUUJULQUMYMUUJUOQUPUVAURWGUUJMUVGUVQUUJWCQZUUJ
        UUGUVGWHRUUOYQWIWJWQUVRUUJMUVGUVRMVPWKTUUJWLQZUUJYQUCUVBUUJWMWNWOUVSWPW
        RWSUUJYQUULSTZUUMUUASTUUJMMVCUDRZYQWHRUVTYMUWAUOMWTXAUUJYQUUOXBMYQXCWFU
        UJYQUULYJUVDUVCUUTXGXDXEUUJYRYTUUAUUPUUSUVFXFXDUUJYTYRUUCUUSUUPUUJYRUUA
        UUPUVFXHUUJYQYSSTZYTYRVQTZYQYSWBZUUJUWBVBZYTYRUUJYTUFRZUWBUUSXIUUJYRUFR
        UWBUUPXIUWECDEHYSYQJUUJUVJUWBUVKXIUUJUVLUWBUVMXIUUJUUGUWBUUOXIUUJUUQUWB
        UURXIUUJUWBXJXKXLUUJUWFYTYRWBUWCUWDUUSUWDYRYTYQYSHXMXNYTYRXOXQUUJUVNUWB
        UWDXPZUVOUUJYQUNRYSUNRUVNUWGXRUVBUUJYSUURVNYQYSXSXTXDYAUUJYRUUAUUPUVEYB
        YCYDYEYEYF $.
    $}

    ${
      resqrexlemgt0.rr $e |- ( ph -> L e. RR ) $.
      resqrexlemgt0.lim $e |- ( ph ->
          A. e e. RR+ E. j e. NN A. i e. ( ZZ>= ` j )
          ( ( F ` i ) < ( L + e ) /\ L < ( ( F ` i ) + e ) ) ) $.

      ${
        $d A y z $.  $d F e $.  $d L e i j $.  $d i j ph $.  $d j ph z $.
        $d ph y z $.
        $( Lemma for ~ resqrex .  A limit is nonnegative.  (Contributed by Jim
           Kingdon, 7-Aug-2021.) $)
        resqrexlemgt0 $p |- ( ph -> 0 <_ L ) $=
          ( cc0 wbr clt cn wfal wcel cle wn wa cfv cuz wral wrex cneg caddc crp
          cv co adantr renegcld lt0neg1d biimpa elrpd wceq oveq2 breq2d anbi12d
          cr rexralbidv rspcv sylc simpl recnd negidd syl5ib ralimdv reximdv wi
          0red eluznn resqrexlemf ffvelrnda sylan2 rpred rpgt0d ltnsymd pm2.21d
          mpd anassrs ralimdva wb cz nnz wex uzid elex2 r19.3rmv adantl sylibrd
          3syl syl rexlimdva inegd 0re lenlt sylancr mpbird ) AOIUAPZIOQPZUBZAX
          CAXCUCZFUKZHUDZOQPZFGUKZUEUDZUFZGRUGZSXEXGIIUHZUIULZQPZIXGXMUIULZQPZU
          CZFXJUFZGRUGZXLXEXMUJTXGIEUKZUIULZQPZIXGYAUIULZQPZUCZFXJUFGRUGZEUJUFZ
          XTXEXMXEIAIVBTZXCMUMZUNAXCOXMQPAIMUOUPUQAYHXCNUMYGXTEXMUJYAXMURZYFXRG
          FRXJYKYCXOYEXQYKYBXNXGQYAXMIUIUSUTYKYDXPIQYAXMXGUIUSUTVAVCVDVEXEXSXKG
          RXEXRXHFXJXRXOXEXHXOXQVFXEXNOXGQXEIXEIYJVGVHUTVIVJVKWBAXLSVLXCAXKSGRA
          XIRTZUCZXKSFXJUFZSYMXHSFXJAYLXFXJTZXHSVLAYLYOUCZUCZXHSYQOXGYQVMYQXGYP
          AXFRTXGUJTXFXIVNARUJXFHABCDHJKLVOVPVQZVRYQXGYRVSVTWAWCWDYLSYNWEZAYLXI
          WFTZYSXIWGYTXIXJTCUKXJTCWHYSXIWICXIXJWJSFCXJWKWNWOWLWMWPUMWBWQAOVBTYI
          XBXDWEWRMOIWSWTXA $.
      $}

      ${
        $d A y z $.  $d F e i j $.  $d F b i j y z $.  $d K e i j $.
        $d K b i j y z $.  $d L b e i j $.  $d L i j y z $.  $d ph b y z $.
        resqrexlemoverl.k $e |- ( ph -> K e. NN ) $.
        $( Lemma for ~ resqrex .  Every term in the sequence is an overestimate
           compared with the limit ` L ` .  Although this theorem is stated in
           terms of a particular sequence the proof could be adapted for any
           decreasing convergent sequence.  (Contributed by Jim Kingdon,
           9-Aug-2021.) $)
        resqrexlemoverl $p |- ( ph -> L <_ ( F ` K ) ) $=
          ( wbr clt caddc wcel vb cfv cle wn wa cv cmin co cuz wral wfal cn crp
          wrex cr wb resqrexlemf ffvelrnd rpred difrp syl2anc biimpa wceq oveq2
          adantr breq2d anbi12d rexralbidv rspcv fveq2 raleqdv cbvrexv sylib cz
          sylc simprl nnzd ad2antrr simpr syl3anbrc simprr breq1d oveq1d simprd
          eluz2 cc rpcnd recnd pncan3d ad3antrrr ltnrd pm2.21fal resqrexlemdecn
          breqtrd cc0 wf uzid syl addsubassd breqtrrd ltaddsub2d mpbird ltadd1d
          readdcld ltnsymd wo zlelttric mpjaodan rexlimddv inegd lenltd ) AJIHU
          BZUCQXLJRQZUDAXMAXMUEZFUFZHUBZJJXLUGUHZSUHZRQZJXPXQSUHZRQZUEZFUAUFZUI
          UBZUJZUKUAULXNYBFGUFZUIUBZUJZGULUNZYEUAULUNXNXQUMTZXPJEUFZSUHZRQZJXPY
          KSUHZRQZUEZFYGUJGULUNZEUMUJZYIAXMYJAXLUOTZJUOTZXMYJUPAXLAULUMIHABCDHK
          LMUQZPURZUSZNXLJUTVAVBAYRXMOVEYQYIEXQUMYKXQVCZYPYBGFULYGUUDYMXSYOYAUU
          DYLXRXPRYKXQJSVDVFUUDYNXTJRYKXQXPSVDVFVGVHVIVOYHYEGUAULYFYCVCYBFYGYDY
          FYCUIVJVKVLVMXNYCULTZYEUEZUEZYCIUCQZUKIYCRQZUUGUUHUEZJJRQUUJJXLXQSUHZ
          JRUUJXLXRRQZJUUKRQZUUJIYDTZYEUULUUMUEZUUJYCVNTZIVNTZUUHUUNUUGUUPUUHUU
          GYCXNUUEYEVPZVQZVEUUGUUQUUHUUGIAIULTZXMUUFPVRVQZVEUUGUUHVSYCIWEVTUUGY
          EUUHXNUUEYEWAZVEYBUUOFIYDXOIVCZXSUULYAUUMUVCXPXLXRRXOIHVJZWBUVCXTUUKJ
          RUVCXPXLXQSUVDWCVFVGVIVOWDUUJXLJUUGXLWFTUUHUUGXLAXLUMTXMUUFUUBVRWGZVE
          UUGJWFTUUHUUGJAYTXMUUFNVRZWHZVEWIWNUUJJAYTXMUUFUUHNWJWKWLUUGUUIUEZYCH
          UBZXLRQUVHBCDHYCIKADUOTXMUUFUUILWJAWODUCQXMUUFUUIMWJAUUTXMUUFUUIPWJUU
          GUUEUUIUURVEUUGUUIVSWMUVHXLUVIAYSXMUUFUUIUUCWJUUGUVIUOTUUIUUGUVIUUGUL
          UMYCHAULUMHWPXMUUFUUAVRUURURZUSZVEUUGXLUVIRQZUUIUUGUVLXLJSUHUVIJSUHZR
          QZUUGUVNJUVMXLUGUHZRQUUGJUVIXQSUHZUVORUUGUVIXRRQZJUVPRQZUUGYCYDTZYEUV
          QUVRUEZUUGUUPUVSUUSYCWQWRUVBYBUVTFYCYDXOYCVCZXSUVQYAUVRUWAXPUVIXRRXOY
          CHVJZWBUWAXTUVPJRUWAXPUVIXQSUWBWCVFVGVIVOWDUUGUVIJXLUUGUVIUVJWGUVGUVE
          WSWTUUGXLJUVMAYSXMUUFUUCVRZUVFUUGUVIJUVKUVFXDXAXBUUGXLUVIJUWCUVKUVFXC
          XBVEXEWLUUGUUPUUQUUHUUIXFUUSUVAYCIXGVAXHXIXJAJXLNUUCXKXB $.
      $}

      ${
        resqrexlemsqa.g $e |- G = ( x e. NN |-> ( ( F ` x ) ^ 2 ) ) $.

        ${
          $d A y z $.  $d F e f j k $.  $d F e i j k y z $.  $d F k x $.
          $d L e f j k $.  $d L e i j k y z $.  $d e i j k ph y z $.
          $( Lemma for ~ resqrex .  The sequence formed by squaring each term
             of ` F ` converges to ` ( L ^ 2 ) ` .  (Contributed by Mario
             Carneiro and Jim Kingdon, 8-Aug-2021.) $)
          resqrexlemglsq $p |- ( ph ->
              A. e e. RR+ E. j e. NN A. k e. ( ZZ>= ` j )
              ( ( G ` k ) < ( ( L ^ 2 ) + e ) /\
              ( L ^ 2 ) < ( ( G ` k ) + e ) ) ) $=
            ( clt wbr vf cv cfv c2 cexp co caddc wa cuz wral wrex crp wcel cdiv
            cn c1 simpr wf resqrexlemf adantr 1nn a1i ffvelrnd rpred cr cc0 cle
            readdcld rpgt0d resqrexlemgt0 addgtge0 syl22anc elrpd rpdivcld wceq
            fveq2 breq1d oveq1d breq2d anbi12d cbvralv rexbii ralbii rexralbidv
            sylib oveq2 rspcv sylc simpllr simplr syl2anc ad3antrrr cz rpexpcld
            eluznn 2z fvmptg cmin cmul cc recnd subsq resubcld remulcld ad4antr
            resqrexlemoverl subge0d mpbird eqle ad5antr resqrexlemdecn leadd1dd
            syl2an wo nn1gt1 syl mpjaodan lemul1ad simprl ltsubadd2d ltmuldiv2d
            ltled lelttrd eqbrtrd resqcld mpbid le2sq2 breqtrrd ltaddrpd jca ex
            eqeltrd ralimdva reximdva mpd ralrimiva ) AIUBZKUCZLUDUEUFZFUBZUGUF
            ZSTZYSYRYTUGUFZSTZUHZIHUBZUIUCZUJZHUOUKZFULAYTULUMZUHZYQJUCZLYTUPJU
            CZLUGUFZUNUFZUGUFZSTZLUULUUOUGUFZSTZUHZIUUGUJZHUOUKZUUIUUKUUOULUMZU
            ULLUAUBZUGUFZSTZLUULUVDUGUFZSTZUHZIUUGUJHUOUKZUAULUJZUVBUUKYTUUNAUU
            JUQZUUKUUNUUKUUMLUUKUUMUUKUOULUPJAUOULJURZUUJACDEJMNOUSUTZUPUOUMZUU
            KVAVBVCZVDZALVEUMZUUJPUTZVHZUUKUUMVEUMZUVRVFUUMSTVFLVGTZVFUUNSTUVQU
            VSUUKUUMUVPVIAUWBUUJACDEFGHJLMNOPQVJUTZUUMLVKVLVMZVNZAUVKUUJAUULLYT
            UGUFZSTZLUULYTUGUFZSTZUHZIUUGUJZHUOUKZFULUJZUVKAGUBZJUCZUWFSTZLUWOY
            TUGUFZSTZUHZGUUGUJZHUOUKZFULUJZUWMQUXAUWLFULUWTUWKHUOUWSUWJGIUUGUWN
            YQVOZUWPUWGUWRUWIUXCUWOUULUWFSUWNYQJVPZVQUXCUWQUWHLSUXCUWOUULYTUGUX
            DVRVSVTWAWBWCWEUWLUVJFUAULYTUVDVOZUWJUVIHIUOUUGUXEUWGUVFUWIUVHUXEUW
            FUVEUULSYTUVDLUGWFVSUXEUWHUVGLSYTUVDUULUGWFVSVTWDWAWEUTUVJUVBUAUUOU
            LUVDUUOVOZUVIUUTHIUOUUGUXFUVFUUQUVHUUSUXFUVEUUPUULSUVDUUOLUGWFVSUXF
            UVGUURLSUVDUUOUULUGWFVSVTWDWGWHUUKUVAUUHHUOUUKUUFUOUMZUHZUUTUUEIUUG
            UXHYQUUGUMZUHZUUTUUEUXJUUTUHZUUBUUDUXKYRUULUDUEUFZUUASUXKYQUOUMZUXL
            ULUMYRUXLVOUXKUXGUXIUXMUUKUXGUXIUUTWIUXHUXIUUTWJYQUUFWOWKZUXKUULUDU
            XKUOULYQJUUKUVMUXGUXIUUTUVNWLUXNVCZUDWMUMUXKWPVBWNBYQBUBZJUCZUDUEUF
            UXLUOULKUXPYQVOUXQUULUDUEUXPYQJVPVRRWQWKZUXKUXLYSWRUFZYTSTUXLUUASTU
            XKUXSUULLUGUFZUULLWRUFZWSUFZYTSUXKUULWTUMLWTUMUXSUYBVOUXKUULUXKUULU
            XOVDZXAUXKLUUKUVRUXGUXIUUTUVSWLZXAUULLXBWKUXKUYBUUNUYAWSUFZYTUXKUXT
            UYAUXKUULLUYCUYDVHZUXKUULLUYCUYDXCZXDUXKUUNUYAUUKUUNVEUMUXGUXIUUTUV
            TWLZUYGXDUXKYTUUKUUJUXGUXIUUTUVLWLZVDZUXKUXTUUNUYAUYFUYHUYGUXKVFUYA
            VGTLUULVGTZUXKCDEFGHJYQLMAEVEUMZUUJUXGUXIUUTNXEAVFEVGTZUUJUXGUXIUUT
            OXEUYDAUXBUUJUXGUXIUUTQXEUXNXFZUXKUULLUYCUYDXGXHUXKYQUPVOZUXTUUNVGT
            ZUPYQSTZUXKUXTVEUMUXTUUNVOUYPUYOUYFUYOUULUUMLUGYQUPJVPVRUXTUUNXIXMU
            XKUYQUHZUULUUMLUXKUULVEUMZUYQUYCUTZUUKUWAUXGUXIUUTUYQUVQXEZUXKUVRUY
            QUYDUTUYRUULUUMUYTVUAUYRCDEJYQUPMAUYLUUJUXGUXIUUTUYQNXJAUYMUUJUXGUX
            IUUTUYQOXJUVOUYRVAVBUXKUXMUYQUXNUTUXKUYQUQXKYBXLUXKUXMUYOUYQXNUXNYQ
            XOXPXQXRUXKUYEYTSTUYAUUOSTZUXKVUBUUQUXJUUQUUSXSUXKUULLUUOUYCUYDUXKU
            UOUUKUVCUXGUXIUUTUWEWLVDXTXHUXKUYAYTUUNUYGUYJUUKUUNULUMUXGUXIUUTUWD
            WLYAXHYCYDUXKUXLYSYTUXKUULUYCYEZUXKLUYDYEZUYJXTYFYDUXKYSYRUUCVUDUXK
            YRUXLVEUXRVUCYLZUXKYRYTVUEUYJVHUXKYSUXLYRVGUXKUVRUWBUYSUYKYSUXLVGTU
            YDUUKUWBUXGUXIUUTUWCWLUYCUYNLUULYGVLUXRYHUXKYRYTVUEUYIYIYCYJYKYMYNY
            OYP $.
        $}

        ${
          $d A y z $.  $d F j k $.  $d F k x $.  $d e j k ph $.  $d ph y z $.
          $( Lemma for ~ resqrex .  The sequence formed by squaring each term
             of ` F ` converges to ` A ` .  (Contributed by Mario Carneiro and
             Jim Kingdon, 8-Aug-2021.) $)
          resqrexlemga $p |- ( ph ->
              A. e e. RR+ E. j e. NN A. k e. ( ZZ>= ` j )
              ( ( G ` k ) < ( A + e ) /\ A < ( ( G ` k ) + e ) ) ) $=
            ( wbr wcel cv cfv caddc co clt wa cuz wral cn wrex crp c1 cexp cdiv
            c2 cr wf resqrexlemf adantr 1nn ffvelrnd cz rpexpcld simpr rpdivcld
            a1i 2z rpred 1red readdcld arch wceq simpllr eluznn syl2anc simplll
            syl fveq2 oveq1d fvmptg cmin resubcld ad3antrrr 4re 4pos elrpii cn0
            c4 nnm1nn0 nn0zd rerpdivcld cle resqrexlemcalc3 nnred simplr eluzle
            reexpcld adantl ltletrd ltaddsubd mpbid 4z 2re 2lt4 ltleii mpbir3an
            bernneq3 sylancr ltdiv23d lelttrd ltsubadd2d eqbrtrd resqrexlemover
            eluz2 lttrd eqeltrd breqtrrd ltaddrpd jca ralrimiva ex reximdva mpd
            ) AIUAZKUBZEFUAZUCUDZUESZEYEYFUCUDZUESZUFZIHUAZUGUBZUHZHUIUJZFUKAYF
            UKTZUFZULJUBZUOUMUDZYFUNUDZULUCUDZYLUESZHUIUJZYOYQUUAUPTZUUCYQYTULY
            QYTYQYSYFYQYRUOYQUIUKULJAUIUKJUQZYPACDEJMNOURZUSULUITYQUTVFVAUOVBTZ
            YQVGVFVCZAYPVDZVEVHZYQVIVJZUUAHVKVQYQUUBYNHUIYQYLUITZUFZUUBYNUUMUUB
            UFZYKIYMUUNYDYMTZUFZYHYJUUPYEYDJUBZUOUMUDZYGUEUUPYDUITZUURUKTYEUURV
            LUUPUULUUOUUSYQUULUUBUUOVMZUUNUUOVDYDYLVNVOZUUPUUQUOUUPUIUKYDJUUPAU
            UEUUNAUUOAYPUULUUBVPUSZUUFVQUVAVAUUGUUPVGVFVCZBYDBUAZJUBZUOUMUDUURU
            IUKKUVDYDVLUVEUUQUOUMUVDYDJVRVSRVTVOZUUPUUREWAUDZYFUESUURYGUESUUPUV
            GYSWHYDULWAUDZUMUDZUNUDZYFUUPUUREUUPUURUVCVHZUUPAEUPTUVBNVQZWBUUPYS
            UVIUUPYSYQYSUKTUULUUBUUOUUHWCVHZUUPWHUVHWHUKTUUPWHWDWEWFVFUUPUVHUUP
            UUSUVHWGTZUVAYDWIVQZWJVCZWKUUPYFYQYPUULUUBUUOUUIWCZVHZUUPAUUSUVGUVJ
            WLSUVBUVAACDEJYDMNOWMVOUUPYSYFUVIUVMUVQUVPUUPYTUVHUVIYQYTUPTUULUUBU
            UOUUJWCZUUPYDULUUPYDUVAWNZUUPVIZWBUUPWHUVHWHUPTUUPWDVFUVOWQUUPUUAYD
            UESYTUVHUESUUPUUAYLYDYQUUDUULUUBUUOUUKWCUUPYLUUTWNUVTUUMUUBUUOWOUUO
            YLYDWLSUUNYLYDWPWRWSUUPYTULYDUVSUWAUVTWTXAUUPWHUOUGUBTZUVNUVHUVIUES
            UWBUUGWHVBTUOWHWLSVGXBUOWHXCWDXDXEUOWHXNXFUVOWHUVHXGXHXOXIXJUUPUURE
            YFUVKUVLUVRXKXAXLUUPEYEYIUVLUUPYEUUPYEUURUKUVFUVCXPVHZUUPYEYFUWCUVR
            VJUUPEUURYEUEUUPAUUSEUURUESUVBUVAACDEJYDMNOXMVOUVFXQUUPYEYFUWCUVQXR
            XOXSXTYAYBYCXT $.
        $}
      $}

      ${
        $d A a b c d e j $.  $d A a b c d y z $.  $d F a b c d e j $.
        $d F d x $.  $d F d y z $.  $d F i $.  $d L a b c d e j $.  $d L i $.
        $d L y z $.  $d e j x a b c $.  $d e i j a b c $.  $d ph a b c d $.
        $d ph x $.  $d ph y z $.
        $( Lemma for ~ resqrex .  The square of a limit is ` A ` .
           (Contributed by Jim Kingdon, 7-Aug-2021.) $)
        resqrexlemsqa $p |- ( ph -> ( L ^ 2 ) = A ) $=
          ( va vb cn crp caddc clt vd vx vc cv c2 cexp co cmpt wcel resqrexlemf
          cfv cr wa ffvelrnda cz 2z a1i rpexpcld eqid fmptd rpssre fssd resqcld
          wss wbr cuz wral wrex oveq2 breq2d anbi12d rexralbidv cbvralv raleqdv
          fveq2 cbvrexv ralbii breq1d oveq1d rexbii 3bitri sylib resqrexlemglsq
          weq resqrexlemga recvguniq ) AOPUAUBQUBUDZHUKZUEUFUGZUHZIUEUFUGDAQRUL
          WJAUBQWIRWJAWGQUIUMZWHUEAQRWGHABCDHJKLUJUNUEUOUIWKUPUQURWJUSZUTRULVDA
          VAUQVBAIMVCAUBBCDOUCPUAHWJIJKLMAFUDZHUKZIEUDZSUGZTVEZIWNWOSUGZTVEZUMZ
          FGUDZVFUKZVGGQVHZERVGZUCUDZHUKZIOUDZSUGZTVEZIXFXGSUGZTVEZUMZUCPUDZVFU
          KZVGZPQVHZORVGZNXDWNXHTVEZIWNXGSUGZTVEZUMZFXBVGZGQVHZORVGYAFXNVGZPQVH
          ZORVGXQXCYCEOREOWDZWTYAGFQXBYFWQXRWSXTYFWPXHWNTWOXGISVIVJYFWRXSITWOXG
          WNSVIVJVKVLVMYCYEORYBYDGPQGPWDYAFXBXNXAXMVFVOVNVPVQYEXPORYDXOPQYAXLFU
          CXNFUCWDZXRXIXTXKYGWNXFXHTWMXEHVOZVRYGXSXJITYGWNXFXGSYHVSVJVKVMVTVQWA
          WBZWLWCKAUBBCDOUCPUAHWJIJKLMYIWLWEWF $.
      $}
    $}

    ${
      $d A r x y z $.  $d A n $.  $d A e $.  $d F a b c e r $.
      $d F b c e k n r $.  $d F e k n r y z $.  $d b c e k n ph r $.
      $d b e k n ph r z $.  $d ph r y z $.

      $( Lemma for ~ resqrex .  Existence of square root given a sequence which
         converges to the square root.  (Contributed by Mario Carneiro and Jim
         Kingdon, 27-Jul-2021.) $)
      resqrexlemex $p |- ( ph ->
          E. x e. RR ( 0 <_ x /\ ( x ^ 2 ) = A ) ) $=
        ( ve vn vc vb cv caddc co clt wbr wa wral vk vr va cfv cuz wrex crp cc0
        cn c2 cexp wceq cr resqrexlemcvg wcel simprl adantr simprr fveq2 breq1d
        cle weq oveq1d breq2d anbi12d cbvralv rexbii raleqdv bitri ralbii oveq2
        cbvrexv rexralbidv sylib resqrexlemgt0 resqrexlemsqa breq2 oveq1 eqeq1d
        rspcev syl12anc rexlimddv ) AUANZFUDZUBNZJNZOPZQRZWEWDWFOPZQRZSZUAKNZUE
        UDZTZKUIUFZJUGTZUHBNZVARZWQUJUKPZEULZSZBUMUFZUBUMAJCDEUAKFUBGHIUNAWEUMU
        OZWPSZSZXCUHWEVARZWEUJUKPZEULZXBAXCWPUPZXECDEUCLMFWEGAEUMUOXDHUQZAUHEVA
        RXDIUQZXIXEWPLNZFUDZWEUCNZOPZQRZWEXMXNOPZQRZSZLMNZUEUDZTMUIUFZUCUGTZAXC
        WPURZWPXMWGQRZWEXMWFOPZQRZSZLYATZMUIUFZJUGTYCWOYJJUGWOYHLWMTZKUIUFYJWNY
        KKUIWKYHUALWMUALVBZWHYEWJYGYLWDXMWGQWCXLFUSZUTYLWIYFWEQYLWDXMWFOYMVCVDV
        EVFVGYKYIKMUIKMVBYHLWMYAWLXTUEUSVHVLVIVJYJYBJUCUGJUCVBZYHXSMLUIYAYNYEXP
        YGXRYNWGXOXMQWFXNWEOVKVDYNYFXQWEQWFXNXMOVKVDVEVMVFVIVNVOXECDEJUAKFWEGXJ
        XKXIYDVPXAXFXHSBWEUMBUBVBZWRXFWTXHWQWEUHVAVQYOWSXGEWQWEUJUKVRVSVEVTWAWB
        $.
    $}
  $}

  ${
    $d A a b x y z $.
    $( 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 ) ) $=
      ( va vb vy vz cr wcel cc0 cle crp cv cdiv co caddc c2 cmpt2 c1 cseq wceq
      wbr wa cn csn cxp oveq2 oveq12d oveq1d eqidd cbvmpt2v iseqeq2 ax-mp simpl
      id simpr resqrexlemex ) BGHZIBJUAZUBACDBEFKKELZBUSMNZONZPMNZQZKUCRBONUDUE
      ZRSZVCCDKKCLZBVFMNZONZPMNZQZTVEVJKVDRSTEFCDKKVBVIVIUSVFTZVAVHPMVKUSVFUTVG
      OVKUNUSVFBMUFUGUHFLDLTVIUIUJVCVJKVDRUKULUQURUMUQURUOUP $.
  $}

  ${
    $d A x y $.
    $( Uniqueness for the square root function.  (Contributed by Jim Kingdon,
       10-Aug-2021.) $)
    rsqrmo $p |- ( ( A e. RR /\ 0 <_ A ) -> E* x e. RR ( ( x ^ 2 ) = A /\
        0 <_ x ) ) $=
      ( vy cr wcel cc0 cle wbr wa cv c2 cexp co wceq wi simplrl simplrr simprlr
      wral wrmo simprrr simprll simprrl eqtr4d sq11d ex ralrimivva oveq1 eqeq1d
      breq2 anbi12d rmo4 sylibr ) BDEFBGHIZAJZKLMZBNZFUOGHZIZCJZKLMZBNZFUTGHZIZ
      IZUOUTNZOZCDSADSUSADTUNVGACDDUNUODEZUTDEZIIZVEVFVJVEIZUOUTUNVHVIVEPUNVHVI
      VEQVJUQURVDRVJUSVBVCUAVKUPBVAVJUQURVDUBVJUSVBVCUCUDUEUFUGUSVDACDVFUQVBURV
      CVFUPVABUOUTKLUHUIUOUTFGUJUKULUM $.
  $}

  ${
    $d A x $.
    $( Existence and uniqueness for the real square root function.
       (Contributed by Jim Kingdon, 10-Aug-2021.) $)
    rersqreu $p |- ( ( A e. RR /\ 0 <_ A ) -> E! x e. RR ( ( x ^ 2 ) = A /\
        0 <_ x ) ) $=
      ( cr wcel cc0 cle wbr wa cv c2 cexp co wceq wrex wrmo wreu resqrex rexbii
      ancom sylib rsqrmo reu5 sylanbrc ) BCDEBFGHZAIZJKLBMZEUEFGZHZACNZUHACOUHA
      CPUDUGUFHZACNUIABQUJUHACUGUFSRTABUAUHACUBUC $.
  $}

  ${
    $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 wa cv c2 cexp wceq wrex csqrt cfv resqrex w3a
      co crio simp1l sqrtrval syl simp3r simp3l wreu wb simp2 rersqreu 3ad2ant1
      oveq1 eqeq1d breq2 anbi12d riota2 syl2anc mpbi2and eqeltrd rexlimdv3a mpd
      eqtrd ) ADEZFAGHZIZFBJZGHZVEKLSZAMZIZBDNAOPZDEZBAQVDVIVKBDVDVEDEZVIRZVJVE
      DVMVJCJZKLSZAMZFVNGHZIZCDTZVEVMVBVJVSMVBVCVLVIUACAUBUCVMVHVFVSVEMZVDVLVFV
      HUDVDVLVFVHUEVMVLVRCDUFZVHVFIZVTUGVDVLVIUHZVDVLWAVICAUIUJVRWBCDVEVNVEMZVP
      VHVQVFWDVOVGAVNVEKLUKULVNVEFGUMUNUOUPUQVAWCURUSUT $.

    $( Lemma for ~ resqrtth .  (Contributed by Jim Kingdon, 10-Aug-2021.) $)
    rersqrtthlem $p |- ( ( A e. RR /\ 0 <_ A ) -> ( ( ( sqrt ` A ) ^ 2 ) = A /\
        0 <_ ( sqrt ` A ) ) ) $=
      ( vx cr wcel cc0 cle wbr wa csqrt c2 cexp co wceq cv crio sqrtrval eqcomd
      cfv adantr wreu wb resqrtcl rersqreu eqeq1d anbi12d riota2 syl2anc mpbird
      oveq1 breq2 ) ACDZEAFGZHZAIRZJKLZAMZEUNFGZHZBNZJKLZAMZEUSFGZHZBCOZUNMZUKV
      EULUKUNVDBAPQSUMUNCDVCBCTURVEUAAUBBAUCVCURBCUNUSUNMZVAUPVBUQVFUTUOAUSUNJK
      UIUDUSUNEFUJUEUFUGUH $.
  $}

  $( 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 rersqrtthlem simpld ) AB
    CDAEFGAHIZJKLAMDPEFANO $.

  $( 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 c2 cexp co wceq rersqrtthlem simprd ) AB
    CDAEFGAHIZJKLAMDPEFANO $.

  $( 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 c2 cexp co simpr wceq sq0 a1i 0red simpl
    cle syldan ltled resqrtth 3brtr4d resqrtcl leidd sqrtge0 lt2sqd mpbird ) AB
    CZDAEFZGZDAHIZEFDJKLZULJKLZEFUKDAUMUNEUIUJMZUMDNUKOPUIUJDASFZUNANUKDAUKQZUI
    UJRUOUAZAUBTUCUKDULUQUIUJUPULBCURAUDTUKDUQUEUIUJUPDULSFURAUFTUGUH $.

  $( 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 csqrt cfv clt c2 cexp co wb resqrtcl sqrtge0 lt2sq
    jca resqrtth syl2an breqan12d bitr2d ) ACDEAFGHZBCDEBFGHZHAIJZBIJZKGZUFLMNZ
    UGLMNZKGZABKGUDUFCDZEUFFGZHUGCDZEUGFGZHUHUKOUEUDULUMAPAQSUEUNUOBPBQSUFUGRUA
    UDUEUIAUJBKATBTUBUC $.

  $( Analogue to ~ sqrt11 but for apartness.  (Contributed by Jim Kingdon,
     11-Aug-2021.) $)
  sqrt11ap $p |- ( ( ( A e. RR /\ 0 <_ A ) /\ ( B e. RR /\ 0 <_ B ) ) ->
    ( ( sqrt ` A ) # ( sqrt ` B ) <-> A # B ) ) $=
    ( cr wcel cc0 cle wbr wa clt wo csqrt cfv sqrtlt wb ancoms orbi12d ad2ant2r
    cap reaplt resqrtcl syl2an 3bitr4rd ) ACDZEAFGZHZBCDZEBFGZHZHZABIGZBAIGZJZA
    KLZBKLZIGZUNUMIGZJZABRGZUMUNRGZUIUJUOUKUPABMUHUEUKUPNBAMOPUCUFURULNUDUGABSQ
    UEUMCDUNCDUSUQNUHATBTUMUNSUAUB $.

  $( The square root function is one-to-one.  Also see ~ sqrt11ap which would
     follow easily from this given excluded middle, but which is proved another
     way without it.  (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 divge0 sylan2b resqrtcl syl2anc rpsqrtcl rpcnd divcanap4d
    elrp rpap0d wceq rprege0 sqrtmul syl21anc simpll rpcn cap divcanap1d fveq2d
    cc rpap0 oveq1d ) ACDZEAFGZHZBIDZHZABJKZLMZBLMZNKZVIJKVHALMZVIJKVFVHVIVFVHV
    FVGCDZEVGFGZVHCDVBVEVLVCABOPZVEVDBCDZEBRGHVMBUHABUAUBZVGUCUDQVFVIVEVIIDVDBU
    ESZUFVFVIVQUIUGVFVJVKVIJVFVGBNKZLMZVJVKVFVLVMVOEBFGHZVSVJUJVNVPVEVTVDBUKSVG
    BULUMVFVRALVFABVFAVBVCVEUNQVEBUSDVDBUOSVEBEUPGVDBUTSUQURTVAT $.

  $( 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 $.

  ${
    $d x A $.
    $( 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 ) $=
      ( vx cr wcel cc0 cle wbr wa c2 cexp co csqrt cfv wceq crio simpl sqrtrval
      cv resqcld simplr syl simplll simprr simpllr simprl sq11d ex wi oveq1 a1i
      breq2 syl5ibrcom jcad impbid riota5 eqtrd ) ACDZEAFGZHZAIJKZLMZBRZIJKUTNZ
      EVBFGZHZBCOZAUSUTCDVAVFNUSAUQURPZSBUTQUAUSVEBCAVGUSVBCDZHZVEVBANZVIVEVJVI
      VEHVBAUSVHVETUQURVHVEUBVIVCVDUCUQURVHVEUDVIVCVDUEUFUGVIVJVCVDVJVCUHVIVBAI
      JUIUJVIVDVJURUQURVHTVBAEFUKULUMUNUOUP $.
  $}

  $( 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 $.

  $( 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 number apart from zero is a positive real.
     (Contributed by Jim Kingdon, 11-Aug-2021.) $)
  absrpclap $p |- ( ( A e. CC /\ A # 0 ) -> ( abs ` A ) e. RR+ ) $=
    ( cc wcel cc0 cap wbr wa cabs cfv ccj cmul co csqrt crp absval adantr simpl
    wceq cjmulrcld cjmulge0d cjcld simpr mulap0d ap0gt0d elrpd rpsqrtcl eqeltrd
    cjap0d syl ) ABCZADEFZGZAHIZAAJIZKLZMIZNUJUMUPRUKAOPULUONCUPNCULUOULAUJUKQZ
    SZULUOURULAUQTULAUNUQULAUQUAUJUKUBZULAUQUSUHUCUDUEUOUFUIUG $.

  $( The absolute value of a number is apart from zero iff the number is apart
     from zero.  (Contributed by Jim Kingdon, 11-Aug-2021.) $)
  abs00ap $p |- ( A e. CC -> ( ( abs ` A ) # 0 <-> A # 0 ) ) $=
    ( cc wcel cfv cc0 cap wbr co caddc wo c2 csqrt breq1d breq2i syl6bbr cr cle
    cexp wb recnd cabs cre ci cim cmul absval2 sqrt0 recl resqcld imcl readdcld
    sqge0d addge0d 0red leidd sqrt11ap syl22anc bitrd 00id wi addext sylbid 2nn
    0cnd cn expap0 sylancl orbi12d sylibd crap0 syl2anc replim absrpclap rpap0d
    sylibrd wa ex impbid ) ABCZAUADZEFGZAEFGZVSWAAUBDZUCAUDDZUEHIHZEFGZWBVSWAWC
    EFGZWDEFGZJZWFVSWAWCKRHZEFGZWDKRHZEFGZJZWIVSWAWJWLIHZEEIHZFGZWNVSWAWOEFGZWQ
    VSWAWOLDZELDZFGZWRVSWAWSEFGXAVSVTWSEFAUFMWTEWSFUGNOVSWOPCEWOQGEPCEEQGXAWRSV
    SWJWLVSWCAUHZUIZVSWDAUJZUIZUKVSWJWLXCXEVSWCXBULVSWDXDULUMVSUNZVSEXFUOWOEUPU
    QURWPEWOFUSNOVSWJBCWLBCEBCZXGWQWNUTVSWJXCTVSWLXETVSVDZXHWJWLEEVAUQVBVSWKWGW
    MWHVSWCBCKVECZWKWGSVSWCXBTVCWCKVFVGVSWDBCXIWMWHSVSWDXDTVCWDKVFVGVHVIVSWCPCW
    DPCWIWFSXBXDWCWDVJVKVIVSAWEEFAVLMVOVSWBWAVSWBVPVTAVMVNVQVR $.

  $( Strong extensionality for absolute value.  (Contributed by Jim Kingdon,
     12-Aug-2021.) $)
  absext $p |- ( ( A e. CC /\ B e. CC ) ->
      ( ( abs ` A ) # ( abs ` B ) -> A # B ) ) $=
    ( cc wcel cfv cap cmul co caddc wo c2 cexp cr resqcld sqge0d syl22anc recnd
    wbr wi sqvald wa cabs cre ci cim csqrt absval2 breqan12d cc0 wb simpl recld
    cle imcld readdcld addge0d simpr sqrt11ap bitrd addext sylbid breq12d oridm
    mulext syl6ib orim12d syld apreim sylibrd replimd ) ACDZBCDZUAZAUBEZBUBEZFR
    ZAUCEZUDAUEEZGHIHZBUCEZUDBUEEZGHIHZFRZABFRVMVPVQVTFRZVRWAFRZJZWCVMVPVQKLHZV
    TKLHZFRZVRKLHZWAKLHZFRZJZWFVMVPWGWJIHZWHWKIHZFRZWMVMVPWNUFEZWOUFEZFRZWPVKVL
    VNWQVOWRFAUGBUGUHVMWNMDUIWNUMRWOMDUIWOUMRWSWPUJVMWGWJVMVQVMAVKVLUKZULZNZVMV
    RVMAWTUNZNZUOVMWGWJXBXDVMVQXAOVMVRXCOUPVMWHWKVMVTVMBVKVLUQZULZNZVMWAVMBXEUN
    ZNZUOVMWHWKXGXIVMVTXFOVMWAXHOUPWNWOURPUSVMWGCDWJCDWHCDWKCDWPWMSVMWGXBQVMWJX
    DQVMWHXGQVMWKXIQWGWJWHWKUTPVAVMWIWDWLWEVMWIWDWDJZWDVMWIVQVQGHZVTVTGHZFRZXJV
    MWGXKWHXLFVMVQVMVQXAQZTVMVTVMVTXFQZTVBVMVQCDZXPVTCDZXQXMXJSXNXNXOXOVQVQVTVT
    VDPVAWDVCVEVMWLWEWEJZWEVMWLVRVRGHZWAWAGHZFRZXRVMWJXSWKXTFVMVRVMVRXCQZTVMWAV
    MWAXHQZTVBVMVRCDZYDWACDZYEYAXRSYBYBYCYCVRVRWAWAVDPVAWEVCVEVFVGVMVQMDVRMDVTM
    DWAMDWCWFUJXAXCXFXHVQVRVTWAVHPVIVMAVSBWBFVMAWTVJVMBXEVJVBVI $.

  $( The absolute value of a number is zero iff the number is zero.  Also see
     ~ abs00ap which is similar but for apartness.  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 cap wbr wn abs00ap notbid wb abscl recnd 0cn sylancl
    wceq apti mpan2 3bitr4d ) ABCZADEZFGHZIZAFGHZIZUBFQZAFQZUAUCUEAJKUAUBBCFBCZ
    UGUDLUAUBAMNOUBFRPUAUIUHUFLOAFRST $.

  ${
    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.  (Contributed
       by David Moews, 28-Feb-2017.) $)
    abs00bd $p |- ( ph -> ( abs ` A ) = 0 ) $=
      ( cc0 wceq cabs cfv fveq2 abs0 syl6eq syl ) ABDEZBFGZDECLMDFGDBDFHIJK $.
  $}

  $( 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 Jim Kingdon,
     11-Aug-2021.) $)
  absdivap $p |- ( ( A e. CC /\ B e. CC /\ B # 0 ) ->
      ( abs ` ( A / B ) ) = ( ( abs ` A ) / ( abs ` B ) ) ) $=
    ( cc wcel cc0 cap wbr w3a cdiv co cabs cfv cmul divclap abscl syl recnd crp
    cr eqtr3d absrpclap 3adant1 rpcnd rpap0d divcanap4d simp2 syl2anc divcanap1
    wceq absmul fveq2d oveq1d ) ACDZBCDZBEFGZHZABIJZKLZBKLZMJZUSIJURAKLZUSIJUPU
    RUSUPURUPUQCDZURSDABNZUQOPQUPUSUNUOUSRDUMBUAUBZUCUPUSVDUDUEUPUTVAUSIUPUQBMJ
    ZKLZUTVAUPVBUNVFUTUIVCUMUNUOUFUQBUJUGUPVEAKABUHUKTULT $.

  $( 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 clt wn wa cc0 wfal simpr cc recn ad2antrr lenltd
    syl 0red pm2.21fal absge0 abscl mpbid wceq simpll ltled absid syl2anc ltnrd
    simplr eqbrtrrd wo wi 0re axltwlin mp3an3 mpancom imp mpjaodan inegd mpbird
    id ) ABCZAADEZFGVDAHGZIVCVEVCVEJZVDKHGZLKAHGZVFVGJZVGVFVGMVIKVDFGZVGIVCVJVE
    VGVCANCZVJAOZAUARPVIKVDVISVCVDBCZVEVGVCVKVMVLAUBRZPQUCTVFVHJZAAHGVOVDAAHVOV
    CKAFGVDAUDVCVEVHUEZVOKAVOSVPVFVHMUFAUGUHVCVEVHUJUKVOAVPUITVCVEVGVHULZVMVCVE
    VQUMZVNVMVCKBCVRUNVDAKUOUPUQURUSUTVCAVDVCVBVNQVA $.

  $( The absolute value of a rational number is either that number or its
     negative.  (Contributed by Jim Kingdon, 8-Nov-2021.) $)
  qabsor $p |- ( A e. QQ -> ( ( abs ` A ) = A \/ ( abs ` A ) = -u A ) ) $=
    ( cq wcel cr cc0 cle wbr wo cabs cfv wceq cneg qre cz 0z ax-mp qletric mpan
    zq ex absid absnid orim12d sylc ) ABCZADCZEAFGZAEFGZHZAIJZAKZUJALKZHAMEBCZU
    EUIENCUMOESPEAQRUFUGUKUHULUFUGUKAUATUFUHULAUBTUCUD $.

  ${
    qabsord.1 $e |- ( ph -> A e. QQ ) $.
    $( The absolute value of a rational number is either that number or its
       negative.  (Contributed by Jim Kingdon, 8-Nov-2021.) $)
    qabsord $p |- ( ph -> ( ( abs ` A ) = A \/ ( abs ` A ) = -u A ) ) $=
      ( cq wcel cabs cfv wceq cneg wo qabsor syl ) ABDEBFGZBHMBIHJCBKL $.
  $}

  $( 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
    $.

  ${
    $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 Jim Kingdon,
     11-Aug-2021.) $)
  absexpzap $p |- ( ( A e. CC /\ A # 0 /\ N e. ZZ ) ->
      ( abs ` ( A ^ N ) ) = ( ( abs ` A ) ^ N ) ) $=
    ( cz wcel cc cc0 cap wbr cn0 cr wa cexp co cabs cfv wceq absexp ex c1 cdiv
    cneg cn wo elznn0nn adantr 1cnd simpll nnnn0 ad2antll expcld simplr expap0d
    wi absdivap syl3anc abs1 oveq1i syl2anc oveq2d syl5eq eqtrd simprl expineg2
    nnz recnd syl22anc fveq2d abscl ad2antrr abs00ap mpbird 3eqtr4d jaod 3impia
    wb syl3an3b ) BCDAEDZAFGHZBIDZBJDZBUAZUBDZKZUCZABLMZNOZANOZBLMZPZBUDVQVRWDW
    IVQVRKZVSWIWCVQVSWIUMVRVQVSWIABQRUEWJWCWIWJWCKZSAWALMZTMZNOZSWGWALMZTMZWFWH
    WKWNSNOZWLNOZTMZWPWKSEDWLEDWLFGHWNWSPWKUFWKAWAVQVRWCUGZWBWAIDZWJVTWAUHUIZUJ
    WKAWAWTVQVRWCUKZWBWACDWJVTWAVDUIULSWLUNUOWKWSSWRTMWPWQSWRTUPUQWKWRWOSTWKVQX
    AWRWOPWTXBAWAQURUSUTVAWKWEWMNWKVQVRBEDZXAWEWMPWTXCWKBWJVTWBVBVEZXBABVCVFVGW
    KWGEDWGFGHZXDXAWHWPPWKWGVQWGJDVRWCAVHVIVEWKXFVRXCVQXFVRVOVRWCAVJVIVKXEXBWGB
    VCVFVLRVMVNVP $.

  $( 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 absolute value of an integer is a nonnegative integer.  (Contributed
     by NM, 27-Feb-2005.) $)
  nn0abscl $p |- ( A e. ZZ -> ( abs ` A ) e. NN0 ) $=
    ( cz wcel cc0 cle wbr cabs cfv cn0 wa cneg cr wceq zre absnid sylan znegcld
    simpl elnn0z eqeltrd simpr le0neg1d mpbid sylanbrc absid biimpri wo zletric
    adantr 0z mpan2 mpjaodan ) ABCZADEFZAGHZICDAEFZUMUNJZUOAKZIUMALCZUNUOURMANZ
    AOPUQURBCDUREFZURICUQAUMUNRQUQUNVAUMUNUAUQAUMUSUNUTUIUBUCURSUDTUMUPJZUOAIUM
    USUPUOAMUTAUEPAICVBASUFTUMDBCUNUPUGUJADUHUKUL $.

  $( 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 $.

  $( A number which is less than its absolute value is negative.  (Contributed
     by Jim Kingdon, 12-Aug-2021.) $)
  ltabs $p |- ( ( A e. RR /\ A < ( abs ` A ) ) -> A < 0 ) $=
    ( cr wcel cabs cfv clt wbr wa cc0 simpr simpllr cle simpll adantr cap wo wb
    wceq mpbid 0re 0red ltled absid syl2anc breqtrd ltnrd pm2.65da cc abscl syl
    recn ad2antrr gt0ap0d abs00ap 3syl reaplt sylancl ecased wi axltwlin mp3an3
    mpdan imp mpjaodan ) ABCZAADEZFGZHZAIFGZVIIVFFGZVHVIJVHVJHZVIIAFGZVKVLAAFGV
    KVLHZAVFAFVEVGVJVLKVMVEIALGVFARVKVEVLVEVGVJMZNZVMIAVMUAVOVKVLJUBAUCUDUEVMAV
    OUFUGVKAIOGZVIVLPZVKVFIOGZVPVKVFVEVFBCZVGVJVEAUHCZVSAUKZAUIUJZULVHVJJUMVKVE
    VTVRVPQVNWAAUNUOSVKVEIBCZVPVQQVNTAIUPUQSURVEVGVIVJPZVEVSVGWDUSZWBVEVSWCWETA
    VFIUTVAVBVCVD $.

  $( 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 cabs cfv clt wbr cneg simpll renegcld recnd syl simplr leabs wceq
    wa cle simpr cc0 abscl absneg breqtrd lelttrd ad2antrr jca simpl 0red ltabs
    cc ltled le0neg1d mpbid absid syl2anc eqtr3d sylan simplrl eqbrtrd axltwlin
    wo simprr wi syl3anc mpd mpjaodan impbida ltnegcon1 anbi1d bitrd ) ACDZBCDZ
    QZAEFZBGHZAIZBGHZABGHZQZBIAGHZVRQVMVOVSVMVOQZVQVRWAVPVNBWAAVKVLVOJZKZWAAUJD
    ZVNCDZWAAWBLZAUAZMZVKVLVONZWAVPVPEFZVNRWAVPCDZVPWJRHWCVPOMWAWDWJVNPZWFAUBZM
    UCVMVOSZUDWAAVNBWBWHWIVKAVNRHVLVOAOUEWNUDUFVMVSQZAVNGHZVOVOWOWPQVNVPBGWOVKW
    PVNVPPVKVLVSJZVKWPQZWJVNVPWRWDWLWRAVKWPUGZLWMMWRWKTVPRHZWJVPPWRAWSKWRATRHWT
    WRATWSWRUHAUIUKWRAWSULUMVPUNUOUPUQVMVQVRWPURUSWOVOSWOVRWPVOVAZVMVQVRVBWOVKV
    LWEVRXAVCWQVKVLVSNWOWDWEWOAWQLWGMABVNUTVDVEVFVGVMVQVTVRABVHVIVJ $.

  $( 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 cabs cfv cle wbr cneg simpll renegcld recnd syl simplr leabs wceq
    wa letrd clt cc0 cc abscl absneg breqtrd simpr ad2antrr wn axltwlin syl3anc
    jca wo wi simprr lenltd mpbid pm2.53 syl6ci simpl 0red ltabs ltled le0neg1d
    absid syl2anc eqtr3d syl6an simprl syl5ibrcom sylibd pm2.01d mpbird impbida
    breq1 syld lenegcon1 anbi1d bitrd ) ACDZBCDZQZAEFZBGHZAIZBGHZABGHZQZBIAGHZW
    EQVTWBWFVTWBQZWDWEWHWCWABWHAVRVSWBJZKZWHAUADZWACDZWHAWILZAUBZMZVRVSWBNZWHWC
    WCEFZWAGWHWCCDZWCWQGHWJWCOMWHWKWQWAPZWMAUCZMUDVTWBUEZRWHAWABWIWOWPVRAWAGHVS
    WBAOUFXARUJVTWFQZWBBWASHZUGZXBXCXBXCWBXDXBXCWAWCPZWBXBVRXCAWASHZXEVRVSWFJZX
    BXCBASHZXFUKZXHUGZXFXBVSWLVRXCXIULVRVSWFNZXBWKWLXBAXGLWNMZXGBWAAUHUIXBWEXJV
    TWDWEUMXBABXGXKUNUOXHXFUPUQVRXFQZWQWAWCXMWKWSXMAVRXFURZLWTMXMWRTWCGHZWQWCPX
    MAXNKXMATGHXOXMATXNXMUSAUTVAXMAXNVBUOWCVCVDVEVFXBWBXEWDVTWDWEVGWAWCBGVMVHVN
    XBWABXLXKUNZVIVJXPVKVLVTWDWGWEABVOVPVQ $.

  $( If the absolute value of a complex number is less than a real, its
     difference from the real is apart from zero.  (Contributed by Jim Kingdon,
     12-Aug-2021.) $)
  abssubap0 $p |- ( ( A e. CC /\ B e. RR /\ ( abs ` A ) < B ) ->
      ( B - A ) # 0 ) $=
    ( cc wcel cr cabs cfv clt wbr cmin co cc0 cap simplr recnd simpll abscl syl
    wa simpr cle leabs ltletrd gtapd wi absext syl2anc mpd subap0d 3impa ) ACDZ
    BEDZAFGZBHIZBAJKLMIUKULSZUNSZBAUPBUKULUNNZOZUKULUNPZUPBFGZUMMIZBAMIZUPUMUTU
    PUKUMEDUSAQRZUPBCDZUTEDURBQRZUPUMBUTVCUQVEUOUNTUPULBUTUAIUQBUBRUCUDUPVDUKVA
    VBUEURUSBAUFUGUHUIUJ $.

  $( If the absolute value of a complex number is less than a real, its
     difference from the real is nonzero.  See also ~ abssubap0 which is the
     same with not equal changed to apart.  (Contributed by NM, 2-Nov-2007.) $)
  abssubne0 $p |- ( ( A e. CC /\ B e. RR /\ ( abs ` A ) < B ) ->
                   ( B - A ) =/= 0 ) $=
    ( cc wcel cr cabs cfv clt wbr w3a cmin co cc0 cap wne abssubap0 simp2 recnd
    wi simp1 subcld 0cnd apne syl2anc mpd ) ACDZBEDZAFGBHIZJZBAKLZMNIZUJMOZABPU
    IUJCDMCDUKULSUIBAUIBUFUGUHQRUFUGUHTUAUIUBUJMUCUDUE $.

  $( 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 Jim
     Kingdon, 13-Aug-2021.) $)
  recvalap $p |- ( ( A e. CC /\ A # 0 ) ->
      ( 1 / A ) = ( ( * ` A ) / ( ( abs ` A ) ^ 2 ) ) ) $=
    ( cc wcel cc0 cap wbr wa c1 cabs cfv c2 cexp ccj cdiv wceq cmul cjcl adantr
    co mpbird simpl absvalsq eqtr4d cr abscl recnd sqcld cjap0 biimpa divmulapd
    mulcomd oveq2d abs00ap biimpar wb sqap0 syl recdivapd eqtr3d ) ABCZADEFZGZH
    AIJZKLSZAMJZNSZNSHANSVEVDNSVBVFAHNVBVFAOVEAPSZVDOVBVGAVEPSZVDVBVEAUTVEBCVAA
    QRZUTVAUAZUKUTVDVHOVAAUBRUCVBVDVEAVBVCVBVCUTVCUDCVAAUERUFZUGZVIVJUTVAVEDEFA
    UHUIZUJTULVBVDVEVLVIVBVDDEFZVCDEFZUTVOVAAUMUNVBVCBCVNVOUOVKVCUPUQTVMURUS $.

  $( 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 number apart from zero is positive.  (Contributed
     by Jim Kingdon, 13-Aug-2021.) $)
  absgt0ap $p |- ( A e. CC -> ( A # 0 <-> 0 < ( abs ` A ) ) ) $=
    ( cc wcel cc0 cabs cfv clt wbr cap 0red abscl absge0 leltapd abs00ap bitr2d
    ) ABCZDAEFZGHQDIHADIHPDQPJAKALMANO $.

  $( 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 wb 0z zapne mpan2 cc
    cap zcn absgt0ap syl bitr3d biimpa elnnz sylanbrc ) ABCZADEZFAGHZBCZDUIIJZU
    IKCUGUJUHALMUGUHUKUGADSJZUHUKUGDBCULUHNOADPQUGARCULUKNATAUAUBUCUDUIUEUF $.

  $( 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 $.

  $( 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 $.  $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 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 cfv cc0 cc elfzoelz syl2an fzomaxdiflem
    zcnd cz wceq abssub adantr eqeltrd ancom1s wo zletric mpjaodan ) ACDEFZGZBU
    IGZHZABIJZABKFLMZNDCKFEFZGZBAIJZULUMHUNBAKFLMZUOULUNURUAZUMUJAOGBOGUSUKUJAA
    CDPZSUKBBCDPZSABUBQUCABCDRUDUKUJUQUPBACDRUEUJATGBTGUMUQUFUKUTVAABUGQUH $.

  ${
    $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 x y F $.  $d j k x M $.  $d j k x N $.  $d j k x y 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 $.
  $}

  $( 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 resqrtth oveq2d syl5eq eqtrd sqge0d binom2 binom2sub oveq12d resqcld
    resubcld 2re readdcld pnpcan2d 2timesd 2t2e4 mulassd syl5eqr pnncand 3eqtrd
    2cnd 3eqtr4rd wb 4re subsub23 syl3anc breqtrrd subge0d eqbrtrd sqrtge0 0le2
    mpbid mpanl12 addge0 an4s le2sqd mpbird clt 2pos pm3.2i a1i lemuldiv2 ) ACD
    ZEAFSZGZBCDZEBFSZGZGZHABIJZUAUBZIJZABKJZFSZXBXDHUCJFSZWTXEXCHLJZXDHLJZFSWTX
    GMXAIJZXHFWTXGHHLJZXBHLJZIJZXIWTHNDXBNDXGXLOUDWTXBWTXACDZEXAFSZXBCDZWTWNWQX
    MWNWOWSUEZWPWQWRUFZABPQZABUGZXAUHQZRHXBUIUJWTXLMXKIJXIXJMXKIUKULWTXKXAMIWTX
    MXNXKXAOXRXSXAUMQUNUOUPWTEXHXITJZFSXIXHFSWTEABTJZHLJZYAFWTYBWTABXPXQVBZUQWT
    XHYCTJZXIOZYAYCOZWTYEAHLJZHXAIJZKJZBHLJZKJZYHYITJZYKKJZTJYJYMTJZXIWTXHYLYCY
    NTWTANDZBNDZXHYLOWTAXPRZWTBXQRZABURQWTYPYQYCYNOYRYSABUSQUTWTYJYMYKWTYJWTYHY
    IWTAXPVAZWTHCDZXMYICDVCXRHXAPUJZVDRWTYMWTYHYIYTUUBVBRWTYKWTBXQVARVEWTHYIIJZ
    YIYIKJXIYOWTYIWTYIUUBRZVFWTXIHHIJZXAIJUUCUUEMXAIVGULWTHHXAWTVLZUUFWTXAXRRVH
    VIWTYHYIYIWTYHYTRUUDUUDVJVMVKWTXHNDYCNDXINDYFYGVNWTXHWTXDWTABXPXQVDZVAZRWTY
    CWTYBYDVARWTXIWTMCDXMXICDVOXRMXAPUJZRXHYCXIVPVQWCVRWTXHXIUUHUUIVSWCVTWTXCXD
    WTUUAXOXCCDVCXTHXBPUJUUGWTXOEXBFSZEXCFSZXTWTXMXNUUJXRXSXAWAQUUAEHFSXOUUJGUU
    KVCWBHXBUGWDQWNWQWOWREXDFSABWEWFWGWHWTXOXDCDUUAEHWISZGZXEXFVNXTUUGUUMWTUUAU
    ULVCWJWKWLXBXDHWMVQWC $.

  ${
    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 $.

    $( 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.) $)
    absgt0api $p |- ( A # 0 <-> 0 < ( abs ` A ) ) $=
      ( cc wcel cc0 cap wbr cabs cfv clt wb absgt0ap ax-mp ) ACDAEFGEAHIJGKBALM
      $.

    $( 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 Jim Kingdon,
       13-Aug-2021.) $)
    absdivapzi $p |- ( B # 0 ->
        ( abs ` ( A / B ) ) = ( ( abs ` A ) / ( abs ` B ) ) ) $=
      ( cc wcel cc0 cap wbr cdiv co cabs cfv wceq absdivap mp3an12 ) AEFBEFBGHI
      ABJKLMALMBLMJKNCDABOP $.

    $( 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 ) $=
      ( cc wcel cr cmin co cabs cfv c2 cdiv clt wbr wa wi abs3lem mp4an ) AIJBI
      JCIJDKJACLMNODPQMZRSCBLMNOUDRSTABLMNODRSUAEFGHABCDUBUC $.
  $}

  ${
    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 $.

    $( 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 $.

    $( 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 $.

    $( 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 $.
    $}

    ${
      absrpclapd.2 $e |- ( ph -> A # 0 ) $.
      $( The absolute value of a complex number apart from zero is a positive
         real.  (Contributed by Jim Kingdon, 13-Aug-2021.) $)
      absrpclapd $p |- ( ph -> ( abs ` A ) e. RR+ ) $=
        ( cc wcel cc0 cap wbr cabs cfv crp absrpclap syl2anc ) ABEFBGHIBJKLFCDB
        MN $.
    $}

    $( 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 $.

    ${
      absdivapd.2 $e |- ( ph -> B # 0 ) $.
      $( Absolute value distributes over division.  (Contributed by Jim
         Kingdon, 13-Aug-2021.) $)
      absdivapd $p |- ( ph ->
          ( abs ` ( A / B ) ) = ( ( abs ` A ) / ( abs ` B ) ) ) $=
        ( cc wcel cc0 cap wbr cdiv co cabs cfv wceq absdivap syl3anc ) ABGHCGHC
        IJKBCLMNOBNOCNOLMPDEFBCQR $.
    $}

    $( 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 $.
  $}

  ${
    $d A x $.  $d B x $.
    $( The rational numbers are dense in ` RR ` : any real number can be
       approximated with arbitrary precision by a rational number.  For order
       theoretic density, see ~ qbtwnre .  (Contributed by BJ, 15-Oct-2021.) $)
    qdenre $p |-
           ( ( A e. RR /\ B e. RR+ ) -> E. x e. QQ ( abs ` ( x - A ) ) < B ) $=
      ( cr wcel crp wa cmin co caddc clt wbr w3a cv cabs cfv wrex simpl adantl
      cq rpre resubcld readdcld ltsubrp ltaddrp lttrd 3jca qbtwnre qre ad2antlr
      wi simpll absdiflt biimprd syl3anc reximdva syl5 mpd ) BDEZCFEZGZBCHIZDEZ
      BCJIZDEZVBVDKLZMZANZBHIOPCKLZATQZVAVCVEVFVABCUSUTRZUTCDEZUSCUAZSZUBZVABCV
      KVNUCZVAVBBVDVOVKVPBCUDBCUEUFUGVGVBVHKLVHVDKLGZATQVAVJAVBVDUHVAVQVIATVAVH
      TEZGVHDEZUSVLVQVIUKVRVSVAVHUISUSUTVRULUTVLUSVRVMUJVSUSVLMVIVQVHBCUMUNUOUP
      UQUR $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The maximum of two real numbers
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( The maximum of two reals is commutative.  Lemma 3.9 of [Geuvers], p. 10.
     (Contributed by Jim Kingdon, 21-Dec-2021.) $)
  maxcom $p |- sup ( { A , B } , RR , < ) = sup ( { B , A } , RR , < ) $=
    ( cr cpr clt prcom supeq1i ) CABDBADEABFG $.

  $( An upper bound for ` { A , B } ` .  (Contributed by Jim Kingdon,
     20-Dec-2021.) $)
  maxabsle $p |- ( ( A e. RR /\ B e. RR ) ->
      A <_ ( ( ( A + B ) + ( abs ` ( A - B ) ) ) / 2 ) ) $=
    ( cr wcel wa c2 cmul caddc cmin cabs cfv cle cdiv simpl recnd 2timesd simpr
    co wbr ppncand eqtr4d resubcl readdcl leadd2dd eqbrtrd readdcld crp 2rp a1i
    abscld leabsd lemuldiv2d mpbid ) ACDZBCDZEZFAGRZABHRZABIRZJKZHRZLSAVAFMRLSU
    PUQURUSHRZVALUPUQAAHRVBUPAUPAUNUONZOZPUPABAVDUPBUNUOQOVDTUAUPUSUTURABUBZUPU
    SUPUSVEOUJZABUCZUPUSVEUKUDUEUPAVAFVCUPURUTVGVFUFFUGDUPUHUIULUM $.

  ${
    $d A f g y $.  $d B f g y $.
    $( Value of maximum when we know which number is larger.  (Contributed by
       Jim Kingdon, 21-Dec-2021.) $)
    maxleim $p |- ( ( A e. RR /\ B e. RR ) ->
        ( A <_ B -> sup ( { A , B } , RR , < ) = B ) ) $=
      ( vy vg vf cr wcel wa cle wbr clt wceq cv wn adantl ad2antrr breq2 notbid
      wb mpbird cpr lttri3 simplr prid2g syl simpll simpllr lensymd ltnrd elpri
      csup wo mpjaodan supmaxti ex ) AFGZBFGZHZABIJZABUAZFKUKBLURUSHZCDEFUTBKEM
      ZFGDMZFGHVBVCLVBVCKJNVCVBKJNHSVAVBVCUBOUPUQUSUCZVAUQBUTGVDABFUDUEVACMZUTG
      ZHZVEALZBVEKJZNZVEBLZVGVHHZVJBAKJZNZVLABVAUPVFVHUPUQUSUFPVAUQVFVHVDPURUSV
      FVHUGUHVHVJVNSVGVHVIVMVEABKQROTVGVKHZVJBBKJZNZVOBVAUQVFVKVDPUIVKVJVQSVGVK
      VIVPVEBBKQROTVFVHVKULVAVEABUJOUMUNUO $.
  $}

  ${
    maxabslemab.a $e |- ( ph -> A e. RR ) $.
    maxabslemab.b $e |- ( ph -> B e. RR ) $.
    maxabslemab.ab $e |- ( ph -> A < B ) $.
    $( Lemma for ~ maxabs .  A variation of ~ maxleim - that is, if we know
       which of two real numbers is larger, we know the maximum of the two.
       (Contributed by Jim Kingdon, 21-Dec-2021.) $)
    maxabslemab $p |- ( ph ->
        ( ( ( A + B ) + ( abs ` ( A - B ) ) ) / 2 ) = B ) $=
      ( caddc co cmin cabs c2 cdiv wceq cmul recnd ppncand addcomd ltled addcld
      cfv abssuble0d oveq12d 2timesd 3eqtr4rd resubcld eqeltrd 2cnd cc0 cap wbr
      cr 2ap0 a1i divmulapd mpbird ) ABCGHZBCIHJTZGHZKLHCMKCNHZURMACBGHZCBIHZGH
      CCGHURUSACBCACEOZABDOZVBPAUPUTUQVAGABCVCVBQABCDEABCDEFRUAZUBACVBUCUDAURKC
      AUPUQABCVCVBSAUQAUQVAUKVDACBEDUEUFOSAUGVBKUHUIUJAULUMUNUO $.
  $}

  ${
    maxabslemlub.a $e |- ( ph -> A e. RR ) $.
    maxabslemlub.b $e |- ( ph -> B e. RR ) $.
    maxabslemlub.c $e |- ( ph -> C e. RR ) $.
    maxabslemlub.clt $e |- ( ph ->
      C < ( ( ( A + B ) + ( abs ` ( A - B ) ) ) / 2 ) ) $.
    $( Lemma for ~ maxabs .  A least upper bound for ` { A , B } ` .
       (Contributed by Jim Kingdon, 20-Dec-2021.) $)
    maxabslemlub $p |- ( ph -> ( C < A \/ C < B ) ) $=
      ( clt wbr caddc co cmin c2 cr wcel recnd adantr cmul c1 cabs cfv readdcld
      cdiv wo subcld abscld rehalfcld axltwlin syl3anc mpd cc0 resubcld 2re a1i
      wi wa remulcld subsub4d 2cnd mulsubfacd 2m1e1 oveq1i syl6eq mulid2d eqtrd
      oveq1d eqtr3d simpr crp 2rp ltmuldiv2d mpbird ltsubadd2d eqbrtrrd syl2anc
      cc ltabs sublt0d mpbid maxabslemab breqtrd ex orim2d ) ADBIJZBBCKLZBCMLZU
      AUBZKLZNUDLZIJZUEZWEDCIJZUEADWJIJZWLHADOPWJOPBOPZWNWLUPGAWIAWFWHABCEFUCZA
      WGABCABEQZACFQZUFUGZUCZUHEDWJBUIUJUKAWKWMWEAWKWMAWKUQZDWJCIAWNWKHRXABCAWO
      WKERZACOPWKFRZXAWGULIJZBCIJXAWGOPWGWHIJXDXABCXBXCUMXANBSLZWFMLZWGWHIXAXEB
      MLZCMLXFWGXAXEBCXAXEXANBNOPXAUNUOXBURZQABVQPWKWQRZACVQPWKWRRUSXAXGBCMXAXG
      TBSLZBXAXGNTMLZBSLXJXANBXAUTXIVAXKTBSVBVCVDXABXIVEVFVGVHXAXFWHIJXEWIIJZXA
      XLWKAWKVIXABWINXBAWIOPWKWTRNVJPXAVKUOVLVMXAXEWFWHXHAWFOPWKWPRAWHOPWKWSRVN
      VMVOWGVRVPXABCXBXCVSVTWAWBWCWDUK $.
  $}

  ${
    $d A u v x z $.  $d B u v x z $.
    $( Lemma for ~ maxabs .  Value of the supremum.  (Contributed by Jim
       Kingdon, 22-Dec-2021.) $)
    maxabslemval $p |- ( ( A e. RR /\ B e. RR ) ->
        ( ( ( ( A + B ) + ( abs ` ( A - B ) ) ) / 2 ) e. RR /\
        A. x e. { A , B } -. ( ( ( A + B ) + ( abs ` ( A - B ) ) ) / 2 ) < x /\
        A. x e. RR ( x < ( ( ( A + B ) + ( abs ` ( A - B ) ) ) / 2 ) ->
        E. z e. { A , B } x < z ) ) ) $=
      ( cr wcel wa caddc co cmin cabs cfv c2 cdiv cv clt wbr wn wral breq2 wrex
      cpr wi readdcl simpl recnd simpr subcld abscld readdcld rehalfcld wceq wo
      vex maxabsle lensymd notbid syl5ibrcom cle ancoms addcomd abssubd oveq12d
      elpr oveq1d breqtrd syl5bi ralrimiv prid1g ad4antr rspcev sylancom prid2g
      jaod ad4antlr ad2antrr simplr maxabslemlub mpjaodan ex ralrimiva 3jca ) C
      EFZDEFZGZCDHIZCDJIZKLZHIZMNIZEFWJAOZPQZRZACDUBZSWKWJPQZWKBOZPQZBWNUAZUCZA
      ESWEWIWEWFWHCDUDWEWGWECDWECWCWDUEZUFZWEDWCWDUGZUFZUHUIUJUKZWEWMAWNWKWNFWK
      CULZWKDULZUMWEWMWKCDAUNVDWEXEWMXFWEWMXEWJCPQZRWECWJWTXDCDUOUPXEWLXGWKCWJP
      TUQURWEWMXFWJDPQZRWEDWJXBXDWEDDCHIZDCJIKLZHIZMNIZWJUSWDWCDXLUSQDCUOUTWEXK
      WIMNWEXIWFXJWHHWEDCXCXAVAWEDCXCXAVBVCVEVFUPXFWLXHWKDWJPTUQURVNVGVHWEWSAEW
      EWKEFZGZWOWRXNWOGZWKCPQZWRWKDPQZXOXPCWNFZWRWCXRWDXMWOXPCDEVIVJWQXPBCWNWPC
      WKPTVKVLXOXQDWNFZWRWDXSWCXMWOXQCDEVMVOWQXQBDWNWPDWKPTVKVLXOCDWKWEWCXMWOWT
      VPWEWDXMWOXBVPWEXMWOVQXNWOUGVRVSVTWAWB $.
  $}

  ${
    $d A u v x z $.  $d B u v x z $.
    $( Maximum of two real numbers in terms of absolute value.  (Contributed by
       Jim Kingdon, 20-Dec-2021.) $)
    maxabs $p |- ( ( A e. RR /\ B e. RR ) ->
        sup ( { A , B } , RR , < ) =
        ( ( ( A + B ) + ( abs ` ( A - B ) ) ) / 2 ) ) $=
      ( vx vz vv vu cr wcel wa caddc co cmin cabs cfv cv clt wbr wn wral wceq
      c2 cdiv cpr wrex wi w3a csup maxabslemval wb lttri3 adantl eqsupti mpd )
      AGHBGHIZABJKABLKMNJKUAUBKZGHUOCOZPQRCABUCZSUPUOPQUPDOPQDUQUDUECGSUFUQGPUG
      UOTCDABUHUNCDEFGUQUOPFOZGHEOZGHIURUSTURUSPQRUSURPQRIUIUNURUSUJUKULUM $.
  $}

  $( The maximum of two real numbers is a real number.  (Contributed by Jim
     Kingdon, 22-Dec-2021.) $)
  maxcl $p |- ( ( A e. RR /\ B e. RR ) -> sup ( { A , B } , RR , < ) e. RR ) $=
    ( cr wcel wa cpr clt csup caddc co cmin cabs cfv c2 cdiv maxabs simpl recnd
    readdcl simpr subcld abscld readdcld rehalfcld eqeltrd ) ACDZBCDZEZABFCGHAB
    IJZABKJZLMZIJZNOJCABPUHULUHUIUKABSUHUJUHABUHAUFUGQRUHBUFUGTRUAUBUCUDUE $.

  $( The maximum of two reals is no smaller than the first real.  Lemma 3.10 of
     [Geuvers], p. 10.  (Contributed by Jim Kingdon, 21-Dec-2021.) $)
  maxle1 $p |- ( ( A e. RR /\ B e. RR ) -> A <_ sup ( { A , B } , RR , < ) ) $=
    ( cr wcel wa caddc co cmin cabs cfv cdiv cpr clt csup cle maxabsle breqtrrd
    c2 maxabs ) ACDBCDEAABFGABHGIJFGRKGABLCMNOABPABSQ $.

  $( The maximum of two reals is no smaller than the second real.  Lemma 3.10
     of [Geuvers], p. 10.  (Contributed by Jim Kingdon, 21-Dec-2021.) $)
  maxle2 $p |- ( ( A e. RR /\ B e. RR ) -> B <_ sup ( { A , B } , RR , < ) ) $=
    ( cr wcel wa cpr clt csup cle wbr maxle1 ancoms maxcom syl6breq ) ACDZBCDZE
    BBAFCGHZABFCGHIPOBQIJBAKLBAMN $.

  ${
    $d A f g x $.  $d A x y z $.  $d B f g x $.  $d B x y z $.  $d C f g x $.
    $d C x z $.
    $( The maximum of two reals is a least upper bound.  Lemma 3.11 of
       [Geuvers], p. 10.  (Contributed by Jim Kingdon, 22-Dec-2021.) $)
    maxleast $p |- ( ( ( A e. RR /\ B e. RR /\ C e. RR ) /\
        ( A <_ C /\ B <_ C ) ) ->
        sup ( { A , B } , RR , < ) <_ C ) $=
      ( vz vx vy vg vf cr wcel cle wbr wa clt wn cv wceq wral wi co w3a csup wo
      cpr ioran wrex simp3 wb lttri3 adantl caddc cmin cabs cfv c2 maxabslemval
      3anass sylib breq1 notbid ralbidv breq2 imbi1d anbi12d rspcev syl 3adant3
      cdiv suplubti mpand elpri adantr biimpcd orim12d mpd rexlimiva syl6 con3d
      syl5bir simp1 lenltd simp2 supclti 3imtr4d imp ) AIJZBIJZCIJZUAZACKLZBCKL
      ZMZABUDZINUBZCKLZWICANLZOZCBNLZOZMZCWNNLZOZWLWOWTWPWRUCZOWIXBWPWRUEWIXAXC
      WIXACDPZNLZDWMUFZXCWIWHXAXFWFWGWHUGZWIEFDGHIWMCNHPZIJGPZIJMXHXIQXHXINLOXI
      XHNLOMUHWIXHXIUIUJZWFWGEPZFPZNLZOZFWMRZXLXKNLZXLXDNLDWMUFZSZFIRZMZEIUFZWH
      WFWGMZABUKTABULTUMUNUKTUOVHTZIJZYCXLNLZOZFWMRZXLYCNLZXQSZFIRZMZMZYAYBYDYG
      YJUAYLFDABUPYDYGYJUQURXTYKEYCIXKYCQZXOYGXSYJYMXNYFFWMYMXMYEXKYCXLNUSUTVAY
      MXRYIFIYMXPYHXQXKYCXLNVBVCVAVDVEVFVGZVIVJXEXCDWMXDWMJZXEMZXDAQZXDBQZUCZXC
      YOYSXEXDABVKVLYPYQWPYRWRXEYQWPSYOYQXEWPXDACNVBVMUJXEYRWRSYOYRXEWRXDBCNVBV
      MUJVNVOVPVQVRVSWIWJWQWKWSWIACWFWGWHVTXGWAWIBCWFWGWHWBXGWAVDWIWNCWIEFDGHIW
      MNXJYNWCXGWAWDWE $.
  $}

  $( Two ways of saying the maximum of two numbers is less than or equal to a
     third.  (Contributed by Jim Kingdon, 31-Jan-2022.) $)
  maxleastb $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
      ( sup ( { A , B } , RR , < ) <_ C <-> ( A <_ C /\ B <_ C ) ) ) $=
    ( cr wcel w3a cpr clt csup cle wa simpl1 simpl2 maxcl syl2anc simpl3 maxle1
    wbr simpr letrd maxle2 jca maxleast impbida ) ADEZBDEZCDEZFZABGDHIZCJRZACJR
    ZBCJRZKUHUJKZUKULUMAUICUEUFUGUJLZUMUEUFUIDEUNUEUFUGUJMZABNOZUEUFUGUJPZUMUEU
    FAUIJRUNUOABQOUHUJSZTUMBUICUOUPUQUMUEUFBUIJRUNUOABUAOURTUBABCUCUD $.

  $( The maximum as a least upper bound, in terms of less than.  (Contributed
     by Jim Kingdon, 9-Feb-2022.) $)
  maxleastlt $p |- ( ( ( A e. RR /\ B e. RR )
      /\ ( C e. RR /\ C < sup ( { A , B } , RR , < ) ) )
      -> ( C < A \/ C < B ) ) $=
    ( cr wcel wa cpr clt csup wbr simpll simplr simprl caddc cmin cabs cfv cdiv
    co c2 simprr wb maxabs breq2d adantr mpbid maxabslemlub ) ADEZBDEZFZCDEZCAB
    GDHIZHJZFZFZABCUHUIUNKUHUIUNLUJUKUMMUOUMCABNSABOSPQNSTRSZHJZUJUKUMUAUJUMUQU
    BUNUJULUPCHABUCUDUEUFUG $.

  $( Equivalence of ` <_ ` and being equal to the maximum of two reals.  Lemma
     3.12 of [Geuvers], p. 10.  (Contributed by Jim Kingdon, 21-Dec-2021.) $)
  maxleb $p |- ( ( A e. RR /\ B e. RR ) ->
      ( A <_ B <-> sup ( { A , B } , RR , < ) = B ) ) $=
    ( cr wcel cle wbr cpr clt csup wceq maxleim maxle1 breq2 syl5ibcom impbid
    wa ) ACDBCDPZABEFZABGCHIZBJZABKQASEFTRABLSBAEMNO $.

  $( Absolute value of a real number in terms of maximum.  Definition 3.13 of
     [Geuvers], p. 11.  (Contributed by BJ and Jim Kingdon, 21-Dec-2021.) $)
  dfabsmax $p |- ( A e. RR -> ( abs ` A ) = sup ( { A , -u A } , RR , < ) ) $=
    ( cr wcel cabs cfv cneg cpr clt csup wceq cle id renegcl maxcl mpdan maxle2
    wbr lenegcon1d maxle1 mpbir2and wa absle recn abscld leabsd absnegd breqtrd
    wb leabs maxleast syl32anc letri3d ) ABCZADEZAAFZGBHIZJUNUPKQZUPUNKQZUMUQUP
    FAKQZAUPKQZUMAUPUMLZUMUOBCZUPBCZAMZAUONOZUMVBUOUPKQVDAUOPORUMVBUTVDAUOSOUMV
    CUQUSUTUAUHVEAUPUBOTUMUMVBUNBCAUNKQUOUNKQURVAVDUMAAUCZUDZAUIUMUOUODEUNKUMUO
    VDUEUMAVFUFUGAUOUNUJUKUMUNUPVGVEULT $.

  $( Two ways of saying the maximum of two numbers is less than a third.
     (Contributed by Jim Kingdon, 10-Feb-2022.) $)
  maxltsup $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
      ( sup ( { A , B } , RR , < ) < C <-> ( A < C /\ B < C ) ) ) $=
    ( cr wcel clt wa simpl1 simpl2 syl2anc simpl3 caddc co cmin c2 cmul eqbrtrd
    wbr recnd mpbird w3a cpr csup maxcl cle maxle1 3adant3 adantr simpr lelttrd
    maxle2 jca cabs cfv cdiv maxabs 2re a1i remulcld addcld negsubdi2d readdcld
    wceq cneg resubcld 2timesd pnncand eqtr4d simprr ltmul2dd eqbrtrrd ltsub23d
    crp 2rp nppcan3d simprl ltaddsubd mpbid absltd ltaddsub2d ltdivmuld impbida
    abscld ) ADEZBDEZCDEZUAZABUBDFUCZCFRZACFRZBCFRZGZWGWIGZWJWKWMAWHCWDWEWFWIHZ
    WMWDWEWHDEWNWDWEWFWIIZABUDJZWDWEWFWIKZWGAWHUERZWIWDWEWRWFABUFUGUHWGWIUIZUJW
    MBWHCWOWPWQWMWDWEBWHUERWNWOABUKJWSUJULWGWLGZWHABLMZABNMZUMUNZLMZOUOMZCFWGWH
    XEVCZWLWDWEXFWFABUPUGUHWTXECFRXDOCPMZFRZWTXHXCXGXANMZFRZWTXJXIVDZXBFRZXBXIF
    RZGWTXLXMWTXKXAXGNMXBFWTXGXAWTXGWTOCODEWTUQURWDWEWFWLKZUSZSWTABWTAWDWEWFWLH
    ZSZWTBWDWEWFWLIZSZUTVAWTXAXBXGWTABXPXRVBZWTABXPXRVEZXOWTOBPMZXAXBNMZXGFWTYB
    BBLMYCWTBXSVFWTABBXQXSXSVGVHWTBCOXRXNOVMEWTVNURZWGWJWKVIVJVKVLQWTXBXALMZXGF
    RXMWTYEOAPMZXGFWTYEAALMYFWTABAXQXSXQVOWTAXQVFVHWTACOXPXNYDWGWJWKVPVJQWTXBXA
    XGYAXTXOVQVRULWTXBXIYAWTXGXAXOXTVEVSTWTXAXCXGXTWTXBWTXBYASWCZXOVTTWTXDCOWTX
    AXCXTYGVBXNYDWATQWB $.

  $( The sum of the positive and negative part functions is the absolute value
     function over the reals.  (Contributed by Jim Kingdon, 30-Jan-2022.) $)
  max0addsup $p |- ( A e. RR ->
      ( sup ( { A , 0 } , RR , < ) + sup ( { -u A , 0 } , RR , < ) )
      = ( abs ` A ) ) $=
    ( cr wcel cc0 cpr clt csup caddc cabs cfv cdiv cmin wceq 0re oveq12d oveq1d
    co c2 eqtrd addcld cneg maxabs mpan2 addid1d subid1d fveq2d renegcl sylancl
    cmul recn recnd absnegd abscld 2cnd cap wbr 2ap0 a1i divdirapd add4d negidd
    addid2d 3eqtrd 3eqtr2d 2timesd divcanap3d ) ABCZADEBFGZAUAZDEBFGZHQZAIJZVLH
    QZRKQZRVLUIQZRKQVLVGVKAVLHQZRKQZVIVLHQZRKQZHQVPVRHQZRKQVNVGVHVQVJVSHVGVHADH
    QZADLQZIJZHQZRKQZVQVGDBCZVHWEMNADUBUCVGWDVPRKVGWAAWCVLHVGAAUJZUDVGWBAIVGAWG
    UEUFOPSVGVJVIDHQZVIDLQZIJZHQZRKQZVSVGVIBCWFVJWLMAUGZNVIDUBUHVGWKVRRKVGWHVIW
    JVLHVGVIVGVIWMUKZUDVGWJVIIJVLVGWIVIIVGVIWNUEUFVGAWGULSOPSOVGVPVRRVGAVLWGVGV
    LVGAWGUMUKZTVGVIVLWNWOTVGUNZRDUOUPVGUQURZUSVGVTVMRKVGVTAVIHQZVMHQDVMHQVMVGA
    VLVIVLWGWOWNWOUTVGWRDVMHVGAWGVAPVGVMVGVLVLWOWOTVBVCPVDVGVOVMRKVGVLWOVEPVGVL
    RWOWPWQVFVD $.

  ${
    $d j k x y z A $.  $d j x y z ph $.  $d j x y z ps $.
    $( 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 csup
      wss simpl imim2i ralimi reximi simpr jca cbvrexv anbi12i reeanv cpr maxcl
      bitr4i clt adantl r19.26 prth wb simplrl simplrr sselda maxleastb syl3anc
      syl5ibr ralimdva syl5bir rspcev syl6an rexlimdvva syl5bi impbid2 ) CHUBZD
      IZEIZJKZABLZMZECNZDHOZVPAMZECNZDHOZVPBMZECNZDHOZLZVTWCWFVSWBDHVRWAECVQAVP
      ABUCUDUEUFVSWEDHVRWDECVQBVPABUGUDUEUFUHWGFIZVOJKZAMZECNZGIZVOJKZBMZECNZLZ
      GHOFHOZVMVTWGWKFHOZWOGHOZLWQWCWRWFWSWBWKDFHVNWHPZWAWJECWTVPWIAVNWHVOJQRSU
      IWEWODGHVNWLPZWDWNECXAVPWMBVNWLVOJQRSUIUJWKWOFGHHUKUNVMWPVTFGHHVMWHHTZWLH
      TZLZLZWHWLULHUOUAZHTZWPXFVOJKZVQMZECNZVTXDXGVMWHWLUMUPWPWJWNLZECNXEXJWJWN
      ECUQXEXKXIECXKXIXEVOCTZLZWIWMLZVQMWIAWMBURXMXHXNVQXMXBXCVOHTXHXNUSVMXBXCX
      LUTVMXBXCXLVAXECHVOVMXDUCVBWHWLVOVCVDRVEVFVGVSXJDXFHVNXFPZVRXIECXOVPXHVQV
      NXFVOJQRSVHVIVJVKVL $.
  $}

  ${
    $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 adantll wb cico co
      cxr pnfxr icossre sylancl ssrexv syl cpr clt csup maxcl elicopnf ad2antlr
      maxle1 mpbir2and simpllr simplr simpll sselda syl6bi imim1d ralimdva wceq
      maxleastb syl3anc imbi1d ralbidv rspcev syl6an rexlimdva cbvrexv syl6ib
      breq1 impbid ) BGHZCGIZJZDKZEKZLMZANZEBOZDCPUAUBZQZWCDGQZVRWDGHZWEWFNVRVQ
      PUCIWGVPVQRUDCPUEUFWCDWDGUGUHVRWFFKZVTLMZANZEBOZFWDQZWEVRWCWLDGVRVSGIZJZC
      VSUIGUJUKZWDIZWCWOVTLMZANZEBOZWLWNWPWOGIZCWOLMZVQWMWTVPCVSULSVQWMXAVPCVSU
      OSVQWPWTXAJTVPWMCWOUMUNUPWNWBWREBWNVTBIZJZWQWAAXCWQCVTLMZWAJZWAXCVQWMVTGI
      WQXETVPVQWMXBUQVRWMXBURWNBGVTVPVQWMUSUTCVSVTVEVFXDWARVAVBVCWKWSFWOWDWHWOV
      DZWJWREBXFWIWQAWHWOVTLVNVGVHVIVJVKWKWCFDWDWHVSVDZWJWBEBXGWIWAAWHVSVTLVNVG
      VHVLVMVO $.
  $}

  $( The maximum of two real numbers is one of those numbers if and only if
     dichotomy ( ` A <_ B \/ B <_ A ` ) holds.  For example, this can be
     combined with ~ zletric if one is dealing with integers, but real number
     dichotomy in general does not follow from our axioms.  (Contributed by Jim
     Kingdon, 1-Feb-2022.) $)
  maxclpr $p |- ( ( A e. RR /\ B e. RR ) -> (
      sup ( { A , B } , RR , < ) e. { A , B }
      <-> ( A <_ B \/ B <_ A ) ) ) $=
    ( cr wcel wa cpr clt csup cle wbr wo wceq wb maxcl syl maxleb maxcom eqeq1i
    elprg syl6bb ancoms orbi12d bitr4d orcom ) ACDZBCDZEZABFZCGHZUHDZBAIJZABIJZ
    KZULUKKUGUJUIALZUIBLZKZUMUGUICDUJUPMABNUIABCSOUGUKUNULUOUFUEUKUNMUFUEEUKBAF
    CGHZALUNBAPUQUIABAQRTUAABPUBUCUKULUDT $.

  ${
    $d A x y s u v w $.
    $( 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 ) $=
      ( vs wcel cr wss cv cle wbr wral wrex wi c0 wceq sseq1 raleq cc0 syl2anc
      wa vw vu vv cfn csn cun rexbidv imbi12d 0re ral0 breq2 ralbidv rspcev a1i
      mp2an unss biimpri simpld adantl simplr mpd cbvrexv sylib cpr csup simprl
      clt simprd vex snss sylibr ad2antlr maxcl nfv nfcv nfra1 nfim nfan simprr
      nfrexxy maxle1 r19.27av r19.21bi simpr sseldd adantr letr syl3anc ralrimi
      ad2antrr ex maxle2 wb breq1 ralsng mpbird ralun rexlimddv exp31 findcard2
      syl impcom ) CUDECFGZBHZAHZIJZBCKZAFLZUAHZFGZXFBXIKZAFLZMNFGZXFBNKZAFLZMU
      BHZFGZXFBXPKZAFLZMZXPUCHZUEZUFZFGZXFBYCKZAFLZMXCXHMUAUBUCCXINOZXJXMXLXOXI
      NFPYGXKXNAFXFBXINQUGUHXIXPOZXJXQXLXSXIXPFPYHXKXRAFXFBXIXPQUGUHXIYCOZXJYDX
      LYFXIYCFPYIXKYEAFXFBXIYCQUGUHXICOZXJXCXLXHXICFPYJXKXGAFXFBXICQUGUHXOXMRFE
      XDRIJZBNKZXOUIYKBUJXNYLARFXEROXFYKBNXERXDIUKULUMUOUNXPUDEZXTYDYFYMXTTZYDT
      ZXDDHZIJZBXPKZYFDFYOXSYRDFLYOXQXSYDXQYNYDXQYBFGZXQYSTYDXPYBFUPUQZURUSZYMX
      TYDUTVAXRYRADFXEYPOXFYQBXPXEYPXDIUKULVBVCYOYPFEZYRTZTZYPYAVDFVGVEZFEZXDUU
      EIJZBYCKZYFUUDUUBYAFEZUUFYOUUBYRVFZYDUUIYNUUCYDYSUUIYDXQYSYTVHYAFUCVIVJVK
      VLZYPYAVMSZUUDUUGBXPKUUGBYBKZUUHUUDUUGBXPYOUUCBYNYDBYMXTBYMBVNXQXSBXQBVNX
      RBAFBFVOXFBXPVPVTVQVRYDBVNVRUUBYRBUUBBVNYQBXPVPVRVRUUDXDXPEZUUGUUDUUNTZYQ
      YPUUEIJZTZUUGUUDUUQBXPUUDYRUUPUUQBXPKYOUUBYRVSUUDUUBUUIUUPUUJUUKYPYAWASYQ
      UUPBXPWBSWCUUOXDFEUUBUUFUUQUUGMUUOXPFXDYOXQUUCUUNUUAWJUUDUUNWDWEUUDUUBUUN
      UUJWFUUDUUFUUNUULWFXDYPUUEWGWHVAWKWIUUDUUMYAUUEIJZUUDUUBUUIUURUUJUUKYPYAW
      LSUUDUUIUUMUURWMUUKUUGUURBYAFXDYAUUEIWNWOXAWPUUGBXPYBWQSYEUUHAUUEFXEUUEOX
      FUUGBYCXEUUEXDIUKULUMSWRWSWTXB $.
  $}

  ${
    $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 $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The minimum of two real numbers
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( The minimum of two reals is commutative.  (Contributed by Jim Kingdon,
     8-Feb-2021.) $)
  mincom $p |- inf ( { A , B } , RR , < ) = inf ( { B , A } , RR , < ) $=
    ( cr cpr clt prcom infeq1i ) CABDBADEABFG $.

  ${
    $d A x y z $.  $d B x y z $.
    $( Minimum expressed in terms of maximum.  (Contributed by Jim Kingdon,
       8-Feb-2021.) $)
    minmax $p |- ( ( A e. RR /\ B e. RR ) -> inf ( { A , B } , RR , < )
        = -u sup ( { -u A , -u B } , RR , < ) ) $=
      ( vz vx vy cr wcel wa clt cneg wbr wral wceq wo simpr syl2an cle ad2antrr
      wb mpbird cpr cinf cv crab csup wn wrex wi renegcl elprg syl adantl recnd
      simpll negcon1d eqcom syl6bb simplr orbi12d bitrd rabbidva cin cab dfrab2
      dfpr2 ineq1i eqtr4i prssi df-ss sylib syl5eq eqtrd supeq1d maxcl renegcld
      eqeltrd negeqd maxle1 eqbrtrd breq2d notbid adantr lenltd lenegcon1 sylan
      simplll 3bitr2d syl2anc maxle2 simpllr elpri mpjaodan ralrimiva ad3antrrr
      wss ad3antlr breq1d mpbid ltnegcon1d maxleastlt syl22anc ltnegd rexprg ex
      breq1 breq2 ralbidv imbi1d anbi12d rspcev syl12anc infrenegsupex ) AFGZBF
      GZHZABUAZFIUBCUCZJZXPGZCFUDZFIUEZJZAJZBJZUAZFIUEZJZXODECXPXOYBFGEUCZYBIKZ
      UFZEXPLZYBYHIKZXQYHIKZCXPUGZUHZEFLZYHDUCZIKZUFZEXPLZYQYHIKZYNUHZEFLZHZDFU
      GXOYAXOYAYFFXOFXTYEIXOXTXQYCMZXQYDMZNZCFUDZYEXOXSUUGCFXOXQFGZHZXSXRAMZXRB
      MZNZUUGUUIXSUUMSZXOUUIXRFGUUNXQUIXRABFUJUKULUUJUUKUUEUULUUFUUJUUKYCXQMUUE
      UUJXQAUUJXQXOUUIOUMZUUJAXMXNUUIUNUMUOYCXQUPUQUUJUULYDXQMUUFUUJXQBUUOUUJBX
      MXNUUIURUMUOYDXQUPUQUSUTVAXOUUHYEFVBZYEUUHUUGCVCZFVBUUPUUGCFVDYEUUQFCYCYD
      VEVFVGXOYEFWOZUUPYEMXMYCFGZYDFGZUURXNAUIZBUIZYCYDFVHPYEFVIVJVKVLVMZXMUUSU
      UTYFFGZXNUVAUVBYCYDVNPZVPVOXOYJEXPXOYHXPGZHZYHAMZYJYHBMZUVGUVHHZYJYHJZYFQ
      KZUVJUVKYCYFQUVJYHAUVGUVHOZVQXOYCYFQKZUVFUVHXMUUSUUTUVNXNUVAUVBYCYDVRPRVS
      UVJXOYHFGZYJUVLSZXOUVFUVHUNUVJYHAFUVMXMXNUVFUVHWFVPXOUVOHZYJYHYGIKZUFZYGY
      HQKZUVLXOYJUVSSUVOXOYIUVRXOYBYGYHIXOYAYFUVCVQZVTWAWBUVQYGYHUVQYFXOUVDUVOU
      VEWBVOXOUVOOWCXOUVDUVOUVTUVLSUVEYFYHWDWEWGZWHTUVGUVIHZYJUVLUWCUVKYDYFQUWC
      YHBUVGUVIOZVQXOYDYFQKZUVFUVIXMUUSUUTUWEXNUVAUVBYCYDWIPRVSUWCXOUVOUVPXOUVF
      UVIUNUWCYHBFUWDXMXNUVFUVIWJVPUWBWHTUVFUVHUVINXOYHABWKULWLWMXOYOEFUVQYLYNU
      VQYLHZYNAYHIKZBYHIKZNZUWFUWIUVKYCIKZUVKYDIKZNZUWFUUSUUTUVKFGUVKYFIKUWLXMU
      USXNUVOYLUVAWNXNUUTXMUVOYLUVBWPUWFYHXOUVOYLURZVOUWFYFYHXOUVDUVOYLUVERUWMU
      WFYLYGYHIKZUVQYLOXOYLUWNSUVOYLXOYBYGYHIUWAWQRWRWSYCYDUVKWTXAUWFUWGUWJUWHU
      WKUWFAYHXMXNUVOYLWFUWMXBUWFBYHXMXNUVOYLWJUWMXBUSTXOYNUWISUVOYLYMUWGUWHCAB
      FFXQAYHIXEXQBYHIXEXCRTXDWMUUDYKYPHDYBFYQYBMZYTYKUUCYPUWOYSYJEXPUWOYRYIYQY
      BYHIXFWAXGUWOUUBYOEFUWOUUAYLYNYQYBYHIXEXHXGXIXJXKABFVHXLUWAVL $.
  $}

  $( The minimum of two numbers is less than or equal to the first.
     (Contributed by Jim Kingdon, 8-Feb-2021.) $)
  min1inf $p |- ( ( A e. RR /\ B e. RR )
      -> inf ( { A , B } , RR , < ) <_ A ) $=
    ( cr wcel wa cpr clt cinf cneg cle minmax simpl renegcl maxcl syl2an maxle1
    csup wbr lenegcon1d eqbrtrd ) ACDZBCDZEZABFCGHAIZBIZFCGQZIAJABKUCAUFUAUBLUA
    UDCDZUECDZUFCDUBAMZBMZUDUENOUAUGUHUDUFJRUBUIUJUDUEPOST $.

  $( The minimum of two numbers is less than or equal to the second.
     (Contributed by Jim Kingdon, 9-Feb-2021.) $)
  min2inf $p |- ( ( A e. RR /\ B e. RR )
      -> inf ( { A , B } , RR , < ) <_ B ) $=
    ( cr wcel wa cpr clt cinf cneg cle minmax simpr renegcl maxcl syl2an maxle2
    csup wbr lenegcon1d eqbrtrd ) ACDZBCDZEZABFCGHAIZBIZFCGQZIBJABKUCBUFUAUBLUA
    UDCDZUECDZUFCDUBAMZBMZUDUENOUAUGUHUEUFJRUBUIUJUDUEPOST $.

  $( Two ways of saying a number is less than or equal to the minimum of two
     others.  (Contributed by NM, 3-Aug-2007.) $)
  lemininf $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
      ( A <_ inf ( { B , C } , RR , < ) <-> ( A <_ B /\ A <_ C ) ) ) $=
    ( cr wcel w3a cpr clt cinf cle wbr cneg csup wa wceq simp2 syl2anc renegcld
    wb lenegd simp3 minmax breq2d maxcl simp1 lenegcon2 syl3anc anbi12d 3bitr2d
    maxleastb bitr4d ) ADEZBDEZCDEZFZABCGDHIZJKABLZCLZGDHMZLZJKZUSALZJKZABJKZAC
    JKZNZUOUPUTAJUOUMUNUPUTOULUMUNPZULUMUNUAZBCUBQUCUOUSDEZULVCVASUOUQDEZURDEZV
    IUOBVGRZUOCVHRZUQURUDQULUMUNUEZUSAUFQUOVCUQVBJKZURVBJKZNZVFUOVJVKVBDEVCVQSV
    LVMUOAVNRUQURVBUJUGUOVDVOVEVPUOABVNVGTUOACVNVHTUHUKUI $.

  $( Two ways of saying a number is less than the minimum of two others.
     (Contributed by Jim Kingdon, 10-Feb-2022.) $)
  ltmininf $p |- ( ( A e. RR /\ B e. RR /\ C e. RR ) ->
      ( A < inf ( { B , C } , RR , < ) <-> ( A < B /\ A < C ) ) ) $=
    ( cr wcel w3a cneg cpr clt csup wbr wa cinf wb simp2 renegcld simp3 syl2anc
    simp1 ltnegd maxltsup syl3anc minmax breq2d 3adant1 maxcl ltnegcon2 anbi12d
    bitrd 3bitr4d ) ADEZBDEZCDEZFZBGZCGZHDIJZAGZIKZUOURIKZUPURIKZLZABCHDIMZIKZA
    BIKZACIKZLUNUODEZUPDEZURDEUSVBNUNBUKULUMOZPZUNCUKULUMQZPZUNAUKULUMSZPUOUPUR
    UAUBUNVDAUQGZIKZUSULUMVDVONUKULUMLVCVNAIBCUCUDUEUNUKUQDEZVOUSNVMUNVGVHVPVJV
    LUOUPUFRAUQUGRUIUNVEUTVFVAUNABVMVITUNACVMVKTUHUJ $.


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Elementary limits and convergence
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Limits
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $c ~~> $.  $( Limit arrow. $)

  $( Extend class notation with convergence relation for limits. $)
  cli $a class ~~> $.

  ${
    $d j k x y f $.
    $( 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 ) ) } $.

    $( 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 $.
  $}

  ${
    $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 j k x A $.  $d j k x 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 $.
  $}

  ${
    $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 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 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 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 snexg adantr xpexg wceq
      sylancr simpl cv sseli fvconst2g syl2an climconst ) AGHZBIHZJZAFCAKZLZBMB
      NOZUNPUIUJQUKCMHULMHZUMMHEUIUOUJAGRSCULMMTUBUIUJUCZUKUIFUDZCHUQUMOAUAUQUN
      HUPUNCUQDUECAUQGUFUGUH $.
  $}

  $( 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 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 wn cz
      cli wceq cap 1z w3a cv c2 cdiv 1zzd climcl 3ad2ant1 3ad2ant2 subcld simp3
      cuz subap0d absrpclapd rphalfcld eqidd simp1 climi simp2 rexanuz2 wex nnz
      sylanbrc uzid elex2 r19.2m ex simpr simpll abssubd breq1d cr simplr subcl
      4syl adantr abscld abs3lem syl22anc pm2.21d syld expd sylbid impr adantld
      ltnrd expimpd rexlimdvw sylan9r rexlimdva syl2anc mpd 3expia mt2i wb apti
      syl2an mpbird ) CAUCFZCBUCFZGZABUDZABUEFZUAZXFXHHUBIZUFXDXEXHXJUAZXDXEXHU
      GZDUHZCJZKIZXNALMNJZABLMZNJZUIUJMZOFZGZXOXNBLMNJXSOFZGZGZDEUHZUQJZPZEQRZX
      KXLYADYFPEQRYCDYFPEQRYHXLAXNXSEDCHQSXLUKZXLXRXLXQXLABXDXEAKIZXHACULZUMZXE
      XDBKIZXHBCULZUNZUOXLABYLYOXDXEXHUPURUSUTZXLXMQIGXNVAZXDXEXHVBVCXLBXNXSEDC
      HQSYIYPYQXDXEXHVDVCYAYCEDHQSVEVHXLYJYMYHXKTYLYOYJYMGZYGXKEQYEQIZYGYDDYFRZ
      YRXKYSYEUBIYEYFIXMYFIDVFZYGYTTYEVGYEVIDYEYFVJUUAYGYTYDDYFVKVLVTYRYDXKDYFY
      RYAYCXKYRYAGYBXKXOYRXOXTYBXKTZYRXOGZXTAXNLMNJZXSOFZUUBUUCXPUUDXSOUUCXNAYR
      XOVMZYJYMXOVNZVOVPUUCUUEYBXKUUCUUEYBGZXRXROFZXKUUCYJYMXOXRVQIUUHUUITUUGYJ
      YMXOVRUUFUUCXQYRXQKIXOABVSWAWBZABXNXRWCWDUUCUUIXKUUCXRUUJWKWEWFWGWHWIWJWL
      WMWNWOWPWQWRWSXDYJYMXGXIWTXEYKYNABXAXBXC $.
  $}

  ${
    $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 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 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 syl syl5eqel cmpt cpw uzf ffvelrni
        elex mptexg adantr simpl wceq fvexg adantll fveq2 fvmptg syl2anc eqcomd
        climeq ) EKLZCFLZMZAJCDEFNGHUQUROUQDNLURUQDBGBPZCQZUAZNIUQGNLVBNLUQGERQ
        ZNHUQVCKUBZLVCNLKVDERUCUDVCVDUESTBGVANUFSTUGUQURUHUSJPZGLZMZVEDQZVECQZV
        GVFVINLZVHVIUIUSVFOURVFVJUQVECFGUJUKBVEVAVIGNDUTVECULIUMUNUOUP $.
    $}

    $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 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 $.
    $( A shifted function converges if the original function converges.
       (Contributed by Mario Carneiro, 5-Nov-2013.) $)
    climshftlemg $p |- ( ( M e. ZZ /\ F e. V ) ->
                        ( F ~~> A -> ( F shift M ) ~~> A ) ) $=
      ( vm vx vk vn cz wcel wa cc cv cfv cmin co cabs clt wbr wral cuz wrex crp
      cshi cli caddc zaddcl ancoms adantlr wi eluzsub 3com12 3expa fveq2 eleq1d
      wceq oveq1d fveq2d breq1d anbi12d rspcv syl adantllr wb ad2antrr eluzelcn
      simplr zcn adantl w3a shftvalg syl3anc sylibrd ralrimdva rspcev rexlimdva
      raleqdv syl6an ralimdv anim2d simpr eqidd clim cvv ovshftex sylan 3imtr4d
      ) CIJZBDJZKZALJZEMZBNZLJZWMAOPZQNZFMZRSZKZEGMZUANZTZGIUBZFUCTZKWKHMZBCUDP
      ZNZLJZXGAOPZQNZWQRSZKZHWLUANZTZEIUBZFUCTZKBAUESXFAUESWJXDXPWKWJXCXOFUCWJX
      BXOGIWJWTIJZKZWTCUFPZIJZXBXLHXSUANZTZXOWHXQXTWIXQWHXTWTCUGUHUIXRXBXLHYAXR
      XEYAJZKXBXECOPZBNZLJZYEAOPZQNZWQRSZKZXLWHXQYCXBYJUJZWIWHXQKYCKYDXAJZYKWHX
      QYCYLXQWHYCYLCWTXEUKULUMWSYJEYDXAWLYDUPZWNYFWRYIYMWMYELWLYDBUNZUOYMWPYHWQ
      RYMWOYGQYMWMYEAOYNUQURUSUTVAVBVCWJYCXLYJVDZXQWJYCKWICLJZXELJZYOWHWIYCVGWH
      YPWIYCCVHZVEYCYQWJXSXEVFVIWIYPYQVJZXHYFXKYIYSXGYELCXEBDVKZUOYSXJYHWQRYSXI
      YGQYSXGYEAOYTUQURUSUTVLUIVMVNXNYBEXSIWLXSUPXLHXMYAWLXSUAUNVQVOVRVPVSVTWJF
      AWMGEBDWHWIWAWJWLIJKWMWBWCWJFAXGEHXFWDWHYPWIXFWDJZYRWIYPUUACBDWEUHWFWJXEI
      JKXGWBWCWG $.

    $( 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 cvv cc ovshftex cfv bibi12d
      oveq1 breq1d breq1 imbi2d znegcl vex zcn sylancr climshftlemg syl2anc cuz
      cneg eqid negcld a1i eluzelcn shftcan1 syl2an climeq sylibd impbid vtoclg
      id mpan2 impcom ) BDGCHGZBCIJZAKLZBAKLZMZVGENZCIJZAKLZVLAKLZMZOVGVKOEBDVL
      BPZVPVKVGVQVNVIVOVJVQVMVHAKVLBCIUBUCVLBAKUDUAUEVGVNVOVGVNVMCUMZIJZAKLZVOV
      GVRHGVMQGZVNVTOCUFVGVLQGZCRGZWAEUGZCUHZCVLQSUIZAVMVRQUJUKVGAFVSVLCQQCULTZ
      WGUNVGWAVRRGVSQGWFVGCWEUOVRVMQSUKWBVGWDUPVGVDVGWCFNZRGWHVSTWHVLTPWHWGGWEC
      WHUQCWHVLWDURUSUTVAVGWBVOVNOWDAVLCQUJVEVBVCVF $.
  $}

  $( The zero series converges to zero.  (Contributed by Jim Kingdon,
     19-Aug-2021.) $)
  iserclim0 $p |- ( M e. ZZ ->
                    seq M ( + , ( ( ZZ>= ` M ) X. { 0 } ) , CC ) ~~> 0 ) $=
    ( cz wcel caddc cuz cfv cc0 csn cxp cseq cli eqid iser0f wbr 0cn ssid uzssz
    cc zex ssexi climconst2 mpan eqbrtrd ) ABCZDRAEFZGHIZAJUFGKAUEUELMGRCUDUFGK
    NOGAUEUEPUEBSAQTUAUBUC $.

  ${
    $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 ) ) $=
        ( co cvv wcel cfv cneg cshi cli wbr cc negcld ovshftex syl2anc cv caddc
        zcnd wa cid wceq wfun cdm funi syl dmi syl6eleqr funfvex sylancr adantr
        cz cuz eluzelz eleq2s adantl shftval4g syl3anc fvi oveq1d fveq1d addcom
        elex syl2an fveq12d 3eqtr3d eqtrd climeq wb znegcld climshft bitr3d ) A
        EFUAZUBQZBUCUDZDBUCUDEBUCUDZABCWFDGRHJKAEISZWEUESWFRSOAFAFMUKZUFWEEIUGU
        HNLACUIZJSZULZWKWFTZWKFUJQZETZWKDTWMWKEUMTZWEUBQZTZFWKUJQZWQTZWNWPWMWQR
        SZFUESZWKUESZWSXAUNAXBWLAUMUOEUMUPZSXBUQAERXEAWIERSOEIVOURUSUTEUMVAVBVC
        AXCWLWJVCWLXDAWLWKWKVDSWKGVETJGWKVFKVGUKZVHFWKWQRVIVJWMWKWRWFWMWQEWEUBA
        WQEUNZWLAWIXGOEIVKURVCZVLVMWMWTWOWQEXHAXCXDWTWOUNWLWJXFFWKVNVPVQVRPVSVT
        AWEVDSWIWGWHWAAFMWBOBEWEIWCUHWD $.
    $}
  $}

  ${
    $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 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 $.
    $( 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 $.
  $}

  ${
    $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 j k F $.  $d j k M $.  $d j k ph $.  $d j k Z $.  $d j k A $.
    climrecl.1 $e |- Z = ( ZZ>= ` M ) $.
    climrecl.2 $e |- ( ph -> M e. ZZ ) $.
    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.) $)
    climrecl $p |- ( ph -> A e. RR ) $=
      ( cli wbr cc wcel syl cre cfv wceq cvv eqcomd climcl brrelexi cv wa recnd
      climrel cr rere climre climuni syl2anc rerebd ) ABADBKLZBMNIBDUAOABBPQZAU
      MDUNKLBUNRIABCDDESFGIAUMDSNIDBKUFUBOHACUCZFNUDZUODQZJUEUPUQUGNZUQUQPQZRJU
      RUSUQUQUHTOUIBUNDUJUKTUL $.

    climge0.5 $e |- ( ( ph /\ k e. Z ) -> 0 <_ ( F ` k ) ) $.
    $( A nonnegative sequence converges to a nonnegative number.  (Contributed
       by NM, 11-Sep-2005.) $)
    climge0 $p |- ( ph -> 0 <_ A ) $=
      ( vj cc0 wbr clt wa cfv wcel adantr cr cle wn cv cmin cabs cneg wfal wral
      co cuz wrex cz climrecl renegcld lt0neg1d biimpa elrpd cli climi2 r19.2uz
      eqidd syl caddc simprr ad2ant2r absdifltd mpbid simprd recnd breqtrd 0red
      negidd lenltd pm2.21fal rexlimddv inegd wb 0re lenlt sylancr mpbird ) AMB
      UANZBMONZUBZAWCAWCPZCUCZDQZBUDUIUEQBUFZONZUGCFWEWICLUCUJQUHLFUKWICFUKWEBW
      GWHLCDEFGAEULRWCHSWEWHWEBABTRZWCABCDEFGHIJUMZSZUNZAWCMWHONABWKUOUPUQWEWFF
      RZPWGVAADBURNWCISUSWILCEFGUTVBWEWNWIPZPZWGMONZWPWGBWHVCUIZMOWPBWHUDUIWGON
      ZWGWRONZWPWIWSWTPWEWNWIVDWPWGBWHAWNWGTRWCWIJVEZWEWJWOWLSZWEWHTRWOWMSVFVGV
      HWPBWPBXBVIVLVJWPMWGUANZWQUBAWNXCWCWIKVEWPMWGWPVKXAVMVGVNVOVPAMTRWJWBWDVQ
      VRWKMBVSVTWA $.
  $}

  ${
    $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 cuz cz zex uzssz ssexi eqeltri
        wcel mptex wa recnd cr wceq simpr resubcld fveq2 oveq12d fvmptg syl2anc
        a1i eqid climsub eqeltrd subge0d mpbird breqtrrd climge0 climrecl mpbid
        ) AUACBQUBZRSBCRSAVNDPHPUCZFTZVOETZQUBZUDZGHIJACBDFEVSGUEHIJLVSUEULAPHV
        RHGUFTZUEIVTUGUHGUIUJUKUMVDKADUCZHULZUNZWAFTZNUOWCWAETZMUOWCWBWDWEQUBZU
        PULWAVSTZWFUQAWBURWCWDWENMUSZPWAVRWFHUPVSVOWAUQVPWDVQWEQVOWAFUTVOWAEUTV
        AVSVEVBVCZVFWCWGWFUPWIWHVGWCUAWFWGRWCUAWFRSWEWDRSOWCWDWENMVHVIWIVJVKACB
        ACDFGHIJLNVLABDEGHIJKMVLVHVM $.
    $}

    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 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 , CC ) ~~> A ) $.
        $( The limit of an infinite series with an initial segment removed.
           (Contributed by Jim Kingdon, 20-Aug-2021.) $)
        clim2iser $p |- ( ph -> seq ( N + 1 ) ( + , F , CC ) ~~>
            ( A - ( seq M ( + , F , CC ) ` N ) ) ) $=
          ( caddc cc cfv co cvv wcel syl cv adantr vj vx vy cseq c1 cuz eqid cz
          syl6eleq peano2uz eluzelz eluzel2 iserf ffvelrnd iseqex a1i syl6eleqr
          wa uztrn2 sylan cmin addcl adantl w3a wceq addass simpr cnex sylan2br
          wf eleq2i adantlr iseqsplit oveq1d syldan ffvelrnda pncan2d climsubc1
          eqtr2d ) ABFLMDEUDZNZUAVTLMDFUELOZUDZWBPWBUFNZWDUGZAWBEUFNZQZWBUHQAFW
          FQZWGAFGWFIHUIZEFUJRZEWBUKRZKAGMFVTACDEGHAWHEUHQWIEFULRJUMZIUNZWCPQAL
          MDWBUOUPAUASZWDQZURZGMWNVTAGMVTVJWOWLTAWBGQZWOWNGQAWBWFGWJHUQZEWNWBGH
          USUTUNWPWNVTNZWAVAOWAWNWCNZLOZWAVAOWTWPWSXAWAVAWPCUBUCLMDEFWNPCSZMQZU
          BSZMQZURXBXDLOZMQWPXBXDVBVCXCXEUCSZMQVDXFXGLOXBXDXGLOLOVEWPXBXDXGVFVC
          AWOVGMPQWPVHUPAWHWOWITAXBWFQZXBDNMQZWOXHAXBGQZXIGWFXBHVKJVIVLVMVNWPWA
          WTAWAMQWOWMTAWDMWNWCACDWBWDWEWKAXBWDQZXJXIAWQXKXJWREXBWBGHUSUTJVOUMVP
          VQVSVR $.
      $}

      ${
        clim2ser2.5 $e |- ( ph -> seq ( N + 1 ) ( + , F , CC ) ~~> A ) $.
        $( The limit of an infinite series with an initial segment added.
           (Contributed by Jim Kingdon, 21-Aug-2021.) $)
        clim2iser2 $p |- ( ph -> seq M ( + , F , CC ) ~~>
            ( A + ( seq M ( + , F , CC ) ` N ) ) ) $=
          ( vj caddc cc cfv co cvv wcel syl cv vx vy cseq cuz syl6eleq peano2uz
          c1 eqid cz eluzelz eluzel2 iserf ffvelrnd iseqex a1i syl6eleqr uztrn2
          sylan syldan ffvelrnda addcl adantl w3a wceq addass simpr cnex adantr
          wa eleq2i sylan2br adantlr iseqsplit addcomd eqtrd climaddc1 ) ABFMND
          EUCZOZLMNDFUGMPZUCZVQVSQVSUDOZWAUHZAVSEUDOZRZVSUIRAFWCRZWDAFGWCIHUEZE
          FUFSZEVSUJSZKAGNFVQACDEGHAWEEUIRWFEFUKSJULIUMZVQQRAMNDEUNUOAWANLTZVTA
          CDVSWAWBWHACTZWARZWKGRZWKDONRZAVSGRWLWMAVSWCGWGHUPEWKVSGHUQURJUSULUTZ
          AWJWARZVIZWJVQOVRWJVTOZMPWRVRMPWQCUAUBMNDEFWJQWKNRZUATZNRZVIWKWTMPZNR
          WQWKWTVAVBWSXAUBTZNRVCXBXCMPWKWTXCMPMPVDWQWKWTXCVEVBAWPVFNQRWQVGUOAWE
          WPWFVHAWKWCRZWNWPXDAWMWNGWCWKHVJJVKVLVMWQVRWRAVRNRWPWIVHWOVNVOVP $.
      $}
    $}

    ${
      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.) $)
      iiserex $p |- ( ph -> ( seq M ( + , F , CC ) e. dom ~~> <->
          seq N ( + , F , CC ) e. dom ~~> ) ) $=
        ( wceq caddc cc cseq cli wcel c1 co cfv wbr syl cdm wb cmin cuz iseqeq1
        wi eleq1d bicomd a1i wa simpll cz syl6eleq eluzelz ax-1cn npcan sylancl
        simplr syl6eleqr cv sylan simpr climdm sylib clim2iser eqbrtrrd climrel
        zcnd releldmi adantr eqbrtrd clim2iser2 impbida ex wo uzm1 mpjaod ) AED
        JZKLCDMZNUAZOZKLCEMZVTOZUBZEPUCQZDUDRZOZVRWDUFAVRWCWAVRWBVSVTKLCEDUEUGU
        HUIAWGWDAWGUJZWAWCWHWAUJZWBVSNRZWEVSRZUCQZNSWCWIKLCWEPKQZMZWBWLNWIAWNWB
        JZAWGWAUKZAWMEJZWOAELOPLOWQAEAEWFOZEULOAEFWFHGUMZDEUNTVHUOEPUPUQKLCWMEU
        ETZTWIWJBCDWEFGWIWEWFFAWGWAURGUSWIABUTZFOZXACRLOZWPIVAWIWAVSWJNSWHWAVBV
        SVCVDVEVFWBWLNVGVITWHWCUJZVSWBNRZWKKQZNSWAXDXEBCDWEFGWHWEFOWCWHWEWFFAWG
        VBGUSVJXDAXBXCAWGWCUKZIVAXDWNWBXENXDAWOXGWTTXDWCWBXENSWHWCVBWBVCVDVKVLV
        SXFNVGVITVMVNAWRVRWGVOWSDEVPTVQ $.
    $}

    ${
      $d G x $.
      isermulc2.2 $e |- ( ph -> M e. ZZ ) $.
      isermulc2.4 $e |- ( ph -> C e. CC ) $.
      isermulc2.5 $e |- ( ph -> seq M ( + , F , CC ) ~~> 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.) $)
      iisermulc2 $p |- ( ph -> seq M ( + , G , CC ) ~~> ( C x. A ) ) $=
        ( caddc cc cvv wcel cmul co vj vx cseq iseqex a1i cv iserf ffvelrnda wa
        addcl adantl wceq adantr adddi 3expb sylan cuz syl6eleq eleq2i sylan2br
        cfv simpr adantlr cnex mulcl mulcld eqeltrd iseqdistr climmulc2 ) ABCUA
        OPEGUCZOPFGUCZGQHIJLKVKQRAOPFGUDUEAHPUAUFZVJADEGHIJMUGUHAVLHRZUIZDUBCOP
        SFEGVLQDUFZPRZUBUFZPRZUIZVOVQOTZPRVNVOVQUJUKVNCPRZVSCVTSTCVOSTCVQSTOTUL
        ZAWAVMKUMZWAVPVRWBCVOVQUNUOUPVNVLHGUQVAZAVMVBIURAVOWDRZVOEVAZPRZVMWEAVO
        HRZWGHWDVOIUSZMUTVCAWEVOFVAZCWFSTZULZVMWEAWHWLWINUTVCPQRVNVDUEVSVOVQSTP
        RVNVOVQVEUKAWEWJPRZVMWEAWHWMWIAWHUIZWJWKPNWNCWFAWAWHKUMMVFVGUTVCWCVHVI
        $.
    $}

    ${
      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 $.
    $}

    ${
      $d G x $.
      iserile.2 $e |- ( ph -> M e. ZZ ) $.
      iserile.4 $e |- ( ph -> seq M ( + , F , CC ) ~~> A ) $.
      iserile.5 $e |- ( ph -> seq M ( + , G , CC ) ~~> B ) $.
      iserile.6 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) e. RR ) $.
      iserile.7 $e |- ( ( ph /\ k e. Z ) -> ( G ` k ) e. RR ) $.
      iserile.8 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) <_ ( G ` k ) ) $.
      $( Comparison of the limits of two infinite series.  (Contributed by Jim
         Kingdon, 22-Aug-2021.) $)
      iserile $p |- ( ph -> A <_ B ) $=
        ( caddc cc wcel cr cfv vj vx cseq cv wa wceq cvv cnex a1i wss ax-resscn
        cuz eleq2i sylan2br readdcl adantl addcl iseqss adantr fveq1d ffvelrnda
        co iserfre eqeltrrd simpr adantlr cle wbr simpll biimpri syl2anc serile
        syl6eleq climle ) ABCUAPQEGUCZPQFGUCZGHIJKLAUAUDZHRZUEZVQPSEGUCZTVQVOTS
        VSVQVTVOAVTVOUFVRADUBPSQEGUGJQUGRAUHUIZSQUJAUKUIZDUDZGULTZRZAWCHRZWCETZ
        SRZHWDWCIUMZMUNZWCSRUBUDZSRUEWCWKPVBZSRAWCWKUOUPZWCQRWKQRUEWLQRAWCWKUQU
        PZURUSUTAHSVQVTADEGHIJMVCVAVDVSVQPSFGUCZTVQVPTSVSVQWOVPAWOVPUFVRADUBPSQ
        FGUGJWAWBWEAWFWCFTZSRZWINUNZWMWNURUSUTAHSVQWOADFGHIJNVCVAVDVSDEFGVQVSVQ
        HWDAVRVEIVMAWEWHVRWJVFAWEWQVRWRVFVSWEUEAWFWGWPVGVHAVRWEVIWEWFVSWFWEWIVJ
        UPOVKVLVN $.
    $}

    ${
      iserige0.2 $e |- ( ph -> M e. ZZ ) $.
      iserige0.3 $e |- ( ph -> seq M ( + , F , CC ) ~~> A ) $.
      iserige0.4 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) e. RR ) $.
      iserige0.5 $e |- ( ( ph /\ k e. Z ) -> 0 <_ ( F ` k ) ) $.
      $( The limit of an infinite series of nonnegative reals is nonnegative.
         (Contributed by Jim Kingdon, 22-Aug-2021.) $)
      iserige0 $p |- ( ph -> 0 <_ A ) $=
        ( cc0 cuz cfv csn cxp cz wcel caddc syl cc cseq cli wbr iserclim0 cv wa
        cr wceq simpr syl6eleq c0ex fvconst2 0re syl6eqel cle eqbrtrd iserile )
        ALBCEMNZLOPZDEFGHAEQRSUAUTEUBLUCUDHEUETIACUFZFRZUGZVAUTNZLUHVCVAUSRVDLU
        IVCVAFUSAVBUJGUKUSLVAULUMTZUNUOJVCVDLVADNUPVEKUQUR $.
    $}

    ${
      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 $.
    $}

    ${
      climserile.2 $e |- ( ph -> N e. Z ) $.
      climserile.3 $e |- ( ph -> seq M ( + , F , CC ) ~~> A ) $.
      climserile.4 $e |- ( ( ph /\ k e. Z ) -> ( F ` k ) e. RR ) $.
      climserile.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 Jim Kingdon,
         22-Aug-2021.) $)
      climserile $p |- ( ph -> ( seq M ( + , F , CC ) ` N ) <_ A ) $=
        ( caddc cc cr cfv wcel wa cle wi vj vx cseq cv cuz syl6eleq eluzel2 syl
        wf cz iserfre cvv cnex a1i wss ax-resscn eleq2i sylan2br readdcl adantl
        co addcl iseqss feq1d mpbid ffvelrnda c1 cc0 wbr peano2uzs fveq2 breq2d
        imbi2d expcom vtoclga impcom sylan2 eleq1d addge01d simpr adantlr recnd
        wceq iseqp1 breqtrrd climub ) ABUAMNDEUCZEFGHIJAGOUAUDZWGAGOMODEUCZUIGO
        WGUIACDEGHAFEUEPZQEUJQAFGWJIHUFEFUGUHZKUKAGOWIWGACUBMONDEULWKNULQZAUMUN
        ONUOAUPUNCUDZWJQZAWMGQZWMDPZOQZGWJWMHUQKURZWMOQUBUDZOQRWMWSMVAZOQAWMWSU
        SUTWMNQWSNQRZWTNQZAWMWSVBZUTVCVDVEVFZAWHGQZRZWHWGPZXGWHVGMVAZDPZMVAZXHW
        GPSXFVHXISVIZXGXJSVIXEAXHGQZXKEWHGHVJZXLAXKAVHWPSVIZTAXKTCXHGWMXHWCZXNX
        KAXOWPXIVHSWMXHDVKZVLVMAWOXNLVNVOVPVQXFXGXIXDXEAXLXIOQZXMXLAXQAWQTAXQTC
        XHGXOWQXQAXOWPXIOXPVRVMAWOWQKVNVOVPVQVSVEXFCUBMNDEWHULXFWHGWJAXEVTHUFWL
        XFUMUNXFWNRWPAWNWQXEWRWAWBXAXBXFXCUTWDWEWF $.
    $}
  $}

  ${
    $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.  The
       converse would require excluded middle or a different definition of
       Cauchy sequence (for example, fixing a rate of convergence as in
       ~ climcvg1n ).  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 $.
  $}

  ${
    $d C e i j y $.  $d C i j k y $.  $d C i k n $.  $d F e i j y $.
    $d F i j k y $.  $d F i k n $.  $d e i j ph y $.  $d k n ph $.
    climrecvg1n.f $e |- ( ph -> F : NN --> RR ) $.
    climrecvg1n.c $e |- ( ph -> C e. RR+ ) $.
    climrecvg1n.cau $e |- ( ph ->
      A. n e. NN A. k e. ( ZZ>= ` n )
        ( abs ` ( ( F ` k ) - ( F ` n ) ) ) < ( C / n ) ) $.
    $( A Cauchy sequence of real numbers converges, existence version.  The
       rate of convergence is fixed: all terms after the nth term must be
       within ` C / n ` of the nth term, where ` C ` is a constant multiplier.
       (Contributed by Jim Kingdon, 23-Aug-2021.) $)
    climrecvg1n $p |- ( ph -> F e. dom ~~> ) $=
      ( vj ve vi cv cfv co clt wbr wa cn wcel cr vy caddc cuz wral wrex crp cli
      cdm cdiv cmin cabs r19.21bi ad2antrr eluznn adantll ffvelrnd simplr nnrpd
      wf rpdivcld rpred absdifltd mpbid ltsubaddd anbi1d ralrimiva cvg1n adantr
      ad3antrrr simpr simpllr bitrd ancom syl6bb ralbidva rexbidva c1 nnuz 1zzd
      cvv nnex reex fex2 syl3anc eqidd recnd ffvelrnda climrel releldmi syl6bir
      a1i clim2c sylbird impr rexlimddv ) AILZEMZUALZJLZUBNOPZWRWQWSUBNOPZQZIKL
      ZUCMZUDZKRUEZJUFUDZEUGUHSZUATAJUABIKCDEFGADLZEMZCLZEMZBXIUINZUBNOPZXLXJXM
      UBNOPZQZCXIUCMZUDDRAXIRSZQZXPCXQXSXKXQSZQZXJXMUJNXLOPZXOQZXPYAXLXJUJNUKMX
      MOPZYCXSYDCXQAYDCXQUDDRHULULYAXLXJXMYARTXKEARTEUSZXRXTFUMZXRXTXKRSAXKXIUN
      UOUPZYARTXIEYFAXRXTUQZUPZYAXMYABXIABUFSXRXTGUMYAXIYHURUTVAZVBVCYAYBXNXOYA
      XJXMXLYIYJYGVDVEVCVFVFVGAWRTSZXGXHAYKQZXGWQWRUJNUKMWSOPZIXDUDZKRUEZJUFUDZ
      XHYLYOXFJUFYLWSUFSZQZYNXEKRYRXCRSZQZYMXBIXDYTWPXDSZQZYMXAWTQZXBUUBYMWRWSU
      JNWQOPZWTQUUCUUBWQWRWSUUBRTWPEYLYEYQYSUUAAYEYKFVHZVIYSUUAWPRSZYRWPXCUNUOU
      PZYLYKYQYSUUAAYKVJZVIZUUBWSYLYQYSUUAVKVAZVBUUBUUDXAWTUUBWRWSWQUUIUUJUUGVD
      VEVLXAWTVMVNVOVPVOYLYPEWRUGPXHYLJWRWQKIEVQVTRVRYLVSYLYERVTSZTVTSZEVTSUUEU
      UKYLWAWKUULYLWBWKRTEVTVTWCWDYLUUFQZWQWEYLWRUUHWFUUMWQYLRTWPEUUEWGWFWLEWRU
      GWHWIWJWMWNWO $.
  $}

  ${
    climcvg1n.f $e |- ( ph -> F : NN --> CC ) $.
    climcvg1n.c $e |- ( ph -> C e. RR+ ) $.
    climcvg1n.cau $e |- ( ph ->
      A. n e. NN A. k e. ( ZZ>= ` n )
        ( abs ` ( ( F ` k ) - ( F ` n ) ) ) < ( C / n ) ) $.
    ${
      $d C k n $.  $d F k x $.  $d G k n $.  $d H k n x $.  $d J k $.
      $d k n ph x $.
      climcvg1nlem.g $e |- G = ( x e. NN |-> ( Re ` ( F ` x ) ) ) $.
      climcvg1nlem.h $e |- H = ( x e. NN |-> ( Im ` ( F ` x ) ) ) $.
      climcvg1nlem.j $e |- J = ( x e. NN |-> ( _i x. ( H ` x ) ) ) $.
      $( Lemma for ~ climcvg1n .  We construct sequences of the real and
         imaginary parts of each term of ` F ` , show those converge, and use
         that to show that ` F ` converges.  (Contributed by Jim Kingdon,
         24-Aug-2021.) $)
      climcvg1nlem $p |- ( ph -> F e. dom ~~> ) $=
        ( cfv wcel cn cr cc cli ci cmul co caddc wbr cdm c1 cvv nnuz 1zzd cv wa
        cre ffvelrnda recld cmin cabs cdiv clt cuz wral cle wceq eluznn adantll
        wf ad2antrr ffvelrnd fveq2d fvmptg syl2anc simplr oveq12d resubd eqtr4d
        fmptd fveq2 subcld absrele syl eqbrtrd wi recnd eqeltrd abscld rpdivcld
        nnrpd rpred lelttr syl3anc mpand ralimdva climrecvg1n climdm sylib nnex
        crp mpd fex sylancl cim imcld imsubd absimle resubcld ax-icn cmpt mptex
        a1i eqeltri ax-resscn fssd oveq2d adantl simpr mulcld climmulc2 replimd
        wss fvmptd eqtrd climadd climrel releldmi ) AFGUAPZUBHUAPZUCUDZUEUDZUAU
        FFUAUGZQAYFYHDGIFUHUIRUJAUKZAGYJQGYFUAUFACDEGABRBULZFPZUNPZSGAYLRQUMZYM
        ARTYLFJUOZUPMVQZKADULZFPZEULZFPZUQUDZURPZCYTUSUDZUTUFZDYTVAPZVBZERVBZYR
        GPZYTGPZUQUDZURPZUUDUTUFZDUUFVBZERVBLAUUGUUNERAYTRQZUMZUUEUUMDUUFUUPYRU
        UFQZUMZUULUUCVCUFZUUEUUMUURUULUUBUNPZURPZUUCVCUURUUKUUTURUURUUKYSUNPZUU
        AUNPZUQUDUUTUURUUIUVBUUJUVCUQUURYRRQZUVBSQZUUIUVBVDZUUOUUQUVDAYRYTVEVFZ
        UURYSUURRTYRFARTFVGZUUOUUQJVHZUVGVIZUPBYRYNUVBRSGYLYRVDZYMYSUNYLYRFVRZV
        JMVKZVLUURUUOUVCSQUUJUVCVDAUUOUUQVMZUURUUAUURRTYTFUVIUVNVIZUPBYTYNUVCRS
        GYLYTVDZYMUUAUNYLYTFVRZVJMVKVLVNUURYSUUAUVJUVOVOVPZVJUURUUBTQZUVAUUCVCU
        FUURYSUUAUVJUVOVSZUUBVTWAWBUURUULSQUUCSQZUUDSQZUUSUUEUMUUMWCUURUUKUURUU
        KUUTTUVRUURUUTUURUUBUVTUPWDWEWFUURUUBUVTWFZUURUUDUURCYTACWRQUUOUUQKVHUU
        RYTUVNWHWGWIZUULUUCUUDWJWKWLWMWMWSWNGWOWPAUVHRUIQFUIQJWQRTUIFWTXAAYGUBD
        HIUHUIRUJYKAHYJQHYGUAUFACDEHABRYMXBPZSHYOYMYPXCNVQZKAUUHYRHPZYTHPZUQUDZ
        URPZUUDUTUFZDUUFVBZERVBLAUUGUWLERUUPUUEUWKDUUFUURUWJUUCVCUFZUUEUWKUURUW
        JUUBXBPZURPZUUCVCUURUWIUWNURUURUWIYSXBPZUUAXBPZUQUDUWNUURUWGUWPUWHUWQUQ
        UURUVDUWPSQZUWGUWPVDZUVGUURYSUVJXCZBYRUWEUWPRSHUVKYMYSXBUVLVJNVKZVLZUUR
        UUOUWQSQUWHUWQVDUVNUURUUAUVOXCZBYTUWEUWQRSHUVPYMUUAXBUVQVJNVKVLZVNUURYS
        UUAUVJUVOXDVPVJUURUVSUWOUUCVCUFUVTUUBXEWAWBUURUWJSQUWAUWBUWMUUEUMUWKWCU
        URUWIUURUWIUURUWGUWHUURUWGUWPSUXBUWTWEUURUWHUWQSUXDUXCWEXFWDWFUWCUWDUWJ
        UUCUUDWJWKWLWMWMWSWNHWOWPUBTQZAXGXJIUIQAIBRUBYLHPZUCUDZXHZUIOBRUXGWQXIX
        KXJARTYRHARSTHUWFSTXTAXLXJXMUOZAUVDUMZBYRUXGUBUWGUCUDZRITIUXHVDUXJOXJUV
        KUXGUXKVDUXJUVKUXFUWGUBUCYLYRHVRXNXOAUVDXPZUXJUBUWGUXEUXJXGXJUXIXQZYAZX
        RUXJUUIARSYRGYQUOWDUXJYRIPZUXKTUXNUXMWEUXJYSUVBUBUWPUCUDZUEUDUUIUXOUEUD
        UXJYSARTYRFJUOZXSUXJUUIUVBUXOUXPUEUXJUVDUVEUVFUXLUXJYSUXQUPUVMVLUXJUXOU
        XKUXPUXNUXJUWGUWPUBUCUXJUVDUWRUWSUXLUXJYSUXQXCUXAVLXNYBVNVPYCFYIUAYDYEW
        A $.
    $}

    ${
      $d C k n $.  $d F k n x y $.  $d k n ph x $.
      $( A Cauchy sequence of complex numbers converges, existence version.
         The rate of convergence is fixed: all terms after the nth term must be
         within ` C / n ` of the nth term, where ` C ` is a constant
         multiplier.  (Contributed by Jim Kingdon, 23-Aug-2021.) $)
      climcvg1n $p |- ( ph -> F e. dom ~~> ) $=
        ( vx vy cn cv cfv cre cmpt cim ci cmul co eqid weq fveq2 fveq2d cbvmptv
        climcvg1nlem ) AIBCDEIKILZEMZNMOZJKJLZEMZPMZOZIKQUFULMRSOZFGHUHTJIKUKUG
        PMJIUAUJUGPUIUFEUBUCUDUMTUE $.
    $}
  $}

  ${
    $d j k m n x F $.  $d j k m n x M $.  $d j k m n x Z $.  $d j k n x ph $.
    $d k m n V $.
    climcauc.1 $e |- Z = ( ZZ>= ` M ) $.
    $( A converging sequence of complex numbers is a Cauchy sequence.  This is
       like ~ climcau but adds the part that ` ( F `` k ) ` is complex.
       (Contributed by Jim Kingdon, 24-Aug-2021.) $)
    climcaucn $p |- ( ( M e. ZZ /\ 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 cz wcel cli wa cv cfv cuz wral wrex wbr crp c1 cc cmin co cabs simpl
      cdm clt 1rp a1i eqidd climdm biimpi adantl climi ralimi reximi wi eluzelz
      eleq2s eqid climcau sylan r19.29uz ex ralimdv mpan9 an32s adantll wb cau4
      syl ad2antrl sylibrd rexlimdvaa com23 imp mpd ) EIJZDKUFJZLZCMZDNZUAJZCHM
      ZONZPZHFQZWCWBBMZDNUBUCUDNAMUGRZLCWHONZPZBFQASPZVTWCWBDKNZUBUCUDNTUGRZLZC
      WEPZHFQWGVTWMWBTHCDEFGVRVSUETSJVTUHUIVTWAFJLWBUJVSDWMKRZVRVSWQDUKULUMUNWP
      WFHFWOWCCWEWCWNUEUOUPVKVRVSWGWLUQVRWGVSWLVRWFVSWLUQHFVRWDFJZWFLZLZVSWKBWE
      QZASPZWLWTVSXBWSVSXBVRWRVSWFXBWRVSLWICWJPBWEQZASPZWFXBWRWDIJZVSXDXEWDEONF
      EWDURGUSABCDWDWEWEUTZVAVBWFXCXAASWFXCXAWCWIBCWDWEXFVCVDVEVFVGVHVDWRWLXBVI
      VRWFABCDEWDWEFGXFVJVLVMVNVOVPVQ $.

    $d F a b j k $.  $d M a b j k $.  $d Z a b j k $.  $d a b j k ph $.
    serif0.2 $e |- ( ph -> M e. ZZ ) $.
    serif0.3 $e |- ( ph -> F e. V ) $.
    serif0.4 $e |- ( ph -> seq M ( + , F , CC ) e. dom ~~> ) $.
    serif0.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.) $)
    serif0 $p |- ( ph -> F ~~> 0 ) $=
      ( vx cfv cabs wral caddc cc wcel cmin co vn vm vj va cc0 cli wbr clt wrex
      vb cv cuz crp cseq wa cz climcaucn syl2anc cau3 sylib c1 peano2uzs adantl
      cdm wi eluzelz uzid peano2uz wceq fveq2 oveq2d fveq2d breq1d 4syl adantld
      rspcv ralimia simpr syl6eleq syl eluzp1m1 sylan oveq1 oveq12d wf ad2antrr
      iserf uztrn2 syldan ffvelrnd abssubd zcnd npcan sylancl cvv eluzp1p1 eqid
      ax-1cn cnex a1i syl6eleqr ralrimiva ad3antrrr eleq1d rspcva iseqm1 oveq1d
      addcl adantlr pncan2d eqtr2d 3eqtr4d sylibd ralrimdva syl5 raleqdv rspcev
      syl6an rexlimdva ralimdv mpd eqidd clim0c mpbird ) ACUEUFUGBUKZCMZNMZLUKZ
      UHUGZBUAUKZULMZOZUAFUIZLUMOZAUBUKZPQCDUNZMZQRZYQYEYPMZSTZNMZYHUHUGZBYOULM
      ZOZUOZUBUCUKZULMZOZUCFUIZLUMOZYNAYRYQUUFYPMSTNMYHUHUGUOUBUUGOUCFUILUMOZUU
      JADUPRZYPUFVDRUUKHJLUCUBYPDFGUQURLUCUBBYPDFGUSUTAUUIYMLUMAUUHYMUCFAUUFFRZ
      UOZUUFVAPTZFRZUUHYIBUUOULMZOZYMUUMUUPADUUFFGVBVCZUUHYQYOVAPTZYPMZSTZNMZYH
      UHUGZUBUUGOZUUNUURUUEUVDUBUUGYOUUGRZUUDUVDYRUVFYOUPRYOUUCRUUTUUCRUUDUVDVE
      UUFYOVFYOVGYOYOVHUUBUVDBUUTUUCYEUUTVIZUUAUVCYHUHUVGYTUVBNUVGYSUVAYQSYEUUT
      YPVJVKVLVMVPVNVOVQUUNUVEYIBUUQUUNYEUUQRZUOZUVEYEVASTZYPMZUVJVAPTZYPMZSTZN
      MZYHUHUGZYIUVIUVJUUGRZUVEUVPVEUUNUUFUPRZUVHUVQUUNUUFDULMZRZUVRUUNUUFFUVSA
      UUMVRZGVSZDUUFVFVTUUFYEWAWBZUVDUVPUBUVJUUGYOUVJVIZUVCUVOYHUHUWDUVBUVNNUWD
      YQUVKUVAUVMSYOUVJYPVJUWDUUTUVLYPYOUVJVAPWCVLWDVLVMVPVTUVIUVOYGYHUHUVIUVKY
      SSTZNMYSUVKSTZNMUVOYGUVIUVKYSUVIFQUVJYPAFQYPWEUUMUVHABCDFGHKWGWFZUUNUVHUV
      QUVJFRZUWCUUNUUMUVQUWHUWADUVJUUFFGWHWBWIWJZUVIFQYEYPUWGUUNUUPUVHYEFRZUUSD
      YEUUOFGWHWBZWJWKUVIUVNUWENUVIUVMYSUVKSUVIUVLYEYPUVIYEQRVAQRUVLYEVIUVIYEUV
      HYEUPRUUNUUOYEVFVCWLWRYEVAWMWNVLVKVLUVIYFUWFNUVIUWFUVKYFPTZUVKSTYFUVIYSUW
      LUVKSUVIUDUJPQCDYEWOAUULUUMUVHHWFUUNUUODVAPTZULMZRZUVHYEUWNRUUNUVTUWOUWBD
      UUFWPVTUWMYEUUOUWNUWNWQWHWBQWORUVIWSWTUVIUDUKZUVSRZUOZUWPFRYFQRZBFOZUWPCM
      ZQRZUWRUWPUVSFUVIUWQVRGXAAUWTUUMUVHUWQAUWSBFKXBXCUWSUXBBUWPFYEUWPVIYFUXAQ
      YEUWPCVJXDXEURUWPQRUJUKZQRUOUWPUXCPTQRUVIUWPUXCXHVCXFXGUVIUVKYFUWIUUNUVHU
      WJUWSUWKAUWJUWSUUMKXIWIXJXKVLXLVMXMXNXOYLUURUAUUOFYJUUOVIYIBYKUUQYJUUOULV
      JXPXQXRXSXTYAALYFUABCDEFGHIAUWJUOYFYBKYCYD $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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 j $.  $d A f m n x j $.  $d B f m n x j $.
    $( 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.  In both cases we have an ` if `
       expression so that we only need ` B ` to be defined where ` k e. A ` .
       In the infinite case, we also require that the indexing set be a
       decidable subset of an upperset of integers (that is, membership of
       integers in it is decidable).  These two methods of summation produce
       the same result on their common region of definition (i.e. finite sets
       of integers).  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.  (Contributed by Jim Kingdon,
       15-Feb-2022.) $)
    df-isum $a |- sum_ k e. A B = ( iota x ( E. m e. ZZ ( A C_ ( ZZ>= ` m ) /\
      A. j e. ( ZZ>= ` m ) DECID j e. A /\
      seq m ( + , ( n e. ZZ |-> if ( n e. A , [_ n / k ]_ B , 0 ) ) , CC )
        ~~> x ) \/
      E. m e. NN E. f ( f : ( 1 ... m ) -1-1-onto-> A /\
        x = ( seq 1 ( + ,
         ( n e. NN |-> if ( n <_ m , [_ ( f ` n ) / k ]_ B , 0 ) ) ,
         CC ) ` m ) ) ) ) $.

    $d A f j m n x $.  $d B f j m n x $.  $d C f j m n x $.  $d f j k m n x $.
    $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 vj vn vx vf wceq cv cfv wcel caddc cc cz cc0 cif wrex cn cuz wss wdc
      wral csb cmpt cseq cli wbr w3a c1 cfz co wf1o cle wa wex wo cio csu sseq1
      eleq2 dcbid ralbidv simpl eleq2d ifbid mpteq2dva iseqeq3 breq1d 3anbi123d
      syl rexbidv f1oeq3 anbi1d exbidv orbi12d iotabidv df-isum 3eqtr4g ) ABJZA
      EKZUALZUBZFKZAMZUCZFWCUDZNOGPGKZAMZDWICUEZQRZUFZWBUGZHKZUHUIZUJZEPSZUKWBU
      LUMZAIKZUNZWOWBNOGTWIWBUOUIDWIWTLCUEQRUFUKUGLJZUPZIUQZETSZURZHUSBWCUBZWEB
      MZUCZFWCUDZNOGPWIBMZWKQRZUFZWBUGZWOUHUIZUJZEPSZWSBWTUNZXBUPZIUQZETSZURZHU
      SACDUTBCDUTWAXFYBHWAWRXQXEYAWAWQXPEPWAWDXGWHXJWPXOABWCVAWAWGXIFWCWAWFXHAB
      WEVBVCVDWAWNXNWOUHWAWMXMJWNXNJWAGPWLXLWAWIPMZUPZWJXKWKQYDABWIWAYCVEVFVGVH
      NOWMXMWBVIVLVJVKVMWAXDXTETWAXCXSIWAXAXRXBABWSWTVNVOVPVMVQVRHACIFDEGVSHBCI
      FDEGVSVT $.
  $}

  ${
    $d j f m n x k $.  $d j f m n x A $.  $d j 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 vj vn vx vf cv cfv wcel caddc cc cz cc0 cli c1 cn nfcv csu wral cmpt
      cuz wss wdc csb cif cseq wbr w3a wrex cfz co wf1o cle wceq wa wex df-isum
      wo cio nfss nfcri nfdc nfralxy nfcsb1v nfif nfmpt nfiseq nfbr nf3an nff1o
      nfrexya nfv nffv nfeq2 nfan nfex nfor nfiotaxy nfcxfr ) CABCUAAEJZUDKZUEZ
      FJALZUFZFWDUBZMNGOGJZALZCWIBUGZPUHZUCZWCUIZHJZQUJZUKZEOULZRWCUMUNZAIJZUOZ
      WOWCMNGSWIWCUPUJZCWIWTKZBUGZPUHZUCZRUIZKZUQZURZIUSZESULZVAZHVBHABIFCEGUTX
      MCHWRXLCWQCEOCOTZWEWHWPCCAWDDCWDTZVCWGCFWDXOWFCCFADVDVEVFCWNWOQCMNWMWCCWC
      TZCMTZCGOWLXNWJCWKPCGADVDCWIBVGCPTZVHVICNTZVJCQTCWOTVKVLVNXKCESCSTZXJCIXA
      XICCWSAWTCWTTCWSTDVMCWOXHCWCXGCMNXFRCRTXQCGSXEXTXBCXDPXBCVOCXCBVGXRVHVIXS
      VJXPVPVQVRVSVNVTWAWB $.
  $}

  ${
    $d j f m n z k $.  $d j f m n z x $.  $d j f m n z A $.  $d j 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 vj vn vz vf cv cfv caddc cc cz cc0 c1 cn nfcv csu cuz wcel wral cmpt
      wss wdc csb cif cseq cli wbr w3a wrex cfz co wf1o cle wceq wa wex df-isum
      wo cio nfss nfcri nfdc nfralxy nfcsb nfif nfmpt nfiseq nfbr nf3an nfrexxy
      nff1o nfv nffv nfeq2 nfan nfex nfor nfiotaxy nfcxfr ) ABCDUABGLZUBMZUFZHL
      BUCZUGZHWFUDZNOIPILZBUCZDWKCUHZQUIZUEZWEUJZJLZUKULZUMZGPUNZRWEUOUPZBKLZUQ
      ZWQWENOISWKWEURULZDWKXBMZCUHZQUIZUEZRUJZMZUSZUTZKVAZGSUNZVCZJVDJBCKHDGIVB
      XOAJWTXNAWSAGPAPTZWGWJWRAABWFEAWFTZVEWIAHWFXQWHAAHBEVFVGVHAWPWQUKANOWOWEA
      WETZANTZAIPWNXPWLAWMQAIBEVFADWKCAWKTFVIAQTZVJVKAOTZVLAUKTAWQTVMVNVOXMAGSA
      STZXLAKXCXKAAXABXBAXBTAXATEVPAWQXJAWEXIANOXHRARTXSAISXGYBXDAXFQXDAVQADXEC
      AXETFVIXTVJVKYAVLXRVRVSVTWAVOWBWCWD $.
  $}

  ${
    $d A x $.  $d M x $.  $d N x $.
    sumdc.m $e |- ( ph -> M e. ZZ ) $.
    sumdc.ss $e |- ( ph -> A C_ ( ZZ>= ` M ) ) $.
    sumdc.dc $e |- ( ph -> A. x e. ( ZZ>= ` M ) DECID x e. A ) $.
    sumdc.n $e |- ( ph -> N e. ZZ ) $.
    $( Decidability of a subset of upper integers.  (Contributed by Jim
       Kingdon, 1-Jan-2022.) $)
    sumdc $p |- ( ph -> DECID N e. A ) $=
      ( cuz cfv wcel wdc wn cv wral wceq eleq1 wo cz dcbid rspcv wa ssneld olcd
      mpan9 imp df-dc sylibr eluzdc syl2anc exmiddc syl mpjaodan ) AEDJKZLZECLZ
      MZUPNZABOZCLZMZBUOPUPURHVBURBEUOUTEQVAUQUTECRUAUBUFAUSUCZUQUQNZSURVCVDUQA
      USVDACUOEGUDUGUEUQUHUIAUPMZUPUSSADTLETLVEFIDEUJUKUPULUMUN $.
  $}

  ${
    $d A a b c k m n x $.  $d A f j k m n x $.  $d B a b c m n x $.
    $d B f j m n x $.  $d C a b c m n x $.  $d C f j m n x $.
    $d M a b c m x $.  $d a b c k m n ph x $.  $d f k m n ph x $.
    sumeq2d.bc $e |- ( ( ph /\ k e. A ) -> B = C ) $.
    $( Equality theorem for sum.  (Contributed by Jim Kingdon, 11-Feb-2022.) $)
    sumeq2d $p |- ( ph -> sum_ k e. A B = sum_ k e. A C ) $=
      ( vm vj vn vx vf cv wcel caddc cc cz cc0 cn wceq wa cuz cfv wss wral cmpt
      wdc csb cif cseq cli wbr w3a wrex c1 cfz co wf1o cle wex wo cio csu simpr
      ralrimiva ad4antr nfcsb1v nfeq csbeq1a eqeq12d rspc simpllr simplrl sumdc
      sylc simplrr ifeq1dadc mpteq2dva iseqeq3 breq1d pm5.32da 3bitr4g rexbidva
      df-3an wf f1of ad3antlr simplr simp-4r nnzd fznn mpbir2and ffvelrnd zdcle
      syl wb syl2anc fveq1d eqeq2d exbidv orbi12d iotabidv df-isum 3eqtr4g ) AB
      GLZUAUBZUCZHLBMUFHXEUDZNOIPILZBMZEXHCUGZQUHZUEZXDUIZJLZUJUKZULZGPUMZUNXDU
      OUPZBKLZUQZXNXDNOIRXHXDURUKZEXHXSUBZCUGZQUHZUEZUNUIZUBZSZTZKUSZGRUMZUTZJV
      AXFXGNOIPXIEXHDUGZQUHZUEZXDUIZXNUJUKZULZGPUMZXTXNXDNOIRYAEYBDUGZQUHZUEZUN
      UIZUBZSZTZKUSZGRUMZUTZJVABCEVBBDEVBAYLUUIJAXQYSYKUUHAXPYRGPAXDPMZTZXFXGTZ
      XOTUULYQTXPYRUUKUULXOYQUUKUULTZXMYPXNUJUUMXLYOSXMYPSUUMIPXKYNUUMXHPMZTZXI
      XJYMQUUOXITXICDSZEBUDZXJYMSZUUOXIVCAUUQUUJUULUUNXIAUUPEBFVDZVEUUPUUREXHBE
      XJYMEXHCVFEXHDVFVGELZXHSCXJDYMEXHCVHEXHDVHVIVJVNUUOHBXDXHAUUJUULUUNVKUUKX
      FXGUUNVLUUKXFXGUUNVOUUMUUNVCVMVPVQNOXLYOXDVRWNVSVTXFXGXOWCXFXGYQWCWAWBAYJ
      UUGGRAXDRMZTZYIUUFKUVBXTYHUUEUVBXTTZYGUUDXNUVCXDYFUUCUVCYEUUBSYFUUCSUVCIR
      YDUUAUVCXHRMZTZYAYCYTQUVEYATZYBBMUUQYCYTSZUVFXRBXHXSXTXRBXSWDUVBUVDYAXRBX
      SWEWFUVFXHXRMZUVDYAUVCUVDYAWGUVEYAVCUVFUUJUVHUVDYATWOUVFXDAUVAXTUVDYAWHWI
      XHXDWJWNWKWLAUUQUVAXTUVDYAUUSVEUUPUVGEYBBEYCYTEYBCVFEYBDVFVGUUTYBSCYCDYTE
      YBCVHEYBDVHVIVJVNUVEUUNUUJYAUFUVEXHUVCUVDVCWIUVEXDAUVAXTUVDVKWIXHXDWMWPVP
      VQNOYEUUBUNVRWNWQWRVTWSWBWTXAJBCKHEGIXBJBDKHEGIXBXC $.
  $}

  ${
    $d A f j k m n x $.  $d B f j m n x $.  $d C f j m n x $.
    $( 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 ) $=
      ( vm vj vn vx vf wceq cv cfv wcel caddc cc cz csb cc0 cn wa wral cuz cmpt
      wss wdc cif cseq cli wbr w3a wrex c1 cfz co wf1o cle wex wo cio csu simpr
      simp-4l nfcsb1v nfeq csbeq1a eqeq12d rspc simpllr simplrl sumdc ifeq1dadc
      sylc simplrr mpteq2dva iseqeq3 breq1d pm5.32da df-3an 3bitr4g rexbidva wf
      syl f1of ad3antlr simplr wb simp-4r nnzd mpbir2and ffvelrnd zdcle syl2anc
      fznn fveq1d eqeq2d exbidv orbi12d iotabidv df-isum 3eqtr4g ) BCJZDAUAZAEK
      ZUBLZUDZFKAMUEFXDUAZNOGPGKZAMZDXGBQZRUFZUCZXCUGZHKZUHUIZUJZEPUKZULXCUMUNZ
      AIKZUOZXMXCNOGSXGXCUPUIZDXGXRLZBQZRUFZUCZULUGZLZJZTZIUQZESUKZURZHUSXEXFNO
      GPXHDXGCQZRUFZUCZXCUGZXMUHUIZUJZEPUKZXSXMXCNOGSXTDYACQZRUFZUCZULUGZLZJZTZ
      IUQZESUKZURZHUSABDUTACDUTXBYKUUHHXBXPYRYJUUGXBXOYQEPXBXCPMZTZXEXFTZXNTUUK
      YPTXOYQUUJUUKXNYPUUJUUKTZXLYOXMUHUULXKYNJXLYOJUULGPXJYMUULXGPMZTZXHXIYLRU
      UNXHTXHXBXIYLJZUUNXHVAXBUUIUUKUUMXHVBXAUUODXGADXIYLDXGBVCDXGCVCVDDKZXGJBX
      ICYLDXGBVEDXGCVEVFVGVLUUNFAXCXGXBUUIUUKUUMVHUUJXEXFUUMVIUUJXEXFUUMVMUULUU
      MVAVJVKVNNOXKYNXCVOWBVPVQXEXFXNVRXEXFYPVRVSVTXBYIUUFESXBXCSMZTZYHUUEIUURX
      SYGUUDUURXSTZYFUUCXMUUSXCYEUUBUUSYDUUAJYEUUBJUUSGSYCYTUUSXGSMZTZXTYBYSRUV
      AXTTZYAAMXBYBYSJZUVBXQAXGXRXSXQAXRWAUURUUTXTXQAXRWCWDUVBXGXQMZUUTXTUUSUUT
      XTWEUVAXTVAUVBUUIUVDUUTXTTWFUVBXCXBUUQXSUUTXTWGWHXGXCWMWBWIWJXBUUQXSUUTXT
      VBXAUVCDYAADYBYSDYABVCDYACVCVDUUPYAJBYBCYSDYABVEDYACVEVFVGVLUVAUUMUUIXTUE
      UVAXGUUSUUTVAWHUVAXCXBUUQXSUUTVHWHXGXCWKWLVKVNNOYDUUAULVOWBWNWOVQWPVTWQWR
      HABIFDEGWSHACIFDEGWSWT $.
  $}


$(
###############################################################################
  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
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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 cmul co wceq wb wa zcn adantr 3ad2ant1
      cc mpbird cv wrex cdiv divides 3adant2 3ad2ant3 adantl simpl2 zapne mpan2
      cap 0z divmulap3d eqcom syl6bb biimprd impr simprl rexlimdvaa simpr simp2
      eqeltrd divcanap1d oveq1 eqeq1d rspcev syl2anc ex impbid bitrd ) ADEZAFGZ
      BDEZHZABIJZCUAZAKLZBMZCDUBZBAUCLZDEZVKVMVOVSNVLCABUDUEVNVSWAVNVRWACDVNVPD
      EZVROOVTVPDVNWBVRVTVPMZVNWBOZWCVRWDWCBVQMVRWDBVPAVNBSEZWBVMVKWEVLBPUFZQWB
      VPSEVNVPPUGVNASEZWBVKVLWGVMAPRZQWDAFUKJZVLVKVLVMWBUHVNWIVLNZWBVKVLWJVMVKF
      DEWJULAFUIUJRZQTUMBVQUNUOUPUQVNWBVRURVBUSVNWAVSVNWAOWAVTAKLZBMZVSVNWAUTVN
      WMWAVNBAWFWHVNWIVLVKVLVMVAWKTVCQVRWMCVTDVPVTMVQWLBVPVTAKVDVEVFVGVHVIVJ $.
  $}

  $( 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 wb nnz nnne0 jca adantr
    cq dvdsval2 3expa sylan clt zq adantl nnq nngt0 modq0 syl3anc bitr4d ) ACDZ
    BEDZFZABGHZBAIJEDZBAKJLMZULAEDZALNZFUMUOUPOZULURUSAPAQRURUSUMUTABUAUBUCUNBT
    DZATDZLAUDHZUQUPOUMVAULBUEUFULVBUMAUGSULVCUMAUHSBAUIUJUK $.

  ${
    $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 $.
  $}

  $( Divisibility is decidable.  (Contributed by Jim Kingdon, 14-Nov-2021.) $)
  dvdsdc $p |- ( ( M e. NN /\ N e. ZZ ) -> DECID M || N ) $=
    ( cn wcel cz wa cdvds wbr wdc cmo co cc0 simpr simpl zmodcld nn0zd 0z zdceq
    wceq sylancl dvdsval3 dcbid mpbird ) ACDZBEDZFZABGHZIBAJKZLSZIZUFUHEDLEDUJU
    FUHUFBAUDUEMUDUENOPQUHLRTUFUGUIABUAUBUC $.

  $( 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 wbr wb wa cc0 cq adantr syl2anc caddc zq simpr oveq1d
    modqadd1 cn cmin cdvds clt nngt0 q0mod eqeq2d cneg ad2antrl ad2antll qnegcl
    nnq syl simprl zcnd simprr negsubd negidd eqeq12d sylibd qsubcl mp1i npcand
    ex 0z addid2d impbid zsubcl dvdsval3 sylan2 3bitr4d 3impb ) CUADZAEDZBEDZAC
    FGZBCFGZHZCABUBGZUCIZJVMVNVOKZKZVSCFGZLCFGZHZWCLHZVRVTWBWDLWCWBCMDZLCUDIZWD
    LHVMWGWACULNZVMWHWACUENZCUFOUGWBVRWEWBVRABUHZPGZCFGZBWKPGZCFGZHZWEWBVRWPWBV
    RKZABWKCWBAMDZVRVNWRVMVOAQUIZNWBBMDZVRVOWTVMVNBQUJZNZWQWTWKMDXBBUKUMWBWGVRW
    INWBWHVRWJNWBVRRTVDWBWMWCWOWDWBWLVSCFWBABWBAVMVNVOUNUOZWBBVMVNVOUPUOZUQSWBW
    NLCFWBBXDURSUSUTWBWEVSBPGZCFGZLBPGZCFGZHZVRWBWEXIWBWEKZVSLBCXJWRWTVSMDWBWRW
    EWSNWBWTWEXANZABVAOLEDLMDXJVELQVBXKWBWGWEWINWBWHWEWJNWBWERTVDWBXFVPXHVQWBXE
    ACFWBABXCXDVCSWBXGBCFWBBXDVFSUSUTVGWAVMVSEDVTWFJABVHCVSVIVJVKVL $.

  ${
    $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 zq qabsord 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 zq qabsord 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 $.
  $}

  $( Divisibility of integers is decidable.  (Contributed by Jim Kingdon,
     17-Jan-2022.) $)
  zdvdsdc $p |- ( ( M e. ZZ /\ N e. ZZ ) -> DECID M || N ) $=
    ( cz wcel wa cc0 clt wbr cdvds wdc wceq cn simpll simpr elnnz simplr dvdsdc
    sylanbrc syl2anc wb cneg znegcld zred lt0neg1d mpbid negdvdsb adantr mpbird
    dcbid zdceq mpan2 ad2antlr breq1 adantl 0dvds bitrd w3o ztri3or0 mpjao3dan
    0z ) ACDZBCDZEZAFGHZABIHZJZAFKZFAGHZVCVDEZVFAUAZBIHZJZVIVJLDZVBVLVIVJCDFVJG
    HZVMVIAVAVBVDMZUBVIVDVNVCVDNVIAVIAVOUCUDUEVJORVAVBVDPVJBQSVIVEVKVCVEVKTVDAB
    UFUGUIUHVCVGEZVFBFKZJZVBVRVAVGVBFCDVRUTBFUJUKULVPVEVQVPVEFBIHZVQVGVEVSTVCAF
    BIUMUNVBVSVQTVAVGBUOULUPUIUHVCVHEZALDZVBVFVTVAVHWAVAVBVHMVCVHNAORVAVBVHPABQ
    SVAVDVGVHUQVBAURUGUS $.

  $( 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 cc0 wne wa w3a cmul co cdvds wbr cv zmulcld wceq adantr zcnd
      jca simp3l simp1 simp2 simpr mul12d eqeq1d mulcld cap simpl3r wb 0z zapne
      sylancl mpbird mulcanapd bitr3d biimpd dvds1lem dvdscmul 3adant3r impbid
      wi ) BEFZCEFZAEFZAGHZIZJZABKLZACKLZMNZBCMNZVHDVIVJBCDOZVHVIEFVJEFVHABVCVD
      VEVFUAZVCVDVGUBZPVHACVNVCVDVGUCZPTVHVCVDVOVPTVHVMEFZUDZVHVQIZVMVIKLZVJQZV
      MBKLZCQZVSAWBKLZVJQWAWCVSWDVTVJVSAVMBVSAVHVEVQVNRZSZVSVMVRSZVSBVHVCVQVORS
      ZUEUFVSWBCAVSVMBWGWHUGVSCVHVDVQVPRSWFVSAGUHNZVFVEVFVCVDVQUIVSVEGEFWIVFUJW
      EUKAGULUMUNUOUPUQURVCVDVEVLVKVBVFABCUSUTVA $.

    $( 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 cc0 wne wa w3a cmul co cdvds wbr cv zmulcld wceq zcnd adantr
      simp1 simp3l simp2 jca 3simpa simpr cc mulassd eqeq1d mulcld cap wb zapne
      simpl3r 0z mpan2 3ad2ant3 mpbird bitr3d biimpd dvds1lem dvdsmulc 3adant3r
      mulcanap2d wi impbid ) BEFZCEFZAEFZAGHZIZJZBAKLZCAKLZMNZBCMNZVKDVLVMBCDOZ
      VKVLEFVMEFVKBAVFVGVJTZVFVGVHVIUAZPVKCAVFVGVJUBZVRPUCVFVGVJUDVKVPEFZUEZVKV
      TIZVPVLKLZVMQZVPBKLZCQZWBWEAKLZVMQWDWFWBWGWCVMWBVPBAWBVPWARZVKBUFFVTVKBVQ
      RSZWBAVKVHVTVRSRZUGUHWBWECAWBVPBWHWIUIWBCVKVGVTVSSRWJWBAGUJNZVIVHVIVFVGVT
      UMVKWKVIUKZVTVJVFWLVGVHWLVIVHGEFWLUNAGULUOSUPSUQVCURUSUTVFVGVHVOVNVDVIABC
      VAVBVE $.
  $}

  $( 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 $.

  ${
    dvdslelemd.1 $e |- ( ph -> M e. ZZ ) $.
    dvdslelemd.2 $e |- ( ph -> N e. NN ) $.
    dvdslelemd.3 $e |- ( ph -> K e. ZZ ) $.
    dvdslelemd.lt $e |- ( ph -> N < M ) $.
    $( Lemma for ~ dvdsle .  (Contributed by Jim Kingdon, 8-Nov-2021.) $)
    dvdslelemd $p |- ( ph -> ( K x. M ) =/= N ) $=
      ( cmul clt wbr wo cc0 cle cz wcel syl cr adantr cq co wne c1 0z zlelttric
      sylancl wb zgt0ge1 orbi2d mpbid wa zred remulcld 0red nnred cneg renegcld
      le0neg1d biimpa nngt0d lttrd ltled mulge0d mulneg1d breq2d bitr4d lelttrd
      recnd mpbird ex simpr lemulge12d ltletrd orim12d mpd zq qmulcl syl2anc cn
      nnq qlttri2 ) ABCIUAZDUBZWBDJKZDWBJKZLZABMNKZUCBNKZLZWFAWGMBJKZLZWIABOPZM
      OPWKGUDBMUEUFAWJWHWGAWLWJWHUGGBUHQUIUJAWGWDWHWEAWGWDAWGUKZWBMDWMBCABRPZWG
      ABGULZSZACRPZWGACEULZSZUMZWMUNADRPZWGADFUOZSWMWBMNKZMBUPZCIUAZNKZWMXDCWMB
      WPUQWSAWGMXDNKABWOURUSAMCNKZWGAMCAUNZWRAMDCXHXBWRADFUTZHVAVBZSVCWMXCMWBUP
      ZNKXFWMWBWTURWMXEXKMNWMBCWMBWPVHWMCWSVHVDVEVFVIAMDJKWGXISVGVJAWHWEAWHUKZD
      CWBAXAWHXBSAWQWHWRSZXLBCAWNWHWOSZXMUMADCJKWHHSXLCBXMXNAXGWHXJSAWHVKVLVMVJ
      VNVOAWBTPZDTPZWCWFUGABTPZCTPZXOAWLXQGBVPQACOPXRECVPQBCVQVRADVSPXPFDVTQWBD
      WAVRVI $.
  $}

  ${
    $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 cle wbr cdvds wi clt simpr cv cmul co wceq wrex simplr
      a1d simplll simpllr dvdslelemd neneqd nrexdv nnzd divides syl2anc pm2.21d
      wb simpll mtbird wo nnz zlelttric sylan2 mpjaodan ) ADEZBFEZGZABHIZABJIZV
      AKBALIZUTVAGVAVBUTVAMTUTVCGZVBVAVDVBCNZAOPZBQZCDRZVDVGCDVDVEDEZGZVFBVJVEA
      BURUSVCVIUAURUSVCVIUBVDVIMUTVCVISUCUDUEVDURBDEZVBVHUJURUSVCUKVDBURUSVCSUF
      CABUGUHULUIUSURVKVAVCUMBUNABUOUPUQ $.
  $}

  $( 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 wn simpr breq1 wb adantr expcom
    0dvds adantl dvdszrcl zcn abs00ad bicomd bitrd sylan9bb fveq2 syl6eq eqeq2d
    abs0 bitr4d syl5ib expd cle simprl neqne dvdsleabs2 syl3anc syl5rbbr eqeq1d
    wne eqcom a1dd expcomd cr abscld letri3 syl2anr syl5bb biimprd syld a1d wdc
    wo 0z zdceq mpan2 exmiddc syl mpjaod com34 mpdd mpcom imp ) ABCDZBACDZAEFZB
    EFZGZAHIZBHIZJZWEWFWIKZABUAWLBLGZWEWMKZWNMZWNWLWOWNWLJZWEWFWIWEWFJWFWQWIWEW
    FNWQWFWGLGZWIWNWFLACDZWLWRBLACOWLWSALGZWRWJWSWTPWKASQWJWTWRPWKWJWRWTWJAAUBZ
    UCUDQUEUFWQWHLWGWNWHLGZWLWNWHLEFZLBLEUGUJUHQUIUKULUMRWPWLWOWPWLJZWEWGWHUNDZ
    WMXDWJWKBLVAZWEXEKWPWJWKUOWLWKWPWJWKNZTWPXFWLBLUPQABUQURWLWEXEWMKKWPWLWEWFX
    EWIWLWTWEWFXEWIKZKZKZWTMZWTWLXJWTWLJZWFWEXHXLWFWEJZWIXEXMWEXLWIWFWENXLWELWH
    GZWIWTWELBCDZWLXNALBCOWKXOXNPWJWKXOWNXNBSXNXBWKWNWHLVBWKBBUBZUCUSUETUFXLWGL
    WHWTWRWLWTWGXCLALEUGUJUHQUTUKULVCVDRXKWLXJXKWLJZXIWEXQWFWHWGUNDZXHXQWKWJALV
    AZWFXRKWLWKXKXGTXKWJWKUOXKXSWLALUPQBAUQURWLXRXHKXKWLXRXEWIWLWIXRXEJZWIWHWGG
    ZWLXTWGWHVBWKWHVEIWGVEIYAXTPWJWKBXPVFWJAXAVFWHWGVGVHVIVJUMTVKVLRWJWTXKVNZWK
    WJWTVMZYBWJLHIZYCVOALVPVQWTVRVSQVTWATWBRWKWNWPVNZWJWKWNVMZYEWKYDYFVOBLVPVQW
    NVRVSTVTWCWD $.

  $( 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 wrex simpll oveq1 eqeq1d 0z zapne mpan2 divcanap2d
      cap biimpar rspcedvd w3a 3jca dvdsval2 mpbid divides syl2anc mpbird exp31
      syl com3r mpd imp ) ABDEZAFSZBAGHZBDEZVGAIJZBIJZKZVHVJUAABUBVMVHVGVJVMVHV
      GVJVMVHKZVGKZVJCUCZVILHZBMZCIUDZVNVSVGVNVRAVILHZBMZCAIVKVLVHUEZVPAMZVRWAN
      VNWCVQVTBVPAVILUFUGOVNBAVMBPJZVHVLWDVKBTOQVMAPJZVHVKWEVLATQQVMAFULEZVHVKW
      FVHNZVLVKFIJWGUHAFUIUJQUMUKUNQVOVIIJZVLVJVSNVOVGWHVNVGRVOVKVHVLUOZVGWHNVN
      WIVGVNVKVHVLWBVMVHRVMVLVHVKVLRQZUPQABUQVCURVNVLVGWJQCVIBUSUTVAVBVDVEVF $.
  $}

  ${
    $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 wb ssrab2 eqsstri anim12i adantr ad2antrl ad2antll simprr
      sseli cmul nnap0d divmulap3d simprl divmulap2d bitr4d eqcom 3bitr4g f1o2d
      sylan2 ) EIJZBHCCEBKZLMZEHKZLMZDGVDVECJZNVFAKEUCUAZAIUBZCVIVDVEVKJVFVKJCV
      KVEFOAVEEPQFUDVDVGCJZNVHVKCVLVDVGVKJVHVKJCVKVGFOAVGEPQFUDVDVIVLNZNVHVERZV
      FVGRZVEVHRVGVFRVMVDVEIJZVGIJZNZVNVOUEVIVPVLVQCIVECVKIFVJAIUFUGZUMCIVGVSUM
      UHVDVRNZVNEVEVGUNMRVOVTEVEVGVDESJVRETUIZVPVESJVDVQVETUJZVQVGSJVDVPVGTUKZV
      TVGVDVPVQULUOUPVTEVGVEWAWCWBVTVEVDVPVQUQUOURUSVCVEVHUTVGVFUTVAVB $.
  $}

  ${
    $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 wrex cn wb adantl ralrimiv
      syl expcom cabs cfv cle clt wss nnssz zcn abscld arch ssrexv mpsyl zabscl
      cr zltnle sylan rexbidva rexnalim syl6bi wi ralim dvdsleabs 3expb expdimp
      mpd syl11 mtod wdc 0z zdceq mpan2 nnedc mpbid dvds0 breq2 syl5ibr impbid1
      ) BCDZAEZBFGZACHZBIJZVTVQWAVTVQKZBILZMZWAWBWCVRBUAUBZUCGZACHZVQWGMZVTVQWE
      VRUDGZACNZWHOCUEVQWIAONZWJUFVQWEUMDWKVQBBUGUHWEAUISWIAOCUJUKVQWJWFMZACNWH
      VQWIWLACVQWECDVRCDZWIWLPBULWEVRUNUOUPWFACUQURVDQVTVQWCWGVSWFUSZACHVTWGVQW
      CKZVSWFACUTWOWNACWMWOWNWMVQWCWNVRBVAVBTRVEVCVFVQWDWAPZVTVQWAVGZWPVQICDWQV
      HBIVIVJBIVKSQVLTWAVSACWMVSWAVRIFGVRVMBIVRFVNVORVP $.

    $( 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 wn elfzle2 adantl elfzelz syl2anc
    clt cz wb nnz adantr zltlem1 mpbird elfznn nnzd zltnle mpbid wi dvdsle mtod
    ) ACDZBEAEFGZHGDZIZABJKZABLKZUOBARKZUQMZUOURBUMLKZUNUTULBEUMNOUOBSDZASDZURU
    TTUNVAULBEUMPOULVBUNAUAUBZBAUCQUDUOVAVBURUSTUOBUNBCDZULBUMUEOZUFVCBAUGQUHUO
    VBVDUPUQUIVCVEABUJQUK $.

  $( 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 wa wne wn cz syl2anc mpbid adantr cn0 syl
    wb cn cle clt elfzolt2 elfzoelz elfzoel2 zltnle cdif elfzonn0 simpr eldifsn
    wi csn sylanbrc dfn2 syl6eleqr dvdsle impancom mtod 0z zdceq mpan2 nnedc ex
    wdc dvds0 breq2 syl5ibrcom impbid ) BCADEFZABGHZBCIZVIVJVKVIVJJZBCKZLZVKVLV
    MABUAHZVIVOLZVJVIBAUBHZVPBCAUCVIBMFZAMFZVQVPSBCAUDZBCAUEZBAUFNOPVIVMVJVOVIV
    MJZVSBTFVJVOUKVIVSVMWAPWBBQCULUGZTWBBQFZVMBWCFVIWDVMBAUHPVIVMUIBQCUJUMUNUOA
    BUPNUQURVIVNVKSZVJVIVRWEVTVRVKVDZWEVRCMFWFUSBCUTVABCVBRRPOVCVIVJVKACGHZVIVS
    WGWAAVERBCAGVFVGVH $.

  $( 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 cc0 wceq syl syl3anc breq2d nnzd moddvds
    cq wb w3a cdiv cfl cfv cmul clt simpl3 simpl2 nnq nngt0d modqval simpl1 znq
    wa zq syl2anc flqcld simpr dvdsmultr1d zmulcld zcnd subid1d breqtrrd mpbird
    0zd eqeq2d 3bitr3d 3bitrd ) ADEZCDEZBFEZUAZACGHZUNZABCIJZGHABCBCUBJZUCUDZUE
    JZKJZGHZABLKJZGHZABGHVNVOVSAGVNBSEZCSEZLCUFHVOVSMVNVKWCVIVJVKVMUGZBUONVNVJW
    DVIVJVKVMUHZCUINVNCWFUJBCUKOPVNBAIJZVRAIJZMZWGLAIJZMZVTWBVNWHWJWGVNWHWJMZAV
    RLKJZGHZVNAVRWMGVNACVQVNAVIVJVKVMULZQVNCWFQZVNVPVNVKVJVPSEWEWFBCUMUPUQZVLVM
    URUSVNVRVNVRVNCVQWPWQUTZVAVBVCVNVIVRFEZLFEZWLWNTWOWRVNVEZVRLAROVDVFVNVIVKWS
    WIVTTWOWEWRBVRAROVNVIVKWTWKWBTWOWEXABLAROVGVNWABAGVNBVNBWEVAVBPVH $.

  $( 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 syl adantr oveq1d eqtrd
    cq clt simp2 zq simp3 simp1 nnq nngt0d modqmulmod syl22anc dvdsval3 3adant3
    eqcomd wb biimpa zcnd mul02d q0mod syl2anc ex ) CDEZAFEZBFEZGZCAHIZABJKCLKZ
    MNVCVDOZVEACLKZBJKZCLKZMVCVEVINVDVCVIVEVCATEZVBCTEZMCUAIZVIVENVCVAVJUTVAVBU
    BAUCPUTVAVBUDZVCUTVKUTVAVBUEZCUFPZVCCVNUGZABCUHUIULQVFVIMBJKZCLKZMVFVHVQCLV
    FVGMBJVCVDVGMNZUTVAVDVSUMVBCAUJUKUNRRVFVRMCLKZMVFVQMCLVFBVFBVCVBVDVMQUOUPRV
    FVKVLVTMNVCVKVDVOQVCVLVDVPQCUQURSSSUS $.

  ${
    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 $.

    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 $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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.  (Contributed by AV, 17-Jun-2021.) $)
  zeo3 $p |- ( N e. ZZ -> ( 2 || N \/ -. 2 || N ) ) $=
    ( cz wcel c2 cdvds wbr wn c1 cmin co cdiv caddc wo peano2zm zeo syl wb zeo2
    zcn 1cnd npcand oveq1d eleq1d cc0 wne 2z 2ne0 dvdsval2 mp3an12 bitr4d bitrd
    notbid orbi12d mpbid orcomd ) ABCZDAEFZGZUQUPAHIJZDKJBCZUSHLJZDKJZBCZMZURUQ
    MUPUSBCZVDANZUSOPUPUTURVCUQUPUTVCGZURUPVEUTVGQVFUSRPUPVCUQUPVCADKJZBCZUQUPV
    BVHBUPVAADKUPAHASUPTUAUBUCDBCDUDUEUPUQVIQUFUGDAUHUIUJZULUKVJUMUNUO $.

  $( An integer is even or odd but not both.  (Contributed by Jim Kingdon,
     10-Nov-2021.) $)
  zeoxor $p |- ( N e. ZZ -> ( 2 || N \/_ -. 2 || N ) ) $=
    ( cz wcel c2 cdvds wbr wn wo wxo zeo3 wa pm3.24 df-xor mpbiran2 sylibr ) AB
    CDAEFZPGZHZPQIZAJSRPQKGPLPQMNO $.

  $( An integer is even or odd but not both.  (Contributed by AV,
     17-Jun-2021.) $)
  zeo4 $p |- ( N e. ZZ -> ( 2 || N <-> -. -. 2 || N ) ) $=
    ( cz wcel c2 cdvds wbr wn wxo wb zeoxor xorbin syl ) ABCDAEFZMGZHMNGIAJMNKL
    $.

  $( 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 cap 2ap0 pm3.2i divmulap ancoms subdi
      w3a mp3an1 syl2an wi zsubcl syl5ibcom sylbird sylbid rexlimivv sylbir mto
      eleq1 wxo df-xor xorbin bicomd ) BDEZFBUCUDZUECUFZFGHZBIZCDJZUEZFAUFZGHZK
      LHZBIZADJZYQYRUUBFDEYQYRUUBMUGCFBUHUOUIYQUUHUUBUJZUUHUUBNZUEZUUCUUHMYQBUK
      EZBUPEZBOZUPEZUJNUUIBULUULUUMUUIUUOUUMUUIUULCABUMUNUULUUOUUIUUOFUAUFZGHZK
      LHZUUNIZUADJZUBUFZFGHZUUNIZUBDJZUJUULUUIUBUAUUNUMUULUUTUUHUVDUUBUULUUSUUH
      UADUULUUPDEZNZUUSUUHUVFUUSNUUPKLHZOZDEZFUVHGHZKLHZBIZUUHUVEUVIUULUUSUVEUV
      GDEUVIUUPUQZUVGURPUSUVFUUSUVLUVFUUSBUUROZIZUVLUVFUURTEZBTEZUUSUVOMUVEUVPU
      ULUVEUUPTEZUVPUUPUTZUVRUUQTEZUVPFTEZUVRUVTQFUUPVAZUOUUQVBPPUNUVFBUULUVEVC
      VFUURBVDVEUVOUVNBIUVFUVLBUVNVGUVFUVNUVKBUVEUVNUVKIUULUVEUVNFUVGGHZKRHZOZU
      VKUVEUURUWDUVEUURUUQFKGHZLHZKRHZUWDUVEUWHUUQUWFKRHZLHZUURUVEUVTUWHUWJIZUV
      EUWAUVRUVTQUVSUWBVHUVTUWFTEKTEZUWKFKQSVISUUQUWFKVQVJPUWIKUUQLUWIFKRHKUWFF
      KRVKVLVMVNVRVOUVEUWCUWGKRUVEUVRUWCUWGIZUVSUWAUVRUWLUWMQSFUUPKVPVSPVTWAWBU
      VEUVKUWCOZKLHZUWEUVEUVJUWNKLUVEUWAUVGTEZUVJUWNIQUVEUVGUVMWCZFUVGWDVHVTUVE
      UWCTEZUWLUWEUWOIUVEUWAUWPUWRQUWQFUVGVAVHSUWCKWGWEWAWAUNWFWHWIWJUUGUVLAUVH
      DUUDUVHIZUUFUVKBUWSUUEUVJKLUUDUVHFGWKVTWFWLVEWQWMUULUVCUUBUBDUULUVADEZNZU
      VCUUBUXAUVCNUVAOZDEZUXBFGHZBIZUUBUWTUXCUULUVCUVAURUSUXAUVCUXEUXAUVCBUVBOZ
      IZUXEUWTUVBTEZUVQUVCUXGMUULUWTUVATEZUWAUXHUVAUTZQUVAFVAWEBWNUVBBVDWOUXAUX
      EUXFBIUXGUXAUXDUXFBUWTUXDUXFIZUULUWTUXIUWAUXKUXJQUVAFWRWEUNWFBUXFVGWPWIWJ
      UUAUXECUXBDYSUXBIYTUXDBYSUXBFGWSWFWLVEWQWMWTXAXBXCXDUUJKFXIHZDEZXEUUJUUGU
      UANZCDJADJUXMUUGUUAACDDXFUXNUXMACDDUXNUUFYTIZUUDDEZYSDEZNZUXMUUFYTBXGUXRU
      XOUUFFYSGHZIZUXMUXQUXOUXTMUXPUXQYTUXSUUFUXQYSTEZUWAYTUXSIYSUTZQYSFXHWEXJU
      NUXRUXTUXSUUERHZKIZUXMUXQUXSTEZUUETEZUYDUXTMZUXPUXQUWAUYAUYEQUYBFYSVAVHUX
      PUWAUUDTEZUYFQUUDUTZFUUDVAVHUYEUYFUWLUYGSUXSUUEKXKXLWOUXRUYDYSUUDRHZUXLIZ
      UXMUXPUYHUYAUYKUYDMUXQUYIUYBUYHUYANZUYKFUYJGHZKIZUYDUYAUYHUYKUYNMZUYAUYHN
      UYJTEZUYOYSUUDXMUWLUYPUWAFXNXOUDZNZUYOSUWAUYQQXPXQUYKUXLUYJIUWLUYPUYRYAUY
      NUYJUXLVGKUYJFXRWHVSPXSUYLUYMUYCKUYAUYHUYMUYCIZUWAUYAUYHUYSQFYSUUDXTYBXSW
      FWIYCUXQUXPUYKUXMYDUXQUXPNUYJDEUYKUXMYSUUDYEUYJUXLDYLYFXSYGYGYHXAYIYJYKUU
      IUUKNZUUHUUCUYTUUHUUBYMUUHUUCMUUHUUBYNUUHUUBYOYJYPWEWI $.

    $( 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 $.

  $( 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.) $)
  mod2eq1n2dvds $p |- ( N e. ZZ -> ( ( N mod 2 ) = 1 <-> -. 2 || N ) ) $=
    ( cz wcel c2 cmo co cc0 wceq c1 cdvds wn wb wa pm13.181 mpan2 neneqd adantl
    wbr wne cfz 0ne1 mod2eq0even biimpa notnotd 2falsed simpr 1ne0 notbid mpbid
    adantr 2thd wo cmin 2nn zmodfz 2m1e1 oveq2i syl6eleq fz01or sylib mpjaodan
    cn ) ABCZADEFZGHZVDIHZDAJRZKZLVFVCVEMZVFVHVEVFKVCVEVDIVEGISVDISUAVDGINOPQVI
    VGVCVEVGAUBZUCUDUEVCVFMZVFVHVCVFUFVKVEKZVHVFVLVCVFVDGVFIGSVDGSUGVDIGNOPQVCV
    LVHLVFVCVEVGVJUHUJUIUKVCVDGITFZCVEVFULVCVDGDIUMFZTFZVMVCDVBCVDVOCUNADUOOVNI
    GTUPUQURVDUSUTVA $.

  ${
    $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 wi wa peano2z zmulcl wb eleq1d adantl
    zeo mpbird ex sylan2 zcn zcnd 2cnd cc0 cap wbr 2ap0 div23apd divassapd jaoi
    a1i ancoms mpcom ) ABCDZEFZAGHDZBCDZEFZIAEFZAUQJDBCDZEFZARUPUTVBKUSUPUTVBUP
    UTLVBUOUQJDZEFZUTUPUQEFVDAMZUOUQNUAUTVBVDOUPUTVAVCEUTAUQBAUBZUTUQVEUCZUTUDZ
    BUEUFUGUTUHULZUIPQSTUSUTVBUSUTLVBAURJDZEFZUTUSVKAURNUMUTVBVKOUSUTVAVJEUTAUQ
    BVFVGVHVIUJPQSTUKUN $.

  ${
    $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 lelttr impbid cap zcn 1cnd 2cn 2ap0
      mpbii pm3.2i muldivdirap breq2d 2z id zmulcld zcnd pncan1 2cnd divcanap3d
      oveq1d eqtrd 3bitr4d oveq1 bibi12d syl5ibcom com23 rexlimdva sylbid 3imp
      ex ) BDEZFBUBGUCZADEZABFHIZJGZABKUDIZFHIZLGZMZXAXBFCUEZUFIZKUGIZBNZCDUHXC
      XIOZCBUIXAXMXNCDXAXJDEZPXCXMXIXOXCXMXIOZOXAXOXCXPXOXCPZAXLFHIZJGZAXLKUDIZ
      FHIZLGZMXMXIXQAXJKFHIZUGIZJGZAXJLGZXSYBXQYEYFXQYEAXJKUGIZJGZYFXQYEYDYGJGZ
      YHXQYCQEZKQEZXJQEZUAZYCKJGYIXOYMXCXOYJYKYLYJXOUJRZXOUKXJVEZULSUMYCKXJUNUO
      XQAQEZYDQEZYGQEZYEYIPYHOXCYPXOAVEUPZXOYQXCXOXJYCYOYNUQSZXOYRXCXOYGXJURUSS
      AYDYGVFUTVAXCXOYFYHMAXJVBVCVDXQYFXJYDJGZYEXQVGYCJGZUUAVHXQYJYLPZUUBUUAMXO
      UUCXCXOYJYLYNYOVISYCXJVJVKVSXQYPYLYQYFUUAPYEOYSXOYLXCYOSYTAXJYDVLUTVAVMXO
      XSYEMXCXOXRYDAJXOXJTEKTEFTEZFVGVNGZPZXRYDNXJVOZXOVPUUFXOUUDUUEVQVRVTRXJKF
      WAUTWBSXQYAXJALXQYAXKFHIZXJXQXTXKFHXQXKTEZXTXKNXOUUIXCXOXKXOFXJFDEXOWCRXO
      WDWEWFSXKWGVKWJXOUUHXJNXCXOXJFUUGXOWHUUEXOVRRWISWKWBWLXMXSXEYBXHXMXRXDAJX
      LBFHWMWBXMYAXGALXMXTXFFHXLBKUDWMWJWBWNWOWTUPWPWQWRWS $.

    $( 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 cap adantr 1cnd
      zcn 2cn 2ap0 a1i muldivdirap syl3anc 3bitr4rd bibi12d syl5ibcom ex adantl
      oveq1 com23 rexlimdva sylbid 3imp ) BDEZFBUAGUBZADEZBFHIZAJGZWDAKGZLZWAWB
      FCUCZUDIMNIZBUEZCDUFWCWGOZCBUGWAWJWKCDWAWHDEZPWCWJWGWLWCWJWGOZOWAWLWCWMWL
      WCPZWIFHIZAJGZWOAKGZLWJWGWNWHMFHIZNIZAKGZWSAJGZWQWPWLWCWRQMUHIEZWTXALXBQR
      EZMREZWRREZUIQWRKGZWRMKGZPXCXDXEUJMUKULWRUOULUMXFXGUNUPUQQMWRURUSWRWHAUTV
      AWNWOWSAKWNWHSEZMSEFSEZFQVBGZPZWOWSUEWLXHWCWHVEVCWNVDXKWNXIXJVFVGUQVHWHMF
      VIVJZTWNWOWSAJXLTVKWJWPWEWQWFWJWOWDAJWIBFHVPZTWJWOWDAKXMTVLVMVNVOVQVRVSVT
      $.
  $}

  ${
    $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 cc0 cap neg1ap0 zmulcld expp1zapd m1expeven
      cc 2z id oveq1d mulid2i syl6eq eqtrd adantl sylan9eqr ex rexlimdva sylbid
      imp ) ACDZEAFGHZIJZAKLZVEMZVCVDEBRZNLZIOLZAMZBCPVGBAQVCVKVGBCVCVHCDZUAZVK
      VGVKVMVFVEVJKLZVEVFVNMAVJAVJVEKUBUCVLVNVEMVCVLVNVEVIKLZVENLZVEVLVEVIVEUJD
      VLSTVEUDUEGVLUFTVLEVHECDVLUKTVLULUGUHVLVPIVENLVEVLVOIVENVHUIUMVESUNUOUPUQ
      URUSUTVAVB $.

    $( 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 cz wcel c2 wbr c1 cexp co wceq wb wa cmul wrex 2z oveq2 eqcoms eqtrd
      cc0 a1i cdvds cneg wn cv divides mpan zcn 2cnd oveq2d m1expeven sylan9eqr
      mulcomd rexlimiva syl6bi impcom simpl 2thd expcom 1ne0 eqcom ax-1cn bitri
      eqnegi nemtbir caddc odd2np1 neg1cn cap neg1ap0 zmulcld expp1zapd mulid2i
      cc id oveq1d syl6eq eqeq1d mtbiri 2falsed zeo3 mpjaod ) ACDZEAUAFZGUBZAHI
      ZGJZWCKZWCUCZWCWBWGWCWBLWFWCWBWCWFWBWCBUDZEMIZAJZBCNZWFECDZWBWCWLKOBEAUEU
      FWKWFBCWKWICDZWEWDWJHIZGWEWOJAWJAWJWDHPQWNWOWDEWIMIZHIZGWNWJWPWDHWNWIEWIU
      GWNUHULUIWIUJZRUKUMUNUOWCWBUPUQURWHWBWGWHWBLZWFWCWSWFWDGJZWTGSUSWTGWDJGSJ
      WDGUTGVAVCVBVDWSWEWDGWBWHWEWDJZWBWHWPGVEIZAJZBCNXABAVFXCXABCXCWNWEWDXBHIZ
      WDWEXDJAXBAXBWDHPQWNXDWQWDMIZWDWNWDWPWDVMDWNVGTWDSVHFWNVITWNEWIWMWNOTWNVN
      VJVKWNXEGWDMIWDWNWQGWDMWRVOWDVGVLVPRUKUMUNUOVQVRWHWBUPVSURAVTWA $.
  $}

  $( 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 cap 2ap0 diveqap0ad
    wbr a1i com12 eleq1 0nnn pm2.21i syl6bi sylbid jao1i sylbi nnnn0 impbid1 )
    ABCZADEFZGCZUKBCZULUJUMULUMUKHIZJUJUMKUKLUMUNUJUJUNUMUJUNAHIZUMUJADAMUJNDHO
    RUJPSQUOUJUMUOUJHBCZUMAHBUAUPUMUBUCUDTUETUFUGTUKUHUI $.

  $( 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 cz wb nn0z jaoi com12
    cle cn elnn0 wa elnnnn0c 1z zleloe sylancr zltp1le syl2anc 1p1e2 breq1i a1i
    1zzd 2z 3bitrd olc c3 oveq1 oveq1d eqcoms adantl 2p1e3 oveq1i syl6eq eleq1d
    2a1d wn 3halfnz pm2.24d mpi syl6bi expcom sylbid orc imp sylbi 0p1e1 halfnz
    ) ABCZADEFZGHFZBCZADIZGAJKZLZVSAUACZAMIZLWBWENZAUBWFWHWGWFVSDATKZUCWHAUDVSW
    IWHVSWIDAJKZDAIZLZWHVSDOCZAOCZWIWLPUEAQZDAUFUGWLVSWHWJVSWHNZWKVSWJWHVSWJWDG
    AIZLZWHVSWJDDEFZATKZGATKZWRVSWMWNWJWTPVSUMWODAUHUIWTXAPVSWSGATUJUKULVSGOCWN
    XAWRPUNWOGAUFUGUOWRVSWHWDWPWQWDWEVSWBWDWCUPVFVSWQWHVSWQUCZWBUQGHFZBCZWEXBWA
    XCBXBWAGDEFZGHFZXCWQWAXFIZVSXGAGAGIVTXEGHAGDEURUSUTVAXEUQGHVBVCVDVEXDXCOCZV
    GWEVHXDXHWEXCQVIVJVKVLRSVMSWKWEVSWBWEADWCWDVNUTVFRSVMVOVPWGWBDGHFZBCZWEWGWA
    XIBWGVTDGHWGVTMDEFDAMDEURVQVDUSVEXJXIOCZVGWEVRXJXKWEXIQVIVJVKRVPVO $.

  $( 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 2ap0 div0api eqtri eqeltri oveq1 oveq1d eleq1d
    0nn0 wb mpbiri cuz cfv cn cle 2z a1i nn0z ad2antrl 2re nn0re sylancr impcom
    ltle eluz2 syl3anbrc simprr jca nno nnnn0 3syl jaoi mpcom ) ABCZDAEFZGAHIZA
    BJKDLKHIZMZABNKZDLKZHIZAUAVQWAWDOVRVQWAWDVQWAMWDBBNKZDLKZHIZWFPHWFPDLKPWEPD
    LUBUCDUDUEUFUGULUHVQWDWGUMWAVQWCWFHVQWBWEDLABBNUIUJUKQUNRVRWAWDVRWAMZADUOUP
    IZVTMWCUQIWDWHWIVTWHDSIZASIZDAURFZWIWJWHUSUTVSWKVRVTAVAVBWAVRWLVSVRWLOZVTVS
    DTIATIWMVCAVDDAVGVEQVFDAVHVIVRVSVTVJVKAVLWCVMVNRVOVP $.

  $( 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 cz wcel wb 1z 2z zltnle mp2an mpbi cn 1nn
    wi dvdsle mto ) ABCDZABEDZBAFDZUCGZHBIJAIJZUDUEKLMBANOPUFBQJUBUCSMRABTOUA
    $.

  $( 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 $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  The division algorithm
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d D q r $.  $d N q r $.
    $( Lemma for ~ divalg .  Existence for a positive denominator.
       (Contributed by Jim Kingdon, 30-Nov-2021.) $)
    divalglemnn $p |- ( ( N e. ZZ /\ D e. NN ) ->
        E. r e. ZZ E. q e. ZZ
        ( 0 <_ r /\ r < ( abs ` D ) /\ N = ( ( q x. D ) + r ) ) ) $=
      ( cz wcel co cfv cc0 cle wbr clt cmul caddc wceq cv w3a wrex cq adantl cn
      wa cmo cdiv cfl cabs zmodcl nn0zd znq flqcld nn0ge0d zq adantr nnq modqlt
      nngt0 syl3anc cr nnre 0red ltled absidd breqtrrd nn0cnd zcnd simpr mulcld
      nncnd cmin modqvalr oveq1d simpl npcand eqtr2d comraddd breq2 breq1 oveq2
      eqeq2d 3anbi123d oveq1 3anbi3d rspc2ev syl113anc ) BEFZAUAFZUBZBAUCGZEFBA
      UDGZUEHZEFIWHJKZWHAUFHZLKZBWJAMGZWHNGZOZICPZJKZWQWLLKZBDPZAMGZWQNGZOZQZDE
      RCERWGWHBAUGZUHWGWIBAUIUJZWGWHXEUKWGWHAWLLWGBSFZASFZIALKZWHALKWEXGWFBULUM
      ZWFXHWEAUNTZWFXIWEAUPTZBAUOUQWGAWFAURFWEAUSTZWGIAWGUTXMXLVAVBVCWGBWHWNWGW
      HXEVDWGWJAWGWJXFVEWGAWEWFVFVHVGZWGWHWNNGBWNVIGZWNNGBWGWHXOWNNWGXGXHXIWHXO
      OXJXKXLBAVJUQVKWGBWNWGBWEWFVLVEXNVMVNVOXDWKWMWPQWKWMBXAWHNGZOZQCDWHWJEEWQ
      WHOZWRWKWSWMXCXQWQWHIJVPWQWHWLLVQXRXBXPBWQWHXANVRVSVTWTWJOZXQWPWKWMXSXPWO
      BXSXAWNWHNWTWJAMWAVKVSWBWCWD $.
  $}

  ${
    divalglemqt.d $e |- ( ph -> D e. ZZ ) $.
    divalglemqt.r $e |- ( ph -> R e. ZZ ) $.
    divalglemqt.s $e |- ( ph -> S e. ZZ ) $.
    divalglemqt.q $e |- ( ph -> Q e. ZZ ) $.
    divalglemqt.t $e |- ( ph -> T e. ZZ ) $.
    divalglemqt.qt $e |- ( ph -> Q = T ) $.
    divalglemqt.eq $e |- ( ph -> ( ( Q x. D ) + R ) = ( ( T x. D ) + S ) ) $.
    $( Lemma for ~ divalg .  The ` Q = T ` case involved in showing uniqueness.
       (Contributed by Jim Kingdon, 5-Dec-2021.) $)
    divalglemqt $p |- ( ph -> R = S ) $=
      ( cmul co cc oveq1d zmulcld zcnd caddc eqeltrrd eqtr3d addcanad ) AFBNOZD
      EACBNOZUDPACFBNLQZAUEACBJGRSUAADHSAEISAUEDTOUDDTOUDETOAUEUDDTUFQMUBUC $.
  $}

  ${
    divalglemnqt.d $e |- ( ph -> D e. NN ) $.
    divalglemnqt.r $e |- ( ph -> R e. ZZ ) $.
    divalglemnqt.s $e |- ( ph -> S e. ZZ ) $.
    divalglemnqt.q $e |- ( ph -> Q e. ZZ ) $.
    divalglemnqt.t $e |- ( ph -> T e. ZZ ) $.
    divalglemnqt.0s $e |- ( ph -> 0 <_ S ) $.
    divalglemnqt.rd $e |- ( ph -> R < D ) $.
    divalglemnqt.eq $e |- ( ph -> ( ( Q x. D ) + R ) = ( ( T x. D ) + S ) ) $.
    $( Lemma for ~ divalg .  The ` Q < T ` case involved in showing uniqueness.
       (Contributed by Jim Kingdon, 4-Dec-2021.) $)
    divalglemnqt $p |- ( ph -> -. Q < T ) $=
      ( wbr adantr wcel caddc co cle clt wa cn nnred zred readdcld cc0 addge01d
      cz mpbid cmul recnd mulcld addassd remulcld adddirp1d peano2re syl nnnn0d
      c1 nn0ge0d simpr zltp1le syl2an2r lemul1ad eqbrtrrd leadd1dd wceq leadd2d
      cr wb breqtrrd mpbird letrd lensymd pm2.65da ) ACFUAOZDBUAOZAVRVQMPAVQUBZ
      BDVSBABUCQVQGPZUDZVSDADUIQVQHPUEZVSBBERSZDWAVSBEWAVSEAEUIQVQIPUEZUFZWBVSU
      GETOZBWCTOAWFVQLPVSBEWAWDUHUJVSWCDTOCBUKSZWCRSZWGDRSZTOVSWGBRSZERSZWHWITV
      SWGBEVSCBVSCVSCACUIQZVQJPUEZULZVSBWAULZUMWOVSEWDULUNVSWKFBUKSZERSZWITVSWJ
      WPEVSWGBVSCBWMWAUOZWAUFVSFBVSFAFUIQZVQKPZUEZWAUOWDVSCUTRSZBUKSWJWPTVSCBWN
      WOUPVSXBFBVSCVJQXBVJQWMCUQURXAWAVSBVSBVTUSVAVSVQXBFTOZAVQVBAWLVQWSVQXCVKJ
      WTCFVCVDUJVEVFVGAWIWQVHVQNPVLVFVSWCDWGWEWBWRVIVMVNVOVP $.
  $}

  ${
    $d D q r s t $.  $d N q r s t $.
    $( Lemma for ~ divalg .  Uniqueness for a positive denominator.
       (Contributed by Jim Kingdon, 4-Dec-2021.) $)
    divalglemeunn $p |- ( ( N e. ZZ /\ D e. NN ) ->
        E! r e. ZZ E. q e. ZZ
        ( 0 <_ r /\ r < ( abs ` D ) /\ N = ( ( q x. D ) + r ) ) ) $=
      ( vs vt cz wcel wa cc0 cv cle wbr clt co caddc wceq wrex simpr adantr cfv
      cn cabs cmul w3a wrmo wreu divalglemnn wral nfv nfre1 oveq1 oveq1d eqeq2d
      wi nfim 3anbi3d cbvrexv wn simplr ad4antr simplrl ad3antrrr simpr1 simpr2
      simplrr ad2antrr nnnn0d nn0ge0d absidd breqtrd simpr3 eqtr3d divalglemnqt
      nnred pm2.21dd divalglemqt w3o ztri3or syl2anc mpjao3dan rexlimdva syl5bi
      nnzd ex exp31 rexlimd impd ralrimivva breq2 breq1 oveq2 3anbi123d rexbidv
      rmo4 sylibr reu5 sylanbrc ) BGHZAUBHZIZJCKZLMZXBAUCUAZNMZBDKZAUDOZXBPOZQZ
      UEZDGRZCGRXKCGUFZXKCGUGABCDUHXAXKJEKZLMZXMXDNMZBXGXMPOZQZUEZDGRZIXBXMQZUO
      ZEGUICGUIXLXAYACEGGXAXBGHZXMGHZIZIZXKXSXTYEXJXSXTUOZDGYEDUJXSXTDXRDGUKXTD
      UJUPYEXFGHZXJYFXSXNXOBFKZAUDOZXMPOZQZUEZFGRYEYGIZXJIZXTXRYLDFGXFYHQZXQYKX
      NXOYOXPYJBYOXGYIXMPXFYHAUDULUMUNUQURYNYLXTFGYNYHGHZIZYLXTYQYLIZXFYHNMZXTY
      OYHXFNMZYRYSIYSXTYRYSSYRYSUSYSYRAXFXBXMYHYEWTYGXJYPYLWSWTYDUTVAZYMYBXJYPY
      LXAYBYCYGVBVCZYMYCXJYPYLXAYBYCYGVFVCZYMYGXJYPYLYEYGSVCZYNYPYLUTZYQXNXOYKV
      DYRXBXDANYNXEYPYLYMXCXEXIVEVGYRAYRAUUAVOYRAYRAUUAVHVIVJZVKYRBXHYJYNXIYPYL
      YMXCXEXIVLVGZYQXNXOYKVLZVMZVNTVPYRYOIZAXFXBXMYHUUJAYRWTYOUUATWDYRYBYOUUBT
      YRYCYOUUCTYRYGYOUUDTYRYPYOUUETYRYOSYRXHYJQYOUUITVQYRYTIYTXTYRYTSYRYTUSYTY
      RAYHXMXBXFUUAUUCUUBUUEUUDYNXCYPYLYMXCXEXIVDVGYRXMXDANYQXNXOYKVEUUFVKYRBYJ
      XHUUHUUGVMVNTVPYRYGYPYSYOYTVRUUDUUEXFYHVSVTWAWEWBWCWFWGWHWIXKXSCEGXTXJXRD
      GXTXCXNXEXOXIXQXBXMJLWJXBXMXDNWKXTXHXPBXBXMXGPWLUNWMWNWOWPXKCGWQWR $.
  $}

  ${
    $d D k q r $.  $d N k q r $.
    $( Lemma for ~ divalg .  The quotient and remainder exist.  (Contributed by
       Jim Kingdon, 30-Nov-2021.) $)
    divalglemex $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 ) ) ) $=
      ( vk cz wcel cc0 w3a clt wbr cv cmul co caddc wceq wrex wa simpr syl2anc
      wne cle cabs cfv cneg simpl1 simpl2 znegcld lt0neg1d mpbid elnnz sylanbrc
      cn zred divalglemnn simplr simpr1 simpr2 simpll2 ad2antrr absnegd breqtrd
      zcnd simpr3 mulneg12 oveq1d eqtr4d oveq1 eqeq2d rspcev syl13anc rexlimdva
      cc 3anbi3d reximdva mpd simpl3 pm2.21ddne w3o ztri3or0 3ad2ant2 mpjao3dan
      ex ) BFGZAFGZAHUAZIZAHJKZHCLZUBKZWIAUCUDZJKZBDLZAMNZWIONZPZIZDFQZCFQZAHPZ
      HAJKZWGWHRZWJWIAUEZUCUDZJKZBELZXCMNZWIONZPZIZEFQZCFQZWSXBWDXCUMGZXLWDWEWF
      WHUFXBXCFGHXCJKZXMXBAWDWEWFWHUGZUHXBWHXNWGWHSXBAXBAXOUNUIUJXCUKULXCBCEUOT
      XBXKWRCFXBWIFGZRZXJWREFXQXFFGZRZXJWRXSXJRZXFUEZFGWJWLBYAAMNZWIONZPZWRXTXF
      XQXRXJUPZUHXSWJXEXIUQXTWIXDWKJXSWJXEXIURXTAXTAXQWEXRXJWDWEWFWHXPUSUTVCZVA
      VBXTBXHYCXSWJXEXIVDXTYBXGWIOXTXFVMGAVMGYBXGPXTXFYEVCYFXFAVETVFVGWQWJWLYDI
      DYAFWMYAPZWPYDWJWLYGWOYCBYGWNYBWIOWMYAAMVHVFVIVNVJVKWCVLVOVPWGWTRWSAHWGWT
      SWDWEWFWTVQVRWGXARZWDAUMGZWSWDWEWFXAUFYHWEXAYIWDWEWFXAUGWGXASAUKULABCDUOT
      WEWDWHWTXAVSWFAVTWAWB $.
  $}

  ${
    $d D q r s t $.  $d N q r s t $.
    $( Lemma for ~ divalg .  Uniqueness for a negative denominator.
       (Contributed by Jim Kingdon, 4-Dec-2021.) $)
    divalglemeuneg $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 ) ) ) $=
      ( vs vt cz wcel cc0 clt wbr w3a cv cmul co caddc wceq wa ad3antrrr adantr
      cle cabs cfv wrex wrmo wreu wne simp3 lt0ne0d divalglemex syld3an3 wi nfv
      wral nfre1 nfim oveq1 oveq1d eqeq2d 3anbi3d cbvrexv simpr wn cneg znegcld
      cn simp2 zred lt0neg1d mpbid elnnz sylanbrc ad5antr simplrr simplr simpr1
      simplrl ad2antrr simpr2 simpll2 0red simpll3 ltled absnidd breqtrd simpr3
      mul2negd eqtr4d eqtr3d divalglemnqt ltnegd mtbird divalglemqt w3o ztri3or
      zcnd pm2.21dd syl2anc mpjao3dan rexlimdva syl5bi exp31 rexlimd ralrimivva
      ex impd breq2 breq1 oveq2 3anbi123d rexbidv rmo4 sylibr reu5 ) BGHZAGHZAI
      JKZLZICMZUAKZXSAUBUCZJKZBDMZANOZXSPOZQZLZDGUDZCGUDZYHCGUEZYHCGUFXOXPXQAIU
      GYIXRAXOXPXQUHZUIABCDUJUKXRYHIEMZUAKZYLYAJKZBYDYLPOZQZLZDGUDZRXSYLQZULZEG
      UNCGUNYJXRYTCEGGXRXSGHZYLGHZRZRZYHYRYSUUDYGYRYSULZDGUUDDUMYRYSDYQDGUOYSDU
      MUPUUDYCGHZYGUUEYRYMYNBFMZANOZYLPOZQZLZFGUDUUDUUFRZYGRZYSYQUUKDFGYCUUGQZY
      PUUJYMYNUUNYOUUIBUUNYDUUHYLPYCUUGANUQURUSUTVAUUMUUKYSFGUUMUUGGHZRZUUKYSUU
      PUUKRZYCUUGJKZYSUUNUUGYCJKZUUQUURRUURYSUUQUURVBUUQUURVCUURUUQUURUUGVDZYCV
      DZJKUUQAVDZUUTYLXSUVAXRUVBVFHZUUCUUFYGUUOUUKXRUVBGHIUVBJKZUVCXRAXOXPXQVGZ
      VEXRXQUVDYKXRAXRAUVEVHVIVJUVBVKVLVMZUULUUBYGUUOUUKXRUUAUUBUUFVNSZUULUUAYG
      UUOUUKXRUUAUUBUUFVQSZUUQUUGUUMUUOUUKVOZVEZUUQYCUULUUFYGUUOUUKUUDUUFVBSZVE
      ZUUMXTUUOUUKUULXTYBYFVPVRUUQYLYAUVBJUUPYMYNUUJVSUUQAUUQAUULXPYGUUOUUKXOXP
      XQUUCUUFVTSZVHZUUQAIUVNUUQWAUULXQYGUUOUUKXOXPXQUUCUUFWBSWCWDZWEUUQBUUTUVB
      NOZYLPOZUVAUVBNOZXSPOZUUQBUUIUVQUUPYMYNUUJWFZUUQUVPUUHYLPUUQUUGAUUQUUGUVI
      WPUUQAUVMWPZWGURWHZUUQBYEUVSUUMYFUUOUUKUULXTYBYFWFVRZUUQUVRYDXSPUUQYCAUUQ
      YCUVKWPUWAWGURWHZWIWJUUQYCUUGUUQYCUVKVHZUUQUUGUVIVHZWKWLTWQUUQUUNRZAYCXSY
      LUUGUUQXPUUNUVMTUUQUUAUUNUVHTUUQUUBUUNUVGTUUQUUFUUNUVKTUUQUUOUUNUVITUUQUU
      NVBUWGBYEUUIUUQYFUUNUWCTUUQUUJUUNUVTTWIWMUUQUUSRUUSYSUUQUUSVBUUQUUSVCUUSU
      UQUUSUVAUUTJKUUQUVBUVAXSYLUUTUVFUVHUVGUVLUVJUUPYMYNUUJVPUUQXSYAUVBJUUMYBU
      UOUUKUULXTYBYFVSVRUVOWEUUQBUVSUVQUWDUWBWIWJUUQUUGYCUWFUWEWKWLTWQUUQUUFUUO
      UURUUNUUSWNUUMUUFUUOUUKUUDUUFYGVOVRUVIYCUUGWOWRWSXEWTXAXBXCXFXDYHYRCEGYSY
      GYQDGYSXTYMYBYNYFYPXSYLIUAXGXSYLYAJXHYSYEYOBXSYLYDPXIUSXJXKXLXMYHCGXNVL
      $.
  $}

  ${
    $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.  (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 w3a clt wbr cv cle cabs co wceq wa simpl1 simpl2 simpr
      cmul caddc wrex wreu divalglemeuneg syl3anc simpl3 pm2.21ddne cn sylanbrc
      cfv elnnz divalglemeunn syl2anc w3o ztri3or0 3ad2ant2 mpjao3dan ) BEFZAEF
      ZAGHZIZAGJKZGCLZMKVDANUKJKBDLAUAOVDUBOPIDEUCCEUDZAGPZGAJKZVBVCQUSUTVCVEUS
      UTVAVCRUSUTVAVCSVBVCTABCDUEUFVBVFQVEAGVBVFTUSUTVAVFUGUHVBVGQZUSAUIFZVEUSU
      TVAVGRVHUTVGVIUSUTVAVGSVBVGTAULUJABCDUMUNUTUSVCVFVGUOVAAUPUQUR $.

    $( 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 wceq clt wbr cmin cdvds cn0 csn adantr adantl syl syl3anc
      co cq cn cmo cv crab zq simpr nngt0d modqcld snidg eleq1 syl5ibrcom elsni
      nnq impbid1 crio cc0 modqlt cdiv cfl cfv cmul znq flqcld nnz zmodcl nn0zd
      zsubcl syldan cc nncn zcnd mulcomd modqval nn0cnd zmulcl syl2an2 subexsub
      mpbid eqtr3d dvds0lem syl31anc wreu wb divalg2 breq1 oveq2 breq2d anbi12d
      zcn riota2 syl2anc mpbi2and eqcomd sneqd eqtr4d eleq2d bitrd elrab syl6bb
      snriota ) CEFZAUAFZGZBCAUBSZHZBDUCZAIJZACXFKSZLJZGZDMUDZFZBMFBAIJZACBKSZL
      JZGZGXCXEBXDNZFZXLXCXEXRXCXRXEXDXQFZXCXDTFXSXCCAXACTFZXBCUEOZXBATFZXAAUMP
      ZXCAXAXBUFUGZUHXDTUIQBXDXQUJUKBXDULUNXCXQXKBXCXQXJDMUOZNZXKXCXDYEXCYEXDXC
      XDAIJZACXDKSZLJZYEXDHZXCXTYBUPAIJZYGYAYCYDCAUQRXCCAURSZUSUTZEFZAEFZYHEFZY
      MAVASZYHHYIXCYLCAVBVCZXBYOXAAVDZPXAXBXDEFYPXCXDCAVEZVFCXDVGVHXCAYMVASZYQY
      HXCAYMXBAVIFXAAVJPXCYMYRVKVLXCXDCUUAKSHZUUAYHHXCXTYBYKUUBYAYCYDCAVMRXCXDU
      UACXCXDYTVNXCUUAXBYOXAYNUUAEFYSYRAYMVOVPVKXACVIFXBCWIOVQVRVSYMAYHVTWAXCXD
      MFXJDMWBZYGYIGZYJWCYTACDWDZXJUUDDMXDXFXDHZXGYGXIYIXFXDAIWEUUFXHYHALXFXDCK
      WFWGWHWJWKWLWMWNXCUUCXKYFHUUEXJDMWTQWOWPWQXJXPDBMXFBHZXGXMXIXOXFBAIWEUUGX
      HXNALXFBCKWFWGWHWRWS $.
  $}

  $( 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 pm3.37 syl6 syl7bi exp4a com23 imp4a syl7
      impd 3expia ) CUAFZAUBFZBUBFZBAGHZIZACJHZACBKLZJHZUCZMWKWLIZWPWOWSWKWLWPW
      OWSMWKWLWPUDZWMWNWSXAWNWMWSWMBNFZBTUEZIXAWNWSWMXBXCBUFBUGUHXAWNXBXCWSXAXB
      WNXCWSMXAXBWNXCWSWNXCIWNBTOZUCZIZXAXBWSXCXEWNBTUIUJXAXBWNWRIZXDMZXFWSMXAD
      UKZAGHZACXIKLZJHZIZXITOZMZDNPZXBXHWKWLWPXPWTWPXPMWTWTWPXPWTWTWPIZXOMZDNPZ
      XQXPMWTXMDNULZXMEUKZAGHZACYAKLZJHZIZIZXIYAOZMZENPZDNPZXSWTXMDNUOXTYJIACDU
      MXMYEDENYGXJYBXLYDXIYAAGQYGXKYCAJXIYACKRSUNVFUPYIXRDNYIXQXMXNXQXMIXMTAGHZ
      ACTKLZJHZIZIZYIXNXMXQYOXQYNXMWKWLWPYNXAYKYMWLWKYKWPAUQURWKWPYMWLWKYMWPWKY
      LCAJWKCCUSUTSVAVBUHVCVDVETNFYIYOXNMZMVGYHYPETNYATOZYFYOYGXNYQYEYNXMYQYBYK
      YDYMYATAGQYQYCYLAJYATCKRSUNVHYATXIVIVJVKVQVLVRVMVNXQXODNVOUPVRVPVSXOXHDBN
      XIBOZXMXGXNXDYRXJWNXLWRXIBAGQYRXKWQAJXIBCKRSUNXIBTVTVJVKWAWNWRXDWBWCWDWEW
      FWGWHWFWIWJWFVS $.
  $}

  $( 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 a1i cc0 eqtrd adantr
      c3 vx cmul cfv cdvds cmin cif 2cnd zcn mulcld 1cnd 4cn cap 4ap0 divdirapd
      oveq1 eqcomi oveq2d 2ap0 divcanap5d oveq1d sylan9eqr fveq2d wn iftrue cle
      2t2e4 clt cr 1re 0le1 4re 4pos divge0 mp4an 1lt4 recgt1 mp2an mpbi pm3.2i
      wb cq evend2 biimpac 4nn nnrecq ax-mp flqbi2 sylancl mpbiri eqtr4d expcom
      cn iffalse cv wrex odd2np1 wi ax-1cn divcanap5 mp3an 2t1e2 oveq12i eqtr3i
      2cn oveq1i divdirapi 2p1e3 3eqtr2i 3re 0re 3pos ltleii 3lt4 nnrp divlt1lt
      crp mpbir 3z znq mpan2 eqcoms 2z zmulcld zcnd divcanap3d recclapi addassd
      id halfcn pncan1 3eqtr4rd ex adantl rexlimdva sylbid impcom mpjaod eqcomd
      syl zeo3 ) ACDZBEAUBFZGHFZIZJZBKLFZMUCAELFZGKLFZHFZMUCZEAUDNZUUGAGUEFZELF
      ZUFZUUEUUFUUIMUUDUUAUUFUUCKLFZUUIBUUCKLUOUUAUUOUUBKLFZUUHHFUUIUUAUUBGKUUA
      EAUUAUGZAUHZUIUUAUJKODUUAUKPKQULNUUAUMPUNUUAUUPUUGUUHHUUAUUPUUBEEUBFZLFUU
      GUUAKUUSUUBLKUUSIUUAUUSKVFUPPUQUUAAEEUURUUQUUQEQULNZUUAURPZUVAUSRUTRVAVBU
      UAUUJUUNIUUDUUAUUNUUJUUAUUKUUNUUJIZUUKVCZUUKUUAUVBUUKUUAJZUUNUUGUUJUUKUUN
      UUGIUUAUUKUUGUUMVDSUVDUUJUUGIZQUUHVENZUUHGVGNZJZUVFUVGGVHDQGVENKVHDZQKVGN
      ZUVFVIVJVKVLGKVMVNGKVGNZUVGVOUVIUVJUVKUVGVTVKVLKVPVQVRVSUVDUUGCDZUUHWADZU
      VEUVHVTUUAUUKUVLAWBWCKWLDZUVMWDKWEWFUUHUUGWGWHWIWJWKUVCUUAUVBUVCUUAJUUNUU
      MUUJUVCUUNUUMIUUAUUKUUGUUMWMSUUAUVCUUMUUJIZUUAUVCEUAWNZUBFZGHFZAIZUACWOUV
      OUAAWPUUAUVSUVOUACUVPCDZUVSUVOWQUUAUVTUVSUVOUVTUVSJZUVPGELFZUUHHFZHFZMUCZ
      UVPUUJUUMUVTUWEUVPIUVSUVTUWEUVPTKLFZHFZMUCZUVPUVTUWDUWGMUVTUWCUWFUVPHUWCU
      WFIUVTUWCEKLFZUUHHFEGHFZKLFUWFUWBUWIUUHHEGUBFZUUSLFZUWBUWIGODEODZUUTJZUWN
      UWLUWBIWRUWMUUTXDURVSZUWOGEEWSWTUWKEUUSKLXAVFXBXCXEEGKXDWRUKUMXFUWJTKLXGX
      EXHPUQVBUVTUWHUVPIZQUWFVENZUWFGVGNZJZUWQUWRTVHDZQTVENUVIUVJUWQXIQTXJXIXKX
      LVKVLTKVMVNUWRTKVGNZXMUWTKXPDZUWRUXAVTXIUVNUXBWDKXNWFTKXOVQXQVSUVTUWFWADZ
      UWPUWSVTTCDUVNUXCXRWDTKXSVQUWFUVPWGXTWIRSUWAUUIUWDMUWAUUIUVPUWBHFZUUHHFZU
      WDUWAUUGUXDUUHHUVSUVTUUGUVRELFZUXDUUGUXFIAUVRAUVRELUOYAUVTUXFUVQELFZUWBHF
      UXDUVTUVQGEUVTUVQUVTEUVPECDUVTYBPUVTYHYCYDZUVTUJUVTUGZUUTUVTURPZUNUVTUXGU
      VPUWBHUVTUVPEUVPUHZUXIUXJYEZUTRVAUTUVTUXEUWDIUVSUVTUVPUWBUUHUXKUWBODUVTYI
      PUUHODUVTKUKUMYFPYGSRVBUWAUUMUXGUVPUWAUULUVQELUVSUVTUULUVRGUEFZUVQUULUXMI
      AUVRAUVRGUEUOYAUVTUVQODUXMUVQIUXHUVQYJYSVAUTUVTUXGUVPIUVSUXLSRYKYLYMYNYOY
      PRWKAYTYQYRSR $.
  $}

  $( 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 cq cfl cfv clt zq 3ad2ant1 syl3anc
    cdiv adantr 3ad2ant2 simp2r qdivcl wb simprl simprr dvdsval2 notbid biimp3a
    simpl flqltnz syl2anc ) ACDZBCDZBEFZGZBAHIZJZKZABTLZMDZVACDZJZVANOVAPIUTAMD
    ZBMDZUPVBUNUQVEUSAQRUQUNVFUSUOVFUPBQUAUBUNUOUPUSUCABUDSUNUQUSVDUNUQGZURVCVG
    UOUPUNURVCUEUNUOUPUFUNUOUPUGUNUQUKBAUHSUIUJVAULUM $.

  $( 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 wn wa c4 cdiv co cfl cfv cmul clt cr cc0 adantr wceq
    a1i flodddiv4lt wb cn cq 4nn znq flqcld zred qre syl 2re 2pos pm3.2i ltmul1
    mpan2 syl3anc mpbid zcn halfcld 2cnd cap divcanap1d divdivap1d 2t2e4 oveq2d
    2ap0 eqtrd oveq1d eqtr3d breqtrrd ) ABCZDAEFGZHZAIJKZLMZDNKZVNDNKZADJKZOVMV
    OVNOFZVPVQOFZAUAVMVOPCZVNPCZDPCZQDOFZHZVSVTUBVKWAVLVKVOVKVNVKIUCCVNUDCZUEAI
    UFUOZUGUHRVKWBVLVKWFWBWGVNUIUJRWEVMWCWDUKULUMTVOVNDUNUPUQVKVRVQSVLVKVRDJKZD
    NKVRVQVKVRDVKAAURZUSVKUTZDQVAFVKVFTZVBVKWHVNDNVKWHADDNKZJKVNVKADDWIWJWJWKWK
    VCVKWLIAJWLISVKVDTVEVGVHVIRVJ $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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 ).  (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 , < ) ) ) $.
  $}

  $( Decidablity lemma used in various proofs related to ` gcd ` .
     (Contributed by Jim Kingdon, 12-Dec-2021.) $)
  gcdmndc $p |- ( ( M e. ZZ /\ N e. ZZ ) -> DECID ( M = 0 /\ N = 0 ) ) $=
    ( cz wcel wa cc0 wceq wdc 0z zdceq mpan2 adantr adantl dcan sylc ) ACDZBCDZ
    EAFGZHZBFGZHZRTEHPSQPFCDZSIAFJKLQUAPQUBUAIBFJKMRTNO $.

  ${
    $d K n x y z $.  $d M n y $.  $d n ph y $.  $d ps x y z $.
    zsupcllemstep.dc $e |- ( ( ph /\ n e. ( ZZ>= ` M ) ) -> DECID ps ) $.
    $( Lemma for ~ zsupcl .  Induction step.  (Contributed by Jim Kingdon,
       7-Dec-2021.) $)
    zsupcllemstep $p |- ( K e. ( ZZ>= ` M )
      -> ( ( ( ph /\ A. n e. ( ZZ>= ` K ) -. ps )
        -> E. x e. ZZ ( A. y e. { n e. ZZ | ps } -. x < y
          /\ A. y e. RR ( y < x -> E. z e. { n e. ZZ | ps } y < z ) ) )
        -> ( ( ph /\ A. n e. ( ZZ>= ` ( K + 1 ) ) -. ps )
          -> E. x e. ZZ ( A. y e. { n e. ZZ | ps } -. x < y
            /\ A. y e. RR ( y < x -> E. z e. { n e. ZZ | ps } y < z ) ) )
      ) ) $=
      ( wcel wn wral wa clt wbr cz wi cr wb wceq cuz cv crab wrex c1 caddc wsbc
      cfv co eluzelz ad3antrrr nfv nfcv nfra1 nfan nfrexya nfim elrabsf simprbi
      wsb sylibr ad2antlr cle elrabi zltp1le syl2an biimpa peano2zd eluz adantr
      sbsbc mpbird simprr nfs1v nfn sbequ12 rspc sylc pm2.65da ralrimi ad2antrr
      notbid simpllr sylanbrc breq2 rspcev sylancom exp31 breq1 ralbidv anbi12d
      imbi1d syl12anc csn sbcng biimpar sbcsng mpbid simplrr cfzo uzid peano2uz
      ex cun fzouzsplit 3syl fzosn uneq1d eqtrd raleqdv ralunb syl6bb mpbir2and
      syl simprl simplr mpand mpd wdc wo ralrimiva nfsbc1v nfdc sbceq1a exmiddc
      dcbid mpjaodan ) GHUAUHZJZABKZFGUAUHZLZMZCUBZDUBZNOZKZDBFPUCZLZYOYNNOZYOE
      UBZNOZEYRUDZQZDRLZMZCPUDZQZAYJFGUEUFUIZUAUHZLZMZUUGYIUUHMZUULMZBFGUGZUUGU
      UOKZUUNUUOMZGPJZGYONOZKZDYRLZYOGNOZUUCQZDRLZUUGYIUURUUHUULUUOHGUJZUKZUUQU
      UTDYRUUNUUODUUMUULDYIUUHDYIDULYMUUGDYMDULUUFDCPDPUMYSUUEDYQDYRUNUUDDRUNUO
      UPUQUOUULDULUOUUODULUOZUUQYOYRJZUUTUUQUVHMZUUSBFDUTZUVHUVJUUQUUSUVHBFYOUG
      ZUVJUVHYOPJZUVKBFYOPFPUMZURUSBFDVKVAVBUVIUUSMZYOUUJJZUUKUVJKZUVNUVOUUIYOV
      COZUVIUUSUVQUUQUURUVLUUSUVQSUVHUVFBFYOPVDZGYOVEVFVGUVIUVOUVQSZUUSUUQUUIPJ
      UVLUVSUVHUUQGUVFVHUVRUUIYOVIVFVJVLUUNUUKUUOUVHUUSUUMAUUKVMUKYJUVPFYOUUJUV
      JFBFDVNVOFUBZYOTBUVJBFDVPWBVQVRVSXCVTUUQUVCDRUVGUUQYORJZUVBUUCUUQUWAMZUVB
      GYRJZUUCUWBUVBMUURUUOUWCUUQUURUWAUVBUVFWAUUNUUOUWAUVBWCBFGPUVMURWDUUBUVBE
      GYRUUAGYONWEWFWGWHVTUUFUVAUVDMCGPYNGTZYSUVAUUEUVDUWDYQUUTDYRUWDYPUUSYNGYO
      NWIWBWJUWDUUDUVCDRUWDYTUVBUUCYNGYONWEWLWJWKWFWMUUNUUPMZYLUUGUWEYLYJFGWNZL
      ZUUKUWEYJFGUGZUWGUUNUWHUUPYIUWHUUPSUUHUULBFGYHWOWAWPYIUWHUWGSUUHUULUUPYJF
      GYHWQUKWRUUMAUUKUUPWSYIYLUWGUUKMZSUUHUULUUPYIYLYJFUWFUUJXDZLUWIYIYJFYKUWJ
      YIYKGUUIWTUIZUUJXDZUWJYIUURUUIYKJZYKUWLTUVEUURGYKJUWMGXAGGXBXNGUUIXEXFYIU
      WKUWFUUJYIUURUWKUWFTUVEGXGXNXHXIXJYJFUWFUUJXKXLUKXMUUNYLUUGQUUPUUNAYLUUGU
      UMAUUKXOZYIUUHUULXPXQVJXRUUNUUOXSZUUOUUPXTUUNBXSZFYHLZUWOUUNAUWQUWNAUWPFY
      HIYAXNYIUWQUWOQUUHUULUWPUWOFGYHUUOFBFGYBYCUVTGTBUUOBFGYDYFVQWAXRUUOYEXNYG
      WH $.
  $}

  ${
    $d M k n w y $.  $d ch n $.  $d j n ph w y $.  $d j ps w x y z $.
    $d k n ph w y $.  $d k ps w x y z $.  $d n w x y z $.
    zsupcllemex.m $e |- ( ph -> M e. ZZ ) $.
    zsupcllemex.sbm $e |- ( n = M -> ( ps <-> ch ) ) $.
    zsupcllemex.mtru $e |- ( ph -> ch ) $.
    zsupcllemex.dc $e |- ( ( ph /\ n e. ( ZZ>= ` M ) ) -> DECID ps ) $.
    zsupcllemex.bnd $e |- ( ph ->
      E. j e. ( ZZ>= ` M ) A. n e. ( ZZ>= ` j ) -. ps ) $.
    $( Lemma for ~ zsupcl .  Existence of the supremum.  (Contributed by Jim
       Kingdon, 7-Dec-2021.) $)
    zsupcllemex $p |- ( ph -> E. x e. ZZ (
          A. y e. { n e. ZZ | ps } -. x < y /\
          A. y e. RR ( y < x -> E. z e. { n e. ZZ | ps } y < z ) ) ) $=
      ( cv cuz cfv wral wi wa vw vk wn clt cz crab wrex cr wcel simpl simprr c1
      wbr caddc co wceq fveq2 raleqdv anbi2d imbi1d adantr uzid notbid 3syl imp
      rspcv pm2.21dd a1i zsupcllemstep uzind4 ad2antrl mp2and rexlimddv ) ABUCZ
      HGOZPQZRZDOZEOZUDUMUCEBHUEUFZRVSVRUDUMVSFOUDUMFVTUGSEUHRTDUEUGZGIPQZNAVOW
      BUIZVQTZTAVQWAAWDUJAWCVQUKWCAVQTZWASZAVQAVNHUAOZPQZRZTZWASAVNHWBRZTZWASZA
      VNHUBOZPQZRZTZWASAVNHWNULUNUOZPQZRZTZWASWFUAUBIVOWGIUPZWJWLWAXBWIWKAXBVNH
      WHWBWGIPUQURUSUTWGWNUPZWJWQWAXCWIWPAXCVNHWHWOWGWNPUQURUSUTWGWRUPZWJXAWAXD
      WIWTAXDVNHWHWSWGWRPUQURUSUTWGVOUPZWJWEWAXEWIVQAXEVNHWHVPWGVOPUQURUSUTWMIU
      EUIZWLCWAACWKLVAAWKCUCZAXFIWBUIWKXGSJIVBVNXGHIWBHOIUPBCKVCVFVDVEVGVHABDEF
      HWNIMVIVJVKVLVM $.
  $}

  ${
    $d ph j n x y z u v $.  $d ps j x y z u v $.  $d ch j n x y z u v $.
    $d M j n x y z u v $.
    zsupcl.m $e |- ( ph -> M e. ZZ ) $.
    zsupcl.sbm $e |- ( n = M -> ( ps <-> ch ) ) $.
    zsupcl.mtru $e |- ( ph -> ch ) $.
    zsupcl.dc $e |- ( ( ph /\ n e. ( ZZ>= ` M ) ) -> DECID ps ) $.
    zsupcl.bnd $e |- ( ph ->
      E. j e. ( ZZ>= ` M ) A. n e. ( ZZ>= ` j ) -. ps ) $.
    $( Closure of supremum for decidable integer properties.  The property
       which defines the set we are taking the supremum of must (a) be true at
       ` M ` (which corresponds to the non-empty condition of classical
       supremum theorems), (b) decidable at each value after ` M ` , and (c) be
       false after ` j ` (which corresponds to the upper bound condition found
       in classical supremum theorems).  (Contributed by Jim Kingdon,
       7-Dec-2021.) $)
    zsupcl $p |- ( ph -> sup ( { n e. ZZ | ps } , RR , < ) e. ( ZZ>= ` M ) ) $=
      ( vx vy vz vv cz cr clt wcel wbr vu crab csup cuz cfv cle cv wa weq wn wb
      zred lttri3 adantl wss wral wrex wi zssre zsupcllemex mpsyl supclti elrab
      ssrexv sylanbrc supubti mpd nltled a1i supelti eluz syl2anc mpbird ) ABEP
      UBZQRUCZFUDUESZFVOUFTZAFVOAFGULALMNOUAQVNRUAUGZQSOUGZQSUHUAOUIVRVSRTUJVSV
      RRTUJUHUKAVRVSUMUNZPQUOZALUGZMUGZRTUJMVNUPWCWBRTWCNUGRTNVNUQURMQUPUHZLPUQ
      WDLQUQUSABCLMNDEFGHIJKUTZWDLPQVDVAZVBAFVNSZVOFRTUJAFPSZCWGGIBCEFPHVCVEALM
      NOUAQVNFRVTWFVFVGVHAWHVOPSVPVQUKGALMNOUAQVNPRVTWEWAAUSVIVJFVOVKVLVM $.
  $}

  ${
    $d B f g x y z $.  $d f g ph x y z $.
    zssinfcl.ex $e |- ( ph -> E. x e. RR ( A. y e. B -. y < x /\
                      A. y e. RR ( x < y -> E. z e. B z < y ) ) ) $.
    zssinfcl.ss $e |- ( ph -> B C_ ZZ ) $.
    zssinfcl.zz $e |- ( ph -> inf ( B , RR , < ) e. ZZ ) $.
    $( The infimum of a set of integers is an element of the set.  (Contributed
       by Jim Kingdon, 16-Jan-2022.) $)
    zssinfcl $p |- ( ph -> inf ( B , RR , < ) e. B ) $=
      ( vg vf cv cr clt c1 wbr wcel wa wn adantr cz cinf caddc co wrex readdcld
      zred 1red ltp1d wceq lttri3 adantl infglbti mp2and cle wss simprl inflbti
      sseldd imp adantrr nltled simprr zleltp1 syl2anc mpbird letri3d mpbir2and
      wb eqeltrd rexlimddv ) ADKZELMUAZNUBUCZMOZVLEPDEAVMLPVLVMMOVNDEUDAVLNAVLH
      UFZAUGUEAVLVOUHABCDIJLEVMMJKZLPIKZLPQVPVQUIVPVQMORVQVPMORQVHAVPVQUJUKZFUL
      UMAVKEPZVNQZQZVLVKEWAVLVKUIVLVKUNOVKVLUNOZWAVLVKAVLLPVTVOSZWAVKWAETVKAETU
      OVTGSAVSVNUPZURZUFZAVSVKVLMORZVNAVSWGABCDIJLEVKMVRFUQUSUTVAWAWBVNAVSVNVBW
      AVKTPVLTPZWBVNVHWEAWHVTHSVKVLVCVDVEWAVLVKWCWFVFVGWDVIVJ $.
  $}

  ${
    $d A j m y $.  $d A m n $.  $d M j m $.  $d M m n $.  $d S a m w $.
    $d S b m $.  $d S j m x y z $.  $d a m n $.  $d b m n ph $.
    $d j m ph x y $.  $d w x y z $.
    infssuzledc.m $e |- ( ph -> M e. ZZ ) $.
    infssuzledc.s $e |- S = { n e. ( ZZ>= ` M ) | ps } $.
    infssuzledc.a $e |- ( ph -> A e. S ) $.
    infssuzledc.dc $e |- ( ( ph /\ n e. ( M ... A ) ) -> DECID ps ) $.
    $( Existence of the infimum of a subset of an upper set of integers.
       (Contributed by Jim Kingdon, 13-Jan-2022.) $)
    infssuzex $p |- ( ph -> E. x e. RR ( A. y e. S -. y < x
        /\ A. y e. RR ( x < y -> E. z e. S z < y ) ) ) $=
      ( vm wbr wcel cr wa cz syl vw vj vb va cv wn cneg crab wral wrex wi zssre
      clt wss cuz eleq2i sylib elrabi eluzelz znegcld wceq negeq eleq1d negnegd
      cfv zcnd eqeltrd cle wdc wsbc cfz co adantr zred adantl eluzle lenegcon1d
      simpr jca wb ad2antrr elfz syl3anc mpbird ralrimiva nfsbc1v sbceq1a dcbid
      nfdc rspc sylc elfzuz biantrurd nfcv elrabsf syl6rbbr syl5bb wo nsyl olcd
      eleq2s df-dc sylibr zdcle syl2anc mpjaodan c1 caddc lenegd mpbid peano2uz
      exmiddc renegcld peano2re ad2antlr adantlr lenegcon2d letrd zltp1le ltnrd
      eluz pm2.65da fveq2 raleqdv rspcev zsupcllemex zre anim1i cc recn znegclb
      impbii weq elrab 3bitr4i a1i eqrdv rexeqdv imbi2d ralbidv anbi12d rexbidv
      ssrexv mpsyl ssrab2 supinfneg eluzelre elrab3 renegcl 3bitrd eqriv raleqi
      pm5.21nii rexeqi imbi2i ralbii anbi12i rexbii ) ADUEZCUEZUMOZUFZDUAUEZUGZ
      NUEZUGZGPZNQUHZPZUAQUHZUIZUUTUUSUMOZEUEZUUSUMOZEUVJUJZUKZDQUIZRZCQUJUVBDG
      UIZUVLUVNEGUJZUKZDQUIZRZCQUJACDEUAUVHSQUNAUVLUFZDUVHUIZUVAUUSUVMUMOZEUVHU
      JZUKZDQUIZRZCSUJZUWJCQUJULAUWDDUVGNSUHZUIZUVAUWFEUWLUJZUKZDQUIZRZCSUJUWKA
      UVGFUGZUGZGPCDEUBNUWRAFAFIUOVEZPZFSPZAFBHUWTUHZPZUXAAFGPUXDLGUXCFKUPUQBHF
      UWTURTZIFUSTZUTZUVEUWRVAUVFUWSGUVEUWRVBVCAUWSFGAFAFUXFVFVDLVGAUVEUWRUOVEZ
      PZRZIUVFVHOZUVGVIZUXKUFZUXJUXKRZUXLBHUVFVJZVIZUXNUVFIFVKVLZPZBVIZHUXQUIZU
      XPUXNUXRUXKUVFFVHOZRZUXNUXKUYAUXJUXKVRUXJUYAUXKUXJFUVEUXJFAUXBUXIUXFVMVNU
      XJUVEUXIUVESPZAUWRUVEUSVOZVNUXIUWRUVEVHOAUWRUVEVPVOVQVMVSUXNUVFSPZISPZUXB
      UXRUYBVTUXJUYEUXKUXJUVEUYDUTZVMAUYFUXIUXKJWAAUXBUXIUXKUXFWAUVFIFWBWCWDZAU
      XTUXIUXKAUXSHUXQMWEWAUXSUXPHUVFUXQUXOHBHUVFWFWIHUEUVFVABUXOBHUVFWGWHWJWKU
      XNUVGUXOUVGUVFUXCPZUXNUXOGUXCUVFKUPUXNUXOUVFUWTPZUXORUYIUXNUYJUXOUXNUXRUY
      JUYHUVFIFWLTWMBHUVFUWTHUWTWNWOWPWQWHWDUXJUXMRZUVGUVGUFZWRUXLUYKUYLUVGUYKU
      XKUVGUXJUXMVRUXKUVFUXCGUYIUYJUXKBHUVFUWTURZIUVFVPZTKXAWSWTUVGXBXCUXJUXKVI
      ZUXKUXMWRUXJUYFUYEUYOAUYFUXIJVMUYGIUVFXDXEUXKXLTXFAIUGZXGXHVLZUXHPZUYLNUY
      QUOVEZUIZUYLNUBUEZUOVEZUIZUBUXHUJAUYPUXHPZUYRAVUDUWRUYPVHOZAIFVHOZVUEAUXA
      VUFUXEIFVPTAIFAIJVNZAFUXFVNXIXJAUWRSPUYPSPZVUDVUEVTUXGAIJUTZUWRUYPYAXEWDU
      WRUYPXKTAUYLNUYSAUVEUYSPZRZUVGUYPUYPUMOZVUKUVGRZVULUYQUYPVHOZVUMUYQUVEUYP
      VUMUYPQPUYQQPVUMIAIQPVUJUVGVUGWAZXMZUYPXNTVUMUVEVUJUYCAUVGUYQUVEUSXOVNZVU
      PVUJUYQUVEVHOAUVGUYQUVEVPXOVUMIUVEVUOVUQAUVGUXKVUJAUVGRUYJUXKUVGUYJAUYJUV
      FUXCGUYMKXAVOUYNTXPXQXRVUMVUHVUHVULVUNVTAVUHVUJUVGVUIWAZVURUYPUYPXSXEWDVU
      MUYPVUPXTYBWEVUCUYTUBUYQUXHVUAUYQVAUYLNVUBUYSVUAUYQUOYCYDYEXEYFAUWQUWJCSA
      UWMUWEUWPUWIAUWDDUWLUVHAUCUWLUVHUCUEZUWLPZVUSUVHPZVTAVUSSPZVUSUGZGPZRZVUS
      QPZVVDRZVUTVVAVVEVVGVVBVVFVVDVUSYGYHVVGVVBVVDVVGVVBVVCSPZVVDVVHVVFVVDVVCU
      WTPZVVHVVIVVCUXCGBHVVCUWTURKXAIVVCUSTVOVVFVVBVVHVTZVVDVVFVUSYIPVVJVUSYJVU
      SYKTVMWDVVFVVDVRVSYLUVGVVDNVUSSNUCYMUVFVVCGUVEVUSVBVCZYNUVGVVDNVUSQVVKYNY
      OYPYQZYDAUWOUWHDQAUWNUWGUVAAUWFEUWLUVHVVLYRYSYTUUAUUBXJUWJCSQUUCUUDUVHQUN
      AUVGNQUUEYPUUFUVRUWCCQUVKUVSUVQUWBUVBDUVJGUDUVJGUDUEZUVJPZVVMQPZVVMGPZUVI
      UAVVMQURVVPVVMUWTPZVVOVVQVVMUXCGBHVVMUWTURKXAIVVMUUGTVVOVVNVVMUGZUVHPZVVR
      UGZGPZVVPUVIVVSUAVVMQUAUDYMUVDVVRUVHUVCVVMVBVCUUHVVOVWAVVRQPZVWARVVSVVOVW
      BVWAVVMUUIWMUVGVWANVVRQUVEVVRVAUVFVVTGUVEVVRVBVCYNWPVVOVVTVVMGVVOVVMVVMYJ
      VDVCUUJUUMUUKZUULUVPUWADQUVOUVTUVLUVNEUVJGVWCUUNUUOUUPUUQUURUQ $.

    $d A j m y $.  $d A m n $.  $d M j m $.  $d M m n $.  $d S a b m x y z $.
    $d S j m x y z $.  $d S a m w x y z $.  $d a b m n ph $.
    $d j m ph x y z $.
    $( The infimum of a subset of an upper set of integers is less than or
       equal to all members of the subset.  (Contributed by Jim Kingdon,
       13-Jan-2022.) $)
    infssuzledc $p |- ( ph -> inf ( S , RR , < ) <_ A ) $=
      ( vx vy vz vb va cr clt wcel wbr wn cinf cv wa wb lttri3 adantl infssuzex
      weq infclti cuz cfv crab elrabi eleq2s eluzelre 3syl inflbti mpd nltled )
      ADPQUAZCAKLMNOPDQOUBZPRNUBZPRUCONUHVAVBQSTVBVAQSTUCUDAVAVBUEUFZABKLMCDEFG
      HIJUGZUIACDRZCFUJUKZRZCPRIVGCBEVFULDBECVFUMHUNFCUOUPAVECUTQSTIAKLMNOPDCQV
      CVDUQURUS $.

    ${
      $d A j m y $.  $d A m n $.  $d M j m $.  $d M m n $.  $d S a b m x y z $.
      $d S j m x y z $.  $d S u w $.  $d a b m n ph $.  $d a m ph w x y z $.
      $d j m ph x y z $.
      $( The infimum of a subset of an upper set of integers belongs to the
         subset.  (Contributed by Jim Kingdon, 20-Jan-2022.) $)
      infssuzcldc $p |- ( ph -> inf ( S , RR , < ) e. S ) $=
        ( vw vx vy vz vu cr clt cneg wcel cz cinf cv crab infssuzex wss cuz cfv
        csup ssrab2 eqsstri uzssz sstri zssre a1i infrenegsupex infsupneg negeq
        wa eleq1d elrab sseli adantl cc wb simpl recnd znegclb syl mpbird sylbi
        wceq ssriv suprzclex nfrab1 nfcv nfsup nfneg nfel1 elrabf sylib eqeltrd
        simprd ) ADPQUAKUBZRZDSZKPUCZPQUHZRZDALMKDABLMKCDEFGHIJUDDPUEADTPDFUFUG
        ZTDBEWIUCWIHBEWIUIUJFUKULZUMULUNZUOAWGPSZWHDSZAWGWFSWLWMURALMNWFALMNKDA
        BLMNCDEFGHIJUDWKUPWFTUEAOWFTOUBZWFSWNPSZWNRZDSZURZWNTSZWEWQKWNPWCWNVKWD
        WPDWCWNUQUSUTWRWSWPTSZWQWTWODTWPWJVAVBWRWNVCSWSWTVDWRWNWOWQVEVFWNVGVHVI
        VJVLUNVMWEWMKWGPKWFPQWEKPVNKPVOZKQVOVPZXAKWHDKWGXBVQVRWCWGVKWDWHDWCWGUQ
        USVSVTWBWA $.
    $}
  $}

  ${
    $d A m n $.
    $( There is an upper bound to the divisors of a nonzero integer.
       (Contributed by Jim Kingdon, 11-Dec-2021.) $)
    dvdsbnd $p |- ( ( A e. ZZ /\ A =/= 0 ) ->
        E. n e. NN A. m e. ( ZZ>= ` n ) -. m || A ) $=
      ( cz wcel cc0 wne wa cfv cv clt wbr cn wn cle ad3antrrr adantl simplr mpd
      wrex cabs cdvds cuz wral simpl zcnd abscld arch syl simpllr nnred eluzelz
      cr zred eluzle ltletrd wb zabscl ad4antr zltnle syl2anc mpbid wi ad2antrr
      w3a dvdsleabs con3d syl3anc ralrimiva ex reximdva ) ADEZAFGZHZAUAIZCJZKLZ
      CMTZBJZAUBLZNZBVPUCIZUDZCMTVNVOUMEZVRVNAVNAVLVMUEZUFUGZVOCUHUIVNVQWCCMVNV
      PMEZHZVQWCWHVQHZWABWBWIVSWBEZHZVSVOOLZNZWAWKVOVSKLZWMWKVOVPVSVNWDWGVQWJWF
      PWKVPVNWGVQWJUJUKWKVSWJVSDEZWIVPVSULQZUNWHVQWJRWJVPVSOLWIVPVSUOQUPWKVODEZ
      WOWNWMUQVLWQVMWGVQWJAURUSWPVOVSUTVAVBWKWOVLVMWMWAVCWPVNVLWGVQWJWEPWHVMVQW
      JVLVMWGRVDWOVLVMVEVTWLVSAVFVGVHSVIVJVKS $.
  $}

  ${
    $d X j n x y z $.  $d Y j n x y z $.
    $( Existence of the supremum used in defining ` gcd ` .  (Contributed by
       Jim Kingdon, 12-Dec-2021.) $)
    gcdsupex $p |- ( ( ( X e. ZZ /\ Y e. ZZ ) /\ -. ( X = 0 /\ Y = 0 ) ) ->
        E. x e. ZZ ( A. y e. { n e. ZZ | ( n || X /\ n || Y ) } -. x < y /\
        A. y e. RR ( y < x -> E. z e. { n e. ZZ | ( n || X /\ n || Y ) }
          y < z ) ) ) $=
      ( vj cz wcel wa cc0 wceq wn cdvds wbr c1 wdc cn wral wrex cv 1zzd anbi12d
      breq1 anim12i adantr cuz elnnuz biimpri simpll dvdsdc syl2an2 simplr dcan
      1dvds cfv sylc adantlr wne simplll dvdsbnd nnuz rexeqi id intnanrd ralimi
      sylib reximi syl sylancom simpllr intnand wo simpr wb zdceq sylancl mpbid
      0z ianordc df-ne orbi12i sylibr mpjaodan zsupcllemex ) EHIZFHIZJZEKLZFKLZ
      JMZJZDUAZENOZWMFNOZJZPENOZPFNOZJZABCGDPWLUBWMPLWNWQWOWRWMPENUDWMPFNUDUCWH
      WSWKWFWQWGWREUOFUOUEUFWHWMPUGUPZIZWPQZWKWHXAJWNQZWOQZXBXAWMRIZWHWFXCXEXAW
      MUHUIZWFWGXAUJWMEUKULXAXEWHWGXDXFWFWGXAUMWMFUKULWNWOUNUQURWLEKUSZWPMZDGUA
      UGUPZSZGWTTZFKUSZWLXGWFXKWFWGWKXGUTWFXGJZWNMZDXISZGWTTZXKXMXOGRTXPEDGVAXO
      GRWTVBVCVGXOXJGWTXNXHDXIXNWNWOXNVDVEVFVHVIVJWLXLWGXKWFWGWKXLVKWGXLJZWOMZD
      XISZGWTTZXKXQXSGRTXTFDGVAXSGRWTVBVCVGXSXJGWTXRXHDXIXRWOWNXRVDVLVFVHVIVJWL
      WIMZWJMZVMZXGXLVMWLWKYCWHWKVNWLWIQZWKYCVOWLWFKHIYDWFWGWKUJVSEKVPVQWIWJVTV
      IVRXGYAXLYBEKWAFKWAWBWCWDWE $.
  $}

  ${
    $d X j n $.  $d Y j n $.
    $( Closure of the supremum used in defining ` gcd ` .  A lemma for ~ gcdval
       and ~ gcdn0cl .  (Contributed by Jim Kingdon, 11-Dec-2021.) $)
    gcdsupcl $p |- ( ( ( X e. ZZ /\ Y e. ZZ ) /\ -. ( X = 0 /\ Y = 0 ) ) ->
        sup ( { n e. ZZ | ( n || X /\ n || Y ) } , RR , < ) e. NN ) $=
      ( vj cz wcel wa cc0 wceq wn cv cdvds wbr c1 cn wdc wral wrex nnuz syl clt
      crab csup cuz cfv 1zzd breq1 anbi12d anim12i adantr elnnuz biimpri simpll
      cr 1dvds dvdsdc syl2an2 simplr dcan sylc adantlr wne simplll rexeqi sylib
      dvdsbnd id intnanrd ralimi reximi sylancom simpllr intnand wo simpr wb 0z
      zdceq sylancl ianordc mpbid orbi12i sylibr mpjaodan zsupcl syl6eleqr
      df-ne ) BEFZCEFZGZBHIZCHIZGJZGZAKZBLMZWOCLMZGZAEUBUNUAUCNUDUEZOWNWRNBLMZN
      CLMZGZDANWNUFWONIWPWTWQXAWONBLUGWONCLUGUHWJXBWMWHWTWIXABUOCUOUIUJWJWOWSFZ
      WRPZWMWJXCGWPPZWQPZXDXCWOOFZWJWHXEXGXCWOUKULZWHWIXCUMWOBUPUQXCXGWJWIXFXHW
      HWIXCURWOCUPUQWPWQUSUTVAWNBHVBZWRJZADKUDUEZQZDWSRZCHVBZWNXIWHXMWHWIWMXIVC
      WHXIGZWPJZAXKQZDWSRZXMXOXQDORXRBADVFXQDOWSSVDVEXQXLDWSXPXJAXKXPWPWQXPVGVH
      VIVJTVKWNXNWIXMWHWIWMXNVLWIXNGZWQJZAXKQZDWSRZXMXSYADORYBCADVFYADOWSSVDVEY
      AXLDWSXTXJAXKXTWQWPXTVGVMVIVJTVKWNWKJZWLJZVNZXIXNVNWNWMYEWJWMVOWNWKPZWMYE
      VPWNWHHEFYFWHWIWMUMVQBHVRVSWKWLVTTWAXIYCXNYDBHWGCHWGWBWCWDWESWF $.
  $}

  ${
    $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 wcel cc0 wceq wa cv cdvds wbr crab cr clt csup cif cn0 cgcd co
      wn simpr iftrued 0nn0 syl6eqel cn iffalsed gcdsupcl eqeltrd nnnn0d wdc wo
      gcdmndc exmiddc syl mpjaodan eqeq1 anbi1d rabbidv supeq1d ifbieq2d anbi2d
      breq2 df-gcd ovmpt2g mpd3an3 ) BFGZCFGZBHIZCHIZJZHAKZBLMZVMCLMZJZAFNZOPQZ
      RZSGZBCTUAVSIVHVIJZVLVTVLUBZWAVLJZVSHSWCVLHVRWAVLUCUDUEUFWAWBJZVSWDVSVRUG
      WDVLHVRWAWBUCUHABCUIUJUKWAVLULVLWBUMBCUNVLUOUPUQDEBCFFDKZHIZEKZHIZJZHVMWE
      LMZVMWGLMZJZAFNZOPQZRVSTVJWHJZHVNWKJZAFNZOPQZRSWEBIZWIWOWNWRHWSWFVJWHWEBH
      URUSWSOWMWQPWSWLWPAFWSWJVNWKWEBVMLVDUSUTVAVBWGCIZWOVLWRVRHWTWHVKVJWGCHURV
      CWTOWQVQPWTWPVPAFWTWKVOVNWGCVMLVDVCUTVAVBDEAVEVFVG $.
  $}

  $( 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 M n $.  $d N n $.
    $( 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 cz wcel wa cc0 wceq wn cgcd co cv cdvds wbr crab cr csup cn gcdn0val
      clt gcdsupcl eqeltrd ) ADEBDEFAGHBGHFIFABJKCLZAMNUCBMNFCDOPTQRCABSCABUAUB
      $.
  $}

  ${
    $d M n x y z $.  $d N n x y z $.
    $( 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 vx vy vz cz wcel wa cc0 wceq cgcd co cdvds wbr wn cv cr clt wrex wss
      0z dvds0 ax-mp breq2 bi2anan9 syl6bb mpbiri oveq12 gcd0val syl6eq anbi12d
      anidm breq1d mpbird adantl crab csup gcdn0val zssre gcdsupex ssrexv mpsyl
      wral wi ssrab2 a1i suprzclex eqeltrd wb gcdn0cl nnzd breq1 elrab3 syl wdc
      mpbid wo gcdmndc exmiddc mpjaodan ) AGHBGHIZAJKZBJKZIZABLMZANOZWFBNOZIZWE
      PZWEWIWBWEWIJANOZJBNOZIZWEWMJJNOZJGHWNUBJUCUDWEWMWNWNIWNWCWKWNWDWLWNAJJNU
      EBJJNUEUFWNUMUGUHWEWGWKWHWLWEWFJANWEWFJJLMJAJBJLUIUJUKZUNWEWFJBNWOUNULUOU
      PWBWJIZWFCQZANOZWQBNOZIZCGUQZHZWIWPWFXARSURXACABUSWPDEFXAGRUAWPDQZEQZSOPE
      XAVDXDXCSOXDFQSOFXATVEERVDIZDGTXEDRTUTDEFCABVAXEDGRVBVCXAGUAWPWTCGVFVGVHV
      IWPWFGHXBWIVJWPWFABVKVLWTWICWFGWQWFKWRWGWSWHWQWFANVMWQWFBNVMULVNVOVQWBWEV
      PWEWJVRABVSWEVTVOWA $.
  $}

  ${
    $d K n $.  $d M f g x $.  $d M n x y z $.  $d N f g x $.  $d N n x y z $.
    $( 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 vx vy vz vg vf cz wcel wceq wa wn cdvds wbr cv cr clt wrex cgcd crab
      w3a cc0 co cle csup simpll1 zred simpll2 simpll3 simplr lttri3 adantl wss
      wb wral zssre gcdsupex ssrexv mpsyl supclti syl21anc simpr anbi12d elrab3
      wi breq1 syl mpbird supubti mpd nltled gcdn0val breqtrrd ex ) AJKZBJKZCJK
      ZUCZBUDLCUDLMNZMZABOPZACOPZMZABCUAUEZUFPWBWEMZADQZBOPZWHCOPZMZDJUBZRSUGZW
      FUFWGAWMWGAVQVRVSWAWEUHZUIWGVRVSWAWMRKVQVRVSWAWEUJZVQVRVSWAWEUKZVTWAWEULZ
      VRVSMWAMZEFGHIRWLSIQZRKHQZRKMWSWTLWSWTSPNWTWSSPNMUPWRWSWTUMUNZJRUOWREQZFQ
      ZSPNFWLUQXCXBSPXCGQSPGWLTVGFRUQMZEJTXDERTUREFGDBCUSXDEJRUTVAZVBVCWGAWLKZW
      MASPNZWGXFWEWBWEVDWGVQXFWEUPWNWKWEDAJWHALWIWCWJWDWHABOVHWHACOVHVEVFVIVJWG
      VRVSWAXFXGVGWOWPWQWREFGHIRWLASXAXEVKVCVLVMWGVRVSWAWFWMLWOWPWQDBCVNVCVOVP
      $.
  $}

  $( 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 wn oveq12 gcd0val syl6eq 0nn0 syl6eqel adantl
    cn0 gcdn0cl nnnn0d wdc wo gcdmndc exmiddc syl mpjaodan ) ACDBCDEZAFGBFGEZAB
    HIZQDZUGJZUGUIUFUGUHFQUGUHFFHIFAFBFHKLMNOPUFUJEUHABRSUFUGTUGUJUAABUBUGUCUDU
    E $.

  $( 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 wdc wn wi gcdmndc wne gcdn0cl nnne0d ex df-ne
    syl6ib condc sylc oveq12 gcd0val syl6eq impbid1 ) ACDBCDEZABFGZHIZAHIBHIEZU
    FUIJUIKZUHKZLUHUILABMUFUJUGHNZUKUFUJULUFUJEUGABOPQUGHRSUIUHTUAUIUGHHFGHAHBH
    FUBUCUDUE $.

  $( 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 cap cr cle 0re
    nn0re nn0ge0 leltap mp3an2i nn0z 0zd zapne syl2anc gcdeq0 necon3abid bitr2d
    bitrd syl ) ACDBCDEZFABGHZIJZUOFKZAFLBFLEZMUNUONDZUPUQOABPUSUPUOFQJZUQFRDUS
    UORDFUOSJUPUTOTUOUAUOUBFUOUCUDUSUOCDFCDUTUQOUOUEUSUFUOFUGUHULUMUNURUOFABUIU
    JUK $.

  $( 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 wceq cgcd co cabs cfv wn wa cle wbr cdvds mpan adantr mpd syl
    0z wi gcd0val oveq2 fveq2 abs0 syl6eq 3eqtr4a adantl wne gcddvds simprd cn0
    df-ne gcdcl nn0zd dvdsleabs 3anidm12 zabscl dvds0 iddvds wb absdvdsb anidms
    syl3an1 jca eqid biantrur necon3abii w3a dvdslegcd ex mp3an2 mpancom syl5bi
    mpbid imp zred letri3d mpbir2and sylan2br wdc zdceq mpan2 exmiddc mpjaodan
    wo ) ABCZADEZDAFGZAHIZEZWGJZWGWJWFWGDDFGDWHWIUAADDFUBWGWIDHIDADHUCUDUEUFUGW
    KWFADUHZWJADULWFWLKZWJWHWILMZWIWHLMZWMWHANMZWNWFWPWLWFWHDNMZWPDBCZWFWQWPKSD
    AUIOUJPWFWLWPWNTZWFWHBCWFWLWSWFWHWRWFWHUKCSDAUMOUNZWHAUOVCUPQWMWIDNMZWIANMZ
    KZWOWFXCWLWFXAXBWFWIBCZXAAUQZWIURRWFAANMZXBAUSWFXFXBUTAAVAVBVNVDPWFWLXCWOTZ
    WLDDEZWGKZJZWFXGXIADXHWGDVEVFVGXDWFXJXGTZXEXDWRWFXKSXDWRWFVHXJXGWIDAVIVJVKV
    LVMVOQWFWJWNWOKUTWLWFWHWIWFWHWTVPWFWIXEVPVQPVRVSWFWGVTZWGWKWEWFWRXLSADWAWBW
    GWCRWD $.

  $( 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 wn oveq12 adantl anbi2d cle wbr cdvds gcddvds
    wb 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 letri3d adantr mpbir2and wdc wo gcdmndc exmiddc syl mpjaodan
    zred eqcomd ) ACDZBCDZEZABFGZABUAZFGZVRAHIZBHIZEZVSWAIZWDJZVRWDEVSHHFGZWAWD
    VSWGIVRAHBHFKLVRWDWAWGIZVRWDWBVTHIZEZWHVQWDWJRVPVQWCWIWBVQBBUJUBMLZAHVTHFKU
    CUKUDVRWFEWEVSWANOZWAVSNOZWFVRWLWFVRVSAPOZVSVTPOZEZWLVRWNVSBPOZEWPABQVRWQWO
    WNVPVQVSCDZWQWORVRVSABSUEZVSBUFUGMUHVRWFWPWLTZVRWFWJJZWTVRWDWJWKUIVRWRVPVTC
    DZXAWTTWSVPVQULZVQXBVPBUMZLWRVPXBVBXAWTVSAVTUNUOUPUQURVCUSWFVRWMWFVRWAAPOZW
    ABPOZEZWMVRXGXEWAVTPOZEZVQVPXBXIXDAVTQUTVRXFXHXEVPVQWACDZXFXHRVQVPXBXJXDVPX
    BEWAAVTSUEUTZWABUFUGMVAVRWFXGWMTZVRXJVPVQWFXLTXKXCVPVQVDXJVPVQVBWFXLWAABUNU
    OUPURVCUSVRWEWLWMERWFVRVSWAVRVSWSVNVRWAXKVNVEVFVGVRWDVHWDWFVIABVJWDVKVLVMVO
    $.

  $( 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 $.

  $( 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 wceq wa wbr cdvds c1 wi zcnd syl2anc eqtrd
    wdc w3a cle gcddvds 3adant1 simpld simp1 1zzd cn0 gcdcl nn0zd simp2 dvds2ln
    simp3 syl23anc mpd mulid2d oveq2d breqtrd zmulcld zaddcld dvdslegcd syl3anc
    wn jca ex mpid znegcld gcdcld mulneg1d oveq12d mulcld negcld addcomd negidd
    eqtr3d oveq1d addassd addid2d 3eqtr3d anim12d nn0red letri3d sylibrd wo 0zd
    cneg wb zdceq dcan orandc simpr mul01d adantr eqeq1d pm5.32da oveq12 adantl
    sylc syl6bir imp eqtr4d sylbid jaod sylbird dcn syl exmiddc mpjaod ) ADEZBD
    EZCDEZUAZBCFGZBABHGZCIGZFGZBCXNIGZFGXLBJKZXOJKZLZVCZXRCJKZLZVCZLZXMXPKZYEVC
    ZXLYEXMXPUBMZXPXMUBMZLYFXLYAYHYDYIXLYAXMBNMZXMXONMZLZYHXLYJYKXLYJXMCNMZXJXK
    YJYMLZXIBCUCUDZUEXLXMXNOCHGZIGZXONXLYNXMYQNMZYOXLXIODEZXMDEZXJXKYNYRPXIXJXK
    UFZXLUGZXLXMXJXKXMUHEXIBCUIUDZUJZXIXJXKUKZXIXJXKUMZAOXMBCULUNUOXLYPCXNIXLCX
    LCUUFQZUPUQURVDXLYTXJXODEZYAYLYHPZPUUDUUEXLXNCXLABUUAUUEUSUUFUTZYTXJUUHUAYA
    UUIXMBXOVAVEVBVFXLYDXPBNMZXPCNMZLZYIXLUUKUULXLUUKXPXONMZXLXJUUHUUKUUNLZUUEU
    UJBXOUCRZUEXLXPAWFZBHGZOXOHGZIGZCNXLUUOXPUUTNMZUUPXLUUQDEYSXPDEZXJUUHUUOUVA
    PXLAUUAVGUUBXLXPXLBXOUUEUUJVHZUJZUUEUUJUUQOXPBXOULUNUOXLUUTXNWFZXOIGZCXLUUR
    UVEUUSXOIXLABXLAUUAQZXLBUUEQZVIXLXOXLXOUUJQUPVJXLUVEXNIGZCIGJCIGZUVFCXLUVIJ
    CIXLXNUVEIGUVIJXLXNUVEXLABUVGUVHVKZXLXNUVKVLZVMXLXNUVKVNVOVPXLUVEXNCUVLUVKU
    UGVQXLCUUGVRZVSSURVDXLUVBXJXKYDUUMYIPZPUVDUUEUUFUVBXJXKUAYDUVNXPBCVAVEVBVFV
    TXLXMXPXLXMUUCWAXLXPUVCWAWBWCXLYGXTYCWDZYFXLXTTZYCTZUVOYGWGXLXRTZXSTZUVPXLX
    JJDEZUVRUUEXLWEZBJWHRZXLUUHUVTUVSUUJUWAXOJWHRXRXSWIWRZXLUVRYBTZUVQUWBXLXKUV
    TUWDUUFUWACJWHRXRYBWIWRZXTYCWJRXLXTYFYCXLXTYCYFXLXRXSYBXLXRLZXOCJUWFXOUVJCU
    WFXNJCIUWFXNAJHGZJUWFBJAHXLXRWKUQXLUWGJKXRXLAUVGWLWMSVPXLUVJCKXRUVMWMSWNWOZ
    XLYCYFXLYCLXMJJFGZXPYCXMUWIKXLBJCJFWPWQXLYCXPUWIKZXLYCXTUWJUWHBJXOJFWPWSWTX
    AVEZXBUWKXCXDXLYETZYEYGWDXLYATZYDTZUWLXLUVPUWMUWCXTXEXFXLUVQUWNUWEYCXEXFYAY
    DWIWRYEXGXFXHXLXOXQBFXLXNCUVKUUGVMUQS $.

  $( 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 1ne0 simpr necon3ai gcdn0cl nnzd 1nn dvdsle sylancl mpd wb nnle1eq1
    ax-mp syl mpbid ) ABCZADEFZDGHZUPDIZUOUPDJHZUQUOUPAJHZUSUODBCZUTUSKLADMNOUO
    UPBCDPCUSUQQUOUPUOVAUPPCZLUOVAKASIZDSIZKZRZVBDSTVFUAVEDSVCVDUBUCULADUDNNZUE
    UFUPDUGUHUIUOVBUQURUJVGUPUKUMUN $.

  $( 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 cq zq qabsor 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 zq qabsord 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 cq wceq adantr adantl syl3anc cc eqtrd
    oveq2d eqtr4d gcdcom cn cmo cdiv cfl cfv cmin cc0 clt wbr nnq nngt0 modqval
    zq zcn nncn znq flqcld zcnd w3a mulneg1 mulcom negeqd ancoms 3adant1 negsub
    mulcl sylan2 3impb znegcld nnz simpl gcdaddm zmodcl nn0zd syl2anc 3eqtr3d )
    ACDZBUADZEZBABUBFZGFZBAGFZVTBGFZABGFZVSWABAABUCFZUDUEZHZBIFZJFZGFZWBVSVTWIB
    GVSVTABWFIFZUFFZWIVSAKDZBKDZUGBUHUIZVTWLLVQWMVRAUMMVRWNVQBUJNVRWOVQBUKNABUL
    OVSAPDZBPDZWFPDZWIWLLVQWPVRAUNMVRWQVQBUONVSWFVSWEABUPUQZURWPWQWRUSZWIAWKHZJ
    FZWLWTWHXAAJWQWRWHXALZWPWRWQXCWRWQEZWHWFBIFZHXAWFBUTXDXEWKWFBVAVBQVCVDRWPWQ
    WRXBWLLZWQWREWPWKPDXFBWFVFAWKVEVGVHQOSRVSWGCDBCDZVQWBWJLVSWFWSVIVRXGVQBVJNZ
    VQVRVKZWGBAVLOSVSXGVTCDWAWCLXHVSVTABVMVNBVTTVOVSXGVQWBWDLXHXIBATVOVP $.

  $( 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
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    bezoutlemstep.is-bezout $e |- ( ph <-> E. s e. ZZ E. t e. ZZ
      r = ( ( A x. s ) + ( B x. t ) ) ) $.
    bezoutlemstep.a $e |- ( th -> A e. NN0 ) $.
    bezoutlemstep.b $e |- ( th -> B e. NN0 ) $.
    bezoutlemstep.w $e |- ( th -> W e. NN ) $.
    bezoutlemstep.y-is-bezout $e |- ( th -> [ y / r ] ph ) $.
    bezoutlemstep.y-nn0 $e |- ( th -> y e. NN0 ) $.
    bezoutlemstep.w-is-bezout $e |- ( th -> [. W / r ]. ph ) $.
    ${
      $d A j k q s u $.  $d A q r s t u v $.  $d B j k q s u $.
      $d B q r s t u v $.  $d W j k q s u $.  $d W q r s t u v $.
      $d j k q s u y $.  $d k q s t u v y $.  $d ph q s t u v $.
      $d q s t th u v $.  $d r s t u v y $.
      $( Lemma for B&eacute;zout's identity.  The is-bezout predicate holds for
         ` ( y mod W ) ` .  (Contributed by Jim Kingdon, 6-Jan-2022.) $)
      bezoutlemnewy $p |- ( th -> [. ( y mod W ) / r ]. ph ) $=
        ( cmul co wceq cz vu vv vq vj vk cv caddc wrex cmo wsbc sbcbii cn eqeq1
        wcel wb 2rexbidv sbcieg syl syl5bb mpbid wsb oveq2 oveq1d eqeq2d oveq2d
        wa cbvrex2v bitri sbbii nfv sbie sylib ad2antrr cn0 clt ad4antr zmodcld
        wbr nn0zd cq cc0 zq nnzd nngt0d modqlt syl3anc w3a eqid modremain mpbii
        syl112anc simprl simplrl ad3antrrr zmulcld zsubcld simprr simplrr simpr
        cmin simplr ad5antr nn0cnd mulcld adddid mul12d oveq12d 3eqtrd nncnd cc
        adantr modqcld qcn subaddd mpbird addsub4d 3eqtr3d subdid eqtr4d rspcev
        zcnd syl2anc rexbidv sylibr rexlimddv ex rexlimdvva mpd ) BGEHUFZQRZFDU
        FZQRZUGRZSZDTUHHTUHZAICUFZGUIRZUJZBAIGUJZYOPYSIUFZYMSZDTUHHTUHZIGUJZBYO
        AUUBIGJUKBGULUNZUUCYOUOMUUBYOIGULYTGSUUAYNHDTTYTGYMUMUPUQURUSUTBYNYRHDT
        TBYITUNZYKTUNZVFZVFZYNYRUUHYNVFZYPEUAUFZQRZFUBUFZQRZUGRZSZUBTUHUATUHZYR
        BUUPUUGYNBAICVAZUUPNUUQYTUUNSZUBTUHUATUHZICVAUUPAUUSICAUUBUUSJUUAUURYTU
        UKYLUGRZSHDUAUBTTYIUUJSZYMUUTYTUVAYJUUKYLUGYIUUJEQVBVCVDYKUULSZUUTUUNYT
        UVBYLUUMUUKUGYKUULFQVBVEVDVGVHVIUUSUUPICUUPIVJYTYPSUURUUOUAUBTTYTYPUUNU
        MUPVKVHVLVMUUIUUOYRUAUBTTUUIUUJTUNZUULTUNZVFZVFZUUOYRUVFUUOVFZUCUFZGQRZ
        YQUGRYPSZYRUCTUVGYPTUNZUUDYQVNUNZYQGVOVRZUVJUCTUHZUVGYPBYPVNUNZUUGYNUVE
        UUOOVPVSZBUUDUUGYNUVEUUOMVPZUVGYPGUVPUVQVQZUVGYPVTUNZGVTUNZWAGVOVRZUVMU
        VGUVKUVSUVPYPWBURZUVGGTUNUVTUVGGUVQWCGWBURZUVGGUVQWDZYPGWEWFUVKUUDUVLUV
        MVFWGYQYQSUVNYQWHUCGYQYPWIWJWKUVGUVHTUNZUVJVFZVFZUUBIYQUJZYRUWGUWHYQYMS
        ZDTUHHTUHZUWGYQEUDUFZQRZFUEUFZQRZUGRZSZUETUHZUDTUHZUWJUWGUUJUVHYIQRZWTR
        ZTUNYQEUWTQRZUWNUGRZSZUETUHZUWRUWGUUJUWSUVFUVCUUOUWFUUIUVCUVDWLVMZUWGUV
        HYIUVGUWEUVJWLZUUIUUEUVEUUOUWFBUUEUUFYNWMWNZWOWPUWGUULUVHYKQRZWTRZTUNYQ
        UXAFUXIQRZUGRZSZUXDUWGUULUXHUVFUVDUUOUWFUUIUVCUVDWQVMZUWGUVHYKUXFUUIUUF
        UVEUUOUWFBUUEUUFYNWRWNZWOWPUWGYQUUKEUWSQRZWTRZUUMFUXHQRZWTRZUGRZUXKUWGY
        PUVIWTRZUUNUXOUXQUGRZWTRYQUXSUWGYPUUNUVIUYAWTUVFUUOUWFXAUWGUVIUVHYMQRUV
        HYJQRZUVHYLQRZUGRUYAUWGGYMUVHQUUIYNUVEUUOUWFUUHYNWSWNVEUWGUVHYJYLUWGUVH
        UXFYAZUWGEYIUWGEBEVNUNUUGYNUVEUUOUWFKXBXCZUWGYIUXGYAZXDUWGFYKUWGFBFVNUN
        UUGYNUVEUUOUWFLXBXCZUWGYKUXNYAZXDXEUWGUYBUXOUYCUXQUGUWGUVHEYIUYDUYEUYFX
        FUWGUVHFYKUYDUYGUYHXFXGXHXGUWGUXTYQSUVJUVGUWEUVJWQUWGYPUVIYQUWGYPBUVOUU
        GYNUVEUUOUWFOXBXCUWGUVHGUYDUWGGUVGUUDUWFUVQXKXIXDUWGYQVTUNYQXJUNUWGYPGU
        VGUVSUWFUWBXKUVGUVTUWFUWCXKUVGUWAUWFUWDXKXLYQXMURXNXOUWGUUKUUMUXOUXQUWG
        EUUJUYEUWGUUJUXEYAZXDUWGFUULUYGUWGUULUXMYAZXDUWGEUWSUYEUWGUVHYIUYDUYFXD
        ZXDUWGFUXHUYGUWGUVHYKUYDUYHXDZXDXPXQUWGUXAUXPUXJUXRUGUWGEUUJUWSUYEUYIUY
        KXRUWGFUULUXHUYGUYJUYLXRXGXSUXCUXLUEUXITUWMUXISZUXBUXKYQUYMUWNUXJUXAUGU
        WMUXIFQVBVEVDXTYBUWQUXDUDUWTTUWKUWTSZUWPUXCUETUYNUWOUXBYQUYNUWLUXAUWNUG
        UWKUWTEQVBVCVDYCXTYBUWPUWIYQYJUWNUGRZSUDUEHDTTUWKYISZUWOUYOYQUYPUWLYJUW
        NUGUWKYIEQVBVCVDUWMYKSZUYOYMYQUYQUWNYLYJUGUWMYKFQVBVEVDVGVLUWGUVLUWHUWJ
        UOUVGUVLUWFUVRXKUUBUWJIYQVNYTYQSUUAUWIHDTTYTYQYMUMUPUQURXOAUUBIYQJUKYDY
        EYFYGYHYFYGYH $.
    $}

    ${
      $d A r s t $.  $d B r s t $.  $d W q r x y z $.  $d W r s t y $.
      $d ph q z $.  $d ph s t $.  $d ps q z $.  $d q th z $.  $d s t th $.
      bezoutlemstep.sub-gcd $e |- ( ps <->
        A. z e. NN0 ( z || r -> ( z || x /\ z || y ) ) ) $.
      bezoutlemstep.hyp $e |- ( ( th /\ [. ( y mod W ) / r ]. ph )
        -> E. r e. NN0 ( [. ( y mod W ) / x ]. [. W / y ]. ps /\ ph ) ) $.
      bezoutlemstep.thx $e |- F/ x th $.
      bezoutlemstep.thr $e |- F/ r th $.
      $( Lemma for B&eacute;zout's identity.  This is the induction step for
         the proof by induction.  (Contributed by Jim Kingdon, 3-Jan-2022.) $)
      bezoutlemstep $p |- ( th -> E. r e. NN0 ( [. W / x ]. ps /\ ph ) ) $=
        ( vq wsbc cv cmo co wa wrex bezoutlemnewy mpdan wcel cmul caddc wceq cz
        cn0 eqidd cn clt wbr wb nn0zd ad2antrr zmodcld cq cc0 syl nngt0d modqlt
        zq nnzd syl3anc modremain syl112anc mpbid cdvds wi simplrl sbcbii breq2
        wral anbi2d imbi2d sbcieg syl5bb sbcbid anbi1d bitrd ad3antrrr r19.21bi
        ralbidv imp simprd simplr simprl dvdsmultr2 mpd simpld zmulcld dvds2add
        mp2and simprr breqtrd jca ex ralrimiva simplrr rexlimddv exp31 reximdai
        mpbird ) CBEJUEZDEUFZJUGUHZUEZAUIZLURUJZBDJUEZAUIZLURUJCALXPUEXSACEGHIJ
        KLMNOPQRSUKUAULCXRYALURUCCLUFZURUMZXRYACYCUIZXRUIZUDUFZJUNUHZXPUOUHZXOU
        PZYAUDUQYEXPXPUPZYIUDUQUJZYEXPUSYEXOUQUMZJUTUMZXPURUMZXPJVAVBZYJYKVCCYL
        YCXRCXORVDZVEZCYMYCXRPVEZCYNYCXRCXOJYPPVFZVEZYEXOVGUMZJVGUMZVHJVAVBYOYE
        YLUUAYQXOVLVIYEJUQUMZUUBYEJYRVMZJVLVIYEJYRVJXOJVKVNUDJXPXOVOVPVQYEYFUQU
        MZYIUIZUIZXTAUUGXTFUFZYBVRVBZUUHJVRVBZUUHXOVRVBZUIZVSZFURWCZUUGUUMFURUU
        GUUHURUMZUIZUUIUULUUPUUIUIZUUJUUKUUQUUHXPVRVBZUUJUUPUUIUURUUJUIZUUGUUIU
        USVSZFURUUGXQUUTFURWCZYDXQAUUFVTCXQUVAVCYCXRUUFCXQUUIUUHDUFZVRVBZUUJUIZ
        VSZFURWCZDXPUEZUVACXNUVFDXPUBXNUUIUVCUUKUIZVSZFURWCZEJUEZCUVFBUVJEJTWAC
        YMUVKUVFVCPUVJUVFEJUTXOJUPZUVIUVEFURUVLUVHUVDUUIUVLUUKUUJUVCXOJUUHVRWBW
        DWEWMWFVIWGWHCYNUVGUVAVCYSUVFUVADXPURUVBXPUPZUVEUUTFURUVMUVDUUSUUIUVMUV
        CUURUUJUVBXPUUHVRWBWIWEWMWFVIWJWKVQWLWNZWOZUUQUUHYHXOVRUUQUUHYGVRVBZUUR
        UUHYHVRVBZUUQUUJUVPUVOUUQUUHUQUMZUUEUUCUUJUVPVSUUQUUHUUGUUOUUIWPVDZUUGU
        UEUUOUUIYEUUEYIWQVEZYEUUCUUFUUOUUIUUDWKZUUHYFJWRVNWSUUQUURUUJUVNWTUUQUV
        RYGUQUMXPUQUMUVPUURUIUVQVSUVSUUQYFJUVTUWAXAUUQXPYEYNUUFUUOUUIYTWKVDUUHY
        GXPXBVNXCUUGYIUUOUUIYEUUEYIXDVEXEXFXGXHCXTUUNVCYCXRUUFXTUVJDJUEZCUUNBUV
        JDJTWACYMUWBUUNVCPUVJUUNDJUTUVBJUPZUVIUUMFURUWCUVHUULUUIUWCUVCUUJUUKUVB
        JUUHVRWBWIWEWMWFVIWGWKXMYDXQAUUFXIXFXJXKXLWS $.
    $}
  $}

  ${
    $d ph a s t w x y z $.  $d ps a s t w z $.  $d a r s t w x y z $.
    $d th a r s t w z $.  $d th x y $.  $d A r s t $.  $d B r s t $.
    bezout.is-bezout $e |- ( ph <-> E. s e. ZZ E. t e. ZZ
      r = ( ( A x. s ) + ( B x. t ) ) ) $.
    bezout.sub-gcd $e |- ( ps <->
      A. z e. NN0 ( z || r -> ( z || x /\ z || y ) ) ) $.
    bezout.a $e |- ( th -> A e. NN0 ) $.
    bezout.b $e |- ( th -> B e. NN0 ) $.
    $( Lemma for B&eacute;zout's identity.  This is the main result which we
       prove by induction and which represents the application of the Extended
       Euclidean algorithm.  (Contributed by Jim Kingdon, 30-Dec-2021.) $)
    bezoutlemmain $p |- ( th -> A. x e. NN0 ( [ x / r ] ph -> A. y e. NN0 (
        [ y / r ] ph -> E. r e. NN0 ( ps /\ ph ) ) ) ) $=
      ( vw wa cn0 nfv nfan va wsb wrex wi wral cv wcel weq sbequ anbi2d rexbidv
      anbi1d imbi2d ralbidv imbi12d sbequ12r cc0 c1 cmin cfz wceq clt wbr nfra1
      co nfcv nfim nfralxy simplr cdvds breq2 imbi1d sbie cz nn0z syl biantrurd
      dvds0 biimpd mprgbir wsbc dfsbcq2 sbcbii c0ex sbcie bitri syl6bb ad3antlr
      sbbid simpr nfs1v sbequ12 anbi12d rspce syl12anc ralrimi simplrl ad2antrr
      mpbiri exp31 cn simplll elnnnn0b sylanbrc simplrr sbsbc sylib cbvralv cmo
      breq1 ad3antrrr simpllr nn0zd zmodfz syl2anc simpll nfsbxy nfrexxy imim2d
      jca rspc ralimdv ad4antr sylan anbi1i dfsbcq syl5bb rspcv sylc mp2d nfre1
      mpd bezoutlemstep rexbii imbi2i ralbii sylibr wo nn0nlt0 w3o 3orass expd
      ztri3or0 orcomd ecased mpjaodan nn0sinds impcom ralrimiva ) CAKDUBZAKEUBZ
      BAQZKRUCZUDZERUEZUDZDRDUFZRUGZCUUPUURCUUJUUOCAKPUBZQZUUKBDPUBZAQZKRUCZUDZ
      ERUEZUDCAKFUBZQZUUKBDFUBZAQZKRUCZUDZERUEZUDZCUUJQZUUOUDPFUUQPFUHZUUTUVGUV
      EUVLUVOUUSUVFCAPFKUIUJUVOUVDUVKERUVOUVCUVJUUKUVOUVBUVIKRUVOUVAUVHABPFDUIU
      LUKUMUNUOPDUHZUUTUVNUVEUUOUVPUUSUUJCAPDKUIUJUVPUVDUUNERUVPUVCUUMUUKUVPUVB
      UULKRUVPUVABABPDUPULUKUMUNUOPUFZRUGZUVMFUQUVQURUSVEUTVEZUEZUUTUVEUVRUVTQZ
      UUTQZUVQUQVAZUVEUQUVQVBVCZUWBUWCQZUVDERUWBUWCEUWAUUTEUVRUVTEUVRESUVMEFUVS
      EUVSVFUVGUVLEUVGESUVKERVDVGVHTUUTESTZUWCESTUWEEUFZRUGZUUKUVCUWEUWHQZUUKQU
      WHUVAKEUBZUUKUVCUWEUWHUUKVIUWCUWJUWBUWHUUKUWCUWJFUFZKUFZVJVCZUWKUQVJVCZUW
      KUWGVJVCZQZUDZFRUEZKEUBZUWSUWOUWPUDZFRUWRUWTFRUEZKEUXAKSKEUHZUWQUWTFRUXBU
      WMUWOUWPUWLUWGUWKVJVKVLUNVMUWKRUGZUWOUWPUXCUWNUWOUXCUWKVNUGUWNUWKVOUWKVRV
      PVQVSVTUWCUVAUWRKEUWCKSUWCUVABDUQWAZUWRBDPUQWBUXDUWMUWKUUQVJVCZUWOQZUDZFR
      UEZDUQWAUWRBUXHDUQMWCUXHUWRDUQWDUUQUQVAZUXGUWQFRUXIUXFUWPUWMUXIUXEUWNUWOU
      UQUQUWKVJVKULUMUNWEWFWGWIWSWHUWIUUKWJUVBUWJUUKQKUWGRUWJUUKKUVAKEWKAKEWKZT
      UXBUVAUWJAUUKUVAKEWLAKEWLWMWNWOWTWPUWBUWDQZUUKBDUVQWAZAQZKRUCZUDZERUEUVEU
      XKUXOERUWBUWDEUWFUWDESTUXKUWHUUKUXNABUXKUWHQZUUKQZDEUAGHIUVQJKLUXKHRUGZUW
      HUUKUXKCUXRUWACUUSUWDWQZNVPWRUXKIRUGZUWHUUKUXKCUXTUXSOVPWRUXKUVQXAUGZUWHU
      UKUXKUVRUWDUYAUVRUVTUUTUWDXBUWBUWDWJUVQXCXDZWRUXPUUKWJUXKUWHUUKVIUXKAKUVQ
      WAZUWHUUKUXKUUSUYCUWACUUSUWDXEZAKPXFXGWRBUXHUAUFZUWLVJVCZUYEUUQVJVCZUYEUW
      GVJVCZQZUDZUARUEMUXGUYJFUARFUAUHZUWMUYFUXFUYIUWKUYEUWLVJXJUYKUXEUYGUWOUYH
      UWKUYEUUQVJXJUWKUYEUWGVJXJWMUOXHWFUXQAKUWGUVQXIVEZWAZQZCUYMQZUUSBEUVQWAZD
      UYLWAZAQZKRUCZUYNCUYMUXKCUWHUUKUYMUXSXKUXQUYMWJXTUXKUUSUWHUUKUYMUYDXKUYNU
      YLUVSUGZUVGUUSBEPUBZDFUBZAQZKRUCZUDZUDZFUVSUEZUYOUUSUYSUDZUDZUYNUWGVNUGUY
      AUYTUYNUWGUXKUWHUUKUYMXLXMUXKUYAUWHUUKUYMUYBXKUWGUVQXNXOUXQUXKUYMVUGUXKUW
      HUUKXPUXKUYMQUVTVUGUWAUVTUUTUWDUYMUVRUVTWJXKUVRUVTVUGUDUVTUUTUWDUYMUVRUVM
      VUFFUVSUVRUVLVUEUVGUVKVUEEUVQRUUSVUDEUUSESVUCEKRERVFVUBAEVUADFEBEPWKXQAES
      TXRVGEPUHZUUKUUSUVJVUDAEPKUIVUJUVIVUCKRVUJUVHVUBAVUJBVUADFVUJDSBEPWLWIULU
      KUOYAXSYBYCYLYDVUFVUIFUYLUVSUWKUYLVAZUVGUYOVUEVUHVUKUVFUYMCAKFUYLWBUJVUKV
      UDUYSUUSVUKVUCUYRKRVUCUYPDUWKWAZAQVUKUYRVUBVULAVUBVUADUWKWAVULVUADFXFVUAU
      YPDUWKBEPXFWCWFYEVUKVULUYQAUYPDUWKUYLYFULYGUKUMUOYHYIYJUXPUUKDUXKUWHDUWBU
      WDDUWAUUTDUVRUVTDUVRDSUVMDFUVSDUVSVFUVGUVLDUVGDSUVKDERDRVFZUUKUVJDAKEDADS
      ZXQZUVIDKRVUMUVHADBDFWKVUNTXRVGVHVGVHTUUTDSTUWDDSTUWHDSTVUOTUXPUUKKUXKUWH
      KUWBUWDKUWAUUTKUVRUVTKUVRKSUVMKFUVSKUVSVFUVGUVLKCUVFKCKSZAKFWKTUVKKERKRVF
      UUKUVJKUXJUVIKRYKVGVHVGVHTCUUSKVUPAKPWKTTUWDKSTUWHKSTUXJTYMWTWPUVDUXOERUV
      CUXNUUKUVBUXMKRUVAUXLABDPXFYEYNYOYPYQUVRUWCUWDYRZUVTUUTUVRVUQUVQUQVBVCZUV
      QYSUVRVURVUQUVRVURUWCUWDYTZVURVUQYRUVRUVQVNUGVUSUVQVOUVQUUCVPVURUWCUWDUUA
      XGUUDUUEWRUUFWTUUGUUBUUHUUI $.
  $}

  ${
    $d A r s t $.  $d B r s t $.
    bezoutlema.is-bezout $e |- ( ph <-> E. s e. ZZ E. t e. ZZ
      r = ( ( A x. s ) + ( B x. t ) ) ) $.
    bezoutlema.a $e |- ( th -> A e. NN0 ) $.
    bezoutlema.b $e |- ( th -> B e. NN0 ) $.
    $( Lemma for B&eacute;zout's identity.  The is-bezout condition is
       satisfied by ` A ` .  (Contributed by Jim Kingdon, 30-Dec-2021.) $)
    bezoutlema $p |- ( th -> [. A / r ]. ph ) $=
      ( cv cmul co caddc wceq cz wrex c1 wcel cc0 wsbc 1z 0z nn0cnd mul01d 1cnd
      oveq2d mulcld addid1d mulid1d 3eqtrrd oveq2 oveq1d eqeq2d mp3an12i cn0 wb
      rspc2ev eqeq1 2rexbidv syl5bb sbcieg syl mpbird ) BAGDUAZDDFKZLMZECKZLMZN
      MZOZCPQFPQZRPSTPSBDDRLMZETLMZNMZOZVLUBUCBVOVMTNMVMDBVNTVMNBEBEJUDUEUGBVMB
      DRBDIUDZBUFUHUIBDVQUJUKVKVPDVMVINMZOFCRTPPVFROZVJVRDVSVGVMVINVFRDLULUMUNV
      HTOZVRVODVTVIVNVMNVHTELULUGUNURUOBDUPSVEVLUQIAVLGDUPAGKZVJOZCPQFPQWADOZVL
      HWCWBVKFCPPWADVJUSUTVAVBVCVD $.

    $( Lemma for B&eacute;zout's identity.  The is-bezout condition is
       satisfied by ` B ` .  (Contributed by Jim Kingdon, 30-Dec-2021.) $)
    bezoutlemb $p |- ( th -> [. B / r ]. ph ) $=
      ( cv cmul co caddc wceq cz wrex cc0 wcel c1 wsbc 0z 1z nn0cnd mul01d 1cnd
      oveq1d mulcld addid2d mulid1d 3eqtrrd oveq2 eqeq2d oveq2d mp3an12i cn0 wb
      rspc2ev eqeq1 2rexbidv syl5bb sbcieg syl mpbird ) BAGEUAZEDFKZLMZECKZLMZN
      MZOZCPQFPQZRPSTPSBEDRLMZETLMZNMZOZVLUBUCBVORVNNMVNEBVMRVNNBDBDIUDUEUGBVNB
      ETBEJUDZBUFUHUIBEVQUJUKVKVPEVMVINMZOFCRTPPVFROZVJVREVSVGVMVINVFRDLULUGUMV
      HTOZVRVOEVTVIVNVMNVHTELULUNUMURUOBEUPSVEVLUQJAVLGEUPAGKZVJOZCPQFPQWAEOZVL
      HWCWBVKFCPPWAEVJUSUTVAVBVCVD $.
  $}

  ${
    $d A a b d s t w x y $.  $d A a b d s t w z $.  $d B a b d s t w x y $.
    $d B a b d s t w z $.
    $( Lemma for B&eacute;zout's identity.  Existence of a number which we will
       later show to be the greater common divisor and its decomposition into
       cofactors.  (Contributed by Mario Carneiro and Jim Kingdon,
       3-Jan-2022.) $)
    bezoutlemex $p |- ( ( A e. NN0 /\ B e. NN0 ) ->
        E. d e. NN0 ( A. z e. NN0 ( z || d -> ( z || A /\ z || B ) ) /\
          E. x e. ZZ E. y e. ZZ d = ( ( A x. x ) + ( B x. y ) ) ) ) $=
      ( vt vs vb cn0 wa cv cmul co wceq cz wrex cdvds wbr wi va wcel caddc wsbc
      vw wral oveq2 oveq2d eqeq2d cbvrexv rexbii rexbidv bitri simpl bezoutlemb
      oveq1d simpr wsb dfsbcq2 breq2 anbi2d imbi2d ralbidv anbi1d imbi12d breq1
      bezoutlema anbi12d cbvralv bezoutlemmain rspcdva mpd ) DJUBZEJUBZKZFLZDAL
      ZMNZEBLZMNZUCNZOZBPQZAPQZFEUDZCLZVPRSZWFDRSZWFERSZKZTZCJUFZWDKZFJQZWDVOGD
      EHFWDVPVREGLZMNZUCNZOZGPQZAPQVPDHLZMNZWPUCNZOZGPQZHPQWCWSAPWBWRBGPVSWOOZW
      AWQVPXEVTWPVRUCVSWOEMUGUHUIUJUKWSXDAHPVQWTOZWRXCGPXFWQXBVPXFVRXAWPUCVQWTD
      MUGUPUIULUJUMZVMVNUNZVMVNUQZUOVOWDFIURZWGWHWFILZRSZKZTZCJUFZWDKZFJQZTZWEW
      NTIJEXKEOZXJWEXQWNWDFIEUSXSXPWMFJXSXOWLWDXSXNWKCJXSXMWJWGXSXLWIWHXKEWFRUT
      VAVBVCVDULVEVOWDFDUDZXRIJUFZWDVOGDEHFXGXHXIVGVOWDFUAURZXJWGWFUALZRSZXLKZT
      ZCJUFZWDKZFJQZTZIJUFZTXTYATUAJDYCDOZYBXTYKYAWDFUADUSYLYJXRIJYLYIXQXJYLYHX
      PFJYLYGXOWDYLYFXNCJYLYEXMWGYLYDWHXLYCDWFRUTVDVBVCVDULVBVCVEWDYGVOUAIUEGDE
      HFXGYFUELZVPRSZYMYCRSZYMXKRSZKZTCUEJWFYMOZWGYNYEYQWFYMVPRVFYRYDYOXLYPWFYM
      YCRVFWFYMXKRVFVHVEVIXHXIVJXHVKVLXIVKVL $.
  $}

  ${
    $d A d x y w $.  $d B d x y w $.  $d A z w d $.  $d B w z $.
    $( Lemma for B&eacute;zout's identity.  Like ~ bezoutlemex but
       where ' z ' is any integer, not just a nonnegative one.  (Contributed by
       Mario Carneiro and Jim Kingdon, 8-Jan-2022.) $)
    bezoutlemzz $p |- ( ( A e. NN0 /\ B e. NN0 ) ->
        E. d e. NN0 ( A. z e. ZZ ( z || d -> ( z || A /\ z || B ) ) /\
          E. x e. ZZ E. y e. ZZ d = ( ( A x. x ) + ( B x. y ) ) ) ) $=
      ( vw cn0 wcel wa cv cdvds wbr wi wral co cz wrex ad2antrr breq1 cmul wceq
      caddc bezoutlemex nfv nfra1 nfan rsp mpd adantlll anbi12d imbi12d cbvralv
      cneg simpr biimpi rspcdva wb simplr simpllr adantr nn0zd negdvdsb syl2anc
      simplll 3imtr4d wo elznn0 simprbi adantl mpjaodan ralrimi anim1d reximdva
      cr ex ) DHIZEHIZJZCKZFKZLMZVTDLMZVTELMZJZNZCHOZWADAKUAPEBKUAPUCPUBBQRAQRZ
      JZFHRWFCQOZWHJZFHRABCDEFUDVSWIWKFHVSWAHIZJZWGWJWHWMWGWJWMWGJZWFCQWMWGCWMC
      UEWFCHUFUGWNVTQIZWFWNWOJZVTHIZWFVTUNZHIZWGWOWQWFWMWGWOJZWQJWQWFWTWQUOWGWQ
      WFNWOWQWFCHUHSUIUJWPWSJZWRWALMZWRDLMZWRELMZJZWBWEWGWOWSXBXENZWMWTWSJGKZWA
      LMZXGDLMZXGELMZJZNZXFGHWRXGWRUBZXHXBXKXEXGWRWALTXMXIXCXJXDXGWRDLTXGWRELTU
      KULWGXLGHOZWOWSWGXNWFXLCGHVTXGUBZWBXHWEXKVTXGWALTXOWCXIWDXJVTXGDLTVTXGELT
      UKULUMUPSWTWSUOUQUJXAWOWAQIWBXBURWNWOWSUSZXAWAWPWLWSVSWLWGWOUTVAVBVTWAVCV
      DXAWCXCWDXDXAWODQIWCXCURXPXADWNVQWOWSVQVRWLWGVESVBVTDVCVDXAWOEQIWDXDURXPX
      AEWNVRWOWSVQVRWLWGUTSVBVTEVCVDUKVFWOWQWSVGZWNWOVTVOIXQVTVHVIVJVKVPVLVPVMV
      NUI $.
  $}

  ${
    $d A d x y t $.  $d B d x y t $.  $d A z t d $.  $d B t z $.
    $( Lemma for B&eacute;zout's identity.  Like ~ bezoutlemzz but
       where ' A ' can be any integer, not just a nonnegative one.
       (Contributed by Mario Carneiro and Jim Kingdon, 8-Jan-2022.) $)
    bezoutlemaz $p |- ( ( A e. ZZ /\ B e. NN0 ) ->
        E. d e. NN0 ( A. z e. ZZ ( z || d -> ( z || A /\ z || B ) ) /\
          E. x e. ZZ E. y e. ZZ d = ( ( A x. x ) + ( B x. y ) ) ) ) $=
      ( vt cz wcel cn0 wa cv cdvds wbr wi cmul co caddc wceq wrex adantll simpr
      wral bezoutlemzz ancoms wb simpll ad2antrr dvdsnegb syl2anc anim1d imim2d
      cneg biimprd ralimdva cc zcnd mulneg12 oveq1d eqeq2d rexbidv znegcl oveq2
      rspcev sylan ex adantl sylbid rexlimdva anim12d reximdva mpd wo cr elznn0
      simprbi adantr mpjaodan ) DHIZEJIZKZDJIZCLZFLZMNZWCDMNZWCEMNZKZOZCHUCZWDD
      ALZPQZEBLPQZRQZSZBHTZAHTZKZFJTZDUMZJIZVTWBWSVSWBVTWSABCDEFUDUEUAWAXAKZWEW
      CWTMNZWGKZOZCHUCZWDWTGLZPQZWMRQZSZBHTZGHTZKZFJTZWSVTXAXNVSXAVTXNGBCWTEFUD
      UEUAXBXMWRFJXBWDJIZKZXFWJXLWQXPXEWICHXPWCHIZKZXDWHWEXRXCWFWGXRWFXCXRXQVSW
      FXCUFXPXQUBXBVSXOXQVSVTXAUGZUHWCDUIUJUNUKULUOXPXKWQGHXPXGHIZKZXKWDDXGUMZP
      QZWMRQZSZBHTZWQYAXJYEBHYAXIYDWDYAXHYCWMRYADUPIXGUPIXHYCSYADXBVSXOXTXSUHUQ
      YAXGXPXTUBUQDXGURUJUSUTVAXTYFWQOXPXTYFWQXTYBHIYFWQXGVBWPYFAYBHWKYBSZWOYEB
      HYGWNYDWDYGWLYCWMRWKYBDPVCUSUTVAVDVEVFVGVHVIVJVKVLVSWBXAVMZVTVSDVNIYHDVOV
      PVQVR $.
  $}

  ${
    $d A d x y t $.  $d B d x y t $.  $d A z t d $.  $d B t z $.
    $( Lemma for B&eacute;zout's identity.  Like ~ bezoutlemaz but
       where ' B ' can be any integer, not just a nonnegative one.
       (Contributed by Mario Carneiro and Jim Kingdon, 8-Jan-2022.) $)
    bezoutlembz $p |- ( ( A e. ZZ /\ B e. ZZ ) ->
        E. d e. NN0 ( A. z e. ZZ ( z || d -> ( z || A /\ z || B ) ) /\
          E. x e. ZZ E. y e. ZZ d = ( ( A x. x ) + ( B x. y ) ) ) ) $=
      ( vt cz wcel wa cn0 cv cdvds wbr wi cmul co caddc wceq wrex adantlr simpr
      wral cneg bezoutlemaz wb simplr ad2antrr dvdsnegb syl2anc anim2d ralimdva
      biimprd imim2d cc mulneg12 oveq2d eqeq2d znegcl oveq2 rspcev sylan adantl
      zcnd ex sylbid rexlimdva reximdv anim12d reximdva mpd wo simprbi mpjaodan
      cr elznn0 ) DHIZEHIZJZEKIZCLZFLZMNZWADMNZWAEMNZJZOZCHUCZWBDALPQZEBLZPQZRQ
      ZSZBHTZAHTZJZFKTZEUDZKIZVQVTWQVRABCDEFUEUAVSWSJZWCWDWAWRMNZJZOZCHUCZWBWIW
      RGLZPQZRQZSZGHTZAHTZJZFKTZWQVQWSXLVRAGCDWRFUEUAWTXKWPFKWTWBKIZJZXDWHXJWOX
      NXCWGCHXNWAHIZJZXBWFWCXPXAWEWDXPWEXAXPXOVRWEXAUFXNXOUBWTVRXMXOVQVRWSUGZUH
      WAEUIUJUMUKUNULXNXIWNAHXNXHWNGHXNXEHIZJZXHWBWIEXEUDZPQZRQZSZWNXSXGYBWBXSX
      FYAWIRXSEUOIXEUOIXFYASXSEWTVRXMXRXQUHVDXSXEXNXRUBVDEXEUPUJUQURXRYCWNOXNXR
      YCWNXRXTHIYCWNXEUSWMYCBXTHWJXTSZWLYBWBYDWKYAWIRWJXTEPUTUQURVAVBVEVCVFVGVH
      VIVJVKVRVTWSVLZVQVREVOIYEEVPVMVCVN $.
  $}

  ${
    $d A d t x y z $.  $d B d t x y z $.
    $( Lemma for B&eacute;zout's identity.  Like ~ bezoutlembz but the greatest
       common divisor condition is a biconditional, not just an implication.
       (Contributed by Mario Carneiro and Jim Kingdon, 8-Jan-2022.) $)
    bezoutlembi $p |- ( ( A e. ZZ /\ B e. ZZ ) ->
        E. d e. NN0 ( A. z e. ZZ ( z || d <-> ( z || A /\ z || B ) ) /\
          E. x e. ZZ E. y e. ZZ d = ( ( A x. x ) + ( B x. y ) ) ) ) $=
      ( cz wcel wa cv cdvds wbr wi wral co wrex cn0 wb syl3anc ax-mp cmul caddc
      wceq bezoutlembz simpllr simpll simplrl dvdsmultr1 simplr simplrr zmulcld
      ad3antrrr dvds2add syl2and simpr breq2d sylibrd bi3 syl5com ex rexlimdvva
      imdistan ancom imbi12i bitr4i sylib ralimdva wex cc0 0z r19.27mv reximdva
      elex2 3imtr3g mpd ) DGHZEGHZIZCJZFJZKLZVSDKLZVSEKLZIZMZCGNVTDAJZUAOZEBJZU
      AOZUBOZUCZBGPAGPZIZFQPWAWDRZCGNWLIZFQPABCDEFUDVRWMWOFQVRVTQHZIZWEWLIZCGNZ
      WNWLIZCGNZWMWOWQWRWTCGWQVSGHZIZWLWEWNMZMZWRWTMZXCWKXDABGGXCWFGHZWHGHZIZIZ
      WKXDXJWKIZWDWAMWEWNXKWDVSWJKLZWAXKWBVSWGKLZWCVSWIKLZXLXKXBVPXGWBXMMWQXBXI
      WKUEZWQVPXBXIWKVPVQWPUFULZXCXGXHWKUGZVSDWFUHSXKXBVQXHWCXNMXOWQVQXBXIWKVPV
      QWPUIULZXCXGXHWKUJZVSEWHUHSXKXBWGGHWIGHXMXNIXLMXOXKDWFXPXQUKXKEWHXRXSUKVS
      WGWIUMSUNXKVTWJVSKXJWKUOUPUQWAWDURUSUTVAXEWLWEIZWLWNIZMXFWLWEWNVBWRXTWTYA
      WEWLVCWNWLVCVDVEVFVGXBCVHZWSWMRVIGHYBVJCVIGVMTZWEWLCGVKTYBXAWORYCWNWLCGVK
      TVNVLVO $.
  $}

  ${
    bezoutlemgcd.1 $e |- ( ph -> A e. ZZ ) $.
    bezoutlemgcd.2 $e |- ( ph -> B e. ZZ ) $.
    ${
      $d D z $.
      bezoutlemgcd.3 $e |- ( ph -> D e. NN0 ) $.
      bezoutlemgcd.4 $e |- ( ph ->
        A. z e. ZZ ( z || D <-> ( z || A /\ z || B ) ) ) $.
      ${
        $d E z $.  $d ph z $.
        bezoutlemmo.5 $e |- ( ph -> E e. NN0 ) $.
        bezoutlemmo.6 $e |- ( ph ->
          A. z e. ZZ ( z || E <-> ( z || A /\ z || B ) ) ) $.
        $( Lemma for B&eacute;zout's identity.  There is at most one
           nonnegative integer meeting the greatest common divisor condition.
           (Contributed by Mario Carneiro and Jim Kingdon, 9-Jan-2022.) $)
        bezoutlemmo $p |- ( ph -> D = E ) $=
          ( wcel cdvds wbr wceq cz wb breq1 wral cn0 nn0zd iddvds cv bibi12d wa
          r19.26 sylanbrc biantr ralimi rspcdva mpbid mpbird dvdseq syl22anc
          syl ) AEUAMFUAMEFNOZFENOZEFPIKAEENOZUQAEQMUSAEIUBZEUCUPABUDZENOZVAFNO
          ZRZUSUQRBQEVAEPVBUSVCUQVAEENSVAEFNSUEAVBVACNOVADNOUFZRZVCVERZUFZBQTZV
          DBQTAVFBQTVGBQTVIJLVFVGBQUGUHVHVDBQVBVEVCUIUJUPZUTUKULAURFFNOZAFQMVKA
          FKUBZFUCUPAVDURVKRBQFVAFPVBURVCVKVAFENSVAFFNSUEVJVLUKUMEFUNUO $.
      $}

      ${
        $d A d e w z $.  $d A d s t z $.  $d B d e w z $.  $d B d s t z $.
        $d D z $.  $d d e ph w $.
        $( Lemma for B&eacute;zout's identity.  There is exactly one
           nonnegative integer meeting the greatest common divisor condition.
           (Contributed by Mario Carneiro and Jim Kingdon, 9-Jan-2022.) $)
        bezoutlemeu $p |- ( ph -> E! d e. NN0 A. z e. ZZ
            ( z || d <-> ( z || A /\ z || B ) ) ) $=
          ( ve vw cv cdvds wbr wa wb cz wral cn0 vs vt wrex wrmo wreu wcel cmul
          co caddc bezoutlembi simpl reximi syl syl2anc weq wi ad2antrr simplrl
          simprl breq1 anbi12d bibi12d cbvralv sylib simplrr simprr bezoutlemmo
          wceq ex ralrimivva breq2 bibi1d ralbidv rmo4 sylibr reu5 sylanbrc ) A
          BMZFMZNOZVRCNOZVRDNOZPZQZBRSZFTUCZWEFTUDZWEFTUEACRUFZDRUFZWFGHWHWIPWE
          VSCUAMUGUHDUBMUGUHUIUHVHUBRUCUARUCZPZFTUCWFUAUBBCDFUJWKWEFTWEWJUKULUM
          UNAWEVRKMZNOZWCQZBRSZPZFKUOZUPZKTSFTSWGAWRFKTTAVSTUFZWLTUFZPZPZWPWQXB
          WPPZLCDVSWLAWHXAWPGUQAWIXAWPHUQAWSWTWPURXCWELMZVSNOZXDCNOZXDDNOZPZQZL
          RSXBWEWOUSWDXIBLRBLUOZVTXEWCXHVRXDVSNUTXJWAXFWBXGVRXDCNUTVRXDDNUTVAZV
          BVCVDAWSWTWPVEXCWOXDWLNOZXHQZLRSXBWEWOVFWNXMBLRXJWMXLWCXHVRXDWLNUTXKV
          BVCVDVGVIVJWEWOFKTWQWDWNBRWQVTWMWCVSWLVRNVKVLVMVNVOWEFTVPVQ $.
      $}

      ${
        $d A w z $.  $d B w z $.  $d D w z $.  $d ph w z $.
        bezoutlemgcd.5 $e |- ( ph -> -. ( A = 0 /\ B = 0 ) ) $.
        $( Lemma for B&eacute;zout's identity.  The number satisfying the
           greatest common divisor condition is the largest number which
           divides both ` A ` and ` B ` .  (Contributed by Mario Carneiro and
           Jim Kingdon, 9-Jan-2022.) $)
        bezoutlemle $p |- ( ph -> A. z e. ZZ
            ( ( z || A /\ z || B ) -> z <_ D ) ) $=
          ( cdvds wbr wa cz wcel wb wceq breq1 ad2antrr cc0 vw cv simpr anbi12d
          cle wi bibi12d equcom bicom 3imtr3i wral cbvralv sylib simplr rspcdva
          mpbird cn cn0 wne 0zd nn0zd 0dvds syl 3bitr3d mtbird elnnne0 sylanbrc
          wn neqned dvdsle syl2anc mpd ex ralrimiva ) ABUBZCKLZVODKLZMZVOEUELZU
          FBNAVONOZMZVRVSWAVRMZVOEKLZVSWBWCVRWAVRUCWBUAUBZEKLZWDCKLZWDDKLZMZPZW
          CVRPZUANVOVOWDQZWJWIPWDVOQWIWJPWKWCWEVRWHVOWDEKRWKVPWFVQWGVOWDCKRVOWD
          DKRUDUGZBUAUHWJWIUIUJAWIUANUKZVTVRAWJBNUKWMIWJWIBUANWLULUMSAVTVRUNZUO
          UPWBVTEUQOZWCVSUFWNWBEUROZETUSWOAWPVTVRHSZWBETWBETQZCTQZDTQZMZAXAVHVT
          VRJSWBTEKLZTCKLZTDKLZMZWRXAAXBXEPZVTVRAWJXFBNTVOTQZWCXBVRXEVOTEKRXGVP
          XCVQXDVOTCKRVOTDKRUDUGIAUTUOSWBENOXBWRPWBEWQVAEVBVCWBXCWSXDWTWBCNOZXC
          WSPAXHVTVRFSCVBVCWBDNOZXDWTPAXIVTVRGSDVBVCUDVDVEVIEVFVGVOEVJVKVLVMVN
          $.

        $d A f g u w z $.  $d B f g u w z $.  $d D f g u w z $.
        $d f g ph w z $.
        $( Lemma for B&eacute;zout's identity.  The number satisfying the
           greatest common divisor condition is the supremum of divisors of
           both ` A ` and ` B ` .  (Contributed by Mario Carneiro and Jim
           Kingdon, 9-Jan-2022.) $)
        bezoutlemsup $p |- ( ph -> D
            = sup ( { z e. ZZ | ( z || A /\ z || B ) } , RR , < ) ) $=
          ( vw cv cdvds wbr wa cz cr clt wcel breq1 vu crab csup wral wrex wceq
          vg vf wn nn0red elrabi adantl zred adantr cle anbi12d simprbi imbi12d
          wi elrab bezoutlemle simpr rspcdva sylan2 mpd lensymd ralrimiva nn0zd
          iddvds syl wb bibi12d mpbid ad2antrr cn0 elrab3 mpbird breq2 sylancom
          rspcev ex lttri3 eqsupti mp3and eqcomd ) ABLZCMNZWFDMNZOZBPUBZQRUCZEA
          EQSZEKLZRNUIZKWJUDWMERNZWMUALZRNZUAWJUEZUSZKQUDWKEUFAEHUJZAWNKWJAWMWJ
          SZOZWMEXBWMXAWMPSZAWIBWMPUKZULUMAWLXAWTUNXBWMCMNZWMDMNZOZWMEUONZXAXGA
          XAXCXGWIXGBWMPWFWMUFZWGXEWHXFWFWMCMTWFWMDMTUPZUTUQULXAAXCXGXHUSZXDAXC
          OWIWFEUONZUSZXKBPWMXIWIXGXLXHXJWFWMEUOTURAXMBPUDXCABCDEFGHIJVAUNAXCVB
          VCVDVEVFVGAWSKQAWMQSZOZWOWRXOWOEWJSZWRXOWOOZXPECMNZEDMNZOZAXTXNWOAEEM
          NZXTAEPSZYAAEHVHZEVIVJAWFEMNZWIVKYAXTVKBPEWFEUFZYDYAWIXTWFEEMTYEWGXRW
          HXSWFECMTWFEDMTUPZVLIYCVCVMVNXQYBXPXTVKXQEAEVOSXNWOHVNVHWIXTBEPYFVPVJ
          VQWQWOUAEWJWPEWMRVRVTVSWAVGAKUAUGUHQWJERUHLZQSUGLZQSOYGYHUFYGYHRNUIYH
          YGRNUIOVKAYGYHWBULWCWDWE $.
      $}
    $}
  $}

  ${
    $d M a b r w $.  $d M d r w z $.  $d N a b r w $.  $d N d r w 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 ) ) ) ) $=
      ( vw vr cz wcel wa cc0 wceq co cv cdvds wbr wb wral cn0 mpbird breq1 cgcd
      va vb crio gcd0val simprl simprr oveq12d 0nn0 a1i 0dvds ad2antrr ad2antlr
      wn jca wi anbi12d bibi12d rspcv ax-mp adantl simplr nn0zd syl mpbid dvds0
      breq2 ad3antrrr breqtrrd 2thd ralrimiva impbida riota5 3eqtr4a wrex caddc
      0z cmul bezoutlembi simpl reximi adantr crab csup simplll simpllr cbvralv
      cr biimpi ad2antll bezoutlemsup riotabiia wreu bezoutlemeu bibi1d ralbidv
      clt riota2 syl2anc syl5eqr gcdn0val 3eqtr4rd rexlimddv wo gcdmndc exmiddc
      wdc mpjaodan ) BGHZCGHZIZBJKZCJKZIZBCUALZAMZDMZNOZXPBNOZXPCNOZIZPZAGQZDRU
      DZKZXNUNZXKXNIZJJUALJXOYDUEYGBJCJUAXKXLXMUFZXKXLXMUGZUHYGYCDRJJRHYGUIUJYG
      XQRHZIZYCXQJKZYKYCIZJXQNOZYLYMYNJBNOZJCNOZIZYGYQYJYCYGYOYPYGYOXLYHXIYOXLP
      XJXNBUKULSYGYPXMYIXJYPXMPXIXNCUKUMSUOULYCYNYQPZYKJGHYCYRUPVQYBYRAJGXPJKZX
      RYNYAYQXPJXQNTYSXSYOXTYPXPJBNTXPJCNTUQURUSUTVASYMXQGHYNYLPYMXQYGYJYCVBVCX
      QUKVDVEYKYLIZYBAGYTXPGHZIZXRYAUUBXRXPJNOZUUAUUCYTXPVFVAZYLXRUUCPYKUUAXQJX
      PNVGUMSUUBXSXTUUBXPJBNUUDYGXLYJYLUUAYHVHVIUUBXPJCNUUDYGXMYJYLUUAYIVHVIUOV
      JVKVLVMVNXKYFIZEMZFMZNOZUUFBNOZUUFCNOZIZPZEGQZYEFRXKUUMFRVOZYFXKUUMUUGBUB
      MVRLCUCMVRLVPLKUCGVOUBGVOZIZFRVOUUNUBUCEBCFVSUUPUUMFRUUMUUOVTWAVDWBUUEUUG
      RHZUUMIZIZUUGYAAGWCWHWQWDZYDXOUUSABCUUGXIXJYFUURWEZXIXJYFUURWFZUUEUUQUUMU
      FZUUMXPUUGNOZYAPZAGQZUUEUUQUUMUVFUULUVEEAGUUFXPKZUUHUVDUUKYAUUFXPUUGNTUVG
      UUIXSUUJXTUUFXPBNTUUFXPCNTUQZURWGWIWJXKYFUURVBWKUUSYDUUFXQNOZUUKPZEGQZDRU
      DZUUGUVKYCDRUVKYCPYJUVJYBEAGUVGUVIXRUUKYAUUFXPXQNTUVHURWGUJWLUUSUUMUVLUUG
      KZUUEUUQUUMUGZUUSUUQUVKDRWMUUMUVMPUVCUUSEBCUUGDUVAUVBUVCUVNWNUVKUUMDRUUGX
      QUUGKZUVJUULEGUVOUVIUUHUUKXQUUGUUFNVGWOWPWRWSVEWTUUEXOUUTKUURABCXAWBXBXCX
      KXNXGXNYFXDBCXEXNXFVDXH $.
  $}

  ${
    $d A d w x y z $.  $d B d w x y z $.
    $( 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.

       The proof is constructive, in the sense that it applies the Extended
       Euclidian Algorithm to constuct a number which can be shown to be
       ` ( A gcd B ) ` and which satisfies the rest of the theorem.  In the
       presence of excluded middle, it is common to prove B&eacute;zout's
       identity by taking the smallest number which satisfies the B&eacute;zout
       condition, and showing it is the greatest common divisor.  But we do not
       have the ability to show that number exists other than by providing a
       way to determine it.  (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 vd vw cz wcel wa cv cdvds wbr wb co wceq wrex cn0 nfv nfan wral cmul
      caddc cgcd bezoutlembi simprrr nfre1 nfcv nfrexya crio dfgcd3 adantr wreu
      simprrl simprl simpll simplr bezoutlemeu breq2 bibi1d ralbidv mpbid eqtrd
      riota2 syl2anc eqeq1d rexbid mpbird rexlimddv ) CHIZDHIZJZEKZFKZLMZVMCLMV
      MDLMJZNZEHUAZVNCAKUBODBKUBOUCOZPZBHQZAHQZJZCDUDOZVSPZBHQZAHQZFRABECDFUEVL
      VNRIZWCJZJZWGWBVLWHVRWBUFWJWFWAAHVLWIAVLASWHWCAWHASVRWBAVRASWAAHUGTTTWJWE
      VTBHVLWIBVLBSWHWCBWHBSVRWBBVRBSWABAHBHUHVTBHUGUITTTWJWDVNVSWJWDVMGKZLMZVP
      NZEHUAZGRUJZVNVLWDWOPWIECDGUKULWJVRWOVNPZVLWHVRWBUNZWJWHWNGRUMVRWPNVLWHWC
      UOZWJECDVNGVJVKWIUPVJVKWIUQWRWQURWNVRGRVNWKVNPZWMVQEHWSWLVOVPWKVNVMLUSUTV
      AVDVEVBVCVFVGVGVHVI $.
  $}

  ${
    $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 f g n y z $.  $d M e f g n y z $.  $d N e f g 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 ) ) ) ) $=
      ( cz wcel wa wceq cc0 wbr cdvds cv wi adantr wb breq2 breq1 adantl cr clt
      vn vy vz vg vf cgcd cle wral w3a gcdcl nn0ge0d gcddvds 3anass ancom bitri
      dvdsgcd sylbir ralrimiva 3jca anbi12d imbi2d ralbidv 3anbi123d mpbird cif
      co crab csup gcdval wn iftrue bi2anan9 imbi1d 3anbi23d dvdszrcl dvds0 jca
      pm5.5 syl ralbidva 0z rspcv ax-mp 0dvds biimpd eqcom syl6ibr sylbid com12
      syl5 ex 3imp syl6bi adantld imp eqtrd ancoms iffalse lttri3 zred 3ad2ant2
      simpld ad2antll elrab imbi12d com23 ad2antrr cn0 elnn0z simplbi2 ad2antrl
      impcom zre ad3antlr cn simp-5l wo elnn0 2a1 anbi2d simplr wdc zdceq mpan2
      ianordc mpbid pm2.24 mpcom jaoi sylbi dvdsle syl2anc exp31 lensymd mpan2d
      com14 com13 syld 3impia expimpd sylibr rspcedvd eqsuptid gcdmndc mpjaodan
      ancri simprr exmiddc eqtr2d impbida ) CEFZDEFZGZACDUFVFZHZIAUGJZACKJZADKJ
      ZGZBLZCKJZUUTDKJZGZUUTAKJZMZBEUHZUIZUUMUUOGUVGIUUNUGJZUUNCKJZUUNDKJZGZUVC
      UUTUUNKJZMZBEUHZUIZUUMUVOUUOUUMUVHUVKUVNUUMUUNCDUJUKCDULUUMUVMBEUUMUUTEFZ
      GZUVPUUKUULUIZUVMUVRUVPUUMGUVQUVPUUKUULUMUVPUUMUNUOUUTCDUPUQURUSNUUOUVGUV
      OOUUMUUOUUPUVHUUSUVKUVFUVNAUUNIUGPUUOUUQUVIUURUVJAUUNCKQAUUNDKQUTUUOUVEUV
      MBEUUOUVDUVLUVCAUUNUUTKPVAVBVCRVDUUMUVGGZUUNCIHZDIHZGZIUALZCKJZUWCDKJZGZU
      AEVGZSTVHZVEZAUUMUUNUWIHUVGUACDVINUVSUWBUWIAHZUWBVJZUWBUVSUWJUWBUVSGUWIIA
      UWBUWIIHUVSUWBIUWHVKNUWBUVSIAHZUWBUVGUWLUUMUWBUVGUUPAIKJZUWMGZUUTIKJZUWOG
      ZUVDMZBEUHZUIUWLUWBUUSUWNUVFUWRUUPUVTUUQUWMUWAUURUWMCIAKPDIAKPVLUWBUVEUWQ
      BEUWBUVCUWPUVDUVTUVAUWOUWAUVBUWOCIUUTKPDIUUTKPVLVMVBVNUUPUWNUWRUWLUWNUUPU
      WRUWLMZUWMUUPUWSMZUWMUWMAEFZIEFZGUWTAIVOUXAUWTUXBUXAUUPUWSUXAUUPGZUWRUVDB
      EUHZUWLUXCUWQUVDBEUXCUVPGUWPUWQUVDOUVPUWPUXCUVPUWOUWOUUTVPZUXEVQRUWPUVDVR
      VSVTUXAUXDUWLMUUPUXDIAKJZUXAUWLUXBUXDUXFMWAUVDUXFBIEUUTIAKQWBWCUXAUXFAIHZ
      UWLUXAUXFUXGAWDWEIAWFWGWJNWHWKNVSNWIWLWMWNWOWPWQUWKUVSUWJUWKUVSGZUWIUWHAU
      WKUWIUWHHUVSUWBIUWHWRNUXHUBUCUDUESUWGATUELZSFUDLZSFGUXIUXJHUXIUXJTJVJUXJU
      XITJVJGOUXHUXIUXJWSRUVGASFZUWKUUMUUSUUPUXKUVFUUQUXKUURUUQAUUQUXAUUKACVOZX
      BZWTNZXAXCUBLZUWGFZUXHAUXOTJVJZUXPUXOEFZUXOCKJZUXODKJZGZGZUXHUXQMUWFUYAUA
      UXOEUWCUXOHUWDUXSUWEUXTUWCUXOCKQUWCUXODKQUTXDUYBUWKUVSUXQUYBUWKGZUUMUVGUX
      QUVGUYCUUMGZUXQUUPUUSUVFUYDUXQMZUYDUVFUUPUUSGZUXQUYDUVFUXOAKJZUYFUXQMUYBU
      VFUYGMZUWKUUMUXRUYAUYHUXRUVFUYAUYGUVEUYAUYGMBUXOEUUTUXOHZUVCUYAUVDUYGUYIU
      VAUXSUVBUXTUUTUXOCKQUUTUXODKQUTUUTUXOAKQXEWBXFWOXGUYFUYGUYDUXQUYFUYGAXHFZ
      UYEUUSUUPUYJUUQUUPUYJMZUURUUQUXAUUKGUYKUXLUXAUYKUUKUYJUXAUUPAXIXJNVSNXLUY
      FUYGUYJGZUYDUXQUYFUYLGZUYDGUXOAUYCUXOSFZUYMUUMUXRUYNUYAUWKUXOXMXGXKUUSUXK
      UUPUYLUYDUXNXNUYMUYDUXOAUGJZUYLUYFUYDUYOMZUYGUYJUYFUYPMUYDUYJUYFUYGUYOUYD
      UYJUYFUYGUYOMZUYDUYJGZUYFGUXRAXOFZUYQUXRUYAUWKUUMUYJUYFXPUYRUYFUYSUYJUYDU
      YFUYSMZUYJUYSUXGXQUYDUYTMZAXRUYSVUAUXGUYSUYDUYFXSUXGUYDUYTUXGUYDGUYFUUPIC
      KJZIDKJZGZGZUYSUXGUYFVUEOUYDUXGUUSVUDUUPUXGUUQVUBUURVUCAICKQAIDKQUTXTNUYD
      VUEUYSMUXGUYDVUDUYSUUPUYDUVTVJZUWAVJZXQZVUDUYSMZUYDUWKVUHUYBUWKUUMYAUUKUW
      KVUHOZUYCUULUUKUVTYBZVUJUUKUXBVUKWACIYCYDUVTUWAYEVSXKYFVUFVUIVUGVUDVUFUYS
      VUBVUFUYSMZVUCUXBUUKGVUBVULICVOUUKVUBVULMUXBUUKVUBUVTVULCWDUVTUYSYGWMRYHN
      WIVUDVUGUYSVUCVUGUYSMZVUBUXBUULGVUCVUMIDVOUULVUCVUMMUXBUULVUCUWAVUMDWDUWA
      UYSYGWMRYHRWIYIVSWNRWHWKYIYJXLWOUXOAYKYLYMYPWOXLWOYNYMYOYQYRYQYSWIYTYTYJX
      LUXHUYNUXOATJZGZGZUXOUCLZTJZVUNUCAUWGVUPUXAUUSGZAUWGFUXHVUSVUOUVGVUSUWKUU
      MUUSUUPVUSUVFUUSUXAUUQUXAUURUXMNUUFXAXCNUWFUUSUAAEUWCAHUWDUUQUWEUURUWCACK
      QUWCADKQUTXDUUAVUQAHVURVUNOVUPVUQAUXOTPRUXHUYNVUNUUGUUBUUCWPWQUVSUWBYBZUW
      BUWKXQUUMVUTUVGCDUUDNUWBUUHVSUUEUUIUUJ $.
  $}

  ${
    $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 nnap0d divcanap2d gcddvds simpld eqbrtrd wne
    nncnd dvdsmul1 nnne0d nn0zd dvdsval2 mpbid dvdscmulr syl112anc dvdscmul mpd
    simprd eqbrtrrd dvdseq syl22anc 3expib mul02d gcd0val syl6reqr zcn 3ad2ant2
    oveq1d cc eqtrd 3ad2ant3 oveq12d 3eqtr4d jaoi sylbi 3impib ) ADEZBFEZCFEZAB
    GHZACGHZIHZABCIHZGHZUAZWLAUBEZAJUAZULWMWNKWTRZAUCXAXCXBXAWMWNWTXAWMWNUDZWQD
    EWSDEWQWSLMWSWQLMZWTXDWOWPXDABXDAXAWMWNUEZUFZXAWMWNUGZUHZXDACXGXAWMWNUIZUHZ
    UJZXDAWRXDAXFUKWMWNWRDEZXABCUMZNZUNZXDAWQAUOHZGHZWQWSLXDWQAXDWQXLUPXDAXFVCX
    DAXFUQURZXDXQWRLMZXRWSLMZXDXQBLMZXQCLMZXTXDXRWOLMZYBXDXRWQWOLXSXDWQWOLMZWQW
    PLMZXDWOFEZWPFEZYEYFKXIXKWOWPUSOZUTVAXDXQFEZWMAFEZAJVBZYDYBSXDAWQLMZYJXDAWO
    LMZAWPLMZYMXDYKWMYNXGXHABVDOXDYKWNYOXGXJACVDOXDYKYGYHYNYOKYMRXGXIXKAWOWPPQT
    XDYKYLWQFEYMYJSXGXDAXFVEZXDWQXLVFAWQVGQVHZXHXGYPAXQBVIVJVHXDXRWPLMZYCXDXRWQ
    WPLXSXDYEYFYIVMVAXDYJWNYKYLYRYCSYQXJXGYPAXQCVIVJVHXDYJWMWNYBYCKXTRYQXHXJXQB
    CPQTXDYJWRFEZYKXTYARYQXDWRXOVFZXGAXQWRVKQVLVNXDWSWOLMZWSWPLMZXEXDWRBLMZUUAX
    DUUCWRCLMZWMWNUUCUUDKXABCUSNZUTXDYSWMYKUUCUUARYTXHXGAWRBVKQVLXDUUDUUBXDUUCU
    UDUUEVMXDYSWNYKUUDUUBRYTXJXGAWRCVKQVLXDWSFEYGYHUUAUUBKXERXDWSXPVFXIXKWSWOWP
    PQTWQWSVOVPVQXBWMWNWTXBWMWNUDZJJIHZJWRGHZWQWSUUFUUHJUUGUUFWRUUFWRWMWNXMXBXN
    NUPVRVSVTUUFWOJWPJIUUFWOJBGHJUUFAJBGXBWMWNUEZWCUUFBWMXBBWDEWNBWAWBVRWEUUFWP
    JCGHJUUFAJCGUUIWCUUFCWNXBCWDEWMCWAWFVRWEWGUUFAJWRGUUIWCWHVQWIWJWK $.

  $( 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 wa cgcd cdiv wceq cmul wrex 3ad2ant3 divcanap4d
      wbr co cc cn cv wb nnz simp1 divides syl2anc simp2 anbi12d reeanv syl6bbr
      wi gcdcl nn0cnd 3adant3 simp3 nnap0d cn0 nnnn0 mulgcdr syl3an3 oveq1d zcn
      nncn 3ad2ant1 3ad2ant2 oveq12d 3eqtr4d oveq12 oveqan12d eqeq12d syl5ibcom
      oveq1 3expa expcom rexlimdvv sylbid imp ) AFGZBFGZCUAGZHZCAIRZCBIRZJZABKS
      ZCLSZACLSZBCLSZKSZMZWBWEDUBZCNSZAMZEUBZCNSZBMZJZEFODFOZWKWBWEWNDFOZWQEFOZ
      JWSWBWCWTWDXAWBCFGZVSWCWTUCWAVSXBVTCUDPZVSVTWAUEDCAUFUGWBXBVTWDXAUCXCVSVT
      WAUHECBUFUGUIWNWQDEFFUJUKWAVSWSWKULVTWAWRWKDEFFWLFGZWOFGZJZWAWRWKULZXDXEW
      AXGXDXEWAHZWMWPKSZCLSZWMCLSZWPCLSZKSZMWRWKXHWLWOKSZCNSZCLSXNXJXMXHXNCXDXE
      XNTGWAXFXNWLWOUMUNUOWAXDCTGXECVDPZXHCXDXEWAUPUQZQXHXIXOCLWAXDXECURGXIXOMC
      USWLWOCUTVAVBXHXKWLXLWOKXHWLCXDXEWLTGWAWLVCVEXPXQQXHWOCXEXDWOTGWAWOVCVFXP
      XQQVGVHWRXJWGXMWJWRXIWFCLWMAWPBKVIVBWNWQXKWHXLWIKWMACLVMWPBCLVMVJVKVLVNVO
      VPPVQVR $.
  $}

  ${
    $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 cmul co cgcd wceq cc0 wdc wn wa cc oveq2d syl adantr eqtrd cfv
    cabs wo wi zdceq mpan2 exmiddc nncn mul01 cn0 nnnn0 nn0gcdid0 oveq2 syl5ibr
    0z eqeq1d wne df-ne zcn absmul syl2an nnre nn0ge0d absidd oveq1d simpll nnz
    nnzd zmulcl sylan gcdabs2 syl2anc nnabscl gcdmultiple sylan2 anassrs expcom
    3eqtr3d sylbir jaoi 3syl anabsi7 ) ACDZBEDZAABFGZHGZAIZWBBJIZKZWFWFLZUAWAWB
    MZWEUBZWBJEDWGUMBJUCUDWFUEWFWJWHWIWEWFAAJFGZHGZAIWIWLAJHGZAWAWLWMIZWBWAANDZ
    WNAUFZWOWKJAHAUGOPQWAWMAIZWBWAAUHDWQAUIZAUJPQRWFWDWLAWFWCWKAHBJAFUKOUNULWHB
    JUOZWJBJUPWIWSWEWIWSMZAWCTSZHGZAABTSZFGZHGZWDAWIXBXEIWSWIXAXDAHWIXAATSZXCFG
    ZXDWAWOBNDXAXGIWBWPBUQABURUSWAXGXDIWBWAXFAXCFWAAAUTWAAWRVAVBVCQROQWTAEDZWCE
    DZXBWDIWTAWAWBWSVDVFWIXIWSWAXHWBXIAVEABVGVHQWCAVIVJWAWBWSXEAIZWBWSMWAXCCDXJ
    BVKAXCVLVMVNVPVOVQVRVSVT $.

  $( 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 $.
    $( Relationship between the order of an element and that of a multiple.  (a
       divisibility equivalent).  (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 mpd simprd gcddiv syl32anc nncn sqdivapd syl31anc dividapd
    nnap0d oveq12d eqtr3d clt wb nnne0d dvdsval2 syl3anc mpbid nnre nnred nngt0
    wne cr nngt0d divgt0d elnnz sylanbrc 2nn rppwr mp3an3 3eqtr2d cap wn neneqd
    anim12i intnanrd gcdn0cl ax-1cn divmulap mp3an2 syl12anc ) ACDZBCDZEZABFGZH
    IGZJUAGZWRAHIGZBHIGZFGZWPWRWPWRWPWQABUBZUCZUDZUEWPXBWRKGZJLZWSXBLZWPXFWTWRK
    GZXAWRKGZFGZAWQKGZHIGZBWQKGZHIGZFGZJWPWTMDZXAMDZWRCDWRWTNSZWRXANSZXFXKLWNXQ
    WOWNWTAUFZUKZOWOXRWNWOXABUFUKZPXDWPWQANSZXSWPYDWQBNSZWNAMDZBMDZYDYEEZWOAUGZ
    BUGZABUHUIZUJZWPWQMDZYFYDXSULWPWQXCUKZWNYFWOYIOZWQAUMQUNWPYEXTWPYDYEYKUOZWP
    YMYGYEXTULYNWOYGWNYJPZWQBUMQUNWTXAWRUPUQWPXMXIXOXJFWPAWQWNARDWOAUROWPWQXCUD
    ZWPWQXCVBZUSWPBWQWOBRDWNBURPYRYSUSVCWPXLXNFGZJLZXPJLZWPWQWQKGZYTJWPYFYGWQCD
    YHUUCYTLYOYQXCYKABWQUPUTWPWQYRYSVAVDWPXLCDZXNCDZUUAUUBULZWPXLMDZTXLVESUUDWP
    YDUUGYLWPYMWQTVNZYFYDUUGVFYNWPWQXCVGZYOWQAVHVIVJWPAWQWNAVODWOAVKOWPWQXCVLZW
    NTAVESWOAVMOWPWQXCVPZVQXLVRVSWPXNMDZTXNVESUUEWPYEUULYPWPYMUUHYGYEUULVFYNUUI
    YQWQBVHVIVJWPBWQWOBVODWNBVKPUUJWOTBVESWNBVMPUUKVQXNVRVSUUDUUEHCDUUFVTXLXNHW
    AWBQUNWCWPXBRDZWRRDZWRTWDSZXGXHVFZWPXBWPXQXREWTTLZXATLZEWEZXBCDWNXQWOXRYBYC
    WGWNUUSWOWNUUQUURWNWTTWNWTYAVGWFWHOWTXAWIQUDXEWPWRXDVBUUMJRDUUNUUOEUUPWJXBJ
    WRWKWLWMVJVD $.

  $( 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 cdvds wbr c2 cexp co wb cc0 wceq syl bitr4d zsqcl cabs cfv adantr
    wa syl2an wdc wn wo wi 0z zdceq mpan2 exmiddc 0dvds cc zcn sqeq0 breq1 sq0i
    adantl breq1d bibi12d syl5ibr wne df-ne nnabscl nnz dvds0 2thd breq2 breq2d
    cn dvdssqlem sylan2 simpl dvdsabsb nnsqcl nnzd abssq 3bitr4d anassrs expcom
    sylbir jaoi 3syl anabsi7 sylan absdvdsb adantlr eqcomd bitrd an32s anabsi5
    ) ACDZBCDZABEFZAGHIZBGHIZEFZJZWIAKLZUAZWPWPUBZUCWIWJSZWOUDZWIKCDZWQUEAKUFUG
    WPUHWPWTWRWSWOWPKBEFZKWMEFZJZWJXDWIWJXBWMKLZXCWJXBBKLZXEBUIWJBUJDZXEXFJBUKZ
    BULMNWJWMCDZXCXEJBOZWMUIMNUOWPWKXBWNXCAKBEUMWPWLKWMEAUNUPUQURWRAKUSZWTAKUTW
    SXKWOWIXKWJWOWIXKSZWJSZAPQZBEFZXNGHIZWMEFZWKWNXLXNVGDZWJXOXQJZAVAXRWJXSWJXF
    UAZXFXFUBZUCXRWJSZXSUDZWJXAXTUEBKUFUGXFUHXFYCYAYBXSXFXNKEFZXPKEFZJZXRYFWJXR
    XNCDZYFXNVBZYGYDYEXNVCYGXPCDZYEXNOXPVCMVDMRXFXOYDXQYEBKXNEVEXFWMKXPEBUNVFUQ
    URYABKUSZYCBKUTYBYJXSXRWJYJXSXRWJYJSZSZXNBPQZEFZXPYMGHIZEFZXOXQYKXRYMVGDYNY
    PJBVAXNYMVHVIXRYGWJXOYNJYKYHWJYJVJXNBVKTYLXQXPWMPQZEFZYPXRYIXIXQYRJYKXRXPXN
    VLVMWJXIYJXJRXPWMVKTYKYPYRJXRYKYOYQXPEYKXGYOYQLWJXGYJXHRBVNMVFUONVOVPVQVRVS
    VTWAWBWIWJWKXOJXKABWCWDXMWNWLPQZWMEFZXQXLWLCDZXIWNYTJWJWIUUAXKAORXJWLWMWCTX
    LYTXQJWJXLYSXPWMEWIYSXPLXKWIXPYSWIAUJDXPYSLAUKAVNMWERUPRWFVOWGVQVRVSVTWH $.

  $( 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 wne wb posdif syl2anr adantr adantl peano2nn0
      nn0re breq1 cz syl2an nn0zd nn0z zsubcl zltlem1 syl2anc cc ax-1cn subsub4
      nn0cn mp3an3 breq2d bitrd 3bitr2d biimpa an32s a1d ffvelrnda zred syl3anc
      ltletr sylibd syland expdimp wdc wo 0zd zdceq dcne mpjaodan anasss expcom
      a2d 3adant1 fnn0ind pm2.43i subidd breqtrd ffvelrnd nn0ge0d 0re mpbir2and
      sylib letri3 ) ADCHZIJZXOIKLZIXOKLZAXODDMNZIKAXOXSKLZADOPZYADDKLAXTQZADIC
      HZOFAOOCUEZIOPYCOPEUAOOICUBUCUFZYEADADYEUGZUHZAUDUIZCHZDYHMNZKLZQAYCDIMNZ
      KLZQZABUIZCHZDYOMNZKLZQZAYOUJUKNZCHZDYTMNZKLZQZYBUDBDDYHIJZYKYMAUUEYIYCYJ
      YLKYHICULYHIDMUMUNUQYHYOJZYKYRAUUFYIYPYJYQKYHYOCULYHYODMUMUNUQYHYTJZYKUUC
      AUUGYIUUAYJUUBKYHYTCULYHYTDMUMUNUQYHDJZYKXTAUUHYIXOYJXSKYHDCULYHDDMUMUNUQ
      YNYAAYCDYLKADYCDKFYGUOADADYFUPZURUSUTYOOPZYODRLZYSUUDQYAUUJUUKSZAYRUUCAUU
      LYRUUCQZAUUJUUKUUMAUUJSZUUKSZUUAIJZUUMUUAIVAZUUOUUPSUUCYRUUNUUPUUKUUCUUNU
      UPSZUUKUUCUURUUKIYQRLZUUAYQRLZUUCUUNUUKUUSVBZUUPUUJYOTPDTPUVAAYOVHYFYODVC
      VDVEUUPUUTUUSVBUUNUUAIYQRVIVFUUNUUTUUCVBUUPUUNUUTUUAYQUJMNZKLZUUCUUNUUAVJ
      PZYQVJPZUUTUVCVBUUNUUAAYDYTOPUUAOPUUJEYOVGOOYTCUBVKZVLZADVJPYOVJPUVEUUJAD
      YEVLYOVMDYOVNVKZUUAYQVOVPUUNUVBUUBUUAKADVQPZYOVQPZUVBUUBJZUUJUUIYOVTUVIUV
      JUJVQPUVKVRDYOUJVSWAVKWBWCZVEWDWEWFWGUUOUUQYRUUCUUNUUQYRSUUCQUUKUUNUUQUUA
      YPRLZYRUUCGUUNUVMYRSZUUTUUCUUNUUATPYPTPYQTPUVNUUTQUUNUUAUVFUGUUNYPAOOYOCE
      WHUGUUNYQUVHWIUUAYPYQWKWJUVLWLWMVEWNUUOUUPWOZUUPUUQWPUUOUVDIVJPUVOUUNUVDU
      UKUVGVEUUOWQUUAIWRVPUUAIWSXMWTXAXBXCXDXEWJXFADUUIXGXHAXOAOODCEYEXIZXJAXOT
      PITPXPXQXRSVBAXOUVPUGXKXOIXNUCXL $.
  $}

  ${
    ialgrlem1st.f $e |- ( ph -> F : S --> S ) $.
    $( Lemma for ~ ialgr0 .  Expressing ~ algrflemg in a form suitable for
       theorems such as ~ iseq1 or ~ iseqfn .  (Contributed by Jim Kingdon,
       22-Jul-2021.) $)
    ialgrlem1st $p |- ( ( ph /\ ( x e. S /\ y e. S ) ) ->
        ( x ( F o. 1st ) y ) e. S ) $=
      ( cv wcel wa c1st ccom co wceq algrflemg adantl wf adantr simprl ffvelrnd
      cfv eqeltrd ) ABGZDHZCGZDHZIZIZUBUDEJKLZUBETZDUFUHUIMAUBUDEDDNOUGDDUBEADD
      EPUFFQAUCUERSUA $.
  $}

  ${
    ialgrlemconst.z $e |- Z = ( ZZ>= ` M ) $.
    ialgrlemconst.a $e |- ( ph -> A e. S ) $.
    $( Lemma for ~ ialgr0 .  Closure of a constant function, in a form suitable
       for theorems such as ~ iseq1 or ~ iseqfn .  (Contributed by Jim Kingdon,
       22-Jul-2021.) $)
    ialgrlemconst $p |- ( ( ph /\ x e. ( ZZ>= ` M ) ) ->
        ( ( Z X. { A } ) ` x ) e. S ) $=
      ( cv cuz cfv wcel wa csn cxp wceq eleq2i biimpri fvconst2g syl2an eqeltrd
      adantr ) ABIZEJKZLZMUCFCNOKZCDACDLZUCFLZUFCPUEHUHUEFUDUCGQRFCUCDSTAUGUEHU
      BUA $.
  $}

  ${
    $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 } ) , S ) $.
    algrf.3 $e |- ( ph -> M e. ZZ ) $.
    algrf.4 $e |- ( ph -> A e. S ) $.
    algrf.5 $e |- ( ph -> F : S --> S ) $.
    algrf.s $e |- ( ph -> S e. V ) $.
    $( 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.) $)
    ialgr0 $p |- ( ph -> ( R ` M ) = A ) $=
      ( vx vy cfv c1st ccom wcel csn cxp fveq1i ialgrlemconst ialgrlem1st iseq1
      cseq wceq cuz cz uzid syl syl6eleqr fvconst2g syl2anc eqtrd syl5eq ) AFCQ
      FERSZDHBUAUBZFUGZQZBFCUTJUCAVAFUSQZBAOPURDUSFGKNAOBDFHILUDAOPDEMUEUFABDTF
      HTVBBUHLAFFUIQZHAFUJTFVCTKFUKULIUMHBFDUNUOUPUQ $.

    $( 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.) $)
    ialgrf $p |- ( ph -> R : Z --> S ) $=
      ( vx vy c1st wf wcel cfv ccom csn cxp cv cuz eleq2i ialgrlemconst sylan2b
      cseq ialgrlem1st iseqf feq1i sylibr ) AHDEQUAZDHBUBUCZFUIZRHDCRAOPUNDUOFG
      HINKOUDZHSAUQFUETZSUQUOTDSHURUQIUFAOBDFHILUGUHAOPDEMUJUKHDCUPJULUM $.

    $d K x y $.
    $( The value of the algorithm iterator ` R ` at ` ( K + 1 ) ` .
       (Contributed by Paul Chapman, 31-Mar-2011.)  (Revised by Mario Carneiro,
       27-Dec-2014.) $)
    ialgrp1 $p |- ( ( ph /\ K e. Z ) ->
                   ( R ` ( K + 1 ) ) = ( F ` ( R ` K ) ) ) $=
      ( vx vy wcel cfv adantr wa c1 caddc co c1st ccom csn cxp fveq1i cuz simpr
      cseq syl6eleq ialgrlemconst wf ialgrlem1st iseqp1 syl5eq iseqcl peano2uzs
      wceq fvconst2g syl2an eqeltrd algrflemg syl2anc fveq2i syl6reqr eqtr4d )
      AFIRZUAZFUBUCUDZCSZFEUEUFZDIBUGUHZGULZSZVLVOSZVNUDZFCSZESZVKVMVLVPSVSVLCV
      PKUIVKPQVNDVOGFHVKFIGUJSAVJUKJUMZADHRVJOTZVKPBDGIJABDRZVJMTZUNZVKPQDEADDE
      UOVJNTUPZUQURVKVSVQESZWAVKVQDRVRDRVSWHVAVKPQVNDVOGFHWBWCWFWGUSVKVRBDAWDVL
      IRVRBVAVJMGFIJUTIBVLDVBVCWEVDVQVREDDVEVFVTVQEFCVPKUIVGVHVI $.
  $}

  ${
    $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 } ) , S ) $.
    alginv.2 $e |- F : S --> S $.
    alginv.3 $e |- I Fn S $.
    alginv.4 $e |- ( x e. S -> ( I ` ( F ` x ) ) = ( I ` x ) ) $.
    alginv.s $e |- S e. V $.
    $( 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.) $)
    ialginv $p |- ( ( A e. S /\ K e. NN0 ) ->
                   ( I ` ( R ` K ) ) = ( I ` ( R ` 0 ) ) ) $=
      ( cn0 wcel cfv wceq wi fveq2 fveq2d vz vk cc0 cv c1 caddc co eqeq1d eqidd
      imbi2d wa nn0uz 0zd id a1i ialgrp1 ialgrf ffvelrnda eqeq12d vtoclga eqtrd
      wf syl biimprd expcom a2d nn0ind impcom ) GNOBDOZGCPZFPZUCCPZFPZQZVIUAUDZ
      CPZFPZVMQZRVIVMVMQZRVIUBUDZCPZFPZVMQZRVIVTUEUFUGZCPZFPZVMQZRVIVNRUAUBGVOU
      CQZVRVSVIWHVQVMVMWHVPVLFVOUCCSTUHUJVOVTQZVRWCVIWIVQWBVMWIVPWAFVOVTCSTUHUJ
      VOWDQZVRWGVIWJVQWFVMWJVPWEFVOWDCSTUHUJVOGQZVRVNVIWKVQVKVMWKVPVJFVOGCSTUHU
      JVIVMUIVTNOZVIWCWGVIWLWCWGRVIWLUKZWGWCWMWFWBVMWMWFWAEPZFPZWBWMWEWNFVIBCDE
      VTUCHNULIVIUMZVIUNZDDEVBVIJUOZDHOVIMUOZUPTWMWADOWOWBQZVINDVTCVIBCDEUCHNUL
      IWPWQWRWSUQURAUDZEPZFPZXAFPZQWTAWADXAWAQZXCWOXDWBXEXBWNFXAWAESTXAWAFSUSLU
      TVCVAUHVDVEVFVGVH $.
  $}

  ${
    $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 } ) , S ) $.
    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 ) $.
    ialgcvg.s $e |- S e. V $.
    $( 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.) $)
    ialgcvg $p |- ( A e. S -> ( C ` ( R ` N ) ) = 0 ) $=
      ( wcel cfv cc0 cn0 wceq clt vk ccom wf nn0uz 0zd id a1i ffvelrni syl5eqel
      ialgrf fvco3 syl2anc sylancr 0nn0 sylancl ialgr0 fveq2d eqtrd syl6reqr cv
      fco wa wne wbr c1 caddc co ffvelrnda fveq2 neeq1d breq12d imbi12d vtoclga
      wi syl peano2nn0 syl2an ialgrp1 sylan 3imtr4d nn0seqcvgd eqtr3d ) BEOZGCD
      UBZPZGDPCPZQWCREDUCZGROWEWFSWCBDEFQHRUDJWCUEZWCUFZEEFUCWCIUGZEHOWCNUGZUJZ
      WCGBCPZRMERBCKUHUIREGCDUKULWCUAWDGWCERCUCWGRRWDUCKWLRERCDVAUMWCQWDPZWMGWC
      WNQDPZCPZWMWCWGQROWNWPSWLUNREQCDUKUOWCWOBCWCBDEFQHRUDJWHWIWJWKUPUQURMUSWC
      UAUTZROZVBZWQDPZFPZCPZQVCZXBWTCPZTVDZWQVEVFVGZWDPZQVCXGWQWDPZTVDWSWTEOXCX
      EVNZWCREWQDWLVHAUTZFPZCPZQVCZXLXJCPZTVDZVNXIAWTEXJWTSZXMXCXOXEXPXLXBQXPXK
      XACXJWTFVIUQZVJXPXLXBXNXDTXQXJWTCVIVKVLLVMVOWSXGXBQWSXGXFDPZCPZXBWCWGXFRO
      XGXSSWRWLWQVPREXFCDUKVQWSXRXACWCBDEFWQQHRUDJWHWIWJWKVRUQURZVJWSXGXBXHXDTX
      TWCWGWRXHXDSWLREWQCDUKVSVKVTWAWB $.
  $}

  $( 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 wb wdc cz nn0z 0z syl adantl cr wo
    zdceq sylancl dcned imordc cle zltnle sylancr adantr nn0le0eq0 notbid bitrd
    df-ne syl6bbr anbi2d nnedc breq1 bi2 syl6 impd sylbird expd ax-1 jctir jaob
    syl6bi sylibr sylbid nn0ge0 nn0re lelttr mp3an1 syl2anr mpand sylibd imim2d
    0re jcad pm3.34 impbid1 con34bdc imbi12i bitr4d ) ACDZBCDZEZBFGZBAHIZJZAFGZ
    WHJZWGWJJZEZWKAFKZBFKZJZEWFWIWMWFWIWKWLWFWIWGLZWHUAZWKWEWIWRMZWDWEWGNWSWEBF
    WEBODZFODZWONZBPZQBFUBZUCUDWGWHUERSWFWQWKJZWHWKJZEWRWKJWFXEXFWFWQWJWHWFWQWJ
    EWQFAHIZEWHWFXGWJWQWFXGWNLZWJWFXGAFUFIZLZXHWDXGXJMZWEWDXAAODXKQAPFAUGUHUIWD
    XJXHMWEWDXIWNAUJUKUIULAFUMZUNZUOWFWQXGWHWFWQWHXGMZXGWHJWFWQWOXNWFXBWQWOMWFW
    TXAXBWEWTWDXCSQXDUCZBFUPRBFAHUQVFWHXGURUSUTVAVBWHWJVCVDWQWKWHVEVGVHWFWHWJWG
    WFWHXGWJWFFBUFIZWHXGWEXPWDBVISWEBTDZATDZXPWHEXGJZWDBVJAVJFTDXQXRXSVQFBAVKVL
    VMVNXMVOVPVRWGWJWHVSVTWFWPWLWKWFWPWOLZXHJZWLWFXBWPYAMXOWNWOWARWGXTWJXHBFUMX
    LWBUNUOWC $.

  ${
    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 } ) , S ) $.
    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 ) $.
    ialgcvga.s $e |- S e. V $.
    $( The countdown function ` C ` remains ` 0 ` after ` N ` steps.
       (Contributed by Paul Chapman, 22-Jun-2011.) $)
    ialgcvga $p |- ( A e. S -> ( K e. ( ZZ>= ` N ) ->
                                ( C ` ( R ` K ) ) = 0 ) ) $=
      ( wcel cfv cc0 wceq wi vm vk cn0 cuz ffvelrni syl5eqel cz nn0z cle wbr wa
      eluz1 cv c1 caddc co fveq2 fveq2d eqeq1d imbi2d ialgcvg a1i nn0ge0 adantr
      w3a cr nn0re zre 0re letr mp3an1 syl2an mpand elnn0z simplbi2 adantl syld
      sylan impr expcom 3adant1 ancld nn0uz 0zd ialgrf ffvelrnda wne clt neeq1d
      id wf breq12d imbi12d vtoclga algcvgb syl6bi mpd syl ialgrp1 sylibrd syl6
      simpr a2d uzind 3expib sylbid com3r ) BEPZHUCPZGHUDQPZGDQZCQZRSZTXHHBCQUC
      NEUCBCLUEUFZXIXJXHXMXIHUGPZXJXHXMTZTHUHXOXJGUGPZHGUIUJZUKXPHGULXOXQXRXPXH
      UAUMZDQZCQZRSZTXHHDQZCQZRSZTZXHUBUMZDQZCQZRSZTXHYGUNUOUPZDQZCQZRSZTXPUAUB
      HGXSHSZYBYEXHYOYAYDRYOXTYCCXSHDUQURUSUTXSYGSZYBYJXHYPYAYIRYPXTYHCXSYGDUQU
      RUSUTXSYKSZYBYNXHYQYAYMRYQXTYLCXSYKDUQURUSUTXSGSZYBXMXHYRYAXLRYRXTXKCXSGD
      UQURUSUTYFXOABCDEFHIJKLMNOVAVBXOYGUGPZHYGUIUJZVEZXHYJYNUUAXHXHYGUCPZUKZYJ
      YNTUUAXHUUBYSYTXHUUBTXOXHYSYTUKUUBXHYSYTUUBXHXIYSYTUUBTXNXIYSUKZYTRYGUIUJ
      ZUUBUUDRHUIUJZYTUUEXIUUFYSHVCVDXIHVFPZYGVFPZUUFYTUKUUETZYSHVGYGVHRVFPUUGU
      UHUUIVIRHYGVJVKVLVMYSUUEUUBTXIUUBYSUUEYGVNVOVPVQVRVSVTWAWBUUCYJYHFQZCQZRS
      ZYNUUCYHEPZYJUULTZXHUCEYGDXHBDEFRIUCWCKXHWDZXHWJZEEFWKXHJVBZEIPXHOVBZWEWF
      UUMUUKRWGZUUKYIWHUJZTZUUNAUMZFQZCQZRWGZUVDUVBCQZWHUJZTUVAAYHEUVBYHSZUVEUU
      SUVGUUTUVHUVDUUKRUVHUVCUUJCUVBYHFUQURZWIUVHUVDUUKUVFYIWHUVIUVBYHCUQWLWMMW
      NUUMUVAYIRWGUUTTZUUNUKUUNCEFYHJLWOUVJUUNXBWPWQWRUUCYMUUKRUUCYLUUJCXHBDEFY
      GRIUCWCKUUOUUPUUQUURWSURUSWTXAXCXDXEXFWRXGWQ $.

    $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.) $)
    ialgfx $p |- ( A e. S -> ( K e. ( ZZ>= ` N ) ->
        ( R ` K ) = ( R ` N ) ) ) $=
      ( wcel cfv wceq wi vm vk cz cuz cn0 ffvelrni syl5eqel nn0zd wa cv cle wbr
      crab uzval eleq2d pm5.32i c1 caddc co fveq2 eqeq1d imbi2d eqidd a1i sylan
      eluznn0 cc0 nn0uz 0zd id ialgrp1 syldan ialgrf ffvelrnda ialgcvga eqeq12d
      wf imp imbi12d vtoclga sylc eqtrd biimprd expcom adantl sylbir a2d uzind3
      sylbi ex com3r mpd ) BEQZHUCQZGHUDRZQZGDRZHDRZSZTWMHWMHBCRUENEUEBCLUFUGZU
      HWNWPWMWSWNWPWMWSTZWNWPUIWNGHAUJZUKULAUCUMZQZUIXAWNWPXDWNWOXCGAHUNZUOUPWM
      UAUJZDRZWRSZTWMWRWRSZTZWMUBUJZDRZWRSZTWMXKUQURUSZDRZWRSZTXAUAAUBHGXFHSZXH
      XIWMXQXGWRWRXFHDUTVAVBXFXKSZXHXMWMXRXGXLWRXFXKDUTVAVBXFXNSZXHXPWMXSXGXOWR
      XFXNDUTVAVBXFGSZXHWSWMXTXGWQWRXFGDUTVAVBXJWNWMWRVCVDWNXKXCQZUIZWMXMXPYBWN
      XKWOQZUIWMXMXPTZTZWNYCYAWNWOXCXKXEUOUPYCYEWNWMYCYDWMYCUIZXPXMYFXOXLWRYFXO
      XLFRZXLWMYCXKUEQZXOYGSWMHUEQYCYHWTXKHVFVEZWMBDEFXKVGIUEVHKWMVIZWMVJZEEFVQ
      WMJVDZEIQWMOVDZVKVLYFXLEQZXLCRZVGSZYGXLSZWMYCYHYNYIWMUEEXKDWMBDEFVGIUEVHK
      YJYKYLYMVMVNVLWMYCYPABCDEFXKHIJKLMNOVOVRXBCRZVGSZXBFRZXBSZTYPYQTAXLEXBXLS
      ZYSYPUUAYQUUBYRYOVGXBXLCUTVAUUBYTYGXBXLXBXLFUTUUBVJVPVSPVTWAWBVAWCWDWEWFW
      GWHWIWJWKWL $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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 wcel cc0 wceq cop cmo co cif cvv wa opexg adantr simpr cz simpl wne
      wn nn0zd cn neqned elnnne0 sylanbrc zmodcld syl2anc wdc zdceq ifcldadc cv
      0zd eqeq1d opeq12 oveq12 opeq12d ifbieq12d ovmpt2ga mpd3an3 ) DGHZEGHZEIJ
      ZDEKZEDELMZKZNZOHDECMVIJVCVDPZVEVFVHOVJVFOHVEDEGGQRVJVEUCZPZVDVGGHVHOHVJV
      DVKVCVDSZRZVLDEVJDTHVKVJDVCVDUAUDRVLVDEIUBEUEHVNVLEIVJVKSUFEUGUHUIEVGGGQU
      JVJETHITHVEUKVJEVMUDVJUOEIULUJUMABDEGGBUNZIJZAUNZVOKZVOVQVOLMZKZNVICOVQDJ
      ZVOEJZPZVPVEVRVTVFVHWCVOEIWAWBSZUPVQVODEUQWCVOEVSVGWDVQDVOELURUSUTFVAVB
      $.

    $( Euclid's Algorithm ~ eucialg 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 wcel cfv c2nd cc0 wne clt wbr cmo cop wceq adantr fveq2d nn0zd cq
      cxp wa c1st co eucalgval wn simpr iftrue eqeq2d fveq2 syl6bi eqeq2 sylibd
      cif syl5com necon3ad mpd iffalsed eqtrd xp2nd 1st2nd2 df-ov syl6eqr xp1st
      cn neqned elnnne0 sylanbrc zmodcld eqeltrd op2ndg 3eqtrd cz zq syl nngt0d
      syl2anc modqlt syl3anc eqbrtrd ex ) DFFUAGZDCHZIHZJKZWDDIHZLMWBWEUBZWDDUC
      HZWFNUDZWFLWGWDWFDNHZOZIHZWJWIWGWCWKIWGWCWFJPZDWKUNZWKWBWCWNPZWEABCDEUEQZ
      WGWMDWKWGWEWMUFWBWEUGWGWMWDJWGWOWMWDJPZWPWMWOWDWFPZWQWMWOWCDPWRWMWNDWCWMD
      WKUHUIWCDIUJUKWFJWDULUMUOUPUQZURUSRWGWFFGZWJFGWLWJPWBWTWEDFFUTQZWGWJWIFWG
      WJWHWFOZNHWIWGDXBNWBDXBPWEDFFVAQRWHWFNVBVCZWGWHWFWGWHWBWHFGWEDFFVDQSZWGWT
      WFJKWFVEGXAWGWFJWSVFWFVGVHZVIVJWFWJFFVKVQXCVLWGWHTGZWFTGZJWFLMWIWFLMWGWHV
      MGXFXDWHVNVOWGWFVMGXGWGWFXASWFVNVOWGWFXEVPWHWFVRVSVTWA $.

    eucialg.2 $e |- R =
      seq 0 ( ( E o. 1st ) , ( NN0 X. { A } ) , ( NN0 X. NN0 ) ) $.
    ${
      eucialgcvga.3 $e |- N = ( 2nd ` A ) $.
      $( Once Euclid's Algorithm halts after ` N ` steps, the second element of
         the state remains 0 .  (Contributed by Jim Kingdon, 11-Jan-2022.) $)
      eucialgcvga $p |- ( A e. ( NN0 X. NN0 ) ->
                         ( K e. ( ZZ>= ` N ) -> ( 2nd ` ( R ` K ) ) = 0 ) ) $=
        ( cn0 wcel cuz cfv c2nd cc0 wceq cvv fvres clt vz cxp wa xp2nd syl5eqel
        cres eluznn0 sylan nn0uz 0zd id eucalgf a1i nn0ex xpex ialgrf ffvelrnda
        syldan syl simpl syl6eqr fveq2d eleq2d biimpar f2ndres wne wbr eucalglt
        wf cv ffvelrni neeq1d breq12d 3imtr4d eqid ialgcvga sylc eqtr3d ex ) CK
        KUBZLZFGMNZLZFDNZONZPQWAWCUCZWDOVTUFZNZWEPWFWDVTLZWHWEQWAWCFKLZWIWAGKLW
        CWJWAGCONZKJCKKUDUEFGUGUHWAKVTFDWACDVTEPRKUIIWAUJWAUKVTVTEVIWAABEHULZUM
        VTRLWAKKUNUNUOZUMUPUQURWDVTOSUSWFWAFCWGNZMNZLZWHPQWAWCUTWAWPWCWAWOWBFWA
        WNGMWAWNWKGCVTOSJVAVBVCVDUACWGDVTEFWNRWLIKKVEUAVJZVTLZWQENZONZPVFWTWQON
        ZTVGWSWGNZPVFXBWQWGNZTVGABEWQHVHWRXBWTPWRWSVTLXBWTQVTVTWQEWLVKWSVTOSUSZ
        VLWRXBWTXCXATXDWQVTOSVMVNWNVOWMVPVQVRVS $.

      eucialg.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 Jim Kingdon, 11-Jan-2022.) $)
      eucialg $p |- ( ( M e. NN0 /\ N e. NN0 ) ->
                   ( 1st ` ( R ` N ) ) = ( M gcd N ) ) $=
        ( cn0 wcel cfv cgcd cc0 c2nd wceq syl cz vz wa c1st co cop cxp wf nn0uz
        cvv 0zd opelxpi syl5eqel eucalgf a1i nn0ex xpex ialgrf ffvelrn sylancom
        1st2nd2 fveq2d df-ov syl6eqr fveq2i op2ndg syl5eq xp2nd nn0zd uzid eqid
        cuz eucialgcvga mpd eqtr3d oveq2d xp1st nn0gcdid0 3syl 3eqtrrd cres wfn
        wss gcdf ffn ax-mp nn0ssz xpss12 mp2an fnssres eucalginv ffvelrni fvres
        cv 3eqtr4d ialginv 0nn0 sylancl 3eqtr3d ialgr0 syl6eq 3eqtrd ) FLMZGLMZ
        UBZGDNZUCNZXEONZPDNZONZFGOUDZXDXGXFXEQNZOUDZXFPOUDZXFXDXGXFXKUEZONXLXDX
        EXNOXDXELLUFZMZXEXNRXBXCLXODUGZXPXDCDXOEPUILUHIXDUJZXDCFGUEZXOKFGLLUKUL
        ZXOXOEUGXDABEHUMZUNZXOUIMXDLLUOUOUPZUNZUQZLXOGDURUSZXELLUTSVAXFXKOVBVCX
        DXKPXFOXDCQNZDNZQNZXKPXDYHXEQXDYGGDXDYGXSQNGCXSQKVDFGLLVEVFVAVAXDCXOMZY
        IPRZXTYJYGYGVKNMZYKYJYGTMYLYJYGCLLVGVHYGVISABCDEYGYGHIYGVJVLVMSVNVOXDXP
        XFLMXMXFRYFXELLVPXFVQVRVSXDXEOXOVTZNZXHYMNZXGXIXBXCYJYNYORXTUACDXOEYMGU
        IIYAOTTUFZWAZXOYPWBZYMXOWAYPLOUGYQWCYPLOWDWELTWBZYSYRWFWFLTLTWGWHYPXOOW
        IWHUAWMZXOMZYTENZONZYTONUUBYMNZYTYMNABEYTHWJUUAUUBXOMUUDUUCRXOXOYTEYAWK
        UUBXOOWLSYTXOOWLWNYCWOUSXDXPYNXGRYFXEXOOWLSXDXHXOMZYOXIRXDXQPLMUUEYEWPL
        XOPDURWQXHXOOWLSWRXDXIXSONXJXDXHXSOXDXHCXSXDCDXOEPUILUHIXRXTYBYDWSKWTVA
        FGOVBVCXA $.
    $}
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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."

In this section, an operation calculating the least common multiple of two
integers ( ~ df-lcm ).  The definition is valid for all integers, including
negative integers and 0, obeying the above mentioned convention.
$)

  $c lcm $.
  $( Extend the definition of a class to include the least common multiple
     operator. $)
  clcm $a class lcm $.

  ${
    $d n x y $.
    $( Define the ` lcm ` operator.  For example, ` ( 6 lcm 9 ) = 1 8 ` .
       (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 , < ) ) ) $.
  $}

  $( Decidablity lemma used in various proofs related to ` lcm ` .
     (Contributed by Jim Kingdon, 21-Jan-2022.) $)
  lcmmndc $p |- ( ( M e. ZZ /\ N e. ZZ ) -> DECID ( M = 0 \/ N = 0 ) ) $=
    ( cz wcel wa cc0 wceq wdc wo 0z zdceq mpan2 adantr adantl dcor sylc ) ACDZB
    CDZEAFGZHZBFGZHZSUAIHQTRQFCDZTJAFKLMRUBQRUCUBJBFKLNSUAOP $.

  ${
    $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 wcel wa cv cc0 wceq cdvds wbr cn crab cr clt cfv c1 syl2anc wo
      cinf cif clcm cvv cmpt2 df-lcm eqeq1 orbi1d breq1 anbi1d rabbidv ifbieq2d
      a1i infeq1d orbi2d anbi2d sylan9eq adantl simpl simpr c0ex cmul cabs 1zzd
      wn co cuz nnuz rabeq ax-mp dvdsmul1 adantr simpll simplr zmulcld dvdsabsb
      wb mpbid dvdsmul2 zcnd absmuld ioran sylib simpld neqned nnabscl nnmulcld
      wne simprd eqeltrd breq2 anbi12d elrab3 syl mpbir2and cfz elfzelz zdvdsdc
      wdc syl2an dcan sylc infssuzcldc elexd lcmmndc ifcldadc ovmpt2d ) BFGZCFG
      ZHZDEBCFFDIZJKZEIZJKZUAZJXLAIZLMZXNXQLMZHZANOZPQUBZUCZBJKZCJKZUAZJBXQLMZC
      XQLMZHZANOZPQUBZUCZUDUEUDDEFFYCUFKXKDEAUGUNXLBKZXNCKZHYCYLKXKYMYNYCYDXOUA
      ZJYGXSHZANOZPQUBZUCYLYMXPYOYBYRJYMXMYDXOXLBJUHUIYMPYAYQQYMXTYPANYMXRYGXSX
      LBXQLUJUKULUOUMYNYOYFYRYKJYNXOYEYDXNCJUHUPYNPYQYJQYNYPYIANYNXSYHYGXNCXQLU
      JUQULUOUMURUSXIXJUTXIXJVAXKYFJYKUEJUEGXKYFHVBUNXKYFVFZHZYKYJYTYIBCVCVGZVD
      RZYJASYTVENSVHRZKYJYIAUUCOKVIYIANUUCVJVKYTUUBYJGZBUUBLMZCUUBLMZYTBUUALMZU
      UEXKUUGYSBCVLVMYTXIUUAFGZUUGUUEVRXIXJYSVNZYTBCUUIXIXJYSVOZVPZBUUAVQTVSYTC
      UUALMZUUFXKUULYSBCVTVMYTXJUUHUULUUFVRUUJUUKCUUAVQTVSYTUUBNGUUDUUEUUFHZVRY
      TUUBBVDRZCVDRZVCVGNYTBCYTBUUIWAYTCUUJWAWBYTUUNUUOYTXIBJWIUUNNGUUIYTBJYTYD
      VFZYEVFZYTYSUUPUUQHXKYSVAYDYEWCWDZWEWFBWGTYTXJCJWIUUONGUUJYTCJYTUUPUUQUUR
      WJWFCWGTWHWKYIUUMAUUBNXQUUBKYGUUEYHUUFXQUUBBLWLXQUUBCLWLWMWNWOWPYTXQSUUBW
      QVGGZHYGWTZYHWTZYIWTYTXIXQFGZUUTUUSUUIXQSUUBWRZBXQWSXAYTXJUVBUVAUUSUUJUVC
      CXQWSXAYGYHXBXCXDXEBCXFXGXH $.
  $}

  ${
    $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 wne cap zapne syl2anc mpbid
      wb wo clcm cv crab cr clt cinf lcmn0val cmul cabs cfv 1zzd cuz nnuz rabeq
      ax-mp simpll simplr zmulcld zcnd ioran biimpi adantl simpld neqned mpbird
      0zd simprd mulap0d nnabscl dvdsmul1 zmulcl dvdsabsb syldan sylan2 anabss7
      dvdsmul2 jca breq2 anbi12d elrab sylanbrc cfz wdc simplll elfzelz zdvdsdc
      adantr simpllr dcan sylc infssuzcldc eqeltrd ) BDEZCDEZFZBGHZCGHZUAIZFZBC
      UBJBAUCZKLZCXAKLZFZAMUDZUEUFUGXEABCUHWTXDBCUIJZUJUKZXEANWTULMNUMUKZHXEXDA
      XHUDHUNXDAMXHUOUPWTXGMEZBXGKLZCXGKLZFZXGXEEWTXFDEZXFGOZXIWTBCWNWOWSUQZWNW
      OWSURZUSZWTXFGPLZXNWTBCWTBXOUTWTCXPUTWTBGPLZBGOZWTBGWTWQIZWRIZWSYAYBFZWPW
      SYCWQWRVAVBVCZVDVEWTWNGDEZXSXTTXOWTVGZBGQRVFWTCGPLZCGOZWTCGWTYAYBYDVHVEWT
      WOYEYGYHTXPYFCGQRVFVIWTXMYEXRXNTXQYFXFGQRSXFVJRWPXLWSWPXJXKWPBXFKLZXJBCVK
      WNWOXMYIXJTBCVLZBXFVMVNSWPCXFKLZXKBCVQWNWOYKXKTZWPWOXMYLYJCXFVMVOVPSVRWHX
      DXLAXGMXAXGHXBXJXCXKXAXGBKVSXAXGCKVSVTWAWBWTXANXGWCJEZFZXBWDZXCWDZXDWDYNW
      NXADEZYOWNWOWSYMWEYMYQWTXANXGWFVCZBXAWGRYNWOYQYPWNWOWSYMWIYRCXAWGRXBXCWJW
      KWLWM $.

    $( 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 lcm0val sylan9eqr breqtrrd
      clcm cn breq2 syl wn ad2antrr oveq1 0z lcmcom mpan2 adantll oveq2 adantlr
      eqtr3d jaodan ad2antlr jca cv crab lcmcllem wb lcmn0cl anbi12d elrab3 wdc
      mpbid lcmmndc exmiddc mpjaodan ) ADEZBDEZFZAGHZBGHZIZAABQJZKLZBVLKLZFZVKU
      AZVHVKFZVMVNVQAGVLKVFAGKLVGVKAMUBVHVIVLGHZVJVGVIVRVFVIVGVLGBQJZGAGBQUCVGB
      GQJZVSGVGGDEVTVSHUDBGUEUFBNUJOUGVFVJVRVGVJVFVLAGQJGBGAQUHANOUIUKZPVQBGVLK
      VGBGKLVFVKBMULWAPUMVHVPFZVLACUNZKLZBWCKLZFZCRUOEZVOCABUPWBVLREWGVOUQABURW
      FVOCVLRWCVLHWDVMWEVNWCVLAKSWCVLBKSUSUTTVBVHVKVAVKVPIABVCVKVDTVE $.

    $( 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 cc0 wceq wa cdvds wbr co cle c1 breq2 wdc zdvdsdc syl2anc
      crab w3a wo wn clcm cv cr clt cinf lcmn0val 3adantl1 adantr 1zzd cuz nnuz
      cfv rabeq ax-mp simpll1 simpr anbi12d sylanbrc cfz simpll2 elfzelz adantl
      elrab simpll3 dcan sylc adantlr infssuzledc eqbrtrd ex ) AEFZBGFZCGFZUABH
      ICHIUBUCZJZBAKLZCAKLZJZBCUDMZANLVRWAJZWBBDUEZKLZCWDKLZJZDETZUFUGUHZANVRWB
      WIIZWAVOVPVQWJVNDBCUIUJUKWCWGAWHDOWCULEOUMUOZIWHWGDWKTIUNWGDEWKUPUQWCVNWA
      AWHFVNVOVPVQWAURVRWAUSWGWADAEWDAIWEVSWFVTWDABKPWDACKPUTVFVAVRWDOAVBMFZWGQ
      ZWAVRWLJZWEQZWFQZWMWNVOWDGFZWOVNVOVPVQWLVCWLWQVRWDOAVDVEZBWDRSWNVPWQWPVNV
      OVPVQWLVGWRCWDRSWEWFVHVIVJVKVLVM $.
  $}

  $( 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 wdc wn wi lcmmndc lcmn0cl nnne0d neneqd ex
    lcm0val sylan9eqr condc sylc oveq1 lcmcom mpan2 eqtr3d adantll oveq2 jaodan
    0z adantlr impbid ) ACDZBCDZEZABFGZHIZAHIZBHIZJZUOUTKUTLZUQLZMUQUTMABNUOVAV
    BUOVAEZUPHVCUPABOPQRUTUQUAUBUOUTUQUOURUQUSUNURUQUMURUNUPHBFGZHAHBFUCUNBHFGZ
    VDHUNHCDVEVDIUJBHUDUEBSUFTUGUMUSUQUNUSUMUPAHFGHBHAFUHASTUKUIRUL $.

  $( 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 wn lcmcom adantr oveq2 lcm0val adantll
    sylan9eqr eqtrd adantlr jaodan 0nn0 syl6eqel lcmn0cl nnnn0d lcmmndc exmiddc
    wdc syl mpjaodan ) ACDZBCDZEZAFGZBFGZHZABIJZKDUPLZUMUPEUQFKUMUNUQFGZUOUMUNE
    UQBAIJZFUMUQUTGUNABMNULUNUTFGUKUNULUTBFIJFAFBIOBPRQSUKUOUSULUOUKUQAFIJFBFAI
    OAPRTUAUBUCUMUREUQABUDUEUMUPUHUPURHABUFUPUGUIUJ $.

  $( 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 wn lcm0val znegcl eqtr4d ad2antlr eqeq12d adantl lcmcom oveq2i
    syl eqcomi negeq oveq2d 3eqtr4a jaodan 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 lcmmndc exmiddc mpjaodan eqcomd
    wdc ) ACDZBCDZEZABFGZABHZFGZWSAIJZBIJZKZWTXBJZXEUAZWSXCXFXDWSXCEZXFBAFGZXAA
    FGZJZXHXKBIFGZXAIFGZJZWRXNWQXCWRXLIXMBUBWRXACDZXMIJBUCZXAUBUJUDUEXCXKXNLWSX
    CXIXLXJXMAIBFMAIXAFMUFUGNWSXFXKLXCWSWTXIXBXJABUHWRWQXOXBXJJXPAXAUHOUFPNXDXF
    WSXDAIFGZAIHZFGZWTXBXSXQXRIAFVBUIUKBIAFMXDXAXRAFBIULUMUNUGUOWSXGEZXFWTXBUPR
    ZXBWTUPRZXTAXBSRZBXBSRZEZYAWSYEXGWSYEYCXAXBSRZEZWRWQXOYGXPAXAUQOWSYDYFYCWSW
    RXBCDYDYFLWQWRURWSXBWRWQXOXBUSDXPAXAUTZOVNBXBVAQVCNPXTXBVDDZWQWRVEZXGYEYATX
    TYIWSYJWSXGXCXAIJZKZUAZYIWRXGYMWQWRXGYMWRXEYLWRXDYKXCWRBBVFVGVHVIVJVKZWRWQX
    OYMYIXPAXAVLVMVOWSXGVPZYIWQWRVQVRWSXGURXBABVSQVTXTAWTSRZBWTSRZEZYBWSYRXGABU
    QPXTYRYPXAWTSRZEZYBXTYQYSYPXTWRWTCDYQYSLWQWRXGWAXTWTABVLZWBBWTVAQVCXTWTVDDZ
    WSYMYTYBTZUUAYOYNUUBWQWRYMUUCTZWRUUBWQXOUUDXPUUBWQXOVEYMUUCWTAXAVSWEWCWDWFW
    GVTWSXFYAYBELXGWSWTXBWSWTABUTWHWRWQXOXBWIDXPWQXOEXBYHWHOWJPWKWSXEWPXEXGKABW
    LXEWMUJWNWO $.

  $( 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 cq zq qabsor anim12i oveq12 sylan9eqr
    clcm ex lcmneg syl2an wi a1i neglcm znegcl sylan eqtrd ccased mpd ) ACDZBCD
    ZEZAFGZAHZUMAIZHZJZBFGZBHZURBIZHZJZEZUMURRKZABRKZHZUJALDZBLDZVCUKAMBMVGUQVH
    VBANBNOUAULUNUSUPVAVFUNUSEVFUBULUMAURBRPUCULUPUSEZVFVIULVDUOBRKZVEUMUOURBRP
    ABUDZQSULUNVAEZVFVLULVDAUTRKVEUMAURUTRPABTQSULUPVAEZVFVMULVDUOUTRKZVEUMUOUR
    UTRPULVNVJVEUJUOCDUKVNVJHAUEUOBTUFVKUGQSUHUI $.

  ${
    $d K n $.  $d M f g n x $.  $d M n x y $.  $d N f g n x $.  $d N n x y $.
    $( 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 cc0 cdiv wb syl3anc
      cc vn vg vf vy clcm cgcd cabs cfv nnmulcl nnred nnz zred adantl 0red nnre
      vw cle nngt0 ltled mulge0d absidd cv crab cr clt cinf wo wn anim12i nnne0
      neneqd ioran sylibr lcmn0val syl2anc lttri3 simpld gcdcl nn0zd dvdsmultr1
      gcddvds 3expb mpancom mpd syl gcdnncl nndivdvds mpbid simprd wne dvdsval2
      nnne0d dvdsmul1 nncn nncnd nnap0d divassapd breqtrrd mulcomd oveq1d eqtrd
      breq2 anbi12d elrab sylanbrc elrabi wrex caddc ad2antlr ad2antrr ad3antlr
      jca bezout simplll simpllr mulap0d cap divdivap2d oveq2 ad2antrl ad2antll
      zcn mulcld mul12d divcanap5d 3eqtrd adantlrr simprl zmulcld sylibd 3impia
      ex ad3antrrr an32s reximdva c1 1z r19.9rmv mp2b eqtr2d adddid oveq12d imp
      divdirapd sylan9eqr oveq2d w3a adantld simprr adantrd zaddcld 3expia impr
      eqeltrd nnzd mpbird anassrs elex2 bitri sylan2b lensymd infminti eqeltrrd
      wex dvdsle divmulap3d eleq1 anbi2d imbi12d breq1d vtoclg mpcom ) BEFZCEFZ
      GZBCUEHZBCUFHZIHZBCIHZUGUHZJAEFZBAKLZCAKLZGZGZUVPAKLZMUVOUVTUVSUVRUVOUVSU
      VOUVSBCUIZUJUVOBCUVOBUVMBNFZUVNBUKZOZULUVOCUVNCNFZUVMCUKZUMZULUVMPBUQLUVN
      UVMPBUVMUNBUOBURUSOUVNPCUQLUVMUVNPCUVNUNCUOCURUSUMUTVAUVOUVSUVQQHZUVPJUVS
      UVRJUVOUVPBDVBZKLZCUWOKLZGZDEVCZVDVEVFZUWNUVOUWHUWKGZBPJZCPJZVGVHZUVPUWTJ
      UVMUWHUVNUWKUWIUWLVIZUVOUXBVHZUXCVHZGUXDUVMUXFUVNUXGUVMBPBVJZVKUVNCPCVJZV
      KVIUXBUXCVLVMDBCVNVOUVOUAUBUCVDUWSUWNVEUCVBZVDFUBVBZVDFGUXJUXKJUXJUXKVELV
      HUXKUXJVELVHGRUVOUXJUXKVPUMUVOUWNUVOUVQUVSKLZUWNEFZUVOUXAUXLUXEUXAUVQBKLZ
      UXLUXAUXNUVQCKLZBCWAZVQZUVQNFZUXAUXNUXLMZUXAUVQBCVRVSZUXRUWHUWKUXSUVQBCVT
      WBWCWDWEUVOUVSEFUVQEFUXLUXMRUWGBCWFZUVSUVQWGVOWHZUJZUVOUXMBUWNKLZCUWNKLZG
      ZUWNUWSFUYBUVOUYDUYEUVOBBCUVQQHZIHZUWNKUVOUWHUYGNFZBUYHKLUWJUVOUXOUYIUVOU
      XAUXOUXEUXAUXNUXOUXPWIWEUVOUXRUVQPWJZUWKUXOUYIRUVOUXAUXRUXEUXTWEZUVOUVQUY
      AWLZUWMUVQCWKSWHBUYGWMVOUVOBCUVQUVMBTFZUVNBWNOZUVNCTFZUVMCWNZUMZUVOUVQUYA
      WOZUVOUVQUYAWPZWQWRUVOCCBUVQQHZIHZUWNKUVOUWKUYTNFZCVUAKLUWMUVOUXNVUBUVOUX
      AUXNUXEUXQWEUVOUXRUYJUWHUXNVUBRUYKUYLUWJUVQBWKSWHCUYTWMVOUVOUWNCBIHZUVQQH
      VUAUVOUVSVUCUVQQUVOBCUYNUYQWSZWTUVOCBUVQUYQUYNUYRUYSWQXAWRXLUWRUYFDUWNEUW
      OUWNJUWPUYDUWQUYEUWOUWNBKXBUWOUWNCKXBXCXDXEUVOUAVBZUWSFZGUWNVUEUVOUWNVDFV
      UFUYCOVUFVUEVDFUVOVUFVUEUWRDVUEEXFUJUMVUFUVOVUEEFZBVUEKLZCVUEKLZGZGZUWNVU
      EUQLZUWRVUJDVUEEUWOVUEJUWPVUHUWQVUIUWOVUEBKXBUWOVUECKXBXCXDUVOVUKGZUWNVUE
      KLZVULVUMVUNUDNXGZDNXGZVUNVUMUVQBUWOIHZCUDVBZIHZXHHZJZUDNXGZDNXGZVUPUVOVV
      CVUKUVOUXAVVCUXEDUDBCXMWEOVUMVVBVUODNVUMUWONFZGVVAVUNUDNVUMVVDVURNFZVVAVU
      NMVUMVVDVVEGZGZVVAVUNVVGVVAGZVUNVUEUWNQHZNFZVVHVVIVUEUWOIHZCQHZVUEVURIHZB
      QHZXHHZNVVGVVAVVIVVOJZUVOVUGVVFVVAVVPMVUJUVOVUGGZVVFGZVVAVVPVVRVVAGVVIVUE
      UVQIHZUVSQHZVUEVUQIHZUVSQHZVUEVUSIHZUVSQHZXHHZVVOVVRVVIVVTJVVAVVRVUEUVSUV
      QVUGVUETFUVOVVFVUEWNXIZUVOUVSTFVUGVVFUVOUVSUWGWOZXJZUVOUVQTFVUGVVFUYRXJVV
      RBCUVOUYMVUGVVFUYNXJZUVNUYOUVMVUGVVFUYPXKZVVRBUVMUVNVUGVVFXNWPZVVRCUVMUVN
      VUGVVFXOWPZXPZUVOUVQPXQLVUGVVFUYSXJXROVVAVVRVVTVUEVUTIHZUVSQHZVWEVVAVVSVW
      NUVSQUVQVUTVUEIXSWTVVRVWOVWAVWCXHHZUVSQHVWEVVRVWNVWPUVSQVVRVUEVUQVUSVWFVV
      RBUWOVWIVVDUWOTFVVQVVEUWOYBXTZYCZVVRCVURVWJVVEVURTFVVQVVDVURYBYAZYCZUUAWT
      VVRVWAVWCUVSVVRVUEVUQVWFVWRYCVVRVUEVUSVWFVWTYCVWHVWMUUDXAUUEVVRVWEVVOJVVA
      VVRVWBVVLVWDVVNXHVVRVWBBVVKIHZUVSQHVVLVVRVWAVXAUVSQVVRVUEBUWOVWFVWIVWQYDW
      TVVRVVKCBVVRVUEUWOVWFVWQYCVWJVWIVWLVWKYEXAVVRVWDCVVMIHZUVSQHVXBVUCQHVVNVV
      RVWCVXBUVSQVVRVUECVURVWFVWJVWSYDWTVVRUVSVUCVXBQUVOUVSVUCJVUGVVFVUDXJUUFVV
      RVVMBCVVRVUEVURVWFVWSYCVWIVWJVWKVWLYEYFUUBOYFYLYGUUCVVGVVONFZVVAUVOVVFVUK
      VXCUVOVVFGVUGVUJVXCUVOVUGVVFVUJVXCMVVQVVFVUJVXCVVQVVFVUJUUGVVLVVNVVQVVFVU
      JVVLNFZVVRVUIVXDVUHVVRVUICVVKKLZVXDVVRUWKVUENFZVVDVUIVXEMUVNUWKUVMVUGVVFU
      WLXKZVUGVXFUVOVVFVUEUKXIZVVQVVDVVEYHZCVUEUWOVTSVVRUWKCPWJZVVKNFVXEVXDRVXG
      UVNVXJUVMVUGVVFUXIXKVVRVUEUWOVXHVXIYICVVKWKSYJUUHYKVVQVVFVUJVVNNFZVVRVUHV
      XKVUIVVRVUHBVVMKLZVXKVVRUWHVXFVVEVUHVXLMUVMUWHUVNVUGVVFUWIYMZVXHVVQVVDVVE
      UUIZBVUEVURVTSVVRUWHBPWJZVVMNFVXLVXKRVXMUVMVXOUVNVUGVVFUXHYMVVRVUEVURVXHV
      XNYIBVVMWKSYJUUJYKUUKUULYNUUMYNOUUNVVGVUNVVJRZVVAVVGUWNNFZUWNPWJZVXFVXPUV
      OVXQVUKVVFUVOUWNUYBUUOZXJUVOVXRVUKVVFUVOUWNUYBWLXJUVOVUGVVFVXFVUJVXHYGUWN
      VUEWKSOUUPYLUUQYOYOWDVUNVUOVUPYPNFZUPVBNFUPUVDZVUNVUORYQUPYPNUURZVUNUDUPN
      YRYSVXTVYAVUOVUPRYQVYBVUODUPNYRYSUUSVMZVUMVXQVUGVUNVULMUVOVXQVUKVXSOUVOVU
      GVUJYHUWNVUEUVEVOWDUUTUVAUVBYTZUVOUVSUVPUVQVWGUVOUVPUVOUWNUVPEVYDUYBUVCWO
      UYRUYSUVFWHYTUVOUWEUWFUWAUVOUWEGZUWFUVOUWAUWDYHVUMUVPVUEKLZMVYEUWFMUAAEVU
      EAJZVUMVYEVYFUWFVYGVUKUWEUVOVYGVUGUWAVUJUWDVUEAEUVGVYGVUHUWBVUIUWCVUEABKX
      BVUEACKXBXCXCUVHVUEAUVPKXBUVIVUMVUNVYFVYCUVOVUNVYFRVUKUVOUWNUVPVUEKVYDUVJ
      OWHUVKUVLYLXL $.
  $}

  $( 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 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 wn gcdcl mul02d lcmcom mpan2 lcm0val eqtr3d abs00bd
    zcn simpr fveq2d mul01d oveq2d jaodan neanior nnabscl anim12i an4s sylan2br
    0z wne wbr wi lcmgcdlem simpld syl lcmabs gcdabs oveq12d oveqan12d nn0abscl
    absidm syl2an absmuld 3eqtr3d wdc lcmmndc exmiddc mpjaodan ) ACDZBCDZEZAFGZ
    BFGZUAZABHIZABUBIZJIZABJIZKLZGZWGUCZWDWEWMWFWDWEEZFBHIZWIJIZFBJIZKLZWJWLWDW
    QWSGWEWDFWIJIZFWQWSWDWIWDWIABUDMUEZWDWPFWIJWCWPFGWBWCBFHIZWPFWCFCDXBWPGVBBF
    UFUGBUHUINOWDWRWDBWCBPDZWBBUKZNZUEUJQRWOWHWPWIJWOAFBHWDWEULZOOWOWKWRKWOAFBJ
    XFOUMQWDWFEZAFHIZWIJIZAFJIZKLZWJWLWDXIXKGWFWDWTFXIXKXAWDXHFWIJWBXHFGWCAUHRO
    WDXJWDAWBAPDZWCAUKZRZUNUJQRXGWHXHWIJXGBFAHWDWFULZUOOXGWKXJKXGBFAJXOUOUMQUPW
    DWNEZAKLZBKLZHIZXQXRUBIZJIZXQXRJIZKLZWJWLXPXQSDZXRSDZEZYAYCGZWNWDAFVCZBFVCZ
    EYFAFBFUQWBYHWCYIYFWBYHEYDWCYIEYEAURBURUSUTVAYFYGFSDXQFTVDXRFTVDEEXSFTVDVEF
    XQXRVFVGVHWDYAWJGWNWDXSWHXTWIJABVIABVJVKRWDYCWLGWNWDXQKLZXRKLZJIZYBYCWLWBXL
    XCYLYBGWCXMXDXLXCYJXQYKXRJAVNBVNVLVOWDXQXRWBXQPDWCWBXQAVMMRWCXRPDWBWCXRBVMM
    NVPWDABXNXEVPQRVQWDWGVRWGWNUAABVSWGVTVHWA $.

  $( 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 wo cdvds wbr wa clcm co wi wb adantl breq1d imbi12d cabs
    cfv w3a wn id breq1 oveq1 0z lcmcom mpan lcm0val sylan9eqr mpbiri 3ad2antl3
    eqtrd adantrd ex oveq2 3ad2antl2 adantld jaod wne neanior lcmcl nn0zd dvds0
    syl a1d adantr breq2 anbi12d adantrl adantllr adantlrr anassrs nnabscl cgcd
    mpbird cmul lcmgcdlem simprd sylani syl2an expdimp dvdsabsb zabscl absdvdsb
    sylan2 bitrd adantlr adantll bicomd lcmabs sylan bitr4d adantrr mpbid zdceq
    wdc mpan2 exmiddc df-ne orbi2i sylibr mpjaodan an4s sylan2br impancom 3impa
    cn 3comr lcmmndc 3adant1 mpjaod ) ADEZBDEZCDEZUAZBFGZCFGZHZBAIJZCAIJZKZBCLM
    ZAIJZNZXSUBZXPXQYEXRXPXQYEXPXQKXTYDYAXOXMXQXTYDNZXNXOXQKZYGFAIJZYINZYIUCZYH
    XTYIYDYIXQXTYIOXOBFAIUDPYHYCFAIXQXOYCFCLMZFBFCLUEXOYLCFLMZFFDEZXOYLYMGUFFCU
    GUHCUIUMUJQRUKULUNUOXPXRYEXPXRKYAYDXTXNXMXRYAYDNZXOXNXRKZYOYJYKYPYAYIYDYIXR
    YAYIOXNCFAIUDPYPYCFAIXRXNYCBFLMFCFBLUPBUIUJQRUKUQURUOUSXNXOXMYFYENZXNXOXMYQ
    XNXOKZYFXMYEYFYRBFUTZCFUTZKXMYENZBFCFVAXNYSXOYTUUAXNYSKZXOYTKZKZXMYEUUDXMKA
    FGZYEAFUTZUUDXMUUEYEUUBXOXMUUEKZYEYTXNXOUUGYEYSYRUUEYEXMYRUUEKYEBFIJZCFIJZK
    ZYCFIJZNZYRUULUUEYRUUKUUJYRYCDEZUUKYRYCBCVBVCZYCVDVEVFVGUUEYEUULOYRUUEYBUUJ
    YDUUKUUEXTUUHYAUUIAFBIVHAFCIVHVIAFYCIVHRPVPVJVKVLVMUUDXMUUFYEUUDXMUUFKZKBST
    ZASTZIJZCSTZUUQIJZKZUUPUUSLMZUUQIJZNZYEUUDUUOUVAUVCUUBUUPXHEZUUSXHEZUUOUVAK
    UVCNUUCBVNCVNUUOUVEUVFKZUUQXHEZUVAUVCAVNUVGUVBUUPUUSVOMVQMUUPUUSVQMSTGUVHUV
    AKUVCNUUQUUPUUSVRVSVTWAWBUUBXOUUOUVDYEOZYTXNXOUUOUVIYSYRXMUVIUUFYRXMKZUVAYB
    UVCYDUVJYBUVAUVJXTUURYAUUTXNXMXTUUROXOXNXMKXTBUUQIJZUURBAWCXMXNUUQDEZUVKUUR
    OAWDZBUUQWEWFWGWHXOXMYAUUTOXNXOXMKYACUUQIJZUUTCAWCXMXOUVLUVNUUTOUVMCUUQWEWF
    WGWIVIWJUVJUVCYCUUQIJZYDYRUVCUVOOXMYRUVBYCUUQIBCWKQVGYRUUMXMYDUVOOUUNYCAWCW
    LWMRWNVKVLWOVMXMUUEUUFHZUUDXMUUEUUEUBZHZUVPXMUUEWQZUVRXMYNUVSUFAFWPWRUUEWSV
    EUUFUVQUUEAFWTXAXBPXCUOXDXEXFXGXIXNXOXSYFHZXMYRXSWQUVTBCXJXSWSVEXKXL $.

  $( 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 cc0 wceq clcm co cabs cfv wn wa lcm0val adantr wb oveq2 mpbird cc
    wne anidms cmul fveq2 abs0 syl6eq adantl df-ne lcmcl nn0cnd zabscl zcnd cap
    eqeq12d wbr zcn simpr absne0d 0zd zapne syl2an2r cgcd lcmgcd oveq2d absmuld
    gcdid 3eqtr3d mulcanap2ad sylan2br wdc wo zdceq mpan2 exmiddc syl mpjaodan
    0z ) ABCZADEZAAFGZAHIZEZVPJZVOVPKVSADFGZDEZVOWBVPALMVPVSWBNVOVPVQWAVRDADAFO
    VPVRDHIDADHUAUBUCUKUDPVTVOADRZVSADUEVOWCKZVQVRVRVOVQQCZWCVOWEVOVOKVQAAUFUGS
    MVOVRQCWCVOVRAUHZUIMZWGWDVRDUJULZVRDRZWDAVOAQCWCAUMZMVOWCUNUOVOVRBCWCDBCZWH
    WINWFWDUPVRDUQURPVOVQVRTGZVRVRTGZEWCVOVQAAUSGZTGZAATGHIZWLWMVOWOWPEAAUTSVOW
    NVRVQTAVCVAVOAAWJWJVBVDMVEVFVOVPVGZVPVTVHVOWKWQVNADVIVJVPVKVLVM $.

  $( 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.  This proof does not
     use the property of 2 and 3 being prime.  (Contributed by Steve Rodriguez,
     20-Jan-2020.)  (Revised by AV, 27-Aug-2020.) $)
  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 cap wbr 3cn mulcli lcmcl nn0cnd wn 2ne0 neii intnan gcdn0cl
    2cn nncnd wne nnne0i wb nnzi 0z zapne w3a 3nn 2nn lcmgcdnn eqcomd divmulap3
    mpbir mp1i mpbird mp3an gcdcom caddc cabs cfv gcdid ax-mp abs1 eqtr2i 1p1e2
    gcdadd 3eqtri 1p2e3 eqtri 3t2e6 oveq1i 6cn div1i ) ABUACZABUBCZABDCZECZWJFE
    CZGWJHIZWIHIZWKHIZWKJUCUDZKZWIWLLABUEUNUFAMIZBMIZWONOWSWTKZWIABUGUHPWPWQXAA
    JLZBJLZKUIZWPWSWTNOQZXCXBBJUJUKULZXAXDKWKABUMZUOPWQWKJUPZWKXAXDWKSIXEXFXGPZ
    UQWKMIJMIWQXHURWKXIUSUTWKJVAPVHQWNWOWRVBZWLWIXJWLWILWJWIWKUBCZLZASIZBSIZKZX
    LXJXMXNVCVDQXOXKWJABVEVFVIWJWIWKVGVJVFVKWKFWJEWKBADCZFWSWTWKXPLNOABVLPFBFBV
    MCZDCZXPFFBDCZBFDCZXRFFFDCZFFFVMCZDCZXSYAFVNVOZFFMIZYAYDLTFVPVQVRVSYEYEYAYC
    LTTFFWAPYBBFDVTRWBYEWTXSXTLTOFBVLPWTYEXTXRLOTBFWAPWBXQABDWCRVSWDRWMGFECGWJG
    FEWEWFGWGWHWDWB $.

  $( 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 6cn 4cn cz 4z nn0cnd mp2an cn pm3.2i
    wceq eqcomd clcm cgcd c1 cdc cap wbr mulcli 6nn0 nn0zi lcmcl gcdcl wne 4ne0
    wn neii intnan gcdn0cl nnne0i wb nnzi zapne mpbir w3a 6nn 4nn lcmgcdnn mp1i
    0z divmulap3 mpbird mp3an 6gcd4e2 oveq2i 2ap0 divassapi 4d2e2 6t2e12 3eqtri
    2cn ) ABUACZABDCZABUBCZECZWAFECZUCFUDZWAGHZVTGHZWBGHZWBIUEUFZJZVTWCSABKLUGA
    MHZBMHZWGAUHUIZNWKWLJZVTABUJOPWHWIWKWLWHWMNWNWBABUKOPWIWBIULZWBWNAISZBISZJU
    NWBQHWKWLWMNRWQWPBIUMUOUPABUQPZURWBMHIMHWIWOUSWBWRUTVHWBIVAPVBRWFWGWJVCZWCV
    TWSWCVTSWAVTWBDCZSWSWTWAAQHZBQHZJWTWASWSXAXBVDVERABVFVGTWAVTWBVIVJTVKWBFWAE
    VLVMWDABFECZDCAFDCWEABFKLVSVNVOXCFADVPVMVQVRVR $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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 (as
opposed to 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 cdvds wbr c2 co c1 cle a1i cz ad2antlr syl2anc simpr wi nnzd
      mpd cuz cfv wrex cgcd wne clt caddc df-2 2re eluzelz zred simplll simpllr
      cv cr gcdnncl nnred eluzle dvdsgcd dvdsle letrd syl5eqbrr wb 1nn nnltp1le
      syl3anc mpbird nngt1ne1 mpbid ex rexlimdva adantr eluz2b3 sylanbrc simpll
      syl simplr gcddvds wceq breq1 anbi12d rspcev impbid ) ADEZBDEZFZCUNZAGHZW
      GBGHZFZCIUAUBZUCZABUDJZKUEZWFWJWNCWKWFWGWKEZFZWJWNWPWJFZKWMUFHZWNWQWRKKUG
      JZWMLHZWQWSIWMLUHWQIWGWMIUOEWQUIMWQWGWOWGNEZWFWJIWGUJOZUKWQWMWQWDWEWMDEZW
      DWEWOWJULZWDWEWOWJUMZABUPZPZUQWOIWGLHWFWJIWGUROWQWGWMGHZWGWMLHZWQWJXHWPWJ
      QWQXAANEZBNEZWJXHRXBWQAXDSWQBXESWGABUSVFTWQXAXCXHXIRXBXGWGWMUTPTVAVBWQKDE
      ZXCWRWTVCXLWQVDMXGKWMVEPVGWQXCWRWNVCXGWMVHVPVIVJVKWFWNWLWFWNFZWMWKEZWMAGH
      ZWMBGHZFZWLXMXCWNXNWFXCWNXFVLWFWNQWMVMVNXMXJXKXQXMAWDWEWNVOSXMBWDWEWNVQSA
      BVRPWJXQCWMWKWGWMVSWHXOWIXPWGWMAGVTWGWMBGVTWAWBPVJWC $.

    $( 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.  (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 $.

  ${
    $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 cgcd co cc0 cmul cdvds wbr wa zmulcld nn0zd syl adantr wb syl2anc
    wi syl3anc w3a simp1 simp2 simp3 gcdcld dvds0 oveq2 nn0cnd mul01d sylan9eqr
    wceq wne breqtrrd cdiv zcnd cap 0zd zapne biimpar divcanap1d gcddvds simpld
    dvdsmultr1d eqbrtrd simprd dvdsmultr2 mpd dvdsgcd mp2and dvdsval2 dvdsmulcr
    simpr mpbid syl112anc cabs cfv cn0 nn0abscl iddvds dvdsabsb dvdsmulc dvdstr
    nn0red nn0ge0d absidd oveq2d absmuld mulgcd mpbird eqbrtrrd wdc wo zdceq wn
    3eqtr4d exmiddc df-ne orbi2i sylibr mpjaodan ) ADEZBDEZCDEZUAZACFGZHUKZABCI
    GZFGZABFGZXEIGZJKXEHULZXDXFLXHHXJJXDXHHJKZXFXDXHDEZXLXDXHXDAXGXAXBXCUBZXDBC
    XAXBXCUCZXAXBXCUDZMZUENZXHUFOPXFXDXJXIHIGHXEHXIIUGXDXIXDXIXDABXNXOUEZUHUIUJ
    UMXDXKLZXHXEUNGZXEIGZXHXJJXTXHXEXTXHXDXMXKXRPZUOXTXEXDXEDEZXKXDXEXDACXNXPUE
    ZNZPZUOXDXEHUPKZXKXDYDHDEZYHXKQYFXDUQZXEHURRUSUTZXTYAXIJKZYBXJJKZXTYAAJKZYA
    BJKZYLXTYBAXEIGZJKZYNXTYBXHYPJYKXDXHYPJKXKXDXHAXEXRXNYFXDXHAJKZXHXGJKZXDXAX
    GDEZYRYSLXNXQAXGVARZVBZVCPVDXTYADEZXAYDXKYQYNQXTXEXHJKZUUCXDUUDXKXDXEAJKZXE
    XGJKZUUDXDUUEXECJKZXDXAXCUUEUUGLXNXPACVARZVBXDUUGUUFXDUUEUUGUUHVEXDYDXBXCUU
    GUUFSYFXOXPXEBCVFTVGXDYDXAYTUUEUUFLUUDSYFXNXQXEAXGVHTVIPXTYDXKXMUUDUUCQYGXD
    XKVLZYCXEXHVJTVMZXDXAXKXNPZYGUUIXEYAAVKVNVMXTYBBXEIGZJKZYOXTYBXHUULJYKXDXHU
    ULJKZXKXDUUNXHUULVOVPZJKZXDXHBVOVPZAIGZUUQCIGZFGZUUOJXDXHUURJKZXHUUSJKZXHUU
    TJKZXDYRUVAUUBXDXMUUQDEZXAYRUVASXRXDUUQXDXBUUQVQEZXOBVROZNZXNXHUUQAVFTVGXDY
    SXGUUSJKZUVBXDYRYSUUAVEXDBUUQJKZUVHXDBBJKZUVIXDXBUVJXOBVSOXDXBXBUVJUVIQXOXO
    BBVTRVMXDXBUVDXCUVIUVHSXOUVGXPCBUUQWATVGXDXMYTUUSDEZYSUVHLUVBSXRXQXDUUQCUVG
    XPMZXHXGUUSWBTVIXDXMUURDEUVKUVAUVBLUVCSXRXDUUQAUVGXNMUVLXHUURUUSVHTVIXDUUQX
    EVOVPZIGUUQXEIGZUUOUUTXDUVMXEUUQIXDXEXDXEYEWCXDXEYEWDWEWFXDBXEXDBXOUOXDXEYE
    UHWGXDUVEXAXCUUTUVNUKUVFXNXPUUQACWHTWOUMXDXMUULDEUUNUUPQXRXDBXEXOYFMXHUULVT
    RWIPVDXTUUCXBYDXKUUMYOQUUJXDXBXKXOPZYGUUIXEYABVKVNVMXTUUCXAXBYNYOLYLSUUJUUK
    UVOYAABVHTVIXTUUCXIDEZYDYLYMSUUJXDUVPXKXDXIXSNPYGXEYAXIWATVGWJXDXFWKZXFXKWL
    ZXDYDYIUVQYFYJXEHWMRUVQXFXFWNZWLUVRXFWPXKUVSXFXEHWQWRWSOWT $.

  $( 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 wbr 3adant3 3ad2ant2 syl2an
    cc cdvds cn w3a cdiv zcn cc0 cap nnap0 divclapd mulcanapd divcanap2d eqeq1d
    nncn bitr3d 3ad2ant1 mulcl mulcanap2d mulassd divcanap1d oveq2d eqtrd bitrd
    eqeq2d cle nnz simp2 simpl1 3jca simp1 dvdsmul1 simpr breqtrrd gcdcom sylan
    anim12i ancoms simp3 ad2antrr coprmdvds sylc dvdsle simpr1 dvdsmul2 breqtrd
    mulcom ad2antlr cr nnre letri3d mpbir2and oveq2 anbi2d biimpa syl6bir com12
    jca ancrd mpd ex sylbid 3impia ) CEFZDUAFZCDGHZIJZUBZAEFZBUAFZABGHZIJZUBZCD
    UCHZABUCHZJZCAJZDBJZKZXEXJKZXMCBLHZDALHZJZXPXQXMCDXLLHZJZXTXQDXKLHZYAJXMYBX
    QXKXLDXEXKSFZXJXAXBYDXDXAXBKZCDXACSFZXBCUDZMZXBDSFZXADULZNZXBDUEUFOZXADUGZN
    ZUHPMXJXLSFZXEXFXGYOXIXFXGKZABXFASFZXGAUDZMZXGBSFZXFBULZNZXGBUEUFOZXFBUGZNZ
    UHPZNZXEYIXJXBXAYIXDYJQZMZXEYLXJXBXAYLXDYMQMZUIXQYCCYAXEYCCJZXJXAXBUUKXDYEC
    DYHYKYNUJPMUKUMXQXRYABLHZJYBXTXQCYABXEYFXJXAXBYFXDYGUNMZXEYIYOYASFXJUUHUUFD
    XLUORXJYTXEXGXFYTXIUUAQNZXJUUCXEXGXFUUCXIUUDQNUPXQUULXSXRXQUULDXLBLHZLHXSXQ
    DXLBUUIUUGUUNUQXQUUOADLXJUUOAJZXEXFXGUUPXIYPABYSUUBUUEURPNUSUTVBUMVAXQXTXPX
    QXTKZXOXPUUQXODBVCOZBDVCOZUUQDEFZXGKZDBTOZUURXQUVAXTXEUUTXJXGXBXAUUTXDDVDZQ
    ZXFXGXIVEVNMUUQUUTXABEFZUBZDXRTOZDCGHZIJZKUVBXQUVFXTXQUUTXAUVEXEUUTXJUVDMZX
    AXBXDXJVFXJUVEXEXGXFUVEXIBVDZQZNZVGMUUQUVGUVIUUQDXSXRTXQDXSTOZXTXEUUTXFUVNX
    JUVDXFXGXIVHDAVIRMXQXTVJZVKXEUVIXJXTXEUVHXCIXAXBUVHXCJZXDXBXAUVPXBUUTXAUVPU
    VCDCVLVMVOPXAXBXDVPUTVQWODCBVRVSDBVTVSUUQUVEXBKZBDTOZUUSXQUVQXTXJXEUVQXJUVE
    XEXBUVLXAXBXDVEVNVOMUUQUVEXFUUTUBZBADLHZTOZBAGHZIJZKUVRXQUVSXTXQUVEXFUUTUVM
    XEXFXGXIWAUVJVGMUUQUWAUWCUUQBXRUVTTXQBXRTOZXTXEXAUVEUWDXJXAXBXDVHUVLCBWBRMU
    UQXRXSUVTUVOXQXSUVTJZXTXEYIYQUWEXJUUHXFXGYQXIYRUNZDAWDRMUTWCXJUWCXEXTXJUWBX
    HIXFXGUWBXHJZXIXGXFUWGXGUVEXFUWGUVKBAVLVMVOPXFXGXIVPUTWEWOBADVRVSBDVTVSUUQD
    BXEDWFFZXJXTXBXAUWHXDDWGQVQXJBWFFZXEXTXGXFUWIXIBWGQWEWHWIUUQXOXNXOUUQXNXOUU
    QXQCDLHZXSJZKXNXOUWKXTXQXOUWJXRXSDBCLWJUKWKXQUWKXNXQUWKDCLHZXSJXNXQUWJUWLXS
    XEUWJUWLJZXJXAXBUWMXDXAYFYIUWMXBYGYJCDWDRPMUKXQCADUUMXJYQXEUWFNUUIUUJUIVAWL
    WMWNWPWQWRWSWT $.

  ${
    $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 ) ) ) ) $=
      ( cdiv co wceq cn cz c1st cfv c2nd cgcd c1 wa wcel wbr cc0 adantl 3adant3
      cq syl2anc vz vn vy cv wrex cxp wi wral wreu w3a cop cdvds gcddvds simpld
      nnz sylan2 wne wb cn0 gcdcl nn0zd wn simpl nnne0 intnand gcdn0cl syl21anc
      neneqd nnne0d dvdsval2 syl3anc mpbid clt simprd nnre nn0red nngt0 divgt0d
      nngt0d jca elnnz sylibr opelxpi fveq2 znq op1stg sylan9eqr op2ndg oveq12d
      cr simp1 eqeq1d eqeq2d anbi12d gcdcld nn0cnd 1cnd nnap0d cmul mulid1d zcn
      cc adantr divcanap2d nncn mulgcd 3eqtr2rd mulcanapad cap nnap0 divcanap7d
      biimp3ar rspcedvd simprl ad2antrr simprr simprll ad2antlr simprrl simprlr
      elxp6 simprrr eqtr3d qredeq syl331anc cvv vex 1stexg ax-mp 2ndexg simplll
      opth simplrl 3eqtr4d ex syl2anb rgen2a jctir 3expia rexlimivv elq 3imtr4i
      reu4 ) BUAUDZUBUDZCDZEZUBFUEUAGUEAUDZHIZUUHJIZKDZLEZBUUIUUJCDZEZMZAGFUFZU
      EZUUOUCUDZHIZUURJIZKDZLEZBUUSUUTCDZEZMZMZUUHUUREZUGZUCUUPUHAUUPUHZMZBSNUU
      OAUUPUIUUGUVJUAUBGFUUDGNZUUEFNZUUGUVJUVKUVLUUGUJZUUQUVIUVMUUOUUDUUDUUEKDZ
      CDZUUEUVNCDZKDZLEZBUVOUVPCDZEZMAUVOUVPUKZUUPUVMUVOGNZUVPFNZUWAUUPNUVKUVLU
      WBUUGUVKUVLMZUVNUUDULOZUWBUVLUVKUUEGNZUWEUUEUOZUVKUWFMZUWEUVNUUEULOZUUDUU
      EUMZUNUPUWDUVNGNZUVNPUQZUVKUWEUWBURUWDUVNUVLUVKUWFUVNUSNZUWGUUDUUEUTUPZVA
      ZUWDUVNUWDUVKUWFUUDPEZUUEPEZMVBZUVNFNZUVKUVLVCZUVLUWFUVKUWGQZUVLUWRUVKUVL
      UWQUWPUVLUUEPUUEVDVHVEQUUDUUEVFVGZVIZUWTUVNUUDVJVKVLZRUVMUVPGNZPUVPVMOZMZ
      UWCUVKUVLUXGUUGUWDUXEUXFUWDUWIUXEUVLUVKUWFUWIUWGUWHUWEUWIUWJVNUPUWDUWKUWL
      UWFUWIUXEURUWOUXCUXAUVNUUEVJVKVLZUWDUUEUVNUVLUUEWJNUVKUUEVOQUWDUVNUWNVPUV
      LPUUEVMOUVKUUEVQQUWDUVNUXBVSVRVTRUVPWAWBUVOUVPGFWCTUVMUUHUWAEZMZUULUVRUUN
      UVTUXJUUKUVQLUXJUUIUVOUUJUVPKUXIUVMUUIUWAHIZUVOUUHUWAHWDUVMUVOSNZUVPSNZUX
      KUVOEUVMUVKUWSUXLUVKUVLUUGWKUVKUVLUWSUUGUXBRZUUDUVNWETZUVMUWFUWSUXMUVKUVL
      UWFUUGUXARUXNUUEUVNWETZUVOUVPSSWFTWGZUXIUVMUUJUWAJIZUVPUUHUWAJWDUVMUXLUXM
      UXRUVPEUXOUXPUVOUVPSSWHTWGZWIWLUXJUUMUVSBUXJUUIUVOUUJUVPCUXQUXSWIWMWNUVMU
      VRUVTUVKUVLUVRUUGUWDUVQLUVNUWDUVQUWDUVOUVPUXDUXHWOWPUWDWQUWDUVNUWNWPZUWDU
      VNUXBWRZUWDUVNLWSDUVNUVNUVOWSDZUVNUVPWSDZKDZUVNUVQWSDZUWDUVNUXTWTUWDUYBUU
      DUYCUUEKUWDUUDUVNUVKUUDXBNUVLUUDXAXCZUXTUYAXDUWDUUEUVNUVLUUEXBNUVKUUEXEQZ
      UXTUYAXDWIUWDUWMUWBUXEUYDUYEEUWNUXDUXHUVNUVOUVPXFVKXGXHRUVKUVLUVTUUGUWDUV
      SUUFBUWDUUDUUEUVNUYFUYGUXTUVLUUEPXIOUVKUUEXJQUYAXKWMXLVTXMUVHAUCUUPUUHUUP
      NUUHUUIUUJUKZEZUUIGNZUUJFNZMZMZUURUUSUUTUKZEZUUSGNZUUTFNZMZMZUVHUURUUPNUU
      HGFYAUURGFYAUYMUYSMZUVFUVGUYTUVFMZUYHUYNUUHUURVUAUUIUUSEUUJUUTEMZUYHUYNEV
      UAUYJUYKUULUYPUYQUVBUUMUVCEVUBUYMUYJUYSUVFUYIUYJUYKXNXOUYMUYKUYSUVFUYIUYJ
      UYKXPXOUYTUULUUNUVEXQUYSUYPUYMUVFUYOUYPUYQXNXRUYSUYQUYMUVFUYOUYPUYQXPXRUY
      TUUOUVBUVDXSVUABUUMUVCUYTUULUUNUVEXTUYTUUOUVBUVDYBYCUUSUUTUUIUUJYDYEUUIUU
      JUUSUUTUUHYFNZUUIYFNAYGZUUHYFYHYIVUCUUJYFNVUDUUHYFYJYIYLWBUYIUYLUYSUVFYKU
      YMUYOUYRUVFYMYNYOYPYQYRYSYTUAUBBUUAUUOUVEAUCUUPUVGUULUVBUUNUVDUVGUUKUVALU
      VGUUIUUSUUJUUTKUUHUURHWDZUUHUURJWDZWIWLUVGUUMUVCBUVGUUIUUSUUJUUTCVUEVUFWI
      WMWNUUCUUB $.
  $}

  $( 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 cn 1ne0 simprl neeq1d mpbiri neneqd
    simplrr eqbrtrrd simpll3 0dvds syl mpbid jca ex simpl3 sylibrd mtod gcdn0cl
    gcdeq0 syl21anc nnzd dvdstr syl3anc mp2and mtbid dvdslegcd syl31anc breqtrd
    nnle1eq1 ) ADEZBDEZCDEZUAZACFGZHIZBCJKZLZLZABFGZHMKZWEHIZWDWEVTHMWDWEAJKZWE
    CJKZWEVTMKZWDWHWEBJKZWDVPVQWHWKLVPVQVRWCUBZVPVQVRWCUCZABUDNZUEWDWKWBWIWDWHW
    KWNUFVSWAWBOWDWEDEZVQVRWKWBLWIPWDWEWDVPVQAQIZBQIZLZRWEUGEZWLWMWDWRVTQIZWDVT
    QWDVTQSHQSUHWDVTHQVSWAWBUIZUJUKULZWDWRWPCQIZLZWTWDWRXDWDWRLZWPXCWDWPWQUIXEQ
    CJKZXCXEBQCJWDWPWQOVSWAWBWRUMUNXEVRXFXCTVPVQVRWCWRUOCUPUQURUSUTWDVPVRWTXDTW
    LVPVQVRWCVAZACVENZVBVCABVDVFZVGZWMXGWEBCVHVIVJWDWOVPVRXDRWHWILWJPXJWLXGWDWT
    XDXBXHVKWEACVLVMVJXAVNWDWSWFWGTXIWEVOUQUR $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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 oveq1 ad2antlr mul32d oveq12d cap zmulcld zaddcld gcd2n0cl nncn nnap0
      cn0 cn div11ap syl3anc dividap divdirap simprd divcanap4d eqeq12d 3bitr2d
      sylan9bbr anim1i ancomd bezoutr1 adantr simpll1 divmulap3 3bitr4g biimprd
      eqtrd syl5bi imp32 simp2 a1dd eqeq1d sylibd sylbid exp32 com34 rexlimdvva
      a1d com23 ex mpd impl rexlimdva impd ) ADEZBDEZBUDUEZUFZABUGFZAUHUIZXQBUH
      UIZGZAXQHFZBXQHFZUGFZIJZXMXNXTXOABUJKXPXTCUKZXQLFZAJZCDULZUAUKZXQLFZBJZUA
      DULZGYDXPXRYHXSYLXPXQDEZXMGZXRYHMXMXNYNXOXMXNGZYMXMYOXQABUMZUNZXMXNUOVEKC
      XQAUPSXPYMXNGZXSYLMXMXNYRXOYOYMXNYQXMXNUQVEKUAXQBUPSURXPYHYLYDXPYGYLYDNCD
      XPYEDEZGZYLYGYDYTYKYGYDNZUADXPYSYIDEZYKUUANZXPXQAUBUKZLFZBUCUKZLFZOFZJZUC
      DULUBDULZYSUUBGZUUCNZXMXNUUJXOUBUCABUSKXPUUIUULUBUCDDXPUUDDEZUUFDEZGZGZUU
      KUUIUUCUUPUUKUUIUUCNUUPUUKGZYKUUIUUAUUQYKYGUUIYDUUQYKYGUUIYDNUUQYKYGGZGZU
      UIIYEUUDLFZYIUUFLFZOFZJZYDUURUUIXQYFUUDLFZYJUUFLFZOFZJZUUQUVCUURUVGUUIUUR
      UVFUUHXQYGYKUVDUUEUVEUUGOYFAUUDLVFYJBUUFLVFUTVAVBUUQUVGXQUUTXQLFZUVAXQLFZ
      OFZJZXQXQHFZUVJXQHFZJZUVCUUQUVFUVJXQUUQUVDUVHUVEUVIOUUQYEXQUUDUUKYEPEZUUP
      UUKYEYSUUBUOZQVCZXPXQPEZUUOUUKXMXNUVRXOYOXQYPVDKRZUUOUUDPEXPUUKUUOUUDUUMU
      UNUOZQVGVHUUQYIXQUUFUUKYIPEZUUPUUKYIYSUUBUQZQVCZUVSUUOUUFPEXPUUKUUOUUFUUM
      UUNUQZQVGVHVIVAUUQUVRUVJPEUVRXQUDVJUIZGZUVNUVKMUVSUUQUVJUUQUVHUVIUUQUUTXQ
      UUQYEUUDUUKYSUUPUVPVCUUOUUMXPUUKUVTVGVKZXPYMUUOUUKXMXNYMXOYQKRVKZUUQUVAXQ
      UUQYIUUFUUKUUBUUPUWBVCUUOUUNXPUUKUWDVGVKZUUQXQXPXQVPEZUUOUUKXMXNUWJXOYPKZ
      RUNVKZVLQXPUWFUUOUUKXPXQVQEZUWFABVMUWMUVRUWEXQVNXQVOVESRZXQUVJXQVRVSUUQUV
      LIUVMUVBUUQUWFUVLIJUWNXQVTSUUQUVMUVHXQHFZUVIXQHFZOFZUVBUUQUVHPEUVIPEUWFUV
      MUWQJUUQUVHUWHQUUQUVIUWLQUWNUVHUVIXQWAVSUUQUWOUUTUWPUVAOUUQUUTXQUUQUUTUWG
      QXPUVRUUOUUKXPXQUWKVDRUUQUVRUWEUWNWBZWCUUQUVAXQUUQUVAUWIQUVSUWRWCVIWOWDWE
      WFUUSUVCYEYIUGFZIJZYDUVCUVBIJZUUSUWTIUVBTUUQUXAUWTNZUURUUQUUKUUOGUXBUUQUU
      OUUKUUPUUOUUKXPUUOUQWGWHYEYIUUDUUFWISWJWPUUSUWSYCIUUSYEYAYIYBUGUUQYKYGYEY
      AJZUUQYGUXCNYKUUQUXCYGUUQYAYEJZAYFJZUXCYGUUQAPEUVOUWFUXDUXEMUUQAXMXNXOUUO
      UUKWKQUVQUWNAYEXQWLVSYEYATYFATWMWNXFWQUUQYKYGYIYBJZUUQYKUXFYGUUQUXFYKUUQY
      BYIJZBYJJZUXFYKUUQBPEZUWAUWFUXGUXHMXPUXIUUOUUKXPBXMXNXOWRQRUWCUWNBYIXQWLV
      SYIYBTYJBTWMWNWSWQVIWTXAXBXCXDXGXHXGXEXIXJXKXGXKXLXBXI $.
  $}

  ${
    $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
      simpr oveq2d 3eqtrd sylan9eqr cdiv 3ad2ant1 simp1 3ad2ant2 gcdcld cap wbr
      wb gcdeq0 syl6bi necon3d nn0zd 0zd zapne syl2anc divmulap3d bicomd eqeq2d
      impr bitr2d anbi12d wi 3anass divgcdcoprm0 oveq12 eqeq1d syl5ibcom sylbid
      biimpri imp 3jca ex reximdva syl5bir mp2and ) AFGZBFGZBHUAZIZCABJKZLZUBZA
      DUCZXGMKZLZDFNZBEUCZBAJKZMKZLZEFNZACXJMKZLZBCXNMKZLZXJXNJKZUDLZUBZEFNZDFN
      ZXCXFXMXHXCXFIZXCXDIZXMXFXDXCXDXEUEZUFZABDUGOPXCXFXRXHXFXCXRXDXCXRXEBAEUG
      UHUIPXMXRIXLXQIZEFNZDFNXIYGXLXQDEFFUJXIYMYFDFXIXJFGZIZYLYEEFYOXNFGZIZYLYE
      YQYLIZXTYBYDYRXTXKXSLZYOYSYPYLYOXKXGXJMKZXSYOXJXGYNXJTGZXIXJQUKZXIXGTGZYN
      XCXFUUCXHYHXGYHYIXGULGZYKABUMOZUNPRUOXIYTXSLYNXIXGCXJMXICXGXCXFXHUPUQZURR
      USSYLXTYSVOZYQXLUUGXQAXKXSUTRUKVAYLYQBXPYAXLXQVDXIYPXPYALYNXIYPIZXPXNXGMK
      ZXGXNMKYAXIXPUUILYPXIXOXGXNMXCXFXOXGLZXHYHXDXCIUUJYHXCXDYKVBBAVCOPVERUUHX
      NXGYPXNTGZXIXNQZUKUUHXGXIUUDYPXCXFUUDXHUUEPZRUNUOUUHXGCXNMXIXGCLYPUUFRURV
      FUHVGYQYLYDYQYLAXGVHKZXJLZBXGVHKZXNLZIZYDYQXLUUOXQUUQYQUUOXLYQAXJXGXIATGZ
      YNYPXCXFUUSXHAQVISYOUUAYPUUBRXIUUCYNYPXIXGXIABXCXFXHVJXFXCXDXHYJVKVLUNSZY
      QXGHVMVNZXGHUAZXIUVBYNYPXCXFUVBXHXCXDXEUVBYIXGHBHYIXGHLAHLZBHLZIUVDABVPUV
      CUVDVDVQVRWFPSYQXGFGHFGUVAUVBVOYQXGXIUUDYNYPUUMSVSYQVTXGHWAWBVAZWCWDYQUUQ
      BUUILXQYQBXNXGXIBTGZYNYPXFXCUVFXHXDUVFXEBQRVKSYPUUKYOUULUKUUTUVEWCYQUUIXP
      BYQXGXOXNMXIXGXOLZYNYPXIYIUVGXCXFYIXHYKPABVCOSVEWEWGWHXIUURYDWIYNYPXIUUNU
      UPJKZUDLZUURYDXIXCXDXEUBZUVIXCXFUVJXHUVJYHXCXDXEWJWPPABWKOUURUVHYCUDUUNXJ
      UUPXNJWLWMWNSWOWQWRWSWTWTXAXB $.
  $}

  ${
    $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 wb wi adantl adantr cc zcnd ad2antrr
      vk vr vs w3a cn cgcd cdiv cv zmulcl 3adant2 3adant1 simpl congr syl2an3an
      wrex c1 cc0 wne nnz nnne0 jca eqidd 3jca ex 3ad2ant3 impcom divgcdcoprmex
      com12 oveq2 3ad2ant2 oveq12d 3ad2ant1 eqeq12d simpr simp3 ad2antrl gcdcld
      syl nn0cnd mul12d simp1 ad3antrrr nnzd simp2 zmulcld subdid eqcomd eqeq2d
      simprr ad2ant2r ad2ant2lr zsubcld 3adant3 imp cap gcd2n0cl syl3anc nnne0d
      wbr cn0 nn0zd 0zd zapne syl2anc mpbird mulcanapd 3bitrd zcn df-3an sylibr
      anim12i subdir nncnd divmulap2d simpll eleq1 eqcoms cdvds anim2i dvdsmul2
      divgcdnnr breq2 zsubcl mulcomd breq2d gcdcom eqeq1d ancomd 3anass moddvds
      ad2antll coprmdvds sylibrd expcomd sylbid com23 com3l syl6bi com14 mpd
      impl eqtr2 sylbird a1i 3imp rexlimdvva rexlimdva ) AFGZBFGZCFGZUDZEUEGZDE
      CEUFHZUGHZIZJZJZACKHZELHBCKHZELHIZUAUHZEKHZUURUUSMHZIZUAFUOZADLHZBDLHZIZU
      UKUURFGZUUSFGZUUPUULUUTUVENUUHUUJUVIUUIACUIUJUUIUUJUVJUUHBCUIUKUULUUOULZU
      URUUSUAEUMUNUUQUVDUVHUAFUUQUVAFGZJZCUUMUBUHZKHZIZEUUMUCUHZKHZIZUVNUVQUFHZ
      UPIZUDZUCFUOUBFUOZUVDUVHOZUUQUWCUVLUUQUUJEFGZEUQURZJZUUMUUMIZUDZUWCUUPUUK
      UWIUULUUKUWIOUUOUUKUULUWIUUJUUHUULUWIOUUIUUJUULUWIUUJUULJZUUJUWGUWHUUJUUL
      ULUULUWGUUJUULUWEUWFEUSZEUTZVAPUWJUUMVBVCVDVEVHQVFCEUUMUBUCVGVRQUVMUWBUWD
      UBUCFFUVMUVNFGZUVQFGZJZJZUWBUWDUWPUWBJZUVDUVAUVRKHZAUVOKHZBUVOKHZMHZIZUVH
      UWQUVBUWRUVCUXAUWBUVBUWRIZUWPUVSUVPUXCUWAEUVRUVAKVIVJPUWBUVCUXAIZUWPUVPUV
      SUXDUWAUVPUURUWSUUSUWTMCUVOAKVICUVOBKVIVKVLPVMUWQUXBUVAUVQKHZAUVNKHZBUVNK
      HZMHZIZUVHUWPUXBUXINUWBUWPUXBUUMUXEKHZUUMUXFKHZUUMUXGKHZMHZIUXJUUMUXHKHZI
      UXIUWPUWRUXJUXAUXMUWPUVAUUMUVQUVMUVARGUWOUVMUVAUUQUVLVNZSQUUQUUMRGZUVLUWO
      UUQUUMUUQCEUUKUUJUUPUUHUUIUUJVOZQZUULUWEUUKUUOUWKVPVQVSTZUWOUVQRGUVMUWOUV
      QUWMUWNVNSPVTUWPUWSUXKUWTUXLMUWPAUUMUVNUUKARGZUUPUVLUWOUUKAUUHUUIUUJWAZSW
      BUVMUXPUWOUVMUUMUVMCEUUKUUJUUPUVLUXQTUUQUWEUVLUUPUWEUUKUUPEUVKWCPZQVQZVSQ
      UWOUVNRGZUVMUWOUVNUWMUWNULZSZPZVTUWPBUUMUVNUUKBRGZUUPUVLUWOUUKBUUHUUIUUJW
      DZSWBUUQUXPUVLUWOUUQUUMUUQCEUXRUYBVQVSTZUYGVTVKVMUWPUXMUXNUXJUWPUXNUXMUWP
      UUMUXFUXGUYJUWPUXFUWPAUVNUUKUUHUUPUVLUWOUYAWBUWOUWMUVMUYEPZWESUWPUXGUWPBU
      VNUUKUUIUUPUVLUWOUYIWBUYKWESWFWGWHUWPUXEUXHUUMUWPUXEUWPUVAUVQUVMUVLUWOUXO
      QUVMUWMUWNWIZWESUVMUWOUXHRGZUUKUWOUYMOZUUPUVLUUHUUIUYNUUJUUHUUIJZUWOUYMUY
      OUWOJZUXHUYPUXFUXGUUHUWMUXFFGUUIUWNAUVNUIWJUUIUWMUXGFGUUHUWNBUVNUIWKWLSVD
      WMTWNUYJUWPUUMUQWOWSZUUMUQURZUUQUYRUVLUWOUUQUUMUUQUUJUWEUWFUUMUEGUXRUYBUU
      LUWFUUKUUOUWLVPCEWPWQWRTUWPUUMFGUQFGUYQUYRNUWPUUMUVMUUMWTGUWOUYCQXAUWPXBU
      UMUQXCXDXEZXFXGQUWQUXIUXEABMHZUVNKHZIZUVHUWQUXHVUAUXEUWPUXHVUAIUWBUWPVUAU
      XHUWPUXTUYHUYDUDZVUAUXHIUWPUXTUYHJZUYDJVUCUVMVUDUWOUYDUUKVUDUUPUVLUUHUUIV
      UDUUJUUHUXTUUIUYHAXHBXHXKWMTUYFXKUXTUYHUYDXIXJABUVNXLVRWGQWHUWBUWPVUBUVHO
      ZUVPUVSUWAUWPVUEOZUVSUWAVUFOOUVPUWPUVSUWAVUEUWPUVSUUNUVQIZUWAVUEOZUWPEUVQ
      UUMUUQERGZUVLUWOUUPVUIUUKUUPEUVKXMPTUWPUVQUYLSUXSUYSXNUWPVUGVUHUWPVUGJZUV
      MUWMUVQUEGZJZJZVUGVUHVUJUVMVULUVMUWOVUGXOVUJUWMVUKUWPUWMVUGUYKQVUJVUKUUNU
      EGZUUQVUNUVLUWOVUGUUQUULUUJVUNUUPUULUUKUVKPUXRECYAXDWBVUGVUKVUNNZUWPVUOUV
      QUUNUVQUUNUEXPXQPXEVAVAUWPVUGVNVUMVUGJZUWAVUEVUPUWAJVUBAUVQLHZBUVQLHZIZUV
      HVUPUWAVUBVUSOZVUMUWAVUTOZVUGUUQUVLVULVVAUUKUVLVULJZVVAOZUUPUUHUUIVVCUUJU
      YOVVBVVAUYOVVBJZUVQUXEXRWSZVVAVVDUVLUWNJZVVEVVBVVFUYOVULUWNUVLVUKUWNUWMUV
      QUSZPXSPUVAUVQXTVRVUBVVEUWAVVDVUSVUBVVEUVQVUAXRWSZUWAVVDVUSOOUXEVUAUVQXRY
      BVVDVVHUWAVUSVVDVVHUVQUVNUYTKHZXRWSZUWAVUSOVVDVUAVVIUVQXRVVDUYTUVNUYOUYTR
      GVVBUYOUYTABYCZSQVVBUYDUYOUWMUYDUVLVUKUVNXHVPPYDYEVVDUWAVVJVUSVVDUWAUVQUV
      NUFHZUPIZVVJVUSOVULUWAVVMNUYOUVLVULUVTVVLUPVULUWOUVTVVLIVUKUWNUWMVVGXSZUV
      NUVQYFVRYGYKVVDVVJVVMVUSVVDVVJVVMJZUVQUYTXRWSZVUSVVDUWNUWMUYTFGZUDZVVOVVP
      OVVDUWNUWMJZVVQJVVRVVDVVQVVSUYOVVQVVBVVSVVKVVBUWMUWNVULUWOUVLVVNPYHXKYHUW
      NUWMVVQXIXJUVQUVNUYTYLVRVVDVUKUUHUUIUDZVUSVVPNVVDVUKUYOJVVTVVDUYOVUKVVBVU
      KUYOUVLUWMVUKWIXSYHVUKUUHUUIYIXJABUVQYJVRYMYNYOYPYOYQYRYSYTVDWMQUUAQWNVUP
      UVHVUSNZUWAVUMVUGVWAUUQVUGVWAOZUVLVULUUOVWBUUKUULVWBUUNDUUNDIZVUGVWAVWCVU
      GJDUVQIZVWAUUNDUVQUUBVWDUVFVUQUVGVURDUVQALVIDUVQBLVIVMVRVDXQYKTWNQYMVDXDV
      DUUCYQUUDUUEVFYOYOYOVDUUFYTUUGYO $.
  $}

  ${
    $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 ) ) ) $=
      ( cz wcel co wceq wa cmo cmul cc0 syl adantr cdvds wbr wb adantl cc vk cn
      w3a cgcd cdiv simpll3 wne wo wi wn wdc 0z zdceq mpan2 df-ne orbi2i sylibr
      exmiddc mul01d 3ad2ant1 3ad2ant2 eqtr4d oveq1d oveq2 eqeq12d syl5ibr cmin
      zcn wrex simpl simp3 divgcdnnr syl2anr simpl1 simpl2 moddvds syl3anc nnzd
      cv zsubcl 3adant3 divides syl2anc 3bitrd simpr zmulcld zcnd ad3antrrr cap
      0zd zapne mpbird mulcanap2d subdir syl3an eqeq2d bitr3d nnz anim12i gcdcl
      cn0 nn0cnd nnne0 neneqd intnand gcdeq0 necon3abid nn0zd divassapd divgcdz
      jca eqeltrd dvdsmul1 syl2an2 nncnd divmulasscomap syl32anc breqtrrd exp32
      3anass adantrd breq2 syl5ibcom sylbid rexlimdva zmulcl 3adant2 3adant1 ex
      imp sylibrd com23 com12 jaoi mpcom ) AFGZBFGZCFGZUCZEUBGZDECEUDHZUEHZIZJZ
      JZADKHZBDKHZIZACLHZEKHZBCLHZEKHZIZYRUUEUUHJZUUMYPYQYRUUDUUHUFYRCMIZCMUGZU
      HZUUNUUMUIZYRUUOUUOUJZUHZUUQYRUUOUKZUUTYRMFGZUVAULCMUMUNUUOURNUUPUUSUUOCM
      UOUPUQUUOUURUUPUUNUUMUUOAMLHZEKHZBMLHZEKHZIZUUEUVGUUHUUEUVCUVEEKYSUVCUVEI
      UUDYSUVCMUVEYPYQUVCMIYRYPAAVHZUSUTYQYPUVEMIYRYQBBVHZUSVAVBOVCOUUOUUJUVDUU
      LUVFUUOUUIUVCEKCMALVDVCUUOUUKUVEEKCMBLVDVCVEVFUUNUUPUUMUUEUUHUUPUUMUIZUUE
      UUHUAVSZUUBLHZABVGHZIZUAFVIZUVJUUEUUHAUUBKHZBUUBKHZIZUUBUVMPQZUVOUUDUUHUV
      RRZYSUUCUVTYTUUCUUFUVPUUGUVQDUUBAKVDDUUBBKVDVESSUUEUUBUBGZYPYQUVRUVSRUUDY
      TYRUWAYSYTUUCVJZYPYQYRVKZECVLVMZYPYQYRUUDVNYPYQYRUUDVOABUUBVPVQUUEUUBFGZU
      VMFGZUVSUVORUUEUUBUWDVRZYSUWFUUDYPYQUWFYRABVTZWAOUAUUBUVMWBWCWDUUEUUPUVOU
      UMUUEUUPUVOUUMUIUUEUUPJZUVOEUUIUUKVGHZPQZUUMUWIUVNUWKUAFUWIUVKFGZJZUVNUVL
      CLHZUWJIZUWKUWMUWNUVMCLHZIUVNUWOUWMUVLUVMCUWMUVLUWMUVKUUBUWIUWLWEUWIUWEUW
      LUUEUWEUUPUWGOOWFWGYSUVMTGZUUDUUPUWLYPYQUWQYRYPYQJUVMUWHWGWAWHYSCTGZUUDUU
      PUWLYSCUWCWGZWHUWMCMWIQZUUPUWIUUPUWLUUEUUPWEOUWMYRUVBUWTUUPRYSYRUUDUUPUWL
      UWCWHUWMWJCMWKWCWLWMUWMUWPUWJUWNYSUWPUWJIZUUDUUPUWLYPATGYQBTGYRUWRUXAUVHU
      VICVHABCWNWOWHWPWQUWMEUWNPQZUWOUWKUWIUWLUXBUUEUWLUXBUIZUUPYSUUDUXCYSYTUXC
      UUCYSYTUWLUXBYSYTUWLJZJZEEUVKCLHUUAUEHZLHZUWNPUXDEFGZYSUXFFGEUXGPQYTUXHUW
      LEWRZOUXEUXFUVKCUUAUEHZLHFUXEUVKCUUAUXDUVKTGZYSUXDUVKYTUWLWEZWGSZYSUWRUXD
      UWSOZUXEUUAUXEYRUXHJZUUAXAGYSYRUXDUXHUWCUXDEYTUWLVJZVRWSZCEWTNZXBZUXEUUAM
      WIQZUUAMUGZUXEUYAUUOEMIZJZUJUXEUYBUUOUXDUYBUJZYSYTUYDUWLYTEMEXCZXDOSXEUXE
      UYCUUAMUXEUXOUUAMIUYCRUXQCEXFNXGWLUXEUUAFGUVBUXTUYARUXEUUAUXRXHUXEWJUUAMW
      KWCWLZXIUXEUVKUXJUXDUWLYSUXLSUXEYRUXHEMUGZUCZUXJFGUXEYRUXHUYGJZJUYHYSYRUX
      DUYIUWCYTUYIUWLYTUXHUYGUXIUYEXKOWSYRUXHUYGXTUQCEXJNWFXLEUXFXMXNUXEUXKETGZ
      UWRUUATGUXTUWNUXGIUXMUXDUYJYSUXDEUXPXOSUXNUXSUYFUVKECUUAXPXQXRXSYAYJOYJUW
      NUWJEPYBYCYDYEUUEUUMUWKRZUUPUUEYTUUIFGZUUKFGZUYKUUDYTYSUWBSYSUYLUUDYPYRUY
      LYQACYFYGOYSUYMUUDYQYRUYMYPBCYFYHOUUIUUKEVPVQOYKYIYLYDYJYMYNNYOYI $.
  $}

  $( 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 c1o c2o cen wbr 1nen2 cv cdvds cn crab csn wceq wa
      1nn eleq1 mpbiri cn0 wb nnnn0 dvds1 syl bicomd velsn breq1 elrab 3bitr4ri
      biadan2 eqriv 1ex ensn1 eqbrtri ensymi isprm simprbi entr sylancr mto ) C
      DEZFGHIZJVBFAKZCLIZAMNZHIVFGHIZVCVFFVFCOZFHBVFVHBKZCPZVIMEZVICLIZQVIVHEVI
      VFEVJVKVLVJVKCMEZRVICMSTVKVLVJVKVIUAEVLVJUBVIUCVIUDUEUFUKBCUGVEVLAVIMVDVI
      CLUHUIUJULCUMUNUOUPVBVMVGCAUQURFVFGUSUTVA $.
  $}

  ${
    $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 wbr c1 wi cn wa wn co wdc wb cz cle adantr sylan2 cr bitrd
      cprime cfv cv cdvds wceq wo wral cmin isprm2 dvdszrcl simpld 1zzd syl2an2
      cfz zdceq simprd adantl dcor sylc imandc syl clt eluz2nn nnz dvdsle sylan
      nnge1 jctild wne cap zre 1re leltap mp3an1 zapne mpan2 3adant2 3expia w3a
      1z syl3an1 syl3an2 ancoms 3adant3 anim12d pm4.38 df-ne nesym ioran bitr4i
      anbi12i syl6bb syl6 syl2an syld eluzelz caddc zltp1le mpan breq1i syl6bbr
      imp df-2 zltlem1 anbi12d peano2zm elfz mp3an2 bitr4d bitr3d anasss expcom
      pm5.32d fzssuz wss 2eluzge1 uzss ax-mp sstri nnuz sseqtr4i sseli pm4.71ri
      2z notbid pm5.74da bi2.04 con2b 3bitr3g ralbidv2 pm5.32i bitri ) BUACBDEU
      BZCZAUCZBUDFZYOGUEZYOBUEZUFZHZAIUGZJYNYPKZADBGUHLZUNLZUGZJABUIYNUUAUUEYNY
      TUUBAIUUDYNYPYOICZYSHZHYPYOUUDCZKZHUUFYTHUUHUUBHYNYPUUGUUIYNYPJZUUGUUFYSK
      ZJZKZUUIUUJYSMZUUGUUMNUUJYQMZYRMZUUNYPYOOCZYNGOCZUUOYPUUQBOCZYOBUJZUKZUUJ
      ULYOGUOUMYPUUQYNUUSUUPUVAYPUUSYNYPUUQUUSUUTUPUQYOBUOUMYQYRURUSUUFYSUTVAUU
      JUULUUHUUJUULUUFUUHJUUHUUJUUFUUKUUHUUFUUJUUKUUHNZUUFYNYPUVBUUFYNJZYPJGYOV
      BFZYOBVBFZJZUUKUUHUVCYPUVFUUKNZUVCYPGYOPFZYOBPFZJZUVGYNUUFBICZYPUVJHBVCZU
      UFUVKJYPUVIUVHUUFUUQUVKYPUVIHYOVDZYOBVEVFUUFUVHUVKYOVGQVHRUUFUUQUVKUVJUVG
      HYNUVMUVLUUQUVKJUVJUVDYOGVIZNZUVEBYOVIZNZJZUVGUVKUUQUUSUVJUVRHBVDUUQUUSJZ
      UVHUVOUVIUVQUUQUUSUVHUVOUUQUVHUVOUUSUUQUVHJUVDYOGVJFZUVNUUQYOSCZUVHUVDUVT
      NZYOVKZGSCUWAUVHUWBVLGYOVMVNVFUUQUVTUVNNZUVHUUQUURUWDVTYOGVOVPQTVQVRUUQUU
      SUVIUVQUUQUUSUVIVSUVEBYOVJFZUVPUUSUUQBSCZUVIUVEUWENZBVKUUQUWAUWFUVIUWGUWC
      YOBVMWAWBUUQUUSUWEUVPNZUVIUUSUUQUWHBYOVOWCWDTVRWERUVRUVFUVNUVPJZUUKUVDUVE
      UVNUVPWFUWIYQKZYRKZJUUKUVNUWJUVPUWKYOGWGBYOWHWKYQYRWIWJWLWMWNWOXBUVCUVFUU
      HNZYPUUFUUQUUSUWLYNUVMDBWPUVSUVFDYOPFZYOUUCPFZJZUUHUVSUVDUWMUVEUWNUUQUVDU
      WMNUUSUUQUVDGGWQLZYOPFZUWMUURUUQUVDUWQNVTGYOWRWSDUWPYOPXCWTXAQYOBXDXEUUSU
      UQUUCOCZUUHUWONZBXFUUQDOCUWRUWSYDYODUUCXGXHRXIWNQXJXKXLXMUUHUUFUUDIYOUUDG
      EUBZIUUDYMUWTDUUCXNDUWTCYMUWTXOXPGDXQXRXSXTYAYBYCXAYETYFYPUUFYSYGYPUUHYHY
      IYJYKYL $.

    $( 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 c1 wceq wi cn wral imbi1i impexp imbi2d
      wa cz syl5bb wbr isprm2 eluz2nn pm4.71ri bitri wne eluz2b3 bi2.04 wdc nnz
      wo wn 1zzd zdceq syl2anc dfordc syl df-ne syl6rbbr pm5.74i 3bitri ralbii2
      wb pm5.4 anbi2i bitr4i ) BCDBEFGZDZAHZBIUAZVIJKZVIBKZUKZLZAMNZRVHVJVLLZAV
      GNZRABUBVQVOVHVPVNAVGMVIVGDZVPLZVIMDZVSLZVTVTVNLZLWBVSVTVRRZVPLWAVRWCVPVR
      VTVIUCUDOVTVRVPPUEVTVSWBVSVTVIJUFZRZVPLZVTWBVRWEVPVIUGOWFVTWDVPLZLVTWBVTW
      DVPPVTWGVNVTWGVJWDVLLZLVTVNWDVJVLUHVTWHVMVJVTVMVKULZVLLZWHVTVKUIZVMWJVCVT
      VISDJSDWKVIUJVTUMVIJUNUOVKVLUPUQWDWIVLVIJUROUSQTQTTUTVTVNVDVAVBVEVF $.
  $}

  ${
    $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 wb elfz1eq syl mpbiri rgen csn wa wsbc cdvds wbr cmin wrex cdiv cmul
        c2 wn peano2nn ad2antrr nncnd cuz cfv elfzuz ad2antrl nnap0d divcanap2d
        eluz2nn cz clt simprr cc0 wne nnne0d dvdsval2 syl3anc mpbid mulid2d cle
        nnzd elfzle2 cc nncn ax-1cn sylancl breqtrd nnz zleltp1 syl2anc eqbrtrd
        pncan cr 1red nngt0d ltmuldiv syl112anc eluz2b1 sylanbrc fznn mpbir2and
        nnred simplr rspcv sylc nnrpd rpdivcld rpgt0d dividapd eluz2gt1 ltdiv23
        elnnz syl122anc mpbird cbvralv sylib vex sbcie dfsbcq syl5bbr wi anbi2d
        jca imbi12d eluzelz sylibrd ex cprime oveq2d wdc sbceq1d imbi2d zmulcld
        ancoms adantl adantr sbcieg vtoclga sbceq1dd rexlimdvaa ralnex eluzp1p1
        syl3c simpl elnnuz df-2 fveq2i syl6eleqr isprm3 baibr simpr nfv nfsbc1v
        nfcv nfim oveq1 sbceq1a vtoclgaf syl5com sylbid syl5bir wo a1i peano2zd
        2z zsubcld dvdsdc syl2anr exfzdc exmiddc mpjaod ralsnsg ancld cun fzsuc
        1zzd sylbi ralunb syl6bb nnind ) JUCSZJTJUDUEZSZAGUWLUFZFUWKUWMJUGUHAGT
        UAUMZUDUEZUFAGTTUDUEZUFAGTUBUMZUDUEZUFZAGTUWRTUIUEZUDUEZUFZUWNUAUBJUWOT
        UJAGUWPUWQUWOTTUDUKULUWOUWRUJAGUWPUWSUWOUWRTUDUKULUWOUXAUJAGUWPUXBUWOUX
        ATUDUKULUWOJUJAGUWPUWLUWOJTUDUKULAGUWQGUMZUWQSZABPUXEUXDTUJABUNUXDTUOKU
        PUQURUWRUCSZUWTUWTAGUXAUSZUFZUTZUXCUXFUWTUXHUXFUWTAGUXAVAZUXHUXFUWTUXJU
        XFUWTUTZHUMZUXAVBVCZHVHUXATVDUEZUDUEZVEZUXJUXPVIZUXKUXMUXJHUXOUXKUXLUXO
        SZUXMUTZUTZAGUXLUXAUXLVFUEZVGUEZUXAUXTUXAUXLUXTUXAUXFUXAUCSZUWTUXSUWRVJ
        ZVKZVLZUXTUXLUXTUXLVHVMVNZSZUXLUCSZUXRUYHUXKUXMUXLVHUXNVOZVPZUXLVSZUPZV
        LZUXTUXLUYMVQVRUXTUYAUYGSZUYHCAGUYAVAZUTZAGUYBVAZUXTUYAVTSZTUYAWAVCZUYO
        UXTUXMUYSUXKUXRUXMWBUXTUXLVTSZUXLWCWDUXAVTSZUXMUYSUNUXTUXLUYMWKZUXTUXLU
        YMWEUXTUXAUYEWKUXLUXAWFWGWHZUXTTUXLVGUEZUXAWAVCZUYTUXTVUEUXLUXAWAUXTUXL
        UYNWIUXTUXLUWRWJVCZUXLUXAWAVCZUXTUXLUXNUWRWJUXRUXLUXNWJVCUXKUXMUXLVHUXN
        WLVPUXTUWRWMSZTWMSZUXNUWRUJZUXFVUIUWTUXSUWRWNVKWOUWRTXBZWPWQZUXTVUAUWRV
        TSZVUGVUHUNVUCUXFVUNUWTUXSUWRWRVKZUXLUWRWSWTWHXAUXTTXCSUXAXCSZUXLXCSZWC
        UXLWAVCZVUFUYTUNUXTXDUXTUXAUYEXLZUXTUXLUYMXLZUXTUXLUYMXEZTUXAUXLXFXGWHU
        YAXHXIUYKUXTCUYPUXTUXLUWSSZUWTCUXTVVBUYIVUGUYMVUMUXTVUNVVBUYIVUGUTUNVUO
        UXLUWRXJUPXKUXFUWTUXSXMZACGUXLUWSLXNXOUXTUYAUWSSZDIUWSUFZUYPUXTVVDUYAUC
        SZUYAUWRWJVCZUXTUYSWCUYAWAVCVVFVUDUXTUYAUXTUXAUXLUXTUXAUYEXPUXTUXLUYMXP
        XQXRUYAYBXIUXTVVGUYAUXAWAVCZUXTUXAUXAVFUEZUXLWAVCZVVHUXTVVITUXLWAUXTUXA
        UYFUXTUXAUYEVQXSUXTUYHTUXLWAVCUYKUXLXTUPXAUXTVUPVUPWCUXAWAVCVUQVURVVJVV
        HUNVUSVUSUXTUXAUYEXEVUTVVAUXAUXAUXLYAYCWHUXTUYSVUNVVGVVHUNVUDVUOUYAUWRW
        SWTYDUXTVUNVVDVVFVVGUTUNVUOUYAUWRXJUPXKUXTUWTVVEVVCADGIUWSMYEYFDUYPIUYA
        UWSDAGIUMZVAVVKUYAUJZUYPADGVVKIYGMYHAGVVKUYAYIYJZXNXOYMUYHCDUTZAGUXLVVK
        VGUEZVAZYKZYKUYHUYQUYRYKZYKIUYAUYGVVLVVQVVRUYHVVLVVNUYQVVPUYRVVLDUYPCVV
        MYLVVLAGVVOUYBVVKUYAUXLVGUKUUAYNUUBVVKUYGSZUYHVVQVVSUYHUTZVVNEVVPUYHVVS
        VVNEYKRUUDVVTVVOVTSVVPEUNVVTUXLVVKUYHVUAVVSVHUXLYOUUEVVSVVKVTSUYHVHVVKY
        OUUFUUCAEGVVOVTNUUGUPYPYQUUHUUMUUIUUJUXQUXMVIHUXOUFZUXKUXJUXMHUXOUUKUXK
        VWAUXAYRSZUXJUXKUXAUYGSZVWAVWBUNUXKUXATTUIUEZVMVNZUYGUXKUWRTVMVNSZUXAVW
        ESUXKUXFVWFUXFUWTUUNZUWRUUOZYFTUWRUULUPVHVWDVMUUPUUQUURVWBVWCVWAHUXAUUS
        UUTUPUXKCHTUXNUDUEZUFZVWBUXJUXKVWJCHUWSUFZUXKUWTVWKUXFUWTUVAACGHUWSLYEY
        FUXKCHVWIUWSUXKUXNUWRTUDUXKVUIVUJVUKUXKUWRVWGVLWOVULWPYSULYDCHTUXDTVDUE
        ZUDUEZUFZAYKVWJUXJYKGUXAYRGUXAUVDVWJUXJGVWJGUVBAGUXAUVCUVEUXDUXAUJZVWNV
        WJAUXJVWOCHVWMVWIVWOVWLUXNTUDUXDUXATVDUVFYSULAGUXAUVGYNUXDYRSVWNAQYQUVH
        UVIUVJUVKUXKUXPYTUXPUXQUVLUXKUXMHVHUXNVHVTSUXKUVOUVMUXKUXATUXKUWRUXKUWR
        VWGWKUVNZUXKUWFUVPUXRUYIVUBUXMYTUXKUXRUYHUYIUYJUYLUPVWPUXLUXAUVQUVRUVSU
        XPUVTUPUWAYQUXFUYCUXHUXJUNUYDAGUXAUCUWBUPYPUWCUXFUXCAGUWSUXGUWDZUFUXIUX
        FAGUXBVWQUXFVWFUXBVWQUJVWHTUWRUWEUWGULAGUWSUXGUWHUWIYPUWJAFGJUWLOXNXO
        $.
    $}

    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 wo wi c1 cn wb 2nn dvdsprime mpan2 eqcom
    biimpi wne cz 1ne2 necom eqneqall com12 sylbi ax-mp jaoi syl6bi wdc prmz 2z
    con3d zdceq dfordc 3syl mpbird ) ABCZADEZDAFGZHZIZURHUTJZUQUSURUQUSDAEZDKEZ
    IZURUQDLCUSVEMNADOPVCURVDVCURDAQRKDSZVDURJZUAVFDKSZVGKDUBVDVHURURDKUCUDUEUF
    UGUHULUQATCZURUIZVAVBMAUJVIDTCVJUKADUMPURUTUNUOUP $.

  $( 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 wcel wne wa clt wbr eldifsn cuz cfv wi prmuz2 cz eluz2
    cle w3a sylbi zltlen biimprd exp4b 3imp syl imp ) ABCDEFABFZACGZHCAIJZABCKU
    GUHUIUGACLMFZUHUINZAOUJCPFZAPFZCARJZSUKCAQULUMUNUKULUMUNUHUIULUMHUIUNUHHCAU
    AUBUCUDTUEUFT $.

  $( 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 $.

  $( 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 $.

  $( 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 mp3an2i gcddiv syl31anc nncnd nnap0d dividapd eqtr3d
    wceq breq2d biimpd sylbid expdimp mtoi ex wdc 2nn dvdsdc sylancr imordc syl
    ) ACDZBCDZEZFAABGHZTHZIJZFBVSTHZIJZKZLZWAKWDUAZVRWAWDVRWAEWCFMIJZUBVRWAWCWG
    VRWAWCEZFVTWBGHZIJZWGFNDVRVTNDZWBNDZWHWJOUCVRVSAIJZWKVRWMVSBIJZVPANDZBNDZWM
    WNEZVQAPZBPZABUDUEZUFVRVSNDZVSUGUHZWOWMWKOVRVSABUIZUJZVRVSXCUKZVPWOVQWRULZV
    SAQRSZVRWNWLVRWMWNWTUMVRXAXBWPWNWLOXDXEVQWPVPWSUNZVSBQRSFVTWBUOUPVRWJWGVRWI
    MFIVRVSVSTHZWIMVRWOWPVSCDWQXIWIVCXFXHXCWTABVSUQURVRVSVRVSXCUSVRVSXCUTVAVBVD
    VEVFVGVHVIVRWAVJZWEWFOVRFCDWKXJVKXGFVTVLVMWAWDVNVOS $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  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 expd wdc cn prmnn 3ad2ant1 simp2
    dvdsdc syl2anc dfordc syl sylibrd ordvdsmul impbid ) ADEZBFEZCFEZGZABCHIJKZ
    ABJKZACJKZLZVCVDVEMZVFNZVGVCVDVHVFVCVDVHOVDABPIQRZOZVFVCVHVJVDUTVAVHVJSVBAB
    UAUBUCUTAFEZVAVBVKVFNAUDZABCUETUFUGVCVEUHZVGVISVCAUIEZVAVNUTVAVOVBAUJUKUTVA
    VBULABUMUNVEVFUOUPUQUTVLVAVBVGVDNVMABCURTUS $.

  ${
    $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 cap nnap0 divcanap1d simprr simprl
      breqtrrd nndivdvds syl2anc mpbid oveq1 breq2d breq2 orbi1d imbi12d orbi2d
      nnz oveq2 rspc2va sylan mpd cle dvdsle div1d breq1d sylibrd nnrp rpregt0d
      clt crp 1rp rpregt0 mp1i lediv2 syl3anc nnle1eq1 sylibd cn0 nnnn0 simplrr
      cr simpr dvdseq syl22anc orim12d imp syldan an32s expr ralrimiva sylanbrc
      ex isprm2 impbii ) CUAEZCUBUCUDEZCAUMZBUMZFGZHIZCXPHIZCXQHIZJZKZBLUEALUEZ
      MZXNXOYDCUFXNYCABLLXNXPLEZXQLEZMMXSYBXNYFYGXSYBNCXPXQUGUHUIUJUNYEXODUMZCH
      IZYHOPZYHCPZJZKZDQUEXNXOYDUKYEYMDQYEYHQEZYIYLXOYNYIMZYDYLXOYOMZYDCCYHULGZ
      HIZCYHHIZJZYLYPYDMCYQYHFGZHIZYTYPUUBYDYPCCUUAHYPCLEZCCHIYPCXOCQEZYOCUORZU
      PZCUQSYPCYHYPUUDCUREUUECUSSZYNYHUREXOYIYHUSTYNYHUTVAIXOYIYHVBTVCVFRYPYQLE
      ZYHLEZMYDUUBYTKZYPUUHUUIYPYQYPYIYQQEZXOYNYIVDYPUUDYNYIUUKNUUEXOYNYIVECYHV
      GVHVIZUPYNUUIXOYIYHVPTUNYCUUJCYQXQFGZHIZYRYAJZKABYQYHLLXPYQPZXSUUNYBUUOUU
      PXRUUMCHXPYQXQFVJVKUUPXTYRYAXPYQCHVLVMVNXQYHPZUUNUUBUUOYTUUQUUMUUACHXQYHY
      QFVQVKUUQYAYSYRXQYHCHVLVOVNVRVSVTYPYTYLYPYRYJYSYKYPYRYHOWAIZYJYPYRCOULGZY
      QWAIZUURYPYRCYQWAIZUUTYPUUCUUKYRUVAKUUFUULCYQWBVHYPUUSCYQWAYPCUUGWCWDWEYP
      YHWTEUTYHWHIMZOWTEUTOWHIMZCWTEUTCWHIMUURUUTNYNUVBXOYIYNYHYHWFWGTOWIEUVCYP
      WJOWKWLYPCYPUUDCWIEUUECWFSWGYHOCWMWNWEYNUURYJNXOYIYHWOTWPYPYSYKYPYSMYHWQE
      ZCWQEZYIYSYKYPUVDYSYNUVDXOYIYHWRTRYPUVEYSYPUUDUVEUUECWRSRXOYNYIYSWSYPYSXA
      YHCXBXCXKXDXEXFXGXHXIDCXLXJXM $.
  $}

  ${
    $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 wn wi cdvds syl2anc adantr syl3anc
      wbr cn w3a cexp 0exp oveq1d eqeq1d oveq1 oveq12 sylan syl5ibrcom 3ad2ant3
      bibi12d wne c2 cuz cfv cv cprime exprmfct cn0 simpl1 simpl3 nnnn0d zexpcl
      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 wdc simp1 simp3 simp2 gcdcld
      3bitr3d nn0zd 1zzd zdceq nebidc sylc mpbird ex wo gcdmndc exmiddc 3adant3
      mpjaod ) AEFZBEFZCUAFZUBZAGHZBGHZIZACUCJZBKJZLHZABKJZLHZMZYGNZYCYAYGYMOYB
      YCYMYGGCUCJZGKJZLHZGGKJZLHZMYCYPYRLYCYOGGKCUDUEUFYGYJYQYLYSYGYIYPLYEYHYOH
      YFYIYPHAGCUCUGYHYOBGKUHUIUFYGYKYRLAGBGKUHUFULUJUKYDYNYMYDYNIZYMYILUMZYKLU
      MZMZYTYIUNUOUPZFZYKUUDFZUUAUUBYTUUEUUFUUEDUQZYIPTZDURVEZYTUUFYIDUSYTUUIUU
      BUUFYTUUHUUBDURYTUUGURFZIZUUHUUGAPTZUUGBPTZIZUUGYKPTZUUBUUKUUHUULUUMUUKUU
      HUUGYHPTZUULUUKUUHYIYHPTZUUPUUKUUQYIBPTZUUKYHEFZYBUUQUURIYTUUSUUJYTYACUTF
      ZUUSYAYBYCYNVAZYTCYAYBYCYNVBZVCACVDZQZRZYTYBUUJYAYBYCYNVFZRZYHBVGQZVHUUKU
      UGEFZYIEFZUUSUUHUUQIUUPOUUJUVIYTUUGVIVJZYTUVJUUJYTYIYTUUSYBYHGHZYFIZNYIUA
      FZUVDUVFYTUVMYGYDYNVKYTUVLYEYFYTAVLFYCUVLYEMYTAUVAVMUVBACVNQVOVPYHBVQVRZV
      SRZUVEUUGYIYHVTSWAUUKUUJYAYCUUPUULMYTUUJVKYAYBYCYNUUJWBZYTYCUUJUVBRZAUUGC
      WCSWDUUKUUHUURUUMUUKUUQUURUVHWEUUKUVIUVJYBUUHUURIUUMOUVKUVPUVGUUGYIBVTSWA
      WFUUKUVIYAYBUUNUUOOUVKUVQUVGUUGABWGSUUJUUOUUBOYTUUJUUOYKLUUJUUONYLUUGLPTZ
      NZUUGWHZYLUUOUVSYKLUUGPWIWJUJWKVJWLWMYTYKUAFZUUFUUBMYAYBYNUWBYCABVQWNZUUF
      UWBUUBYKWQWOWPZWRWSUUFUUODURVEZYTUUEYKDUSYTUWEUUAUUEYTUUOUUADURUUKUUOUUPU
      UMIZUUHUUAUUKUUOUUPUUMUUKUUOYKYHPTZUUPUUKYKAPTZAYHPTZUWGUUKUWHYKBPTZUUKYA
      YBUWHUWJIUVQUVGABVGQZVHUUKYAYCUWIUVQUVRACWTQUUKYKEFZYAUUSUWHUWIIUWGOYTUWL
      UUJYTYKUWCVSRZUVQUVEYKAYHVTSXAUUKUVIUWLUUSUUOUWGIUUPOUVKUWMUVEUUGYKYHVTSW
      AUUKUUOUWJUUMUUKUWHUWJUWKWEUUKUVIUWLYBUUOUWJIUUMOUVKUWMUVGUUGYKBVTSWAWFUU
      KUVIUUSYBUWFUUHOUVKUVEUVGUUGYHBWGSUUJUUHUUAOYTUUJUUHYILUUJUUHNYJUVTUWAYJU
      UHUVSYILUUGPWIWJUJWKVJWLWMYTUVNUUEUUAMUVOUUEUVNUUAYIWQWOWPZWRWSXBUWNUWDXH
      YDYMUUCMZYNYDYJXCZYLXCZUWOYDUVJLEFZUWPYDYIYDYHBYDYAUUTUUSYAYBYCXDZYDCYAYB
      YCXEVCUVCQYAYBYCXFZXGXIYDXJZYILXKQYDUWLUWRUWQYDYKYDABUWSUWTXGXIUXAYKLXKQY
      ILYKLXLXMRXNXOYAYBYGYNXPZYCYAYBIYGXCUXBABXQYGXRWPXSXT $.
  $}

  $( 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 cfv cdvds cz wb nn0z zltnle syl2anr
    prmz wi prmfac1 3exp impcom con3d sylbid ) ACDZBEDZFZBAGHZABIHZJZABKLMHZJUG
    BNDANDUIUKOUFBPASBAQRUHULUJUGUFULUJTUGUFULUJABUAUBUCUDUE $.

  $( 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 $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Non-rationality 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).  (Contributed
       by NM, 20-Aug-2001.)  (Revised by Mario Carneiro, 12-Sep-2015.) $)
    sqrt2irrlem $p |- ( ph -> ( ( A / 2 ) e. ZZ /\ ( B / 2 ) e. NN ) ) $=
      ( c2 cdiv co cz wcel cn cexp cmul cc0 wbr oveq1d nncnd eqtrd syl csqrt cr
      cfv cle wceq 2re 0le2 resqrtth mp2an syl5eqr zcnd nnap0d sqdivapd nnsqcld
      sqcld divcanap1d 2cnd cap 2ap0 a1i divcanap3d eqtr3d eqeltrd nnzd wb zesq
      mpbird clt 2cn sqvali oveq2i divdivap1d 3eqtr4a eqeltrrd rphalfcld rpgt0d
      zsqcl nnrpd elnnz sylanbrc nnesq jca ) ABGHIZJKZCGHILKZAWDBGMIZGHIZJKZAWG
      AWGCGMIZLAGWINIZGHIWGWIAWJWFGHAWJWFWIHIZWINIWFAGWKWINAGBCHIZGMIZWKAGGUAUC
      ZGMIZWMGUBKOGUDPWOGUEUFUGGUHUIAWNWLGMFQUJABCABDUKZACERACEULUMSQAWFWIABWPU
      OZAWIACEUNZRZAWIWRULUPSQAWIGWSAUQZGOURPAUSUTZVAVBZWRVCVDABJKWDWHVEDBVFTVG
      ZAWEWIGHIZLKZAXDJKOXDVHPXEAWCGMIZXDJAXFWGGHIZXDAWFGGMIZHIWFGGNIZHIXFXGXHX
      IWFHGVIVJVKABGWPWTXAUMAWFGGWQWTWTXAXAVLVMAWGWIGHXBQSAWDXFJKXCWCVQTVNAXDAW
      IAWIWRVRVOVPXDVSVTACLKWEXEVEECWATVGWB $.
  $}

  ${
    $d n x y z $.
    $( The square root of 2 is not rational.  That is, for any rational number,
       ` ( sqrt `` 2 ) ` does not equal it.  However, if we were to say "the
       square root of 2 is irrational" that would mean something stronger:
       "for any rational number, ` ( sqrt `` 2 ) ` is apart from it" (the two
       statements are equivalent given excluded middle).  See ~ sqrt2irrap for
       the proof that the square root of two is irrational.

       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.  (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 nnap0 2ap0 divcanap7d eqtr4d simplr simpll
      cap a1i sqrt2irrlem simprd simpld oveq1 embantd necon2bd mpd ex ralrimdva
      necon2ad cbvralv syl6ibr ceqsralv sylibrd ancld wo wb cle nnleltp1 zleloe
      syld nnz syl2an bitr3d ancoms jaob syl6bb ralbidva nnind nnre ltp1d df-ne
      r19.26 ralnex mp2d nrex elq rexcom bitri mtbir nelir ) DUBUCZUDXTUDEZXTAF
      ZBFZGHZIZAJKZBLKZYFBLYCLEZCFZYCMUEHZNOZXTYBYIGHZPZAJQZSZCLQZYCYJNOZYFUMZY
      HYJLEYPYCUFYIUAFZNOZYNSZCLQYIMNOZYNSZCLQYIYCNOZYNSZCLQZYPYPUABYJYSMIZUUAU
      UCCLUUGYTUUBYNYSMYINUGUHRYSYCIZUUAUUECLUUHYTUUDYNYSYCYINUGUHRYSYJIZUUAYOC
      LUUIYTYKYNYSYJYINUGUHRZUUJUUCCLYILEZUUBYNYIUIUJUKYHUUFUUFYIYCIZYNSZCLQZTZ
      YPYHUUFUUNYHUUFXTYDPZAJQZUUNYHUUFXTYIYCGHZPZCJQZUUQYHUUFYCDGHZLEZXTYBUVAG
      HZPZAJQZSZUUTYHUVAYCNOZUUFUVFSYHYCULEUVGYCUNYCUOVEUVBUUFUVGUVEUUEUVGUVESC
      UVALYIUVAIZUUDUVGYNUVEYIUVAYCNUPUVHYMUVDAJUVHYLUVCXTYIUVAYBGUQURRUSUTVAVE
      YHUVFUUSCJYHYIJEZTZUVFXTUURUVJXTUURIZUVFUMZUVJUVKTZXTYIDGHZUVAGHZIUVLUVMX
      TUURUVOUVJUVKVBZUVMYIYCDUVIYIVCEYHUVKYIVFVDYHYCVCEUVIUVKYCVGVHUVMVIYHYCVJ
      VQOUVIUVKYCVKVHDVJVQOUVMVLVRVMVNUVMUVFXTUVOUVMUVBUVEXTUVOPZUVMUVNJEZUVBUV
      MYIYCYHUVIUVKVOYHUVIUVKVPUVPVSZVTUVMUVRUVEUVQSUVMUVRUVBUVSWAUVDUVQAUVNJYB
      UVNIUVCUVOXTYBUVNUVAGWBURUTVEWCWDWEWFWHWGWSUUPUUSACJYBYIIYDUURXTYBYIYCGWB
      URWIWJYNUUQCYCLUULYMUUPAJUULYLYDXTYIYCYBGUQURZRWKWLWMYHYPUUEUUMTZCLQUUOYH
      YOUWACLYHUUKTZYOUUDUULWNZYNSUWAUWBYKUWCYNUUKYHYKUWCWOUUKYHTYIYCWPOZYKUWCY
      IYCWQUUKUVIYCJEUWDUWCWOYHYIWTYCWTYIYCWRXAXBXCUHUUDYNUULXDXEXFUUEUUMCLXKXE
      WLXGVEYHYCYCXHXIYOYQYRSCYCLUULYKYQYNYRYIYCYJNUPUULYNYEUMZAJQYRUULYMUWEAJU
      ULYMUUPUWEUVTXTYDXJXERYEAJXLXEUSUTXMXNYAYEBLKAJKYGABXTXOYEABJLXPXQXRXS $.
  $}

  $( 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 $.

  ${
    $d A w $.  $d N k m w $.
    $( Lemma for ~ pw2dvds .  If a natural number has some power of two which
       does not divide it, there is a highest power of two which does divide
       it.  (Contributed by Jim Kingdon, 14-Nov-2021.) $)
    pw2dvdslemn $p |- ( ( N e. NN /\ A e. NN /\ -. ( 2 ^ A ) || N ) ->
        E. m e. NN0 ( ( 2 ^ m ) || N /\ -. ( 2 ^ ( m + 1 ) ) || N ) ) $=
      ( cn wcel c2 cexp co cdvds wbr wn wa c1 caddc cn0 oveq2 breq1d notbid cc0
      wceq vw vk w3a cv wrex 3simpb wi anbi2d imbi1d 0nn0 a1i wb oveq2d anbi12d
      oveq1 adantl 2cnd exp0d cz simpl nnzd 1dvds syl simpr 0p1e1 oveq2i breq1i
      eqbrtrd sylnibr jca rspcedvd simpll nnnn0d simplrr adantllr simprl anim1i
      simpllr mpd wdc 2nn nnexpcl sylancr dvdsdc syl2anc exmiddc mpjaodan exp31
      wo nnind 3ad2ant2 ) CDEZADEZFAGHZCIJZKZUCWLWPLZFBUDZGHZCIJZFWRMNHZGHZCIJZ
      KZLZBOUEZWLWMWPUFWMWLWQXFUGZWPWLFUAUDZGHZCIJZKZLZXFUGWLFMGHZCIJZKZLZXFUGW
      LFUBUDZGHZCIJZKZLZXFUGZWLFXQMNHZGHZCIJZKZLZXFUGXGUAUBAXHMTZXLXPXFYHXKXOWL
      YHXJXNYHXIXMCIXHMFGPQRUHUIXHXQTZXLYAXFYIXKXTWLYIXJXSYIXIXRCIXHXQFGPQRUHUI
      XHYCTZXLYGXFYJXKYFWLYJXJYEYJXIYDCIXHYCFGPQRUHUIXHATZXLWQXFYKXKWPWLYKXJWOY
      KXIWNCIXHAFGPQRUHUIXPXEFSGHZCIJZFSMNHZGHZCIJZKZLZBSOSOEXPUJUKWRSTZXEYRULX
      PYSWTYMXDYQYSWSYLCIWRSFGPQYSXCYPYSXBYOCIYSXAYNFGWRSMNUOUMQRUNUPXPYMYQXPYL
      MCIXPFXPUQURXPCUSEZMCIJXPCWLXOUTVACVBVCVHXPXNYPWLXOVDYOXMCIYNMFGVEVFVGVIV
      JVKXQDEZYBYGXFUUAYBLZYGLZXSXFXTUUAYGXSXFYBUUAYGLZXSLZXEXSYFLZBXQOUUEXQUUA
      YGXSVLVMWRXQTZXEUUFULUUEUUGWTXSXDYFUUGWSXRCIWRXQFGPQUUGXCYEUUGXBYDCIUUGXA
      YCFGWRXQMNUOUMQRUNUPUUEXSYFUUDXSVDUUAWLYFXSVNVJVKVOUUCXTLYAXFUUCWLXTUUBWL
      YFVPZVQUUAYBYGXTVRVSUUCXSVTZXSXTWIUUCXRDEZYTUUIUUCFDEXQOEUUJWAUUCXQUUAYBY
      GVLVMFXQWBWCUUCCUUHVAXRCWDWEXSWFVCWGWHWJWKVS $.
  $}

  ${
    $d N m $.
    $( A natural number has a highest power of two which divides it.
       (Contributed by Jim Kingdon, 14-Nov-2021.) $)
    pw2dvds $p |- ( N e. NN ->
        E. m e. NN0 ( ( 2 ^ m ) || N /\ -. ( 2 ^ ( m + 1 ) ) || N ) ) $=
      ( cn wcel c2 co cdvds wbr wn cv c1 caddc wa cn0 sylancr cz cle 2z syl2anc
      cexp wrex id cmin cfz 2nn nnnn0 nnexpcl 1zzd zexpcl zsubcld nnz nnge1 clt
      cuz cfv uzid ax-mp bernneq3 wb mpbid elfz4 syl32anc fzm1ndvds pw2dvdslemn
      zltlem1 mpd3an23 ) BCDZVGEBTFZBGHIZEAJZTFBGHEVJKLFTFBGHIMANUAVGUBVGVHCDZB
      KVHKUCFZUDFDZVIVGECDBNDZVKUEBUFZEBUGOVGKPDVLPDBPDZKBQHBVLQHZVMVGUHZVGVHKV
      GEPDZVNVHPDZRVOEBUIOZVRUJBUKZBULVGBVHUMHZVQVGEEUNUODZVNWCVSWDREUPUQVOEBUR
      OVGVPVTWCVQUSWBWABVHVESUTBKVLVAVBVHBVCSBABVDVF $.
  $}

  ${
    pw2dvdseulemle.n $e |- ( ph -> N e. NN ) $.
    pw2dvdseulemle.a $e |- ( ph -> A e. NN0 ) $.
    pw2dvdseulemle.b $e |- ( ph -> B e. NN0 ) $.
    pw2dvdseulemle.2a $e |- ( ph -> ( 2 ^ A ) || N ) $.
    pw2dvdseulemle.n2b $e |- ( ph -> -. ( 2 ^ ( B + 1 ) ) || N ) $.
    $( Lemma for ~ pw2dvdseu .  Powers of two which do and do not divide a
       natural number.  (Contributed by Jim Kingdon, 17-Nov-2021.) $)
    pw2dvdseulemle $p |- ( ph -> A <_ B ) $=
      ( nn0red wbr c2 co cexp cdvds cn0 wcel adantr cz nnzd clt caddc cmin cmul
      c1 wa 2cnd cle peano2nn0 simpr wb nn0ltp1le syl2anc mpbid nn0sub2 syl3anc
      syl expaddd nn0cnd pncan3d oveq2d eqbrtrd eqbrtrrd wi cn 2nn a1i nnexpcld
      muldvds1 mpd mtand nltled ) ABCABFJACGJACBUAKZLCUEUBMZNMZDOKZIAVMUFZVOLBV
      NUCMZNMZUDMZDOKZVPVQLVNVRUBMZNMZVTDOVQLVNVRVQUGVQVNPQZBPQZVNBUHKZVRPQVQCP
      QZWDAWGVMGRZCUIUQZAWEVMFRZVQVMWFAVMUJVQWGWEVMWFUKWHWJCBULUMUNVNBUOUPZWIUR
      VQWCLBNMZDOVQWBBLNVQVNBVQVNWIUSVQBWJUSUTVAAWLDOKVMHRVBVCVQVOSQVSSQDSQWAVP
      VDVQVOVQLVNLVEQVQVFVGZWIVHTVQVSVQLVRWMWKVHTVQDADVEQVMERTVOVSDVIUPVJVKVL
      $.
  $}

  ${
    $d N m x $.
    $( A natural number has a unique highest power of two which divides it.
       (Contributed by Jim Kingdon, 16-Nov-2021.) $)
    pw2dvdseu $p |- ( N e. NN ->
        E! m e. NN0 ( ( 2 ^ m ) || N /\ -. ( 2 ^ ( m + 1 ) ) || N ) ) $=
      ( vx wcel c2 cv cexp co cdvds wbr c1 caddc wn cn0 wral cle pw2dvdseulemle
      wa nn0red breq1d cn wrex wrmo wreu pw2dvds weq wi simplrl simplrr simprll
      simpll simprrr simprrl simprlr mpbir2and ex ralrimivva oveq2 oveq1 oveq2d
      letri3d notbid anbi12d rmo4 sylibr reu5 sylanbrc ) BUADZEAFZGHZBIJZEVIKLH
      ZGHZBIJZMZRZANUBVPANUCZVPANUDABUEVHVPECFZGHZBIJZEVRKLHZGHZBIJZMZRZRZACUFZ
      UGZCNOANOVQVHWHACNNVHVINDZVRNDZRZRZWFWGWLWFRZWGVIVRPJVRVIPJWMVIVRBVHWKWFU
      KZVHWIWJWFUHZVHWIWJWFUIZWLVKVOWEUJWLVPVTWDULQWMVRVIBWNWPWOWLVPVTWDUMWLVKV
      OWEUNQWMVIVRWMVIWOSWMVRWPSVAUOUPUQVPWEACNWGVKVTVOWDWGVJVSBIVIVREGURTWGVNW
      CWGVMWBBIWGVLWAEGVIVRKLUSUTTVBVCVDVEVPANVFVG $.
  $}

  ${
    $d A z $.  $d Y z $.
    $( Lemma for ~ oddpwdc .  Another way of stating that decomposing a natural
       number into a power of two and an odd number is unique.  (Contributed by
       Jim Kingdon, 16-Nov-2021.) $)
    oddpwdclemxy $p |- ( ( ( ( X e. NN /\ -. 2 || X ) /\ Y e. NN0 )
        /\ A = ( ( 2 ^ Y ) x. X ) ) ->
          ( X = ( A / ( 2 ^ ( iota_ z e. NN0 ( ( 2 ^ z ) || A
            /\ -. ( 2 ^ ( z + 1 ) ) || A ) ) ) )
          /\ Y = ( iota_ z e. NN0 ( ( 2 ^ z ) || A
            /\ -. ( 2 ^ ( z + 1 ) ) || A ) ) ) ) $=
      ( cn wcel c2 cdvds wbr wn wa cn0 cexp co cmul wceq c1 cz nnzd nncnd caddc
      cv crio cdiv 2nn a1i simplll simplr nnexpcld simpr eqeltrd mulcomd eqtr2d
      nnmulcld dvds0lem simpllr breq2d cc0 wne nnne0d dvdscmulr syl112anc bitrd
      syl31anc wb mtbird expp1d breq1d wreu pw2dvdseu oveq2 oveq1 oveq2d notbid
      syl anbi12d riota2 syl2anc mpbi2and nnap0d eqcomd oveq1d mvllmulapd jca )
      CEFZGCHIZJZKZDLFZKZBGDMNZCONZPZKZCBGGAUBZMNZBHIZGWOQUANZMNZBHIZJZKZALUCZM
      NZUDNPDXCPWNXDCBWNXDWNGXCGEFWNUEUFZWNXCDLWNWKBHIZGDQUANZMNZBHIZJZXCDPZWNC
      RFZWKRFZBRFCWKONZBPXFWNCWEWGWIWMUGZSZWNWKWNGDXEWHWIWMUHZUIZSZWNBWNBWLEWJW
      MUJZWNWKCXRXOUNUKZSWNBWLXNXTWNWKCWNWKXRTWNCXOTZULUMCWKBUOVDWNXIWKGONZBHIZ
      WNYDWFWEWGWIWMUPWNYDYCWLHIZWFWNBWLYCHXTUQWNGRFXLXMWKURUSYEWFVEWNGXESXPXSW
      NWKXRUTWKGCVAVBVCVFWNXHYCBHWNGDWNGXETXQVGVHVFWNWIXBALVIZXFXJKZXKVEXQWNBEF
      YFYAABVJVOXBYGALDWODPZWQXFXAXJYHWPWKBHWODGMVKVHYHWTXIYHWSXHBHYHWRXGGMWODQ
      UAVLVMVHVNVPVQVRVSZXQUKUIZTYBWNXDYJVTWNBWLXDCONXTWNWKXDCOWNDXCGMWNXCDYIWA
      ZVMWBUMWCYKWD $.
  $}

  ${
    $d A z $.
    $( Lemma for ~ oddpwdc .  A natural number is divisible by the highest
       power of two which divides it.  (Contributed by Jim Kingdon,
       17-Nov-2021.) $)
    oddpwdclemdvds $p |- ( A e. NN -> ( 2 ^ ( iota_ z e. NN0
        ( ( 2 ^ z ) || A /\ -. ( 2 ^ ( z + 1 ) ) || A ) ) ) || A ) $=
      ( cn wcel c2 cv cexp co cdvds wbr c1 caddc cn0 wrex crio pw2dvds nfv nfcv
      wn wa nfriota1 nfov nfbr wceq wreu wb pw2dvdseu riota1 syl biimpa simprrl
      oveq2d eqbrtrd exp32 rexlimd mpd ) BCDZEAFZGHZBIJZEURKLHGHBIJSZTZAMNEVBAM
      OZGHZBIJZABPUQVBVEAMUQAQAVDBIAEVCGAERAGRVBAMUAUBAIRABRUCUQURMDZVBVEUQVFVB
      TZTZVDUSBIVHVCUREGUQVGVCURUDZUQVBAMUEVGVIUFABUGVBAMUHUIUJULUQVFUTVAUKUMUN
      UOUP $.
  $}

  ${
    $d A z $.
    $( Lemma for ~ oddpwdc .  A natural number is not divisible by one more
       than the highest power of two which divides it.  (Contributed by Jim
       Kingdon, 17-Nov-2021.) $)
    oddpwdclemndvds $p |- ( A e. NN -> -. ( 2 ^ ( ( iota_ z e. NN0
        ( ( 2 ^ z ) || A /\ -. ( 2 ^ ( z + 1 ) ) || A ) ) + 1 ) ) || A ) $=
      ( cn wcel c2 cv cexp co cdvds wbr c1 caddc wn wrex crio pw2dvds nfcv nfov
      wa cn0 nfv nfriota1 nfbr nfn simprrr wceq wreu wb pw2dvdseu riota1 biimpa
      syl oveq1d oveq2d breq1d mtbird exp32 rexlimd mpd ) BCDZEAFZGHBIJZEVAKLHZ
      GHZBIJZMZSZATNEVGATOZKLHZGHZBIJZMZABPUTVGVLATUTAUAVKAAVJBIAEVIGAEQAGQAVHK
      LVGATUBALQAKQRRAIQABQUCUDUTVATDZVGVLUTVMVGSZSZVKVEUTVMVBVFUEVOVJVDBIVOVIV
      CEGVOVHVAKLUTVNVHVAUFZUTVGATUGVNVPUHABUIVGATUJULUKUMUNUOUPUQURUS $.
  $}

  ${
    $d A z $.
    $( Lemma for ~ oddpwdc .  Removing the powers of two from a natural number
       produces an odd number.  (Contributed by Jim Kingdon, 16-Nov-2021.) $)
    oddpwdclemodd $p |- ( A e. NN -> -. 2 ||
        ( A / ( 2 ^ ( iota_ z e. NN0 ( ( 2 ^ z ) || A /\
        -. ( 2 ^ ( z + 1 ) ) || A ) ) ) ) ) $=
      ( cn wcel c2 cv cexp co cdvds wbr c1 caddc wn wa cn0 crio cmul mtbid nnzd
      cz cdiv oddpwdclemndvds wceq 2cn wreu pw2dvdseu riotacl syl expp1 sylancr
      cc breq1d nncn 2nn a1i nnexpcld nncnd nnap0d divcanap2d eqcomd breq2d cc0
      wb id oddpwdclemdvds nndivdvds biimpa syl21anc nnne0d dvdscmulr syl112anc
      wne bitrd ) BCDZEEAFZGHBIJEVOKLHGHBIJMNZAOPZGHZEQHZBIJZEBVRUAHZIJZVNEVQKL
      HGHZBIJVTABUBVNWCVSBIVNEUKDVQODZWCVSUCUDVNVPAOUEWDABUFVPAOUGUHZEVQUIUJULR
      VNVTVSVRWAQHZIJZWBVNBWFVSIVNWFBVNBVRBUMVNVRVNEVQECDVNUNUOZWEUPZUQVNVRWIUR
      USUTVAVNETDWATDVRTDVRVBVLWGWBVCVNEWHSVNWAVNVNVRCDZVRBIJZWACDZVNVDWIABVEVN
      WJNWKWLBVRVFVGVHSVNVRWISVNVRWIVIVREWAVJVKVMR $.
  $}

  ${
    $d A z $.  $d Y z $.
    $( Lemma for ~ oddpwdc .  Decomposing a number into odd and even parts.
       (Contributed by Jim Kingdon, 16-Nov-2021.) $)
    oddpwdclemdc $p |- ( ( ( ( X e. NN /\ -. 2 || X ) /\ Y e. NN0 )
        /\ A = ( ( 2 ^ Y ) x. X ) )
        <-> ( A e. NN /\ ( X = ( A / ( 2 ^
          ( iota_ z e. NN0 ( ( 2 ^ z ) || A /\ -. ( 2 ^ ( z + 1 ) ) || A ) ) )
          ) /\ Y =
          ( iota_ z e. NN0 ( ( 2 ^ z ) || A /\ -. ( 2 ^ ( z + 1 ) ) || A ) ) )
        ) ) $=
      ( cn wcel c2 cdvds wbr wn wa cn0 cexp cmul wceq simpr 2nn eqeltrd adantr
      co cv c1 caddc crio a1i simplr nnexpcld simplll nnmulcld oddpwdclemxy jca
      cdiv oddpwdclemdvds wb wreu pw2dvdseu riotacl syl nndivdvds mpdan adantrr
      mpbid oddpwdclemodd breq2 notbid mpbird simprr oveq2d oveq12d simpl nncnd
      ad2antrl nnap0d divcanap2d eqtr2d jca31 impbii ) CEFZGCHIZJZKZDLFZKZBGDMT
      ZCNTZOZKZBEFZCBGGAUAZMTBHIGWIUBUCTMTBHIJKZALUDZMTZULTZOZDWKOZKZKZWGWHWPWG
      BWEEWCWFPWGWDCWGGDGEFZWGQUEWAWBWFUFUGVRVTWBWFUHUIRABCDUJUKWQWAWBWFWQVRVTW
      HWNVRWOWHWNKCWMEWHWNPZWHWMEFZWNWHWLBHIZWTABUMWHWLEFZXAWTUNWHGWKWRWHQUEWHW
      JALUOWKLFZABUPWJALUQURZUGZBWLUSUTVBSRVAWQVTGWMHIZJZWHXGWPABVCSWNVTXGUNWHW
      OWNVSXFCWMGHVDVEVLVFUKWQDWKLWHWNWOVGZWHXCWPXDSRWQWEWLWMNTBWQWDWLCWMNWQDWK
      GMXHVHWHWNWNWOWSVAVIWQBWLWQBWHWPVJVKWQWLWHXBWPXESZVKWQWLXIVMVNVOVPVQ $.
  $}

  ${
    $d a 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 ) ) $.
    $( 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 $=
      ( cn0 cn wtru c2 cv cexp co cdvds wbr wn wa wcel wceq va cxp wf1o cmul c1
      caddc crio cdiv cc cr 2cnd simpr expcld breq2 notbid elrab2 simplbi nncnd
      adantr mulcld adantl nnnn0 2nn wreu pw2dvdseu riotacl syl nnexpcl sylancr
      nn0nndivcl syl2anc jca wb anbi1i oddpwdclemdc bitri a1i f1od2 trud ) EHUB
      IDUCJABUAEHKBLZMNZALZUDNZIDUALZKKCLZMNWDOPKWEUEUFNMNWDOPQRZCHUGZMNZUHNZWG
      UIUJHGWBESZVTHSZRZWCUISJWLWAWBWLKVTWLUKWJWKULUMWLWBWJWBISZWKWJWMKWBOPZQZK
      WEOPZQWOCWBIEWEWBTWPWNWEWBKOUNUOFUPZUQUSURUTVAWDISZWIUJSZWGHSZRJWRWSWTWRW
      DHSWHISZWSWDVBWRKISWTXAVCWRWFCHVDWTCWDVEWFCHVFVGZKWGVHVIWDWHVJVKXBVLVAWLW
      DWCTZRZWRWBWITVTWGTRRZVMJXDWMWORZWKRZXCRXEWLXGXCWJXFWKWQVNVNCWDWBVTVOVPVQ
      VRVS $.

    ${
      $d A x y z $.  $d F a x y z $.  $d J a x y $.
      $( The greatest power of two dividing the square of an integer is an even
         power of two.  (Contributed by Jim Kingdon, 17-Nov-2021.) $)
      sqpweven $p |- ( A e. NN -> 2 || ( 2nd ` ( `' F ` ( A ^ 2 ) ) ) ) $=
        ( cn wcel c2 cfv cmul co cexp cdvds wbr cn0 syl wceq ccnv c2nd cxp wf1o
        cz wf oddpwdc f1ocnv f1of ffvelrni xp2nd nn0zd 2nn a1i dvdsmul2 syl2anc
        mp2b nnzd c1st cop wn xp1st breq2 notbid elrab2 simplbi nnsqcld simprbi
        cv cprime wb 2prm w3a euclemma oridm syl6bb mp3an2i mtbird nncnd sqvald
        breq2d sylanbrc nnnn0d nn0mulcld opelxp expmuld nnexpcld nnmulcld oveq2
        wo oveq1d ovmpt2g syl3anc f1ocnvfv2 1st2nd2 fveq2d eqtr3d df-ov syl6eqr
        mpan eqtrd sqmuld 3eqtr4rd syl6req wi f1ocnvfv sylc op2ndg breqtrrd ) D
        IJZKDEUAZLZUBLZKMNZDKONZXKLZUBLZPXJXMUEJKUEJKXNPQXJXMXJXLFRUCZJZXMRJZIX
        RDXKXRIEUDZIXRXKUDIXRXKUFABCEFGHUGZXRIEUHIXRXKUIUQUJZXLFRUKSZULXJKKIJXJ
        UMUNZURXMKUOUPXJXQXLUSLZKONZXNUTZUBLZXNXJXPYHUBXJYHXRJZYHELZXOTZXPYHTZX
        JYGFJZXNRJZYJXJYGIJKYGPQZVAZYNXJYFXJYFFJZYFIJZXJXSYRYCXLFRVBSZYRYSKYFPQ
        ZVAZKCVIZPQZVAZUUBCYFIFUUCYFTUUDUUAUUCYFKPVCVDGVEZVFSZVGZXJYPKYFYFMNZPQ
        ZXJUUJUUAXJYRUUBYTYRYSUUBUUFVHSKVJJZXJYFUEJZUULUUJUUAVKVLXJYFUUGURZUUMU
        UKUULUULVMUUJUUAUUAWJUUAKYFYFVNUUAVOVPVQVRXJYGUUIKPXJYFXJYFUUGVSZVTWAVR
        UUEYQCYGIFUUCYGTUUDYPUUCYGKPVCVDGVEWBZXJXMKYDXJKYEWCZWDZYGXNFRWEWBXJXOY
        GXNENZYKXJKXNONZYGMNZKXMONZKONZYGMNZUURXOXJUUSUVBYGMXJKXMKXJKYEVSUUPYDW
        FWKXJYNYOUUTIJUURUUTTUUOUUQXJUUSYGXJKXNYEUUQWGUUHWHABYGXNFRKBVIZONZAVIZ
        MNZUUTEUVEYGMNIUVFYGUVEMWIUVDXNTUVEUUSYGMUVDXNKOWIWKHWLWMXJXOUVAYFMNZKO
        NUVCXJDUVHKOXJDYFXMENZUVHXJDYFXMUTZELZUVIXJXLELZDUVKYAXJUVLDTYBXRIDEWNW
        TXJXLUVJEXJXSXLUVJTYCXLFRWOSWPWQYFXMEWRWSXJYRXTUVHIJUVIUVHTYTYDXJUVAYFX
        JKXMYEYDWGZUUGWHABYFXMFRUVGUVHEUVEYFMNIUVFYFUVEMWIUVDXMTUVEUVAYFMUVDXMK
        OWIWKHWLWMXAWKXJUVAYFXJUVAUVMVSUUNXBXAXCYGXNEWRXDYAYJYLYMXEYBXRIYHXOEXF
        WTXGWPXJYNYOYIXNTUUOUUQYGXNFRXHUPXAXI $.
    $}

    ${
      $d A x y z $.  $d F a x y z $.  $d J a x y $.
      $( The greatest power of two dividing twice the square of an integer is
         an odd power of two.  (Contributed by Jim Kingdon, 17-Nov-2021.) $)
      2sqpwodd $p |- ( A e. NN ->
          -. 2 || ( 2nd ` ( `' F ` ( 2 x. ( A ^ 2 ) ) ) ) ) $=
        ( cn wcel c2 cexp co cmul cfv cdvds wbr cn0 syl wceq ccnv c2nd c1 caddc
        cz wn cxp wf1o wf oddpwdc f1ocnv f1of mp2b ffvelrni xp2nd nn0zd 2nn a1i
        nnzd zmulcld dvdsmul2 syl2anc oddp1even biimprd con2d sylc cop xp1st cv
        c1st breq2 notbid elrab2 simplbi nnsqcld simprbi cprime wb w3a euclemma
        2prm wo oridm syl6bb mp3an2i mtbird nncnd sqvald breq2d sylanbrc nnnn0d
        nn0mulcld peano2nn0 opelxp expp1d expcld mulcomd oveq2d 3eqtrd nnexpcld
        expmuld oveq1d nnmulcld ovmpt2g syl3anc f1ocnvfv2 1st2nd2 fveq2d eqtr3d
        oveq2 mpan df-ov syl6eqr eqtrd sqmuld eqeltrrd mulassd 3eqtr4rd syl6req
        cc eqtr4d wi f1ocnvfv op2ndg ) DIJZKKDKLMZNMZEUAZOZUBOZPQKDYHOZUBOZKNMZ
        UCUDMZPQZYEYMUEJZKYMPQZYOUFYEYLKYEYLYEYKFRUGZJZYLRJZIYRDYHYRIEUHZIYRYHU
        HIYRYHUIABCEFGHUJZYRIEUKIYRYHULUMUNZYKFRUOSZUPZYEKKIJYEUQURZUSZUTYEYLUE
        JKUEJYQUUEUUGYLKVAVBYPYOYQYPYQUFYOYMVCVDVEVFYEYJYNKPYEYJYKVJOZKLMZYNVGZ
        UBOZYNYEYIUUJUBYEUUJYRJZUUJEOZYGTZYIUUJTZYEUUIFJZYNRJZUULYEUUIIJKUUIPQZ
        UFZUUPYEUUHYEUUHFJZUUHIJZYEYSUUTUUCYKFRVHSZUUTUVAKUUHPQZUFZKCVIZPQZUFZU
        VDCUUHIFUVEUUHTUVFUVCUVEUUHKPVKVLGVMZVNSZVOZYEUURKUUHUUHNMZPQZYEUVLUVCY
        EUUTUVDUVBUUTUVAUVDUVHVPSKVQJZYEUUHUEJZUVNUVLUVCVRWAYEUUHUVIUSZUVOUVMUV
        NUVNVSUVLUVCUVCWBUVCKUUHUUHVTUVCWCWDWEWFYEUUIUVKKPYEUUHYEUUHUVIWGZWHWIW
        FUVGUUSCUUIIFUVEUUITUVFUURUVEUUIKPVKVLGVMWJZYEYMRJUUQYEYLKUUDYEKUUFWKZW
        LZYMWMSZUUIYNFRWNWJYEYGUUIYNEMZUUMYEKYNLMZUUINMZKKYLLMZKLMZNMZUUINMZUWA
        YGYEUWBUWFUUINYEUWBKYMLMZKNMKUWHNMUWFYEKYMYEKUUFWGZUVSWOYEUWHKYEKYMUWIU
        VSWPZUWIWQYEUWHUWEKNYEKYLKUWIUVRUUDXAZWRWSXBYEUUPUUQUWCIJUWAUWCTUVQUVTY
        EUWBUUIYEKYNUUFUVTWTUVJXCABUUIYNFRKBVIZLMZAVIZNMZUWCEUWMUUINMIUWNUUIUWM
        NXJUWLYNTUWMUWBUUINUWLYNKLXJXBHXDXEYEYGKUWEUUINMZNMUWGYEYFUWPKNYEYFUWDU
        UHNMZKLMUWPYEDUWQKLYEDUUHYLEMZUWQYEDUUHYLVGZEOZUWRYEYKEOZDUWTUUAYEUXADT
        UUBYRIDEXFXKYEYKUWSEYEYSYKUWSTUUCYKFRXGSXHXIUUHYLEXLXMYEUUTYTUWQIJUWRUW
        QTUVBUUDYEUWDUUHYEKYLUUFUUDWTZUVIXCABUUHYLFRUWOUWQEUWMUUHNMIUWNUUHUWMNX
        JUWLYLTUWMUWDUUHNUWLYLKLXJXBHXDXEXNXBYEUWDUUHYEUWDUXBWGUVPXOXNWRYEKUWEU
        UIUWIYEUWHUWEXTUWKUWJXPYEUUIUVJWGXQYAXRUUIYNEXLXSUUAUULUUNUUOYBUUBYRIUU
        JYGEYCXKVFXHYEUUPUUQUUKYNTUVQUVTUUIYNFRYDVBXNWIWF $.
    $}
  $}

  ${
    $d A a b c x y z $.  $d B a b c x y z $.
    $( The square of a natural number can never be equal to two times the
       square of a natural number.  (Contributed by Jim Kingdon,
       17-Nov-2021.) $)
    sqne2sq $p |- ( ( A e. NN /\ B e. NN ) ->
        ( A ^ 2 ) =/= ( 2 x. ( B ^ 2 ) ) ) $=
      ( va vb vc vx vy vz cn c2 cexp co cmul wceq cv cdvds wbr wn cfv c2nd wcel
      wa crab cn0 cmpt2 ccnv breq2 notbid oveq2 oveq1d cbvmpt2v 2sqpwodd adantl
      cbvrabv sqpweven ad2antrr wb fveq2 fveq2d breq2d mpbid mtand neqned ) AIU
      AZBIUAZUBZAJKLZJBJKLMLZVFVGVHNZJVHCDJEOZPQZRZEIUCZUDJDOZKLZCOZMLZUEZUFZSZ
      TSZPQZVEWBRVDFGHBVRVMVLJHOZPQZREHIVJWCNVKWDVJWCJPUGUHUNZCDFGVMUDVQJGOZKLZ
      FOZMLVOWHMLVPWHVOMUIVNWFNVOWGWHMVNWFJKUIUJUKZULUMVFVIUBJVGVSSZTSZPQZWBVDW
      LVEVIFGHAVRVMWEWIUOUPVIWLWBUQVFVIWKWAJPVIWJVTTVGVHVSURUSUTUMVAVBVC $.
  $}

  $( The absolute value of the difference between two unequal integers is at
     least one.  (Contributed by Jim Kingdon, 31-Jan-2022.) $)
  znege1 $p |- ( ( A e. ZZ /\ B e. ZZ /\ A =/= B )
      -> 1 <_ ( abs ` ( A - B ) ) ) $=
    ( cz wcel clt wbr c1 cmin co cle wa caddc zltp1le 3adant3 simpl1 zred mpbid
    wb 1red simpr wne w3a cabs cfv wceq biimpa simpl2 leaddsub2d ltled breqtrrd
    abssuble0d simpl3 pm2.21ddne syl2anc abssubge0d w3o ztri3or mpjao3dan ) ACD
    ZBCDZABUAZUBZABEFZGABHIZUCUDZJFZABUEZBAEFZVBVCKZGBAHIZVEJVIAGLIBJFZGVJJFVBV
    CVKUSUTVCVKRVAABMNUFVIAGBVIAUSUTVAVCOPZVISVIBUSUTVAVCUGPZUHQVIABVLVMVIABVLV
    MVBVCTUIUKUJVBVGKVFABVBVGTUSUTVAVGULUMVBVHKZGVDVEJVNBGLIAJFZGVDJFVNVHVOVBVH
    TZVNUTUSVHVORUSUTVAVHUGZUSUTVAVHOZBAMUNQVNBGAVNBVQPZVNSVNAVRPZUHQVNBAVSVTVN
    BAVSVTVPUIUOUJUSUTVCVGVHUPVAABUQNUR $.

  $( Lemma for ~ sqrt2irrap .  The square root of 2 is apart from a positive
     rational expressed as a numerator and denominator.  (Contributed by Jim
     Kingdon, 2-Oct-2021.) $)
  sqrt2irraplemnn $p |- ( ( A e. NN /\ B e. NN ) ->
      ( sqrt ` 2 ) # ( A / B ) ) $=
    ( cn wcel cdiv co c2 csqrt cfv cap wbr nnred nngt0d ltled mpbird cq syl2anc
    cc0 wb cz wa cexp simpl nnsqcld 0red simpr nnrpd sqrtdivd sqrtsqd eqtrd wne
    oveq12d cmul sqne2sq nncnd 2cnd nnap0d divmulap3d necon3bid nnzd 2z zq mp1i
    znq qapne cr cle qre syl divgt0d 2re a1i 0le2 sqrt11ap syl22anc eqbrtrrd cc
    nnz sylan qcn sqrt2re recni apsym mpbid ) ACDZBCDZUAZABEFZGHIZJKZWIWHJKZWGA
    GUBFZBGUBFZEFZHIZWHWIJWGWOWLHIZWMHIZEFWHWGWLWMWGWLWGAWEWFUCZUDZLZWGRWLWGUEZ
    WTWGWLWSMZNWGWMWGBWEWFUFZUDZUGUHWGWPAWQBEWGAWGAWRLZWGRAXAXEWGAWRMNUIWGBWGBX
    CLZWGRBXAXFWGBXCMNUIULUJWGWOWIJKZWNGJKZWGXHWNGUKZWGXIWLGWMUMFZUKABUNWGWNGWL
    XJWGWLGWMWGWLWSUOWGUPWGWMXDUOWGWMXDUQURUSOWGWNPDZGPDZXHXISWGWLTDWMCDXKWGWLW
    SUTXDWLWMVDQZGTDXLWGVAGVBVCWNGVEQOWGWNVFDZRWNVGKGVFDZRGVGKZXGXHSWGXKXNXMWNV
    HVIZWGRWNXAXQWGWLWMWTWGWMXDLXBWGWMXDMVJNXOWGVKVLXPWGVMVLWNGVNVOOVPWGWHVQDZW
    IVQDZWJWKSWGWHPDZXRWEATDWFXTAVRABVDVSWHVTVIXSWGWIWAWBVLWHWIWCQWD $.

  ${
    $d Q a b $.
    $( The square root of 2 is irrational.  That is, for any rational number,
       ` ( sqrt `` 2 ) ` is apart from it.  In the absence of excluded middle,
       we can distinguish between this and "the square root of 2 is not
       rational" which is ~ sqrt2irr .  (Contributed by Jim Kingdon,
       2-Oct-2021.) $)
    sqrt2irrap $p |- ( Q e. QQ -> ( sqrt ` 2 ) # Q ) $=
      ( va vb cq wcel cv cdiv co cn cz cap wbr wa cc0 cle cr adantr a1i simpr
      c1 wceq wrex csqrt cfv elq biimpi clt simplrl simplrr znq qre syl syl2anc
      c2 sqrt2re 0red cmul zcnd nncnd nnap0d divrecapd zred nnrecred 1red nnrpd
      0le1 divge0d mulle0r syl22anc eqbrtrd 2re 2pos sqrtgt0ii lelttrd sylanbrc
      gtapd elnnz sqrt2irraplemnn wo zlelttric mpan2 ad2antrl mpjaodan breqtrrd
      0z ex rexlimdvva mpd ) ADEZABFZCFZGHZUAZCIUBBJUBZUNUCUDZAKLZWIWNBCAUEUFWI
      WMWPBCJIWIWJJEZWKIEZMZMZWMWPWTWMMZWOWLAKXAWJNOLZWOWLKLZNWJUGLZXAXBMZWLWOX
      EWQWRWLPEZXAWQXBWIWQWRWMUHZQZXAWRXBWIWQWRWMUIZQZWSWLDEXFWJWKUJWLUKULUMZWO
      PEXEUORZXEWLNWOXKXEUPXLXEWLWJTWKGHZUQHZNOXEWJWKXEWJXHURXEWKXJUSXEWKXJUTVA
      XEWJPEXMPEXBNXMOLXNNOLXEWJXHVBXEWKXJVCXAXBSXETWKXEVDXEWKXJVENTOLXEVFRVGWJ
      XMVHVIVJNWOUGLXEUNVKVLVMRVNVPXAXDMZWJIEZWRXCXOWQXDXPXAWQXDXGQXAXDSWJVQVOX
      AWRXDXIQWJWKVRUMWTXBXDVSZWMWQXQWIWRWQNJEXQWEWJNVTWAWBQWCWTWMSWDWFWGWH $.
  $}


$(
###############################################################################
  GUIDES AND MISCELLANEA
###############################################################################
$)


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Guides (conventions, explanations, and examples)
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Conventions
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  This section describes the conventions we use.  However, these conventions
  often refer to existing mathematical practices, which are discussed in more
  detail in other references.

  The following sources lay out how mathematics is developed without the law
  of the excluded middle.  Of course, there are a greater number of sources
  which assume excluded middle and most of what is in them applies here too
  (especially in a treatment such as ours which is built on first order logic
  and set theory, rather than, say, type theory).  Studying how a topic is
  treated in the Metamath Proof Explorer and the references therein is often a
  good place to start (and is easy to compare with the Intuitionistic Logic
  Explorer).

  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 - Stanford Encyclopedia of Philosophy or
  [Heyting].</li>
  <li>Axioms of predicate calculus - our axioms are adapted from the ones in
  the Metamath Proof Explorer.</li>
  <li>Theorems of propositional calculus - [Heyting].</li>
  <li>Theorems of pure predicate calculus - Metamath Proof Explorer.</li>
  <li>Theorems of equality and substitution - Metamath Proof Explorer.</li>
  <li>Axioms of set theory - [Crosilla].</li>
  <li>Development of set theory - Chapter 10 of [HoTT].</li>
  <li>Construction of real and complex numbers - Chapter 11 of [HoTT];
  [BauerTaylor].</li>
  <li>Theorems about real numbers - [Geuvers].</li></ul></HTML>

$)

  ${
   $( Dummy premise for "conventions" $)
    conventions.1 $e |- ph $.
    $( Unless there is a reason to diverge, we follow the conventions of the
       Metamath Proof Explorer (aka "set.mm").  This list of conventions is
       intended to be read in conjunction with the corresponding conventions in
       the Metamath Proof Explorer, and only the differences are described
       below.

       <HTML>
       <br>
       <ul>

       <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, our choice of IZF
       (Intuitionistic Zermelo-Fraenkel) over CZF (Constructive
       Zermelo-Fraenkel, a weaker system) was just an expedient choice
       because IZF is easier to formalize in Metamath.  You can find some
       development using CZF in BJ's mathbox starting at ~ wbd (and the
       section header just above it).
       As for the axiom of choice, the full axiom of choice implies
       excluded middle as seen at ~ acexmid , although some authors will
       use countable choice or dependent choice.  For example, countable
       choice or excluded middle is needed to show that the Cauchy reals
       coincide with the Dedekind reals - Corollary 11.4.3 of [HoTT],
       p. (varies).</li>

       <li><b>Junk/undefined results.</b>
       Much of the discussion of this topic in the Metamath Proof
       Explorer applies except that certain techniques are not
       available to us.  For example, the Metamath Proof Explorer will
       often say "if a function is evaluated within its domain, a
       certain result follows; if the function is evaluated outside
       its domain, the same result follows.  Since the function must
       be evaluated within its domain or outside it, the result follows
       unconditionally" (the use of excluded middle in this argument is
       perhaps obvious when stated this way).  For this reason, we
       generally need to prove we are evaluating functions within
       their domains and avoid the reverse closure theorems of the
       Metamath Proof Explorer.</li>

       <li><b>Bibliography references.</b>
       The bibliography for the Intuitionistic Logic Explorer is
       separate from the one for the Metamath Proof Explorer but feel
       free to copy-paste a citation in either direction in order to
       cite it.</li>

       </ul></HTML>

       <HTML><b>Label naming conventions</b></HTML>

       Here are a few of the label naming conventions:

       <HTML><ul>

       <li><b>Suffixes.</b>
       We follow the conventions of the Metamath Proof Explorer with a few
       additions. A biconditional in set.mm which is an implication in
       iset.mm should have a "r" (for the reverse direction), or "i"/"im"
       (for the forward direction) appended.  A theorem in set.mm which has
       a decidability condition added should add "dc" to the theorem name.
       A theorem in set.mm where "nonempty class" is changed to "inhabited
       class" should add "m" (for member) to the theorem name.</li>
       </ul></HTML>

       <HTML>
       The following table shows some commonly-used abbreviations in labels
       which are not found in the Metamath Proof Explorer,
       in alphabetical order.
       For each abbreviation we provide a mnenomic to help you remember it,
       the source theorem/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.
       <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>ap</td><td>apart</td><td> ~ df-ap </td>
       <td> </td><td>Yes</td><td> ~ apadd1 , ~ apne </td></tr>
       </table>
       </HTML>

       <HTML><li><b>Community.</b>
       The Metamath mailing list also covers the Intuitionistic Logic
       Explorer and is at:
       ~ https://groups.google.com/forum/#!forum/metamath .
       </li>
       </ul></HTML>

       (Contributed by Jim Kingdon, 24-Feb-2020.) $)
    conventions $p |- ph $=
      (  ) B $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Definitional examples
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Example for ~ ax-io .  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 ~ ax-ia1 .  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-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 ax-mp mpbi wa cz
    wcel mp2an cdiv cfl cfv cle caddc rehalfcli cmul mulid2i 2lt3 cc0 ltmuldivi
    2pos ltleii c4 3lt4 2t2e4 breqtrri pm3.2i ltdivmul mp3an mpbir df-2 breqtri
    cr cq cn 3z 2nn znq 1z flqbi mpbir2an renegcli ltnegi cmin cc negcli ax-1cn
    negdi2 negnegi oveq1i eqtri 2m1e1 readdcli ltnegcon1i qnegcl 2z znegcl ) AB
    UACZUBUCDEZWIFZUBUCBFZEZWJDWIUDGZWIDDUECZHGZDWIIAJUFZDBUGCZAHGZDWIHGZWRBAHB
    KUHUILUJBHGZWSWTMULDABIJNUKOPZUMWIBWOHWIBHGZABBUGCZHGZAUNXDHUOUPUQAVDSBVDSZ
    XFXAQXCXEMJNXFXANULURABBUSUTVAZVBVCWIVESZDRSWJWNWPQMARSBVFSXHVGVHABVITZVJWI
    DVKTVLWMWLWKUDGZWKWLDUECZHGZWLWKBNVMZWIWQVMXCWLWKHGXGWIBWQNVNPUMXKFZWIHGXLX
    NBDVOCZWIHXNWLFZDVOCZXOWLVPSDVPSXNXQEBKVQVRWLDVSTXPBDVOBKVTWAWBXODWIHWCXBLL
    XKWIWLDXMIWDWQWEPWKVESZWLRSZWMXJXLQMXHXRXIWIWFOBRSXSWGBWHOWKWLVKTVLUR $.

  $( 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 wa cceil ex-fl cq cz cn ax-mp ceilqval
    wcel negnegi syl5eq 3z 2nn znq mp2an qnegcl qcn eqcomi fveq2i eqeq1i biimpi
    cc negeqd negeq 2cn syl6eq anim12ci ) ABCDZEFZGHZUQIZEFZBIZHZJUQKFZBHZUTKFZ
    GIZHZJLUSVHVCVEUSVFUTIZEFZIZVGUTMRZVFVKHUQMRZVLANRBORVMUAUBABUCUDZUQUEPUTQP
    USVJGUSVJGHURVJGUQVIEVIUQUQVMUQUKRVNUQUFPSUGUHUIUJULTVCVDVAIZBVMVDVOHVNUQQP
    VCVOVBIBVAVBUMBUNSUOTUPP $.

  $( 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-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 $.


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  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. */


/******* 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 "Intuitionistic Logic Explorer";
htmlhome '<A HREF="mmil.html"><FONT SIZE=-2 FACE=sans-serif>' +
    '<IMG SRC="_icon-il.gif" BORDER=0 ALT=' +
    '"Home" HEIGHT=32 WIDTH=32 ALIGN=MIDDLE>' +
    '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 correctness of
   the references. */
htmlbibliography "mmil.html";

/* Variable color key at the bottom of each proof table */
htmlvarcolor '<FONT COLOR="#0000FF">wff</FONT> '
    + '<FONT COLOR="#FF0000">set</FONT> '
    + '<FONT COLOR="#CC33CC">class</FONT>';

/* GIF and Unicode HTML directories - these are used for the GIF version to
   crosslink to the Unicode version and vice-versa */
htmldir "../ilegif/";
althtmldir "../ileuni/";


/******* 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='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 "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 "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 "[" 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";
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";
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 "FrFor" as "FrFor ";
  althtmldef "FrFor" as ' FrFor ';
  latexdef "FrFor" as "{\rm FrFor}";
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 "tpos" as "tpos ";
  althtmldef "tpos" as 'tpos ';
  latexdef "tpos" as "{\rm tpos}";
/*
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 "frec" as "frec";
  althtmldef "frec" as "frec";
  latexdef "frec" as "{\rm frec}";
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 "^oi" as ' &uarr;<SUB>&#x1D45C;</SUB> ';
  althtmldef "^oi" as ' &uarr;<SUB>&#x1D45C;</SUB> ';
  latexdef "^oi" as "\uparrow_{oi}";
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 "~~" 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 "Fin" as
    "<IMG SRC='_fin.gif' WIDTH=21 HEIGHT=19 ALT=' Fin' TITLE='Fin'>";
  althtmldef "Fin" as 'Fin';
  latexdef "Fin" as "{\rm Fin}";
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 "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 "card" as
    "<IMG SRC='_card.gif' WIDTH=30 HEIGHT=19 ALT=' card' TITLE='card'>";
  althtmldef "card" as 'card';
  latexdef "card" as "{\rm card}";
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='_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 "~Q0" as ' ~<I><SUB><B>Q0</B></SUB></I> ';
  althtmldef "~Q0" as ' ~<I><SUB><B>Q0</B></SUB></I> ';
  latexdef "~Q0" as "\sim_{\cal Q0}";
htmldef "Q0." as '<I><B>Q<SUB>0</SUB></B></I>';
  althtmldef "Q0." as '<I><B>Q<SUB>0</SUB></B></I>';
  latexdef "Q0." as "{\cal Q}_0";
htmldef "0Q0" as '0<I><SUB><B>Q0</B></SUB></I>';
  althtmldef "0Q0" as '0<I><SUB><B>Q0</B></SUB></I>';
  latexdef "0Q0" as "0_{\cal Q0}";
htmldef "+Q0" as ' +<I><SUB><B>Q0</B></SUB></I> ';
  althtmldef "+Q0" as ' +<I><SUB><B>Q0</B></SUB></I> ';
  latexdef "+Q0" as "+_{\cal Q0}";
htmldef ".Q0" as ' &middot;<I><SUB><B>Q0</B></SUB></I> ';
  althtmldef ".Q0" as ' &middot;<I><SUB><B>Q0</B></SUB></I> ';
  latexdef ".Q0" as "\cdot_{\cal Q0}";
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 "#" as ' # ';
  althtmldef "#" as ' # ';
  latexdef "#" as "\apart";
htmldef "#RR" as ' #<SUB>&#8477;</SUB> ';
  althtmldef "#RR" as ' #<SUB>&#8477;</SUB> ';
  latexdef "#RR" as "\apart_\mathbb{R}";
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 "|_" as "<IMG SRC='lfloor.gif' WIDTH=6 HEIGHT=19 ALT=' |_' " +
    "TITLE='|_'>";
  althtmldef "|_" as '&#8970;';
  latexdef "|_" as "\lfloor";
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 "^" 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 "size" as "&#x266f";
  althtmldef "size" as "&#x266f";
  latexdef "size" as "\sharp";
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 "~~>" 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 "sum_" as "<IMG SRC='csigma.gif' WIDTH=11 HEIGHT=19 " +
    "ALT=' sum_' TITLE='sum_'>";
  althtmldef "sum_" as "&Sigma;";
  latexdef "sum_" as "\Sigma";
htmldef "||" as
    " <IMG SRC='parallel.gif' WIDTH=5 HEIGHT=19 " + "ALT=' ||' TITLE='||'> ";
  althtmldef "||" as ' &#8741; ';
  latexdef "||" as " \parallel ";
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 "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 "STAB" as "<SMALL>STAB</SMALL> ";
  althtmldef "STAB" as "<SMALL>STAB</SMALL> ";
  latexdef "STAB" as "\mathrm{STAB} ";
htmldef "DECID" as "<SMALL>DECID</SMALL> ";
  althtmldef "DECID" as "<SMALL>DECID</SMALL> ";
  latexdef "DECID" as "\mathrm{DECID} ";

/* htmldef, althtmldef, latexdef for mathboxes */
/* Note the "Mathbox of" instead of "Mathbox for" to make searching easier. */

/* Mathbox of BJ */
htmldef "DECID_in" as " <SMALL><U>DECID</U><SUB>in</SUB></SMALL> ";
  althtmldef "DECID_in" as " <SMALL><U>DECID</U><SUB>in</SUB></SMALL> ";
  latexdef "DECID_in" as
           " \normalfont\textsc{\underline{decid}$_\mathrm{in}$}} ";
htmldef "Delta0" as "&Delta;<sub>0</sub>";
  althtmldef "Delta0" as "&Delta;<sub>0</sub>";
  latexdef "Delta0" as "\Delta_0 ";
htmldef "Bdd" as "<SMALL>BOUNDED</SMALL> ";
  althtmldef "Bdd" as "<SMALL>BOUNDED</SMALL> ";
  latexdef "Bdd" as "\normalfont\textsc{bounded}} ";
htmldef "Bdd_" as "<SMALL><U>BOUNDED</U></SMALL> ";
  althtmldef "Bdd_" as "<SMALL><U>BOUNDED</U></SMALL> ";
  latexdef "Bdd_" as "\normalfont\textsc{\underline{bounded}}} ";
htmldef "Ind" as "Ind ";
  althtmldef "Ind" as "Ind ";
  latexdef "Ind" as "\mathrm{Ind} ";
/* End of BJ's mathbox */

/* Mathbox of David A. Wheeler */
htmldef "A!" as
  "<IMG SRC='forall.gif' WIDTH=10 HEIGHT=19 ALT=' A.' TITLE='A.'>!";
  althtmldef "A!" as '&forall;!'; /* &#8704; */
  latexdef "A!" as "\forall !";
/* End of David A. Wheeler's mathbox */

/* End of typesetting definition section */
$)


$(
###############################################################################
  SUPPLEMENTARY MATERIAL (USER'S MATHBOXES)
###############################################################################
$)

$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Mathboxes for user contributions
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Mathbox guidelines
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    mathobox.1 $e |- ph $.
    $( (_This theorem is a dummy placeholder for these guidelines.  The name 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, but they shouldn't be depended on as a permanent archive.  If
       you want to preserve your original contribution, it is your
       responsibility to keep your own copy of it along with the version of
       set.mm that works with it.

       _Guidelines_:

       1.  If at all possible, please use only nullary class constants for new
       definitions.

       2.  Try to follow the style of the rest of set.mm.  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 wrapping comment lines and
       indentation conventions.  All mathbox content will be on public display
       and should hopefully reflect the overall quality of the website.

       3.  Before submitting a revised mathbox, please make sure it verifies
       against the current set.mm.

       4.  Mathboxes should be independent i.e. the proofs should verify with
       all other mathboxes removed.  If you need a theorem from another
       mathbox, that is fine (and encouraged), but let me know, so I can move
       the theorem to the main section.  One way avoid undesired accidental use
       of other mathbox theorems is to develop your mathbox using a modified
       set.mm that has mathboxes removed.

       _Notes_:

       1.  We may decide to move some theorems to the main part of set.mm for
       general use.

       2.  We may make changes to mathboxes to maintain the overall quality of
       set.mm.  Normally we will let you know if a change might impact what you
       are working on.

       3.  If you use theorems from another user's mathbox, we don't provide
       assurance that they are based on correct or consistent $a statements.
       (If you find such a problem, please let us know so it can be corrected.)
       (Contributed by NM, 20-Feb-2007.)  (New usage is discouraged.) $)
    mathbox $p |- ph $=
      (  ) B $.
  $}


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Mathbox for BJ
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Propositional calculus
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Double negation of excluded middle.  Intuitionistic logic refutes the
     negation of excluded middle (but, of course, does not prove excluded
     middle) for any formula.  (Contributed by BJ, 9-Oct-2019.) $)
  nnexmid $p |- -. -. ( ph \/ -. ph ) $=
    ( wn wo wa pm3.24 ioran mtbir ) AABZCBHHBDHEAHFG $.

  $( Double negation of decidability of a formula.  Intuitionistic logic
     refutes undecidability (but, of course, does not prove decidability) of
     any formula.  (Contributed by BJ, 9-Oct-2019.) $)
  nndc $p |- -. -. DECID ph $=
    ( wdc wn wo nnexmid df-dc notbii mtbir ) ABZCAACDZCAEIJAFGH $.

  $( Decidability of a proposition is decidable if and only if that proposition
     is decidable. ` DECID ` is idempotent.  (Contributed by BJ,
     9-Oct-2019.) $)
  dcdc $p |- ( DECID DECID ph <-> DECID ph ) $=
    ( wdc wn wo df-dc nndc biorfi bitr4i ) ABZBIICZDIIEJIAFGH $.


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Predicate calculus
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  ${
    $d x ph $.
    $( Existential generalization.  (Contributed by BJ, 8-Dec-2019.)  Proof
       modification is discouraged because there are shorter proofs, but using
       less basic results (like ~ exlimiv and ~ 19.9ht or ~ 19.23ht ).
       (Proof modification is discouraged.) $)
    bj-ex $p |- ( E. x ph -> ph ) $=
      ( wi wex wal wb ax-ie2 ax-17 mpg id mpgbi ) AACZABDACZBAABECLBEMFBAABGABH
      IAJK $.
  $}

  $( Closed form of ~ hbal (copied from set.mm).  (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-7 syl6 ) AABDZECDACDZICDJBDAICFACBGH $.

  $( Closed form of ~ nfal (copied from set.mm).  (Contributed by BJ,
     2-May-2019.) $)
  bj-nfalt $p |- ( A. x F/ y ph -> F/ y A. x ph ) $=
    ( wnf wal wi df-nf albii bj-hbalt alimi alcoms sylbi sylibr ) ACDZBEZABEZPC
    EFZCEZPCDOAACEFZCEZBERNTBACGHSRCBSBEQCACBIJKLPCGM $.

  ${
    spimd.nf $e |- ( ph -> F/ x ch ) $.
    spimd.1 $e |- ( ph -> A. x ( x = y -> ( ps -> ch ) ) ) $.
    $( Deduction form of ~ spim .  (Contributed by BJ, 17-Oct-2019.) $)
    spimd $p |- ( ph -> ( A. x ps -> ch ) ) $=
      ( wnf weq wi wal spimt syl2anc ) ACDHDEIBCJJDKBDKCJFGBCDELM $.
  $}

  ${
    $d x z $.  $d x t $.
    2spim.nfx $e |- F/ x ch $.
    2spim.nfz $e |- F/ z ch $.
    2spim.1 $e |- ( ( x = y /\ z = t ) -> ( ps -> ch ) ) $.
    $( Double substitution, as in ~ spim .  (Contributed by BJ,
       17-Oct-2019.) $)
    2spim $p |- ( A. z A. x ps -> ch ) $=
      ( wal weq wnf a1i wi expcom alrimiv spimd spim ) ACJBEFHEFKZABCDBCLSGMSCD
      KZABNZNCTSUAIOPQR $.
  $}

  ${
    $d x z $.  $d x t $.
    ch2var.nfx $e |- F/ x ps $.
    ch2var.nfz $e |- F/ z ps $.
    ch2var.maj $e |- ( ( x = y /\ z = t ) -> ( ph <-> ps ) ) $.
    ch2var.min $e |- ph $.
    $( Implicit substitution of ` y ` for ` x ` and ` t ` for ` z ` into a
       theorem.  (Contributed by BJ, 17-Oct-2019.) $)
    ch2var $p |- ps $=
      ( wal weq wa biimpd 2spim ax-gen mpg ) ACKBEABCDEFGHCDLEFLMABINOACJPQ $.
  $}

  ${
    $d x z ps $.  $d x t $.
    ch2varv.maj $e |- ( ( x = y /\ z = t ) -> ( ph <-> ps ) ) $.
    ch2varv.min $e |- ph $.
    $( Version of ~ ch2var with non-freeness hypotheses replaced by DV
       conditions.  (Contributed by BJ, 17-Oct-2019.) $)
    ch2varv $p |- ps $=
      ( nfv ch2var ) ABCDEFBCIBEIGHJ $.
  $}

  ${
    bj-exlimmp.nf $e |- F/ x ps $.
    bj-exlimmp.min $e |- ( ch -> ph ) $.
    $( Lemma for ~ bj-vtoclgf .  (Contributed by BJ, 21-Nov-2019.)
       (Proof modification is discouraged.) $)
    bj-exlimmp $p |- ( A. x ( ch -> ( ph -> ps ) ) -> ( E. x ch -> ps ) ) $=
      ( wi wal nfa1 idd embantd a2i sps exlimd ) CABGZGZDHCBDPDIEPCBGDCOBCABBFC
      BJKLMN $.

    bj-exlimmpi.maj $e |- ( ch -> ( ph -> ps ) ) $.
    $( Lemma for ~ bj-vtoclgf .  (Contributed by BJ, 21-Nov-2019.)
       (Proof modification is discouraged.) $)
    bj-exlimmpi $p |- ( E. x ch -> ps ) $=
      ( mpd exlimi ) CBDECABFGHI $.
  $}

  ${
    bj-sbimedh.1 $e |- ( ph -> A. x ph ) $.
    bj-sbimedh.2 $e |- ( ph -> ( ch -> A. x ch ) ) $.
    bj-sbimedh.3 $e |- ( ph -> ( x = y -> ( ps -> ch ) ) ) $.
    $( A strengthening of ~ sbiedh (same proof).  (Contributed by BJ,
       16-Dec-2019.) $)
    bj-sbimedh $p |- ( ph -> ( [ y / x ] ps -> ch ) ) $=
      ( wsb wex weq wa sb1 impd eximdh syl5 19.9hd syld ) ABDEIZCDJZCSDEKZBLZDJ
      ATBDEMAUBCDFAUABCHNOPCADFGQR $.
  $}

  ${
    bj-sbimeh.1 $e |- ( ps -> A. x ps ) $.
    bj-sbimeh.2 $e |- ( x = y -> ( ph -> ps ) ) $.
    $( A strengthening of ~ sbieh (same proof).  (Contributed by BJ,
       16-Dec-2019.) $)
    bj-sbimeh $p |- ( [ y / x ] ph -> ps ) $=
      ( wsb wi wtru tru hbth wal a1i weq bj-sbimedh trud ) ACDGBHIABCDICJKBBCLH
      IEMCDNABHHIFMOP $.
  $}

  ${
    bj-sbime.nf $e |- F/ x ps $.
    bj-sbime.1 $e |- ( x = y -> ( ph -> ps ) ) $.
    $( A strengthening of ~ sbie (same proof).  (Contributed by BJ,
       16-Dec-2019.) $)
    bj-sbime $p |- ( [ y / x ] ph -> ps ) $=
      ( nfri bj-sbimeh ) ABCDBCEGFH $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Extensionality
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  Various utility theorems using FOL and extensionality.

$)

  ${
    bj-vtoclgf.nf1 $e |- F/_ x A $.
    bj-vtoclgf.nf2 $e |- F/ x ps $.
    bj-vtoclgf.min $e |- ( x = A -> ph ) $.
    $( Weakening two hypotheses of ~ vtoclgf .  (Contributed by BJ,
       21-Nov-2019.) $)
    bj-vtoclgft $p |- ( A. x ( x = A -> ( ph -> ps ) ) -> ( A e. V -> ps ) ) $=
      ( wcel cvv cv wceq wi wal elex wex issetf bj-exlimmp syl5bi syl5 ) DEIDJI
      ZCKDLZABMMCNZBDEOUAUBCPUCBCDFQABUBCGHRST $.

    bj-vtoclgf.maj $e |- ( x = A -> ( ph -> ps ) ) $.
    $( Weakening two hypotheses of ~ vtoclgf .  (Contributed by BJ,
       21-Nov-2019.) $)
    bj-vtoclgf $p |- ( A e. V -> ps ) $=
      ( cv wceq wi wcel bj-vtoclgft mpg ) CJDKABLLDEMBLCABCDEFGHNIO $.
  $}

  $( Lemma for ~ elabgf .  (Contributed by BJ, 21-Nov-2019.) $)
  elabgf0 $p |- ( x = A -> ( A e. { x | ph } <-> ph ) ) $=
    ( cv cab wcel wceq abid eleq1 syl5rbbr ) ABDZABEZFKCGCLFABHKCLIJ $.

  ${
    elabgf1.nf1 $e |- F/_ x A $.
    elabgf1.nf2 $e |- F/ x ps $.
    $( One implication of ~ elabgf , in closed form.  (Contributed by BJ,
       21-Nov-2019.) $)
    elabgft1 $p |-
             ( A. x ( x = A -> ( ph -> ps ) ) -> ( A e. { x | ph } -> ps ) ) $=
      ( cv wceq wi wal cab wcel wb bi1 imim2 syl5 imim2i alimi nfab1 nfel nfim
      elabgf0 bj-vtoclgft syl pm2.43d ) CGDHZABIZIZCJZDACKZLZBUIUFUKAMZUKBIZIZI
      ZCJUKUMIUHUOCUGUNUFULUKAIUGUMUKANABUKOPQRULUMCDUJEUKBCCDUJEACSTFUAACDUBUC
      UDUE $.

    elabgf1.1 $e |- ( x = A -> ( ph -> ps ) ) $.
    $( One implication of ~ elabgf .  (Contributed by BJ, 21-Nov-2019.) $)
    elabgf1 $p |- ( A e. { x | ph } -> ps ) $=
      ( cv wceq wi cab wcel elabgft1 mpg ) CHDIABJJDACKLBJCABCDEFMGN $.
  $}

  ${
    elabgf2.nf1 $e |- F/_ x A $.
    elabgf2.nf2 $e |- F/ x ps $.
    elabgf2.1 $e |- ( x = A -> ( ps -> ph ) ) $.
    $( One implication of ~ elabgf .  (Contributed by BJ, 21-Nov-2019.) $)
    elabgf2 $p |- ( A e. B -> ( ps -> A e. { x | ph } ) ) $=
      ( cab wcel wb wi nfab1 nfel nfim elabgf0 cv wceq bicom1 bi1 bj-vtoclgf
      syl9 syl5 ) DACIZJZAKZBUELZCDEFBUECGCDUDFACMNOACDPUFAUEKZCQDRZUGUEASUIBAU
      HUEHAUETUBUCUA $.
  $}

  ${
    $d x A $.
    elabf1.nf $e |- F/ x ps $.
    elabf1.1 $e |- ( x = A -> ( ph -> ps ) ) $.
    $( One implication of ~ elabf .  (Contributed by BJ, 21-Nov-2019.) $)
    elabf1 $p |- ( A e. { x | ph } -> ps ) $=
      ( nfcv elabgf1 ) ABCDCDGEFH $.
  $}

  ${
    $d x A $.
    elabf2.nf $e |- F/ x ps $.
    elabf2.s $e |- A e. _V $.
    elabf2.1 $e |- ( x = A -> ( ps -> ph ) ) $.
    $( One implication of ~ elabf .  (Contributed by BJ, 21-Nov-2019.) $)
    elabf2 $p |- ( ps -> A e. { x | ph } ) $=
      ( cvv wcel cab wi nfcv elabgf2 ax-mp ) DHIBDACJIKFABCDHCDLEGMN $.
  $}

  ${
    $d x ps $.  $d x A $.
    elab1.1 $e |- ( x = A -> ( ph -> ps ) ) $.
    $( One implication of ~ elab .  (Contributed by BJ, 21-Nov-2019.) $)
    elab1 $p |- ( A e. { x | ph } -> ps ) $=
      ( nfv elabf1 ) ABCDBCFEG $.
  $}

  ${
    $d x ps $.  $d x A $.
    elab2a.s $e |- A e. _V $.
    elab2a.1 $e |- ( x = A -> ( ps -> ph ) ) $.
    $( One implication of ~ elab .  (Contributed by BJ, 21-Nov-2019.) $)
    elab2a $p |- ( ps -> A e. { x | ph } ) $=
      ( nfv elabf2 ) ABCDBCGEFH $.
  $}

  ${
    $d x ps $.  $d x A $.
    elabg2.1 $e |- ( x = A -> ( ps -> ph ) ) $.
    $( One implication of ~ elabg .  (Contributed by BJ, 21-Nov-2019.) $)
    elabg2 $p |- ( A e. V -> ( ps -> A e. { x | ph } ) ) $=
      ( nfcv nfv elabgf2 ) ABCDECDGBCHFI $.
  $}

  ${
    bj-rspg.nfa $e |- F/_ x A $.
    bj-rspg.nfb $e |- F/_ x B $.
    bj-rspg.nf2 $e |- F/ x ps $.
    $( Restricted specialization, generalized.  Weakens a hypothesis of
       ~ rspccv and seems to have a shorter proof.  (Contributed by BJ,
       21-Nov-2019.) $)
    bj-rspgt $p |- ( A. x ( x = A -> ( ph -> ps ) ) ->
                                      ( A. x e. B ph -> ( A e. B -> ps ) ) ) $=
      ( cv wceq wi wal wcel wral eleq1 imbi1d biimpd imim2 nfim com23 a2i alimi
      imim2d syl9 nfel nfra1 rsp a1i bj-vtoclgft syl pm2.43d ) CIZDJZABKZKZCLZD
      EMZACENZBUPUQURBKZUPUMULEMZURAKZKZUQUSKZKZKZCLUQVCKUOVECUMUNVDUMVBUQVAKZU
      NVCUMVBVFUMUTUQVAULDEOPQUNVAUSUQABURRUCUDUAUBVBVCCDEFUQUSCCDEFGUEURBCACEU
      FHSSUMURUTAURUTAKKUMACEUGUHTUIUJUKT $.

    bj-rspg.is $e |- ( x = A -> ( ph -> ps ) ) $.
    $( Restricted specialization, generalized.  Weakens a hypothesis of
       ~ rspccv and seems to have a shorter proof.  (Contributed by BJ,
       21-Nov-2019.) $)
    bj-rspg $p |- ( A. x e. B ph -> ( A e. B -> ps ) ) $=
      ( cv wceq wi wral wcel bj-rspgt mpg ) CJDKABLLACEMDENBLLCABCDEFGHOIP $.
  $}

  ${
    $d x z A $.  $d y z A $.  $d z ph $.  $d z ps $.  $d z ch $.
    cbvrald.nf0 $e |- F/ x ph $.
    cbvrald.nf1 $e |- F/ y ph $.
    cbvrald.nf2 $e |- ( ph -> F/ y ps ) $.
    cbvrald.nf3 $e |- ( ph -> F/ x ch ) $.
    cbvrald.is $e |- ( ph -> ( x = y -> ( ps <-> ch ) ) ) $.
    $( Rule used to change bound variables, using implicit substitution.
       (Contributed by BJ, 22-Nov-2019.) $)
    cbvrald $p |- ( ph -> ( A. x e. A ps <-> A. y e. A ch ) ) $=
      ( vz cv wcel wi nfv wnf a1i nfimd wb wal wral wsb nfs1v weq eleq1 sbequ12
      wa adantl imbi12d cbv2 nfsbd sbequ sbied sylan9bbr bitrd df-ral 3bitr4g
      ex ) ADMZFNZBOZDUAZEMZFNZCOZEUAZBDFUBCEFUBAVCLMZFNZBDLUCZOZLUAVGAVBVKDLGA
      LPZAVABLVALQAVALPRBLQABLPRSAVIVJDVIDQAVIDPRVJDQABDLUDRSADLUEZVBVKTAVMUHVA
      VIBVJVMVAVITAUTVHFUFUIVMBVJTABDLUGUIUJUSUKAVKVFLEVLHAVIVJEVIEQAVIEPRABDLE
      GIULSAVECLVELQAVELPRCLQACLPRSALEUEZVKVFTAVNUHVIVEVJCVNVIVETAVHVDFUFUIVNVJ
      BDEUCACBLEDUMABCDEGJKUNUOUJUSUKUPBDFUQCEFUQUR $.
  $}

  ${
    bj-intabssel.nf $e |- F/_ x A $.
    $( Version of ~ intss1 using a class abstraction and explicit substitution.
       (Contributed by BJ, 29-Nov-2019.) $)
    bj-intabssel $p |-
                     ( A e. V -> ( [. A / x ]. ph -> |^| { x | ph } C_ A ) ) $=
      ( wcel wsbc cab cint wss nfsbc1 sbceq1a elabgf intss1 syl6bir ) CDFABCGZC
      ABHZFQICJAPBCDEABCEKABCLMCQNO $.
  $}

  ${
    bj-intabssel1.nf $e |- F/_ x A $.
    bj-intabssel1.nf2 $e |- F/ x ps $.
    bj-intabssel1.is $e |- ( x = A -> ( ps -> ph ) ) $.
    $( Version of ~ intss1 using a class abstraction and implicit substitution.
       Closed form of ~ intmin3 .  (Contributed by BJ, 29-Nov-2019.) $)
    bj-intabssel1 $p |-
                     ( A e. V -> ( ps -> |^| { x | ph } C_ A ) ) $=
      ( wcel cab cint wss elabgf2 intss1 syl6 ) DEIBDACJZIPKDLABCDEFGHMDPNO $.
  $}

  ${
    bj-elssuniab.nf $e |- F/_ x A $.
    $( Version of ~ elssuni using a class abstraction and explicit
       substitution.  (Contributed by BJ, 29-Nov-2019.) $)
    bj-elssuniab $p |-
                     ( A e. V -> ( [. A / x ]. ph -> A C_ U. { x | ph } ) ) $=
      ( wcel wsbc cab cuni wss sbc8g elssuni syl6bi ) CDFABCGCABHZFCNIJABCDKCNL
      M $.
  $}

  ${
    bj-sseq.1 $e |- ( ph -> ( ps <-> A C_ B ) ) $.
    bj-sseq.2 $e |- ( ph -> ( ch <-> B C_ A ) ) $.
    $( If two converse inclusions are characterized each by a formula, then
       equality is characterized by the conjunction of these formulas.
       (Contributed by BJ, 30-Nov-2019.) $)
    bj-sseq $p |- ( ph -> ( ( ps /\ ch ) <-> A = B ) ) $=
      ( wa wss wceq anbi12d eqss syl6bbr ) ABCHDEIZEDIZHDEJABNCOFGKDELM $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Dedidability of classes
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  The question of decidability is essential in intuitionistic logic.  In
  intuitionistic set theories, it is natural to define decidability of a set
  (or class) as decidability of membership in it.  One can parameterize this
  notion with another set (or class) since it is often important to assess
  decidability of membership in one class among elements of another class.
  Namely, one will say that " ` A ` is decidable in ` B ` " if
  ` A. x e. B DECID x e. A ` (see ~ df-dcin ).

  Note the similarity with the definition of a bounded class as a class for
  which membership in it is a bounded proposition ( ~ df-bdc ).

$)

  $( Token for decidability of a class in another. $)
  $c DECID_in $.

  $( Syntax for decidability of a class in another. $)
  wdcin $a wff A DECID_in B $.

  ${
    $d A x $.  $d B x $.
    $( Define decidability of a class in another.  (Contributed by BJ,
       19-Feb-2022.) $)
    df-dcin $a |- ( A DECID_in B <-> A. x e. B DECID x e. A ) $.
  $}

  ${
    $d A x $.  $d B x $.  $d X x $.
    $( Property of being decidable in another class.  (Contributed by BJ,
       19-Feb-2022.) $)
    decidi $p |- ( A DECID_in B -> ( X e. B -> ( X e. A \/ -. X e. A ) ) ) $=
      ( vx wdcin cv wcel wdc wral wn wo df-dcin df-dc ralbii wceq eleq1 orbi12d
      wi notbid sylbi rspccv ) ABEDFZAGZHZDBIZCBGCAGZUFJZKZRZDABLUEUCUCJZKZDBIU
      IUDUKDBUCMNUKUHDCBUBCOZUCUFUJUGUBCAPZULUCUFUMSQUATT $.
  $}

  ${
    $d A x $.  $d B x $.  $d ph x $.
    decidr.1 $e |- ( ph -> ( x e. B -> ( x e. A \/ -. x e. A ) ) ) $.
    $( Sufficient condition for being decidable in another class.  (Contributed
       by BJ, 19-Feb-2022.) $)
    decidr $p |- ( ph -> A DECID_in B ) $=
      ( cv wcel wdc wi wal wdcin wn wo df-dc syl6ibr alrimiv wral df-dcin bitri
      df-ral sylibr ) ABFZDGZUBCGZHZIZBJZCDKZAUFBAUCUDUDLMUEEUDNOPUHUEBDQUGBCDR
      UEBDTSUA $.
  $}

  ${
    $d A x $.  $d C x $.  $d ph x $.
    decidin.ss $e |- ( ph -> A C_ B ) $.
    decidin.a $e |- ( ph -> A DECID_in B ) $.
    decidin.b $e |- ( ph -> B DECID_in C ) $.
    $( If A is a decidable subclass of B (meaning: it is a subclass of B and it
       is decidable in B), and B is decidable in C, then A is decidable in C.
       (Contributed by BJ, 19-Feb-2022.) $)
    decidin $p |- ( ph -> A DECID_in C ) $=
      ( vx cv wcel wn wo wdcin wi decidi syl ssneld olc syl6 jaod syld decidr )
      AHBDAHIZDJZUCCJZUEKZLZUCBJZUHKZLZACDMUDUGNGCDUCOPAUEUJUFABCMUEUJNFBCUCOPA
      UFUIUJABCUCEQUIUHRSTUAUB $.
  $}

  ${
    $d M x $.
    $( An upperset of integers is decidable in the integers.  Reformulation of
       ~ eluzdc .  (Contributed by Jim Kingdon, 18-Apr-2020.)  (Revised by BJ,
       19-Feb-2022.) $)
    uzdcinzz $p |- ( M e. ZZ -> ( ZZ>= ` M ) DECID_in ZZ ) $=
      ( vx cz wcel cuz cfv cv wn wo wa cle wbr zlelttric eluz biimprd wb zltnle
      clt ancoms notbid sylbid orim12d mpd ex decidr ) ACDZBAEFZCUFBGZCDZUHUGDZ
      UJHZIZUFUIJZAUHKLZUHARLZIULAUHMUMUNUJUOUKUMUJUNAUHNZOUMUOUNHZUKUIUFUOUQPU
      HAQSUMUKUQUMUJUNUPTOUAUBUCUDUE $.
  $}

  ${
    $d M x y $.  $d A x y $.  $d ph y $.  $d A z $.  $d N z $.
    sumdc2.m $e |- ( ph -> M e. ZZ ) $.
    sumdc2.ss $e |- ( ph -> A C_ ( ZZ>= ` M ) ) $.
    sumdc2.dc $e |- ( ph -> A. x e. ( ZZ>= ` M ) DECID x e. A ) $.
    sumdc2.n $e |- ( ph -> N e. ZZ ) $.
    $( Alternate proof of ~ sumdc , without DV condition on ` N , x ` (longer
       because the statement is taylored to the proof ~ sumdc ).  (Contributed
       by BJ, 19-Feb-2022.) $)
    sumdc2 $p |- ( ph -> DECID N e. A ) $=
      ( vy vz cz wdcin wcel wdc cv wral wi eleq1 dcbid cuz cfv wn wo weq rspccv
      exmiddc syl6 syl decidr uzdcinzz decidin df-dcin wceq nfv rspct mpg com12
      wb sylbi sylc ) ACLMZELNZECNZOZACDUAUBZLGAJCVFABPZCNZOZBVFQZJPZVFNZVKCNZV
      MUCUDZRHVJVLVMOZVNVIVOBVKVFBJUEVHVMVGVKCSTUFVMUGUHUIUJADLNVFLMFDUKUIULIVB
      KPZCNZOZKLQZVCVERKCLUMVCVSVEVPEUNZVRVEUSRVCVSVERRKVRVEKELVEKUOUPVTVQVDVPE
      CSTUQURUTVA $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Constructive Zermelo--Fraenkel set theory (CZF): Bounded formulas and classes
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  This section develops constructive Zermelo--Fraenkel set theory (CZF) on top
  of intuitionistic logic.  It is a constructive theory in the sense that its
  logic is intuitionistic and it is predicative.  "Predicative" means that new
  sets can be constructed only from already constructed sets. In particular,
  the axiom of separation ~ ax-sep is not predicative (because we cannot allow
  all formulas to define a subset) and is replaced in CZF by bounded separation
  ~ ax-bdsep .  Because this axiom is weaker than full separation, the
  axiom of replacement or collection ~ ax-coll of ZF and IZF has to be
  strengthened in CZF to the axiom of strong collection ~ ax-strcoll (which is
  a theorem of IZF), and the axiom of infinity needs a more precise version,
  the von Neumann axiom of infinity ~ ax-infvn .  Similarly, the axiom of
  powerset ~ ax-pow is not predicative (checking whether a set is included in
  another requires to universally quantifier over that "not yet constructed"
  set) and is replaced in CZF by the axiom of fullness or the axiom of subset
  collection ~ ax-sscoll .

  In an intuitionistic context, the axiom of regularity is stated in IZF as
  well as in CZF as the axiom of set induction ~ ax-setind .  It is sometimes
  interesting to study the weakening of CZF where that axiom is replaced by
  bounded set induction ~ ax-bdsetind .

  For more details on CZF, a useful set of notes is

  Peter Aczel and Michael Rathjen,
  _CST Book draft_.
  (available at ~ http://www1.maths.leeds.ac.uk/~~rathjen/book.pdf )

  and an interesting article is

  Michael Shulman,
  _Comparing material and structural set theories_,
  Annals of Pure and Applied Logic,
  Volume 170, Issue 4 (Apr. 2019), 465--504.
  (available at ~ https://arxiv.org/abs/1808.05204 )

  I also thank Michael Rathjen and Michael Shulman for useful hints in the
  formulation of some results.

$)

  $( This declaration is simply to be able to display Delta0 in comments. $)
  $c Delta0 $.


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Bounded formulas
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

  The present definition of bounded formulas emerged from a discussion
  on GitHub between Jim Kingdon, Mario Carneiro and I, started
  23-Sept-2019 (see ~ https://github.com/metamath/set.mm/issues/1173 and links
  therein).

  In order to state certain axiom schemes of Constructive
  Zermelo&ndash;Fraenkel (CZF) set theory, like the axiom scheme of bounded (or
  restricted, or ` Delta0 ` ) separation, it is necessary to distinguish
  certain formulas, called bounded (or restricted, or ` Delta0 ` ) formulas.
  The necessity of considering bounded formulas also arises in several theories
  of bounded arithmetic, both classical or intuitonistic, for instance to state
  the axiom scheme of ` Delta0 ` -induction.

  To formalize this in Metamath, there are several choices to make.

  A first choice is to either create a new type for bounded formulas, or to
  create a predicate on formulas that indicates whether they are bounded.
  In the first case, one creates a new type "wff0" with a new set of
  metavariables (ph_0 ...) and an axiom "$a wff ph_0 " ensuring that bounded
  formulas are formulas, so that one can reuse existing theorems, and then
  axioms take the form "$a wff0 ( ph_0 -> ps_0 )", etc.
  In the second case, one introduces a predicate " ` Bdd ` " with the intended
  meaning that " ` Bdd ph ` " is a formula meaning that ` ph ` is a bounded
  formula.
  We choose the second option, since the first would complicate the grammar,
  risking to make it ambiguous.
  (TODO: elaborate.)

  A second choice is to view "bounded" either as a syntactic or a semantic
  property.
  For instance, ` A. x T. ` is not syntactically bounded since it has an
  unbounded universal quantifier, but it is semantically bounded since it is
  equivalent to ` T. ` which is bounded.
  We choose the second option, so that formulas using defined symbols can be
  proved bounded.

  A third choice is in the form of the axioms, either in closed form or in
  inference form.
  One cannot state all the axioms in closed form, especially ~ ax-bd0 .
  Indeed, if we posited it in closed form, then we could prove for instance
  ` |- ( ph -> Bdd ph ) ` and ` |- ( -. ph -> Bdd ph ) ` which is problematic
  (with the law of excluded middle, this would entail that all formulas are
  bounded, but even without it, too many formulas could be proved bounded...).
  (TODO: elaborate.)

  Having ~ ax-bd0 in inference form ensures that a formula can be proved
  bounded only if it is equivalent *for all values of the free variables* to a
  syntactically bounded one.
  The other axioms ( ~ ax-bdim through ~ ax-bdsb ) can be written either in
  closed or inference form.  The fact that ~ ax-bd0 is an inference is enough
  to ensure that the closed forms cannot be "exploited" to prove that some
  unbounded formulas are bounded.
  (TODO: check.)
  However, we state all the axioms in inference form to make it clear that we
  do not exploit any over-permissiveness.

  Finally, note that our logic has no terms, only variables.  Therefore, we
  cannot prove for instance that ` x e. _om ` is a bounded formula.  However,
  since ` _om ` can be defined as "the ` y  ` such that PHI" a proof using the
  fact that ` x e. _om ` is bounded can be converted to a proof in iset.mm by
  replacing ` _om ` with ` y ` everywhere and prepending the antecedent PHI,
  since ` x e. y ` is bounded by ~ ax-bdel .  For a similar method, see
  ~ bj-omtrans .

  Note that one cannot add an axiom ` |- Bdd x e. A ` since by ~ bdph it would
  imply that every formula is bounded.

$)

  $( Symbol for the predicate ` Bdd ` . $)
  $c Bdd $.

  $( Syntax for the predicate ` Bdd ` . $)
  wbd $a wff Bdd ph $.

  ${
    ax-bd0.1 $e |- ( ph <-> ps ) $.
    $( If two formulas are equivalent, then boundedness of one implies
       boundedness of the other.  (Contributed by BJ, 3-Oct-2019.) $)
    ax-bd0 $a |- ( Bdd ph -> Bdd ps ) $.
  $}

  ${
    bdim.1 $e |- Bdd ph $.
    bdim.2 $e |- Bdd ps $.
    $( An implication between two bounded formulas is bounded.  (Contributed by
       BJ, 25-Sep-2019.) $)
    ax-bdim $a |- Bdd ( ph -> ps ) $.

    $( The conjunction of two bounded formulas is bounded.  (Contributed by BJ,
       25-Sep-2019.) $)
    ax-bdan $a |- Bdd ( ph /\ ps ) $.

    $( The disjunction of two bounded formulas is bounded.  (Contributed by BJ,
       25-Sep-2019.) $)
    ax-bdor $a |- Bdd ( ph \/ ps ) $.
  $}

  ${
    bdn.1 $e |- Bdd ph $.
    $( The negation of a bounded formula is bounded.  (Contributed by BJ,
       25-Sep-2019.) $)
    ax-bdn $a |- Bdd -. ph $.
  $}

  ${
    $d x y $.
    bdal.1 $e |- Bdd ph $.
    $( A bounded universal quantification of a bounded formula is bounded.
       Note the DV condition on ` x , y ` .  (Contributed by BJ,
       25-Sep-2019.) $)
    ax-bdal $a |- Bdd A. x e. y ph $.

    $( A bounded existential quantification of a bounded formula is bounded.
       Note the DV condition on ` x , y ` .  (Contributed by BJ,
       25-Sep-2019.) $)
    ax-bdex $a |- Bdd E. x e. y ph $.
  $}

  $( An atomic formula is bounded (equality predicate).  (Contributed by BJ,
     3-Oct-2019.) $)
  ax-bdeq $a |- Bdd x = y $.

  $( An atomic formula is bounded (membership predicate).  (Contributed by BJ,
     3-Oct-2019.) $)
  ax-bdel $a |- Bdd x e. y $.

  ${
    bdsb.1 $e |- Bdd ph $.
    $( A formula resulting from proper substitution in a bounded formula is
       bounded.  This probably cannot be proved from the other axioms, since
       neither the definiens in ~ df-sb , nor probably any other equivalent
       formula, is syntactically bounded.  (Contributed by BJ, 3-Oct-2019.) $)
    ax-bdsb $a |- Bdd [ y / x ] ph $.
  $}

  ${
    bdeq.1 $e |- ( ph <-> ps ) $.
    $( Equality property for the predicate ` Bdd ` .  (Contributed by BJ,
       3-Oct-2019.) $)
    bdeq $p |- ( Bdd ph <-> Bdd ps ) $=
      ( wbd ax-bd0 bicomi impbii ) ADBDABCEBAABCFEG $.
  $}

  ${
    bd0.min $e |- Bdd ph $.
    bd0.maj $e |- ( ph <-> ps ) $.
    $( A formula equivalent to a bounded one is bounded.  See also ~ bd0r .
       (Contributed by BJ, 3-Oct-2019.) $)
    bd0 $p |- Bdd ps $=
      ( wbd ax-bd0 ax-mp ) AEBECABDFG $.
  $}

  ${
    bd0r.min $e |- Bdd ph $.
    bd0r.maj $e |- ( ps <-> ph ) $.
    $( A formula equivalent to a bounded one is bounded.  Stated with a
       commuted (compared with ~ bd0 ) biconditional in the hypothesis, to work
       better with definitions ( ` ps ` is the definiendum that one wants to
       prove bounded).  (Contributed by BJ, 3-Oct-2019.) $)
    bd0r $p |- Bdd ps $=
      ( bicomi bd0 ) ABCBADEF $.
  $}

  ${
    bdbi.1 $e |- Bdd ph $.
    bdbi.2 $e |- Bdd ps $.
    $( A biconditional between two bounded formulas is bounded.  (Contributed
       by BJ, 3-Oct-2019.) $)
    bdbi $p |- Bdd ( ph <-> ps ) $=
      ( wi wa wb ax-bdim ax-bdan dfbi2 bd0r ) ABEZBAEZFABGLMABCDHBADCHIABJK $.
  $}

  ${
    bdstab.1 $e |- Bdd ph $.
    $( Stability of a bounded formula is bounded.  (Contributed by BJ,
       3-Oct-2019.) $)
    bdstab $p |- Bdd STAB ph $=
      ( wn wi wstab ax-bdn ax-bdim df-stab bd0r ) ACZCZADAEKAJABFFBGAHI $.

    $( Decidability of a bounded formula is bounded.  (Contributed by BJ,
       3-Oct-2019.) $)
    bddc $p |- Bdd DECID ph $=
      ( wn wo wdc ax-bdn ax-bdor df-dc bd0r ) AACZDAEAJBABFGAHI $.
  $}

  ${
    bd3or.1 $e |- Bdd ph $.
    bd3or.2 $e |- Bdd ps $.
    bd3or.3 $e |- Bdd ch $.
    $( A disjunction of three bounded formulas is bounded.  (Contributed by BJ,
       3-Oct-2019.) $)
    bd3or $p |- Bdd ( ph \/ ps \/ ch ) $=
      ( wo w3o ax-bdor df-3or bd0r ) ABGZCGABCHLCABDEIFIABCJK $.

    $( A conjunction of three bounded formulas is bounded.  (Contributed by BJ,
       3-Oct-2019.) $)
    bd3an $p |- Bdd ( ph /\ ps /\ ch ) $=
      ( wa w3a ax-bdan df-3an bd0r ) ABGZCGABCHLCABDEIFIABCJK $.
  $}

  ${
    bdth.1 $e |- ph $.
    $( A truth (a (closed) theorem) is a bounded formula.  (Contributed by BJ,
       6-Oct-2019.) $)
    bdth $p |- Bdd ph $=
      ( vx weq wi ax-bdeq ax-bdim id 2th bd0 ) CCDZKEZAKKCCFZMGLAKHBIJ $.
  $}

  $( The truth value ` T. ` is bounded.  (Contributed by BJ, 3-Oct-2019.) $)
  bdtru $p |- Bdd T. $=
    ( wtru tru bdth ) ABC $.

  $( The truth value ` F. ` is bounded.  (Contributed by BJ, 3-Oct-2019.) $)
  bdfal $p |- Bdd F. $=
    ( wtru wn wfal bdtru ax-bdn df-fal bd0r ) ABCADEFG $.

  ${
    bdnth.1 $e |- -. ph $.
    $( A falsity is a bounded formula.  (Contributed by BJ, 6-Oct-2019.) $)
    bdnth $p |- Bdd ph $=
      ( wfal bdfal fal 2false bd0 ) CADCAEBFG $.

    $( Alternate proof of ~ bdnth not using ~ bdfal .  Then, ~ bdfal can be
       proved from this theorem, using ~ fal .  The total number of proof steps
       would be 17 (for ~ bdnthALT ) + 3 = 20, which is more than 8 (for
       ~ bdfal ) + 9 (for ~ bdnth ) = 17.  (Contributed by BJ, 6-Oct-2019.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    bdnthALT $p |- Bdd ph $=
      ( wtru wn bdtru ax-bdn notnot trud 2false bd0 ) CDZACEFKAKDCGHBIJ $.
  $}

  ${
    bdxor.1 $e |- Bdd ph $.
    bdxor.2 $e |- Bdd ps $.
    $( The exclusive disjunction of two bounded formulas is bounded.
       (Contributed by BJ, 3-Oct-2019.) $)
    bdxor $p |- Bdd ( ph \/_ ps ) $=
      ( wo wa wn wxo ax-bdor ax-bdan ax-bdn df-xor bd0r ) ABEZABFZGZFABHNPABCDI
      OABCDJKJABLM $.
  $}

  ${
    $d x y $.  $d A y $.
    bj-bdcel.bd $e |- Bdd y = A $.
    $( Boundedness of a membership formula.  (Contributed by BJ,
       8-Dec-2019.) $)
    bj-bdcel $p |- Bdd A e. x $=
      ( cv wceq wrex wcel ax-bdex risset bd0r ) BECFZBAEZGCMHLBADIBCMJK $.
  $}

  ${
    bdab.1 $e |- Bdd ph $.
    $( Membership in a class defined by class abstraction using a bounded
       formula, is a bounded formula.  (Contributed by BJ, 3-Oct-2019.) $)
    bdab $p |- Bdd x e. { y | ph } $=
      ( wsb cv cab wcel ax-bdsb df-clab bd0r ) ACBEBFACGHACBDIABCJK $.
  $}

  ${
    bdcdeq.1 $e |- Bdd ph $.
    $( Conditional equality of a bounded formula is a bounded formula.
       (Contributed by BJ, 16-Oct-2019.) $)
    bdcdeq $p |- Bdd CondEq ( x = y -> ph ) $=
      ( weq wi wcdeq ax-bdeq ax-bdim df-cdeq bd0r ) BCEZAFABCGLABCHDIABCJK $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Bounded classes
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

  In line with our definitions of classes as extensions of predicates, it is
  useful to define a predicate for bounded classes, which is done in ~ df-bdc .
  Note that this notion is only a technical device which can be used to shorten
  proofs of (semantic) boundedness of formulas.

  As will be clear by the end of this subsection (see for instance ~ bdop ),
  one can prove the boundedness of any concrete term using only setvars and
  bounded formulas, for instance,
  ` |- Bdd ph => `
  ` |- Bdd_ <. { x | ph } , ( { y , suc z } X. <. t , (/) >. ) >. ` .
  The proofs are long since one has to prove boundedness at each step of the
  construction, without being able to prove general theorems like
  ` |- Bdd_ A => |- Bdd_ { A } ` .

$)

  $( Symbol for the predicate ` Bdd_ ` . $)
  $c Bdd_ $.

  $( Syntax for the predicate ` Bdd_ ` . $)
  wbdc $a wff Bdd_ A $.

  ${
    $d x A $.
    $( Define a bounded class as one such that membership in this class is a
       bounded formula.  (Contributed by BJ, 3-Oct-2019.) $)
    df-bdc $a |- ( Bdd_ A <-> A. x Bdd x e. A ) $.
  $}

  ${
    $d x A $.  $d x B $.
    bdceq.1 $e |- A = B $.
    $( Equality property for the predicate ` Bdd_ ` .  (Contributed by BJ,
       3-Oct-2019.) $)
    bdceq $p |- ( Bdd_ A <-> Bdd_ B ) $=
      ( vx cv wcel wbd wal wbdc eleq2i bdeq albii df-bdc 3bitr4i ) DEZAFZGZDHOB
      FZGZDHAIBIQSDPRABOCJKLDAMDBMN $.
  $}

  ${
    bdceqi.min $e |- Bdd_ A $.
    bdceqi.maj $e |- A = B $.
    $( A class equal to a bounded one is bounded.  Note the use of ~ ax-ext .
       See also ~ bdceqir .  (Contributed by BJ, 3-Oct-2019.) $)
    bdceqi $p |- Bdd_ B $=
      ( wbdc bdceq mpbi ) AEBECABDFG $.
  $}

  ${
    bdceqir.min $e |- Bdd_ A $.
    bdceqir.maj $e |- B = A $.
    $( A class equal to a bounded one is bounded.  Stated with a commuted
       (compared with ~ bdceqi ) equality in the hypothesis, to work better
       with definitions ( ` B ` is the definiendum that one wants to prove
       bounded; see comment of ~ bd0r ).  (Contributed by BJ, 3-Oct-2019.) $)
    bdceqir $p |- Bdd_ B $=
      ( eqcomi bdceqi ) ABCBADEF $.
  $}

  ${
    $d x A $.
    $( The belonging of a setvar in a bounded class is a bounded formula.
       (Contributed by BJ, 3-Oct-2019.) $)
    bdel $p |- ( Bdd_ A -> Bdd x e. A ) $=
      ( wbdc cv wcel wbd wal df-bdc sp sylbi ) BCADBEFZAGKABHKAIJ $.
  $}

  ${
    $d x A $.
    bdeli.1 $e |- Bdd_ A $.
    $( Inference associated with ~ bdel .  Its converse is ~ bdelir .
       (Contributed by BJ, 3-Oct-2019.) $)
    bdeli $p |- Bdd x e. A $=
      ( wbdc cv wcel wbd bdel ax-mp ) BDAEBFGCABHI $.
  $}

  ${
    $d x A $.
    bdelir.1 $e |- Bdd x e. A $.
    $( Inference associated with ~ df-bdc .  Its converse is ~ bdeli .
       (Contributed by BJ, 3-Oct-2019.) $)
    bdelir $p |- Bdd_ A $=
      ( wbdc cv wcel wbd df-bdc mpgbir ) BDAEBFGAABHCI $.
  $}

  ${
    $d x y $.
    $( A setvar is a bounded class.  (Contributed by BJ, 3-Oct-2019.) $)
    bdcv $p |- Bdd_ x $=
      ( vy cv ax-bdel bdelir ) BACBADE $.
  $}

  ${
    $d y x $.  $d y ph $.
    bdcab.1 $e |- Bdd ph $.
    $( A class defined by class abstraction using a bounded formula is bounded.
       (Contributed by BJ, 6-Oct-2019.) $)
    bdcab $p |- Bdd_ { x | ph } $=
      ( vy cab bdab bdelir ) DABEADBCFG $.
  $}

  ${
    $d y x $.  $d y ph $.
    bdph.1 $e |- Bdd_ { x | ph } $.
    $( A formula which defines (by class abstraction) a bounded class is
       bounded.  (Contributed by BJ, 6-Oct-2019.) $)
    bdph $p |- Bdd ph $=
      ( vy wsb cv cab wcel bdeli df-clab bd0 ax-bdsb sbid2v ) ABDEZDBEANDBDFABG
      ZHNDOCIADBJKLADBMK $.
  $}

  ${
    $d x ps $.  $d y ph $.
    bds.bd $e |- Bdd ph $.
    bds.1 $e |- ( x = y -> ( ph <-> ps ) ) $.
    $( Boundedness of a formula resulting from implicit substitution in a
       bounded formula.  Note that the proof does not use ~ ax-bdsb ;
       therefore, using implicit instead of explicit substitution when
       boundedness is important, one might avoid using ~ ax-bdsb .
       (Contributed by BJ, 19-Nov-2019.) $)
    bds $p |- Bdd ps $=
      ( cab bdcab cbvabv bdceqi bdph ) BDACGBDGACEHABCDFIJK $.
  $}

  ${
    $d x A $.
    bdcrab.1 $e |- Bdd_ A $.
    bdcrab.2 $e |- Bdd ph $.
    $( A class defined by restricted abstraction from a bounded class and a
       bounded formula is bounded.  (Contributed by BJ, 3-Oct-2019.) $)
    bdcrab $p |- Bdd_ { x e. A | ph } $=
      ( cv wcel wa cab crab bdeli ax-bdan bdcab df-rab bdceqir ) BFCGZAHZBIABCJ
      QBPABCDKELMABCNO $.
  $}

  $( Inequality of two setvars is a bounded formula.  (Contributed by BJ,
     16-Oct-2019.) $)
  bdne $p |- Bdd x =/= y $=
    ( weq wn cv wne ax-bdeq ax-bdn df-ne bd0r ) ABCZDAEZBEZFKABGHLMIJ $.

  ${
    $d x A $.
    bdnel.1 $e |- Bdd_ A $.
    $( Non-membership of a setvar in a bounded formula is a bounded formula.
       (Contributed by BJ, 16-Oct-2019.) $)
    bdnel $p |- Bdd x e/ A $=
      ( cv wcel wn wnel bdeli ax-bdn df-nel bd0r ) ADZBEZFLBGMABCHILBJK $.
  $}

  ${
    $d x y z $.  $d ph z $.
    bdreu.1 $e |- Bdd ph $.
    $( Boundedness of existential uniqueness.

       Remark regarding restricted quantifiers: the formula ` A. x e. A ph `
       need not be bounded even if ` A ` and ` ph ` are.  Indeed, ` _V ` is
       bounded by ~ bdcvv , and ` |- ( A. x e. _V ph <-> A. x ph ) ` (in
       minimal propositional calculus), so by ~ bd0 , if ` A. x e. _V ph ` were
       bounded when ` ph ` is bounded, then ` A. x ph ` would be bounded as
       well when ` ph ` is bounded, which is not the case.  The same remark
       holds with ` E. , E! , E* ` .  (Contributed by BJ, 16-Oct-2019.) $)
    bdreu $p |- Bdd E! x e. y ph $=
      ( vz cv wrex wi wral wa wreu ax-bdex ax-bdeq ax-bdim ax-bdal ax-bdan reu3
      weq bd0r ) ABCFZGZABERZHZBTIZETGZJABTKUAUEABCDLUDECUCBCAUBDBEMNOLPABETQS
      $.
  $}

  ${
    $d x y $.
    bdrmo.1 $e |- Bdd ph $.
    $( Boundedness of existential at-most-one.  (Contributed by BJ,
       16-Oct-2019.) $)
    bdrmo $p |- Bdd E* x e. y ph $=
      ( cv wrex wreu wi wrmo ax-bdex bdreu ax-bdim rmo5 bd0r ) ABCEZFZABOGZHABO
      IPQABCDJABCDKLABOMN $.
  $}

  $( The universal class is bounded.  The formulation may sound strange, but
     recall that here, "bounded" means " ` Delta0 ` ".  (Contributed by BJ,
     3-Oct-2019.) $)
  bdcvv $p |- Bdd_ _V $=
    ( vx cvv cv wcel vex bdth bdelir ) ABACBDAEFG $.

  ${
    bdcsbc.1 $e |- Bdd ph $.
    $( A formula resulting from proper substitution of a setvar for a setvar in
       a bounded formula is bounded.  See also ~ bdsbcALT .  (Contributed by
       BJ, 16-Oct-2019.) $)
    bdsbc $p |- Bdd [. y / x ]. ph $=
      ( wsb cv wsbc ax-bdsb sbsbc bd0 ) ABCEABCFGABCDHABCIJ $.

    $( Alternate proof of ~ bdsbc .  (Contributed by BJ, 16-Oct-2019.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    bdsbcALT $p |- Bdd [. y / x ]. ph $=
      ( cv cab wcel wsbc bdab df-sbc bd0r ) CEZABFGABLHACBDIABLJK $.
  $}

  ${
    $d x z $.  $d y z $.  $d A z $.
    bdccsb.1 $e |- Bdd_ A $.
    $( A class resulting from proper substitution of a setvar for a setvar in a
       bounded class is bounded.  (Contributed by BJ, 16-Oct-2019.) $)
    bdccsb $p |- Bdd_ [_ y / x ]_ A $=
      ( vz cv wcel wsbc cab csb bdeli bdsbc bdcab df-csb bdceqir ) EFCGZABFZHZE
      IAQCJREPABECDKLMAEQCNO $.
  $}

  ${
    $d x A $.  $d x B $.
    bdcdif.1 $e |- Bdd_ A $.
    bdcdif.2 $e |- Bdd_ B $.
    $( The difference of two bounded classes is bounded.  (Contributed by BJ,
       3-Oct-2019.) $)
    bdcdif $p |- Bdd_ ( A \ B ) $=
      ( vx cv wcel wn wa cab cdif bdeli ax-bdn ax-bdan bdcab df-dif bdceqir ) E
      FZAGZRBGZHZIZEJABKUBESUAEACLTEBDLMNOEABPQ $.

    $( The union of two bounded classes is bounded.  (Contributed by BJ,
       3-Oct-2019.) $)
    bdcun $p |- Bdd_ ( A u. B ) $=
      ( vx cv wcel wo cab cun bdeli ax-bdor bdcab df-un bdceqir ) EFZAGZPBGZHZE
      IABJSEQREACKEBDKLMEABNO $.

    $( The intersection of two bounded classes is bounded.  (Contributed by BJ,
       3-Oct-2019.) $)
    bdcin $p |- Bdd_ ( A i^i B ) $=
      ( vx cv wcel wa cab cin bdeli ax-bdan bdcab df-in bdceqir ) EFZAGZPBGZHZE
      IABJSEQREACKEBDKLMEABNO $.
  $}

  ${
    $d y x $.  $d y A $.
    bdss.1 $e |- Bdd_ A $.
    $( The inclusion of a setvar in a bounded class is a bounded formula.
       Note: apparently, we cannot prove from the present axioms that equality
       of two bounded classes is a bounded formula.  (Contributed by BJ,
       3-Oct-2019.) $)
    bdss $p |- Bdd x C_ A $=
      ( vy cv wcel wral wss bdeli ax-bdal dfss3 bd0r ) DEBFZDAEZGNBHMDADBCIJDNB
      KL $.
  $}

  $( The empty class is bounded.  See also ~ bdcnulALT .  (Contributed by BJ,
     3-Oct-2019.) $)
  bdcnul $p |- Bdd_ (/) $=
    ( vx c0 cv wcel noel bdnth bdelir ) ABACZBDHEFG $.

  $( Alternate proof of ~ bdcnul .  Similarly, for the next few theorems
     proving boundedness of a class, one can either use their definition
     followed by ~ bdceqir , or use the corresponding characterizations of its
     elements followed by ~ bdelir .  (Contributed by BJ, 3-Oct-2019.)
     (Proof modification is discouraged.)  (New usage is discouraged.) $)
  bdcnulALT $p |- Bdd_ (/) $=
    ( cvv cdif c0 bdcvv bdcdif df-nul bdceqir ) AABCAADDEFG $.

  ${
    $( Boundedness of the formula expressing that a setvar is equal to the
       empty class.  (Contributed by BJ, 21-Nov-2019.) $)
    bdeq0 $p |- Bdd x = (/) $=
      ( cv c0 wss wceq bdcnul bdss 0ss eqss mpbiran2 bd0r ) ABZCDZLCEZACFGNMCLD
      LHLCIJK $.
  $}

  ${
    $d x y $.
    $( Boundedness of the formula "the empty set belongs to the setvar ` x ` ".
       (Contributed by BJ, 30-Nov-2019.) $)
    bj-bd0el $p |- Bdd (/) e. x $=
      ( vy c0 bdeq0 bj-bdcel ) ABCBDE $.
  $}

  ${
    $d x A $.
    bdcpw.1 $e |- Bdd_ A $.
    $( The power class of a bounded class is bounded.  (Contributed by BJ,
       3-Oct-2019.) $)
    bdcpw $p |- Bdd_ ~P A $=
      ( vx cv wss cab cpw bdss bdcab df-pw bdceqir ) CDAEZCFAGLCCABHICAJK $.
  $}

  ${
    $d x y $.
    $( The singleton of a setvar is bounded.  (Contributed by BJ,
       16-Oct-2019.) $)
    bdcsn $p |- Bdd_ { x } $=
      ( vy weq cab cv csn ax-bdeq bdcab df-sn bdceqir ) BACZBDAEZFKBBAGHBLIJ $.
  $}

  ${
    $( The pair of two setvars is bounded.  (Contributed by BJ,
       16-Oct-2019.) $)
    bdcpr $p |- Bdd_ { x , y } $=
      ( cv csn cun cpr bdcsn bdcun df-pr bdceqir ) ACZDZBCZDZEKMFLNAGBGHKMIJ $.
  $}

  ${
    $( The unordered triple of three setvars is bounded.  (Contributed by BJ,
       16-Oct-2019.) $)
    bdctp $p |- Bdd_ { x , y , z } $=
      ( cv cpr csn cun ctp bdcpr bdcsn bdcun df-tp bdceqir ) ADZBDZEZCDZFZGNOQH
      PRABICJKNOQLM $.
  $}

  ${
    $d x A $.
    bdsnss.1 $e |- Bdd_ A $.
    $( Inclusion of a singleton of a setvar in a bounded class is a bounded
       formula.  (Contributed by BJ, 16-Oct-2019.) $)
    bdsnss $p |- Bdd { x } C_ A $=
      ( cv wcel csn wss bdeli vex snss bd0 ) ADZBELFBGABCHLBAIJK $.
  $}

  ${
    $d x y $.
    $( Equality of a setvar with a singleton of a setvar is a bounded formula.
       (Contributed by BJ, 16-Oct-2019.) $)
    bdvsn $p |- Bdd x = { y } $=
      ( cv csn wss wa wceq bdcsn bdss bdcv bdsnss ax-bdan eqss bd0r ) ACZBCDZEZ
      POEZFOPGQRAPBHIBOAJKLOPMN $.
  $}

  ${
    $d z x $.  $d z y $.
    $( The ordered pair of two setvars is a bounded class.  (Contributed by BJ,
       21-Nov-2019.) $)
    bdop $p |- Bdd_ <. x , y >. $=
      ( vz cv cop csn wceq cpr wo wcel bdvsn wss bdcpr ax-bdel ax-bdan vex ssel
      wa mpi bd0r bdss prid1 prid2 jca prssi impbii eqss ax-bdor elop bdelir )
      CADZBDZEZCDZUKFGZUNUKULHZGZIUNUMJUOUQCAKUNUPLZUPUNLZRUQURUSCUPABMUAUKUNJZ
      ULUNJZRZUSUTVAACNBCNOUSVBUSUTVAUSUKUPJUTUKULAPZUBUPUNUKQSUSULUPJVAUKULBPZ
      UCUPUNULQSUDUKULUNUEUFTOUNUPUGTUHUNUKULCPVCVDUITUJ $.
  $}

  ${
    $d x y z $.
    $( The union of a setvar is a bounded class.  (Contributed by BJ,
       15-Oct-2019.) $)
    bdcuni $p |- Bdd_ U. x $=
      ( vy vz wel wa wex cab cv cuni ax-bdel ax-bdex bdcab df-rex exancom bitri
      wrex abbii bdceqi df-uni bdceqir ) BCDZCADZECFZBGZAHZIUACUEPZBGUDUFBUACAB
      CJKLUFUCBUFUBUAECFUCUACUEMUBUACNOQRBCUEST $.
  $}

  ${
    $d x y z $.
    $( The intersection of a setvar is a bounded class.  (Contributed by BJ,
       16-Oct-2019.) $)
    bdcint $p |- Bdd_ |^| x $=
      ( vz vy wel wi wal cab cint wral ax-bdel ax-bdal df-ral bd0 bdcab bdceqir
      cv df-int ) BADCBDZEBFZCGAPZHSCRBTISRBACBJKRBTLMNCBTQO $.
  $}

  ${
    $d x y z $.  $d z A $.
    bdciun.1 $e |- Bdd_ A $.
    $( The indexed union of a bounded class with a setvar indexing set is a
       bounded class.  (Contributed by BJ, 16-Oct-2019.) $)
    bdciun $p |- Bdd_ U_ x e. y A $=
      ( vz cv wcel wrex cab ciun bdeli ax-bdex bdcab df-iun bdceqir ) EFCGZABFZ
      HZEIAQCJREPABECDKLMAEQCNO $.

    $( The indexed intersection of a bounded class with a setvar indexing set
       is a bounded class.  (Contributed by BJ, 16-Oct-2019.) $)
    bdciin $p |- Bdd_ |^|_ x e. y A $=
      ( vz cv wcel wral cab ciin bdeli ax-bdal bdcab df-iin bdceqir ) EFCGZABFZ
      HZEIAQCJREPABECDKLMAEQCNO $.
  $}

  $( The successor of a setvar is a bounded class.  (Contributed by BJ,
     16-Oct-2019.) $)
  bdcsuc $p |- Bdd_ suc x $=
    ( cv csn cun csuc bdcv bdcsn bdcun df-suc bdceqir ) ABZKCZDKEKLAFAGHKIJ $.

  ${
    $d x y $.
    $( Boundedness of the formula expressing that a setvar is equal to the
       successor of another.  (Contributed by BJ, 21-Nov-2019.) $)
    bdeqsuc $p |- Bdd x = suc y $=
      ( cv csuc wss wa wceq bdcsuc bdss csn cun bdcv bdsnss ax-bdan unss df-suc
      bd0 sseq1i bd0r eqss ) ACZBCZDZEZUCUAEZFUAUCGUDUEAUCBHIUBUBJZKZUAEZUEUBUA
      EZUFUAEZFUHUIUJBUAALZIBUAUKMNUBUFUAOQUCUGUAUBPRSNUAUCTS $.
  $}

  ${
    $d x z $.  $d y z $.
    $( Boundedness of the formula "the successor of the setvar ` x ` belongs to
       the setvar ` y ` ".  (Contributed by BJ, 30-Nov-2019.) $)
    bj-bdsucel $p |- Bdd suc x e. y $=
      ( vz cv csuc bdeqsuc bj-bdcel ) BCADECAFG $.
  $}

  ${
    $d x y z t $.  $d z t ph $.
    bdcriota.bd $e |- Bdd ph $.
    bdcriota.ex $e |- E! x e. y ph $.
    $( A class given by a restricted definition binder is bounded, under the
       given hypotheses.  (Contributed by BJ, 24-Nov-2019.) $)
    bdcriota $p |- Bdd_ ( iota_ x e. y ph ) $=
      ( vz vt wel wa cio cv cab wi wal wsb bicomi albii bitri imbi1i bdceqir
      crio cint wcel wral ax-bdsb ax-bdel ax-bdim ax-bdal df-ral impexp clelsb3
      sban anbi1i df-clab bd0 df-int weu wceq wreu df-reu mpbi iotaint df-riota
      bdcab ax-mp ) BCHZAIZBJZABCKZUAVGBLZUBZVHFKVJUCZGFHZMZFNZGLVKVOGABFOZVMMZ
      FVIUDZVOVQFCVPVMABFDUEGFUFUGUHVRVGBFOZVMMZFNZVOVRFCHZVPIZVMMZFNZWAVRWBVQM
      ZFNWEVQFVIUIWFWDFWDWFWBVPVMUJPQRWDVTFWCVSVMVSWCVSVFBFOZVPIWCVFABFULWGWBVP
      FBVIUKUMRPSQRVTVNFVSVLVMVLVSVGFBUNPSQRUOVDGFVJUPTVGBUQZVHVKURABVIUSWHEABV
      IUTVAVGBVBVETABVIVCT $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  CZF: Bounded separation
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  In this section, we state the axiom scheme of bounded separation, which is
  part of CZF set theory.

$)

  ${
    $d a b x $.  $d a b ph $.
    ax-bdsep.1 $e |- Bdd ph $.
    $( Axiom scheme of bounded (or restricted, or ` Delta0 ` ) separation.  It
       is stated with all possible disjoint variable conditions, to show that
       this weak form is sufficient.  For the full axiom of separation, see
       ~ ax-sep .  (Contributed by BJ, 5-Oct-2019.) $)
    ax-bdsep $a |- A. a E. b A. x ( x e. b <-> ( x e. a /\ ph ) ) $.
  $}

  ${
    $d a b x $.  $d a b ph $.
    bdsep1.1 $e |- Bdd ph $.
    $( Version of ~ ax-bdsep without initial universal quantifier.
       (Contributed by BJ, 5-Oct-2019.) $)
    bdsep1 $p |- E. b A. x ( x e. b <-> ( x e. a /\ ph ) ) $=
      ( wel wa wb wal wex ax-bdsep spi ) BDFBCFAGHBIDJCABCDEKL $.
  $}

  ${
    $d a b x y $.  $d b y ph $.
    bdsep2.1 $e |- Bdd ph $.
    $( Version of ~ ax-bdsep with one DV condition removed and without initial
       universal quantifier.  Use ~ bdsep1 when sufficient.  (Contributed by
       BJ, 5-Oct-2019.) $)
    bdsep2 $p |- E. b A. x ( x e. b <-> ( x e. a /\ ph ) ) $=
      ( vy wel wa wb wal wex cv eleq2 anbi1d bibi2d albidv exbidv bdsep1 chvarv
      weq ) BDGZBFGZAHZIZBJZDKUABCGZAHZIZBJZDKFCFCTZUEUIDUJUDUHBUJUCUGUAUJUBUFA
      FLCLBLMNOPQABFDERS $.
  $}

  ${
    $d a b x y $.  $d y ph $.
    bdsepnft.1 $e |- Bdd ph $.
    $( Closed form of ~ bdsepnf .  Version of ~ ax-bdsep with one DV condition
       removed, the other DV condition replaced by a non-freeness antecedent,
       and without initial universal quantifier.  Use ~ bdsep1 when sufficient.
       (Contributed by BJ, 19-Oct-2019.) $)
    bdsepnft $p |- ( A. x F/ b ph ->
                                 E. b A. x ( x e. b <-> ( x e. a /\ ph ) ) ) $=
      ( vy wnf wal wel wa wb wex bdsep2 nfnf1 nfal nfa1 nfvd nfv a1i sp nfan ex
      nfand nfbid nfald weq elequ2 adantl bibi1d albid cbvexd mpbii ) ADGZBHZBF
      IZBCIZAJZKZBHZFLBDIZUQKZBHZDLABCFEMUNUSVBFDUMDBADNOUNURDBUMBPZUNUOUQDUNUO
      DQUNUPADUPDGUNUPDRSUMBTUCUDUEUNFDUFZUSVBKUNVDJZURVABUNVDBVCVDBRUAVEUOUTUQ
      VDUOUTKUNFDBUGUHUIUJUBUKUL $.
  $}

  ${
    $d a b x y $.  $d y ph $.
    bdsepnf.nf $e |- F/ b ph $.
    bdsepnf.1 $e |- Bdd ph $.
    $( Version of ~ ax-bdsep with one DV condition removed, the other DV
       condition replaced by a non-freeness hypothesis, and without initial
       universal quantifier.  See also ~ bdsepnfALT .  Use ~ bdsep1 when
       sufficient.  (Contributed by BJ, 5-Oct-2019.) $)
    bdsepnf $p |- E. b A. x ( x e. b <-> ( x e. a /\ ph ) ) $=
      ( wnf wel wa wb wal wex bdsepnft mpg ) ADGBDHBCHAIJBKDLBABCDFMEN $.

    $( Alternate proof of ~ bdsepnf , not using ~ bdsepnft .  (Contributed by
       BJ, 5-Oct-2019.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    bdsepnfALT $p |- E. b A. x ( x e. b <-> ( x e. a /\ ph ) ) $=
      ( vy wel wa wb wal wex bdsep2 nfv nfan nfbi nfal weq elequ2 bibi1d albidv
      cbvex mpbi ) BGHZBCHZAIZJZBKZGLBDHZUFJZBKZDLABCGFMUHUKGDUGDBUDUFDUDDNUEAD
      UEDNEOPQUKGNGDRZUGUJBULUDUIUFGDBSTUAUBUC $.
  $}

  ${
    $d x y z A $.  $d y z ph $.
    bdzfauscl.bd $e |- Bdd ph $.
    $( Closed form of the version of ~ zfauscl for bounded formulas using
       bounded separation.  (Contributed by BJ, 13-Nov-2019.) $)
    bdzfauscl $p |- ( A e. V -> E. y A. x ( x e. y <-> ( x e. A /\ ph ) ) ) $=
      ( vz wel wa wb wal wex cv wcel wceq eleq2 anbi1d bibi2d albidv exbidv
      bdsep1 vtoclg ) BCHZBGHZAIZJZBKZCLUCBMZDNZAIZJZBKZCLGDEGMZDOZUGULCUNUFUKB
      UNUEUJUCUNUDUIAUMDUHPQRSTABGCFUAUB $.
  $}

  ${
    $d x ph z $.  $d x y z $.
    bdbm1.3ii.bd $e |- Bdd ph $.
    bdbm1.3ii.1 $e |- E. x A. y ( ph -> y e. x ) $.
    $( Bounded version of ~ bm1.3ii .  (Contributed by BJ, 5-Oct-2019.)
       (Proof modification is discouraged.) $)
    bdbm1.3ii $p |- E. x A. y ( y e. x <-> ph ) $=
      ( vz wel wi wal wa wex weq elequ2 imbi2d albidv cbvexv mpbi bdsep1 pm3.2i
      wb exan 19.42v bimsc1 alanimi eximi sylbir exlimiv ax-mp ) ACFGZHZCIZCBGZ
      UIAJTZCIZBKZJZFKULATZCIZBKZUKUOFUKFKZUOAULHZCIZBKUTEVBUKBFBFLZVAUJCVCULUI
      ABFCMNOPQACFBDRSUAUPUSFUPUKUNJZBKUSUKUNBUBVDURBUJUMUQCAUIULUCUDUEUFUGUH
      $.
  $}

  ${
    $d x y z $.
    $( Lemma for ~ bj-axempty and ~ bj-axempty2 .  (Contributed by BJ,
       25-Oct-2020.)  (Proof modification is discouraged.)  Use ~ ax-nul
       instead.  (New usage is discouraged.) $)
    bj-axemptylem $p |- E. x A. y ( y e. x -> F. ) $=
      ( vz wel wfal wa wb wal wi bdfal bdsep1 bi1 falimd syl6 alimi eximii ) BA
      DZBCDZEFZGZBHQEIZBHAEBCAJKTUABTQSEQSLREMNOP $.
  $}

  ${
    $d x y $.
    $( Axiom of the empty set from bounded separation.  It is provable from
       bounded separation since the intuitionistic FOL used in iset.mm assumes
       a non-empty universe.  See ~ axnul .  (Contributed by BJ, 25-Oct-2020.)
       (Proof modification is discouraged.)  Use ~ ax-nul instead.
       (New usage is discouraged.) $)
    bj-axempty $p |- E. x A. y e. x F. $=
      ( wfal cv wral wex wel wi wal bj-axemptylem df-ral exbii mpbir ) CBADZEZA
      FBAGCHBIZAFABJOPACBNKLM $.
  $}

  ${
    $d x y $.
    $( Axiom of the empty set from bounded separation, alternate version to
       ~ bj-axempty .  (Contributed by BJ, 27-Oct-2020.)
       (Proof modification is discouraged.)  Use ~ ax-nul instead.
       (New usage is discouraged.) $)
    bj-axempty2 $p |- E. x A. y -. y e. x $=
      ( wel wn wal wex wfal wi bj-axemptylem dfnot albii exbii mpbir ) BACZDZBE
      ZAFNGHZBEZAFABIPRAOQBNJKLM $.
  $}

  ${
    $d x y z $.
    $( ~ nalset from bounded separation.  (Contributed by BJ, 18-Nov-2019.)
       (Proof modification is discouraged.) $)
    bj-nalset $p |- -. E. x A. y y e. x $=
      ( vz wel wn wex wal alexnim wa wb ax-bdel ax-bdn bdsep1 weq elequ1 elequ2
      bitrd notbid anbi12d bibi12d spv pclem6 syl eximii mpg ) BADZEZBFUFBGAFEA
      UFABHCBDZCADZCCDZEZIZJZCGZUGBUKCABUJCCKLMUNBBDZUFUOEZIZJZUGUMURCBCBNZUHUO
      ULUQCBBOUSUIUFUKUPCBAOUSUJUOUSUJBCDUOCBCOCBBPQRSTUAUOUFUBUCUDUE $.
  $}

  ${
    $d x y $.
    $( ~ vprc from bounded separation.  (Contributed by BJ, 18-Nov-2019.)
       (Proof modification is discouraged.) $)
    bj-vprc $p |- -. _V e. _V $=
      ( vx vy cvv wcel cv wceq wex wal bj-nalset wb vex tbt albii dfcleq bitr4i
      exbii mtbi isset mtbir ) CCDAEZCFZAGZBEZTDZBHZAGUBABIUEUAAUEUDUCCDZJZBHUA
      UDUGBUFUDBKLMBTCNOPQACRS $.
  $}

  $( ~ nvel from bounded separation.  (Contributed by BJ, 18-Nov-2019.)
     (Proof modification is discouraged.) $)
  bj-nvel $p |- -. _V e. A $=
    ( cvv wcel bj-vprc elex mto ) BACBBCDBAEF $.

  $( ~ vnex from bounded separation.  (Contributed by BJ, 18-Nov-2019.)
     (Proof modification is discouraged.) $)
  bj-vnex $p |- -. E. x x = _V $=
    ( cvv wcel cv wceq wex bj-vprc isset mtbi ) BBCADBEAFGABHI $.

  ${
    $d A x y $.  $d B x y $.
    bdinex1.bd $e |- Bdd_ B $.
    bdinex1.1 $e |- A e. _V $.
    $( Bounded version of ~ inex1 .  (Contributed by BJ, 13-Nov-2019.)
       (Proof modification is discouraged.) $)
    bdinex1 $p |- ( A i^i B ) e. _V $=
      ( vx vy cin cv wceq wex wel wcel wa wal cvv bdeli bdzfauscl ax-mp dfcleq
      wb elin bibi2i albii bitri exbii mpbir issetri ) EABGZEHZUHIZEJFEKZFHZALU
      LBLZMZTZFNZEJZAOLUQDUMFEAOFBCPQRUJUPEUJUKULUHLZTZFNUPFUIUHSUSUOFURUNUKULA
      BUAUBUCUDUEUFUG $.
  $}

  ${
    bdinex2.bd $e |- Bdd_ B $.
    bdinex2.1 $e |- A e. _V $.
    $( Bounded version of ~ inex2 .  (Contributed by BJ, 13-Nov-2019.)
       (Proof modification is discouraged.) $)
    bdinex2 $p |- ( B i^i A ) e. _V $=
      ( cin cvv incom bdinex1 eqeltri ) BAEABEFBAGABCDHI $.
  $}

  ${
    $d x A $.  $d x B $.
    bdinex1g.bd $e |- Bdd_ B $.
    $( Bounded version of ~ inex1g .  (Contributed by BJ, 13-Nov-2019.)
       (Proof modification is discouraged.) $)
    bdinex1g $p |- ( A e. V -> ( A i^i B ) e. _V ) $=
      ( vx cv cin cvv wcel wceq ineq1 eleq1d vex bdinex1 vtoclg ) EFZBGZHIABGZH
      IEACPAJQRHPABKLPBDEMNO $.
  $}

  ${
    bdssex.bd $e |- Bdd_ A $.
    bdssex.1 $e |- B e. _V $.
    $( Bounded version of ~ ssex .  (Contributed by BJ, 13-Nov-2019.)
       (Proof modification is discouraged.) $)
    bdssex $p |- ( A C_ B -> A e. _V ) $=
      ( wss cin wceq cvv wcel df-ss bdinex2 eleq1 mpbii sylbi ) ABEABFZAGZAHIZA
      BJPOHIQBACDKOAHLMN $.
  $}

  ${
    bdssexi.bd $e |- Bdd_ A $.
    bdssexi.1 $e |- B e. _V $.
    bdssexi.2 $e |- A C_ B $.
    $( Bounded version of ~ ssexi .  (Contributed by BJ, 13-Nov-2019.)
       (Proof modification is discouraged.) $)
    bdssexi $p |- A e. _V $=
      ( wss cvv wcel bdssex ax-mp ) ABFAGHEABCDIJ $.
  $}

  ${
    $d x A $.  $d x B $.
    bdssexg.bd $e |- Bdd_ A $.
    $( Bounded version of ~ ssexg .  (Contributed by BJ, 13-Nov-2019.)
       (Proof modification is discouraged.) $)
    bdssexg $p |- ( ( A C_ B /\ B e. C ) -> A e. _V ) $=
      ( vx wcel wss cvv cv wi wceq sseq2 imbi1d vex bdssex vtoclg impcom ) BCFA
      BGZAHFZAEIZGZSJRSJEBCTBKUARSTBALMATDENOPQ $.
  $}

  ${
    bdssexd.1 $e |- ( ph -> B e. C ) $.
    bdssexd.2 $e |- ( ph -> A C_ B ) $.
    bdssexd.bd $e |- Bdd_ A $.
    $( Bounded version of ~ ssexd .  (Contributed by BJ, 13-Nov-2019.)
       (Proof modification is discouraged.) $)
    bdssexd $p |- ( ph -> A e. _V ) $=
      ( wss wcel cvv bdssexg syl2anc ) ABCHCDIBJIFEBCDGKL $.
  $}

  ${
    $d x A $.
    bdrabexg.bd $e |- Bdd ph $.
    bdrabexg.bdc $e |- Bdd_ A $.
    $( Bounded version of ~ rabexg .  (Contributed by BJ, 19-Nov-2019.)
       (Proof modification is discouraged.) $)
    bdrabexg $p |- ( A e. V -> { x e. A | ph } e. _V ) $=
      ( crab wss wcel cvv ssrab2 bdcrab bdssexg mpan ) ABCGZCHCDIOJIABCKOCDABCF
      ELMN $.
  $}

  ${
    $d x y z A $.  $d x y z B $.
    $( The intersection of two sets is a set, from bounded separation.
       (Contributed by BJ, 19-Nov-2019.)
       (Proof modification is discouraged.) $)
    bj-inex $p |- ( ( A e. V /\ B e. W ) -> ( A i^i B ) e. _V ) $=
      ( vx vy vz wcel cv wceq wex cin cvv elisset wal ax-17 19.29r sylan2 19.29
      wa sylan eximi ineq12 2eximi crab dfin5 vex ax-bdel bdcv bdrabexg eqeltri
      ax-mp eleq1 mpbii exlimivv syl 3syl syl2an ) ACHEIZAJZEKZFIZBJZFKZABLZMHZ
      BDHEACNFBDNVAVDTUTVDTZEKZUTVCTZFKZEKZVFVDVAVDEOVHVDEPUTVDEQRVGVJEUTUTFOVD
      VJUTFPUTVCFSUAUBVKUSVBLZVEJZFKEKVFVIVMEFUSAVBBUCUDVMVFEFVMVLMHVFVLGIVBHZG
      USUEZMGUSVBUFUSMHVOMHEUGVNGUSMGFUHEUIUJULUKVLVEMUMUNUOUPUQUR $.
  $}

  $( ~ intexr from bounded separation.  (Contributed by BJ, 18-Nov-2019.)
     (Proof modification is discouraged.) $)
  bj-intexr $p |- ( |^| A e. _V -> A =/= (/) ) $=
    ( cint cvv wcel c0 wceq bj-vprc inteq int0 syl6eq eleq1d mtbiri necon2ai )
    ABZCDZAEAEFZOCCDGPNCCPNEBCAEHIJKLM $.

  $( ~ intnexr from bounded separation.  (Contributed by BJ, 18-Nov-2019.)
     (Proof modification is discouraged.) $)
  bj-intnexr $p |- ( |^| A = _V -> -. |^| A e. _V ) $=
    ( cint cvv wceq wcel bj-vprc eleq1 mtbiri ) ABZCDICECCEFICCGH $.

  ${
    $d x z w $.  $d y z w $.
    $( Proof of ~ zfpair2 using only bounded separation.  (Contributed by BJ,
       5-Oct-2019.)  (Proof modification is discouraged.) $)
    bj-zfpair2 $p |- { x , y } e. _V $=
      ( vz vw cv cpr wceq wex wel weq wo wb wal ax-bdeq ax-bdor ax-pr bdbm1.3ii
      wcel dfcleq vex elpr bibi2i albii bitri exbii mpbir issetri ) CAEZBEZFZCE
      ZUJGZCHDCIZDAJZDBJZKZLZDMZCHUPCDUNUODANDBNOABCDPQULURCULUMDEZUJRZLZDMURDU
      KUJSVAUQDUTUPUMUSUHUIDTUAUBUCUDUEUFUG $.
  $}

  ${
    $d x y A $.  $d x y B $.  $d x W $.
    $( Proof of ~ prexg using only bounded separation.  (Contributed by BJ,
       5-Oct-2019.)  (Proof modification is discouraged.) $)
    bj-prexg $p |- ( ( A e. V /\ B e. W ) -> { A , B } e. _V ) $=
      ( vx vy wcel cpr cvv wi wceq preq2 eleq1d bj-zfpair2 vtoclg preq1 vtocleg
      cv syl5ib imp ) ACGBDGZABHZIGZUAUCJEACUAERZBHZIGZUDAKZUCUDFRZHZIGUFFBDUHB
      KUIUEIUHBUDLMEFNOUGUEUBIUDABPMSQT $.
  $}

  $( ~ snexg from bounded separation.  (Contributed by BJ, 5-Oct-2019.)
     (Proof modification is discouraged.) $)
  bj-snexg $p |- ( A e. V -> { A } e. _V ) $=
    ( wcel csn cpr cvv dfsn2 bj-prexg anidms syl5eqel ) ABCZADAAEZFAGKLFCAABBHI
    J $.

  ${
    bj-snex.1 $e |- A e. _V $.
    $( ~ snex from bounded separation.  (Contributed by BJ, 5-Oct-2019.)
       (Proof modification is discouraged.) $)
    bj-snex $p |- { A } e. _V $=
      ( cvv wcel csn bj-snexg ax-mp ) ACDAECDBACFG $.
  $}

  ${
    $d x A $.
    $( If a class is a set, then it is a member of a set.  (Copied from
       set.mm.)  (Contributed by BJ, 3-Apr-2019.) $)
    bj-sels $p |- ( A e. V -> E. x A e. x ) $=
      ( wcel cv csn wsbc snidg csb cvv bj-snexg sbcel2g syl wceq csbvarg eleq2d
      wb bitrd mpbird spesbcd ) BCDZBAEZDZABFZUAUCAUDGZBUDDZBCHUAUEBAUDUBIZDZUF
      UAUDJDZUEUHQBCKZAUDBUBJLMUAUGUDBUAUIUGUDNUJAUDJOMPRST $.
  $}

$(
  ${
    $d x y $.
    bdiinex.bd $e |- Bdd_ A $.
    @( Bounded version of a strengthening of ~ iinexgm .  (Contributed by BJ,
       13-Nov-2019.)  (Proof modification is discouraged.) @)
    bdiinex $p |- ( E. x e. y A e. V -> |^|_ x e. y A e. _V ) $=
    wcel.cA=cA wcel.cB=cV wph=wcel vx=vx vx.cv=vy cA=cv wph=wrex wps=? vx=vx
    vx.cv=vy cA=cv cB=cA wcel.cA=ciin wcel.cB=cvv wch=wcel wph=? wps=? wch=?
    wph=? wps=? wch=? syl.1=? vx=? cA=? cB=? cC=? syl.2=iinss jca.1=syl jca.2=?
    syl.1=jca vx=vx vx.cv=vy cA=cv cB=cA cA=ciin cB=? cC=? vx=vx vy=vy cA=cA
    bdciun.1=bdiinex.bd bdssexg.bd=bdciin syl.2=bdssexg bdiinex=syl $.
  $}
$)

  ${
    $d w x y z $.
    $( ~ axun2 from bounded separation.  (Contributed by BJ, 15-Oct-2019.)
       (Proof modification is discouraged.) $)
    bj-axun2 $p |- E. y A. z ( z e. y <-> E. w ( z e. w /\ w e. x ) ) $=
      ( wel wa wex cv wrex ax-bdel ax-bdex df-rex exancom bitri ax-un bdbm1.3ii
      bd0 ) CDEZDAEZFDGZBCRDAHZIZTRDACDJKUBSRFDGTRDUALSRDMNQABCDOP $.
  $}

  ${
    $d x y z $.
    $( ~ uniex2 from bounded separation.  (Contributed by BJ, 15-Oct-2019.)
       (Proof modification is discouraged.) $)
    bj-uniex2 $p |- E. y y = U. x $=
      ( vz cv cuni wceq wex wel wcel wb wal bdcuni bdeli wi wa zfun eluni exbii
      imbi1i mpbir albii bdbm1.3ii dfcleq ) BDZADZEZFZBGCBHZCDZUFIZJCKZBGUJBCCU
      FALMUJUHNZCKZBGUHBAHOBGZUHNZCKZBGBCAPUMUPBULUOCUJUNUHBUIUEQSUARTUBUGUKBCU
      DUFUCRT $.
  $}

  ${
    $d x y A $.
    bj-uniex.1 $e |- A e. _V $.
    $( ~ uniex from bounded separation.  (Contributed by BJ, 13-Nov-2019.)
       (Proof modification is discouraged.) $)
    bj-uniex $p |- U. A e. _V $=
      ( vx vy cv cuni cvv wcel wceq unieq eleq1d bj-uniex2 issetri vtocl ) CEZF
      ZGHAFZGHCABOAIPQGOAJKDPCDLMN $.
  $}

  ${
    $d x A $.
    $( ~ uniexg from bounded separation.  (Contributed by BJ, 13-Nov-2019.)
       (Proof modification is discouraged.) $)
    bj-uniexg $p |- ( A e. V -> U. A e. _V ) $=
      ( vx cv cuni cvv wcel wceq unieq eleq1d vex bj-uniex vtoclg ) CDZEZFGAEZF
      GCABNAHOPFNAIJNCKLM $.
  $}

  ${
    bj-unex.1 $e |- A e. _V $.
    bj-unex.2 $e |- B e. _V $.
    $( ~ unex from bounded separation.  (Contributed by BJ, 13-Nov-2019.)
       (Proof modification is discouraged.) $)
    bj-unex $p |- ( A u. B ) e. _V $=
      ( cpr cuni cun cvv unipr wcel bj-prexg mp2an bj-uniex eqeltrri ) ABEZFABG
      HABCDIOAHJBHJOHJCDABHHKLMN $.
  $}

  ${
    $d x y A $.  $d x y B $.
    bdunex.bd1 $e |- Bdd_ A $.
    bdunex.bd2 $e |- Bdd_ B $.
    $( Bounded version of ~ unexb .  (Contributed by BJ, 13-Nov-2019.)
       (Proof modification is discouraged.) $)
    bdunexb $p |- ( ( A e. _V /\ B e. _V ) <-> ( A u. B ) e. _V ) $=
      ( vx vy cvv wcel wa cun cv wceq uneq1 eleq1d vex bj-unex wss bdssexg mpan
      uneq2 vtocl2g ssun1 ssun2 jca impbii ) AGHZBGHZIABJZGHZEKZFKZJZGHAUKJZGHU
      IEFABGGUJALULUMGUJAUKMNUKBLUMUHGUKBATNUJUKEOFOPUAUIUFUGAUHQUIUFABUBAUHGCR
      SBUHQUIUGBAUCBUHGDRSUDUE $.
  $}

  ${
    $d x y A $.  $d y B $.
    $( ~ unexg from bounded separation.  (Contributed by BJ, 13-Nov-2019.)
       (Proof modification is discouraged.) $)
    bj-unexg $p |- ( ( A e. V /\ B e. W ) -> ( A u. B ) e. _V ) $=
      ( vx vy cv cun cvv wcel wceq wb uneq1 eleq1 syl uneq2 vex bj-unex vtocl2g
      ) EGZFGZHZIJZAUAHZIJZABHZIJZEFABCDTAKUBUDKUCUELTAUAMUBUDINOUABKUDUFKUEUGL
      UABAPUDUFINOTUAEQFQRS $.
  $}

  $( ~ sucexg from bounded separation.  (Contributed by BJ, 13-Nov-2019.)
     (Proof modification is discouraged.) $)
  bj-sucexg $p |- ( A e. V -> suc A e. _V ) $=
    ( wcel csn cvv cun csuc bj-snexg pm4.71i biimpi bj-unexg df-suc eleq1i 3syl
    wa biimpri ) ABCZQADZECZOZARFZECZAGZECZQTQSABHIJARBEKUDUBUCUAEALMPN $.

  ${
    bj-sucex.1 $e |- A e. _V $.
    $( ~ sucex from bounded separation.  (Contributed by BJ, 13-Nov-2019.)
       (Proof modification is discouraged.) $)
    bj-sucex $p |- suc A e. _V $=
      ( cvv wcel csuc bj-sucexg ax-mp ) ACDAECDBACFG $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Delta_0-classical logic
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  ${
    ax-bj-d0class.bd $e |- Bdd ph $.
    $( Axiom for ` Delta0 ` -classical logic.  (Contributed by BJ,
       2-Jan-2020.) $)
    ax-bj-d0cl $a |- DECID ph $.
  $}

  $( Equivalence property for negation.  TODO: minimize all theorems using
     ~ notbid and ~ notbii .  (Contributed by BJ, 27-Jan-2020.)
     (Proof modification is discouraged.) $)
  bj-notbi $p |- ( ( ph <-> ps ) -> ( -. ph <-> -. ps ) ) $=
    ( wb wn bi2 con3d bi1 impbid ) ABCZADBDIBAABEFIABABGFH $.

  ${
    bj-notbii.1 $e |- ( ph <-> ps ) $.
    $( Inference associated with ~ bj-notbi .  (Contributed by BJ,
       27-Jan-2020.)  (Proof modification is discouraged.) $)
    bj-notbii $p |- ( -. ph <-> -. ps ) $=
      ( wb wn bj-notbi ax-mp ) ABDAEBEDCABFG $.
  $}

  ${
    bj-notbid.1 $e |- ( ph -> ( ps <-> ch ) ) $.
    $( Deduction form of ~ bj-notbi .  (Contributed by BJ, 27-Jan-2020.)
       (Proof modification is discouraged.) $)
    bj-notbid $p |- ( ph -> ( -. ps <-> -. ch ) ) $=
      ( wb wn bj-notbi syl ) ABCEBFCFEDBCGH $.
  $}

  $( Equivalence property for ` DECID ` .  TODO: solve conflict with ~ dcbi ;
     minimize ~ dcbii and ~ dcbid with it, as well as theorems using those.
     (Contributed by BJ, 27-Jan-2020.)  (Proof modification is discouraged.) $)
  bj-dcbi $p |- ( ( ph <-> ps ) -> ( DECID ph <-> DECID ps ) ) $=
    ( wb wn wo wdc id bj-notbi orbi12d df-dc 3bitr4g ) ABCZAADZEBBDZEAFBFLABMNL
    GABHIAJBJK $.

  ${
    $d a x ph $.
    $( ` Delta0 ` -classical logic and separation implies classical logic.
       (Contributed by BJ, 2-Jan-2020.)
       (Proof modification is discouraged.) $)
    bj-d0clsepcl $p |- DECID ph $=
      ( va vx wdc wex c0 cv wcel wb csn wel wal 0ex bj-snex zfauscl wceq anbi1d
      wa eleq1 eximii bibi12d spcv snid biantrur bicomi bibi2i exbii ax-bj-d0cl
      mpbi bj-bd0el bj-dcbi mpbii bj-ex ax-mp ) ADZBEUOFBGZHZAIZUOBUQFFJZHZARZI
      ZBEURBECBKZCGZUSHZARZIZCLVBBACBUSFMNOVGVBCFMVDFPZVCUQVFVAVDFUPSVHVEUTAVDF
      USSQUAUBTVBURBVAAUQAVAUTAFMUCUDUEUFUGUIURUQDUOUQBUJUHUQAUKULTUOBUMUN $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Inductive classes and the class of natural numbers (finite ordinals)
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
$)

  $( Introduce constant for inductive classes. $)
  $c Ind $.

  $( Syntax for inductive classes. $)
  wind $a wff Ind A $.

  ${
    $d x A $.
    $( Define the property of being an inductive class.  (Contributed by BJ,
       30-Nov-2019.) $)
    df-bj-ind $a |- ( Ind A <-> ( (/) e. A /\ A. x e. A suc x e. A ) ) $.
  $}

  ${
    $d x A $.  $d x B $.
    $( A direct consequence of the definition of ` Ind ` .  (Contributed by BJ,
       30-Nov-2019.) $)
    bj-indsuc $p |- ( Ind A -> ( B e. A -> suc B e. A ) ) $=
      ( vx wind cv csuc wcel wral c0 df-bj-ind simprbi wceq suceq rspcv syl5com
      eleq1d ) ADZCEZFZAGZCAHZBAGBFZAGZQIAGUACAJKTUCCBARBLSUBARBMPNO $.
  $}

  ${
    $d x A $.  $d x B $.
    $( Equality property for ` Ind ` .  (Contributed by BJ, 30-Nov-2019.) $)
    bj-indeq $p |- ( A = B -> ( Ind A <-> Ind B ) ) $=
      ( vx wind c0 wcel cv csuc wral wa wceq df-bj-ind eleq2 raleqbi1dv anbi12d
      bicomd syl5rbb syl5bb ) ADEAFZCGHZAFZCAIZJZABKZBDZCALUEEBFZTBFZCBIZJUDUCC
      BLUDUFSUHUBUDSUFABEMPUDUBUHUAUGCABABTMNPOQR $.
  $}

  ${
    $d x y $.
    $( Boundedness of the formula "the setvar ` x ` is an inductive class".
       (Contributed by BJ, 30-Nov-2019.) $)
    bj-bdind $p |- Bdd Ind x $=
      ( vy c0 wcel csuc wral wind bj-bd0el bj-bdsucel ax-bdal ax-bdan df-bj-ind
      cv wa bd0r ) CAMZDZBMEPDZBPFZNPGQSAHRBABAIJKBPLO $.
  $}

  ${
    $d x y A $.
    $( The property of being an inductive class is closed under intersections.
       (Contributed by BJ, 30-Nov-2019.) $)
    bj-indint $p |- Ind |^| { x e. A | Ind x } $=
      ( vy cv wind crab cint c0 wcel csuc wral df-bj-ind simplbi rgenw elintrab
      wi 0ex mpbir bj-indsuc a2i ralimi vex bj-sucex 3imtr4i rgen mpbir2an ) AD
      ZEZABFGZEHUIIZCDZJZUIIZCUIKUJUHHUGIZPZABKUOABUHUNULUGIZCUGKCUGLMNUHAHBQOR
      UMCUIUHUKUGIZPZABKUHUPPZABKUKUIIUMURUSABUHUQUPUGUKSTUAUHAUKBCUBZOUHAULBUK
      UTUCOUDUECUILUF $.
  $}

  ${
    $d x A $.  $d x B $.
    $( If ` A ` is inductive and ` B ` is "inductive in ` A ` ", then
       ` ( A i^i B ) ` is inductive.  (Contributed by BJ, 25-Oct-2020.) $)
    bj-indind $p |- ( ( Ind A /\ ( (/) e. B /\
                A. x e. A ( x e. B -> suc x e. B ) ) ) -> Ind ( A i^i B ) ) $=
      ( wind c0 wcel cv csuc wi wral wa cin df-bj-ind id biimpri wal syl df-ral
      elin sylibr sylanb r19.26 simpl simpr syl6an ralimi pm3.31 syl5bi anim12i
      an4s alimi sylbi ) BDZECFZAGZCFZUOHZCFZIZABJZKZKZEBCLZFZUQVCFZAVCJZKZVCDV
      BEBFZUNKZUQBFZABJZUTKZKZVGUMVHVKKVAVMABMVHUNVKUTVMVMNUJUAVIVDVLVFVDVIEBCS
      OVLUOVCFZVEIZAPZVFVLUPVEIZABJZVPVLVJUSKZABJZVRVTVLVJUSABUBOVSVQABVSVJUPUR
      VEVJUSUCVJUSUDVEVJURKUQBCSOUEUFQVRUOBFZVQIZAPVPVQABRWBVOAVNWAUPKWBVEUOBCS
      WAUPVEUGUHUKULQVEAVCRTUIQAVCMT $.
  $}

  ${
    $d x y $.
    $( Alternate definition of ` _om ` , as the intersection of all the
       inductive sets.  Proposal: make this the definition.  (Contributed by
       BJ, 30-Nov-2019.) $)
    bj-dfom $p |- _om = |^| { x | Ind x } $=
      ( vy com c0 cv wcel csuc wral cab cint wind dfom3 df-bj-ind bicomi inteqi
      wa abbii eqtri ) CDAEZFBEGSFBSHPZAIZJSKZAIZJABLUAUCTUBAUBTBSMNQOR $.
  $}

  $( ` _om ` is an inductive class.  (Contributed by BJ, 30-Nov-2019.) $)
  bj-omind $p |- Ind _om $=
    ( vx com wind cv cvv crab cint bj-indint wb cab bj-dfom rabab inteqi eqtr4i
    wceq bj-indeq ax-mp mpbir ) BCZADCZAEFZGZCZAEHBUBOSUCIBTAJZGUBAKUAUDTALMNBU
    BPQR $.

  ${
    $d x A $.
    $( ` _om ` is included in all the inductive sets (but for the moment, we
       cannot prove that it is included in all the inductive classes).
       (Contributed by BJ, 30-Nov-2019.)
       (Proof modification is discouraged.) $)
    bj-omssind $p |- ( A e. V -> ( Ind A -> _om C_ A ) ) $=
      ( wcel wind cab cint wss com nfcv nfv wceq bj-indeq biimprd bj-intabssel1
      vx cv bj-dfom sseq1i syl6ibr ) ABCADZOPZDZOEFZAGHAGUBTOABOAITOJUAAKUBTUAA
      LMNHUCAOQRS $.
  $}

  ${
    $d x y A $.
    $( A characterization of subclasses of ` _om ` .  (Contributed by BJ,
       30-Nov-2019.)  (Proof modification is discouraged.) $)
    bj-ssom $p |- ( A. x ( Ind x -> A C_ x ) <-> A C_ _om ) $=
      ( vy cv wind wss wi wal cab cint com wral wcel ssint df-ral bj-indeq elab
      vex imbi1i albii 3bitrri bj-dfom eqcomi sseq2i bitri ) ADZEZBUFFZGZAHZBCD
      ZEZCIZJZFZBKFUOUHAUMLUFUMMZUHGZAHUJABUMNUHAUMOUQUIAUPUGUHULUGCUFARUKUFPQS
      TUAUNKBKUNCUBUCUDUE $.
  $}

  ${
    $d A x $.
    $( A set is equal to ` _om ` if and only if it is the smallest inductive
       set.  (Contributed by BJ, 30-Nov-2019.)
       (Proof modification is discouraged.) $)
    bj-om $p |- ( A e. V ->
                    ( A = _om <-> ( Ind A /\ A. x ( Ind x -> A C_ x ) ) ) ) $=
      ( wcel com wceq wind cv wss wi wal wa bj-omind bj-indeq mpbiri bj-omssind
      cvv vex ax-mp sseq1 syl5ibr alrimiv jca bj-ssom biimpi adantl a1i adantrd
      jcad eqss syl6ibr impbid2 ) BCDZBEFZBGZAHZGZBUPIZJZAKZLZUNUOUTUNUOEGMBENO
      UNUSAUQURUNEUPIZUPQDUQVBJARUPQPSBEUPTUAUBUCUMVABEIZEBIZLUNUMVAVCVDVAVCJUM
      UTVCUOUTVCABUDUEUFUGUMUOVDUTBCPUHUIBEUJUKUL $.
  $}

  ${
    $d x y $.
    $( Two formulations of the axiom of infinity (see ~ ax-infvn and
       ~ bj-omex ) .  (Contributed by BJ, 30-Nov-2019.)
       (Proof modification is discouraged.) $)
    bj-2inf $p |- ( _om e. _V <->
                                E. x ( Ind x /\ A. y ( Ind y -> x C_ y ) ) ) $=
      ( com cvv wcel cv wind wss wi wal wa wceq eqid bj-om mpbii bj-indeq sseq1
      wex imbi2d albidv anbi12d spcegv mpd vex ax-mp biimpri eximi isset sylibr
      wb impbii ) CDEZAFZGZBFZGZUMUOHZIZBJZKZARZULCGZUPCUOHZIZBJZKZVAULCCLVFCMB
      CDNOUTVFACDUMCLZUNVBUSVEUMCPVGURVDBVGUQVCUPUMCUOQSTUAUBUCVAVGARULUTVGAVGU
      TUMDEVGUTUJAUDBUMDNUEUFUGACUHUIUK $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  The first three Peano postulates
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

  The first three Peano postulates follow from constructive set theory
  (actually, from its core axioms).  The proofs ~ peano1 and ~ peano3 already
  show this.  In this section, we prove ~ bj-peano2 to complete this program.
  We also prove a preliminary version of the fifth Peano postulate from the
  core axioms.

$)

  $( Constructive proof of ~ peano2 .  Temporary note: another possibility is
     to simply replace ~ sucexg with ~ bj-sucexg in the proof of ~ peano2 .
     (Contributed by BJ, 18-Nov-2019.)  (Proof modification is discouraged.) $)
  bj-peano2 $p |- ( A e. _om -> suc A e. _om ) $=
    ( com wind wcel csuc wi bj-omind bj-indsuc ax-mp ) BCABDAEBDFGBAHI $.

  ${
    $d x A $.
    $( Version of ~ peano5 when ` _om i^i A ` is assumed to be a set, allowing
       a proof from the core axioms of CZF. (Contributed by BJ, 19-Nov-2019.)
       (Proof modification is discouraged.) $)
    peano5set $p |- ( ( _om i^i A ) e. V ->
      ( ( (/) e. A /\ A. x e. _om ( x e. A -> suc x e. A ) ) -> _om C_ A ) ) $=
      ( com cin wcel c0 cv csuc wi wral wind bj-omind bj-indind mpan bj-omssind
      wa wss imp sylan2 inss2 syl6ss ex ) DBEZCFZGBFAHZBFUFIBFJADKQZDBRUEUGQDUD
      BUGUEUDLZDUDRZDLUGUHMADBNOUEUHUIUDCPSTDBUAUBUC $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  CZF: Infinity
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  In the absence of full separation, the axiom of infinity has to be stated
  more precisely, as the existence of the smallest class containing the empty
  set and the successor of each of its elements.

$)


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  The set of natural numbers (finite ordinals)
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

  In this section, we introduce the axiom of infinity in a constructive setting
  ( ~ ax-infvn ) and deduce that the class ` _om ` of finite ordinals is a set
  ( ~ bj-omex ).

$)

  ${
    $d x y $.
    $( Axiom of infinity in a constructive setting.  This asserts the existence
       of the special set we want (the set of natural numbers), instead of the
       existence of a set with some properties ( ~ ax-iinf ) from which one
       then proves, using full separation, that the wanted set exists
       ( ~ omex ).  "vn" is for "von Neumann".  (Contributed by BJ,
       14-Nov-2019.) $)
    ax-infvn $a |- E. x ( Ind x /\ A. y ( Ind y -> x C_ y ) ) $.
  $}

  ${
    $d x y $.
    $( Proof of ~ omex from ~ ax-infvn .  (Contributed by BJ, 14-Nov-2019.)
       (Proof modification is discouraged.) $)
    bj-omex $p |- _om e. _V $=
      ( vx vy com cvv wcel cv wind wss wi wal wa wex ax-infvn bj-2inf mpbir ) C
      DEAFZGBFZGPQHIBJKALABMABNO $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Peano's fifth postulate
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

  In this section, we give constructive proofs of two versions of Peano's fifth
  postulate.

$)

  ${
    $d x A $.
    bdpeano5.bd $e |- Bdd_ A $.
    $( Bounded version of ~ peano5 .  (Contributed by BJ, 19-Nov-2019.)
       (Proof modification is discouraged.) $)
    bdpeano5 $p |- ( ( (/) e. A /\ A. x e. _om ( x e. A -> suc x e. A ) ) ->
                                                                  _om C_ A ) $=
      ( com cin cvv wcel c0 cv csuc wi wral wss bj-omex bdinex1 peano5set ax-mp
      wa ) DBEFGHBGAIZBGSJBGKADLRDBMKDBCNOABFPQ $.
  $}

  ${
    $d x A $.
    $( Version of ~ peano5 when ` A ` is assumed to be a set, allowing a proof
       from the core axioms of CZF. (Contributed by BJ, 19-Nov-2019.)
       (Proof modification is discouraged.) $)
    speano5 $p |- ( ( A e. V /\ (/) e. A /\
                        A. x e. _om ( x e. A -> suc x e. A ) ) -> _om C_ A ) $=
      ( wcel c0 cv csuc com wral wss cin cvv bj-omex bj-inex mpan peano5set syl
      wi wa 3impib ) BCDZEBDZAFZBDUCGBDRAHIZHBJZUAHBKLDZUBUDSUERHLDUAUFMHBLCNOA
      BLPQT $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Bounded induction and Peano's fourth postulate
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

  In this section, we prove various versions of bounded induction from
  the basic axioms of CZF (in particular, without the axiom of set induction).
  We also prove Peano's fourth postulate.
  Together with the results from the previous sections, this proves from the
  core axioms of CZF (with infinity) that the set of finite ordinals satisfies
  the five Peano postulates and thus provides a model for the set of natural
  numbers.
$)

  ${
    $d x A $.
    $( Bounded induction (principle of induction when ` A ` is assumed to be a
       set) allowing a proof from basic constructive axioms.  See ~ find for a
       nonconstructive proof of the general case.  See ~ bdfind for a proof
       when ` A ` is assumed to be bounded.  (Contributed by BJ, 22-Nov-2019.)
       (Proof modification is discouraged.) $)
    findset $p |- ( A e. V ->
           ( ( A C_ _om /\ (/) e. A /\ A. x e. A suc x e. A ) -> A = _om ) ) $=
      ( wcel com wss c0 cv csuc wral wceq wa simpr1 wi simp2 df-ral alral sylbi
      w3a wal 3ad2ant3 jca 3anass biimpri sylan2 speano5 syl eqssd ex ) BCDZBEF
      ZGBDZAHZIBDZABJZSZBEKUJUPLZBEUJUKULUOMUQUJULUMBDUNNZAEJZSZEBFUPUJULUSLZUT
      UPULUSUKULUOOUOUKUSULUOURATUSUNABPURAEQRUAUBUTUJVALUJULUSUCUDUEABCUFUGUHU
      I $.
  $}

  ${
    $d x A $.
    bdfind.bd $e |- Bdd_ A $.
    $( Bounded induction (principle of induction when ` A ` is assumed to be
       bounded), proved from basic constructive axioms.  See ~ find for a
       nonconstructive proof of the general case.  See ~ findset for a proof
       when ` A ` is assumed to be a set.  (Contributed by BJ, 22-Nov-2019.)
       (Proof modification is discouraged.) $)
    bdfind $p |-
             ( ( A C_ _om /\ (/) e. A /\ A. x e. A suc x e. A ) -> A = _om ) $=
      ( cvv wcel com wss c0 cv csuc wral w3a wceq bj-omex bdssex 3ad2ant1 mpcom
      findset ) BDEZBFGZHBEZAIJBEABKZLBFMTUASUBBFCNOPABDRQ $.
  $}

  ${
    $d x y $.  $d y ph $.
    bj-bdfindis.bd $e |- Bdd ph $.
    bj-bdfindis.nf0 $e |- F/ x ps $.
    bj-bdfindis.nf1 $e |- F/ x ch $.
    bj-bdfindis.nfsuc $e |- F/ x th $.
    bj-bdfindis.0 $e |- ( x = (/) -> ( ps -> ph ) ) $.
    bj-bdfindis.1 $e |- ( x = y -> ( ph -> ch ) ) $.
    bj-bdfindis.suc $e |- ( x = suc y -> ( th -> ph ) ) $.
    $( Bounded induction (principle of induction for bounded formulas), using
       implicit substitutions (the biconditional versions of the hypotheses are
       implicit substitutions, and we have weakened them to implications).
       Constructive proof (from CZF).  See ~ finds for a proof of full
       induction in IZF. From this version, it is easy to prove bounded
       versions of ~ finds , ~ finds2 , ~ finds1 .  (Contributed by BJ,
       21-Nov-2019.)  (Proof modification is discouraged.) $)
    bj-bdfindis $p |-
                    ( ( ps /\ A. y e. _om ( ch -> th ) ) -> A. x e. _om ph ) $=
      ( wi com wral wa c0 wcel elabf2 cab wss cv 0ex elabf1 vex bj-sucex ralimi
      csuc imim12i bdcab bdpeano5 syl2an ssabral sylib ) BCDNZFOPZQOAEUAZUBZAEO
      PBRURSFUCZURSZUTUIZURSZNZFOPUSUQABERHUDKTUPVDFOVACDVCACEUTILUEADEVBJUTFUF
      UGMTUJUHFURAEGUKULUMAEOUNUO $.

    bj-bdfindisg.nfa $e |- F/_ x A $.
    bj-bdfindisg.nfterm $e |- F/ x ta $.
    bj-bdfindisg.term $e |- ( x = A -> ( ph -> ta ) ) $.
    $( Version of ~ bj-bdfindis using a class term in the consequent.
       Constructive proof (from CZF).  See the comment of ~ bj-bdfindis for
       explanations.  (Contributed by BJ, 21-Nov-2019.)
       (Proof modification is discouraged.) $)
    bj-bdfindisg $p |-
                ( ( ps /\ A. y e. _om ( ch -> th ) ) -> ( A e. _om -> ta ) ) $=
      ( wi com wral wa wcel bj-bdfindis nfcv bj-rspg syl ) BCDSGTUAUBAFTUAHTUCE
      SABCDFGIJKLMNOUDAEFHTPFTUEQRUFUG $.
  $}

  ${
    $d x y $.  $d y ph $.
    bj-bdfindes.bd $e |- Bdd ph $.
    $( Bounded induction (principle of induction for bounded formulas), using
       explicit substitutions.  Constructive proof (from CZF).  See the comment
       of ~ bj-bdfindis for explanations.  From this version, it is easy to
       prove the bounded version of ~ findes .  (Contributed by BJ,
       21-Nov-2019.)  (Proof modification is discouraged.) $)
    bj-bdfindes $p |- ( ( [. (/) / x ]. ph /\
              A. x e. _om ( ph -> [. suc x / x ]. ph ) ) -> A. x e. _om ph ) $=
      ( vy cv csuc wsbc wi com wral wsb nfv nfim nfs1v nfsbc1v weq wceq sbceq1a
      c0 biimprd sbequ12 sbceq1d imbi12d cbvral sbequ1 bj-bdfindis sylan2b
      suceq ) AABBEZFZGZHZBIJABSGZABDKZABDEZFZGZHZDIJABIJULURBDIAUKDADLUKDLMUNU
      QBABDNZABUPOZMBDPZAUNUKUQABDUAVAABUJUPUIUOUHUBUCUDAUMUNUQBDCABSOUSUTUISQA
      UMABSRTABDUEUIUPQAUQABUPRTUFUG $.
  $}

  ${
    $d x y z A $.
    $( Constructive proof of a variant of ~ nn0suc .  For a constructive proof
       of ~ nn0suc , see ~ bj-nn0suc .  (Contributed by BJ, 19-Nov-2019.)
       (Proof modification is discouraged.) $)
    bj-nn0suc0 $p |- ( A e. _om -> ( A = (/) \/ E. x e. A A = suc x ) ) $=
      ( vy vz cv c0 wceq csuc wrex wo com eqeq1 rexeqbi1dv wtru wi wral a1d weq
      a1tru wn orbi12d tru rgenw bdeq0 bdeqsuc ax-bdex ax-bdor nfv orc expi wel
      wcel vex sucid eleq2 mpbiri suceq eqeq2d rspcev mpancom bj-bdfindis mp2an
      olcd vtoclri ) CEZFGZVEAEZHZGZAVEIZJZBFGZBVHGZABIZJCBKVEBGVFVLVJVNVEBFLVI
      VMAVEBVEBVHLMUANNNOZDKPVKCKPUBVODKNSUCVKNNNCDVFVJCUDVIACCAUEUFUGNCUHZVPVP
      VFVKNVFVJUIQCDRZVKNVQVKTOTSUJVEDEZHZGZVKNVTVJVFDCUKZVTVJVTWAVRVSULVRDUMUN
      VEVSVRUOUPVIVTAVRVEADRVHVSVEVGVRUQURUSUTVCQVAVBVD $.
  $}

  ${
    $d x y A $.  $d x B $.  $d x y z $.
    $( A natural number is a transitive set.  (Contributed by BJ, 22-Nov-2019.)
       (Proof modification is discouraged.) $)
    bj-nntrans $p |- ( A e. _om -> ( B e. A -> B C_ A ) ) $=
      ( vx vz vy com wcel cv wss wral c0 csuc wi syl5bi wceq raleqbi1dv biimprd
      nfv sseq2 biimpd ral0 csn cun wel df-suc eleq2i wo elun sssucid sstr2 mpi
      imim2i elsni syl6eqss a1i jaod ralimi2 bdcv bdss ax-bdal weq bj-bdfindisg
      rgenw nfcv mp2an sseq1 rspc syl5com ) AFGZCHZAIZCAJZBAGBAIZVJKIZCKJZVJDHZ
      IZCVPJZVJVPLZIZCVSJZMZDFJVIVLMVNCUAWBDFVQVTCVPVSVJVSGVJVPVPUBZUCZGZCDUDZV
      QMZVTVSWDVJVPUEUFWEWFVJWCGZUGWGVTVJVPWCUHWGWFVTWHVQVTWFVQVPVSIVTVPUIZVJVP
      VSUJUKULWHVTMWGWHVJVPVSVJVPUMWIUNUOUPNNUQVCVJEHZIZCWJJZVOVRWAVLEDAWKCECWJ
      EURUSUTVOERVRERWAERWJKOWLVOWKVNCWJKWJKVJSPQEDVAWLVRWKVQCWJVPWJVPVJSPTWJVS
      OWLWAWKVTCWJVSWJVSVJSPQEAVDVLERWJAOWLVLWKVKCWJAWJAVJSPTVBVEVKVMCBAVMCRVJB
      AVFVGVH $.
  $}

  ${
    $d A x $.
    $( A natural number is a transitive set.  (Contributed by BJ, 22-Nov-2019.)
       (Proof modification is discouraged.) $)
    bj-nntrans2 $p |- ( A e. _om -> Tr A ) $=
      ( vx com wcel cv wss wral wtr bj-nntrans ralrimiv dftr3 sylibr ) ACDZBEZA
      FZBAGAHMOBAANIJBAKL $.
  $}

  ${
    $d x A $.  $d x y $.
    $( A natural number does not belong to itself.  Version of ~ elirr for
       natural numbers, which does not require ~ ax-setind .  (Contributed by
       BJ, 24-Nov-2019.)  (Proof modification is discouraged.) $)
    bj-nnelirr $p |- ( A e. _om -> -. A e. A ) $=
      ( vy vx c0 wcel wn cv csuc wi com wral syl5bi nfv wceq eleq1 eleq2 notbid
      bitrd biimprd biimpd noel csn cun df-suc eleq2i wo wss bj-nntrans sucssel
      elun syld vex sucid elsni syl5eleq a1i con3d ax-bdel ax-bdn elequ1 elequ2
      jaod rgen nfcv bj-bdfindisg mp2an ) DDEZFZBGZVIEZFZVIHZVLEZFZIZBJKAJEAAEZ
      FZIDUAVOBJVIJEZVMVJVMVLVIVIUBZUCZEZVRVJVLVTVLVIUDUEWAVLVIEZVLVSEZUFVRVJVL
      VIVSUJVRWBVJWCVRWBVLVIUGVJVIVLUHVIVIJUIUKWCVJIVRWCVIVLVIVIBULUMVLVIUNUOUP
      VBLLUQVCCGZWDEZFZVHVKVNVQCBAWECCURUSVHCMVKCMVNCMWDDNZWFVHWGWEVGWGWEDWDEVG
      WDDWDOWDDDPRQSWDVINZWFVKWHWEVJWHWEVIWDEVJCBCUTCBBVARQTWDVLNZWFVNWIWEVMWIW
      EVLWDEVMWDVLWDOWDVLVLPRQSCAVDVQCMWDANZWFVQWJWEVPWJWEAWDEVPWDAWDOWDAAPRQTV
      EVF $.
  $}

  ${
    $( A version of ~ en2lp for natural numbers, which does not require
       ~ ax-setind .

       Note: using this theorem and ~ bj-nnelirr , one can remove dependency on
       ~ ax-setind from ~ nntri2 and ~ nndcel ; one can actually remove more
       dependencies from these.  (Contributed by BJ, 28-Nov-2019.)
       (Proof modification is discouraged.) $)
    bj-nnen2lp $p |- ( ( A e. _om /\ B e. _om ) -> -. ( A e. B /\ B e. A ) ) $=
      ( com wcel wa wn bj-nnelirr adantl wss wi bj-nntrans ssel syl6 impd mtod
      ) ACDZBCDZEZABDZBADZEBBDZQUAFPBGHRSTUARSABIZTUAJQSUBJPBAKHABBLMNO $.
  $}

  $( Remove from ~ peano4 dependency on ~ ax-setind .  Therefore, it only
     requires core constructive axioms (albeit more of them).  (Contributed by
     BJ, 28-Nov-2019.)  (Proof modification is discouraged.) $)
  bj-peano4 $p |-
                 ( ( A e. _om /\ B e. _om ) -> ( suc A = suc B <-> A = B ) ) $=
    ( com wcel wa csuc wceq w3a 3simpa pm3.22 bj-nnen2lp 3syl sucidg syl5ibrcom
    wn wo eleq2 elsucg sylibd imp 3adant1 syl5ibcom 3adant2 eqcom orbi2i anbi1i
    jca sylib ordir sylibr ord mpd 3expia suceq impbid1 ) ACDZBCDZEZAFZBFZGZABG
    ZUPUQVAVBUPUQVAHZBADZABDZEZOZVBVCURUQUPEVGUPUQVAIUPUQJBAKLVCVFVBVCVDVBPZVEV
    BPZEZVFVBPVCVDBAGZPZVIEVJVCVLVIUQVAVLUPUQVAVLUQVABUSDZVLUQVMVABUTDBCMUSUTBQ
    NBACRSTUAUPVAVIUQUPVAVIUPVAAUTDZVIUPAUSDVAVNACMUSUTAQUBABCRSTUCUGVLVHVIVKVB
    VDBAUDUEUFUHVDVEVBUIUJUKULUMABUNUO $.

  ${
    $d a x y A $.
    $( The set ` _om ` is transitive.  A natural number is included in
       ` _om ` .  Constructive proof of ~ elnn .

       The idea is to use bounded induction with the formula ` x C_ _om ` .
       This formula, in a logic with terms, is bounded.  So in our logic
       without terms, we need to temporarily replace it with ` x C_ a ` and
       then deduce the original claim.  (Contributed by BJ, 29-Dec-2019.)
       (Proof modification is discouraged.) $)
    bj-omtrans $p |- ( A e. _om -> A C_ _om ) $=
      ( vy va vx cv com wss csuc wi wcel wral bj-omex wceq sseq2 imbi12d c0 nfv
      sseq1 biimprd biimpd ralbidv imbi2d 0ss bdcv bdss nfcv bj-bdfindisg vtocl
      mpan wa csn cun df-suc simpr simpl snssd unssd syl5eqss ex mprg ) BEZFGZV
      AHZFGZIZAFJZAFGZIZBFVACEZGZVCVIGZIZBFKZVFAVIGZIZIVEBFKZVHICFLVIFMZVMVPVOV
      HVQVLVEBFVQVJVBVKVDVIFVANVIFVCNOUAVQVNVGVFVIFANUBOPVIGZVMVOVIUCDEZVIGZVRV
      JVKVNDBADVICUDUEVRDQVJDQVKDQVSPMVTVRVSPVIRSVSVAMVTVJVSVAVIRTVSVCMVTVKVSVC
      VIRSDAUFVNDQVSAMVTVNVSAVIRTUGUIUHVAFJZVBVDWAVBUJZVCVAVAUKZULFVAUMWBVAWCFW
      AVBUNWBVAFWAVBUOUPUQURUSUT $.
  $}

  ${
    $( The set ` _om ` is transitive.  (Contributed by BJ, 29-Dec-2019.)
       (Proof modification is discouraged.) $)
    bj-omtrans2 $p |- Tr _om $=
      ( vx com wtr cv wss dftr3 bj-omtrans mprgbir ) BCADZBEABABFIGH $.
  $}

  ${
    $d x A $.
    $( A natural number is an ordinal.  Constructive proof of ~ nnord .  Can
       also be proved from ~ bj-nnelon if the latter is proved from
       ~ bj-omssonALT .  (Contributed by BJ, 27-Oct-2020.)
       (Proof modification is discouraged.) $)
    bj-nnord $p |- ( A e. _om -> Ord A ) $=
      ( vx com wcel wtr cv wral word bj-nntrans2 wi wal bj-omtrans syl6 alrimiv
      sseld df-ral sylibr dford3 sylanbrc ) ACDZAEBFZEZBAGZAHAITUAADZUBJZBKUCTU
      EBTUDUACDUBTACUAALOUAIMNUBBAPQBARS $.
  $}

  ${
    $( A natural number is an ordinal.  Constructive proof of ~ nnon .  Can
       also be proved from ~ bj-omssonALT .  (Contributed by BJ, 27-Oct-2020.)
       (Proof modification is discouraged.) $)
    bj-nnelon $p |- ( A e. _om -> A e. On ) $=
      ( com wcel con0 word bj-nnord elong mpbird ) ABCADCAEAFABGH $.
  $}

  ${
    $( The set ` _om ` is an ordinal.  Constructive proof of ~ ordom .
       (Contributed by BJ, 29-Dec-2019.)
       (Proof modification is discouraged.) $)
    bj-omord $p |- Ord _om $=
      ( vx com word wtr cv wral bj-omtrans2 bj-nntrans2 rgen dford3 mpbir2an )
      BCBDAEZDZABFGMABLHIABJK $.
  $}

  ${
    $( The set ` _om ` is an ordinal.  Constructive proof of ~ omelon .
       (Contributed by BJ, 29-Dec-2019.)
       (Proof modification is discouraged.) $)
    bj-omelon $p |- _om e. On $=
      ( com con0 wcel word bj-omord bj-omex elon mpbir ) ABCADEAFGH $.
  $}

  ${
    $( Constructive proof of ~ omsson .  See also ~ bj-omssonALT .
       (Contributed by BJ, 27-Oct-2020.)  (Proof modification is discouraged.)
       (New usage is discouraged. $)
    bj-omsson $p |- _om C_ On $=
      ( vx com con0 cv bj-nnelon ssriv ) ABCADEF $.
  $}

  ${
    $( Alternate proof of ~ bj-omsson .  (Contributed by BJ, 27-Oct-2020.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    bj-omssonALT $p |- _om C_ On $=
      ( com con0 wcel wss bj-omelon onss ax-mp ) ABCABDEAFG $.
  $}

  ${
    $d x A $.
    $( Proof of (biconditional form of) ~ nn0suc from the core axioms of CZF.
       See also ~ bj-nn0sucALT .  As a characterization of the elements of
       ` _om ` , this could be labeled "elom".  (Contributed by BJ,
       19-Nov-2019.)  (Proof modification is discouraged.) $)
    bj-nn0suc $p |- ( A e. _om <-> ( A = (/) \/ E. x e. _om A = suc x ) ) $=
      ( com wcel c0 wceq cv csuc wrex wo bj-nn0suc0 wi bj-omtrans ssrexv orim2d
      wss syl mpd peano1 eleq1 mpbiri bj-peano2 eleq1a imp sylan rexlimiva jaoi
      impbii ) BCDZBEFZBAGZHZFZACIZJZUIUJUMABIZJUOABKUIUPUNUJUIBCPUPUNLBMUMABCN
      QORUJUIUNUJUIECDSBECTUAUMUIACUKCDULCDZUMUIUKUBUQUMUIULCBUCUDUEUFUGUH $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  CZF: Set induction
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  In this section, we add the axiom of set induction to the core axioms of CZF.

$)


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Set induction
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

  In this section, we prove some variants of the axiom of set induction.

$)

  ${
    $d x y z $.  $d ph z $.
    $( Axiom of set-induction with a DV condition replaced with a non-freeness
       hypothesis (Contributed by BJ, 22-Nov-2019.) $)
    setindft $p |- ( A. x F/ y ph ->
                      ( A. x ( A. y e. x [ y / x ] ph -> ph ) -> A. x ph ) ) $=
      ( vz wnf wal wsb cv wral wi nfa1 nfv nfnf1 nfsbt a1i weq wb sbequ cbvrald
      nfal biimpd imim1d alimd ax-setind syl6 ) ACEZBFZABCGZCBHZIZAJZBFABDGZDUI
      IZAJZBFABFUGUKUNBUFBKUGUMUJAUGUMUJUGULUHDCUIUGDLUFCBACMTABDCNUHDEUGUHDLOD
      CPULUHQJUGADCBROSUAUBUCADBUDUE $.
  $}

  ${
    $d x y $.
    setindf.nf $e |- F/ y ph $.
    $( Axiom of set-induction with a DV condition replaced with a non-freeness
       hypothesis (Contributed by BJ, 22-Nov-2019.) $)
    setindf $p |- ( A. x ( A. y e. x [ y / x ] ph -> ph ) -> A. x ph ) $=
      ( wnf wsb cv wral wi wal setindft mpg ) ACEABCFCBGHAIBJABJIBABCKDL $.
  $}

  ${
    $d x y z $.  $d ph z $.
    setindis.nf0 $e |- F/ x ps $.
    setindis.nf1 $e |- F/ x ch $.
    setindis.nf2 $e |- F/ y ph $.
    setindis.nf3 $e |- F/ y ps $.
    setindis.1 $e |- ( x = z -> ( ph -> ps ) ) $.
    setindis.2 $e |- ( x = y -> ( ch -> ph ) ) $.
    $( Axiom of set induction using implicit substitutions.  (Contributed by
       BJ, 22-Nov-2019.) $)
    setindis $p |- ( A. y ( A. z e. y ps -> ch ) -> A. x ph ) $=
      ( cv wral wi wal wsb nfcv nfralxy nfim raleq biimprd equcoms imim12d cbv3
      weq bj-sbime ralimi imim1i alimi ax-setind 3syl ) BFEMZNZCOZEPBFDMZNZAOZD
      PADFQZFUPNZAOZDPADPUOUREDUNCDBDFUMDUMRGSHTUQAEBEFUPEUPRJSITEDUFZUQUNCAVBU
      NUQBFUMUPUAUBCAODELUCUDUEURVADUTUQAUSBFUPABDFGKUGUHUIUJAFDUKUL $.
  $}

  ${
    $d y a $.  $d ph y $.
    ax-bdsetind.bd $e |- Bdd ph $.
    $( Axiom of bounded set induction.  (Contributed by BJ, 28-Nov-2019.) $)
    ax-bdsetind $a |- ( A. a ( A. y e. a [ y / a ] ph -> ph ) -> A. a ph ) $.
  $}

  ${
    $d x y z $.  $d ph z $.
    bdsetindis.bd $e |- Bdd ph $.
    bdsetindis.nf0 $e |- F/ x ps $.
    bdsetindis.nf1 $e |- F/ x ch $.
    bdsetindis.nf2 $e |- F/ y ph $.
    bdsetindis.nf3 $e |- F/ y ps $.
    bdsetindis.1 $e |- ( x = z -> ( ph -> ps ) ) $.
    bdsetindis.2 $e |- ( x = y -> ( ch -> ph ) ) $.
    $( Axiom of bounded set induction using implicit substitutions.
       (Contributed by BJ, 22-Nov-2019.)
       (Proof modification is discouraged.) $)
    bdsetindis $p |- ( A. y ( A. z e. y ps -> ch ) -> A. x ph ) $=
      ( cv wral wi wal nfcv nfralxy nfim wsb raleq biimprd equcoms imim12d cbv3
      weq bj-sbime ralimi imim1i alimi ax-bdsetind 3syl ) BFENZOZCPZEQBFDNZOZAP
      ZDQADFUAZFUQOZAPZDQADQUPUSEDUOCDBDFUNDUNRHSITURAEBEFUQEUQRKSJTEDUGZURUOCA
      VCUOURBFUNUQUBUCCAPDEMUDUEUFUSVBDVAURAUTBFUQABDFHLUHUIUJUKAFDGULUM $.
  $}

  ${
    $d A x y z $.
    $( Lemma for ~ bj-inf2vn .  Remark: unoptimized proof (have to use more
       deduction style).  (Contributed by BJ, 8-Dec-2019.)
       (Proof modification is discouraged.) $)
    bj-inf2vnlem1 $p |-
         ( A. x ( x e. A <-> ( x = (/) \/ E. y e. A x = suc y ) ) -> Ind A ) $=
      ( vz cv wcel c0 wceq csuc wrex wo wb wal wral wi wex eleq1 3syl alimi syl
      wind wa bi2 jaob biimpi simpl mpbidi 0ex isseti pm2.27 ax-mp bj-ex simprd
      exim eqid suceq eqeq2d rspcev mpan2 bj-sucex eqeq1 rexbidv imbi12d syl2im
      vex spcv ralrimiv df-bj-ind sylanbrc ) AEZCFZVJGHZVJBEZIZHZBCJZKZLZAMZGCF
      ZDEZIZCFZDCNCUAVSVLVTOZAMVLAPZVTAPZOZVTVRWDAVRVQVKOZVLVKOZVPVKOZUBZWDVKVQ
      UCZWHWKVLVKVPUDUEZVLVKVTWKWIWJUFVJGCQUGRSVLVTAUNWGWFVTWEWGWFOAGUHUIWEWFUJ
      UKVTAULTRVSWCDCVSWJAMWACFZWBVNHZBCJZWCVRWJAVRWHWJWLWHWIWJWMUMTSWNWBWBHZWP
      WBUOWOWQBWACVMWAHVNWBWBVMWAUPUQURUSWJWPWCOAWBWADVEUTVJWBHZVPWPVKWCWRVOWOB
      CVJWBVNVAVBVJWBCQVCVFVDVGDCVHVI $.
  $}

  ${
    $d x y t u A $.  $d x y t u v Z $.
    $( Lemma for ~ bj-inf2vnlem3 and ~ bj-inf2vnlem4 .  Remark: unoptimized
       proof (have to use more deduction style).  (Contributed by BJ,
       8-Dec-2019.)  (Proof modification is discouraged.) $)
    bj-inf2vnlem2 $p |- ( A. x e. A ( x = (/) \/ E. y e. A x = suc y ) ->
         ( Ind Z ->
         A. u ( A. t e. u ( t e. A -> t e. Z ) -> ( u e. A -> u e. Z ) ) ) ) $=
      ( vv cv c0 wceq csuc wrex wo wral wcel wi wal eqeq1 rspcv eleq1 df-bj-ind
      wind rexbidv orbi12d simplbi syl5ibr a1dd vex sucid wb eleq2 eqcoms mpbii
      imbi12d bj-indsuc eleq1a syl6com syl8 com13 com25 mpdi rexlimiv jaoi syl6
      com3l alrimdv bi2.04 albii syl6ib ) AHZIJZVJBHZKZJZBELZMZAENZFUBZCHZEOZDH
      ZEOZWAFOZPZDVSNZVSFOZPZPZCQWEVTWFPPZCQVQVRWHCVTVQVRWGVTVQVSIJZVSVMJZBELZM
      ZVRWGPZVPWMAVSEVJVSJZVKWJVOWLVJVSIRWOVNWKBEVJVSVMRUCUDSWJWNWLWJVRWFWEVRWF
      WJIFOZVRWPGHKFOGFNGFUAUEVSIFTUFUGWKWNBEVLEOZWKVLVSOZWNWKVLVMOZWRVLBUHUIWS
      WRUJVMVSVMVSVLUKULUMWQWEWRVRWKWFWRWEWQVRWKWFPZPZWRWEWQVLFOZXAWDWQXBPDVLVS
      WAVLJWBWQWCXBWAVLETWAVLFTUNSVRXBVMFOWTFVLUOVMFVSUPUQURUSUTVAVBVCVDVEVFWHW
      ICVTWEWFVGVHVI $.
  $}

  ${
    $d x y z t u A $.  $d x y z t u Z $.
    bj-inf2vnlem3.bd1 $e |- Bdd_ A $.
    bj-inf2vnlem3.bd2 $e |- Bdd_ Z $.
    $( Lemma for ~ bj-inf2vn .  (Contributed by BJ, 8-Dec-2019.)
       (Proof modification is discouraged.) $)
    bj-inf2vnlem3 $p |- ( A. x e. A ( x = (/) \/ E. y e. A x = suc y ) ->
                                                       ( Ind Z -> A C_ Z ) ) $=
      ( vz vt vu cv wceq wral wcel wi wal bdeli nfv weq eleq1 imbi12d csuc wrex
      c0 wo wind wss bj-inf2vnlem2 ax-bdim biimpd biimprd bdsetindis syl6 dfss2
      syl6ibr ) AJZUCKUOBJUAKBCUBUDACLZDUEZGJZCMZURDMZNZGOZCDUFUPUQHJZCMZVCDMZN
      ZHIJZLVGCMZVGDMZNZNIOVBABIHCDUGVAVFVJGIHUSUTGCEPGDFPUHVFGQVJGQVAIQVFIQGHR
      ZVAVFVKUSVDUTVEURVCCSURVCDSTUIGIRZVAVJVLUSVHUTVIURVGCSURVGDSTUJUKULGCDUMU
      N $.
  $}

  ${
    $d x y z t u A $.  $d x y z t u Z $.
    $( Lemma for ~ bj-inf2vn2 .  (Contributed by BJ, 8-Dec-2019.)
       (Proof modification is discouraged.) $)
    bj-inf2vnlem4 $p |- ( A. x e. A ( x = (/) \/ E. y e. A x = suc y ) ->
                                                       ( Ind Z -> A C_ Z ) ) $=
      ( vz vt vu cv c0 wceq csuc wrex wral wcel wi wal nfv weq eleq1 imbi12d wo
      wind wss bj-inf2vnlem2 biimpd biimprd setindis syl6 dfss2 syl6ibr ) AHZIJ
      UKBHKJBCLUAACMZDUBZEHZCNZUNDNZOZEPZCDUCULUMFHZCNZUSDNZOZFGHZMVCCNZVCDNZOZ
      OGPURABGFCDUDUQVBVFEGFVBEQVFEQUQGQVBGQEFRZUQVBVGUOUTUPVAUNUSCSUNUSDSTUEEG
      RZUQVFVHUOVDUPVEUNVCCSUNVCDSTUFUGUHECDUIUJ $.
  $}

  ${
    $d x y z A $.
    bj-inf2vn.1 $e |- Bdd_ A $.
    $( A sufficient condition for ` _om ` to be a set.  See ~ bj-inf2vn2 for
       the unbounded version from full set induction.  (Contributed by BJ,
       8-Dec-2019.)  (Proof modification is discouraged.) $)
    bj-inf2vn $p |- ( A e. V -> ( A. x ( x e. A <->
                         ( x = (/) \/ E. y e. A x = suc y ) ) -> A = _om ) ) $=
      ( vz cv wcel c0 wceq csuc wrex wo wb wal com wind wss wi wa bj-inf2vnlem1
      wral bi1 alimi df-ral sylibr bdcv bj-inf2vnlem3 syl alrimiv bj-om syl5ibr
      jca ) AGZCHZUNIJUNBGKJBCLMZNZAOZCPJCDHCQZFGZQCUTRSZFOZTURUSVBABCUAURVAFUR
      UPACUBZVAURUOUPSZAOVCUQVDAUOUPUCUDUPACUEUFABCUTEFUGUHUIUJUMFCDUKUL $.
  $}

  ${
    $d x y z A $.
    $( A sufficient condition for ` _om ` to be a set; unbounded version of
       ~ bj-inf2vn .  (Contributed by BJ, 8-Dec-2019.)
       (Proof modification is discouraged.) $)
    bj-inf2vn2 $p |- ( A e. V -> ( A. x ( x e. A <->
                         ( x = (/) \/ E. y e. A x = suc y ) ) -> A = _om ) ) $=
      ( vz cv wcel c0 wceq csuc wrex wo wb wal com wind wss wi wa bj-inf2vnlem1
      wral bi1 alimi df-ral sylibr bj-inf2vnlem4 syl alrimiv jca bj-om syl5ibr
      ) AFZCGZULHIULBFJIBCKLZMZANZCOICDGCPZEFZPCURQRZENZSUPUQUTABCTUPUSEUPUNACU
      AZUSUPUMUNRZANVAUOVBAUMUNUBUCUNACUDUEABCURUFUGUHUIECDUJUK $.
  $}

  ${
    $d x y $.
    $( Another axiom of infinity in a constructive setting (see ~ ax-infvn ).
       (Contributed by BJ, 14-Nov-2019.)  (New usage is discouraged.) $)
    ax-inf2 $a |-
                 E. a A. x ( x e. a <-> ( x = (/) \/ E. y e. a x = suc y ) ) $.
  $}

  ${
    $d x y a $.
    $( Using bounded set induction and the strong axiom of infinity, ` _om ` is
       a set, that is, we recover ~ ax-infvn (see ~ bj-2inf for the equivalence
       of the latter with ~ bj-omex ).  (Contributed by BJ, 8-Dec-2019.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    bj-omex2 $p |- _om e. _V $=
      ( va vx vy com wel cv c0 wceq csuc wrex wo wb wal ax-inf2 cvv wcel wi vex
      bdcv bj-inf2vn ax-mp eximii issetri ) ADBAEBFZGHUDCFIHCAFZJKLBMZUEDHZABCA
      NUEOPUFUGQARBCUEOASTUAUBUC $.
  $}

  ${
    $d a x y z A $.
    $( Alternate proof of ~ bj-nn0suc , also constructive but from ~ ax-inf2 ,
       hence requiring ~ ax-bdsetind .  (Contributed by BJ, 8-Dec-2019.)
       (Proof modification is discouraged.)  (New usage is discouraged.) $)
    bj-nn0sucALT $p |- ( A e. _om <-> ( A = (/) \/ E. x e. _om A = suc x ) ) $=
      ( va vy vz com wcel c0 wceq cv csuc wrex wo wb wal wi ax-mp bibi12d eleq1
      cvv wex ax-inf2 bdcv bj-inf2vn eleq2 rexeq orbi2d albidv nfcv eqeq1 suceq
      vex nfv eqeq2d cbvrexv rexbidv syl5bb orbi12d bi1 syl6bi peano1 bj-peano2
      spcimgf pm2.43b mpbiri eleq1a imp sylan rexlimiva jaoi mpcom eximii bj-ex
      impbid1 ) BFGZBHIZBAJZKZIZAFLZMZNZCUAWBDJZCJZGZWCHIZWCEJZKZIZEWDLZMZNZDOZ
      WBCDECUBWDFIZWMWBWDTGWMWNPCULDEWDTCUCUDQWNWMWCFGZWFWIEFLZMZNZDOZWBWNWLWRD
      WNWEWOWKWQWDFWCUEWNWJWPWFWIEWDFUFUGRUHWSVOWAWSVOWAWRVOWAPZDBFDBUIWTDUMWCB
      IZWRWBWTXAWOVOWQWAWCBFSXAWFVPWPVTWCBHUJWPWCVRIZAFLXAVTWIXBEAFWGVQIWHVRWCW
      GVQUKUNUOXAXBVSAFWCBVRUJUPUQURRVOWAUSUTVCVDVPVOVTVPVOHFGVABHFSVEVSVOAFVQF
      GVRFGZVSVOVQVBXCVSVOVRFBVFVGVHVIVJVNUTVKVLWBCVMQ $.
  $}


$(
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
  Full induction
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

  In this section, using the axiom of set induction, we prove full induction on
  the set of natural numbers.

$)

  ${
    $d x y z $.  $d y z ph $.  $d ps z $.  $d ch z $.  $d th z $.
    bj-findis.nf0 $e |- F/ x ps $.
    bj-findis.nf1 $e |- F/ x ch $.
    bj-findis.nfsuc $e |- F/ x th $.
    bj-findis.0 $e |- ( x = (/) -> ( ps -> ph ) ) $.
    bj-findis.1 $e |- ( x = y -> ( ph -> ch ) ) $.
    bj-findis.suc $e |- ( x = suc y -> ( th -> ph ) ) $.
    $( Principle of induction, using implicit substitutions (the biconditional
       versions of the hypotheses are implicit substitutions, and we have
       weakened them to implications).  Constructive proof (from CZF).  See
       ~ bj-bdfindis for a bounded version not requiring ~ ax-setind .  See
       ~ finds for a proof in IZF. From this version, it is easy to prove of
       ~ finds , ~ finds2 , ~ finds1 .  (Contributed by BJ, 22-Dec-2019.)
       (Proof modification is discouraged.) $)
    bj-findis $p |- ( ( ps /\ A. y e. _om ( ch -> th ) ) -> A. x e. _om ph ) $=
      ( vz wi com wral wa wcel wceq nfv cv wal c0 csuc wrex wo bj-nn0suc pm3.21
      ad2antrr pm2.04 ralimi2 imim2 ral2imi imp sylan2 r19.29 sucid mpbiri ax-1
      vex eleq2 pm2.27 anim12ii mpdan impcom reximi syl adantll orim12d alrimiv
      ex syl7bi nfim nfan nfcv nfrexxy nfor biimprd imim12d biimpd eqtr expimpd
      eleq1 rexlimdvw jaod setindis df-ral sylibr ) BCDNZFOPZQZEUAZORZANZEUBZAE
      OPWKFUAZORZCNZFMUAZPZWSORZWSUCSZBQZWSWPUDZSZDQZFOUEZUFZNZNZMUBWOWKXJMXAXB
      XEFOUEZUFZWKWTXHFWSUGWKWTXLXHNWKWTQXBXCXKXGBXBXCNWJWTBXBUHUIWJWTXKXGNZBWJ
      WTQWPWSRZDNZFOPZXMWTWJXNCNZFOPZXPWRXQFWSOXNWQCUJUKWJXRXPWIXQXOFOCDXNULUMU
      NUOXPXKXGXPXKQXOXEQZFOUEXGXOXEFOUPXSXFFOXEXOXFXEXNXOXFNXEXNWPXDRWPFUTUQWS
      XDWPVAURXEXOXEXNDXEXOUSXNDVBVCVDVEVFVGVKVGVHVIVKVLVJWNWRXIEMFWQCEWQETHVMX
      AXHEXAETXCXGEXBBEXBETGVNXFEFOEOVOXEDEXEETIVNVPVQVMWNMTWRMTWLWPSZWQWMACXTW
      MWQWLWPOWCVRKVSWLWSSZWMXAXHAYAWMXAWLWSOWCVTYAXCAXGYAXBBAYAXBQWLUCSBANWLWS
      UCWAJVGWBYAXFAFOYAXEDAYAXEQWLXDSDANWLWSXDWALVGWBWDWEVSWFVGAEOWGWH $.

    bj-findisg.nfa $e |- F/_ x A $.
    bj-findisg.nfterm $e |- F/ x ta $.
    bj-findisg.term $e |- ( x = A -> ( ph -> ta ) ) $.
    $( Version of ~ bj-findis using a class term in the consequent.
       Constructive proof (from CZF).  See the comment of ~ bj-findis for
       explanations.  (Contributed by BJ, 21-Nov-2019.)
       (Proof modification is discouraged.) $)
    bj-findisg $p |-
                ( ( ps /\ A. y e. _om ( ch -> th ) ) -> ( A e. _om -> ta ) ) $=
      ( wi com wral wa wcel bj-findis nfcv bj-rspg syl ) BCDRGSTUAAFSTHSUBERABC
      DFGIJKLMNUCAEFHSOFSUDPQUEUF $.
  $}

  ${
    $d x y $.  $d y ph $.
    $( Principle of induction, using explicit substitutions.  Constructive
       proof (from CZF).  See the comment of ~ bj-findis for explanations.
       From this version, it is easy to prove ~ findes .  (Contributed by BJ,
       21-Nov-2019.)  (Proof modification is discouraged.) $)
    bj-findes $p |- ( ( [. (/) / x ]. ph /\
              A. x e. _om ( ph -> [. suc x / x ]. ph ) ) -> A. x e. _om ph ) $=
      ( vy cv csuc wsbc wi com wral c0 wsb nfv nfim nfs1v nfsbc1v sbequ12 suceq
      wceq sbceq1a biimprd sbceq1d imbi12d cbvral sbequ1 bj-findis sylan2b ) AA
      BBDZEZFZGZBHIABJFZABCKZABCDZEZFZGZCHIABHIUJUPBCHAUICACLUICLMULUOBABCNZABU
      NOZMUGUMRZAULUIUOABCPUSABUHUNUGUMQUAUBUCAUKULUOBCABJOUQURUGJRAUKABJSTABCU
      DUGUNRAUOABUNSTUEUF $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  CZF: Strong collection
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  In this section, we state the axiom scheme of strong collection, which is
  part of CZF set theory.

$)

  ${
    $d a b x y $.  $d a b ph $.
    $( Axiom scheme of strong collection.  It is stated with all possible
       disjoint variable conditions, to show that this weak form is sufficient.
       (Contributed by BJ, 5-Oct-2019.) $)
    ax-strcoll $a |- A. a ( A. x e. a E. y ph ->
                                     E. b A. y ( y e. b <-> E. x e. a ph ) ) $.
  $}

  ${
    $d a b x y z $.  $d b z ph $.
    $( Version of ~ ax-strcoll with one DV condition removed and without
       initial universal quantifier.  (Contributed by BJ, 5-Oct-2019.) $)
    strcoll2 $p |- ( A. x e. a E. y ph ->
                                     E. b A. y ( y e. b <-> E. x e. a ph ) ) $=
      ( vz wex cv wral wel wrex wb wal wi weq raleq rexeq bibi2d albidv exbidv
      imbi12d ax-strcoll spi chvarv ) ACGZBFHZIZCEJZABUFKZLZCMZEGZNZUEBDHZIZUHA
      BUNKZLZCMZEGZNFDFDOZUGUOULUSUEBUFUNPUTUKUREUTUJUQCUTUIUPUHABUFUNQRSTUAUMF
      ABCFEUBUCUD $.
  $}

  ${
    $d a b x y z $.  $d z ph $.
    $( Closed form of ~ strcollnf .  Version of ~ ax-strcoll with one DV
       condition removed, the other DV condition replaced by a non-freeness
       antecedent, and without initial universal quantifier.  (Contributed by
       BJ, 21-Oct-2019.) $)
    strcollnft $p |- ( A. x A. y F/ b ph -> ( A. x e. a E. y ph ->
                                   E. b A. y ( y e. b <-> E. x e. a ph ) ) ) $=
      ( vz wex cv wral wel wrex wb wal wnf strcoll2 nfnf1 nfal nfa2 nfvd nfa1
      nfcvd sp nfrexdxy sps alcoms nfbid nfald weq wa nfan elequ2 adantl bibi1d
      nfv albid ex cbvexd syl5ib ) ACGBDHZICFJZABUSKZLZCMZFGAENZCMZBMZCEJZVALZC
      MZEGABCDFOVFVCVIFEVEEBVDECAEPQQVFVBECVDCBRZVFUTVAEVFUTESVDVAENZCBVDBMZVKC
      VLAEBUSVDBTVLEUSUAVDBUBUCUDUEUFUGVFFEUHZVCVILVFVMUIZVBVHCVFVMCVJVMCUNUJVN
      UTVGVAVMUTVGLVFFECUKULUMUOUPUQUR $.
  $}

  ${
    $d a b x y z $.  $d z ph $.
    strcollnf.nf $e |- F/ b ph $.
    $( Version of ~ ax-strcoll with one DV condition removed, the other DV
       condition replaced by a non-freeness hypothesis, and without initial
       universal quantifier.  (Contributed by BJ, 21-Oct-2019.) $)
    strcollnf $p |- ( A. x e. a E. y ph ->
                                     E. b A. y ( y e. b <-> E. x e. a ph ) ) $=
      ( wnf wal wex cv wral wel wrex wb wi strcollnft ax-gen mpg ) AEGZCHACIBDJ
      ZKCELABTMNCHEIOBABCDEPSCFQR $.

    $( Alternate proof of ~ strcollnf , not using ~ strcollnft .  (Contributed
       by BJ, 5-Oct-2019.)  (Proof modification is discouraged.)
       (New usage is discouraged.) $)
    strcollnfALT $p |- ( A. x e. a E. y ph ->
                                     E. b A. y ( y e. b <-> E. x e. a ph ) ) $=
      ( vz wex cv wral wel wrex wb wal strcoll2 nfv nfcv nfrexxy nfbi nfal weq
      elequ2 bibi1d albidv cbvex sylib ) ACHBDIZJCGKZABUGLZMZCNZGHCEKZUIMZCNZEH
      ABCDGOUKUNGEUJECUHUIEUHEPAEBUGEUGQFRSTUNGPGEUAZUJUMCUOUHULUIGECUBUCUDUEUF
      $.
  $}


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  CZF: Subset collection
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  In this section, we state the axiom scheme of subset collection, which is
  part of CZF set theory.

$)

  ${
    $d a b c d x y z $.  $d a b c d ph $.
    $( Axiom scheme of subset collection.  It is stated with all possible
       disjoint variable conditions, to show that this weak form is sufficient.
       (Contributed by BJ, 5-Oct-2019.) $)
    ax-sscoll $a |- A. a A. b E. c A. z ( A. x e. a E. y e. b ph ->
                                E. d e. c A. y ( y e. d <-> E. x e. a ph ) ) $.
  $}

  ${
    $d a b c d x y z u v $.  $d c d u v ph $.
    $( Version of ~ ax-sscoll with two DV conditions removed and without
       initial universal quantifiers.  (Contributed by BJ, 5-Oct-2019.) $)
    sscoll2 $p |- E. c A. z ( A. x e. a E. y e. b ph ->
                                E. d e. c A. y ( y e. d <-> E. x e. a ph ) ) $=
      ( vv vu cv wrex wral wb wal wi wex weq nfv rexeq wel adantl adantr bibi2d
      wa simpl raleqbidv albid rexbid imbi12d exbid ax-sscoll spi ch2varv ) ACI
      KZLZBJKZMZCHUAZABUQLZNZCOZHGKZLZPZDOZGQZACFKZLZBEKZMZUSABVJLZNZCOZHVCLZPZ
      DOZGQJEIFJERZIFRZUEZVFVQGVTGSVTVEVPDVTDSVTURVKVDVOVTUPVIBUQVJVRVSUFVSUPVI
      NVRACUOVHTUBUGVTVBVNHVCVTHSVTVAVMCVTCSVTUTVLUSVRUTVLNVSABUQVJTUCUDUHUIUJU
      HUKVGIVGIOJABCDJIGHULUMUMUN $.
  $}

$(
  ${
    $d a b c d x y z u v $.  $d u v ph $.
    sscollnf.1 $e |- F/ c ph $.
    sscollnf.2 $e |- F/ d ph $.
    @( Version of ~ ax-sscoll with two DV conditions removed, the other two DV
       conditions replaced by non-freeness hypotheses, and without initial
       universal quantifiers.  (Contributed by BJ, 5-Oct-2019.) @)
    sscollnf $p |- E. c A. z ( A. x e. a E. y e. b ph ->
                                E. d e. c A. y ( y e. d <-> E. x e. a ph ) ) $=
      ? $.
  $}
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Real numbers
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$)

  $( Axiom of Dedekind completeness for Dedekind real numbers: every inhabited
     upper-bounded located set of reals has a real upper bound.  Ideally, this
     axiom should be "proved" as "axddkcomp" for the real numbers constructed
     from IZF, and then the axiom ~ ax-ddkcomp should be used in place of
     construction specific results.  In particular, ~ axcaucvg should be proved
     from it.  (Contributed by BJ, 24-Oct-2021.) $)
  ax-ddkcomp $a |- ( ( ( A C_ RR /\ E. x x e. A ) /\
                       E. x e. RR A. y e. A y < x /\
      A. x e. RR A. y e. RR ( x < y -> ( E. z e. A x < z \/ A. z e. A z < y ) )
                     ) -> E. x e. RR (
        A. y e. A y <_ x /\ ( ( B e. R /\ A. y e. A y <_ B ) -> x <_ B ) ) ) $.

$( (End of BJ's mathbox.) $)


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Mathbox for Jim Kingdon
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)

  ${
    $d A u v x $.  $d B u v x $.  $d Q u v x $.  $d u v z $.
    qdencn.q $e |- Q =
      { z e. CC | ( ( Re ` z ) e. QQ /\ ( Im ` z ) e. QQ ) } $.
    $( The set of complex numbers whose real and imaginary parts are rational
       is dense in the complex plane.  This is a two dimensional analogue to
       ~ qdenre (and also would hold for ` RR X. RR ` with the usual metric;
       this is not about complex numbers in particular).  (Contributed by Jim
       Kingdon, 18-Oct-2021.) $)
    qdencn $p |- ( ( A e. CC /\ B e. RR+ ) ->
        E. x e. Q ( abs ` ( x - A ) ) < B ) $=
      ( vu cc wcel wa cfv cmin co cabs clt cq adantr ci cmul caddc vv crp cv c2
      cre cdiv wbr wrex cr simpl recld simpr rphalfcld qdenre syl2anc cim imcld
      simpll qcn ad2antrl ax-icn a1i mulcld addcld crred simplrl eqeltrd simprl
      qre crimd jca fveq2 eleq1d anbi12d elrab2 sylanbrc subcld abscld ad2antrr
      wceq recnd readdcld rpred cle replimd oveq2d eqtrd fveq2d abstrid eqbrtrd
      addsub4d absmuld subdid absi oveq1i mulid2d syl5eq 3eqtr3d breqtrd simprr
      c1 simplrr lt2halvesd lelttrd oveq1 breq1d rspcev rexlimddv ) CHIZDUBIZJZ
      GUCZCUEKZLMZNKZDUDUFMZOUGZAUCZCLMZNKZDOUGZAEUHZGPXKXMUIIZXPUBIZXQGPUHXKCX
      IXJUJZUKZXKDXIXJULZUMZGXMXPUNUOXKXLPIZXQJZJZUAUCZCUPKZLMZNKZXPOUGZYBUAPYK
      YMUIIZYDYPUAPUHYKCXIXJYJURZUQZXKYDYJYHQUAYMXPUNUOYKYLPIZYPJZJZXLRYLSMZTMZ
      EIZUUDCLMZNKZDOUGZYBUUBUUDHIUUDUEKZPIZUUDUPKZPIZJZUUEUUBXLUUCYKXLHIZUUAYI
      UUNXKXQXLUSUTQZUUBRYLRHIUUBVAVBZYTYLHIYKYPYLUSUTZVCZVDZUUBUUJUULUUBUUIXLP
      UUBXLYLYKXLUIIZUUAYIUUTXKXQXLVIUTQZYTYLUIIYKYPYLVIUTZVEXKYIXQUUAVFVGUUBUU
      KYLPUUBXLYLUVAUVBVJYKYTYPVHVGVKBUCZUEKZPIZUVCUPKZPIZJUUMBUUDHEUVCUUDVTZUV
      EUUJUVGUULUVHUVDUUIPUVCUUDUEVLVMUVHUVFUUKPUVCUUDUPVLVMVNFVOVPUUBUUGXOYOTM
      ZDUUBUUFUUBUUDCUUSYKXIUUAYRQVQVRUUBXOYOUUBXNUUBXLXMUUOUUBXMXKYCYJUUAYFVSW
      AZVQZVRZUUBYNUUBYLYMUUQUUBYMYKYQUUAYSQWAZVQZVRZWBUUBDXKXJYJUUAYGVSWCZUUBU
      UGXOUUCRYMSMZLMZNKZTMZUVIWDUUBUUGXNUVRTMZNKUVTWDUUBUUFUWANUUBUUFUUDXMUVQT
      MZLMZUWAXKUUFUWCVTYJUUAXKCUWBUUDLXKCYEWEWFVSUUBXLUUCXMUVQUUOUURUVJUUBRYMU
      UPUVMVCZWKWGWHUUBXNUVRUVKUUBUUCUVQUURUWDVQWIWJUUBUVSYOXOTUUBRYNSMZNKRNKZY
      OSMZUVSYOUUBRYNUUPUVNWLUUBUWEUVRNUUBRYLYMUUPUUQUVMWMWHUUBUWGXAYOSMYOUWFXA
      YOSWNWOUUBYOUUBYOUVOWAWPWQWRWFWSUUBXOYODUVLUVOUVPXKYIXQUUAXBYKYTYPWTXCXDY
      AUUHAUUDEXRUUDVTZXTUUGDOUWHXSUUFNXRUUDCLXEWHXFXGUOXHXH $.
  $}

$( (End of Jim Kingdon's mathbox.) $)


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Mathbox for Mykola Mostovenko
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)

  $( Heyting's formal system Axiom #1 from [Heyting] p. 127.  (Contributed by
     MM, 11-Aug-2018.) $)
  ax1hfs $p |- ( ph -> ( ph /\ ph ) ) $=
    ( wa ax-ia3 pm2.43i ) AAABAACD $.

$( (End of Mykola Mostovenko's mathbox.) $)


$(
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
  Mathbox for David A. Wheeler
#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
$)


$(
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Allsome quantifier
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  These are definitions and proofs involving an experimental
  "allsome" quantifier (aka "all some").

  In informal language, statements like
  "All Martians are green" imply that there is at least one Martian.
  But it's easy to mistranslate informal language into formal notations
  because similar statements like ` A. x ph -> ps ` do _not_
  imply that ` ph ` is ever true, leading to vacuous truths.
  Some systems include a mechanism to counter this, e.g., PVS allows
  types to be appended with "+" to declare that they are nonempty.
  This section presents a different solution to the same problem.

  The "allsome" quantifier expressly includes the notion of both
  "all" and "there exists at least one" (aka some), and is defined
  to make it easier to more directly express both notions.
  The hope is that if a quantifier more directly expresses this concept,
  it will be used instead and reduce the risk of creating formal expressions
  that look okay but in fact are mistranslations.
  The term "allsome" was chosen because it's short, easy to say, and
  clearly hints at the two concepts it combines.

  I do not expect this to be used much in metamath, because in metamath
  there's a general policy of avoiding the use of new definitions
  unless there are very strong reasons to do so.  Instead, my goal is to
  rigorously define this quantifier and demonstrate a few
  basic properties of it.

  The syntax allows two forms that look like they would be problematic,
  but they are fine.  When applied to a top-level implication we allow
  ` A! x ( ph -> ps ) ` , and when restricted (applied to a class) we allow
  ` A! x e. A ph ` .
  The first symbol after the setvar variable must
  always be ` e. ` if it is the form applied to a class, and since
  ` e. ` cannot begin a wff, it is unambiguous.
  The ` -> ` looks like it would be a problem because ` ph ` or ` ps `
  might include implications, but any implication arrow
  ` -> ` within any wff must be surrounded by parentheses, so only the
  implication arrow of ` A! ` can follow the wff.
  The implication syntax would work fine without the parentheses, but
  I added the parentheses because it makes things clearer inside
  larger complex expressions, and it's also more consistent with
  the rest of the syntax.

  For more, see "The Allsome Quantifier" by David A. Wheeler at
  https://dwheeler.com/essays/allsome.html
  I hope that others will eventually agree that allsome is awesome.
$)

  $c A! $. $( "inverted A" exclamation point (read: "all some"
    or more briefly "allsome") $)

  $( Extend wff definition to include "all some" applied to a top-level
     implication, which means ` ps ` is true whenever ` ph ` is true, and there
     is at least least one ` x ` where ` ph ` is true.  (Contributed by David
     A. Wheeler, 20-Oct-2018.) $)
  walsi $a wff A! x ( ph -> ps ) $.

  $( Extend wff definition to include "all some" applied to a class, which
     means ` ph ` is true for all ` x ` in ` A ` , and there is at least one
     ` x ` in ` A ` .  (Contributed by David A. Wheeler, 20-Oct-2018.) $)
  walsc $a wff A! x e. A ph $.

  ${
    $( Define "all some" applied to a top-level implication, which means ` ps `
       is true whenever ` ph ` is true and there is at least one ` x ` where
       ` ph ` is true.  (Contributed by David A. Wheeler, 20-Oct-2018.) $)
    df-alsi $a |- ( A! x ( ph -> ps ) <-> ( A. x ( ph -> ps ) /\ E. x ph ) ) $.
  $}

  ${
    $( Define "all some" applied to a class, which means ` ph ` is true for all
       ` x ` in ` A ` and there is at least one ` x ` in ` A ` .  (Contributed
       by David A. Wheeler, 20-Oct-2018.) $)
    df-alsc $a |- ( A! x e. A ph <-> ( A. x e. A ph /\ E. x x e. A ) ) $.
  $}

  $( There is an equivalence between the two "all some" forms.  (Contributed by
     David A. Wheeler, 22-Oct-2018.) $)
  alsconv $p |- ( A! x ( x e. A -> ph ) <-> A! x e. A ph ) $=
    ( wral cv wcel wex wa wi walsc walsi df-ral anbi1i df-alsc df-alsi 3bitr4ri
    wal ) ABCDZBECFZBGZHSAIBQZTHABCJSABKRUATABCLMABCNSABOP $.

  ${
    alsi1d.1 $e |- ( ph -> A! x ( ps -> ch ) ) $.
    $( Deduction rule:  Given "all some" applied to a top-level inference, you
       can extract the "for all" part.  (Contributed by David A. Wheeler,
       20-Oct-2018.) $)
    alsi1d $p |- ( ph -> A. x ( ps -> ch ) ) $=
      ( wi wal wex walsi wa df-alsi sylib simpld ) ABCFDGZBDHZABCDINOJEBCDKLM
      $.
  $}

  ${
    alsi2d.1 $e |- ( ph -> A! x ( ps -> ch ) ) $.
    $( Deduction rule:  Given "all some" applied to a top-level inference, you
       can extract the "exists" part.  (Contributed by David A. Wheeler,
       20-Oct-2018.) $)
    alsi2d $p |- ( ph -> E. x ps ) $=
      ( wi wal wex walsi wa df-alsi sylib simprd ) ABCFDGZBDHZABCDINOJEBCDKLM
      $.
  $}

  ${
    alsc1d.1 $e |- ( ph -> A! x e. A ps ) $.
    $( Deduction rule:  Given "all some" applied to a class, you can extract
       the "for all" part.  (Contributed by David A. Wheeler, 20-Oct-2018.) $)
    alsc1d $p |- ( ph -> A. x e. A ps ) $=
      ( wral cv wcel wex walsc wa df-alsc sylib simpld ) ABCDFZCGDHCIZABCDJOPKE
      BCDLMN $.
  $}

  ${
    alsc2d.1 $e |- ( ph -> A! x e. A ps ) $.
    $( Deduction rule:  Given "all some" applied to a class, you can extract
       the "there exists" part.  (Contributed by David A. Wheeler,
       20-Oct-2018.) $)
    alsc2d $p |- ( ph -> E. x x e. A ) $=
      ( wral cv wcel wex walsc wa df-alsc sylib simprd ) ABCDFZCGDHCIZABCDJOPKE
      BCDLMN $.
  $}

$( (End of David A. Wheeler's mathbox.) $)
