Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
516c0cb
cleaner proof of urysohn, maybe
zstone1 Apr 13, 2023
b1a16e1
proving splits
zstone1 Apr 14, 2023
c1c20fa
split lemma proven
zstone1 Apr 14, 2023
d007994
urysohn open gauge
zstone1 Apr 14, 2023
4c4a374
improved urysohn
zstone1 Apr 14, 2023
c7ec309
cleaning up proofs
zstone1 Apr 17, 2023
e8425c8
fixing build
zstone1 Apr 17, 2023
1b58e7c
moving rhausdorff
zstone1 Apr 17, 2023
45be8bc
clarifying status of proof
zstone1 Jun 22, 2023
79a5fff
rebasing
zstone1 Jun 27, 2023
6901695
adding docs
zstone1 Jun 27, 2023
fa3b3bc
updating changelog
zstone1 Jun 27, 2023
709d97f
just linting
affeldt-aist Jun 28, 2023
0fe27f3
almost done with continuity
zstone1 Jul 15, 2023
426db7b
building bounded distance function
zstone1 Jul 16, 2023
9a47152
cleaning stuff up
zstone1 Jul 16, 2023
3007434
more linting
zstone1 Jul 16, 2023
9c441d8
full version of urysohns
zstone1 Jul 26, 2023
6a4f0dd
fixing docs
zstone1 Jul 26, 2023
6bdab81
forgot some more changelog stuff
zstone1 Jul 26, 2023
26bfbe8
fixing build
zstone1 Jul 26, 2023
f18184d
splitting separator code
zstone1 Jul 29, 2023
f747772
uniform part done
zstone1 Jul 29, 2023
b4bc79f
cleaner urysohn interface
zstone1 Jul 29, 2023
d8ad754
docs and changelog
zstone1 Jul 29, 2023
a69e73e
new uniform_separator definition
zstone1 Aug 3, 2023
81cbe1f
fixing docs
zstone1 Aug 3, 2023
d3d432e
fixing changelog
zstone1 Aug 3, 2023
1928683
uniform_separatorP
zstone1 Aug 3, 2023
4c9872c
consolidating normality proofs
zstone1 Aug 3, 2023
2bd004d
cleaning up interface
zstone1 Aug 3, 2023
3087531
nitpicking
CohenCyril Aug 4, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 23 additions & 1 deletion CHANGELOG_UNRELEASED.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@

- in `mathcomp_extra.v`:
+ definition `min_fun`, notation `\min`
+ new lemmas `maxr_absE`, `minr_absE`
- in `classical_sets.v`:
+ lemmas `set_predC`, `preimage_true`, `preimage_false`
- in `lebesgue_measure.v`:
Expand Down Expand Up @@ -63,22 +64,27 @@

- in `classical_sets.v`:
+ lemma `Zorn_bigcup`
+ lemmas `imsub1` and `imsub1P`

- in file `boolp.v`,
+ lemmas `notP`, `notE`
+ new lemma `implyE`.
+ new lemmas `contra_leP` and `contra_ltP`

- in file `reals.v`:
+ lemmas `sup_sumE`, `inf_sumE`
- in file `topology.v`:
+ lemma `ball_symE`
- in file `normedtype.v`,
+ new definition `edist`.
+ new lemmas `edist_ge0`, `edist_lt_ball`,
+ new lemmas `edist_ge0`, `edist_neqNy`, `edist_lt_ball`,
`edist_fin`, `edist_pinftyP`, `edist_finP`, `edist_fin_open`,
`edist_fin_closed`, `edist_pinfty_open`, `edist_sym`, `edist_triangle`,
`edist_continuous`, `edist_closeP`, and `edist_refl`.
- in `constructive_ereal.v`:
+ lemmas `lte_pmulr`, `lte_pmull`, `lte_nmulr`, `lte_nmull`
+ lemmas `lte0n`, `lee0n`, `lte1n`, `lee1n`
+ lemmas `fine0` and `fine1`
- in `sequences.v`:
+ lemma `eseries_cond`
+ lemmas `eseries_mkcondl`, `eseries_mkcondr`
Expand All @@ -100,6 +106,21 @@
+ lemmas `Posz_snum_subproof` and `Negz_snum_subproof`
+ canonical instances `Posz_snum` and `Negz_snum`

- in file `normedtype.v`,
+ new definitions `edist_inf`, `uniform_separator`, and `Urysohn`.
+ new lemmas `continuous_min`, `continuous_max`, `edist_closel`,
`edist_inf_ge0`, `edist_inf_neqNy`, `edist_inf_triangle`,
`edist_inf_continuous`, `edist_inf0`, `Urysohn_continuous`,
`Urysohn_range`, `Urysohn_sub0`, `Urysohn_sub1`, `Urysohn_eq0`,
`Urysohn_eq1`, `uniform_separatorW`, `normal_uniform_separator`,
`uniform_separatorP`, `normal_urysohnP`, and
`subset_closure_half`.

- in file `topology.v`,
+ new definition `normal_space`.
+ new lemmas `filter_inv`, and `countable_uniform_bounded`.


### Changed

- moved from `lebesgue_measure.v` to `real_interval.v`:
Expand All @@ -110,6 +131,7 @@

- in `exp.v`:
+ lemmas `power_posD` (now `powRD`), `power_posB` (now `powRB`)
- moved from `normedtype.v` to `topology.v`: `Rhausdorff`.

- in `sequences.v`:
+ lemma `nneseriesrM` generalized and renamed to `nneseriesZl`
Expand Down
14 changes: 14 additions & 0 deletions classical/boolp.v
Original file line number Diff line number Diff line change
Expand Up @@ -497,6 +497,20 @@ Proof. by move=> Pxy; apply: contraNP => /Pxy/eqP. Qed.
Lemma contra_eqP (T : eqType) (x y : T) (Q : Prop) : (~ Q -> x != y) -> x = y -> Q.
Proof. by move=> Qxy /eqP; apply: contraTP. Qed.

Lemma contra_leP {disp1 : unit} {T1 : porderType disp1} [P : Prop] [x y : T1] :
(~ P -> (x < y)%O) -> (y <= x)%O -> P.
Proof.
move=> Pxy yx; apply/asboolP.
by apply: Order.POrderTheory.contra_leT yx => /asboolPn.
Qed.

Lemma contra_ltP {disp1 : unit} {T1 : porderType disp1} [P : Prop] [x y : T1] :
(~ P -> (x <= y)%O) -> (y < x)%O -> P.
Proof.
move=> Pxy yx; apply/asboolP.
by apply: Order.POrderTheory.contra_ltT yx => /asboolPn.
Qed.

Lemma wlog_neg P : (~ P -> P) -> P.
Proof. by move=> ?; case: (pselect P). Qed.

Expand Down
8 changes: 7 additions & 1 deletion classical/classical_sets.v
Original file line number Diff line number Diff line change
Expand Up @@ -1244,10 +1244,16 @@ Proof. by split=> fAY x; have := fAY x; rewrite !inE. Qed.
Lemma image_subP {A Y f} : f @` A `<=` Y <-> {homo f : x / A x >-> Y x}.
Proof. by split=> fAY x => [Ax|[y + <-]]; apply: fAY=> //; exists x. Qed.

Lemma image_sub {f : aT -> rT} {A : set aT} {B : set rT} :
Lemma image_sub {f : aT -> rT} {A : set aT} {B : set rT} :
(f @` A `<=` B) = (A `<=` f @^-1` B).
Proof. by apply/propext; rewrite image_subP; split=> AB a /AB. Qed.

Lemma imsub1 x A f : f @` A `<=` [set x] -> forall a, A a -> f a = x.
Proof. by move=> + a Aa; apply; exists a. Qed.

Lemma imsub1P x A f : f @` A `<=` [set x] <-> forall a, A a -> f a = x.
Proof. by split=> [/(@imsub1 _)//|+ _ [a Aa <-]]; apply. Qed.

Lemma image_setU f A B : f @` (A `|` B) = f @` A `|` f @` B.
Proof.
rewrite eqEsubset; split => b.
Expand Down
24 changes: 24 additions & 0 deletions classical/mathcomp_extra.v
Original file line number Diff line number Diff line change
Expand Up @@ -1392,3 +1392,27 @@ exists f; split => //.
intro n; induction n; simpl; apply: proj2_sig.
Qed.
End dependent_choice_Type.

Section max_min.
Variable R : realFieldType.
Import Num.Theory.

Let nz2 : 2 != 0 :> R. Proof. by rewrite pnatr_eq0. Qed.

Lemma maxr_absE (x y : R) : Num.max x y = (x + y + `|x - y|) / 2.
Proof.
apply: canRL (mulfK _) _ => //; rewrite ?pnatr_eq0//.
case: lerP => _; (* TODO: ring *) rewrite [2]mulr2n mulrDr mulr1.
by rewrite addrACA subrr addr0.
by rewrite addrCA addrAC subrr add0r.
Qed.

Lemma minr_absE (x y : R) : Num.min x y = (x + y - `|x - y|) / 2.
Proof.
apply: (addrI (Num.max x y)); rewrite addr_max_min maxr_absE. (* TODO: ring *)
by rewrite -mulrDl addrACA subrr addr0 mulrDl -splitr.
Qed.

End max_min.

Notation trivial := (ltac:(done)).
3 changes: 3 additions & 0 deletions theories/constructive_ereal.v
Original file line number Diff line number Diff line change
Expand Up @@ -327,6 +327,9 @@ split=> [|[->|[r r0 ->//]]]; last by rewrite real_leey/=.
by case: x => [r r0 | _ |//]; [right; exists r|left].
Qed.

Lemma fine0 : fine 0 = 0%R :> R. Proof. by []. Qed.
Lemma fine1 : fine 1 = 1%R :> R. Proof. by []. Qed.

End ERealOrder_numDomainType.

#[global] Hint Resolve lee01 lte01 : core.
Expand Down
Loading