Quartz sync: Mar 1, 2025, 2:26 PM

This commit is contained in:
Anthony Berg 2025-03-01 14:26:36 +01:00
parent 16c38cf522
commit 8fb1f81784
19490 changed files with 2553421 additions and 0 deletions

View 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.

View 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]]

View 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}$$

View 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})$.

View 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}$$

View File

@ -0,0 +1,2 @@
# Definition
A function which measures distances between two points in a [[Metric Space]].

View 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 \}$$

View 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}$$

View 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$

View 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$$

View 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)$$

View File

@ -0,0 +1,2 @@
# Definition
Say $f : X \to Y$ is [[Continuous|continuous]], $\implies f$ is Borel measurable.

View File

@ -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$.

View File

@ -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$.

View File

@ -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.

View File

@ -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]]

View 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$.

View File

@ -0,0 +1,2 @@
# Definition
Points such that small enough balls centred around them are contained in $A$.

View 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$.

View 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$.

View 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$$

View 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$$

View 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.

View 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.$$

View 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}))$$

View File

@ -0,0 +1,2 @@
# Definition
[[Open Sets]] with union $X$

View File

@ -0,0 +1,2 @@
# Definition
An **open map** takes one [[Open Sets|open set]] and maps it to another [[Open Sets|open set]].

View 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$.

View File

@ -0,0 +1,9 @@
$P \land Q$
# Truth Table
| P | Q | = |
| --- | --- | --- |
| F | F | F |
| F | T | F |
| T | F | F |
| T | T | T |

View File

@ -0,0 +1,9 @@
$P \implies Q$
# Truth Table
| P | Q | = |
| --- | --- | --- |
| F | F | T |
| F | T | T |
| T | F | F |
| T | T | T |

View File

@ -0,0 +1,8 @@
$¬P$
The symbol ($¬$) is called negation
# Truth Table
| P | = |
| --- | --- |
| F | T |
| T | F |

View File

@ -0,0 +1,9 @@
$P \lor Q$
# Truth Table
| P | Q | = |
| --- | --- | --- |
| F | F | F |
| F | T | T |
| T | F | T |
| T | T | T |

View File

@ -0,0 +1,2 @@
# Definition
Any subcollection with union $X$

View 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$.

View File

@ -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.

View 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$$

View File

@ -0,0 +1,3 @@
# Definition
$\exists M$ such that $\| \, x \, \| M, \; \forall x \in A$.
![[Pasted image 20250130113939.png]]

View 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

View 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

View 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

View 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

View 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)$.

View 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.

View File

@ -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} \}$.

View File

@ -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]]

View File

@ -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$

View File

@ -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$.

View File

@ -0,0 +1,2 @@
# Definition
$X$ is **compact** if every [[Open Cover|open cover]] has a finite [[Subcover|subcover]].

View File

@ -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]].

View File

@ -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$$

View 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**.

View 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}$

View File

@ -0,0 +1,3 @@
Can be abbreviated as "THM".
# Definition
The product of compact spaces is compact in the [[Product Topology|product topology]]

View File

@ -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]]

View 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}$.

View 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$.

View File

@ -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.

Binary file not shown.

BIN
content/Exercises/exer1.pdf Normal file

Binary file not shown.

View 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).

View 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}$.

View 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]$

View 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}$.......

View 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.

View 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]].

View 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]]

View 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})$$

View 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}$$

View 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' \, \|$

View 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 [[HeineBorel]] 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]].

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

20
content/index.md Normal file
View 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]]

Binary file not shown.

Binary file not shown.

Binary file not shown.

17
node_modules/.bin/esbuild generated vendored Executable file
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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

File diff suppressed because it is too large Load Diff

25
node_modules/.pnpm-workspace-state.json generated vendored Normal file
View 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
}

View 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).

View 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>;

View 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;
}

View 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;

View 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))),
};
}

View 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 {};

View 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();
}
}

View 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 {};

View 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;
}

View 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