You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
|
import TestGame.Metadata
|
|
|
|
|
import Std.Tactic.RCases
|
|
|
|
|
import Mathlib.Tactic.LeftRight
|
|
|
|
|
|
|
|
|
|
Game "TestGame"
|
|
|
|
|
World "Predicate"
|
|
|
|
|
Level 2
|
|
|
|
|
|
|
|
|
|
Title "Widerspruch"
|
|
|
|
|
|
|
|
|
|
Introduction
|
|
|
|
|
"
|
|
|
|
|
Im weiteren kann man auch Widersprüche erhalten, wenn man Annahmen der Form
|
|
|
|
|
`A ≠ A` (`\\ne`) hat, oder Aussagen der Form
|
|
|
|
|
`A = B` hat, wo Lean weiss, dass `A` und `B` unterschiedlich sind, wie zum Beispiel `0 = 1` in `ℕ`.
|
|
|
|
|
|
|
|
|
|
*Bemerkung:* `X ≠ Y` muss man als `¬ (X = Y)` lesen, und auch so behandeln.
|
|
|
|
|
"
|
|
|
|
|
|
|
|
|
|
Statement
|
|
|
|
|
"Angenommen man hat $a = b = c$ und $a \\ne c$ natürliche Zahlen $a, b, c$.
|
|
|
|
|
Zeige, dass man daraus jede beliebige Aussage beweisen kann."
|
|
|
|
|
(A : Prop) (a b c : ℕ) (g₁ : a = b) (g₂ : b = c) (h : a ≠ c) : A := by
|
|
|
|
|
rw [g₁] at h
|
|
|
|
|
contradiction
|
|
|
|
|
|
|
|
|
|
Message (A : Prop) (a : ℕ) (b : ℕ) (c : ℕ) (g₁ : a = b) (g₂ : b = c) (h : a ≠ c) : A =>
|
|
|
|
|
"Benütze `rw [...] at ...` um zwei Aussagen zu bekommen die genau das Gegenteil
|
|
|
|
|
aussagen."
|
|
|
|
|
|
|
|
|
|
Hint (A : Prop) (a : ℕ) (b : ℕ) (g₁ : a = b) (h : a ≠ b) : A =>
|
|
|
|
|
"`X ≠ Y` muss man als `¬ (X = Y)` lesen. Deshalb findet `contradiction` hier direkt
|
|
|
|
|
einen Widerspruch."
|
|
|
|
|
|
|
|
|
|
Tactics contradiction
|