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