@@ -374,34 +374,124 @@ example (s : Set α) : s = ∅ ↔ s ⊆ ∅ := by
374374
375375example : 0 ≤ 0 := 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
381448theorem 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