Interface:Complex number axioms

The complex numbers can be described, on top of set theory, by the axioms in this file. They are "axioms" in the sense that they are sufficient to define the complex (and real) numbers, but are theorems in the sense that it is possible to prove them from the axioms of set theory (by the usual construction of natural numbers, rational numbers as ratios, real numbers as Dedekind cuts, negative numbers, and complex numbers as pairs of real numbers). The form of the axioms in this file closely follows metamath (modulo a few details involving notation and the fact that we exclude proper classes while metamath does not).

We build on propositional logic, first-order logic, and set theory.

 param (CLASSICAL Interface:Classical_propositional_calculus ) param (FIRSTORDER Interface:First-order_logic_with_quantifiability (CLASSICAL) ) param (SETS Interface:Set_theory (CLASSICAL FIRSTORDER) ) 

Complex numbers
There is a set of complex numbers. As a convention, we tend to use  and   to refer to complex numbers, although using these names does not by itself ensure that an   is a complex number rather than a set of numbers or a relation or something else.  term (object (ℂ)) var (object z w s) 

The complex numbers are closed under an addition operation, which is commutative and associative.  term (object (+ object object)) stmt (ComplexAdditionClosure  (((z ∈ (ℂ)) ∧ (w ∈ (ℂ))) → ((z + w) ∈ (ℂ)))) stmt (AdditionCommutativity  (((z ∈ (ℂ)) ∧ (w ∈ (ℂ))) → ((z + w) = (w + z)))) stmt (AdditionAssociativity  ((((z ∈ (ℂ)) ∧ (w ∈ (ℂ))) ∧ (s ∈ (ℂ))) → (((z + w) + s) = (z + (w + s))))) 

The complex numbers are closed under a multiplication operation, which is commutative and associative.  term (object (· object object)) stmt (ComplexMultiplicationClosure  (((z ∈ (ℂ)) ∧ (w ∈ (ℂ))) → ((z · w) ∈ (ℂ)))) stmt (MultiplicationCommutativity  (((z ∈ (ℂ)) ∧ (w ∈ (ℂ))) → ((z · w) = (w · z)))) stmt (MultiplicationAssociativity  ((((z ∈ (ℂ)) ∧ (w ∈ (ℂ))) ∧ (s ∈ (ℂ))) → (((z · w) · s) = (z · (w · s))))) 

Multiplication distributes over addition.  stmt (Distributivity  ((((z ∈ (ℂ)) ∧ (w ∈ (ℂ))) ∧ (s ∈ (ℂ))) → ((z · (w + s)) = ((z · w) + (z · s))))) 

There is a complex number, which serves as a multiplicative identity.  term (object (1)) stmt (OneComplex  ((1) ∈ (ℂ))) stmt (MultiplicativeIdentity  ((z ∈ (ℂ)) → ((z · (1)) = z))) 

There is a complex number, not equal to  , which serves as an additive identity. We don't have an axiom stating that zero is complex simply because it is implied by the other axioms.  term (object (0)) stmt (AdditiveIdentity  ((z ∈ (ℂ)) → ((z + (0)) = z))) stmt (ZeroOne  ((0) ≠ (1))) 

There is a complex number  for the square root of negative one.  term (object (i)) stmt (IComplex  ((i) ∈ (ℂ))) stmt (ISquared  ((((i) · (i)) + (1)) = (0))) 

Real numbers
There is a subset of the complex numbers called the real numbers which are closed under addition and multiplication. We conventionally use,  , and   to refer to real number objects, and   and   for real variables.  term (object (ℝ)) var (object a b c) var (variable x y) stmt (RealComplex  ((ℝ) ⊆ (ℂ))) stmt (RealAdditionClosure  (((a ∈ (ℝ)) ∧ (b ∈ (ℝ))) → ((a + b) ∈ (ℝ)))) stmt (RealMultiplicationClosure  (((a ∈ (ℝ)) ∧ (b ∈ (ℝ))) → ((a · b) ∈ (ℝ)))) </jh>

Any complex number can be written as real and imaginary parts.  stmt (ComplexParts ((x y z)) ((z ∈ (ℂ)) → (∃ x (((value x) ∈ (ℝ)) ∧ (∃ y (((value y) ∈ (ℝ)) ∧ (z = ((value x) + ((i) · (value y)))))))))) </jh>

Any real number has an additive inverse, and a nonzero real number has a multiplicative inverse.  stmt (RealAdditiveInverseExists ((x a)) ((a ∈ (ℝ)) → (∃ x (((value x) ∈ (ℝ)) ∧ ((a + (value x)) = (0)))))) stmt (MultiplicativeInverse ((x a)) (((a ∈ (ℝ)) ∧ (a ≠ (0))) → (∃ x (((value x) ∈ (ℝ)) ∧ ((a · (value x)) = (1)))))) </jh>

Order on the reals
We define a total order on the reals, which is consistent with addition and multiplication.  term (formula (< object object)) stmt (Trichotomy  (((a ∈ (ℝ)) ∧ (b ∈ (ℝ))) → ((a < b) ↔ (¬ ((a = b) ∨ (b < a)))))) stmt (Transitivity  ((((a ∈ (ℝ)) ∧ (b ∈ (ℝ))) ∧ (c ∈ (ℝ))) → (((a < b) ∧ (b < c)) → (a < c)))) stmt (LessThanAddition  ((((a ∈ (ℝ)) ∧ (b ∈ (ℝ))) ∧ (c ∈ (ℝ))) → ((a < b) → ((c + a) < (c + b))))) stmt (LessThanMultiplication  (((a ∈ (ℝ)) ∧ (b ∈ (ℝ))) → ((((0) < a) ∧ ((0) < b)) → ((0) < (a · b))))) </jh>

Any nonempty set of real numbers which is bounded above has a least upper bound (supremum) which is a real number. This property distinguishes the reals from the rationals. It is this property which causes us to build the reals on top of set theory, instead of just first-order logic, as it involves sets of reals not just individual real numbers. The statement of the axiom is as in metamath (modulo variable renamings and notation changes); the occurence of  in the second part might better be read as "would-be upper bound" as of course the point is that it can't be less than the supremum and still be an upper bound.  var (object A) var (variable bound supremum) stmt (Supremum ((x bound supremum A))  ((((A ⊆ (ℝ)) ∧ (A ≠ (∅)))   ∧ (∃ bound (((value bound) ∈ (ℝ)) ∧       (∀ x (((value x) ∈ A) → ((value x) < (value bound))))))) →   (∃ supremum (((value supremum) ∈ (ℝ)) ∧ (      (∀ x (((value x) ∈ A) → (¬ ((value supremum) < (value x))))) ∧       (∀ bound (((value bound) ∈ (ℝ)) → (((value bound) < (value supremum)) → (∃ x (((value x) ∈ A) ∧ ((value bound) < (value x)))))))))))) </jh>

Builders
In the metamath version of these axioms, addition and multiplication are relations and therefore there is just a need for one generic builder for relations. Here, because addition and multiplication are individual operations, they each need their own builder.

Although the builders are not interesting unless A0 and so on are complex numbers, we state them without restricting them to complex numbers. However we define the sum of two sets which are not complex numbers, it is no hardship to make that definition obey the builders.  var (object A0 A1 B0 B1) stmt (AdditionBuilder  (((A0 = A1) ∧ (B0 = B1)) → ((A0 + B0) = (A1 + B1)))) stmt (MultiplicationBuilder  (((A0 = A1) ∧ (B0 = B1)) → ((A0 · B0) = (A1 · B1)))) </jh>