<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://bsccs.stoney-wiki.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Bfh-sts</id>
	<title>MediaWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://bsccs.stoney-wiki.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Bfh-sts"/>
	<link rel="alternate" type="text/html" href="https://bsccs.stoney-wiki.com/wiki/Special:Contributions/Bfh-sts"/>
	<updated>2026-05-04T18:55:37Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.6</generator>
	<entry>
		<id>https://bsccs.stoney-wiki.com/w/index.php?title=Funktionen:_Definition,_Notation_%26_Beispiele&amp;diff=143</id>
		<title>Funktionen: Definition, Notation &amp; Beispiele</title>
		<link rel="alternate" type="text/html" href="https://bsccs.stoney-wiki.com/w/index.php?title=Funktionen:_Definition,_Notation_%26_Beispiele&amp;diff=143"/>
		<updated>2025-10-27T09:03:32Z</updated>

		<summary type="html">&lt;p&gt;Bfh-sts: Created page with &amp;quot;= Funktionen: Definition, Notation &amp;amp; Beispiele = Diese Seite führt den Funktionsbegriff (Abbildung) formal ein, klärt die Bezeichnungen und zeigt zentrale Beispiele – auch ausserhalb von ℝ.  == Definition (Abbildung) == Seien A und B Mengen. Eine Funktion (Abbildung)  f : A → B ist eine Vorschrift, die jedem Element x ∈ A genau ein Element f(x) ∈ B zuordnet.  Wesentliche Punkte: * Eindeutigkeit: Zu jedem x ∈ A gibt es genau ein Bild f(x).   * Totalität: Je...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Funktionen: Definition, Notation &amp;amp; Beispiele =&lt;br /&gt;
Diese Seite führt den Funktionsbegriff (Abbildung) formal ein, klärt die Bezeichnungen und zeigt zentrale Beispiele – auch ausserhalb von ℝ.&lt;br /&gt;
&lt;br /&gt;
== Definition (Abbildung) ==&lt;br /&gt;
Seien A und B Mengen. Eine Funktion (Abbildung)&lt;br /&gt;
 f : A → B&lt;br /&gt;
ist eine Vorschrift, die jedem Element x ∈ A genau ein Element f(x) ∈ B zuordnet.&lt;br /&gt;
&lt;br /&gt;
Wesentliche Punkte:&lt;br /&gt;
* Eindeutigkeit: Zu jedem x ∈ A gibt es genau ein Bild f(x).  &lt;br /&gt;
* Totalität: Jedes x ∈ A wird abgebildet (kein Element bleibt „ohne Bild“).&lt;br /&gt;
&lt;br /&gt;
== Bezeichnungen und Notation ==&lt;br /&gt;
* f : A → B,  x ↦ f(x)  &lt;br /&gt;
* Definitionsbereich (Domain): A  &lt;br /&gt;
* Zielbereich (Codomain): B  &lt;br /&gt;
* Bild/Wertemenge (Image): Im(f) = f(A) = { f(x) : x ∈ A } ⊆ B  &lt;br /&gt;
* Bild eines Elements: y = f(x)  &lt;br /&gt;
* Urbild von y ∈ B: jedes x ∈ A mit f(x) = y (kann kein, ein oder mehrere Urbilder haben)  &lt;br /&gt;
* In y = f(x) heisst y abhängige, x unabhängige Variable.&lt;br /&gt;
&lt;br /&gt;
== Was ist *keine* Funktion? ==&lt;br /&gt;
Ein Zuordnungsschema g : A → B ist keine Funktion, wenn&lt;br /&gt;
* ein x ∈ A mehreren y ∈ B zugeordnet wird (Verstoss gegen Eindeutigkeit), oder&lt;br /&gt;
* ein x ∈ A gar keinem y ∈ B zugeordnet wird (Verstoss gegen Totalität).&lt;br /&gt;
&lt;br /&gt;
== Beispiele ==&lt;br /&gt;
; (a) Quadratische Funktion&lt;br /&gt;
: A = B = ℝ,  f(x) = x².  Bild: Im(f) = ℝ⁺₀.&lt;br /&gt;
; (b) Anzahl der Primfaktoren&lt;br /&gt;
: A = ℕ \ {1}, B = ℕ,  f(n) = Anzahl der Primfaktoren von n (mit Vielfachheiten).  &lt;br /&gt;
: f(6)=2 (2·3), f(20)=3 (2·2·5), f(23 456 789)=1 (Primzahl).&lt;br /&gt;
; (c) Länge einer Zeichenkette&lt;br /&gt;
: A = {alle Strings}, B = ℕ₀,  f(x) = Länge(x).  Beispiel: f(„23x4a“) = 5.&lt;br /&gt;
; (d) Stückweise definierte Funktion&lt;br /&gt;
: f(x) = { 2x−4  für x ≥ 3;  |x|  für −2 &amp;lt; x &amp;lt; 3;  1+x  für x ≤ −2 }  mit A = ℝ.&lt;br /&gt;
: f(5)=6, f(−1)=1, f(−7)=−6.&lt;br /&gt;
; (e) Logischer Ausdruck als Funktion&lt;br /&gt;
: A = {W,F}³, B = {W,F},  f(X,Y,Z) = X ∧ (Y ∨ ¬Z).  &lt;br /&gt;
: Beispiel: f(W,F,W) = F.&lt;br /&gt;
&lt;br /&gt;
== Graph einer Funktion (Mengenauffassung) ==&lt;br /&gt;
Für f : A → B ist der Graph&lt;br /&gt;
 G(f) = { (x, f(x)) : x ∈ A } ⊂ A × B.&lt;br /&gt;
Für reellwertige Funktionen f : ℝ → ℝ ist das der übliche Graph in der xy-Ebene.&lt;br /&gt;
&lt;br /&gt;
== Reellwertige Funktionen einer reellen Variablen ==&lt;br /&gt;
In der Analysis betrachtet man vor allem f : ℝ → ℝ (oder Teilmengen davon).  &lt;br /&gt;
Dann sind x, y reelle Zahlen und der Graph ist eine Kurve in der Ebene.&lt;br /&gt;
&lt;br /&gt;
== Häufige Stolpersteine ==&lt;br /&gt;
* „Ein x mit zwei Pfeilen zu verschiedenen y“ → keine Funktion.  &lt;br /&gt;
* Bildmenge Im(f) ist i. Allg. nicht gleich dem Zielbereich B.  &lt;br /&gt;
* Urbilder können mehrfach sein (nicht-injektive Funktionen).&lt;br /&gt;
&lt;br /&gt;
== Kurzer Blick voraus ==&lt;br /&gt;
Spezielle Eigenschaften wie Injektivität, Surjektivität, Bijektivität, die Komposition g∘f sowie die Umkehrfunktion f⁻¹ werden auf eigenen Seiten behandelt.&lt;br /&gt;
&lt;br /&gt;
[[Category:Diskrete Mathematik I (BZG1155pa) 25/26]]&lt;/div&gt;</summary>
		<author><name>Bfh-sts</name></author>
	</entry>
	<entry>
		<id>https://bsccs.stoney-wiki.com/w/index.php?title=Category:Functions_(Funktionen)&amp;diff=142</id>
		<title>Category:Functions (Funktionen)</title>
		<link rel="alternate" type="text/html" href="https://bsccs.stoney-wiki.com/w/index.php?title=Category:Functions_(Funktionen)&amp;diff=142"/>
		<updated>2025-10-27T08:45:45Z</updated>

		<summary type="html">&lt;p&gt;Bfh-sts: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Funktionen (Abbildungen): Überblick =&lt;br /&gt;
Diese Übersichtsseite führt in den Begriff der Funktion (Abbildung) ein und verlinkt auf die Detailseiten: Definition &amp;amp; Notation, Graph, Injektivität/Surjektivität/Bijektivität, Komposition und Umkehrfunktion. Die Beispiele orientieren sich an den Inhalten der Vorlesung „Diskrete Mathematik I (BZG1155pa) 25/26“.&lt;br /&gt;
&lt;br /&gt;
== Was ist eine Funktion? ==&lt;br /&gt;
Eine Funktion (Abbildung) ordnet jedem Element x einer Menge A genau ein Element f(x) einer Menge B zu.  &lt;br /&gt;
Notation:  &lt;br /&gt;
 f : A → B,  x ↦ f(x)&lt;br /&gt;
&lt;br /&gt;
* A heisst Definitionsbereich.  &lt;br /&gt;
* B heisst Zielbereich (Codomain).  &lt;br /&gt;
* Das Bild (Image) ist f(A) = { f(x) : x ∈ A } ⊆ B.  &lt;br /&gt;
* y = f(x) heisst Bild von x; x heisst Urbild von y.&lt;br /&gt;
&lt;br /&gt;
Beispiele:&lt;br /&gt;
* Flächeninhalt eines Kreises: A(r) = π r², r &amp;gt; 0  &lt;br /&gt;
* Länge einer Zeichenkette: len(&amp;quot;23x4a&amp;quot;) = 5  &lt;br /&gt;
* Stückweise definierte Funktion:&lt;br /&gt;
  f(x) = { 2x−4 für x ≥ 3; |x| für −2 &amp;lt; x &amp;lt; 3; 1+x für x ≤ −2 }&lt;br /&gt;
&lt;br /&gt;
== Wichtige Spezialfunktionen ==&lt;br /&gt;
* Abrundungsfunktion (floor): ⌊x⌋ = grösste ganze Zahl ≤ x  &lt;br /&gt;
* Aufrundungsfunktion (ceiling): ⌈x⌉ = kleinste ganze Zahl ≥ x&lt;br /&gt;
&lt;br /&gt;
== Weiterführende Seiten ==&lt;br /&gt;
* [[Funktionen: Definition, Notation &amp;amp; Beispiele]]  &lt;br /&gt;
* [[Graph einer Funktion]]  &lt;br /&gt;
* [[Injektiv, Surjektiv, Bijektiv]]  &lt;br /&gt;
* [[Komposition (Verkettung) von Funktionen]]  &lt;br /&gt;
* [[Umkehrfunktion (Inverse Abbildung)]]  &lt;br /&gt;
* [[Spezielle Funktionen: Floor ⌊·⌋ und Ceiling ⌈·⌉]]  &lt;br /&gt;
&lt;br /&gt;
== Hinweise zur Praxis ==&lt;br /&gt;
* Bei reellwertigen Funktionen f : ℝ → ℝ ist y = f(x) eine Kurve in der xy-Ebene.  &lt;br /&gt;
* Das Bild f(A) unterscheidet sich i. Allg. vom Zielbereich B.  &lt;br /&gt;
* Ein y ∈ B kann kein, ein oder mehrere Urbilder haben (abhängig von f).&lt;br /&gt;
&lt;br /&gt;
[[Category:Diskrete Mathematik I (BZG1155pa) 25/26]]&lt;/div&gt;</summary>
		<author><name>Bfh-sts</name></author>
	</entry>
	<entry>
		<id>https://bsccs.stoney-wiki.com/w/index.php?title=Category:Functions_(Funktionen)&amp;diff=141</id>
		<title>Category:Functions (Funktionen)</title>
		<link rel="alternate" type="text/html" href="https://bsccs.stoney-wiki.com/w/index.php?title=Category:Functions_(Funktionen)&amp;diff=141"/>
		<updated>2025-10-27T08:45:19Z</updated>

		<summary type="html">&lt;p&gt;Bfh-sts: Created page with &amp;quot;= Funktionen (Abbildungen): Überblick = Diese Übersichtsseite führt in den Begriff der Funktion (Abbildung) ein und verlinkt auf die Detailseiten: Definition &amp;amp; Notation, Graph, Injektivität/Surjektivität/Bijektivität, Komposition und Umkehrfunktion. Die Beispiele orientieren sich an den Inhalten der Vorlesung „Diskrete Mathematik I (BZG1155pa) 25/26“.  == Was ist eine Funktion? == Eine Funktion (Abbildung) ordnet jedem Element x einer Menge A **genau ein** Elem...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Funktionen (Abbildungen): Überblick =&lt;br /&gt;
Diese Übersichtsseite führt in den Begriff der Funktion (Abbildung) ein und verlinkt auf die Detailseiten: Definition &amp;amp; Notation, Graph, Injektivität/Surjektivität/Bijektivität, Komposition und Umkehrfunktion. Die Beispiele orientieren sich an den Inhalten der Vorlesung „Diskrete Mathematik I (BZG1155pa) 25/26“.&lt;br /&gt;
&lt;br /&gt;
== Was ist eine Funktion? ==&lt;br /&gt;
Eine Funktion (Abbildung) ordnet jedem Element x einer Menge A **genau ein** Element f(x) einer Menge B zu.  &lt;br /&gt;
Notation:  &lt;br /&gt;
 f : A → B,  x ↦ f(x)&lt;br /&gt;
&lt;br /&gt;
* A heißt **Definitionsbereich**.  &lt;br /&gt;
* B heißt **Zielbereich** (Codomain).  &lt;br /&gt;
* Das **Bild** (Image) ist f(A) = { f(x) : x ∈ A } ⊆ B.  &lt;br /&gt;
* y = f(x) heißt **Bild** von x; x heißt **Urbild** von y.&lt;br /&gt;
&lt;br /&gt;
Beispiele:&lt;br /&gt;
* Flächeninhalt eines Kreises: A(r) = π r², r &amp;gt; 0  &lt;br /&gt;
* Länge einer Zeichenkette: len(&amp;quot;23x4a&amp;quot;) = 5  &lt;br /&gt;
* Stückweise definierte Funktion:&lt;br /&gt;
  f(x) = { 2x−4 für x ≥ 3; |x| für −2 &amp;lt; x &amp;lt; 3; 1+x für x ≤ −2 }&lt;br /&gt;
&lt;br /&gt;
== Wichtige Spezialfunktionen ==&lt;br /&gt;
* **Abrundungsfunktion (floor)**: ⌊x⌋ = größte ganze Zahl ≤ x  &lt;br /&gt;
* **Aufrundungsfunktion (ceiling)**: ⌈x⌉ = kleinste ganze Zahl ≥ x&lt;br /&gt;
&lt;br /&gt;
== Weiterführende Seiten ==&lt;br /&gt;
* [[Funktionen: Definition, Notation &amp;amp; Beispiele]]  &lt;br /&gt;
* [[Graph einer Funktion]]  &lt;br /&gt;
* [[Injektiv, Surjektiv, Bijektiv]]  &lt;br /&gt;
* [[Komposition (Verkettung) von Funktionen]]  &lt;br /&gt;
* [[Umkehrfunktion (Inverse Abbildung)]]  &lt;br /&gt;
* [[Spezielle Funktionen: Floor ⌊·⌋ und Ceiling ⌈·⌉]]  &lt;br /&gt;
&lt;br /&gt;
== Hinweise zur Praxis ==&lt;br /&gt;
* Bei reellwertigen Funktionen f : ℝ → ℝ ist y = f(x) eine Kurve in der xy-Ebene.  &lt;br /&gt;
* Das Bild f(A) unterscheidet sich i. Allg. vom Zielbereich B.  &lt;br /&gt;
* Ein y ∈ B kann kein, ein oder mehrere Urbilder haben (abhängig von f).&lt;br /&gt;
&lt;br /&gt;
[[Category:Diskrete Mathematik I (BZG1155pa) 25/26]]&lt;/div&gt;</summary>
		<author><name>Bfh-sts</name></author>
	</entry>
	<entry>
		<id>https://bsccs.stoney-wiki.com/w/index.php?title=Category:Diskrete_Mathematik_I_(BZG1155pa)_25/26&amp;diff=140</id>
		<title>Category:Diskrete Mathematik I (BZG1155pa) 25/26</title>
		<link rel="alternate" type="text/html" href="https://bsccs.stoney-wiki.com/w/index.php?title=Category:Diskrete_Mathematik_I_(BZG1155pa)_25/26&amp;diff=140"/>
		<updated>2025-10-27T08:45:12Z</updated>

		<summary type="html">&lt;p&gt;Bfh-sts: /* Topics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
This is the category of the BFH module Diskrete Mathematik I (BZG1155pa) 25/26.&lt;br /&gt;
&lt;br /&gt;
= Topics =&lt;br /&gt;
* [[:Category: Propositional logic (Aussagenlogik)‎]]&lt;br /&gt;
* [[:Category: Set Theory (Mengenlehre)‎]]&lt;br /&gt;
* [[:Category: Functions (Funktionen)]]&lt;br /&gt;
&lt;br /&gt;
== Propositional logic - Exercises ==&lt;br /&gt;
* [[Exercises - 01 Kontrollaufgaben]]&lt;br /&gt;
* [[Exercises - 02 Kontrollaufgaben]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Sidebar]]&lt;/div&gt;</summary>
		<author><name>Bfh-sts</name></author>
	</entry>
	<entry>
		<id>https://bsccs.stoney-wiki.com/w/index.php?title=Mengenlehre:_%C3%9Cberblick_%26_Notation&amp;diff=139</id>
		<title>Mengenlehre: Überblick &amp; Notation</title>
		<link rel="alternate" type="text/html" href="https://bsccs.stoney-wiki.com/w/index.php?title=Mengenlehre:_%C3%9Cberblick_%26_Notation&amp;diff=139"/>
		<updated>2025-10-27T08:22:04Z</updated>

		<summary type="html">&lt;p&gt;Bfh-sts: /* Wichtige Symbole */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Mengenlehre: Überblick &amp;amp; Bedeutung =&lt;br /&gt;
Die Mengenlehre ist ein grundlegendes Teilgebiet der Mathematik, das von Georg Cantor (1845–1918) im 19. Jahrhundert entwickelt wurde.  &lt;br /&gt;
Sie bildet das Fundament nahezu aller modernen mathematischen Disziplinen.  &lt;br /&gt;
Jede mathematische Struktur – von Zahlen über Funktionen bis zu geometrischen Objekten – kann in der Sprache der Mengenlehre formuliert werden.&lt;br /&gt;
&lt;br /&gt;
== Ursprung und Idee ==&lt;br /&gt;
Cantor definierte den Begriff der Menge folgendermassen:&lt;br /&gt;
&amp;gt; Unter einer Menge verstehen wir jede Zusammenfassung von bestimmten, wohlunterschiedlichen Objekten unserer Anschauung oder unseres Denkens (welche Elemente der Menge genannt werden) zu einem Ganzen.&lt;br /&gt;
&lt;br /&gt;
Diese Definition erlaubt es, sowohl konkrete als auch abstrakte Objekte als Elemente zu betrachten.  &lt;br /&gt;
Beispiele für Mengen:&lt;br /&gt;
* Die Menge der Planeten im Sonnensystem  &lt;br /&gt;
* Die Menge der geraden natürlichen Zahlen grösser als 2, die sich als Summe zweier Primzahlen schreiben lassen  &lt;br /&gt;
* Die Menge aller reellen Zahlen x mit x &amp;gt; 5  &lt;br /&gt;
* Die Menge der Studierenden an der BFH-TI Biel  &lt;br /&gt;
&lt;br /&gt;
== Notation ==&lt;br /&gt;
* Mengen werden mit Grossbuchstaben bezeichnet (A, B, C, …).  &lt;br /&gt;
* Elemente werden mit Kleinbuchstaben bezeichnet (a, b, c, …).  &lt;br /&gt;
* Die Aussage „a ist Element von A“ schreibt man als:  &lt;br /&gt;
  a ∈ A  &lt;br /&gt;
  Die Negation lautet:  &lt;br /&gt;
  a ∉ A  &lt;br /&gt;
&lt;br /&gt;
Eine Menge ist durch ihre Elemente vollständig bestimmt.  &lt;br /&gt;
Dieses Prinzip wird als Extensionalitätsaxiom bezeichnet:&lt;br /&gt;
&amp;gt; Zwei Mengen A und B sind genau dann gleich, wenn sie dieselben Elemente enthalten.&lt;br /&gt;
&lt;br /&gt;
Formal:&lt;br /&gt;
 A = B ⇔ ∀x: (x ∈ A ⇔ x ∈ B)&lt;br /&gt;
&lt;br /&gt;
== Arten der Mengendefinition ==&lt;br /&gt;
Es gibt zwei grundlegende Arten, Mengen zu definieren:&lt;br /&gt;
&lt;br /&gt;
=== 1. Aufzählende (explizite) Definition ===&lt;br /&gt;
Alle Elemente werden direkt aufgelistet:&lt;br /&gt;
 A = {a, b, x, y, z}  &lt;br /&gt;
 B = {1, 2, 3, 4, 5}&lt;br /&gt;
&lt;br /&gt;
=== 2. Beschreibende (intensionale) Definition ===&lt;br /&gt;
Die Elemente werden durch eine Eigenschaft charakterisiert:&lt;br /&gt;
 B = {n : n ∈ ℤ ∧ n &amp;gt; 5}  &lt;br /&gt;
„B ist die Menge aller ganzen Zahlen n, für die n &amp;gt; 5 gilt.“&lt;br /&gt;
&lt;br /&gt;
Der Doppelpunkt „:“ bedeutet „mit der Eigenschaft“ oder „so dass“.&lt;br /&gt;
&lt;br /&gt;
== Wichtige Symbole ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;text&#039;&amp;gt;&lt;br /&gt;
| Symbol | Bedeutung               |&lt;br /&gt;
|--------|-------------------------|&lt;br /&gt;
| ∈      | ist Element von         |&lt;br /&gt;
| ∉      | ist kein Element von    |&lt;br /&gt;
| ⊆      | ist Teilmenge von       |&lt;br /&gt;
| ⊂      | ist echte Teilmenge von |&lt;br /&gt;
| ∅     | leere Menge             |&lt;br /&gt;
| U      | Universalmenge          |&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Leere Menge und Universalmenge ==&lt;br /&gt;
* Leere Menge (∅): enthält keine Elemente.  &lt;br /&gt;
  ∅ = {}  &lt;br /&gt;
* Universalmenge (U): enthält alle in einem Kontext betrachteten Objekte.  &lt;br /&gt;
  Beispiele:&lt;br /&gt;
  * In der Geometrie: alle Punkte der Ebene  &lt;br /&gt;
  * In der Analysis: alle reellen Zahlen&lt;br /&gt;
&lt;br /&gt;
== Bedeutung in der Informatik ==&lt;br /&gt;
Mengen sind auch in der Informatik zentral:&lt;br /&gt;
* zur Beschreibung von Zustandsräumen  &lt;br /&gt;
* zur Definition von Datenmengen und Relationen  &lt;br /&gt;
* für logische Operationen (UND, ODER, NICHT) in Boolescher Algebra  &lt;br /&gt;
* als Grundlage für Datenbanktheorie und Mengenoperationen (SELECT, UNION, INTERSECT)&lt;br /&gt;
&lt;br /&gt;
== Zusammenfassung ==&lt;br /&gt;
* Die Mengenlehre ist das Fundament der Mathematik.  &lt;br /&gt;
* Mengen sind Sammlungen von klar unterscheidbaren Objekten.  &lt;br /&gt;
* Die Mitgliedschaft (∈) ist das zentrale Konzept.  &lt;br /&gt;
* Mengen können durch Aufzählung oder Eigenschaft definiert werden.  &lt;br /&gt;
* Leere Menge (∅) und Universalmenge (U) sind wichtige Spezialfälle.&lt;br /&gt;
&lt;br /&gt;
[[Category:Set Theory (Mengenlehre)]]&lt;/div&gt;</summary>
		<author><name>Bfh-sts</name></author>
	</entry>
	<entry>
		<id>https://bsccs.stoney-wiki.com/w/index.php?title=Endliche_Mengen_%26_Einschluss-Ausschluss-Prinzip&amp;diff=138</id>
		<title>Endliche Mengen &amp; Einschluss-Ausschluss-Prinzip</title>
		<link rel="alternate" type="text/html" href="https://bsccs.stoney-wiki.com/w/index.php?title=Endliche_Mengen_%26_Einschluss-Ausschluss-Prinzip&amp;diff=138"/>
		<updated>2025-10-27T08:14:55Z</updated>

		<summary type="html">&lt;p&gt;Bfh-sts: /* Beispiel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Endliche Mengen und das Einschluss-Ausschluss-Prinzip =&lt;br /&gt;
Viele praktische Probleme befassen sich mit endlichen Mengen, also Mengen mit abzählbarer Anzahl von Elementen.  &lt;br /&gt;
Für solche Mengen spielt das Zählen von Elementen und Überschneidungen eine zentrale Rolle.&lt;br /&gt;
&lt;br /&gt;
== Endliche und unendliche Mengen ==&lt;br /&gt;
Eine Menge heisst endlich, wenn sie genau *m* verschiedene Elemente enthält, wobei *m* eine natürliche Zahl ist.  &lt;br /&gt;
Sonst heisst sie unendlich.&lt;br /&gt;
&lt;br /&gt;
Beispiele:&lt;br /&gt;
* ∅ → endlich, da keine Elemente  &lt;br /&gt;
* Alphabet = {A, B, …, Z} → endlich  &lt;br /&gt;
* ℕ = {1, 2, 3, 4, …} → unendlich&lt;br /&gt;
&lt;br /&gt;
Die Anzahl der Elemente einer endlichen Menge A wird mit |A| bezeichnet.&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
 A = {1, 2, 3, 4} → |A| = 4&lt;br /&gt;
&lt;br /&gt;
== Vereinigung endlicher Mengen ==&lt;br /&gt;
Sind A und B endlich, so ist auch A ∪ B endlich.  &lt;br /&gt;
Dabei gilt die Grundformel:&lt;br /&gt;
&lt;br /&gt;
 |A ∪ B| = |A| + |B| − |A ∩ B|&lt;br /&gt;
&lt;br /&gt;
Diese Formel korrigiert die doppelte Zählung der Schnittmenge.&lt;br /&gt;
&lt;br /&gt;
=== Beispiel ===&lt;br /&gt;
* A = {1, 2, 3, 4}, B = {3, 4, 5, 6}  &lt;br /&gt;
* |A| = 4, |B| = 4, |A ∩ B| = 2  &lt;br /&gt;
* → |A ∪ B| = 4 + 4 − 2 = 6  &lt;br /&gt;
* A ∪ B = {1, 2, 3, 4, 5, 6}&lt;br /&gt;
&lt;br /&gt;
== Herleitung der Formel ==&lt;br /&gt;
Die Mengen A und B können als drei disjunkte Teilmengen betrachtet werden:&lt;br /&gt;
* A \ (A ∩ B)&lt;br /&gt;
* A ∩ B&lt;br /&gt;
* B \ (A ∩ B)&lt;br /&gt;
&lt;br /&gt;
Da diese drei Mengen keine Überschneidung haben, gilt:&lt;br /&gt;
 |A ∪ B| = |A \ (A ∩ B)| + |A ∩ B| + |B \ (A ∩ B)|&lt;br /&gt;
&lt;br /&gt;
Daraus folgt:&lt;br /&gt;
 |A ∪ B| = |A| + |B| − |A ∩ B|&lt;br /&gt;
&lt;br /&gt;
== Erweiterung auf drei Mengen ==&lt;br /&gt;
Für drei endliche Mengen A, B, C gilt die Einschluss-Ausschluss-Formel:&lt;br /&gt;
&lt;br /&gt;
 |A ∪ B ∪ C| = |A| + |B| + |C| − |A ∩ B| − |A ∩ C| − |B ∩ C| + |A ∩ B ∩ C|&lt;br /&gt;
&lt;br /&gt;
Diese Formel berücksichtigt alle Überschneidungen korrekt:&lt;br /&gt;
* Einfache Mengen: +  &lt;br /&gt;
* Doppelte Schnittmengen: −  &lt;br /&gt;
* Dreifache Schnittmenge: +&lt;br /&gt;
&lt;br /&gt;
== Erweiterung auf vier Mengen ==&lt;br /&gt;
Für A, B, C, D gilt:&lt;br /&gt;
&lt;br /&gt;
 |A ∪ B ∪ C ∪ D| =  &lt;br /&gt;
 |A| + |B| + |C| + |D|  &lt;br /&gt;
 − (|A ∩ B| + |A ∩ C| + |A ∩ D| + |B ∩ C| + |B ∩ D| + |C ∩ D|)  &lt;br /&gt;
 + (|A ∩ B ∩ C| + |A ∩ B ∩ D| + |A ∩ C ∩ D| + |B ∩ C ∩ D|)  &lt;br /&gt;
 − |A ∩ B ∩ C ∩ D|&lt;br /&gt;
&lt;br /&gt;
== Beispiel: Anwendung auf Studierende ==&lt;br /&gt;
An einer Universität studieren 2’504 Studierende Informatik.  &lt;br /&gt;
Davon belegen:&lt;br /&gt;
* 1’876 Java  &lt;br /&gt;
* 999 C  &lt;br /&gt;
* 345 Prolog  &lt;br /&gt;
* 876 sowohl Java als auch C  &lt;br /&gt;
* 231 C und Prolog  &lt;br /&gt;
* 290 Java und Prolog  &lt;br /&gt;
* 189 alle drei Kurse&lt;br /&gt;
&lt;br /&gt;
(a) Wie viele Studierende belegen keinen der drei Kurse?&lt;br /&gt;
&lt;br /&gt;
|U| = 2’504  &lt;br /&gt;
|A ∪ B ∪ C| = 1’876 + 999 + 345 − 876 − 231 − 290 + 189 = 2’012  &lt;br /&gt;
→ Studierende ohne Kurs = 2’504 − 2’012 = 492&lt;br /&gt;
&lt;br /&gt;
(b) Wie viele belegen genau einen Kurs?&lt;br /&gt;
&lt;br /&gt;
= |A| + |B| + |C| − 2·(|A ∩ B| + |A ∩ C| + |B ∩ C|) + 3·|A ∩ B ∩ C|  &lt;br /&gt;
= 1’876 + 999 + 345 − 2·(876 + 231 + 290) + 3·189 = 1’002&lt;br /&gt;
&lt;br /&gt;
== Bedeutung ==&lt;br /&gt;
Das Einschluss-Ausschluss-Prinzip ist ein zentrales Werkzeug:&lt;br /&gt;
* zur Bestimmung der Kardinalität von Vereinigungen  &lt;br /&gt;
* in Kombinatorik, Statistik und Wahrscheinlichkeitstheorie  &lt;br /&gt;
* für logische Vereinfachungen in der Informatik (z. B. Boolesche Algebra)&lt;br /&gt;
&lt;br /&gt;
== Zusammenfassung ==&lt;br /&gt;
* Eine Menge ist endlich, wenn sie eine abzählbare Anzahl von Elementen hat.  &lt;br /&gt;
* |A ∪ B| = |A| + |B| − |A ∩ B| korrigiert doppelte Zählung.  &lt;br /&gt;
* Das Einschluss-Ausschluss-Prinzip erweitert diese Idee auf mehrere Mengen.  &lt;br /&gt;
* In der Informatik hilft es beim Zählen von Zuständen, Kombinationen und logischen Fällen.&lt;br /&gt;
&lt;br /&gt;
[[Category:Set Theory (Mengenlehre)]]&lt;/div&gt;</summary>
		<author><name>Bfh-sts</name></author>
	</entry>
	<entry>
		<id>https://bsccs.stoney-wiki.com/w/index.php?title=Endliche_Mengen_%26_Einschluss-Ausschluss-Prinzip&amp;diff=137</id>
		<title>Endliche Mengen &amp; Einschluss-Ausschluss-Prinzip</title>
		<link rel="alternate" type="text/html" href="https://bsccs.stoney-wiki.com/w/index.php?title=Endliche_Mengen_%26_Einschluss-Ausschluss-Prinzip&amp;diff=137"/>
		<updated>2025-10-27T08:14:11Z</updated>

		<summary type="html">&lt;p&gt;Bfh-sts: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Endliche Mengen und das Einschluss-Ausschluss-Prinzip =&lt;br /&gt;
Viele praktische Probleme befassen sich mit endlichen Mengen, also Mengen mit abzählbarer Anzahl von Elementen.  &lt;br /&gt;
Für solche Mengen spielt das Zählen von Elementen und Überschneidungen eine zentrale Rolle.&lt;br /&gt;
&lt;br /&gt;
== Endliche und unendliche Mengen ==&lt;br /&gt;
Eine Menge heisst endlich, wenn sie genau *m* verschiedene Elemente enthält, wobei *m* eine natürliche Zahl ist.  &lt;br /&gt;
Sonst heisst sie unendlich.&lt;br /&gt;
&lt;br /&gt;
Beispiele:&lt;br /&gt;
* ∅ → endlich, da keine Elemente  &lt;br /&gt;
* Alphabet = {A, B, …, Z} → endlich  &lt;br /&gt;
* ℕ = {1, 2, 3, 4, …} → unendlich&lt;br /&gt;
&lt;br /&gt;
Die Anzahl der Elemente einer endlichen Menge A wird mit |A| bezeichnet.&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
 A = {1, 2, 3, 4} → |A| = 4&lt;br /&gt;
&lt;br /&gt;
== Vereinigung endlicher Mengen ==&lt;br /&gt;
Sind A und B endlich, so ist auch A ∪ B endlich.  &lt;br /&gt;
Dabei gilt die Grundformel:&lt;br /&gt;
&lt;br /&gt;
 |A ∪ B| = |A| + |B| − |A ∩ B|&lt;br /&gt;
&lt;br /&gt;
Diese Formel korrigiert die doppelte Zählung der Schnittmenge.&lt;br /&gt;
&lt;br /&gt;
=== Beispiel ===&lt;br /&gt;
A = {1, 2, 3, 4}, B = {3, 4, 5, 6}  &lt;br /&gt;
|A| = 4, |B| = 4, |A ∩ B| = 2  &lt;br /&gt;
→ |A ∪ B| = 4 + 4 − 2 = 6  &lt;br /&gt;
A ∪ B = {1, 2, 3, 4, 5, 6}&lt;br /&gt;
&lt;br /&gt;
== Herleitung der Formel ==&lt;br /&gt;
Die Mengen A und B können als drei disjunkte Teilmengen betrachtet werden:&lt;br /&gt;
* A \ (A ∩ B)&lt;br /&gt;
* A ∩ B&lt;br /&gt;
* B \ (A ∩ B)&lt;br /&gt;
&lt;br /&gt;
Da diese drei Mengen keine Überschneidung haben, gilt:&lt;br /&gt;
 |A ∪ B| = |A \ (A ∩ B)| + |A ∩ B| + |B \ (A ∩ B)|&lt;br /&gt;
&lt;br /&gt;
Daraus folgt:&lt;br /&gt;
 |A ∪ B| = |A| + |B| − |A ∩ B|&lt;br /&gt;
&lt;br /&gt;
== Erweiterung auf drei Mengen ==&lt;br /&gt;
Für drei endliche Mengen A, B, C gilt die Einschluss-Ausschluss-Formel:&lt;br /&gt;
&lt;br /&gt;
 |A ∪ B ∪ C| = |A| + |B| + |C| − |A ∩ B| − |A ∩ C| − |B ∩ C| + |A ∩ B ∩ C|&lt;br /&gt;
&lt;br /&gt;
Diese Formel berücksichtigt alle Überschneidungen korrekt:&lt;br /&gt;
* Einfache Mengen: +  &lt;br /&gt;
* Doppelte Schnittmengen: −  &lt;br /&gt;
* Dreifache Schnittmenge: +&lt;br /&gt;
&lt;br /&gt;
== Erweiterung auf vier Mengen ==&lt;br /&gt;
Für A, B, C, D gilt:&lt;br /&gt;
&lt;br /&gt;
 |A ∪ B ∪ C ∪ D| =  &lt;br /&gt;
 |A| + |B| + |C| + |D|  &lt;br /&gt;
 − (|A ∩ B| + |A ∩ C| + |A ∩ D| + |B ∩ C| + |B ∩ D| + |C ∩ D|)  &lt;br /&gt;
 + (|A ∩ B ∩ C| + |A ∩ B ∩ D| + |A ∩ C ∩ D| + |B ∩ C ∩ D|)  &lt;br /&gt;
 − |A ∩ B ∩ C ∩ D|&lt;br /&gt;
&lt;br /&gt;
== Beispiel: Anwendung auf Studierende ==&lt;br /&gt;
An einer Universität studieren 2’504 Studierende Informatik.  &lt;br /&gt;
Davon belegen:&lt;br /&gt;
* 1’876 Java  &lt;br /&gt;
* 999 C  &lt;br /&gt;
* 345 Prolog  &lt;br /&gt;
* 876 sowohl Java als auch C  &lt;br /&gt;
* 231 C und Prolog  &lt;br /&gt;
* 290 Java und Prolog  &lt;br /&gt;
* 189 alle drei Kurse&lt;br /&gt;
&lt;br /&gt;
(a) Wie viele Studierende belegen keinen der drei Kurse?&lt;br /&gt;
&lt;br /&gt;
|U| = 2’504  &lt;br /&gt;
|A ∪ B ∪ C| = 1’876 + 999 + 345 − 876 − 231 − 290 + 189 = 2’012  &lt;br /&gt;
→ Studierende ohne Kurs = 2’504 − 2’012 = 492&lt;br /&gt;
&lt;br /&gt;
(b) Wie viele belegen genau einen Kurs?&lt;br /&gt;
&lt;br /&gt;
= |A| + |B| + |C| − 2·(|A ∩ B| + |A ∩ C| + |B ∩ C|) + 3·|A ∩ B ∩ C|  &lt;br /&gt;
= 1’876 + 999 + 345 − 2·(876 + 231 + 290) + 3·189 = 1’002&lt;br /&gt;
&lt;br /&gt;
== Bedeutung ==&lt;br /&gt;
Das Einschluss-Ausschluss-Prinzip ist ein zentrales Werkzeug:&lt;br /&gt;
* zur Bestimmung der Kardinalität von Vereinigungen  &lt;br /&gt;
* in Kombinatorik, Statistik und Wahrscheinlichkeitstheorie  &lt;br /&gt;
* für logische Vereinfachungen in der Informatik (z. B. Boolesche Algebra)&lt;br /&gt;
&lt;br /&gt;
== Zusammenfassung ==&lt;br /&gt;
* Eine Menge ist endlich, wenn sie eine abzählbare Anzahl von Elementen hat.  &lt;br /&gt;
* |A ∪ B| = |A| + |B| − |A ∩ B| korrigiert doppelte Zählung.  &lt;br /&gt;
* Das Einschluss-Ausschluss-Prinzip erweitert diese Idee auf mehrere Mengen.  &lt;br /&gt;
* In der Informatik hilft es beim Zählen von Zuständen, Kombinationen und logischen Fällen.&lt;br /&gt;
&lt;br /&gt;
[[Category:Set Theory (Mengenlehre)]]&lt;/div&gt;</summary>
		<author><name>Bfh-sts</name></author>
	</entry>
	<entry>
		<id>https://bsccs.stoney-wiki.com/w/index.php?title=Geordnete_Paare,_n-Tupel_%26_kartesische_Produkte&amp;diff=136</id>
		<title>Geordnete Paare, n-Tupel &amp; kartesische Produkte</title>
		<link rel="alternate" type="text/html" href="https://bsccs.stoney-wiki.com/w/index.php?title=Geordnete_Paare,_n-Tupel_%26_kartesische_Produkte&amp;diff=136"/>
		<updated>2025-10-27T08:13:09Z</updated>

		<summary type="html">&lt;p&gt;Bfh-sts: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Geordnete Paare, n-Tupel und kartesische Produkte =&lt;br /&gt;
In der Mengenlehre spielt die Reihenfolge der Elemente normalerweise keine Rolle.  &lt;br /&gt;
Doch in vielen Anwendungen – etwa bei Funktionen oder Datenstrukturen – ist sie entscheidend.  &lt;br /&gt;
Dazu dienen geordnete Paare und Tupel.&lt;br /&gt;
&lt;br /&gt;
== Geordnete Paare ==&lt;br /&gt;
Ein geordnetes Paar besteht aus zwei Elementen, bei denen die Reihenfolge eine Rolle spielt.  &lt;br /&gt;
Notation:&lt;br /&gt;
 (a, b)&lt;br /&gt;
&lt;br /&gt;
Das erste Element ist a, das zweite ist b.  &lt;br /&gt;
Zwei geordnete Paare (a, b) und (c, d) sind gleich, genau dann, wenn gilt:&lt;br /&gt;
 a = c und b = d&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
* (1, 2) ≠ (2, 1)&lt;br /&gt;
* (x, y) = (x, y)  &lt;br /&gt;
* (a, b) ≠ (b, a), sofern a ≠ b&lt;br /&gt;
&lt;br /&gt;
== Kartesisches Produkt ==&lt;br /&gt;
Das kartesische Produkt zweier Mengen A und B ist die Menge aller geordneten Paare (x, y) mit x ∈ A und y ∈ B.&lt;br /&gt;
&lt;br /&gt;
Formale Definition:&lt;br /&gt;
 A × B := {(x, y) : x ∈ A ∧ y ∈ B}&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
 A = {1, 2}  &lt;br /&gt;
 B = {a, b, c}&lt;br /&gt;
&lt;br /&gt;
Dann gilt:&lt;br /&gt;
 A × B = {(1, a), (1, b), (1, c), (2, a), (2, b), (2, c)}  &lt;br /&gt;
 B × A = {(a, 1), (a, 2), (b, 1), (b, 2), (c, 1), (c, 2)}  &lt;br /&gt;
 A² = A × A = {(1, 1), (1, 2), (2, 1), (2, 2)}&lt;br /&gt;
&lt;br /&gt;
== Anzahl der Elemente ==&lt;br /&gt;
Wenn A und B endlich sind, gilt:&lt;br /&gt;
 |A × B| = |A| · |B|&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
 A = {1, 2, 3}, B = {a, b}  &lt;br /&gt;
 |A × B| = 3 · 2 = 6&lt;br /&gt;
&lt;br /&gt;
== n-Tupel ==&lt;br /&gt;
Ein n-Tupel ist eine geordnete Liste von n Elementen:&lt;br /&gt;
 (a₁, a₂, …, aₙ)&lt;br /&gt;
&lt;br /&gt;
Die Reihenfolge der Elemente ist wesentlich.&lt;br /&gt;
&lt;br /&gt;
Zwei n-Tupel (a₁, a₂, …, aₙ) und (b₁, b₂, …, bₙ) sind gleich, wenn:&lt;br /&gt;
 a₁ = b₁ ∧ a₂ = b₂ ∧ … ∧ aₙ = bₙ&lt;br /&gt;
&lt;br /&gt;
Beispiele:&lt;br /&gt;
* (a, b, c) → Tripel  &lt;br /&gt;
* (a, b, c, d) → Quadrupel&lt;br /&gt;
&lt;br /&gt;
== Kartesisches Produkt mehrerer Mengen ==&lt;br /&gt;
Für n Mengen A₁, A₂, …, Aₙ gilt:&lt;br /&gt;
 A₁ × A₂ × … × Aₙ = {(a₁, a₂, …, aₙ) : aᵢ ∈ Aᵢ für alle i}&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
 A = {a, b}, B = {x}, C = {1, 2, 3}&lt;br /&gt;
&lt;br /&gt;
 A × B × C = {&lt;br /&gt;
 (a, x, 1), (a, x, 2), (a, x, 3),&lt;br /&gt;
 (b, x, 1), (b, x, 2), (b, x, 3)&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== Kombinatorische Überlegungen ==&lt;br /&gt;
Wenn |A₁| = n₁, |A₂| = n₂, …, |Aₙ| = nₙ, dann gilt:&lt;br /&gt;
 |A₁ × A₂ × … × Aₙ| = n₁ · n₂ · … · nₙ&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
 Drei Mengen:&lt;br /&gt;
* A = {rot, blau}&lt;br /&gt;
* B = {rund, eckig}&lt;br /&gt;
* C = {klein, gross}&lt;br /&gt;
&lt;br /&gt;
→ |A × B × C| = 2 · 2 · 2 = 8 Kombinationen.&lt;br /&gt;
&lt;br /&gt;
== Variation der Elemente ==&lt;br /&gt;
Bei einer Menge aus n Zahlen (1, 2, …, n):&lt;br /&gt;
* Wenn jede Zahl nur einmal vorkommen darf → n! mögliche Tupel (Permutationen)&lt;br /&gt;
* Wenn jede Zahl beliebig oft vorkommen darf → nⁿ mögliche Tupel&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
Kartesische Produkte und Tupel bilden die Grundlage für:&lt;br /&gt;
* Funktionen: eine Funktion ist eine Teilmenge von A × B  &lt;br /&gt;
* Datenbanken: Tabellenzeilen entsprechen n-Tupeln  &lt;br /&gt;
* Vektorräume: Elemente sind n-Tupel reeller Zahlen&lt;br /&gt;
&lt;br /&gt;
== Zusammenfassung ==&lt;br /&gt;
* Reihenfolge spielt bei geordneten Paaren und Tupeln eine Rolle.  &lt;br /&gt;
* Das kartesische Produkt A × B kombiniert alle möglichen Paare (x, y).  &lt;br /&gt;
* |A × B| = |A| · |B| bei endlichen Mengen.  &lt;br /&gt;
* Das Konzept erweitert sich auf n-Tupel.  &lt;br /&gt;
* Anwendungen: Funktionen, Datenstrukturen, Relationen, Kombinatorik.&lt;br /&gt;
&lt;br /&gt;
[[Category:Set Theory (Mengenlehre)]]&lt;/div&gt;</summary>
		<author><name>Bfh-sts</name></author>
	</entry>
	<entry>
		<id>https://bsccs.stoney-wiki.com/w/index.php?title=Mengensysteme,_Potenzmenge_%26_Partitionen&amp;diff=135</id>
		<title>Mengensysteme, Potenzmenge &amp; Partitionen</title>
		<link rel="alternate" type="text/html" href="https://bsccs.stoney-wiki.com/w/index.php?title=Mengensysteme,_Potenzmenge_%26_Partitionen&amp;diff=135"/>
		<updated>2025-10-27T08:12:25Z</updated>

		<summary type="html">&lt;p&gt;Bfh-sts: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Mengensysteme, Potenzmenge und Partitionen =&lt;br /&gt;
Neben einzelnen Mengen betrachtet man oft Systeme von Mengen – also Mengen, deren Elemente wiederum Mengen sind.  &lt;br /&gt;
Dazu gehören wichtige Begriffe wie Potenzmenge und Partition.&lt;br /&gt;
&lt;br /&gt;
== Mengensystem ==&lt;br /&gt;
Eine Menge von Mengen heisst ein Mengensystem.  &lt;br /&gt;
Beispiel:&lt;br /&gt;
 S = { {1, 2}, {3, 4}, {5} }&lt;br /&gt;
&lt;br /&gt;
Jedes Element von S ist selbst eine Menge.&lt;br /&gt;
&lt;br /&gt;
== Potenzmenge ==&lt;br /&gt;
Die Potenzmenge einer Menge S ist die Menge aller Teilmengen von S.  &lt;br /&gt;
Notation:&lt;br /&gt;
 P(S) = {A : A ⊆ S}&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
 Sei S = {1, 2}  &lt;br /&gt;
 Dann gilt:&lt;br /&gt;
 P(S) = {∅, {1}, {2}, {1, 2}}&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
* A = ∅ → P(A) = {∅}&lt;br /&gt;
* B = {a} → P(B) = {∅, {a}}&lt;br /&gt;
* C = {a, b} → P(C) = {∅, {a}, {b}, {a, b}}&lt;br /&gt;
&lt;br /&gt;
Allgemein gilt:&lt;br /&gt;
 Eine Menge mit n Elementen besitzt 2ⁿ Teilmengen.&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
 D = {a, b, c, d} → |P(D)| = 2⁴ = 16&lt;br /&gt;
&lt;br /&gt;
== Beispielaufgaben ==&lt;br /&gt;
1. Bestimme die Potenzmenge von E = {a, b, c, d}.  &lt;br /&gt;
   → 16 Teilmengen  &lt;br /&gt;
2. Wieviele Teilmengen besitzt eine Menge mit 5 Elementen?  &lt;br /&gt;
   → 2⁵ = 32&lt;br /&gt;
&lt;br /&gt;
== Partition ==&lt;br /&gt;
Eine Partition einer Menge S ist eine Aufteilung von S in nicht-leere, disjunkte Teilmengen, deren Vereinigung S ergibt.&lt;br /&gt;
&lt;br /&gt;
Formal:&lt;br /&gt;
Eine Familie {Aᵢ} von Teilmengen von S ist eine Partition, wenn gilt:&lt;br /&gt;
1. Aᵢ ≠ ∅ für alle i  &lt;br /&gt;
2. ⋃ Aᵢ = S  &lt;br /&gt;
3. Aᵢ ∩ Aⱼ = ∅ für alle i ≠ j  &lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
S = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}&lt;br /&gt;
&lt;br /&gt;
(a) {∅, {1,2}, {3,4,5}, {6,7,8,9,10}} → keine Partition, da ∅ enthalten  &lt;br /&gt;
(b) {{1,2,3,4}, {4,5,6}, {7,8,9,10}} → keine Partition, da sich {1,2,3,4} und {4,5,6} überschneiden  &lt;br /&gt;
(c) {{2,3,4,5}, {6,7,8}, {9,10}} → Partition von {2,…,10}, nicht von S  &lt;br /&gt;
(d) {{1,2,3}, {4,5,6}, {7,8,9,10}} → gültige Partition von S&lt;br /&gt;
&lt;br /&gt;
== Zusammenhang zwischen Potenzmenge und Partition ==&lt;br /&gt;
* Die Potenzmenge enthält alle möglichen Kombinationen von Teilmengen.  &lt;br /&gt;
* Eine Partition wählt aus diesen Teilmengen eine besondere Kombination, bei der:&lt;br /&gt;
  - keine Schnittmenge entsteht  &lt;br /&gt;
  - die Vereinigung wieder die Ausgangsmenge ergibt&lt;br /&gt;
&lt;br /&gt;
== Visualisierung ==&lt;br /&gt;
Ein Venn-Diagramm kann Partitionen als nicht überlappende Flächen innerhalb der Universalmenge darstellen.  &lt;br /&gt;
Jede Teilmenge repräsentiert ein disjunktes „Teilgebiet“.&lt;br /&gt;
&lt;br /&gt;
== Zusammenfassung ==&lt;br /&gt;
* Mengensystem: Menge von Mengen.  &lt;br /&gt;
* Potenzmenge P(S): Menge aller Teilmengen von S, mit |P(S)| = 2ⁿ.  &lt;br /&gt;
* Partition: disjunkte, nicht-leere Teilmengen, deren Vereinigung S ergibt.  &lt;br /&gt;
* Potenzmengen und Partitionen sind zentrale Konzepte in Kombinatorik und Wahrscheinlichkeitsrechnung.&lt;br /&gt;
&lt;br /&gt;
[[Category:Set Theory (Mengenlehre)]]&lt;/div&gt;</summary>
		<author><name>Bfh-sts</name></author>
	</entry>
	<entry>
		<id>https://bsccs.stoney-wiki.com/w/index.php?title=Mengenalgebra_%26_Dualit%C3%A4t:_Gesetze_und_de_Morgan&amp;diff=134</id>
		<title>Mengenalgebra &amp; Dualität: Gesetze und de Morgan</title>
		<link rel="alternate" type="text/html" href="https://bsccs.stoney-wiki.com/w/index.php?title=Mengenalgebra_%26_Dualit%C3%A4t:_Gesetze_und_de_Morgan&amp;diff=134"/>
		<updated>2025-10-27T08:12:03Z</updated>

		<summary type="html">&lt;p&gt;Bfh-sts: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Mengenalgebra und Dualität =&lt;br /&gt;
Die in der Mengenlehre definierten Operationen (Vereinigung, Durchschnitt, Komplement, Differenz) folgen bestimmten algebraischen Gesetzen.  &lt;br /&gt;
Diese Gesetze erlauben es, Ausdrücke zu vereinfachen oder zu beweisen, dass zwei Mengenoperationen äquivalent sind.&lt;br /&gt;
&lt;br /&gt;
== Grundlegende Gesetze der Mengenalgebra ==&lt;br /&gt;
Für beliebige Mengen A, B, C und die Universalmenge U gelten folgende Gesetze:&lt;br /&gt;
&lt;br /&gt;
=== 1. Idempotenz ===&lt;br /&gt;
A ∪ A = A  &lt;br /&gt;
A ∩ A = A  &lt;br /&gt;
&lt;br /&gt;
Das Zusammenfassen oder Schneiden einer Menge mit sich selbst ändert nichts.&lt;br /&gt;
&lt;br /&gt;
=== 2. Assoziativgesetz ===&lt;br /&gt;
(A ∪ B) ∪ C = A ∪ (B ∪ C)  &lt;br /&gt;
(A ∩ B) ∩ C = A ∩ (B ∩ C)&lt;br /&gt;
&lt;br /&gt;
Die Reihenfolge der Ausführung spielt keine Rolle.&lt;br /&gt;
&lt;br /&gt;
=== 3. Kommutativgesetz ===&lt;br /&gt;
A ∪ B = B ∪ A  &lt;br /&gt;
A ∩ B = B ∩ A  &lt;br /&gt;
&lt;br /&gt;
Die Reihenfolge der Mengen kann vertauscht werden.&lt;br /&gt;
&lt;br /&gt;
=== 4. Distributivgesetz ===&lt;br /&gt;
A ∪ (B ∩ C) = (A ∪ B) ∩ (A ∪ C)  &lt;br /&gt;
A ∩ (B ∪ C) = (A ∩ B) ∪ (A ∩ C)&lt;br /&gt;
&lt;br /&gt;
Dies erlaubt, Ausdrücke zu „verteilen“, ähnlich wie beim Distributivgesetz der Algebra.&lt;br /&gt;
&lt;br /&gt;
=== 5. Identitätsgesetz ===&lt;br /&gt;
A ∪ ∅ = A  &lt;br /&gt;
A ∩ U = A  &lt;br /&gt;
&lt;br /&gt;
∅ und U verhalten sich wie 0 und 1 in der Arithmetik.&lt;br /&gt;
&lt;br /&gt;
=== 6. Null- und Einheitsgesetz ===&lt;br /&gt;
A ∪ U = U  &lt;br /&gt;
A ∩ ∅ = ∅  &lt;br /&gt;
&lt;br /&gt;
Alles mit der Universalmenge vereinigt ergibt U;  &lt;br /&gt;
alles mit der leeren Menge geschnitten ergibt ∅.&lt;br /&gt;
&lt;br /&gt;
=== 7. Gesetz vom doppelten Komplement ===&lt;br /&gt;
(Aᶜ)ᶜ = A  &lt;br /&gt;
&lt;br /&gt;
Das Komplement des Komplements ergibt wieder die ursprüngliche Menge.&lt;br /&gt;
&lt;br /&gt;
=== 8. Komplementgesetze ===&lt;br /&gt;
A ∪ Aᶜ = U  &lt;br /&gt;
A ∩ Aᶜ = ∅  &lt;br /&gt;
&lt;br /&gt;
Eine Menge und ihr Komplement decken die Universalmenge vollständig ab, ohne sich zu überschneiden.&lt;br /&gt;
&lt;br /&gt;
=== 9. Komplemente der Universal- und Leermenge ===&lt;br /&gt;
Uᶜ = ∅  &lt;br /&gt;
∅ᶜ = U&lt;br /&gt;
&lt;br /&gt;
=== 10. de Morgan’sche Gesetze ===&lt;br /&gt;
(A ∪ B)ᶜ = Aᶜ ∩ Bᶜ  &lt;br /&gt;
(A ∩ B)ᶜ = Aᶜ ∪ Bᶜ  &lt;br /&gt;
&lt;br /&gt;
Diese sind besonders wichtig, da sie eine enge Verbindung zur Aussagenlogik zeigen:&lt;br /&gt;
* Das Komplement einer Vereinigung ist der Durchschnitt der Komplemente.  &lt;br /&gt;
* Das Komplement eines Durchschnitts ist die Vereinigung der Komplemente.&lt;br /&gt;
&lt;br /&gt;
== Beispiel: Beweis des de Morgan Gesetzes ==&lt;br /&gt;
Beweise (A ∩ B)ᶜ = Aᶜ ∪ Bᶜ mithilfe der Logik:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;text&#039;&amp;gt;&lt;br /&gt;
| Aussage      | Logisches Pendant      |&lt;br /&gt;
|--------------|------------------------|&lt;br /&gt;
| x ∈ (A ∩ B)ᶜ | ¬(x ∈ A ∧ x ∈ B)       |&lt;br /&gt;
|              | ⇔ (¬x ∈ A) ∨ (¬x ∈ B) |&lt;br /&gt;
|              | ⇔ x ∈ Aᶜ ∨ x ∈ Bᶜ     |&lt;br /&gt;
| ⇒           | x ∈ (Aᶜ ∪ Bᶜ)          |&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Daraus folgt: (A ∩ B)ᶜ = Aᶜ ∪ Bᶜ&lt;br /&gt;
&lt;br /&gt;
== Dualitätsprinzip ==&lt;br /&gt;
Die Gesetze der Mengenlehre treten paarweise auf.  &lt;br /&gt;
Tauscht man überall&lt;br /&gt;
* ∪ ↔ ∩  &lt;br /&gt;
* U ↔ ∅  &lt;br /&gt;
&lt;br /&gt;
so erhält man den dualen Ausdruck.&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
* Gesetz A ∪ ∅ = A hat als Dual A ∩ U = A  &lt;br /&gt;
* de Morgan’s Gesetz (A ∪ B)ᶜ = Aᶜ ∩ Bᶜ hat als Dual (A ∩ B)ᶜ = Aᶜ ∪ Bᶜ&lt;br /&gt;
&lt;br /&gt;
Dieses Prinzip zeigt die symmetrische Struktur der Mengenoperationen.&lt;br /&gt;
&lt;br /&gt;
== Visualisierung ==&lt;br /&gt;
Venn-Diagramme verdeutlichen diese Gesetze grafisch:  &lt;br /&gt;
* Die Vereinigungen und Durchschnitte entsprechen farblich markierten Bereichen.  &lt;br /&gt;
* Komplementbereiche sind die Flächen ausserhalb der betrachteten Menge.&lt;br /&gt;
&lt;br /&gt;
== Zusammenfassung ==&lt;br /&gt;
* Mengenoperationen folgen festen algebraischen Gesetzen.  &lt;br /&gt;
* Diese Gesetze entsprechen den Regeln der Aussagenlogik.  &lt;br /&gt;
* Das Dualitätsprinzip erlaubt, aus jedem Gesetz sein komplementäres Gegenstück zu bilden.  &lt;br /&gt;
* Die de Morgan’schen Gesetze sind besonders zentral für logische und rechnerische Anwendungen.&lt;br /&gt;
&lt;br /&gt;
[[Category:Set Theory (Mengenlehre)]]&lt;/div&gt;</summary>
		<author><name>Bfh-sts</name></author>
	</entry>
	<entry>
		<id>https://bsccs.stoney-wiki.com/w/index.php?title=Mengenalgebra_%26_Dualit%C3%A4t:_Gesetze_und_de_Morgan&amp;diff=133</id>
		<title>Mengenalgebra &amp; Dualität: Gesetze und de Morgan</title>
		<link rel="alternate" type="text/html" href="https://bsccs.stoney-wiki.com/w/index.php?title=Mengenalgebra_%26_Dualit%C3%A4t:_Gesetze_und_de_Morgan&amp;diff=133"/>
		<updated>2025-10-27T08:11:36Z</updated>

		<summary type="html">&lt;p&gt;Bfh-sts: /* Beispiel: Beweis des de Morgan Gesetzes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Mengenalgebra und Dualität =&lt;br /&gt;
Die in der Mengenlehre definierten Operationen (Vereinigung, Durchschnitt, Komplement, Differenz) folgen bestimmten **algebraischen Gesetzen**.  &lt;br /&gt;
Diese Gesetze erlauben es, Ausdrücke zu vereinfachen oder zu beweisen, dass zwei Mengenoperationen äquivalent sind.&lt;br /&gt;
&lt;br /&gt;
== Grundlegende Gesetze der Mengenalgebra ==&lt;br /&gt;
Für beliebige Mengen A, B, C und die Universalmenge U gelten folgende Gesetze:&lt;br /&gt;
&lt;br /&gt;
=== 1. Idempotenz ===&lt;br /&gt;
A ∪ A = A  &lt;br /&gt;
A ∩ A = A  &lt;br /&gt;
&lt;br /&gt;
Das Zusammenfassen oder Schneiden einer Menge mit sich selbst ändert nichts.&lt;br /&gt;
&lt;br /&gt;
=== 2. Assoziativgesetz ===&lt;br /&gt;
(A ∪ B) ∪ C = A ∪ (B ∪ C)  &lt;br /&gt;
(A ∩ B) ∩ C = A ∩ (B ∩ C)&lt;br /&gt;
&lt;br /&gt;
Die Reihenfolge der Ausführung spielt keine Rolle.&lt;br /&gt;
&lt;br /&gt;
=== 3. Kommutativgesetz ===&lt;br /&gt;
A ∪ B = B ∪ A  &lt;br /&gt;
A ∩ B = B ∩ A  &lt;br /&gt;
&lt;br /&gt;
Die Reihenfolge der Mengen kann vertauscht werden.&lt;br /&gt;
&lt;br /&gt;
=== 4. Distributivgesetz ===&lt;br /&gt;
A ∪ (B ∩ C) = (A ∪ B) ∩ (A ∪ C)  &lt;br /&gt;
A ∩ (B ∪ C) = (A ∩ B) ∪ (A ∩ C)&lt;br /&gt;
&lt;br /&gt;
Dies erlaubt, Ausdrücke zu „verteilen“, ähnlich wie beim Distributivgesetz der Algebra.&lt;br /&gt;
&lt;br /&gt;
=== 5. Identitätsgesetz ===&lt;br /&gt;
A ∪ ∅ = A  &lt;br /&gt;
A ∩ U = A  &lt;br /&gt;
&lt;br /&gt;
∅ und U verhalten sich wie 0 und 1 in der Arithmetik.&lt;br /&gt;
&lt;br /&gt;
=== 6. Null- und Einheitsgesetz ===&lt;br /&gt;
A ∪ U = U  &lt;br /&gt;
A ∩ ∅ = ∅  &lt;br /&gt;
&lt;br /&gt;
Alles mit der Universalmenge vereinigt ergibt U;  &lt;br /&gt;
alles mit der leeren Menge geschnitten ergibt ∅.&lt;br /&gt;
&lt;br /&gt;
=== 7. Gesetz vom doppelten Komplement ===&lt;br /&gt;
(Aᶜ)ᶜ = A  &lt;br /&gt;
&lt;br /&gt;
Das Komplement des Komplements ergibt wieder die ursprüngliche Menge.&lt;br /&gt;
&lt;br /&gt;
=== 8. Komplementgesetze ===&lt;br /&gt;
A ∪ Aᶜ = U  &lt;br /&gt;
A ∩ Aᶜ = ∅  &lt;br /&gt;
&lt;br /&gt;
Eine Menge und ihr Komplement decken die Universalmenge vollständig ab, ohne sich zu überschneiden.&lt;br /&gt;
&lt;br /&gt;
=== 9. Komplemente der Universal- und Leermenge ===&lt;br /&gt;
Uᶜ = ∅  &lt;br /&gt;
∅ᶜ = U&lt;br /&gt;
&lt;br /&gt;
=== 10. de Morgan’sche Gesetze ===&lt;br /&gt;
(A ∪ B)ᶜ = Aᶜ ∩ Bᶜ  &lt;br /&gt;
(A ∩ B)ᶜ = Aᶜ ∪ Bᶜ  &lt;br /&gt;
&lt;br /&gt;
Diese sind besonders wichtig, da sie eine enge Verbindung zur Aussagenlogik zeigen:&lt;br /&gt;
* Das Komplement einer Vereinigung ist der Durchschnitt der Komplemente.  &lt;br /&gt;
* Das Komplement eines Durchschnitts ist die Vereinigung der Komplemente.&lt;br /&gt;
&lt;br /&gt;
== Beispiel: Beweis des de Morgan Gesetzes ==&lt;br /&gt;
Beweise (A ∩ B)ᶜ = Aᶜ ∪ Bᶜ mithilfe der Logik:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;text&#039;&amp;gt;&lt;br /&gt;
| Aussage      | Logisches Pendant      |&lt;br /&gt;
|--------------|------------------------|&lt;br /&gt;
| x ∈ (A ∩ B)ᶜ | ¬(x ∈ A ∧ x ∈ B)       |&lt;br /&gt;
|              | ⇔ (¬x ∈ A) ∨ (¬x ∈ B) |&lt;br /&gt;
|              | ⇔ x ∈ Aᶜ ∨ x ∈ Bᶜ     |&lt;br /&gt;
| ⇒           | x ∈ (Aᶜ ∪ Bᶜ)          |&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Daraus folgt: (A ∩ B)ᶜ = Aᶜ ∪ Bᶜ&lt;br /&gt;
&lt;br /&gt;
== Dualitätsprinzip ==&lt;br /&gt;
Die Gesetze der Mengenlehre treten **paarweise** auf.  &lt;br /&gt;
Tauscht man überall&lt;br /&gt;
* ∪ ↔ ∩  &lt;br /&gt;
* U ↔ ∅  &lt;br /&gt;
&lt;br /&gt;
so erhält man den **dualen Ausdruck**.&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
* Gesetz A ∪ ∅ = A hat als Dual A ∩ U = A  &lt;br /&gt;
* de Morgan’s Gesetz (A ∪ B)ᶜ = Aᶜ ∩ Bᶜ hat als Dual (A ∩ B)ᶜ = Aᶜ ∪ Bᶜ&lt;br /&gt;
&lt;br /&gt;
Dieses Prinzip zeigt die **symmetrische Struktur** der Mengenoperationen.&lt;br /&gt;
&lt;br /&gt;
== Visualisierung ==&lt;br /&gt;
Venn-Diagramme verdeutlichen diese Gesetze grafisch:  &lt;br /&gt;
* Die Vereinigungen und Durchschnitte entsprechen farblich markierten Bereichen.  &lt;br /&gt;
* Komplementbereiche sind die Flächen ausserhalb der betrachteten Menge.&lt;br /&gt;
&lt;br /&gt;
== Zusammenfassung ==&lt;br /&gt;
* Mengenoperationen folgen festen algebraischen Gesetzen.  &lt;br /&gt;
* Diese Gesetze entsprechen den Regeln der Aussagenlogik.  &lt;br /&gt;
* Das **Dualitätsprinzip** erlaubt, aus jedem Gesetz sein komplementäres Gegenstück zu bilden.  &lt;br /&gt;
* Die **de Morgan’schen Gesetze** sind besonders zentral für logische und rechnerische Anwendungen.&lt;br /&gt;
&lt;br /&gt;
[[Category:Set Theory (Mengenlehre)]]&lt;/div&gt;</summary>
		<author><name>Bfh-sts</name></author>
	</entry>
	<entry>
		<id>https://bsccs.stoney-wiki.com/w/index.php?title=Mengenalgebra_%26_Dualit%C3%A4t:_Gesetze_und_de_Morgan&amp;diff=132</id>
		<title>Mengenalgebra &amp; Dualität: Gesetze und de Morgan</title>
		<link rel="alternate" type="text/html" href="https://bsccs.stoney-wiki.com/w/index.php?title=Mengenalgebra_%26_Dualit%C3%A4t:_Gesetze_und_de_Morgan&amp;diff=132"/>
		<updated>2025-10-27T08:10:42Z</updated>

		<summary type="html">&lt;p&gt;Bfh-sts: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Mengenalgebra und Dualität =&lt;br /&gt;
Die in der Mengenlehre definierten Operationen (Vereinigung, Durchschnitt, Komplement, Differenz) folgen bestimmten **algebraischen Gesetzen**.  &lt;br /&gt;
Diese Gesetze erlauben es, Ausdrücke zu vereinfachen oder zu beweisen, dass zwei Mengenoperationen äquivalent sind.&lt;br /&gt;
&lt;br /&gt;
== Grundlegende Gesetze der Mengenalgebra ==&lt;br /&gt;
Für beliebige Mengen A, B, C und die Universalmenge U gelten folgende Gesetze:&lt;br /&gt;
&lt;br /&gt;
=== 1. Idempotenz ===&lt;br /&gt;
A ∪ A = A  &lt;br /&gt;
A ∩ A = A  &lt;br /&gt;
&lt;br /&gt;
Das Zusammenfassen oder Schneiden einer Menge mit sich selbst ändert nichts.&lt;br /&gt;
&lt;br /&gt;
=== 2. Assoziativgesetz ===&lt;br /&gt;
(A ∪ B) ∪ C = A ∪ (B ∪ C)  &lt;br /&gt;
(A ∩ B) ∩ C = A ∩ (B ∩ C)&lt;br /&gt;
&lt;br /&gt;
Die Reihenfolge der Ausführung spielt keine Rolle.&lt;br /&gt;
&lt;br /&gt;
=== 3. Kommutativgesetz ===&lt;br /&gt;
A ∪ B = B ∪ A  &lt;br /&gt;
A ∩ B = B ∩ A  &lt;br /&gt;
&lt;br /&gt;
Die Reihenfolge der Mengen kann vertauscht werden.&lt;br /&gt;
&lt;br /&gt;
=== 4. Distributivgesetz ===&lt;br /&gt;
A ∪ (B ∩ C) = (A ∪ B) ∩ (A ∪ C)  &lt;br /&gt;
A ∩ (B ∪ C) = (A ∩ B) ∪ (A ∩ C)&lt;br /&gt;
&lt;br /&gt;
Dies erlaubt, Ausdrücke zu „verteilen“, ähnlich wie beim Distributivgesetz der Algebra.&lt;br /&gt;
&lt;br /&gt;
=== 5. Identitätsgesetz ===&lt;br /&gt;
A ∪ ∅ = A  &lt;br /&gt;
A ∩ U = A  &lt;br /&gt;
&lt;br /&gt;
∅ und U verhalten sich wie 0 und 1 in der Arithmetik.&lt;br /&gt;
&lt;br /&gt;
=== 6. Null- und Einheitsgesetz ===&lt;br /&gt;
A ∪ U = U  &lt;br /&gt;
A ∩ ∅ = ∅  &lt;br /&gt;
&lt;br /&gt;
Alles mit der Universalmenge vereinigt ergibt U;  &lt;br /&gt;
alles mit der leeren Menge geschnitten ergibt ∅.&lt;br /&gt;
&lt;br /&gt;
=== 7. Gesetz vom doppelten Komplement ===&lt;br /&gt;
(Aᶜ)ᶜ = A  &lt;br /&gt;
&lt;br /&gt;
Das Komplement des Komplements ergibt wieder die ursprüngliche Menge.&lt;br /&gt;
&lt;br /&gt;
=== 8. Komplementgesetze ===&lt;br /&gt;
A ∪ Aᶜ = U  &lt;br /&gt;
A ∩ Aᶜ = ∅  &lt;br /&gt;
&lt;br /&gt;
Eine Menge und ihr Komplement decken die Universalmenge vollständig ab, ohne sich zu überschneiden.&lt;br /&gt;
&lt;br /&gt;
=== 9. Komplemente der Universal- und Leermenge ===&lt;br /&gt;
Uᶜ = ∅  &lt;br /&gt;
∅ᶜ = U&lt;br /&gt;
&lt;br /&gt;
=== 10. de Morgan’sche Gesetze ===&lt;br /&gt;
(A ∪ B)ᶜ = Aᶜ ∩ Bᶜ  &lt;br /&gt;
(A ∩ B)ᶜ = Aᶜ ∪ Bᶜ  &lt;br /&gt;
&lt;br /&gt;
Diese sind besonders wichtig, da sie eine enge Verbindung zur Aussagenlogik zeigen:&lt;br /&gt;
* Das Komplement einer Vereinigung ist der Durchschnitt der Komplemente.  &lt;br /&gt;
* Das Komplement eines Durchschnitts ist die Vereinigung der Komplemente.&lt;br /&gt;
&lt;br /&gt;
== Beispiel: Beweis des de Morgan Gesetzes ==&lt;br /&gt;
Beweise (A ∩ B)ᶜ = Aᶜ ∪ Bᶜ mithilfe der Logik:&lt;br /&gt;
&lt;br /&gt;
| Aussage | Logisches Pendant |&lt;br /&gt;
|----------|--------------------|&lt;br /&gt;
| x ∈ (A ∩ B)ᶜ | ¬(x ∈ A ∧ x ∈ B) |&lt;br /&gt;
|             | ⇔ (¬x ∈ A) ∨ (¬x ∈ B) |&lt;br /&gt;
|             | ⇔ x ∈ Aᶜ ∨ x ∈ Bᶜ |&lt;br /&gt;
| ⇒           | x ∈ (Aᶜ ∪ Bᶜ) |&lt;br /&gt;
&lt;br /&gt;
Daraus folgt: (A ∩ B)ᶜ = Aᶜ ∪ Bᶜ&lt;br /&gt;
&lt;br /&gt;
== Dualitätsprinzip ==&lt;br /&gt;
Die Gesetze der Mengenlehre treten **paarweise** auf.  &lt;br /&gt;
Tauscht man überall&lt;br /&gt;
* ∪ ↔ ∩  &lt;br /&gt;
* U ↔ ∅  &lt;br /&gt;
&lt;br /&gt;
so erhält man den **dualen Ausdruck**.&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
* Gesetz A ∪ ∅ = A hat als Dual A ∩ U = A  &lt;br /&gt;
* de Morgan’s Gesetz (A ∪ B)ᶜ = Aᶜ ∩ Bᶜ hat als Dual (A ∩ B)ᶜ = Aᶜ ∪ Bᶜ&lt;br /&gt;
&lt;br /&gt;
Dieses Prinzip zeigt die **symmetrische Struktur** der Mengenoperationen.&lt;br /&gt;
&lt;br /&gt;
== Visualisierung ==&lt;br /&gt;
Venn-Diagramme verdeutlichen diese Gesetze grafisch:  &lt;br /&gt;
* Die Vereinigungen und Durchschnitte entsprechen farblich markierten Bereichen.  &lt;br /&gt;
* Komplementbereiche sind die Flächen ausserhalb der betrachteten Menge.&lt;br /&gt;
&lt;br /&gt;
== Zusammenfassung ==&lt;br /&gt;
* Mengenoperationen folgen festen algebraischen Gesetzen.  &lt;br /&gt;
* Diese Gesetze entsprechen den Regeln der Aussagenlogik.  &lt;br /&gt;
* Das **Dualitätsprinzip** erlaubt, aus jedem Gesetz sein komplementäres Gegenstück zu bilden.  &lt;br /&gt;
* Die **de Morgan’schen Gesetze** sind besonders zentral für logische und rechnerische Anwendungen.&lt;br /&gt;
&lt;br /&gt;
[[Category:Set Theory (Mengenlehre)]]&lt;/div&gt;</summary>
		<author><name>Bfh-sts</name></author>
	</entry>
	<entry>
		<id>https://bsccs.stoney-wiki.com/w/index.php?title=Vereinigung,_Durchschnitt,_Differenz_und_Komplement_(inkl._Disjunktheit)&amp;diff=131</id>
		<title>Vereinigung, Durchschnitt, Differenz und Komplement (inkl. Disjunktheit)</title>
		<link rel="alternate" type="text/html" href="https://bsccs.stoney-wiki.com/w/index.php?title=Vereinigung,_Durchschnitt,_Differenz_und_Komplement_(inkl._Disjunktheit)&amp;diff=131"/>
		<updated>2025-10-27T08:10:19Z</updated>

		<summary type="html">&lt;p&gt;Bfh-sts: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Vereinigung, Durchschnitt, Differenz und Komplement =&lt;br /&gt;
In der Mengenlehre werden neue Mengen oft durch Operationen auf bestehenden Mengen gebildet.  &lt;br /&gt;
Die wichtigsten sind Vereinigung, Durchschnitt, Komplement und Differenz.&lt;br /&gt;
&lt;br /&gt;
== Vereinigung ==&lt;br /&gt;
Die Vereinigung zweier Mengen A und B, geschrieben A ∪ B, ist die Menge aller Elemente, die in A oder in B enthalten sind (oder in beiden).&lt;br /&gt;
&lt;br /&gt;
Formale Definition:&lt;br /&gt;
 A ∪ B := {x : x ∈ A ∨ x ∈ B}&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
 A = {1, 3, 5, 7}  &lt;br /&gt;
 B = {2, 4, 6, 8}  &lt;br /&gt;
 A ∪ B = {1, 2, 3, 4, 5, 6, 7, 8}&lt;br /&gt;
&lt;br /&gt;
Bemerkung:  &lt;br /&gt;
Das logische „oder“ (∨) ist einschliessend zu verstehen – also „und/oder“.&lt;br /&gt;
&lt;br /&gt;
== Durchschnitt ==&lt;br /&gt;
Der Durchschnitt (oder Schnitt) zweier Mengen A und B, geschrieben A ∩ B, ist die Menge aller Elemente, die sowohl in A als auch in B enthalten sind.&lt;br /&gt;
&lt;br /&gt;
Formale Definition:&lt;br /&gt;
 A ∩ B := {x : x ∈ A ∧ x ∈ B}&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
 A = {α, β, γ, δ}  &lt;br /&gt;
 B = {γ, δ, ε}  &lt;br /&gt;
 A ∩ B = {γ, δ}&lt;br /&gt;
&lt;br /&gt;
Wenn A ∩ B = ∅, heissen A und B disjunkt.&lt;br /&gt;
&lt;br /&gt;
Beispiel:  &lt;br /&gt;
 A = {1, 3, 5, 7, …}, B = {0, 2, 4, 6, …}  &lt;br /&gt;
 A ∩ B = ∅ (ungerade und gerade Zahlen sind disjunkt)&lt;br /&gt;
&lt;br /&gt;
== Komplement ==&lt;br /&gt;
Sei U die Universalmenge.  &lt;br /&gt;
Das Komplement einer Menge A, geschrieben Aᶜ, besteht aus allen Elementen, die zu U gehören, aber nicht zu A.&lt;br /&gt;
&lt;br /&gt;
Formale Definition:&lt;br /&gt;
 Aᶜ := {x : x ∈ U ∧ x ∉ A}&lt;br /&gt;
&lt;br /&gt;
Beispiel:  &lt;br /&gt;
U = ℝ  &lt;br /&gt;
A = {x : x² ≤ 4}  &lt;br /&gt;
→ A = [−2, 2]  &lt;br /&gt;
Dann gilt:  &lt;br /&gt;
Aᶜ = (−∞, −2) ∪ (2, ∞)&lt;br /&gt;
&lt;br /&gt;
Ein weiteres Beispiel:&lt;br /&gt;
U = ℝ  &lt;br /&gt;
B = {x : x &amp;lt; 0}  &lt;br /&gt;
→ Bᶜ = {x : x ≥ 0}&lt;br /&gt;
&lt;br /&gt;
== Differenz ==&lt;br /&gt;
Die Differenz zweier Mengen A und B, geschrieben A \ B, ist die Menge aller Elemente, die in A, aber nicht in B sind.&lt;br /&gt;
&lt;br /&gt;
Formale Definition:&lt;br /&gt;
 A \ B := {x : x ∈ A ∧ x ∉ B}&lt;br /&gt;
&lt;br /&gt;
Beispiel:  &lt;br /&gt;
 A = {1, 3, 5}  &lt;br /&gt;
 B = {1, 2, 3}  &lt;br /&gt;
 A \ B = {5}&lt;br /&gt;
&lt;br /&gt;
== Übersicht der Operationen ==&lt;br /&gt;
| Operation | Bedeutung | Symbolische Schreibweise | Beispiel |&lt;br /&gt;
|------------|------------|--------------------------|-----------|&lt;br /&gt;
| Vereinigung | alle Elemente aus A oder B | A ∪ B | {1,2} ∪ {2,3} = {1,2,3} |&lt;br /&gt;
| Durchschnitt | nur gemeinsame Elemente | A ∩ B | {1,2,3} ∩ {2,3,4} = {2,3} |&lt;br /&gt;
| Komplement | alles, was nicht in A ist | Aᶜ | bei U=ℝ und A=[0,1]: Aᶜ = (−∞,0) ∪ (1,∞) |&lt;br /&gt;
| Differenz | A ohne Elemente aus B | A \ B | {1,2,3} \ {2,3} = {1} |&lt;br /&gt;
&lt;br /&gt;
== Disjunkte Mengen ==&lt;br /&gt;
Zwei Mengen heissen disjunkt, wenn sie keine gemeinsamen Elemente besitzen:&lt;br /&gt;
 A ∩ B = ∅&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
* A = {1, 2, 3}&lt;br /&gt;
* B = {4, 5, 6}&lt;br /&gt;
→ disjunkt&lt;br /&gt;
&lt;br /&gt;
== Venn-Diagramme ==&lt;br /&gt;
Mengenoperationen lassen sich grafisch darstellen.  &lt;br /&gt;
Kreise, die sich überlappen, repräsentieren Vereinigungen und Durchschnitte.  &lt;br /&gt;
Das Komplement wird durch den Bereich ausserhalb eines Kreises dargestellt.&lt;br /&gt;
&lt;br /&gt;
== Zusammenfassung ==&lt;br /&gt;
* A ∪ B: alle Elemente, die in A oder B enthalten sind  &lt;br /&gt;
* A ∩ B: alle Elemente, die in A und B enthalten sind  &lt;br /&gt;
* Aᶜ: alle Elemente ausserhalb von A (relativ zu U)  &lt;br /&gt;
* A \ B: alle Elemente in A, die nicht in B enthalten sind  &lt;br /&gt;
* Zwei Mengen sind disjunkt, wenn ihr Durchschnitt leer ist&lt;br /&gt;
&lt;br /&gt;
[[Category:Set Theory (Mengenlehre)]]&lt;/div&gt;</summary>
		<author><name>Bfh-sts</name></author>
	</entry>
	<entry>
		<id>https://bsccs.stoney-wiki.com/w/index.php?title=Teilmengen_und_Gleichheit_von_Mengen&amp;diff=130</id>
		<title>Teilmengen und Gleichheit von Mengen</title>
		<link rel="alternate" type="text/html" href="https://bsccs.stoney-wiki.com/w/index.php?title=Teilmengen_und_Gleichheit_von_Mengen&amp;diff=130"/>
		<updated>2025-10-27T08:07:45Z</updated>

		<summary type="html">&lt;p&gt;Bfh-sts: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Teilmengen und Gleichheit von Mengen =&lt;br /&gt;
Neben der Zugehörigkeit von Elementen zu Mengen spielt auch die Beziehung zwischen Mengen selbst eine zentrale Rolle.  &lt;br /&gt;
Dazu gehört insbesondere das Konzept der Teilmengen.&lt;br /&gt;
&lt;br /&gt;
== Definition: Teilmenge ==&lt;br /&gt;
Eine Menge A heißt Teilmengen von B, wenn jedes Element von A auch ein Element von B ist.&lt;br /&gt;
&lt;br /&gt;
Notation:&lt;br /&gt;
 A ⊆ B ⇔ ∀x (x ∈ A ⇒ x ∈ B)&lt;br /&gt;
&lt;br /&gt;
Wenn A keine Teilmenge von B ist, schreibt man:&lt;br /&gt;
 A ⊈ B&lt;br /&gt;
&lt;br /&gt;
Falls A ⊆ B gilt, aber A ≠ B, nennt man A eine echte Teilmenge von B:&lt;br /&gt;
 A ⊂ B&lt;br /&gt;
&lt;br /&gt;
== Beispiel ==&lt;br /&gt;
* {1, 2, 3} ⊆ {1, 2, 3, 4, 5}  &lt;br /&gt;
* {1, 2, 3, 4} ⊆ {1, 2, 3, 4}  &lt;br /&gt;
* {a, b} ⊂ {a, b, c, d}  &lt;br /&gt;
* {a, b, c, d} ⊆ {a, b, c, d}  &lt;br /&gt;
* {x} ⊄ {y, z}&lt;br /&gt;
&lt;br /&gt;
== Grundlegende Eigenschaften von Teilmengen ==&lt;br /&gt;
Für beliebige Mengen A, B, C und die leere Menge ∅ gilt:&lt;br /&gt;
&lt;br /&gt;
1. Reflexivität:  &lt;br /&gt;
   ∅ ⊆ A und A ⊆ A  &lt;br /&gt;
&lt;br /&gt;
2. Transitivität:  &lt;br /&gt;
   Wenn A ⊆ B und B ⊆ C, dann gilt A ⊆ C  &lt;br /&gt;
&lt;br /&gt;
3. Antisymmetrie:  &lt;br /&gt;
   A = B ⇔ (A ⊆ B und B ⊆ A)&lt;br /&gt;
&lt;br /&gt;
== Beispiele ==&lt;br /&gt;
=== Beispiel 1 ===&lt;br /&gt;
Welche der folgenden Aussagen sind richtig?&lt;br /&gt;
&lt;br /&gt;
* (a) {1, 2, 3, 4} ⊆ {1, 2, 3, 4}  &lt;br /&gt;
* (b) ∅ ⊆ ∅  &lt;br /&gt;
* (c) {1, 2, 3} ⊆ {1, 2, 4}&lt;br /&gt;
&lt;br /&gt;
Lösungen:&lt;br /&gt;
* (a) Wahr – jede Menge ist Teilmenge von sich selbst.  &lt;br /&gt;
* (b) Wahr – die leere Menge ist Teilmenge jeder Menge, auch von sich selbst.  &lt;br /&gt;
* (c) Falsch – 3 ∈ {1, 2, 3}, aber 3 ∉ {1, 2, 4}.&lt;br /&gt;
&lt;br /&gt;
== Darstellung durch Venn-Diagramme ==&lt;br /&gt;
Das Teilmengenverhältnis kann anschaulich dargestellt werden:&lt;br /&gt;
* Wenn A ⊆ B, liegt die Fläche von A vollständig innerhalb von B.&lt;br /&gt;
* Wenn A und B disjunkt sind, überschneiden sich ihre Flächen nicht.&lt;br /&gt;
&lt;br /&gt;
== Wichtige Sonderfälle ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;bash&#039;&amp;gt;&lt;br /&gt;
| Situation       | Bedeutung                                    |&lt;br /&gt;
|-----------------|----------------------------------------------|&lt;br /&gt;
| ∅ ⊆ A          | Leere Menge ist immer Teilmenge              |&lt;br /&gt;
| A ⊆ U           | Jede Menge ist Teilmenge der Universalmenge  |&lt;br /&gt;
| A ⊆ B und B ⊆ A | Dann gilt A = B                              |&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Zusammenhang mit Gleichheit ==&lt;br /&gt;
Das Teilmengenprinzip ist die Grundlage der Gleichheitsdefinition:&lt;br /&gt;
 A = B ⇔ (A ⊆ B ∧ B ⊆ A)&lt;br /&gt;
&lt;br /&gt;
Damit ist die Gleichheit zweier Mengen formal nichts anderes als gegenseitige Teilmengenbeziehung.&lt;br /&gt;
&lt;br /&gt;
== Zusammenfassung ==&lt;br /&gt;
* A ⊆ B bedeutet: Alle Elemente von A sind in B enthalten.  &lt;br /&gt;
* Die leere Menge ist Teilmenge jeder Menge.  &lt;br /&gt;
* A = B gilt genau dann, wenn A ⊆ B und B ⊆ A.  &lt;br /&gt;
* Teilmengen lassen sich visuell als vollständig enthaltene Bereiche darstellen.  &lt;br /&gt;
* Das Teilmengenprinzip ist ein fundamentales Werkzeug in der Mengenlehre.&lt;br /&gt;
&lt;br /&gt;
[[Category:Set Theory (Mengenlehre)]]&lt;/div&gt;</summary>
		<author><name>Bfh-sts</name></author>
	</entry>
	<entry>
		<id>https://bsccs.stoney-wiki.com/w/index.php?title=Mengen_und_Elemente:_Mitgliedschaft,_Extensionalit%C3%A4t,_Definitionen&amp;diff=129</id>
		<title>Mengen und Elemente: Mitgliedschaft, Extensionalität, Definitionen</title>
		<link rel="alternate" type="text/html" href="https://bsccs.stoney-wiki.com/w/index.php?title=Mengen_und_Elemente:_Mitgliedschaft,_Extensionalit%C3%A4t,_Definitionen&amp;diff=129"/>
		<updated>2025-10-27T08:04:51Z</updated>

		<summary type="html">&lt;p&gt;Bfh-sts: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Mengen und Elemente =&lt;br /&gt;
Die Grundidee der Mengenlehre besteht darin, Objekte – genannt Elemente – zu einer Menge zusammenzufassen.  &lt;br /&gt;
Diese Elemente können Zahlen, Buchstaben, Personen oder sogar andere Mengen sein.&lt;br /&gt;
&lt;br /&gt;
== Elemente und Zugehörigkeit ==&lt;br /&gt;
Die Zugehörigkeit eines Elements zu einer Menge wird mit dem Symbol ∈ ausgedrückt.&lt;br /&gt;
&lt;br /&gt;
Beispiele:&lt;br /&gt;
* 3 ∈ {1, 2, 3, 4, 5}&lt;br /&gt;
* a ∈ {a, b, c}&lt;br /&gt;
* 6 ∉ {1, 2, 3, 4, 5}&lt;br /&gt;
&lt;br /&gt;
Die Zugehörigkeit ist immer eindeutig:  &lt;br /&gt;
Ein Element ist entweder in einer Menge enthalten oder nicht.&lt;br /&gt;
&lt;br /&gt;
== Das Extensionalitätsaxiom ==&lt;br /&gt;
Zwei Mengen sind gleich, wenn sie dieselben Elemente enthalten.  &lt;br /&gt;
Formell:&lt;br /&gt;
 A = B ⇔ ∀x: (x ∈ A ⇔ x ∈ B)&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
 A = {1, 2, 3}  &lt;br /&gt;
 B = {3, 2, 1}  &lt;br /&gt;
Da beide Mengen dieselben Elemente enthalten, gilt:  &lt;br /&gt;
 A = B&lt;br /&gt;
&lt;br /&gt;
== Definition von Mengen ==&lt;br /&gt;
Es gibt zwei grundlegende Arten, eine Menge zu definieren:&lt;br /&gt;
&lt;br /&gt;
=== 1. Explizite (aufzählende) Definition ===&lt;br /&gt;
Die Elemente werden direkt angegeben:&lt;br /&gt;
 A = {a, b}  &lt;br /&gt;
 B = {1, 2, 3, 4, 5}  &lt;br /&gt;
 C = {1, 2, a, b, c}&lt;br /&gt;
&lt;br /&gt;
=== 2. Intensionale (beschreibende) Definition ===&lt;br /&gt;
Die Elemente werden durch eine Eigenschaft beschrieben:&lt;br /&gt;
 B = {n : n ∈ ℤ ∧ n &amp;gt; 5}  &lt;br /&gt;
Das liest man:  &lt;br /&gt;
„B ist die Menge aller ganzen Zahlen n, für die n grösser als 5 ist.“&lt;br /&gt;
&lt;br /&gt;
Hierbei:&lt;br /&gt;
* Der Buchstabe (z. B. n) steht für ein typisches Element.&lt;br /&gt;
* Der Doppelpunkt „:“ bedeutet „mit der Eigenschaft“.&lt;br /&gt;
&lt;br /&gt;
== Beispiele ==&lt;br /&gt;
=== Beispiel 1 ===&lt;br /&gt;
Welche der folgenden Mengen sind gleich?&lt;br /&gt;
 A = {a, b}  &lt;br /&gt;
 B = {b, a}  &lt;br /&gt;
 C = {a}  &lt;br /&gt;
 D = {1, 2, 3, 4, 5}  &lt;br /&gt;
 E = {n : n ∈ ℤ ∧ 1 ≤ n ≤ 5}  &lt;br /&gt;
 F = {x : x ∈ ℝ ∧ x² − 3x + 2 = 0}  &lt;br /&gt;
 G = {1, 4/2}&lt;br /&gt;
&lt;br /&gt;
Lösungsidee:&lt;br /&gt;
* A und B enthalten dieselben Elemente → A = B  &lt;br /&gt;
* D und E beschreiben dieselbe Menge → D = E  &lt;br /&gt;
* F enthält die Nullstellen der Gleichung x² − 3x + 2 = 0 → F = {1, 2}  &lt;br /&gt;
* G = {1, 2}  &lt;br /&gt;
→ F = G&lt;br /&gt;
&lt;br /&gt;
=== Beispiel 2 ===&lt;br /&gt;
A = {x : x ∈ ℝ ∧ x² + 1 = 0}  &lt;br /&gt;
Da es keine reellen Zahlen gibt, deren Quadrat + 1 = 0 ergibt, ist:  &lt;br /&gt;
A = ∅&lt;br /&gt;
&lt;br /&gt;
== Leere Menge ==&lt;br /&gt;
Die leere Menge ist die Menge ohne Elemente.  &lt;br /&gt;
Notation:&lt;br /&gt;
 ∅ oder {}&lt;br /&gt;
&lt;br /&gt;
Eigenschaften:&lt;br /&gt;
* ∅ ⊆ A für jede Menge A&lt;br /&gt;
* |∅| = 0&lt;br /&gt;
&lt;br /&gt;
== Universalmenge ==&lt;br /&gt;
Die Universalmenge (U) enthält alle in einem bestimmten Kontext relevanten Elemente.  &lt;br /&gt;
Beispiele:&lt;br /&gt;
* In der Geometrie: alle Punkte einer Ebene  &lt;br /&gt;
* In der Analysis: alle reellen Zahlen  &lt;br /&gt;
* In der Informatik: alle möglichen Zustände oder Datenelemente&lt;br /&gt;
&lt;br /&gt;
Wenn nichts anderes angegeben ist, bezeichnen wir die Universalmenge mit U.&lt;br /&gt;
&lt;br /&gt;
== Zusammenfassung ==&lt;br /&gt;
* Elemente sind die Bausteine einer Menge.  &lt;br /&gt;
* Eine Menge ist durch ihre Elemente eindeutig bestimmt (Extensionalitätsaxiom).  &lt;br /&gt;
* Mengen können explizit oder durch Eigenschaften beschrieben werden.  &lt;br /&gt;
* Die leere Menge (∅) enthält keine Elemente.  &lt;br /&gt;
* Die Universalmenge (U) enthält alle betrachteten Elemente.&lt;br /&gt;
&lt;br /&gt;
[[Category:Set Theory (Mengenlehre)]]&lt;/div&gt;</summary>
		<author><name>Bfh-sts</name></author>
	</entry>
	<entry>
		<id>https://bsccs.stoney-wiki.com/w/index.php?title=Mengenlehre:_%C3%9Cberblick_%26_Notation&amp;diff=128</id>
		<title>Mengenlehre: Überblick &amp; Notation</title>
		<link rel="alternate" type="text/html" href="https://bsccs.stoney-wiki.com/w/index.php?title=Mengenlehre:_%C3%9Cberblick_%26_Notation&amp;diff=128"/>
		<updated>2025-10-27T08:04:26Z</updated>

		<summary type="html">&lt;p&gt;Bfh-sts: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Mengenlehre: Überblick &amp;amp; Bedeutung =&lt;br /&gt;
Die Mengenlehre ist ein grundlegendes Teilgebiet der Mathematik, das von Georg Cantor (1845–1918) im 19. Jahrhundert entwickelt wurde.  &lt;br /&gt;
Sie bildet das Fundament nahezu aller modernen mathematischen Disziplinen.  &lt;br /&gt;
Jede mathematische Struktur – von Zahlen über Funktionen bis zu geometrischen Objekten – kann in der Sprache der Mengenlehre formuliert werden.&lt;br /&gt;
&lt;br /&gt;
== Ursprung und Idee ==&lt;br /&gt;
Cantor definierte den Begriff der Menge folgendermassen:&lt;br /&gt;
&amp;gt; Unter einer Menge verstehen wir jede Zusammenfassung von bestimmten, wohlunterschiedlichen Objekten unserer Anschauung oder unseres Denkens (welche Elemente der Menge genannt werden) zu einem Ganzen.&lt;br /&gt;
&lt;br /&gt;
Diese Definition erlaubt es, sowohl konkrete als auch abstrakte Objekte als Elemente zu betrachten.  &lt;br /&gt;
Beispiele für Mengen:&lt;br /&gt;
* Die Menge der Planeten im Sonnensystem  &lt;br /&gt;
* Die Menge der geraden natürlichen Zahlen grösser als 2, die sich als Summe zweier Primzahlen schreiben lassen  &lt;br /&gt;
* Die Menge aller reellen Zahlen x mit x &amp;gt; 5  &lt;br /&gt;
* Die Menge der Studierenden an der BFH-TI Biel  &lt;br /&gt;
&lt;br /&gt;
== Notation ==&lt;br /&gt;
* Mengen werden mit Grossbuchstaben bezeichnet (A, B, C, …).  &lt;br /&gt;
* Elemente werden mit Kleinbuchstaben bezeichnet (a, b, c, …).  &lt;br /&gt;
* Die Aussage „a ist Element von A“ schreibt man als:  &lt;br /&gt;
  a ∈ A  &lt;br /&gt;
  Die Negation lautet:  &lt;br /&gt;
  a ∉ A  &lt;br /&gt;
&lt;br /&gt;
Eine Menge ist durch ihre Elemente vollständig bestimmt.  &lt;br /&gt;
Dieses Prinzip wird als Extensionalitätsaxiom bezeichnet:&lt;br /&gt;
&amp;gt; Zwei Mengen A und B sind genau dann gleich, wenn sie dieselben Elemente enthalten.&lt;br /&gt;
&lt;br /&gt;
Formal:&lt;br /&gt;
 A = B ⇔ ∀x: (x ∈ A ⇔ x ∈ B)&lt;br /&gt;
&lt;br /&gt;
== Arten der Mengendefinition ==&lt;br /&gt;
Es gibt zwei grundlegende Arten, Mengen zu definieren:&lt;br /&gt;
&lt;br /&gt;
=== 1. Aufzählende (explizite) Definition ===&lt;br /&gt;
Alle Elemente werden direkt aufgelistet:&lt;br /&gt;
 A = {a, b, x, y, z}  &lt;br /&gt;
 B = {1, 2, 3, 4, 5}&lt;br /&gt;
&lt;br /&gt;
=== 2. Beschreibende (intensionale) Definition ===&lt;br /&gt;
Die Elemente werden durch eine Eigenschaft charakterisiert:&lt;br /&gt;
 B = {n : n ∈ ℤ ∧ n &amp;gt; 5}  &lt;br /&gt;
„B ist die Menge aller ganzen Zahlen n, für die n &amp;gt; 5 gilt.“&lt;br /&gt;
&lt;br /&gt;
Der Doppelpunkt „:“ bedeutet „mit der Eigenschaft“ oder „so dass“.&lt;br /&gt;
&lt;br /&gt;
== Wichtige Symbole ==&lt;br /&gt;
| Symbol | Bedeutung |&lt;br /&gt;
|---------|------------|&lt;br /&gt;
| ∈ | ist Element von |&lt;br /&gt;
| ∉ | ist kein Element von |&lt;br /&gt;
| ⊆ | ist Teilmenge von |&lt;br /&gt;
| ⊂ | ist echte Teilmenge von |&lt;br /&gt;
| ∅ | leere Menge |&lt;br /&gt;
| U | Universalmenge |&lt;br /&gt;
&lt;br /&gt;
== Leere Menge und Universalmenge ==&lt;br /&gt;
* Leere Menge (∅): enthält keine Elemente.  &lt;br /&gt;
  ∅ = {}  &lt;br /&gt;
* Universalmenge (U): enthält alle in einem Kontext betrachteten Objekte.  &lt;br /&gt;
  Beispiele:&lt;br /&gt;
  * In der Geometrie: alle Punkte der Ebene  &lt;br /&gt;
  * In der Analysis: alle reellen Zahlen&lt;br /&gt;
&lt;br /&gt;
== Bedeutung in der Informatik ==&lt;br /&gt;
Mengen sind auch in der Informatik zentral:&lt;br /&gt;
* zur Beschreibung von Zustandsräumen  &lt;br /&gt;
* zur Definition von Datenmengen und Relationen  &lt;br /&gt;
* für logische Operationen (UND, ODER, NICHT) in Boolescher Algebra  &lt;br /&gt;
* als Grundlage für Datenbanktheorie und Mengenoperationen (SELECT, UNION, INTERSECT)&lt;br /&gt;
&lt;br /&gt;
== Zusammenfassung ==&lt;br /&gt;
* Die Mengenlehre ist das Fundament der Mathematik.  &lt;br /&gt;
* Mengen sind Sammlungen von klar unterscheidbaren Objekten.  &lt;br /&gt;
* Die Mitgliedschaft (∈) ist das zentrale Konzept.  &lt;br /&gt;
* Mengen können durch Aufzählung oder Eigenschaft definiert werden.  &lt;br /&gt;
* Leere Menge (∅) und Universalmenge (U) sind wichtige Spezialfälle.&lt;br /&gt;
&lt;br /&gt;
[[Category:Set Theory (Mengenlehre)]]&lt;/div&gt;</summary>
		<author><name>Bfh-sts</name></author>
	</entry>
	<entry>
		<id>https://bsccs.stoney-wiki.com/w/index.php?title=Endliche_Mengen_%26_Einschluss-Ausschluss-Prinzip&amp;diff=127</id>
		<title>Endliche Mengen &amp; Einschluss-Ausschluss-Prinzip</title>
		<link rel="alternate" type="text/html" href="https://bsccs.stoney-wiki.com/w/index.php?title=Endliche_Mengen_%26_Einschluss-Ausschluss-Prinzip&amp;diff=127"/>
		<updated>2025-10-27T08:00:00Z</updated>

		<summary type="html">&lt;p&gt;Bfh-sts: Created page with &amp;quot;= Endliche Mengen und das Einschluss-Ausschluss-Prinzip = Viele praktische Probleme befassen sich mit **endlichen Mengen**, also Mengen mit abzählbarer Anzahl von Elementen.   Für solche Mengen spielt das **Zählen** von Elementen und Überschneidungen eine zentrale Rolle.  == Endliche und unendliche Mengen == Eine Menge heißt **endlich**, wenn sie genau *m* verschiedene Elemente enthält, wobei *m* eine natürliche Zahl ist.   Sonst heißt sie **unendlich**.  Beispie...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Endliche Mengen und das Einschluss-Ausschluss-Prinzip =&lt;br /&gt;
Viele praktische Probleme befassen sich mit **endlichen Mengen**, also Mengen mit abzählbarer Anzahl von Elementen.  &lt;br /&gt;
Für solche Mengen spielt das **Zählen** von Elementen und Überschneidungen eine zentrale Rolle.&lt;br /&gt;
&lt;br /&gt;
== Endliche und unendliche Mengen ==&lt;br /&gt;
Eine Menge heißt **endlich**, wenn sie genau *m* verschiedene Elemente enthält, wobei *m* eine natürliche Zahl ist.  &lt;br /&gt;
Sonst heißt sie **unendlich**.&lt;br /&gt;
&lt;br /&gt;
Beispiele:&lt;br /&gt;
* ∅ → endlich, da keine Elemente  &lt;br /&gt;
* Alphabet = {A, B, …, Z} → endlich  &lt;br /&gt;
* ℕ = {1, 2, 3, 4, …} → unendlich&lt;br /&gt;
&lt;br /&gt;
Die Anzahl der Elemente einer endlichen Menge A wird mit |A| bezeichnet.&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
 A = {1, 2, 3, 4} → |A| = 4&lt;br /&gt;
&lt;br /&gt;
== Vereinigung endlicher Mengen ==&lt;br /&gt;
Sind A und B endlich, so ist auch A ∪ B endlich.  &lt;br /&gt;
Dabei gilt die Grundformel:&lt;br /&gt;
&lt;br /&gt;
 |A ∪ B| = |A| + |B| − |A ∩ B|&lt;br /&gt;
&lt;br /&gt;
Diese Formel korrigiert die doppelte Zählung der Schnittmenge.&lt;br /&gt;
&lt;br /&gt;
=== Beispiel ===&lt;br /&gt;
A = {1, 2, 3, 4}, B = {3, 4, 5, 6}  &lt;br /&gt;
|A| = 4, |B| = 4, |A ∩ B| = 2  &lt;br /&gt;
→ |A ∪ B| = 4 + 4 − 2 = 6  &lt;br /&gt;
A ∪ B = {1, 2, 3, 4, 5, 6}&lt;br /&gt;
&lt;br /&gt;
== Herleitung der Formel ==&lt;br /&gt;
Die Mengen A und B können als **drei disjunkte Teilmengen** betrachtet werden:&lt;br /&gt;
* A \ (A ∩ B)&lt;br /&gt;
* A ∩ B&lt;br /&gt;
* B \ (A ∩ B)&lt;br /&gt;
&lt;br /&gt;
Da diese drei Mengen keine Überschneidung haben, gilt:&lt;br /&gt;
 |A ∪ B| = |A \ (A ∩ B)| + |A ∩ B| + |B \ (A ∩ B)|&lt;br /&gt;
&lt;br /&gt;
Daraus folgt:&lt;br /&gt;
 |A ∪ B| = |A| + |B| − |A ∩ B|&lt;br /&gt;
&lt;br /&gt;
== Erweiterung auf drei Mengen ==&lt;br /&gt;
Für drei endliche Mengen A, B, C gilt die **Einschluss-Ausschluss-Formel**:&lt;br /&gt;
&lt;br /&gt;
 |A ∪ B ∪ C| = |A| + |B| + |C| − |A ∩ B| − |A ∩ C| − |B ∩ C| + |A ∩ B ∩ C|&lt;br /&gt;
&lt;br /&gt;
Diese Formel berücksichtigt alle Überschneidungen korrekt:&lt;br /&gt;
* Einfache Mengen: +  &lt;br /&gt;
* Doppelte Schnittmengen: −  &lt;br /&gt;
* Dreifache Schnittmenge: +&lt;br /&gt;
&lt;br /&gt;
== Erweiterung auf vier Mengen ==&lt;br /&gt;
Für A, B, C, D gilt:&lt;br /&gt;
&lt;br /&gt;
 |A ∪ B ∪ C ∪ D| =  &lt;br /&gt;
 |A| + |B| + |C| + |D|  &lt;br /&gt;
 − (|A ∩ B| + |A ∩ C| + |A ∩ D| + |B ∩ C| + |B ∩ D| + |C ∩ D|)  &lt;br /&gt;
 + (|A ∩ B ∩ C| + |A ∩ B ∩ D| + |A ∩ C ∩ D| + |B ∩ C ∩ D|)  &lt;br /&gt;
 − |A ∩ B ∩ C ∩ D|&lt;br /&gt;
&lt;br /&gt;
== Beispiel: Anwendung auf Studierende ==&lt;br /&gt;
An einer Universität studieren 2’504 Studierende Informatik.  &lt;br /&gt;
Davon belegen:&lt;br /&gt;
* 1’876 Java  &lt;br /&gt;
* 999 C  &lt;br /&gt;
* 345 Prolog  &lt;br /&gt;
* 876 sowohl Java als auch C  &lt;br /&gt;
* 231 C und Prolog  &lt;br /&gt;
* 290 Java und Prolog  &lt;br /&gt;
* 189 alle drei Kurse&lt;br /&gt;
&lt;br /&gt;
(a) Wie viele Studierende belegen **keinen** der drei Kurse?&lt;br /&gt;
&lt;br /&gt;
|U| = 2’504  &lt;br /&gt;
|A ∪ B ∪ C| = 1’876 + 999 + 345 − 876 − 231 − 290 + 189 = 2’012  &lt;br /&gt;
→ Studierende ohne Kurs = 2’504 − 2’012 = **492**&lt;br /&gt;
&lt;br /&gt;
(b) Wie viele belegen **genau einen Kurs**?&lt;br /&gt;
&lt;br /&gt;
= |A| + |B| + |C| − 2·(|A ∩ B| + |A ∩ C| + |B ∩ C|) + 3·|A ∩ B ∩ C|  &lt;br /&gt;
= 1’876 + 999 + 345 − 2·(876 + 231 + 290) + 3·189 = **1’002**&lt;br /&gt;
&lt;br /&gt;
== Bedeutung ==&lt;br /&gt;
Das Einschluss-Ausschluss-Prinzip ist ein zentrales Werkzeug:&lt;br /&gt;
* zur Bestimmung der Kardinalität von Vereinigungen  &lt;br /&gt;
* in Kombinatorik, Statistik und Wahrscheinlichkeitstheorie  &lt;br /&gt;
* für logische Vereinfachungen in der Informatik (z. B. Boolesche Algebra)&lt;br /&gt;
&lt;br /&gt;
== Zusammenfassung ==&lt;br /&gt;
* Eine Menge ist **endlich**, wenn sie eine abzählbare Anzahl von Elementen hat.  &lt;br /&gt;
* **|A ∪ B| = |A| + |B| − |A ∩ B|** korrigiert doppelte Zählung.  &lt;br /&gt;
* Das **Einschluss-Ausschluss-Prinzip** erweitert diese Idee auf mehrere Mengen.  &lt;br /&gt;
* In der Informatik hilft es beim Zählen von Zuständen, Kombinationen und logischen Fällen.&lt;br /&gt;
&lt;br /&gt;
[[Category:Set Theory (Mengenlehre)]]&lt;/div&gt;</summary>
		<author><name>Bfh-sts</name></author>
	</entry>
	<entry>
		<id>https://bsccs.stoney-wiki.com/w/index.php?title=Geordnete_Paare,_n-Tupel_%26_kartesische_Produkte&amp;diff=126</id>
		<title>Geordnete Paare, n-Tupel &amp; kartesische Produkte</title>
		<link rel="alternate" type="text/html" href="https://bsccs.stoney-wiki.com/w/index.php?title=Geordnete_Paare,_n-Tupel_%26_kartesische_Produkte&amp;diff=126"/>
		<updated>2025-10-27T07:58:57Z</updated>

		<summary type="html">&lt;p&gt;Bfh-sts: Created page with &amp;quot;= Geordnete Paare, n-Tupel und kartesische Produkte = In der Mengenlehre spielt die **Reihenfolge** der Elemente normalerweise keine Rolle.   Doch in vielen Anwendungen – etwa bei Funktionen oder Datenstrukturen – ist sie entscheidend.   Dazu dienen **geordnete Paare** und **Tupel**.  == Geordnete Paare == Ein **geordnetes Paar** besteht aus zwei Elementen, bei denen die Reihenfolge eine Rolle spielt.   Notation:  (a, b)  Das erste Element ist **a**, das zweite ist *...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Geordnete Paare, n-Tupel und kartesische Produkte =&lt;br /&gt;
In der Mengenlehre spielt die **Reihenfolge** der Elemente normalerweise keine Rolle.  &lt;br /&gt;
Doch in vielen Anwendungen – etwa bei Funktionen oder Datenstrukturen – ist sie entscheidend.  &lt;br /&gt;
Dazu dienen **geordnete Paare** und **Tupel**.&lt;br /&gt;
&lt;br /&gt;
== Geordnete Paare ==&lt;br /&gt;
Ein **geordnetes Paar** besteht aus zwei Elementen, bei denen die Reihenfolge eine Rolle spielt.  &lt;br /&gt;
Notation:&lt;br /&gt;
 (a, b)&lt;br /&gt;
&lt;br /&gt;
Das erste Element ist **a**, das zweite ist **b**.  &lt;br /&gt;
Zwei geordnete Paare (a, b) und (c, d) sind **gleich**, genau dann, wenn gilt:&lt;br /&gt;
 a = c und b = d&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
* (1, 2) ≠ (2, 1)&lt;br /&gt;
* (x, y) = (x, y)  &lt;br /&gt;
* (a, b) ≠ (b, a), sofern a ≠ b&lt;br /&gt;
&lt;br /&gt;
== Kartesisches Produkt ==&lt;br /&gt;
Das **kartesische Produkt** zweier Mengen A und B ist die Menge aller **geordneten Paare** (x, y) mit x ∈ A und y ∈ B.&lt;br /&gt;
&lt;br /&gt;
Formale Definition:&lt;br /&gt;
 A × B := {(x, y) : x ∈ A ∧ y ∈ B}&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
 A = {1, 2}  &lt;br /&gt;
 B = {a, b, c}&lt;br /&gt;
&lt;br /&gt;
Dann gilt:&lt;br /&gt;
 A × B = {(1, a), (1, b), (1, c), (2, a), (2, b), (2, c)}  &lt;br /&gt;
 B × A = {(a, 1), (a, 2), (b, 1), (b, 2), (c, 1), (c, 2)}  &lt;br /&gt;
 A² = A × A = {(1, 1), (1, 2), (2, 1), (2, 2)}&lt;br /&gt;
&lt;br /&gt;
== Anzahl der Elemente ==&lt;br /&gt;
Wenn A und B **endlich** sind, gilt:&lt;br /&gt;
 |A × B| = |A| · |B|&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
 A = {1, 2, 3}, B = {a, b}  &lt;br /&gt;
 |A × B| = 3 · 2 = 6&lt;br /&gt;
&lt;br /&gt;
== n-Tupel ==&lt;br /&gt;
Ein **n-Tupel** ist eine geordnete Liste von n Elementen:&lt;br /&gt;
 (a₁, a₂, …, aₙ)&lt;br /&gt;
&lt;br /&gt;
Die Reihenfolge der Elemente ist wesentlich.&lt;br /&gt;
&lt;br /&gt;
Zwei n-Tupel (a₁, a₂, …, aₙ) und (b₁, b₂, …, bₙ) sind gleich, wenn:&lt;br /&gt;
 a₁ = b₁ ∧ a₂ = b₂ ∧ … ∧ aₙ = bₙ&lt;br /&gt;
&lt;br /&gt;
Beispiele:&lt;br /&gt;
* (a, b, c) → Tripel  &lt;br /&gt;
* (a, b, c, d) → Quadrupel&lt;br /&gt;
&lt;br /&gt;
== Kartesisches Produkt mehrerer Mengen ==&lt;br /&gt;
Für n Mengen A₁, A₂, …, Aₙ gilt:&lt;br /&gt;
 A₁ × A₂ × … × Aₙ = {(a₁, a₂, …, aₙ) : aᵢ ∈ Aᵢ für alle i}&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
 A = {a, b}, B = {x}, C = {1, 2, 3}&lt;br /&gt;
&lt;br /&gt;
 A × B × C = {&lt;br /&gt;
 (a, x, 1), (a, x, 2), (a, x, 3),&lt;br /&gt;
 (b, x, 1), (b, x, 2), (b, x, 3)&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== Kombinatorische Überlegungen ==&lt;br /&gt;
Wenn |A₁| = n₁, |A₂| = n₂, …, |Aₙ| = nₙ, dann gilt:&lt;br /&gt;
 |A₁ × A₂ × … × Aₙ| = n₁ · n₂ · … · nₙ&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
 Drei Mengen:&lt;br /&gt;
* A = {rot, blau}&lt;br /&gt;
* B = {rund, eckig}&lt;br /&gt;
* C = {klein, groß}&lt;br /&gt;
&lt;br /&gt;
→ |A × B × C| = 2 · 2 · 2 = 8 Kombinationen.&lt;br /&gt;
&lt;br /&gt;
== Variation der Elemente ==&lt;br /&gt;
Bei einer Menge aus n Zahlen (1, 2, …, n):&lt;br /&gt;
* Wenn jede Zahl **nur einmal** vorkommen darf → n! mögliche Tupel (Permutationen)&lt;br /&gt;
* Wenn jede Zahl **beliebig oft** vorkommen darf → nⁿ mögliche Tupel&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
Kartesische Produkte und Tupel bilden die Grundlage für:&lt;br /&gt;
* **Funktionen**: eine Funktion ist eine Teilmenge von A × B  &lt;br /&gt;
* **Datenbanken**: Tabellenzeilen entsprechen n-Tupeln  &lt;br /&gt;
* **Vektorräume**: Elemente sind n-Tupel reeller Zahlen&lt;br /&gt;
&lt;br /&gt;
== Zusammenfassung ==&lt;br /&gt;
* Reihenfolge spielt bei geordneten Paaren und Tupeln eine Rolle.  &lt;br /&gt;
* Das kartesische Produkt A × B kombiniert alle möglichen Paare (x, y).  &lt;br /&gt;
* |A × B| = |A| · |B| bei endlichen Mengen.  &lt;br /&gt;
* Das Konzept erweitert sich auf n-Tupel.  &lt;br /&gt;
* Anwendungen: Funktionen, Datenstrukturen, Relationen, Kombinatorik.&lt;br /&gt;
&lt;br /&gt;
[[Category:Set Theory (Mengenlehre)]]&lt;/div&gt;</summary>
		<author><name>Bfh-sts</name></author>
	</entry>
	<entry>
		<id>https://bsccs.stoney-wiki.com/w/index.php?title=Mengensysteme,_Potenzmenge_%26_Partitionen&amp;diff=125</id>
		<title>Mengensysteme, Potenzmenge &amp; Partitionen</title>
		<link rel="alternate" type="text/html" href="https://bsccs.stoney-wiki.com/w/index.php?title=Mengensysteme,_Potenzmenge_%26_Partitionen&amp;diff=125"/>
		<updated>2025-10-27T07:57:28Z</updated>

		<summary type="html">&lt;p&gt;Bfh-sts: Created page with &amp;quot;= Mengensysteme, Potenzmenge und Partitionen = Neben einzelnen Mengen betrachtet man oft **Systeme von Mengen** – also Mengen, deren Elemente wiederum Mengen sind.   Dazu gehören wichtige Begriffe wie **Potenzmenge** und **Partition**.  == Mengensystem == Eine **Menge von Mengen** heißt ein **Mengensystem**.   Beispiel:  S = { {1, 2}, {3, 4}, {5} }  Jedes Element von S ist selbst eine Menge.  == Potenzmenge == Die **Potenzmenge** einer Menge S ist die Menge aller **T...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Mengensysteme, Potenzmenge und Partitionen =&lt;br /&gt;
Neben einzelnen Mengen betrachtet man oft **Systeme von Mengen** – also Mengen, deren Elemente wiederum Mengen sind.  &lt;br /&gt;
Dazu gehören wichtige Begriffe wie **Potenzmenge** und **Partition**.&lt;br /&gt;
&lt;br /&gt;
== Mengensystem ==&lt;br /&gt;
Eine **Menge von Mengen** heißt ein **Mengensystem**.  &lt;br /&gt;
Beispiel:&lt;br /&gt;
 S = { {1, 2}, {3, 4}, {5} }&lt;br /&gt;
&lt;br /&gt;
Jedes Element von S ist selbst eine Menge.&lt;br /&gt;
&lt;br /&gt;
== Potenzmenge ==&lt;br /&gt;
Die **Potenzmenge** einer Menge S ist die Menge aller **Teilmenge**n von S.  &lt;br /&gt;
Notation:&lt;br /&gt;
 P(S) = {A : A ⊆ S}&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
 Sei S = {1, 2}  &lt;br /&gt;
 Dann gilt:&lt;br /&gt;
 P(S) = {∅, {1}, {2}, {1, 2}}&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
* A = ∅ → P(A) = {∅}&lt;br /&gt;
* B = {a} → P(B) = {∅, {a}}&lt;br /&gt;
* C = {a, b} → P(C) = {∅, {a}, {b}, {a, b}}&lt;br /&gt;
&lt;br /&gt;
Allgemein gilt:&lt;br /&gt;
 Eine Menge mit **n Elementen** besitzt **2ⁿ Teilmengen.**&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
 D = {a, b, c, d} → |P(D)| = 2⁴ = 16&lt;br /&gt;
&lt;br /&gt;
== Beispielaufgaben ==&lt;br /&gt;
1. Bestimme die Potenzmenge von E = {a, b, c, d}.  &lt;br /&gt;
   → 16 Teilmengen  &lt;br /&gt;
2. Wieviele Teilmengen besitzt eine Menge mit 5 Elementen?  &lt;br /&gt;
   → 2⁵ = 32&lt;br /&gt;
&lt;br /&gt;
== Partition ==&lt;br /&gt;
Eine **Partition** einer Menge S** ist eine Aufteilung von S in nicht-leere, disjunkte Teilmengen**, deren Vereinigung S ergibt.&lt;br /&gt;
&lt;br /&gt;
Formal:&lt;br /&gt;
Eine Familie {Aᵢ} von Teilmengen von S ist eine Partition, wenn gilt:&lt;br /&gt;
1. Aᵢ ≠ ∅ für alle i  &lt;br /&gt;
2. ⋃ Aᵢ = S  &lt;br /&gt;
3. Aᵢ ∩ Aⱼ = ∅ für alle i ≠ j  &lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
S = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}&lt;br /&gt;
&lt;br /&gt;
(a) {∅, {1,2}, {3,4,5}, {6,7,8,9,10}} → keine Partition, da ∅ enthalten  &lt;br /&gt;
(b) {{1,2,3,4}, {4,5,6}, {7,8,9,10}} → keine Partition, da sich {1,2,3,4} und {4,5,6} überschneiden  &lt;br /&gt;
(c) {{2,3,4,5}, {6,7,8}, {9,10}} → Partition von {2,…,10}, nicht von S  &lt;br /&gt;
(d) {{1,2,3}, {4,5,6}, {7,8,9,10}} → **gültige Partition** von S&lt;br /&gt;
&lt;br /&gt;
== Zusammenhang zwischen Potenzmenge und Partition ==&lt;br /&gt;
* Die Potenzmenge enthält alle möglichen Kombinationen von Teilmengen.  &lt;br /&gt;
* Eine Partition wählt aus diesen Teilmengen eine besondere Kombination, bei der:&lt;br /&gt;
  - keine Schnittmenge entsteht  &lt;br /&gt;
  - die Vereinigung wieder die Ausgangsmenge ergibt&lt;br /&gt;
&lt;br /&gt;
== Visualisierung ==&lt;br /&gt;
Ein Venn-Diagramm kann Partitionen als **nicht überlappende Flächen** innerhalb der Universalmenge darstellen.  &lt;br /&gt;
Jede Teilmenge repräsentiert ein disjunktes „Teilgebiet“.&lt;br /&gt;
&lt;br /&gt;
== Zusammenfassung ==&lt;br /&gt;
* **Mengensystem:** Menge von Mengen.  &lt;br /&gt;
* **Potenzmenge P(S):** Menge aller Teilmengen von S, mit |P(S)| = 2ⁿ.  &lt;br /&gt;
* **Partition:** disjunkte, nicht-leere Teilmengen, deren Vereinigung S ergibt.  &lt;br /&gt;
* Potenzmengen und Partitionen sind zentrale Konzepte in Kombinatorik und Wahrscheinlichkeitsrechnung.&lt;br /&gt;
&lt;br /&gt;
[[Category:Set Theory (Mengenlehre)]]&lt;/div&gt;</summary>
		<author><name>Bfh-sts</name></author>
	</entry>
	<entry>
		<id>https://bsccs.stoney-wiki.com/w/index.php?title=Mengenalgebra_%26_Dualit%C3%A4t:_Gesetze_und_de_Morgan&amp;diff=124</id>
		<title>Mengenalgebra &amp; Dualität: Gesetze und de Morgan</title>
		<link rel="alternate" type="text/html" href="https://bsccs.stoney-wiki.com/w/index.php?title=Mengenalgebra_%26_Dualit%C3%A4t:_Gesetze_und_de_Morgan&amp;diff=124"/>
		<updated>2025-10-27T07:57:16Z</updated>

		<summary type="html">&lt;p&gt;Bfh-sts: Created page with &amp;quot;= Mengenalgebra und Dualität = Die in der Mengenlehre definierten Operationen (Vereinigung, Durchschnitt, Komplement, Differenz) folgen bestimmten **algebraischen Gesetzen**.   Diese Gesetze erlauben es, Ausdrücke zu vereinfachen oder zu beweisen, dass zwei Mengenoperationen äquivalent sind.  == Grundlegende Gesetze der Mengenalgebra == Für beliebige Mengen A, B, C und die Universalmenge U gelten folgende Gesetze:  === 1. Idempotenz === A ∪ A = A   A ∩ A = A    D...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Mengenalgebra und Dualität =&lt;br /&gt;
Die in der Mengenlehre definierten Operationen (Vereinigung, Durchschnitt, Komplement, Differenz) folgen bestimmten **algebraischen Gesetzen**.  &lt;br /&gt;
Diese Gesetze erlauben es, Ausdrücke zu vereinfachen oder zu beweisen, dass zwei Mengenoperationen äquivalent sind.&lt;br /&gt;
&lt;br /&gt;
== Grundlegende Gesetze der Mengenalgebra ==&lt;br /&gt;
Für beliebige Mengen A, B, C und die Universalmenge U gelten folgende Gesetze:&lt;br /&gt;
&lt;br /&gt;
=== 1. Idempotenz ===&lt;br /&gt;
A ∪ A = A  &lt;br /&gt;
A ∩ A = A  &lt;br /&gt;
&lt;br /&gt;
Das Zusammenfassen oder Schneiden einer Menge mit sich selbst ändert nichts.&lt;br /&gt;
&lt;br /&gt;
=== 2. Assoziativgesetz ===&lt;br /&gt;
(A ∪ B) ∪ C = A ∪ (B ∪ C)  &lt;br /&gt;
(A ∩ B) ∩ C = A ∩ (B ∩ C)&lt;br /&gt;
&lt;br /&gt;
Die Reihenfolge der Ausführung spielt keine Rolle.&lt;br /&gt;
&lt;br /&gt;
=== 3. Kommutativgesetz ===&lt;br /&gt;
A ∪ B = B ∪ A  &lt;br /&gt;
A ∩ B = B ∩ A  &lt;br /&gt;
&lt;br /&gt;
Die Reihenfolge der Mengen kann vertauscht werden.&lt;br /&gt;
&lt;br /&gt;
=== 4. Distributivgesetz ===&lt;br /&gt;
A ∪ (B ∩ C) = (A ∪ B) ∩ (A ∪ C)  &lt;br /&gt;
A ∩ (B ∪ C) = (A ∩ B) ∪ (A ∩ C)&lt;br /&gt;
&lt;br /&gt;
Dies erlaubt, Ausdrücke zu „verteilen“, ähnlich wie beim Distributivgesetz der Algebra.&lt;br /&gt;
&lt;br /&gt;
=== 5. Identitätsgesetz ===&lt;br /&gt;
A ∪ ∅ = A  &lt;br /&gt;
A ∩ U = A  &lt;br /&gt;
&lt;br /&gt;
∅ und U verhalten sich wie 0 und 1 in der Arithmetik.&lt;br /&gt;
&lt;br /&gt;
=== 6. Null- und Einheitsgesetz ===&lt;br /&gt;
A ∪ U = U  &lt;br /&gt;
A ∩ ∅ = ∅  &lt;br /&gt;
&lt;br /&gt;
Alles mit der Universalmenge vereinigt ergibt U;  &lt;br /&gt;
alles mit der leeren Menge geschnitten ergibt ∅.&lt;br /&gt;
&lt;br /&gt;
=== 7. Gesetz vom doppelten Komplement ===&lt;br /&gt;
(Aᶜ)ᶜ = A  &lt;br /&gt;
&lt;br /&gt;
Das Komplement des Komplements ergibt wieder die ursprüngliche Menge.&lt;br /&gt;
&lt;br /&gt;
=== 8. Komplementgesetze ===&lt;br /&gt;
A ∪ Aᶜ = U  &lt;br /&gt;
A ∩ Aᶜ = ∅  &lt;br /&gt;
&lt;br /&gt;
Eine Menge und ihr Komplement decken die Universalmenge vollständig ab, ohne sich zu überschneiden.&lt;br /&gt;
&lt;br /&gt;
=== 9. Komplemente der Universal- und Leermenge ===&lt;br /&gt;
Uᶜ = ∅  &lt;br /&gt;
∅ᶜ = U&lt;br /&gt;
&lt;br /&gt;
=== 10. de Morgan’sche Gesetze ===&lt;br /&gt;
(A ∪ B)ᶜ = Aᶜ ∩ Bᶜ  &lt;br /&gt;
(A ∩ B)ᶜ = Aᶜ ∪ Bᶜ  &lt;br /&gt;
&lt;br /&gt;
Diese sind besonders wichtig, da sie eine enge Verbindung zur Aussagenlogik zeigen:&lt;br /&gt;
* Das Komplement einer Vereinigung ist der Durchschnitt der Komplemente.  &lt;br /&gt;
* Das Komplement eines Durchschnitts ist die Vereinigung der Komplemente.&lt;br /&gt;
&lt;br /&gt;
== Beispiel: Beweis des de Morgan Gesetzes ==&lt;br /&gt;
Beweise (A ∩ B)ᶜ = Aᶜ ∪ Bᶜ mithilfe der Logik:&lt;br /&gt;
&lt;br /&gt;
| Aussage | Logisches Pendant |&lt;br /&gt;
|----------|--------------------|&lt;br /&gt;
| x ∈ (A ∩ B)ᶜ | ¬(x ∈ A ∧ x ∈ B) |&lt;br /&gt;
|             | ⇔ (¬x ∈ A) ∨ (¬x ∈ B) |&lt;br /&gt;
|             | ⇔ x ∈ Aᶜ ∨ x ∈ Bᶜ |&lt;br /&gt;
| ⇒           | x ∈ (Aᶜ ∪ Bᶜ) |&lt;br /&gt;
&lt;br /&gt;
Daraus folgt: (A ∩ B)ᶜ = Aᶜ ∪ Bᶜ&lt;br /&gt;
&lt;br /&gt;
== Dualitätsprinzip ==&lt;br /&gt;
Die Gesetze der Mengenlehre treten **paarweise** auf.  &lt;br /&gt;
Tauscht man überall&lt;br /&gt;
* ∪ ↔ ∩  &lt;br /&gt;
* U ↔ ∅  &lt;br /&gt;
&lt;br /&gt;
so erhält man den **dualen Ausdruck**.&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
* Gesetz A ∪ ∅ = A hat als Dual A ∩ U = A  &lt;br /&gt;
* de Morgan’s Gesetz (A ∪ B)ᶜ = Aᶜ ∩ Bᶜ hat als Dual (A ∩ B)ᶜ = Aᶜ ∪ Bᶜ&lt;br /&gt;
&lt;br /&gt;
Dieses Prinzip zeigt die **symmetrische Struktur** der Mengenoperationen.&lt;br /&gt;
&lt;br /&gt;
== Visualisierung ==&lt;br /&gt;
Venn-Diagramme verdeutlichen diese Gesetze grafisch:  &lt;br /&gt;
* Die Vereinigungen und Durchschnitte entsprechen farblich markierten Bereichen.  &lt;br /&gt;
* Komplementbereiche sind die Flächen außerhalb der betrachteten Menge.&lt;br /&gt;
&lt;br /&gt;
== Zusammenfassung ==&lt;br /&gt;
* Mengenoperationen folgen festen algebraischen Gesetzen.  &lt;br /&gt;
* Diese Gesetze entsprechen den Regeln der Aussagenlogik.  &lt;br /&gt;
* Das **Dualitätsprinzip** erlaubt, aus jedem Gesetz sein komplementäres Gegenstück zu bilden.  &lt;br /&gt;
* Die **de Morgan’schen Gesetze** sind besonders zentral für logische und rechnerische Anwendungen.&lt;br /&gt;
&lt;br /&gt;
[[Category:Set Theory (Mengenlehre)]]&lt;/div&gt;</summary>
		<author><name>Bfh-sts</name></author>
	</entry>
	<entry>
		<id>https://bsccs.stoney-wiki.com/w/index.php?title=Vereinigung,_Durchschnitt,_Differenz_und_Komplement_(inkl._Disjunktheit)&amp;diff=123</id>
		<title>Vereinigung, Durchschnitt, Differenz und Komplement (inkl. Disjunktheit)</title>
		<link rel="alternate" type="text/html" href="https://bsccs.stoney-wiki.com/w/index.php?title=Vereinigung,_Durchschnitt,_Differenz_und_Komplement_(inkl._Disjunktheit)&amp;diff=123"/>
		<updated>2025-10-27T07:56:52Z</updated>

		<summary type="html">&lt;p&gt;Bfh-sts: Created page with &amp;quot;= Vereinigung, Durchschnitt, Differenz und Komplement = In der Mengenlehre werden neue Mengen oft durch **Operationen** auf bestehenden Mengen gebildet.   Die wichtigsten sind **Vereinigung**, **Durchschnitt**, **Komplement** und **Differenz**.  == Vereinigung == Die **Vereinigung** zweier Mengen A und B, geschrieben **A ∪ B**, ist die Menge aller Elemente, die in **A** oder in **B** enthalten sind (oder in beiden).  Formale Definition:  A ∪ B := {x : x ∈ A ∨ x...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Vereinigung, Durchschnitt, Differenz und Komplement =&lt;br /&gt;
In der Mengenlehre werden neue Mengen oft durch **Operationen** auf bestehenden Mengen gebildet.  &lt;br /&gt;
Die wichtigsten sind **Vereinigung**, **Durchschnitt**, **Komplement** und **Differenz**.&lt;br /&gt;
&lt;br /&gt;
== Vereinigung ==&lt;br /&gt;
Die **Vereinigung** zweier Mengen A und B, geschrieben **A ∪ B**, ist die Menge aller Elemente, die in **A** oder in **B** enthalten sind (oder in beiden).&lt;br /&gt;
&lt;br /&gt;
Formale Definition:&lt;br /&gt;
 A ∪ B := {x : x ∈ A ∨ x ∈ B}&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
 A = {1, 3, 5, 7}  &lt;br /&gt;
 B = {2, 4, 6, 8}  &lt;br /&gt;
 A ∪ B = {1, 2, 3, 4, 5, 6, 7, 8}&lt;br /&gt;
&lt;br /&gt;
Bemerkung:  &lt;br /&gt;
Das logische „oder“ (∨) ist **einschließend** zu verstehen – also „und/oder“.&lt;br /&gt;
&lt;br /&gt;
== Durchschnitt ==&lt;br /&gt;
Der **Durchschnitt** (oder **Schnitt**) zweier Mengen A und B, geschrieben **A ∩ B**, ist die Menge aller Elemente, die sowohl in **A** als auch in **B** enthalten sind.&lt;br /&gt;
&lt;br /&gt;
Formale Definition:&lt;br /&gt;
 A ∩ B := {x : x ∈ A ∧ x ∈ B}&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
 A = {α, β, γ, δ}  &lt;br /&gt;
 B = {γ, δ, ε}  &lt;br /&gt;
 A ∩ B = {γ, δ}&lt;br /&gt;
&lt;br /&gt;
Wenn A ∩ B = ∅, heißen A und B **disjunkt**.&lt;br /&gt;
&lt;br /&gt;
Beispiel:  &lt;br /&gt;
 A = {1, 3, 5, 7, …}, B = {0, 2, 4, 6, …}  &lt;br /&gt;
 A ∩ B = ∅ (ungerade und gerade Zahlen sind disjunkt)&lt;br /&gt;
&lt;br /&gt;
== Komplement ==&lt;br /&gt;
Sei U die **Universalmenge**.  &lt;br /&gt;
Das **Komplement** einer Menge A, geschrieben **Aᶜ**, besteht aus allen Elementen, die zu U gehören, aber **nicht** zu A.&lt;br /&gt;
&lt;br /&gt;
Formale Definition:&lt;br /&gt;
 Aᶜ := {x : x ∈ U ∧ x ∉ A}&lt;br /&gt;
&lt;br /&gt;
Beispiel:  &lt;br /&gt;
U = ℝ  &lt;br /&gt;
A = {x : x² ≤ 4}  &lt;br /&gt;
→ A = [−2, 2]  &lt;br /&gt;
Dann gilt:  &lt;br /&gt;
Aᶜ = (−∞, −2) ∪ (2, ∞)&lt;br /&gt;
&lt;br /&gt;
Ein weiteres Beispiel:&lt;br /&gt;
U = ℝ  &lt;br /&gt;
B = {x : x &amp;lt; 0}  &lt;br /&gt;
→ Bᶜ = {x : x ≥ 0}&lt;br /&gt;
&lt;br /&gt;
== Differenz ==&lt;br /&gt;
Die **Differenz** zweier Mengen A und B, geschrieben **A \ B**, ist die Menge aller Elemente, die in **A**, aber **nicht** in **B** sind.&lt;br /&gt;
&lt;br /&gt;
Formale Definition:&lt;br /&gt;
 A \ B := {x : x ∈ A ∧ x ∉ B}&lt;br /&gt;
&lt;br /&gt;
Beispiel:  &lt;br /&gt;
 A = {1, 3, 5}  &lt;br /&gt;
 B = {1, 2, 3}  &lt;br /&gt;
 A \ B = {5}&lt;br /&gt;
&lt;br /&gt;
== Übersicht der Operationen ==&lt;br /&gt;
| Operation | Bedeutung | Symbolische Schreibweise | Beispiel |&lt;br /&gt;
|------------|------------|--------------------------|-----------|&lt;br /&gt;
| Vereinigung | alle Elemente aus A oder B | A ∪ B | {1,2} ∪ {2,3} = {1,2,3} |&lt;br /&gt;
| Durchschnitt | nur gemeinsame Elemente | A ∩ B | {1,2,3} ∩ {2,3,4} = {2,3} |&lt;br /&gt;
| Komplement | alles, was nicht in A ist | Aᶜ | bei U=ℝ und A=[0,1]: Aᶜ = (−∞,0) ∪ (1,∞) |&lt;br /&gt;
| Differenz | A ohne Elemente aus B | A \ B | {1,2,3} \ {2,3} = {1} |&lt;br /&gt;
&lt;br /&gt;
== Disjunkte Mengen ==&lt;br /&gt;
Zwei Mengen heißen **disjunkt**, wenn sie keine gemeinsamen Elemente besitzen:&lt;br /&gt;
 A ∩ B = ∅&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
* A = {1, 2, 3}&lt;br /&gt;
* B = {4, 5, 6}&lt;br /&gt;
→ disjunkt&lt;br /&gt;
&lt;br /&gt;
== Venn-Diagramme ==&lt;br /&gt;
Mengenoperationen lassen sich grafisch darstellen.  &lt;br /&gt;
Kreise, die sich überlappen, repräsentieren Vereinigungen und Durchschnitte.  &lt;br /&gt;
Das Komplement wird durch den Bereich außerhalb eines Kreises dargestellt.&lt;br /&gt;
&lt;br /&gt;
== Zusammenfassung ==&lt;br /&gt;
* **A ∪ B**: alle Elemente, die in A oder B enthalten sind  &lt;br /&gt;
* **A ∩ B**: alle Elemente, die in A und B enthalten sind  &lt;br /&gt;
* **Aᶜ**: alle Elemente außerhalb von A (relativ zu U)  &lt;br /&gt;
* **A \ B**: alle Elemente in A, die nicht in B enthalten sind  &lt;br /&gt;
* Zwei Mengen sind **disjunkt**, wenn ihr Durchschnitt leer ist&lt;br /&gt;
&lt;br /&gt;
[[Category:Set Theory (Mengenlehre)]]&lt;/div&gt;</summary>
		<author><name>Bfh-sts</name></author>
	</entry>
	<entry>
		<id>https://bsccs.stoney-wiki.com/w/index.php?title=Teilmengen_und_Gleichheit_von_Mengen&amp;diff=122</id>
		<title>Teilmengen und Gleichheit von Mengen</title>
		<link rel="alternate" type="text/html" href="https://bsccs.stoney-wiki.com/w/index.php?title=Teilmengen_und_Gleichheit_von_Mengen&amp;diff=122"/>
		<updated>2025-10-27T07:54:32Z</updated>

		<summary type="html">&lt;p&gt;Bfh-sts: /* Beispiel 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Teilmengen und Gleichheit von Mengen =&lt;br /&gt;
Neben der Zugehörigkeit von Elementen zu Mengen spielt auch die Beziehung zwischen Mengen selbst eine zentrale Rolle.  &lt;br /&gt;
Dazu gehört insbesondere das Konzept der **Teilmengen**.&lt;br /&gt;
&lt;br /&gt;
== Definition: Teilmenge ==&lt;br /&gt;
Eine Menge **A** heißt **Teilmengen** von **B**, wenn jedes Element von **A** auch ein Element von **B** ist.&lt;br /&gt;
&lt;br /&gt;
Notation:&lt;br /&gt;
 A ⊆ B ⇔ ∀x (x ∈ A ⇒ x ∈ B)&lt;br /&gt;
&lt;br /&gt;
Wenn A keine Teilmenge von B ist, schreibt man:&lt;br /&gt;
 A ⊈ B&lt;br /&gt;
&lt;br /&gt;
Falls A ⊆ B gilt, aber A ≠ B, nennt man A eine **echte Teilmenge** von B:&lt;br /&gt;
 A ⊂ B&lt;br /&gt;
&lt;br /&gt;
== Beispiel ==&lt;br /&gt;
* {1, 2, 3} ⊆ {1, 2, 3, 4, 5}  &lt;br /&gt;
* {1, 2, 3, 4} ⊆ {1, 2, 3, 4}  &lt;br /&gt;
* {a, b} ⊂ {a, b, c, d}  &lt;br /&gt;
* {a, b, c, d} ⊆ {a, b, c, d}  &lt;br /&gt;
* {x} ⊄ {y, z}&lt;br /&gt;
&lt;br /&gt;
== Grundlegende Eigenschaften von Teilmengen ==&lt;br /&gt;
Für beliebige Mengen A, B, C und die leere Menge ∅ gilt:&lt;br /&gt;
&lt;br /&gt;
1. **Reflexivität:**  &lt;br /&gt;
   ∅ ⊆ A und A ⊆ A  &lt;br /&gt;
&lt;br /&gt;
2. **Transitivität:**  &lt;br /&gt;
   Wenn A ⊆ B und B ⊆ C, dann gilt A ⊆ C  &lt;br /&gt;
&lt;br /&gt;
3. **Antisymmetrie:**  &lt;br /&gt;
   A = B ⇔ (A ⊆ B und B ⊆ A)&lt;br /&gt;
&lt;br /&gt;
== Beispiele ==&lt;br /&gt;
=== Beispiel 1 ===&lt;br /&gt;
Welche der folgenden Aussagen sind richtig?&lt;br /&gt;
&lt;br /&gt;
* (a) {1, 2, 3, 4} ⊆ {1, 2, 3, 4}  &lt;br /&gt;
* (b) ∅ ⊆ ∅  &lt;br /&gt;
* (c) {1, 2, 3} ⊆ {1, 2, 4}&lt;br /&gt;
&lt;br /&gt;
Lösungen:&lt;br /&gt;
* (a) Wahr – jede Menge ist Teilmenge von sich selbst.  &lt;br /&gt;
* (b) Wahr – die leere Menge ist Teilmenge jeder Menge, auch von sich selbst.  &lt;br /&gt;
* (c) Falsch – 3 ∈ {1, 2, 3}, aber 3 ∉ {1, 2, 4}.&lt;br /&gt;
&lt;br /&gt;
== Darstellung durch Venn-Diagramme ==&lt;br /&gt;
Das Teilmengenverhältnis kann anschaulich dargestellt werden:&lt;br /&gt;
* Wenn A ⊆ B, liegt die Fläche von A vollständig innerhalb von B.&lt;br /&gt;
* Wenn A und B disjunkt sind, überschneiden sich ihre Flächen nicht.&lt;br /&gt;
&lt;br /&gt;
== Wichtige Sonderfälle ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;bash&#039;&amp;gt;&lt;br /&gt;
| Situation       | Bedeutung                                    |&lt;br /&gt;
|-----------------|----------------------------------------------|&lt;br /&gt;
| ∅ ⊆ A          | Leere Menge ist immer Teilmenge              |&lt;br /&gt;
| A ⊆ U           | Jede Menge ist Teilmenge der Universalmenge  |&lt;br /&gt;
| A ⊆ B und B ⊆ A | Dann gilt A = B                              |&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Zusammenhang mit Gleichheit ==&lt;br /&gt;
Das Teilmengenprinzip ist die Grundlage der **Gleichheitsdefinition**:&lt;br /&gt;
 A = B ⇔ (A ⊆ B ∧ B ⊆ A)&lt;br /&gt;
&lt;br /&gt;
Damit ist die Gleichheit zweier Mengen formal nichts anderes als gegenseitige Teilmengenbeziehung.&lt;br /&gt;
&lt;br /&gt;
== Zusammenfassung ==&lt;br /&gt;
* A ⊆ B bedeutet: Alle Elemente von A sind in B enthalten.  &lt;br /&gt;
* Die leere Menge ist Teilmenge jeder Menge.  &lt;br /&gt;
* A = B gilt genau dann, wenn A ⊆ B und B ⊆ A.  &lt;br /&gt;
* Teilmengen lassen sich visuell als vollständig enthaltene Bereiche darstellen.  &lt;br /&gt;
* Das Teilmengenprinzip ist ein fundamentales Werkzeug in der Mengenlehre.&lt;br /&gt;
&lt;br /&gt;
[[Category:Set Theory (Mengenlehre)]]&lt;/div&gt;</summary>
		<author><name>Bfh-sts</name></author>
	</entry>
	<entry>
		<id>https://bsccs.stoney-wiki.com/w/index.php?title=Teilmengen_und_Gleichheit_von_Mengen&amp;diff=121</id>
		<title>Teilmengen und Gleichheit von Mengen</title>
		<link rel="alternate" type="text/html" href="https://bsccs.stoney-wiki.com/w/index.php?title=Teilmengen_und_Gleichheit_von_Mengen&amp;diff=121"/>
		<updated>2025-10-27T07:54:19Z</updated>

		<summary type="html">&lt;p&gt;Bfh-sts: /* Beispiele */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Teilmengen und Gleichheit von Mengen =&lt;br /&gt;
Neben der Zugehörigkeit von Elementen zu Mengen spielt auch die Beziehung zwischen Mengen selbst eine zentrale Rolle.  &lt;br /&gt;
Dazu gehört insbesondere das Konzept der **Teilmengen**.&lt;br /&gt;
&lt;br /&gt;
== Definition: Teilmenge ==&lt;br /&gt;
Eine Menge **A** heißt **Teilmengen** von **B**, wenn jedes Element von **A** auch ein Element von **B** ist.&lt;br /&gt;
&lt;br /&gt;
Notation:&lt;br /&gt;
 A ⊆ B ⇔ ∀x (x ∈ A ⇒ x ∈ B)&lt;br /&gt;
&lt;br /&gt;
Wenn A keine Teilmenge von B ist, schreibt man:&lt;br /&gt;
 A ⊈ B&lt;br /&gt;
&lt;br /&gt;
Falls A ⊆ B gilt, aber A ≠ B, nennt man A eine **echte Teilmenge** von B:&lt;br /&gt;
 A ⊂ B&lt;br /&gt;
&lt;br /&gt;
== Beispiel ==&lt;br /&gt;
* {1, 2, 3} ⊆ {1, 2, 3, 4, 5}  &lt;br /&gt;
* {1, 2, 3, 4} ⊆ {1, 2, 3, 4}  &lt;br /&gt;
* {a, b} ⊂ {a, b, c, d}  &lt;br /&gt;
* {a, b, c, d} ⊆ {a, b, c, d}  &lt;br /&gt;
* {x} ⊄ {y, z}&lt;br /&gt;
&lt;br /&gt;
== Grundlegende Eigenschaften von Teilmengen ==&lt;br /&gt;
Für beliebige Mengen A, B, C und die leere Menge ∅ gilt:&lt;br /&gt;
&lt;br /&gt;
1. **Reflexivität:**  &lt;br /&gt;
   ∅ ⊆ A und A ⊆ A  &lt;br /&gt;
&lt;br /&gt;
2. **Transitivität:**  &lt;br /&gt;
   Wenn A ⊆ B und B ⊆ C, dann gilt A ⊆ C  &lt;br /&gt;
&lt;br /&gt;
3. **Antisymmetrie:**  &lt;br /&gt;
   A = B ⇔ (A ⊆ B und B ⊆ A)&lt;br /&gt;
&lt;br /&gt;
== Beispiele ==&lt;br /&gt;
=== Beispiel 1 ===&lt;br /&gt;
Welche der folgenden Aussagen sind richtig?&lt;br /&gt;
&lt;br /&gt;
* (a) {1, 2, 3, 4} ⊆ {1, 2, 3, 4}  &lt;br /&gt;
* (b) ∅ ⊆ ∅  &lt;br /&gt;
* (c) {1, 2, 3} ⊆ {1, 2, 4}&lt;br /&gt;
&lt;br /&gt;
**Lösungen:**&lt;br /&gt;
* (a) Wahr – jede Menge ist Teilmenge von sich selbst.  &lt;br /&gt;
* (b) Wahr – die leere Menge ist Teilmenge jeder Menge, auch von sich selbst.  &lt;br /&gt;
* (c) Falsch – 3 ∈ {1, 2, 3}, aber 3 ∉ {1, 2, 4}.&lt;br /&gt;
&lt;br /&gt;
== Darstellung durch Venn-Diagramme ==&lt;br /&gt;
Das Teilmengenverhältnis kann anschaulich dargestellt werden:&lt;br /&gt;
* Wenn A ⊆ B, liegt die Fläche von A vollständig innerhalb von B.&lt;br /&gt;
* Wenn A und B disjunkt sind, überschneiden sich ihre Flächen nicht.&lt;br /&gt;
&lt;br /&gt;
== Wichtige Sonderfälle ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;bash&#039;&amp;gt;&lt;br /&gt;
| Situation       | Bedeutung                                    |&lt;br /&gt;
|-----------------|----------------------------------------------|&lt;br /&gt;
| ∅ ⊆ A          | Leere Menge ist immer Teilmenge              |&lt;br /&gt;
| A ⊆ U           | Jede Menge ist Teilmenge der Universalmenge  |&lt;br /&gt;
| A ⊆ B und B ⊆ A | Dann gilt A = B                              |&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Zusammenhang mit Gleichheit ==&lt;br /&gt;
Das Teilmengenprinzip ist die Grundlage der **Gleichheitsdefinition**:&lt;br /&gt;
 A = B ⇔ (A ⊆ B ∧ B ⊆ A)&lt;br /&gt;
&lt;br /&gt;
Damit ist die Gleichheit zweier Mengen formal nichts anderes als gegenseitige Teilmengenbeziehung.&lt;br /&gt;
&lt;br /&gt;
== Zusammenfassung ==&lt;br /&gt;
* A ⊆ B bedeutet: Alle Elemente von A sind in B enthalten.  &lt;br /&gt;
* Die leere Menge ist Teilmenge jeder Menge.  &lt;br /&gt;
* A = B gilt genau dann, wenn A ⊆ B und B ⊆ A.  &lt;br /&gt;
* Teilmengen lassen sich visuell als vollständig enthaltene Bereiche darstellen.  &lt;br /&gt;
* Das Teilmengenprinzip ist ein fundamentales Werkzeug in der Mengenlehre.&lt;br /&gt;
&lt;br /&gt;
[[Category:Set Theory (Mengenlehre)]]&lt;/div&gt;</summary>
		<author><name>Bfh-sts</name></author>
	</entry>
	<entry>
		<id>https://bsccs.stoney-wiki.com/w/index.php?title=Teilmengen_und_Gleichheit_von_Mengen&amp;diff=120</id>
		<title>Teilmengen und Gleichheit von Mengen</title>
		<link rel="alternate" type="text/html" href="https://bsccs.stoney-wiki.com/w/index.php?title=Teilmengen_und_Gleichheit_von_Mengen&amp;diff=120"/>
		<updated>2025-10-27T07:51:38Z</updated>

		<summary type="html">&lt;p&gt;Bfh-sts: /* Wichtige Sonderfälle */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Teilmengen und Gleichheit von Mengen =&lt;br /&gt;
Neben der Zugehörigkeit von Elementen zu Mengen spielt auch die Beziehung zwischen Mengen selbst eine zentrale Rolle.  &lt;br /&gt;
Dazu gehört insbesondere das Konzept der **Teilmengen**.&lt;br /&gt;
&lt;br /&gt;
== Definition: Teilmenge ==&lt;br /&gt;
Eine Menge **A** heißt **Teilmengen** von **B**, wenn jedes Element von **A** auch ein Element von **B** ist.&lt;br /&gt;
&lt;br /&gt;
Notation:&lt;br /&gt;
 A ⊆ B ⇔ ∀x (x ∈ A ⇒ x ∈ B)&lt;br /&gt;
&lt;br /&gt;
Wenn A keine Teilmenge von B ist, schreibt man:&lt;br /&gt;
 A ⊈ B&lt;br /&gt;
&lt;br /&gt;
Falls A ⊆ B gilt, aber A ≠ B, nennt man A eine **echte Teilmenge** von B:&lt;br /&gt;
 A ⊂ B&lt;br /&gt;
&lt;br /&gt;
== Beispiel ==&lt;br /&gt;
* {1, 2, 3} ⊆ {1, 2, 3, 4, 5}  &lt;br /&gt;
* {1, 2, 3, 4} ⊆ {1, 2, 3, 4}  &lt;br /&gt;
* {a, b} ⊂ {a, b, c, d}  &lt;br /&gt;
* {a, b, c, d} ⊆ {a, b, c, d}  &lt;br /&gt;
* {x} ⊄ {y, z}&lt;br /&gt;
&lt;br /&gt;
== Grundlegende Eigenschaften von Teilmengen ==&lt;br /&gt;
Für beliebige Mengen A, B, C und die leere Menge ∅ gilt:&lt;br /&gt;
&lt;br /&gt;
1. **Reflexivität:**  &lt;br /&gt;
   ∅ ⊆ A und A ⊆ A  &lt;br /&gt;
&lt;br /&gt;
2. **Transitivität:**  &lt;br /&gt;
   Wenn A ⊆ B und B ⊆ C, dann gilt A ⊆ C  &lt;br /&gt;
&lt;br /&gt;
3. **Antisymmetrie:**  &lt;br /&gt;
   A = B ⇔ (A ⊆ B und B ⊆ A)&lt;br /&gt;
&lt;br /&gt;
== Beispiele ==&lt;br /&gt;
=== Beispiel 1 ===&lt;br /&gt;
Welche der folgenden Aussagen sind richtig?&lt;br /&gt;
&lt;br /&gt;
(a) {1, 2, 3, 4} ⊆ {1, 2, 3, 4}  &lt;br /&gt;
(b) ∅ ⊆ ∅  &lt;br /&gt;
(c) {1, 2, 3} ⊆ {1, 2, 4}&lt;br /&gt;
&lt;br /&gt;
**Lösungen:**&lt;br /&gt;
* (a) Wahr – jede Menge ist Teilmenge von sich selbst.  &lt;br /&gt;
* (b) Wahr – die leere Menge ist Teilmenge jeder Menge, auch von sich selbst.  &lt;br /&gt;
* (c) Falsch – 3 ∈ {1, 2, 3}, aber 3 ∉ {1, 2, 4}.&lt;br /&gt;
&lt;br /&gt;
== Darstellung durch Venn-Diagramme ==&lt;br /&gt;
Das Teilmengenverhältnis kann anschaulich dargestellt werden:&lt;br /&gt;
* Wenn A ⊆ B, liegt die Fläche von A vollständig innerhalb von B.&lt;br /&gt;
* Wenn A und B disjunkt sind, überschneiden sich ihre Flächen nicht.&lt;br /&gt;
&lt;br /&gt;
== Wichtige Sonderfälle ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;bash&#039;&amp;gt;&lt;br /&gt;
| Situation       | Bedeutung                                    |&lt;br /&gt;
|-----------------|----------------------------------------------|&lt;br /&gt;
| ∅ ⊆ A          | Leere Menge ist immer Teilmenge              |&lt;br /&gt;
| A ⊆ U           | Jede Menge ist Teilmenge der Universalmenge  |&lt;br /&gt;
| A ⊆ B und B ⊆ A | Dann gilt A = B                              |&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Zusammenhang mit Gleichheit ==&lt;br /&gt;
Das Teilmengenprinzip ist die Grundlage der **Gleichheitsdefinition**:&lt;br /&gt;
 A = B ⇔ (A ⊆ B ∧ B ⊆ A)&lt;br /&gt;
&lt;br /&gt;
Damit ist die Gleichheit zweier Mengen formal nichts anderes als gegenseitige Teilmengenbeziehung.&lt;br /&gt;
&lt;br /&gt;
== Zusammenfassung ==&lt;br /&gt;
* A ⊆ B bedeutet: Alle Elemente von A sind in B enthalten.  &lt;br /&gt;
* Die leere Menge ist Teilmenge jeder Menge.  &lt;br /&gt;
* A = B gilt genau dann, wenn A ⊆ B und B ⊆ A.  &lt;br /&gt;
* Teilmengen lassen sich visuell als vollständig enthaltene Bereiche darstellen.  &lt;br /&gt;
* Das Teilmengenprinzip ist ein fundamentales Werkzeug in der Mengenlehre.&lt;br /&gt;
&lt;br /&gt;
[[Category:Set Theory (Mengenlehre)]]&lt;/div&gt;</summary>
		<author><name>Bfh-sts</name></author>
	</entry>
	<entry>
		<id>https://bsccs.stoney-wiki.com/w/index.php?title=Teilmengen_und_Gleichheit_von_Mengen&amp;diff=119</id>
		<title>Teilmengen und Gleichheit von Mengen</title>
		<link rel="alternate" type="text/html" href="https://bsccs.stoney-wiki.com/w/index.php?title=Teilmengen_und_Gleichheit_von_Mengen&amp;diff=119"/>
		<updated>2025-10-27T07:48:48Z</updated>

		<summary type="html">&lt;p&gt;Bfh-sts: Created page with &amp;quot;= Teilmengen und Gleichheit von Mengen = Neben der Zugehörigkeit von Elementen zu Mengen spielt auch die Beziehung zwischen Mengen selbst eine zentrale Rolle.   Dazu gehört insbesondere das Konzept der **Teilmengen**.  == Definition: Teilmenge == Eine Menge **A** heißt **Teilmengen** von **B**, wenn jedes Element von **A** auch ein Element von **B** ist.  Notation:  A ⊆ B ⇔ ∀x (x ∈ A ⇒ x ∈ B)  Wenn A keine Teilmenge von B ist, schreibt man:  A ⊈ B  Falls...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Teilmengen und Gleichheit von Mengen =&lt;br /&gt;
Neben der Zugehörigkeit von Elementen zu Mengen spielt auch die Beziehung zwischen Mengen selbst eine zentrale Rolle.  &lt;br /&gt;
Dazu gehört insbesondere das Konzept der **Teilmengen**.&lt;br /&gt;
&lt;br /&gt;
== Definition: Teilmenge ==&lt;br /&gt;
Eine Menge **A** heißt **Teilmengen** von **B**, wenn jedes Element von **A** auch ein Element von **B** ist.&lt;br /&gt;
&lt;br /&gt;
Notation:&lt;br /&gt;
 A ⊆ B ⇔ ∀x (x ∈ A ⇒ x ∈ B)&lt;br /&gt;
&lt;br /&gt;
Wenn A keine Teilmenge von B ist, schreibt man:&lt;br /&gt;
 A ⊈ B&lt;br /&gt;
&lt;br /&gt;
Falls A ⊆ B gilt, aber A ≠ B, nennt man A eine **echte Teilmenge** von B:&lt;br /&gt;
 A ⊂ B&lt;br /&gt;
&lt;br /&gt;
== Beispiel ==&lt;br /&gt;
* {1, 2, 3} ⊆ {1, 2, 3, 4, 5}  &lt;br /&gt;
* {1, 2, 3, 4} ⊆ {1, 2, 3, 4}  &lt;br /&gt;
* {a, b} ⊂ {a, b, c, d}  &lt;br /&gt;
* {a, b, c, d} ⊆ {a, b, c, d}  &lt;br /&gt;
* {x} ⊄ {y, z}&lt;br /&gt;
&lt;br /&gt;
== Grundlegende Eigenschaften von Teilmengen ==&lt;br /&gt;
Für beliebige Mengen A, B, C und die leere Menge ∅ gilt:&lt;br /&gt;
&lt;br /&gt;
1. **Reflexivität:**  &lt;br /&gt;
   ∅ ⊆ A und A ⊆ A  &lt;br /&gt;
&lt;br /&gt;
2. **Transitivität:**  &lt;br /&gt;
   Wenn A ⊆ B und B ⊆ C, dann gilt A ⊆ C  &lt;br /&gt;
&lt;br /&gt;
3. **Antisymmetrie:**  &lt;br /&gt;
   A = B ⇔ (A ⊆ B und B ⊆ A)&lt;br /&gt;
&lt;br /&gt;
== Beispiele ==&lt;br /&gt;
=== Beispiel 1 ===&lt;br /&gt;
Welche der folgenden Aussagen sind richtig?&lt;br /&gt;
&lt;br /&gt;
(a) {1, 2, 3, 4} ⊆ {1, 2, 3, 4}  &lt;br /&gt;
(b) ∅ ⊆ ∅  &lt;br /&gt;
(c) {1, 2, 3} ⊆ {1, 2, 4}&lt;br /&gt;
&lt;br /&gt;
**Lösungen:**&lt;br /&gt;
* (a) Wahr – jede Menge ist Teilmenge von sich selbst.  &lt;br /&gt;
* (b) Wahr – die leere Menge ist Teilmenge jeder Menge, auch von sich selbst.  &lt;br /&gt;
* (c) Falsch – 3 ∈ {1, 2, 3}, aber 3 ∉ {1, 2, 4}.&lt;br /&gt;
&lt;br /&gt;
== Darstellung durch Venn-Diagramme ==&lt;br /&gt;
Das Teilmengenverhältnis kann anschaulich dargestellt werden:&lt;br /&gt;
* Wenn A ⊆ B, liegt die Fläche von A vollständig innerhalb von B.&lt;br /&gt;
* Wenn A und B disjunkt sind, überschneiden sich ihre Flächen nicht.&lt;br /&gt;
&lt;br /&gt;
== Wichtige Sonderfälle ==&lt;br /&gt;
| Situation | Bedeutung |&lt;br /&gt;
|------------|------------|&lt;br /&gt;
| ∅ ⊆ A | Leere Menge ist immer Teilmenge |&lt;br /&gt;
| A ⊆ U | Jede Menge ist Teilmenge der Universalmenge |&lt;br /&gt;
| A ⊆ B und B ⊆ A | Dann gilt A = B |&lt;br /&gt;
&lt;br /&gt;
== Zusammenhang mit Gleichheit ==&lt;br /&gt;
Das Teilmengenprinzip ist die Grundlage der **Gleichheitsdefinition**:&lt;br /&gt;
 A = B ⇔ (A ⊆ B ∧ B ⊆ A)&lt;br /&gt;
&lt;br /&gt;
Damit ist die Gleichheit zweier Mengen formal nichts anderes als gegenseitige Teilmengenbeziehung.&lt;br /&gt;
&lt;br /&gt;
== Zusammenfassung ==&lt;br /&gt;
* A ⊆ B bedeutet: Alle Elemente von A sind in B enthalten.  &lt;br /&gt;
* Die leere Menge ist Teilmenge jeder Menge.  &lt;br /&gt;
* A = B gilt genau dann, wenn A ⊆ B und B ⊆ A.  &lt;br /&gt;
* Teilmengen lassen sich visuell als vollständig enthaltene Bereiche darstellen.  &lt;br /&gt;
* Das Teilmengenprinzip ist ein fundamentales Werkzeug in der Mengenlehre.&lt;br /&gt;
&lt;br /&gt;
[[Category:Set Theory (Mengenlehre)]]&lt;/div&gt;</summary>
		<author><name>Bfh-sts</name></author>
	</entry>
	<entry>
		<id>https://bsccs.stoney-wiki.com/w/index.php?title=Mengen_und_Elemente:_Mitgliedschaft,_Extensionalit%C3%A4t,_Definitionen&amp;diff=118</id>
		<title>Mengen und Elemente: Mitgliedschaft, Extensionalität, Definitionen</title>
		<link rel="alternate" type="text/html" href="https://bsccs.stoney-wiki.com/w/index.php?title=Mengen_und_Elemente:_Mitgliedschaft,_Extensionalit%C3%A4t,_Definitionen&amp;diff=118"/>
		<updated>2025-10-27T07:47:25Z</updated>

		<summary type="html">&lt;p&gt;Bfh-sts: Created page with &amp;quot;= Mengen und Elemente = Die Grundidee der Mengenlehre besteht darin, Objekte – genannt **Elemente** – zu einer **Menge** zusammenzufassen.   Diese Elemente können Zahlen, Buchstaben, Personen oder sogar andere Mengen sein.  == Elemente und Zugehörigkeit == Die Zugehörigkeit eines Elements zu einer Menge wird mit dem Symbol **∈** ausgedrückt.  Beispiele: * 3 ∈ {1, 2, 3, 4, 5} * a ∈ {a, b, c} * 6 ∉ {1, 2, 3, 4, 5}  Die Zugehörigkeit ist immer eindeutig:...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Mengen und Elemente =&lt;br /&gt;
Die Grundidee der Mengenlehre besteht darin, Objekte – genannt **Elemente** – zu einer **Menge** zusammenzufassen.  &lt;br /&gt;
Diese Elemente können Zahlen, Buchstaben, Personen oder sogar andere Mengen sein.&lt;br /&gt;
&lt;br /&gt;
== Elemente und Zugehörigkeit ==&lt;br /&gt;
Die Zugehörigkeit eines Elements zu einer Menge wird mit dem Symbol **∈** ausgedrückt.&lt;br /&gt;
&lt;br /&gt;
Beispiele:&lt;br /&gt;
* 3 ∈ {1, 2, 3, 4, 5}&lt;br /&gt;
* a ∈ {a, b, c}&lt;br /&gt;
* 6 ∉ {1, 2, 3, 4, 5}&lt;br /&gt;
&lt;br /&gt;
Die Zugehörigkeit ist immer eindeutig:  &lt;br /&gt;
Ein Element ist entweder in einer Menge enthalten oder nicht.&lt;br /&gt;
&lt;br /&gt;
== Das Extensionalitätsaxiom ==&lt;br /&gt;
Zwei Mengen sind gleich, wenn sie dieselben Elemente enthalten.  &lt;br /&gt;
Formell:&lt;br /&gt;
 A = B ⇔ ∀x: (x ∈ A ⇔ x ∈ B)&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
 A = {1, 2, 3}  &lt;br /&gt;
 B = {3, 2, 1}  &lt;br /&gt;
Da beide Mengen dieselben Elemente enthalten, gilt:  &lt;br /&gt;
 A = B&lt;br /&gt;
&lt;br /&gt;
== Definition von Mengen ==&lt;br /&gt;
Es gibt zwei grundlegende Arten, eine Menge zu definieren:&lt;br /&gt;
&lt;br /&gt;
=== 1. Explizite (aufzählende) Definition ===&lt;br /&gt;
Die Elemente werden direkt angegeben:&lt;br /&gt;
 A = {a, b}  &lt;br /&gt;
 B = {1, 2, 3, 4, 5}  &lt;br /&gt;
 C = {1, 2, a, b, c}&lt;br /&gt;
&lt;br /&gt;
=== 2. Intensionale (beschreibende) Definition ===&lt;br /&gt;
Die Elemente werden durch eine Eigenschaft beschrieben:&lt;br /&gt;
 B = {n : n ∈ ℤ ∧ n &amp;gt; 5}  &lt;br /&gt;
Das liest man:  &lt;br /&gt;
„B ist die Menge aller ganzen Zahlen n, für die n größer als 5 ist.“&lt;br /&gt;
&lt;br /&gt;
Hierbei:&lt;br /&gt;
* Der Buchstabe (z. B. n) steht für ein typisches Element.&lt;br /&gt;
* Der Doppelpunkt „:“ bedeutet „mit der Eigenschaft“.&lt;br /&gt;
&lt;br /&gt;
== Beispiele ==&lt;br /&gt;
=== Beispiel 1 ===&lt;br /&gt;
Welche der folgenden Mengen sind gleich?&lt;br /&gt;
 A = {a, b}  &lt;br /&gt;
 B = {b, a}  &lt;br /&gt;
 C = {a}  &lt;br /&gt;
 D = {1, 2, 3, 4, 5}  &lt;br /&gt;
 E = {n : n ∈ ℤ ∧ 1 ≤ n ≤ 5}  &lt;br /&gt;
 F = {x : x ∈ ℝ ∧ x² − 3x + 2 = 0}  &lt;br /&gt;
 G = {1, 4/2}&lt;br /&gt;
&lt;br /&gt;
Lösungsidee:&lt;br /&gt;
* A und B enthalten dieselben Elemente → A = B  &lt;br /&gt;
* D und E beschreiben dieselbe Menge → D = E  &lt;br /&gt;
* F enthält die Nullstellen der Gleichung x² − 3x + 2 = 0 → F = {1, 2}  &lt;br /&gt;
* G = {1, 2}  &lt;br /&gt;
→ F = G&lt;br /&gt;
&lt;br /&gt;
=== Beispiel 2 ===&lt;br /&gt;
A = {x : x ∈ ℝ ∧ x² + 1 = 0}  &lt;br /&gt;
Da es keine reellen Zahlen gibt, deren Quadrat + 1 = 0 ergibt, ist:  &lt;br /&gt;
A = ∅&lt;br /&gt;
&lt;br /&gt;
== Leere Menge ==&lt;br /&gt;
Die **leere Menge** ist die Menge ohne Elemente.  &lt;br /&gt;
Notation:&lt;br /&gt;
 ∅ oder {}&lt;br /&gt;
&lt;br /&gt;
Eigenschaften:&lt;br /&gt;
* ∅ ⊆ A für jede Menge A&lt;br /&gt;
* |∅| = 0&lt;br /&gt;
&lt;br /&gt;
== Universalmenge ==&lt;br /&gt;
Die **Universalmenge (U)** enthält alle in einem bestimmten Kontext relevanten Elemente.  &lt;br /&gt;
Beispiele:&lt;br /&gt;
* In der Geometrie: alle Punkte einer Ebene  &lt;br /&gt;
* In der Analysis: alle reellen Zahlen  &lt;br /&gt;
* In der Informatik: alle möglichen Zustände oder Datenelemente&lt;br /&gt;
&lt;br /&gt;
Wenn nichts anderes angegeben ist, bezeichnen wir die Universalmenge mit **U**.&lt;br /&gt;
&lt;br /&gt;
== Zusammenfassung ==&lt;br /&gt;
* Elemente sind die Bausteine einer Menge.  &lt;br /&gt;
* Eine Menge ist durch ihre Elemente eindeutig bestimmt (Extensionalitätsaxiom).  &lt;br /&gt;
* Mengen können explizit oder durch Eigenschaften beschrieben werden.  &lt;br /&gt;
* Die leere Menge (∅) enthält keine Elemente.  &lt;br /&gt;
* Die Universalmenge (U) enthält alle betrachteten Elemente.&lt;br /&gt;
&lt;br /&gt;
[[Category:Set Theory (Mengenlehre)]]&lt;/div&gt;</summary>
		<author><name>Bfh-sts</name></author>
	</entry>
	<entry>
		<id>https://bsccs.stoney-wiki.com/w/index.php?title=Mengenlehre:_%C3%9Cberblick_%26_Notation&amp;diff=117</id>
		<title>Mengenlehre: Überblick &amp; Notation</title>
		<link rel="alternate" type="text/html" href="https://bsccs.stoney-wiki.com/w/index.php?title=Mengenlehre:_%C3%9Cberblick_%26_Notation&amp;diff=117"/>
		<updated>2025-10-27T07:45:39Z</updated>

		<summary type="html">&lt;p&gt;Bfh-sts: Created page with &amp;quot;= Mengenlehre: Überblick &amp;amp; Bedeutung = Die Mengenlehre ist ein grundlegendes Teilgebiet der Mathematik, das von **Georg Cantor (1845–1918)** im 19. Jahrhundert entwickelt wurde.   Sie bildet das Fundament nahezu aller modernen mathematischen Disziplinen.   Jede mathematische Struktur – von Zahlen über Funktionen bis zu geometrischen Objekten – kann in der Sprache der Mengenlehre formuliert werden.  == Ursprung und Idee == Cantor definierte den Begriff der Menge f...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Mengenlehre: Überblick &amp;amp; Bedeutung =&lt;br /&gt;
Die Mengenlehre ist ein grundlegendes Teilgebiet der Mathematik, das von **Georg Cantor (1845–1918)** im 19. Jahrhundert entwickelt wurde.  &lt;br /&gt;
Sie bildet das Fundament nahezu aller modernen mathematischen Disziplinen.  &lt;br /&gt;
Jede mathematische Struktur – von Zahlen über Funktionen bis zu geometrischen Objekten – kann in der Sprache der Mengenlehre formuliert werden.&lt;br /&gt;
&lt;br /&gt;
== Ursprung und Idee ==&lt;br /&gt;
Cantor definierte den Begriff der Menge folgendermaßen:&lt;br /&gt;
&amp;gt; Unter einer Menge verstehen wir jede Zusammenfassung von bestimmten, wohlunterschiedlichen Objekten unserer Anschauung oder unseres Denkens (welche Elemente der Menge genannt werden) zu einem Ganzen.&lt;br /&gt;
&lt;br /&gt;
Diese Definition erlaubt es, sowohl konkrete als auch abstrakte Objekte als Elemente zu betrachten.  &lt;br /&gt;
Beispiele für Mengen:&lt;br /&gt;
* Die Menge der Planeten im Sonnensystem  &lt;br /&gt;
* Die Menge der geraden natürlichen Zahlen größer als 2, die sich als Summe zweier Primzahlen schreiben lassen  &lt;br /&gt;
* Die Menge aller reellen Zahlen x mit x &amp;gt; 5  &lt;br /&gt;
* Die Menge der Studierenden an der BFH-TI Biel  &lt;br /&gt;
&lt;br /&gt;
== Notation ==&lt;br /&gt;
* Mengen werden mit **Großbuchstaben** bezeichnet (A, B, C, …).  &lt;br /&gt;
* Elemente werden mit **Kleinbuchstaben** bezeichnet (a, b, c, …).  &lt;br /&gt;
* Die Aussage „a ist Element von A“ schreibt man als:  &lt;br /&gt;
  a ∈ A  &lt;br /&gt;
  Die Negation lautet:  &lt;br /&gt;
  a ∉ A  &lt;br /&gt;
&lt;br /&gt;
Eine Menge ist durch ihre Elemente vollständig bestimmt.  &lt;br /&gt;
Dieses Prinzip wird als **Extensionalitätsaxiom** bezeichnet:&lt;br /&gt;
&amp;gt; Zwei Mengen A und B sind genau dann gleich, wenn sie dieselben Elemente enthalten.&lt;br /&gt;
&lt;br /&gt;
Formal:&lt;br /&gt;
 A = B ⇔ ∀x: (x ∈ A ⇔ x ∈ B)&lt;br /&gt;
&lt;br /&gt;
== Arten der Mengendefinition ==&lt;br /&gt;
Es gibt zwei grundlegende Arten, Mengen zu definieren:&lt;br /&gt;
&lt;br /&gt;
=== 1. Aufzählende (explizite) Definition ===&lt;br /&gt;
Alle Elemente werden direkt aufgelistet:&lt;br /&gt;
 A = {a, b, x, y, z}  &lt;br /&gt;
 B = {1, 2, 3, 4, 5}&lt;br /&gt;
&lt;br /&gt;
=== 2. Beschreibende (intensionale) Definition ===&lt;br /&gt;
Die Elemente werden durch eine Eigenschaft charakterisiert:&lt;br /&gt;
 B = {n : n ∈ ℤ ∧ n &amp;gt; 5}  &lt;br /&gt;
„B ist die Menge aller ganzen Zahlen n, für die n &amp;gt; 5 gilt.“&lt;br /&gt;
&lt;br /&gt;
Der Doppelpunkt „:“ bedeutet „mit der Eigenschaft“ oder „so dass“.&lt;br /&gt;
&lt;br /&gt;
== Wichtige Symbole ==&lt;br /&gt;
| Symbol | Bedeutung |&lt;br /&gt;
|---------|------------|&lt;br /&gt;
| ∈ | ist Element von |&lt;br /&gt;
| ∉ | ist kein Element von |&lt;br /&gt;
| ⊆ | ist Teilmenge von |&lt;br /&gt;
| ⊂ | ist echte Teilmenge von |&lt;br /&gt;
| ∅ | leere Menge |&lt;br /&gt;
| U | Universalmenge |&lt;br /&gt;
&lt;br /&gt;
== Leere Menge und Universalmenge ==&lt;br /&gt;
* **Leere Menge (∅)**: enthält keine Elemente.  &lt;br /&gt;
  ∅ = {}  &lt;br /&gt;
* **Universalmenge (U)**: enthält alle in einem Kontext betrachteten Objekte.  &lt;br /&gt;
  Beispiele:&lt;br /&gt;
  * In der Geometrie: alle Punkte der Ebene  &lt;br /&gt;
  * In der Analysis: alle reellen Zahlen&lt;br /&gt;
&lt;br /&gt;
== Bedeutung in der Informatik ==&lt;br /&gt;
Mengen sind auch in der Informatik zentral:&lt;br /&gt;
* zur Beschreibung von Zustandsräumen  &lt;br /&gt;
* zur Definition von Datenmengen und Relationen  &lt;br /&gt;
* für logische Operationen (UND, ODER, NICHT) in Boolescher Algebra  &lt;br /&gt;
* als Grundlage für Datenbanktheorie und Mengenoperationen (SELECT, UNION, INTERSECT)&lt;br /&gt;
&lt;br /&gt;
== Zusammenfassung ==&lt;br /&gt;
* Die Mengenlehre ist das Fundament der Mathematik.  &lt;br /&gt;
* Mengen sind Sammlungen von klar unterscheidbaren Objekten.  &lt;br /&gt;
* Die Mitgliedschaft (∈) ist das zentrale Konzept.  &lt;br /&gt;
* Mengen können durch Aufzählung oder Eigenschaft definiert werden.  &lt;br /&gt;
* Leere Menge (∅) und Universalmenge (U) sind wichtige Spezialfälle.&lt;br /&gt;
&lt;br /&gt;
[[Category:Set Theory (Mengenlehre)]]&lt;/div&gt;</summary>
		<author><name>Bfh-sts</name></author>
	</entry>
	<entry>
		<id>https://bsccs.stoney-wiki.com/w/index.php?title=Category:Set_Theory_(Mengenlehre)&amp;diff=116</id>
		<title>Category:Set Theory (Mengenlehre)</title>
		<link rel="alternate" type="text/html" href="https://bsccs.stoney-wiki.com/w/index.php?title=Category:Set_Theory_(Mengenlehre)&amp;diff=116"/>
		<updated>2025-10-27T07:43:48Z</updated>

		<summary type="html">&lt;p&gt;Bfh-sts: Created page with &amp;quot;Diese Kategorie deckt grundlegende Inhalte der Mengenlehre ab: Definitionen, Notation, Teilmengen, Vereinigungen/Schnitte/Komplemente, Mengenalgebra und Dualität, Potenzmengen und Partitionen, kartesische Produkte und Tupel sowie endliche Mengen und die Einschluss-Ausschluss-Formel.  == Seiten == * Mengenlehre: Überblick &amp;amp; Notation * Mengen und Elemente: Mitgliedschaft, Extensionalität, Definitionen * Teilmengen und Gleichheit von Mengen * Vereinigung, D...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Diese Kategorie deckt grundlegende Inhalte der Mengenlehre ab: Definitionen, Notation, Teilmengen, Vereinigungen/Schnitte/Komplemente, Mengenalgebra und Dualität, Potenzmengen und Partitionen, kartesische Produkte und Tupel sowie endliche Mengen und die Einschluss-Ausschluss-Formel.&lt;br /&gt;
&lt;br /&gt;
== Seiten ==&lt;br /&gt;
* [[Mengenlehre: Überblick &amp;amp; Notation]]&lt;br /&gt;
* [[Mengen und Elemente: Mitgliedschaft, Extensionalität, Definitionen]]&lt;br /&gt;
* [[Teilmengen und Gleichheit von Mengen]]&lt;br /&gt;
* [[Vereinigung, Durchschnitt, Differenz und Komplement (inkl. Disjunktheit)]]&lt;br /&gt;
* [[Mengenalgebra &amp;amp; Dualität: Gesetze und de Morgan]]&lt;br /&gt;
* [[Mengensysteme, Potenzmenge &amp;amp; Partitionen]]&lt;br /&gt;
* [[Geordnete Paare, n-Tupel &amp;amp; kartesische Produkte]]&lt;br /&gt;
* [[Endliche Mengen &amp;amp; Einschluss-Ausschluss-Prinzip]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Diskrete Mathematik I (BZG1155pa) 25/26]]&lt;/div&gt;</summary>
		<author><name>Bfh-sts</name></author>
	</entry>
	<entry>
		<id>https://bsccs.stoney-wiki.com/w/index.php?title=Category:Diskrete_Mathematik_I_(BZG1155pa)_25/26&amp;diff=115</id>
		<title>Category:Diskrete Mathematik I (BZG1155pa) 25/26</title>
		<link rel="alternate" type="text/html" href="https://bsccs.stoney-wiki.com/w/index.php?title=Category:Diskrete_Mathematik_I_(BZG1155pa)_25/26&amp;diff=115"/>
		<updated>2025-10-27T07:29:58Z</updated>

		<summary type="html">&lt;p&gt;Bfh-sts: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
This is the category of the BFH module Diskrete Mathematik I (BZG1155pa) 25/26.&lt;br /&gt;
&lt;br /&gt;
= Topics =&lt;br /&gt;
* [[:Category: Propositional logic (Aussagenlogik)‎]]&lt;br /&gt;
* [[:Category: Set Theory (Mengenlehre)‎]]&lt;br /&gt;
&lt;br /&gt;
== Propositional logic - Exercises ==&lt;br /&gt;
* [[Exercises - 01 Kontrollaufgaben]]&lt;br /&gt;
* [[Exercises - 02 Kontrollaufgaben]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Sidebar]]&lt;/div&gt;</summary>
		<author><name>Bfh-sts</name></author>
	</entry>
	<entry>
		<id>https://bsccs.stoney-wiki.com/w/index.php?title=Exercises_-_02_Kontrollaufgaben&amp;diff=114</id>
		<title>Exercises - 02 Kontrollaufgaben</title>
		<link rel="alternate" type="text/html" href="https://bsccs.stoney-wiki.com/w/index.php?title=Exercises_-_02_Kontrollaufgaben&amp;diff=114"/>
		<updated>2025-10-20T13:57:18Z</updated>

		<summary type="html">&lt;p&gt;Bfh-sts: Created page with &amp;quot;= Kontrollaufgaben Aussagenlogik Teil 2 =  &amp;#039;&amp;#039;Achtung: detaillierte Lösungswege mit Zwischenresultaten werden erwartet. Ohne klar ersichtlichen Lösungsweg bzw. Begründung gibt es keine Punkte.&amp;#039;&amp;#039;  == Aufgabe 1 == Max wird mit hohem Fieber und ausgeprägtem Gliederschmerzen in das Spital eingeliefert. Dr. House diskutiert die Diagnose mit einer Kollegin.  * Dr. House: „Wenn der Patient Fieber hat, handelt es sich um Grippe oder Erkältung.” * Cameron: „Wenn er kein...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Kontrollaufgaben Aussagenlogik Teil 2 =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Achtung: detaillierte Lösungswege mit Zwischenresultaten werden erwartet. Ohne klar ersichtlichen Lösungsweg bzw. Begründung gibt es keine Punkte.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 1 ==&lt;br /&gt;
Max wird mit hohem Fieber und ausgeprägtem Gliederschmerzen in das Spital eingeliefert. Dr. House diskutiert die Diagnose mit einer Kollegin.&lt;br /&gt;
&lt;br /&gt;
* Dr. House: „Wenn der Patient Fieber hat, handelt es sich um Grippe oder Erkältung.”&lt;br /&gt;
* Cameron: „Wenn er keine starken Gliederschmerzen hat, dann hat er keine Grippe.”&lt;br /&gt;
* Dr. House: „Hohes Fieber und starke Gliederschmerzen weisen auf Grippe hin.”&lt;br /&gt;
* Cameron: „Er hat sicher nicht beide Krankheiten gleichzeitig.”&lt;br /&gt;
&lt;br /&gt;
Verwenden Sie:  &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;text&#039;&amp;gt;&lt;br /&gt;
F = Patient hat Fieber  &lt;br /&gt;
S = Patient hat Gliederschmerzen  &lt;br /&gt;
G = Patient hat Grippe  &lt;br /&gt;
E = Patient leidet unter einer Erkältung&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== (a) Formalisierung (4 Punkte) ===&lt;br /&gt;
# F → (G ∨ E)&lt;br /&gt;
# ¬S → ¬G&lt;br /&gt;
# (F ∧ S) → G&lt;br /&gt;
# ¬(G ∧ E)&lt;br /&gt;
&lt;br /&gt;
=== (b) Diagnose mit Begründung (4 Punkte) ===&lt;br /&gt;
Max hat F = wahr und S = wahr.&lt;br /&gt;
&lt;br /&gt;
* Aus (3): (F ∧ S) → G. Da F und S wahr, folgt G = wahr.  &lt;br /&gt;
* Aus (4): ¬(G ∧ E). Da G = wahr, muss E = falsch gelten.  &lt;br /&gt;
* (1) ist erfüllt, da F → (G ∨ E) = wahr.  &lt;br /&gt;
* (2) ist erfüllt, da ¬S = falsch ⇒ Implikation wahr.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Diagnose:&#039;&#039;&#039; Grippe (G = wahr), keine Erkältung (E = falsch).&lt;br /&gt;
&lt;br /&gt;
Tabelle für F = w, S = w:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! F !! S !! G !! E !! Erfüllt alle 4 Bedingungen?&lt;br /&gt;
|-&lt;br /&gt;
| w || w || w || w || nein (verletzt 4)&lt;br /&gt;
|-&lt;br /&gt;
| w || w || w || f || &#039;&#039;&#039;ja&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| w || w || f || w || nein (verletzt 3)&lt;br /&gt;
|-&lt;br /&gt;
| w || w || f || f || nein (verletzt 3)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 2 ==&lt;br /&gt;
Brown, Jones und Smith werden verdächtigt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;bash&#039;&amp;gt;&lt;br /&gt;
Brown: “Jones ist schuldig und Smith ist unschuldig.”&lt;br /&gt;
Jones: “Wenn Brown schuldig ist, ist es Smith auch.”&lt;br /&gt;
Smith: “Ich bin unschuldig, aber mindestens einer der anderen ist schuldig.”&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;text&#039;&amp;gt;&lt;br /&gt;
B = Brown ist unschuldig  &lt;br /&gt;
J = Jones ist unschuldig  &lt;br /&gt;
S = Smith ist unschuldig  &lt;br /&gt;
(Schuldig = Negation)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== (a) Formeln und Wahrheitstabelle (6 Punkte) ===&lt;br /&gt;
* Brown: ¬J ∧ S&lt;br /&gt;
* Jones: (¬B) → (¬S)&lt;br /&gt;
* Smith: S ∧ (¬B ∨ ¬J)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! B !! J !! S !! Brown (¬J ∧ S) !! Jones ((¬B) → (¬S)) !! Smith (S ∧ (¬B ∨ ¬J))&lt;br /&gt;
|-&lt;br /&gt;
| f || f || f || f || t || f&lt;br /&gt;
|-&lt;br /&gt;
| f || f || t || t || t || t&lt;br /&gt;
|-&lt;br /&gt;
| f || t || f || f || t || f&lt;br /&gt;
|-&lt;br /&gt;
| f || t || t || f || t || t&lt;br /&gt;
|-&lt;br /&gt;
| t || f || f || f || f || f&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;t&#039;&#039;&#039; || &#039;&#039;&#039;f&#039;&#039;&#039; || &#039;&#039;&#039;t&#039;&#039;&#039; || &#039;&#039;&#039;t&#039;&#039;&#039; || &#039;&#039;&#039;t&#039;&#039;&#039; || &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| t || t || f || f || t || f&lt;br /&gt;
|-&lt;br /&gt;
| t || t || t || f || t || f&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== (b) Auswertung (je 1 Punkt) ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;text&#039;&amp;gt;&lt;br /&gt;
(i) Konsistenz: Ja, z. B. B = t, J = f, S = t.  &lt;br /&gt;
(ii) Aus Browns Aussage folgt Smiths Aussage.  &lt;br /&gt;
(iii) Alle unschuldig (B = J = S = t): Brown = falsch, Jones = wahr, Smith = falsch → Brown und Smith lügen.  &lt;br /&gt;
(iv) Alle Aussagen wahr: B = t, J = f, S = t → Brown und Smith unschuldig, Jones schuldig.  &lt;br /&gt;
(v) „Wahrheit bei Unschuldigen, Lüge bei Schuldigen“ → Lösung: B = f (schuldig), J = t (unschuldig), S = f (schuldig).&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 3 ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;text&#039;&amp;gt;&lt;br /&gt;
A = Grizzlybären gesichtet  &lt;br /&gt;
B = Wandern sicher  &lt;br /&gt;
C = Beeren reif&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;text&#039;&amp;gt;&lt;br /&gt;
(a) Die Beeren entlang des Wanderwegs sind reif, aber es wurden keine Grizzlybären in der Gegend gesichtet.&lt;br /&gt;
(b) Falls die Beeren entlang des Wanderwegs reif sind, dann ist das Wandern auf dem Wanderweg genau dann sicher, wenn keine Grizzlybären in der Gegend gesichtet wurden.&lt;br /&gt;
(c) Damit das Wandern auf dem Wanderweg sicher ist, ist es notwendig, aber nicht hinreichend, dass die Beeren nicht reif sind, und dass keine Grizzlybären in der Gegend gesichtet wurden.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;text&#039;&amp;gt;&lt;br /&gt;
(a) C ∧ ¬A  &lt;br /&gt;
(b) C → (B ↔ ¬A)  &lt;br /&gt;
(c) (B → (¬C ∧ ¬A)) ∧ ¬((¬C ∧ ¬A) → B)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 4 ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;text&#039;&amp;gt;&lt;br /&gt;
(a) ( P → (Q → R) ) ↔ ( (P → Q) → R )&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;text&#039;&amp;gt;&lt;br /&gt;
(b) Falsch. Die Wahrheitstabellen der beiden Seiten sind nicht gleich.&lt;br /&gt;
Für P = f, Q = w, R = f stimmt das Gesetz nicht:&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! P !! Q !! R !! ( P → (Q → R) ) !! ( (P → Q) → R )&lt;br /&gt;
|-&lt;br /&gt;
| w || w || w || w || w&lt;br /&gt;
|-&lt;br /&gt;
| w || w || f || f || f&lt;br /&gt;
|-&lt;br /&gt;
| w || f || w || w || w&lt;br /&gt;
|-&lt;br /&gt;
| w || f || f || w || w&lt;br /&gt;
|-&lt;br /&gt;
| f || w || w || w || w&lt;br /&gt;
|-&lt;br /&gt;
| style=&#039;background-color:#ff6969&#039; | f || style=&#039;background-color:#ff6969&#039; | w || style=&#039;background-color:#ff6969&#039; | f || style=&#039;background-color:#ff6969&#039; | w || style=&#039;background-color:#ff6969&#039;| f&lt;br /&gt;
|-&lt;br /&gt;
| f || f || w || w || w&lt;br /&gt;
|-&lt;br /&gt;
| f || f || f || w || w&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category: Propositional logic (Aussagenlogik)‎]]&lt;/div&gt;</summary>
		<author><name>Bfh-sts</name></author>
	</entry>
	<entry>
		<id>https://bsccs.stoney-wiki.com/w/index.php?title=Exercises_-_01_Kontrollaufgaben&amp;diff=113</id>
		<title>Exercises - 01 Kontrollaufgaben</title>
		<link rel="alternate" type="text/html" href="https://bsccs.stoney-wiki.com/w/index.php?title=Exercises_-_01_Kontrollaufgaben&amp;diff=113"/>
		<updated>2025-10-20T13:57:03Z</updated>

		<summary type="html">&lt;p&gt;Bfh-sts: Created page with &amp;quot;= Kontrollaufgaben = == Aufgabe 1 == Wenden Sie in den folgenden logischen Ausdrücken die Verneinung auf die Einzelaussagen an:  (a) &amp;lt;syntaxhighlight lang=&amp;#039;text&amp;#039; inline&amp;gt;¬(¬A ᐯ B)&amp;lt;/syntaxhighlight&amp;gt;  (b) &amp;lt;syntaxhighlight lang=&amp;#039;text&amp;#039; inline&amp;gt;¬(A ⇒ (B ⇒ C))&amp;lt;/syntaxhighlight&amp;gt;  === Aufgabe 1 - Lösung === a) &amp;lt;syntaxhighlight lang=&amp;#039;text&amp;#039;&amp;gt; ¬(¬A ᐯ B) ≡ A ᐱ ¬B (7,10b) &amp;lt;/syntaxhighlight&amp;gt; b) &amp;lt;syntaxhighlight lang=&amp;#039;text&amp;#039;&amp;gt; (A =&amp;gt; (B =&amp;gt; C))  ≡ ¬(¬A ᐯ (B =&amp;gt; C))...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Kontrollaufgaben =&lt;br /&gt;
== Aufgabe 1 ==&lt;br /&gt;
Wenden Sie in den folgenden logischen Ausdrücken die Verneinung auf die&lt;br /&gt;
Einzelaussagen an:&lt;br /&gt;
&lt;br /&gt;
(a) &amp;lt;syntaxhighlight lang=&#039;text&#039; inline&amp;gt;¬(¬A ᐯ B)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(b) &amp;lt;syntaxhighlight lang=&#039;text&#039; inline&amp;gt;¬(A ⇒ (B ⇒ C))&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe 1 - Lösung ===&lt;br /&gt;
a)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;text&#039;&amp;gt;&lt;br /&gt;
¬(¬A ᐯ B) ≡ A ᐱ ¬B (7,10b)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
b)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;text&#039;&amp;gt;&lt;br /&gt;
(A =&amp;gt; (B =&amp;gt; C)) &lt;br /&gt;
≡ ¬(¬A ᐯ (B =&amp;gt; C))&lt;br /&gt;
≡ ¬(¬A ᐯ (¬B ᐯ C))&lt;br /&gt;
≡ A ᐱ ¬(¬B ᐯ C)     (7, 10b)&lt;br /&gt;
≡ A ᐱ B ᐱ ¬C        (7, 10b) &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 2 ==&lt;br /&gt;
Aufgabe 2 Beweise Sie, dass &amp;lt;syntaxhighlight lang=&#039;text&#039; inline&amp;gt;¬(A =&amp;gt; B) =&amp;gt; ¬B&amp;lt;/syntaxhighlight&amp;gt; eine Tautologie ist.&lt;br /&gt;
&lt;br /&gt;
(a) Beweisen Sie dies mit einer Wahrheitstabelle.&lt;br /&gt;
&lt;br /&gt;
(b) Beweisen Sie dies durch Termumformung. Geben Sie an, welche logischen Gesetze&lt;br /&gt;
Sie verwenden.&lt;br /&gt;
=== Aufgabe 2 - Lösung ===&lt;br /&gt;
a)&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! A !! B !! ¬A ᐯ B !! A ᐯ ¬B !! ¬B !! ¬(A =&amp;gt; B) =&amp;gt; ¬ B&lt;br /&gt;
|-&lt;br /&gt;
| w || w || w || f || f || w&lt;br /&gt;
|-&lt;br /&gt;
| w || f || f || w || w || w&lt;br /&gt;
|-&lt;br /&gt;
| f || w || w || f || f || w&lt;br /&gt;
|-&lt;br /&gt;
| f || f || w || f || w || w&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
b)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=text&amp;gt;&lt;br /&gt;
¬(A =&amp;gt; B) =&amp;gt; ¬B&lt;br /&gt;
≡ ¬(¬A ᐯ B) =&amp;gt; ¬B&lt;br /&gt;
≡ ¬(¬(¬A ᐯ B) ᐯ ¬B)&lt;br /&gt;
≡ ¬(A ᐱ ¬B) ᐯ ¬B)     (7, 10b)&lt;br /&gt;
≡ ¬A ᐯ B ᐯ ¬B         (7, 10b)&lt;br /&gt;
≡ ¬A ᐯ T              (8b)&lt;br /&gt;
≡ T                    (5b)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 3 ==&lt;br /&gt;
Aufgabe 3 Drei Kisten werden Ihnen präsentiert. Eine enthält Gold, die beiden anderen sind leer. Auf jeder Kiste ist ein Hinweis auf dessen Inhalt aufgedruckt:&lt;br /&gt;
* Hinweis auf Kiste 1: ”Das Gold ist nicht hier”&lt;br /&gt;
* Hinweis auf Kiste 2: ”Das Gold ist nicht hier”&lt;br /&gt;
* Hinweis auf Kiste 3: ”Das Gold ist in Kiste 2”&lt;br /&gt;
&lt;br /&gt;
Nur eine dieser drei Aussage ist wahr, die beiden anderen sind falsch.&lt;br /&gt;
&lt;br /&gt;
In welcher Kiste befindet sich das Gold? Formalisieren Sie das Rätsel in Aussagenlogik&lt;br /&gt;
und finden Sie die Lösung.&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe 3 - Lösungen ===&lt;br /&gt;
;G&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;: Gold ist in der &amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;ten Kiste.&lt;br /&gt;
;H&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;: Hinweis i ist korrekt.&lt;br /&gt;
&lt;br /&gt;
* G&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt; =&amp;gt; H&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; ᐱ H&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
* G&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; =&amp;gt; H&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; ᐱ H&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
* G&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; =&amp;gt; H&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nur 1 Hinweis kann richtig sein. Somit ist das Gold in Kiste 1 (G&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
[[Category: Propositional logic (Aussagenlogik)‎]]&lt;/div&gt;</summary>
		<author><name>Bfh-sts</name></author>
	</entry>
	<entry>
		<id>https://bsccs.stoney-wiki.com/w/index.php?title=Main_Page&amp;diff=112</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://bsccs.stoney-wiki.com/w/index.php?title=Main_Page&amp;diff=112"/>
		<updated>2025-10-20T13:56:05Z</updated>

		<summary type="html">&lt;p&gt;Bfh-sts: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Welcome to the BFH BSCCS Documentation Wiki =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bachelor of Science – Computer Science (BSCCS)&#039;&#039;&#039;&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;display:flex; gap:1em; align-items:flex-start;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- LEFT SIDEBAR --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;flex:0 0 35%; min-width:200px; border:1px solid #ccc; background-color:#f9f9f9; padding:1em; border-radius:8px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Important Links ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-bottom:1em;&amp;quot;&amp;gt;&lt;br /&gt;
* [https://moodle.bfh.ch/ BFH Moodle]&lt;br /&gt;
* [https://gitlab.ti.bfh.ch BFH GitLab]&lt;br /&gt;
* [https://discord.gg/wAMseEVDcS BSCCS Discord Server]&lt;br /&gt;
* [https://campusapp.bfh.ch Camputs App]&lt;br /&gt;
* [https://is-a.bfh.ch IS-A]&lt;br /&gt;
* [https://www.bfh.ch/en/ Bern University of Applied Sciences]&lt;br /&gt;
* [[:Category:Modules|All Modules Overview]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr style=&amp;quot;margin:1em 0;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Create or Add Content ==&lt;br /&gt;
You can help expand the wiki by creating a new page.&lt;br /&gt;
&lt;br /&gt;
Create a blank page.&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;inputbox&amp;gt;&lt;br /&gt;
  type=create&lt;br /&gt;
  width=40&lt;br /&gt;
  buttonlabel=Create blank page&lt;br /&gt;
  break=no&lt;br /&gt;
&amp;lt;/inputbox&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For those unfamiliar with the MediaWiki Syntax:&lt;br /&gt;
* [[MediaWiki cheat sheet]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-top:1em; font-size:90%; color:#555;&amp;quot;&amp;gt;&lt;br /&gt;
Pages can also be created by visiting a non-existent link and selecting &amp;quot;Create this page&amp;quot;.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr style=&amp;quot;margin:1em 0;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center; margin-top:1em;&amp;quot;&amp;gt;&lt;br /&gt;
[[File:this is fine.jpg|link=|300px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- MAIN CONTENT --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;flex:1;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border:2px solid #4F81BD; background-color:#F5F9FF; padding:1em; border-radius:10px; margin-bottom:1em;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Welcome!&#039;&#039;&#039;  &lt;br /&gt;
This wiki serves as the central knowledge base for the &#039;&#039;&#039;Bern University of Applied Sciences – Bachelor of Science in Computer Science (BFH BSCCS)&#039;&#039;&#039; program.  &lt;br /&gt;
Here you’ll find course summaries, module documentation, guides, and shared learning materials.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This wiki is currently a work in progress (W.I.P.) – your contributions are encouraged and appreciated.&#039;&#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== About This Wiki ==&lt;br /&gt;
This is a collaborative documentation project maintained by BSCCS students and staff.  &lt;br /&gt;
Its goals include:&lt;br /&gt;
* Collecting resources, summaries, and notes for each BSCCS module  &lt;br /&gt;
* Sharing experiences and study tips  &lt;br /&gt;
* Building a living reference for future cohorts  &lt;br /&gt;
&lt;br /&gt;
== Modules ==&lt;br /&gt;
Below is a list of the BSCCS modules (placeholders – feel free to add content):&lt;br /&gt;
&lt;br /&gt;
* [[:Category: Kommunikation 1 Deutsch für die Informatik (BZG3110p) 25/26]]&lt;br /&gt;
* [[:Category: Programming 1 with Java (BTI1001q) 25/26]]&lt;br /&gt;
* [[:Category: Diskrete Mathematik I (BZG1155pa) 25/26]]&lt;br /&gt;
* [[:Category: Computer Science Basics (BTI1021p) 25/26]]&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Click a module name to view or create its documentation page.&lt;br /&gt;
&lt;br /&gt;
== Contributing ==&lt;br /&gt;
All students are invited to contribute.  &lt;br /&gt;
Every edit improves the shared knowledge base for the BSCCS community.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border-left:4px solid #4F81BD; background:#EEF6FF; padding:0.8em; border-radius:5px;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;How to get started:&#039;&#039;&#039;&lt;br /&gt;
# Join the official Discord server – [https://discord.gg/wAMseEVDcS Join here]  &lt;br /&gt;
# Find the wiki login credentials in the &#039;&#039;&#039;#wiki-access&#039;&#039;&#039; channel  &lt;br /&gt;
# Log in and start editing or creating pages&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Work in Progress ==&lt;br /&gt;
This wiki is under continuous development.  &lt;br /&gt;
Some pages may be incomplete or under review.  &lt;br /&gt;
Contributions of any size are valuable and help make this a stronger resource for everyone.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center; margin-top:1em; font-size:110%; font-weight:bold;&amp;quot;&amp;gt;&lt;br /&gt;
Your contributions benefit all BSCCS students — start today.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt; &amp;lt;!-- end main content --&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt; &amp;lt;!-- end flex layout --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;Maintained by BFH Computer Science Students • Last updated: {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}&amp;lt;/small&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bfh-sts</name></author>
	</entry>
	<entry>
		<id>https://bsccs.stoney-wiki.com/w/index.php?title=Category:Numeral_Systems&amp;diff=111</id>
		<title>Category:Numeral Systems</title>
		<link rel="alternate" type="text/html" href="https://bsccs.stoney-wiki.com/w/index.php?title=Category:Numeral_Systems&amp;diff=111"/>
		<updated>2025-10-20T13:52:12Z</updated>

		<summary type="html">&lt;p&gt;Bfh-sts: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
This category covers positional numeral systems used in computing (binary, octal, hexadecimal), conversions between bases, size prefixes, and byte order.&lt;br /&gt;
&lt;br /&gt;
== Pages ==&lt;br /&gt;
* [[Numeral Systems: Overview &amp;amp; Positional Notation]]&lt;br /&gt;
* [[Binary: Bits, Grouping &amp;amp; Powers of Two]]&lt;br /&gt;
* [[Octal: Reading &amp;amp; Conversion]]&lt;br /&gt;
* [[Hexadecimal: Reading, Arithmetic &amp;amp; Shorthand for Binary]]&lt;br /&gt;
* [[Base Conversions: Decimal, Binary, Octal, Hex]]&lt;br /&gt;
* [[Memory Sizes &amp;amp; Binary Prefixes]]&lt;br /&gt;
* [[Endianness: Byte Order &amp;amp; Practice]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Computer Science Basics (BTI1021p) 25/26]]&lt;/div&gt;</summary>
		<author><name>Bfh-sts</name></author>
	</entry>
	<entry>
		<id>https://bsccs.stoney-wiki.com/w/index.php?title=Hands-on:_Debugger_Exercise_for_Register_Parts_(AX/BX/CX)&amp;diff=110</id>
		<title>Hands-on: Debugger Exercise for Register Parts (AX/BX/CX)</title>
		<link rel="alternate" type="text/html" href="https://bsccs.stoney-wiki.com/w/index.php?title=Hands-on:_Debugger_Exercise_for_Register_Parts_(AX/BX/CX)&amp;diff=110"/>
		<updated>2025-10-20T13:49:00Z</updated>

		<summary type="html">&lt;p&gt;Bfh-sts: Created page with &amp;quot;= Hands-on: Debugger Exercise for Register Parts (AX, BX, CX) = This exercise helps you understand how register hierarchies and partial register operations work in x86-64 assembly.   It focuses on how smaller register portions (8-bit and 16-bit) affect and reflect values in their parent registers.  == Background == &amp;lt;syntaxhighlight lang=&amp;#039;text&amp;#039;&amp;gt; x86-64 registers are divided into accessible parts: | Register (64-bit) | 32-bit | 16-bit | 8-bit High | 8-bit Low | |----------...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Hands-on: Debugger Exercise for Register Parts (AX, BX, CX) =&lt;br /&gt;
This exercise helps you understand how register hierarchies and partial register operations work in x86-64 assembly.  &lt;br /&gt;
It focuses on how smaller register portions (8-bit and 16-bit) affect and reflect values in their parent registers.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;text&#039;&amp;gt;&lt;br /&gt;
x86-64 registers are divided into accessible parts:&lt;br /&gt;
| Register (64-bit) | 32-bit | 16-bit | 8-bit High | 8-bit Low |&lt;br /&gt;
|--------------------|---------|---------|-------------|------------|&lt;br /&gt;
| RAX | EAX | AX | AH | AL |&lt;br /&gt;
| RBX | EBX | BX | BH | BL |&lt;br /&gt;
| RCX | ECX | CX | CH | CL |&lt;br /&gt;
| RDX | EDX | DX | DH | DL |&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
When modifying a smaller register:&lt;br /&gt;
* The value also updates the corresponding part of the larger register.&lt;br /&gt;
* For 32-bit writes (e.g. `mov eax, value`), the upper 32 bits of the 64-bit register are cleared to 0.&lt;br /&gt;
* For 8-bit and 16-bit writes, only the corresponding bytes are affected.&lt;br /&gt;
&lt;br /&gt;
== Exercise: Register Interaction ==&lt;br /&gt;
Assemble and run the following program step by step in a debugger (like GDB).&lt;br /&gt;
&lt;br /&gt;
 SECTION .text&lt;br /&gt;
 global _start&lt;br /&gt;
 _start:&lt;br /&gt;
     mov ax, 67FEh     ; AX = 67FEh&lt;br /&gt;
     mov bx, ax        ; BX = 67FEh&lt;br /&gt;
     mov cl, bh        ; CL = upper byte of BX = 67h&lt;br /&gt;
     mov ch, bl        ; CH = lower byte of BX = FEh&lt;br /&gt;
&lt;br /&gt;
     ; Stop execution (infinite loop)&lt;br /&gt;
 loop:&lt;br /&gt;
     jmp loop&lt;br /&gt;
&lt;br /&gt;
== Step-by-step in a Debugger ==&lt;br /&gt;
1. Set a breakpoint at `_start`.&lt;br /&gt;
2. Run the program and step through each instruction.&lt;br /&gt;
3. After each step, inspect register values:&lt;br /&gt;
   - `info registers` (GDB)&lt;br /&gt;
   - Observe AX, BX, CX and their 8-bit components (AH, AL, BH, BL, CH, CL).&lt;br /&gt;
&lt;br /&gt;
You should see:&lt;br /&gt;
* AX = 0x67FE  &lt;br /&gt;
* BX = 0x67FE  &lt;br /&gt;
* CX = 0xFE67  &lt;br /&gt;
   - CH = 0xFE (from BL)&lt;br /&gt;
   - CL = 0x67 (from BH)&lt;br /&gt;
&lt;br /&gt;
== Explanation ==&lt;br /&gt;
Each register’s 16-bit portion (AX, BX, CX) is composed of two 8-bit halves:&lt;br /&gt;
* High byte (e.g., AH, BH, CH)&lt;br /&gt;
* Low byte (e.g., AL, BL, CL)&lt;br /&gt;
&lt;br /&gt;
The instruction `mov cl, bh` copies only the upper 8 bits of BX (BH) into CL.  &lt;br /&gt;
This behavior is key when dealing with partial data movement or I/O operations on specific bytes.&lt;br /&gt;
&lt;br /&gt;
== Important Notes ==&lt;br /&gt;
* Writing to 32-bit registers clears the upper 32 bits of the 64-bit register.&lt;br /&gt;
* Writing to 8-bit or 16-bit registers only affects those parts.&lt;br /&gt;
* Be careful when mixing operations on different sizes — this can lead to unexpected values.&lt;br /&gt;
&lt;br /&gt;
== Experiment Ideas ==&lt;br /&gt;
* Modify the code to use 32-bit registers (EAX, EBX, ECX) and observe clearing of upper bits.&lt;br /&gt;
* Add `mov eax, 0xFFFFFFFF` followed by `mov al, 0x10` to see how AL overwrites the low byte.&lt;br /&gt;
* Try using `movsx` to extend signed 8-bit values into 16-bit or 32-bit registers.&lt;br /&gt;
&lt;br /&gt;
== Key Takeaways ==&lt;br /&gt;
* Registers are hierarchical — each smaller part reflects within its parent.  &lt;br /&gt;
* High and low bytes allow efficient byte-level manipulation.  &lt;br /&gt;
* Debugging at the register level builds intuition for assembly operations.&lt;br /&gt;
&lt;br /&gt;
[[Category:Assembly Programming]]&lt;/div&gt;</summary>
		<author><name>Bfh-sts</name></author>
	</entry>
	<entry>
		<id>https://bsccs.stoney-wiki.com/w/index.php?title=Linux_x86-64_Syscalls:_syscall,_Registers,_sys_write,_sys_exit&amp;diff=109</id>
		<title>Linux x86-64 Syscalls: syscall, Registers, sys write, sys exit</title>
		<link rel="alternate" type="text/html" href="https://bsccs.stoney-wiki.com/w/index.php?title=Linux_x86-64_Syscalls:_syscall,_Registers,_sys_write,_sys_exit&amp;diff=109"/>
		<updated>2025-10-20T13:48:43Z</updated>

		<summary type="html">&lt;p&gt;Bfh-sts: Created page with &amp;quot;= Linux x86-64 Syscalls (syscall, Registers, sys_write, sys_exit) = System calls (syscalls) allow a program to interact directly with the operating system.   They provide controlled access to privileged functions such as printing to the screen, reading files, or terminating the program.  == What Is a Syscall? == In user mode, a program cannot directly access hardware or kernel resources.   To perform privileged operations, it must **request** the kernel to do so on its b...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Linux x86-64 Syscalls (syscall, Registers, sys_write, sys_exit) =&lt;br /&gt;
System calls (syscalls) allow a program to interact directly with the operating system.  &lt;br /&gt;
They provide controlled access to privileged functions such as printing to the screen, reading files, or terminating the program.&lt;br /&gt;
&lt;br /&gt;
== What Is a Syscall? ==&lt;br /&gt;
In user mode, a program cannot directly access hardware or kernel resources.  &lt;br /&gt;
To perform privileged operations, it must **request** the kernel to do so on its behalf.&lt;br /&gt;
&lt;br /&gt;
A syscall is this request mechanism.&lt;br /&gt;
&lt;br /&gt;
When the instruction `syscall` executes:&lt;br /&gt;
1. Control switches from user mode to kernel mode.&lt;br /&gt;
2. The CPU looks at specific registers to determine which system service to execute.&lt;br /&gt;
3. After completion, control returns to user mode.&lt;br /&gt;
&lt;br /&gt;
== The syscall Instruction ==&lt;br /&gt;
`syscall` has no operands.  &lt;br /&gt;
It uses the values in registers to know:&lt;br /&gt;
* which function to perform (via `rax`)&lt;br /&gt;
* which parameters to use (via other registers)&lt;br /&gt;
&lt;br /&gt;
== Register Usage (System V AMD64 ABI) ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;text&#039;&amp;gt;&lt;br /&gt;
| Register | Purpose |&lt;br /&gt;
|-----------|----------|&lt;br /&gt;
| rax | System call number |&lt;br /&gt;
| rdi | 1st argument |&lt;br /&gt;
| rsi | 2nd argument |&lt;br /&gt;
| rdx | 3rd argument |&lt;br /&gt;
| r10 | 4th argument |&lt;br /&gt;
| r8  | 5th argument |&lt;br /&gt;
| r9  | 6th argument |&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
All other registers may be modified by the syscall.&lt;br /&gt;
&lt;br /&gt;
== Common Syscall Numbers ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;text&#039;&amp;gt;&lt;br /&gt;
| Syscall | rax Value | Description |&lt;br /&gt;
|----------|------------|-------------|&lt;br /&gt;
| sys_read | 0 | Read from a file descriptor |&lt;br /&gt;
| sys_write | 1 | Write to a file descriptor |&lt;br /&gt;
| sys_exit | 60 | Terminate the process |&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Syscall numbers are defined in `/usr/include/asm/unistd_64.h`.&lt;br /&gt;
&lt;br /&gt;
== Example: sys_write ==&lt;br /&gt;
Writes data to a file descriptor (e.g., standard output).&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;asm&#039;&amp;gt;&lt;br /&gt;
 SECTION .data&lt;br /&gt;
 Msg: db &amp;quot;Eat at Joe’s!&amp;quot;, 10&lt;br /&gt;
 MsgLen: equ $ - Msg&lt;br /&gt;
&lt;br /&gt;
 SECTION .text&lt;br /&gt;
 global _start&lt;br /&gt;
 _start:&lt;br /&gt;
     mov rax, 1       ; syscall number for sys_write&lt;br /&gt;
     mov rdi, 1       ; file descriptor (stdout)&lt;br /&gt;
     mov rsi, Msg      ; pointer to string&lt;br /&gt;
     mov rdx, MsgLen   ; length of string&lt;br /&gt;
     syscall           ; invoke kernel&lt;br /&gt;
&lt;br /&gt;
The string is printed to the terminal.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Example: sys_exit ==&lt;br /&gt;
Ends the program cleanly and returns a status code to the OS.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;asm&#039;&amp;gt;&lt;br /&gt;
 mov rax, 60      ; syscall number for sys_exit&lt;br /&gt;
 xor rdi, rdi     ; status code 0&lt;br /&gt;
 syscall&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
If `rdi` is nonzero, it becomes the program’s exit code.&lt;br /&gt;
&lt;br /&gt;
== Full Example: eatsyscall64.asm ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;asm&#039;&amp;gt;&lt;br /&gt;
 SECTION .data&lt;br /&gt;
 EatMsg: db &amp;quot;Eat at Joe’s!&amp;quot;,10&lt;br /&gt;
 EatLen: equ $ - EatMsg&lt;br /&gt;
&lt;br /&gt;
 SECTION .text&lt;br /&gt;
 global _start&lt;br /&gt;
 _start:&lt;br /&gt;
     mov rax, 1        ; sys_write&lt;br /&gt;
     mov rdi, 1        ; stdout&lt;br /&gt;
     mov rsi, EatMsg&lt;br /&gt;
     mov rdx, EatLen&lt;br /&gt;
     syscall&lt;br /&gt;
&lt;br /&gt;
     mov rax, 60       ; sys_exit&lt;br /&gt;
     mov rdi, 0&lt;br /&gt;
     syscall&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Syscall Workflow Summary ==&lt;br /&gt;
1. Load syscall number into `rax`.&lt;br /&gt;
2. Load arguments into `rdi`, `rsi`, `rdx`, etc.&lt;br /&gt;
3. Execute the `syscall` instruction.&lt;br /&gt;
4. Handle results or exit.&lt;br /&gt;
&lt;br /&gt;
== Common Mistakes ==&lt;br /&gt;
* Forgetting to set `rax` correctly before syscall.&lt;br /&gt;
* Not passing valid pointers in `rsi` or `rdi`.&lt;br /&gt;
* Forgetting to call `sys_exit`, causing a crash after execution.&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
* Syscalls are the interface between user code and the Linux kernel.  &lt;br /&gt;
* The `syscall` instruction uses registers to pass parameters.  &lt;br /&gt;
* `sys_write` outputs data, `sys_exit` terminates the program.  &lt;br /&gt;
* Proper use of registers and syscall numbers is crucial for functional programs.&lt;br /&gt;
&lt;br /&gt;
[[Category:Assembly Programming]]&lt;/div&gt;</summary>
		<author><name>Bfh-sts</name></author>
	</entry>
	<entry>
		<id>https://bsccs.stoney-wiki.com/w/index.php?title=Strings_in_Assembly:_Buffers,_Length_with_$_and_equ,_Concatenation&amp;diff=108</id>
		<title>Strings in Assembly: Buffers, Length with $ and equ, Concatenation</title>
		<link rel="alternate" type="text/html" href="https://bsccs.stoney-wiki.com/w/index.php?title=Strings_in_Assembly:_Buffers,_Length_with_$_and_equ,_Concatenation&amp;diff=108"/>
		<updated>2025-10-20T13:48:28Z</updated>

		<summary type="html">&lt;p&gt;Bfh-sts: Created page with &amp;quot;= Strings in Assembly (Buffers, Length with $, equ, Concatenation) = Strings in assembly language are simply sequences of bytes in memory. Each byte may represent a character depending on the encoding (commonly ASCII or UTF-8).  == What Is a String in Assembly? == A string is not a special data type — it is an array of bytes.   The assembler does not automatically track the string’s length or add an end marker.  Example:  SECTION .data  Msg: db &amp;quot;Eat at Joe’s!&amp;quot;, 10...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Strings in Assembly (Buffers, Length with $, equ, Concatenation) =&lt;br /&gt;
Strings in assembly language are simply sequences of bytes in memory. Each byte may represent a character depending on the encoding (commonly ASCII or UTF-8).&lt;br /&gt;
&lt;br /&gt;
== What Is a String in Assembly? ==&lt;br /&gt;
A string is not a special data type — it is an array of bytes.  &lt;br /&gt;
The assembler does not automatically track the string’s length or add an end marker.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 SECTION .data&lt;br /&gt;
 Msg: db &amp;quot;Eat at Joe’s!&amp;quot;, 10     ; define bytes for text plus newline&lt;br /&gt;
&lt;br /&gt;
Each character occupies one byte. The `10` adds a line feed (LF, &#039;\n&#039;) at the end.&lt;br /&gt;
&lt;br /&gt;
Important points:&lt;br /&gt;
* No automatic end-of-string marker (unlike C’s `0x00`).&lt;br /&gt;
* Length must be tracked manually or computed.&lt;br /&gt;
* Each byte can be accessed by its address in memory.&lt;br /&gt;
&lt;br /&gt;
== Defining Strings ==&lt;br /&gt;
You can define strings using `db`:&lt;br /&gt;
 db &amp;quot;Hello, world!&amp;quot;, 10&lt;br /&gt;
 db &#039;A&#039;, &#039;B&#039;, &#039;C&#039;, 0&lt;br /&gt;
&lt;br /&gt;
You can also mix numeric and text data:&lt;br /&gt;
 db &amp;quot;A=&amp;quot;, 65, 10&lt;br /&gt;
&lt;br /&gt;
== Uninitialized String Buffers ==&lt;br /&gt;
In the **.bss** section, you can reserve space for strings without giving them content yet.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 SECTION .bss&lt;br /&gt;
 Buffer: resb 32       ; reserve 32 bytes for a string&lt;br /&gt;
&lt;br /&gt;
The memory is allocated but initialized to zero at runtime.&lt;br /&gt;
&lt;br /&gt;
== Calculating String Length ==&lt;br /&gt;
Assembly provides a powerful special symbol `$`, meaning “the current address during assembly.”&lt;br /&gt;
&lt;br /&gt;
If you subtract two labels, NASM computes the byte distance between them — useful for string lengths.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 SECTION .data&lt;br /&gt;
 Msg: db &amp;quot;Eat at Joe’s!&amp;quot;&lt;br /&gt;
 MsgLen: equ $ - Msg    ; calculates the length automatically&lt;br /&gt;
&lt;br /&gt;
Equivalent to `mov rdx, 13`, but automatically updates if the string changes.&lt;br /&gt;
&lt;br /&gt;
== The equ Directive ==&lt;br /&gt;
`equ` assigns a symbolic name to a value.  &lt;br /&gt;
Used with `$`, it allows you to automatically define a string length constant.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 Text: db &amp;quot;Assembly Rocks!&amp;quot;, 10&lt;br /&gt;
 TextLen: equ $ - Text&lt;br /&gt;
&lt;br /&gt;
Later in your code:&lt;br /&gt;
 mov rdx, TextLen&lt;br /&gt;
&lt;br /&gt;
== String Concatenation ==&lt;br /&gt;
Multiple strings or values can be joined using commas in one `db` statement.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
 db &amp;quot;Eat at Joe’s!&amp;quot;, 10&lt;br /&gt;
 db &amp;quot;Come again!&amp;quot;, 10&lt;br /&gt;
&lt;br /&gt;
Or combined:&lt;br /&gt;
 TwoLine: db &amp;quot;Eat at Joe’s ...&amp;quot;, 10, &amp;quot;... tonight!&amp;quot;, 10&lt;br /&gt;
&lt;br /&gt;
Output:&lt;br /&gt;
 Eat at Joe’s ...&lt;br /&gt;
 ... tonight!&lt;br /&gt;
&lt;br /&gt;
== Strings and Encodings ==&lt;br /&gt;
Remember that strings are just bytes.  &lt;br /&gt;
How they are interpreted depends on the encoding (e.g., ASCII, UTF-8).  &lt;br /&gt;
Always ensure your output mechanism (syscall, terminal, etc.) expects the same encoding.&lt;br /&gt;
&lt;br /&gt;
== Example Program ==&lt;br /&gt;
 SECTION .data&lt;br /&gt;
 Greeting: db &amp;quot;Hello, world!&amp;quot;, 10&lt;br /&gt;
 GreetLen: equ $ - Greeting&lt;br /&gt;
&lt;br /&gt;
 SECTION .text&lt;br /&gt;
 global _start&lt;br /&gt;
 _start:&lt;br /&gt;
     mov rax, 1       ; sys_write&lt;br /&gt;
     mov rdi, 1       ; stdout&lt;br /&gt;
     mov rsi, Greeting&lt;br /&gt;
     mov rdx, GreetLen&lt;br /&gt;
     syscall&lt;br /&gt;
&lt;br /&gt;
     mov rax, 60      ; sys_exit&lt;br /&gt;
     xor rdi, rdi&lt;br /&gt;
     syscall&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
* Strings are arrays of bytes — no null terminator by default.  &lt;br /&gt;
* `$ - Label` gives the number of bytes (string length).  &lt;br /&gt;
* `equ` defines constants, such as lengths.  &lt;br /&gt;
* Strings can be split or concatenated using commas.  &lt;br /&gt;
* Always know your encoding when printing or processing strings.&lt;br /&gt;
&lt;br /&gt;
[[Category:Assembly Programming]]&lt;/div&gt;</summary>
		<author><name>Bfh-sts</name></author>
	</entry>
	<entry>
		<id>https://bsccs.stoney-wiki.com/w/index.php?title=Data_Definition_Directives:_db,_dw,_dd,_dq,_equ&amp;diff=107</id>
		<title>Data Definition Directives: db, dw, dd, dq, equ</title>
		<link rel="alternate" type="text/html" href="https://bsccs.stoney-wiki.com/w/index.php?title=Data_Definition_Directives:_db,_dw,_dd,_dq,_equ&amp;diff=107"/>
		<updated>2025-10-20T13:48:15Z</updated>

		<summary type="html">&lt;p&gt;Bfh-sts: Created page with &amp;quot;= Data Definition Directives (db, dw, dd, dq, equ) = Assembly language provides directives to define data in memory. These specify how many bytes are allocated and what values they hold.  == Overview == Data definition directives do not generate executable code — they reserve and optionally initialize memory.   They are primarily used in the **.data** and **.bss** sections.  == Common Directives ==  &amp;lt;syntaxhighlight lang=&amp;#039;text&amp;#039;&amp;gt; | Directive  | Meaning           | Size...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Data Definition Directives (db, dw, dd, dq, equ) =&lt;br /&gt;
Assembly language provides directives to define data in memory. These specify how many bytes are allocated and what values they hold.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
Data definition directives do not generate executable code — they reserve and optionally initialize memory.  &lt;br /&gt;
They are primarily used in the **.data** and **.bss** sections.&lt;br /&gt;
&lt;br /&gt;
== Common Directives ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;text&#039;&amp;gt;&lt;br /&gt;
| Directive  | Meaning           | Size per Element | Typical Use                          |&lt;br /&gt;
|------------|-------------------|------------------|--------------------------------------|&lt;br /&gt;
| db         | Define Byte       | 1 byte           | Characters, small values             |&lt;br /&gt;
| dw         | Define Word       | 2 bytes          | 16-bit integers                      |&lt;br /&gt;
| dd         | Define Doubleword | 4 bytes          | 32-bit integers or floats            |&lt;br /&gt;
| dq         | Define Quadword   | 8 bytes          | 64-bit integers, pointers            |&lt;br /&gt;
| equ        | Define Constant   | none             | Named constant, no memory allocation |&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
 SECTION .data&lt;br /&gt;
 MyByte:   db 0x07               ; single byte (7)&lt;br /&gt;
 MyWord:   dw 0x0FFFF            ; 16-bit value&lt;br /&gt;
 MyDouble: dd 0x0B8000000        ; 32-bit value&lt;br /&gt;
 MyQuad:   dq 0x0B800000011000000 ; 64-bit value&lt;br /&gt;
 Text:     db &amp;quot;Assembly Rocks!&amp;quot;,10 ; string with newline&lt;br /&gt;
 Len:      equ $ - Text           ; calculate string length&lt;br /&gt;
&lt;br /&gt;
== db — Define Byte ==&lt;br /&gt;
Defines one or more bytes. Each element can be a value, character, or string.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 db 72, 101, 108, 108, 111, 0&lt;br /&gt;
 db &amp;quot;Hello&amp;quot;, 0&lt;br /&gt;
&lt;br /&gt;
Each character literal expands to its ASCII value.  &lt;br /&gt;
Strings can include escape sequences such as `10` for newline (LF).&lt;br /&gt;
&lt;br /&gt;
== dw, dd, dq — Define Larger Values ==&lt;br /&gt;
These define 2, 4, or 8-byte values respectively.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 dw 0x1234        ; 2 bytes&lt;br /&gt;
 dd 0x12345678    ; 4 bytes&lt;br /&gt;
 dq 0x1122334455667788 ; 8 bytes&lt;br /&gt;
&lt;br /&gt;
They are often used for integers, addresses, or floating-point constants.&lt;br /&gt;
&lt;br /&gt;
== equ — Define Constant ==&lt;br /&gt;
equ (short for *equate*) defines a constant symbol.  &lt;br /&gt;
It **does not** allocate memory, but replaces the symbol with a numeric value at assembly time.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 Count: equ 10&lt;br /&gt;
 mov ec&lt;/div&gt;</summary>
		<author><name>Bfh-sts</name></author>
	</entry>
	<entry>
		<id>https://bsccs.stoney-wiki.com/w/index.php?title=Program_Structure:_.data,_.bss,_.text,_global_start&amp;diff=106</id>
		<title>Program Structure: .data, .bss, .text, global start</title>
		<link rel="alternate" type="text/html" href="https://bsccs.stoney-wiki.com/w/index.php?title=Program_Structure:_.data,_.bss,_.text,_global_start&amp;diff=106"/>
		<updated>2025-10-20T13:48:02Z</updated>

		<summary type="html">&lt;p&gt;Bfh-sts: Created page with &amp;quot;= Program Structure (.data, .bss, .text, global _start) = Assembly programs are organized into well-defined sections that separate code and data. Understanding this structure is crucial for writing, linking, and debugging NASM programs.  == Overview == A typical x86-64 assembly program for GNU/Linux contains: * A **comment block** describing metadata * A **.data** section for initialized data * A **.bss** section for uninitialized data * A **.text** section for executabl...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Program Structure (.data, .bss, .text, global _start) =&lt;br /&gt;
Assembly programs are organized into well-defined sections that separate code and data. Understanding this structure is crucial for writing, linking, and debugging NASM programs.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
A typical x86-64 assembly program for GNU/Linux contains:&lt;br /&gt;
* A **comment block** describing metadata&lt;br /&gt;
* A **.data** section for initialized data&lt;br /&gt;
* A **.bss** section for uninitialized data&lt;br /&gt;
* A **.text** section for executable code&lt;br /&gt;
* A **global _start** label marking the entry point&lt;br /&gt;
&lt;br /&gt;
== Comment Block ==&lt;br /&gt;
The top of an assembly source file often contains documentation for readability and maintenance.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 ; Executable name : eatsyscall64&lt;br /&gt;
 ; Version         : 1.0&lt;br /&gt;
 ; Author          : E. Benoist&lt;br /&gt;
 ; Description     : A simple NASM Linux 64-bit program&lt;br /&gt;
 ; Build with:&lt;br /&gt;
 ; nasm -f elf64 -g -F dwarf eatsyscall64.asm&lt;br /&gt;
 ; ld -o eatsyscall64 eatsyscall64.o&lt;br /&gt;
&lt;br /&gt;
== .data Section ==&lt;br /&gt;
This section holds **initialized data**, such as constants and strings.  &lt;br /&gt;
Values are stored directly in the assembled file.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 SECTION .data&lt;br /&gt;
 Msg: db &amp;quot;Hello, world!&amp;quot;, 10&lt;br /&gt;
 MsgLen: equ $ - Msg&lt;br /&gt;
&lt;br /&gt;
Characteristics:&lt;br /&gt;
* Contents are included in the binary.&lt;br /&gt;
* Used for read-only or predefined data.&lt;br /&gt;
&lt;br /&gt;
== .bss Section ==&lt;br /&gt;
The **Block Started by Symbol (BSS)** section reserves space for uninitialized data.  &lt;br /&gt;
It allocates memory at runtime but does not increase the program’s file size.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 SECTION .bss&lt;br /&gt;
 Buffer: resb 64     ; reserve 64 bytes&lt;br /&gt;
 Counter: resq 1     ; reserve one 64-bit integer&lt;br /&gt;
&lt;br /&gt;
Characteristics:&lt;br /&gt;
* Space allocated at runtime.&lt;br /&gt;
* Initialized to zero by the OS loader.&lt;br /&gt;
&lt;br /&gt;
== .text Section ==&lt;br /&gt;
Contains the actual **executable instructions**.  &lt;br /&gt;
This is where your program’s logic resides.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 SECTION .text&lt;br /&gt;
 global _start&lt;br /&gt;
 _start:&lt;br /&gt;
     mov rax, 1       ; sys_write&lt;br /&gt;
     mov rdi, 1       ; stdout&lt;br /&gt;
     mov rsi, Msg      ; pointer to message&lt;br /&gt;
     mov rdx, MsgLen   ; message length&lt;br /&gt;
     syscall&lt;br /&gt;
     mov rax, 60       ; sys_exit&lt;br /&gt;
     xor rdi, rdi&lt;br /&gt;
     syscall&lt;br /&gt;
&lt;br /&gt;
== The global _start Label ==&lt;br /&gt;
Every standalone Linux assembly program must define a global entry point called `_start`.  &lt;br /&gt;
It is where execution begins when the operating system loads the program.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 global _start&lt;br /&gt;
 _start:&lt;br /&gt;
     ; program entry point&lt;br /&gt;
     mov rax, 60&lt;br /&gt;
     xor rdi, rdi&lt;br /&gt;
     syscall&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
* **.data** — constants and initialized data  &lt;br /&gt;
* **.bss** — uninitialized variables (space reserved)  &lt;br /&gt;
* **.text** — program code  &lt;br /&gt;
* **_start** — entry point required by the linker  &lt;br /&gt;
&lt;br /&gt;
A correct section layout ensures that your code assembles and runs properly under Linux.&lt;br /&gt;
&lt;br /&gt;
[[Category:Assembly Programming]]&lt;/div&gt;</summary>
		<author><name>Bfh-sts</name></author>
	</entry>
	<entry>
		<id>https://bsccs.stoney-wiki.com/w/index.php?title=Multiplication_and_Division_(mul,_imul,_div,_idiv)&amp;diff=105</id>
		<title>Multiplication and Division (mul, imul, div, idiv)</title>
		<link rel="alternate" type="text/html" href="https://bsccs.stoney-wiki.com/w/index.php?title=Multiplication_and_Division_(mul,_imul,_div,_idiv)&amp;diff=105"/>
		<updated>2025-10-20T13:47:50Z</updated>

		<summary type="html">&lt;p&gt;Bfh-sts: Created page with &amp;quot;= Multiplication and Division (mul, imul, div, idiv) = This page explains how integer multiplication and division work in x86-64 assembly. It covers unsigned and signed arithmetic, implicit operands, and register usage.  == Multiplication instructions == There are two main multiplication instructions:  * **mul** — for unsigned multiplication   * **imul** — for signed multiplication  Syntax examples:  mul rbx  imul rbx  Both multiply the accumulator register (a-regist...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Multiplication and Division (mul, imul, div, idiv) =&lt;br /&gt;
This page explains how integer multiplication and division work in x86-64 assembly. It covers unsigned and signed arithmetic, implicit operands, and register usage.&lt;br /&gt;
&lt;br /&gt;
== Multiplication instructions ==&lt;br /&gt;
There are two main multiplication instructions:&lt;br /&gt;
&lt;br /&gt;
* **mul** — for unsigned multiplication  &lt;br /&gt;
* **imul** — for signed multiplication&lt;br /&gt;
&lt;br /&gt;
Syntax examples:&lt;br /&gt;
 mul rbx&lt;br /&gt;
 imul rbx&lt;br /&gt;
&lt;br /&gt;
Both multiply the accumulator register (a-register) by the operand.&lt;br /&gt;
&lt;br /&gt;
== Implicit operands ==&lt;br /&gt;
The a-register is always one operand. The second operand is specified by the programmer.&lt;br /&gt;
&lt;br /&gt;
Depending on the operand size, the product is stored in two registers:&lt;br /&gt;
&lt;br /&gt;
| Operand Size | Multiplicand | Product (result) |&lt;br /&gt;
|---------------|---------------|------------------|&lt;br /&gt;
| 8-bit         | AL            | AX               |&lt;br /&gt;
| 16-bit        | AX            | DX:AX            |&lt;br /&gt;
| 32-bit        | EAX           | EDX:EAX          |&lt;br /&gt;
| 64-bit        | RAX           | RDX:RAX          |&lt;br /&gt;
&lt;br /&gt;
Example (unsigned):&lt;br /&gt;
 mov rax, 5&lt;br /&gt;
 mov rbx, 10&lt;br /&gt;
 mul rbx          ; RDX:RAX = 50&lt;br /&gt;
 ; RAX contains lower 64 bits, RDX contains higher bits&lt;br /&gt;
&lt;br /&gt;
== Signed multiplication ==&lt;br /&gt;
The imul instruction handles signed operands using two’s complement arithmetic.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 mov rax, 56&lt;br /&gt;
 mov rbx, -67&lt;br /&gt;
 imul rbx          ; signed multiply → result in RDX:RAX&lt;br /&gt;
&lt;br /&gt;
== Overflow handling ==&lt;br /&gt;
Because the product can exceed the operand size, overflow is stored in the upper register (DX, EDX, or RDX).  &lt;br /&gt;
If RDX = 0 after multiplication, no overflow occurred.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 mov rax, 0xFFFFFFFFFFFFFFFF   ; 2⁶⁴ − 1&lt;br /&gt;
 mov rbx, 2&lt;br /&gt;
 mul rbx       ; RDX:RAX = 1_FFFFFFFE (overflow)&lt;br /&gt;
&lt;br /&gt;
== Division instructions ==&lt;br /&gt;
Two division instructions mirror multiplication:&lt;br /&gt;
&lt;br /&gt;
* **div** — unsigned division  &lt;br /&gt;
* **idiv** — signed division&lt;br /&gt;
&lt;br /&gt;
The dividend must be in the accumulator pair (RDX:RAX, EDX:EAX, DX:AX, or AH:AL).&lt;br /&gt;
&lt;br /&gt;
After division:&lt;br /&gt;
* Quotient → stored in A-register (AL, AX, EAX, RAX)&lt;br /&gt;
* Remainder → stored in D-register (AH, DX, EDX, RDX)&lt;br /&gt;
&lt;br /&gt;
== Example (unsigned division) ==&lt;br /&gt;
 mov rdx, 0        ; clear upper part&lt;br /&gt;
 mov rax, 100      ; dividend = 100&lt;br /&gt;
 mov rbx, 7        ; divisor = 7&lt;br /&gt;
 div rbx            ; quotient = 14 (RAX), remainder = 2 (RDX)&lt;br /&gt;
&lt;br /&gt;
== Example (signed division) ==&lt;br /&gt;
 mov rax, -100&lt;br /&gt;
 cqo                ; extend sign bit from RAX into RDX&lt;br /&gt;
 mov rbx, 7&lt;br /&gt;
 idiv rbx           ; quotient = -14, remainder = -2&lt;br /&gt;
&lt;br /&gt;
The **cqo** instruction (convert quadword to octoword) copies the sign bit of RAX into all bits of RDX, preparing the correct signed dividend.&lt;br /&gt;
&lt;br /&gt;
== Common pitfalls ==&lt;br /&gt;
* Before **div/idiv**, always set or extend the upper register correctly (e.g., `xor rdx, rdx` or `cqo`).&lt;br /&gt;
* Dividing by zero raises a CPU exception.&lt;br /&gt;
* Overflow in multiplication affects flags (CF and OF set).&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
* **mul / div** — unsigned  &lt;br /&gt;
* **imul / idiv** — signed  &lt;br /&gt;
* Use **RDX:RAX** for 64-bit operations  &lt;br /&gt;
* Use **cqo** before signed division  &lt;br /&gt;
* Check RDX for overflow and remainders&lt;br /&gt;
&lt;br /&gt;
Mastering these ensures correct arithmetic handling for both signed and unsigned integers in x86-64 assembly.&lt;br /&gt;
&lt;br /&gt;
[[Category:Assembly Programming]]&lt;/div&gt;</summary>
		<author><name>Bfh-sts</name></author>
	</entry>
	<entry>
		<id>https://bsccs.stoney-wiki.com/w/index.php?title=Sign_Extension_and_Negation_(movsx,_neg)&amp;diff=104</id>
		<title>Sign Extension and Negation (movsx, neg)</title>
		<link rel="alternate" type="text/html" href="https://bsccs.stoney-wiki.com/w/index.php?title=Sign_Extension_and_Negation_(movsx,_neg)&amp;diff=104"/>
		<updated>2025-10-20T13:47:37Z</updated>

		<summary type="html">&lt;p&gt;Bfh-sts: Created page with &amp;quot;= Sign Extension and Negation (movsx, neg) = This page explains how to handle signed numbers of different sizes and how to change their sign in x86-64 assembly.  == Copying signed numbers == When using mov to copy signed numbers, the sign bit is not automatically extended to the larger register size.   This can lead to incorrect values when moving smaller signed values into larger registers.  Example:  mov ax, -42  mov bx, ax      ; bx = -42 (ok, same size)  mov ecx, bx...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Sign Extension and Negation (movsx, neg) =&lt;br /&gt;
This page explains how to handle signed numbers of different sizes and how to change their sign in x86-64 assembly.&lt;br /&gt;
&lt;br /&gt;
== Copying signed numbers ==&lt;br /&gt;
When using mov to copy signed numbers, the sign bit is not automatically extended to the larger register size.  &lt;br /&gt;
This can lead to incorrect values when moving smaller signed values into larger registers.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 mov ax, -42&lt;br /&gt;
 mov bx, ax      ; bx = -42 (ok, same size)&lt;br /&gt;
 mov ecx, bx     ; ecx = 65494 (wrong!)&lt;br /&gt;
 ; the negative value was reinterpreted as an unsigned 16-bit number&lt;br /&gt;
&lt;br /&gt;
== movsx — move with sign extension ==&lt;br /&gt;
movsx copies a smaller signed value into a larger register while preserving its sign.&lt;br /&gt;
&lt;br /&gt;
Syntax:&lt;br /&gt;
 movsx destination, source&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 mov ax, -42&lt;br /&gt;
 movsx edx, ax   ; edx = -42 (correct)&lt;br /&gt;
 movsx rbx, edx  ; rbx = -42 (sign extended again)&lt;br /&gt;
&lt;br /&gt;
The CPU copies the sign bit from the source to fill the unused higher bits in the destination register.&lt;br /&gt;
&lt;br /&gt;
== movzx — move with zero extension ==&lt;br /&gt;
For unsigned values, movzx fills the upper bits with zeros.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 mov al, 0xFF&lt;br /&gt;
 movzx eax, al   ; eax = 0x000000FF = 255&lt;br /&gt;
&lt;br /&gt;
movzx is the correct instruction when working with unsigned data.&lt;br /&gt;
&lt;br /&gt;
== Negation (neg instruction) ==&lt;br /&gt;
neg changes the sign of a signed value (computes two’s complement).  &lt;br /&gt;
It subtracts the operand from zero: 0 − operand.&lt;br /&gt;
&lt;br /&gt;
Syntax:&lt;br /&gt;
 neg operand&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 mov rax, 42&lt;br /&gt;
 neg rax          ; rax = −42&lt;br /&gt;
 add rax, 42      ; rax = 0&lt;br /&gt;
&lt;br /&gt;
neg affects these flags:&lt;br /&gt;
* CF – set if operand ≠ 0&lt;br /&gt;
* SF – set if result is negative&lt;br /&gt;
* OF – set if signed overflow occurs&lt;br /&gt;
* ZF – set if result is 0&lt;br /&gt;
&lt;br /&gt;
== Example combining movsx and neg ==&lt;br /&gt;
 mov ax, -10&lt;br /&gt;
 movsx eax, ax     ; correctly sign-extend to 32-bit&lt;br /&gt;
 neg eax           ; change sign → +10&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
* mov copies raw bits without sign extension.&lt;br /&gt;
* movsx extends signed values correctly to larger registers.&lt;br /&gt;
* movzx is for unsigned zero-extension.&lt;br /&gt;
* neg inverts the sign using two’s complement arithmetic.&lt;br /&gt;
&lt;br /&gt;
These instructions are essential for correctly handling mixed data sizes and signed arithmetic in low-level programming.&lt;br /&gt;
&lt;br /&gt;
[[Category:Assembly Programming]]&lt;/div&gt;</summary>
		<author><name>Bfh-sts</name></author>
	</entry>
	<entry>
		<id>https://bsccs.stoney-wiki.com/w/index.php?title=Signed_Integers_and_Flags_(Two%E2%80%99s_Complement)&amp;diff=103</id>
		<title>Signed Integers and Flags (Two’s Complement)</title>
		<link rel="alternate" type="text/html" href="https://bsccs.stoney-wiki.com/w/index.php?title=Signed_Integers_and_Flags_(Two%E2%80%99s_Complement)&amp;diff=103"/>
		<updated>2025-10-20T13:47:24Z</updated>

		<summary type="html">&lt;p&gt;Bfh-sts: Created page with &amp;quot;= Signed Integers and Flags (Two’s Complement) = This page explains how signed integers are represented in x86 architecture using two’s complement and how arithmetic instructions affect CPU flags.  == Unsigned vs signed integers == Unsigned integers represent only positive values.   Signed integers represent both positive and negative values using two’s complement.  Example with 8 bits: * 00000000₂ = 0 * 00000001₂ = +1 * 01111111₂ = +127 * 11111111₂ = −1...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Signed Integers and Flags (Two’s Complement) =&lt;br /&gt;
This page explains how signed integers are represented in x86 architecture using two’s complement and how arithmetic instructions affect CPU flags.&lt;br /&gt;
&lt;br /&gt;
== Unsigned vs signed integers ==&lt;br /&gt;
Unsigned integers represent only positive values.  &lt;br /&gt;
Signed integers represent both positive and negative values using two’s complement.&lt;br /&gt;
&lt;br /&gt;
Example with 8 bits:&lt;br /&gt;
* 00000000₂ = 0&lt;br /&gt;
* 00000001₂ = +1&lt;br /&gt;
* 01111111₂ = +127&lt;br /&gt;
* 11111111₂ = −1&lt;br /&gt;
* 11111110₂ = −2&lt;br /&gt;
* 10000000₂ = −128&lt;br /&gt;
&lt;br /&gt;
In two’s complement, the most significant bit (MSB) is the sign bit:&lt;br /&gt;
* 0 = positive&lt;br /&gt;
* 1 = negative&lt;br /&gt;
&lt;br /&gt;
== How two’s complement works ==&lt;br /&gt;
To negate a binary number:&lt;br /&gt;
1. Invert all bits.&lt;br /&gt;
2. Add 1 to the result.&lt;br /&gt;
&lt;br /&gt;
Example: Convert +5 (00000101₂) to −5:&lt;br /&gt;
 Invert → 11111010₂  &lt;br /&gt;
 Add 1  → 11111011₂ = −5&lt;br /&gt;
&lt;br /&gt;
== Overflow and wrapping ==&lt;br /&gt;
When signed arithmetic exceeds the representable range, it wraps around and sets the overflow flag (OF).&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 mov eax, 0x7FFFFFFF   ; largest positive 32-bit signed number&lt;br /&gt;
 inc eax               ; eax becomes 0x80000000 (−2147483648)&lt;br /&gt;
 ; Overflow occurs, OF = 1, SF = 1 (sign bit set)&lt;br /&gt;
&lt;br /&gt;
Decrementing below the smallest value (e.g., −128 for 8-bit) wraps around to the largest positive value.&lt;br /&gt;
&lt;br /&gt;
== Example: continuous decrement ==&lt;br /&gt;
 mov eax, 0&lt;br /&gt;
loop2:&lt;br /&gt;
 dec eax&lt;br /&gt;
 jmp loop2&lt;br /&gt;
&lt;br /&gt;
EAX changes as follows:&lt;br /&gt;
 0x00000000 → 0xFFFFFFFF (−1)&lt;br /&gt;
 → 0xFFFFFFFE (−2)&lt;br /&gt;
 → 0xFFFFFFFD (−3)&lt;br /&gt;
and so on.&lt;br /&gt;
&lt;br /&gt;
== Flags relevant for signed arithmetic ==&lt;br /&gt;
* SF (Sign Flag): set when result is negative (MSB = 1)&lt;br /&gt;
* ZF (Zero Flag): set when result is zero&lt;br /&gt;
* OF (Overflow Flag): set when signed overflow occurs&lt;br /&gt;
* CF (Carry Flag): used for unsigned overflow, not sign interpretation&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
* Two’s complement represents negative numbers naturally.&lt;br /&gt;
* Arithmetic wraps around automatically.&lt;br /&gt;
* Signed overflow is detected via the Overflow Flag (OF).&lt;br /&gt;
* Understanding these flags is essential for conditional branching and comparisons.&lt;br /&gt;
&lt;br /&gt;
[[Category:Assembly Programming]]&lt;/div&gt;</summary>
		<author><name>Bfh-sts</name></author>
	</entry>
	<entry>
		<id>https://bsccs.stoney-wiki.com/w/index.php?title=Arithmetic:_add,_sub,_inc,_dec&amp;diff=102</id>
		<title>Arithmetic: add, sub, inc, dec</title>
		<link rel="alternate" type="text/html" href="https://bsccs.stoney-wiki.com/w/index.php?title=Arithmetic:_add,_sub,_inc,_dec&amp;diff=102"/>
		<updated>2025-10-20T13:47:12Z</updated>

		<summary type="html">&lt;p&gt;Bfh-sts: Created page with &amp;quot;= Arithmetic: add, sub, inc, dec = This page explains basic arithmetic instructions in x86-64 assembly language, including addition, subtraction, increment, and decrement.  == Overview == Arithmetic instructions modify register or memory contents.   Most of them follow this general pattern:  instruction destination, source  The result is stored in the destination operand.  == Addition (add) == Adds the source value to the destination and stores the result in the destinat...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Arithmetic: add, sub, inc, dec =&lt;br /&gt;
This page explains basic arithmetic instructions in x86-64 assembly language, including addition, subtraction, increment, and decrement.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
Arithmetic instructions modify register or memory contents.  &lt;br /&gt;
Most of them follow this general pattern:&lt;br /&gt;
 instruction destination, source&lt;br /&gt;
&lt;br /&gt;
The result is stored in the destination operand.&lt;br /&gt;
&lt;br /&gt;
== Addition (add) ==&lt;br /&gt;
Adds the source value to the destination and stores the result in the destination.&lt;br /&gt;
&lt;br /&gt;
Syntax:&lt;br /&gt;
 add destination, source&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
 add rax, rbx      ; rax = rax + rbx&lt;br /&gt;
 add r10, 4        ; r10 = r10 + 4&lt;br /&gt;
 add [rcx], rdx    ; memory at rcx = memory[rcx] + rdx&lt;br /&gt;
&lt;br /&gt;
The instruction affects several CPU flags:&lt;br /&gt;
* CF (Carry Flag) – set if result exceeds register size.&lt;br /&gt;
* ZF (Zero Flag) – set if result is 0.&lt;br /&gt;
* SF (Sign Flag) – set if result is negative.&lt;br /&gt;
* OF (Overflow Flag) – set if signed overflow occurs.&lt;br /&gt;
&lt;br /&gt;
== Subtraction (sub) ==&lt;br /&gt;
Subtracts the source value from the destination and stores the result in the destination.&lt;br /&gt;
&lt;br /&gt;
Syntax:&lt;br /&gt;
 sub destination, source&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
 sub rax, 1        ; rax = rax - 1&lt;br /&gt;
 sub [rbx], rcx    ; memory[rbx] = memory[rbx] - rcx&lt;br /&gt;
&lt;br /&gt;
Like add, sub modifies the condition flags.&lt;br /&gt;
&lt;br /&gt;
== Increment (inc) and Decrement (dec) ==&lt;br /&gt;
These are special cases of add and sub that modify the operand by 1.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
 mov eax, 0xFFFFFFFF&lt;br /&gt;
 inc eax           ; eax becomes 0, sets ZF, PF, AF&lt;br /&gt;
 mov ebx, 0x2D&lt;br /&gt;
 dec ebx           ; ebx becomes 0x2C, clears most flags&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
* inc increases by 1 → useful for counters and loops.&lt;br /&gt;
* dec decreases by 1 → useful for iteration and countdowns.&lt;br /&gt;
&lt;br /&gt;
== Example: simple loop ==&lt;br /&gt;
 mov ecx, 5&lt;br /&gt;
loop_start:&lt;br /&gt;
 dec ecx&lt;br /&gt;
 jnz loop_start     ; continue looping until ecx = 0&lt;br /&gt;
&lt;br /&gt;
This uses dec and the Zero Flag (ZF) to control the loop.&lt;br /&gt;
&lt;br /&gt;
== Notes on performance ==&lt;br /&gt;
While add/sub and inc/dec behave similarly, inc and dec do not modify the Carry Flag (CF).  &lt;br /&gt;
For arithmetic where CF matters (e.g., multiword addition), use add/sub instead.&lt;br /&gt;
&lt;br /&gt;
[[Category:Assembly Programming]]&lt;/div&gt;</summary>
		<author><name>Bfh-sts</name></author>
	</entry>
	<entry>
		<id>https://bsccs.stoney-wiki.com/w/index.php?title=Labels_and_Entry_Point_(_start)&amp;diff=101</id>
		<title>Labels and Entry Point ( start)</title>
		<link rel="alternate" type="text/html" href="https://bsccs.stoney-wiki.com/w/index.php?title=Labels_and_Entry_Point_(_start)&amp;diff=101"/>
		<updated>2025-10-20T13:46:52Z</updated>

		<summary type="html">&lt;p&gt;Bfh-sts: Created page with &amp;quot;= Labels and Entry Point (_start) = This page explains how labels work in assembly programming and how the program’s entry point is defined.  == What are labels == A label is a symbolic name for a memory address.   It marks a location in code or data that can be referenced later.  Syntax:  LabelName:  Example:  SECTION .data  EatMsg: db &amp;quot;Eat at Joe’s&amp;quot;   SECTION .text  mov rcx, EatMsg   ; rcx ← address of the string  mov rdx, [EatMsg] ; rdx ← first 8 bytes of the...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Labels and Entry Point (_start) =&lt;br /&gt;
This page explains how labels work in assembly programming and how the program’s entry point is defined.&lt;br /&gt;
&lt;br /&gt;
== What are labels ==&lt;br /&gt;
A label is a symbolic name for a memory address.  &lt;br /&gt;
It marks a location in code or data that can be referenced later.&lt;br /&gt;
&lt;br /&gt;
Syntax:&lt;br /&gt;
 LabelName:&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 SECTION .data&lt;br /&gt;
 EatMsg: db &amp;quot;Eat at Joe’s&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 SECTION .text&lt;br /&gt;
 mov rcx, EatMsg   ; rcx ← address of the string&lt;br /&gt;
 mov rdx, [EatMsg] ; rdx ← first 8 bytes of the string&lt;br /&gt;
&lt;br /&gt;
Here:&lt;br /&gt;
* EatMsg refers to the address of the string.&lt;br /&gt;
* [EatMsg] refers to the contents at that address.&lt;br /&gt;
&lt;br /&gt;
== Why labels are needed ==&lt;br /&gt;
Labels replace hardcoded addresses and make programs relocatable:&lt;br /&gt;
* You don’t know where in memory your program will be loaded.&lt;br /&gt;
* The linker can adjust label references automatically.&lt;br /&gt;
* The code becomes modular and position-independent.&lt;br /&gt;
&lt;br /&gt;
== Code labels ==&lt;br /&gt;
Labels can also be attached to code lines.  &lt;br /&gt;
They mark destinations for jumps and branches, forming the basis for control flow.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 mov eax, 5&lt;br /&gt;
loop_start:&lt;br /&gt;
 dec eax&lt;br /&gt;
 jnz loop_start   ; jump back if eax ≠ 0&lt;br /&gt;
&lt;br /&gt;
Here, loop_start marks the instruction to jump to.  &lt;br /&gt;
Such code labels are essential for loops, branches, and function calls.&lt;br /&gt;
&lt;br /&gt;
== The _start label ==&lt;br /&gt;
_start: defines the entry point of an assembly program on Linux.  &lt;br /&gt;
It is the first instruction executed when the program runs.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 global _start&lt;br /&gt;
_start:&lt;br /&gt;
 mov rax, 60      ; system call for exit&lt;br /&gt;
 xor rdi, rdi     ; return code 0&lt;br /&gt;
 syscall&lt;br /&gt;
&lt;br /&gt;
* The keyword global makes _start visible to the linker.&lt;br /&gt;
* The operating system looks for this symbol to know where to begin execution.&lt;br /&gt;
&lt;br /&gt;
Every NASM program for Linux must define exactly one entry point, usually called _start.&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
* Labels are symbolic names for addresses.&lt;br /&gt;
* Data labels point to memory locations.&lt;br /&gt;
* Code labels mark positions for jumps.&lt;br /&gt;
* The _start label defines where execution begins.&lt;br /&gt;
&lt;br /&gt;
[[Category:Assembly Programming]]&lt;/div&gt;</summary>
		<author><name>Bfh-sts</name></author>
	</entry>
	<entry>
		<id>https://bsccs.stoney-wiki.com/w/index.php?title=Memory_Operands_in_Other_Instructions_(add,_etc.)&amp;diff=100</id>
		<title>Memory Operands in Other Instructions (add, etc.)</title>
		<link rel="alternate" type="text/html" href="https://bsccs.stoney-wiki.com/w/index.php?title=Memory_Operands_in_Other_Instructions_(add,_etc.)&amp;diff=100"/>
		<updated>2025-10-20T13:46:38Z</updated>

		<summary type="html">&lt;p&gt;Bfh-sts: Created page with &amp;quot;= Arithmetic: add, sub, inc, dec = This page explains basic arithmetic instructions in x86-64 assembly language, including addition, subtraction, increment, and decrement.  == Overview == Arithmetic instructions modify register or memory contents.   Most of them follow this general pattern:  instruction destination, source  The result is stored in the destination operand.  == Addition (add) == Adds the source value to the destination and stores the result in the destinat...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Arithmetic: add, sub, inc, dec =&lt;br /&gt;
This page explains basic arithmetic instructions in x86-64 assembly language, including addition, subtraction, increment, and decrement.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
Arithmetic instructions modify register or memory contents.  &lt;br /&gt;
Most of them follow this general pattern:&lt;br /&gt;
 instruction destination, source&lt;br /&gt;
&lt;br /&gt;
The result is stored in the destination operand.&lt;br /&gt;
&lt;br /&gt;
== Addition (add) ==&lt;br /&gt;
Adds the source value to the destination and stores the result in the destination.&lt;br /&gt;
&lt;br /&gt;
Syntax:&lt;br /&gt;
 add destination, source&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
 add rax, rbx      ; rax = rax + rbx&lt;br /&gt;
 add r10, 4        ; r10 = r10 + 4&lt;br /&gt;
 add [rcx], rdx    ; memory at rcx = memory[rcx] + rdx&lt;br /&gt;
&lt;br /&gt;
The instruction affects several CPU flags:&lt;br /&gt;
* CF (Carry Flag) – set if result exceeds register size.&lt;br /&gt;
* ZF (Zero Flag) – set if result is 0.&lt;br /&gt;
* SF (Sign Flag) – set if result is negative.&lt;br /&gt;
* OF (Overflow Flag) – set if signed overflow occurs.&lt;br /&gt;
&lt;br /&gt;
== Subtraction (sub) ==&lt;br /&gt;
Subtracts the source value from the destination and stores the result in the destination.&lt;br /&gt;
&lt;br /&gt;
Syntax:&lt;br /&gt;
 sub destination, source&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
 sub rax, 1        ; rax = rax - 1&lt;br /&gt;
 sub [rbx], rcx    ; memory[rbx] = memory[rbx] - rcx&lt;br /&gt;
&lt;br /&gt;
Like add, sub modifies the condition flags.&lt;br /&gt;
&lt;br /&gt;
== Increment (inc) and Decrement (dec) ==&lt;br /&gt;
These are special cases of add and sub that modify the operand by 1.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
 mov eax, 0xFFFFFFFF&lt;br /&gt;
 inc eax           ; eax becomes 0, sets ZF, PF, AF&lt;br /&gt;
 mov ebx, 0x2D&lt;br /&gt;
 dec ebx           ; ebx becomes 0x2C, clears most flags&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
* inc increases by 1 → useful for counters and loops.&lt;br /&gt;
* dec decreases by 1 → useful for iteration and countdowns.&lt;br /&gt;
&lt;br /&gt;
== Example: simple loop ==&lt;br /&gt;
 mov ecx, 5&lt;br /&gt;
loop_start:&lt;br /&gt;
 dec ecx&lt;br /&gt;
 jnz loop_start     ; continue looping until ecx = 0&lt;br /&gt;
&lt;br /&gt;
This uses dec and the Zero Flag (ZF) to control the loop.&lt;br /&gt;
&lt;br /&gt;
== Notes on performance ==&lt;br /&gt;
While add/sub and inc/dec behave similarly, inc and dec do not modify the Carry Flag (CF).  &lt;br /&gt;
For arithmetic where CF matters (e.g., multiword addition), use add/sub instead.&lt;br /&gt;
&lt;br /&gt;
[[Category:Assembly Programming]]&lt;/div&gt;</summary>
		<author><name>Bfh-sts</name></author>
	</entry>
	<entry>
		<id>https://bsccs.stoney-wiki.com/w/index.php?title=Addressing_Modes:_Direct,_Indirect,_Base%2BIndex,_Offsets&amp;diff=99</id>
		<title>Addressing Modes: Direct, Indirect, Base+Index, Offsets</title>
		<link rel="alternate" type="text/html" href="https://bsccs.stoney-wiki.com/w/index.php?title=Addressing_Modes:_Direct,_Indirect,_Base%2BIndex,_Offsets&amp;diff=99"/>
		<updated>2025-10-20T13:46:23Z</updated>

		<summary type="html">&lt;p&gt;Bfh-sts: Created page with &amp;quot;= Addressing Modes: Direct, Indirect, Base+Index, Offsets = This page explains how different addressing modes work in x86-64 assembly and how they apply beyond the mov instruction.  == Overview == Addressing modes define how operands are interpreted by the CPU: * **Immediate** – The value is part of the instruction itself. * **Register** – The operand is stored in a CPU register. * **Memory** – The operand is located in RAM, referenced by an address.  Understanding...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Addressing Modes: Direct, Indirect, Base+Index, Offsets =&lt;br /&gt;
This page explains how different addressing modes work in x86-64 assembly and how they apply beyond the mov instruction.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
Addressing modes define how operands are interpreted by the CPU:&lt;br /&gt;
* **Immediate** – The value is part of the instruction itself.&lt;br /&gt;
* **Register** – The operand is stored in a CPU register.&lt;br /&gt;
* **Memory** – The operand is located in RAM, referenced by an address.&lt;br /&gt;
&lt;br /&gt;
Understanding addressing modes is essential for efficient data access and struct or array manipulation.&lt;br /&gt;
&lt;br /&gt;
== Immediate addressing ==&lt;br /&gt;
The constant value is embedded directly into the instruction.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 mov rax, 42     ; load 42 directly into rax&lt;br /&gt;
&lt;br /&gt;
Useful for initializing values or setting counters.&lt;br /&gt;
&lt;br /&gt;
== Direct memory addressing ==&lt;br /&gt;
The instruction refers to a fixed memory address.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 mov rax, [100]  ; load from memory at address 100&lt;br /&gt;
&lt;br /&gt;
Used for accessing global or static data at a known location.&lt;br /&gt;
&lt;br /&gt;
== Register indirect addressing ==&lt;br /&gt;
A register holds the memory address to read from or write to.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 mov [rbx], rax  ; write the value of rax to the address stored in rbx&lt;br /&gt;
&lt;br /&gt;
Commonly used for pointer-like behavior.&lt;br /&gt;
&lt;br /&gt;
== Direct offset addressing ==&lt;br /&gt;
Adds a fixed offset to a base register to access a specific location in a structure.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 mov [rbx+8], rax  ; write to the field at offset 8 from base address in rbx&lt;br /&gt;
&lt;br /&gt;
Useful when working with data structures or objects.&lt;br /&gt;
&lt;br /&gt;
== Base + index addressing ==&lt;br /&gt;
Uses one register as a base address and another as an index.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 mov rax, [rbx + rdi]  ; read an array element&lt;br /&gt;
&lt;br /&gt;
If each element has a size larger than one byte, a scaling factor can be used:&lt;br /&gt;
 mov rax, [rbx + rdi*8]  ; access 8-byte (64-bit) elements&lt;br /&gt;
&lt;br /&gt;
== Addressing with other instructions ==&lt;br /&gt;
Many instructions other than mov can access memory operands directly.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 add [rax], 10  ; add 10 to the value stored at memory address in rax&lt;br /&gt;
&lt;br /&gt;
This single instruction:&lt;br /&gt;
1. Loads the value from memory at [rax].&lt;br /&gt;
2. Adds 10 to it.&lt;br /&gt;
3. Stores the result back to [rax].&lt;br /&gt;
&lt;br /&gt;
== CISC vs. RISC note ==&lt;br /&gt;
x86-64 is a Complex Instruction Set Computer (CISC).  &lt;br /&gt;
It allows instructions that perform multiple steps (like load + operate + store).  &lt;br /&gt;
Internally, however, modern x86 CPUs translate these into smaller RISC-like operations for efficiency.&lt;br /&gt;
&lt;br /&gt;
Understanding addressing modes helps predict performance and design efficient code.&lt;br /&gt;
&lt;br /&gt;
[[Category:Assembly Programming]]&lt;/div&gt;</summary>
		<author><name>Bfh-sts</name></author>
	</entry>
	<entry>
		<id>https://bsccs.stoney-wiki.com/w/index.php?title=mov_Instruction:_Registers,_Immediates,_Memory&amp;diff=98</id>
		<title>mov Instruction: Registers, Immediates, Memory</title>
		<link rel="alternate" type="text/html" href="https://bsccs.stoney-wiki.com/w/index.php?title=mov_Instruction:_Registers,_Immediates,_Memory&amp;diff=98"/>
		<updated>2025-10-20T13:46:12Z</updated>

		<summary type="html">&lt;p&gt;Bfh-sts: Created page with &amp;quot;= mov Instruction: Registers, Immediates, Memory = This page introduces the mov instruction — one of the most fundamental instructions in assembly — and explains the different addressing modes used with it.  == The mov instruction == The mov instruction copies (moves) data from one location to another.   Syntax: mov destination, source  It can copy data: * From one register to another. * From an immediate (constant) value to a register. * From memory to a register (l...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= mov Instruction: Registers, Immediates, Memory =&lt;br /&gt;
This page introduces the mov instruction — one of the most fundamental instructions in assembly — and explains the different addressing modes used with it.&lt;br /&gt;
&lt;br /&gt;
== The mov instruction ==&lt;br /&gt;
The mov instruction copies (moves) data from one location to another.  &lt;br /&gt;
Syntax: mov destination, source&lt;br /&gt;
&lt;br /&gt;
It can copy data:&lt;br /&gt;
* From one register to another.&lt;br /&gt;
* From an immediate (constant) value to a register.&lt;br /&gt;
* From memory to a register (load).&lt;br /&gt;
* From a register to memory (store).&lt;br /&gt;
&lt;br /&gt;
However, memory-to-memory moves are not allowed.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 mov rax, 42     ; move the value 42 into the register rax&lt;br /&gt;
&lt;br /&gt;
== Immediate addressing ==&lt;br /&gt;
The data is part of the instruction itself.  &lt;br /&gt;
The value is encoded directly within the instruction bytes.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
 mov rax, 42            ; b8 2a 00 00 00&lt;br /&gt;
 mov rbx, &#039;Hello&#039;       ; 48 bb 48 65 6c 6c 6f 00 00 00&lt;br /&gt;
 mov rcx, 0ABCDh        ; b9 cd ab 00 00&lt;br /&gt;
&lt;br /&gt;
Be careful with register size:&lt;br /&gt;
 mov cl, 67EFh          ; warning: byte data exceeds bounds&lt;br /&gt;
&lt;br /&gt;
Immediate values must fit the destination register.&lt;br /&gt;
&lt;br /&gt;
== Register addressing ==&lt;br /&gt;
Copies values directly between registers.  &lt;br /&gt;
The register size defines the amount of data moved.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
 mov bl, ch     ; 8-bit&lt;br /&gt;
 add dx, ax     ; 16-bit&lt;br /&gt;
 mov ebp, esi   ; 32-bit&lt;br /&gt;
&lt;br /&gt;
Most instructions operate on registers.  &lt;br /&gt;
Example:&lt;br /&gt;
 add ecx, edx   ; ecx ← ecx + edx (32-bit addition)&lt;br /&gt;
 add rax, rbx   ; rax ← rax + rbx (64-bit addition)&lt;br /&gt;
&lt;br /&gt;
== Memory addressing ==&lt;br /&gt;
The [] operator accesses memory at the specified address.  &lt;br /&gt;
Inside the brackets, you can use:&lt;br /&gt;
* A direct address&lt;br /&gt;
* A register holding an address&lt;br /&gt;
* An offset added to a base register&lt;br /&gt;
* A base and index register combination&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
 mov rax, [Address]      ; load 64 bits from memory at Address&lt;br /&gt;
 mov rbx, Address        ; copy the address itself into rbx&lt;br /&gt;
 mov cx, [rbx]           ; load 16 bits from memory pointed by rbx&lt;br /&gt;
 mov edx, [rbx+3]        ; load 32 bits from rbx + 3&lt;br /&gt;
 mov [rbx+rcx], rax      ; store 64 bits from rax into memory at rbx+rcx&lt;br /&gt;
&lt;br /&gt;
== Practical register exercise ==&lt;br /&gt;
Try in a debugger:&lt;br /&gt;
 mov ax, 67FEh&lt;br /&gt;
 mov bx, ax&lt;br /&gt;
 mov cl, bh&lt;br /&gt;
 mov ch, bl&lt;br /&gt;
&lt;br /&gt;
Inspect ax, bx, and cx step by step to observe how the 8-bit halves (AL/AH, BL/BH, etc.) affect the full registers.&lt;br /&gt;
&lt;br /&gt;
== Addressing overview ==&lt;br /&gt;
Mode | Example | Typical Use&lt;br /&gt;
---- | -------- | ------------&lt;br /&gt;
Register | mov rax, rbx | Fast data copy&lt;br /&gt;
Immediate | mov rax, 42 | Load a constant&lt;br /&gt;
Direct memory | mov rax, [100] | Read a global variable&lt;br /&gt;
Register indirect | mov [rbx], rax | Write through a pointer&lt;br /&gt;
Direct offset | mov [rbx+8], rax | Access struct field&lt;br /&gt;
Base + index | mov rax, [rbx + rdi] | Access array element&lt;br /&gt;
&lt;br /&gt;
[[Category:Assembly Programming]]&lt;/div&gt;</summary>
		<author><name>Bfh-sts</name></author>
	</entry>
	<entry>
		<id>https://bsccs.stoney-wiki.com/w/index.php?title=Assembly_Programming:_Overview_%26_Conventions&amp;diff=97</id>
		<title>Assembly Programming: Overview &amp; Conventions</title>
		<link rel="alternate" type="text/html" href="https://bsccs.stoney-wiki.com/w/index.php?title=Assembly_Programming:_Overview_%26_Conventions&amp;diff=97"/>
		<updated>2025-10-20T13:46:01Z</updated>

		<summary type="html">&lt;p&gt;Bfh-sts: Created page with &amp;quot;= Assembly Programming: Overview &amp;amp; Conventions = This page introduces x86-64 assembly programming, the syntax conventions used in this course, and the tools involved.  == Introduction == Assembly language (ASM) is a low-level programming language that provides direct access to the CPU’s instruction set.   Unlike high-level languages, assembly operates on registers, memory addresses, and immediate values.  In this course, we use NASM (Netwide Assembler) on GNU/Linux wit...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Assembly Programming: Overview &amp;amp; Conventions =&lt;br /&gt;
This page introduces x86-64 assembly programming, the syntax conventions used in this course, and the tools involved.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Assembly language (ASM) is a low-level programming language that provides direct access to the CPU’s instruction set.  &lt;br /&gt;
Unlike high-level languages, assembly operates on registers, memory addresses, and immediate values.&lt;br /&gt;
&lt;br /&gt;
In this course, we use NASM (Netwide Assembler) on GNU/Linux with Intel syntax.  &lt;br /&gt;
Intel syntax is more readable for most beginners and aligns with documentation from Intel and AMD.&lt;br /&gt;
&lt;br /&gt;
== Intel vs. AT&amp;amp;T syntax ==&lt;br /&gt;
There are two dominant syntaxes for x86 assembly:&lt;br /&gt;
* **Intel syntax** – used by NASM, MASM, and most documentation.&lt;br /&gt;
* **AT&amp;amp;T syntax** – used by GNU Assembler (GAS) and older Unix systems.&lt;br /&gt;
&lt;br /&gt;
Main differences in AT&amp;amp;T syntax:&lt;br /&gt;
* Immediate values are prefixed with `$`, e.g. `push $4` instead of `push 4`.&lt;br /&gt;
* Registers are prefixed with `%`, e.g. `inc %eax` instead of `inc eax`.&lt;br /&gt;
* Source and destination are swapped: `add eax, 4` becomes `add $4, %eax`.&lt;br /&gt;
* Instruction size is suffixed to the opcode: `mov ax, bx` becomes `movw %bx, %ax`.&lt;br /&gt;
&lt;br /&gt;
In this course we use **Intel syntax** exclusively.&lt;br /&gt;
&lt;br /&gt;
== Example comparison ==&lt;br /&gt;
Intel syntax:&lt;br /&gt;
 mov eax, 4&lt;br /&gt;
 add eax, 2&lt;br /&gt;
 mov ebx, eax&lt;br /&gt;
&lt;br /&gt;
AT&amp;amp;T syntax:&lt;br /&gt;
 movl $4, %eax&lt;br /&gt;
 addl $2, %eax&lt;br /&gt;
 movl %eax, %ebx&lt;br /&gt;
&lt;br /&gt;
Intel syntax is generally easier to read, especially when addressing memory:&lt;br /&gt;
 lea eax, [rcx + rax*8 - 0x30]&lt;br /&gt;
vs.&lt;br /&gt;
 lea -0x30(%rcx, %rax, 8), %eax&lt;br /&gt;
&lt;br /&gt;
== Why learn assembly ==&lt;br /&gt;
Learning assembly provides insight into how computers actually execute code:&lt;br /&gt;
* How registers, memory, and the stack interact.&lt;br /&gt;
* How arithmetic and logic are performed at CPU level.&lt;br /&gt;
* How operating system services are invoked through syscalls.&lt;br /&gt;
&lt;br /&gt;
It builds a foundation for understanding compilers, reverse engineering, performance optimization, and embedded systems.&lt;br /&gt;
&lt;br /&gt;
[[Category: Assembly Programming]]&lt;/div&gt;</summary>
		<author><name>Bfh-sts</name></author>
	</entry>
	<entry>
		<id>https://bsccs.stoney-wiki.com/w/index.php?title=Category:Assembly_Programming&amp;diff=96</id>
		<title>Category:Assembly Programming</title>
		<link rel="alternate" type="text/html" href="https://bsccs.stoney-wiki.com/w/index.php?title=Category:Assembly_Programming&amp;diff=96"/>
		<updated>2025-10-20T13:45:53Z</updated>

		<summary type="html">&lt;p&gt;Bfh-sts: Created page with &amp;quot;= Overview = This category covers x86-64 assembly programming with NASM on GNU/Linux: syntax, addressing, arithmetic, data definitions, program structure, strings, and syscalls.  == Pages == * Assembly Programming: Overview &amp;amp; Conventions * mov Instruction: Registers, Immediates, Memory * Addressing Modes: Direct, Indirect, Base+Index, Offsets * Memory Operands in Other Instructions (add, etc.) * Labels and Entry Point (_start) * Arithmetic: add, sub...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
This category covers x86-64 assembly programming with NASM on GNU/Linux: syntax, addressing, arithmetic, data definitions, program structure, strings, and syscalls.&lt;br /&gt;
&lt;br /&gt;
== Pages ==&lt;br /&gt;
* [[Assembly Programming: Overview &amp;amp; Conventions]]&lt;br /&gt;
* [[mov Instruction: Registers, Immediates, Memory]]&lt;br /&gt;
* [[Addressing Modes: Direct, Indirect, Base+Index, Offsets]]&lt;br /&gt;
* [[Memory Operands in Other Instructions (add, etc.)]]&lt;br /&gt;
* [[Labels and Entry Point (_start)]]&lt;br /&gt;
* [[Arithmetic: add, sub, inc, dec]]&lt;br /&gt;
* [[Signed Integers and Flags (Two’s Complement)]]&lt;br /&gt;
* [[Sign Extension and Negation (movsx, neg)]]&lt;br /&gt;
* [[Multiplication and Division (mul, imul, div, idiv)]]&lt;br /&gt;
* [[Program Structure: .data, .bss, .text, global _start]]&lt;br /&gt;
* [[Data Definition Directives: db, dw, dd, dq, equ]]&lt;br /&gt;
* [[Strings in Assembly: Buffers, Length with $ and equ, Concatenation]]&lt;br /&gt;
* [[Linux x86-64 Syscalls: syscall, Registers, sys_write, sys_exit]]&lt;br /&gt;
* [[Hands-on: Debugger Exercise for Register Parts (AX/BX/CX)]]&lt;br /&gt;
&lt;br /&gt;
[[Category: Computer Science Basics (BTI1021p) 25/26]]&lt;/div&gt;</summary>
		<author><name>Bfh-sts</name></author>
	</entry>
	<entry>
		<id>https://bsccs.stoney-wiki.com/w/index.php?title=Assembly_Playfield:_Build,_Run_%26_Debug_(NASM,_LD,_GDB)&amp;diff=95</id>
		<title>Assembly Playfield: Build, Run &amp; Debug (NASM, LD, GDB)</title>
		<link rel="alternate" type="text/html" href="https://bsccs.stoney-wiki.com/w/index.php?title=Assembly_Playfield:_Build,_Run_%26_Debug_(NASM,_LD,_GDB)&amp;diff=95"/>
		<updated>2025-10-20T13:45:26Z</updated>

		<summary type="html">&lt;p&gt;Bfh-sts: Created page with &amp;quot;= Assembly Playfield: Build, Run &amp;amp; Debug (NASM, LD, GDB) = This page provides a practical starting point for experimenting with assembly programming under Linux, using NASM for assembling, LD for linking, and GDB for debugging.  == The playfield program == To learn assembly, we use a minimal “playfield” — a small skeleton program that runs correctly but does nothing by default.   It provides a clean structure that you can modify freely.  Basic structure of `playfie...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Assembly Playfield: Build, Run &amp;amp; Debug (NASM, LD, GDB) =&lt;br /&gt;
This page provides a practical starting point for experimenting with assembly programming under Linux, using NASM for assembling, LD for linking, and GDB for debugging.&lt;br /&gt;
&lt;br /&gt;
== The playfield program ==&lt;br /&gt;
To learn assembly, we use a minimal “playfield” — a small skeleton program that runs correctly but does nothing by default.  &lt;br /&gt;
It provides a clean structure that you can modify freely.&lt;br /&gt;
&lt;br /&gt;
Basic structure of `playfield.asm`:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;nasm&#039;&amp;gt;&lt;br /&gt;
SECTION .data&lt;br /&gt;
SECTION .bss&lt;br /&gt;
SECTION .text&lt;br /&gt;
global _start&lt;br /&gt;
&lt;br /&gt;
_start:&lt;br /&gt;
  nop               ; no operation - placeholder for experiments&lt;br /&gt;
&lt;br /&gt;
  ; properly end program&lt;br /&gt;
  mov rax, 60       ; syscall number for sys_exit&lt;br /&gt;
  mov rdi, 0        ; exit code 0&lt;br /&gt;
  syscall           ; invoke kernel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This structure defines:&lt;br /&gt;
* `.data` – initialized variables&lt;br /&gt;
* `.bss` – uninitialized variables&lt;br /&gt;
* `.text` – program instructions&lt;br /&gt;
* `_start` – the program’s entry point&lt;br /&gt;
&lt;br /&gt;
== Assembling and linking ==&lt;br /&gt;
To build and link the playfield program manually:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;bash&#039;&amp;gt;&lt;br /&gt;
nasm -f elf64 -g -F dwarf playfield.asm -l playfield.lst&lt;br /&gt;
ld -o playfield playfield.o&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or with a Makefile:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;make&#039;&amp;gt;&lt;br /&gt;
playfield: playfield.o&lt;br /&gt;
	ld -o playfield playfield.o&lt;br /&gt;
&lt;br /&gt;
playfield.o: playfield.asm&lt;br /&gt;
	nasm -f elf64 -g -F dwarf playfield.asm -l playfield.lst&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This creates an executable called `playfield`.&lt;br /&gt;
&lt;br /&gt;
== Running the program ==&lt;br /&gt;
Execute directly:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;bash&#039;&amp;gt;&lt;br /&gt;
./playfield&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Since it only runs a `nop` and then exits, nothing visible happens — but the environment is ready for experimentation.&lt;br /&gt;
&lt;br /&gt;
== Debugging with GDB ==&lt;br /&gt;
Use the GNU Debugger (GDB) to step through instructions and inspect registers.&lt;br /&gt;
&lt;br /&gt;
Start with the text interface:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;bash&#039;&amp;gt;&lt;br /&gt;
gdb --tui playfield&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Useful commands inside GDB:&lt;br /&gt;
&lt;br /&gt;
Command | Description&lt;br /&gt;
-------- | ------------&lt;br /&gt;
l | List source code&lt;br /&gt;
b N | Set a breakpoint at line N&lt;br /&gt;
r | Run the program&lt;br /&gt;
s | Step one instruction&lt;br /&gt;
i r | Show register contents&lt;br /&gt;
layout regs | Display and update all registers&lt;br /&gt;
q | Quit GDB&lt;br /&gt;
&lt;br /&gt;
Optional setup: create a `.gdbinit` file in your home directory with:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;text&#039;&amp;gt;&lt;br /&gt;
tui e&lt;br /&gt;
layout regs&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Experiment ideas ==&lt;br /&gt;
Try editing `playfield.asm` and adding simple operations:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;nasm&#039;&amp;gt;&lt;br /&gt;
mov rax, 2&lt;br /&gt;
mov rbx, 3&lt;br /&gt;
add rax, rbx     ; result: 5 in RAX&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assemble, link, and debug again to observe register changes step-by-step.&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
The assembly playfield is your testbed for learning CPU instructions.  &lt;br /&gt;
With NASM, LD, and GDB, you can assemble, link, and inspect every part of the program execution cycle directly at the hardware level.&lt;br /&gt;
&lt;br /&gt;
[[Category: Programming Model]]&lt;/div&gt;</summary>
		<author><name>Bfh-sts</name></author>
	</entry>
	<entry>
		<id>https://bsccs.stoney-wiki.com/w/index.php?title=Historical_Context:_Register_Growth_%26_Segment_Registers&amp;diff=94</id>
		<title>Historical Context: Register Growth &amp; Segment Registers</title>
		<link rel="alternate" type="text/html" href="https://bsccs.stoney-wiki.com/w/index.php?title=Historical_Context:_Register_Growth_%26_Segment_Registers&amp;diff=94"/>
		<updated>2025-10-20T13:45:13Z</updated>

		<summary type="html">&lt;p&gt;Bfh-sts: Created page with &amp;quot;= Historical Context: Register Growth &amp;amp; Segment Registers = This page explains how CPU register design evolved over time and how early architectural choices still influence modern processors.  == Register growth over time == The number and width of registers in CPUs have increased dramatically.   In the early 1980s, accessing main memory was nearly as fast as using registers, so CPUs could work efficiently with only a few of them.  * **1970s:** Typical CPUs had 3–8 gen...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Historical Context: Register Growth &amp;amp; Segment Registers =&lt;br /&gt;
This page explains how CPU register design evolved over time and how early architectural choices still influence modern processors.&lt;br /&gt;
&lt;br /&gt;
== Register growth over time ==&lt;br /&gt;
The number and width of registers in CPUs have increased dramatically.  &lt;br /&gt;
In the early 1980s, accessing main memory was nearly as fast as using registers, so CPUs could work efficiently with only a few of them.&lt;br /&gt;
&lt;br /&gt;
* **1970s:** Typical CPUs had 3–8 general-purpose registers.  &lt;br /&gt;
  Example: The Texas Instruments TMS9900 (1976) had only three physical registers and stored most register data in RAM.  &lt;br /&gt;
* **1980s:** The Intel 8086 introduced 8 general-purpose 16-bit registers.  &lt;br /&gt;
  IBM chose the 8086 for its PC, shaping today’s computing landscape.  &lt;br /&gt;
* **1990s:** The Intel 80386 expanded registers to 32 bits and added more addressing capabilities.  &lt;br /&gt;
* **2000s onward:** x86-64 doubled register width to 64 bits and added registers R8–R15.  &lt;br /&gt;
  Modern CPUs also include many internal physical registers invisible to programmers.&lt;br /&gt;
&lt;br /&gt;
CPU speed has historically grown much faster than DRAM speed (about 60% vs 7% per year).  &lt;br /&gt;
Having many registers helps reduce slow memory access and increases execution speed.&lt;br /&gt;
&lt;br /&gt;
== Views on registers revisited ==&lt;br /&gt;
Different views (RAX, EAX, AX, AH, AL) originate from early physical design decisions.  &lt;br /&gt;
When CPUs were small, it was efficient to divide a single register into smaller parts for flexible access.  &lt;br /&gt;
Modern CPUs emulate this behavior logically, even though internally, registers are remapped dynamically.&lt;br /&gt;
&lt;br /&gt;
== Segment registers ==&lt;br /&gt;
Older x86 CPUs used **segmented memory** to access more than 64 KiB of memory with 16-bit addresses.  &lt;br /&gt;
Segments provided partial 20-bit addressing by combining a segment register with an offset.&lt;br /&gt;
&lt;br /&gt;
Segment registers included:&lt;br /&gt;
* **CS** – Code Segment: points to executable instructions.&lt;br /&gt;
* **DS** – Data Segment: default for data access.&lt;br /&gt;
* **SS** – Stack Segment: used by the stack pointer.&lt;br /&gt;
* **ES**, **FS**, **GS** – additional or specialized data segments.&lt;br /&gt;
&lt;br /&gt;
With the introduction of the 80386, CPUs moved to **flat memory models**, making segmentation mostly obsolete.  &lt;br /&gt;
However, the registers remain available for compatibility and special uses such as:&lt;br /&gt;
* Thread-local storage (FS and GS on Linux).&lt;br /&gt;
* Special-purpose system structures.&lt;br /&gt;
&lt;br /&gt;
== Legacy influence ==&lt;br /&gt;
Even though segmentation and 8-bit registers may seem outdated, they continue to define compatibility in modern 64-bit processors.  &lt;br /&gt;
This persistence shows the layered evolution of computing — new designs are built atop the constraints of older architectures.&lt;br /&gt;
&lt;br /&gt;
[[Category: Programming Model]]&lt;/div&gt;</summary>
		<author><name>Bfh-sts</name></author>
	</entry>
</feed>