import TestGame.Metadata

import Init.Data.ToString
-- #check List UInt8

set_option tactic.hygienic false

Game "TestGame"
World "Implication"
Level 7

Title "Genau dann wenn"

Introduction
"
Als nächstes begenet ihr jemandem im Flur.

Dieser hat schon von euch gehört und will sofort wissen, ob ihr ihm helfen könnt:
"

Statement (A B C D : Prop) (h₁ : C ↔ D) (h₂ : A ↔ B) (h₃ : A ↔ D) : B ↔ C := by
  Hint "**Du**: $B \\iff A \\iff D \\iff C$, die sind doch alle äquivalent…

  **Robo**: Ja aber du musst ihm helfen umzuschreiben. Mit `rw [h₁]` kannst du `C` durch `D`
  ersetzen."
  rw [h₁]
  Hint "**Du** Und wenn ich in die andere Richtung umschreiben möchte?

  **Robo**: Dann schreibst du ein `←` vor den Namen, also `rw [← hₓ]`."
  Branch
    rw [← h₃]
    Hint "**Du**: Ehm, das ist verkehrt.

    **Robo**: Andersrum wär's besser gewesen, aber wenn du jetzt einfach weitermachst bis du
    sowas wie `A ↔ A` kriegst, kann `rfl` das beweisen.

    **Robo: Da fällt mir ein, `rw` versucht automatisch `rfl` am Ende. Das heisst, du musst
    das nicht einmal mehr schreiben."
    rw [h₂]
  rw [←h₂]
  assumption

Conclusion "Ihr geht weiter und der Operationsleiter zeigt euch die Küche."

NewTactic rw assumption
DisabledTactic tauto
-- NewLemma Iff.symm
