Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Uniform structures and boundedness #5

Merged
merged 5 commits into from Jun 24, 2018

Conversation

PatrickMassot
Copy link
Member

The main point of this PR is to define the uniform structure on topological rings. This allows to unsorry the definition of is_complete. It defines basic boundedness properties.

@PatrickMassot
Copy link
Member Author

For the record: this involved some set manipulation help from Reid Barton (see Zulip on June 9th at 16:30).


section topological_ring

variables (R : Type*) [comm_ring R] [topological_space R] [comm_ring R] [topological_ring R]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You have [comm_ring R] twice.

-- Following is copy-pasted from t2_space class.
-- We need to think whether we could directly use that class
definition is_hausdorff (α : Type*) [topological_space α] : Prop :=
∀x y, x ≠ y → ∃u v : set α, is_open u ∧ is_open v ∧ x ∈ u ∧ y ∈ v ∧ u ∩ v = ∅
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would prefer uppercase for the open subsets. But of course that is only a matter of notation. Also, does it make sense to use opens X in this case?


def nhd_zero := (nhds (0 : R)).sets
variable {R}
lemma nhd_zero_symmetric {V : set R} : V ∈ nhd_zero R → (λ a, -a) '' V ∈ nhd_zero R :=
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doesn't use the ring structure, right? Should we just prove it for additive topological groups?

definition is_bounded
(B : set R) : Prop := ∀ U ∈ nhd_zero R, ∃ V ∈ nhd_zero R, ∀ v ∈ V, ∀ b ∈ B, v*b ∈ U

def power_set (r : R) : set R := set.range (λ n : ℕ, r^n)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This sounds a lot like "powerset" from basic set theory. Is it an idea to call this merely powers? Otherwise, I think it is good to at least include a user comment

/-- power_set r is the subset of the ring R consisting of all powers of r -/

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Kenny calls them powers in his ring theory stuff I think (we localise at the multiplicative set powers f IIRC)


-- Schol= : "Recall that a topological ring R is Tate if it contains an
-- open and bounded subring R0 ⊂ R and a topologically nilpotent unit pi ∈ R; such elements are
-- called pseudo-uniformizers.""
-- called pseudo-uni7formizers.""
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Something went wrong here?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Schol= -> Scholze as well (this was my fault)

Copy link
Member

@kbuzzard kbuzzard left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

mostly questions

-- Type implicit or explicit.
variables (R : Type) [comm_ring R] [topological_space R] [comm_ring R] [topological_ring R]
variables {A : Type} [comm_ring A] [topological_space A] [comm_ring A] [topological_ring A]

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Did you mean to have comm_ring twice in these definitions?

refl := begin simp, intros i H r, exact mem_of_nhds H end,
symm := sorry,
comp := sorry }

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Patrick I'm rather relieved you've stepped in here to unravel the uniform spaces and filters. But what are these sorrys?

-- type class resolution issues
definition power_bounded_subring := {r : R // is_power_bounded r}
definition power_bounded_subring_set := {r : R | is_power_bounded r}

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this definitely what we're supposed to be doing? Chris Hughes seemed to be advocating the standard CS "asymmetric" approach where one of these types is deemed to be the "best" one and should be used if at all possible, and coercions should handle all the others.

end


instance toplogical_ring.to_uniform_space : uniform_space R :=
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this going to create a diamond-like problem for the type class system? We now have topological_ring → topological_space and now also the composition topological_ring → uniform_space → topological_space. I don't think they are defeq. Is this a problem?

def nhd_zero := (nhds (0 : R)).sets
variable {R}
lemma nhd_zero_symmetric {V : set R} : V ∈ nhd_zero R → (λ a, -a) '' V ∈ nhd_zero R :=
begin
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you think there's a simpler proof just saying "neg is continuous"?


instance toplogical_ring.to_uniform_space : uniform_space R :=
uniform_space.of_core {
uniformity := (⨅ U ∈ nhd_zero R, principal {p : R×R | p.2 - p.1 ∈ U}),
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It says in the docstring of uniform_space that a topological group has a uniform structure. Do you think this might already be proved in mathlib? If so, we could just apply it to the underlying additive group of R, right?

variable (R)
/-- Wedhorn Definition 5.31 page 38 -/
definition is_complete : Prop := is_hausdorff R ∧ ∀ {f:filter R}, cauchy f → ∃x, f ≤ nhds x

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you think the definition of Cauchy in mathlib coincides with the definition in Wedhorn? Wedhorn's definition relies on the topological group structure.

@PatrickMassot
Copy link
Member Author

I've completely redone the uniform space stuff. Now it is defined for commutative topological groups and gives back the original topology. I also addressed the minor comments. It should be ready for merge.

@kbuzzard kbuzzard merged commit e178142 into leanprover-community:master Jun 24, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants