Module mathcomp.classical.classical_sets
From HB Require Import structures.From mathcomp Require Import boot order ssralg matrix finmap ssrnum.
From mathcomp Require Import ssrint rat interval.
#[warning="-warn-library-file-internal-analysis"]
From mathcomp Require Import unstable.
From mathcomp Require Import boolp wochoice.
Unset SsrOldRewriteGoalsOrder.
Set Implicit Arguments.
Unset Strict Implicit.
Unset Printing Implicit Defensive.
Declare Scope classical_set_scope.
Reserved Notation "R ^nat".
Reserved Notation "[ 'set' x : T | P ]" (only parsing).
Reserved Notation "[ 'set' x | P ]" (format "[ 'set' x | P ]").
Reserved Notation "[ 'set' E | x 'in' A ]"
(format "[ '[hv' 'set' E '/ ' | x 'in' A ] ']'").
Reserved Notation "[ 'set' E | x 'in' A & y 'in' B ]"
(format "[ '[hv' 'set' E '/ ' | x 'in' A & y 'in' B ] ']'").
Reserved Notation "[ 'set' a ]" (format "[ 'set' a ]").
Reserved Notation "[ 'set' : T ]" (format "[ 'set' : T ]").
Reserved Notation "[ 'set' a : T ]" (format "[ 'set' a : T ]").
Reserved Notation "A `|` B" (at level 52, left associativity).
Reserved Notation "a |` A" (at level 52, left associativity).
Reserved Notation "A `&` B" (at level 48, left associativity).
Reserved Notation "A `*` B" (at level 46, left associativity).
Reserved Notation "A `*`` B" (at level 46, left associativity).
Reserved Notation "A ``*` B" (at level 46, left associativity).
Reserved Notation "A .`1" (format "A .`1").
Reserved Notation "A .`2" (format "A .`2").
Reserved Notation "~` A" (at level 35, right associativity).
Reserved Notation "[ 'set' ~ a ]" (format "[ 'set' ~ a ]").
Reserved Notation "A `\` B" (at level 50, left associativity).
Reserved Notation "A `\ b" (at level 50, left associativity).
Reserved Notation "A `+` B" (at level 54, left associativity).
Reserved Notation "A `<` B" (at level 70, no associativity).
Reserved Notation "A `<=` B" (at level 70, no associativity).
Reserved Notation "A `<=>` B" (at level 70, no associativity).
Reserved Notation "f @^-1` A" (at level 24).
Reserved Notation "f @` A" (at level 24).
Reserved Notation "A !=set0" (at level 80).
Reserved Notation "[ 'set`' p ]" (format "[ 'set`' p ]").
Reserved Notation "[ 'disjoint' A & B ]"
(format "'[hv' [ 'disjoint' '/ ' A '/' & B ] ']'").
Reserved Notation "F `#` G"
(at level 48, left associativity, format "F `#` G").
Reserved Notation "'`I_' n" (at level 8, n at level 2, format "'`I_' n").
Reserved Notation "A `x` B" (at level 46, left associativity).
Definition
Source code
Definition
Source code
Canonical
Source code
Lemma
Source code
Definition
Source code
Bind Scope classical_set_scope with set.
Local Open Scope classical_set_scope.
Delimit Scope classical_set_scope with classic.
Definition
Source code
Arguments mkset _ _ _ /.
Notation
Source code
Notation
Source code
Definition
Source code
[set | exists2 , A x & f x = y].
Arguments image _ _ _ _ _ /.
Notation
Source code
(image A (fun => E)) : classical_set_scope.
Definition
Source code
[set | exists2 , A x & exists2 , B y & f x y = z].
Arguments image2 _ _ _ _ _ _ _ /.
Notation
Source code
(image2 A B (fun => E)) : classical_set_scope.
Section basic_definitions.
Context { : Type}.
Implicit Types (T : Type) (A B : set T) (f : T -> rT) (Y : set rT).
Definition
Source code
Definition
Source code
Definition
Source code
Definition
sigma_subadditive : forall {T : Type} {R : numFieldType}, (set T -> \bar R) -> Prop sigma_subadditive is not universe polymorphic Arguments sigma_subadditive {T}%_type_scope {R} mu%_function_scope sigma_subadditive is transparent Expands to: Constant mathcomp.analysis.measure_theory.measure_extension.sigma_subadditive Declared in library mathcomp.analysis.measure_theory.measure_extension, line 93, characters 11-28
Source code
Definition
caratheodory_measurable : forall [R : realType] [T : Type], (set T -> \bar R) -> set T -> Prop caratheodory_measurable is not universe polymorphic Arguments caratheodory_measurable [R] [T]%_type_scope mu%_function_scope A%_classical_set_scope caratheodory_measurable is transparent Expands to: Constant mathcomp.analysis.measure_theory.measure_extension.caratheodory_measurable Declared in library mathcomp.analysis.measure_theory.measure_extension, line 216, characters 11-34
Source code
Definition
caratheodory_type : forall [R : realType] [T : Type], (set T -> \bar R) -> Type caratheodory_type is not universe polymorphic Arguments caratheodory_type [R] [T]%_type_scope mu%_function_scope caratheodory_type is transparent Expands to: Constant mathcomp.analysis.measure_theory.measure_extension.caratheodory_type Declared in library mathcomp.analysis.measure_theory.measure_extension, line 397, characters 11-28
Source code
Definition
caratheodory_display : forall [R T : Type], (set T -> \bar R) -> measure_display caratheodory_display is not universe polymorphic Arguments caratheodory_display [R T]%_type_scope _%_function_scope caratheodory_display is opaque Expands to: Constant mathcomp.analysis.measure_theory.measure_extension.caratheodory_display Declared in library mathcomp.analysis.measure_theory.measure_extension, line 403, characters 11-31
Source code
Definition
caratheodory_measure : forall {R : realType} {T : choiceType} (mu : {outer_measure set T -> \bar R}%R), set (caratheodory_type (R:=R) (T:=T) mu) -> \bar R caratheodory_measure is not universe polymorphic Arguments caratheodory_measure {R T} mu _%_classical_set_scope caratheodory_measure is transparent Expands to: Constant mathcomp.analysis.measure_theory.measure_extension.caratheodory_measure Declared in library mathcomp.analysis.measure_theory.measure_extension, line 420, characters 11-31
Source code
Definition
measurable_cover : forall [d : measure_display] [T : semiRingOfSetsType d], set T -> set (set T) ^nat measurable_cover is not universe polymorphic Arguments measurable_cover [d]%_measure_display_scope [T] X%_classical_set_scope _ measurable_cover is transparent Expands to: Constant mathcomp.analysis.measure_theory.measure_extension.measurable_cover Declared in library mathcomp.analysis.measure_theory.measure_extension, line 482, characters 11-27
Source code
Definition
mu_ext : forall [d : measure_display] [T : semiRingOfSetsType d] [R : realType], (set T -> \bar R) -> set T -> \bar R mu_ext is not universe polymorphic Arguments mu_ext [d]%_measure_display_scope [T R] mu%_function_scope X%_classical_set_scope mu_ext is transparent Expands to: Constant mathcomp.analysis.measure_theory.measure_extension.mu_ext Declared in library mathcomp.analysis.measure_theory.measure_extension, line 500, characters 11-17
Source code
Definition
measure_extension : forall [d : measure_display] [T : semiRingOfSetsType d] [R : realType], Measure.Exports.measure T R -> set (g_sigma_algebraType d.-measurable%classic) -> \bar R measure_extension is not universe polymorphic Arguments measure_extension [d]%_measure_display_scope [T R] mu _%_classical_set_scope measure_extension is transparent Expands to: Constant mathcomp.analysis.measure_theory.measure_extension.measure_extension Declared in library mathcomp.analysis.measure_theory.measure_extension, line 725, characters 11-28
Source code
Definition
completed_measure_extension : forall [d : measure_display] [T : semiRingOfSetsType d] [R : realType] [mu : Measure.Exports.measure T R], set (caratheodory_type (R:=R) (T:=T) mu^*%mu) -> \bar R completed_measure_extension is not universe polymorphic Arguments completed_measure_extension [d]%_measure_display_scope [T R mu] _%_classical_set_scope completed_measure_extension is transparent Expands to: Constant mathcomp.analysis.measure_theory.measure_extension.completed_measure_extension Declared in library mathcomp.analysis.measure_theory.measure_extension, line 788, characters 11-38
Source code
Definition
Source code
[set | A1 z.1 /\ A2 z.1 z.2].
Definition
Source code
[set | A1 z.2 z.1 /\ A2 z.2].
Lemma
Source code
Proof.
Definition
Source code
[set | forall , P i -> F i a].
Definition
Source code
[set | exists2 , P i & F i a].
Definition
Source code
Local Notation
Source code
Lemma
Source code
Proof.
Definition
Source code
Definition
Source code
End basic_definitions.
Arguments preimage T rT f Y t /.
Arguments set0 _ _ /.
Arguments setT _ _ /.
Arguments set1 _ _ _ /.
Arguments setI _ _ _ _ /.
Arguments setU _ _ _ _ /.
Arguments setC _ _ _ /.
Arguments setD _ _ _ _ /.
Arguments setX _ _ _ _ _ /.
Arguments setXR _ _ _ _ _ /.
Arguments setXL _ _ _ _ _ /.
Arguments fst_set _ _ _ _ /.
Arguments snd_set _ _ _ _ /.
Arguments subsetP {T A B}.
Notation
Source code
Notation
Source code
Notation
Source code
Notation
Source code
Notation
Source code
Notation
Source code
Notation
Source code
(setU .. (a1 |` [set a2]) .. [set an]) : classical_set_scope.
Notation
Source code
Notation
Source code
Notation
Source code
Notation
Source code
Notation
Source code
Notation
Source code
Notation
Source code
Notation
Source code
Notation
Source code
Notation
Source code
Notation
Source code
Definition
Source code
Arguments setY _ _ _ _ /.
Notation
Source code
Notation
Source code
Notation
Source code
(bigcup P (fun => F)) : classical_set_scope.
Notation
Source code
(\bigcup_( in @setT T) F) : classical_set_scope.
Notation
Source code
(\bigcup_( in `I_n) F) : classical_set_scope.
Notation
Source code
(\bigcup_( in [set | (n <= i)%N]) F) : classical_set_scope.
Notation
Source code
Notation
Source code
(bigcap P (fun => F)) : classical_set_scope.
Notation
Source code
(\bigcap_( in @setT T) F) : classical_set_scope.
Notation
Source code
(\bigcap_( in `I_n) F) : classical_set_scope.
Notation
Source code
(\bigcap_( in [set | (n <= i)%N]) F) : classical_set_scope.
Notation
Source code
Notation
Source code
Notation
Source code
Notation
Source code
Notation
Source code
Notation
Source code
Notation
Source code
Notation
Source code
Notation
Source code
Notation
Source code
[set` Interval (BLeft a) (BRight b)] : classical_set_scope.
Notation
Source code
[set` Interval (BRight a) (BRight b)] : classical_set_scope.
Notation
Source code
[set` Interval (BLeft a) (BLeft b)] : classical_set_scope.
Notation
Source code
[set` Interval (BRight a) (BLeft b)] : classical_set_scope.
Notation
Source code
[set` Interval -oo%O (BRight b)] : classical_set_scope.
Notation
Source code
[set` Interval -oo%O (BLeft b)] : classical_set_scope.
Notation
Source code
[set` Interval (BLeft a) +oo%O] : classical_set_scope.
Notation
Source code
[set` Interval (BRight a) +oo%O] : classical_set_scope.
Notation
Source code
[set` Interval -oo%O +oo%O] : classical_set_scope.
Lemma
Source code
Proof.
#[global] Hint Resolve nat_nonempty : core.
Lemma
Source code
Lemma
Source code
[set` j] `<=` [set` i] ->
{in i &, forall , P x y} -> {in j &, forall , P x y}.
Proof.
Lemma
Source code
((f @^-1` [set` i]) x) = (f x \in i).
Proof.
Lemma
Source code
f @^-1` `]y, +oo[%classic = [set | (y < f x)%O].
Lemma
Source code
f @^-1` `[y, +oo[%classic = [set | (y <= f x)%O].
Lemma
Source code
f @^-1` `]-oo, y[%classic = [set | (f x < y)%O].
Lemma
Source code
f @^-1` `]-oo, y]%classic = [set | (f x <= y)%O].
Lemma
Source code
[set | P x] = [set | Q x].
Proof.
Coercion
Source code
Definition
Source code
exist (fun => x \in P) x.
Lemma
Source code
Proof.
Lemma
Source code
pred_oapp D = mem (some @` D)%classic.
Proof.
Lemma
Source code
pred_oapp (mem D) = mem (some @` D)%classic.
Proof.
Section basic_lemmas.
Context { : Type}.
Implicit Types A B C D : set T.
Lemma
Source code
Proof.
Source code
Proof.
Lemma
Source code
Proof.
Source code
Proof.
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Proof.
apply: contra_notP => /forallNP h.
by apply/eqP; rewrite predeqE => t; split => // _; apply: contrapT.
Qed.
Notation
Source code
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Definition
Source code
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
(forall , (~` B) x -> A x = C x) -> (A `|` B) = (C `|` B).
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Definition
Source code
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
by move=> NAx y; apply: contraPnot => ->.
Qed.
Lemma
Source code
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
by move=> sBC_A; split=> x ?; apply sBC_A; [left | right].
Qed.
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Proof.
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Proof.
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
by rewrite -AB => -[].
by split=> [[]//|At]; move: (AB t At).
Qed.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Lemma
Source code
A `<=` B -> C `<=` D -> A `&` C !=set0 -> B `&` D !=set0.
Proof.
Lemma
Source code
A `<=` B -> C `<=` D -> B `&` D = set0 -> A `&` C = set0.
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
by split => //; apply/negP; apply: contra_not BA => /eqP ->.
by rewrite eqEsubset => AB BA; split => //; exact: contra_not AB.
Qed.
Lemma
Source code
Lemma
Source code
Lemma
Source code
Proof.
by move/subsets_disjoint; rewrite setCK setIC => /subsets_disjoint.
by apply/subsets_disjoint; rewrite setCK setIC; apply/subsets_disjoint.
Qed.
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Proof.
Lemma
Source code
Proof.
by apply: asbool_eq_equiv; rewrite asbool_and !asbool_neg asbool_or negb_or.
Qed.
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Proof.
by move=> [[At|Bt] Ct]; [left|right].
by move=> [[At Ct]|[Bt Ct]]; split => //; [left|right].
Qed.
Lemma
Source code
Lemma
Source code
Proof.
by move=> [[At Bt]|Ct]; split; by [left|right].
by move=> [[At|Ct] [Bt|Ct']]; by [left|right].
Qed.
Lemma
Source code
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Proof.
- by left.
- by right.
- by split=> //; left.
- by split=> //; right.
Qed.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
(X1 `&` Y1) `*` (X2 `&` Y2) = X1 `*` X2 `&` Y1 `*` Y2.
Proof.
Lemma
Source code
A `<=` B -> C `<=` D -> C `*` A `<=` D `*` B.
Proof.
Lemma
Source code
A `*` \bigcup_( in P) F i = \bigcup_( in P) (A `*` F i).
Proof.
by move=> [n Pn [/= Ax Fny]]; split => //; exists n.
Qed.
Lemma
Source code
\bigcup_( in P) F i `*` A = \bigcup_( in P) (F i `*` A).
Proof.
by move=> [n Pn [/= Ax Fny]]; split => //; exists n.
Qed.
Lemma
Source code
\bigcup_( in A1) ([set i] `*` A2 i) = A1 `*`` A2.
Proof.
Lemma
Source code
\bigcup_( in A2) (A1 i `*` [set i]) = A1 ``*` A2.
Proof.
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Proof.
End basic_lemmas.
Arguments subsetT {T} A.
#[global]
Hint Resolve subsetUl subsetUr subIsetl subIsetr subDsetl subDsetr : core.
Arguments setU_id2r {T} C {A B}.
Lemma
Source code
[set x | _ in A] = if A == set0 then set0 else [set x].
Proof.
Section set_order.
Import Order.TTheory.
Lemma
Source code
[set | f x = g x] = [set | (f x <= g x)%O] `&` [set | (f x >= g x)%O].
Lemma
Source code
[set | f x != g x ] = [set | (f x < g x)%O] `|` [set | (f x > g x)%O].
End set_order.
Lemma
Source code
[set f x y | in A & in B] = uncurry f @` (A `*` B).
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Proof.
Lemma
Source code
([set` S] == set0) = (S == fset0).
Proof.
Section InitialSegment.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Definition
Source code
Definition
Source code
Definition
OuP : forall [A : Type], set (R * R) -> (A -> R * R -> R) -> (R * R -> R) -> Set OuP is not universe polymorphic Arguments OuP [A]%_type_scope P%_classical_set_scope (f g)%_function_scope OuP is transparent Expands to: Constant mathcomp.analysis_stdlib.showcase.uniform_bigO.OuP Declared in library mathcomp.analysis_stdlib.showcase.uniform_bigO, line 28, characters 11-14
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
End InitialSegment.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
[\/ B == [set true], B == [set false], B == set0 | B == setT].
Proof.
- have -> : B = setT by apply/seteqP; split => // -[] _; exact: set_mem.
by apply/or4P; rewrite eqxx/= !orbT.
- suff : B = [set true] by move=> ->; apply/or4P; rewrite eqxx.
apply/seteqP; split => -[]// /mem_set; last by move=> _; exact: set_mem.
by rewrite (negbTE Bf).
- suff : B = [set false] by move=> ->; apply/or4P; rewrite eqxx/= orbT.
apply/seteqP; split => -[]// /mem_set; last by move=> _; exact: set_mem.
by rewrite (negbTE Bt).
- suff : B = set0 by move=> ->; apply/or4P; rewrite eqxx/= !orbT.
by apply/seteqP; split => -[]//=; rewrite 2!notin_setE in Bt, Bf.
Qed.
Lemma
Source code
[disjoint A & B]%fset = [disjoint [set` A] & [set` B]].
Proof.
Section SetFset.
Context { : choiceType}.
Implicit Types (x y : T) (A B : {fset T}).
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Lemma
Source code
[set` [fset x | in A & P x]%fset] = [set` A] `&` [set` P].
Lemma
Source code
[set` (A `|` B)%fset] = [set` A] `|` [set` B].
Proof.
Lemma
Source code
Lemma
Source code
[set` (A `\` B)%fset] = [set` A] `\` [set` B].
Proof.
Lemma
Source code
Lemma
Source code
Source code
[set` imfset key f p] = f @` [set` p].
Proof.
End SetFset.
Section SetMonoids.
Variable ( : Type).
Import Monoid.
.
Source code
Source code
Source code
.
Source code
Source code
Source code
.
Source code
Source code
Source code
.
Source code
Source code
Source code
.
Source code
Source code
Source code
.
Source code
Source code
Source code
.
Source code
Source code
Source code
.
Source code
Source code
Source code
End SetMonoids.
Section base_image_lemmas.
Context { : Type}.
Implicit Types (A B : set aT) (f : aT -> rT) (Y : set rT).
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Proof.
Lemma
Source code
End base_image_lemmas.
#[global]
Hint Extern 0 ((?f @` _) (?f _)) => solve [apply: imageP; assumption] : core.
#[global] Hint Extern 0 ((?f @` setT) _) => solve [apply: imageT] : core.
Section image_lemmas.
Context { : Type}.
Implicit Types (A B : set aT) (f : aT -> rT) (Y : set rT).
Lemma
Source code
Lemma
Source code
(f a \in [set f x | in A]) = (a \in A).
Lemma
Source code
Proof.
Lemma
Source code
{homo f : / x \in A >-> x \in Y} <-> {homo f : / A x >-> Y x}.
Proof.
Lemma
Source code
Proof.
Lemma
Source code
(f @` A `<=` B) = (A `<=` f @^-1` B).
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Proof.
Lemma
Source code
[\/ A = set0, A = [set a], A = [set b] | A = [set a; b]].
Proof.
by rewrite setUid => /subset_set1[]->; [apply: Or41|apply: Or42].
have [|/nonsubset[x [/[dup] /Aab []// -> Ab _]]] := pselect (A `<=` [set a]).
by move=> /subset_set1[]->; [apply: Or41|apply: Or42].
have [|/nonsubset[y [/[dup] /Aab []// -> Aa _]]] := pselect (A `<=` [set b]).
by move=> /subset_set1[]->; [apply: Or41|apply: Or43].
by apply: Or44; apply/seteqP; split=> // z /= [] ->.
Qed.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
(forall , A x -> f x = f' x) -> f @` A = f' @` A.
Proof.
Lemma
Source code
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
(f @^-1` (Y1 `&` Y2)) !=set0 <-> (f @^-1` Y1 `&` f @^-1` Y2) !=set0.
Proof.
Lemma
Source code
f @^-1` (\bigcup_ ( in P) F i) = \bigcup_( in P) (f @^-1` F i).
Proof.
Lemma
Source code
f @^-1` (\bigcap_ ( in P) F i) = \bigcap_( in P) (f @^-1` F i).
Proof.
Lemma
Source code
{in D, F =1 G} -> D `&` F @^-1` A = D `&` G @^-1` A.
Proof.
Lemma
Source code
i \notin f @` D -> D `&` f @^-1` [set i] = set0.
Proof.
Lemma
Source code
(f \o g) @^-1` A = g @^-1` (f @^-1` A).
Proof.
Lemma
Source code
Proof.
Lemma
Source code
f @^-1` [set g x | in C] = [set | f x \in g @` C].
Proof.
Lemma
Source code
f @^-1` (Y1 `&` Y2) = set0 <-> f @^-1` Y1 `&` f @^-1` Y2 = set0.
Lemma
Source code
Proof.
Lemma
Source code
A `&` range f `<=` set0 -> f @^-1` A = set0.
Proof.
Lemma
Source code
Proof.
by apply: contraPnot => -[t _ <-] /seteqP[+ _] => /(_ t) /=.
Qed.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Proof.
Lemma
Source code
Proof.
End image_lemmas.
Arguments sub_image_setI {aT rT f A B} t _.
Arguments subset_set1 {_ _ _}.
Arguments subset_set2 {_ _ _ _}.
Lemma
Source code
( : set aT) ( : set bT) : A `<=` B -> C `<=` D ->
[set f x y | in A & in C] `<=` [set f x y | in B & in D].
Proof.
Lemma
Source code
g @` (f @` A) = (g \o f) @` A.
Proof.
Definition
OuO : forall [A : Type], set (R * R) -> (A -> R * R -> R^o) -> (R * R -> R^o) -> Prop OuO is not universe polymorphic Arguments OuO [A]%_type_scope P%_classical_set_scope (f g)%_function_scope OuO is transparent Expands to: Constant mathcomp.analysis_stdlib.showcase.uniform_bigO.OuO Declared in library mathcomp.analysis_stdlib.showcase.uniform_bigO, line 80, characters 11-14
Source code
Identity Coercion set_system_to_set : set_system >-> set.
Section set_systems.
Context {} ( : set_system T).
Definition
Source code
Definition
Source code
End set_systems.
Lemma
Source code
setI_closed F -> setI_closed (F `|` [set setT]).
Proof.
Lemma
Source code
setI_closed F -> setI_closed (F `|` [set set0]).
Proof.
Section rectangle.
Context { : Type}.
Implicit Types (X : set_system T1) (Y : set_system T2).
Definition
Source code
[set U `*` V | in X & in Y].
Lemma
Source code
Proof.
Lemma
Source code
setI_closed (rectangle X Y).
Proof.
by rewrite -setXI; apply: rectangle_setX; [exact: IG|exact: IH].
Qed.
End rectangle.
Definition
Source code
( : set_system rT) : set_system aT :=
[set D `&` f @^-1` B | in G].
Lemma
Source code
preimage_set_system D f set0 = set0.
Proof.
Lemma
Source code
{morph preimage_set_system D f : / x `|` y >-> x `|` y}.
Proof.
Lemma
Source code
( : aT -> bT) ( : bT -> rT) ( : set_system rT) :
preimage_set_system D (g \o f) F
= preimage_set_system D f (preimage_set_system setT g F).
Proof.
by exists (g @^-1` B) => //; exists B => //; rewrite setTI.
by exists C => //; rewrite setTI comp_preimage.
Qed.
Lemma
Source code
preimage_set_system D idfun F = setI D @` F.
Proof.
Lemma
Source code
A `<=` B ->
preimage_set_system [set: _] f A `<=` preimage_set_system [set: _] f B.
Proof.
Definition
Source code
( : set_system aT) : set_system rT :=
[set : set rT | G (D `&` f @^-1` B)].
Section cross.
Context { : Type}.
Implicit Types (X : set_system T1) (Y : set_system T2).
Definition
Source code
preimage_set_system [set: T] f X
`|` preimage_set_system [set: T] g Y.
End cross.
Definition
Source code
Notation
Source code
Lemma
Source code
cancel f g -> [set | P (f @` A)] `<=` [set g @` A | in P].
Proof.
Lemma
Source code
cancel g f -> [set g @` A | in P] `<=` [set | P (f @` A)].
Proof.
Lemma
Source code
cancel f g -> cancel g f ->
[set g @` A | in P] = [set | P (f @` A)].
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
some @` (f @^-1` A) = omap f @^-1` (some @` A).
Proof.
by move=> [x|] [a Aa //= [afx]]; exists x; rewrite // -afx.
Qed.
Lemma
Source code
some @` (f @` A) = omap f @` (some @` A).
Proof.
Lemma
Source code
[disjoint some @` A & some @` B] = [disjoint A & B].
Proof.
Lemma
Source code
inl x \in [set inr y | in Y] = false.
Lemma
Source code
inr y \in [set inl x | in X] = false.
Lemma
Source code
inr y \in [set @inr A B y | in Y] = (y \in Y).
Lemma
Source code
inl x \in [set @inl A B x | in X] = (x \in X).
Section bigop_lemmas.
Context { : Type}.
Implicit Types (A : set T) (i : I) (P : set I) (F G : I -> set T).
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
: / [set F i | in P] `<=` [set G i | in P] >-> F `<=` G}.
Proof.
Lemma
Source code
: / [set F i | in P] `<=` [set G i | in P] >-> G `<=` F}.
Proof.
Lemma
Source code
\bigcup_( in P) F i = \bigcup_( in P) G i.
Proof.
move=> A [i ? <-]; exists i => //; rewrite FG.
Qed.
Lemma
Source code
\bigcap_( in P) F i = \bigcap_( in P) G i.
Proof.
move=> A [i ? <-]; exists i => //; rewrite FG.
Qed.
Lemma
Source code
Proof.
[apply PFt; exists i | exact: (PFt _ Pi)].
Qed.
Lemma
Source code
Proof.
Lemma
Source code
f @` (\bigcup_( in P) (F i)) = \bigcup_( in P) f @` F i.
Proof.
by move=> _ [i Pi [x Fix <-]]; exists x => //; exists i.
Qed.
Lemma
Source code
[set~ None] `&` \bigcap_( in P) some @` F i.
Proof.
by move=> _ [x Fx <-]; split=> // i; exists x => //; apply: Fx.
by move=> [x|[//=]] [_ Fx]; exists x => //= i /Fx [y ? [<-]].
Qed.
Lemma
Source code
Proof.
Lemma
Source code
\bigcup_( in P) F i = \bigcup_( in Q) F i.
Proof.
Lemma
Source code
\bigcap_( in P) F i = \bigcap_( in Q) F i.
Proof.
Lemma
Source code
\bigcup_( in P) F i = \bigcup_( in Q) G i.
Proof.
Lemma
Source code
\bigcap_( in P) F i = \bigcap_( in Q) G i.
Proof.
Lemma
Source code
(\bigcup_( in P) F i) `|` (\bigcup_( in P) G i).
Proof.
by [left; exists i|right; exists i|exists i =>//; left|exists i =>//; right].
Qed.
Lemma
Source code
(\bigcap_( in P) F i) `&` (\bigcap_( in P) G i).
Proof.
by apply: eq_bigcupr => *; rewrite setCI.
Qed.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
\bigcap_( in P) (F i `&` A) = \bigcap_( in P) F i `&` A.
Proof.
Lemma
Source code
\bigcap_( in P) (A `&` F i) = A `&` \bigcap_( in P) F i.
Proof.
Lemma
Source code
\bigcup_( in P) (F i `|` A) = \bigcup_( in P) F i `|` A.
Proof.
Lemma
Source code
\bigcup_( in P) (A `|` F i) = A `|` \bigcup_( in P) F i.
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
(\bigcup_( in P) F i !=set0) <-> exists2 , P i & F i !=set0.
Proof.
Qed.
Lemma
Source code
(forall , P i -> F i = set0) -> \bigcup_( in P) F i = set0.
Proof.
Lemma
Source code
(exists2 , P i & F i = set0) -> \bigcap_( in P) F i = set0.
Proof.
Lemma
Source code
(forall , P i -> F i = setT) -> \bigcap_( in P) F i = setT.
Proof.
Lemma
Source code
(exists2 , P i & F i = setT) -> \bigcup_( in P) F i = setT.
Proof.
Lemma
Source code
(\bigcup_( in P) F i = set0) <-> forall , P i -> F i = set0.
Proof.
Lemma
Source code
(\bigcap_( in P) F i = setT) <-> forall , P i -> F i = setT.
Proof.
Lemma
Source code
A `&` \bigcup_( in P) F i = \bigcup_( in P) (A `&` F i).
Proof.
by [exists k |split => //; exists k].
Qed.
Lemma
Source code
\bigcup_( in P) F i `&` A = \bigcup_( in P) (F i `&` A).
Proof.
Lemma
Source code
A `|` \bigcap_( in P) F i = \bigcap_( in P) (A `|` F i).
Proof.
by under eq_bigcupr do rewrite -setCU.
Qed.
Lemma
Source code
\bigcap_( in P) F i `|` A = \bigcap_( in P) (F i `|` A).
Proof.
Lemma
Source code
\bigcup_( in P) F i = \bigcup_ if i \in P then F i else set0.
Proof.
by exists i => //; case: ifPn; rewrite (inE, notin_setE).
by case: ifPn; rewrite (inE, notin_setE) => Pi Fix; exists i.
Qed.
Lemma
Source code
\bigcup_( in P `&` Q) F i = \bigcup_( in P) if i \in Q then F i else set0.
Proof.
by rewrite in_setI; case: (i \in P) (i \in Q) => [] [].
Qed.
Lemma
Source code
\bigcup_( in P `&` Q) F i = \bigcup_( in Q) if i \in P then F i else set0.
Proof.
by rewrite in_setI; case: (i \in P) (i \in Q) => [] [].
Qed.
Lemma
Source code
\bigcap_( in P) F i = \bigcap_ if i \in P then F i else setT.
Proof.
by case: ifP; rewrite ?setCT.
Qed.
Lemma
Source code
\bigcap_( in P `&` Q) F i = \bigcap_( in P) if i \in Q then F i else setT.
Proof.
by rewrite in_setI; case: (i \in P) (i \in Q) => [] [].
Qed.
Lemma
Source code
\bigcap_( in P `&` Q) F i = \bigcap_( in Q) if i \in P then F i else setT.
Proof.
by rewrite in_setI; case: (i \in P) (i \in Q) => [] [].
Qed.
Lemma
Source code
Lemma
Source code
\bigcup_( in X `|` Y) F i = \bigcup_( in X) F i `|` \bigcup_( in Y) F i.
Proof.
by move=> [Xz|Yz]; [left|right]; exists z.
by move=> [[z Xz Fzy]|[z Yz Fxz]]; exists z => //; [left|right].
Qed.
Lemma
Source code
\bigcap_( in X `|` Y) F i = \bigcap_( in X) F i `&` \bigcap_( in Y) F i.
Proof.
Lemma
Source code
\bigcup_( in x |` X) F i = F x `|` \bigcup_( in X) F i.
Proof.
Lemma
Source code
\bigcap_( in x |` X) F i = F x `&` \bigcap_( in X) F i.
Proof.
Lemma
Source code
\bigcup_( in X) F i = F x `|` \bigcup_( in X `\ x) F i.
Proof.
Lemma
Source code
\bigcap_( in X) F i = F x `&` \bigcap_( in X `\ x) F i.
Proof.
Lemma
Source code
(~` (\big[setU/set0]_( <- s | P t) f t)) = \big[setI/setT]_( <- s | P t) ~` f t.
Lemma
Source code
(~` (\big[setI/setT]_( <- s | P t) f t)) =
\big[setU/set0]_( <- s | P t) ~` f t.
#[deprecated(since="mathcomp-analysis 1.17.0", note="use `setD_bigcupr` instead")]
Lemma
Source code
\bigcap_( in P) (A `\` F i) = A `\` \bigcup_( in P) F i.
Proof.
Lemma
Source code
A `\` \bigcup_( in P) F i = \bigcap_( in P) (A `\` F i).
Proof.
Lemma
Source code
A `\` \bigcap_( in P) F i = \bigcup_( in P) (A `\` F i).
Proof.
Lemma
Source code
\bigcup_( in P) F i `\` A = \bigcup_( in P) (F i `\` A).
Proof.
Lemma
Source code
( : set I) ( : I -> set J) :
\bigcup_( in P `*`` Q) F k.1 k.2 = \bigcup_( in P) \bigcup_( in Q i) F i j.
Proof.
Lemma
Source code
\bigcup_( in P `*` Q) F k.1 k.2 = \bigcup_( in P) \bigcup_( in Q) F i j.
Proof.
Lemma
Source code
\bigcup_( in \bigcup_( in P) F n) G i =
\bigcup_( in P) \bigcup_( in F n) G i.
Proof.
by move=> x [n ? [m ?]] h; exists m => //; exists n.
Qed.
Lemma
Source code
\bigcup_( in P) F i =
(\bigcup_( in P `&` Q) F i) `|` (\bigcup_( in P `&` ~` Q) F i).
Proof.
Lemma
Source code
\bigcap_( in P) F i =
(\bigcap_( in P `&` Q) F i) `&` (\bigcap_( in P `&` ~` Q) F i).
Proof.
Lemma
Source code
(forall , P i -> F i `<=` A) -> \bigcup_( in P) F i `<=` A.
Proof.
Lemma
Source code
(forall , P i -> A `<=` F i) -> A `<=` \bigcap_( in P) F i.
Proof.
Lemma
Source code
\bigcup_( in P) F i `<=` \bigcup_( in P) G i.
Proof.
Lemma
Source code
\bigcup_( in P) F i `<=` \bigcup_( in Q) F i.
Proof.
Lemma
Source code
\bigcap_( in P) F i `<=` \bigcap_( in P) G i.
Proof.
End bigop_lemmas.
Arguments bigcup_setD1 {T I} x.
Arguments bigcap_setD1 {T I} x.
Lemma
Source code
F j `\` \bigcup_( in [set | P k /\ k != j]) (F j `\` F i) =
\bigcap_( in P) F i.
Proof.
by have [->//|ij] := eqVneq i j; apply: contra_notP UFt => Fit; exists i.
by split=> [|[k [Pk kj]] [Fjt]]; [|apply]; exact: UFt.
Qed.
Definition
RexpE : forall x : R, exp x = expR x RexpE is not universe polymorphic Arguments RexpE x%_R_scope RexpE is transparent Expands to: Constant mathcomp.analysis_stdlib.Rstruct_topology.RexpE Declared in library mathcomp.analysis_stdlib.Rstruct_topology, line 115, characters 11-16
Source code
Notation
Source code
Definition
Source code
fun => if i == 0 then A else if i == 1 then B else set0.
Arguments bigcup2 T A B n /.
Lemma
Source code
Proof.
by case=> -[_ At|[_ Bt|//]]; [left|right].
Qed.
Lemma
Source code
Proof.
by case=> -[_ At|[_ Bt|//]]; [left|right].
Qed.
Definition
RcosE : forall x : R, Rtrigo_def.cos x = cos x RcosE is not universe polymorphic Arguments RcosE x%_R_scope RcosE is transparent Expands to: Constant mathcomp.analysis_stdlib.Rstruct_topology.RcosE Declared in library mathcomp.analysis_stdlib.Rstruct_topology, line 188, characters 11-16
Source code
fun => if i == 0 then A else if i == 1 then B else setT.
Arguments bigcap2 T A B n /.
Lemma
Source code
Proof.
by apply: eq_bigcupr => -[|[|[]]]//=; rewrite setCT.
Qed.
Lemma
Source code
Proof.
by apply: eq_bigcupr => // -[|[|[]]].
Qed.
Lemma
Source code
\bigcup_ F n = F 0%N `|` \bigcup_( in ~` `I_1) F n.
Proof.
Lemma
Source code
\bigcup_( in f @` P) F x = \bigcup_( in P) F (f x).
Proof.
by case=> i Pi Ffix; exists (f i); [exists i|].
Qed.
Lemma
Source code
\bigcap_( in P) F i = \bigcap_( : P) F (val j).
Proof.
Lemma
Source code
\bigcap_( in f @` P) F x = \bigcap_( in P) F (f x).
Proof.
Lemma
Source code
( : I -> set U) ( : {fset I}) :
\bigcup_( in [set | i \in X]) F i = \big[setU/set0]_( <- X) F i :> set U.
Proof.
by rewrite big_seq_fset0 -subset0 => x [].
rewrite -(fsetD1K xX) set_fsetU set_fset1 big_fsetU1 ?inE ?eqxx//=.
by rewrite bigcup_setU1 IHX// fproperD1.
Qed.
Lemma
Source code
( : I -> set U) ( : {fset I}) :
\bigcap_( in [set | i \in X]) F i = \big[setI/setT]_( <- X) F i :> set U.
Proof.
Lemma
Source code
\bigcup_( in [set | j \in x |` X]%fset) F i =
F x `|` \bigcup_( in [set | j \in X]) F i.
Proof.
Lemma
Source code
\bigcap_( in [set | j \in x |` X]%fset) F i =
F x `&` \bigcap_( in [set | j \in X]) F i.
Proof.
Lemma
Source code
x \in X ->
\bigcup_( in [set | i \in X]%fset) F i =
F x `|` \bigcup_( in [set | i \in X `\ x]%fset) F i.
Proof.
Lemma
Source code
x \in X ->
\bigcap_( in [set | i \in X]%fset) F i =
F x `&` \bigcap_( in [set | i \in X `\ x]%fset) F i.
Proof.
Section bigcup_seq.
Variables ( : choiceType) ( : Type).
Lemma
Source code
\bigcup_( in [set | (x \in s) && P x]) (f t) =
\big[setU/set0]_( <- s | P t) (f t).
Proof.
rewrite big_cons -ih predeqE => u; split=> [[t /andP[]]|].
- rewrite inE => /orP[/eqP ->{t} -> fhu|ts Pt ftu]; first by left.
case: ifPn => Ph; first by right; exists t => //; apply/andP; split.
by exists t => //; apply/andP; split.
- case: ifPn => [Ph [fhu|[t /andP[ts Pt] ftu]]|Ph [t /andP[ts Pt ftu]]].
+ by exists h => //; apply/andP; split => //; rewrite mem_head.
+ by exists t => //; apply/andP; split => //; rewrite inE orbC ts.
+ by exists t => //; apply/andP; split => //; rewrite inE orbC ts.
Qed.
Lemma
Source code
\bigcup_( in [set` s]) (f t) = \big[setU/set0]_( <- s) (f t).
Proof.
Lemma
Source code
\bigcap_( in [set | (x \in s) && P x]) (f t) =
\big[setI/setT]_( <- s | P t) (f t).
Proof.
Lemma
Source code
\bigcap_( in [set` s]) (f t) = \big[setI/setT]_( <- s) (f t).
Proof.
End bigcup_seq.
Section bigop_nat_lemmas.
Context { : Type}.
Implicit Types (A : set T) (F : (set T)^nat).
Lemma
Source code
Proof.
by apply: eq_bigcupl; split=> i; rewrite /= mem_index_iota leq0n.
Qed.
Lemma
Source code
\bigcup_ \big[setU/set0]_( < k.+1) F i =
\bigcup_ \big[setU/set0]_( < k) F i.
Proof.
Lemma
Source code
\bigcup_ \big[setU/set0]_( < k.+1) F i = \bigcup_ F k.
Proof.
by rewrite -bigcup_mkord => -[j _ Fjx]; exists j.
by exists i => //; rewrite big_ord_recr/=; right.
Qed.
Lemma
Source code
\bigcup_( < n.+1) G (inord i) = \big[setU/set0]_( < n.+1) G i.
Proof.
by apply/val_inj => /=; rewrite inordK.
Qed.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
\big[setU/set0]_( < 2) bigcup2 A B i = A `|` B.
Proof.
Lemma
Source code
\big[setI/setT]_( < 2) bigcap2 A B i = A `&` B.
Proof.
Lemma
Source code
\bigcup_ F i = \big[setU/set0]_( < n) F i `|` \bigcup_ F (n + i).
Proof.
apply: eq_bigcupl; split=> // k _.
have [ltkn|lenk] := ltnP k n; [left => //|right].
by exists (k - n); rewrite // subnKC.
Qed.
Lemma
Source code
\bigcap_ F i = \big[setI/setT]_( < n) F i `&` \bigcap_ F (n + i).
Proof.
Lemma
Source code
{homo (fun => \big[setU/set0]_( < n) F i) : / (n <= m) >-> n `<=` m}.
Proof.
by exists i => //=; rewrite (leq_trans im).
Qed.
Lemma
Source code
{homo (fun => \big[setI/setT]_( < n) F i) : / (n <= m) >-> m `<=` n}.
Proof.
Lemma
Source code
{homo (fun => \big[setU/set0]_( < n | P i) F i)
: / (n <= m) >-> n `<=` m}.
Proof.
exact: (@subset_bigsetU (fun => if P i then F i else _)).
Qed.
Lemma
Source code
{homo (fun => \big[setI/setT]_( < n | P i) F i)
: / (n <= m) >-> m `<=` n}.
Proof.
exact: (@subset_bigsetI (fun => if P i then F i else _)).
Qed.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
End bigop_nat_lemmas.
Lemma
Source code
\bigcup_( in [set` P]) f t = \big[setU/set0]_( in P) f t.
Proof.
move=> /mem_set; rewrite (@big_morph _ _ (fun => u \in X) false orb).
- by move=> /= x y; apply/idP/orP; rewrite !inE.
- by rewrite in_set0.
- by rewrite big_has_cond => /hasP[x _ /andP[xP]]; rewrite inE => ufx; exists x.
Qed.
Section smallest.
Context {} ( : set T -> Prop).
Definition
Rtrigo_PIE : PI = pi Rtrigo_PIE is not universe polymorphic Rtrigo_PIE is transparent Expands to: Constant mathcomp.analysis_stdlib.Rstruct_topology.Rtrigo_PIE Declared in library mathcomp.analysis_stdlib.Rstruct_topology, line 189, characters 11-21 RsinE : forall x : R, Rtrigo_def.sin x = sin x RsinE is not universe polymorphic Arguments RsinE x%_R_scope RsinE is transparent Expands to: Constant mathcomp.analysis_stdlib.Rstruct_topology.RsinE Declared in library mathcomp.analysis_stdlib.Rstruct_topology, line 190, characters 11-16
Source code
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
End smallest.
#[global] Hint Resolve sub_gen_smallest : core.
Lemma
Source code
C Y -> smallest C X `<=` Y <-> X `<=` Y.
Proof.
Definition
Source code
forall ( : set_system T), MM `<=` C -> C (\bigcap_( in MM) A).
Section bigcap_closed_smallest.
Context {} ( : set T -> Prop).
Lemma
Source code
Proof.
End bigcap_closed_smallest.
Lemma
Source code
C (smallest C G2) -> G1 `<=` G2 -> smallest C G1 `<=` smallest C G2.
Proof.
Lemma
Source code
(forall , C2 G -> C1 G) ->
forall , smallest C1 G `<=` smallest C2 G.
Proof.
Definition
Source code
Definition
Source code
Definition
Source code
Definition
RealsE : (forall x y : R, (x + y)%R = (x + y)%R) * (forall x y : R, (x - y)%R = (x - y)%R) * (forall x y : R, (x * y)%R = (x * y)%R) * (forall x : R, (- x)%R = (- x)%R) * (forall x : R, (/ x)%R = x^-1%R) * (forall x y : R, (x / y)%R = (x / y)%R) * (forall n : nat, INR n = n%:R%R) * (0%R = 0%R) * (1%R = 1%R) * (forall p : positive, Pos.to_nat p = nat_of_pos p) * (forall p : positive, IZR (Z.pos p) = INR (nat_of_pos p)) * (forall x : R, sqrt x = Num.ExtraDef.sqrtr x) * (forall (x : R) (n : nat), (x ^ n)%R = (x ^+ n)%R) * (forall x y : R, Rmax x y = Num.max x y) * (forall x y : R, Rmin x y = Num.min x y) * (forall x : R, Rabs x = `|x|%R) * (forall x y : R, Rdist x y = `|x - y|%R) * (forall (f : nat -> R) (n : nat), sum_f_R0 f n = (\sum_(0 <= k < n.+1) f k)%R) * (forall n : nat, Factorial.fact n = n`!) RealsE is not universe polymorphic RealsE is transparent Expands to: Constant mathcomp.reals_stdlib.Rstruct.RealsE Declared in library mathcomp.reals_stdlib.Rstruct, line 551, characters 11-17
Source code
forall , f x !=set0 /\ is_subset1 (f x).
Definition
Source code
if pselect (exists : T, `[<P x>]) isn't left exP then x0
else projT1 (sigW exP).
CoInductive
Source code
|
Source code
|
Source code
Lemma
Source code
xget_spec x0 P (xget x0 P) (P (xget x0 P)).
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
P x -> is_subset1 P -> xget x0 P = x.
Proof.
Lemma
Source code
P x -> (forall , P y -> y = x) -> xget x0 P = x.
Proof.
Lemma
Source code
(forall , ~ P x) -> xget x0 P = x0.
Proof.
Definition
Source code
( : aT -> rT -> Prop) := fun => xget (f0 x) (f x).
Lemma
Source code
f a !=set0 -> f a (fun_of_rel f0 f a).
Proof.
Lemma
Source code
( : aT -> rT -> Prop) ( : aT -> rT) :
is_subset1 (f a) -> forall , f a b -> fun_of_rel f0 f a = b.
Proof.
Lemma
Source code
(forall : { | x \in A}, P u) =
(forall : T, forall ( : A u), P (exist _ u (mem_set a))).
Proof.
have Au : A u by rewrite inE in a.
by rewrite (Prop_irrelevance a (mem_set Au)); apply: PA.
Qed.
Lemma
Source code
{in A, forall , P x} <-> forall , A x -> P x.
Proof.
Lemma
Source code
{in A & B, forall , P x y} <-> (forall , A x -> B y -> P x y).
Proof.
Lemma
Source code
{in [set: T1], forall : T1, P1 x : Prop} -> forall : T1, P1 x : Prop.
Proof.
Lemma
Source code
{in [set: T1] & [set: T2], forall ( : T1) ( : T2), P2 x y : Prop} ->
forall ( : T1) ( : T2), P2 x y : Prop.
Proof.
Lemma
Source code
{in [set: T1] & [set: T2] & [set: T3], forall ( : T1) ( : T2) ( : T3), P3 x y z : Prop} ->
forall ( : T1) ( : T2) ( : T3), P3 x y z : Prop.
Proof.
Lemma
Source code
{in [set: T1], bijective f} -> bijective f.
.
Source code
Source code
Source code
Source code
Source code
Source code
.
Source code
Source code
Source code
.
Source code
Source code
Source code
isPointed.Build (forall : T, T' t) (fun=> point).
.
Source code
Source code
Source code
.
Source code
Source code
Source code
.
Source code
Source code
Source code
.
Source code
Source code
Source code
.
Source code
Source code
Source code
isPointed.Build (T * T')%type (point, point).
.
Source code
Source code
Source code
isPointed.Build (n.-tuple T) (nseq n point).
.
Source code
Source code
Source code
isPointed.Build 'M[T]_(m, n) (\matrix_(_, _) point)%R.
.
Source code
Source code
Source code
.
Source code
Source code
Source code
Notation
Source code
Notation
Source code
(at level 0, x name, format "[ 'get' x | E ]", only printing) : form_scope.
Notation
Source code
(at level 0, x name, format "[ 'get' x : T | E ]", only parsing) : form_scope.
Notation
Source code
(at level 0, x name, format "[ 'get' x | E ]") : form_scope.
Section PointedTheory.
Context { : pointedType}.
Lemma
Source code
Lemma
Source code
Lemma
Source code
Proof.
Lemma
Source code
P x -> (forall , P y -> y = x) -> get P = x.
Proof.
Lemma
Source code
Lemma
Source code
End PointedTheory.
.
Source code
Source code
Source code
Source code
Source code
zero : X;
one : X;
zero_one_neq : zero != one;
}.
Source code
Source code
Source code
.
Source code
Source code
Source code
{ of Choice X & isBiPointed X }.
Variant
Source code
Source code
Arguments squash {T} x.
Notation
Source code
Tactic Notation "squash" uconstr(x) := (exists; refine x) ||
match goal with |- $| ?T | => exists; refine [the T of x] end.
Definition
Source code
projT1 (cid (let: squash x := s in @ex_intro T _ x isT)).
Lemma
Source code
Proof.
.
Source code
Source code
Source code
Source code
}.
Source code
Source code
Source code
.
Source code
Source code
Source code
.
Source code
Source code
Source code
Source code
axiom : T -> False
}.
.
Source code
Source code
Source code
Definition
Source code
Definition
Source code
Lemma
Source code
Proof.
Source code
Source code
Source code
Lemma
Source code
.
Source code
Source code
Source code
.
Source code
Source code
Source code
.
Source code
.
Source code
Source code
Source code
Source code
}.
.
Source code
Source code
Source code
Definition
Source code
Lemma
Source code
.
Source code
Source code
Source code
Definition
Source code
Lemma
Source code
Proof.
Source code
Lemma
Source code
Proof.
Source code
Source code
Source code
.
Source code
Source code
Source code
.
Source code
.
Source code
Source code
Source code
.
Source code
Source code
Source code
Definition
set : Type -> Type set is not universe polymorphic Arguments set T%_type_scope set is transparent Expands to: Constant mathcomp.classical.classical_sets.set Declared in library mathcomp.classical.classical_sets, line 282, characters 11-14
Source code
Definition
in_set : forall [T : finType] (pA : pred T) (x : T), (x \in finset (T:=T) pA) = pA x in_set is not universe polymorphic Arguments in_set [T] pA x in_set is opaque Expands to: Constant mathcomp.boot.finset.in_set Declared in library mathcomp.boot.finset, line 225, characters 6-12
Source code
Lemma
Source code
Definition
set_predType : forall T : finType, predType T set_predType is not universe polymorphic Arguments set_predType T set_predType is transparent Expands to: Constant mathcomp.boot.finset.set_predType Declared in library mathcomp.boot.finset, line 216, characters 10-22
Source code
Source code
Source code
forall ( : T -> Type), (forall : emptyType, G (alt s)) -> (forall , G (sort x)) ->
forall , G x.
Notation
Source code
Notation
Source code
Lemma
Source code
Source code
Source code
(forall , (exists : emptyType, alt y = x) + (exists , sort y = x)) ->
quasi_canonical_ sort alt.
Arguments qcanon {T C sort alt} x.
Lemma
Source code
Proof.
set T := Choice.Pack _.
have [/unsquash x|/(_ (squash _)) TF] := pselect $|T|.
right.
pose Tp := isPointed.Build T x.
pose TT : pointedType := HB.pack T Te Tc Tp.
by exists TT.
left.
pose TMixin := Choice_isEmpty.Build T TF.
pose TT : emptyType := HB.pack T Te Tc TMixin.
by exists TT.
Qed.
Lemma
Source code
Proof.
[left; exists (Empty.Pack F) | right; exists T].
Qed.
Lemma
Source code
Proof.
[left; exists (Empty.Pack F) | right; exists T].
Qed.
Section partitions.
Definition
Source code
forall : I, D i -> D j -> F i `&` F j !=set0 -> i = j.
Lemma
Source code
Proof.
Lemma
Source code
(forall , (m < n)%N -> F m `&` F n = set0) -> trivIset setT F.
Proof.
Lemma
Source code
(forall , F n.+1 `<=` ~` (\big[setU/set0]_( < n.+1) F i)) -> trivIset setT F.
Proof.
by case: n h => // n h; apply: (subset_trans (sF n)); exact/subsetC/bigsetU_sup.
Qed.
Lemma
Source code
trivIset D F <-> trivIset setT (fun => if i \in D then F i else set0).
Proof.
Lemma
Source code
Lemma
Source code
trivIset D F <->
forall : I, D i -> D j -> i != j -> F i `&` F j = set0.
Proof.
Lemma
Source code
forall , D m -> n <= m -> \big[setU/set0]_( < n | D i) F i `&` F m = set0.
Proof.
by move=> _; rewrite big_ord0 set0I.
move=> lt_nm; rewrite big_mkcond/= big_ord_recr -big_mkcond/=.
rewrite setIUl IHn 1?ltnW// set0U.
by case: ifPn => [Dn|NDn]; rewrite ?set0I// tA// ltn_eqF.
Qed.
Lemma
Source code
trivIset D F -> trivIset D (fun => G i `&` F i).
Proof.
Qed.
Lemma
Source code
trivIset D F -> trivIset D (fun => F i `&` G i).
Proof.
Qed.
Lemma
Source code
D `<=` D' -> trivIset D' F -> trivIset D F.
Proof.
Lemma
Source code
(A `&` B = set0) = trivIset setT (bigcup2 A B).
Proof.
Lemma
Source code
trivIset D (F \o f) -> trivIset (f @` D) F.
Proof.
Qed.
Lemma
Source code
{in D &, injective f} ->
trivIset D (F \o f) = trivIset (f @` D) F.
Proof.
move=> trivF i j Di Dj Ffij; apply: finj; rewrite ?in_setE//.
by apply: trivF => //=; [exists i| exists j].
Qed.
Lemma
Source code
trivIset D (fun => f @^-1` [set x]).
Proof.
Lemma
Source code
( : aT -> rT) : trivIset D (fun => A `&` f @^-1` [set x]).
Proof.
Lemma
Source code
(forall , trivIset (D n) F) ->
(forall , n != m -> D n i -> D m j -> F i `&` F j !=set0 -> i = j) ->
trivIset (\bigcup_ D k) F.
Proof.
have [nm|nm] := eqVneq n m; first by apply: (tB m) => //; rewrite -nm.
exact: (H _ _ _ _ nm).
Qed.
Lemma
Source code
trivIset setT D ->
trivIset (\bigcup_ D i) F ->
trivIset setT (fun => \bigcup_( in D i) F t).
Proof.
have mn : m = n by apply: h => //; [exists i|exists j|exists t].
rewrite {}mn {m} in Dim Fmt *.
by apply: D0 => //; exists n.
Qed.
Definition
inE : (forall T : finType, (forall (T0 : finType) (pA : pred T0) (x : T0), (x \in finset (T:=T0) pA) = pA x) * (forall x a : T, (x \in [set a]) = (x == a)) * ((forall (T0 : eqType) (x y : T0), (x \in [:: y]) = (x == y)) * (forall (T0 : eqType) (y : T0) (s : seq T0) (x : T0), (x \in y :: s) = (x == y) || (x \in s)) * (forall T0 : Type, (forall (x : T0) (p : pred T0) (amp : applicative_mem_pred (T:=T0) p), in_mem x amp = p x) * (forall (x : T0) (p : pred T0) (msp : manifest_simpl_pred (T:=T0) p), in_mem x (Mem (T:=T0) [eta msp]) = p x) * (forall p : pred T0, [pred x | p x] =1 p)))) * (forall K K' : choiceType, (forall K0 : choiceType, unit -> (forall (x : K0) (xs : seq K0) (a : K0), (a \in Imfset.imfset imfset_key (T:=K0) (K:=K0) (fun x0 : K0 => x0 : K0) (mem (x :: xs))) = (a == x) || (a \in Imfset.imfset imfset_key (T:=K0) (K:=K0) (fun x0 : K0 => x0 : K0) (mem xs))) * (forall a : K0, (a \in Imfset.imfset imfset_key (T:=K0) (K:=K0) (fun x : K0 => x : K0) (mem [::])) = false) * (forall (xs ys : seq K0) (a : K0), (a \in Imfset.imfset imfset_key (T:=K0) (K:=K0) (fun x : K0 => x : K0) (mem (xs ++ ys))) = (a \in Imfset.imfset imfset_key (T:=K0) (K:=K0) (fun x : K0 => x : K0) (mem xs)) || (a \in Imfset.imfset imfset_key (T:=K0) (K:=K0) (fun x : K0 => x : K0) (mem ys))) * (forall (p : finmempred K0) (k : K0), (k \in Imfset.imfset imfset_key (T:=K0) (K:=K0) id p) = in_mem k p)) * (forall (key : unit) (K0 : choiceType) (A : {fset K0}) (p : finmempred (finmap_fset_sub_type__canonical__choice_SubChoice A)) (k : A), (\val k \in Imfset.imfset key (T:=finmap_fset_sub_type__canonical__choice_SubChoice A) (K:=K0) \val p) = in_mem k p) * (forall x : K, (x \in fset0) = false) * (forall a' a : K, (a \in [fset a']%fset) = (a == a')) * (forall (A B : {fset K}) (a : K), (a \in (A `|` B)%fset) = (a \in A) || (a \in B)) * (forall (A B : {fset K}) (a : K), (a \in (A `&` B)%fset) = (a \in A) && (a \in B)) * (forall (A B : {fset K}) (a : K), (a \in (A `\` B)%fset) = (a \notin B) && (a \in A)) * (forall (A : {fset K}) (E : {fset K'}) (u : K * K'), (u \in (A `*` E)%fset) = (u.1 \in A) && (u.2 \in E)) * (forall (a' : K) (A : {fset K}) (a : K), (a \in (a' |` A)%fset) = (a == a') || (a \in A)) * (forall (A : {fset K}) (b a : K), (a \in (A `\ b)%fset) = (a != b) && (a \in A))) * (forall (K V : choiceType) (f : {fmap K -> V}) (v : V), (v \in codomf (V:=V) f) = [exists x, f x == v]) * (forall (K : choiceType) (V : Type) (f g : {fmap K -> V}) (k : K), (k \in domf (f + g)%fset) = (k \in f) || (k \in g)) * (forall (K : choiceType) (V : Type) (f : {fmap K -> V}) (k : K), (k \in f.[~ k]%fmap) = false) * (forall (K : choiceType) (V : Type) (f : {fmap K -> V}) (P : pred K) (k : K), (k \in domf (filterf f P)) = (k \in f) && P k) * (forall (K : choiceType) (V : Type) (f : {fmap K -> option V}) (k : K), (k \in reducef f) = ojoin f.[? k]%fmap) * (forall (K : choiceType) (V : Type) (f : {fmap K -> V}) (A : {fset K}) (k : K), (k \in f.[& A]%fmap) = (k \in A) && (k \in f)) * (forall (K : choiceType) (V : Type) (f : {fmap K -> V}) (A : {fset K}) (k : K), (k \in f.[\ A]%fmap) = (k \notin A) && (k \in f)) * (forall (K : choiceType) (V : Type) (f : {fmap K -> V}) (k' k : K), (k \in f.[~ k']%fmap) = (k != k') && (k \in f)) * (forall (K : choiceType) (V : Type) (f : {fmap K -> V}) (k0 : K) (v0 : V), f.[k0 <- v0]%fmap =i predU1 k0 (mem (domf f))) * (forall (K : choiceType) (V : eqType) (default : K -> V) (x : K), (x \in FinSupp.fs [fsfun x : _ => [fmap]%fmap x]) = false) inE is not universe polymorphic inE is transparent Expands to: Constant mathcomp.finmap.finmap.inE Declared in library mathcomp.finmap.finmap, line 4177, characters 11-14
Source code
Lemma
Source code
Proof.
Lemma
Source code
D `<=` D' -> (forall , D' i -> ~ D i -> F i = set0) ->
cover D F = cover D' F.
Proof.
Lemma
Source code
[set F i | in D] = [set G i | in D] ->
cover D F = cover D G.
Proof.
Definition
mkset : forall {T : Type}, (T -> Prop) -> set T mkset is not universe polymorphic Arguments mkset {T}%_type_scope P%_function_scope _ / The reduction tactics unfold mkset when applied to 3 arguments mkset is transparent Expands to: Constant mathcomp.classical.classical_sets.mkset Declared in library mathcomp.classical.classical_sets, line 297, characters 11-16
Source code
[/\ cover D F = A, trivIset D F & forall , D i -> F i !=set0].
Definition
Notation image f A := [seq f x | x in A] Expands to: Notation mathcomp.boot.fintype.image Declared in library mathcomp.boot.fintype, line 1132, characters 0-44
Source code
[get | D i /\ F i x].
Definition
image2 : forall {TA TB rT : Type}, set TA -> set TB -> (TA -> TB -> rT) -> set rT image2 is not universe polymorphic Arguments image2 {TA TB rT}%_type_scope (A B)%_classical_set_scope f%_function_scope _ / The reduction tactics unfold image2 when applied to 7 arguments image2 is transparent Expands to: Constant mathcomp.classical.classical_sets.image2 Declared in library mathcomp.classical.classical_sets, line 309, characters 11-17
Source code
F (pblock_index D F x).
Notation
Source code
Lemma
Source code
trivIset D F -> trivIsets [set F i | in D].
Proof.
Lemma
Source code
D `<=` D' -> (forall , D' i -> ~ D i -> F i = set0) ->
trivIset D F = trivIset D' F.
Proof.
rewrite propeqE; split=> [DF i j D'i D'j FiFj0|D'F i j Di Dj FiFj0].
have [Di|Di] := pselect (D i); last first.
by move: FiFj0; rewrite (DD'F i) // set0I => /set0P; rewrite eqxx.
have [Dj|Dj] := pselect (D j).
- exact: DF.
- by move: FiFj0; rewrite (DD'F j) // setI0 => /set0P; rewrite eqxx.
by apply D'F => //; apply DD'.
Qed.
Lemma
Source code
[set | (k < size s1)] `<=` D -> perm_eq s1 s2 ->
trivIset D (fun => nth set0 s1 i) -> trivIset D (fun => nth set0 s2 i).
Proof.
apply/trivIsetP => i j Di Dj ij.
rewrite {}s12 {s2}; have [si|si] := ltnP i (size s); last first.
by rewrite (nth_default set0) ?size_map// set0I.
rewrite (nth_map O) //; have [sj|sj] := ltnP j (size s); last first.
by rewrite setIC (nth_default set0) ?size_map// set0I.
have nth_mem k : k < size s -> nth O s k \in iota 0 (size s1).
by move=> ?; rewrite -(perm_mem ss1) mem_nth.
rewrite (nth_map O)// ts1 ?(nth_uniq,(perm_uniq ss1),iota_uniq)//; apply/s1D.
- by have := nth_mem _ si; rewrite mem_iota leq0n add0n.
- by have := nth_mem _ sj; rewrite mem_iota leq0n add0n.
Qed.
End partitions.
#[deprecated(note="Use trivIset_setIl instead")]
Notation
Source code
Section Zorn.
Definition
preimage : forall {T rT : Type}, (T -> rT) -> set rT -> set T preimage is not universe polymorphic Arguments preimage {T rT}%_type_scope f%_function_scope Y%_classical_set_scope t / (where some original arguments have been renamed) The reduction tactics unfold preimage when applied to 5 arguments preimage is transparent Expands to: Constant mathcomp.classical.classical_sets.preimage Declared in library mathcomp.classical.classical_sets, line 319, characters 11-19
Source code
forall , A s -> A t -> R s t \/ R t s.
Let
Source code
(forall , total_on A R -> exists , forall , A s -> R s t) ->
wo_chain R P -> exists2 , z \in predT & upper_bound R P z.
Proof.
suff : total_on P R by move=> /Atot[t ARt]; exists t.
move=> s t Ps Pt; have [| |] := RP [predU (pred1 s) & (pred1 t)].
- by move=> x; rewrite !inE => /orP[/eqP ->{x}|/eqP ->{x}].
- by exists s; rewrite !inE eqxx.
- move=> x [[]]; rewrite !inE => /orP[/eqP ->{x}|/eqP ->{x}].
+ by move=> /(_ t); rewrite !inE eqxx orbT => /(_ isT) Rst _; left.
+ by move=> /(_ s); rewrite !inE eqxx => /(_ isT) Rts _; right.
Qed.
Lemma
Source code
(forall , R t t) -> (forall , R r s -> R s t -> R r t) ->
(forall , R s t -> R t s -> s = t) ->
(forall : set T, total_on A R -> exists , forall , A s -> R s t) ->
exists , forall , R t s -> s = t.
Proof.
have [//| |P _ RP|] := @Zorn's_lemma _ R predT _.
- by move=> ? ? ? _ _ _; exact: Rtrans.
- exact: total_on_wo_chain.
by move=> x _ Rx; exists x => s Rxs; apply: (Ranti _ _ _ Rxs) => //; exact: Rx.
Qed.
Definition
Notation setT := [set: _] Expands to: Notation mathcomp.boot.finset.setT Declared in library mathcomp.boot.finset, line 256, characters 0-41
Source code
forall , R t s -> R s t.
Lemma
Source code
(forall , R t t) -> (forall , R r s -> R s t -> R r t) ->
(forall , total_on A R -> exists , forall , A s -> R s t) ->
exists , premaximal R t.
Proof.
have [//| | |z _ Hz] := @Zorn's_lemma T R predT.
- by move=> ? ? ? _ _ _; exact: Rtrans.
- by move=> A _ RA; exact: total_on_wo_chain.
by exists z => s Rzs; exact: Hz.
Qed.
End Zorn.
Section Zorn_subset.
Variables ( : Type) ( : set_system T).
Lemma
Source code
(forall : set_system T, F `<=` P -> total_on F subset ->
P (\bigcup_( in F) X)) ->
exists , P A /\ forall , A `<` B -> ~ P B.
Proof.
have {}totR F ( : total_on F R) : exists , forall , F sA -> R sA sB.
have FP : [set val x | in F] `<=` P.
by move=> _ [X FX <-]; apply: set_mem; exact/valP.
have totF : total_on [set val x | in F] subset.
move=> _ _ [X FX <-] [Y FY <-].
by have [/asboolP|/asboolP] := FR _ _ FX FY; [left|right].
exists (SigSub (mem_set (totP _ FP totF))) => A FA.
exact/asboolP/(bigcup_sup (imageP val _)).
have [| | |sA sAmax] := Zorn _ _ _ totR.
- by move=> ?; apply/asboolP; exact: subset_refl.
- by move=> ? ? ? /asboolP ? /asboolP st; apply/asboolP; exact: subset_trans st.
- by move=> [A PA] [B PB] /asboolP AB /asboolP BA; exact/eq_exist/seteqP.
- exists (val sA); case: sA => A PA /= in sAmax *; split; first exact: set_mem.
move=> B AB PB.
have : R (exist (fun : T -> Prop => x \in P) A PA) (SigSub (mem_set PB)).
by apply/asboolP; exact: properW.
move=> /(sAmax (SigSub (mem_set PB)))[BA].
by move: AB; rewrite BA; exact: properxx.
Qed.
End Zorn_subset.
Definition
set0 : forall {T : finType}, {set T} set0 is not universe polymorphic Arguments set0 {T} set0 is transparent Expands to: Constant mathcomp.boot.finset.set0 Declared in library mathcomp.boot.finset, line 233, characters 11-15
Source code
[/\ A `<=` B, trivIset A F & forall ,
A `<` C -> C `<=` B -> ~ trivIset C F ].
Section maximal_disjoint_subcollection.
Context { : Type}.
Variables ( : I -> set T) ( : set I).
Let := fun => X `<=` D /\ trivIset X B.
Let
Source code
A `<=` P -> total_on A (fun => x `<=` y) -> P (\bigcup_( in A) x).
Proof.
move=> i j [x Ax] xi [y Ay] yj ij; have [xy|yx] := h _ _ Ax Ay.
- by apply: (AP _ Ay).2 => //; exact: xy.
- by apply: (AP _ Ax).2 => //; exact: yx.
Qed.
Lemma
Source code
{ | maximal_disjoint_subcollection B E D }.
Proof.
by exists E; split => // F /maxE + FD; exact: contra_not.
Qed.
End maximal_disjoint_subcollection.
Section UpperLowerTheory.
Import Order.TTheory.
Variables ( : Order.disp_t) ( : porderType d).
Implicit Types (A : set T) (x y z : T).
Definition
setI : forall [T : finType], {set T} -> {set T} -> {set T} setI is not universe polymorphic Arguments setI [T] (A B)%_set_scope setI is transparent Expands to: Constant mathcomp.boot.finset.setI Declared in library mathcomp.boot.finset, line 267, characters 11-15
Source code
Definition
setU : forall [T : finType], {set T} -> {set T} -> {set T} setU is not universe polymorphic Arguments setU [T] (A B)%_set_scope setU is transparent Expands to: Constant mathcomp.boot.finset.setU Declared in library mathcomp.boot.finset, line 266, characters 11-15
Source code
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Definition
nonempty : forall {T : Type}, {pred T} -> Prop nonempty is not universe polymorphic Arguments nonempty {T}%_type_scope A nonempty is transparent Expands to: Constant mathcomp.classical.wochoice.nonempty Declared in library mathcomp.classical.wochoice, line 41, characters 11-19
Source code
Definition
setC : forall [T : finType], {set T} -> {set T} setC is not universe polymorphic Arguments setC [T] A%_set_scope setC is transparent Expands to: Constant mathcomp.boot.finset.setC Declared in library mathcomp.boot.finset, line 268, characters 11-15
Source code
Definition
setD : forall [T : finType], {set T} -> {set T} -> {set T} setD is not universe polymorphic Arguments setD [T] (A B)%_set_scope setD is transparent Expands to: Constant mathcomp.boot.finset.setD Declared in library mathcomp.boot.finset, line 269, characters 11-15
Source code
Definition
setX : forall [fT1 fT2 : finType], {set fT1} -> {set fT2} -> {set Datatypes_prod__canonical__fintype_Finite fT1 fT2} setX is not universe polymorphic Arguments setX [fT1 fT2] (A1 A2)%_set_scope setX is transparent Expands to: Constant mathcomp.boot.finset.setX Declared in library mathcomp.boot.finset, line 1114, characters 11-15
Source code
Definition
fst_set : forall [T1 T2 : Type], set (T1 * T2) -> set T1 fst_set is not universe polymorphic Arguments fst_set [T1 T2]%_type_scope A%_classical_set_scope _ / The reduction tactics unfold fst_set when applied to 4 arguments fst_set is transparent Expands to: Constant mathcomp.classical.classical_sets.fst_set Declared in library mathcomp.classical.classical_sets, line 330, characters 11-18
Source code
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Definition
snd_set : forall [T1 T2 : Type], set (T1 * T2) -> set T2 snd_set is not universe polymorphic Arguments snd_set [T1 T2]%_type_scope A%_classical_set_scope _ / The reduction tactics unfold snd_set when applied to 4 arguments snd_set is transparent Expands to: Constant mathcomp.classical.classical_sets.snd_set Declared in library mathcomp.classical.classical_sets, line 331, characters 11-18
Source code
Definition
setXR : forall [T1 T2 : Type], set T1 -> (T1 -> set T2) -> set (T1 * T2) setXR is not universe polymorphic Arguments setXR [T1 T2]%_type_scope A1%_classical_set_scope A2%_function_scope _ / The reduction tactics unfold setXR when applied to 5 arguments setXR is transparent Expands to: Constant mathcomp.classical.classical_sets.setXR Declared in library mathcomp.classical.classical_sets, line 332, characters 11-16
Source code
Lemma
Source code
Proof.
by split; [rewrite ub_set1|exact: lb_ub_refl].
by rewrite ub_set1 => xy /lb_ub_set1 yx; apply/eqP; rewrite eq_le xy yx.
Qed.
Lemma
Source code
Proof.
Definition
setXL : forall [T1 T2 : Type], (T2 -> set T1) -> set T2 -> set (T1 * T2) setXL is not universe polymorphic Arguments setXL [T1 T2]%_type_scope A1%_function_scope A2%_classical_set_scope _ / The reduction tactics unfold setXL when applied to 5 arguments setXL is transparent Expands to: Constant mathcomp.classical.classical_sets.setXL Declared in library mathcomp.classical.classical_sets, line 334, characters 11-16
Source code
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Proof.
Definition
bigcap : forall [T I : Type], set I -> (I -> set T) -> set T bigcap is not universe polymorphic Arguments bigcap [T I]%_type_scope P%_classical_set_scope F%_function_scope _ bigcap is transparent Expands to: Constant mathcomp.classical.classical_sets.bigcap Declared in library mathcomp.classical.classical_sets, line 340, characters 11-17
Source code
Lemma
Source code
Proof.
by split; [rewrite lb_set1|apply ub_lb_refl].
by rewrite lb_set1 => xy /ub_lb_set1 yx; apply/eqP; rewrite eq_le xy yx.
Qed.
Lemma
Source code
Proof.
Definition
bigcup : forall [T I : Type], set I -> (I -> set T) -> set T bigcup is not universe polymorphic Arguments bigcup [T I]%_type_scope P%_classical_set_scope F%_function_scope _ bigcup is transparent Expands to: Constant mathcomp.classical.classical_sets.bigcup Declared in library mathcomp.classical.classical_sets, line 342, characters 11-17
Source code
End UpperLowerTheory.
Section UpperLowerOrderTheory.
Import Order.TTheory.
Variables ( : Order.disp_t) ( : orderType d).
Implicit Types (A : set T) (x y z : T).
Lemma
Source code
supremums A !=set0 -> A t -> (supremum x0 A >= t)%O.
Proof.
Lemma
Source code
infimums A !=set0 -> A t -> (infimum x0 A <= t)%O.
Proof.
End UpperLowerOrderTheory.
Lemma
Source code
Proof.
case: (pselect (ubound A n)) => [/ih //|An {ih}] An1.
exists n.+1; split => // m Am; case/existsNP : An => k /not_implyP[Ak /negP].
rewrite -Order.TotalTheory.ltNge => kn.
by rewrite (Order.POrderTheory.le_trans _ (Am _ Ak)).
Qed.
Definition
disj_set : forall {T : Type}, set T -> set T -> bool disj_set is not universe polymorphic Arguments disj_set {T}%_type_scope (A B)%_classical_set_scope disj_set is transparent Expands to: Constant mathcomp.classical.classical_sets.disj_set Declared in library mathcomp.classical.classical_sets, line 351, characters 11-19
Source code
forall , F A -> G B -> A `&` B !=set0.
Notation
Source code
Section meets.
Lemma
Source code
Proof.
Lemma
Source code
F `<=` F' -> G `<=` G' -> F' `#` G' -> F `#` G.
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
End meets.
Fact
Source code
Proof.
Module
Source code
Module
Source code
Section SetOrder.
Context { : Type}.
Implicit Types A B : set T.
Lemma
Source code
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Source code
.
Source code
Source code
Source code
Source code
.
Source code
Source code
Order.isMeetJoinDistrLattice.Build set_display (set T)
le_def lt_def (@setIC _) (@setUC _) (@setIA _) (@setUA _)
joinKI meetKU (@setIUl _) setIid.
Lemma
Source code
Lemma
Source code
Proof.
Source code
.
Source code
Source code
Source code
SetOrder_sub0set.
Source code
.
Source code
Source code
Source code
SetOrder_setTsub.
Lemma
Source code
Lemma
Source code
Source code
.
Source code
Source code
Source code
set_display (set T) subKI joinIB.
Source code
.
Source code
Source code
Source code
set_display (set T) (fun => esym (setTD x)).
End SetOrder.
Module
Source code
End Internal.
Module
Source code
Export Internal.Exports.
Section exports.
Context { : Type}.
Implicit Types A B : set T.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
End exports.
End Exports.
End SetOrder.
Export SetOrder.Exports.
Section seqD.
Variable : Type.
Implicit Types F : (set T)^nat.
Definition
set_type : finType -> predArgType set_type is not universe polymorphic Arguments set_type T Expands to: Inductive mathcomp.boot.finset.set_type Declared in library mathcomp.boot.finset, line 136, characters 10-18
Source code
Lemma
Source code
Proof.
Definition
SigSub : forall {T : Type} {pT : predType T} {P : pT} [x : T], x \in P -> {x0 : T | x0 \in P} SigSub is not universe polymorphic Arguments SigSub {T}%_type_scope {pT P} [x] _ SigSub is transparent Expands to: Constant mathcomp.classical.classical_sets.SigSub Declared in library mathcomp.classical.classical_sets, line 488, characters 11-17
Source code
Lemma
Source code
Proof.
rewrite /seqDU big_ord_recr /= setUC; congr (_ `\` _); apply/setUidPl.
by rewrite -bigcup_mkord => + [k /= kn]; exact/subsetPset/ndF/ltnW.
Qed.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
by rewrite setDE => -[? _]; exists n.
have [UFnt|UFnt] := pselect ((\big[setU/set0]_( < n) F k) t); last by exists n.
suff [m [Fmt FNmt]] : exists , F m t /\ forall , (k < m)%N -> ~ F k t.
by exists m => //; split => //; rewrite -bigcup_mkord => -[k kj]; exact: FNmt.
move: UFnt; rewrite -bigcup_mkord => -[/= k _ Fkt] {Fnt n}.
have [n kn] := ubnP k; elim: n => // n ih in t k Fkt kn *.
case: k => [|k] in Fkt kn *; first by exists O.
have [?|] := pselect (forall , (m <= k)%N -> ~ F m t); first by exists k.+1.
move=> /existsNP[i] /not_implyP[ik] /contrapT Fit; apply: (ih t i) => //.
by rewrite (leq_ltn_trans ik).
Qed.
End seqD.
Arguments trivIset_seqDU {T} F.
#[global] Hint Resolve trivIset_seqDU : core.
Section product.
Variables ( : Type).
Implicit Type A B : set (T1 * T2).
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
End product.
Section section.
Variables ( : Type).
Implicit Types (A : set (T1 * T2)) (x : T1) (y : T2).
Definition
setC_inj : forall [T : finType], injective (setC (T:=T)) setC_inj is not universe polymorphic Expanded type for implicit arguments setC_inj : forall [T : finType] [x1 x2 : {set T}], ~: x1 = ~: x2 -> x1 = x2 Arguments setC_inj [T x1 x2] _ setC_inj is opaque Expands to: Constant mathcomp.boot.finset.setC_inj Declared in library mathcomp.boot.finset, line 617, characters 6-14
Source code
Definition
subsetCW : forall {T : Type} {A B : set T}, A = B -> (B `<=` A)%classic subsetCW is not universe polymorphic Expanded type for implicit arguments subsetCW : forall {T : Type} {A B : set T}, A = B -> forall [t : T], B t -> A t Arguments subsetCW {T}%_type_scope {A B}%_classical_set_scope _ [t] _ subsetCW is transparent Expands to: Constant mathcomp.classical.classical_sets.subsetCW Declared in library mathcomp.classical.classical_sets, line 807, characters 11-19
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
by rewrite /xsection/= inE => -[] /=; rewrite notin_setE in xX1.
Qed.
Lemma
Source code
Proof.
by rewrite /ysection/= inE => -[_]; rewrite notin_setE in yX2.
Qed.
Lemma
Source code
xsection (\bigcup_ F n) x = \bigcup_ xsection (F n) x.
Proof.
Lemma
Source code
ysection (\bigcup_ F n) y = \bigcup_ ysection (F n) y.
Proof.
Lemma
Source code
trivIset setT (fun => xsection (F n) x).
Proof.
Lemma
Source code
trivIset setT (fun => ysection (F n) y).
Proof.
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
End section.
Declare Scope relation_scope.
Delimit Scope relation_scope with relation.
Notation
Source code
([set | exists2 , A (xy.1, z) & B (z, xy.2)]) : relation_scope.
Notation
Source code
Local Open Scope relation_scope.
Lemma
Source code
A `<=` C -> B `<=` D -> A \; B `<=` C \; D.
Proof.
Qed.
Lemma
Source code
E \; range (fun => (x, x)) = E.
Proof.
by exists x => //; exists x.
Qed.
Lemma
Source code
Proof.
Definition
ordII : forall {n : nat}, 'I_n -> `I_n ordII is not universe polymorphic Arguments ordII {n}%_nat_scope k ordII is transparent Expands to: Constant mathcomp.classical.classical_sets.ordII Declared in library mathcomp.classical.classical_sets, line 1289, characters 11-16
Source code
Lemma
Source code
Proof.
Local Close Scope relation_scope.