5. Projects
Summary: In the second phase of this course, students can assign themselves projects. For this, they were asked to look for simple exercises, e.g. from their first year courses. Here comes a list of exercises they used.
5.1. Induction (Luis Jaschke und Felicitas Kissel)
Compute the following sums and products, and show your result by induction.
example (n : ℕ) :
∑ k ≤ n, k * k = n * (n + 1) * (2*n + 1) / 6 := n:ℕ⊢ ∑ k ∈ Finset.Iic n, k * k = n * (n + 1) * (2 * n + 1) / 6
All goals completed! 🐙
example (n : ℕ) :
∑ k ≤ n, k * k * k = n * n * (n + 1) * (n + 1) / 4 := n:ℕ⊢ ∑ k ∈ Finset.Iic n, k * k * k = n * n * (n + 1) * (n + 1) / 4
All goals completed! 🐙
example (n : ℕ) : ∑ k ≤ n, 2 * k - 1 = sorry := n:ℕ⊢ ∑ k ∈ Finset.Iic n, 2 * k - 1 = sorry
All goals completed! 🐙
example (n : ℕ) : ∏ k ≤ n, (1 + 1 / (k + 1)) = sorry := n:ℕ⊢ ∏ k ∈ Finset.Iic n, (1 + 1 / (k + 1)) = sorry
All goals completed! 🐙
example (q : ℝ) (hq : abs q < 1) :
Filter.Tendsto (fun n ↦ q^n) atTop (nhds 0) := atTop:Filter ℕq:ℝhq:|q| < 1⊢ Filter.Tendsto (fun n => q ^ n) atTop (nhds 0)
All goals completed! 🐙
5.2. Own addition on ℚ (Adrian Eckstein und Debora Ortlieb)
def own_add (a b : ℚ) : ℚ := a * b + 2 * a + 2 * b + 2
notation a " ⊕ " b:60 => own_add a b
lemma own_mul_komm (a b : ℚ) : (a ⊕ b) = b ⊕ a := a:ℚb:ℚ⊢ a ⊕ b = b ⊕ a
All goals completed! 🐙
lemma own_mul_assoc (a b c : ℚ) :
((a ⊕ b) ⊕ c) = a ⊕ (b ⊕ c) := a:ℚb:ℚc:ℚ⊢ (a ⊕ b) ⊕ c = a ⊕ b ⊕ c
All goals completed! 🐙
lemma own_mul_right_neutral (a : ℚ) : (a ⊕ (-1)) = a := a:ℚ⊢ a ⊕ -1 = a
All goals completed! 🐙
lemma own_mul_left_neutral (a : ℚ) : ((-1) ⊕ a) = a := a:ℚ⊢ (-1) ⊕ a = a
All goals completed! 🐙
example (n : ℕ) : ∏ k ≤ n, (1 - 1 / (k + 1)) = sorry := n:ℕ⊢ ∏ k ∈ Finset.Iic n, (1 - 1 / (k + 1)) = sorry
All goals completed! 🐙
5.3. Fixed points and contractions (Jule Kiesele, Anna Vitiello)
variable {α : Type*} [MetricSpace α] (f : α → α)
(h_con : ∃ q < 1, ∀ x y, dist (f x) (f y) ≤
q * dist x y) (x y : α)
example (hxy : f x = f y) : x = y := α:Type u_1inst✝:MetricSpace αf:α → αh_con:∃ q < 1, ∀ (x y : α), dist (f x) (f y) ≤ q * dist x yx:αy:αhxy:f x = f y⊢ x = y
All goals completed! 🐙
variable [CompleteSpace α]
example : ∃ x, f x = x := α:Type u_1inst✝¹:MetricSpace αf:α → αh_con:∃ q < 1, ∀ (x y : α), dist (f x) (f y) ≤ q * dist x yx:αy:αinst✝:CompleteSpace α⊢ ∃ x, f x = x
All goals completed! 🐙
5.4. Path-connected spaces (Jasper Ganten)
open Set
section PathConnected
variable {X : Type*} [TopologicalSpace X]
/--
An intuitive definition of path connectedness:
A set `S` is path connected if it is nonempty and any two
points in `S` can be joined by a continuous path in `S`.
-/
def IsPathConnected' (S : Set X) : Prop :=
S.Nonempty ∧
∀ x y : X, x ∈ S → y ∈ S →
∃ γ : Set.Icc (0 : ℝ) 1 → X,
Continuous γ ∧
γ 0 = x ∧
γ 1 = y ∧
∀ t, γ t ∈ S
/--
`IsPathConnected'` is equivalent to Mathlib's
`IsPathConnected`.
-/
theorem pathConnected_iff (A : Set X) :
IsPathConnected A ↔ IsPathConnected' A := X:Type u_2inst✝:TopologicalSpace XA:Set X⊢ IsPathConnected A ↔ IsPathConnected' A
X:Type u_2inst✝:TopologicalSpace XA:Set X⊢ IsPathConnected A → IsPathConnected' AX:Type u_2inst✝:TopologicalSpace XA:Set X⊢ IsPathConnected' A → IsPathConnected A
X:Type u_2inst✝:TopologicalSpace XA:Set X⊢ IsPathConnected A → IsPathConnected' A -- Mathlib ⇒ Intuitive
X:Type u_2inst✝:TopologicalSpace XA:Set Xp1:Xhp1:p1 ∈ Ah1:∀ {y : X}, y ∈ A → JoinedIn A p1 y⊢ IsPathConnected' A
-- show that the set is nonempty
X:Type u_2inst✝:TopologicalSpace XA:Set Xp1:Xhp1:p1 ∈ Ah1:∀ {y : X}, y ∈ A → JoinedIn A p1 y⊢ ∀ (x y : X), x ∈ A → y ∈ A → ∃ γ, Continuous γ ∧ γ 0 = x ∧ γ 1 = y ∧ ∀ (t : ↑(Icc 0 1)), γ t ∈ A
X:Type u_2inst✝:TopologicalSpace XA:Set Xp1:Xhp1:p1 ∈ Ah1:∀ {y : X}, y ∈ A → JoinedIn A p1 yp2:Xp3:Xhp2:p2 ∈ Ahp3:p3 ∈ A⊢ ∃ γ, Continuous γ ∧ γ 0 = p2 ∧ γ 1 = p3 ∧ ∀ (t : ↑(Icc 0 1)), γ t ∈ A
-- construct a path from p2 to p3 by using the
-- transitivity of the JoinedIn relation
X:Type u_2inst✝:TopologicalSpace XA:Set Xp1:Xhp1:p1 ∈ Ah1:∀ {y : X}, y ∈ A → JoinedIn A p1 yp2:Xp3:Xhp2:p2 ∈ Ahp3:p3 ∈ Aγ:_root_.Path p2 p3hγ:∀ (t : ↑unitInterval), γ t ∈ A⊢ ∃ γ, Continuous γ ∧ γ 0 = p2 ∧ γ 1 = p3 ∧ ∀ (t : ↑(Icc 0 1)), γ t ∈ A
All goals completed! 🐙
X:Type u_2inst✝:TopologicalSpace XA:Set X⊢ IsPathConnected' A → IsPathConnected A -- Intuitive ⇒ Mathlib
X:Type u_2inst✝:TopologicalSpace XA:Set Xhne:A.NonemptyhC:∀ (x y : X), x ∈ A → y ∈ A → ∃ γ, Continuous γ ∧ γ 0 = x ∧ γ 1 = y ∧ ∀ (t : ↑(Icc 0 1)), γ t ∈ A⊢ IsPathConnected A
X:Type u_2inst✝:TopologicalSpace XA:Set XhC:∀ (x y : X), x ∈ A → y ∈ A → ∃ γ, Continuous γ ∧ γ 0 = x ∧ γ 1 = y ∧ ∀ (t : ↑(Icc 0 1)), γ t ∈ Ax:Xhx:x ∈ A⊢ IsPathConnected A
X:Type u_2inst✝:TopologicalSpace XA:Set XhC:∀ (x y : X), x ∈ A → y ∈ A → ∃ γ, Continuous γ ∧ γ 0 = x ∧ γ 1 = y ∧ ∀ (t : ↑(Icc 0 1)), γ t ∈ Ax:Xhx:x ∈ Ay:Xhy:y ∈ A⊢ JoinedIn A x y
X:Type u_2inst✝:TopologicalSpace XA:Set XhC:∀ (x y : X), x ∈ A → y ∈ A → ∃ γ, Continuous γ ∧ γ 0 = x ∧ γ 1 = y ∧ ∀ (t : ↑(Icc 0 1)), γ t ∈ Ax:Xhx:x ∈ Ay:Xhy:y ∈ Aγ:↑(Icc 0 1) → Xγ_cont:Continuous γγ0:γ 0 = xγ1:γ 1 = yhγ:∀ (t : ↑(Icc 0 1)), γ t ∈ A⊢ JoinedIn A x y
-- construct a Path type from my intuitive definition
X:Type u_2inst✝:TopologicalSpace XA:Set XhC:∀ (x y : X), x ∈ A → y ∈ A → ∃ γ, Continuous γ ∧ γ 0 = x ∧ γ 1 = y ∧ ∀ (t : ↑(Icc 0 1)), γ t ∈ Ax:Xhx:x ∈ Ay:Xhy:y ∈ Aγ:↑(Icc 0 1) → Xγ_cont:Continuous γγ0:γ 0 = xγ1:γ 1 = yhγ:∀ (t : ↑(Icc 0 1)), γ t ∈ Ap:_root_.Path x y := { toFun := γ, continuous_toFun := γ_cont, source' := γ0, target' := γ1 }⊢ JoinedIn A x y
All goals completed! 🐙
/--
If `A` and `B` are path connected, and their intersetion
is nonempty, `A ∪ B` is pathconnected.
-/
theorem my_task {A B : Set X} (hA : IsPathConnected A)
(hB : IsPathConnected B) (hAB : (A ∩ B).Nonempty) :
IsPathConnected (A ∪ B) := X:Type u_2inst✝:TopologicalSpace XA:Set XB:Set XhA:IsPathConnected AhB:IsPathConnected BhAB:(A ∩ B).Nonempty⊢ IsPathConnected (A ∪ B)
-- select a point z in the intersection
X:Type u_2inst✝:TopologicalSpace XA:Set XB:Set XhA:IsPathConnected AhB:IsPathConnected Bx:XhxA:x ∈ AhxB:x ∈ B⊢ IsPathConnected (A ∪ B)
X:Type u_2inst✝:TopologicalSpace XA:Set XB:Set XhA:IsPathConnected AhB:IsPathConnected Bx:XhxA:x ∈ AhxB:x ∈ B⊢ x ∈ A ∪ B ∧ ∀ {y : X}, y ∈ A ∪ B → JoinedIn (A ∪ B) x y
X:Type u_2inst✝:TopologicalSpace XA:Set XB:Set XhA:IsPathConnected AhB:IsPathConnected Bx:XhxA:x ∈ AhxB:x ∈ By:Xhy:y ∈ A ∪ B⊢ JoinedIn (A ∪ B) x y
-- split in cases depending on where y is
X:Type u_2inst✝:TopologicalSpace XA:Set XB:Set XhA:IsPathConnected AhB:IsPathConnected Bx:XhxA:x ∈ AhxB:x ∈ By:XhyA:y ∈ A⊢ JoinedIn (A ∪ B) x yX:Type u_2inst✝:TopologicalSpace XA:Set XB:Set XhA:IsPathConnected AhB:IsPathConnected Bx:XhxA:x ∈ AhxB:x ∈ By:XhyB:y ∈ B⊢ JoinedIn (A ∪ B) x y
X:Type u_2inst✝:TopologicalSpace XA:Set XB:Set XhA:IsPathConnected AhB:IsPathConnected Bx:XhxA:x ∈ AhxB:x ∈ By:XhyA:y ∈ A⊢ JoinedIn (A ∪ B) x y -- y ∈ A then x and y are joined in A
X:Type u_2inst✝:TopologicalSpace XA:Set XB:Set XhA:IsPathConnected AhB:IsPathConnected Bx:XhxA:x ∈ AhxB:x ∈ By:XhyA:y ∈ AjoinedInA:JoinedIn A x y⊢ JoinedIn (A ∪ B) x y
-- but then also in the superset A ∪ B
All goals completed! 🐙
X:Type u_2inst✝:TopologicalSpace XA:Set XB:Set XhA:IsPathConnected AhB:IsPathConnected Bx:XhxA:x ∈ AhxB:x ∈ By:XhyB:y ∈ B⊢ JoinedIn (A ∪ B) x y -- y ∈ A then x and y are joined in B
X:Type u_2inst✝:TopologicalSpace XA:Set XB:Set XhA:IsPathConnected AhB:IsPathConnected Bx:XhxA:x ∈ AhxB:x ∈ By:XhyB:y ∈ BjoinedInB:JoinedIn B x y⊢ JoinedIn (A ∪ B) x y
-- but then also in the superset A ∪ B
All goals completed! 🐙
end PathConnected
5.5. Parallel inequality (Moritz Graßnitzer, Natalie Jahnes)
Parallel inequality, or a homomorphism is injective iff its kernel is trivial.
5.6. There is only one prime triplet (Patrick Nasdala, Max Lehr)
There is only one prime triplet, i.e. only one n : ℕ
prime, such that n + 2
and n + 4
are prime as well.
example (n : ℕ) :
Nat.Prime n ∧ Nat.Prime (n + 2) ∧
Nat.Prime (n + 4) → n = 3 := α:Type u_1inst✝¹:MetricSpace αf:α → αh_con:∃ q < 1, ∀ (x y : α), dist (f x) (f y) ≤ q * dist x yx:αy:αinst✝:CompleteSpace αn:ℕ⊢ Nat.Prime n ∧ Nat.Prime (n + 2) ∧ Nat.Prime (n + 4) → n = 3
All goals completed! 🐙
5.7. An equivalence on sets (Emma Reichel, Luisa Caspary)
We have U ⊆ V ↔ U = U ∩ V ↔ V = U ∪ V
. So, the following needs to be proved:
variable (U V : Set α)
example : (U ⊆ V) → U = U ∩ V := α:Type u_1inst✝¹:MetricSpace αf:α → αh_con:∃ q < 1, ∀ (x y : α), dist (f x) (f y) ≤ q * dist x yx:αy:αinst✝:CompleteSpace αU:Set αV:Set α⊢ U ⊆ V → U = U ∩ V
All goals completed! 🐙
example : U = U ∩ V → V = U ∪ V:= α:Type u_1inst✝¹:MetricSpace αf:α → αh_con:∃ q < 1, ∀ (x y : α), dist (f x) (f y) ≤ q * dist x yx:αy:αinst✝:CompleteSpace αU:Set αV:Set α⊢ U = U ∩ V → V = U ∪ V
All goals completed! 🐙
example : V = U ∪ V → U ⊆ V := α:Type u_1inst✝¹:MetricSpace αf:α → αh_con:∃ q < 1, ∀ (x y : α), dist (f x) (f y) ≤ q * dist x yx:αy:αinst✝:CompleteSpace αU:Set αV:Set α⊢ V = U ∪ V → U ⊆ V
All goals completed! 🐙