levels and custom induction

This commit is contained in:
Jon Eugster
2023-03-31 17:52:39 +02:00
parent c8b0ac4e6c
commit 9b25eda668
28 changed files with 225 additions and 88 deletions
@@ -35,7 +35,12 @@ Statement
(R : Type u) [CommRing R] (a b : R) : a + b = b + a := by
Hint "**Robo**: Naja, Aufgaben zu Universen sind nicht so natürlich,
aber vorige Aufgabe würde man eigentlich besser so schreiben, da
kannst du mindestens das Uniersum beobachten."
kannst du mindestens das Uniersum beobachten.
**Du**: Ah ich sehe, `(R: Type u)` anstatt `(R : Type)`. Muss mich
das interessieren?
**Robo**: Nicht wirklich…"
ring
Conclusion "**Du**: Na dann. Aber gut dass ich's mal gesehen hab."
@@ -9,6 +9,8 @@ Game "Adam"
World "Lean"
Level 3
open Fin
Title "Implizite Argumente"
Introduction
@@ -20,8 +22,10 @@ haben als ich hinschreiben muss.
ein Lemma von vorhin
```
lemma Fin.sum_univ_castSucc {β : Type _} [AddCommMonoid β] {n : ℕ} (f : Fin (n + 1) → β) :
∑ i : Fin (n + 1), f i = ∑ i : Fin n, f (↑Fin.castSucc.toEmbedding i) + f (Fin.last n) := by
lemma Fin.sum_univ_castSucc {β : Type _} [AddCommMonoid β]
{n : ℕ} (f : Fin (n + 1) → β) :
∑ i : Fin (n + 1), f i =
∑ i : Fin n, f (↑Fin.castSucc.toEmbedding i) + f (Fin.last n) := by
sorry
```
@@ -57,9 +61,11 @@ Statement (m : ℕ) : ∑ i : Fin (m + 1), (i : ℕ) + (m + 1) = ∑ i : Fin (Na
nicht mehr geht, aber das war nicht der Punkt…"
rfl
rw [Fin.sum_univ_castSucc (n := m + 1)]
Hint "**Robo**: Gut der Rest ist easy."
rfl
OnlyTactic rw rfl
OnlyTactic rw rfl simp trivial
LemmaTab "Sum"
Conclusion "**Du**: Gibt es auch noch ander Methoden implizite Argumente anzugeben.
@@ -35,12 +35,13 @@ open BigOperators
Statement (m : ℕ) :
∑ i : Fin (m + 1), (i : ℕ) + (m + 1) = ∑ i : Fin (Nat.succ m + 1), ↑i := by
Hint "*Robo*: Schreibe `rw [@Fin.sum_univ_castSucc _ _ (m + 1)]`
Hint "**Robo**: Schreibe `rw [@Fin.sum_univ_castSucc _ _ (m + 1)]`
anstatt `rw [Fin.sum_univ_castSucc (n := m + 1)]`!"
rw [@Fin.sum_univ_castSucc _ _ (m + 1)]
rfl
OnlyTactic rw rfl
OnlyTactic rw rfl simp trivial
LemmaTab "Sum"
Conclusion "
**Du**: Danke Robo!