Hi All,
I wrote a bit about this update on a previous thread, but now that it is complete I'll repeat it and add a few new developments since then. Sorry it took so long, I know there are some merges which were delayed because of my incomplete work which I'll catch up on now. Stefan's branch has been merged up to a6e567 'two new rings' (which had a few incomplete proofs - I hope you don't mind that I finished them for you!), and I will merge Drahflow's contribution as soon as I hear what name he would prefer for his work. (For my part, I would suggest using one's real name, since that seems to be the convention and also lends a bit more appearance of authority in academic circles, but the choice is his.)
The list below is expanded from the original with new items; the originals are numbered 1,2,3... and the new items are lettered a,b,c....
a. Added utility theorems rbaib and ralab2 (the ralab2 sequence is useful when the abstraction is more complicated than the quantified formula)
b. hbsbc1 and hbcsb1 now use a DV condition instead of a bound variable hypothesis for $d x A since this is more useful 99% of the time. The originals are at hbsbc1f etc.
c. df-mpt has been moved to just after df-opab, and all theorems that used df-opab or df-oprab for creating functions have been converted to use df-mpt / df-mpt2. This affected many old mathboxes with theorems written before df-mpt was created. As a result, there are now a number of new convenience theorems for df-mpt, such as fvmpt3i, fnmpti, ralrnmpt, elrnmpt1s. Users are encouraged to check out the new offerings.
d. Utility theorems op1std, op2ndd are often useful as a replacement to op1st etc.
e. As suggested by Stefan, a new syntax construction "tpos F" swaps the left and right arguments of a two-argument function. Because of its similarities to the converse operation and validity on proper classes, I thought it better to support as a syntax construction rather than a function "( tpos ` F )". See df-tpos for the available theorems. So far this construction has been used for oppG, oppR, and FL's dual category theorem (dualcat2).
f. rdgsucmpt2 may provide shorter derivation trees than rdgsucmptf; see if it is useful in your application.
1. df-er is now a two-parameter syntax construction, and includes
the relation assumption. (I always found it odd that textbooks claim
that an equivalence relation is reflexive, symmetric and transitive, but
our iser only requires symmetric and transitive. Adding the domain
fixes this.)
g. Yet another choice principle has been added: "X e. AC_ A" (df-acn) means that for all families of nonempty subsets of X indexed by A, there is a choice function for the family. This is read "X has choice sequences of length A", and it is a cardinal invariant in both X and A which passes from larger sets to smaller. Every set has finite choice sequences (finacn), and a well-orderable set has choice sequences of any length (numacn), while ax-cc is equivalent to "AC_ om = _V" (acncc). The purpose of this construction is to access "parameterized" versions of AC - each statement "X e. AC_ A" can be viewed as a weak version of choice - and some statements depend in nontrivial ways on both arguments, such as fodomacn. This also allows for unifying the proofs of iundom (which uses ax-ac) and iunctb (which uses ax-cc) into iundomg, which has explicit choice principles via df-acn.
h. ltne has lost its second unnecessary hypothesis "B e. RR", and ltneii has been augmented with gtneii which commutes the disequality (as discussed before on this list).
2. df-adde and df-nege were taken from FL's
mathbox and built on extensively, under the new names df-xadd, df-xneg,
df-xmul. These are operations for addition, multiplication, negation of
extended reals, and most of the important algebraic theorems are there
(x+-x=0, x+y=y+x, x+(y+z)=(x+y)+z, x <_ y -> x+z <_ y+z,
x*(y+z)=x*y+x*z, x*y=y*x, etc.), with the usual caveats. In order to
have unconditional closure and avoid a bunch of unnecessary hypotheses, I
defined +oo + -oo = 0 * +oo = 0. For example, associativity of addition
is true assuming all numbers are in ( RR* \ {-oo} ) (and there is a
separate theorem for ( RR* \ {+oo} )).
i. df-fzo (half-open integer sequences), from Stefan's mathbox, has been imported. This can probably be used in many places but I haven't done much with it yet.
j. sqr2irr is an important proof, being mentioned in Freek Wiedijk's famous paper "The Seventeen Provers of the World". Nevertheless, the current proof shows its age with respect to the surrounding material, and I did my best to rewrite it into "modern" form for about half the length, while still maintaining the lack of any "advanced tricks" from the original proof - the most advanced lemma is nnesqi, which is now called nnesq in theorem form.
3. Struct and Slot definitions. Struct is mainly useful as a lemma for strfv; the statement "S Struct <. M , N >." means that S\{(/)} is a function on a subset of (M...N) - it functions as a "loop invariant" when recursing over a union of ordered pairs defining a structure (arranged in increasing order by slot), and allows for the structure proof in O(n) and slot extraction in O(log n) per slot, for a total of O(n log n) over all theorems for the structure, which I think is asymptotically optimal. Slot just gives a name to the "(x e. _V |-> (x`2))" construction used for slots like +g.
4.
All the slots (including those in mathboxes) are now collected in the
"Slot definitions" section, and in the future any new slots will be
moved here immediately. This makes it easier for an author to make sure
that they are not conflicting with someone else's slot. (Specifically:
slots 4, 8 and 13 are now taken by Norm's df-starv and df-ipr, and FL's
df-unif.) Aside from the definition, any slot that gets use will have
ndxarg and ndxid specializations.
5. As promised, TopOpen has
been split into two functions: TopSet is the slot, and (TopOpen`W) =
((TopSet`W) |`t (Base`W)) is the truncated topology so that it plays
well with |`s. Generally, one will want to avoid TopSet in favor of
TopOpen, and any derived structures should reference TopOpen.
6. Since the derivation order switch of Xm_ (df-prdm) and Xs_
(df-prds) made Xs_ almost useless as a special case of Xm_, and no
theorems were ever built on it, Xs_ has been deleted. However I like the
name Xs_ better, so Xm_ was renamed to Xs_ and similarly for the
theorem labels *prdm* -> *prds*.
7. The extended real
operations have been put into a new "canonical structure" RR*s (df-xrs)
which also includes an extended metric in the metric slot and the order
topology induced by <.
8. df-xps has been developed,
meaning a bunch of utility theorems for the function `' ( { x } +c { y }
), which is a nice compact way of writing the function on 2o that sends
(/) to x and 1o to y. Since df-xps is defined in terms of existing
constructions (df-imas and df-prds) that have already been developed,
this means that we immediately get theorems for the product of two
groups, rings, modules, etc. The fact that the topology is df-tx is
non-trivial, though.
9. In order to make TopGrp
restriction-friendly, a new df-plusf function has been introduced, which
is the "functionalization" of df-plusg, and TopGrp asserts that this
function is continuous. To functionalize the ring multiplication you can
use mulGrp and +f, but for scalar multiplication we will need a new
definition.
k. Stefan's "Word" definition (adapted from FL's "Kleene") has been imported. There are many uses for strings in mathematics, and this is one section which I hope gets enough utility theorems to be painless to use. I put it after monoids because I plan to build FreeMnd and FreeGrp on top of it.
l. The symmetric group is now a topological group, under the product topology. I plan to make this a subgroup of the topological monoid of endofunctions on a set (in fact it is the unit group of the monoid, although our current "multiplicative" definition of unit group is designed for rings, not monoids).
m. As suggested/implemented by Stefan, df-od has been edited to take value 0 instead of +oo at "infinite order" elements. Although this goes against the usual terminology in group theory, it is more natural for the divisibility characterization of order (oddvds) and also matches the usual definition of characteristic of a ring as the group order of the identity. Some theorems such as mndodcong discuss the behavior of the order function on monoids, which is not as pleasant as in groups. In a monoid, the sequence of powers of an element will usually be an initial segment followed by a loop, such as 0,1,2,3,2,3,2,3,... and I wonder whether we should take the order of such an element to be the length of the loop, i.e. 2 in this case, rather than infinite (since 0 never appears again in the sequence).
n. As suggested by Gerard, the "Z2Ring" (ZZ to ring) ring homomorphism has been renamed to "ZRHom" (ZZ ring homomorphism) which is hopefully less confusing. This is the function that maps n e. NN to 1r+1r+...+1r (n times), with the obvious extension to ZZ. Stefan's df-chr has also been imported to describe the behavior of this function in connection with the ring characteristic (a straight port of analogous results for group order).
10. Metric spaces now have an explicit base
set "D e. ( Met ` X )" instead of the dom dom thing, similar to the Fil
change. Furthermore, the addition of extended real addition and the
proof of the product metric have necessitated the development of
extended metrics. Since almost all theorems from metrics generalize to
extended metrics with little change, most of the metric theorems now
refer to *Met instead of Met. Similarly, df-ball and df-mopn (renamed
from df-opn, since 'opn' is usually used to refer to open sets in a
topology and using them for the metric topology as well is confusing)
now allow extended metrics. The radius of a ball is allows to be any
extended real, which in particular means that -. (/) e. ran ( ball ` D )
is no longer true. This does not affect the generated topologies,
though, so I think it is harmless.
11. Although Top has not been
converted to use a base set the same way as Met, I am doing a "soft
introduction" by introducing df-topon and using it in most of the later
topology theorems, in particular for filters and continuity. Derived
topological spaces (like Haus) have not been changed to add a base set;
you will have to write ( J e. Haus /\ J e. ( TopOn ` X ) ) if you want
to use a specific base set. But the old method of just using $e |- X =
U. J is not deprecated, and both approaches are in use. Also the Cn and
CnP predicates have had some unutilized reverse closure properties; a
lot of hypotheses were eliminated by taking advantage of these.
o. The order topology is now supported, including in
particular the topology of the extended reals. It accepts a TosetRel or
more general relation (note that weak inequality is used), and produces
a topology generated by the closed rays (-oo, a], [a,+oo), (+oo,-oo) as
a closed subbasis. Not too much work has been done on non-TosetRel
relations, but note that this definition makes sense for lattices, where
the definition produces the so-called "interval topology".
12.
Separation axioms have been developed - I imported df-t0, df-reg,
df-nrm from JGH's mathbox and added CNrm, PNrm for completely normal and
perfectly normal, with enough theorems to fill out the chart
https://en.wikipedia.org/wiki/Separation_axioms#Relationships_between_the_axioms
. I also added the Kolmogorov quotient so that even the "non-T0"
versions are accessible; the only separation axioms missing at this
point are Urysohn, completely Hausdorff, and Tychonoff (which require
continuous functions into RR and so are not appropriate to go in the
section with df-haus).
13. The ultrafilter lemma is now a
definition, localized by base set (X e. UFL iff every filter on X
extends to an ultrafilter). I made a new proof of the Alexander subbase
theorem using UFL instead of Zorn's lemma (the original alexsub is kept
as *ALT), and finally used it to prove Tychonoff's theorem, with an
explicit choice hypothesis (you have to assume U. (Xt_`F) e. (UFL i^i
dom card) ), so that I could add the other half of dfac21i without using
choice.
14. JGH's filter cluster theorems have been
imported (they were already well-developed enough as it is and it is
easier to maintain them from main).
p. Topological monoids and topological groups have been developed. I separated the definitions of TopMnd and TopGrp to allow for easy access of paratopological groups and other similar notions. Interesting theorems include: the group sum operation is continuous into a function space (tmdgsum), for any neighborhood nA e. U there is a neighborhood A e. V such that any sum of n elements in V is in U (tmdgsum2), any group with the discrete or indiscrete topology is a TopGrp (distgp, indistgp), an open subgroup is closed (opnsubg), the closure of a (normal) subgroup is a (normal) subgroup (clssubg, clsnsg), the connected component of the identity is a normal subgroup (tgpconcomp), a TopGrp is T0/T1/Hausdorff iff {0} is closed (tgphaus, tgpt1, tgpt0).
q. The topological group sum operation has been developed. The most basic theorems require that G is a (CMnd i^i TopSp) and F : A --> (Base`G) for some (possibly infinite) index set A, in which case (G tsums F) is the set of convergent points of the group sum. Any finite group sum converges to its usual value (tsmsid), and in fact it converges to the closure of {(G gsum F)} in this case (tsmsgsum). In topological groups this is also true generally - a convergent sum always converges to a coset of (cls`{0}) (tgptsmscls). Topological sums distribute nicely over submonoids (tsmssubm), trivial restrictions (tsmsres), bijections (tsmsf1o), continuous monoid homomorphisms (tsmsmhm), group addition (tsmsadd), and partitions (tsmssplit). Unfortunately the equivalent of gsumxp is only true under certain conditions, but we can say that in a topological group, if sum_k F(j,k) ~~> H(j) for each j, and (sum F) ~~> a, then (sum H) ~~> a as well (tsmsxp).
r. A number of new results relate the topology and metric of RR* to that of RR and CC. The complex numbers are a MetSp and a TopSp, and (TopOpen`CCfld) is a topology on CC. This is now used in preference to the old ( MetOpen ` ( abs o. - ) ) as an idiom for "the topology of CC". A neighborhood of
+oo contains (a,+oo] for some a e. RR (pnfnei), the restriction of the
RR* topology to RR yields the usual topology (xrtgioo), the topology is
homeomorphic to II (xrhmph), ~~>r limits correspond to continuity at
+oo (xrlimcnp), sums on [0,+oo] always converge uniquely (xrge0tsms). RR* has an extended metric (xrsxmet) which extends the usual metric on RR (xrsdsre) and generates a finer topology than the usual one on RR* (xrsmopn). You would think that this topology is not very useful, but it turns out to be the natural one for dealing with extended metrics as continuous functions (xmetdcn2).
s. df-fne and df-locfin in Jeff Hankins' mathbox underwent some simple proof-shortening/modification, and neibastop1/2/3 was considerably shortened (I wasn't planning on it, but I had to do some simple modifications and the original was nearly unreadable), as well as the topology lattice theorems (topmeet, topjoin, fnemeet1, etc.).
t. The Bnd and TotBnd predicates have also been changed to (Bnd`X) and (TotBnd`X), and the section was developed some more, with new material on boundedness of a product metric and a new derivation of total boundedness of balls in Rn via total boundedness in the supremum metric. df-rrn was also changed to use a finite index set instead of a (1...N) index set.
Believe it or not, these are just the highlights of this big update, and because I don't want to bore you I have just touched on the more mathematically interesting bits. For the full story there is no better source than the diff of commit a54a88c over b52eacd, and of course I can talk in greater detail on any of the points above. Unfortunately, as is usual with this sort of bleeding-edge work you won't see the material up on the site until the next "official release", but you can always download the latest off of github (
https://github.com/metamath/set.mm/commit/a54a88c) and generate your own HTML.
Mario Carneiro