Skip to content

Commit 446ef79

Browse files
authored
Multiplicative inverses of nonzero complex numbers (#1684)
Builds on #1679.
1 parent cfa9570 commit 446ef79

27 files changed

+1066
-46
lines changed

src/complex-numbers.lagda.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,17 @@
44
module complex-numbers where
55
66
open import complex-numbers.addition-complex-numbers public
7+
open import complex-numbers.apartness-complex-numbers public
78
open import complex-numbers.complex-numbers public
9+
open import complex-numbers.conjugation-complex-numbers public
810
open import complex-numbers.eisenstein-integers public
911
open import complex-numbers.gaussian-integers public
1012
open import complex-numbers.large-additive-group-of-complex-numbers public
1113
open import complex-numbers.large-ring-of-complex-numbers public
14+
open import complex-numbers.magnitude-complex-numbers public
1215
open import complex-numbers.multiplication-complex-numbers public
16+
open import complex-numbers.multiplicative-inverses-nonzero-complex-numbers public
17+
open import complex-numbers.nonzero-complex-numbers public
1318
open import complex-numbers.raising-universe-levels-complex-numbers public
1419
open import complex-numbers.similarity-complex-numbers public
1520
```
Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
# Apartness of complex numbers
2+
3+
```agda
4+
module complex-numbers.apartness-complex-numbers where
5+
```
6+
7+
<details><summary>Imports</summary>
8+
9+
```agda
10+
open import complex-numbers.complex-numbers
11+
12+
open import foundation.dependent-pair-types
13+
open import foundation.disjunction
14+
open import foundation.empty-types
15+
open import foundation.function-types
16+
open import foundation.functoriality-disjunction
17+
open import foundation.large-apartness-relations
18+
open import foundation.negation
19+
open import foundation.propositions
20+
open import foundation.universe-levels
21+
22+
open import real-numbers.apartness-real-numbers
23+
```
24+
25+
</details>
26+
27+
## Idea
28+
29+
Two [complex numbers](complex-numbers.complex-numbers.md) are
30+
{{#concept "apart" Disambiguation="complex numbers" Agda=apart-ℂ}} if their
31+
[real](real-numbers.dedekind-real-numbers.md) parts are
32+
[apart](real-numbers.apartness-real-numbers.md) [or](foundation.disjunction.md)
33+
their imaginary parts are [apart].
34+
35+
## Definition
36+
37+
```agda
38+
module _
39+
{l1 l2 : Level} (z : ℂ l1) (w : ℂ l2)
40+
where
41+
42+
apart-prop-ℂ : Prop (l1 ⊔ l2)
43+
apart-prop-ℂ =
44+
(apart-prop-ℝ (re-ℂ z) (re-ℂ w)) ∨ (apart-prop-ℝ (im-ℂ z) (im-ℂ w))
45+
46+
apart-ℂ : UU (l1 ⊔ l2)
47+
apart-ℂ = type-Prop apart-prop-ℂ
48+
```
49+
50+
## Properties
51+
52+
### Apartness is antireflexive
53+
54+
```agda
55+
abstract
56+
antireflexive-apart-ℂ : {l : Level} (z : ℂ l) → ¬ (apart-ℂ z z)
57+
antireflexive-apart-ℂ (a , b) =
58+
elim-disjunction
59+
( empty-Prop)
60+
( antireflexive-apart-ℝ a)
61+
( antireflexive-apart-ℝ b)
62+
```
63+
64+
### Apartness is symmetric
65+
66+
```agda
67+
abstract
68+
symmetric-apart-ℂ :
69+
{l1 l2 : Level} (z : ℂ l1) (w : ℂ l2) → apart-ℂ z w → apart-ℂ w z
70+
symmetric-apart-ℂ (a , b) (c , d) =
71+
map-disjunction symmetric-apart-ℝ symmetric-apart-ℝ
72+
```
73+
74+
### Apartness is cotransitive
75+
76+
```agda
77+
abstract
78+
cotransitive-apart-ℂ :
79+
{l1 l2 l3 : Level} (x : ℂ l1) (y : ℂ l2) (z : ℂ l3) →
80+
apart-ℂ x y → disjunction-type (apart-ℂ x z) (apart-ℂ z y)
81+
cotransitive-apart-ℂ x@(a , b) y@(c , d) z@(e , f) =
82+
elim-disjunction
83+
( (apart-prop-ℂ x z) ∨ (apart-prop-ℂ z y))
84+
( map-disjunction inl-disjunction inl-disjunction ∘
85+
cotransitive-apart-ℝ a c e)
86+
( map-disjunction inr-disjunction inr-disjunction ∘
87+
cotransitive-apart-ℝ b d f)
88+
```
89+
90+
### Apartness on the complex numbers is a large apartness relation
91+
92+
```agda
93+
large-apartness-relation-ℂ : Large-Apartness-Relation _⊔_ ℂ
94+
apart-prop-Large-Apartness-Relation large-apartness-relation-ℂ =
95+
apart-prop-ℂ
96+
antirefl-Large-Apartness-Relation large-apartness-relation-ℂ =
97+
antireflexive-apart-ℂ
98+
symmetric-Large-Apartness-Relation large-apartness-relation-ℂ =
99+
symmetric-apart-ℂ
100+
cotransitive-Large-Apartness-Relation large-apartness-relation-ℂ =
101+
cotransitive-apart-ℂ
102+
```

src/complex-numbers/complex-numbers.lagda.md

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ are numbers of the form `a + bi`, where `a` and `b` are
3838
ℂ : (l : Level) → UU (lsuc l)
3939
ℂ l = ℝ l × ℝ l
4040
41+
pattern _+iℂ_ x y = (x , y)
42+
4143
re-ℂ : {l : Level} → ℂ l → ℝ l
4244
re-ℂ = pr1
4345
@@ -81,13 +83,6 @@ complex-ℤ[i] : ℤ[i] → ℂ lzero
8183
complex-ℤ[i] (a , b) = (real-ℤ a , real-ℤ b)
8284
```
8385

84-
### The conjugate of a complex number
85-
86-
```agda
87-
conjugate-ℂ : {l : Level} → ℂ l → ℂ l
88-
conjugate-ℂ (a , b) = (a , neg-ℝ b)
89-
```
90-
9186
### Important complex numbers
9287

9388
```agda
@@ -110,3 +105,11 @@ i-ℂ = (zero-ℝ , one-ℝ)
110105
neg-ℂ : {l : Level} → ℂ l → ℂ l
111106
neg-ℂ (a , b) = (neg-ℝ a , neg-ℝ b)
112107
```
108+
109+
### `complex-ℝ one-ℝ` is equal to `one-ℂ`
110+
111+
```agda
112+
abstract
113+
eq-complex-one-ℝ : complex-ℝ one-ℝ = one-ℂ
114+
eq-complex-one-ℝ = eq-ℂ refl (inv (eq-raise-ℝ zero-ℝ))
115+
```
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# Conjugation of complex numbers
2+
3+
```agda
4+
module complex-numbers.conjugation-complex-numbers where
5+
```
6+
7+
<details><summary>Imports</summary>
8+
9+
```agda
10+
open import complex-numbers.complex-numbers
11+
12+
open import foundation.identity-types
13+
open import foundation.universe-levels
14+
15+
open import real-numbers.negation-real-numbers
16+
```
17+
18+
</details>
19+
20+
## Idea
21+
22+
The
23+
{{#concept "conjugate" WDID=Q381040 WD="complex conjugate" Disambiguation="of a complex number" Agda=conjugate-ℂ}}
24+
of a [complex number](complex-numbers.complex-numbers.md) `a + bi` is `a - bi`.
25+
26+
## Definition
27+
28+
```agda
29+
conjugate-ℂ : {l : Level} → ℂ l → ℂ l
30+
conjugate-ℂ (a +iℂ b) = a +iℂ neg-ℝ b
31+
```
32+
33+
## Properties
34+
35+
### Conjugation is an involution
36+
37+
```agda
38+
abstract
39+
is-involution-conjugate-ℂ :
40+
{l : Level} (z : ℂ l) → conjugate-ℂ (conjugate-ℂ z) = z
41+
is-involution-conjugate-ℂ (a +iℂ b) = eq-ℂ refl (neg-neg-ℝ b)
42+
```

0 commit comments

Comments
 (0)