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.
lean4game/server/adam/Adam/Levels/Sum/L02_Sum.lean

57 lines
1.5 KiB
Plaintext

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

import Adam.Metadata
import Adam.ToBePorted
import Mathlib
set_option tactic.hygienic false
open Finset
Game "Adam"
World "Sum"
Level 2
Title "endliche Summe"
Introduction
"
Während euch die Person zu einem besonders herausragenden Steinturm führt, löchert
sie euch noch weiter mit Fragen.
"
open BigOperators
Statement
"$\\sum_{i=0}^{n-1} (i + 1) = n + \\sum_{i=0}^{n-1} i$."
(n : ) : ∑ i : Fin n, ((i : ) + 1) = n + (∑ i : Fin n, (i : )) := by
Hint "**Du**: Hmm, wieder `simp`?
**Robo**: Nicht ganz. `simp` benützt nur Lemmas, die klar eine Vereinfachung darstellen,
und in deiner Bibliothek mit `@[simp]` markiert wird. Hier brauchen wir eine andere
Umformung:
$$
\\sum_\{i = 0}^n a_i + b_i = \\sum_\{i = 0}^n a_i + \\sum_\{j = 0}^n b_j
$$
**Robo**: Da unklar ist, welche Seite \"einfacher\" ist, wird so ein Lemma nicht mit
`@[simp]` markiert. Das heisst du musst `sum_add_distrib` mit `rw`
explizit anwenden.
"
rw [sum_add_distrib]
Hint "**Robo**: Die zweite Summe `∑ x : Fin n, 1` kann jetzt aber mit
`simp` zu `n` vereinfacht werden."
simp
Hint "**Robo**: Bis auf Umordnung sind jetzt beide Seiten gleich!
**Du**: Dann greift jetzt wohl `ring`!
**Robo**: Genau! Und alternativ könntest du mit `rw [add_comm]` die Arbeit von `ring`
auch manuell machen."
ring
NewLemma Finset.sum_add_distrib add_comm
LemmaTab "Sum"
Conclusion "Eure Begleitung scheint mit der Antwort zu frieden zu sein und zeigt
freudig an dem Turm empor, den ihr soeben erreicht habt."