Skip to content

Commit 175ba6c

Browse files
pfaffelhpfaffelh
authored andcommitted
transfer
1 parent b26daf0 commit 175ba6c

File tree

1 file changed

+111
-13
lines changed

1 file changed

+111
-13
lines changed

Mathlib/Topology/Compactness/CompactSystem.lean

Lines changed: 111 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -374,34 +374,124 @@ example (s : Set α) : s = ∅ ↔ s ⊆ ∅ := by
374374

375375
example : 00 := by exact Nat.zero_le 0
376376

377-
example (s : ℕ → Set α) : ⋂ j, ⋂ (hj : j < 0), s j = univ := by
378-
exact iInter_eq_univ.mpr (fun i ↦ iInter_eq_univ.mpr (fun hi ↦ False.elim
379-
<| not_succ_le_zero i hi))
377+
example (s : ℕ → Set α) : ⋂ (j : Fin 0), s j = univ := by
378+
refine iInter_eq_univ.mpr (fun ⟨i, hi⟩ ↦ ?_)
379+
exfalso
380+
exact not_succ_le_zero i hi
381+
382+
383+
variable {p : Set α → Prop} (hp : IsCompactSystem p) {L : ℕ → Finset (Set α)}
384+
(hL : ∀ (n : ℕ) (d : Set α) (hd : d ∈ (L n).toSet), p d)
385+
(hc : ∀ (n : ℕ), ⋂ (k : Fin (n + 1)), (⋃₀ (L k).toSet) ≠ ∅)
386+
387+
noncomputable def r {n : ℕ} (K : (k : Fin (n + 1)) → (L k)) :=
388+
∀ N, ⋂ (k : Fin (n + 1)), (K k) ∩ ⋂ (k : Fin N), (⋃₀ (L (n + 1 +k)).toSet) ≠ ∅
389+
390+
lemma get_element_0 (hL : ∀ (n : ℕ) (d : Set α) (hd : d ∈ (L n).toSet), p d)
391+
(hc : ∀ (N : ℕ), ⋂ (k : Fin (N + 1)), (⋃₀ (L k).toSet) ≠ ∅) : ∃ (K : (k : Fin 1) → (L k)),
392+
r K := by
393+
sorry
394+
395+
def join {n : ℕ} (K' : (k : Fin (n + 1)) → (L k)) (K : L (n + 1)) : (k : Fin (n + 2)) → (L k) := by
396+
let K'' (k : Fin (n + 2)) (hk : ¬ k.val < n + 1) : L k := by
397+
have h : L k = L (n + 1) := by
398+
congr
399+
apply Nat.eq_of_le_of_lt_succ
400+
simp? at hk
401+
exact hk
402+
exact k.prop
403+
rw [h]
404+
exact K
405+
exact fun k ↦ dite (k.val < n + 1) (fun c ↦ K' ⟨k.val, c⟩) (fun c ↦ K'' k c)
406+
407+
-- ℳ∀⊢ℍ
408+
409+
-- ℳ∀⊢ℍ
410+
411+
412+
lemma get_element_succ (hL : ∀ (n : ℕ) (d : Set α) (hd : d ∈ (L n).toSet), p d)
413+
(hc : ∀ (n : ℕ), ⋂ (k : Fin (n + 1)), (⋃₀ (L k).toSet) ≠ ∅)
414+
(n : ℕ) (K' : (k : Fin (n + 1)) → (L k)) (hK' : r K') : ∃ (K : (L (n + 1))), r (join K' K) := by
415+
sorry
416+
417+
def su : ℕ → ℕ
418+
| 0 => 1
419+
| n + 1 => ∑ (k : Fin n), su k
420+
termination_by n => n
421+
decreasing_by
422+
refine Fin.val_lt_of_le k ?_
423+
exact le_succ n
424+
425+
noncomputable def main' (hL : ∀ (n : ℕ) (d : Set α) (hd : d ∈ (L n).toSet), p d)
426+
(hc : ∀ (n : ℕ), ⋂ (k : Fin (n + 1)), (⋃₀ (L k).toSet) ≠ ∅) : (j : ℕ) → (L j)
427+
| 0 => (get_element_0 hL hc).choose 0
428+
| n + 1 => by
429+
let K' : (j : Fin (n + 1)) → (L j):= fun j ↦ (main' hL hc j)
430+
have hK' : r K' := by sorry
431+
exact (get_element_succ hL hc n K' hK').choose
432+
433+
434+
435+
noncomputable def main' : (j : ℕ) → (L j) → ∀ (N : ℕ), (main' j) ∩ ⋂ k, ⋂ (_ : k < N), ⋃₀ ↑(L k) ≠ ∅
436+
| 0 => by
437+
have h : ∃ (K : L 0), ∀ N, (K : Set α) ∩ ⋂ (k < N), (⋃₀ (L k).toSet) ≠ ∅ := by
438+
sorry
439+
exact ⟨h.choose, h.choose_spec⟩
440+
| succ n => by
441+
have h : ∃ (K : L (n + 1)), ∀ N, ⋂ (j ≤ n), (main' j : Set α) ∩ K ∩ ⋂ (k < N),
442+
(⋃₀ (L (n + 1 + k)).toSet) ≠ ∅ := by
443+
sorry
444+
exact h.choose
445+
446+
380447

381448
theorem main' (p : Set α → Prop) (hp : IsCompactSystem p) (L : ℕ → Finset (Set α))
382449
(hL : ∀ (n : ℕ) (d : Set α) (hd : d ∈ (L n).toSet), p d)
383450
(hc : ∀ (n : ℕ), ⋂ (k ≤ n), (⋃₀ (L k).toSet) ≠ ∅) :
384-
∃ (K : (j : ℕ) → (L j)), (∀ n N, ⋂ (j ≤ n), (K j) ∩ ⋂ (k N),
451+
∃ (K : (j : ℕ) → (L j)), (∀ n N, ⋂ (j ≤ n), (K j) ∩ ⋂ (k < N),
385452
⋃₀ (L (n + 1 + k)).toSet ≠ ∅) := by
386-
-- `q K n` is true, if `K ∩ ⋂ (k ≤ n), ⋃₀ (L k) ≠ ∅`
387-
let q : (L 0) → ℕ → Prop := fun (K : (L 0)) n ↦ (K : Set α) ∩ ⋂ (k ≤ n), (⋃₀ (L k).toSet) ≠ ∅
453+
have h : 0 = 0 := by rfl
388454

389-
have hq (n : ℕ) : ∃ (K : (L 0)), q K n := by
455+
456+
457+
-- `q K N` is true, if `K ∩ ⋂ (k < N), ⋃₀ (L k) ≠ ∅`
458+
let q : (L 0) → ℕ → Prop := fun (K : (L 0)) n ↦ (K : Set α) ∩ ⋂ (k < n), (⋃₀ (L k).toSet) ≠ ∅
459+
460+
have hq (N : ℕ) : ∃ (K : (L 0)), q K N := by
390461
by_contra! h
391462
push_neg at h
392463
rw [← iUnion_eq_empty] at h
393-
have f : ⋃ (i : { x // x ∈ L 0 }), ↑i ∩ ⋂ k, ⋂ (_ : k ≤ n), ⋃₀ ↑(L k) = (⋃ (i : { x // x ∈ L 0 }), ↑i) ∩ ⋂ k, ⋂ (_ : k ≤ n), ⋃₀ (L k).toSet := by
464+
have f : ⋃ (i : { x // x ∈ L 0 }), ↑i ∩ ⋂ k, ⋂ (_ : k < N), ⋃₀ ↑(L k) = (⋃ (i : { x // x ∈ L 0 }), ↑i) ∩ ⋂ k, ⋂ (_ : k < N), ⋃₀ (L k).toSet := by
394465
rw [iUnion_inter]
395466
rw [f] at h
396-
have g : (⋃ (i : { x // x ∈ L 0 }), ↑i) ∩ ⋂ k, ⋂ (_ : k ≤ n), ⋃₀ (L k).toSet = ⋂ k, ⋂ (_ : k ≤ n), ⋃₀ (L k).toSet := by
467+
have g : (⋃ (i : { x // x ∈ L 0 }), ↑i) ∩ ⋂ k, ⋂ (_ : k ≤ N), ⋃₀ (L k).toSet = ⋂ k, ⋂ (_ : k ≤ N), ⋃₀ (L k).toSet := by
397468
apply inter_eq_self_of_subset_right
398469
have f : ⋃ (i : { x // x ∈ (L 0) }), ↑i = ⋃₀ (L 0).toSet := by
399470
rw [sUnion_eq_iUnion]
400471
rfl
401472
rw [f]
402-
refine biInter_subset_of_mem (Nat.zero_le n)
473+
refine biInter_subset_of_mem (Nat.zero_le N)
403474
rw [g] at h
404-
apply (hc n) h
475+
apply (hc N) h
476+
477+
478+
479+
480+
481+
-- `r K n` is true, if `∀ N, ⋂ (j ≤ n), (K j) ∩ ⋂ (k < N), ⋃₀ (L (n + 1 + k)) ≠ ∅`.
482+
let r : ((n : ℕ) → (k : ℕ) → (hk : k ≤ n) → (L k)) → ℕ → Prop := fun K n ↦ ∀ N, ⋂ (j ≤ n), (K j) ∩ ⋂ (k < N), ⋃₀ (L (n + 1 + k)).toSet ≠ ∅
483+
484+
have hr0 (n : ℕ) : ∃ (K : (n : ℕ) → (L n)), r K 0 := by
485+
sorry
486+
487+
have hrn (n : ℕ) : ∃ (K : (n : ℕ) → (L n)), ∀ n, r K n → ∃ (K' : (n : ℕ) → (L n)), (∀ k ≤ n, K' k = K k) ∧ r K' (n + 1) := by
488+
sorry
489+
490+
have hrn' (n : ℕ) (k : ℕ) (hk : k ≤ n) : ∃ (K : (L (n + 1))), ∀ n, r K n → ∃ (K' : (n : ℕ) → (L n)), (∀ k ≤ n, K' k = K k) ∧ r K' (n + 1) := by
491+
sorry
492+
493+
494+
405495
have hq' (K : (L 0)) (n : ℕ) : q K (n + 1) → q K n := by
406496
intro c d
407497
apply c
@@ -503,12 +593,20 @@ theorem main' (p : Set α → Prop) (hp : IsCompactSystem p) (L : ℕ → Finset
503593
sorry
504594

505595

596+
def ack : Nat → Nat → Nat
597+
| 0, n => n + 1
598+
| m + 1, 0 => ack m 1
599+
| m + 1, n + 1 => ack m (ack (m + 1) n)
600+
601+
602+
def myMax (a b : Nat) : Nat :=
603+
if a < b then myMax b a else a
604+
605+
506606

507607

508608

509-
sorry
510609

511-
rfl
512610

513611

514612

0 commit comments

Comments
 (0)