|
| 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