generated from smyalygames/quartz
Quartz sync: Mar 1, 2025, 2:26 PM
This commit is contained in:
parent
16c38cf522
commit
8fb1f81784
12
content/Definitions/Cauchy Sequence.md
Normal file
12
content/Definitions/Cauchy Sequence.md
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
# Definition
|
||||||
|
A **Cauchy sequence** is a sequence where the elements become arbitrarily close to each other as the sequence progresses.
|
||||||
|
# Examples
|
||||||
|
## Cauchy Sequence
|
||||||
|
$$\Sigma_{n=1}^\infty \frac{1}{n^2} = 1, \, \frac{1}{4}, \, \frac{1}{9}, \, \dots$$
|
||||||
|
$$\lim_{ n \to \infty } \frac{1}{n^2} = 0 $$
|
||||||
|
Which this sequence converges to 0, towards infinity
|
||||||
|
## Non-Cauchy Sequence
|
||||||
|
$$\Sigma_{n=1}^{\infty}(-1)^n = -1, \, 1, \, -1, \, 1, \, \dots$$
|
||||||
|
These never converge to a limit, hence it is not Cauchy.
|
||||||
|
|
||||||
|
Furthermore, here, using something like $\lim_{ n \to \infty } (-1)^n$ is nearly impossible to know what the value would be as $\infty$ is neither even or odd.
|
8
content/Definitions/Cauchy-Schwarz Inequality.md
Normal file
8
content/Definitions/Cauchy-Schwarz Inequality.md
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
# Definition
|
||||||
|
$$| (u|v) | \leq \| \, u \, \|_{2} \times \| \, v \, \|_{2}$$
|
||||||
|
$$\| \, u + v \, \|_{2} \leq \| \, u \, \|_{2} + \| \, v \, \|_{2}$$
|
||||||
|
> [!example] Proof of Cauchy-Schwartz
|
||||||
|
> Insert $a \equiv - \frac{\overline{(u | v)}}{\| \, u \, \|_{2}^2}$ for $u \neq 0$ into
|
||||||
|
> $$f(a) \equiv |a|^2 \times \| \, u \, \|_{2}^2 + \text{Re}(a \times (u | v)) + \| \, v \, \|_{2}^2 = \| \, au + v \, \|_{2}^2 \geq 0$$
|
||||||
|
> [[QED]]
|
||||||
|
|
4
content/Definitions/Functions/Characteristic Function.md
Normal file
4
content/Definitions/Functions/Characteristic Function.md
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
$\varkappa_{y} \in \Pi_{X} \, \{ 0, \, 1 \}$, so $\varkappa_{y} : X \to \{ 0, \, 1 \}$ defined as:
|
||||||
|
$$\varkappa_{y}(x) = \begin{cases}
|
||||||
|
1, & \text{if}\ x \in Y\\ 0, & \text{if}\ x \notin Y
|
||||||
|
\end{cases}$$
|
2
content/Definitions/Functions/Direct Product.md
Normal file
2
content/Definitions/Functions/Direct Product.md
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
$$X \times Y = \{ x: \{ 1, 2 \} \to x_{1} \cup x_{2} | x_{1} X_{1} \wedge x_{2} \in X_{2} \}$$
|
||||||
|
where $X = X_{1}$ and $Y = X_{2}$, basically $(X_{1}, X_{2})$.
|
4
content/Definitions/Functions/Inverse Function.md
Normal file
4
content/Definitions/Functions/Inverse Function.md
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
$$f^{-1} : Y \to X$$
|
||||||
|
such that
|
||||||
|
$$ff^{-1} = I_{x} \; \land f^{-1}f = I_{y}$$
|
||||||
|
$$\exists f^{-1} \iff f \; \text{bijective}$$
|
2
content/Definitions/Functions/Metric.md
Normal file
2
content/Definitions/Functions/Metric.md
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
# Definition
|
||||||
|
A function which measures distances between two points in a [[Metric Space]].
|
10
content/Definitions/Functions/Power Set.md
Normal file
10
content/Definitions/Functions/Power Set.md
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
# Definition
|
||||||
|
$\wp(X)$ of $X$ consists of all the subsets of $X$.
|
||||||
|
|
||||||
|
## Amount of Elements in a Power Set
|
||||||
|
Lets say we have $|X|$:
|
||||||
|
$$|X| = |\{ 1, \, \dots, \, n \}|$$
|
||||||
|
The $\wp(X)$ would have $2^{n}$ elements in the set.
|
||||||
|
# Example
|
||||||
|
$$X = \{ 1, \, 2 \}$$
|
||||||
|
$$\wp(X) = \{ \emptyset, \, \{ 1 \}, \, \{ 2 \}, \, X \}$$
|
7
content/Definitions/Hilbert Spaces.md
Normal file
7
content/Definitions/Hilbert Spaces.md
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# Definition
|
||||||
|
These are [[Banach Space|Banach Spaces]] with norms given by an [[Inner Product]].
|
||||||
|
|
||||||
|
> [!note] The norm is defined as:
|
||||||
|
> $$\| \, v \, \|_{2} \equiv \sqrt{ (v | v) }$$
|
||||||
|
> $$d(u, v) = \| \, u - v \, \|_{2}$$
|
||||||
|
|
10
content/Definitions/Inner Product.md
Normal file
10
content/Definitions/Inner Product.md
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
# Definition
|
||||||
|
$$(\cdot | \cdot) : V \times V \to \mathbb{C}$$
|
||||||
|
> [!info]
|
||||||
|
> $$V \times V \ni (u, v) \mapsto (u | v) \in \mathbb{C}$$
|
||||||
|
> Such that $(au + bv | w) = a(u | w) + b(v|w)$
|
||||||
|
> and $\overline{(u | v)} = (v | u)$
|
||||||
|
> >[!example]-
|
||||||
|
> > $$(w | au + bv) = \overline{(au + bv | w)} = \overline{a(u | w) + b (v | w)} = \bar{a} \overline{(u | w)} + \bar{b} \overline{( v | w)} = \dots$$
|
||||||
|
>
|
||||||
|
> and $(v | v) \geq 0$ and $(u | u) = 0 \implies u = 0$
|
10
content/Definitions/Least Upper Bound Property.md
Normal file
10
content/Definitions/Least Upper Bound Property.md
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
$$X \subset \mathbb{R}$$
|
||||||
|
$$\exists c \in \mathbb{R} \; \text{such that}$$
|
||||||
|
$$x \lt c, \forall x \in X$$
|
||||||
|
|
||||||
|
|
||||||
|
$$sup(\langle 0, 1 \rangle) = 1 \notin \langle 0, 1 \rangle$$
|
||||||
|
$$sup(\langle 0, 1 ] \,)$$
|
||||||
|
|
||||||
|
|
||||||
|
$$sup(\mathbb{R}) = \infty$$
|
4
content/Definitions/Linear Map.md
Normal file
4
content/Definitions/Linear Map.md
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
# Definition
|
||||||
|
$$L: V \to \mathbb{C}^n \; \text{bijective}$$
|
||||||
|
$$L (ax + by) = a \times L(x) + b \times L(y), \; \forall x, \, y \in V, \, a; \, b \in \mathbb{C}$$
|
||||||
|
$$\| \, L(x) \, \| = \| \, x \, \|, \; (L(x) | L(y)) = (x | y)$$
|
@ -0,0 +1,2 @@
|
|||||||
|
# Definition
|
||||||
|
Say $f : X \to Y$ is [[Continuous|continuous]], $\implies f$ is Borel measurable.
|
@ -0,0 +1,2 @@
|
|||||||
|
# Definition
|
||||||
|
The $\sigma$-algebra generated by the [[Open Sets|open sets]] in a [[Topological Space|topological space]] $X$ is the $\sigma$-algebra of **Borel Sets** of $X$.
|
@ -0,0 +1,2 @@
|
|||||||
|
# Definition
|
||||||
|
$f: X \to Y$ ([[Topological Space]]) is **measurable** if $f^{-1}(V) \in M$ $\forall \text{ open } V \subset Y$.
|
@ -0,0 +1,5 @@
|
|||||||
|
# Definition
|
||||||
|
A **measure** on $X$ is a function $\mu : M \to [0,\infty]$ such that:
|
||||||
|
1. $\mu(\emptyset) = 0$
|
||||||
|
2. $\mu(\cup^{\infty}_{n=1}A_{n}) = \Sigma^{\infty}_{n=1} \mu(A_{n})$ (for pairwise disjoint $A_{n} \in M$)
|
||||||
|
Then we say $X$ is a measure space.
|
@ -0,0 +1,8 @@
|
|||||||
|
# Definition
|
||||||
|
A $\sigma$-algebra in a set $X$ is a collection of subsets, so called measurable sets, of $X$ such that (the requirements are):
|
||||||
|
1. $X \in M$
|
||||||
|
2. $A \in M \implies A^{\complement} \in M$ ($X^{\complement} = \emptyset \in M$)
|
||||||
|
3. $A_{n} \in M \implies \cup^{\infty}_{n=1} A_{n} \in M$ ($\implies \cap^{\infty}_{n=1} A_{n} = (\cup^{\infty}_{n=1}A^{\complement})^{\complement} \in M)$)
|
||||||
|
# Related Terminologies/Functions
|
||||||
|
- [[Measurable]]
|
||||||
|
- [[Measure]]
|
6
content/Definitions/Metric Spaces/Ball.md
Normal file
6
content/Definitions/Metric Spaces/Ball.md
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
# Definition
|
||||||
|
Let $d$ be a [[Metric|metric]] on a set $X$.
|
||||||
|
|
||||||
|
The (open) **ball** with centre $x \in X$ and radius $r \geq 0$ is $B_{r} \equiv \{ y \in X | d(x,y) \gt r\}$.
|
||||||
|
|
||||||
|
A sequence $\{ X_{n} \}$ in $X$ **converges** to $x \in X$ if it eventually belongs to any ball $B_{r}(x)$; $\forall r \gt 0 \; \exists N \in \mathbb{N}$ such that $\underbrace{d(x, x_{n})}_{x_{n} \in B_{r}(x)} \lt r, \; \forall n \gt N$.
|
2
content/Definitions/Metric Spaces/Interior Point.md
Normal file
2
content/Definitions/Metric Spaces/Interior Point.md
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
# Definition
|
||||||
|
Points such that small enough balls centred around them are contained in $A$.
|
6
content/Definitions/Metric Spaces/Metric Space.md
Normal file
6
content/Definitions/Metric Spaces/Metric Space.md
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
# Definition
|
||||||
|
A [[Metric]] on a set $X$ is a function $d : X \times X \to [ \, 0, \infty \rangle$ such that
|
||||||
|
1. $d(x,y) = d(y, x), \; \forall x,y \in X$
|
||||||
|
2. $d(x, y) = 0 \iff x = y$
|
||||||
|
3. $d(x,z) \leq d(x,y) + d(y, z)$ (think of this as a triangle and Pythagoras' Theorem)
|
||||||
|
Think of $d(x, y)$ as the distance between $x$ and $y$.
|
5
content/Definitions/Nets.md
Normal file
5
content/Definitions/Nets.md
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
$$\{ x_{i} \}_{i \in I} \; \text{NET} \; \underbrace{I}_{\text{VFOs}} \to X$$
|
||||||
|
$$x \in \overline{X} \iff \exists \; \text{NET} \; \underbrace{x_{i}}_{\in X} \to x$$
|
||||||
|
$I$ = neighbourhoods of $x$ with $A \geq B \iff A \subset B$.
|
||||||
|
|
||||||
|
$\{ \emptyset, X \}$ - all nets in $X$ will converge to all points in $X$.
|
9
content/Definitions/Norm.md
Normal file
9
content/Definitions/Norm.md
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# Definition
|
||||||
|
A **norm** on $V$ is a map $\|\cdot\| : V \to [ \, 0, \infty \rangle$ such that
|
||||||
|
1. $\| u + v \| \leq \| u \| + \| v \|, \; \forall u,v \in V$
|
||||||
|
2. $\| c \times v \| = | c | \times \| v \|, \; \forall v \in V, \, \forall c \in \mathbb{C}$
|
||||||
|
3. $\| v \| = 0 \implies v = 0$
|
||||||
|
|
||||||
|
Think of $\| v \|$ as the length of $v$.
|
||||||
|
## Norm of 0
|
||||||
|
$$\| 0 \| = \| 0 \times u \| = \| c \times u \| = \| 0 \| \times \|u \| = 0 \times \| u \| = 0$$
|
4
content/Definitions/Number Field.md
Normal file
4
content/Definitions/Number Field.md
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
$$a \neq 0, \; \frac{1}{a}$$
|
||||||
|
$$ab = ba$$
|
||||||
|
$$a(b+c) = ab + ac$$
|
||||||
|
$$a \gt b \iff a+1 \gt b + 1$$
|
7
content/Definitions/Period of a Fraction.md
Normal file
7
content/Definitions/Period of a Fraction.md
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# Definition
|
||||||
|
The period of a fraction is the digits that repeat themselves.
|
||||||
|
|
||||||
|
The digits can be from $0-9$, and the length of the period is determined by the denominator, n in $\frac{a}{n}$ .
|
||||||
|
# Examples
|
||||||
|
$\frac{22}{7}= 3.142857142857\dots$ where the period here is $142857$ and has a length 6
|
||||||
|
$\frac{1}{2} = 0.5000000\dots$ has the period $0$, with the length being 1.
|
5
content/Definitions/Rational Cauchy Sequences.md
Normal file
5
content/Definitions/Rational Cauchy Sequences.md
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
# Definition
|
||||||
|
They are sequences $\{ x_{n} \subset \mathbb{Q} \}$ such that
|
||||||
|
$$\forall k \in \mathbb{N} \; \exists N \in \mathbb{N}$$
|
||||||
|
Such that
|
||||||
|
$$|x_{m} - x_{n}| \lt \frac{1}{k}, \; \forall m, n \gt N.$$
|
6
content/Definitions/Sets/Complex Numbers.md
Normal file
6
content/Definitions/Sets/Complex Numbers.md
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
$$z = a + ib$$
|
||||||
|
$$z = r(\cos \theta + i\sin \theta)$$
|
||||||
|
$$z = re^{i \theta}$$
|
||||||
|
# Operations
|
||||||
|
## Multiplying Vectors
|
||||||
|
$$z_{1} \times z_{2} = (r_{1} \times r_{2})(\cos(\theta_{1} + \theta 2) + i \sin (\theta_{1} + \theta_{2}))$$
|
2
content/Definitions/Sets/Open Cover.md
Normal file
2
content/Definitions/Sets/Open Cover.md
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
# Definition
|
||||||
|
[[Open Sets]] with union $X$
|
2
content/Definitions/Sets/Open Map.md
Normal file
2
content/Definitions/Sets/Open Map.md
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
# Definition
|
||||||
|
An **open map** takes one [[Open Sets|open set]] and maps it to another [[Open Sets|open set]].
|
4
content/Definitions/Sets/Open Sets.md
Normal file
4
content/Definitions/Sets/Open Sets.md
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
# Definition
|
||||||
|
An open set $A \subset X$ in $(X, d)$ (means set with a metric) consists only of [[Interior Point|interior points]].
|
||||||
|
|
||||||
|
Then a sequence converges to $x \in X$ $\iff$ it eventually belongs to any [[Open Sets|open set]] containing $x$.
|
9
content/Definitions/Statements/And.md
Normal file
9
content/Definitions/Statements/And.md
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
$P \land Q$
|
||||||
|
# Truth Table
|
||||||
|
|
||||||
|
| P | Q | = |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| F | F | F |
|
||||||
|
| F | T | F |
|
||||||
|
| T | F | F |
|
||||||
|
| T | T | T |
|
9
content/Definitions/Statements/Implies.md
Normal file
9
content/Definitions/Statements/Implies.md
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
$P \implies Q$
|
||||||
|
# Truth Table
|
||||||
|
|
||||||
|
| P | Q | = |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| F | F | T |
|
||||||
|
| F | T | T |
|
||||||
|
| T | F | F |
|
||||||
|
| T | T | T |
|
8
content/Definitions/Statements/Not.md
Normal file
8
content/Definitions/Statements/Not.md
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
$¬P$
|
||||||
|
The symbol ($¬$) is called negation
|
||||||
|
# Truth Table
|
||||||
|
|
||||||
|
| P | = |
|
||||||
|
| --- | --- |
|
||||||
|
| F | T |
|
||||||
|
| T | F |
|
9
content/Definitions/Statements/Or.md
Normal file
9
content/Definitions/Statements/Or.md
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
$P \lor Q$
|
||||||
|
# Truth Table
|
||||||
|
|
||||||
|
| P | Q | = |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| F | F | F |
|
||||||
|
| F | T | T |
|
||||||
|
| T | F | T |
|
||||||
|
| T | T | T |
|
2
content/Definitions/Subcover.md
Normal file
2
content/Definitions/Subcover.md
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
# Definition
|
||||||
|
Any subcollection with union $X$
|
11
content/Definitions/Subnet.md
Normal file
11
content/Definitions/Subnet.md
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
# Definition
|
||||||
|
A **subnet** of a [[Nets|net]] $f: I \to X$ is a [[Nets|net]] $g: J \to X$ and a map $h : J \to I$ such that $g = f \circ h$ and such that $\forall i \in I$ $\exists j \in J$ with $h(j') \geq i \; \forall j' \geq j$.
|
||||||
|
# Example
|
||||||
|
> [!example]
|
||||||
|
> ![[Drawing 2025-02-13 11.47.33.excalidraw]]
|
||||||
|
> **Sequence:**
|
||||||
|
> $$f : I = \mathbb{N} \to \mathbb{R} : f(n) = x_{n}$$
|
||||||
|
> **Subsequence:**
|
||||||
|
> $$\{ \underbrace{x_{1}}_{= x_{1}}, \, \underbrace{x_{3}}_{= x_{2}}, \, \underbrace{x_{5}}_{= x_{3}}, \, \underbrace{x_{7}}_{= x_{4}}, \, \dots \} \to 1$$
|
||||||
|
> **Definition:**
|
||||||
|
> $g : J = \mathbb{N} \to \mathbb{R}$ by $g(j) = x'_{j} = x_{2j-1} = f(2j-1) = f \circ h(j)$, where $h : J \to I$ is defined by $h(j) = 2j-1$.
|
@ -0,0 +1,4 @@
|
|||||||
|
# For Complex Numbers
|
||||||
|
Any equation
|
||||||
|
$$a_{n} z^n + \dots + a_{1} z^1 + a_{0} = 0$$
|
||||||
|
with $a_{i} \in \mathbb{C}$ has $n$ roots, or solutions, counted with multiplicity.
|
10
content/Definitions/Terminology/Bijective.md
Normal file
10
content/Definitions/Terminology/Bijective.md
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
# Definition
|
||||||
|
It is both [[Injective]] and [[Surjective]].
|
||||||
|
|
||||||
|
# Bijective Map
|
||||||
|
An example could be
|
||||||
|
$$X = \{ 0,\, L \} \simeq \{ \text{Person}, \, \text{House} \}$$
|
||||||
|
Where $0$ would map to $\text{Person}$ and $L$ would map to $\text{House}$.
|
||||||
|
|
||||||
|
Another example could be
|
||||||
|
$$\{ 1, \dots, 5 \} \xrightarrow{f^{\text{\; Bijective}}} X$$
|
3
content/Definitions/Terminology/Bounded.md
Normal file
3
content/Definitions/Terminology/Bounded.md
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# Definition
|
||||||
|
$\exists M$ such that $\| \, x \, \| M, \; \forall x \in A$.
|
||||||
|
![[Pasted image 20250130113939.png]]
|
17
content/Definitions/Terminology/Countable.md
Normal file
17
content/Definitions/Terminology/Countable.md
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
# What is countable?
|
||||||
|
## Natural Numbers
|
||||||
|
Quite simple
|
||||||
|
$$\mathbb{N} = \{ 1, 2, 3, 4, \dots \}$$
|
||||||
|
Which you can just add it up every time
|
||||||
|
## Integer Numbers
|
||||||
|
$Z$ can be countable as you can go
|
||||||
|
$$1 \to 0$$
|
||||||
|
$$2 \to 1$$
|
||||||
|
$$3 \to -1$$
|
||||||
|
$$4 \to 2$$
|
||||||
|
$$5 \to -2$$
|
||||||
|
and so on...
|
||||||
|
|
||||||
|
Here they start at 0, then go 1, -1, 2, -2, etc...
|
||||||
|
## Rational Numbers
|
||||||
|
They are countable, but it is a lot more work to show
|
5
content/Definitions/Terminology/Injective.md
Normal file
5
content/Definitions/Terminology/Injective.md
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
$$f: \mathbb{R} \to \mathbb{R}$$
|
||||||
|
Usually a function would be mapped like:
|
||||||
|
$$G(f) = \{ (x, f(x)) | x \in X \}$$
|
||||||
|
# Definition
|
||||||
|
A horizontal line going through a function (on a graph) should only intersect the function only once
|
6
content/Definitions/Terminology/QED.md
Normal file
6
content/Definitions/Terminology/QED.md
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
Can be written as "Q.E.D." or "QED".
|
||||||
|
|
||||||
|
It is shortened in Latin from "quod erat demonstrandum" (that which was to be demonstrated).
|
||||||
|
|
||||||
|
# Definition
|
||||||
|
A notation which is often placed at the end of a mathematical proof to indicate its completion
|
3
content/Definitions/Terminology/Surjective.md
Normal file
3
content/Definitions/Terminology/Surjective.md
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
$$y \in Y$$
|
||||||
|
$$\exists x \in X$$
|
||||||
|
$$\text{such that} \; f(x) = y$$
|
Binary file not shown.
After Width: | Height: | Size: 15 KiB |
8
content/Definitions/Topological Spaces/Continuous.md
Normal file
8
content/Definitions/Topological Spaces/Continuous.md
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
# Definition
|
||||||
|
We say $f$ is **continuous** (at every $x$) if $f^{-1}(A) \equiv \{ x \in X | f(x) \in A \}$ is open for every open $A \subset Y$.
|
||||||
|
|
||||||
|
We say $f$ is [[Open Sets|open]] if $f(B)$ is [[Open Sets|open]] and $\forall$ [[Open Sets|open]] $B \subset X$.
|
||||||
|
|
||||||
|
If $f$ is a [[Bijective|bijection]] that is both **continuous** and [[Open Sets|open]], it is a [[Homeomorphic|homeomorphism]], and $X$ and $Y$ are [[Homeomorphic|homeomorphic]], written $X \simeq Y$; they are the 'same' as [[Topological Space|topological spaces]].
|
||||||
|
## In-depth Definition
|
||||||
|
A function $f : X \to Y$ between [[Topological Space|topological spaces]] is **continuous at $x \in X$** if for every neighbourhood $A$ of $f(x)$, we can find a neighbourhood $B$ of $x$ such that $f(B) \subset A$, or $B \subset f^{-1}(A)$.
|
4
content/Definitions/Topological Spaces/Hausdorff.md
Normal file
4
content/Definitions/Topological Spaces/Hausdorff.md
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
# Definition
|
||||||
|
If there are two points $x$ and $y$ in a [[Topological Space|topological space]] $X$ that can be separated by neighbourhoods if there exists a neighbourhood $U$ of $x$ and a neighbourhood $V$ of $y$, such that $U$ and $V$ are disjoint $U \cup V = \emptyset$.
|
||||||
|
|
||||||
|
$X$ is a **Hausdorff space** if any two distinct points in $X$ are separated by neighbourhoods.
|
@ -0,0 +1,4 @@
|
|||||||
|
# Definition
|
||||||
|
The **initial topology** on $X$ induced by a family of functions $f : X \to Y_{f}$ into [[Topological Space|topological spaces]] $Y_{f}$ is the [[Weakest Topology|weakest topology]]on $X$ making all these functions [[Continuous|continuous]].
|
||||||
|
|
||||||
|
Here: $F = \{ f^{-1} \; | \; f : X \to Y_{f}, \; A \; \text{open in} \; Y_{f} \}$.
|
@ -0,0 +1,13 @@
|
|||||||
|
# Definition
|
||||||
|
The **product topology** on $\Pi X_{\lambda}$, $X_{\lambda}$ [[Topological Space|topological spaces]], is the [[Initial Topology|initial topology]] induced by the family of projections $\Pi_{\lambda}$
|
||||||
|
> [!note] What is $\Pi_{\lambda}$?
|
||||||
|
> $\pi_{\lambda} : \Pi_{\lambda' \in \wedge} X_{\lambda'} \to X_{\lambda}$
|
||||||
|
> $\pi_{\lambda}(f) = f(\lambda)$
|
||||||
|
> $\pi_{\lambda}((X_{\lambda'})) = x_{\lambda}$
|
||||||
|
|
||||||
|
$$\underbrace{\Pi_{\lambda \in \wedge} X_{\lambda} \equiv}_{\in (x_{\lambda})_{\lambda \in \wedge}} \{ f : \wedge \to \cup_{\lambda \in \wedge} X_{\lambda} \; | \; \underbrace{f(\lambda)}_{x_{\lambda}} \in X_{\lambda} \}$$
|
||||||
|
# Example
|
||||||
|
Product of 2 [[Topological Space|topological spaces]]: $x_{1} \times x_{2}$
|
||||||
|
$= \{ (x_{1}, x_{2}) \; | \; x_{i} \in X_{i} \}$
|
||||||
|
$\pi_{1}((x_{1}, x_{2})) = x_{1}$
|
||||||
|
![[Drawing 2025-02-24 12.47.32.excalidraw]]
|
@ -0,0 +1,2 @@
|
|||||||
|
# Definition
|
||||||
|
A family $F$ of functions on a set **separating points** $x \neq y$ in the set if $f(x) \neq f(y)$ for some $f \in F$
|
@ -0,0 +1,11 @@
|
|||||||
|
# Definition
|
||||||
|
Given $F \subset \wp(X)$. The **weakest topology** on $X$ that contains $F$ is the intersection of all the [[Topology|topologies]] that contains $F$. This is a [[Topology|topology]], and consists of $\emptyset$, $X$, and all unions of finite intersections of members from $F$.
|
||||||
|
|
||||||
|
> [!example]
|
||||||
|
> $F \subset \tau$
|
||||||
|
> $\textvisiblespace \cap \tau \ni U_{i} \implies U_{i} \in \tau$
|
||||||
|
> $\implies \cap_{i \in F} \; U_{i} \in \tau \implies \cap U_{i} \in \cap_{F \in \tau} \;\tau$
|
||||||
|
>
|
||||||
|
> $x_{i} \to x$
|
||||||
|
> $\exists j$ such that $x_{i} = x, \; i \geq j$.
|
||||||
|
|
@ -0,0 +1,2 @@
|
|||||||
|
# Definition
|
||||||
|
$X$ is **compact** if every [[Open Cover|open cover]] has a finite [[Subcover|subcover]].
|
@ -0,0 +1,2 @@
|
|||||||
|
# Definition
|
||||||
|
A **connected component** of a [[Topological Space|topological space]] is the union of all [[Connected|connected]] subsets that contain a given point. It itself is [[Connected|connected]].
|
@ -0,0 +1,10 @@
|
|||||||
|
# Definition
|
||||||
|
A [[Topological Space|topological space]] is **connected** if it is not a union of two non-empty [[Open Sets|open sets]].
|
||||||
|
|
||||||
|
i.e. if you draw the two non-empty [[Open Sets|open sets]] on the graph, if you have to lift your pen, it will not be connected.
|
||||||
|
|
||||||
|
# Examples
|
||||||
|
Not connected:
|
||||||
|
$$\langle 0, 1 ] \cup [ 2, 5 \rangle$$
|
||||||
|
Connected:
|
||||||
|
$$\langle 0, 1 ] \cup [ 0.5, 5 \rangle = \langle 0, 5 \rangle$$
|
13
content/Definitions/Topological Spaces/Topological Space.md
Normal file
13
content/Definitions/Topological Spaces/Topological Space.md
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
# Definition
|
||||||
|
Let $X$ be a topological space
|
||||||
|
1. A **neighbourhood** of $x \in X$ is an [[Open Sets|open set]] $A$ with $x \in A$.
|
||||||
|
2. $X$ is Hausdorff if for $x \neq y\; \exists \, \text{neighbourhoods} \, A, B$ of $x$ and $y$ respectively, such that $A \cap B = \emptyset$.
|
||||||
|
3. $A \subset X$ is **closed** if $A^{\complement}$ is open.
|
||||||
|
4. The **closure** (denoted by a bar over the set) $\overline{Y}$ of a subset $Y \subset X$ is the intersection of all closed subsets of $X$ that contain $Y$.
|
||||||
|
5. $X$ is **[[Compact|compact]]** if every [[Open Cover|open cover]] has a finite [[Subcover|subcover]].
|
||||||
|
6. $X$ is **locally compact** if any $x \in X$ has a neighbourhood with compact closure.
|
||||||
|
7. $X$ is $\sigma$-compact if it is a countable union of compact subsets with respect to the **relative topology**, i.e. an [[Open Sets|open set]] of a subset $Z$ of $X$ is of the type $Z \cap A$ where $A$ is open in $X$.
|
||||||
|
## Dense
|
||||||
|
Say $Y$ is **dense** in $X$ if $\overline{Y} = X$. If $Y$ is countable.
|
||||||
|
## Separable
|
||||||
|
Say $\overline{Y} = X$, then we say that $X$ is **separable**.
|
25
content/Definitions/Topological Spaces/Topology.md
Normal file
25
content/Definitions/Topological Spaces/Topology.md
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
# Definition
|
||||||
|
A collection of subsets of $X$, called [[Open Sets|open sets]], such that:
|
||||||
|
1. $X, \, \emptyset \in \tau$
|
||||||
|
2. Any union of sets from $\tau$ will be in $\tau$.
|
||||||
|
> [!info]-
|
||||||
|
> $$y, z \in \tau \implies y \cup z \in \tau$$
|
||||||
|
> $$x_{i} \in \tau \implies \cup_{i \in I} X_{i} \in \tau$$
|
||||||
|
3. Any **finite** intersection of sets from $\tau$ will be in $\tau$.
|
||||||
|
> [!info]-
|
||||||
|
> $$y \cap z \in \tau$$
|
||||||
|
> $$\cap_{i \in I} X_{i} \notin \tau$$
|
||||||
|
|
||||||
|
# Examples
|
||||||
|
> [!example]
|
||||||
|
> The **topology induced by a metric** on $X$ is the collection of all unions of [[Ball|balls]].
|
||||||
|
|
||||||
|
> [!example] Reasoning for having point/rule 3 in [[#Definition]]
|
||||||
|
> Consider the topology on $\mathbb{R}$ induced by the usual distance.
|
||||||
|
> $$B_{r}(x) = \langle x - r, x + r \rangle$$
|
||||||
|
> Note:
|
||||||
|
> $$\cap_{n \in \mathbb{N}} \langle -\frac{1}{n}, \frac{1}{n} \rangle = \{ 0\}$$
|
||||||
|
> ($\cap_{n \in \mathbb{N}}$ is an infinite intersection of all numbers (in $\mathbb{N}$))
|
||||||
|
> But the reason why this is not $= \{ 0, \varepsilon \}$ is a finite amount of intersections
|
||||||
|
> $\varepsilon \notin \langle -\frac{1}{n}, \frac{1}{n} \rangle$ for $n \gt \frac{1}{\varepsilon}$
|
||||||
|
|
@ -0,0 +1,3 @@
|
|||||||
|
Can be abbreviated as "THM".
|
||||||
|
# Definition
|
||||||
|
The product of compact spaces is compact in the [[Product Topology|product topology]]
|
@ -0,0 +1,2 @@
|
|||||||
|
# Definition
|
||||||
|
A **complex vector space** is a set $V$ with addition $u + v$ of vectors $u$, $v$, and scalar multiplication $a \times v, \; a \in \mathbb{C}, \; v \in V$, satisfying the [[Properties of a Vector Space]]
|
2
content/Definitions/Vector Spaces/Linear Basis.md
Normal file
2
content/Definitions/Vector Spaces/Linear Basis.md
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
# Definition
|
||||||
|
A **linear basis** of $V$ is a subset $\{ v_{i} \} \subset V$ such that every vector can be written uniquely as $\Sigma_{i} c_{i} v_{i}$ for finitely many non-zero $c_{i} \in \mathbb{C}$.
|
2
content/Definitions/Vector Spaces/Normed Vector Space.md
Normal file
2
content/Definitions/Vector Spaces/Normed Vector Space.md
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
# Definition
|
||||||
|
Have a metric given by the [[Norm]] on a vector space $V$ as $d(u, v) \equiv \|u - v\| \in [ \, 0, \infty \rangle$.
|
@ -0,0 +1,10 @@
|
|||||||
|
- $u + v = v + u$,
|
||||||
|
- $(u+v) + w = u + (v + w)$,
|
||||||
|
- $u + 0 = u$,
|
||||||
|
- $u + (-u) = 0$,
|
||||||
|
- $a (u + v) = a \times u + a \times v$,
|
||||||
|
- $(a + b) \times v = av + bv$,
|
||||||
|
- $a(bv) = (ab) \times v$,
|
||||||
|
- $1 \times v = v$.
|
||||||
|
|
||||||
|
These can be used for Complex, Real, or Rational vector spaces.
|
BIN
content/Exercises/Workings/exercise-1.rnote
Normal file
BIN
content/Exercises/Workings/exercise-1.rnote
Normal file
Binary file not shown.
BIN
content/Exercises/exer1.pdf
Normal file
BIN
content/Exercises/exer1.pdf
Normal file
Binary file not shown.
81
content/Lectures/Lecture 1 - 1.1 Sets and Numbers.md
Normal file
81
content/Lectures/Lecture 1 - 1.1 Sets and Numbers.md
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
---
|
||||||
|
lecture: 1
|
||||||
|
date: 2025-01-06
|
||||||
|
---
|
||||||
|
# Prime Numbers
|
||||||
|
$\mathbb{N} = \{1,2,3,\dots\}$ (natural numbers)
|
||||||
|
|
||||||
|
**Prime Number** - $p \in \mathbb{N} \setminus \{1\}$ only divisible by $1$ and $p$.
|
||||||
|
|
||||||
|
They are building blocks for multiplication; for instance
|
||||||
|
$90 = 9 \times 10 = 3 \times 3 \times 2 \times 5 = 2 \times 3^2 \times 5 = 5 \times 3^2 \times 2$
|
||||||
|
|
||||||
|
$$
|
||||||
|
p \times q = p' \times q'
|
||||||
|
$$
|
||||||
|
$\implies$ (need proof [[#Theorem 1.1.1]])
|
||||||
|
$$
|
||||||
|
p = p' \; \cap \; q=q'
|
||||||
|
$$
|
||||||
|
$$
|
||||||
|
p = q' \; \cap \; q = p'
|
||||||
|
$$
|
||||||
|
## Theorem 1.1.1
|
||||||
|
Any natural number other than one is a product of unique primes
|
||||||
|
### Proof Existence
|
||||||
|
Divide as long as possible
|
||||||
|
Uniqueness (Gauss): Need Euclid's lemma, saying that
|
||||||
|
If $n|ab$ with $gcd(a,b) = 1$, then $n|a$ or $n|b$.
|
||||||
|
|
||||||
|
This lemma follows from the axiom:
|
||||||
|
Each non-empty subset of $\mathbb{N}$ has a least element/number.
|
||||||
|
|
||||||
|
[[QED]]
|
||||||
|
## COR 1.1.2
|
||||||
|
There are infinitely many primes.
|
||||||
|
### Proof
|
||||||
|
Say we had finitely many primes $p_{1}, \ldots, p_{n}$. Applying [[#Theorem 1.1.1]] to $p_{1} \times p_{2} \times \ldots \times p_{n} + 1$ gives the **absurdity** that $1$ can be divided by some prime number
|
||||||
|
|
||||||
|
This is impossible as for example $p_{1} \times p_{2} \times \ldots \times p_{n} + 1$ and $p_{1} \times p_{7} \times p_{n}$, you can divide both sides by something like $p_{1}$, however on the LHS with $+ 1$ would result in $+ 1 \frac{1}{p_{1}}$
|
||||||
|
|
||||||
|
QED
|
||||||
|
## Statements
|
||||||
|
These are mostly similar to logic in computer science with [[And]], [[Or]], [[Not]], and [[Implies]].
|
||||||
|
# Sets
|
||||||
|
A **set** $X$ is characterised by its **elements** or **members** $x \in X$.
|
||||||
|
|
||||||
|
They can be listed like $\{1,5,4\}$, or described by some property, like the set of all primes, or like $X = \{x | P(x)\}$; here $x$ is from the outset supposed to belong to some (universal) set. Otherwise $X = \{ x | \notin X \}$ (Russel's paradox) - which is not allowed. $X = \{ x \in | x > 7\}$ - which is OK!
|
||||||
|
|
||||||
|
$Y \subset$ means $x \in Y \implies x \in X$
|
||||||
|
|
||||||
|
Get $\emptyset \subset X$
|
||||||
|
## Union
|
||||||
|
The **union** $\cup_{i \in I} X_{i}$ consists of $x \in X_{i}$ for at least one $i \in I$
|
||||||
|
|
||||||
|
**Disjoint** union when $X_{i} \cap X_{j} = \emptyset$ for all possible $i$ and $j$.
|
||||||
|
## Intersection
|
||||||
|
The **intersection** $\cap_{i \in I} X_{i}$ consists of $x \in X_{i}, \; \forall i \in I$
|
||||||
|
## Complement
|
||||||
|
The **complement** $X \setminus Y$ of $Y$ in $X$ consists of $x \in X \cap x \notin Y$
|
||||||
|
Write $Y^\complement$ (a complement of $Y$) when $X$ is understood.
|
||||||
|
## Product
|
||||||
|
The **product** $X \times Y$ consists of the **ordered pairs**
|
||||||
|
$$(x, y) \neq (y, x) \equiv \{ \{ y \}, \{ y, x \} \}$$
|
||||||
|
($x \in X$ and $y \in Y$)
|
||||||
|
$$
|
||||||
|
(x,y) = (x', y') \iff x = x' \cap y = y'
|
||||||
|
$$
|
||||||
|
A more compact way of writing this: $X \times Y = \{ (x, y) | x \in X \cap y \in Y \}$
|
||||||
|
## Relation
|
||||||
|
A **relation** on a set $X$ is $R \subset X \times X$ with $xRy \equiv ((x,y) \in R)$. ($R$ here meaning is related to)
|
||||||
|
### Example
|
||||||
|
$R= \{ (x, x) | x \in X \} \subset X \times X$, $xRy \iff (x, y) \in R \implies x = y$.
|
||||||
|
These two elements $x$ and $y$ can only relate if they are the same.
|
||||||
|
### Equivalence Relation
|
||||||
|
An **equivalence relation** $0 \sim X$ is a relation on $\sim$ on $X$ such that:
|
||||||
|
1. $x \sim x$
|
||||||
|
2. $x \sim y \implies y \sim x$
|
||||||
|
3. $(x \sim y) \cap (y \sim z) \implies x \sim z$
|
||||||
|
For all $x,y,z \in X$.
|
||||||
|
|
||||||
|
It **partitions** $X$ into a disjoint union $\frac{X}{\sim}$ of **equivalence classes** $[x] \equiv \{ y \in X | y \sim x \}$, with $x$ called a **representative** of $[x]$ (equivalence class).
|
120
content/Lectures/Lecture 11.md
Normal file
120
content/Lectures/Lecture 11.md
Normal file
@ -0,0 +1,120 @@
|
|||||||
|
---
|
||||||
|
lecture: 11
|
||||||
|
date: 2025-02-13
|
||||||
|
---
|
||||||
|
Last lecture talked about [[Nets]]
|
||||||
|
# Proposition
|
||||||
|
A [[Topological Space|topological space]] is [[Hausdorff]] $\iff$ each [[Nets|net]] converges to at most one point.
|
||||||
|
## Proof
|
||||||
|
### $\Rightarrow$:
|
||||||
|
"Easy"
|
||||||
|
![[Drawing 2025-02-13 10.57.31.excalidraw]]
|
||||||
|
### $\Leftarrow$:
|
||||||
|
say $x \neq y$, therefore cannot be separated by disjoint neighbourhoods.
|
||||||
|
|
||||||
|
By the axiom of choice, pick $x_{(A, B)} \in A \cap B$, where $A$ and $B$ are neighbourhoods of $x$ and $y$ respectively. Consider the index set of pairs $(A, B)$ with $(A, B) \geq (A', B')$ if $A \subset A' \cap B \subset B'$.
|
||||||
|
|
||||||
|
This is a "ufos", and $\{x_{(A, B)} \to x; \; x_{(A, B)} \to y$ which is a contradiction.
|
||||||
|
|
||||||
|
![[Drawing 2025-02-13 11.02.27.excalidraw]]
|
||||||
|
$$\underbrace{x_{(A,B)}}_{\in {A \cap B}} \in A' \forall \underbrace{(A, B) \geq (A', B')}_{\implies A \subset A' \cap B \subset B'}$$
|
||||||
|
# Proposition - Convergence in Topological Space
|
||||||
|
$f: X \to Y$ [[Topological Space|topological spaces]] with $x \in X$.
|
||||||
|
|
||||||
|
Then:
|
||||||
|
$f$ is continuous at $x \iff f(x_{i}) \to f(x) \; \forall x_{i} \to x$.
|
||||||
|
($\forall$ neighbourhood $B$ of $f(x)$ $\exists$ neighbourhood $A$ of $x$ such that $f(A) \overbrace{\subset}^{A \subset f^{-1}(B)} B$ )
|
||||||
|
## Proof
|
||||||
|
### $\Rightarrow$:
|
||||||
|
Suppose $x_{i} \to x$ and that $B$ is a neighbourhood of $f(x)$. Then there $\exists$ a neighbourhood $A$ of $x$ such that $f(A) \subset B$. Then $\{ x_{i} \}$ ([[Nets|net]]) will eventually be in $A$. Then $\{ f(x_{i}) \}$ will eventually be in $B$, so that means $f(x_{i}) \to f(x)$.
|
||||||
|
### $\Leftarrow$:
|
||||||
|
(Going for a proof by contradiction)
|
||||||
|
|
||||||
|
Say $B$ is a neighbourhood of $f(x)$ such that every neighbourhood $A$ of $x$ intersects $X \setminus f^{-1}(B)$. Then $x$ belongs to the closure of $X \setminus f^{-1}(B)$. By previous proposition there $\exists$ [[Nets|net]] $\{ x_{i} \} \subset X \setminus f^{-1} (B)$ such that $x_{i} \to x$.
|
||||||
|
|
||||||
|
![[Drawing 2025-02-13 11.26.08.excalidraw]]
|
||||||
|
$$\text{to }x \; \text{circle}\iff x \in \overline{A} \iff x \leftarrow x_{i} \in A$$
|
||||||
|
## Definition
|
||||||
|
A **[[Subnet|subnet]]** of a [[Nets|net]] $f: I \to X$ is a [[Nets|net]] $g: J \to X$ and a map $h : J \to I$ such that $g = f \circ h$ and such that $\forall i \in I$ $\exists j \in J$ with $h(j') \geq i \; \forall j' \geq j$.
|
||||||
|
## Theorem
|
||||||
|
A space is [[Compact|compact]] $\iff$ every net has a converging subnet.
|
||||||
|
### Examples
|
||||||
|
> [!example] Example: Illustrates $\Rightarrow$
|
||||||
|
> $$x_{n} = n$$
|
||||||
|
> ![[Drawing 2025-02-13 12.01.57.excalidraw]]
|
||||||
|
> $$x_{n} = \frac{1}{n} \in \langle \, 0, 1 \, ]$$
|
||||||
|
|
||||||
|
> [!example] Example: Illustrates $\Rightarrow$
|
||||||
|
> Consider the [[Compact|compact]] space $[ \, 0, \, 1 \,]$, say $\{ y_{n} \subset [\, 0, \, 1, \, ] \}$
|
||||||
|
> ![[Drawing 2025-02-13 12.07.00.excalidraw]]
|
||||||
|
> **Construct subsequence:**
|
||||||
|
> $x_{1} = y_{1}$ $x_{2}$ any $y_{j}$ in the half with infinitely many $y_{i}$s.
|
||||||
|
> Pick $x_{3}$ to be in the half with infinitely many $y_{i}$s.
|
||||||
|
>
|
||||||
|
> Get subsequence $\{ x_{n} \}$ contained in more and more narrow intervals. So $\{ x_{n} \}$ will be [[Cauchy Sequence|cauchy]] incomplete $[ \, 0, \, 1 \, ]$, so it converges.
|
||||||
|
> > [!note]
|
||||||
|
> > $$\underbrace{[\, 0, \, 1 \, ]}_{\text{closed} \implies complete} \subset \underbrace{\mathbb{R}}_{\to \, \text{complete}}$$
|
||||||
|
|
||||||
|
# Exercises
|
||||||
|
> [!note]
|
||||||
|
> Question numbering is probably not the same as the ones from the exercises on Canvas. The numbering was done in order they appeared in the lecture.
|
||||||
|
## Question 1
|
||||||
|
$f, \, g \; \text{contiuous} \implies f \circ g \; \text{continuous}$
|
||||||
|
$X \xrightarrow{g} Y \xrightarrow{f} Z$ and $X \xrightarrow{(f \circ g)(x) = f(g(x))} Z$
|
||||||
|
|
||||||
|
$f^{-1}(A)$ [[Open Sets|open]] in $Y$
|
||||||
|
for $A$ open in $Z$.
|
||||||
|
|
||||||
|
$g^{-1}(B)$ open in $X$
|
||||||
|
for $B$ open in $Y$
|
||||||
|
|
||||||
|
Is $(f \circ g)^{-1}(A)$ open in $X$ when $A$ is open in $Z$?
|
||||||
|
|
||||||
|
$(f \circ g)^{-1}(A) = g^{-1}(\underbrace{f^{-1}(A)}_{B})$
|
||||||
|
|
||||||
|
Take $A$ open in $Z$. Then $(f \circ g)^{-1}(A) = g^{-1}(f^{-1}(A)) \xleftarrow{\text{claim}} \text{true for any subset of } A \text{ of } Z$ is open in $X$ since $B = f^{-1}(A)$ is open in $Y$, as $f$ is continuous.
|
||||||
|
|
||||||
|
But then $g^{-1}(B)$ is open in $X$ as $g$ is continuous. Hence $(f \circ g)^{-1}(A)$ is open in $X$, so $f \circ g$ is continuous.
|
||||||
|
|
||||||
|
### Claim:
|
||||||
|
$(f \circ g)^{-1}(A) = g^{-1}(f^{-1}(A)), \; \forall A \subset Z$.
|
||||||
|
### Proof:
|
||||||
|
Say $x \in (f \circ g)^{-1}(A)$, so $(f \circ g)(x) \in A$, or $f(g(x)) \in A$, so $g(x) \in f^{-1}(A)$, so $x \in g^{-1}(f^{-1}(A))$.
|
||||||
|
If $x \in g^{-1}(f^{-1}(A))$, then $g(x) \in f^{-1}(A)$, so $f(g(x)) \in A = (f \circ g)(x)$, so $x \in (f \circ g)^{-1}(A)$.
|
||||||
|
|
||||||
|
### Alternatively:
|
||||||
|
Say we have $x_{i} \to x$ in $X$. Then $(f \circ g)(x) \overbrace{=}^{\text{Definition of } \circ} f(g(x)) \overbrace{=}^{x_{i} \to x} f(g(\lim_{ i \to \infty }x_{i}))$ (Note: I'm assuming the $\lim$ is $i \to \infty$, as it was not defined in the lecture) $= f(\lim_{ i \to \infty }g(x_{i})) = \lim_{ i \to \infty }f(g(x_{i})) = \lim_{ i \to \infty }(f \circ g)(x_{i})$.
|
||||||
|
## Question 2
|
||||||
|
$X \simeq Y$
|
||||||
|
|
||||||
|
$\overbrace{S}^{\text{Compact}} \not\simeq \overbrace{\mathbb{R}}^{\text{Not compact}}$
|
||||||
|
$\mathbb{R}^2$
|
||||||
|
$\mathbb{R} \to \mathbb{R}^2$
|
||||||
|
$x \mapsto (x, x)$
|
||||||
|
|
||||||
|
$\underbrace{\mathbb{R}}_{\underbrace{\simeq}_{\tan} \underbrace{\langle \, 0, \, 1 \, \rangle}_{\simeq \langle \, -\frac{\pi}{2}, \, \frac{\pi}{2} \, \rangle}} \to S \subset \mathbb{R}^2$
|
||||||
|
|
||||||
|
$\langle \, -\frac{\pi}{2}, \, \frac{\pi}{2} \, \rangle \xrightarrow{\tan} \mathbb{R} = \langle \, - \infty, \, \infty \, \rangle$
|
||||||
|
$S \not\simeq \mathbb{R}^2$ by compactness argument.
|
||||||
|
$\mathbb{R}^2$ is 'more [[Connected|connected]]' than $\mathbb{R}$.
|
||||||
|
## Question 3
|
||||||
|
Why does there not exist a continuous injection for $S \to \mathbb{R}$?
|
||||||
|
|
||||||
|
What happens then if you take the image $f : S \to \mathbb{R}$?
|
||||||
|
$f(S) \subset \mathbb{R}$ is both compact and [[Connected|connected]], so $f(S) = [ \, a, \, b \, ]$ for some $a, \, b \in \mathbb{R}$.
|
||||||
|
|
||||||
|
Then $f : S \to [ \, a, \, b \, ]$ is continuous and [[Bijective|bijective]] (as nothing is excluded from the image).
|
||||||
|
|
||||||
|
Since both [[Topological Space|spaces]] (Note: not sure if it is the correct link) are [[Compact|compact]] and [[Hausdorff]], then $f^{-1}$ is also continuous, so $S \simeq [ \, a, \, b \, ]$. But removing one point leaves $S$ [[Connected|connected]], but not $[ \, a, \, b \, ]$. So this is a contradiction.
|
||||||
|
## Question 4
|
||||||
|
Show that the [[Connected|connected]] components of $\mathbb{Q} \subset \mathbb{R}$ consists of single points, and that one of these are [[Open Sets|open]].
|
||||||
|
|
||||||
|
[[Topology]] on $\mathbb{Q} = \{ \mathbb{Q} \cap A \mid A \text{ open in } \mathbb{R} \}$
|
||||||
|
|
||||||
|
![[Drawing 2025-02-13 14.01.44.excalidraw]]
|
||||||
|
$A \cap Q$
|
||||||
|
|
||||||
|
$\{ p \}, \; p \in \mathbb{Q}$
|
||||||
|
$\mathbb{Q} \cap \langle - \varepsilon + p, \, \varepsilon + p \rangle$ contains more points than $p$
|
||||||
|
![[Drawing 2025-02-13 14.06.25.excalidraw]]
|
||||||
|
In the graph above: $a \in \mathbb{R} \setminus \mathbb{Q}$.
|
78
content/Lectures/Lecture 12 - Induced Topologies.md
Normal file
78
content/Lectures/Lecture 12 - Induced Topologies.md
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
---
|
||||||
|
lecture: 12
|
||||||
|
date: 2025-02-24
|
||||||
|
---
|
||||||
|
# Weakest Topology
|
||||||
|
Definition of [[Weakest Topology]] defined in the lecture.
|
||||||
|
|
||||||
|
# Initial Topology
|
||||||
|
Definition of [[Initial Topology]], defined in the lecture.
|
||||||
|
# Proposition
|
||||||
|
Let $X$ be a set with [[Initial Topology|initial topology]] induced by a family, $F$, of functions.
|
||||||
|
|
||||||
|
Then a [[Nets|net]] in $\{ x_{i} \}$ in $X$ converges to $x \iff f(x_{i}) \to f(x) \; \forall f \in F$.
|
||||||
|
## Proof
|
||||||
|
### $\Rightarrow$:
|
||||||
|
Is obvious.
|
||||||
|
### $\Leftarrow$:
|
||||||
|
Let $A$ be a neighbourhood of $x$.
|
||||||
|
|
||||||
|
Hence there are finitely many [[Open Sets|open sets]] $A_{n} \subset Y_{f_{n}}$ such that $x \in \cap f^{-1}_{n}(A_{n}) \subset A$. Then $A_{n}$ is a neighbourhood of $f_{n}(x), \; \forall n$.
|
||||||
|
|
||||||
|
By assumption $f_{n}(x_{i}) \to f_{n}(x)$, so $f_{n}(x_{i}) \in A_{n} \; \forall i \geq i(n)$ for some $i(n)$. Pick $j$ such that $j \geq i(n)$ for all the finitely many $n$s.
|
||||||
|
|
||||||
|
Then $x_{i} \in \cap f^{-1}_{n}(A_{n}) \subset A$ for all $i \geq j$, so $x_i \to x$.
|
||||||
|
|
||||||
|
QED.
|
||||||
|
# COR
|
||||||
|
$X$ has [[Initial Topology|initial topology]] induced by $F$. Say $Z$ is a [[Topological Space|topological space]], then:
|
||||||
|
|
||||||
|
$g : Z \to X$ is [[Continuous|continuous]] $f \circ g$ is [[Continuous|continuous]] $\forall f \in F$.
|
||||||
|
## Proof
|
||||||
|
### $\Rightarrow$:
|
||||||
|
Clear.
|
||||||
|
### $\Leftarrow$:
|
||||||
|
Say we have a [[Nets|net]] $\{ z_{i} \}$ that $z_{i} \to z$ in $Z$.
|
||||||
|
|
||||||
|
Then $\underbrace{(f \circ g)(z_{i})}_{= f(g(z_{i}))} \to \underbrace{(f \circ g)(z)}_{f(g(z))} \; \forall f \in F$.
|
||||||
|
|
||||||
|
Hence $g(z_{i}) \to g(z)$ by the proposition, so $g$ is [[Continuous|continuous]].
|
||||||
|
# Product Topology
|
||||||
|
Definition of the [[Product Topology]], defined in the lecture.
|
||||||
|
|
||||||
|
![[Drawing 2025-02-24 11.58.37.excalidraw]]
|
||||||
|
$(x_{i}, y_{i}) \to (x,y)$
|
||||||
|
|
||||||
|
By the previous proposition a net $\{ x_{i} \}$ in $\Pi X_{\lambda}$ converges to $x$ with respect to the [[Product Topology|product topology]] $\iff \pi_{\lambda} \to \pi_{\lambda}(x), \; \forall \lambda$.
|
||||||
|
### Note
|
||||||
|
$\pi_{\lambda}$ are [[Continuous|continuous]] (obvious) and [[Open Sets|open sets]] $\pi_{\lambda}(A)$ open in $X_{\lambda}$ for $A$ open in $\Pi X_{\lambda}$
|
||||||
|
## Tychonoff
|
||||||
|
It is the [[Tychonoff Theorem]] (defined in lecture).
|
||||||
|
# Separating Family
|
||||||
|
Defines [[Separating Points]] from the lecture.
|
||||||
|
# Proposition
|
||||||
|
A set $X$ with [[Initial Topology|initial topology]] induced from a [[Separating Points|separating family]] of functions $f : X \to Y_{f}$ is [[Hausdorff]] when all $Y_{f}$ are [[Hausdorff]].
|
||||||
|
## Proof
|
||||||
|
Say $x \neq y$ in $X$. Then $\exists f$ such that $f(x) \neq f(y)$ in $Y_{f}$.
|
||||||
|
|
||||||
|
Can separate $f(x)$ and $f(y)$ by neighbourhoods $U$ and $V$ such that $U \cap V = \emptyset$.
|
||||||
|
|
||||||
|
Then $f^{-1}(U)$ and $f^{-1}(V)$ will be disjoint neighbourhoods of $x$ and $y$.
|
||||||
|
|
||||||
|
> [!note] Reasoning for $f^{-1}(U)$ and $f^{-1}(V)$ being disjoint
|
||||||
|
> $$z \in f^{-1}(U) \cap f^{-1}(V)$$
|
||||||
|
> $$f(z) \in U \cap f(z) \in V$$
|
||||||
|
> Which is not possible
|
||||||
|
|
||||||
|
QED.
|
||||||
|
# COR
|
||||||
|
A product of [[Hausdorff]] spaces is [[Hausdorff]] in the [[Product Topology|product topology]].
|
||||||
|
|
||||||
|
$\Pi X_{\lambda}$
|
||||||
|
$\Pi_{\lambda}$
|
||||||
|
|
||||||
|
$f: X \to Y_{f}$
|
||||||
|
$f : X_{f} \to Y$
|
||||||
|
|
||||||
|
$q : X \to X \setminus \sim$
|
||||||
|
$q(x) = [x]$
|
114
content/Lectures/Lecture 13 - Measure Theory.md
Normal file
114
content/Lectures/Lecture 13 - Measure Theory.md
Normal file
@ -0,0 +1,114 @@
|
|||||||
|
---
|
||||||
|
lecture: 13
|
||||||
|
date: 2025-02-27
|
||||||
|
---
|
||||||
|
# Sigma Algebra
|
||||||
|
Defined in the lecture: [[Sigma-Algebra]]
|
||||||
|
(See also [[Sigma-Algebra#Measurable]])
|
||||||
|
## Measure
|
||||||
|
(See [[Sigma-Algebra#Measure]])
|
||||||
|
|
||||||
|
> [!example]
|
||||||
|
> $M = \wp(X)$ is a $\sigma$-algebra with the **counting measure** $\mu$ given by
|
||||||
|
> $\mu(A) = \begin{cases}|A|, & \text{when}\ A\ \text{is finite}\\ \infty, & \text{when}\ A\ \text{is infinite}\end{cases}$
|
||||||
|
> $\mu'(A) = 0,\ \forall A$
|
||||||
|
|
||||||
|
Given a collection $N$ of subsets of any set $X$, the intersection $M$ of all $\sigma$-algebras containing $N$ is a $\sigma$-algebra; the one **generated** by $N$.
|
||||||
|
|
||||||
|
## Borel Sets
|
||||||
|
Defined in the lecture: [[Borel Sets]]
|
||||||
|
|
||||||
|
>[!example] Example of [[Borel Sets]]
|
||||||
|
> $\cap^{\infty}_{n=1}\left[ -\frac{1}{n}, \frac{1}{n} \right] = \{ 0 \}$
|
||||||
|
|
||||||
|
# Proposition
|
||||||
|
Say $X$ has a $\sigma$-algebra. Then all [[Borel Measurable|measurable]] functions $X \to \mathbb{C}$ is an algebra under [[Pointwise|pointwise]] operations.
|
||||||
|
## Proof
|
||||||
|
Say $f$, $g$ are [[Borel Measurable|measurable]] and $a, b \in \mathbb{C}$.
|
||||||
|
|
||||||
|
Note that $k : \mathbb{C} \to \mathbb{C}$ given by $b \mapsto ab$ is [[Continuous|continuous]] then $(af)(x) = (\underbrace{k}_{\text{continuous}} \circ \underbrace{f}_{\text{measurable}})(x)$ ($= k(\underbrace{f(x)}_{b}) = ab = a \times f(x) = (af)(x)$)
|
||||||
|
|
||||||
|
Since $\mathrm{Re}, \mathrm{Im} : \mathbb{C} \to \mathbb{R}$ by $\mathrm{Re}(a + ib) = a$ and $\mathrm{Im}(a + ib) = b$ are [[Continuous|continuous]] the real and imaginary parts of $f$ are [[Borel Measurable|measurable]].
|
||||||
|
|
||||||
|
So to show that $f+g$, $f \times g$ are [[Borel Measurable|measurable]], we may assume that $f$ and $g$ are real.
|
||||||
|
|
||||||
|
> [!note]
|
||||||
|
>$$f + g = \mathrm{Re}(f+g) + i \mathrm{Im}(f+g) = \mathrm{Re} f + \mathrm{Re} g + i (\mathrm{Im} f + \mathrm{Im} g)$$
|
||||||
|
>$(a, b) \mapsto x + i b$ is [[Continuous|continuous]].
|
||||||
|
|
||||||
|
Let $h : x \to \mathbb{R}^2$; $h(x) = (f(x), g(x))$.
|
||||||
|
**Claim** that $h$ is [[Borel Measurable|measurable]].
|
||||||
|
Then use that $f + g$, $f \times g$ are compositions of $h$ with the [[Continuous|continuous]] functions $\mathbb{R}^2 \to \mathbb{R}$ given by $(s, t) \xmapsto{p} s + t$ and $(s, t) \xmapsto{q} s \times t$, so $p \circ h = f + g$ and $q \circ h = f \times g$.
|
||||||
|
(All that needs to be proven now is that $h$ is [[Borel Measurable|measurable]])
|
||||||
|
|
||||||
|
Show the claim: note that [[Open Sets|open]] $V \subset \mathbb{R}^2$ is a [[Countable|countable]] union of rectangles $I \times J$ for segments $I, J \subset \mathbb{R}$.
|
||||||
|
|
||||||
|
Also note that (taking the inverse image of the rectangle) $h^{-1}(I \times J) = f^{-1}(I) \cap g^{-1}(J)$ is [[Borel Measurable|measurable]].
|
||||||
|
Then so is $h^{V} = h^{-1}(\cup_{n}(I_{n} \times J_{n})) = \cup_{n}h^{-1}(I_{n} \times J_{n})$.
|
||||||
|
|
||||||
|
QED.
|
||||||
|
|
||||||
|
---
|
||||||
|
Exercise Part of the session...
|
||||||
|
# Question 3 (Exercise 6)
|
||||||
|
Show that a sequence $E_{1} \supset E_{2} \supset E_{3} \supset \dots$ of a [[Compact|compact]] non-empty subsets of a [[Hausdorff]] space has a non-empty intersection $\cap E_{i} \neq \emptyset$
|
||||||
|
## Proof
|
||||||
|
### Net argument
|
||||||
|
$X = \mathbb{R}$
|
||||||
|
$E_{n} = \left[ -\frac{1}{n}, \frac{1}{n} \right]$
|
||||||
|
$[-1,1] \supset \left[ -\frac{1}{2}, \frac{1}{2} \right] \supset \left[ -\frac{1}{3}, \frac{1}{3} \right] \supset \dots$
|
||||||
|
$\cap_{n} [-\frac{1}{n}, \frac{1}{n}] = \{ \emptyset \} \neq \emptyset$
|
||||||
|
|
||||||
|
$I = \{ E_{i} | i=1,\dots,\infty \}$
|
||||||
|
Upward filtered ordered set under reverse inclusion.
|
||||||
|
|
||||||
|
Defined by axiom of choice $X_{E_{i}} \in E_{i}$, so we get a net $\{ x_{E_{i}} \}_{E_{i} \in I} \subset E_{i}$
|
||||||
|
|
||||||
|
Then it has a convergent subnet $\{ x_{{E_{i}}_{j}} \}_{j}$, say $x_{{E_{i}}_{j}} \to x \in E_{1}$.
|
||||||
|
|
||||||
|
Claim $x \in \cap E_{i}$:
|
||||||
|
If $A$ is a neighbourhood of $x$ in $E_{1}$, then $x_{{E_{i}}_{j}} \in A\ \forall j \geq k$.
|
||||||
|
So $A \cap {E_{i}}_{j} \neq \emptyset\ \forall j \geq k$.
|
||||||
|
|
||||||
|
![[Excalidraw/ACIT4330/Lecture 13/Drawing 2025-02-27 13.19.24.excalidraw]]
|
||||||
|
|
||||||
|
If $x \notin \cap E_{i}$, then $\exists$ neighbourhood
|
||||||
|
$B$ of $x$ such that $B \cap (\cap E_{i}) = \emptyset$.
|
||||||
|
Then $B \cap E_{i} = \emptyset\ \forall i \geq m$.
|
||||||
|
Pick $B=A$ and get a contradiction.
|
||||||
|
### Subcover argument
|
||||||
|
$V_{n} = E_{n}^{\complement}$ [[Open Sets|open]] in [[Hausdorff]] space if $\cap E_{i} = \emptyset$, then $\{ V_{n} \}$ will be an [[Open Cover|open cover]] of $E_{1}$ that has no finite [[Subcover|subcover]], contradicting that $E_{1}$ is compact.
|
||||||
|
|
||||||
|
$\cup V_{n} = \cup E_{n}^{C} = (\cap E_{n})^{\complement} = \emptyset^{\complement} = X$
|
||||||
|
# Question 2 (Exercise 7)
|
||||||
|
Show that [[Compact|compact]] [[Hausdorff]] spaces are rigid; if $X$ is [[Compact|compact]] [[Hausdorff]] it has no weaker or stronger [[Topology|topology]] that is [[Compact|compact]] [[Hausdorff]].
|
||||||
|
## Proof
|
||||||
|
$\iota : (X, \overbrace{\tau}^{\text{Compact Hausdorff}}) \to (X, \overbrace{\tau}^{\text{Weaker}})$ ($\tau' \subset \tau$)
|
||||||
|
$\iota(x) = x$, so $\iota$ is [[Bijective|bijective]]
|
||||||
|
|
||||||
|
This is a [[Continuous|continuous]] map since $\tau' \subset \tau$.
|
||||||
|
|
||||||
|
$\iota$ is also an [[Open Map|open map]], because it takes closed sets to closed sets, because if $E$ is closed in $(X, \tau)$, then it is [[Compact|compact]], and $\iota(E)$ is [[Compact|compact]] in $(X, \tau')$ as $\iota$ is [[Continuous|continuous]], so $\iota(E)$ is closed in $(X, \tau')$ as it is [[Hausdorff]]. So in this case $\tau' = \tau$.
|
||||||
|
# Question 1 (Exercise 7)
|
||||||
|
A [[Topological Space|topological space]] is **second [[Countable|countable]]** if we have a sequence $\{ V_{n} \}$ of [[Open Sets|open sets]] such that any open set is a union of some of these $V_{n}$s.
|
||||||
|
## Proof
|
||||||
|
$\langle c, d \rangle = \cup V_{\frac{1}{n}}^{a}$
|
||||||
|
$V_{n} = \{ n \}$
|
||||||
|
|
||||||
|
$\mathbb{R} = \cup_{a \in \mathbb{R}}V_{a}$
|
||||||
|
$V_{a} = \{ a \}$
|
||||||
|
(which is not [[Countable|countable]])
|
||||||
|
|
||||||
|
Instead:
|
||||||
|
$I \times J$
|
||||||
|
Any open $A \subset \mathbb{R}$ [[Countable|countable]] union of $I$.
|
||||||
|
|
||||||
|
|
||||||
|
$X$ is separable if it has a dense sequence $\{ x_{n} \} = X$.
|
||||||
|
|
||||||
|
Claim:
|
||||||
|
$X$ selectable countable $\implies X$ separable
|
||||||
|
|
||||||
|
Axiom of choice def $x_{n} \in V_{n}. Then $\overline{\{ x_{n} \}} = X$. If $\overline{\{ x_{n} \}} \neq X$.
|
||||||
|
|
||||||
|
$x \in \overline{\{ x_{n} \}}^{\complement}$ $\exists$ [[Open Sets|open]] $A$ with $x \in A$ and $A \cap \overline{\{ x_{n} \}} = \emptyset$. But $\exists m$ such that $x \in V_{m}$.......
|
42
content/Lectures/Lecture 2.md
Normal file
42
content/Lectures/Lecture 2.md
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
---
|
||||||
|
lecture: 2
|
||||||
|
date: 2025-01-09
|
||||||
|
---
|
||||||
|
# Quotients
|
||||||
|
## Constructing Quotients
|
||||||
|
Have equivalence relation on $\mathbb{Z} \times (\mathbb{Z} \setminus \{ 0 \})$ given $(a,b) \sim (c,d)$ when $ad = bc$.
|
||||||
|
|
||||||
|
Then $\frac{\mathbb{Z} \times \mathbb{Z} \setminus \{ 0 \}}{\sim}$ is the set of rational numbers $\mathbb{Q}$ with addition and multiplication defined in an **obvious** way.
|
||||||
|
$\frac{a}{b} = \frac{c}{d}$
|
||||||
|
# Real Numbers
|
||||||
|
## Constructing Real Numbers
|
||||||
|
Problem with $\mathbb{Q}$:
|
||||||
|
For example Pythagoras' Theorem with sides 1 and 1 gives $\sqrt{ 2 }$
|
||||||
|
$$
|
||||||
|
\sqrt{ 2 } \notin \mathbb{Q}
|
||||||
|
$$
|
||||||
|
$$
|
||||||
|
\sqrt{ 2 } = \frac{a}{b}, \; a,b \in \mathbb{Z}, \; b \neq 0.
|
||||||
|
$$
|
||||||
|
Which is a contradiction
|
||||||
|
|
||||||
|
Yet we can find a sequence $\{ X_{n} \}$ of rational numbers such that $X_{n}^2 \to 2$ as $n \to \infty$.
|
||||||
|
$$x_{1} = 1, \; x_{2} = 1.4, \; x_{3} = 1.41$$
|
||||||
|
$$\sqrt{ 2 } = 1.4142\ldots$$
|
||||||
|
By a **sequence** $\{ x_{n} \}$ in a set $X$ we mean a function $f : \mathbb{N} \to X$ with $x_{n} \equiv f(n)$, and that a **function** or **map** $X \to Y$ between two sets ascribes one member of $Y$ to each member of $X$.
|
||||||
|
|
||||||
|
A sequence $\{ x_{n} \}$ in $\mathbb{Q}$ **converges** to $x \in \mathbb{Q}$, written $\lim_{ x_{n} \to \infty} = x$, if $\forall k \in \mathbb{N}$ $\exists N_{k} \in \mathbb{N}$ such that $| x - x_{n} | \lt \frac{1}{k}, \; \forall n \lt N_{k}$.
|
||||||
|
|
||||||
|
So what is $\sqrt{ 2 }$?
|
||||||
|
|
||||||
|
Real numbers are certain equivalence classes of **[[Rational Cauchy Sequences]]**
|
||||||
|
|
||||||
|
Two such sequences $\{ x_{n} \}$, $\{ y_{n} \}$ are equivalent if the "distance" $\lim_{ |x_{n} - y_{n}| \to \infty } = 0$ between them vanishes.
|
||||||
|
$$\{ x_{n} \} \in X \sim \{ y_{n} \} \in X$$
|
||||||
|
Their set of equivalence classes is the set of real numbers $\mathbb{R}$.
|
||||||
|
$$X \setminus \sim = \mathbb{R} \ni [\{ x_{n} \}]$$
|
||||||
|
$$[\{ x_{n} \}] + [\{ y_{n} \}] = [\{ x_{n} + y_{n} \}]$$
|
||||||
|
Get natural algebraic operations on $\mathbb{R}$ from $\mathbb{Q}$; check well-definedness. Then $\mathbb{Q} \subset \mathbb{R}$ as the classes containing constant sequences. An order $\gt$ on $\mathbb{R}$ is defined by declaring as positive those classes having sequences with only positive rational numbers.
|
||||||
|
$$x \gt y \implies x-y \gt 0$$
|
||||||
|
## Convergence of Real Numbers
|
||||||
|
A sequence of real numbers is said to converge to a real number if the "distance" between their representatives tend to zero.
|
44
content/Lectures/Lecture 3.md
Normal file
44
content/Lectures/Lecture 3.md
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
---
|
||||||
|
lecture: 3
|
||||||
|
date: 2025-01-13
|
||||||
|
---
|
||||||
|
# Proposition 1.1.4
|
||||||
|
Each real number is a limit of a sequence of rational numbers.
|
||||||
|
$$\mathbb{Q} \subset \mathbb{R}$$
|
||||||
|
As an ordered [[Number Field]] $\mathbb{R}$ is **complete**, meaning that every [[Cauchy Sequence]] in $\mathbb{R}$ converges to a real number.
|
||||||
|
Equivalently, the real numbers have the **[[Least Upper Bound Property]]**; $\forall X \subset \mathbb{R}$ bounded above has a least upper bound denoted by $sup(X) \in \mathbb{R}$. Eq. an $inf(Y) \in \mathbb{R}$ if $Y$ bounded below.
|
||||||
|
# Functions and Cardinality
|
||||||
|
A function $f : X \to Y$ is **[[Injective]]** if $f(x) = f(y) \implies x = y$.
|
||||||
|
|
||||||
|
[[Surjective]] if $f(x) = y$.
|
||||||
|
|
||||||
|
[[Bijective]] if it is both injective and surjective.
|
||||||
|
|
||||||
|
Then we write $X \simeq Y$.
|
||||||
|
$$|X| = |Y| \; \text{(cardinality)}$$
|
||||||
|
Say $X$ is [[Countable]] if $|X| = |\mathbb{N}|$; this means that the members of $X$ can be listed as a sequence with $x_{n} = f(n)$, where $f: \text{IN} \to X$ is some bijection.
|
||||||
|
## Cantor's Diagonal Argument
|
||||||
|
The real numbers cannot be listed, or they are **uncountable**.
|
||||||
|
|
||||||
|
Indeed, present a list of the real numbers in $\langle 0, 1 \rangle$ written as binary expansions. Then the number that has as its $n$-th digit, the opposite value to the $n$-th digit of the $n$-th number of the list, will never be in the list.
|
||||||
|
|
||||||
|
|
||||||
|
| **\\** | | | | | | | | | | |
|
||||||
|
| ------ | ----- | ----- | ----- | ----- | --- | --- | --- | --- | --- | --- |
|
||||||
|
| 0 | **1** | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | ... |
|
||||||
|
| 0 | 1 | **1** | 1 | 1 | 1 | 1 | 1 | 1 | 1 | ... |
|
||||||
|
| 0 | 0 | 0 | **0** | 0 | 1 | 0 | 0 | 0 | 0 | ... |
|
||||||
|
| 0 | 1 | 0 | 1 | **0** | 1 | 0 | 0 | 0 | 0 | ... |
|
||||||
|
| ... | | | | | | | | | | |
|
||||||
|
So here the bold numbers going diagonally from the **\\** shows that they cannot be countable as they are not the same number.
|
||||||
|
Cantor: 0.0011...
|
||||||
|
# Axiom of Choice
|
||||||
|
Any **[[Direct Product]]**
|
||||||
|
$$\Pi_{i \in I} \, X_{i} \equiv \{ x : I \to \cup_{i \in I} X_{i} | x_{i} \equiv x(i) \in X_{i} \}$$
|
||||||
|
is non-empty when all $x \neq \emptyset$.
|
||||||
|
|
||||||
|
Any $x \in \Pi_{i \in I} \, X_{i}$ is called a choice function.
|
||||||
|
|
||||||
|
The [[Power Set]] $\wp(X)$ of $X$ consists of all the subsets of $X$.
|
||||||
|
|
||||||
|
$\exists$ bijection $\wp(X) \to \Pi_{x} \{ 0, \, 1 \} = \{ f : X \to \{ 0, \, 1 \} \}$ that sends $Y \subset X$ to its [[Characteristic Function]].
|
47
content/Lectures/Lecture 4 - 1.2 Metric Spaces.md
Normal file
47
content/Lectures/Lecture 4 - 1.2 Metric Spaces.md
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
---
|
||||||
|
lecture: 4
|
||||||
|
date: 2025-01-16
|
||||||
|
---
|
||||||
|
# The Inverse Image
|
||||||
|
The Inverse Image uses a [[Inverse Function]] $f^{-1} (z)$ of $Z \subset Y$ written $f: x \to y$ is $f^{-1}(z) \equiv \{ x \in X | f(x) \in Z \}$.
|
||||||
|
# Complex Numbers
|
||||||
|
In [[Complex Numbers]], $\mathbb{C} = \mathbb{R} \times \mathbb{R}$ with usual addition of vectors
|
||||||
|
## Multiplying Vectors
|
||||||
|
Multiply vectors by adding their angles multiplying their lengths.
|
||||||
|
|
||||||
|
$$z = a + i \times b = (a, b)$$
|
||||||
|
($b$ here can be seen as $(a, 0) + (0, b) = (a+0, 0+b)$)
|
||||||
|
$$b = (b, 0) \implies i \times b = (0, b)$$
|
||||||
|
|
||||||
|
$i \times z$ rotates $z$ $90\degree$ counterclockwise.
|
||||||
|
## Proposition
|
||||||
|
$\mathbb{C}$ is complete ([[Cauchy Sequence|cauchy]]) and [[Algebraically Complete#For Complex Numbers]].
|
||||||
|
# Metric Spaces
|
||||||
|
[[Metric Space#Definition]]
|
||||||
|
## Example
|
||||||
|
Discrete metric on X; $d(x, y) = \begin{cases}0, & \text{if}\ x=y\\ 1, & \text{if}\ x \neq y\end{cases}$
|
||||||
|
# Vector Spaces
|
||||||
|
- [[Normed Vector Space]]s
|
||||||
|
- [[Complex Vector Space]]s
|
||||||
|
## Example
|
||||||
|
$$V = R^n = R \times \dots \times R = \{ (x_{1}, \, \dots, x_{n}) | x_{i} \in \mathbb{R} \}$$
|
||||||
|
(where the length of $R \times \, \dots \times R$ has $n$ $\mathbb{R}$s.)
|
||||||
|
$$V = \mathbb{R}^2 : (x , \, y) + (z, w) \equiv (x + z, \, y + w)$$
|
||||||
|
$$a \times (x, \, y) \equiv (ax, \, ay)$$
|
||||||
|
## [[Linear Basis]] Example
|
||||||
|
$$u = 3v_{1} + 5v_{2} + iv_{3}$$
|
||||||
|
$$3 v_{1} \neq 2v_{2}$$
|
||||||
|
$$c_{1}v_{1} + c_{2}v_{2} = 0 \implies c_{1} = 0 = c_{2}$$
|
||||||
|
$$\implies 0 \times v_{1} + 0 \times v_{2} = 0$$
|
||||||
|
|
||||||
|
Continuing the [[#Vector Spaces#Example]] but for Linear bases
|
||||||
|
$$v_{1} = (1, \, 0, \, 0, \, 0, \, \dots)$$
|
||||||
|
$$v_{2} = (0, \, 1, \, 0, \, 0, \, \dots)$$
|
||||||
|
$$v_{3} = (0, \, 0, \, 1, \, 0, \, \dots)$$
|
||||||
|
and the way of writing this would be:
|
||||||
|
$$(x_{1}, \, \dots, \, x_{n}) = \Sigma^{n}_{i=1} x_{i} \times v_{i} = 0$$
|
||||||
|
$$\implies x_{i} = 0$$
|
||||||
|
## Proposition
|
||||||
|
Any [[Vector Space]] $V$ has a [[Linear Basis]], and every basis has the same cardinality referred to as the $dim(V)$ (dimension of $V$) of $V$.
|
||||||
|
### Proof
|
||||||
|
[[ACIT4330/Lectures/Lecture 3#Axiom of Choice|Lecture 3#Axiom of Choice]]
|
55
content/Lectures/Lecture 5.md
Normal file
55
content/Lectures/Lecture 5.md
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
---
|
||||||
|
lecture: 5
|
||||||
|
date: 2025-01-20
|
||||||
|
---
|
||||||
|
> [!info]
|
||||||
|
> A normed space is a [[Banach Space]] when the corresponding metric space is complete. Any normed space can be completed to a [[Banach Space]], see the real numbers from $\mathbb{Q}$.
|
||||||
|
|
||||||
|
> [!example] Example: $\mathbb{C}^n$ vector space, then
|
||||||
|
> 1. $\| \, v \, \|_{1} \equiv \Sigma_{k=1}^{n} |v_{k}|, \; v=(v_{1}, \dots, v_{n})$
|
||||||
|
> 2. $\| \, v \, \|_{\infty} \equiv \text{sub}_{k=1,\dots,n}\{ |v_{k} | \}$
|
||||||
|
>
|
||||||
|
> Which are norms on $\mathbb{C}^n$
|
||||||
|
## Example
|
||||||
|
> [!question]
|
||||||
|
> Consider $C_{c}(X) \subset \Pi_{X}\mathbb{C} = \{ f : X \to C \}$ on functions $X -> \mathbb{C}$ that are non-zero for finitely only many $x \in X$.
|
||||||
|
|
||||||
|
Then $C_{c}(X)$ is a vector space under op.
|
||||||
|
|
||||||
|
$$f \neq \text{only on} \, Y \, \subset \, X$$
|
||||||
|
$$q \neq \, \text{only on} \, Z \subset X$$
|
||||||
|
$$\implies f+q \neq 0 \, \text{only on} \, Y \cup Z$$
|
||||||
|
$$a \times f \neq \, \text{only on} \, Y$$
|
||||||
|
with $\delta_{x}(y) = \begin{cases}1, & x=y\\ 0, & x\neq y\end{cases}$
|
||||||
|
Has linear basis $\{ \delta_{x} \}$, $x \in X$
|
||||||
|
### Proof
|
||||||
|
Given that $f \in C_{c}(X)$ then
|
||||||
|
|
||||||
|
$f = \Sigma_{x \in X} f(x) \times \delta_{x}$ is a finite sum, and the only possibility.
|
||||||
|
|
||||||
|
[[QED]]
|
||||||
|
|
||||||
|
So $\text{dim} C_{c} (X) = |X|$.
|
||||||
|
|
||||||
|
---
|
||||||
|
Definite norms on $C_{c}(X)$ by $\| \, f \, \|_{1} = \Sigma_{x \in X} | f(x) |$ and $\| \, f \, \|_{\infty} = \text{sup}_{x \in X} | f(x) |$ when $|X| = n$ we recover $\mathbb{C}^n$.
|
||||||
|
|
||||||
|
---
|
||||||
|
We write $V \simeq W$and say that $V$ and $W$ are [[Isomorphic]]
|
||||||
|
1. **As sets** if $\exists$ [[Bijective|bijection]] $f : V \to W$
|
||||||
|
2. **As vector spaces** if in addition $f$ is **linear**; $f(a \times u + b \times v) = a \times f(u) + b \times f(v), \; \forall a,b \in \mathbb{C}, \; u,v \in V$
|
||||||
|
3. **As [[Normed vector Space|normed spaces]]** if in addition $f$ is **[[Isometric]]**; $\| \, f(v) \, \| \, = \| \, v \, \|, \; \forall v \in V$.
|
||||||
|
$f$ should preserve all relevant structure.
|
||||||
|
# [[Hilbert Spaces]]
|
||||||
|
# Triangle Inequality
|
||||||
|
Follows from the [[Cauchy-Schwarz Inequality]]
|
||||||
|
|
||||||
|
> [!example] Example on $C_{c}(X)$ then
|
||||||
|
> $$(f | g) = \Sigma_{x \in X} f(x) \times \overline{g(x)}$$
|
||||||
|
> This defines an [[Inner Product|inner product]], which can be completed to a [[Hilbert Spaces|Hilbert space]].
|
||||||
|
> $$\| \, f \, \|_{2} = (\Sigma_{x \in X} | f(x) |^2)^{\frac{1}{2}}$$
|
||||||
|
> > [!note] The [[Inner Product|inner product]] here
|
||||||
|
> > $$\mathbb{C}^{n} (u | v) = \Sigma_{k = 1}^{n} u_{k} \overline{v_{k}}$$
|
||||||
|
> > $$\mathbb{R}^{n} \| \, u \, \|_{2} = (\Sigma |u_{k}|^{2})^{\frac{1}{2}}$$
|
||||||
|
> > $$\vec{u} \times \vec{v} = (\vec{u} | \vec{v})$$
|
||||||
|
|
31
content/Lectures/Lecture 6 - 2.1 Topology.md
Normal file
31
content/Lectures/Lecture 6 - 2.1 Topology.md
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
---
|
||||||
|
lecture: 6
|
||||||
|
date: 2025-01-27
|
||||||
|
---
|
||||||
|
# Open Sets
|
||||||
|
The concept of [[Ball|balls]] is required to understand what an [[Open Sets|open sets]] are.
|
||||||
|
## Definition
|
||||||
|
The definition can be found in [[Open Sets]].
|
||||||
|
In other words ( "):" ), for any open $\overbrace{A}^{\in x} \exists N$ such that $x_{n} \in A \; \forall n \gt N$.
|
||||||
|
|
||||||
|
In fact, [[Open Sets|open sets]] are unions of [[Ball|balls]].
|
||||||
|
# Topological Space
|
||||||
|
A [[Topological Space]] $X$ is a set with a [[Topology]] $\tau$.
|
||||||
|
|
||||||
|
> [!example] Trivial [[Topology]]
|
||||||
|
> $X$ is the set. $\tau = \{ \emptyset, X \}$.
|
||||||
|
>
|
||||||
|
> Therefore $x \neq y$, then the only neighbour is $X$
|
||||||
|
> $X \cap X = X$.
|
||||||
|
|
||||||
|
> [!example] Discrete [[Topology]]
|
||||||
|
> $X$ is the set. $\tau = \wp(X)$.
|
||||||
|
>
|
||||||
|
> $\{ x \} \in \tau$
|
||||||
|
> $X \, \text{compact} \iff X \, \text{finite}$
|
||||||
|
>
|
||||||
|
> This topological space is always [[Hausdorff]] as it includes all the points on $X$ are included
|
||||||
|
> > [!note]
|
||||||
|
> > $$A = \{ x \}, \; B = \{ y \} \; A \cup B = \emptyset$$
|
||||||
|
>
|
||||||
|
> $$d(x, y) = \begin{cases} 1, & \text{if}\ x \neq y\\ 0, & \text{if} \, x = y\end{cases}$$
|
99
content/Lectures/Lecture 7.md
Normal file
99
content/Lectures/Lecture 7.md
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
---
|
||||||
|
lecture: 7
|
||||||
|
date: 2025-01-30
|
||||||
|
---
|
||||||
|
$(X, d)$ ball topology
|
||||||
|
Say $Y$ is a closed set in $X$ (in other words, $Y^{\complement}$ [[Open Sets|open]]).
|
||||||
|
|
||||||
|
Say we have a sequence $\{ X_{n} \}$ in $Y$ and that $x_{n} \to x \in X$.
|
||||||
|
Then $x \in Y$.
|
||||||
|
|
||||||
|
> [!info]- Proof
|
||||||
|
> Let's say $x \notin Y$.
|
||||||
|
> ![[Pasted image 20250130104559.png]]
|
||||||
|
> Which is a contradiction.
|
||||||
|
> Because $x$ cannot converge outside $Y$
|
||||||
|
> QED.
|
||||||
|
|
||||||
|
$(Y, d)$ complete if $(X, d)$ is complete.
|
||||||
|
|
||||||
|
# Proposition
|
||||||
|
Say $X$ is a [[Topological Space|topological space]], that is [[Hausdorff]].
|
||||||
|
|
||||||
|
If $B \subset X$ is [[Compact|compact]], then $B$ is closed.
|
||||||
|
## Proof
|
||||||
|
![[Pasted image 20250130110419.png]]
|
||||||
|
[[Hausdorff]] => $A_{y} \cap B_{y} = \emptyset$ , both are [[Open Sets|open]].
|
||||||
|
Then $\{ B_{y} \}_{y \in B}$ is an [[Open Cover|open cover]] of $B$
|
||||||
|
|
||||||
|
Compact => Pick out finite [[Subcover|subcover]] $\{ B_{y_{i}} \}_{i=1}^{n}$ of $B$.
|
||||||
|
Then $x \in \overbrace{\cap_{i=1}^{n} A_{y_{i}}}^{\text{Open}} \subset B^{\complement}$ since $\cap_{i=1}^{n} A_{y_{i}} \cap B_{y_{j}} = \emptyset$ (for any $j$)
|
||||||
|
|
||||||
|
So $B^{\complement}$ is [[Open Sets|open]], in other words, $B$ is closed.
|
||||||
|
|
||||||
|
QED.
|
||||||
|
# Heine-Borel Theorem
|
||||||
|
Say $A \subset \mathbb{R}^n$. Then $A$ is [[Compact|compact]] $\iff$ $A$ is closed and [[Bounded|bounded]].
|
||||||
|
## Proof
|
||||||
|
**For ->:** $A$ is closed since $\mathbb{R^n}$ is [[Hausdorff]] and $A$ is [[Compact|compact]], see [[#Proposition|the previous result]].
|
||||||
|
It is bounded since we can cover it by finitely many balls.
|
||||||
|
|
||||||
|
**For <-:** Assume first that $A$ is an $n$-cube with boundary included.
|
||||||
|
Say $A$ is not [[Compact|compact]]. If an [[Open Cover|open cover]] of $A$ has no finite [[Subcover|subcover]], then by halving sides of cubes we get a sequence of cubes contained in each other, each having no finite [[Subcover|subcover]]. The centres of these cubes form a [[Cauchy Sequence|Cauchy sequence]] with a limit $x \in A$.
|
||||||
|
![[Pasted image 20250130120238.png]]
|
||||||
|
$d(x_{n}, x_{m}) \lt \varepsilon, \; \forall n,\,m \gt N$. Show: $\mathbb{R}^n$ is complete.
|
||||||
|
Any neighbourhood of $x$ from the cover will obviously contain a small enough cube, and will be a finite [[Subcover|subcover]].
|
||||||
|
But this is a contradiction.
|
||||||
|
|
||||||
|
QED.
|
||||||
|
|
||||||
|
$A^{\complement}$ open. Say $\{ \cup_{n} \}$ is an [[Open Cover|cover]] of $A$. Then $\{ \cup_{n} \}, \, A^{\complement}$ is an open cover of the $n$-cube.
|
||||||
|
$\{ \cup_{n_{i}} \}_{i=1}^N, \, A^{\complement}$ cover of the $n$-cube.
|
||||||
|
Then $\{ \cup_{n_{i}} \}_{i=1}^N$ will cover $A$.
|
||||||
|
![[Pasted image 20250130121836.png]]
|
||||||
|
# Cor
|
||||||
|
$\mathbb{R}^n$ is locally compact [[Hausdorff]], and $\sigma$-compact
|
||||||
|
![[Pasted image 20250130122717.png]]
|
||||||
|
|
||||||
|
---
|
||||||
|
# Complex Vector Space Exercise
|
||||||
|
Show that finite dimensional the complex vector space $V \implies V \simeq \mathbb{C}^n$ for some $n$.
|
||||||
|
$$x,y \in V$$
|
||||||
|
$$\implies x + y \in V$$
|
||||||
|
$$a \times x \in V, \; a \in \mathbb{C}$$
|
||||||
|
$\mathbb{C}^2$:
|
||||||
|
$$(x, y) + (z, w) \equiv (x+z, y+w)$$
|
||||||
|
$$a \times (x, y) \equiv (a x, a y)$$
|
||||||
|
Linear map:
|
||||||
|
## Proof
|
||||||
|
$n = \dim V$. Say $\{ v_{i} \}_{i=1}^n$ is a linear basis for $V$. Define [[Bijective|bijective]] [[Linear Map|linear map]] $L: \mathbb{C}^n \to V$ by $L((x_{1}, \dots, x_{n})) = \Sigma_{i=1}^n x_{i} \times v_{i}$. It is linear;
|
||||||
|
$L(a(x_{1}, \dots, x_{n}) + b(y_{1}, \dots, y_{n})) = L((ax_{1} + by_{1}, \dots, ax_{n} + by_{n})) = \Sigma_{i=1}^n(ax_{i} + by_{i})v_{i} =$
|
||||||
|
$\Sigma_{i=1}^n(ax_{i}v_{i} + by_{i}v_{i}) = a \times \Sigma_{i=1}^n x_{i}v_{i} + b \times \Sigma_{i=1}^ny_{i}v_{i} =$
|
||||||
|
$a \times L((x_{1},\dots,x_{n})) + b \times L((y_{1},\dots,y_{n}))$
|
||||||
|
|
||||||
|
**Surs.**
|
||||||
|
$v \in V$. Basis $\implies \exists \underbrace{x_{i}}_{\in \mathbb{C}}$ such that $v = \Sigma_{i=1}^n x_{i} v_{i} = L((x_{1}, \dots, x_{n}))$.
|
||||||
|
So $v \in \text{lm} L$
|
||||||
|
|
||||||
|
**Injective**
|
||||||
|
Say $L((x_{1}, \dots, x_{n})) = L((y_{1}, \dots, y_{n}))$ then
|
||||||
|
$\Sigma_{i=1}^n x_{i} v_{i} = \Sigma_{i=1}^n y_{i} v_{i} \xrightarrow{basis} x_{i} = y_{i}, \; \forall i$, so $x = y$
|
||||||
|
Injective for [[Linear Map|linear map]] $L \iff \ker L = \{ 0 \} \equiv \{ x \in \mathbb{C} | L(x) = 0 \}$.
|
||||||
|
|
||||||
|
$\ker L$ is a vector space
|
||||||
|
$\text{lm} \,L$ is a vector space
|
||||||
|
|
||||||
|
$L = 0 \to \ker L = \mathbb{C}^n$
|
||||||
|
$0 \in V$ (vectors spaces have to start from the origin, as that is where vectors themselves start from).
|
||||||
|
# Metric Space Exercise
|
||||||
|
Consider the unit circle $\mathbb{T} = S^1 = \{ (x,y) \in \mathbb{R}^2 | x^2 + y^2 = 1 \}$
|
||||||
|
$\mathbb{T} = \{ z \in \mathbb{C} \, | \, |\, z \,| = 1 \}$
|
||||||
|
|
||||||
|
Say there is a circle $z = (x, y)$, $x^2 + y^2 = 1$
|
||||||
|
This is a metric space for $d(z, z')$ = arclength between $z$ and $z'$.
|
||||||
|
|
||||||
|
Check:
|
||||||
|
1. $d(z', z) = d(z, z')$
|
||||||
|
2. $d(z, z') = 0 \iff z = z'$
|
||||||
|
3. $d(z, z'') \leq d(z, z') + d(z',z'')$
|
||||||
|
$d'(z, z')$ = length of straight line between $z$ and $z'$ $= \sqrt{ (x-x')^2 + (y - y')^2 } = \| \, z - z' \, \|$
|
36
content/Lectures/Lecture 8.md
Normal file
36
content/Lectures/Lecture 8.md
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
---
|
||||||
|
lecture: 8
|
||||||
|
date: 2025-02-03
|
||||||
|
---
|
||||||
|
Defines in [[Topological Space|topological spaces]]:
|
||||||
|
- [[Connected]]
|
||||||
|
- [[Connected Component]]
|
||||||
|
# Proposition
|
||||||
|
$[0, 1]$ is [[connected]].
|
||||||
|
## Proof
|
||||||
|
$$[0, 1] = A \cup B$$
|
||||||
|
$$A \cap B = \emptyset$$
|
||||||
|
|
||||||
|
Suppose [[Open Sets|open sets]] $A$ and $B$ disconnected it, and say $1 \in B$.
|
||||||
|
|
||||||
|
Then every neighbourhood of $a \equiv \sup{A} \in [0, 1]$ will intersect both $A$ and $B$.
|
||||||
|
|
||||||
|
Which is a contradiction as this is impossible!
|
||||||
|
|
||||||
|
QED.
|
||||||
|
# 2.2 Continuity
|
||||||
|
Recall: $f: \mathbb{R} \to \mathbb{R}$ is continuous at $x$ if $\lim_{ y \to x }f(y) = f(x)$, and it would be discontinuous if $\lim_{ y \to x } f(y) \neq f(x)$. More precisely, if $\forall \varepsilon \gt 0 \, \exists \delta \gt 0$ such that $|x-y| \lt \delta \implies |f(x) - f(y) < \varepsilon$ or $f(B_{\delta}(x)) \subset B_{\varepsilon}(f(x))$, or $B_{\delta}(x) \subset f^{-1}(B_{\varepsilon}(f(x))) = \{ y \in \mathbb{R} | f(y) \in B_{\varepsilon}(f(x)) \}$.
|
||||||
|
## Definition
|
||||||
|
The definition is defined at: [[Continuous]].
|
||||||
|
# Proposition
|
||||||
|
A [[Continuous|continuous]] $f : X \to \mathbb{R}$ with $X$ [[Compact|compact]], it will attain both a maximum and a minimum.
|
||||||
|
## Proof
|
||||||
|
Note: the [[Continuous|continuous]] image of a [[Compact|compact set]] is [[Compact|compact]] since [[Inverse Images|inverse images]] of an [[Open Cover|open cover]] will again be an [[Open Cover|open cover]]. Then the final step is to use the [[Heine–Borel]] theorem since $f(x)$ is compact in $\mathbb{R}$.
|
||||||
|
|
||||||
|
QED.
|
||||||
|
# Something else
|
||||||
|
We say $f$ is [[Continuous|continuous]] (at every $x$) if $f^{-1}(A)$ is [[Open Sets|open]] for every open $A \subset Y$.
|
||||||
|
|
||||||
|
Continuous images of [[Connected|connected]] spaces are [[Connected|connected]]. Again because inverse images of [[Open Sets|open subsets]] disconnecting an image would disconnect the domain.
|
||||||
|
|
||||||
|
So homeomorphisms preserve compactness and connectedness. They are [[Topological Invariants|topological invariants]].
|
BIN
content/Lectures/attachments/Pasted image 20250130104559.png
Normal file
BIN
content/Lectures/attachments/Pasted image 20250130104559.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 86 KiB |
BIN
content/Lectures/attachments/Pasted image 20250130110419.png
Normal file
BIN
content/Lectures/attachments/Pasted image 20250130110419.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 116 KiB |
BIN
content/Lectures/attachments/Pasted image 20250130120238.png
Normal file
BIN
content/Lectures/attachments/Pasted image 20250130120238.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 53 KiB |
BIN
content/Lectures/attachments/Pasted image 20250130121836.png
Normal file
BIN
content/Lectures/attachments/Pasted image 20250130121836.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 113 KiB |
BIN
content/Lectures/attachments/Pasted image 20250130122717.png
Normal file
BIN
content/Lectures/attachments/Pasted image 20250130122717.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 34 KiB |
20
content/index.md
Normal file
20
content/index.md
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
# Chapter 1
|
||||||
|
## 1.1 Sets and Numbers
|
||||||
|
- [[Lecture 1 - 1.1 Sets and Numbers]] (complimentary written notes: [[ACIT4330-2025-01-06-Lecture 1.rnote]])
|
||||||
|
- [[Lectures/Lecture 2|Lecture 2]] (complimentary written notes: [[ACIT4330-2025-01-09-Lecture 2.rnote]])
|
||||||
|
- [[Lectures/Lecture 3|Lecture 3]]
|
||||||
|
- [[Lecture 4 - 1.2 Metric Spaces#The Inverse Image]] and [[Lecture 4 - 1.2 Metric Spaces#Complex Numbers]].
|
||||||
|
## 1.2 Metric Spaces
|
||||||
|
- [[Lecture 4 - 1.2 Metric Spaces]]
|
||||||
|
- [[Lectures/Lecture 5|Lecture 5]]
|
||||||
|
# Chapter 2
|
||||||
|
## 2.1 Topology
|
||||||
|
- [[Lecture 6 - 2.1 Topology]]
|
||||||
|
- [[Lecture 7]] (complimentary written notes: [[ACIT4330-2025-01-30-Lecture 7.rnote]])
|
||||||
|
- [[Lectures/Lecture 8|Lecture 8]]
|
||||||
|
## 2.2 Continuity
|
||||||
|
- [[Lectures/Lecture 8|Lecture 8]]
|
||||||
|
- [[ACIT4330/Lectures/Lecture 11|Lecture 11]]
|
||||||
|
- [[Lecture 12 - Induced Topologies]]
|
||||||
|
# Measure Theory
|
||||||
|
- [[Lecture 13 - Measure Theory]]
|
BIN
content/rnote/ACIT4330-2025-01-06-Lecture 1.rnote
Normal file
BIN
content/rnote/ACIT4330-2025-01-06-Lecture 1.rnote
Normal file
Binary file not shown.
BIN
content/rnote/ACIT4330-2025-01-09-Lecture 2.rnote
Normal file
BIN
content/rnote/ACIT4330-2025-01-09-Lecture 2.rnote
Normal file
Binary file not shown.
BIN
content/rnote/ACIT4330-2025-01-30-Lecture 7.rnote
Normal file
BIN
content/rnote/ACIT4330-2025-01-30-Lecture 7.rnote
Normal file
Binary file not shown.
17
node_modules/.bin/esbuild
generated
vendored
Executable file
17
node_modules/.bin/esbuild
generated
vendored
Executable file
@ -0,0 +1,17 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||||
|
|
||||||
|
case `uname` in
|
||||||
|
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [ -z "$NODE_PATH" ]; then
|
||||||
|
export NODE_PATH="/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/esbuild@0.25.0/node_modules/esbuild/bin/node_modules:/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/esbuild@0.25.0/node_modules/esbuild/node_modules:/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/esbuild@0.25.0/node_modules:/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/node_modules"
|
||||||
|
else
|
||||||
|
export NODE_PATH="/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/esbuild@0.25.0/node_modules/esbuild/bin/node_modules:/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/esbuild@0.25.0/node_modules/esbuild/node_modules:/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/esbuild@0.25.0/node_modules:/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/node_modules:$NODE_PATH"
|
||||||
|
fi
|
||||||
|
if [ -x "$basedir/node" ]; then
|
||||||
|
exec "$basedir/node" "$basedir/../esbuild/bin/esbuild" "$@"
|
||||||
|
else
|
||||||
|
exec node "$basedir/../esbuild/bin/esbuild" "$@"
|
||||||
|
fi
|
17
node_modules/.bin/js-yaml
generated
vendored
Executable file
17
node_modules/.bin/js-yaml
generated
vendored
Executable file
@ -0,0 +1,17 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||||
|
|
||||||
|
case `uname` in
|
||||||
|
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [ -z "$NODE_PATH" ]; then
|
||||||
|
export NODE_PATH="/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/js-yaml@4.1.0/node_modules/js-yaml/bin/node_modules:/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/js-yaml@4.1.0/node_modules/js-yaml/node_modules:/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/js-yaml@4.1.0/node_modules:/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/node_modules"
|
||||||
|
else
|
||||||
|
export NODE_PATH="/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/js-yaml@4.1.0/node_modules/js-yaml/bin/node_modules:/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/js-yaml@4.1.0/node_modules/js-yaml/node_modules:/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/js-yaml@4.1.0/node_modules:/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/node_modules:$NODE_PATH"
|
||||||
|
fi
|
||||||
|
if [ -x "$basedir/node" ]; then
|
||||||
|
exec "$basedir/node" "$basedir/../js-yaml/bin/js-yaml.js" "$@"
|
||||||
|
else
|
||||||
|
exec node "$basedir/../js-yaml/bin/js-yaml.js" "$@"
|
||||||
|
fi
|
17
node_modules/.bin/prettier
generated
vendored
Executable file
17
node_modules/.bin/prettier
generated
vendored
Executable file
@ -0,0 +1,17 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||||
|
|
||||||
|
case `uname` in
|
||||||
|
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [ -z "$NODE_PATH" ]; then
|
||||||
|
export NODE_PATH="/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/prettier@3.5.2/node_modules/prettier/bin/node_modules:/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/prettier@3.5.2/node_modules/prettier/node_modules:/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/prettier@3.5.2/node_modules:/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/node_modules"
|
||||||
|
else
|
||||||
|
export NODE_PATH="/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/prettier@3.5.2/node_modules/prettier/bin/node_modules:/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/prettier@3.5.2/node_modules/prettier/node_modules:/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/prettier@3.5.2/node_modules:/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/node_modules:$NODE_PATH"
|
||||||
|
fi
|
||||||
|
if [ -x "$basedir/node" ]; then
|
||||||
|
exec "$basedir/node" "$basedir/../prettier/bin/prettier.cjs" "$@"
|
||||||
|
else
|
||||||
|
exec node "$basedir/../prettier/bin/prettier.cjs" "$@"
|
||||||
|
fi
|
17
node_modules/.bin/rimraf
generated
vendored
Executable file
17
node_modules/.bin/rimraf
generated
vendored
Executable file
@ -0,0 +1,17 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||||
|
|
||||||
|
case `uname` in
|
||||||
|
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [ -z "$NODE_PATH" ]; then
|
||||||
|
export NODE_PATH="/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/rimraf@6.0.1/node_modules/rimraf/dist/esm/node_modules:/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/rimraf@6.0.1/node_modules/rimraf/dist/node_modules:/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/rimraf@6.0.1/node_modules/rimraf/node_modules:/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/rimraf@6.0.1/node_modules:/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/node_modules"
|
||||||
|
else
|
||||||
|
export NODE_PATH="/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/rimraf@6.0.1/node_modules/rimraf/dist/esm/node_modules:/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/rimraf@6.0.1/node_modules/rimraf/dist/node_modules:/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/rimraf@6.0.1/node_modules/rimraf/node_modules:/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/rimraf@6.0.1/node_modules:/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/node_modules:$NODE_PATH"
|
||||||
|
fi
|
||||||
|
if [ -x "$basedir/node" ]; then
|
||||||
|
exec "$basedir/node" "$basedir/../rimraf/dist/esm/bin.mjs" "$@"
|
||||||
|
else
|
||||||
|
exec node "$basedir/../rimraf/dist/esm/bin.mjs" "$@"
|
||||||
|
fi
|
17
node_modules/.bin/sass
generated
vendored
Executable file
17
node_modules/.bin/sass
generated
vendored
Executable file
@ -0,0 +1,17 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||||
|
|
||||||
|
case `uname` in
|
||||||
|
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [ -z "$NODE_PATH" ]; then
|
||||||
|
export NODE_PATH="/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/sass-embedded@1.85.1/node_modules/sass-embedded/dist/bin/node_modules:/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/sass-embedded@1.85.1/node_modules/sass-embedded/dist/node_modules:/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/sass-embedded@1.85.1/node_modules/sass-embedded/node_modules:/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/sass-embedded@1.85.1/node_modules:/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/node_modules"
|
||||||
|
else
|
||||||
|
export NODE_PATH="/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/sass-embedded@1.85.1/node_modules/sass-embedded/dist/bin/node_modules:/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/sass-embedded@1.85.1/node_modules/sass-embedded/dist/node_modules:/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/sass-embedded@1.85.1/node_modules/sass-embedded/node_modules:/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/sass-embedded@1.85.1/node_modules:/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/node_modules:$NODE_PATH"
|
||||||
|
fi
|
||||||
|
if [ -x "$basedir/node" ]; then
|
||||||
|
exec "$basedir/node" "$basedir/../.pnpm/sass-embedded@1.85.1/node_modules/sass-embedded/dist/bin/sass.js" "$@"
|
||||||
|
else
|
||||||
|
exec node "$basedir/../.pnpm/sass-embedded@1.85.1/node_modules/sass-embedded/dist/bin/sass.js" "$@"
|
||||||
|
fi
|
17
node_modules/.bin/tsc
generated
vendored
Executable file
17
node_modules/.bin/tsc
generated
vendored
Executable file
@ -0,0 +1,17 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||||
|
|
||||||
|
case `uname` in
|
||||||
|
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [ -z "$NODE_PATH" ]; then
|
||||||
|
export NODE_PATH="/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/bin/node_modules:/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/node_modules:/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/typescript@5.8.2/node_modules:/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/node_modules"
|
||||||
|
else
|
||||||
|
export NODE_PATH="/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/bin/node_modules:/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/node_modules:/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/typescript@5.8.2/node_modules:/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/node_modules:$NODE_PATH"
|
||||||
|
fi
|
||||||
|
if [ -x "$basedir/node" ]; then
|
||||||
|
exec "$basedir/node" "$basedir/../typescript/bin/tsc" "$@"
|
||||||
|
else
|
||||||
|
exec node "$basedir/../typescript/bin/tsc" "$@"
|
||||||
|
fi
|
17
node_modules/.bin/tsserver
generated
vendored
Executable file
17
node_modules/.bin/tsserver
generated
vendored
Executable file
@ -0,0 +1,17 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||||
|
|
||||||
|
case `uname` in
|
||||||
|
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [ -z "$NODE_PATH" ]; then
|
||||||
|
export NODE_PATH="/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/bin/node_modules:/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/node_modules:/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/typescript@5.8.2/node_modules:/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/node_modules"
|
||||||
|
else
|
||||||
|
export NODE_PATH="/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/bin/node_modules:/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/typescript@5.8.2/node_modules/typescript/node_modules:/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/typescript@5.8.2/node_modules:/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/node_modules:$NODE_PATH"
|
||||||
|
fi
|
||||||
|
if [ -x "$basedir/node" ]; then
|
||||||
|
exec "$basedir/node" "$basedir/../typescript/bin/tsserver" "$@"
|
||||||
|
else
|
||||||
|
exec node "$basedir/../typescript/bin/tsserver" "$@"
|
||||||
|
fi
|
17
node_modules/.bin/tsx
generated
vendored
Executable file
17
node_modules/.bin/tsx
generated
vendored
Executable file
@ -0,0 +1,17 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||||
|
|
||||||
|
case `uname` in
|
||||||
|
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [ -z "$NODE_PATH" ]; then
|
||||||
|
export NODE_PATH="/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/tsx@4.19.3/node_modules/tsx/dist/node_modules:/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/tsx@4.19.3/node_modules/tsx/node_modules:/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/tsx@4.19.3/node_modules:/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/node_modules"
|
||||||
|
else
|
||||||
|
export NODE_PATH="/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/tsx@4.19.3/node_modules/tsx/dist/node_modules:/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/tsx@4.19.3/node_modules/tsx/node_modules:/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/tsx@4.19.3/node_modules:/home/smyalygames/Repositories/ACIT4330-Page/node_modules/.pnpm/node_modules:$NODE_PATH"
|
||||||
|
fi
|
||||||
|
if [ -x "$basedir/node" ]; then
|
||||||
|
exec "$basedir/node" "$basedir/../tsx/dist/cli.mjs" "$@"
|
||||||
|
else
|
||||||
|
exec node "$basedir/../tsx/dist/cli.mjs" "$@"
|
||||||
|
fi
|
1104
node_modules/.modules.yaml
generated
vendored
Normal file
1104
node_modules/.modules.yaml
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
25
node_modules/.pnpm-workspace-state.json
generated
vendored
Normal file
25
node_modules/.pnpm-workspace-state.json
generated
vendored
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
{
|
||||||
|
"lastValidatedTimestamp": 1740833332449,
|
||||||
|
"projects": {},
|
||||||
|
"pnpmfileExists": false,
|
||||||
|
"settings": {
|
||||||
|
"autoInstallPeers": true,
|
||||||
|
"dedupeDirectDeps": false,
|
||||||
|
"dedupeInjectedDeps": true,
|
||||||
|
"dedupePeerDependents": true,
|
||||||
|
"dev": true,
|
||||||
|
"excludeLinksFromLockfile": false,
|
||||||
|
"hoistPattern": [
|
||||||
|
"*"
|
||||||
|
],
|
||||||
|
"hoistWorkspacePackages": true,
|
||||||
|
"injectWorkspacePackages": false,
|
||||||
|
"linkWorkspacePackages": false,
|
||||||
|
"nodeLinker": "isolated",
|
||||||
|
"optional": true,
|
||||||
|
"preferWorkspacePackages": false,
|
||||||
|
"production": true,
|
||||||
|
"publicHoistPattern": []
|
||||||
|
},
|
||||||
|
"filteredInstall": false
|
||||||
|
}
|
44
node_modules/.pnpm/@bufbuild+protobuf@2.2.3/node_modules/@bufbuild/protobuf/README.md
generated
vendored
Normal file
44
node_modules/.pnpm/@bufbuild+protobuf@2.2.3/node_modules/@bufbuild/protobuf/README.md
generated
vendored
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
# @bufbuild/protobuf
|
||||||
|
|
||||||
|
This package provides the runtime library for the [protoc-gen-es](https://www.npmjs.com/package/@bufbuild/protoc-gen-es)
|
||||||
|
code generator plugin.
|
||||||
|
|
||||||
|
## Protocol Buffers for ECMAScript
|
||||||
|
|
||||||
|
A complete implementation of [Protocol Buffers](https://protobuf.dev/) in TypeScript,
|
||||||
|
suitable for web browsers and Node.js, created by [Buf](https://buf.build).
|
||||||
|
|
||||||
|
**Protobuf-ES** is a solid, modern alternative to existing Protobuf implementations for the JavaScript ecosystem. It's
|
||||||
|
the first project in this space to provide a comprehensive plugin framework and decouple the base types from RPC
|
||||||
|
functionality.
|
||||||
|
|
||||||
|
Some additional features that set it apart from the others:
|
||||||
|
|
||||||
|
- ECMAScript module support
|
||||||
|
- First-class TypeScript support
|
||||||
|
- Generation of idiomatic JavaScript and TypeScript code
|
||||||
|
- Generation of [much smaller bundles](https://github.com/bufbuild/protobuf-es/tree/main/packages/bundle-size/)
|
||||||
|
- Implementation of all proto3 features, including the [canonical JSON format](https://protobuf.dev/programming-guides/proto3/#json)
|
||||||
|
- Implementation of all proto2 features, except for extensions and the text format
|
||||||
|
- Usage of standard JavaScript APIs instead of the [Closure Library](http://googlecode.blogspot.com/2009/11/introducing-closure-tools.html)
|
||||||
|
- Compatibility is covered by the Protocol Buffers [conformance tests](https://github.com/bufbuild/protobuf-es/tree/main/packages/protobuf-conformance/)
|
||||||
|
- Descriptor and reflection support
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm install @bufbuild/protobuf
|
||||||
|
```
|
||||||
|
|
||||||
|
## Documentation
|
||||||
|
|
||||||
|
To learn how to work with `@bufbuild/protobuf`, check out the docs for the [Runtime API](https://github.com/bufbuild/protobuf-es/tree/main/MANUAL.md#working-with-messages)
|
||||||
|
and the [generated code](https://github.com/bufbuild/protobuf-es/tree/main/MANUAL.md#generated-code).
|
||||||
|
|
||||||
|
Official documentation for the Protobuf-ES project can be found at [github.com/bufbuild/protobuf-es](https://github.com/bufbuild/protobuf-es).
|
||||||
|
|
||||||
|
For more information on Buf, check out the official [Buf documentation](https://buf.build/docs/).
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
A complete code example can be found in the **Protobuf-ES** repo [here](https://github.com/bufbuild/protobuf-es/tree/main/packages/protobuf-example).
|
6
node_modules/.pnpm/@bufbuild+protobuf@2.2.3/node_modules/@bufbuild/protobuf/dist/cjs/clone.d.ts
generated
vendored
Normal file
6
node_modules/.pnpm/@bufbuild+protobuf@2.2.3/node_modules/@bufbuild/protobuf/dist/cjs/clone.d.ts
generated
vendored
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
import type { MessageShape } from "./types.js";
|
||||||
|
import { type DescMessage } from "./descriptors.js";
|
||||||
|
/**
|
||||||
|
* Create a deep copy of a message, including extensions and unknown fields.
|
||||||
|
*/
|
||||||
|
export declare function clone<Desc extends DescMessage>(schema: Desc, message: MessageShape<Desc>): MessageShape<Desc>;
|
68
node_modules/.pnpm/@bufbuild+protobuf@2.2.3/node_modules/@bufbuild/protobuf/dist/cjs/clone.js
generated
vendored
Normal file
68
node_modules/.pnpm/@bufbuild+protobuf@2.2.3/node_modules/@bufbuild/protobuf/dist/cjs/clone.js
generated
vendored
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
"use strict";
|
||||||
|
// Copyright 2021-2024 Buf Technologies, Inc.
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
|
exports.clone = clone;
|
||||||
|
const descriptors_js_1 = require("./descriptors.js");
|
||||||
|
const reflect_js_1 = require("./reflect/reflect.js");
|
||||||
|
const guard_js_1 = require("./reflect/guard.js");
|
||||||
|
/**
|
||||||
|
* Create a deep copy of a message, including extensions and unknown fields.
|
||||||
|
*/
|
||||||
|
function clone(schema, message) {
|
||||||
|
return cloneReflect((0, reflect_js_1.reflect)(schema, message)).message;
|
||||||
|
}
|
||||||
|
function cloneReflect(i) {
|
||||||
|
const o = (0, reflect_js_1.reflect)(i.desc);
|
||||||
|
for (const f of i.fields) {
|
||||||
|
if (!i.isSet(f)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
switch (f.fieldKind) {
|
||||||
|
default: {
|
||||||
|
o.set(f, cloneSingular(f, i.get(f)));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "list":
|
||||||
|
// eslint-disable-next-line no-case-declarations
|
||||||
|
const list = o.get(f);
|
||||||
|
for (const item of i.get(f)) {
|
||||||
|
list.add(cloneSingular(f, item));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "map":
|
||||||
|
// eslint-disable-next-line no-case-declarations
|
||||||
|
const map = o.get(f);
|
||||||
|
for (const entry of i.get(f).entries()) {
|
||||||
|
map.set(entry[0], cloneSingular(f, entry[1]));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const unknown = i.getUnknown();
|
||||||
|
if (unknown && unknown.length > 0) {
|
||||||
|
o.setUnknown([...unknown]);
|
||||||
|
}
|
||||||
|
return o;
|
||||||
|
}
|
||||||
|
function cloneSingular(field, value) {
|
||||||
|
if (field.message !== undefined && (0, guard_js_1.isReflectMessage)(value)) {
|
||||||
|
return cloneReflect(value);
|
||||||
|
}
|
||||||
|
if (field.scalar == descriptors_js_1.ScalarType.BYTES && value instanceof Uint8Array) {
|
||||||
|
// @ts-expect-error T cannot extend Uint8Array in practice
|
||||||
|
return value.slice();
|
||||||
|
}
|
||||||
|
return value;
|
||||||
|
}
|
63
node_modules/.pnpm/@bufbuild+protobuf@2.2.3/node_modules/@bufbuild/protobuf/dist/cjs/codegenv1/boot.d.ts
generated
vendored
Normal file
63
node_modules/.pnpm/@bufbuild+protobuf@2.2.3/node_modules/@bufbuild/protobuf/dist/cjs/codegenv1/boot.d.ts
generated
vendored
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
import type { DescriptorProto_ExtensionRange, FieldDescriptorProto_Label, FieldDescriptorProto_Type, FieldOptions_OptionRetention, FieldOptions_OptionTargetType, FieldOptions_EditionDefault, EnumValueDescriptorProto, FileDescriptorProto } from "../wkt/gen/google/protobuf/descriptor_pb.js";
|
||||||
|
import type { DescFile } from "../descriptors.js";
|
||||||
|
/**
|
||||||
|
* Hydrate a file descriptor for google/protobuf/descriptor.proto from a plain
|
||||||
|
* object.
|
||||||
|
*
|
||||||
|
* See createFileDescriptorProtoBoot() for details.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
export declare function boot(boot: FileDescriptorProtoBoot): DescFile;
|
||||||
|
/**
|
||||||
|
* An object literal for initializing the message google.protobuf.FileDescriptorProto
|
||||||
|
* for google/protobuf/descriptor.proto.
|
||||||
|
*
|
||||||
|
* See createFileDescriptorProtoBoot() for details.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
export type FileDescriptorProtoBoot = {
|
||||||
|
name: "google/protobuf/descriptor.proto";
|
||||||
|
package: "google.protobuf";
|
||||||
|
messageType: DescriptorProtoBoot[];
|
||||||
|
enumType: EnumDescriptorProtoBoot[];
|
||||||
|
};
|
||||||
|
export type DescriptorProtoBoot = {
|
||||||
|
name: string;
|
||||||
|
field?: FieldDescriptorProtoBoot[];
|
||||||
|
nestedType?: DescriptorProtoBoot[];
|
||||||
|
enumType?: EnumDescriptorProtoBoot[];
|
||||||
|
extensionRange?: Pick<DescriptorProto_ExtensionRange, "start" | "end">[];
|
||||||
|
};
|
||||||
|
export type FieldDescriptorProtoBoot = {
|
||||||
|
name: string;
|
||||||
|
number: number;
|
||||||
|
label?: FieldDescriptorProto_Label;
|
||||||
|
type: FieldDescriptorProto_Type;
|
||||||
|
typeName?: string;
|
||||||
|
extendee?: string;
|
||||||
|
defaultValue?: string;
|
||||||
|
options?: FieldOptionsBoot;
|
||||||
|
};
|
||||||
|
export type FieldOptionsBoot = {
|
||||||
|
packed?: boolean;
|
||||||
|
deprecated?: boolean;
|
||||||
|
retention?: FieldOptions_OptionRetention;
|
||||||
|
targets?: FieldOptions_OptionTargetType[];
|
||||||
|
editionDefaults?: FieldOptions_EditionDefaultBoot[];
|
||||||
|
};
|
||||||
|
export type FieldOptions_EditionDefaultBoot = Pick<FieldOptions_EditionDefault, "edition" | "value">;
|
||||||
|
export type EnumDescriptorProtoBoot = {
|
||||||
|
name: string;
|
||||||
|
value: EnumValueDescriptorProtoBoot[];
|
||||||
|
};
|
||||||
|
export type EnumValueDescriptorProtoBoot = Pick<EnumValueDescriptorProto, "name" | "number">;
|
||||||
|
/**
|
||||||
|
* Creates the message google.protobuf.FileDescriptorProto from an object literal.
|
||||||
|
*
|
||||||
|
* See createFileDescriptorProtoBoot() for details.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
export declare function bootFileDescriptorProto(init: FileDescriptorProtoBoot): FileDescriptorProto;
|
99
node_modules/.pnpm/@bufbuild+protobuf@2.2.3/node_modules/@bufbuild/protobuf/dist/cjs/codegenv1/boot.js
generated
vendored
Normal file
99
node_modules/.pnpm/@bufbuild+protobuf@2.2.3/node_modules/@bufbuild/protobuf/dist/cjs/codegenv1/boot.js
generated
vendored
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
"use strict";
|
||||||
|
// Copyright 2021-2024 Buf Technologies, Inc.
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
|
exports.boot = boot;
|
||||||
|
exports.bootFileDescriptorProto = bootFileDescriptorProto;
|
||||||
|
const restore_json_names_js_1 = require("./restore-json-names.js");
|
||||||
|
const registry_js_1 = require("../registry.js");
|
||||||
|
/**
|
||||||
|
* Hydrate a file descriptor for google/protobuf/descriptor.proto from a plain
|
||||||
|
* object.
|
||||||
|
*
|
||||||
|
* See createFileDescriptorProtoBoot() for details.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
function boot(boot) {
|
||||||
|
const root = bootFileDescriptorProto(boot);
|
||||||
|
root.messageType.forEach(restore_json_names_js_1.restoreJsonNames);
|
||||||
|
const reg = (0, registry_js_1.createFileRegistry)(root, () => undefined);
|
||||||
|
// non-null assertion because we just created the registry from the file we look up
|
||||||
|
return reg.getFile(root.name);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Creates the message google.protobuf.FileDescriptorProto from an object literal.
|
||||||
|
*
|
||||||
|
* See createFileDescriptorProtoBoot() for details.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
function bootFileDescriptorProto(init) {
|
||||||
|
const proto = Object.create({
|
||||||
|
syntax: "",
|
||||||
|
edition: 0,
|
||||||
|
});
|
||||||
|
return Object.assign(proto, Object.assign(Object.assign({ $typeName: "google.protobuf.FileDescriptorProto", dependency: [], publicDependency: [], weakDependency: [], service: [], extension: [] }, init), { messageType: init.messageType.map(bootDescriptorProto), enumType: init.enumType.map(bootEnumDescriptorProto) }));
|
||||||
|
}
|
||||||
|
function bootDescriptorProto(init) {
|
||||||
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
||||||
|
return {
|
||||||
|
$typeName: "google.protobuf.DescriptorProto",
|
||||||
|
name: init.name,
|
||||||
|
field: (_b = (_a = init.field) === null || _a === void 0 ? void 0 : _a.map(bootFieldDescriptorProto)) !== null && _b !== void 0 ? _b : [],
|
||||||
|
extension: [],
|
||||||
|
nestedType: (_d = (_c = init.nestedType) === null || _c === void 0 ? void 0 : _c.map(bootDescriptorProto)) !== null && _d !== void 0 ? _d : [],
|
||||||
|
enumType: (_f = (_e = init.enumType) === null || _e === void 0 ? void 0 : _e.map(bootEnumDescriptorProto)) !== null && _f !== void 0 ? _f : [],
|
||||||
|
extensionRange: (_h = (_g = init.extensionRange) === null || _g === void 0 ? void 0 : _g.map((e) => (Object.assign({ $typeName: "google.protobuf.DescriptorProto.ExtensionRange" }, e)))) !== null && _h !== void 0 ? _h : [],
|
||||||
|
oneofDecl: [],
|
||||||
|
reservedRange: [],
|
||||||
|
reservedName: [],
|
||||||
|
};
|
||||||
|
}
|
||||||
|
function bootFieldDescriptorProto(init) {
|
||||||
|
const proto = Object.create({
|
||||||
|
label: 1,
|
||||||
|
typeName: "",
|
||||||
|
extendee: "",
|
||||||
|
defaultValue: "",
|
||||||
|
oneofIndex: 0,
|
||||||
|
jsonName: "",
|
||||||
|
proto3Optional: false,
|
||||||
|
});
|
||||||
|
return Object.assign(proto, Object.assign(Object.assign({ $typeName: "google.protobuf.FieldDescriptorProto" }, init), { options: init.options ? bootFieldOptions(init.options) : undefined }));
|
||||||
|
}
|
||||||
|
function bootFieldOptions(init) {
|
||||||
|
var _a, _b, _c;
|
||||||
|
const proto = Object.create({
|
||||||
|
ctype: 0,
|
||||||
|
packed: false,
|
||||||
|
jstype: 0,
|
||||||
|
lazy: false,
|
||||||
|
unverifiedLazy: false,
|
||||||
|
deprecated: false,
|
||||||
|
weak: false,
|
||||||
|
debugRedact: false,
|
||||||
|
retention: 0,
|
||||||
|
});
|
||||||
|
return Object.assign(proto, Object.assign(Object.assign({ $typeName: "google.protobuf.FieldOptions" }, init), { targets: (_a = init.targets) !== null && _a !== void 0 ? _a : [], editionDefaults: (_c = (_b = init.editionDefaults) === null || _b === void 0 ? void 0 : _b.map((e) => (Object.assign({ $typeName: "google.protobuf.FieldOptions.EditionDefault" }, e)))) !== null && _c !== void 0 ? _c : [], uninterpretedOption: [] }));
|
||||||
|
}
|
||||||
|
function bootEnumDescriptorProto(init) {
|
||||||
|
return {
|
||||||
|
$typeName: "google.protobuf.EnumDescriptorProto",
|
||||||
|
name: init.name,
|
||||||
|
reservedName: [],
|
||||||
|
reservedRange: [],
|
||||||
|
value: init.value.map((e) => (Object.assign({ $typeName: "google.protobuf.EnumValueDescriptorProto" }, e))),
|
||||||
|
};
|
||||||
|
}
|
43
node_modules/.pnpm/@bufbuild+protobuf@2.2.3/node_modules/@bufbuild/protobuf/dist/cjs/codegenv1/embed.d.ts
generated
vendored
Normal file
43
node_modules/.pnpm/@bufbuild+protobuf@2.2.3/node_modules/@bufbuild/protobuf/dist/cjs/codegenv1/embed.d.ts
generated
vendored
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
import type { DescEnum, DescExtension, DescMessage, DescService } from "../descriptors.js";
|
||||||
|
import type { FileDescriptorProto } from "../wkt/gen/google/protobuf/descriptor_pb.js";
|
||||||
|
import type { FileDescriptorProtoBoot } from "./boot.js";
|
||||||
|
type EmbedUnknown = {
|
||||||
|
bootable: false;
|
||||||
|
proto(): FileDescriptorProto;
|
||||||
|
base64(): string;
|
||||||
|
};
|
||||||
|
type EmbedDescriptorProto = Omit<EmbedUnknown, "bootable"> & {
|
||||||
|
bootable: true;
|
||||||
|
boot(): FileDescriptorProtoBoot;
|
||||||
|
};
|
||||||
|
/**
|
||||||
|
* Create necessary information to embed a file descriptor in
|
||||||
|
* generated code.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
export declare function embedFileDesc(file: FileDescriptorProto): EmbedUnknown | EmbedDescriptorProto;
|
||||||
|
/**
|
||||||
|
* Compute the path to a message, enumeration, extension, or service in a
|
||||||
|
* file descriptor.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
export declare function pathInFileDesc(desc: DescMessage | DescEnum | DescExtension | DescService): number[];
|
||||||
|
/**
|
||||||
|
* The file descriptor for google/protobuf/descriptor.proto cannot be embedded
|
||||||
|
* in serialized form, since it is required to parse itself.
|
||||||
|
*
|
||||||
|
* This function takes an instance of the message, and returns a plain object
|
||||||
|
* that can be hydrated to the message again via bootFileDescriptorProto().
|
||||||
|
*
|
||||||
|
* This function only works with a message google.protobuf.FileDescriptorProto
|
||||||
|
* for google/protobuf/descriptor.proto, and only supports features that are
|
||||||
|
* relevant for the specific use case. For example, it discards file options,
|
||||||
|
* reserved ranges and reserved names, and field options that are unused in
|
||||||
|
* descriptor.proto.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
export declare function createFileDescriptorProtoBoot(proto: FileDescriptorProto): FileDescriptorProtoBoot;
|
||||||
|
export {};
|
242
node_modules/.pnpm/@bufbuild+protobuf@2.2.3/node_modules/@bufbuild/protobuf/dist/cjs/codegenv1/embed.js
generated
vendored
Normal file
242
node_modules/.pnpm/@bufbuild+protobuf@2.2.3/node_modules/@bufbuild/protobuf/dist/cjs/codegenv1/embed.js
generated
vendored
Normal file
@ -0,0 +1,242 @@
|
|||||||
|
"use strict";
|
||||||
|
// Copyright 2021-2024 Buf Technologies, Inc.
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
|
exports.embedFileDesc = embedFileDesc;
|
||||||
|
exports.pathInFileDesc = pathInFileDesc;
|
||||||
|
exports.createFileDescriptorProtoBoot = createFileDescriptorProtoBoot;
|
||||||
|
const names_js_1 = require("../reflect/names.js");
|
||||||
|
const fields_js_1 = require("../fields.js");
|
||||||
|
const base64_encoding_js_1 = require("../wire/base64-encoding.js");
|
||||||
|
const to_binary_js_1 = require("../to-binary.js");
|
||||||
|
const clone_js_1 = require("../clone.js");
|
||||||
|
const descriptor_pb_js_1 = require("../wkt/gen/google/protobuf/descriptor_pb.js");
|
||||||
|
/**
|
||||||
|
* Create necessary information to embed a file descriptor in
|
||||||
|
* generated code.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
function embedFileDesc(file) {
|
||||||
|
const embed = {
|
||||||
|
bootable: false,
|
||||||
|
proto() {
|
||||||
|
const stripped = (0, clone_js_1.clone)(descriptor_pb_js_1.FileDescriptorProtoSchema, file);
|
||||||
|
(0, fields_js_1.clearField)(stripped, descriptor_pb_js_1.FileDescriptorProtoSchema.field.dependency);
|
||||||
|
(0, fields_js_1.clearField)(stripped, descriptor_pb_js_1.FileDescriptorProtoSchema.field.sourceCodeInfo);
|
||||||
|
stripped.messageType.map(stripJsonNames);
|
||||||
|
return stripped;
|
||||||
|
},
|
||||||
|
base64() {
|
||||||
|
const bytes = (0, to_binary_js_1.toBinary)(descriptor_pb_js_1.FileDescriptorProtoSchema, this.proto());
|
||||||
|
return (0, base64_encoding_js_1.base64Encode)(bytes, "std_raw");
|
||||||
|
},
|
||||||
|
};
|
||||||
|
return file.name == "google/protobuf/descriptor.proto"
|
||||||
|
? Object.assign(Object.assign({}, embed), { bootable: true, boot() {
|
||||||
|
return createFileDescriptorProtoBoot(this.proto());
|
||||||
|
} }) : embed;
|
||||||
|
}
|
||||||
|
function stripJsonNames(d) {
|
||||||
|
for (const f of d.field) {
|
||||||
|
if (f.jsonName === (0, names_js_1.protoCamelCase)(f.name)) {
|
||||||
|
(0, fields_js_1.clearField)(f, descriptor_pb_js_1.FieldDescriptorProtoSchema.field.jsonName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (const n of d.nestedType) {
|
||||||
|
stripJsonNames(n);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Compute the path to a message, enumeration, extension, or service in a
|
||||||
|
* file descriptor.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
function pathInFileDesc(desc) {
|
||||||
|
if (desc.kind == "service") {
|
||||||
|
return [desc.file.services.indexOf(desc)];
|
||||||
|
}
|
||||||
|
const parent = desc.parent;
|
||||||
|
if (parent == undefined) {
|
||||||
|
switch (desc.kind) {
|
||||||
|
case "enum":
|
||||||
|
return [desc.file.enums.indexOf(desc)];
|
||||||
|
case "message":
|
||||||
|
return [desc.file.messages.indexOf(desc)];
|
||||||
|
case "extension":
|
||||||
|
return [desc.file.extensions.indexOf(desc)];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function findPath(cur) {
|
||||||
|
const nested = [];
|
||||||
|
for (let parent = cur.parent; parent;) {
|
||||||
|
const idx = parent.nestedMessages.indexOf(cur);
|
||||||
|
nested.unshift(idx);
|
||||||
|
cur = parent;
|
||||||
|
parent = cur.parent;
|
||||||
|
}
|
||||||
|
nested.unshift(cur.file.messages.indexOf(cur));
|
||||||
|
return nested;
|
||||||
|
}
|
||||||
|
const path = findPath(parent);
|
||||||
|
switch (desc.kind) {
|
||||||
|
case "extension":
|
||||||
|
return [...path, parent.nestedExtensions.indexOf(desc)];
|
||||||
|
case "message":
|
||||||
|
return [...path, parent.nestedMessages.indexOf(desc)];
|
||||||
|
case "enum":
|
||||||
|
return [...path, parent.nestedEnums.indexOf(desc)];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* The file descriptor for google/protobuf/descriptor.proto cannot be embedded
|
||||||
|
* in serialized form, since it is required to parse itself.
|
||||||
|
*
|
||||||
|
* This function takes an instance of the message, and returns a plain object
|
||||||
|
* that can be hydrated to the message again via bootFileDescriptorProto().
|
||||||
|
*
|
||||||
|
* This function only works with a message google.protobuf.FileDescriptorProto
|
||||||
|
* for google/protobuf/descriptor.proto, and only supports features that are
|
||||||
|
* relevant for the specific use case. For example, it discards file options,
|
||||||
|
* reserved ranges and reserved names, and field options that are unused in
|
||||||
|
* descriptor.proto.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
function createFileDescriptorProtoBoot(proto) {
|
||||||
|
var _a;
|
||||||
|
assert(proto.name == "google/protobuf/descriptor.proto");
|
||||||
|
assert(proto.package == "google.protobuf");
|
||||||
|
assert(!proto.dependency.length);
|
||||||
|
assert(!proto.publicDependency.length);
|
||||||
|
assert(!proto.weakDependency.length);
|
||||||
|
assert(!proto.service.length);
|
||||||
|
assert(!proto.extension.length);
|
||||||
|
assert(proto.sourceCodeInfo === undefined);
|
||||||
|
assert(proto.syntax == "" || proto.syntax == "proto2");
|
||||||
|
assert(!((_a = proto.options) === null || _a === void 0 ? void 0 : _a.features)); // we're dropping file options
|
||||||
|
assert(proto.edition === descriptor_pb_js_1.Edition.EDITION_UNKNOWN);
|
||||||
|
return {
|
||||||
|
name: proto.name,
|
||||||
|
package: proto.package,
|
||||||
|
messageType: proto.messageType.map(createDescriptorBoot),
|
||||||
|
enumType: proto.enumType.map(createEnumDescriptorBoot),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
function createDescriptorBoot(proto) {
|
||||||
|
assert(proto.extension.length == 0);
|
||||||
|
assert(!proto.oneofDecl.length);
|
||||||
|
assert(!proto.options);
|
||||||
|
const b = {
|
||||||
|
name: proto.name,
|
||||||
|
};
|
||||||
|
if (proto.field.length) {
|
||||||
|
b.field = proto.field.map(createFieldDescriptorBoot);
|
||||||
|
}
|
||||||
|
if (proto.nestedType.length) {
|
||||||
|
b.nestedType = proto.nestedType.map(createDescriptorBoot);
|
||||||
|
}
|
||||||
|
if (proto.enumType.length) {
|
||||||
|
b.enumType = proto.enumType.map(createEnumDescriptorBoot);
|
||||||
|
}
|
||||||
|
if (proto.extensionRange.length) {
|
||||||
|
b.extensionRange = proto.extensionRange.map((r) => {
|
||||||
|
assert(!r.options);
|
||||||
|
return { start: r.start, end: r.end };
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return b;
|
||||||
|
}
|
||||||
|
function createFieldDescriptorBoot(proto) {
|
||||||
|
assert((0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldDescriptorProtoSchema.field.name));
|
||||||
|
assert((0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldDescriptorProtoSchema.field.number));
|
||||||
|
assert((0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldDescriptorProtoSchema.field.type));
|
||||||
|
assert(!(0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldDescriptorProtoSchema.field.oneofIndex));
|
||||||
|
assert(!(0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldDescriptorProtoSchema.field.jsonName) ||
|
||||||
|
proto.jsonName === (0, names_js_1.protoCamelCase)(proto.name));
|
||||||
|
const b = {
|
||||||
|
name: proto.name,
|
||||||
|
number: proto.number,
|
||||||
|
type: proto.type,
|
||||||
|
};
|
||||||
|
if ((0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldDescriptorProtoSchema.field.label)) {
|
||||||
|
b.label = proto.label;
|
||||||
|
}
|
||||||
|
if ((0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldDescriptorProtoSchema.field.typeName)) {
|
||||||
|
b.typeName = proto.typeName;
|
||||||
|
}
|
||||||
|
if ((0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldDescriptorProtoSchema.field.extendee)) {
|
||||||
|
b.extendee = proto.extendee;
|
||||||
|
}
|
||||||
|
if ((0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldDescriptorProtoSchema.field.defaultValue)) {
|
||||||
|
b.defaultValue = proto.defaultValue;
|
||||||
|
}
|
||||||
|
if (proto.options) {
|
||||||
|
b.options = createFieldOptionsBoot(proto.options);
|
||||||
|
}
|
||||||
|
return b;
|
||||||
|
}
|
||||||
|
function createFieldOptionsBoot(proto) {
|
||||||
|
const b = {};
|
||||||
|
assert(!(0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldOptionsSchema.field.ctype));
|
||||||
|
if ((0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldOptionsSchema.field.packed)) {
|
||||||
|
b.packed = proto.packed;
|
||||||
|
}
|
||||||
|
assert(!(0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldOptionsSchema.field.jstype));
|
||||||
|
assert(!(0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldOptionsSchema.field.lazy));
|
||||||
|
assert(!(0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldOptionsSchema.field.unverifiedLazy));
|
||||||
|
if ((0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldOptionsSchema.field.deprecated)) {
|
||||||
|
b.deprecated = proto.deprecated;
|
||||||
|
}
|
||||||
|
assert(!(0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldOptionsSchema.field.weak));
|
||||||
|
assert(!(0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldOptionsSchema.field.debugRedact));
|
||||||
|
if ((0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldOptionsSchema.field.retention)) {
|
||||||
|
b.retention = proto.retention;
|
||||||
|
}
|
||||||
|
if (proto.targets.length) {
|
||||||
|
b.targets = proto.targets;
|
||||||
|
}
|
||||||
|
if (proto.editionDefaults.length) {
|
||||||
|
b.editionDefaults = proto.editionDefaults.map((d) => ({
|
||||||
|
value: d.value,
|
||||||
|
edition: d.edition,
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
assert(!(0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldOptionsSchema.field.features));
|
||||||
|
assert(!(0, fields_js_1.isFieldSet)(proto, descriptor_pb_js_1.FieldOptionsSchema.field.uninterpretedOption));
|
||||||
|
return b;
|
||||||
|
}
|
||||||
|
function createEnumDescriptorBoot(proto) {
|
||||||
|
assert(!proto.options);
|
||||||
|
return {
|
||||||
|
name: proto.name,
|
||||||
|
value: proto.value.map((v) => {
|
||||||
|
assert(!v.options);
|
||||||
|
return {
|
||||||
|
name: v.name,
|
||||||
|
number: v.number,
|
||||||
|
};
|
||||||
|
}),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Assert that condition is truthy or throw error.
|
||||||
|
*/
|
||||||
|
function assert(condition) {
|
||||||
|
// eslint-disable-next-line @typescript-eslint/strict-boolean-expressions -- we want the implicit conversion to boolean
|
||||||
|
if (!condition) {
|
||||||
|
throw new Error();
|
||||||
|
}
|
||||||
|
}
|
18
node_modules/.pnpm/@bufbuild+protobuf@2.2.3/node_modules/@bufbuild/protobuf/dist/cjs/codegenv1/enum.d.ts
generated
vendored
Normal file
18
node_modules/.pnpm/@bufbuild+protobuf@2.2.3/node_modules/@bufbuild/protobuf/dist/cjs/codegenv1/enum.d.ts
generated
vendored
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
import type { DescEnum, DescFile } from "../descriptors.js";
|
||||||
|
import type { GenEnum } from "./types.js";
|
||||||
|
import type { JsonValue } from "../json-value.js";
|
||||||
|
/**
|
||||||
|
* Hydrate an enum descriptor.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
export declare function enumDesc<Shape extends number, JsonType extends JsonValue = JsonValue>(file: DescFile, path: number, ...paths: number[]): GenEnum<Shape, JsonType>;
|
||||||
|
/**
|
||||||
|
* Construct a TypeScript enum object at runtime from a descriptor.
|
||||||
|
*/
|
||||||
|
export declare function tsEnum(desc: DescEnum): enumObject;
|
||||||
|
type enumObject = {
|
||||||
|
[key: number]: string;
|
||||||
|
[k: string]: number | string;
|
||||||
|
};
|
||||||
|
export {};
|
40
node_modules/.pnpm/@bufbuild+protobuf@2.2.3/node_modules/@bufbuild/protobuf/dist/cjs/codegenv1/enum.js
generated
vendored
Normal file
40
node_modules/.pnpm/@bufbuild+protobuf@2.2.3/node_modules/@bufbuild/protobuf/dist/cjs/codegenv1/enum.js
generated
vendored
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
"use strict";
|
||||||
|
// Copyright 2021-2024 Buf Technologies, Inc.
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
|
exports.enumDesc = enumDesc;
|
||||||
|
exports.tsEnum = tsEnum;
|
||||||
|
/**
|
||||||
|
* Hydrate an enum descriptor.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
function enumDesc(file, path, ...paths) {
|
||||||
|
if (paths.length == 0) {
|
||||||
|
return file.enums[path];
|
||||||
|
}
|
||||||
|
const e = paths.pop(); // we checked length above
|
||||||
|
return paths.reduce((acc, cur) => acc.nestedMessages[cur], file.messages[path]).nestedEnums[e];
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Construct a TypeScript enum object at runtime from a descriptor.
|
||||||
|
*/
|
||||||
|
function tsEnum(desc) {
|
||||||
|
const enumObject = {};
|
||||||
|
for (const value of desc.values) {
|
||||||
|
enumObject[value.localName] = value.number;
|
||||||
|
enumObject[value.number] = value.localName;
|
||||||
|
}
|
||||||
|
return enumObject;
|
||||||
|
}
|
9
node_modules/.pnpm/@bufbuild+protobuf@2.2.3/node_modules/@bufbuild/protobuf/dist/cjs/codegenv1/extension.d.ts
generated
vendored
Normal file
9
node_modules/.pnpm/@bufbuild+protobuf@2.2.3/node_modules/@bufbuild/protobuf/dist/cjs/codegenv1/extension.d.ts
generated
vendored
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
import type { Message } from "../types.js";
|
||||||
|
import type { DescFile } from "../descriptors.js";
|
||||||
|
import type { GenExtension } from "./types.js";
|
||||||
|
/**
|
||||||
|
* Hydrate an extension descriptor.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
export declare function extDesc<Extendee extends Message, Value>(file: DescFile, path: number, ...paths: number[]): GenExtension<Extendee, Value>;
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user