level
parent
a18ad27985
commit
a4cb28df7b
@ -0,0 +1,62 @@
|
|||||||
|
import Adam.Metadata
|
||||||
|
|
||||||
|
import Adam.Options.MathlibPart
|
||||||
|
|
||||||
|
Game "Adam"
|
||||||
|
World "Inequality"
|
||||||
|
Level 5
|
||||||
|
|
||||||
|
Title "Drinker's Paradox"
|
||||||
|
|
||||||
|
set_option tactic.hygienic false
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
"
|
||||||
|
**weitere Person**: Jetzt aber zu einem anderen Thema. Kennt ihr eigentlich das
|
||||||
|
Drinker-Paradoxon?
|
||||||
|
|
||||||
|
**Robo**: Das ist in meinem System. *In dieser Bar gibt es eine Person, so dass
|
||||||
|
falls diese Person jetzt am drinken ist, dann sind alle am trinken*.
|
||||||
|
|
||||||
|
**weitere Person**: Genau! Könnt ihr mir das beweisen?
|
||||||
|
"
|
||||||
|
|
||||||
|
open Function
|
||||||
|
|
||||||
|
Statement {People : Type} [Inhabited People] (isDrinking : People → Prop) :
|
||||||
|
∃ (x : People), isDrinking x → ∀ (y : People), isDrinking y := by
|
||||||
|
Hint "**Du**: Wenn `p` eine Person ist, dann ist also `isDrinking p` eine Aussage,
|
||||||
|
die wahr oder falsch ist. Soweit so gut.
|
||||||
|
Wieso hat er aber `Inhabited People` hinzugefügt?
|
||||||
|
|
||||||
|
**Robo**: Die Aussage ist falsch, wenn die Bar leer wäre, da dann keine solche
|
||||||
|
Person existieren kann. Jedenfalls kannst du dadurch jederzeit `default`, oder lang
|
||||||
|
`(default : Person)`, schreiben, wenn du einfach irgendeine Person brauchst.
|
||||||
|
|
||||||
|
**Du**: Und wie fang ich jetzt an?
|
||||||
|
|
||||||
|
**Robo**: Du könntest eine Fallunterscheidung machen, ob die Aussage
|
||||||
|
`∀ (y : People), isDrinking y` wahr oder falsch ist."
|
||||||
|
Hint (hidden := true) "**Robo**: Schau mal `by_cases` an."
|
||||||
|
by_cases ∀ y, isDrinking y
|
||||||
|
Hint (hidden := true) "**Du**: Und wen nehm ich jetzt?
|
||||||
|
|
||||||
|
**Robo**: Wie gesagt, `default` ist eine x-beliebige Person."
|
||||||
|
use (default : People)
|
||||||
|
intro
|
||||||
|
assumption
|
||||||
|
Hint (hidden := true) "**Robo**: Du könntest hier mit `push_neg at {h}` weitermachen."
|
||||||
|
push_neg at h
|
||||||
|
rcases h with ⟨p, hp⟩
|
||||||
|
use p
|
||||||
|
intro hp'
|
||||||
|
Hint (hidden := true) "**Robo**: Was siehst du, wenn du `{hp}` und `{hp'}` anschaust?"
|
||||||
|
contradiction
|
||||||
|
|
||||||
|
LemmaTab "Logic"
|
||||||
|
NewDefinition Inhabited
|
||||||
|
|
||||||
|
Conclusion
|
||||||
|
"**weitere Person**: Fantastisch! Zum wohl!
|
||||||
|
|
||||||
|
…und damit endet auch deine Erinnerung und wer weiss was du anschließend gemacht hast…"
|
||||||
Loading…
Reference in New Issue