Created
June 26, 2020 16:19
-
-
Save b-mehta/1311ff1018046b59eabd2c006a37ca1d to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import data.finset | |
import category_theory.category | |
import category_theory.isomorphism | |
namespace category_theory | |
open set category_theory.category | |
universes v u | |
/-- A partition of the type s into finitely many bits -/ | |
structure partition (s : Type*) := | |
(sets : finset (set s)) -- The collection of sets in the partition | |
(disjoint : ∀ (i j ∈ sets), i = j ∨ i ∩ j = ∅) -- Any two sets are disjoint or equal | |
(everything : ∀ (x : s), ∃ i ∈ sets, x ∈ i) -- Everything is in something of the partition | |
def partition.card {s : Type*} (p : partition s) : ℕ := finset.card p.sets | |
instance {s : Type*} : has_mem (set s) (partition s) := ⟨λ s p, s ∈ p.sets⟩ | |
lemma unique_membership (s : Type*) (p : partition s) (x : s) : | |
∃! (i ∈ p.sets), x ∈ i := | |
sorry | |
variables {C : Type u} [category.{v} C] | |
def aut (A : C) : set (A ⟶ A) := | |
λ f, nonempty (is_iso f) | |
def rigid (A : C) : Prop := aut A = {𝟙 _} | |
lemma rigid_iff_subset (A : C) : rigid A ↔ aut A ⊆ {𝟙 _} := | |
sorry | |
def relate (A : C) {B : C} (f f' : A ⟶ B) : Prop := ∃ α ∈ aut A, α ≫ f = f' | |
instance cancelling (A B : C) : setoid (A ⟶ B) := | |
{ r := relate A, | |
iseqv := sorry } | |
def cancel_isos (A B : C) := quotient (category_theory.cancelling A B) | |
def act_on_cancel {A B c : C} (w : B ⟶ c) (f : cancel_isos A B) : cancel_isos A c := | |
sorry | |
def big_arrow (A B c : C) (k : ℕ) : Prop := | |
nonempty (A ⟶ B) ∧ nonempty (B ⟶ c) ∧ ∀ (p : partition (cancel_isos A c)), p.card = k → ∃ (s ∈ p) (w : B ⟶ c), (set.range (act_on_cancel w) ⊆ s) | |
def big_hom_arrow (A B c : C) (k : ℕ) : Prop := | |
nonempty (A ⟶ B) ∧ nonempty (B ⟶ c) ∧ ∀ (p : partition (A ⟶ c)), p.card = k → ∃ (s ∈ p) (w : B ⟶ c), (set.range (≫ w) ⊆ s) | |
variable (C) | |
def object_ramsey : Prop := ∀ {A B : C} {k}, 2 ≤ k → nonempty (A ⟶ B) → ∃ c, big_arrow A B c k | |
def morphism_ramsey : Prop := ∀ {A B : C} {k}, 2 ≤ k → nonempty (A ⟶ B) → ∃ c, big_hom_arrow A B c k | |
section prop_two_three | |
-- Assume all morphisms are monic | |
variable (all_mon : ∀ {A B : C} (f : A ⟶ B), mono f) | |
theorem part_one (h : morphism_ramsey C) (A : C) : rigid A := | |
sorry | |
theorem part_two : morphism_ramsey C ↔ (∀ (A : C), rigid A) ∧ object_ramsey C := | |
sorry | |
end prop_two_three | |
section easy_lemmas | |
lemma four_a {A B B₁ c : C} {k : ℕ} (h : big_hom_arrow A B c k) [nonempty (B₁ ⟶ B)] : | |
big_hom_arrow A B₁ c k := | |
sorry | |
lemma four_b {A B B₁ c : C} {k : ℕ} (h : big_arrow A B c k) [nonempty (B₁ ⟶ B)] : | |
big_arrow A B₁ c k := | |
sorry | |
end easy_lemmas | |
end category_theory |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment