Skip to content

Commit

Permalink
feat(order/upper_lower): Upper sets correspond to monotone predicates (
Browse files Browse the repository at this point in the history
…#17241)

`is_upper_set {a | p a} ↔ monotone p` and similar.
  • Loading branch information
YaelDillies committed Nov 2, 2022
1 parent 57035e1 commit c64b2b4
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 4 deletions.
8 changes: 7 additions & 1 deletion src/order/upper_lower.lean
Expand Up @@ -136,7 +136,7 @@ alias is_upper_set_preimage_to_dual_iff ↔ _ is_lower_set.to_dual
end has_le

section preorder
variables [preorder α] [preorder β] {s : set α} (a : α)
variables [preorder α] [preorder β] {s : set α} {p : α → Prop} (a : α)

lemma is_upper_set_Ici : is_upper_set (Ici a) := λ _ _, ge_trans
lemma is_lower_set_Iic : is_lower_set (Iic a) := λ _ _, le_trans
Expand Down Expand Up @@ -174,6 +174,12 @@ lemma is_lower_set.image (hs : is_lower_set s) (f : α ≃o β) : is_lower_set (
by { change is_lower_set ((f : α ≃ β) '' s), rw set.image_equiv_eq_preimage_symm,
exact hs.preimage f.symm.monotone }

@[simp] lemma set.monotone_mem : monotone (∈ s) ↔ is_upper_set s := iff.rfl
@[simp] lemma set.antitone_mem : antitone (∈ s) ↔ is_lower_set s := forall_swap

@[simp] lemma is_upper_set_set_of : is_upper_set {a | p a} ↔ monotone p := iff.rfl
@[simp] lemma is_lower_set_set_of : is_lower_set {a | p a} ↔ antitone p := forall_swap

section order_top
variables [order_top α]

Expand Down
6 changes: 3 additions & 3 deletions src/topology/uniform_space/completion.lean
Expand Up @@ -66,20 +66,20 @@ def gen (s : set (α × α)) : set (Cauchy α × Cauchy α) :=
{p | s ∈ p.1.val ×ᶠ p.2.val }

lemma monotone_gen : monotone gen :=
monotone_set_of $ assume p, @monotone_mem (α×α) (p.1.val ×ᶠ p.2.val)
monotone_set_of $ assume p, @filter.monotone_mem _ (p.1.val ×ᶠ p.2.val)

private lemma symm_gen : map prod.swap ((𝓤 α).lift' gen) ≤ (𝓤 α).lift' gen :=
calc map prod.swap ((𝓤 α).lift' gen) =
(𝓤 α).lift' (λs:set (α×α), {p | s ∈ p.2.val ×ᶠ p.1.val }) :
begin
delta gen,
simp [map_lift'_eq, monotone_set_of, monotone_mem,
simp [map_lift'_eq, monotone_set_of, filter.monotone_mem,
function.comp, image_swap_eq_preimage_swap, -subtype.val_eq_coe]
end
... ≤ (𝓤 α).lift' gen :
uniformity_lift_le_swap
(monotone_principal.comp (monotone_set_of $ assume p,
@monotone_mem (α×α) (p.2.val ×ᶠ p.1.val)))
@filter.monotone_mem _ (p.2.val ×ᶠ p.1.val)))
begin
have h := λ(p:Cauchy α×Cauchy α), @filter.prod_comm _ _ (p.2.val) (p.1.val),
simp [function.comp, h, -subtype.val_eq_coe, mem_map'],
Expand Down

0 comments on commit c64b2b4

Please sign in to comment.