TauLib · API Book I

TauLib.BookI.Boundary.ComplexField

TauLib.Boundary.ComplexField

The elliptic complex field: TauComplex = TauReal[i]/(i² + 1).

Registry Cross-References

  • [I.D85] TauComplex — Elliptic complex field over constructive reals

  • [I.D86] Elliptic-Hyperbolic Dichotomy — TauComplex (field) vs SplitComplex (zero divisors)

  • [I.T43] Field Axioms — TauComplex forms a commutative ring (field axioms up to equiv)

Ground Truth Sources

  • ch77-complex-field.tex: Complex field construction, i² = -1, ring axioms

Mathematical Content

TauComplex is the standard complex field built over TauReal: pairs (re, im) with multiplication (a + bi)(c + di) = (ac - bd) + (ad + bc)i. The defining relation is i² = -1 (elliptic sign), in contrast to SplitComplex where j² = +1 (hyperbolic sign). This sign difference has profound consequences:

  • TauComplex (i² = -1): field, no zero divisors, algebraically closed

  • SplitComplex (j² = +1): ring with zero divisors, sector decomposition

All ring axioms are proved up to TauComplex.equiv (componentwise TauReal.equiv), which reduces pointwise to TauRat.equiv, then to TauInt.equiv via cross-multiplication, then to Int equality via equiv_iff_toInt_eq.


Tau.Boundary.TauComplex

source structure Tau.Boundary.TauComplex :Type

[I.D85] TauComplex: the elliptic complex field TauReal[i]/(i² + 1). A pair (re, im) represents re + im * i.

  • re : TauReal Real part.

  • im : TauReal Imaginary part.

Instances For


Tau.Boundary.TauComplex.equiv

source def Tau.Boundary.TauComplex.equiv (a b : TauComplex) :Prop

Two TauComplex values are equivalent if their real and imaginary parts are equivalent as TauReals. Equations

  • a.equiv b = (a.re.equiv b.re ∧ a.im.equiv b.im) Instances For

Tau.Boundary.TauComplex.equiv_refl

source theorem Tau.Boundary.TauComplex.equiv_refl (a : TauComplex) :a.equiv a

TauComplex equivalence is reflexive.


Tau.Boundary.TauComplex.equiv_symm

source **theorem Tau.Boundary.TauComplex.equiv_symm {a b : TauComplex}

(h : a.equiv b) :b.equiv a**

TauComplex equivalence is symmetric.


Tau.Boundary.TauComplex.zero

source def Tau.Boundary.TauComplex.zero :TauComplex

Complex zero: (0, 0). Equations

  • Tau.Boundary.TauComplex.zero = { re := Tau.Boundary.TauReal.zero, im := Tau.Boundary.TauReal.zero } Instances For

Tau.Boundary.TauComplex.one

source def Tau.Boundary.TauComplex.one :TauComplex

Complex one: (1, 0). Equations

  • Tau.Boundary.TauComplex.one = { re := Tau.Boundary.TauReal.one, im := Tau.Boundary.TauReal.zero } Instances For

Tau.Boundary.TauComplex.i_unit

source def Tau.Boundary.TauComplex.i_unit :TauComplex

The imaginary unit: i = (0, 1). Equations

  • Tau.Boundary.TauComplex.i_unit = { re := Tau.Boundary.TauReal.zero, im := Tau.Boundary.TauReal.one } Instances For

Tau.Boundary.TauComplex.add

source def Tau.Boundary.TauComplex.add (a b : TauComplex) :TauComplex

Complex addition: (a + bi) + (c + di) = (a+c) + (b+d)i. Equations

  • a.add b = { re := a.re.add b.re, im := a.im.add b.im } Instances For

Tau.Boundary.TauComplex.mul

source def Tau.Boundary.TauComplex.mul (a b : TauComplex) :TauComplex

Complex multiplication: (a + bi)(c + di) = (ac - bd) + (ad + bc)i. Note: subtraction is TauReal.sub = TauReal.add ∘ TauReal.negate. Equations

  • a.mul b = { re := (a.re.mul b.re).sub (a.im.mul b.im), im := (a.re.mul b.im).add (a.im.mul b.re) } Instances For

Tau.Boundary.TauComplex.negate

source def Tau.Boundary.TauComplex.negate (a : TauComplex) :TauComplex

Complex negation: -(a + bi) = (-a) + (-b)i. Equations

  • a.negate = { re := a.re.negate, im := a.im.negate } Instances For

Tau.Boundary.TauComplex.conj

source def Tau.Boundary.TauComplex.conj (a : TauComplex) :TauComplex

Complex conjugation: conj(a + bi) = a + (-b)i. Equations

  • a.conj = { re := a.re, im := a.im.negate } Instances For

Tau.Boundary.taucomplex_i_squared

source theorem Tau.Boundary.taucomplex_i_squared :(TauComplex.i_unit.mul TauComplex.i_unit).equiv TauComplex.one.negate

The defining relation of the complex field: i² = -1. mul(0,1)(0,1) = (00 - 11, 01 + 10) = (-1, 0) = negate(1, 0).


Tau.Boundary.taucomplex_add_comm

source theorem Tau.Boundary.taucomplex_add_comm (a b : TauComplex) :(a.add b).equiv (b.add a)

Addition is commutative.


Tau.Boundary.taucomplex_add_assoc

source theorem Tau.Boundary.taucomplex_add_assoc (a b c : TauComplex) :((a.add b).add c).equiv (a.add (b.add c))

Addition is associative.


Tau.Boundary.taucomplex_add_zero

source theorem Tau.Boundary.taucomplex_add_zero (a : TauComplex) :(a.add TauComplex.zero).equiv a

Zero is a right identity for addition.


Tau.Boundary.taucomplex_add_negate

source theorem Tau.Boundary.taucomplex_add_negate (a : TauComplex) :(a.add a.negate).equiv TauComplex.zero

Negation is a right inverse for addition.


Tau.Boundary.taucomplex_mul_comm

source theorem Tau.Boundary.taucomplex_mul_comm (a b : TauComplex) :(a.mul b).equiv (b.mul a)

Multiplication is commutative. Re: ac - bd = ca - db. Im: ad + bc = cb + da.


Tau.Boundary.taucomplex_mul_assoc

source theorem Tau.Boundary.taucomplex_mul_assoc (a b c : TauComplex) :((a.mul b).mul c).equiv (a.mul (b.mul c))

Multiplication is associative. (ab)c = a(bc) for complex multiplication.


Tau.Boundary.taucomplex_mul_one

source theorem Tau.Boundary.taucomplex_mul_one (a : TauComplex) :(a.mul TauComplex.one).equiv a

One is a right identity for multiplication: z * 1 = z.


Tau.Boundary.taucomplex_left_distrib

source theorem Tau.Boundary.taucomplex_left_distrib (a b c : TauComplex) :(a.mul (b.add c)).equiv ((a.mul b).add (a.mul c))

Left distributivity: a * (b + c) = ab + ac.


Tau.Boundary.taucomplex_ring_axioms

source theorem Tau.Boundary.taucomplex_ring_axioms :(∀ (a b : TauComplex), (a.add b).equiv (b.add a)) ∧ (∀ (a b c : TauComplex), ((a.add b).add c).equiv (a.add (b.add c))) ∧ (∀ (a : TauComplex), (a.add TauComplex.zero).equiv a) ∧ (∀ (a : TauComplex), (a.add a.negate).equiv TauComplex.zero) ∧ (∀ (a b : TauComplex), (a.mul b).equiv (b.mul a)) ∧ (∀ (a b c : TauComplex), ((a.mul b).mul c).equiv (a.mul (b.mul c))) ∧ (∀ (a : TauComplex), (a.mul TauComplex.one).equiv a) ∧ ∀ (a b c : TauComplex), (a.mul (b.add c)).equiv ((a.mul b).add (a.mul c))

Full TauComplex ring axiom collection.


Tau.Boundary.sc_j_squared

source theorem Tau.Boundary.sc_j_squared :{ re := 0, im := 1 }.mul { re := 0, im := 1 } = Polarity.SplitComplex.one

[I.D86] The elliptic-hyperbolic dichotomy:

  • TauComplex has i² = -1 (elliptic sign), yielding a field with no zero divisors.

  • SplitComplex has j² = +1 (hyperbolic sign), yielding a ring WITH zero divisors.

We witness the dichotomy by showing:

  • i² = -1 in TauComplex (taucomplex_i_squared)

  • j² = +1 in SplitComplex (sc_j_squared, proved below)

  • SplitComplex has zero divisors (zero_divisor_witness_b from SplitComplex.lean)


Tau.Boundary.elliptic_hyperbolic_dichotomy

source theorem Tau.Boundary.elliptic_hyperbolic_dichotomy :(TauComplex.i_unit.mul TauComplex.i_unit).equiv TauComplex.one.negate ∧ { re := 0, im := 1 }.mul { re := 0, im := 1 } = Polarity.SplitComplex.one ∧ { re := 1, im := 1 }.mul { re := 1, im := -1 } = Polarity.SplitComplex.zero

The dichotomy: i² = -1 AND j² = +1 AND SplitComplex has zero divisors.


Tau.Boundary.TauComplex.fromTauReal

source def Tau.Boundary.TauComplex.fromTauReal (r : TauReal) :TauComplex

Embed a TauReal into TauComplex as the real part with zero imaginary part. Equations

  • Tau.Boundary.TauComplex.fromTauReal r = { re := r, im := Tau.Boundary.TauReal.zero } Instances For

Tau.Boundary.fromTauReal_add

source theorem Tau.Boundary.fromTauReal_add (a b : TauReal) :(TauComplex.fromTauReal (a.add b)).equiv ((TauComplex.fromTauReal a).add (TauComplex.fromTauReal b))

The embedding preserves addition (up to equiv).


Tau.Boundary.taucomplex_conj_involution

source theorem Tau.Boundary.taucomplex_conj_involution (a : TauComplex) :a.conj.conj.equiv a

Conjugation is an involution: conj(conj(z)) ≡ z.


Tau.Boundary.taucomplex_conj_add

source theorem Tau.Boundary.taucomplex_conj_add (a b : TauComplex) :(a.add b).conj.equiv (a.conj.add b.conj)

Conjugation distributes over addition: conj(a + b) ≡ conj(a) + conj(b).