import Adam.Metadata import Std.Tactic.RCases import Mathlib.Tactic.Contrapose import Mathlib.Tactic.Use import Mathlib.Tactic.Ring import Mathlib.Algebra.Parity import Mathlib Game "Adam" World "Predicate" Level 8 Title "Für alle" Introduction " Nach längerem Durcheinander findet ein weiteres Blatt aus der Menge zu Euch. " -- Zum `∃` gehört auch das \"für alle\" `∀` (`\\forall`). -- Der Syntax ist `∀ (n : ℕ), 0 ≤ n` also wie beim `∃` trennt ein Komma die Annahmen von der Aussage. -- Eine `∀`-Aussage in den Annahmen verhält sich so wie ein Lemma. Das heisst man kann -- auch diese mit `apply` und `rw` anwenden, je nachdem was die Aussage nach dem Komma ist. -- Also folgende Annahme und Lemma sind genau : -- - `(le_square : ∀ (n : ℕ), n ≤ n^2)` -- - `lemma le_square (n : ℕ) : n ≤ n^2` -- Ein `∀` im Goal kann man mit `intro` angehen, genau wie bei einer Implikation `→`. -- TODO: 1-2 Aufgaben mehr. Statement : ∀ (x : ℕ), (Even x) → Odd (1 + x) := by Hint "**Du**: Das `∀` heisst sicher \"für alle\". **Robo**: Und man schreibt `\\forall`. Ein `∀ x, …` im Beweisziel kannst Du wie eine Implikation mit `intro x` angehen." intro x h unfold Even at h unfold Odd rcases h with ⟨y, hy⟩ use y rw [hy] ring Conclusion "Wieder werdet Ihr mit einem Applaus belohnt, und die Formalosophinnen beratschlagen sich, was sie Euch noch vorlegen wollen."