MPE Home Metamath Proof Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >  conventions-label Structured version   Visualization version   Unicode version

Theorem conventions-label 27259
Description:

The following explains some of the label conventions in use in the Metamath Proof Explorer ("set.mm"). For the general conventions, see conventions 27258.

Every statement has a unique identifying label, which serves the same purpose as an equation number in a book. We use various label naming conventions to provide easy-to-remember hints about their contents. Labels are not a 1-to-1 mapping, because that would create long names that would be difficult to remember and tedious to type. Instead, label names are relatively short while suggesting their purpose. Names are occasionally changed to make them more consistent or as we find better ways to name them. Here are a few of the label naming conventions:

  • Axioms, definitions, and wff syntax. As noted earlier, axioms are named "ax-NAME", proofs of proven axioms are named "axNAME", and definitions are named "df-NAME". Wff syntax declarations have labels beginning with "w" followed by short fragment suggesting its purpose.
  • Hypotheses. Hypotheses have the name of the final axiom or theorem, followed by ".", followed by a unique id (these ids are usually consecutive integers starting with 1, e.g. for rgen 2922"rgen.1 $e |- ( x e. A -> ph ) $." or letters corresponding to the (main) class variable used in the hypothesis, e.g. for mdet0 20412: "mdet0.d $e |- D = ( N maDet R ) $.").
  • Common names. If a theorem has a well-known name, that name (or a short version of it) is sometimes used directly. Examples include barbara 2563 and stirling 40306.
  • Principia Mathematica. Proofs of theorems from Principia Mathematica often use a special naming convention: "pm" followed by its identifier. For example, Theorem *2.27 of [WhiteheadRussell] p. 104 is named pm2.27 42.
  • 19.x series of theorems. Similar to the conventions for the theorems from Principia Mathematica, theorems from Section 19 of [Margaris] p. 90 often use a special naming convention: "19." resp. "r19." (for corresponding restricted quantifier versions) followed by its identifier. For example, Theorem 38 from Section 19 of [Margaris] p. 90 is labeled 19.38 1766, and the restricted quantifier version of Theorem 21 from Section 19 of [Margaris] p. 90 is labeled r19.21 2956.
  • Characters to be used for labels Although the specification of Metamath allows for dots/periods "." in any label, it is usually used only in labels for hypotheses (see above). Exceptions are the labels of theorems from Principia Mathematica and the 19.x series of theorems from Section 19 of [Margaris] p. 90 (see above) and 0.999... 14612. Furthermore, the underscore "_" should not be used.
  • Syntax label fragments. Most theorems are named using a concatenation of syntax label fragments (omitting variables) that represent the important part of the theorem's main conclusion. Almost every syntactic construct has a definition labeled "df-NAME", and normally NAME is the syntax label fragment. For example, the class difference construct  ( A  \  B ) is defined in df-dif 3577, and thus its syntax label fragment is "dif". Similarly, the subclass relation  A  C_  B has syntax label fragment "ss" because it is defined in df-ss 3588. Most theorem names follow from these fragments, for example, the theorem proving  ( A  \  B )  C_  A involves a class difference ("dif") of a subset ("ss"), and thus is labeled difss 3737. There are many other syntax label fragments, e.g., singleton construct  { A } has syntax label fragment "sn" (because it is defined in df-sn 4178), and the pair construct  { A ,  B } has fragment "pr" ( from df-pr 4180). Digits are used to represent themselves. Suffixes (e.g., with numbers) are sometimes used to distinguish multiple theorems that would otherwise produce the same label.
  • Phantom definitions. In some cases there are common label fragments for something that could be in a definition, but for technical reasons is not. The is-element-of (is member of) construct  A  e.  B does not have a df-NAME definition; in this case its syntax label fragment is "el". Thus, because the theorem beginning with  ( A  e.  ( B  \  { C } ) uses is-element-of ("el") of a class difference ("dif") of a singleton ("sn"), it is labeled eldifsn 4317. An "n" is often used for negation ( -.), e.g., nan 604.
  • Exceptions. Sometimes there is a definition df-NAME but the label fragment is not the NAME part. The definition should note this exception as part of its definition. In addition, the table below attempts to list all such cases and marks them in bold. For example, the label fragment "cn" represents complex numbers  CC (even though its definition is in df-c 9942) and "re" represents real numbers  RR ( definition df-r 9946). The empty set  (/) often uses fragment 0, even though it is defined in df-nul 3916. The syntax construct  ( A  +  B ) usually uses the fragment "add" (which is consistent with df-add 9947), but "p" is used as the fragment for constant theorems. Equality  ( A  =  B ) often uses "e" as the fragment. As a result, "two plus two equals four" is labeled 2p2e4 11144.
  • Other markings. In labels we sometimes use "com" for "commutative", "ass" for "associative", "rot" for "rotation", and "di" for "distributive".
  • Focus on the important part of the conclusion. Typically the conclusion is the part the user is most interested in. So, a rough guideline is that a label typically provides a hint about only the conclusion; a label rarely says anything about the hypotheses or antecedents. If there are multiple theorems with the same conclusion but different hypotheses/antecedents, then the labels will need to differ; those label differences should emphasize what is different. There is no need to always fully describe the conclusion; just identify the important part. For example, cos0 14880 is the theorem that provides the value for the cosine of 0; we would need to look at the theorem itself to see what that value is. The label "cos0" is concise and we use it instead of "cos0eq1". There is no need to add the "eq1", because there will never be a case where we have to disambiguate between different values produced by the cosine of zero, and we generally prefer shorter labels if they are unambiguous.
  • Closures and values. As noted above, if a function df-NAME is defined, there is typically a proof of its value labeled "NAMEval" and of its closure labeld "NAMEcl". E.g., for cosine (df-cos 14801) we have value cosval 14853 and closure coscl 14857.
  • Special cases. Sometimes, syntax and related markings are insufficient to distinguish different theorems. For example, there are over a hundred different implication-only theorems. They are grouped in a more ad-hoc way that attempts to make their distinctions clearer. These often use abbreviations such as "mp" for "modus ponens", "syl" for syllogism, and "id" for "identity". It is especially hard to give good names in the propositional calculus section because there are so few primitives. However, in most cases this is not a serious problem. There are a few very common theorems like ax-mp 5 and syl 17 that you will have no trouble remembering, a few theorem series like syl*anc and simp* that you can use parametrically, and a few other useful glue things for destructuring 'and's and 'or's (see natded 27260 for a list), and that is about all you need for most things. As for the rest, you can just assume that if it involves at most three connectives, then it is probably already proved in set.mm, and searching for it will give you the label.
  • Suffixes. Suffixes are used to indicate the form of a theorem (see above). Additionally, we sometimes suffix with "v" the label of a theorem eliminating a hypothesis such as  F/ x ph in 19.21 2075 via the use of disjoint variable conditions combined with nfv 1843. If two (or three) such hypotheses are eliminated, the suffix "vv" resp. "vvv" is used, e.g. exlimivv 1860. Conversely, we sometimes suffix with "f" the label of a theorem introducing such a hypothesis to eliminate the need for the disjoint variable condition; e.g. euf 2478 derived from df-eu 2474. The "f" stands for "not free in" which is less restrictive than "does not occur in." The suffix "b" often means "biconditional" ( <->, "iff" , "if and only if"), e.g. sspwb 4917. 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 17) -type inference in a proof. A theorem label is suffixed with "ALT" if it provides an alternate less-preferred proof of a theorem (e.g., the proof is clearer but uses more axioms than the preferred version). The "ALT" may be further suffixed with a number if there is more than one alternate theorem. Furthermore, a theorem label is suffixed with "OLD" if there is a new version of it and the OLD version is obsolete (and will be removed within one year). Finally, it should be mentioned that suffixes can be combined, for example in cbvaldva 2281 (cbval 2271 in deduction form "d" with a not free variable replaced by a disjoint variable condition "v" with a conjunction as antecedent "a"). As a general rule, the suffixes for the theorem forms ("i", "d" or "g") should be the first of multiple suffixes, as for example in vtocldf 3256 or rabeqif 3191. Here is a non-exhaustive list of common suffixes:
    • a : theorem having a conjunction as antecedent
    • b : theorem expressing a logical equivalence
    • c : contraction (e.g., sylc 65, syl2anc 693), commutes (e.g., biimpac 503)
    • d : theorem in deduction form
    • f : theorem with a hypothesis such as  F/ x ph
    • g : theorem in closed form having an "is a set" antecedent
    • i : theorem in inference form
    • l : theorem concerning something at the left
    • r : theorem concerning something at the right
    • r : theorem with something reversed (e.g., a biconditional)
    • s : inference that manipulates an antecedent ("s" refers to an application of syl 17 that is eliminated)
    • v : theorem with one (main) disjoint variable condition
    • vv : theorem with two (main) disjoint variable conditions
    • w : weak(er) form of a theorem
    • ALT : alternate proof of a theorem
    • ALTV : alternate version of a theorem or definition
    • OLD : old/obsolete version of a theorem/definition/proof
  • Reuse. When creating a new theorem or axiom, try to reuse abbreviations used elsewhere. A comment should explain the first use of an abbreviation.

The following table shows some commonly used abbreviations in labels, in alphabetical order. For each abbreviation we provide a mnenomic, the source theorem or the assumption defining it, an expression showing what it looks like, whether or not it is a "syntax fragment" (an abbreviation that indicates a particular kind of syntax), and hyperlinks to label examples that use the abbreviation. The abbreviation is bolded if there is a df-NAME definition but the label fragment is not NAME. This is not a complete list of abbreviations, though we do want this to eventually be a complete list of exceptions.
AbbreviationMnenomicSource ExpressionSyntax?Example(s)
aand (suffix) No biimpa 501, rexlimiva 3028
ablAbelian group df-abl 18196  Abel Yes ablgrp 18198, zringabl 19822
absabsorption No ressabs 15939
absabsolute value (of a complex number) df-abs 13976  ( abs `  A ) Yes absval 13978, absneg 14017, abs1 14037
adadding No adantr 481, ad2antlr 763
addadd (see "p") df-add 9947  ( A  +  B ) Yes addcl 10018, addcom 10222, addass 10023
al"for all"  A. x ph No alim 1738, alex 1753
ALTalternative/less preferred (suffix) No idALT 23
anand df-an 386  ( ph  /\  ps ) Yes anor 510, iman 440, imnan 438
antantecedent No adantr 481
assassociative No biass 374, orass 546, mulass 10024
asymasymmetric, antisymmetric No intasym 5511, asymref 5512, posasymb 16952
axaxiom No ax6dgen 2005, ax1cn 9970
bas, base base (set of an extensible structure) df-base 15863  ( Base `  S ) Yes baseval 15918, ressbas 15930, cnfldbas 19750
b, bibiconditional ("iff", "if and only if") df-bi 197  ( ph  <->  ps ) Yes impbid 202, sspwb 4917
brbinary relation df-br 4654  A R B Yes brab1 4700, brun 4703
cbvchange bound variable No cbvalivw 1934, cbvrex 3168
clclosure No ifclda 4120, ovrcl 6686, zaddcl 11417
cncomplex numbers df-c 9942  CC Yes nnsscn 11025, nncn 11028
cnfldfield of complex numbers df-cnfld 19747 fld Yes cnfldbas 19750, cnfldinv 19777
cntzcentralizer df-cntz 17750  (Cntz `  M ) Yes cntzfval 17753, dprdfcntz 18414
cnvconverse df-cnv 5122  `' A Yes opelcnvg 5302, f1ocnv 6149
cocomposition df-co 5123  ( A  o.  B ) Yes cnvco 5308, fmptco 6396
comcommutative No orcom 402, bicomi 214, eqcomi 2631
concontradiction, contraposition No condan 835, con2d 129
csbclass substitution df-csb 3534  [_ A  /  x ]_ B Yes csbid 3541, csbie2g 3564
cygcyclic group df-cyg 18280 CycGrp Yes iscyg 18281, zringcyg 19839
ddeduction form (suffix) No idd 24, impbid 202
df(alternate) definition (prefix) No dfrel2 5583, dffn2 6047
di, distrdistributive No andi 911, imdi 378, ordi 908, difindi 3881, ndmovdistr 6823
difclass difference df-dif 3577  ( A  \  B ) Yes difss 3737, difindi 3881
divdivision df-div 10685  ( A  /  B ) Yes divcl 10691, divval 10687, divmul 10688
dmdomain df-dm 5124  dom  A Yes dmmpt 5630, iswrddm0 13329
e, eq, equequals df-cleq 2615  A  =  B Yes 2p2e4 11144, uneqri 3755, equtr 1948
edgedge df-edg 25940  (Edg `  G ) Yes edgopval 25944, usgredgppr 26088
elelement of  A  e.  B Yes eldif 3584, eldifsn 4317, elssuni 4467
eu"there exists exactly one" df-eu 2474  E! x ph Yes euex 2494, euabsn 4261
exexists (i.e. is a set) No brrelex 5156, 0ex 4790
ex"there exists (at least one)" df-ex 1705  E. x ph Yes exim 1761, alex 1753
expexport No expt 168, expcom 451
f"not free in" (suffix) No equs45f 2350, sbf 2380
ffunction df-f 5892  F : A --> B Yes fssxp 6060, opelf 6065
falfalse df-fal 1489 F. Yes bifal 1497, falantru 1508
fifinite intersection df-fi 8317  ( fi `  B ) Yes fival 8318, inelfi 8324
fi, finfinite df-fin 7959  Fin Yes isfi 7979, snfi 8038, onfin 8151
fldfield (Note: there is an alternative definition  Fld of a field, see df-fld 33791) df-field 18750 Field Yes isfld 18756, fldidom 19305
fnfunction with domain df-fn 5891  A  Fn  B Yes ffn 6045, fndm 5990
frgpfree group df-frgp 18123  (freeGrp `  I ) Yes frgpval 18171, frgpadd 18176
fsuppfinitely supported function df-fsupp 8276  R finSupp  Z Yes isfsupp 8279, fdmfisuppfi 8284, fsuppco 8307
funfunction df-fun 5890  Fun  F Yes funrel 5905, ffun 6048
fvfunction value df-fv 5896  ( F `  A ) Yes fvres 6207, swrdfv 13424
fzfinite set of sequential integers df-fz 12327  ( M ... N ) Yes fzval 12328, eluzfz 12337
fz0finite set of sequential nonnegative integers  ( 0 ... N ) Yes nn0fz0 12437, fz0tp 12440
fzohalf-open integer range df-fzo 12466  ( M..^ N ) Yes elfzo 12472, elfzofz 12485
gmore general (suffix); eliminates "is a set" hypothsis No uniexg 6955
grgraph No uhgrf 25957, isumgr 25990, usgrres1 26207
grpgroup df-grp 17425  Grp Yes isgrp 17428, tgpgrp 21882
gsumgroup sum df-gsum 16103  ( G  gsumg  F ) Yes gsumval 17271, gsumwrev 17796
hashsize (of a set) df-hash 13118  ( # `  A ) Yes hashgval 13120, hashfz1 13134, hashcl 13147
hbhypothesis builder (prefix) No hbxfrbi 1752, hbald 2041, hbequid 34194
hm(monoid, group, ring) homomorphism No ismhm 17337, isghm 17660, isrhm 18721
iinference (suffix) No eleq1i 2692, tcsni 8619
iimplication (suffix) No brwdomi 8473, infeq5i 8533
ididentity No biid 251
iedgindexed edge df-iedg 25877  (iEdg `  G ) Yes iedgval0 25932, edgiedgb 25947
idmidempotent No anidm 676, tpidm13 4291
im, impimplication (label often omitted) df-im 13841  ( A  ->  B ) Yes iman 440, imnan 438, impbidd 200
imaimage df-ima 5127  ( A " B ) Yes resima 5431, imaundi 5545
impimport No biimpa 501, impcom 446
inintersection df-in 3581  ( A  i^i  B ) Yes elin 3796, incom 3805
infinfimum df-inf 8349 inf ( RR+ ,  RR* ,  <  ) Yes fiinfcl 8407, infiso 8413
is...is (something a) ...? No isring 18551
jjoining, disjoining No jc 159, jaoi 394
lleft No olcd 408, simpl 473
mapmapping operation or set exponentiation df-map 7859  ( A  ^m  B ) Yes mapvalg 7867, elmapex 7878
matmatrix df-mat 20214  ( N Mat  R ) Yes matval 20217, matring 20249
mdetdeterminant (of a square matrix) df-mdet 20391  ( N maDet  R ) Yes mdetleib 20393, mdetrlin 20408
mgmmagma df-mgm 17242  Magma Yes mgmidmo 17259, mgmlrid 17266, ismgm 17243
mgpmultiplicative group df-mgp 18490  (mulGrp `  R ) Yes mgpress 18500, ringmgp 18553
mndmonoid df-mnd 17295  Mnd Yes mndass 17302, mndodcong 17961
mo"there exists at most one" df-mo 2475  E* x ph Yes eumo 2499, moim 2519
mpmodus ponens ax-mp 5 No mpd 15, mpi 20
mptmodus ponendo tollens No mptnan 1693, mptxor 1694
mptmaps-to notation for a function df-mpt 4730  ( x  e.  A  |->  B ) Yes fconstmpt 5163, resmpt 5449
mpt2maps-to notation for an operation df-mpt2 6655  ( x  e.  A ,  y  e.  B  |->  C ) Yes mpt2mpt 6752, resmpt2 6758
mulmultiplication (see "t") df-mul 9948  ( A  x.  B ) Yes mulcl 10020, divmul 10688, mulcom 10022, mulass 10024
n, notnot  -.  ph Yes nan 604, notnotr 125
nenot equaldf-ne  A  =/=  B Yes exmidne 2804, neeqtrd 2863
nelnot element ofdf-nel  A  e/  B Yes neli 2899, nnel 2906
ne0not equal to zero (see n0)  =/=  0 No negne0d 10390, ine0 10465, gt0ne0 10493
nf "not free in" (prefix) No nfnd 1785
ngpnormed group df-ngp 22388 NrmGrp Yes isngp 22400, ngptps 22406
nmnorm (on a group or ring) df-nm 22387  ( norm `  W ) Yes nmval 22394, subgnm 22437
nnpositive integers df-nn 11021  NN Yes nnsscn 11025, nncn 11028
nn0nonnegative integers df-n0 11293  NN0 Yes nnnn0 11299, nn0cn 11302
n0not the empty set (see ne0)  =/=  (/) No n0i 3920, vn0 3924, ssn0 3976
OLDold, obsolete (to be removed soon) No 19.43OLD 1811
opordered pair df-op 4184  <. A ,  B >. Yes dfopif 4399, opth 4945
oror df-or 385  ( ph  \/  ps ) Yes orcom 402, anor 510
otordered triple df-ot 4186  <. A ,  B ,  C >. Yes euotd 4975, fnotovb 6694
ovoperation value df-ov 6653  ( A F B ) Yes fnotovb 6694, fnovrn 6809
pplus (see "add"), for all-constant theorems df-add 9947  ( 3  +  2 )  =  5 Yes 3p2e5 11160
pfxprefix df-pfx 41382  ( W prefix  L ) Yes pfxlen 41391, ccatpfx 41409
pmPrincipia Mathematica No pm2.27 42
pmpartial mapping (operation) df-pm 7860  ( A  ^pm  B ) Yes elpmi 7876, pmsspw 7892
prpair df-pr 4180  { A ,  B } Yes elpr 4198, prcom 4267, prid1g 4295, prnz 4310
prm, primeprime (number) df-prm 15386  Prime Yes 1nprm 15392, dvdsprime 15400
pssproper subset df-pss 3590  A  C.  B Yes pssss 3702, sspsstri 3709
q rational numbers ("quotients") df-q 11789  QQ Yes elq 11790
rright No orcd 407, simprl 794
rabrestricted class abstraction df-rab 2921  { x  e.  A  |  ph } Yes rabswap 3121, df-oprab 6654
ralrestricted universal quantification df-ral 2917  A. x  e.  A ph Yes ralnex 2992, ralrnmpt2 6775
rclreverse closure No ndmfvrcl 6219, nnarcl 7696
rereal numbers df-r 9946  RR Yes recn 10026, 0re 10040
relrelation df-rel 5121  Rel  A Yes brrelex 5156, relmpt2opab 7259
resrestriction df-res 5126  ( A  |`  B ) Yes opelres 5401, f1ores 6151
reurestricted existential uniqueness df-reu 2919  E! x  e.  A ph Yes nfreud 3112, reurex 3160
rexrestricted existential quantification df-rex 2918  E. x  e.  A ph Yes rexnal 2995, rexrnmpt2 6776
rmorestricted "at most one" df-rmo 2920  E* x  e.  A ph Yes nfrmod 3113, nrexrmo 3163
rnrange df-rn 5125  ran  A Yes elrng 5314, rncnvcnv 5349
rng(unital) ring df-ring 18549  Ring Yes ringidval 18503, isring 18551, ringgrp 18552
rotrotation No 3anrot 1043, 3orrot 1044
seliminates need for syllogism (suffix) No ancoms 469
sb(proper) substitution (of a set) df-sb 1881  [ y  /  x ] ph Yes spsbe 1884, sbimi 1886
sbc(proper) substitution of a class df-sbc 3436  [. A  /  x ]. ph Yes sbc2or 3444, sbcth 3450
scascalar df-sca 15957  (Scalar `  H ) Yes resssca 16031, mgpsca 18496
simpsimple, simplification No simpl 473, simp3r3 1171
snsingleton df-sn 4178  { A } Yes eldifsn 4317
spspecialization No spsbe 1884, spei 2261
sssubset df-ss 3588  A  C_  B Yes difss 3737
structstructure df-struct 15859 Struct Yes brstruct 15866, structfn 15874
subsubtract df-sub 10268  ( A  -  B ) Yes subval 10272, subaddi 10368
supsupremum df-sup 8348  sup ( A ,  B ,  <  ) Yes fisupcl 8375, supmo 8358
suppsupport (of a function) df-supp 7296  ( F supp  Z ) Yes ressuppfi 8301, mptsuppd 7318
swapswap (two parts within a theorem) No rabswap 3121, 2reuswap 3410
sylsyllogism syl 17 No 3syl 18
symsymmetric No df-symdif 3844, cnvsym 5510
symgsymmetric group df-symg 17798  ( SymGrp `  A ) Yes symghash 17805, pgrpsubgsymg 17828
t times (see "mul"), for all-constant theorems df-mul 9948  ( 3  x.  2 )  =  6 Yes 3t2e6 11179
ththeorem No nfth 1727, sbcth 3450, weth 9317
tptriple df-tp 4182  { A ,  B ,  C } Yes eltpi 4229, tpeq1 4277
trtransitive No bitrd 268, biantr 972
trutrue df-tru 1486 T. Yes bitru 1496, truanfal 1507
ununion df-un 3579  ( A  u.  B ) Yes uneqri 3755, uncom 3757
unitunit (in a ring) df-unit 18642  (Unit `  R ) Yes isunit 18657, nzrunit 19267
vdisjoint variable conditions used when a not-free hypothesis (suffix) No spimv 2257
vtxvertex df-vtx 25876  (Vtx `  G ) Yes vtxval0 25931, opvtxov 25885
vv2 disjoint variables (in a not-free hypothesis) (suffix) No 19.23vv 1903
wweak (version of a theorem) (suffix) No ax11w 2007, spnfw 1928
wrdword df-word 13299 Word  S Yes iswrdb 13311, wrdfn 13319, ffz0iswrd 13332
xpcross product (Cartesian product) df-xp 5120  ( A  X.  B ) Yes elxp 5131, opelxpi 5148, xpundi 5171
xreXtended reals df-xr 10078  RR* Yes ressxr 10083, rexr 10085, 0xr 10086
z integers (from German "Zahlen") df-z 11378  ZZ Yes elz 11379, zcn 11382
zn ring of integers  mod  n df-zn 19855  (ℤ/n `  N ) Yes znval 19883, zncrng 19893, znhash 19907
zringring of integers df-zring 19819 ring Yes zringbas 19824, zringcrng 19820
0, z slashed zero (empty set) (see n0) df-nul 3916  (/) Yes n0i 3920, vn0 3924; snnz 4309, prnz 4310

(Contributed by DAW, 27-Dec-2016.) (New usage is discouraged.)

Hypothesis
Ref Expression
conventions-label.1  |-  ph
Assertion
Ref Expression
conventions-label  |-  ph

Proof of Theorem conventions-label
StepHypRef Expression
1 conventions-label.1 1  |-  ph
Colors of variables: wff setvar class
This theorem is referenced by: (None)
  Copyright terms: Public domain W3C validator