Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.

Commit 1494cc1

Browse files
urkudsgouezel
andcommitted
feat(order/semiconj_Sup): use Sup to semiconjugate functions (#2895)
Formalize two lemmas from a paper by É. Ghys. Co-authored-by: sgouezel <sebastien.gouezel@univ-rennes1.fr>
1 parent 4372d17 commit 1494cc1

File tree

4 files changed

+142
-2
lines changed

4 files changed

+142
-2
lines changed

docs/references.bib

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -254,3 +254,16 @@ @book{aluffi2016
254254
publisher={American Mathematical Society},
255255
edition={Reprinted with corrections by the American Mathematical Society}
256256
}
257+
258+
@Article{ghys87:groupes,
259+
author = {Étienne Ghys},
260+
title = {Groupes d'homeomorphismes du cercle et cohomologie
261+
bornee},
262+
journal = {Contemporary Mathematics},
263+
year = 1987,
264+
volume = 58,
265+
number = {III},
266+
pages = {81-106},
267+
doi = {10.1090/conm/058.3/893858},
268+
language = {french}
269+
}

src/order/bounds.lean

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,18 @@ lemma is_glb.of_subset_of_superset {s t p : set α} (hs : is_glb s a) (hp : is_g
103103
(hst : s ⊆ t) (htp : t ⊆ p) : is_glb t a :=
104104
@is_lub.of_subset_of_superset (order_dual α) _ a s t p hs hp hst htp
105105

106+
lemma is_least.mono (ha : is_least s a) (hb : is_least t b) (hst : s ⊆ t) : b ≤ a :=
107+
hb.2 (hst ha.1)
108+
109+
lemma is_greatest.mono (ha : is_greatest s a) (hb : is_greatest t b) (hst : s ⊆ t) : a ≤ b :=
110+
hb.2 (hst ha.1)
111+
112+
lemma is_lub.mono (ha : is_lub s a) (hb : is_lub t b) (hst : s ⊆ t) : a ≤ b :=
113+
hb.mono ha $ upper_bounds_mono_set hst
114+
115+
lemma is_glb.mono (ha : is_glb s a) (hb : is_glb t b) (hst : s ⊆ t) : b ≤ a :=
116+
hb.mono ha $ lower_bounds_mono_set hst
117+
106118
/-!
107119
### Conversions
108120
-/

src/order/complete_lattice.lean

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,10 +98,10 @@ theorem Inf_le_of_le (hb : b ∈ s) (h : b ≤ a) : Inf s ≤ a :=
9898
le_trans (Inf_le hb) h
9999

100100
theorem Sup_le_Sup (h : s ⊆ t) : Sup s ≤ Sup t :=
101-
Sup_le (assume a, assume ha : a ∈ s, le_Sup $ h ha)
101+
(is_lub_Sup s).mono (is_lub_Sup t) h
102102

103103
theorem Inf_le_Inf (h : s ⊆ t) : Inf t ≤ Inf s :=
104-
le_Inf (assume a, assume ha : a ∈ s, Inf_le $ h ha)
104+
(is_glb_Inf s).mono (is_glb_Inf t) h
105105

106106
@[simp] theorem Sup_le_iff : Sup s ≤ a ↔ (∀b ∈ s, b ≤ a) :=
107107
is_lub_le_iff (is_lub_Sup s)

src/order/semiconj_Sup.lean

Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
/-
2+
Copyright (c) 2020 Yury G. Kudryashov. All rights reserved.
3+
Released under Apache 2.0 license as described in the file LICENSE.
4+
Author: Yury G. Kudryashov
5+
-/
6+
import order.conditionally_complete_lattice
7+
import logic.function.conjugate
8+
import order.ord_continuous
9+
import data.equiv.mul_add
10+
11+
/-!
12+
# Semiconjugate by `Sup`
13+
14+
In this file we prove two facts about semiconjugate (families of) functions.
15+
16+
First, if an order isomorphism `fa : α → α` is semiconjugate to an order embedding `fb : β → β` by
17+
`g : α → β`, then `fb` is semiconjugate to `fa` by `y ↦ Sup {x | g x ≤ y}`, see
18+
`semiconj.symm_adjoint`.
19+
20+
Second, consider two actions `f₁ f₂ : G → α → α` of a group on a complete lattice by order
21+
isomorphisms. Then the map `x ↦ ⨆ g : G, (f₁ g)⁻¹ (f₂ g x)` semiconjugates each `f₁ g'` to `f₂ g'`,
22+
see `function.Sup_div_semiconj`. In the case of a conditionally complete lattice, a similar
23+
statement holds true under an additional assumption that each set `{(f₁ g)⁻¹ (f₂ g x) | g : G}` is
24+
bounded above, see `function.cSup_div_semiconj`.
25+
26+
The lemmas come from [Étienne Ghys, Groupes d'homeomorphismes du cercle et cohomologie
27+
bornee][ghys87:groupes], Proposition 2.1 and 5.4 respectively. In the paper they are formulated for
28+
homeomorphisms of the circle, so in order to apply results from this file one has to lift these
29+
homeomorphisms to the real line first.
30+
-/
31+
32+
variables {α : Type*} {β : Type*}
33+
34+
open set
35+
36+
/-- We say that `g : β → α` is an order right adjoint function for `f : α → β` if it sends each `y`
37+
to a least upper bound for `{x | f x ≤ y}`. If `α` is a partial order, and `f : α → β` has
38+
a right adjoint, then this right adjoint is unique. -/
39+
def is_order_right_adjoint [preorder α] [preorder β] (f : α → β) (g : β → α) :=
40+
∀ y, is_lub {x | f x ≤ y} (g y)
41+
42+
lemma is_order_right_adjoint_Sup [complete_lattice α] [preorder β] (f : α → β) :
43+
is_order_right_adjoint f (λ y, Sup {x | f x ≤ y}) :=
44+
λ y, is_lub_Sup _
45+
46+
lemma is_order_right_adjoint_cSup [conditionally_complete_lattice α] [preorder β] (f : α → β)
47+
(hne : ∀ y, ∃ x, f x ≤ y) (hbdd : ∀ y, ∃ b, ∀ x, f x ≤ y → x ≤ b) :
48+
is_order_right_adjoint f (λ y, Sup {x | f x ≤ y}) :=
49+
λ y, is_lub_cSup (hne y) (hbdd y)
50+
51+
lemma is_order_right_adjoint.unique [partial_order α] [preorder β] {f : α → β} {g₁ g₂ : β → α}
52+
(h₁ : is_order_right_adjoint f g₁) (h₂ : is_order_right_adjoint f g₂) :
53+
g₁ = g₂ :=
54+
funext $ λ y, (h₁ y).unique (h₂ y)
55+
56+
lemma is_order_right_adjoint.right_mono [preorder α] [preorder β] {f : α → β} {g : β → α}
57+
(h : is_order_right_adjoint f g) :
58+
monotone g :=
59+
λ y₁ y₂ hy, (h y₁).mono (h y₂) $ λ x hx, le_trans hx hy
60+
61+
namespace function
62+
63+
/-- If an order automorphism `fa` is semiconjugate to an order embedding `fb` by a function `g`
64+
and `g'` is an order right adjoint of `g` (i.e. `g' y = Sup {x | f x ≤ y}`), then `fb` is
65+
semiconjugate to `fa` by `g'`.
66+
67+
This is a version of Proposition 2.1 from [Étienne Ghys, Groupes d'homeomorphismes du cercle et
68+
cohomologie bornee][ghys87:groupes]. -/
69+
lemma semiconj.symm_adjoint [partial_order α] [preorder β]
70+
{fa : ((≤) : α → α → Prop) ≃o ((≤) : α → α → Prop)}
71+
{fb : ((≤) : β → β → Prop) ≼o ((≤) : β → β → Prop)} {g : α → β}
72+
(h : function.semiconj g fa fb) {g' : β → α} (hg' : is_order_right_adjoint g g') :
73+
function.semiconj g' fb fa :=
74+
begin
75+
refine λ y, (hg' _).unique _,
76+
rw [← @image_preimage_eq _ _ _ {x | g x ≤ fb y} fa.surjective, preimage_set_of_eq],
77+
simp only [h.eq, ← fb.ord, fa.left_ord_continuous (hg' _)]
78+
end
79+
80+
variable {G : Type*}
81+
82+
lemma semiconj_of_is_lub [partial_order α] [group G]
83+
(f₁ f₂ : G →* ((≤) : α → α → Prop) ≃o ((≤) : α → α → Prop)) {h : α → α}
84+
(H : ∀ x, is_lub (range (λ g', (f₁ g')⁻¹ (f₂ g' x))) (h x)) (g : G) :
85+
function.semiconj h (f₂ g) (f₁ g) :=
86+
begin
87+
refine λ y, (H _).unique _,
88+
have := (f₁ g).left_ord_continuous (H y),
89+
rw [← range_comp, ← (equiv.mul_right g).surjective.range_comp _] at this,
90+
simpa [(∘)] using this
91+
end
92+
93+
/-- Consider two actions `f₁ f₂ : G → α → α` of a group on a complete lattice by order
94+
isomorphisms. Then the map `x ↦ ⨆ g : G, (f₁ g)⁻¹ (f₂ g x)` semiconjugates each `f₁ g'` to `f₂ g'`.
95+
96+
This is a version of Proposition 5.4 from [Étienne Ghys, Groupes d'homeomorphismes du cercle et
97+
cohomologie bornee][ghys87:groupes]. -/
98+
lemma Sup_div_semiconj [complete_lattice α] [group G]
99+
(f₁ f₂ : G →* ((≤) : α → α → Prop) ≃o ((≤) : α → α → Prop)) (g : G) :
100+
function.semiconj (λ x, ⨆ g' : G, (f₁ g')⁻¹ (f₂ g' x)) (f₂ g) (f₁ g) :=
101+
semiconj_of_is_lub f₁ f₂ (λ x, is_lub_supr) _
102+
103+
/-- Consider two actions `f₁ f₂ : G → α → α` of a group on a conditionally complete lattice by order
104+
isomorphisms. Suppose that each set $s(x)=\{f_1(g)^{-1} (f_2(g)(x)) | g \in G\}$ is bounded above.
105+
Then the map `x ↦ Sup s(x)` semiconjugates each `f₁ g'` to `f₂ g'`.
106+
107+
This is a version of Proposition 5.4 from [Étienne Ghys, Groupes d'homeomorphismes du cercle et
108+
cohomologie bornee][ghys87:groupes]. -/
109+
lemma cSup_div_semiconj [conditionally_complete_lattice α] [group G]
110+
(f₁ f₂ : G →* ((≤) : α → α → Prop) ≃o ((≤) : α → α → Prop))
111+
(hbdd : ∀ x, bdd_above (range $ λ g, (f₁ g)⁻¹ (f₂ g x))) (g : G) :
112+
function.semiconj (λ x, ⨆ g' : G, (f₁ g')⁻¹ (f₂ g' x)) (f₂ g) (f₁ g) :=
113+
semiconj_of_is_lub f₁ f₂ (λ x, is_lub_cSup (range_nonempty _) (hbdd x)) _
114+
115+
end function

0 commit comments

Comments
 (0)