use hints for initial texts

pull/43/head
Alexander Bentkamp 3 years ago
parent 4158283eb3
commit c35b66a0c6

@ -37,7 +37,14 @@ Dazwischen sollst Du offenbar einen Beweis eintragen.
Du siehst Robo hilflos an.
"
Statement "**Robo** Das ist ganz einfach. Mit `A B C : Prop` meint er: `A`, `B` und `C` sind irgendwelche Aussagen (*propositions*). Und mit `→` meint er ⇒, also “impliziert”. Die anderen Symbole kennst Du, oder?
Statement ""
(A B C : Prop) :
¬((¬B ¬ C) (A → B)) → (¬A B) ∧ ¬ (B ∧ C) := by
tauto
Hint (A B C : Prop) :
¬((¬B ¬ C) (A → B)) → (¬A B) ∧ ¬ (B ∧ C) =>
"**Robo** Das ist ganz einfach. Mit `A B C : Prop` meint er: `A`, `B` und `C` sind irgendwelche Aussagen (*propositions*). Und mit `→` meint er ⇒, also “impliziert”. Die anderen Symbole kennst Du, oder?
**Du** Ehhm, ja. Aber da muss ich jetzt trotzdem erst einmal überlegen.
@ -49,9 +56,6 @@ Statement "**Robo** Das ist ganz einfach. Mit `A B C : Prop` meint er: `A`, `
**Robo** Mach schon …
"
(A B C : Prop) :
¬((¬B ¬ C) (A → B)) → (¬A B) ∧ ¬ (B ∧ C) := by
tauto
Conclusion
"

@ -16,12 +16,14 @@ Du schaust ihn fassungslos an.
Er schreibt es Dir wieder auf.
"
Statement "
**Robo** Ist doch klar. Du musst ihn einfach daran erinnern, dass Gleichheit *reflexiv* ist. Probier mal `rfl`.
" :
Statement "" :
42 = 42 := by
rfl
Hint : 42 = 42 => "
**Robo** Ist doch klar. Du musst ihn einfach daran erinnern, dass Gleichheit *reflexiv* ist. Probier mal `rfl`.
"
Conclusion
"
**Untertan** Ah, richtig. Ja, Sie haben ja so recht. Das vergesse ich immer. Rfl, rfl, rfl …

@ -11,7 +11,11 @@ Introduction
Während der erste Untertan noch rfl, rfl, rfl murmelt, tritt schon der nächste nach vorne. Es ist schüchtern und schreibt bloß.
"
Statement "
Statement ""
(n : ) (h₁ : 10 > n) (h₂ : 1 < n) (h₃ : n ≠ 5) : 1 < n := by
assumption
Hint (n : ) (h₁ : 10 > n) (h₂ : 1 < n) (h₃ : n ≠ 5) : 1 < n => "
**Robo** `n : ` bedeutet, `n` ist eine natürliche Zahl.
**Du** Warum schreibt er dann nicht `n ∈ `??
@ -28,8 +32,6 @@ Statement "
**Robo** Du musst ihm das halt explizit sagen. Probiers mal mit `assumption`.
"
(n : ) (h₁ : 10 > n) (h₂ : 1 < n) (h₃ : n ≠ 5) : 1 < n := by
assumption
Conclusion
"

@ -12,7 +12,11 @@ Introduction
Ein dritter Untertan kommt mit folgendem Problem.
"
Statement "
Statement ""
(A : Prop) (hA : A) : A := by
assumption
Hint (A : Prop) (hA : A) : A => "
**Robo** Hier bedeutet `A : Prop` wieder, dass `A` irgendeine Aussage ist.
Und `hA` ist eine Name für die Annahme, dass `A` wahr ist.
@ -20,9 +24,6 @@ Statement "
**Robo** Ja. Da kommst Du jetzt selbst drauf, wie das geht, oder?
"
(A : Prop) (hA : A) : A := by
assumption
HiddenHint (A : Prop) (hA : A) : A =>
"Ist doch genau wie eben: die Aussage, die zu beweisen ist, gehört selbst zu den Annahmen. Also wird `asumption` auch wieder funktionieren."

@ -11,15 +11,17 @@ Introduction
Der nächste Untertan in der Reihe ist ein Schelm.
"
Statement "
Statement "" :
True := by
trivial
Hint : True => "
**Robo** Dieses `True` ist eine spezielle Aussage, nämlich die Aussage, die immer und bedingungslos wahr ist.
**Du** Und was genau ist dann zu beweisen?
**Robo** Ich glaube, nichts. Ich glaube, Du kannst einfach `trivial` schreiben.
" :
True := by
trivial
"
Conclusion
"

@ -11,7 +11,11 @@ Introduction
Der Schelm hat noch eine Schwester dabei.
"
Statement "
Statement "" :
¬False := by
trivial
Hint : ¬False => "
**Robo** Dieses Zeichen `¬` bedeutet Negation. Also wenn eine Aussage `(A : Prop)` wahr ist, dann ist `¬A` falsch, und umgekehrt.
**Du** Und `False` ist wahrscheinlich die Aussage, die immer falsch ist?
@ -21,10 +25,7 @@ Statement "
**Du** Ist das jetzt nicht doch wieder trivial?
**Robo** Probier mal!
" :
¬False := by
trivial
"
Conclusion
"

@ -14,7 +14,12 @@ Introduction
Langsam wird die Schlange kürzer. Die nächste Formalosophin hat folgendes Anliegen:
"
Statement "
Statement ""
(A B C : Prop) (h : A ∧ (B ∧ C)) : B := by
rcases h with ⟨_, ⟨g , _⟩⟩
assumption
Hint (A B C : Prop) (h : A ∧ (B ∧ C)) : B => "
**Du** Jetzt müssen wir wohl die Annahme de-konstruieren.
**Robo** Ja, genau. Das geht am einfachsten mit `rcases h with ⟨h₁, h₂⟩`.
@ -24,9 +29,6 @@ Statement "
**Robo** Die bleiden Klammern schreibst Du als `\\<` und `\\>`, oder gleichzeitig als `\\<>`.
Und h₁ schreibst Du einfach als `h\\1`. Aber Du kannst Dir auch einfach andere Namen für `h₁` und `h₂`, zum Beispiel `rcases h with ⟨hA, hBC⟩`
"
(A B C : Prop) (h : A ∧ (B ∧ C)) : B := by
rcases h with ⟨_, ⟨g , _⟩⟩
assumption
Hint (A B C : Prop) (hA : A) (hAB : B ∧ C) : B =>
"

Loading…
Cancel
Save