HomeHome Metamath Proof Explorer < Previous   Next >
Bad symbols? Use Firefox
(or GIF version for IE).

Jump to page: Contents + 1 1-100 2 101-200 3 201-300 4 301-400 5 401-500 6 501-600 7 601-700 8 701-800 9 801-900 10 901-1000 11 1001-1100 12 1101-1200 13 1201-1300 14 1301-1400 15 1401-1500 16 1501-1600 17 1601-1700 18 1701-1800 19 1801-1900 20 1901-2000 21 2001-2100 22 2101-2200 23 2201-2300 24 2301-2400 25 2401-2500 26 2501-2600 27 2601-2700 28 2701-2800 29 2801-2900 30 2901-3000 31 3001-3100 32 3101-3200 33 3201-3300 34 3301-3400 35 3401-3500 36 3501-3600 37 3601-3700 38 3701-3800 39 3801-3900 40 3901-4000 41 4001-4100 42 4101-4200 43 4201-4300 44 4301-4400 45 4401-4500 46 4501-4600 47 4601-4700 48 4701-4800 49 4801-4900 50 4901-5000 51 5001-5100 52 5101-5200 53 5201-5300 54 5301-5400 55 5401-5500 56 5501-5600 57 5601-5700 58 5701-5800 59 5801-5900 60 5901-6000 61 6001-6100 62 6101-6200 63 6201-6300 64 6301-6400 65 6401-6500 66 6501-6600 67 6601-6700 68 6701-6800 69 6801-6900 70 6901-7000 71 7001-7100 72 7101-7200 73 7201-7300 74 7301-7400 75 7401-7500 76 7501-7600 77 7601-7700 78 7701-7800 79 7801-7900 80 7901-8000 81 8001-8100 82 8101-8200 83 8201-8300 84 8301-8400 85 8401-8500 86 8501-8600 87 8601-8700 88 8701-8800 89 8801-8900 90 8901-9000 91 9001-9100 92 9101-9200 93 9201-9300 94 9301-9400 95 9401-9500 96 9501-9600 97 9601-9700 98 9701-9800 99 9801-9900 100 9901-10000 101 10001-10100 102 10101-10200 103 10201-10300 104 10301-10400 105 10401-10500 106 10501-10600 107 10601-10617

Color key:    Metamath Proof Explorer  Metamath Proof Explorer (1-8726)   Hilbert Space Explorer  Hilbert Space Explorer (8727-10617)  

Statement List for Metamath Proof Explorer - 1401-1500 - Page 15 of 107
TypeLabelDescription
Statement
 
Theoremcbvmo 1401 Rule used to change bound variables with implicit substitution.
(φ → ∀yφ)    &   (ψ → ∀xψ)    &   (x = y → (φψ))    ⇒   (∃*xφ ↔ ∃*yψ)
 
Theoremeu5 1402 Uniqueness in terms of "at most one."
(∃!xφ ↔ (∃xφ ⋀ ∃*xφ))
 
Theoremeu4 1403 Uniqueness using implicit substitution.
(x = y → (φψ))    ⇒   (∃!xφ ↔ (∃xφ ⋀ ∀xy((φψ) → x = y)))
 
Theoremeumo 1404 Existential uniqueness implies "at most one."
(∃!xφ → ∃*xφ)
 
Theoremeumoi 1405 "At most one" inferred from existential uniqueness.
∃!xφ    ⇒   ∃*xφ
 
Theoremexmoeu 1406 Existence in terms of "at most one" and uniqueness.
(∃xφ ↔ (∃*xφ → ∃!xφ))
 
Theoremexmoeu2 1407 Existence implies "at most one" is equivalent to uniqueness.
(∃xφ → (∃*xφ ↔ ∃!xφ))
 
Theoremmoabs 1408 Absorption of existence condition by "at most one."
(∃*xφ ↔ (∃xφ → ∃*xφ))
 
Theoremexmo 1409 Something exists or at most one exists.
(∃xφ ⋁ ∃*xφ)
 
Theoremimmo 1410 "At most one" is preserved through implication (notice wff reversal).
(∀x(φψ) → (∃*xψ → ∃*xφ))
 
Theoremimmoi 1411 "At most one" is preserved through implication (notice wff reversal).
(φψ)    ⇒   (∃*xψ → ∃*xφ)
 
Theoremmoimv 1412 Move antecedent outside of "at most one."
(∃*x(φψ) → (φ → ∃*xψ))
 
Theoremeuimmo 1413 Uniqueness implies "at most one" through implication.
(∀x(φψ) → (∃!xψ → ∃*xφ))
 
Theoremeuim 1414 Add existential uniqueness quantifiers to an implication. Note the reversed implication in the antecedent.
((∃xφ ⋀ ∀x(φψ)) → (∃!xψ → ∃!xφ))
 
Theoremmoan 1415 "At most one" is still the case when a conjunct is added.
(∃*xφ → ∃*x(ψφ))
 
Theoremmoani 1416 "At most one" is still true when a conjunct is added.
∃*xφ    ⇒   ∃*x(ψφ)
 
Theoremmoor 1417 "At most one" is still the case when a disjunct is removed.
(∃*x(φψ) → ∃*xφ)
 
Theoremmooran1 1418 "At most one" imports disjunction to conjunction.
((∃*xφ ⋁ ∃*xψ) → ∃*x(φψ))
 
Theoremmooran2 1419 "At most one" exports disjunction to conjunction.
(∃*x(φψ) → (∃*xφ ⋀ ∃*xψ))
 
Theoremmoanim 1420 Introduction of a conjunct into "at most one" quantifier.
(φ → ∀xφ)    ⇒   (∃*x(φψ) ↔ (φ → ∃*xψ))
 
Theoremeuan 1421 Introduction of a conjunct into uniqueness quantifier.
(φ → ∀xφ)    ⇒   (∃!x(φψ) ↔ (φ ⋀ ∃!xψ))
 
Theoremmoanimv 1422 Introduction of a conjunct into "at most one" quantifier.
(∃*x(φψ) ↔ (φ → ∃*xψ))
 
Theoremmoaneu 1423 Nested "at most one" and uniqueness quantifiers.
∃*x(φ ⋀ ∃!xφ)
 
Theoremmoanmo 1424 Nested "at most one" quantifiers.
∃*x(φ ⋀ ∃*xφ)
 
Theoremeuanv 1425 Introduction of a conjunct into uniqueness quantifier.
(∃!x(φψ) ↔ (φ ⋀ ∃!xψ))
 
Theoremmopick 1426 "At most one" picks a variable value, eliminating an existential quantifier.
((∃*xφ ⋀ ∃x(φψ)) → (φψ))
 
Theoremeupick 1427 Existential uniqueness "picks" a variable value for which another wff is true. If there is only one thing x such that φ is true, and there is also an x (actually the same one) such that φ and ψ are both true, then φ implies ψ regardless of x. This theorem, which apparently does not appear explicitly in the literature, can be quite useful because it lets us eliminate existential quantifiers in a hypothesis.
((∃!xφ ⋀ ∃x(φψ)) → (φψ))
 
Theoremeupickb 1428 Existential uniqueness "pick" showing wff equivalence.
((∃!xφ ⋀ ∃!xψ ⋀ ∃x(φψ)) → (φψ))
 
Theoremmopick2 1429 "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 1090.
((∃*xφ ⋀ ∃x(φψ) ⋀ ∃x(φχ)) → ∃x(φψχ))
 
Theoremeuor2 1430 Introduce or eliminate a disjunct in a uniqueness quantifier.
(¬ ∃xφ → (∃!x(φψ) ↔ ∃!xψ))
 
Theoremmoexex 1431 "At most one" double quantification.
(φ → ∀yφ)    ⇒   ((∃*xφ ⋀ ∀x∃*yψ) → ∃*yx(φψ))
 
Theoremmoexexv 1432 "At most one" double quantification.
((∃*xφ ⋀ ∀x∃*yψ) → ∃*yx(φψ))
 
Theorem2moex 1433 Double quantification with "at most one."
(∃*xyφ → ∀y∃*xφ)
 
Theorem2euex 1434 Double quantification with existential uniqueness.
(∃!xyφ → ∃y∃!xφ)
 
Theorem2eumo 1435 Double quantification with existential uniqueness and "at most one."
(∃!x∃*yφ → ∃*x∃!yφ)
 
Theorem2eu2ex 1436 Double existential uniqueness.
(∃!x∃!yφ → ∃xyφ)
 
Theorem2moswap 1437 A condition allowing swap of "at most one" and existential quantifiers.
(∀x∃*yφ → (∃*xyφ → ∃*yxφ))
 
Theorem2euswap 1438 A condition allowing swap of uniqueness and existential quantifiers.
(∀x∃*yφ → (∃!xyφ → ∃!yxφ))
 
Theorem2exeu 1439 Double existential uniqueness implies double uniqueness quantification.
((∃!xyφ ⋀ ∃!yxφ) → ∃!x∃!yφ)
 
Theorem2mo 1440 Two equivalent expressions for double "at most one."
(∃zwxy(φ → (x = zy = w)) ↔ ∀xyzw((φ ⋀ [z / x][w / y]φ) → (x = zy = w)))
 
Theorem2mos 1441 Double "exists at most one" with implicit substitution.
((x = zy = w) → (φψ))    ⇒   (∃zwxy(φ → (x = zy = w)) ↔ ∀xyzw((φψ) → (x = zy = w)))
 
Theorem2eu1 1442 Double existential uniqueness. This theorem shows a condition under which a "naive" definition matches the correct one.
(∀x∃*yφ → (∃!x∃!yφ ↔ (∃!xyφ ⋀ ∃!yxφ)))
 
Theorem2eu2 1443 Double existential uniqueness.
(∃!yxφ → (∃!x∃!yφ ↔ ∃!xyφ))
 
Theorem2eu3 1444 Double existential uniqueness.
(∀xy(∃*xφ ⋁ ∃*yφ) → ((∃!x∃!yφ ⋀ ∃!y∃!xφ) ↔ (∃!xyφ ⋀ ∃!yxφ)))
 
Theorem2eu4 1445 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 ∃!x∃!yφ. See 2eu1 1442 for a condition under which the naive definition holds and 2exeu 1439 for a one-way implication. See 2eu5 1446 and 2eu8 1449 for alternate definitions.
((∃!xyφ ⋀ ∃!yxφ) ↔ (∃xyφ ⋀ ∃zwxy(φ → (x = zy = w))))
 
Theorem2eu5 1446 An alternate definition of double existential uniqueness (see 2eu4 1445). A mistake sometimes made in the literature is to use ∃!x∃!y to mean "exactly one x and exactly one y." (For example, see Proposition 7.53 of [TakeutiZaring] p. 53.) It turns out that this is actually a weaker assertion, as can be seen by expanding out the formal definitions. This theorem shows that the erroneous definition can be repaired by conjoining ∀x∃*yφ as an additional condition. The correct definition apparently has never been published. (∃* means "exists at most one.")
((∃!x∃!yφ ⋀ ∀x∃*yφ) ↔ (∃xyφ ⋀ ∃zwxy(φ → (x = zy = w))))
 
Theorem2eu6 1447 Two equivalent expressions for double existential uniqueness.
((∃!xyφ ⋀ ∃!yxφ) ↔ ∃zwxy(φ ↔ (x = zy = w)))
 
Theorem2eu7 1448 Two equivalent expressions for double existential uniqueness.
((∃!xyφ ⋀ ∃!yxφ) ↔ ∃!x∃!y(∃xφ ⋀ ∃yφ))
 
Theorem2eu8 1449 Two equivalent expressions for double existential uniqueness. Curiously, we can put ∃! on either of the internal conjuncts but not both. We can also commute ∃!x∃!y using 2eu7 1448.
(∃!x∃!y(∃xφ ⋀ ∃yφ) ↔ ∃!x∃!y(∃!xφ ⋀ ∃yφ))
 
Theoremexists1 1450 Two ways to express "only one thing exists." The left-hand side requires only one variable to express this. Both sides are false in set theory; see theorem dtru 2762.
(∃!x x = x ↔ ∀x x = y)
 
Theoremexists2 1451 A condition implying that at least two things exist.
((∃xφ ⋀ ∃x ¬ φ) → ¬ ∃!x x = x)
 
ZF Set Theory - start with the Axiom of Extensionality
 
Introduce the Axiom of Extensionality
 
Axiomax-ext 1452 Axiom of Extensionality. An axiom of Zermelo-Fraenkel set theory. It states that two sets are identical if they contain the same elements. Axiom Ext of [BellMachover] p. 461.

Set theory can also be formulated with a single primitive predicate ∈ on top of traditional predicate calculus without equality. In that case the Axiom of Extensionality becomes (∀w(wxwy) → (xzyz)), and equality x = y is defined as ∀w(wxwy). 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 961 through ax-16 1206 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.

General remarks: Our set theory axioms are presented using defined connectives (↔, ∃, etc.) for convenience. However, it is implicitly understood that the actual axioms use only the primitive connectives →, ¬, ∀, =, and ∈. It is straightforward to establish the equivalence between the actual axioms and the ones we display, and we will not do so.

It is important to understand that strictly speaking, all of our set theory axioms are really schemes that represent an infinite number of actual axioms. This is inherent in the design of Metamath ("metavariable math"), which manipulates only metavariables. For example, the metavariable x in ax-ext 1452 can represent any actual variable v1, v2, v3,... . Distinct variable restrictions ($d) prevent us from substituting say v1 for both x and z. This is in contrast to typical textbook presentations that present actual axioms (except for Replacement ax-rep 2683, which involves a wff metavariable). In practice, though, the theorems and proofs are essentially the same. The $d restrictions make each of the the infinite axioms generated by the ax-ext 1452 scheme exactly logically equivalent to each other and in particular to the actual axiom of the textbook version.

(∀z(zxzy) → x = y)
 
Theoremaxext 1453 The Axiom of Extensionality (ax-ext 1452) restated so that it postulates the existence of a set z given two arbitrary sets x and y. This way to express it follows the general idea of the other ZFC axioms, which is to postulate the existence of sets given other sets.
z((zxzy) → x = y)
 
Theoremzfext2 1454 A generalization of the Axiom of Extensionality in which x and y need not be distinct.
(∀z(zxzy) → x = y)
 
Theorembm1.1 1455 Any set defined by a property is the only set defined by that property. Theorem 1.1 of [BellMachover] p. 462.
(φ → ∀xφ)    ⇒   (∃xy(yxφ) → ∃!xy(yxφ))
 
Class abstractions (a.k.a. class builders)
 
Syntaxcab 1456 Introduce the class builder or class abstraction notation ("the class of sets x such that φ is true"). Our class variables A, B, etc. range over class builders (implicitly in the case of defined class terms such as df-nul 2271). Note that a set variable can be expressed as a class builder per theorem cvjust 1464, justifying the assignment of set variables to class variables via the use of cv 952.
class {xφ}
 
Definitiondf-clab 1457 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, φ will have y as a free variable, and "{yφ}" is read "the class of all sets y such that φ(y) is true." We do not define {yφ} in isolation but only as part of an expression that extends or "overloads" the ∈ relationship.

This is our first use of the ∈ symbol to connect classes instead of sets. The syntax definition wcel 955, which extends or "overloads" the wel 956 definition connecting set variables, requires that both sides of ∈ be a class. In df-cleq 1462 and df-clel 1465, we introduce a new kind of variable (class variable) that can substituted with expressions such as {yφ}. In the present definition, the x on the left-hand side is a set variable. Syntax definition cv 952 allows us to substitute a set variable x for a class variable: all sets are classes by cvjust 1464 (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 1560 for a quick overview).

Because class variables can be substituted with compound expressions and set variables cannot, it is often useful to convert a theorem containing a free set variable to a more general version with a class variable. This is done with theorems such as vtoclg 1838 which is used, for example, to convert elirrv 4570 to elirr 4571.

(x ∈ {yφ} ↔ [x / y]φ)
 
Theoremabid 1458 Simplification of class abstraction notation when the free and bound variables are identical.
(x ∈ {xφ} ↔ φ)
 
Theoremhbab1 1459 Bound-variable hypothesis builder for a class abstraction.
(y ∈ {xφ} → ∀x y ∈ {xφ})
 
Theoremhbab 1460 Bound-variable hypothesis builder for a class abstraction.
(φ → ∀xφ)    ⇒   (z ∈ {yφ} → ∀x z ∈ {yφ})
 
Theoremhbabd 1461 Deduction form of bound-variable hypothesis builder hbab 1460.
(φ → ∀xyφ)    &   (φ → (ψ → ∀xψ))    ⇒   (φ → (z ∈ {yψ} → ∀x z ∈ {yψ}))
 
Definitiondf-cleq 1462 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 ↔ ∀x(xyxz), which is not a theorem of logic but rather presupposes the Axiom of Extensionality. 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 yx = 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 1457, df-clel 1465, and abeq2 1560.

(∀x(xyxz) → y = z)    ⇒   (A = B ↔ ∀x(xAxB))
 
Theoremdfcleq 1463 The same as df-cleq 1462 with the hypothesis removed using the Axiom of Extensionality ax-ext 1452.
(A = B ↔ ∀x(xAxB))
 
Theoremcvjust 1464 Every set is a class. Proposition 4.9 of [TakeutiZaring] p. 13. This theorem shows that a set variable can be expressed as a class abstraction. This provides a motivation for the class syntax construction cv 952, which allows us to substitute a set variable for a class variable. See also cab 1456 and df-clab 1457. Note that this is not a rigorous justification, because cv 952 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."
x = {yyx}
 
Definitiondf-clel 1465 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 1462 it extends or "overloads" the use of the existing membership symbol, but unlike df-cleq 1462 it does not strengthen the set of valid wffs of logic when the class variables are replaced with set variables (see cleljust 1323), so we don't include any set theory axiom as a hypothesis. See also comments about the syntax under df-clab 1457.
(AB ↔ ∃x(x = AxB))
 
Theoremeqrdv 1466 Deduce equality of classes from equivalence of membership.
(φ → (xAxB))    ⇒   (φA = B)
 
Theoremeqriv 1467 Infer equality of classes from equivalence of membership.
(xAxB)    ⇒   A = B
 
Theoremeqid 1468 Class identity law (reflexivity of class equality). Theorem 6.4 of [Quine] p. 41.
A = A
 
Theoremeqcom 1469 Commutative law for class equality. Theorem 6.5 of [Quine] p. 41.
(A = BB = A)
 
Theoremeqcoms 1470 Inference applying commutative law for class equality to an antecedent.
(A = Bφ)    ⇒   (B = Aφ)
 
Theoremeqcomi 1471 Inference from commutative law for class equality.
A = B    ⇒   B = A
 
Theoremeqcomd 1472 Deduction from commutative law for class equality.
(φA = B)    ⇒   (φB = A)
 
Theoremeqeq1 1473 Equality implies equivalence of equalities.
(A = B → (A = CB = C))
 
Theoremeqeq1i 1474 Inference from equality to equivalence of equalities.
A = B    ⇒   (A = CB = C)
 
Theoremeqeq1d 1475 Deduction from equality to equivalence of equalities.
(φA = B)    ⇒   (φ → (A = CB = C))
 
Theoremeqeq2 1476 Equality implies equivalence of equalities.
(A = B → (C = AC = B))
 
Theoremeqeq2i 1477 Inference from equality to equivalence of equalities.
A = B    ⇒   (C = AC = B)
 
Theoremeqeq2d 1478 Deduction from equality to equivalence of equalities.
(φA = B)    ⇒   (φ → (C = AC = B))
 
Theoremeqeq12 1479 Equality relationship among 4 classes.
((A = BC = D) → (A = CB = D))
 
Theoremeqeq12i 1480 A useful inference for substituting definitions into an equality.
A = B    &   C = D    ⇒   (A = CB = D)
 
Theoremeqeq12d 1481 A useful inference for substituting definitions into an equality.
(φA = B)    &   (φC = D)    ⇒   (φ → (A = CB = D))
 
Theoremeqeqan12d 1482 A useful inference for substituting definitions into an equality.
(φA = B)    &   (ψC = D)    ⇒   ((φψ) → (A = CB = D))
 
Theoremeqeqan12rd 1483 A useful inference for substituting definitions into an equality.
(φA = B)    &   (ψC = D)    ⇒   ((ψφ) → (A = CB = D))
 
Theoremeqtrt 1484 Transitive law for class equality. Proposition 4.7(3) of [TakeutiZaring] p. 13.
((A = BB = C) → A = C)
 
Theoremeqtr2t 1485 A transitive law for class equality.
((A = BA = C) → B = C)
 
Theoremeqtr3t 1486 A transitive law for class equality.
((A = CB = C) → A = B)
 
Theoremeqtr 1487 An equality transitivity inference.
A = B    &   B = C    ⇒   A = C
 
Theoremeqtr2 1488 An equality transitivity inference.
A = B    &   B = C    ⇒   C = A
 
Theoremeqtr3 1489 An equality transitivity inference.
A = B    &   A = C    ⇒   B = C
 
Theoremeqtr4 1490 An equality transitivity inference.
A = B    &   C = B    ⇒   A = C
 
Theorem3eqtr 1491 An inference from three chained equalities.
A = B    &   B = C    &   C = D    ⇒   A = D
 
Theorem3eqtrr 1492 An inference from three chained equalities.
A = B    &   B = C    &   C = D    ⇒   D = A
 
Theorem3eqtr2 1493 An inference from three chained equalities.
A = B    &   C = B    &   C = D    ⇒   A = D
 
Theorem3eqtr2r 1494 An inference from three chained equalities.
A = B    &   C = B    &   C = D    ⇒   D = A
 
Theorem3eqtr3 1495 An inference from three chained equalities.
A = B    &   A = C    &   B = D    ⇒   C = D
 
Theorem3eqtr3r 1496 An inference from three chained equalities.
A = B    &   A = C    &   B = D    ⇒   D = C
 
Theorem3eqtr4 1497 An inference from three chained equalities.
A = B    &   C = A    &   D = B    ⇒   C = D
 
Theorem3eqtr4r 1498 An inference from three chained equalities.
A = B    &   C = A    &   D = B    ⇒   D = C
 
Theoremeqtrd 1499 An equality transitivity deduction.
(φA = B)    &   (φB = C)    ⇒   (φA = C)
 
Theoremeqtr2d 1500 An equality transitivity deduction.
(φA = B)    &   (φB = C)    ⇒   (φC = A)

MPE Home   Contents Copyright terms: Public domain < Previous  Next >