import Adam.Metadata import Mathlib.Algebra.Module.Submodule.Lattice import Mathlib.Data.Real.Basic import Mathlib.LinearAlgebra.Span universe u Game "Adam" World "Module2" Level 8 Title "Lineare Abbildung" Introduction " Eine Familie von Vektorräumen schreibt man erst einmal als Funktion einer Indexmenge `ι`. -/ variables {ι : Type u} {V : ι → Type u} /- Für einen einzelnen Vektorraum würde man jetzt Instanzen `[add_comm_monoid V] [module K V]` definieren. Lean-Instanzen-Manager versteht hier `∀`-Ausdrücke: -/ variables [∀i, add_comm_monoid (V i)] [∀i, module K (V i)] /- Ein externes Produkt von Vektorräumen schreibt man einfach mit `\\Pi`, also `Π i, V i`. Lean kann aus den Ausdrücken oben dann automatisch herausfinden, dass `Π i, V i` ein `K`-Vektorraum ist: " Statement "Sei `U` ein `K`-Vektorraum und `fᵢ : U → Vᵢ` eine Familie von `K`-lineare Abbildungen in `K`-Vektorräume. Dann gibt es genau eine Abbildung `f : U → (Π i, V i)`, die mit allen kommutiert." {K U : Type u} [Field K] {ι : Type u} {V : ι → Type u} [∀ i, AddCommMonoid (V i)] [∀ i, Module K (V i)] [AddCommMonoid U] [Module K U] (f : ∀ i, U →ₗ[K] (V i)) : U →ₗ[K] (∀ i, V i) := by sorry -- { to_fun := λv i, f i v, -- map_add' := -- begin -- intros, -- funext, -- simp, -- end, -- map_smul' := -- begin -- intros, -- funext, -- simp, -- end }