Upgrade to Docusaurus 3.0

This commit is contained in:
Niklas Birk 2023-10-31 20:41:33 +01:00
parent bf4bfcdf71
commit 773013102a
34 changed files with 5521 additions and 11994 deletions

View File

@ -110,7 +110,7 @@ In der Aussagenlogik gilt das *Zweiwertigkeitsprinzip*:
Alle Aussagen sind entweder *wahr* ($w$ oder $1$) oder *falsch* ($f$ oder $0$) Alle Aussagen sind entweder *wahr* ($w$ oder $1$) oder *falsch* ($f$ oder $0$)
> Tertium non datur (dt.: Ein Drittes gibt es nicht) > Tertium non datur (dt.: Ein Drittes gibt es nicht)
> >
> — Satz vom ausgeschlossenem Dritten > — Satz vom ausgeschlossenem Dritten
::: :::
@ -144,16 +144,16 @@ Eine Zeile dieser Wahrheitstabelle nennt man auch *Interpretation* oder *Belegun
#### Beispiele #### Beispiele
Wählen wir folgende Aussagen $A = "3 < 5"$ und $B = "3 + 2 = 1"$. Wählen wir folgende Aussagen $A = "3 < 5"$ und $B = "3 + 2 = 1"$.
$A$ ist eine wahre Aussage, während $B$ eine falsche Aussage ist. $A$ ist eine wahre Aussage, während $B$ eine falsche Aussage ist.
Wir bilden nun die neue Aussage $A \wedge B$. Wir bilden nun die neue Aussage $A \wedge B$.
Ist die neue Aussage wahr oder falsch? Ist die neue Aussage wahr oder falsch?
Dazu schauen wir in die Wahrheitstafel bei der Interpretation $w, f$ und sehen, dass $f$ gilt - also ist $A \wedge B$ eine falsche Aussage. Dazu schauen wir in die Wahrheitstafel bei der Interpretation $w, f$ und sehen, dass $f$ gilt - also ist $A \wedge B$ eine falsche Aussage.
$\neg (3 + 5 = 0)$ ist eine wahre Aussage, denn $3+5$ ist nicht $0$, sondern $8$. $\neg (3 + 5 = 0)$ ist eine wahre Aussage, denn $3+5$ ist nicht $0$, sondern $8$.
In diesem Fall könnte man statt $\neg (3 + 5 = 0)$ auch $3 + 5 \ne 0$ schreiben. In diesem Fall könnte man statt $\neg (3 + 5 = 0)$ auch $3 + 5 \ne 0$ schreiben.
Die logische Negation macht das $=$ also zu einem $\ne$. Die logische Negation macht das $=$ also zu einem $\ne$.
Die Implikation hängt eng mit der logischen Schlussfolgerung zusammen, durch das sogenannte *Deduktionstheorem*. Die Implikation hängt eng mit der logischen Schlussfolgerung zusammen, durch das sogenannte *Deduktionstheorem*.
Allerdings wird hierauf nicht näher eingegangen, lediglich der Begriff *folgern* wird hier nun verwendet, Allerdings wird hierauf nicht näher eingegangen, lediglich der Begriff *folgern* wird hier nun verwendet,
wenngleich nicht ganz korrekt, da wir damit Meta- und Objektebene vermischen. wenngleich nicht ganz korrekt, da wir damit Meta- und Objektebene vermischen.
Doch wie bereits angemerkt, nimmt man es damit nicht immer so genau, wenn man nicht gerade Logik wirklich formal betreibt. Doch wie bereits angemerkt, nimmt man es damit nicht immer so genau, wenn man nicht gerade Logik wirklich formal betreibt.
Wenn wir uns die Wahrheitstabelle der Implikation anschauen, dann stellen wir fest, dass wir aus etwas Wahrem Wenn wir uns die Wahrheitstabelle der Implikation anschauen, dann stellen wir fest, dass wir aus etwas Wahrem
@ -165,8 +165,8 @@ nie was Falsches folgern dürfen, aber aus etwas Falschem stets was Wahres:
Bei $\vee$ (gesprochen *oder*) ist anzumerken, dass es sich um ein *Inklusiv-Oder* handelt, d.h. die Gesamtaussage ist genau dann wahr, Bei $\vee$ (gesprochen *oder*) ist anzumerken, dass es sich um ein *Inklusiv-Oder* handelt, d.h. die Gesamtaussage ist genau dann wahr,
wenn mindestens eine Teilaussage wahr ist. wenn mindestens eine Teilaussage wahr ist.
Das Inklusiv-Oder ist wie ein "Milch *oder* Zucker" beim Kaffee zu verstehen - man kann auch beides nehmen. Das Inklusiv-Oder ist wie ein "Milch *oder* Zucker" beim Kaffee zu verstehen - man kann auch beides nehmen.
Im Gegensatz dazu steht das *Exklusiv-Oder* (*Antivalenz* genannt, $\not\leftrightarrow$ geschrieben, Im Gegensatz dazu steht das *Exklusiv-Oder* (*Antivalenz* genannt, $\not\leftrightarrow$ geschrieben,
"entweder $A$ oder $B$" gesprochen), das nur dann wahr wird, wenn genau eine der beiden Teilaussagen wahr ist. "entweder $A$ oder $B$" gesprochen), das nur dann wahr wird, wenn genau eine der beiden Teilaussagen wahr ist.
Die Antivalenz ist auch ein wichtiger Junktor, der hier aber nicht näher eingeführt wird. Die Antivalenz ist auch ein wichtiger Junktor, der hier aber nicht näher eingeführt wird.
Die Implikation bereitet vielen am Anfang Bauchschmerzen, da sie dem umgangssprachlichen "wenn ..., dann ..." auf den ersten Blick nicht vollkommen entspricht. Die Implikation bereitet vielen am Anfang Bauchschmerzen, da sie dem umgangssprachlichen "wenn ..., dann ..." auf den ersten Blick nicht vollkommen entspricht.
@ -220,7 +220,7 @@ Man nennt so eine Formel auch *Kontradiktion* oder *Widerspruch*.
::: :::
#### Beispiele #### Beispiele
Oben haben wir bereits eine Tautologie gesehen. Oben haben wir bereits eine Tautologie gesehen.
Eine weitere wäre: Eine weitere wäre:
$$ $$
\begin{array}{c||c} \begin{array}{c||c}
@ -242,12 +242,12 @@ $$
\end{array} \end{array}
$$ $$
Das ist eine Kontradiktion, sie ist immer falsch. Das ist eine Kontradiktion, sie ist immer falsch.
Diese Formel nennt man auch *Widerspruch*. Diese Formel nennt man auch *Widerspruch*.
Es kann $A$ *und* $\neg A$ nie gleichzeitig gelten. Es kann $A$ *und* $\neg A$ nie gleichzeitig gelten.
Wenn also bspw. jemand behauptet "Ich wohne in Berlin", er aber gleichzeitig sagt "Ich wohne nicht in Berlin", dann widerspricht er sich ja selbst. Wenn also bspw. jemand behauptet "Ich wohne in Berlin", er aber gleichzeitig sagt "Ich wohne nicht in Berlin", dann widerspricht er sich ja selbst.
### Semantische Äquivalenz ### Semantische Äquivalenz
Wenn wir über verschiedene Formeln reden und bestimmen wollen, ob diese Formeln das gleiche Aussagen, Wenn wir über verschiedene Formeln reden und bestimmen wollen, ob diese Formeln das gleiche Aussagen,
dann ist das die Frage nach der *semantischen Äquivalenz*. dann ist das die Frage nach der *semantischen Äquivalenz*.
:::note Semantische Äquivalenz :::note Semantische Äquivalenz
@ -287,143 +287,143 @@ Die tatsächliche semantische Äquivalenz lässt sich leicht durch aufstellen ei
:::tip Wichtige semantische Äquivalenzen :::tip Wichtige semantische Äquivalenzen
1. $$ 1. $$
\begin{align*} \begin{align*}
\begin{aligned} \begin{aligned}
x \wedge y &\equiv y \wedge x\\ x \wedge y &\equiv y \wedge x\\
x \vee y &\equiv y \vee x\\ x \vee y &\equiv y \vee x\\
x \leftrightarrow y &\equiv y \leftrightarrow x x \leftrightarrow y &\equiv y \leftrightarrow x
\end{aligned} \end{aligned}
&&\text{Kommutativität} &&\text{Kommutativität}
\end{align*} \end{align*}
$$ $$
2. $$ 2. $$
\begin{align*} \begin{align*}
\begin{aligned} \begin{aligned}
x \wedge (y \wedge z) &\equiv (x \wedge y) \wedge z\\ x \wedge (y \wedge z) &\equiv (x \wedge y) \wedge z\\
x \vee (y \vee z) &\equiv (x \vee y) \vee z\\ x \vee (y \vee z) &\equiv (x \vee y) \vee z\\
x \leftrightarrow (y \leftrightarrow z) x \leftrightarrow (y \leftrightarrow z)
&\equiv (x \leftrightarrow y) \leftrightarrow z &\equiv (x \leftrightarrow y) \leftrightarrow z
\end{aligned} \end{aligned}
&&\text{Assoziativität} &&\text{Assoziativität}
\end{align*} \end{align*}
$$ $$
3. $$ 3. $$
\begin{align*} \begin{align*}
\begin{aligned} \begin{aligned}
x \wedge (y \vee z) &\equiv (x \wedge y) \vee (x \wedge z)\\ x \wedge (y \vee z) &\equiv (x \wedge y) \vee (x \wedge z)\\
x \vee (y \wedge z) &\equiv (x \vee y) \wedge (x \vee z) x \vee (y \wedge z) &\equiv (x \vee y) \wedge (x \vee z)
\end{aligned} \end{aligned}
&&\text{Distributivität} &&\text{Distributivität}
\end{align*} \end{align*}
$$ $$
4. $$ 4. $$
\begin{align*} \begin{align*}
\begin{aligned} \begin{aligned}
x \wedge (x \vee y) &\equiv x\\ x \wedge (x \vee y) &\equiv x\\
x \vee (x \wedge y) &\equiv x x \vee (x \wedge y) &\equiv x
\end{aligned} \end{aligned}
&&\text{Absorption} &&\text{Absorption}
\end{align*} \end{align*}
$$ $$
5. $$ 5. $$
\begin{align*} \begin{align*}
\begin{aligned} \begin{aligned}
x \wedge x &\equiv x\\ x \wedge x &\equiv x\\
x \vee x &\equiv x x \vee x &\equiv x
\end{aligned} \end{aligned}
&&\text{Idempotenz} &&\text{Idempotenz}
\end{align*} \end{align*}
$$ $$
6. $$ 6. $$
\begin{align*} \begin{align*}
\begin{aligned} \begin{aligned}
\neg(\neg x) &\equiv x\\ \neg(\neg x) &\equiv x\\
\neg(x \rightarrow y) &\equiv x \wedge \neg y\\ \neg(x \rightarrow y) &\equiv x \wedge \neg y\\
\neg(x \leftrightarrow y) \neg(x \leftrightarrow y)
&\equiv \neg x \leftrightarrow y &\equiv \neg x \leftrightarrow y
\equiv x \leftrightarrow \neg y \equiv x \leftrightarrow \neg y
\end{aligned} \end{aligned}
&&\text{Verneinung} &&\text{Verneinung}
\end{align*} \end{align*}
$$ $$
7. $$ 7. $$
\begin{align*} \begin{align*}
\begin{aligned} \begin{aligned}
\neg(x \wedge y) &\equiv \neg x \vee \neg y\\ \neg(x \wedge y) &\equiv \neg x \vee \neg y\\
\neg(x \vee y) &\equiv \neg x \wedge \neg y \neg(x \vee y) &\equiv \neg x \wedge \neg y
\end{aligned} \end{aligned}
&&\text{De Morgan'sche Regeln} &&\text{De Morgan'sche Regeln}
\end{align*} \end{align*}
$$ $$
8. $$ 8. $$
\begin{align*} \begin{align*}
\begin{aligned} \begin{aligned}
x \leftrightarrow y &\equiv (x \rightarrow y) \wedge (y \rightarrow x)\\ x \leftrightarrow y &\equiv (x \rightarrow y) \wedge (y \rightarrow x)\\
x \rightarrow y &\equiv \neg x \vee y\\ x \rightarrow y &\equiv \neg x \vee y\\
x \wedge y &\equiv \neg(\neg x \vee \neg y)\\ x \wedge y &\equiv \neg(\neg x \vee \neg y)\\
x \vee y &\equiv \neg(\neg x \wedge \neg y) x \vee y &\equiv \neg(\neg x \wedge \neg y)
\end{aligned} \end{aligned}
&&\text{Elimination} &&\text{Elimination}
\end{align*} \end{align*}
$$ $$
9. $$ 9. $$
\begin{align*} \begin{align*}
\begin{aligned} \begin{aligned}
x \rightarrow y \equiv \neg y \rightarrow \neg x x \rightarrow y \equiv \neg y \rightarrow \neg x
\end{aligned} \end{aligned}
&&\text{Kontraposition} &&\text{Kontraposition}
\end{align*} \end{align*}
$$ $$
10. $$ 10. $$
\begin{align*} \begin{align*}
\begin{aligned} \begin{aligned}
\neg f &\equiv w\\ \neg f &\equiv w\\
\neg w &\equiv f \neg w &\equiv f
\end{aligned} \end{aligned}
&& &&
\end{align*} \end{align*}
$$ $$
11. $$ 11. $$
\begin{align*} \begin{align*}
\begin{aligned} \begin{aligned}
x \wedge \neg x &\equiv f\\ x \wedge \neg x &\equiv f\\
x \vee \neg x &\equiv w\\ x \vee \neg x &\equiv w\\
x \leftrightarrow \neg x &\equiv f x \leftrightarrow \neg x &\equiv f
\end{aligned} \end{aligned}
&& &&
\end{align*} \end{align*}
$$ $$
12. $$ 12. $$
\begin{align*} \begin{align*}
\begin{aligned} \begin{aligned}
w \wedge x &\equiv x\\ w \wedge x &\equiv x\\
f \wedge x &\equiv f\\ f \wedge x &\equiv f\\
w \vee x &\equiv w\\ w \vee x &\equiv w\\
f \vee x &\equiv x f \vee x &\equiv x
\end{aligned} \end{aligned}
&& &&
\end{align*} \end{align*}
$$ $$
13. $$ 13. $$
\begin{align*} \begin{align*}
\begin{aligned} \begin{aligned}
f \rightarrow x &\equiv w\\ f \rightarrow x &\equiv w\\
w \rightarrow x &\equiv x\\ w \rightarrow x &\equiv x\\
x \rightarrow f &\equiv \neg x\\ x \rightarrow f &\equiv \neg x\\
x \rightarrow w &\equiv w x \rightarrow w &\equiv w
\end{aligned} \end{aligned}
&& &&
\end{align*} \end{align*}
$$ $$
14. $$ 14. $$
\begin{align*} \begin{align*}
\begin{aligned} \begin{aligned}
f \leftrightarrow x &\equiv \neg x\\ f \leftrightarrow x &\equiv \neg x\\
w \leftrightarrow x &\equiv x w \leftrightarrow x &\equiv x
\end{aligned} \end{aligned}
&& &&
\end{align*} \end{align*}
$$ $$
::: :::
@ -444,7 +444,7 @@ $$
\overset{\text{11.}}{\equiv}\quad && &w \overset{\text{11.}}{\equiv}\quad && &w
\end{alignat*} \end{alignat*}
$$ $$
In diesem Fall konnten wir nur durch umformen, also insbesondere ohne Wahrheitstabelle, zeigen, In diesem Fall konnten wir nur durch umformen, also insbesondere ohne Wahrheitstabelle, zeigen,
dass es sich um eine Tautologie handelt, da die ursprüngliche Formel semantisch äquivalent zu $w$ ist. dass es sich um eine Tautologie handelt, da die ursprüngliche Formel semantisch äquivalent zu $w$ ist.
Die Ausgangsformel nennt man auch *Kettenschluss*. Die Ausgangsformel nennt man auch *Kettenschluss*.
@ -472,7 +472,7 @@ Durch Einsetzen von Objekten aus $G$ **für alle** Variablen wird $H$ zu einer A
Man schreibt $H(x)$ oder $H(x_1, x_2, \dots, x_n)$ für eine Aussagenform $H$ mit den Variablen $x$ bzw. $x_1, x_2, \dots, x_n$. Man schreibt $H(x)$ oder $H(x_1, x_2, \dots, x_n)$ für eine Aussagenform $H$ mit den Variablen $x$ bzw. $x_1, x_2, \dots, x_n$.
Aussagenformen wurden bereits in der [Aussagenlogik](#syntax)) oben eingeführt, ohne sie konkret zu benennen: Aussagenformen wurden bereits in der [Aussagenlogik](#syntax)) oben eingeführt, ohne sie konkret zu benennen:
> Durch das Ersetzen der Aussagenvariablen durch konkrete Aussagen, erhält man eine \[$\dots$\] Aussage. > Durch das Ersetzen der Aussagenvariablen durch konkrete Aussagen, erhält man eine \[$\dots$\] Aussage.
Das Zusammensetzen von Aussagen(-formen) mit den entsprechenden Junktoren ist analog zur Aussagenlogik. Das Zusammensetzen von Aussagen(-formen) mit den entsprechenden Junktoren ist analog zur Aussagenlogik.
#### Beispiele #### Beispiele
@ -534,7 +534,7 @@ $$
Eine Aussagenform wird natürlich nur dann zu einer Aussage, wenn alle Variablen gebunden sind oder, falls freie Variablen existieren, Eine Aussagenform wird natürlich nur dann zu einer Aussage, wenn alle Variablen gebunden sind oder, falls freie Variablen existieren,
diese durch eine konkrete Aussage ersetzt wurden. diese durch eine konkrete Aussage ersetzt wurden.
Folgende Beispiele sind nur Aussagenformen, da nicht alle Variablen gebunden vorkommen. Folgende Beispiele sind nur Aussagenformen, da nicht alle Variablen gebunden vorkommen.
Sei $G = \mathbb{Z}$. Sei $G = \mathbb{Z}$.
- $x + y = 0$ - $x + y = 0$
- $\forall x:\ x + y = 0$ - $\forall x:\ x + y = 0$

View File

@ -1,14 +1,14 @@
// @ts-check // @ts-check
// Note: type annotations allow type checking and IDEs autocompletion // Note: type annotations allow type checking and IDEs autocompletion
const lightCodeTheme = require('prism-react-renderer/themes/github'); import remarkMath from 'remark-math';
const darkCodeTheme = require('prism-react-renderer/themes/dracula'); import rehypeKatex from 'rehype-katex';
const math = require('remark-math'); const lightCodeTheme = require('prism-react-renderer').themes.github;
const katex = require('rehype-katex'); const darkCodeTheme = require('prism-react-renderer').themes.dracula;
/** @type {import('@docusaurus/types').Config} */ /** @type {import('@docusaurus/types').Config} */
const config = { export default {
title: 'Mathematik, Informatik und Programmierung', title: 'Mathematik, Informatik und Programmierung',
tagline: 'Mathematik und Informatik sind cool', tagline: 'Mathematik und Informatik sind cool',
url: 'https://www.niklas-birk.de', url: 'https://www.niklas-birk.de',
@ -38,8 +38,8 @@ const config = {
// docs: false, // docs: false,
docs: { docs: {
sidebarPath: require.resolve('./sidebars.js'), sidebarPath: require.resolve('./sidebars.js'),
remarkPlugins: [math], remarkPlugins: [remarkMath],
rehypePlugins: [katex], rehypePlugins: [rehypeKatex],
// // Please change this to your repo. // // Please change this to your repo.
// // Remove this to remove the "edit this page" links. // // Remove this to remove the "edit this page" links.
// // editUrl: // // editUrl:
@ -170,6 +170,4 @@ const config = {
crossorigin: 'anonymous', crossorigin: 'anonymous',
}, },
], ],
}; };
module.exports = config;

17200
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
{ {
"name": "niklas-birk-blog", "name": "niklas-birk-blog",
"version": "0.1.0", "version": "0.1.1",
"private": true, "private": true,
"scripts": { "scripts": {
"docusaurus": "docusaurus", "docusaurus": "docusaurus",
@ -14,19 +14,20 @@
"write-heading-ids": "docusaurus write-heading-ids" "write-heading-ids": "docusaurus write-heading-ids"
}, },
"dependencies": { "dependencies": {
"@docusaurus/core": "^2.4.1", "@docusaurus/core": "^3.0.0",
"@docusaurus/preset-classic": "^2.4.1", "@docusaurus/preset-classic": "^3.0.0",
"@mdx-js/react": "^1.6.22", "@mdx-js/react": "^3.0.0",
"clsx": "^1.2.1", "clsx": "^1.2.1",
"hast-util-is-element": "^1.1.0", "hast-util-is-element": "^3.0.0",
"prism-react-renderer": "^1.3.5", "prism-react-renderer": "^2.1.0",
"react": "^17.0.2", "react": "^18.2.0",
"react-dom": "^17.0.2", "react-dom": "^18.2.0",
"rehype-katex": "^5.0.0", "rehype-katex": "^7.0.0",
"remark-math": "^3.0.1" "remark-math": "^6.0.0"
}, },
"devDependencies": { "devDependencies": {
"@docusaurus/module-type-aliases": "^2.1.0" "@docusaurus/module-type-aliases": "^3.0.0",
"@docusaurus/types": "3.0.0"
}, },
"browserslist": { "browserslist": {
"production": [ "production": [
@ -41,6 +42,6 @@
] ]
}, },
"engines": { "engines": {
"node": ">=16.14" "node": ">=18.0"
} }
} }