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.
59 lines
2.0 KiB
Plaintext
59 lines
2.0 KiB
Plaintext
import Adam.Metadata
|
|
import Std.Tactic.RCases
|
|
import Mathlib.Tactic.LeftRight
|
|
import Mathlib.Tactic.Contrapose
|
|
import Mathlib.Tactic.Use
|
|
import Mathlib.Tactic.Ring
|
|
|
|
import Adam.ToBePorted
|
|
|
|
Game "Adam"
|
|
World "Contradiction"
|
|
Level 2
|
|
|
|
Title "Es reicht!"
|
|
|
|
Introduction
|
|
"
|
|
**Benedictus**: Ihr hättet natürlich auch erst das Hauptresultat und dann das Zwischenresultat beweisen können. Das könnt Ihr ja mal an dieser Aufgabe probieren, die ist ganz ähnlich.
|
|
"
|
|
|
|
-- Die Taktik `suffices` funktioniert genau gleich wie `have`,
|
|
-- vertauscht aber die beiden Beweisblöcke:
|
|
|
|
-- ```
|
|
-- suffices h : [Aussage]
|
|
-- [Beweis des Goals (mithilfe von h)]
|
|
-- [Beweis der Aussage h]
|
|
-- ```
|
|
-- Auf Deutsch entspricht `suffices g : [Aussage]` dem Ausdruck
|
|
-- \"Es genügt zu zeigen, dass `[Aussage]` wahr ist.\"
|
|
|
|
-- Man kann `have` und `suffices` nach belieben vertauschen. Bevorzugt, wählt man es so,
|
|
-- dass der erste Beweisblock der kürzere ist. Zum Beispiel wäre bei der vorigen Aufgabe
|
|
-- `suffices` schöner gewesen:
|
|
|
|
-- "Angenommen, man hat eine Implikation $A \\Rightarrow \\neg B$ und weiss, dass
|
|
-- $A \\land B$ wahr ist. Zeige, dass dies zu einem Widerspruch führt."
|
|
|
|
Statement
|
|
(A B : Prop) (h : A → ¬ B) (k₁ : A) (k₂ : B) : False := by
|
|
Hint "**Robo**: Ich weiss was er meint! Anstatt `have` kannst Du auch `suffices`
|
|
verwenden. Das funktioniert genau gleich, außer, dass dann die beiden Beweisziele vertauscht sind.
|
|
|
|
**Du**: Also nach `suffices g : ¬B` muss ich dann zuerst zeigen, wie man mit `g` den Beweis
|
|
abschliesst, bevor ich `g` beweise?
|
|
|
|
**Robo**: Genau!"
|
|
suffices g : ¬ B
|
|
Hint "**Robo**: Also hier beendest Du den Beweis unter der Annahme `{g}` sei wahr."
|
|
contradiction
|
|
Hint "**Robo**: Und hier beweist Du das Zwischenresultat."
|
|
apply h
|
|
assumption
|
|
|
|
NewTactic «suffices»
|
|
DisabledTactic «have»
|
|
|
|
Conclusion "**Benedictus**: Genau so meinte ich das. Ob Ihr nun in Zukunft `have` und `suffices` verwendet, ist reine Geschmacksfrage. Hauptsache, Ihr wisst, wie Ihr entfernte Ziele in kleinen Schritte erreicht."
|