Commit 2020-10-13 21:59 2543b688
View on Github →refactor(*): migrate to dense API (#4447)
@PatrickMassot introduced dense in #4399. In this PR I review the API and migrate many definitions and lemmas
to use dense s instead of closure s = univ. I also generalize second_countable_of_separable to a uniform_space
with a countably generated uniformity filter.
API changes
Use dense or dense_range instead of closure _ = univ
Lemmas
has_fderiv_within_at.unique_diff_within_at;exists_dense_seq;dense_Inter_of_open_nat;dense_sInter_of_open;dense_bInter_of_open;dense_Inter_of_open;dense_sInter_of_Gδ;dense_bInter_of_Gδ;eventually_residual;mem_residual;dense_bUnion_interior_of_closed;dense_sUnion_interior_of_closed;dense_Union_interior_of_closed;Kuratowski_embeddinng.embedding_of_subset_isometry;continuous_extend_from;
Definitions
unique_diff_within_at;residual;
Rename
submodule.linear_eq_on→linear_map.eq_on_span,linear_map.eq_on_span';submodule.linear_map.ext_on→linear_map.ext_on_range;filter.is_countably_generated.has_antimono_basis→filter.is_countably_generated.exists_antimono_basis;exists_countable_closure_eq_univ→exists_countable_dense, usedense;dense_seq_dense→dense_range_dense_seq, usedense;dense_range.separable_spaceis nowprotected;dense_of_subset_dense→dense.mono;dense_inter_of_open_left→dense.inter_of_open_left;dense_inter_of_open_right→dense.inter_of_open_right;continuous.dense_image_of_dense_range→dense_range.dense_image;dense_range.inhabited,dense_range.nonempty: changed API, TODO;quotient_dense_of_dense→dense.quotient, usedense;dense_inducing.separable→dense_inducing.separable_space, addprotected;dense_embedding.separable→dense_embedding.separable_space, addprotected;dense_inter_of_Gδ→dense.inter_of_Gδ;stone_cech_unit_dense→dense_range_stone_cech_unit;abstract_completion.dense'→abstract_completion.closure_range;Cauchy.pure_cauchy_dense→Cauchy.dense_range_pure_cauchy;completion.dense→completion.dense_range_coe;completion.dense₂→completion.dense_range_coe₂;completion.dense₃→completion.dense_range_coe₃;
New
has_fderiv_within_at.unique_on: iff'andf₁'are two derivatives offwithinsatx, then they are equal on the tangent cone tosatx;local_homeomorph.mdifferentiable.mfderiv_bijective,local_homeomorph.mdifferentiable.mfderiv_surjectivecontinuous_linear_map.eq_on_closure_span: if two continuous linear maps are equal ons, then they are equal onclosure (submodule.span s);continuous_linear_map.ext_on: if two continuous linear maps are equal on a setssuch thatsubmodule.span sis dense, then they are equal;dense_closure:closure sis dense iffsis dense;dense.of_closure,dense.closure: aliases fordense_closure.mpanddense_closure.mpr;dense_univ:univis dense;dense.inter_open_nonempty: alias fordense_iff_inter_open.mp;dense.nonempty_iff: ifs : set αis a dense set, thensis nonempty iffαis nonempty;dense.nonempty: a dense set in a nonempty type is nonempty;dense_range.some: given a function withdense_rangeand a point in the codomain, returns a point in the domain;function.surjective.dense_range: a surjective function has dense range;continuous.range_subset_closure_image_dense: closure of the image of a dense set under a continuous function includes the range of this function;dense_range.dense_of_maps_to: if a function with dense range maps a dense setstot, thentis dense in the codomain;dense_range.quotient;dense.prod: product of two dense sets is dense in the product;set.eq_on.closure;continuous.ext_on;linear_map.ext_on