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.

# Set Theory This file develops a basic theory of sets and types equipped with a canonical inhabitant (pointed types). Thanks to this basic set theory, we proved Zorn's Lemma, which states that any ordered set such that every totally ordered subset admits an upper bound has a maximal element. We also proved an analogous version for preorders, where maximal is replaced with premaximal: $t$ is premaximal if whenever $t < s$ we also have $s < t$. About the naming conventions in this file: - use T, T', T1, T2, etc., aT (domain type), rT (return type) for names of variables in Type (or choiceType/pointedType/porderType) + use the same suffix or prefix for the sets as their containing type (e.g., A1 in T1, etc.) + as a consequence functions are rather of type aT -> rT - use I, J when the type corresponds to an index - sets are named A, B, C, D, etc., or Y when it is ostensibly an image set (i.e., of type set rT) - indexed sets are rather named F Examples of notations: | Rocq notatons | | Meaning | |-----------------------------:|---|:------------------------------------ | set0 |==| $\emptyset$ | [set: A] |==| the full set of elements of type A | `` `\|` `` |==| $\cup$ | `` `&` `` |==| $\cap$ | `` `\` `` |==| set difference | `` `+` `` |==| symmetric difference | `` ~` `` |==| set complement | `` `<=` `` |==| $\subseteq$ | `` f @` A `` |==| image by f of A | `` f @^-1` A `` |==| preimage by f of A | [set x] |==| the singleton set $\{x\}$ | [set~ x] |==| the complement of $\{x\}$ | [set E \| x in P] |==| the set of E with x ranging in P | range f |==| image by f of the full set | \big[setU/set0]_(i <- s \| P i) f i |==| finite union | \bigcup_(k in P) F k |==| arbitrary union | \bigcap_(k in P) F k |==| arbitrary intersection | trivIset D F |==| F is a sequence of pairwise disjoint | | | sets indexed over the domain D Detailed documentation: ## Sets ``` set T == type of sets on T (x \in P) == boolean membership predicate from ssrbool for set P, available thanks to a canonical predType T structure on sets on T [set x : T | P] == set of points x : T such that P holds [set x | P] == same as before with T left implicit [set E | x in A] == set defined by the expression E for x in set A [set E | x in A & y in B] == same as before for E depending on 2 variables x and y in sets A and B setT == full set set0 == empty set range f == the range of f, i.e., [set f x | x in setT] [set a] == set containing only a [set a : T] == same as before with the type of a made explicit A `|` B == union of A and B a |` A == A extended with a [set a1; a2; ..; an] == set containing only the n elements ai A `&` B == intersection of A and B A `*` B == product of A and B, i.e., set of pairs (a,b) such that A a and B b A.`1 == set of points a such that there exists b so that A (a, b) A.`2 == set of points a such that there exists b so that A (b, a) ~` A == complement of A [set~ a] == complement of [set a] A `\` B == complement of B in A A `\ a == A deprived of a `I_n := [set k | k < n] \bigcup_(i in P) F == union of the elements of the family F whose index satisfies P \bigcup_(i : T) F == union of the family F indexed on T \bigcup_(i < n) F := \bigcup_(i in `I_n) F \bigcup_(i >= n) F := \bigcup_(i in [set i | i >= n]) F \bigcup_i F == same as before with T left implicit \bigcap_(i in P) F == intersection of the elements of the family F whose index satisfies P \bigcap_(i : T) F == union of the family F indexed on T \bigcap_(i < n) F := \bigcap_(i in `I_n) F \bigcap_(i >= n) F := \bigcap_(i in [set i | i >= n]) F \bigcap_i F == same as before with T left implicit ``` ### About sets of sets ``` set_system T := set (set T) setI_closed G == the set of sets G is closed under finite intersection setU_closed G == the set of sets G is closed under finite union rectangle X Y := [set U `*` V | U in X & V in Y] preimage_set_system D f G == set system of the preimages by f of sets in G image_set_system D f G == set system of the sets with a preimage by f in G cross f g X Y := preimage_set_system setT f X `|` preimage_set_system setT g Y X `x` Y := cross fst snd X Y ``` ``A `+ B`` : $\{ x + y | x\in A, x\in B\}$ ``` R ^nat == notation for the type of sequences, i.e., functions of type nat -> R bigcup2 A B == the sequence A, B, 0, 0, ... bigcup2 A B == the sequence A, B, T, T, ... smallest C G := \bigcap_(A in [set M | C M /\ G `<=` M]) A A `<=` B <-> A is included in B A `<` B := A `<=` B /\ ~ (B `<=` A) A `<=>` B <-> double inclusion A `<=` B and B `<=` A f @^-1` A == preimage of A by f f @` A == image of A by f This is a notation for `image A f` A !=set0 := exists x, A x [set` p] == a classical set corresponding to the predType p `[a, b] := [set` `[a, b]], i.e., a classical set corresponding to the interval `[a, b] `]a, b] := [set` `]a, b]] `[a, b[ := [set` `[a, b[] `]a, b[ := [set` `]a, b[] `]-oo, b] := [set` `]-oo, b]] `]-oo, b[ := [set` `]-oo, b[] `[a, +oo[ := [set` `[a, +oo[] `]a, +oo[ := [set` `]a, +oo[] `]-oo, +oo[ := [set` `]-oo, +oo[] is_subset1 A <-> A contains only 1 element is_fun f <-> for each a, f a contains only 1 element is_total f <-> for each a, f a is non empty is_totalfun f <-> conjunction of is_fun and is_total xget x0 P == point x in P if it exists, x0 otherwise; P must be a set on a choiceType fun_of_rel f0 f == function that maps x to an element of f x if there is one, to f0 x otherwise F `#` G <-> intersections beween elements of F an G are all non empty seqDU F := sequence F_0, F_1\F_0, F_2\(F_0 U F_1),... seqD F == the sequence F_0, F_1 \ F_0, F_2 \ F_1,... ``` ## Pointed types ``` pointedType == interface type for types equipped with a canonical inhabitant The HB class is Pointed. point == canonical inhabitant of a pointedType get P == point x in P if it exists, point otherwise P must be a set on a pointedType. ``` ## squash/unsquash ``` $| T | == the type `T : Type` is inhabited $| T | has type `Prop`. $| T | is a notation for `squashed T`. squash x == object of type $| T | (with x : T) unsquash s == extract an inhabitant of type `T` (with s : $| T |) ``` Tactic: - squash x: solves a goal $| T | by instantiating with x or [the T of x] ## Pairwise-disjoint sets ``` trivIset D F == the sets F i, where i ranges over D : set I, are pairwise-disjoint cover D F := \bigcup_(i in D) F i partition D F A == the non-empty sets F i,where i ranges over D : set I, form a partition of A pblock_index D F x == index i such that i \in D and x \in F i pblock D F x := F (pblock_index D F x) maximal_disjoint_subcollection F A B == A is a maximal (for inclusion) disjoint subcollection of the collection B of elements in F : I -> set T ``` ## Upper and lower bounds ``` ubound A == the set of upper bounds of the set A lbound A == the set of lower bounds of the set A ``` Predicates to express existence conditions of supremum and infimum of sets of real numbers: ``` has_ubound A := ubound A != set0 has_sup A := A != set0 /\ has_ubound A has_lbound A := lbound A != set0 has_inf A := A != set0 /\ has_lbound A isLub A m := m is a least upper bound of the set A supremums A := set of supremums of the set A supremum x0 A == supremum of A or x0 if A is empty infimums A := set of infimums of the set A infimum x0 A == infimum of A or x0 if A is empty F `#` G := the classes of sets F and G intersect ``` ## Sections ``` xsection A x == with A : set (T1 * T2) and x : T1 is the x-section of A ysection A y == with A : set (T1 * T2) and y : T2 is the y-section of A ``` ## Relations Notations for composition and inverse (scope: relation_scope): ``` B \; A == [set x | exists z, A (x.1, z) & B (z, x.2)] A^-1 == [set xy | A (xy.2, xy.1)] ```

Unset SsrOldRewriteGoalsOrder.  
Set Implicit Arguments.
Unset Strict Implicit.
Unset Printing Implicit Defensive.

Declare Scope classical_set_scope.
Declare Scope relation_scope.
Delimit Scope relation_scope with relation.

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).
Reserved Notation "A `+ B" (at level 50).

Definition set
Used by
  • mathcomp.analysis.esum
  • mathcomp.analysis.probability_theory.beta_distribution
  • mathcomp.analysis.probability_theory.independence
  • mathcomp.analysis.probability_theory.poisson_distribution
  • mathcomp.analysis.probability_theory.uniform_distribution
  • mathcomp.analysis.probability_theory.random_variable
  • mathcomp.analysis.probability_theory.binomial_distribution
  • mathcomp.analysis.probability_theory.normal_distribution
  • mathcomp.analysis.probability_theory.bernoulli_distribution
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.real_measure.lebesgue_stieltjes_measure
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.measure_theory.signed_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.probability_measure
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.measure_theory.counting_measure
  • mathcomp.analysis.measure_theory.measure_negligible
  • mathcomp.analysis.measure_theory.measurable_function
  • mathcomp.analysis.measure_theory.dirac_measure
  • mathcomp.analysis.hoelder
  • mathcomp.analysis.realfun
  • mathcomp.analysis.cantor
  • mathcomp.analysis.kernel
  • mathcomp.analysis.pi_irrational
  • mathcomp.analysis.ereal
  • mathcomp.analysis.convex
  • mathcomp.analysis.borel_hierarchy
  • mathcomp.analysis.topology_theory.pseudometric_structure
  • mathcomp.analysis.topology_theory.order_topology
  • mathcomp.analysis.topology_theory.metric_structure
  • mathcomp.analysis.topology_theory.uniform_structure
  • mathcomp.analysis.topology_theory.topology_structure
  • mathcomp.analysis.topology_theory.connected
  • mathcomp.analysis.topology_theory.edist
  • mathcomp.analysis.topology_theory.product_topology
  • mathcomp.analysis.topology_theory.supremum_topology
  • mathcomp.analysis.topology_theory.nat_topology
  • mathcomp.analysis.topology_theory.discrete_topology
  • mathcomp.analysis.topology_theory.subtype_topology
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.initial_topology
  • mathcomp.analysis.topology_theory.matrix_topology
  • mathcomp.analysis.topology_theory.one_point_compactification
  • mathcomp.analysis.topology_theory.sigT_topology
  • mathcomp.analysis.topology_theory.num_topology
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.topology_theory.compact
  • mathcomp.analysis.homotopy_theory.wedge_sigT
  • mathcomp.analysis.derive
  • mathcomp.analysis.numfun
  • mathcomp.analysis.sequences
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg
  • mathcomp.analysis.lebesgue_integral_theory.giry
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_Rintegral
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_monotone_convergence
  • mathcomp.analysis.lebesgue_integral_theory.simple_functions
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_definition
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_under
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_fubini
  • mathcomp.analysis.lebesgue_integral_theory.counting_lebesgue
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_dominated_convergence
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_differentiation
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integrable
  • mathcomp.analysis.lebesgue_integral_theory.measurable_fun_approximation
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule
  • mathcomp.analysis.normedtype_theory.tvs
  • mathcomp.analysis.normedtype_theory.ereal_normedtype
  • mathcomp.analysis.normedtype_theory.urysohn
  • mathcomp.analysis.normedtype_theory.vitali_lemma
  • mathcomp.analysis.normedtype_theory.matrix_normedtype
  • mathcomp.analysis.normedtype_theory.num_normedtype
  • mathcomp.analysis.normedtype_theory.normed_module
  • mathcomp.analysis_stdlib.showcase.uniform_bigO
  • mathcomp.reals.real_interval
  • mathcomp.reals.reals
  • mathcomp.classical.set_interval
  • mathcomp.classical.functions
  • mathcomp.classical.fsbigop
  • mathcomp.classical.cardinality
  • mathcomp.classical.filter
  • mathcomp.experimental_reals.realsum
  • mathcomp.reals_stdlib.Rstruct

Source code
TSource code := T -> Prop.
Definition in_set
Source code
TSource code (ASource code : set T) : pred T := (fun xSource code => `[<A x>]).
Canonical set_predType

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 288, characters 11-14


Source code
TSource code := @PredType T (set T) (@in_set T).

Lemma in_setEUsed by
  • mathcomp.analysis.probability_theory.random_variable
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.measure_theory.probability_measure
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.num_topology
  • mathcomp.analysis.numfun
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg
  • mathcomp.analysis.normedtype_theory.num_normedtype
  • mathcomp.classical.functions
  • mathcomp.classical.cardinality
  • mathcomp.experimental_reals.realsum

Source code
TSource code (ASource code : set T) xSource code : (x \in A) = A x :> Prop.
Proof.
by rewrite propeqE; split => [] /asboolP. Qed.

Definition inE

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


Used by
  • mathcomp.analysis.esum
  • mathcomp.analysis.probability_theory.exponential_distribution
  • mathcomp.analysis.probability_theory.beta_distribution
  • mathcomp.analysis.probability_theory.independence
  • mathcomp.analysis.probability_theory.uniform_distribution
  • mathcomp.analysis.probability_theory.random_variable
  • mathcomp.analysis.probability_theory.normal_distribution
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.real_measure.lebesgue_stieltjes_measure
  • mathcomp.analysis.functional_analysis.hahn_banach_theorem
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.measure_theory.signed_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.measure_theory.measure_negligible
  • mathcomp.analysis.measure_theory.dirac_measure
  • mathcomp.analysis.hoelder
  • mathcomp.analysis.realfun
  • mathcomp.analysis.ftc
  • mathcomp.analysis.kernel
  • mathcomp.analysis.ereal
  • mathcomp.analysis.borel_hierarchy
  • mathcomp.analysis.topology_theory.order_topology
  • mathcomp.analysis.topology_theory.topology_structure
  • mathcomp.analysis.topology_theory.supremum_topology
  • mathcomp.analysis.topology_theory.subtype_topology
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.matrix_topology
  • mathcomp.analysis.topology_theory.num_topology
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.topology_theory.compact
  • mathcomp.analysis.derive
  • mathcomp.analysis.numfun
  • mathcomp.analysis.showcase.pnt
  • mathcomp.analysis.sequences
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg
  • mathcomp.analysis.lebesgue_integral_theory.giry
  • mathcomp.analysis.lebesgue_integral_theory.simple_functions
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_definition
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_under
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_fubini
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_dominated_convergence
  • mathcomp.analysis.lebesgue_integral_theory.radon_nikodym
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_differentiation
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integrable
  • mathcomp.analysis.lebesgue_integral_theory.measurable_fun_approximation
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule
  • mathcomp.analysis.normedtype_theory.tvs
  • mathcomp.analysis.normedtype_theory.vitali_lemma
  • mathcomp.analysis.normedtype_theory.matrix_normedtype
  • mathcomp.analysis.normedtype_theory.num_normedtype
  • mathcomp.analysis.normedtype_theory.normed_module
  • mathcomp.reals.reals
  • mathcomp.classical.set_interval
  • mathcomp.classical.functions
  • mathcomp.classical.fsbigop
  • mathcomp.classical.cardinality
  • mathcomp.classical.filter
  • mathcomp.reals_stdlib.Rstruct

Source code
:= (inE, in_setE).

Bind Scope classical_set_scope with set.
Local Open Scope classical_set_scope.
Delimit Scope classical_set_scope with classic.

Definition mkset

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


Used by
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.topology_theory.pseudometric_structure
  • mathcomp.analysis.topology_theory.num_topology
  • mathcomp.analysis.sequences
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule
  • mathcomp.analysis.normedtype_theory.matrix_normedtype
  • mathcomp.analysis.normedtype_theory.num_normedtype
  • mathcomp.analysis.normedtype_theory.normed_module
  • mathcomp.reals.reals
  • mathcomp.classical.set_interval

Source code
{TSource code} (PSource code : T -> Prop) : set T := P.
Arguments mkset _ _ _ /.

Notation "[ 'set' x : T | P ]"Source code := (mkset (fun xSource code : T => P)) : classical_set_scope.
Notation "[ 'set' x | P ]"Source code := [set xSource code : _ | P] : classical_set_scope.

Definition image

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_key (T:=K0) (K:=K0) (fun x0 : K0 => x0 : K0) (mem (x :: xs))) = (a == x) || (a \in imfset imfset_key (T:=K0) (K:=K0) (fun x0 : K0 => x0 : K0) (mem xs))) * (forall a : K0, (a \in 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_key (T:=K0) (K:=K0) (fun x : K0 => x : K0) (mem (xs ++ ys))) = (a \in imfset imfset_key (T:=K0) (K:=K0) (fun x : K0 => x : K0) (mem xs)) || (a \in imfset imfset_key (T:=K0) (K:=K0) (fun x : K0 => x : K0) (mem ys))) * (forall (p : finmempred K0) (k : K0), (k \in 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 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 [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


Used by
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.classical.classical_orders

Source code
{TSource code rTSource code} (ASource code : set T) (fSource code : T -> rT) :=
  [set ySource code | exists2 xSource code, A x & f x = y].
Arguments image _ _ _ _ _ /.
Notation "[ 'set' E | x 'in' A ]"Source code :=
  (image A (fun xSource code => E)) : classical_set_scope.

Definition image2

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 303, characters 11-16


Source code
{TASource code TBSource code rTSource code} (ASource code : set TA) (BSource code : set TB) (fSource code : TA -> TB -> rT) :=
  [set zSource code | exists2 xSource code, A x & exists2 ySource code, B y & f x y = z].
Arguments image2 _ _ _ _ _ _ _ /.
Notation "[ 'set' E | x 'in' A & y 'in' B ]"Source code :=
  (image2 A B (fun xSource code ySource code => E)) : classical_set_scope.

Section basic_definitions.
Context {TSource code rTSource code : Type}.
Implicit Types (T : Type) (A B : set T) (f : T -> rT) (Y : set rT).

Definition preimage

Abbreviation image f A := [seq f x | x in A] Expands to: Abbreviation mathcomp.boot.fintype.image Declared in library mathcomp.boot.fintype, line 1132, characters 0-44


Used by
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.kernel
  • mathcomp.analysis.ereal
  • mathcomp.analysis.topology_theory.topology_structure
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.initial_topology
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.numfun
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_definition
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integrable
  • mathcomp.analysis.lebesgue_integral_theory.measurable_fun_approximation
  • mathcomp.classical.functions
  • mathcomp.classical.fsbigop

Source code
fSource code YSource code : set T := [set tSource code | Y (f t)].

Definition setT

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 315, characters 11-17


Used by
  • mathcomp.analysis.esum
  • mathcomp.analysis.probability_theory.exponential_distribution
  • mathcomp.analysis.probability_theory.beta_distribution
  • mathcomp.analysis.probability_theory.independence
  • mathcomp.analysis.probability_theory.poisson_distribution
  • mathcomp.analysis.probability_theory.uniform_distribution
  • mathcomp.analysis.probability_theory.random_variable
  • mathcomp.analysis.probability_theory.binomial_distribution
  • mathcomp.analysis.probability_theory.normal_distribution
  • mathcomp.analysis.probability_theory.bernoulli_distribution
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.real_measure.lebesgue_stieltjes_measure
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.measure_theory.signed_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.probability_measure
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.measure_theory.measure_negligible
  • mathcomp.analysis.measure_theory.measurable_function
  • mathcomp.analysis.measure_theory.dirac_measure
  • mathcomp.analysis.hoelder
  • mathcomp.analysis.ftc
  • mathcomp.analysis.kernel
  • mathcomp.analysis.gauss_integral
  • mathcomp.analysis.ereal
  • mathcomp.analysis.topology_theory.uniform_structure
  • mathcomp.analysis.topology_theory.topology_structure
  • mathcomp.analysis.topology_theory.product_topology
  • mathcomp.analysis.topology_theory.supremum_topology
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.initial_topology
  • mathcomp.analysis.topology_theory.matrix_topology
  • mathcomp.analysis.topology_theory.num_topology
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.topology_theory.compact
  • mathcomp.analysis.homotopy_theory.wedge_sigT
  • mathcomp.analysis.numfun
  • mathcomp.analysis.showcase.summability
  • mathcomp.analysis.sequences
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg
  • mathcomp.analysis.lebesgue_integral_theory.giry
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_Rintegral
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_monotone_convergence
  • mathcomp.analysis.lebesgue_integral_theory.simple_functions
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_definition
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_fubini
  • mathcomp.analysis.lebesgue_integral_theory.radon_nikodym
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_differentiation
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integrable
  • mathcomp.analysis.lebesgue_integral_theory.measurable_fun_approximation
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule
  • mathcomp.analysis.normedtype_theory.tvs
  • mathcomp.analysis.normedtype_theory.ereal_normedtype
  • mathcomp.analysis.normedtype_theory.urysohn
  • mathcomp.analysis.normedtype_theory.matrix_normedtype
  • mathcomp.analysis.normedtype_theory.num_normedtype
  • mathcomp.analysis.normedtype_theory.normed_module
  • mathcomp.analysis_stdlib.showcase.uniform_bigO
  • mathcomp.reals.real_interval
  • mathcomp.reals.reals
  • mathcomp.classical.set_interval
  • mathcomp.classical.functions
  • mathcomp.classical.fsbigop
  • mathcomp.classical.cardinality
  • mathcomp.classical.filter
  • mathcomp.experimental_reals.realsum

Source code
:= [set _ : T | True].
Definition set0

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 325, characters 11-19


Used by
  • mathcomp.analysis.ess_sup_inf
  • mathcomp.analysis.esum
  • mathcomp.analysis.probability_theory.exponential_distribution
  • mathcomp.analysis.probability_theory.beta_distribution
  • mathcomp.analysis.probability_theory.independence
  • mathcomp.analysis.probability_theory.poisson_distribution
  • mathcomp.analysis.probability_theory.uniform_distribution
  • mathcomp.analysis.probability_theory.random_variable
  • mathcomp.analysis.probability_theory.binomial_distribution
  • mathcomp.analysis.probability_theory.bernoulli_distribution
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.real_measure.lebesgue_stieltjes_measure
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.measure_theory.signed_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.probability_measure
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.measure_theory.counting_measure
  • mathcomp.analysis.measure_theory.measure_negligible
  • mathcomp.analysis.measure_theory.measurable_function
  • mathcomp.analysis.measure_theory.dirac_measure
  • mathcomp.analysis.realfun
  • mathcomp.analysis.cantor
  • mathcomp.analysis.kernel
  • mathcomp.analysis.ereal
  • mathcomp.analysis.borel_hierarchy
  • mathcomp.analysis.topology_theory.order_topology
  • mathcomp.analysis.topology_theory.topology_structure
  • mathcomp.analysis.topology_theory.connected
  • mathcomp.analysis.topology_theory.edist
  • mathcomp.analysis.topology_theory.supremum_topology
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.one_point_compactification
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.topology_theory.compact
  • mathcomp.analysis.homotopy_theory.wedge_sigT
  • mathcomp.analysis.numfun
  • mathcomp.analysis.sequences
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg
  • mathcomp.analysis.lebesgue_integral_theory.giry
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_Rintegral
  • mathcomp.analysis.lebesgue_integral_theory.simple_functions
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_definition
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_under
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_fubini
  • mathcomp.analysis.lebesgue_integral_theory.radon_nikodym
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_differentiation
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integrable
  • mathcomp.analysis.lebesgue_integral_theory.measurable_fun_approximation
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule
  • mathcomp.analysis.normedtype_theory.tvs
  • mathcomp.analysis.normedtype_theory.ereal_normedtype
  • mathcomp.analysis.normedtype_theory.urysohn
  • mathcomp.analysis.normedtype_theory.vitali_lemma
  • mathcomp.analysis.normedtype_theory.num_normedtype
  • mathcomp.analysis.normedtype_theory.normed_module
  • mathcomp.reals.real_interval
  • mathcomp.reals.reals
  • mathcomp.classical.set_interval
  • mathcomp.classical.functions
  • mathcomp.classical.fsbigop
  • mathcomp.classical.cardinality
  • mathcomp.classical.filter
  • mathcomp.reals_stdlib.Rstruct

Source code
:= [set _ : T | False].
Definition set1

Abbreviation setT := [set: _] Expands to: Abbreviation mathcomp.boot.finset.setT Declared in library mathcomp.boot.finset, line 256, characters 0-41


Used by
  • mathcomp.analysis.ereal
  • mathcomp.experimental_reals.realsum

Source code
 (tSource code : T) := [set xSource code : T | x = t].
Definition setI

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


Used by
  • mathcomp.analysis.probability_theory.independence
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.ereal
  • mathcomp.analysis.topology_theory.order_topology
  • mathcomp.classical.cardinality

Source code
ASource code BSource code := [set xSource code | A x /\ B x].
Definition setU

Abbreviation set1 := @set1.body Expands to: Abbreviation mathcomp.boot.finset.set1 Declared in library mathcomp.boot.finset, line 258, characters 0-66 set1.body : forall {T : finType}, T -> {set T} set1.body is not universe polymorphic Arguments set1.body {T} a Expands to: Constant mathcomp.boot.finset.set1.body Declared in library mathcomp.boot.finset, line 258, characters 0-66


Used by
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.real_measure.lebesgue_stieltjes_measure
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.measure_theory.signed_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.measure_theory.counting_measure
  • mathcomp.analysis.measure_theory.measure_negligible
  • mathcomp.analysis.topology_theory.topology_structure
  • mathcomp.analysis.topology_theory.compact
  • mathcomp.analysis.sequences
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg
  • mathcomp.analysis.lebesgue_integral_theory.simple_functions
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_definition
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_under
  • mathcomp.analysis.lebesgue_integral_theory.radon_nikodym
  • mathcomp.analysis.lebesgue_integral_theory.measurable_fun_approximation
  • mathcomp.classical.fsbigop
  • mathcomp.classical.cardinality

Source code
ASource code BSource code := [set xSource code | A x \/ B x].
Definition nonempty

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


Used by
  • mathcomp.reals.reals
  • mathcomp.classical.set_interval
  • mathcomp.experimental_reals.realsum

Source code
ASource code := exists aSource code, A a.
Definition setC

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


Used by
  • mathcomp.analysis.topology_theory.topology_structure
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.normedtype_theory.num_normedtype

Source code
ASource code := [set aSource code | ~ A a].
Definition setD

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


Used by
  • mathcomp.analysis.topology_theory.connected

Source code
ASource code BSource code := [set xSource code | A x /\ ~ B x].
Definition setX

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
T1Source code T2Source code (A1Source code : set T1) (A2Source code : set T2) := [set zSource code | A1 z.1 /\ A2 z.2].
Definition fst_set

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
T1Source code T2Source code (ASource code : set (T1 * T2)) := [set xSource code | exists ySource code, A (x, y)].
Definition snd_set

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
T1Source code T2Source code (ASource code : set (T1 * T2)) := [set ySource code | exists xSource code, A (x, y)].
Definition setXR

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 336, characters 11-18


Source code
T1Source code T2Source code (A1Source code : set T1) (A2Source code : T1 -> set T2) :=
  [set zSource code | A1 z.1 /\ A2 z.1 z.2].
Definition setXL

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 337, characters 11-18


Source code
T1Source code T2Source code (A1Source code : T2 -> set T1) (A2Source code : set T2) :=
  [set zSource code | A1 z.2 z.1 /\ A2 z.2].

Lemma mksetESource code (PSource code : T -> Prop) xSource code : [set xSource code | P x] x = P x.
Proof.
by []. Qed.

Definition bigcap

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 338, characters 11-16


Used by
  • mathcomp.analysis.topology_theory.topology_structure
  • mathcomp.analysis.normedtype_theory.tvs

Source code
TSource code ISource code (PSource code : set I) (FSource code : I -> set T) :=
  [set aSource code | forall iSource code, P i -> F i a].
Definition bigcup

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 340, characters 11-16


Used by
  • mathcomp.analysis.probability_theory.random_variable
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.measure_theory.measure_function

Source code
TSource code ISource code (PSource code : set I) (FSource code : I -> set T) :=
  [set aSource code | exists2 iSource code, P i & F i a].

Definition subset

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 346, characters 11-17


Used by
  • mathcomp.analysis.topology_theory.topology_structure

Source code
ASource code BSource code := forall tSource code, A t -> B t.
Local Notation "A `<=` B"Source code := (subset A B).

Lemma subsetPUsed by
  • mathcomp.analysis.esum
  • mathcomp.analysis.ereal
  • mathcomp.analysis.topology_theory.matrix_topology
  • mathcomp.analysis.topology_theory.num_topology
  • mathcomp.analysis.showcase.pnt
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule
  • mathcomp.classical.set_interval
  • mathcomp.classical.functions

Source code
ASource code BSource code : {subset A <= B} <-> (A `<=` B).
Proof.
by split => + x => /(_ x); rewrite ?inE. Qed.

Definition disj_set

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 348, characters 11-17


Used by
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_differentiation
  • mathcomp.classical.set_interval

Source code
ASource code BSource code := setI A B == set0.

Definition proper

Abbreviation subset := subset.body Expands to: Abbreviation mathcomp.boot.fintype.subset Declared in library mathcomp.boot.fintype, line 395, characters 0-88 subset.body : forall [T : finType], mem_pred T -> mem_pred T -> bool subset.body is not universe polymorphic Arguments subset.body [T] A B Expands to: Constant mathcomp.boot.fintype.subset.body Declared in library mathcomp.boot.fintype, line 395, characters 0-88


Source code
ASource code BSource code := A `<=` B /\ ~ (B `<=` A).

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 rangeUsed by
  • mathcomp.analysis.esum
  • mathcomp.analysis.probability_theory.independence
  • mathcomp.analysis.probability_theory.random_variable
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.realfun
  • mathcomp.analysis.kernel
  • mathcomp.analysis.elementary_functions.trigonometry_functions
  • mathcomp.analysis.ereal
  • mathcomp.analysis.topology_theory.uniform_structure
  • mathcomp.analysis.topology_theory.discrete_topology
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.homotopy_theory.wedge_sigT
  • mathcomp.analysis.numfun
  • mathcomp.analysis.showcase.pnt
  • mathcomp.analysis.sequences
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_Rintegral
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_monotone_convergence
  • mathcomp.analysis.lebesgue_integral_theory.simple_functions
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_definition
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_fubini
  • mathcomp.analysis.lebesgue_integral_theory.counting_lebesgue
  • mathcomp.analysis.lebesgue_integral_theory.radon_nikodym
  • mathcomp.analysis.lebesgue_integral_theory.measurable_fun_approximation
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule
  • mathcomp.analysis.normedtype_theory.urysohn
  • mathcomp.analysis.normedtype_theory.normed_module
  • mathcomp.reals.reals
  • mathcomp.classical.functions
  • mathcomp.classical.cardinality

Source code
F := [set F i | iSource code in setT].
Notation "[ 'set' a ]"Source code := (set1 a) : classical_set_scope.
Notation "[ 'set' a : T ]"Source code := [set (a : T)] : classical_set_scope.
Notation "[ 'set' : T ]"Source code := (@setT T) : classical_set_scope.
Notation "A `|` B"Source code := (setU A B) : classical_set_scope.
Notation "a |` A"Source code := ([set a] `|` A) : classical_set_scope.
Notation "[ 'set' a1 ; a2 ; .. ; an ]"Source code :=
  (setU .. (a1 |` [set a2]) .. [set an]) : classical_set_scope.
Notation "A `&` B"Source code := (setI A B) : classical_set_scope.
Notation "A `*` B"Source code := (setX A B) : classical_set_scope.
Notation "A .`1"Source code := (fst_set A) : classical_set_scope.
Notation "A .`2"Source code := (snd_set A) : classical_set_scope.
Notation "A `*`` B"Source code := (setXR A B) : classical_set_scope.
Notation "A ``*` B"Source code := (setXL A B) : classical_set_scope.
Notation "~` A"Source code := (setC A) : classical_set_scope.
Notation "[ 'set' ~ a ]"Source code := (~` [set a]) : classical_set_scope.
Notation "A `\` B"Source code := (setD A B) : classical_set_scope.
Notation "A `\ a"Source code := (A `\` [set a]) : classical_set_scope.
Notation "[ 'disjoint' A & B ]"Source code := (disj_set A B) : classical_set_scope.

Definition setY

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 357, characters 11-19


Source code
{TSource code : Type} (ASource code BSource code : set T) := (A `\` B) `|` (B `\` A).
Arguments setY _ _ _ _ /.
Notation "A `+` B"Source code := (setY A B) : classical_set_scope.

Notation "'`I_' n"Source code := [set kSource code | is_true (k < n)%N].

Notation "\bigcup_ ( i 'in' P ) F"Source code :=
  (bigcup P (fun iSource code => F)) : classical_set_scope.
Notation "\bigcup_ ( i : T ) F"Source code :=
  (\bigcup_(iSource code in @setT T) F) : classical_set_scope.
Notation "\bigcup_ ( i < n ) F"Source code :=
  (\bigcup_(iSource code in `I_n) F) : classical_set_scope.
Notation "\bigcup_ ( i >= n ) F"Source code :=
  (\bigcup_(iSource code in [set iSource code | (n <= i)%N]) F) : classical_set_scope.
Notation "\bigcup_ i F"Source code := (\bigcup_(iSource code : _) F) : classical_set_scope.
Notation "\bigcap_ ( i 'in' P ) F"Source code :=
  (bigcap P (fun iSource code => F)) : classical_set_scope.
Notation "\bigcap_ ( i : T ) F"Source code :=
  (\bigcap_(iSource code in @setT T) F) : classical_set_scope.
Notation "\bigcap_ ( i < n ) F"Source code :=
  (\bigcap_(iSource code in `I_n) F) : classical_set_scope.
Notation "\bigcap_ ( i >= n ) F"Source code :=
  (\bigcap_(iSource code in [set iSource code | (n <= i)%N]) F) : classical_set_scope.
Notation "\bigcap_ i F"Source code := (\bigcap_(iSource code : _) F) : classical_set_scope.

Notation "A `<=` B"Source code := (subset A B) : classical_set_scope.
Notation "A `<` B"Source code := (proper A B) : classical_set_scope.

Notation "A `<=>` B"Source code := ((A `<=` B) /\ (B `<=` A)) : classical_set_scope.
Notation "f @^-1` A"Source code := (preimage f A) : classical_set_scope.
Notation "f @` A"Source code := (image A f) (only parsing) : classical_set_scope.
Notation "A !=set0"Source code := (nonempty A) : classical_set_scope.

Notation "[ 'set`' p ]"Source code:= [set xSource code | is_true (x \in p)] : classical_set_scope.
Notation pred_setUsed by
  • mathcomp.analysis.normedtype_theory.normed_module
  • mathcomp.classical.cardinality

Source code
:= (fun iSource code => [set` i]).

Notation "`[ a , b ]"Source code :=
  [set` Interval (BLeft a) (BRight b)] : classical_set_scope.
Notation "`] a , b ]"Source code :=
  [set` Interval (BRight a) (BRight b)] : classical_set_scope.
Notation "`[ a , b ["Source code :=
  [set` Interval (BLeft a) (BLeft b)] : classical_set_scope.
Notation "`] a , b ["Source code :=
  [set` Interval (BRight a) (BLeft b)] : classical_set_scope.
Notation "`] '-oo' , b ]"Source code :=
  [set` Interval -oo%O (BRight b)] : classical_set_scope.
Notation "`] '-oo' , b ["Source code :=
  [set` Interval -oo%O (BLeft b)] : classical_set_scope.
Notation "`[ a , '+oo' ["Source code :=
  [set` Interval (BLeft a) +oo%O] : classical_set_scope.
Notation "`] a , '+oo' ["Source code :=
  [set` Interval (BRight a) +oo%O] : classical_set_scope.
Notation "`] -oo , '+oo' ["Source code :=
  [set` Interval -oo%O +oo%O] : classical_set_scope.

Lemma nat_nonemptySource code : [set: nat] !=set0
Proof.
by exists 1%N. Qed.

#[global] Hint Resolve nat_nonempty : core.

Lemma in_set1Used by
  • mathcomp.analysis.esum
  • mathcomp.analysis.probability_theory.random_variable

Source code
{TSource code : eqType} (aSource code : T) (xSource code : T) : (x \in [set a]) = (x == a).
Proof.
by apply/(sameP _ idP)/(equivP idP); rewrite inE eq_opE. Qed.

Lemma itv_sub_in2Used by
  • mathcomp.analysis.realfun

Source code
dSource code (TSource code : porderType d) (PSource code : T -> T -> Prop) (iSource code jSource code : interval T) :
  [set` j] `<=` [set` i] ->
  {in i &, forall xSource code ySource code, P x y} -> {in j &, forall xSource code ySource code, P x y}.
Proof.
by move=> ji + x y xj yj; apply; exact: ji. Qed.

Lemma preimage_itvUsed by
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.topology_theory.initial_topology

Source code
TSource code dSource code (rTSource code : porderType d) (fSource code : T -> rT) (iSource code : interval rT) (xSource code : T) :
  ((f @^-1` [set` i]) x) = (f x \in i).
Proof.
by rewrite inE. Qed.

Lemma preimage_itvoyUsed by
  • mathcomp.analysis.real_measure.measurable_realfun

Source code
TSource code dSource code (rTSource code : porderType d) (fSource code : T -> rT) ySource code :
  f @^-1` `]y, +oo[%classic = [set xSource code | (y < f x)%O].
Proof.
by rewrite predeqE => t; split => [|?]; rewrite /= in_itv/= andbT.
Qed.

Lemma preimage_itvcyUsed by
  • mathcomp.analysis.probability_theory.independence
  • mathcomp.analysis.real_measure.measurable_realfun

Source code
TSource code dSource code (rTSource code : porderType d) (fSource code : T -> rT) ySource code :
  f @^-1` `[y, +oo[%classic = [set xSource code | (y <= f x)%O].
Proof.
by rewrite predeqE => t; split => [|?]; rewrite /= in_itv/= andbT.
Qed.

Lemma preimage_itvNyoUsed by
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.kernel

Source code
TSource code dSource code (rTSource code : orderType d) (fSource code : T -> rT) ySource code :
  f @^-1` `]-oo, y[%classic = [set xSource code | (f x < y)%O].
Proof.
by rewrite predeqE => t; split => [|?]; rewrite /= in_itv. Qed.

Lemma preimage_itvNycUsed by
  • mathcomp.analysis.real_measure.measurable_realfun

Source code
TSource code dSource code (rTSource code : orderType d) (fSource code : T -> rT) ySource code :
  f @^-1` `]-oo, y]%classic = [set xSource code | (f x <= y)%O].
Proof.
by rewrite predeqE => t; split => [|?]; rewrite /= in_itv. Qed.

Lemma eq_setUsed by
  • mathcomp.analysis.probability_theory.random_variable
  • mathcomp.analysis.topology_theory.num_topology
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_differentiation
  • mathcomp.analysis.lebesgue_integral_theory.measurable_fun_approximation
  • mathcomp.analysis.normedtype_theory.num_normedtype
  • mathcomp.analysis.normedtype_theory.normed_module
  • mathcomp.classical.classical_orders

Source code
TSource code (PSource code QSource code : T -> Prop) : (forall xSource code : T, P x = Q x) ->
  [set xSource code | P x] = [set xSource code | Q x].
Proof.
by move=> /funext->. Qed.

Coercion set_type

proper : forall [T : finType], mem_pred T -> mem_pred T -> bool proper is not universe polymorphic Arguments proper [T] A B proper is transparent Expands to: Constant mathcomp.boot.fintype.proper Declared in library mathcomp.boot.fintype, line 402, characters 11-17


Used by
  • mathcomp.analysis.realfun
  • mathcomp.analysis.topology_theory.subtype_topology

Source code
TSource code (ASource code : set T) := {xSource code : T | x \in A}.

Definition SigSub

setY : forall {T : Type}, set T -> set T -> set T setY is not universe polymorphic Arguments setY {T}%_type_scope (A B)%_classical_set_scope _ / The reduction tactics unfold setY when applied to 4 arguments setY is transparent Expands to: Constant mathcomp.classical.classical_sets.setY Declared in library mathcomp.classical.classical_sets, line 397, characters 11-15


Used by
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.classical.functions
  • mathcomp.classical.cardinality

Source code
{TSource code} {pTSource code : predType T} {PSource code : pT} xSource code : x \in P -> {xSource code | x \in P} :=
  exist (fun xSource code => x \in P) x.

Lemma set0funUsed by
  • mathcomp.classical.functions
  • mathcomp.classical.cardinality

Source code
{PSource code TSource code : Type} : @set0 T -> P
Proof.
by case=> x; rewrite inE. Qed.

Lemma pred_oappESource code {TSource code : Type} (DSource code : {pred T}) :
  pred_oapp D = mem (some @` D)%classic.
Proof.
apply/funext=> -[x|]/=; apply/idP/idP; rewrite /pred_oapp/= inE //=.
- by move=> xD; exists x.
- by move=> [// + + [<-]].
- by case.
Qed.

Lemma pred_oapp_setUsed by
  • mathcomp.classical.functions

Source code
{TSource code : Type} (DSource code : set T) :
  pred_oapp (mem D) = mem (some @` D)%classic.
Proof.
by rewrite pred_oappE; apply/funext => x/=; apply/idP/idP; rewrite ?inE;
   move=> [y/= ]; rewrite ?in_setE; exists y; rewrite ?in_setE.
Qed.

Section basic_lemmas.
Context {TSource code : Type}.
Implicit Types A B C D : set T.

Lemma mem_setUsed by
  • mathcomp.analysis.esum
  • mathcomp.analysis.probability_theory.independence
  • mathcomp.analysis.probability_theory.random_variable
  • mathcomp.analysis.probability_theory.bernoulli_distribution
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.measure_theory.signed_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.measure_theory.measurable_function
  • mathcomp.analysis.measure_theory.dirac_measure
  • mathcomp.analysis.hoelder
  • mathcomp.analysis.realfun
  • mathcomp.analysis.ftc
  • mathcomp.analysis.kernel
  • mathcomp.analysis.pi_irrational
  • mathcomp.analysis.topology_theory.uniform_structure
  • mathcomp.analysis.topology_theory.topology_structure
  • mathcomp.analysis.topology_theory.supremum_topology
  • mathcomp.analysis.topology_theory.discrete_topology
  • mathcomp.analysis.topology_theory.subtype_topology
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.initial_topology
  • mathcomp.analysis.topology_theory.num_topology
  • mathcomp.analysis.derive
  • mathcomp.analysis.numfun
  • mathcomp.analysis.sequences
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_definition
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_under
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_dominated_convergence
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_differentiation
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integrable
  • mathcomp.analysis.lebesgue_integral_theory.measurable_fun_approximation
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule
  • mathcomp.analysis.normedtype_theory.tvs
  • mathcomp.analysis.normedtype_theory.num_normedtype
  • mathcomp.analysis.normedtype_theory.normed_module
  • mathcomp.classical.functions
  • mathcomp.classical.fsbigop
  • mathcomp.classical.cardinality
  • mathcomp.classical.filter
  • mathcomp.experimental_reals.realsum

Source code
{ASource code} {uSource code : T} : A u -> u \in A
Proof.
by rewrite inE. Qed.
Lemma set_memUsed by
  • mathcomp.analysis.esum
  • mathcomp.analysis.probability_theory.independence
  • mathcomp.analysis.probability_theory.poisson_distribution
  • mathcomp.analysis.probability_theory.random_variable
  • mathcomp.analysis.probability_theory.binomial_distribution
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.functional_analysis.hahn_banach_theorem
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_function
  • mathcomp.analysis.hoelder
  • mathcomp.analysis.realfun
  • mathcomp.analysis.cantor
  • mathcomp.analysis.kernel
  • mathcomp.analysis.pi_irrational
  • mathcomp.analysis.topology_theory.order_topology
  • mathcomp.analysis.topology_theory.uniform_structure
  • mathcomp.analysis.topology_theory.topology_structure
  • mathcomp.analysis.topology_theory.supremum_topology
  • mathcomp.analysis.topology_theory.discrete_topology
  • mathcomp.analysis.topology_theory.subtype_topology
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.initial_topology
  • mathcomp.analysis.topology_theory.num_topology
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.topology_theory.compact
  • mathcomp.analysis.derive
  • mathcomp.analysis.numfun
  • mathcomp.analysis.sequences
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_Rintegral
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_monotone_convergence
  • mathcomp.analysis.lebesgue_integral_theory.simple_functions
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_definition
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_under
  • mathcomp.analysis.lebesgue_integral_theory.counting_lebesgue
  • mathcomp.analysis.lebesgue_integral_theory.radon_nikodym
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_differentiation
  • mathcomp.analysis.lebesgue_integral_theory.measurable_fun_approximation
  • mathcomp.analysis.normedtype_theory.tvs
  • mathcomp.analysis.normedtype_theory.urysohn
  • mathcomp.analysis.normedtype_theory.normed_module
  • mathcomp.classical.functions
  • mathcomp.classical.fsbigop
  • mathcomp.classical.cardinality
  • mathcomp.classical.filter

Source code
{ASource code} {uSource code : T} : u \in A -> A u
Proof.
by rewrite inE. Qed.
#[deprecated(since="mathcomp-analysis 1.16.0", use=in_setT)]
Lemma mem_setTSource code (uSource code : T)    : u \in [set: T]
Proof.
by rewrite inE. Qed.
Lemma mem_setKSource code {ASource code} {uSource code : T} : cancel (@mem_set A u) set_mem
Proof.
by []. Qed.
Lemma set_memKSource code {ASource code} {uSource code : T} : cancel (@set_mem A u) mem_set
Proof.
by []. Qed.

Lemma memNsetUsed by
  • mathcomp.analysis.probability_theory.exponential_distribution
  • mathcomp.analysis.probability_theory.random_variable
  • mathcomp.analysis.probability_theory.normal_distribution
  • mathcomp.analysis.probability_theory.bernoulli_distribution
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.numfun
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg
  • mathcomp.analysis.lebesgue_integral_theory.radon_nikodym
  • mathcomp.analysis.lebesgue_integral_theory.measurable_fun_approximation
  • mathcomp.analysis.normedtype_theory.normed_module

Source code
 (ASource code : set T) (uSource code : T) : ~ A u -> (u \in A) = false.
Proof.
by apply: contra_notF; rewrite inE. Qed.

Lemma notin_setEUsed by
  • mathcomp.analysis.esum
  • mathcomp.analysis.probability_theory.uniform_distribution
  • mathcomp.analysis.probability_theory.random_variable
  • mathcomp.analysis.probability_theory.normal_distribution
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.dirac_measure
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.derive
  • mathcomp.analysis.numfun
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_definition
  • mathcomp.analysis.lebesgue_integral_theory.radon_nikodym
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integrable
  • mathcomp.analysis.lebesgue_integral_theory.measurable_fun_approximation
  • mathcomp.analysis.normedtype_theory.normed_module
  • mathcomp.classical.functions
  • mathcomp.classical.fsbigop
  • mathcomp.classical.cardinality

Source code
 (ASource code : set T) xSource code : (x \notin A : Prop) = (~ A x).
Proof.
by apply/propext; split=> /asboolPn. Qed.

Lemma setTPnSource code (ASource code : set T) : A != setT <-> exists tSource code, ~ A t.
Proof.
split => [/negP|[t]]; last by apply: contra_notP => /negP/negPn/eqP ->.
apply: contra_notP => /forallNP h.
by apply/eqP; rewrite predeqE => t; split => // _; apply: contrapT.
Qed.
#[deprecated(note="Use setTPn instead")]
Notation setTPSource code := setTPn (only parsing).

Lemma in_set0Used by
  • mathcomp.analysis.measure_theory.dirac_measure
  • mathcomp.analysis.numfun
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_fubini
  • mathcomp.classical.functions

Source code
 (xSource code : T) : (x \in set0) = false
Proof.
by rewrite memNset. Qed.

Lemma in_setTUsed by
  • mathcomp.analysis.probability_theory.random_variable
  • mathcomp.analysis.functional_analysis.hahn_banach_theorem
  • mathcomp.analysis.measure_theory.dirac_measure
  • mathcomp.analysis.topology_theory.supremum_topology
  • mathcomp.analysis.numfun
  • mathcomp.analysis.lebesgue_integral_theory.radon_nikodym
  • mathcomp.analysis.normedtype_theory.normed_module
  • mathcomp.classical.functions
  • mathcomp.experimental_reals.realsum

Source code
 (xSource code : T) : x \in setT
Proof.
by rewrite mem_set. Qed.

Lemma in_setCUsed by
  • mathcomp.analysis.esum
  • mathcomp.analysis.kernel
  • mathcomp.analysis.ereal
  • mathcomp.analysis.numfun
  • mathcomp.classical.fsbigop

Source code
 (xSource code : T) ASource code : (x \in ~` A) = (x \notin A).
Proof.
by apply/idP/idP; rewrite inE notin_setE. Qed.

Lemma in_setIUsed by
  • mathcomp.analysis.esum
  • mathcomp.analysis.topology_theory.num_topology
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.numfun
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_definition
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integrable
  • mathcomp.analysis.normedtype_theory.tvs
  • mathcomp.classical.functions

Source code
 (xSource code : T) ASource code BSource code : (x \in A `&` B) = (x \in A) && (x \in B).
Proof.
by apply/idP/andP; rewrite !inE. Qed.

Lemma in_setDUsed by
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_dominated_convergence

Source code
 (xSource code : T) ASource code BSource code : (x \in A `\` B) = (x \in A) && (x \notin B).
Proof.
by apply/idP/andP; rewrite !inE notin_setE. Qed.

Lemma in_setUUsed by
  • mathcomp.analysis.esum
  • mathcomp.analysis.realfun

Source code
 (xSource code : T) ASource code BSource code : (x \in A `|` B) = (x \in A) || (x \in B).
Proof.
by apply/idP/orP; rewrite !inE. Qed.

Lemma in_setXUsed by
  • mathcomp.analysis.esum
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule

Source code
T'Source code (xSource code : T * T') ASource code ESource code : (x \in A `*` E) = (x.1 \in A) && (x.2 \in E).
Proof.
by apply/idP/andP; rewrite !inE. Qed.

Lemma set_valPUsed by
  • mathcomp.analysis.topology_theory.subtype_topology
  • mathcomp.classical.functions
  • mathcomp.classical.cardinality

Source code
{ASource code} (xSource code : A) : A (val x).
Proof.
by apply: set_mem; apply: valP. Qed.

Lemma eqEsubsetUsed by
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.real_measure.lebesgue_stieltjes_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.realfun
  • mathcomp.analysis.cantor
  • mathcomp.analysis.ftc
  • mathcomp.analysis.ereal
  • mathcomp.analysis.topology_theory.order_topology
  • mathcomp.analysis.topology_theory.quotient_topology
  • mathcomp.analysis.topology_theory.uniform_structure
  • mathcomp.analysis.topology_theory.topology_structure
  • mathcomp.analysis.topology_theory.connected
  • mathcomp.analysis.topology_theory.edist
  • mathcomp.analysis.topology_theory.supremum_topology
  • mathcomp.analysis.topology_theory.nat_topology
  • mathcomp.analysis.topology_theory.discrete_topology
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.initial_topology
  • mathcomp.analysis.topology_theory.one_point_compactification
  • mathcomp.analysis.topology_theory.sigT_topology
  • mathcomp.analysis.topology_theory.num_topology
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.topology_theory.compact
  • mathcomp.analysis.topology_theory.bool_topology
  • mathcomp.analysis.homotopy_theory.wedge_sigT
  • mathcomp.analysis.derive
  • mathcomp.analysis.numfun
  • mathcomp.analysis.sequences
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg
  • mathcomp.analysis.lebesgue_integral_theory.measurable_fun_approximation
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule
  • mathcomp.analysis.normedtype_theory.urysohn
  • mathcomp.analysis.normedtype_theory.num_normedtype
  • mathcomp.analysis.normedtype_theory.normed_module
  • mathcomp.reals.real_interval
  • mathcomp.reals.reals
  • mathcomp.classical.set_interval
  • mathcomp.classical.functions
  • mathcomp.classical.cardinality
  • mathcomp.classical.filter
  • mathcomp.classical.classical_orders

Source code
ASource code BSource code : (A = B) = (A `<=>` B).
Proof.
rewrite propeqE; split => [->|[AB BA]]; [by split|].
by rewrite predeqE => t; split=> [/AB|/BA].
Qed.

Lemma seteqPUsed by
  • mathcomp.analysis.ess_sup_inf
  • mathcomp.analysis.esum
  • mathcomp.analysis.probability_theory.independence
  • mathcomp.analysis.probability_theory.poisson_distribution
  • mathcomp.analysis.probability_theory.random_variable
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.real_measure.lebesgue_stieltjes_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.probability_measure
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.measure_theory.counting_measure
  • mathcomp.analysis.measure_theory.measurable_function
  • mathcomp.analysis.realfun
  • mathcomp.analysis.kernel
  • mathcomp.analysis.gauss_integral
  • mathcomp.analysis.ereal
  • mathcomp.analysis.borel_hierarchy
  • mathcomp.analysis.topology_theory.metric_structure
  • mathcomp.analysis.topology_theory.uniform_structure
  • mathcomp.analysis.topology_theory.topology_structure
  • mathcomp.analysis.topology_theory.connected
  • mathcomp.analysis.topology_theory.num_topology
  • mathcomp.analysis.numfun
  • mathcomp.analysis.sequences
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg
  • mathcomp.analysis.lebesgue_integral_theory.simple_functions
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_definition
  • mathcomp.analysis.lebesgue_integral_theory.radon_nikodym
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_differentiation
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integrable
  • mathcomp.analysis.lebesgue_integral_theory.measurable_fun_approximation
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule
  • mathcomp.analysis.normedtype_theory.tvs
  • mathcomp.analysis.normedtype_theory.ereal_normedtype
  • mathcomp.analysis.normedtype_theory.urysohn
  • mathcomp.analysis.normedtype_theory.vitali_lemma
  • mathcomp.analysis.normedtype_theory.num_normedtype
  • mathcomp.analysis.normedtype_theory.normed_module
  • mathcomp.reals.real_interval
  • mathcomp.reals.reals
  • mathcomp.classical.set_interval
  • mathcomp.classical.functions
  • mathcomp.classical.fsbigop
  • mathcomp.classical.cardinality
  • mathcomp.classical.filter
  • mathcomp.classical.classical_orders

Source code
ASource code BSource code : (A = B) <-> (A `<=>` B)
Proof.
by rewrite eqEsubset. Qed.

Lemma set_trueUsed by
  • mathcomp.analysis.esum
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integrable

Source code
: [set` predT] = setT :> set T.
Proof.
by apply/seteqP; split. Qed.

Lemma set_falseUsed by
  • mathcomp.analysis.real_measure.measurable_realfun

Source code
: [set` pred0] = set0 :> set T.
Proof.
by apply/seteqP; split. Qed.

Lemma set_predCUsed by
  • mathcomp.analysis.real_measure.measurable_realfun

Source code
 (PSource code : {pred T}) : [set` predC P] = ~` [set` P].
Proof.
by apply/seteqP; split => t /negP. Qed.

Lemma set_andbSource code (PSource code QSource code : {pred T}) : [set` predI P Q] = [set` P] `&` [set` Q].
Proof.
by apply/predeqP => x; split; rewrite /= inE => /andP. Qed.

Lemma set_orbSource code (PSource code QSource code : {pred T}) : [set` predU P Q] = [set` P] `|` [set` Q].
Proof.
by apply/predeqP => x; split; rewrite /= inE => /orP. Qed.

Lemma fun_trueUsed by
  • mathcomp.analysis.esum
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integrable

Source code
: (fun=> true) = setT :> set T.
Proof.
by rewrite [LHS]set_true. Qed.

Lemma fun_falseSource code : (fun=> false) = set0 :> set T.
Proof.
by rewrite [LHS]set_false. Qed.

Lemma set_mem_setUsed by
  • mathcomp.analysis.esum
  • mathcomp.analysis.probability_theory.poisson_distribution
  • mathcomp.analysis.probability_theory.random_variable
  • mathcomp.analysis.probability_theory.binomial_distribution
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.sequences
  • mathcomp.classical.functions
  • mathcomp.classical.fsbigop

Source code
ASource code : [set` A] = A.
Proof.
by apply/seteqP; split=> x/=; rewrite inE. Qed.

Lemma mem_setEUsed by
  • mathcomp.analysis.probability_theory.random_variable
  • mathcomp.analysis.realfun
  • mathcomp.analysis.elementary_functions.trigonometry_functions
  • mathcomp.classical.functions
  • mathcomp.classical.fsbigop
  • mathcomp.classical.cardinality

Source code
 (PSource code : pred T) : mem [set` P] = mem P.
Proof.
by congr Mem; apply/funext=> x; apply/asboolP/idP. Qed.

Lemma subset_reflUsed by
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_differentiation
  • mathcomp.analysis.normedtype_theory.vitali_lemma
  • mathcomp.classical.set_interval

Source code
ASource code : A `<=` A
Proof.
by []. Qed.

Lemma subset_transUsed by
  • mathcomp.analysis.esum
  • mathcomp.analysis.probability_theory.independence
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.real_measure.lebesgue_stieltjes_measure
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.measure_theory.signed_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.measure_theory.measure_negligible
  • mathcomp.analysis.cantor
  • mathcomp.analysis.ftc
  • mathcomp.analysis.topology_theory.pseudometric_structure
  • mathcomp.analysis.topology_theory.topology_structure
  • mathcomp.analysis.topology_theory.supremum_topology
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.initial_topology
  • mathcomp.analysis.topology_theory.num_topology
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.topology_theory.compact
  • mathcomp.analysis.numfun
  • mathcomp.analysis.sequences
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg
  • mathcomp.analysis.lebesgue_integral_theory.giry
  • mathcomp.analysis.lebesgue_integral_theory.radon_nikodym
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_differentiation
  • mathcomp.analysis.lebesgue_integral_theory.measurable_fun_approximation
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule
  • mathcomp.analysis.normedtype_theory.tvs
  • mathcomp.analysis.normedtype_theory.urysohn
  • mathcomp.analysis.normedtype_theory.vitali_lemma
  • mathcomp.analysis.normedtype_theory.normed_module
  • mathcomp.reals.reals
  • mathcomp.classical.set_interval
  • mathcomp.classical.functions
  • mathcomp.classical.cardinality
  • mathcomp.classical.filter

Source code
BSource code ASource code CSource code : A `<=` B -> B `<=` C -> A `<=` C.
Proof.
by move=> sAB sBC ? ?; apply/sBC/sAB. Qed.

Lemma sub0setUsed by
  • mathcomp.classical.functions

Source code
ASource code : set0 `<=` A
Proof.
by []. Qed.

Lemma properWSource code ASource code BSource code : A `<` B -> A `<=` B
Proof.
by case. Qed.

Lemma properxxSource code ASource code : ~ A `<` A
Proof.
by move=> [?]; apply. Qed.

Lemma setC0Used by
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.measure_theory.signed_measure
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.measure_theory.measure_negligible
  • mathcomp.analysis.ftc
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.classical.filter

Source code
: ~` set0 = setT :> set T.
Proof.
by rewrite predeqE; split => ?. Qed.

Lemma setCKUsed by
  • mathcomp.analysis.ess_sup_inf
  • mathcomp.analysis.probability_theory.random_variable
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.real_measure.lebesgue_stieltjes_measure
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.kernel
  • mathcomp.analysis.topology_theory.topology_structure
  • mathcomp.analysis.topology_theory.connected
  • mathcomp.analysis.topology_theory.discrete_topology
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_dominated_convergence
  • mathcomp.analysis.normedtype_theory.urysohn
  • mathcomp.analysis.normedtype_theory.normed_module
  • mathcomp.classical.set_interval
  • mathcomp.classical.cardinality

Source code
: involutive (@setC T).
Proof.
by move=> A; rewrite funeqE => t; rewrite /setC; exact: notLR. Qed.

Lemma setCTUsed by
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.measure_theory.measure_negligible
  • mathcomp.classical.cardinality
  • mathcomp.classical.filter

Source code
: ~` setT = set0 :> set T
Proof.
by rewrite -setC0 setCK. Qed.

Definition setC_inj

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


Used by
  • mathcomp.analysis.ess_sup_inf
  • mathcomp.analysis.topology_theory.topology_structure
  • mathcomp.analysis.topology_theory.num_topology
  • mathcomp.classical.cardinality

Source code
:= can_inj setCK.

Lemma setICUsed by
  • mathcomp.analysis.probability_theory.random_variable
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.real_measure.lebesgue_stieltjes_measure
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.measure_theory.signed_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.topology_theory.order_topology
  • mathcomp.analysis.topology_theory.topology_structure
  • mathcomp.analysis.topology_theory.connected
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.initial_topology
  • mathcomp.analysis.topology_theory.num_topology
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.topology_theory.compact
  • mathcomp.analysis.sequences
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_Rintegral
  • mathcomp.analysis.lebesgue_integral_theory.simple_functions
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_definition
  • mathcomp.analysis.lebesgue_integral_theory.radon_nikodym
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_differentiation
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integrable
  • mathcomp.analysis.normedtype_theory.urysohn
  • mathcomp.analysis.normedtype_theory.vitali_lemma
  • mathcomp.analysis.normedtype_theory.normed_module
  • mathcomp.classical.set_interval
  • mathcomp.classical.fsbigop
  • mathcomp.classical.cardinality
  • mathcomp.classical.filter

Source code
: commutative (@setI T).
Proof.
by move=> A B; rewrite predeqE => ?; split=> [[]|[]]. Qed.

Lemma setISUsed by
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.borel_hierarchy
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_definition
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_fubini

Source code
CSource code ASource code BSource code : A `<=` B -> C `&` A `<=` C `&` B.
Proof.
by move=> sAB t [Ct At]; split => //; exact: sAB. Qed.

Lemma setSIUsed by
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.topology_theory.topology_structure
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.sequences

Source code
CSource code ASource code BSource code : A `<=` B -> A `&` C `<=` B `&` C.
Proof.
by move=> sAB; rewrite -!(setIC C); apply setIS. Qed.

Lemma setISSUsed by
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.measure_theory.measure_negligible
  • mathcomp.analysis.normedtype_theory.tvs
  • mathcomp.analysis.normedtype_theory.normed_module

Source code
ASource code BSource code CSource code DSource code : A `<=` C -> B `<=` D -> A `&` B `<=` C `&` D.
Proof.
by move=> /(@setSI B) /subset_trans sAC /(@setIS C) /sAC. Qed.

Lemma setITUsed by
  • mathcomp.analysis.probability_theory.uniform_distribution
  • mathcomp.analysis.probability_theory.random_variable
  • mathcomp.analysis.probability_theory.normal_distribution
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.measure_theory.signed_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.measure_theory.measurable_function
  • mathcomp.analysis.kernel
  • mathcomp.analysis.topology_theory.connected
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.topology_theory.compact
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg
  • mathcomp.analysis.lebesgue_integral_theory.giry
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_definition
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_fubini
  • mathcomp.analysis.lebesgue_integral_theory.radon_nikodym
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integrable
  • mathcomp.analysis.normedtype_theory.urysohn
  • mathcomp.classical.cardinality
  • mathcomp.classical.filter

Source code
: right_id setT (@setI T).
Proof.
by move=> A; rewrite predeqE => ?; split=> [[]|]. Qed.

Lemma setTIUsed by
  • mathcomp.analysis.ess_sup_inf
  • mathcomp.analysis.probability_theory.beta_distribution
  • mathcomp.analysis.probability_theory.independence
  • mathcomp.analysis.probability_theory.poisson_distribution
  • mathcomp.analysis.probability_theory.random_variable
  • mathcomp.analysis.probability_theory.binomial_distribution
  • mathcomp.analysis.probability_theory.normal_distribution
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.measure_theory.signed_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.measure_theory.counting_measure
  • mathcomp.analysis.measure_theory.measurable_function
  • mathcomp.analysis.ftc
  • mathcomp.analysis.kernel
  • mathcomp.analysis.topology_theory.topology_structure
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg
  • mathcomp.analysis.lebesgue_integral_theory.giry
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_definition
  • mathcomp.analysis.lebesgue_integral_theory.counting_lebesgue
  • mathcomp.analysis.lebesgue_integral_theory.radon_nikodym
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_differentiation
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integrable
  • mathcomp.analysis.lebesgue_integral_theory.measurable_fun_approximation
  • mathcomp.classical.set_interval
  • mathcomp.classical.functions
  • mathcomp.classical.fsbigop

Source code
: left_id setT (@setI T).
Proof.
by move=> A; rewrite predeqE => ?; split=> [[]|]. Qed.

Lemma setI0Used by
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.measure_theory.signed_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.measure_theory.measurable_function
  • mathcomp.analysis.sequences
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_definition
  • mathcomp.analysis.lebesgue_integral_theory.radon_nikodym
  • mathcomp.analysis.lebesgue_integral_theory.measurable_fun_approximation
  • mathcomp.analysis.normedtype_theory.normed_module
  • mathcomp.classical.set_interval

Source code
: right_zero set0 (@setI T).
Proof.
by move=> A; rewrite predeqE => ?; split=> [[]|]. Qed.

Lemma set0IUsed by
  • mathcomp.analysis.measure_theory.signed_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.measure_theory.measurable_function
  • mathcomp.analysis.kernel
  • mathcomp.analysis.topology_theory.topology_structure
  • mathcomp.analysis.topology_theory.connected
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_definition
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_fubini
  • mathcomp.analysis.lebesgue_integral_theory.measurable_fun_approximation
  • mathcomp.analysis.normedtype_theory.normed_module
  • mathcomp.classical.set_interval

Source code
: left_zero set0 (@setI T).
Proof.
by move=> A; rewrite setIC setI0. Qed.

Lemma setIClUsed by
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.measure_theory.signed_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.probability_measure
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_fubini
  • mathcomp.analysis.lebesgue_integral_theory.radon_nikodym

Source code
: left_inverse set0 setC (@setI T).
Proof.
by move=> A; rewrite predeqE => ?; split => // -[]. Qed.

Lemma setICrUsed by
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.measure_theory.measurable_function
  • mathcomp.analysis.borel_hierarchy
  • mathcomp.analysis.topology_theory.connected
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.compact
  • mathcomp.analysis.sequences
  • mathcomp.analysis.lebesgue_integral_theory.radon_nikodym
  • mathcomp.classical.fsbigop

Source code
: right_inverse set0 setC (@setI T).
Proof.
by move=> A; rewrite setIC setICl. Qed.

Lemma setIAUsed by
  • mathcomp.analysis.probability_theory.random_variable
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.measure_theory.signed_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.measure_theory.measurable_function
  • mathcomp.analysis.topology_theory.topology_structure
  • mathcomp.analysis.topology_theory.connected
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.homotopy_theory.wedge_sigT
  • mathcomp.analysis.sequences
  • mathcomp.analysis.lebesgue_integral_theory.radon_nikodym
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integrable
  • mathcomp.analysis.lebesgue_integral_theory.measurable_fun_approximation
  • mathcomp.classical.filter

Source code
: associative (@setI T).
Proof.
by move=> A B C; rewrite predeqE => ?; split=> [[? []]|[[]]]. Qed.

Lemma setICAUsed by
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.measure_theory.signed_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.measure_theory.measurable_function
  • mathcomp.classical.filter

Source code
: left_commutative (@setI T).
Proof.
by move=> A B C; rewrite setIA [A `&` _]setIC -setIA. Qed.

Lemma setIACUsed by
  • mathcomp.analysis.measure_theory.signed_measure
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.measure_theory.measurable_function
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.sequences
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integrable
  • mathcomp.classical.fsbigop

Source code
: right_commutative (@setI T).
Proof.
by move=> A B C; rewrite setIC setICA setIA. Qed.

Lemma setIACAUsed by
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.measure_theory.signed_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.measure_theory.measurable_function
  • mathcomp.analysis.topology_theory.compact
  • mathcomp.analysis.numfun
  • mathcomp.analysis.lebesgue_integral_theory.radon_nikodym
  • mathcomp.classical.filter

Source code
: @interchange (set T) setI setI.
Proof.
by move=> A B C D; rewrite -setIA [B `&` _]setICA setIA. Qed.

Lemma setIidUsed by
  • mathcomp.analysis.probability_theory.beta_distribution
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.measure_theory.signed_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.measure_theory.measurable_function
  • mathcomp.analysis.ftc
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.homotopy_theory.wedge_sigT
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_fubini
  • mathcomp.analysis.lebesgue_integral_theory.radon_nikodym
  • mathcomp.analysis.lebesgue_integral_theory.measurable_fun_approximation
  • mathcomp.analysis.normedtype_theory.vitali_lemma
  • mathcomp.classical.set_interval
  • mathcomp.classical.functions
  • mathcomp.classical.filter

Source code
: idempotent_op (@setI T).
Proof.
by move=> A; rewrite predeqE => ?; split=> [[]|]. Qed.

Lemma setIIlSource code ASource code BSource code CSource code : A `&` B `&` C = (A `&` C) `&` (B `&` C).
Proof.
by rewrite setIA !(setIAC _ C) -(setIA _ C) setIid. Qed.

Lemma setIIrUsed by
  • mathcomp.analysis.probability_theory.random_variable
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.lebesgue_integral_theory.measurable_fun_approximation

Source code
ASource code BSource code CSource code : A `&` (B `&` C) = (A `&` B) `&` (A `&` C).
Proof.
by rewrite !(setIC A) setIIl. Qed.

Lemma setUCUsed by
  • mathcomp.analysis.probability_theory.random_variable
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.topology_theory.connected
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_differentiation
  • mathcomp.analysis.normedtype_theory.normed_module
  • mathcomp.reals.reals
  • mathcomp.classical.functions
  • mathcomp.classical.cardinality

Source code
: commutative (@setU T).
Proof.
move=> p q; rewrite /setU/mkset predeqE => a; tauto. Qed.

Lemma setUSSource code CSource code ASource code BSource code : A `<=` B -> C `|` A `<=` C `|` B.
Proof.
by move=> sAB t [Ct|At]; [left|right; exact: sAB]. Qed.

Lemma setSUUsed by
  • mathcomp.analysis.measure_theory.measurable_structure

Source code
CSource code ASource code BSource code : A `<=` B -> A `|` C `<=` B `|` C.
Proof.
by move=> sAB; rewrite -!(setUC C); apply setUS. Qed.

Lemma setUSSUsed by
  • mathcomp.analysis.measure_theory.measure_negligible

Source code
ASource code BSource code CSource code DSource code : A `<=` C -> B `<=` D -> A `|` B `<=` C `|` D.
Proof.
by move=> /(@setSU B) /subset_trans sAC /(@setUS C) /sAC. Qed.

Lemma setTUUsed by
  • mathcomp.analysis.probability_theory.normal_distribution

Source code
: left_zero setT (@setU T).
Proof.
by move=> A; rewrite predeqE => t; split; [case|left]. Qed.

Lemma setUTSource code : right_zero setT (@setU T).
Proof.
by move=> A; rewrite predeqE => t; split; [case|right]. Qed.

Lemma set0UUsed by
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.measure_theory.signed_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.measure_theory.measure_negligible
  • mathcomp.analysis.measure_theory.measurable_function
  • mathcomp.analysis.topology_theory.connected
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.compact
  • mathcomp.analysis.sequences
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg
  • mathcomp.classical.set_interval
  • mathcomp.classical.fsbigop

Source code
: left_id set0 (@setU T).
Proof.
by move=> A; rewrite predeqE => t; split; [case|right]. Qed.

Lemma setU0Used by
  • mathcomp.analysis.ess_sup_inf
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.measure_theory.counting_measure
  • mathcomp.analysis.topology_theory.connected
  • mathcomp.analysis.sequences
  • mathcomp.classical.set_interval

Source code
: right_id set0 (@setU T).
Proof.
by move=> A; rewrite predeqE => t; split; [case|left]. Qed.

Lemma setUClUsed by
  • mathcomp.analysis.topology_theory.connected
  • mathcomp.classical.cardinality

Source code
: left_inverse setT setC (@setU T).
Proof.
move=> A.
by rewrite predeqE => t; split => // _; case: (pselect (A t)); [right|left].
Qed.

Lemma setUCrUsed by
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.topology_theory.subspace_topology

Source code
: right_inverse setT setC (@setU T).
Proof.
by move=> A; rewrite setUC setUCl. Qed.

Lemma setUAUsed by
  • mathcomp.analysis.probability_theory.normal_distribution
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.topology_theory.separation_axioms

Source code
: associative (@setU T).
Proof.
move=> p q r; rewrite /setU/mkset predeqE => a; tauto. Qed.

Lemma setUCAUsed by
  • mathcomp.analysis.probability_theory.normal_distribution
  • mathcomp.classical.set_interval

Source code
: left_commutative (@setU T).
Proof.
by move=> A B C; rewrite setUA [A `|` _]setUC -setUA. Qed.

Lemma setUACUsed by
  • mathcomp.analysis.probability_theory.normal_distribution
  • mathcomp.analysis.normedtype_theory.normed_module

Source code
: right_commutative (@setU T).
Proof.
by move=> A B C; rewrite setUC setUCA setUA. Qed.

Lemma setUACASource code : @interchange (set T) setU setU.
Proof.
by move=> A B C D; rewrite -setUA [B `|` _]setUCA setUA. Qed.

Lemma setUidUsed by
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg
  • mathcomp.classical.set_interval

Source code
: idempotent_op (@setU T).
Proof.
move=> p; rewrite /setU/mkset predeqE => a; tauto. Qed.

Lemma setUUlSource code ASource code BSource code CSource code : A `|` B `|` C = (A `|` C) `|` (B `|` C).
Proof.
by rewrite setUA !(setUAC _ C) -(setUA _ C) setUid. Qed.

Lemma setUUrSource code ASource code BSource code CSource code : A `|` (B `|` C) = (A `|` B) `|` (A `|` C).
Proof.
by rewrite !(setUC A) setUUl. Qed.

Lemma setU_id2rUsed by
  • mathcomp.analysis.real_measure.lebesgue_measure

Source code
CSource code ASource code BSource code :
  (forall xSource code, (~` B) x -> A x = C x) -> (A `|` B) = (C `|` B).
Proof.
move=> h; apply/seteqP; split => [x [Ax|Bx]|x [Cx|Bx]]; [|by right| |by right].
- by have [|/h {}h] := pselect (B x); [by right|left; rewrite -h].
- by have [|/h {}h] := pselect (B x); [by right|left; rewrite h].
Qed.

Lemma setDEUsed by
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.real_measure.lebesgue_stieltjes_measure
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.measure_theory.signed_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.kernel
  • mathcomp.analysis.topology_theory.connected
  • mathcomp.analysis.sequences
  • mathcomp.analysis.lebesgue_integral_theory.radon_nikodym
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integrable
  • mathcomp.analysis.lebesgue_integral_theory.measurable_fun_approximation
  • mathcomp.classical.set_interval
  • mathcomp.classical.fsbigop
  • mathcomp.classical.cardinality

Source code
ASource code BSource code : A `\` B = A `&` ~` B
Proof.
by []. Qed.

Lemma setUDlSource code ASource code BSource code CSource code : (A `\` B) `|` C = (A `|` C) `\` (B `\` C).
Proof.
apply/seteqP; split => x /=; first tauto.
#[warnings="-deprecated-syntactic-definition"] by move=> [[a|c]]; rewrite not_andE notE; tauto.
Qed.

Lemma setUDrSource code ASource code BSource code CSource code : A `|` (B `\` C) = (A `|` B) `\` (C `\` A).
Proof.
by rewrite setUC setUDl setUC. Qed.

Lemma setDUKUsed by
  • mathcomp.analysis.measure_theory.signed_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_function
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg
  • mathcomp.classical.cardinality

Source code
ASource code BSource code : A `<=` B -> A `|` (B `\` A) = B.
Proof.
move=> AB; apply/seteqP; split=> [x [/AB//|[//]]|x Bx].
by have [Ax|nAx] := pselect (A x); [left|right].
Qed.

Lemma setDKUUsed by
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_differentiation

Source code
ASource code BSource code : A `<=` B -> (B `\` A) `|` A = B.
Proof.
by move=> /setDUK; rewrite setUC. Qed.

Lemma setDUUsed by
  • mathcomp.analysis.real_measure.lebesgue_measure

Source code
ASource code BSource code CSource code : A `<=` B -> B `<=` C -> C `\` A = (C `\` B) `|` (B `\` A).
Proof.
move=> AB BC; apply/seteqP; split.
  move=> x [Cx Ax].
  by have [Bx|Bx] := pselect (B x); [right|left].
move=> x [[Cx Bx]|[Bx Ax]].
- by split => // /AB.
- by split => //; exact/BC.
Qed.

Lemma setDvUsed by
  • mathcomp.analysis.probability_theory.independence
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.measure_theory.signed_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.compact
  • mathcomp.analysis.lebesgue_integral_theory.radon_nikodym
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integrable
  • mathcomp.classical.fsbigop

Source code
ASource code : A `\` A = set0.
Proof.
by rewrite predeqE => t; split => // -[]. Qed.

Lemma setUvUsed by
  • mathcomp.analysis.probability_theory.exponential_distribution
  • mathcomp.analysis.probability_theory.random_variable
  • mathcomp.analysis.probability_theory.normal_distribution
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.ftc
  • mathcomp.analysis.sequences
  • mathcomp.analysis.lebesgue_integral_theory.radon_nikodym

Source code
ASource code : A `|` ~` A = setT.
Proof.
by apply/predeqP => x; split=> //= _; apply: lem. Qed.

Lemma setvUUsed by
  • mathcomp.analysis.measure_theory.signed_measure
  • mathcomp.analysis.measure_theory.probability_measure
  • mathcomp.analysis.measure_theory.measurable_function
  • mathcomp.analysis.ftc
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_fubini
  • mathcomp.classical.cardinality

Source code
ASource code : ~` A `|` A = setT
Proof.
by rewrite setUC setUv. Qed.

Lemma setUCKSource code ASource code BSource code : (A `|` B) `|` ~` B = setT.
Proof.
by rewrite -setUA setUv setUT. Qed.

Lemma setUKCSource code ASource code BSource code : ~` A `|` (A `|` B) = setT.
Proof.
by rewrite setUA setvU setTU. Qed.

Lemma setICKUsed by
  • mathcomp.analysis.probability_theory.random_variable

Source code
ASource code BSource code : (A `&` B) `&` ~` B = set0.
Proof.
by rewrite -setIA setICr setI0. Qed.

Lemma setIKCSource code ASource code BSource code : ~` A `&` (A `&` B) = set0.
Proof.
by rewrite setIA setICl set0I. Qed.

Lemma setDIKUsed by
  • mathcomp.analysis.measure_theory.signed_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.sequences
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg

Source code
ASource code BSource code : A `&` (B `\` A) = set0.
Proof.
by rewrite setDE setICA -setDE setDv setI0. Qed.

Lemma setDKIUsed by
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_differentiation

Source code
ASource code BSource code : (B `\` A) `&` A = set0.
Proof.
by rewrite setIC setDIK. Qed.

Lemma setD1KUsed by
  • mathcomp.analysis.topology_theory.compact
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg
  • mathcomp.analysis.lebesgue_integral_theory.measurable_fun_approximation
  • mathcomp.classical.filter

Source code
aSource code ASource code : A a -> a |` A `\ a = A.
Proof.
  by move=> Aa; rewrite setDUK//= => x ->. Qed.

Lemma setI1Used by
  • mathcomp.analysis.esum
  • mathcomp.classical.fsbigop

Source code
ASource code aSource code : A `&` [set a] = if a \in A then [set a] else set0.
Proof.
by apply/predeqP => b; case: ifPn; rewrite (inE, notin_setE) => Aa;
   split=> [[]|]//; [move=> -> //|move=> /[swap] -> /Aa].
Qed.

Lemma set1IUsed by
  • mathcomp.analysis.measure_theory.measurable_function
  • mathcomp.classical.filter

Source code
ASource code aSource code : [set a] `&` A = if a \in A then [set a] else set0.
Proof.
by rewrite setIC setI1. Qed.

Lemma subset0Used by
  • mathcomp.analysis.esum
  • mathcomp.analysis.probability_theory.random_variable
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.real_measure.lebesgue_stieltjes_measure
  • mathcomp.analysis.measure_theory.signed_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.realfun
  • mathcomp.analysis.ftc
  • mathcomp.analysis.kernel
  • mathcomp.analysis.ereal
  • mathcomp.analysis.topology_theory.metric_structure
  • mathcomp.analysis.topology_theory.topology_structure
  • mathcomp.analysis.topology_theory.connected
  • mathcomp.analysis.topology_theory.edist
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.compact
  • mathcomp.analysis.sequences
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_definition
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule
  • mathcomp.analysis.normedtype_theory.tvs
  • mathcomp.analysis.normedtype_theory.urysohn
  • mathcomp.analysis.normedtype_theory.num_normedtype
  • mathcomp.classical.set_interval
  • mathcomp.classical.cardinality
  • mathcomp.classical.filter

Source code
ASource code : (A `<=` set0) = (A = set0).
Proof.
by rewrite eqEsubset propeqE; split=> [A0|[]//]; split. Qed.

Lemma subTsetUsed by
  • mathcomp.analysis.probability_theory.random_variable
  • mathcomp.analysis.real_measure.lebesgue_stieltjes_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.cantor
  • mathcomp.analysis.topology_theory.supremum_topology
  • mathcomp.analysis.topology_theory.num_topology
  • mathcomp.analysis.homotopy_theory.wedge_sigT
  • mathcomp.analysis.lebesgue_integral_theory.simple_functions
  • mathcomp.analysis.lebesgue_integral_theory.counting_lebesgue
  • mathcomp.analysis.normedtype_theory.ereal_normedtype
  • mathcomp.reals.real_interval
  • mathcomp.classical.filter

Source code
ASource code : (setT `<=` A) = (A = setT).
Proof.
by rewrite eqEsubset propeqE; split=> [|[]]. Qed.

Lemma sub1setUsed by
  • mathcomp.analysis.esum
  • mathcomp.analysis.probability_theory.random_variable
  • mathcomp.analysis.probability_theory.normal_distribution
  • mathcomp.analysis.measure_theory.signed_measure
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.lebesgue_integral_theory.radon_nikodym
  • mathcomp.analysis.normedtype_theory.vitali_lemma

Source code
xSource code ASource code : ([set x] `<=` A) = (x \in A).
Proof.
by apply/propext; split=> [|/[!inE] xA _ ->//]; rewrite inE; exact. Qed.

Lemma subsetTUsed by
  • mathcomp.analysis.probability_theory.beta_distribution
  • mathcomp.analysis.probability_theory.independence
  • mathcomp.analysis.probability_theory.normal_distribution
  • mathcomp.analysis.probability_theory.bernoulli_distribution
  • mathcomp.analysis.measure_theory.measurable_function
  • mathcomp.analysis.topology_theory.num_topology
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg
  • mathcomp.classical.functions

Source code
ASource code : A `<=` setT
Proof.
by []. Qed.

Lemma subsetWUsed by
  • mathcomp.classical.functions

Source code
{ASource code BSource code} : A = B -> A `<=` B
Proof.
by move->. Qed.

Definition subsetCW

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 494, characters 11-17


Used by
  • mathcomp.classical.functions

Source code
{ASource code BSource code} : A = B -> B `<=` A := subsetW \o esym.

Lemma disj_set2EUsed by
  • mathcomp.analysis.probability_theory.random_variable
  • mathcomp.analysis.ftc
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg
  • mathcomp.analysis.lebesgue_integral_theory.radon_nikodym

Source code
ASource code BSource code : [disjoint A & B] = (A `&` B == set0).
Proof.
by []. Qed.

Lemma disj_set2PUsed by
  • mathcomp.analysis.ftc
  • mathcomp.analysis.lebesgue_integral_theory.radon_nikodym
  • mathcomp.classical.cardinality

Source code
{ASource code BSource code} : reflect (A `&` B = set0) [disjoint A & B]%classic.
Proof.
exact/eqP. Qed.

Lemma disj_setPSUsed by
  • mathcomp.analysis.topology_theory.topology_structure
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_Rintegral
  • mathcomp.classical.functions

Source code
{ASource code BSource code} : reflect (A `&` B `<=` set0) [disjoint A & B]%classic.
Proof.
by rewrite subset0; apply: disj_set2P. Qed.

Lemma disj_set_symUsed by
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.classical.functions

Source code
ASource code BSource code : [disjoint B & A] = [disjoint A & B].
Proof.
by rewrite !disj_set2E setIC. Qed.

Lemma disj_setPClUsed by
  • mathcomp.analysis.probability_theory.exponential_distribution
  • mathcomp.analysis.probability_theory.normal_distribution
  • mathcomp.analysis.ftc

Source code
{ASource code BSource code} : reflect (A `<=` B) [disjoint A & ~` B]%classic.
Proof.
apply: (iffP disj_setPS) => [P t ?|P t [/P//]].
by apply: contrapT => ?; apply: (P t).
Qed.

Lemma disj_setPCrSource code {ASource code BSource code} : reflect (A `<=` B) [disjoint ~` B & A]%classic.
Proof.
by rewrite disj_set_sym; apply: disj_setPCl. Qed.

Lemma disj_setPLRUsed by
  • mathcomp.analysis.ftc
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg

Source code
{ASource code BSource code} : reflect (A `<=` ~` B) [disjoint A & B]%classic.
Proof.
by apply: (equivP idP); rewrite (rwP disj_setPCl) setCK. Qed.

Lemma disj_setPRLUsed by
  • mathcomp.analysis.probability_theory.normal_distribution
  • mathcomp.analysis.ftc
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg

Source code
{ASource code BSource code} : reflect (B `<=` ~` A) [disjoint A & B]%classic.
Proof.
by apply: (equivP idP); rewrite (rwP disj_setPCr) setCK. Qed.

Lemma subsets_disjointUsed by
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.topology_theory.connected
  • mathcomp.analysis.lebesgue_integral_theory.radon_nikodym
  • mathcomp.analysis.normedtype_theory.normed_module

Source code
ASource code BSource code : A `<=` B <-> A `&` ~` B = set0.
Proof.
by rewrite (rwP disj_setPCl) (rwP eqP). Qed.

Lemma disjoints_subsetUsed by
  • mathcomp.analysis.probability_theory.random_variable
  • mathcomp.analysis.probability_theory.bernoulli_distribution
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.cantor
  • mathcomp.analysis.topology_theory.topology_structure
  • mathcomp.analysis.topology_theory.connected
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.sequences
  • mathcomp.analysis.normedtype_theory.urysohn
  • mathcomp.analysis.normedtype_theory.normed_module

Source code
ASource code BSource code : A `&` B = set0 <-> A `<=` ~` B.
Proof.
by rewrite subsets_disjoint setCK. Qed.

Lemma subsetC1Used by
  • mathcomp.analysis.topology_theory.separation_axioms

Source code
xSource code ASource code : (A `<=` [set~ x]) = (x \in ~` A).
Proof.
rewrite !inE; apply/propext; split; first by move/[apply]; apply.
by move=> NAx y; apply: contraPnot => ->.
Qed.

Lemma setSDUsed by
  • mathcomp.analysis.measure_theory.measurable_structure

Source code
CSource code ASource code BSource code : A `<=` B -> A `\` C `<=` B `\` C.
Proof.
by rewrite !setDE; apply: setSI. Qed.

Lemma setTDUsed by
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.measure_theory.signed_measure
  • mathcomp.analysis.measure_theory.measurable_structure

Source code
ASource code : setT `\` A = ~` A.
Proof.
by rewrite predeqE => t; split => // -[]. Qed.

Lemma set0PUsed by
  • mathcomp.analysis.probability_theory.independence
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.real_measure.lebesgue_stieltjes_measure
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.realfun
  • mathcomp.analysis.ereal
  • mathcomp.analysis.topology_theory.order_topology
  • mathcomp.analysis.topology_theory.metric_structure
  • mathcomp.analysis.topology_theory.topology_structure
  • mathcomp.analysis.topology_theory.connected
  • mathcomp.analysis.topology_theory.edist
  • mathcomp.analysis.topology_theory.supremum_topology
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.num_topology
  • mathcomp.analysis.topology_theory.compact
  • mathcomp.analysis.homotopy_theory.wedge_sigT
  • mathcomp.analysis.numfun
  • mathcomp.analysis.sequences
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_definition
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integrable
  • mathcomp.analysis.normedtype_theory.tvs
  • mathcomp.analysis.normedtype_theory.ereal_normedtype
  • mathcomp.analysis.normedtype_theory.urysohn
  • mathcomp.analysis.normedtype_theory.vitali_lemma
  • mathcomp.analysis.normedtype_theory.num_normedtype
  • mathcomp.analysis.normedtype_theory.normed_module
  • mathcomp.reals.reals
  • mathcomp.classical.set_interval
  • mathcomp.classical.cardinality
  • mathcomp.classical.filter
  • mathcomp.reals_stdlib.Rstruct

Source code
ASource code : (A != set0) <-> (A !=set0).
Proof.
split=> [/negP A_neq0|[t tA]]; last by apply/negP => /eqP A0; rewrite A0 in tA.
apply: contrapT => /asboolPn/forallp_asboolPn A0; apply/A_neq0/eqP.
by rewrite eqEsubset; split.
Qed.

Lemma nonemptyPnUsed by
  • mathcomp.analysis.probability_theory.random_variable
  • mathcomp.analysis.topology_theory.connected
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule
  • mathcomp.analysis.normedtype_theory.urysohn
  • mathcomp.analysis.normedtype_theory.vitali_lemma

Source code
ASource code : ~ (A !=set0) <-> A = set0.
Proof.
by split; [|move=> ->]; move/set0P/negP; [move/negbNE/eqP|]. Qed.

Lemma setF_eq0Used by
  • mathcomp.classical.cardinality

Source code
: (T -> False) -> all_equal_to (set0 : set T).
Proof.
by move=> TF A; rewrite -subset0 => x; have := TF x. Qed.

Lemma subset_nonemptyUsed by
  • mathcomp.analysis.borel_hierarchy
  • mathcomp.analysis.topology_theory.topology_structure
  • mathcomp.reals.reals

Source code
ASource code BSource code : A `<=` B -> A !=set0 -> B !=set0.
Proof.
by move=> sAB [x Ax]; exists x; apply: sAB. Qed.

Lemma subsetCUsed by
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.measure_theory.signed_measure
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.measure_theory.measure_negligible
  • mathcomp.analysis.cantor
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_dominated_convergence
  • mathcomp.analysis.lebesgue_integral_theory.radon_nikodym
  • mathcomp.analysis.lebesgue_integral_theory.measurable_fun_approximation
  • mathcomp.analysis.normedtype_theory.urysohn
  • mathcomp.classical.cardinality
  • mathcomp.classical.filter

Source code
ASource code BSource code : A `<=` B -> ~` B `<=` ~` A.
Proof.
by move=> sAB ? nBa ?; apply/nBa/sAB. Qed.

Lemma subsetClUsed by
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg

Source code
ASource code BSource code : ~` A `<=` B -> ~` B `<=` A.
Proof.
by move=> /subsetC; rewrite setCK. Qed.

Lemma subsetCrUsed by
  • mathcomp.analysis.probability_theory.random_variable
  • mathcomp.analysis.topology_theory.connected
  • mathcomp.analysis.normedtype_theory.urysohn

Source code
ASource code BSource code : A `<=` ~` B -> B `<=` ~` A.
Proof.
by move=> /subsetC; rewrite setCK. Qed.

Lemma subsetC2Used by
  • mathcomp.analysis.topology_theory.topology_structure
  • mathcomp.analysis.topology_theory.separation_axioms

Source code
ASource code BSource code : ~` A `<=` ~` B -> B `<=` A.
Proof.
by move=> /subsetC; rewrite !setCK. Qed.

Lemma subsetCPUsed by
  • mathcomp.analysis.topology_theory.topology_structure
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.normedtype_theory.urysohn

Source code
ASource code BSource code : ~` A `<=` ~` B <-> B `<=` A.
Proof.
by split=> /subsetC; rewrite ?setCK. Qed.

Lemma subsetCPlUsed by
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_under

Source code
ASource code BSource code : ~` A `<=` B <-> ~` B `<=` A.
Proof.
by split=> /subsetC; rewrite ?setCK. Qed.

Lemma subsetCPrSource code ASource code BSource code : A `<=` ~` B <-> B `<=` ~` A.
Proof.
by split=> /subsetC; rewrite ?setCK. Qed.

Lemma subsetUlUsed by
  • mathcomp.analysis.esum
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.normedtype_theory.vitali_lemma
  • mathcomp.classical.functions

Source code
ASource code BSource code : A `<=` A `|` B
Proof.
by move=> x; left. Qed.

Lemma subsetUrUsed by
  • mathcomp.analysis.esum
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg

Source code
ASource code BSource code : B `<=` A `|` B
Proof.
by move=> x; right. Qed.

Lemma subUsetUsed by
  • mathcomp.analysis.esum
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.measure_theory.measurable_function
  • mathcomp.analysis.topology_theory.order_topology
  • mathcomp.analysis.topology_theory.connected
  • mathcomp.analysis.normedtype_theory.vitali_lemma
  • mathcomp.analysis.normedtype_theory.normed_module

Source code
ASource code BSource code CSource code : (B `|` C `<=` A) = ((B `<=` A) /\ (C `<=` A)).
Proof.
rewrite propeqE; split => [|[BA CA] x]; last by case; [exact: BA | exact: CA].
by move=> sBC_A; split=> x ?; apply sBC_A; [left | right].
Qed.

Lemma setIidPlUsed by
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.measure_theory.signed_measure
  • mathcomp.analysis.topology_theory.connected
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_differentiation
  • mathcomp.analysis.normedtype_theory.normed_module

Source code
ASource code BSource code : A `&` B = A <-> A `<=` B.
Proof.
rewrite predeqE; split=> [AB t /AB [] //|AB t].
by split=> [[]//|At]; split=> //; exact: AB.
Qed.

Lemma setIidPrSource code ASource code BSource code : A `&` B = B <-> B `<=` A.
Proof.
by rewrite setIC setIidPl. Qed.

Lemma setIidlUsed by
  • mathcomp.analysis.measure_theory.signed_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.ftc
  • mathcomp.analysis.topology_theory.connected
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg
  • mathcomp.analysis.lebesgue_integral_theory.radon_nikodym

Source code
ASource code BSource code : A `<=` B -> A `&` B = A
Proof.
by rewrite setIidPl. Qed.
Lemma setIidrUsed by
  • mathcomp.analysis.probability_theory.uniform_distribution
  • mathcomp.analysis.probability_theory.random_variable
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.measure_theory.measurable_function
  • mathcomp.analysis.ftc
  • mathcomp.analysis.kernel
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.sequences
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_fubini
  • mathcomp.classical.cardinality

Source code
ASource code BSource code : B `<=` A -> A `&` B = B
Proof.
by rewrite setIidPr. Qed.

Lemma setUidPlUsed by
  • mathcomp.analysis.measure_theory.measure_extension

Source code
ASource code BSource code : A `|` B = A <-> B `<=` A.
Proof.
split=> [<- ? ?|BA]; first by right.
rewrite predeqE => t; split=> [[//|/BA//]|?]; by left.
Qed.

Lemma setUidPrSource code ASource code BSource code : A `|` B = B <-> A `<=` B.
Proof.
by rewrite setUC setUidPl. Qed.

Lemma setUidlUsed by
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.classical.set_interval

Source code
ASource code BSource code : B `<=` A -> A `|` B = A
Proof.
by rewrite setUidPl. Qed.
Lemma setUidrUsed by
  • mathcomp.analysis.probability_theory.normal_distribution
  • mathcomp.classical.set_interval

Source code
ASource code BSource code : A `<=` B -> A `|` B = B
Proof.
by rewrite setUidPr. Qed.

Lemma subsetIUsed by
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.cantor
  • mathcomp.analysis.topology_theory.pseudometric_structure
  • mathcomp.analysis.topology_theory.topology_structure
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.sequences
  • mathcomp.analysis.lebesgue_integral_theory.radon_nikodym
  • mathcomp.classical.functions

Source code
ASource code BSource code CSource code : (A `<=` B `&` C) = ((A `<=` B) /\ (A `<=` C)).
Proof.
rewrite propeqE; split=> [H|[y z ??]]; split; by [move=> ?/H[]|apply y|apply z].
Qed.

Lemma setDidPlUsed by
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.topology_theory.connected

Source code
ASource code BSource code : A `\` B = A <-> A `&` B = set0.
Proof.
rewrite setDE disjoints_subset predeqE; split => [AB t|AB t].
by rewrite -AB => -[].
by split=> [[]//|At]; move: (AB t At).
Qed.

Lemma setDidlSource code ASource code BSource code : A `&` B = set0 -> A `\` B = A.
Proof.
by move=> /setDidPl. Qed.

Lemma subIsetUsed by
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.topology_theory.topology_structure
  • mathcomp.analysis.topology_theory.connected
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integrable
  • mathcomp.analysis.lebesgue_integral_theory.measurable_fun_approximation
  • mathcomp.classical.cardinality

Source code
ASource code BSource code CSource code : A `<=` C \/ B `<=` C -> A `&` B `<=` C.
Proof.
case=> sub a; by [move=> [/sub] | move=> [_ /sub]]. Qed.

Lemma subIsetlUsed by
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.topology_theory.topology_structure
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_under
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integrable
  • mathcomp.analysis.lebesgue_integral_theory.measurable_fun_approximation

Source code
ASource code BSource code : A `&` B `<=` A
Proof.
by move=> x []. Qed.

Lemma subIsetrUsed by
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.measure_theory.signed_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.topology_theory.compact
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_under
  • mathcomp.analysis.lebesgue_integral_theory.radon_nikodym

Source code
ASource code BSource code : A `&` B `<=` B
Proof.
by move=> x []. Qed.

Lemma subDsetlUsed by
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.measure_theory.signed_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.sequences
  • mathcomp.analysis.lebesgue_integral_theory.radon_nikodym
  • mathcomp.classical.cardinality

Source code
ASource code BSource code : A `\` B `<=` A.
Proof.
by rewrite setDE; apply: subIsetl. Qed.

Lemma subDsetrSource code ASource code BSource code : A `\` B `<=` ~` B.
Proof.
by rewrite setDE; apply: subIsetr. Qed.

Lemma subsetI_neq0Used by
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.topology_theory.topology_structure
  • mathcomp.analysis.normedtype_theory.vitali_lemma
  • mathcomp.classical.filter

Source code
ASource code BSource code CSource code DSource code :
  A `<=` B -> C `<=` D -> A `&` C !=set0 -> B `&` D !=set0.
Proof.
by move=> AB CD [x [/AB Bx /CD Dx]]; exists x. Qed.

Lemma subsetI_eq0Used by
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.sequences
  • mathcomp.analysis.normedtype_theory.normed_module

Source code
ASource code BSource code CSource code DSource code :
  A `<=` B -> C `<=` D -> B `&` D = set0 -> A `&` C = set0.
Proof.
by move=> AB /(subsetI_neq0 AB); rewrite -!set0P => /contra_eq. Qed.

Lemma setD_eq0Used by
  • mathcomp.analysis.topology_theory.connected
  • mathcomp.analysis.topology_theory.compact
  • mathcomp.classical.cardinality

Source code
ASource code BSource code : (A `\` B = set0) = (A `<=` B).
Proof.
rewrite propeqE; split=> [ADB0 a|sAB].
  by apply: contraPP => nBa xA; rewrite -[False]/(set0 a) -ADB0.
by rewrite predeqE => ?; split=> // - [?]; apply; apply: sAB.
Qed.

Lemma properEneqSource code ASource code BSource code : (A `<` B) = (A != B /\ A `<=` B).
Proof.
rewrite /proper andC propeqE; split => [[BA AB]|[/eqP]].
  by split => //; apply/negP; apply: contra_not BA => /eqP ->.
by rewrite eqEsubset => AB BA; split => //; exact: contra_not AB.
Qed.

Lemma nonsubsetSource code ASource code BSource code : ~ (A `<=` B) -> A `&` ~` B !=set0.
Proof.
by rewrite -setD_eq0 setDE -set0P => /eqP. Qed.

Lemma setU_eq0Source code ASource code BSource code : (A `|` B = set0) = ((A = set0) /\ (B = set0)).
Proof.
by rewrite -!subset0 subUset. Qed.

Lemma setCSUsed by
  • mathcomp.analysis.topology_theory.topology_structure

Source code
ASource code BSource code : (~` A `<=` ~` B) = (B `<=` A).
Proof.
rewrite propeqE; split => [|BA].
  by move/subsets_disjoint; rewrite setCK setIC => /subsets_disjoint.
by apply/subsets_disjoint; rewrite setCK setIC; apply/subsets_disjoint.
Qed.

Lemma setDTUsed by
  • mathcomp.analysis.measure_theory.measurable_structure

Source code
ASource code : A `\` setT = set0.
Proof.
by rewrite setDE setCT setI0. Qed.

Lemma set0DUsed by
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.ftc

Source code
ASource code : set0 `\` A = set0.
Proof.
by rewrite setDE set0I. Qed.

Lemma setD0Used by
  • mathcomp.analysis.real_measure.lebesgue_stieltjes_measure
  • mathcomp.analysis.measure_theory.signed_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.topology_theory.num_topology
  • mathcomp.analysis.lebesgue_integral_theory.radon_nikodym

Source code
ASource code : A `\` set0 = A.
Proof.
by rewrite setDE setC0 setIT. Qed.

Lemma setDSUsed by
  • mathcomp.analysis.measure_theory.signed_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.topology_theory.compact

Source code
CSource code ASource code BSource code : A `<=` B -> C `\` B `<=` C `\` A.
Proof.
by rewrite !setDE -setCS; apply: setIS. Qed.

Lemma setDSSUsed by
  • mathcomp.analysis.measure_theory.signed_measure

Source code
ASource code BSource code CSource code DSource code : A `<=` C -> D `<=` B -> A `\` B `<=` C `\` D.
Proof.
by move=> /(@setSD B) /subset_trans sAC /(@setDS C) /sAC. Qed.

Lemma setCUUsed by
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.topology_theory.topology_structure
  • mathcomp.classical.cardinality

Source code
ASource code BSource code : ~`(A `|` B) = ~` A `&` ~` B.
Proof.
rewrite predeqE => z.
by apply: asbool_eq_equiv; rewrite asbool_and !asbool_neg asbool_or negb_or.
Qed.

Lemma setCIUsed by
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.measure_theory.measure_negligible
  • mathcomp.analysis.topology_theory.order_topology
  • mathcomp.analysis.topology_theory.connected
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.sequences
  • mathcomp.analysis.normedtype_theory.normed_module
  • mathcomp.classical.cardinality
  • mathcomp.classical.filter

Source code
ASource code BSource code : ~` (A `&` B) = ~` A `|` ~` B.
Proof.
by rewrite -[in LHS](setCK A) -[in LHS](setCK B) -setCU setCK. Qed.

Lemma setCDUsed by
  • mathcomp.analysis.probability_theory.random_variable
  • mathcomp.analysis.measure_theory.measurable_structure

Source code
ASource code BSource code : ~` (A `\` B) = ~` A `|` B.
Proof.
by rewrite setDE setCI setCK. Qed.

Lemma setDUrUsed by
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.topology_theory.compact

Source code
ASource code BSource code CSource code : A `\` (B `|` C) = (A `\` B) `&` (A `\` C).
Proof.
by rewrite !setDE setCU setIIr. Qed.

Lemma setIUlUsed by
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.topology_theory.connected
  • mathcomp.analysis.topology_theory.num_topology
  • mathcomp.analysis.topology_theory.compact
  • mathcomp.analysis.sequences
  • mathcomp.classical.fsbigop

Source code
: left_distributive (@setI T) (@setU T).
Proof.
move=> A B C; rewrite predeqE => t; split.
  by move=> [[At|Bt] Ct]; [left|right].
by move=> [[At Ct]|[Bt Ct]]; split => //; [left|right].
Qed.

Lemma setIUrUsed by
  • mathcomp.analysis.probability_theory.random_variable
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.real_measure.lebesgue_stieltjes_measure
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.measure_theory.signed_measure
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.measure_theory.measurable_function
  • mathcomp.analysis.topology_theory.connected
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.sequences
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integrable
  • mathcomp.analysis.lebesgue_integral_theory.measurable_fun_approximation
  • mathcomp.analysis.normedtype_theory.normed_module

Source code
: right_distributive (@setI T) (@setU T).
Proof.
by move=> A B C; rewrite ![A `&` _]setIC setIUl. Qed.

Lemma setUIlUsed by
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.classical.cardinality

Source code
: left_distributive (@setU T) (@setI T).
Proof.
move=> A B C; rewrite predeqE => t; split.
  by move=> [[At Bt]|Ct]; split; by [left|right].
by move=> [[At|Ct] [Bt|Ct']]; by [left|right].
Qed.

Lemma setUIrUsed by
  • mathcomp.analysis.measure_theory.measurable_function

Source code
: right_distributive (@setU T) (@setI T).
Proof.
by move=> A B C; rewrite ![A `|` _]setUC setUIl. Qed.

Lemma setUKUsed by
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg
  • mathcomp.classical.fsbigop

Source code
ASource code BSource code : (A `|` B) `&` A = A.
Proof.
by rewrite eqEsubset; split => [t []//|t ?]; split => //; left. Qed.

Lemma setKUUsed by
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg

Source code
ASource code BSource code : A `&` (B `|` A) = A.
Proof.
by rewrite eqEsubset; split => [t []//|t ?]; split => //; right. Qed.

Lemma setIKSource code ASource code BSource code : (A `&` B) `|` A = A.
Proof.
by rewrite eqEsubset; split => [t [[]//|//]|t At]; right. Qed.

Lemma setKISource code ASource code BSource code : A `|` (B `&` A) = A.
Proof.
by rewrite eqEsubset; split => [t [//|[]//]|t At]; left. Qed.

Lemma setDUlUsed by
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.topology_theory.connected

Source code
: left_distributive setD (@setU T).
Proof.
by move=> A B C; rewrite !setDE setIUl. Qed.

Lemma setUKDSource code ASource code BSource code : A `&` B `<=` set0 -> (A `|` B) `\` A = B.
Proof.
by move=> AB0; rewrite setDUl setDv set0U setDidl// -subset0 setIC. Qed.

Lemma setUDKUsed by
  • mathcomp.analysis.topology_theory.separation_axioms

Source code
ASource code BSource code : A `&` B `<=` set0 -> (B `|` A) `\` A = B.
Proof.
by move=> *; rewrite setUC setUKD. Qed.

Lemma setIDAUsed by
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.sequences
  • mathcomp.analysis.normedtype_theory.normed_module

Source code
ASource code BSource code CSource code : A `&` (B `\` C) = (A `&` B) `\` C.
Proof.
by rewrite !setDE setIA. Qed.

Lemma setIDACUsed by
  • mathcomp.analysis.measure_theory.measurable_structure

Source code
ASource code BSource code CSource code : (A `\` B) `&` C = A `&` (C `\` B).
Proof.
by rewrite setIC !setIDA setIC. Qed.

Lemma setDDUsed by
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_differentiation
  • mathcomp.classical.fsbigop
  • mathcomp.classical.cardinality

Source code
ASource code BSource code : A `\` (A `\` B) = A `&` B.
Proof.
by rewrite 2!setDE setCI setCK setIUr setICr set0U. Qed.

Lemma setDDlUsed by
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.classical.set_interval

Source code
ASource code BSource code CSource code : (A `\` B) `\` C = A `\` (B `|` C).
Proof.
by rewrite !setDE setCU setIA. Qed.

Lemma setDDrUsed by
  • mathcomp.analysis.measure_theory.signed_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.lebesgue_integral_theory.radon_nikodym
  • mathcomp.analysis.lebesgue_integral_theory.measurable_fun_approximation

Source code
ASource code BSource code CSource code : A `\` (B `\` C) = (A `\` B) `|` (A `&` C).
Proof.
by rewrite !setDE setCI setIUr setCK. Qed.

Lemma setDIrUsed by
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.topology_theory.compact
  • mathcomp.analysis.sequences

Source code
ASource code BSource code CSource code : A `\` B `&` C = (A `\` B) `|` (A `\` C).
Proof.
by rewrite !setDE setCI setIUr. Qed.

Lemma setUIDKUsed by
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.lebesgue_integral_theory.radon_nikodym

Source code
ASource code BSource code : (A `&` B) `|` A `\` B = A.
Proof.
by rewrite setUC -setDDr setDv setD0. Qed.

Lemma setDUDUsed by
  • mathcomp.analysis.measure_theory.measurable_structure

Source code
ASource code BSource code CSource code : (A `|` B) `\` C = A `\` C `|` B `\` C.
Proof.
apply/seteqP; split=> [x [[Ax|Bx] Cx]|x [[Ax]|[Bx] Cx]].
- by left.
- by right.
- by split=> //; left.
- by split=> //; right.
Qed.

Lemma setX0Used by
  • mathcomp.analysis.kernel
  • mathcomp.analysis.normedtype_theory.normed_module
  • mathcomp.classical.cardinality

Source code
T'Source code (ASource code : set T) : A `*` set0 = set0 :> set (T * T').
Proof.
by rewrite predeqE => -[t u]; split => // -[]. Qed.

Lemma set0XSource code T'Source code (ASource code : set T') : set0 `*` A = set0 :> set (T * T').
Proof.
by rewrite predeqE => -[t u]; split => // -[]. Qed.

Lemma setXTTUsed by
  • mathcomp.analysis.kernel
  • mathcomp.analysis.topology_theory.product_topology
  • mathcomp.analysis.lebesgue_integral_theory.giry
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_fubini
  • mathcomp.classical.cardinality

Source code
T'Source code : setT `*` setT = setT :> set (T * T').
Proof.
exact/predeqP. Qed.

Lemma setXTUsed by
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_fubini

Source code
T1Source code T2Source code (ASource code : set T1) : A `*` @setT T2 = fst @^-1` A.
Proof.
by rewrite predeqE => -[x y]; split => //= -[]. Qed.

Lemma setTXUsed by
  • mathcomp.analysis.probability_theory.normal_distribution
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.kernel
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_fubini

Source code
T1Source code T2Source code (BSource code : set T2) : @setT T1 `*` B = snd @^-1` B.
Proof.
by rewrite predeqE => -[x y]; split => //= -[]. Qed.

Lemma setXIUsed by
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.kernel
  • mathcomp.analysis.lebesgue_integral_theory.giry
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_fubini

Source code
T1Source code T2Source code (X1Source code : set T1) (X2Source code : set T2) (Y1Source code : set T1) (Y2Source code : set T2) :
  (X1 `&` Y1) `*` (X2 `&` Y2) = X1 `*` X2 `&` Y1 `*` Y2.
Proof.
by rewrite predeqE => -[x y]; split=> [[[? ?] [*]//]|[] [? ?] [*]]. Qed.

Lemma setSXUsed by
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_fubini
  • mathcomp.analysis.normedtype_theory.tvs

Source code
T1Source code T2Source code (CSource code DSource code : set T1) (ASource code BSource code : set T2) :
  A `<=` B -> C `<=` D -> C `*` A `<=` D `*` B.
Proof.
by move=> AB CD x [] /CD Dx1 /AB Bx2. Qed.

Lemma setX_bigcuprUsed by
  • mathcomp.analysis.kernel
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_fubini

Source code
T1Source code T2Source code ISource code (FSource code : I -> set T2) (PSource code : set I) (ASource code : set T1) :
  A `*` \bigcup_(iSource code in P) F i = \bigcup_(iSource code in P) (A `*` F i).
Proof.
rewrite predeqE => -[x y]; split; first by move=> [/= Ax [n Pn Fny]]; exists n.
by move=> [n Pn [/= Ax Fny]]; split => //; exists n.
Qed.

Lemma setX_bigcuplUsed by
  • mathcomp.analysis.kernel
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_fubini

Source code
T1Source code T2Source code ISource code (FSource code : I -> set T2) (PSource code : set I) (ASource code : set T1) :
  \bigcup_(iSource code in P) F i `*` A = \bigcup_(iSource code in P) (F i `*` A).
Proof.
rewrite predeqE => -[x y]; split; first by move=> [[n Pn Fnx] Ax]; exists n.
by move=> [n Pn [/= Ax Fny]]; split => //; exists n.
Qed.

Lemma bigcupX1lUsed by
  • mathcomp.classical.cardinality

Source code
T1Source code T2Source code (A1Source code : set T1) (A2Source code : T1 -> set T2) :
  \bigcup_(iSource code in A1) ([set i] `*` A2 i) = A1 `*`` A2.
Proof.
by apply/predeqP => -[i j]; split=> [[? ? [/= -> //]]|[]]; exists i. Qed.

Lemma bigcupX1rUsed by
  • mathcomp.classical.cardinality

Source code
T1Source code T2Source code (A1Source code : T2 -> set T1) (A2Source code : set T2) :
  \bigcup_(iSource code in A2) (A1 i `*` [set i]) = A1 ``*` A2.
Proof.
by apply/predeqP => -[i j]; split=> [[? ? [? /= -> //]]|[]]; exists j. Qed.

Lemma setY0Source code : right_id set0 (@setY T).
Proof.
by move=> A; rewrite /setY setD0 set0D setU0. Qed.

Lemma set0YSource code : left_id set0 (@setY T).
Proof.
by move=> A; rewrite /setY set0D setD0 set0U. Qed.

Lemma setYKUsed by
  • mathcomp.analysis.measure_theory.measurable_structure

Source code
ASource code : A `+` A = set0.
Proof.
by rewrite /setY setDv setU0. Qed.

Lemma setYCSource code : commutative (@setY T).
Proof.
by move=> A B; rewrite /setY setUC. Qed.

Lemma setYTCSource code ASource code : A `+` [set: T] = ~` A.
Proof.
by rewrite /setY setDT set0U setTD. Qed.

Lemma setTYCSource code ASource code : [set: T] `+` A = ~` A.
Proof.
by rewrite setYC setYTC. Qed.

Lemma setYASource code : associative (@setY T).
Proof.
move=> A B C; rewrite /setY; apply/seteqP; split => x/=;
by have [|] := pselect (A x); have [|] := pselect (B x);
  have [|] := pselect (C x); tauto.
Qed.

Lemma setIYlSource code : left_distributive (@setI T) (@setY T).
Proof.
move=> A B C; rewrite /setY; apply/seteqP; split => x/=;
by have [|] := pselect (A x); have [|] := pselect (B x);
  have [|] := pselect (C x); tauto.
Qed.

Lemma setIYrSource code : right_distributive (@setI T) (@setY T).
Proof.
by move=> A B C; rewrite setIC setIYl -2!(setIC A). Qed.

Lemma setY_defSource code ASource code BSource code : A `+` B = (A `\` B) `|` (B `\` A).
Proof.
by []. Qed.

Lemma setYESource code ASource code BSource code : A `+` B = (A `|` B) `\` (A `&` B).
Proof.
rewrite /setY; apply/seteqP; split => x/=;
by have [|] := pselect (A x); have [|] := pselect (B x); tauto.
Qed.

Lemma setYUUsed by
  • mathcomp.analysis.measure_theory.measurable_structure

Source code
ASource code BSource code : (A `+` B) `+` (A `&` B) = A `|` B.
Proof.
rewrite /setY; apply/seteqP; split => x/=;
by have [|] := pselect (A x); have [|] := pselect (B x); tauto.
Qed.

Lemma setYISource code ASource code BSource code : (A `|` B) `\` (A `+` B) = A `&` B.
Proof.
rewrite /setY; apply/seteqP; split => x/=;
by have [|] := pselect (A x); have [|] := pselect (B x); tauto.
Qed.

Lemma setYDUsed by
  • mathcomp.analysis.measure_theory.measurable_structure

Source code
ASource code BSource code : A `+` (A `&` B) = A `\` B.
Proof.
by rewrite /setY; apply/seteqP; split => x/=; tauto. Qed.

Lemma setYCTSource code ASource code : A `+` ~` A = [set: T].
Proof.
by rewrite /setY setDE setCK setIid setDE setIid setUv. Qed.

Lemma setCYTSource code ASource code : ~` A `+` A = [set: T].
Proof.
by rewrite setYC setYCT. Qed.

Lemma not_setD1Used by
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg
  • mathcomp.classical.set_interval

Source code
aSource code ASource code : ~ A a -> A `\ a = A.
Proof.
by move=> NDr; apply/setDidPl/disjoints_subset/subsetCr => _ ->. Qed.

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 set_cstUsed by
  • mathcomp.analysis.ereal
  • mathcomp.reals.reals

Source code
{TSource code ISource code} (xSource code : T) (ASource code : set I) :
  [set x | _ in A] = if A == set0 then set0 else [set x].
Proof.
apply/seteqP; split=> [_ [i +] <-|t]; first by case: ifPn => // /eqP ->.
by case: ifPn => // /set0P[i Ai ->{t}]; exists i.
Qed.

Section set_order.
Import Order.TTheory.

Lemma set_eq_leUsed by
  • mathcomp.analysis.lebesgue_integral_theory.measurable_fun_approximation

Source code
dSource code (rTSource code : porderType d) TSource code (fSource code gSource code : T -> rT) :
  [set xSource code | f x = g x] = [set xSource code | (f x <= g x)%O] `&` [set xSource code | (f x >= g x)%O].
Proof.
by apply/seteqP; split => [x/= ->//|x /andP]; rewrite -eq_le =>/eqP. Qed.

Lemma set_neq_ltUsed by
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integrable
  • mathcomp.analysis.lebesgue_integral_theory.measurable_fun_approximation

Source code
dSource code (rTSource code : orderType d) TSource code (fSource code gSource code : T -> rT) :
  [set xSource code | f x != g x ] = [set xSource code | (f x < g x)%O] `|` [set xSource code | (f x > g x)%O].
Proof.
by apply/seteqP; split => [x/=|x /=]; rewrite neq_lt => /orP. Qed.

End set_order.

Lemma image2EUsed by
  • mathcomp.classical.cardinality

Source code
{TASource code TBSource code rTSource code : Type} (ASource code : set TA) (BSource code : set TB) (fSource code : TA -> TB -> rT) :
  [set f x y | xSource code in A & ySource code in B] = uncurry f @` (A `*` B).
Proof.
apply/predeqP => x; split=> [[a ? [b ? <-]]|[[a b] [? ? <-]]]/=;
by [exists (a, b) | exists a => //; exists b].
Qed.

Lemma set_nilSource code (TSource code : eqType) : [set` [::]] = @set0 T.
Proof.
by rewrite predeqP. Qed.

Lemma set_cons1Used by
  • mathcomp.analysis.normedtype_theory.vitali_lemma

Source code
 (TSource code : eqType) (xSource code : T) : [set` [:: x]] = [set x].
Proof.
by apply/seteqP; split => y /=; rewrite ?inE => /eqP. Qed.

Lemma set_seq_eq0Used by
  • mathcomp.analysis.probability_theory.independence

Source code
 (TSource code : eqType) (SSource code : seq T) : ([set` S] == set0) = (S == [::]).
Proof.
apply/eqP/eqP=> [|->]; rewrite predeqE //; case: S => // h t /(_ h).
by rewrite /= mem_head => -[/(_ erefl)].
Qed.

Lemma set_fset_eq0Source code (TSource code : choiceType) (SSource code : {fset T}) :
  ([set` S] == set0) = (S == fset0).
Proof.
by rewrite set_seq_eq0. Qed.

Section InitialSegment.

Lemma II0Used by
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.topology_theory.compact
  • mathcomp.classical.cardinality
  • mathcomp.classical.filter

Source code
: `I_0 = set0
Proof.
by rewrite predeqE. Qed.

Lemma II1Source code : `I_1 = [set 0]
Proof.
by rewrite predeqE; case. Qed.

Lemma IIn_eq0Used by
  • mathcomp.classical.cardinality

Source code
nSource code : `I_n = set0 -> n = 0.
Proof.
by case: n => // n; rewrite predeqE; case/(_ 0%N); case. Qed.

Lemma IISUsed by
  • mathcomp.classical.functions

Source code
nSource code : `I_n.+1 = `I_n `|` [set n].
Proof.
rewrite /mkset predeqE => i; split => [|[|->//]].
by rewrite ltnS leq_eqVlt => /orP[/eqP ->|]; by [left|right].
by move/ltn_trans; apply.
Qed.

Lemma IISlSource code nSource code : `I_n.+1 = n |` `I_n.
Proof.
by rewrite setUC IIS. Qed.

Lemma IIDnSource code nSource code : `I_n.+1 `\ n = `I_n.
Proof.
by rewrite IIS setUDK// => x [->/=]; rewrite ltnn. Qed.

Lemma setI_IIUsed by
  • mathcomp.classical.cardinality

Source code
mSource code nSource code : `I_m `&` `I_n = `I_(minn m n).
Proof.
by (case: leqP => mn; [rewrite setIidl// | rewrite setIidr//])
   => k /= /leq_trans; apply => //; apply: ltnW.
Qed.

Lemma setU_IISource code mSource code nSource code : `I_m `|` `I_n = `I_(maxn m n).
Proof.
by (case: leqP => mn; [rewrite setUidr// | rewrite setUidl//])
   => k /= /leq_trans; apply => //; apply: ltnW.
Qed.

Lemma IiotaUsed by
  • mathcomp.classical.fsbigop

Source code
 (nSource code : nat) : [set` iota 0 n] = `I_n.
Proof.
by apply/seteqP; split => [|] ?; rewrite /= mem_iota add0n. Qed.

Definition ordII

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 813, characters 11-19


Used by
  • mathcomp.classical.functions

Source code
{nSource code} (kSource code : 'I_n) : `I_n := SigSub (@mem_set _ `I_n _ (ltn_ord k)).
Definition IIord

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 1295, characters 11-16


Used by
  • mathcomp.classical.functions
  • mathcomp.classical.cardinality

Source code
{nSource code} (kSource code : `I_n) := Ordinal (set_valP k).

Definition ordIIK

IIord : forall {n : nat}, `I_n -> 'I_n IIord is not universe polymorphic Arguments IIord {n}%_nat_scope k IIord is transparent Expands to: Constant mathcomp.classical.classical_sets.IIord Declared in library mathcomp.classical.classical_sets, line 1296, characters 11-16


Used by
  • mathcomp.classical.functions

Source code
{nSource code} : cancel (@ordII n) IIord.
Proof.
by move=> k; apply/val_inj. Qed.

Lemma IIordKUsed by
  • mathcomp.classical.functions

Source code
{nSource code} : cancel (@IIord n) ordII.
Proof.
by move=> k; apply/val_inj. Qed.

Lemma setC_IUsed by
  • mathcomp.analysis.measure_theory.measure_function

Source code
nSource code : ~` `I_n = [set kSource code | n <= k].
Proof.
by apply/seteqP; split => [x /negP|x /= nx]; last apply/negP; rewrite -leqNgt.
Qed.

Lemma mem_not_IUsed by
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.measure_theory.measure_function

Source code
NSource code nSource code : (n \in ~` `I_N) = (N <= n).
Proof.
by rewrite in_setC /mkset /in_mem /mem /= /in_set asboolb -leqNgt. Qed.

End InitialSegment.

Lemma setT_unitSource code : [set: unit] = [set tt].
Proof.
by apply/seteqP; split => // -[]. Qed.

Lemma set_unitSource code (ASource code : set unit) : A = set0 \/ A = setT.
Proof.
have [->|/set0P[[] Att]] := eqVneq A set0; [by left|right].
by apply/seteqP; split => [|] [].
Qed.

Lemma setT_boolUsed by
  • mathcomp.analysis.probability_theory.independence
  • mathcomp.analysis.probability_theory.bernoulli_distribution
  • mathcomp.analysis.measure_theory.measurable_function
  • mathcomp.analysis.topology_theory.bool_topology

Source code
: [set: bool] = [set true; false].
Proof.
by rewrite eqEsubset; split => // [[]] // _; [left|right]. Qed.

Lemma set_boolUsed by
  • mathcomp.analysis.probability_theory.independence
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.kernel

Source code
 (BSource code : set bool) :
  [\/ B == [set true], B == [set false], B == set0 | B == setT].
Proof.
have [Bt|Bt] := boolP (true \in B); have [Bf|Bf] := boolP (false \in B).
- 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 fdisjoint_csetSource code (TSource code : choiceType) (ASource code BSource code : {fset T}) :
  [disjoint A & B]%fset = [disjoint [set` A] & [set` B]].
Proof.
rewrite -fsetI_eq0; apply/idP/idP; apply: contraLR.
by move=> /set0P[t [tA tB]]; apply/fset0Pn; exists t; rewrite inE; apply/andP.
by move=> /fset0Pn[t]; rewrite inE => /andP[tA tB]; apply/set0P; exists t.
Qed.

Section SetFset.
Context {TSource code : choiceType}.
Implicit Types (x y : T) (A B : {fset T}).

Lemma set_fset0Used by
  • mathcomp.classical.cardinality
  • mathcomp.classical.filter

Source code
: [set ySource code : T | y \in fset0] = set0.
Proof.
by rewrite -subset0 => x. Qed.

Lemma set_fset1Used by
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.topology_theory.order_topology
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.classical.cardinality
  • mathcomp.classical.filter

Source code
xSource code : [set ySource code | y \in [fset x]%fset] = [set x].
Proof.
by rewrite predeqE => y; split; rewrite /= inE => /eqP. Qed.

Lemma set_fsetISource code ASource code BSource code : [set` (A `&` B)%fset] = [set` A] `&` [set` B].
Proof.
by rewrite predeqE => x; split; rewrite /= !inE; [case/andP|case=> -> ->].
Qed.

Lemma set_fsetIrSource code (PSource code : {pred T}) (ASource code : {fset T}) :
  [set` [fset x | xSource code in A & P x]%fset] = [set` A] `&` [set` P].
Proof.
by apply/predeqP => x /=; split; rewrite 2!inE/= => /andP. Qed.

Lemma set_fsetUUsed by
  • mathcomp.analysis.topology_theory.order_topology
  • mathcomp.analysis.normedtype_theory.tvs
  • mathcomp.classical.cardinality
  • mathcomp.classical.filter

Source code
ASource code BSource code :
  [set` (A `|` B)%fset] = [set` A] `|` [set` B].
Proof.
rewrite predeqE => x; split; rewrite /= !inE.
  by case/orP; [left|right].
by move=> []->; rewrite ?orbT.
Qed.

Lemma set_fsetU1Source code xSource code ASource code : [set ySource code | y \in (x |` A)%fset] = x |` [set` A].
Proof.
by rewrite set_fsetU set_fset1. Qed.

Lemma set_fsetDUsed by
  • mathcomp.classical.cardinality

Source code
ASource code BSource code :
  [set` (A `\` B)%fset] = [set` A] `\` [set` B].
Proof.
rewrite predeqE => x; split; rewrite /= !inE; last by move=> [-> /negP ->].
by case/andP => /negP xNB xA.
Qed.

Lemma set_fsetD1Used by
  • mathcomp.classical.filter

Source code
ASource code xSource code : [set ySource code | y \in (A `\ x)%fset] = [set` A] `\ x.
Proof.
by rewrite set_fsetD set_fset1. Qed.

Lemma set_imfsetUsed by
  • mathcomp.analysis.topology_theory.supremum_topology
  • mathcomp.analysis.topology_theory.compact
  • mathcomp.analysis.normedtype_theory.tvs

Source code
 (keySource code : unit) [KSource code : choiceType] (fSource code : T -> K) (pSource code : finmempred T) :
  [set` imfset key f p] = f @` [set` p].
Proof.
apply/predeqP => x; split=> [/imfsetP[i ip -> /=]|]; first by exists i.
by move=> [i ip <-]; apply: in_imfset.
Qed.

End SetFset.

Section SetMonoids.
Variable (TSource code : Type).

Import Monoid.
HBSource code.instanceSource code DefinitionSource code _Source code :=Source code isComLawSource code.Build (set T) set0 setU setUA setUC set0U.
HBSource code.instanceSource code DefinitionSource code _Source code :=Source code isMulLawSource code.Build (set T) setT setU setTU setUT.
HBSource code.instanceSource code DefinitionSource code _Source code :=Source code isComLawSource code.Build (set T) setT setI setIA setIC setTI.
HBSource code.instanceSource code DefinitionSource code _Source code :=Source code isMulLawSource code.Build (set T) set0 setI set0I setI0.
HBSource code.instanceSource code DefinitionSource code _Source code :=Source code isAddLawSource code.Build (set T) setU setI setUIl setUIr.
HBSource code.instanceSource code DefinitionSource code _Source code :=Source code isAddLawSource code.Build (set T) setI setU setIUl setIUr.

HBSource code.instanceSource code DefinitionSource code _Source code :=Source code isComLawSource code.Build (set T) set0 setY setYA setYC set0Y.
HBSource code.instanceSource code DefinitionSource code _Source code :=Source code isAddLawSource code.Build (set T) setI setY setIYl setIYr.

End SetMonoids.

Section base_image_lemmas.
Context {aTSource code rTSource code : Type}.
Implicit Types (A B : set aT) (f : aT -> rT) (Y : set rT).

Lemma imagePUsed by
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.derive

Source code
fSource code ASource code aSource code : A a -> (f @` A) (f a)
Proof.
by exists a. Qed.

Lemma image_fUsed by
  • mathcomp.analysis.probability_theory.random_variable
  • mathcomp.analysis.topology_theory.subtype_topology

Source code
fSource code ASource code aSource code : a \in A -> f a \in [set f x | xSource code in A].
Proof.
by rewrite !inE; apply/imageP. Qed.

Lemma imageTUsed by
  • mathcomp.analysis.sequences
  • mathcomp.analysis.lebesgue_integral_theory.simple_functions
  • mathcomp.analysis.normedtype_theory.normed_module
  • mathcomp.reals.reals
  • mathcomp.classical.functions

Source code
 (fSource code : aT -> rT) (aSource code : aT) : range f (f a).
Proof.
by apply: imageP. Qed.

Lemma mem_rangeUsed by
  • mathcomp.analysis.showcase.pnt

Source code
fSource code aSource code : f a \in range f.
Proof.
by rewrite !inE; apply/imageT. Qed.

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 {aTSource code rTSource code : Type}.
Implicit Types (A B : set aT) (f : aT -> rT) (Y : set rT).

Lemma image_injUsed by
  • mathcomp.analysis.topology_theory.topology_structure
  • mathcomp.classical.set_interval

Source code
{fSource code ASource code aSource code} : injective f -> (f @` A) (f a) = A a.
Proof.
by move=> f_inj; rewrite propeqE; split => [[b Ab /f_inj <-]|/(imageP f)//].
Qed.

Lemma mem_imageSource code {fSource code ASource code aSource code} : injective f ->
   (f a \in [set f x | xSource code in A]) = (a \in A).
Proof.
by move=> /image_inj finj; apply/idP/idP; rewrite !inE finj. Qed.

Lemma image_idUsed by
  • mathcomp.analysis.probability_theory.bernoulli_distribution
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.ereal
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.num_topology
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.sequences
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule
  • mathcomp.reals.reals
  • mathcomp.classical.set_interval

Source code
ASource code : id @` A = A.
Proof.
by rewrite eqEsubset; split => a; [case=> /= x Ax <-|exists a]. Qed.

Lemma homo_setPUsed by
  • mathcomp.classical.functions

Source code
{ASource code YSource code fSource code} :
  {homo f : xSource code / x \in A >-> x \in Y} <-> {homo f : xSource code / A x >-> Y x}.
Proof.
by split=> fAY x; have := fAY x; rewrite !inE. Qed.

Lemma image_subPUsed by
  • mathcomp.analysis.realfun
  • mathcomp.classical.functions
  • mathcomp.classical.cardinality

Source code
{ASource code YSource code fSource code} : f @` A `<=` Y <-> {homo f : xSource code / A x >-> Y x}.
Proof.
by split=> fAY x => [Ax|[y + <-]]; apply: fAY=> //; exists x. Qed.

Lemma image_subUsed by
  • mathcomp.analysis.topology_theory.uniform_structure

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

Lemma imsub1Used by
  • mathcomp.analysis.normedtype_theory.urysohn

Source code
xSource code ASource code fSource code : f @` A `<=` [set x] -> forall aSource code, A a -> f a = x.
Proof.
by move=> + a Aa; apply; exists a. Qed.

Lemma imsub1PUsed by
  • mathcomp.analysis.normedtype_theory.urysohn

Source code
xSource code ASource code fSource code : f @` A `<=` [set x] <-> forall aSource code, A a -> f a = x.
Proof.
by split=> [/(@imsub1 _)//|+ _ [a Aa <-]]; apply. Qed.

Lemma image_setUUsed by
  • mathcomp.analysis.topology_theory.num_topology
  • mathcomp.reals.reals

Source code
fSource code ASource code BSource code : f @` (A `|` B) = f @` A `|` f @` B.
Proof.
rewrite eqEsubset; split => b.
- by case=> a [] Ha <-; [left | right]; apply imageP.
- by case=> -[] a Ha <-; apply imageP; [left | right].
Qed.

Lemma image_set0Used by
  • mathcomp.analysis.esum
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.ereal
  • mathcomp.analysis.topology_theory.edist
  • mathcomp.analysis.normedtype_theory.tvs
  • mathcomp.analysis.normedtype_theory.urysohn
  • mathcomp.reals.reals
  • mathcomp.classical.fsbigop
  • mathcomp.classical.cardinality

Source code
fSource code : f @` set0 = set0.
Proof.
by rewrite eqEsubset; split => b // -[]. Qed.

Lemma image_set0_set0Source code ASource code fSource code : f @` A = set0 -> A = set0.
Proof.
move=> fA0; rewrite predeqE => t; split => // At.
by have : set0 (f t) by rewrite -fA0; exists t.
Qed.

Lemma image_set1Used by
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.realfun
  • mathcomp.analysis.ereal
  • mathcomp.analysis.topology_theory.num_topology
  • mathcomp.reals.reals
  • mathcomp.classical.functions

Source code
fSource code tSource code : f @` [set t] = [set f t].
Proof.
by rewrite eqEsubset; split => [b [a' -> <-] //|b ->]; exact/imageP. Qed.

Lemma subset_set1Used by
  • mathcomp.analysis.ereal
  • mathcomp.analysis.topology_theory.topology_structure
  • mathcomp.analysis.sequences
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg

Source code
ASource code aSource code : A `<=` [set a] -> A = set0 \/ A = [set a].
Proof.
move=> Aa; have [/eqP|/set0P[t At]] := boolP (A == set0); first by left.
by right; rewrite eqEsubset; split => // ? ->; rewrite -(Aa _ At).
Qed.

Lemma subset_set2Used by
  • mathcomp.analysis.probability_theory.bernoulli_distribution
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.measure_theory.measurable_function

Source code
ASource code aSource code bSource code : A `<=` [set a; b] ->
  [\/ A = set0, A = [set a], A = [set b] | A = [set a; b]].
Proof.
have [<-|ab Aab] := pselect (a = b).
  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 sub_image_setIUsed by
  • mathcomp.analysis.topology_theory.subspace_topology

Source code
fSource code ASource code BSource code : f @` (A `&` B) `<=` f @` A `&` f @` B.
Proof.
by move=> b [x [Aa Ba <-]]; split; apply: imageP. Qed.

Lemma nonempty_imageSource code fSource code ASource code : f @` A !=set0 -> A !=set0.
Proof.
by case=> b [a]; exists a. Qed.

Lemma image_nonemptyUsed by
  • mathcomp.analysis.derive
  • mathcomp.reals.reals

Source code
fSource code ASource code : A !=set0 -> f @` A !=set0.
Proof.
by move=> [x] Ax; exists (f x), x. Qed.

Lemma image_subsetUsed by
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.numfun
  • mathcomp.reals.reals
  • mathcomp.classical.functions
  • mathcomp.classical.cardinality
  • mathcomp.classical.filter

Source code
fSource code ASource code BSource code : A `<=` B -> f @` A `<=` f @` B.
Proof.
by move=> AB _ [a Aa <-]; exists a => //; apply/AB. Qed.

Lemma preimage_set0Used by
  • mathcomp.analysis.probability_theory.random_variable
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.measure_theory.signed_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.kernel
  • mathcomp.classical.filter

Source code
fSource code : f @^-1` set0 = set0
Proof.
exact/predeqP. Qed.

Lemma preimage_setTUsed by
  • mathcomp.analysis.probability_theory.random_variable
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.measure_theory.measurable_function
  • mathcomp.analysis.kernel
  • mathcomp.analysis.topology_theory.quotient_topology

Source code
fSource code : f @^-1` setT = setT
Proof.
by []. Qed.

Lemma nonempty_preimageSource code fSource code YSource code : f @^-1` Y !=set0 -> Y !=set0.
Proof.
by case=> [t ?]; exists (f t). Qed.

Lemma preimage_imageUsed by
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.initial_topology
  • mathcomp.analysis.topology_theory.one_point_compactification
  • mathcomp.analysis.topology_theory.sigT_topology
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.homotopy_theory.wedge_sigT
  • mathcomp.classical.filter

Source code
fSource code ASource code : A `<=` f @^-1` (f @` A).
Proof.
by move=> a Aa; exists a. Qed.

Lemma preimage_rangeUsed by
  • mathcomp.analysis.probability_theory.random_variable
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.sequences

Source code
fSource code : f @^-1` (range f) = [set: aT].
Proof.
by rewrite eqEsubset; split=> x // _; exists x. Qed.

Lemma image_preimage_subsetUsed by
  • mathcomp.analysis.functional_analysis.hahn_banach_theorem
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.classical.cardinality
  • mathcomp.classical.filter

Source code
fSource code YSource code : f @` (f @^-1` Y) `<=` Y.
Proof.
by move=> _ [t /= Yft <-]. Qed.

Lemma image_preimageUsed by
  • mathcomp.analysis.ereal
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.initial_topology
  • mathcomp.classical.filter

Source code
fSource code YSource code : f @` setT = setT -> f @` (f @^-1` Y) = Y.
Proof.
move=> fsurj; rewrite predeqE => x; split; first by move=> [? ? <-].
move=> Yx; have : setT x by [].
by rewrite -fsurj => - [y _ fy_eqx]; exists y => //=; rewrite fy_eqx.
Qed.

Lemma eq_imagelUsed by
  • mathcomp.analysis.esum
  • mathcomp.analysis.realfun
  • mathcomp.analysis.ereal
  • mathcomp.reals.reals
  • mathcomp.classical.cardinality

Source code
T1Source code T2Source code (ASource code : set T1) (fSource code f'Source code : T1 -> T2) :
  (forall xSource code, A x -> f x = f' x) -> f @` A = f' @` A.
Proof.
by move=> h; rewrite predeqE=> y; split=> [][x ? <-]; exists x=> //; rewrite h.
Qed.

Lemma eq_image_idSource code gSource code ASource code : (forall xSource code, A x -> g x = x) -> g @` A = A.
Proof.
by move=> /eq_imagel->; rewrite image_id. Qed.

Lemma preimage_setUUsed by
  • mathcomp.analysis.probability_theory.random_variable
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.lebesgue_integral_theory.measurable_fun_approximation

Source code
fSource code Y1Source code Y2Source code : f @^-1` (Y1 `|` Y2) = f @^-1` Y1 `|` f @^-1` Y2.
Proof.
exact/predeqP. Qed.

Lemma preimage_setIUsed by
  • mathcomp.analysis.probability_theory.random_variable
  • mathcomp.analysis.measure_theory.signed_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.initial_topology
  • mathcomp.analysis.homotopy_theory.wedge_sigT
  • mathcomp.analysis.numfun
  • mathcomp.analysis.normedtype_theory.urysohn

Source code
fSource code Y1Source code Y2Source code : f @^-1` (Y1 `&` Y2) = f @^-1` Y1 `&` f @^-1` Y2.
Proof.
exact/predeqP. Qed.

Lemma preimage_setCUsed by
  • mathcomp.analysis.ess_sup_inf
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.measure_theory.measurable_function
  • mathcomp.analysis.topology_theory.topology_structure
  • mathcomp.classical.filter

Source code
fSource code YSource code : ~` (f @^-1` Y) = f @^-1` (~` Y).
Proof.
by rewrite predeqE => a; split=> nAfa ?; apply: nAfa. Qed.

Lemma preimage_subsetUsed by
  • mathcomp.analysis.probability_theory.random_variable
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.initial_topology
  • mathcomp.analysis.topology_theory.subspace_topology

Source code
fSource code Y1Source code Y2Source code : Y1 `<=` Y2 -> f @^-1` Y1 `<=` f @^-1` Y2.
Proof.
by move=> Y12 t /Y12. Qed.

Lemma nonempty_preimage_setISource code fSource code Y1Source code Y2Source code :
  (f @^-1` (Y1 `&` Y2)) !=set0 <-> (f @^-1` Y1 `&` f @^-1` Y2) !=set0.
Proof.
by split; case=> t ?; exists t. Qed.

Lemma preimage_bigcupUsed by
  • mathcomp.analysis.probability_theory.random_variable
  • mathcomp.analysis.measure_theory.signed_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.sequences

Source code
{ISource code} (PSource code : set I) fSource code (FSource code : I -> set rT) :
  f @^-1` (\bigcup_ (iSource code in P) F i) = \bigcup_(iSource code in P) (f @^-1` F i).
Proof.
exact/predeqP. Qed.

Lemma preimage_bigcapUsed by
  • mathcomp.analysis.probability_theory.random_variable
  • mathcomp.analysis.topology_theory.function_spaces

Source code
{ISource code} (PSource code : set I) fSource code (FSource code : I -> set rT) :
  f @^-1` (\bigcap_ (iSource code in P) F i) = \bigcap_(iSource code in P) (f @^-1` F i).
Proof.
exact/predeqP. Qed.

Lemma eq_preimageUsed by
  • mathcomp.analysis.measure_theory.measurable_function
  • mathcomp.classical.fsbigop

Source code
{ISource code TSource code : Type} (DSource code : set I) (ASource code : set T) (FSource code GSource code : I -> T) :
  {in D, F =1 G} -> D `&` F @^-1` A = D `&` G @^-1` A.
Proof.
move=> eqFG; apply/predeqP => i.
by split=> [] [Di FAi]; split; rewrite /preimage//= (eqFG,=^~eqFG) ?inE.
Qed.

Lemma notin_setI_preimageSource code TSource code RSource code DSource code (fSource code : T -> R) iSource code :
  i \notin f @` D -> D `&` f @^-1` [set i] = set0.
Proof.
by rewrite notin_setE/=; apply: contra_notP => /eqP/set0P[t [Dt fit]]; exists t.
Qed.

Lemma comp_preimageUsed by
  • mathcomp.analysis.probability_theory.random_variable
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.measure_theory.measurable_function
  • mathcomp.analysis.kernel
  • mathcomp.analysis.topology_theory.quotient_topology
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule

Source code
T1Source code T2Source code T3Source code (ASource code : set T3) (gSource code : T1 -> T2) (fSource code : T2 -> T3) :
  (f \o g) @^-1` A = g @^-1` (f @^-1` A).
Proof.
by []. Qed.

Lemma preimage_idUsed by
  • mathcomp.analysis.probability_theory.random_variable
  • mathcomp.analysis.measure_theory.measure_function

Source code
TSource code (ASource code : set T) : id @^-1` A = A
Proof.
by []. Qed.

Lemma preimage_compUsed by
  • mathcomp.analysis.lebesgue_integral_theory.measurable_fun_approximation

Source code
T1Source code T2Source code (gSource code : T1 -> rT) (fSource code : T2 -> rT) (CSource code : set T1) :
  f @^-1` [set g x | xSource code in C] = [set xSource code | f x \in g @` C].
Proof.
rewrite predeqE => t; split => /=.
  by move=> -[r Cr <-]; rewrite inE;  exists r.
by rewrite inE => -[r Cr <-]; exists r.
Qed.

Lemma preimage_setI_eq0Source code (fSource code : aT -> rT) (Y1Source code Y2Source code : set rT) :
  f @^-1` (Y1 `&` Y2) = set0 <-> f @^-1` Y1 `&` f @^-1` Y2 = set0.
Proof.
by split; apply: contraPP => /eqP/set0P/(nonempty_preimage_setI f _ _).2/set0P/eqP.
Qed.

Lemma preimage0eqSource code (fSource code : aT -> rT) (YSource code : set rT) : Y = set0 -> f @^-1` Y = set0.
Proof.
by move=> ->; rewrite preimage_set0. Qed.

Lemma preimage0Used by
  • mathcomp.analysis.measure_theory.measurable_function

Source code
{TSource code RSource code} {fSource code : T -> R} {ASource code : set R} :
  A `&` range f `<=` set0 -> f @^-1` A = set0.
Proof.
by rewrite -subset0 => + x /= Afx => /(_ (f x))[]; split. Qed.

Lemma preimage10PSource code {TSource code RSource code} {fSource code : T -> R} {xSource code} : ~ range f x <-> f @^-1` [set x] = set0.
Proof.
split => [fx|]; first by rewrite preimage0// => ? [->].
by apply: contraPnot => -[t _ <-] /seteqP[+ _] => /(_ t) /=.
Qed.

Lemma preimage10Used by
  • mathcomp.analysis.probability_theory.random_variable
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg
  • mathcomp.analysis.lebesgue_integral_theory.simple_functions
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_definition

Source code
{TSource code RSource code} {fSource code : T -> R} {xSource code} : ~ range f x -> f @^-1` [set x] = set0.
Proof.
by move/preimage10P. Qed.

Lemma preimage_trueUsed by
  • mathcomp.analysis.real_measure.measurable_realfun

Source code
{TSource code} (PSource code : {pred T}) : P @^-1` [set true] = [set` P].
Proof.
by apply/seteqP; split => [x/=//|x]. Qed.

Lemma preimage_falseUsed by
  • mathcomp.analysis.real_measure.measurable_realfun

Source code
{TSource code} (PSource code : {pred T}) : P @^-1` [set false] = ~` [set` P].
Proof.
by apply/seteqP; split => [t/= /negbT/negP|t /= /negP/negbTE]. Qed.

Lemma preimage_mem_trueUsed by
  • mathcomp.analysis.probability_theory.normal_distribution
  • mathcomp.analysis.lebesgue_integral_theory.radon_nikodym

Source code
{TSource code} (ASource code : set T) : mem A @^-1` [set true] = A.
Proof.
by rewrite preimage_true; under eq_fun do rewrite inE. Qed.

Lemma preimage_mem_falseSource code {TSource code} (ASource code : set T) : mem A @^-1` [set false] = ~` A.
Proof.
by rewrite preimage_false; under eq_fun do rewrite inE. Qed.

End image_lemmas.
Arguments sub_image_setI {aT rT f A B} t _.
Arguments subset_set1 {_ _ _}.
Arguments subset_set2 {_ _ _ _}.

Lemma image2_subsetSource code {aTSource code bTSource code rTSource code : Type} (fSource code : aT -> bT -> rT)
    (ASource code BSource code : set aT) (CSource code DSource code : set bT) : A `<=` B -> C `<=` D ->
  [set f x y | xSource code in A & ySource code in C] `<=` [set f x y | xSource code in B & ySource code in D].
Proof.
by move=> AB CD; rewrite !image2E; apply: image_subset; exact: setSX. Qed.

Lemma image_compUsed by
  • mathcomp.analysis.realfun
  • mathcomp.analysis.ereal
  • mathcomp.analysis.topology_theory.num_topology
  • mathcomp.analysis.numfun
  • mathcomp.analysis.sequences
  • mathcomp.analysis.normedtype_theory.ereal_normedtype
  • mathcomp.analysis.normedtype_theory.normed_module
  • mathcomp.reals.reals
  • mathcomp.classical.set_interval
  • mathcomp.classical.functions
  • mathcomp.classical.cardinality

Source code
T1Source code T2Source code T3Source code (fSource code : T1 -> T2) (gSource code : T2 -> T3) ASource code :
  g @` (f @` A) = (g \o f) @` A.
Proof.
by rewrite eqEsubset; split => [x [b [a Aa] <- <-]|x [a Aa] <-];
  [apply/imageP |apply/imageP/imageP].
Qed.

Definition set_system

set_system : Type -> Type set_system is not universe polymorphic Arguments set_system U%_type_scope set_system is transparent Expands to: Constant mathcomp.classical.classical_sets.set_system Declared in library mathcomp.classical.classical_sets, line 1652, characters 11-21


Used by
  • mathcomp.analysis.esum
  • mathcomp.analysis.probability_theory.independence
  • mathcomp.analysis.probability_theory.poisson_distribution
  • mathcomp.analysis.probability_theory.binomial_distribution
  • mathcomp.analysis.probability_theory.bernoulli_distribution
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.real_measure.lebesgue_stieltjes_measure
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.probability_measure
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.measure_theory.measure_negligible
  • mathcomp.analysis.measure_theory.measurable_function
  • mathcomp.analysis.cantor
  • mathcomp.analysis.kernel
  • mathcomp.analysis.ereal
  • mathcomp.analysis.topology_theory.pseudometric_structure
  • mathcomp.analysis.topology_theory.metric_structure
  • mathcomp.analysis.topology_theory.uniform_structure
  • mathcomp.analysis.topology_theory.topology_structure
  • mathcomp.analysis.topology_theory.product_topology
  • mathcomp.analysis.topology_theory.supremum_topology
  • mathcomp.analysis.topology_theory.nat_topology
  • mathcomp.analysis.topology_theory.discrete_topology
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.initial_topology
  • mathcomp.analysis.topology_theory.matrix_topology
  • mathcomp.analysis.topology_theory.one_point_compactification
  • mathcomp.analysis.topology_theory.sigT_topology
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.topology_theory.compact
  • mathcomp.analysis.homotopy_theory.wedge_sigT
  • mathcomp.analysis.derive
  • mathcomp.analysis.showcase.summability
  • mathcomp.analysis.sequences
  • mathcomp.analysis.landau
  • mathcomp.analysis.lebesgue_integral_theory.giry
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_fubini
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule
  • mathcomp.analysis.normedtype_theory.tvs
  • mathcomp.analysis.normedtype_theory.complete_normed_module
  • mathcomp.analysis.normedtype_theory.ereal_normedtype
  • mathcomp.analysis.normedtype_theory.matrix_normedtype
  • mathcomp.analysis.normedtype_theory.num_normedtype
  • mathcomp.analysis.normedtype_theory.normed_module
  • mathcomp.classical.filter

Source code
USource code := set (set U).
Identity Coercion set_system_to_set : set_system >-> set.

Section set_systems.
Context {TSource code} (GSource code : set_system T).

Definition setI_closed

setI_closed : forall {T : Type}, set_system T -> Prop setI_closed is not universe polymorphic Arguments setI_closed {T}%_type_scope G setI_closed is transparent Expands to: Constant mathcomp.classical.classical_sets.setI_closed Declared in library mathcomp.classical.classical_sets, line 1658, characters 11-22


Used by
  • mathcomp.analysis.probability_theory.independence
  • mathcomp.analysis.real_measure.lebesgue_stieltjes_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.kernel
  • mathcomp.analysis.topology_theory.topology_structure
  • mathcomp.analysis.topology_theory.initial_topology
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_fubini
  • mathcomp.classical.filter

Source code
:= forall ASource code BSource code, G A -> G B -> G (A `&` B).

Definition setU_closed

setU_closed : forall {T : Type}, set_system T -> Prop setU_closed is not universe polymorphic Arguments setU_closed {T}%_type_scope G setU_closed is transparent Expands to: Constant mathcomp.classical.classical_sets.setU_closed Declared in library mathcomp.classical.classical_sets, line 1660, characters 11-22


Used by
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.topology_theory.topology_structure
  • mathcomp.analysis.topology_theory.compact

Source code
:= forall ASource code BSource code, G A -> G B -> G (A `|` B).

End set_systems.

Lemma setI_closed_setTUsed by
  • mathcomp.analysis.measure_theory.measure_function

Source code
TSource code (FSource code : set_system T) :
  setI_closed F -> setI_closed (F `|` [set setT]).
Proof.
move=> IF=> C D [FC|/= ->{C}].
- by move=> [FD|/= ->{D}]; [left; exact: IF|rewrite setIT; left].
- by move=> [FD|->{D}]; [rewrite setTI; left|rewrite !setTI; right].
Qed.

Lemma setI_closed_set0Used by
  • mathcomp.analysis.probability_theory.independence

Source code
TSource code (FSource code : set_system T) :
  setI_closed F -> setI_closed (F `|` [set set0]).
Proof.
move=> IF=> C D [FC|/= ->{C}].
- by move=> [FD|/= ->{D}]; [left; exact: IF|rewrite setI0; right].
- by move=> [FD|->{D}]; [rewrite set0I; right|rewrite !set0I; right].
Qed.

Section rectangle.
Context {T1Source code T2Source code : Type}.
Implicit Types (X : set_system T1) (Y : set_system T2).

Definition rectangle

rectangle : forall {T1 T2 : Type}, set_system T1 -> set_system T2 -> set_system (T1 * T2) rectangle is not universe polymorphic Arguments rectangle {T1 T2}%_type_scope X Y _ rectangle is transparent Expands to: Constant mathcomp.classical.classical_sets.rectangle Declared in library mathcomp.classical.classical_sets, line 1684, characters 11-20


Used by
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.kernel
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_fubini

Source code
XSource code YSource code : set_system (T1 * T2) :=
  [set U `*` V | USource code in X & VSource code in Y].

Lemma rectangle_setXUsed by
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.kernel
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_fubini

Source code
XSource code YSource code ASource code BSource code : X A -> Y B -> rectangle X Y (A `*` B).
Proof.
by move=> XA YB; exists A => //; exists B. Qed.

Lemma setI_closed_rectangleUsed by
  • mathcomp.analysis.kernel
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_fubini

Source code
XSource code YSource code : setI_closed X -> setI_closed Y ->
  setI_closed (rectangle X Y).
Proof.
move=> IG IH _ _ [A mA [B mB] <-] [A' mA' [B' mB'] <-].
by rewrite -setXI; apply: rectangle_setX; [exact: IG|exact: IH].
Qed.

End rectangle.

Definition preimage_set_system

preimage_set_system : forall {aT rT : Type}, set aT -> (aT -> rT) -> set_system rT -> set_system aT preimage_set_system is not universe polymorphic Arguments preimage_set_system {aT rT}%_type_scope D%_classical_set_scope f%_function_scope G _ preimage_set_system is transparent Expands to: Constant mathcomp.classical.classical_sets.preimage_set_system Declared in library mathcomp.classical.classical_sets, line 1699, characters 11-30


Used by
  • mathcomp.analysis.probability_theory.independence
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.measure_theory.measurable_function
  • mathcomp.analysis.lebesgue_integral_theory.giry

Source code
{aTSource code rTSource code : Type} (DSource code : set aT) (fSource code : aT -> rT)
    (GSource code : set_system rT) : set_system aT :=
  [set D `&` f @^-1` B | BSource code in G].

Lemma preimage_set_system0Used by
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.measure_theory.measurable_function

Source code
{aTSource code rTSource code : Type} (DSource code : set aT) (fSource code : aT -> rT) :
  preimage_set_system D f set0 = set0.
Proof.
exact: image_set0. Qed.

Lemma preimage_set_systemUUsed by
  • mathcomp.analysis.measure_theory.measurable_function

Source code
{aTSource code rTSource code : Type} (DSource code : set aT) (fSource code : aT -> rT) :
  {morph preimage_set_system D f : xSource code ySource code / x `|` y >-> x `|` y}.
Proof.
exact: image_setU. Qed.

Lemma preimage_set_system_compUsed by
  • mathcomp.analysis.measure_theory.measurable_function

Source code
{aTSource code bTSource code rTSource code : Type} (DSource code : set aT)
    (fSource code : aT -> bT) (gSource code : bT -> rT) (FSource code : set_system rT) :
  preimage_set_system D (g \o f) F
    = preimage_set_system D f (preimage_set_system setT g F).
Proof.
apply/seteqP; split=> [_ [B FB] <-|_ [_ [C FC <-] <-]].
  by exists (g @^-1` B) => //; exists B => //; rewrite setTI.
by exists C => //; rewrite setTI comp_preimage.
Qed.

Lemma preimage_set_system_idSource code {aTSource code : Type} (DSource code : set aT) (FSource code : set_system aT) :
  preimage_set_system D idfun F = setI D @` F.
Proof.
by []. Qed.

Lemma preimage_set_systemSSource code {T1Source code T2Source code} (ASource code BSource code : set_system T2) (fSource code : T1 -> T2) :
  A `<=` B ->
  preimage_set_system [set: _] f A `<=` preimage_set_system [set: _] f B.
Proof.
by move=> AB _ [C ? <-]; exists C => //; exact: AB. Qed.

Definition image_set_system

image_set_system : forall [aT rT : Type], set aT -> (aT -> rT) -> set_system aT -> set_system rT image_set_system is not universe polymorphic Arguments image_set_system [aT rT]%_type_scope D%_classical_set_scope f%_function_scope G _ image_set_system is transparent Expands to: Constant mathcomp.classical.classical_sets.image_set_system Declared in library mathcomp.classical.classical_sets, line 1730, characters 11-27


Used by
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.measure_theory.measurable_function
  • mathcomp.analysis.topology_theory.subspace_topology

Source code
 (aTSource code rTSource code : Type) (DSource code : set aT) (fSource code : aT -> rT)
    (GSource code : set_system aT) : set_system rT :=
  [set BSource code : set rT | G (D `&` f @^-1` B)].

Section cross.
Context {TSource code T1Source code T2Source code : Type}.
Implicit Types (X : set_system T1) (Y : set_system T2).

Definition cross

cross : forall {T T1 T2 : Type}, (T -> T1) -> (T -> T2) -> set_system T1 -> set_system T2 -> set (set T) cross is not universe polymorphic Arguments cross {T T1 T2}%_type_scope (f g)%_function_scope X Y _ cross is transparent Expands to: Constant mathcomp.classical.classical_sets.cross Declared in library mathcomp.classical.classical_sets, line 1738, characters 11-16


Used by
  • mathcomp.analysis.measure_theory.measurable_structure

Source code
 (fSource code : T -> T1) (gSource code : T -> T2) XSource code YSource code :=
  preimage_set_system [set: T] f X
  `|` preimage_set_system [set: T] g Y.

End cross.

Definition cross12

cross12 : forall {T1 T2 : Type}, set_system T1 -> set_system T2 -> set (set (T1 * T2)) cross12 is not universe polymorphic Arguments cross12 {T1 T2}%_type_scope X Y _ cross12 is transparent Expands to: Constant mathcomp.classical.classical_sets.cross12 Declared in library mathcomp.classical.classical_sets, line 1744, characters 11-18


Used by
  • mathcomp.analysis.measure_theory.measurable_structure

Source code
{T1Source code T2Source code : Type} := @cross (T1 * T2)%type T1 T2 fst snd.
Notation "A `x` B"Source code := (cross12 A B) : classical_set_scope.

Notation "A `+ B"Source code := [set (x + y)%R | xSource code in A & ySource code in B].

Section addsetTheory.
Context {ESource code : zmodType}.
Import GRing.Theory.
Local Open Scope ring_scope.
Implicit Types A B C D : set E.

Lemma addsetSUsed by
  • mathcomp.analysis.normedtype_theory.tvs

Source code
ASource code BSource code CSource code DSource code : A `<=` B -> C `<=` D -> A `+ C `<=` B `+ D.
Proof.
by move=> AB CD z [a /AB Ba [c /CD Dc <-]]; exists a => //; exists c.
Qed.

Lemma add0setUsed by
  • mathcomp.analysis.normedtype_theory.tvs

Source code
ASource code : [set 0] `+ A = A.
Proof.
apply/seteqP; split => z /=.
  by move=> [+ -> [y]]; rewrite add0r => + + <-.
by move=> Az; exists 0 => //; exists z; rewrite ?add0r.
Qed.

Lemma addsetIUsed by
  • mathcomp.analysis.normedtype_theory.tvs

Source code
ASource code BSource code (xSource code : E) :
  [set x] `+ (A `&` B) = ([set x] `+ A) `&` ([set x] `+ B).
Proof.
apply/seteqP; split => z.
  by move => [r Cr] [y [Ay By] <- {z}]; split => /=; exists r => //;
    exists y.
move=> /= [[r ->] [y Ay] <- {z}] [x' ->] [y' By'] /(congr1 (fun hSource code => h - x)).
rewrite addrAC subrr add0r addrAC subrr add0r => yy'.
move: By'; rewrite yy' {y' yy'} => By.
by exists x => //;  exists y.
Qed.

Lemma addsetAUsed by
  • mathcomp.analysis.normedtype_theory.tvs

Source code
xSource code ySource code ASource code : [set x + y] `+ A `<=` [set x] `+ ([set y] `+ A).
Proof.
move=> _/= [_ ->] [z Az <-]; exists x => //; exists (y + z); last exact: addrA.
by exists y => //; exists z.
Qed.

End addsetTheory.

Lemma subKimageSource code {TSource code T'Source code} {PSource code : set_system T'} (fSource code : T -> T') (gSource code : T' -> T) :
  cancel f g -> [set ASource code | P (f @` A)] `<=` [set g @` A | ASource code in P].
Proof.
by move=> ? A; exists (f @` A); rewrite ?image_comp ?eq_image_id/=. Qed.

Lemma subimageKSource code TSource code T'Source code (PSource code : set_system T') (fSource code : T -> T') (gSource code : T' -> T) :
  cancel g f -> [set g @` A | ASource code in P] `<=` [set ASource code | P (f @` A)].
Proof.
by move=> gK _ [B /= ? <-]; rewrite image_comp eq_image_id/=. Qed.

Lemma eq_imageKUsed by
  • mathcomp.analysis.topology_theory.num_topology

Source code
{TSource code T'Source code} {PSource code : set_system T'} (fSource code : T -> T') (gSource code : T' -> T) :
    cancel f g -> cancel g f ->
  [set g @` A | ASource code in P] = [set ASource code | P (f @` A)].
Proof.
by move=> fK gK; apply/seteqP; split; [apply: subimageK | apply: subKimage].
Qed.

Lemma some_set0Source code {TSource code} : some @` set0 = set0 :> set (option T).
Proof.
by rewrite -subset0 => x []. Qed.

Lemma some_set1Source code {TSource code} (xSource code : T) : some @` [set x] = [set some x].
Proof.
by apply/seteqP; split=> [_ [_ -> <-]|_ ->]//=; exists x. Qed.

Lemma some_setCSource code {TSource code} (ASource code : set T) : some @` (~` A) = [set~ None] `\` (some @` A).
Proof.
apply/seteqP; split; first by move=> _ [x nAx <-]; split=> // -[y /[swap]-[->]].
by move=> [x [_ exAx]|[/(_ erefl)//]]; exists x => // Ax; apply: exAx; exists x.
Qed.

Lemma some_setTSource code {TSource code} : some @` [set: T] = [set~ None].
Proof.
by rewrite -[setT]setCK some_setC setCT some_set0 setD0. Qed.

Lemma some_setIUsed by
  • mathcomp.classical.functions

Source code
{TSource code} (ASource code BSource code : set T) : some @` (A `&` B) = some @` A `&` some @` B.
Proof.
apply/seteqP; split; first by move=> _ [x [Ax Bx] <-]; split; exists x.
by move=> _ [[x + <-] [y By []]] => /[swap]<- Ay; exists y.
Qed.

Lemma some_setUSource code {TSource code} (ASource code BSource code : set T) : some @` (A `|` B) = some @` A `|` some @` B.
Proof.

Lemma some_setDSource code {TSource code} (ASource code BSource code : set T) : some @` (A `\` B) = (some @` A) `\` (some @` B).
Proof.
by rewrite some_setI some_setC setIDA setIidl// => _ [? _ <-]. Qed.

Lemma sub_image_someSource code {TSource code} (ASource code BSource code : set T) : some @` A `<=` some @` B -> A `<=` B.
Proof.
by move=> + x Ax => /(_ (Some x))[|y By [<-]]; first by exists x. Qed.

Lemma sub_image_somePSource code {TSource code} (ASource code BSource code : set T) : some @` A `<=` some @` B <-> A `<=` B.
Proof.
by split=> [/sub_image_some//|/image_subset]. Qed.

Lemma image_some_injUsed by
  • mathcomp.classical.functions

Source code
{TSource code} (ASource code BSource code : set T) : some @` A = some @` B -> A = B.
Proof.
by move=> e; apply/seteqP; split; apply: sub_image_some; rewrite e. Qed.

Lemma some_set_eq0Source code {TSource code} (ASource code : set T) : some @` A = set0 <-> A = set0.
Proof.
split=> [|->]; last by rewrite some_set0.
by rewrite -!subset0 => A0 x Ax; apply: (A0 (some x)); exists x.
Qed.

Lemma some_preimageSource code {aTSource code rTSource code} (fSource code : aT -> rT) (ASource code : set rT) :
  some @` (f @^-1` A) = omap f @^-1` (some @` A).
Proof.
apply/seteqP; split; first by move=> _ [a Afa <-]; exists (f a).
by move=> [x|] [a Aa //= [afx]]; exists x; rewrite // -afx.
Qed.

Lemma some_imageSource code {aTSource code rTSource code} (fSource code : aT -> rT) (ASource code : set aT) :
  some @` (f @` A) = omap f @` (some @` A).
Proof.
by rewrite !image_comp. Qed.

Lemma disj_set_someUsed by
  • mathcomp.classical.functions

Source code
{TSource code} {ASource code BSource code : set T} :
  [disjoint some @` A & some @` B] = [disjoint A & B].
Proof.

Lemma inl_in_set_inrSource code ASource code BSource code (xSource code : A) (YSource code : set B) :
  (inl x \in [set inr y | ySource code in Y]) = false.
Proof.
by apply/negP; rewrite inE/= => -[]. Qed.

Lemma inr_in_set_inlSource code ASource code BSource code (ySource code : B) (XSource code : set A) :
  (inr y \in [set inl x | xSource code in X]) = false.
Proof.
by apply/negP; rewrite inE/= => -[]. Qed.

Lemma inr_in_set_inrSource code ASource code BSource code (ySource code : B) (YSource code : set B) :
  (inr y \in [set @inr A B y | ySource code in Y]) = (y \in Y).
Proof.
by apply/idP/idP => [/[!inE][/= [x ? [<-]]]|/[!inE]]//; exists y. Qed.

Lemma inl_in_set_inlSource code ASource code BSource code (xSource code : A) (XSource code : set A) :
  (inl x \in [set @inl A B x | xSource code in X]) = (x \in X).
Proof.
by apply/idP/idP => [/[!inE][/= [y ? [<-]]]|/[!inE]]//; exists x. Qed.

Section bigop_lemmas.
Context {TSource code ISource code : Type}.
Implicit Types (A : set T) (i : I) (P : set I) (F G : I -> set T).

Lemma bigcup_supUsed by
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.measure_theory.signed_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.counting_measure
  • mathcomp.analysis.measure_theory.measurable_function
  • mathcomp.analysis.cantor
  • mathcomp.analysis.ftc
  • mathcomp.analysis.topology_theory.topology_structure
  • mathcomp.analysis.topology_theory.connected
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg
  • mathcomp.analysis.lebesgue_integral_theory.giry
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integrable
  • mathcomp.analysis.normedtype_theory.num_normedtype

Source code
iSource code PSource code FSource code : P i -> F i `<=` \bigcup_(jSource code in P) F j.
Proof.
by move=> Pi a Fia; exists i. Qed.

Lemma bigcap_infUsed by
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.borel_hierarchy

Source code
iSource code PSource code FSource code : P i -> \bigcap_(jSource code in P) F j `<=` F i.
Proof.
by move=> Pi a /(_ i); apply. Qed.

Lemma subset_bigcup_rSource code PSource code : {homo (fun xSource code : I -> set T => \bigcup_(iSource code in P) x i)
  : FSource code GSource code / [set F i | iSource code in P] `<=` [set G i | iSource code in P] >-> F `<=` G}.
Proof.
move=> F G FG t [i Pi Fit]; have := FG (F i).
by move=> /(_ (ex_intro2 _ _ _ Pi erefl))[j Pj ji]; exists j => //; rewrite ji.
Qed.

Lemma subset_bigcap_rSource code PSource code : {homo (fun xSource code : I -> set T => \bigcap_(iSource code in P) x i)
  : FSource code GSource code / [set F i | iSource code in P] `<=` [set G i | iSource code in P] >-> G `<=` F}.
Proof.
by move=> F G FG t Gt i Pi; have [|j Pj <-] := FG (F i); [exists i|apply: Gt].
Qed.

Lemma eq_bigcuprUsed by
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.ftc
  • mathcomp.analysis.normedtype_theory.normed_module
  • mathcomp.reals.real_interval

Source code
PSource code FSource code GSource code : (forall iSource code, P i -> F i = G i) ->
  \bigcup_(iSource code in P) F i = \bigcup_(iSource code in P) G i.
Proof.
by move=> FG; rewrite eqEsubset; split; apply: subset_bigcup_r;
  move=> A [i ? <-]; exists i => //; rewrite FG.
Qed.

Lemma eq_bigcaprSource code PSource code FSource code GSource code : (forall iSource code, P i -> F i = G i) ->
  \bigcap_(iSource code in P) F i = \bigcap_(iSource code in P) G i.
Proof.
by move=> FG; rewrite eqEsubset; split; apply: subset_bigcap_r;
  move=> A [i ? <-]; exists i => //; rewrite FG.
Qed.

Lemma setC_bigcupUsed by
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.topology_theory.topology_structure
  • mathcomp.analysis.sequences
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg

Source code
PSource code FSource code : ~` (\bigcup_(iSource code in P) F i) = \bigcap_(iSource code in P) ~` F i.
Proof.
by rewrite eqEsubset; split => [t PFt i Pi ?|t PFt [i Pi ?]];
  [apply PFt; exists i | exact: (PFt _ Pi)].
Qed.

Lemma setC_bigcapUsed by
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_differentiation
  • mathcomp.analysis.lebesgue_integral_theory.measurable_fun_approximation
  • mathcomp.classical.cardinality

Source code
PSource code FSource code : ~` (\bigcap_(iSource code in P) (F i)) = \bigcup_(iSource code in P) ~` F i.
Proof.
apply: setC_inj; rewrite setC_bigcup setCK.
by apply: eq_bigcapr => ?; rewrite setCK.
Qed.

Lemma image_bigcupUsed by
  • mathcomp.reals.real_interval

Source code
rTSource code PSource code FSource code (fSource code : T -> rT) :
  f @` (\bigcup_(iSource code in P) (F i)) = \bigcup_(iSource code in P) f @` F i.
Proof.
apply/seteqP; split=> [_/= [x [i Pi Fix <-]]|]; first by exists i.
by move=> _ [i Pi [x Fix <-]]; exists x => //; exists i.
Qed.

Lemma some_bigcapSource code PSource code FSource code : some @` (\bigcap_(iSource code in P) (F i)) =
  [set~ None] `&` \bigcap_(iSource code in P) some @` F i.
Proof.
apply/seteqP; split.
  by move=> _ [x Fx <-]; split=> // i; exists x => //; apply: Fx.
by move=> [x|[//=]] [_ Fx]; exists x => //= i /Fx [y ? [<-]].
Qed.

Lemma bigcup_set_typeUsed by
  • mathcomp.classical.cardinality

Source code
PSource code FSource code : \bigcup_(iSource code in P) F i = \bigcup_(jSource code : P) F (val j).
Proof.
rewrite predeqE => x; split; last by move=> [[i/= /set_mem Pi] _ Fix]; exists i.
by move=> [i Pi Fix]; exists (SigSub (mem_set Pi)).
Qed.

Lemma eq_bigcuplSource code PSource code QSource code FSource code : P `<=>` Q ->
  \bigcup_(iSource code in P) F i = \bigcup_(iSource code in Q) F i.
Proof.
by move=> /seteqP->. Qed.

Lemma eq_bigcaplUsed by
  • mathcomp.analysis.topology_theory.topology_structure

Source code
PSource code QSource code FSource code : P `<=>` Q ->
  \bigcap_(iSource code in P) F i = \bigcap_(iSource code in Q) F i.
Proof.
by move=> /seteqP->. Qed.

Lemma eq_bigcupUsed by
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.measure_theory.signed_measure
  • mathcomp.analysis.normedtype_theory.num_normedtype
  • mathcomp.analysis.normedtype_theory.normed_module

Source code
PSource code QSource code FSource code GSource code : P `<=>` Q -> (forall iSource code, P i -> F i = G i) ->
  \bigcup_(iSource code in P) F i = \bigcup_(iSource code in Q) G i.
Proof.
by move=> /eq_bigcupl<- /eq_bigcupr->. Qed.

Lemma eq_bigcapSource code PSource code QSource code FSource code GSource code : P `<=>` Q -> (forall iSource code, P i -> F i = G i) ->
  \bigcap_(iSource code in P) F i = \bigcap_(iSource code in Q) G i.
Proof.
by move=> /eq_bigcapl<- /eq_bigcapr->. Qed.

Lemma bigcupUUsed by
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.measure_theory.measurable_structure

Source code
PSource code FSource code GSource code : \bigcup_(iSource code in P) (F i `|` G i) =
  (\bigcup_(iSource code in P) F i) `|` (\bigcup_(iSource code in P) G i).
Proof.
apply/predeqP => x; split=> [[i Pi [Fix|Gix]]|[[i Pi Fix]|[i Pi Gix]]];
  by [left; exists i|right; exists i|exists i =>//; left|exists i =>//; right].
Qed.

Lemma bigcapIUsed by
  • mathcomp.analysis.borel_hierarchy

Source code
PSource code FSource code GSource code : \bigcap_(iSource code in P) (F i `&` G i) =
  (\bigcap_(iSource code in P) F i) `&` (\bigcap_(iSource code in P) G i).
Proof.
apply: setC_inj; rewrite !(setCI, setC_bigcap) -bigcupU.
by apply: eq_bigcupr => *; rewrite setCI.
Qed.

Lemma bigcup_constUsed by
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.borel_hierarchy

Source code
PSource code ASource code : P !=set0 -> \bigcup_(_ in P) A = A.
Proof.
by case=> j ?; rewrite predeqE => x; split=> [[i //]|Ax]; exists j. Qed.

Lemma bigcap_constUsed by
  • mathcomp.analysis.borel_hierarchy

Source code
PSource code ASource code : P !=set0 -> \bigcap_(_ in P) A = A.
Proof.
by move=> PN0; apply: setC_inj; rewrite setC_bigcap bigcup_const. Qed.

Lemma bigcapIlUsed by
  • mathcomp.analysis.measure_theory.measurable_structure

Source code
PSource code FSource code ASource code : P !=set0 ->
  \bigcap_(iSource code in P) (F i `&` A) = \bigcap_(iSource code in P) F i `&` A.
Proof.
by move=> PN0; rewrite bigcapI bigcap_const. Qed.

Lemma bigcapIrUsed by
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.borel_hierarchy

Source code
PSource code FSource code ASource code : P !=set0 ->
  \bigcap_(iSource code in P) (A `&` F i) = A `&` \bigcap_(iSource code in P) F i.
Proof.
by move=> PN0; rewrite bigcapI bigcap_const. Qed.

Lemma bigcupUlUsed by
  • mathcomp.analysis.measure_theory.measurable_structure

Source code
PSource code FSource code ASource code : P !=set0 ->
  \bigcup_(iSource code in P) (F i `|` A) = \bigcup_(iSource code in P) F i `|` A.
Proof.
by move=> PN0; rewrite bigcupU bigcup_const. Qed.

Lemma bigcupUrSource code PSource code FSource code ASource code : P !=set0 ->
  \bigcup_(iSource code in P) (A `|` F i) = A `|` \bigcup_(iSource code in P) F i.
Proof.
by move=> PN0; rewrite bigcupU bigcup_const. Qed.

Lemma bigcup_set0Used by
  • mathcomp.analysis.real_measure.lebesgue_stieltjes_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.topology_theory.connected
  • mathcomp.analysis.topology_theory.supremum_topology
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.homotopy_theory.wedge_sigT
  • mathcomp.analysis.normedtype_theory.num_normedtype
  • mathcomp.classical.cardinality

Source code
FSource code : \bigcup_(iSource code in set0) F i = set0.
Proof.
by rewrite eqEsubset; split => a // []. Qed.

Lemma bigcup_set1Used by
  • mathcomp.analysis.real_measure.lebesgue_stieltjes_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.topology_theory.order_topology
  • mathcomp.analysis.topology_theory.supremum_topology
  • mathcomp.analysis.topology_theory.function_spaces

Source code
FSource code iSource code : \bigcup_(jSource code in [set i]) F j = F i.
Proof.
by rewrite eqEsubset; split => ? => [[] ? -> //|]; exists i. Qed.

Lemma bigcap_set0Used by
  • mathcomp.classical.filter

Source code
FSource code : \bigcap_(iSource code in set0) F i = setT.
Proof.
by rewrite eqEsubset; split=> a // []. Qed.

Lemma bigcap_set1Used by
  • mathcomp.analysis.probability_theory.independence
  • mathcomp.analysis.topology_theory.order_topology
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.classical.filter

Source code
FSource code iSource code : \bigcap_(jSource code in [set i]) F j = F i.
Proof.
by rewrite eqEsubset; split => ?; [exact|move=> ? ? ->]. Qed.

Lemma bigcup_nonemptyUsed by
  • mathcomp.analysis.topology_theory.topology_structure

Source code
PSource code FSource code :
  (\bigcup_(iSource code in P) F i !=set0) <-> exists2 iSource code, P i & F i !=set0.
Proof.
split=> [[t [i ? ?]]|[j ? [t ?]]]; by [exists i => //; exists t| exists t, j].
Qed.

Lemma bigcup0Used by
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.measure_theory.counting_measure
  • mathcomp.analysis.normedtype_theory.num_normedtype
  • mathcomp.analysis.normedtype_theory.normed_module
  • mathcomp.classical.cardinality

Source code
PSource code FSource code :
  (forall iSource code, P i -> F i = set0) -> \bigcup_(iSource code in P) F i = set0.
Proof.
by move=> PF; rewrite -subset0 => t -[i /PF ->]. Qed.

Lemma bigcap0Source code PSource code FSource code :
  (exists2 iSource code, P i & F i = set0) -> \bigcap_(iSource code in P) F i = set0.
Proof.
by move=> [i Pi]; rewrite -!subset0 => Fi t Ft; apply/Fi/Ft. Qed.

Lemma bigcapTSource code PSource code FSource code :
  (forall iSource code, P i -> F i = setT) -> \bigcap_(iSource code in P) F i = setT.
Proof.
by move=> PF; rewrite -subTset => t -[i /PF ->]. Qed.

Lemma bigcupTSource code PSource code FSource code :
  (exists2 iSource code, P i & F i = setT) -> \bigcup_(iSource code in P) F i = setT.
Proof.
by move=> [i Pi F0]; rewrite -subTset => t; exists i; rewrite ?F0. Qed.

Lemma bigcup0PUsed by
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.real_measure.lebesgue_stieltjes_measure

Source code
PSource code FSource code :
  (\bigcup_(iSource code in P) F i = set0) <-> forall iSource code, P i -> F i = set0.
Proof.
split=> [|/bigcup0//]; rewrite -subset0 => F0 i Pi; rewrite -subset0.
by move=> t Ft; apply: F0; exists i.
Qed.

Lemma bigcapTPSource code PSource code FSource code :
  (\bigcap_(iSource code in P) F i = setT) <-> forall iSource code, P i -> F i = setT.
Proof.
split=> [|/bigcapT//]; rewrite -subTset => FT i Pi; rewrite -subTset.
by move=> t _; apply: FT.
Qed.

Lemma setI_bigcuprUsed by
  • mathcomp.analysis.probability_theory.random_variable
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.measure_theory.signed_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_definition
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_fubini
  • mathcomp.analysis.lebesgue_integral_theory.radon_nikodym
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_differentiation
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integrable
  • mathcomp.analysis.lebesgue_integral_theory.measurable_fun_approximation

Source code
FSource code PSource code ASource code :
  A `&` \bigcup_(iSource code in P) F i = \bigcup_(iSource code in P) (A `&` F i).
Proof.
rewrite predeqE => t; split => [[At [k ? ?]]|[k ? [At ?]]];
  by [exists k |split => //; exists k].
Qed.

Lemma setI_bigcuplUsed by
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.measure_theory.signed_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.measure_theory.measurable_function

Source code
FSource code PSource code ASource code :
  \bigcup_(iSource code in P) F i `&` A = \bigcup_(iSource code in P) (F i `&` A).
Proof.
by rewrite setIC setI_bigcupr//; under eq_bigcupr do rewrite setIC. Qed.

Lemma setU_bigcaprSource code FSource code PSource code ASource code :
  A `|` \bigcap_(iSource code in P) F i = \bigcap_(iSource code in P) (A `|` F i).
Proof.
apply: setC_inj; rewrite setCU !setC_bigcap setI_bigcupr.
by under eq_bigcupr do rewrite -setCU.
Qed.

Lemma setU_bigcaplUsed by
  • mathcomp.analysis.measure_theory.measurable_structure

Source code
FSource code PSource code ASource code :
  \bigcap_(iSource code in P) F i `|` A = \bigcap_(iSource code in P) (F i `|` A).
Proof.
by rewrite setUC setU_bigcapr//; under eq_bigcapr do rewrite setUC. Qed.

Lemma bigcup_mkcondUsed by
  • mathcomp.analysis.probability_theory.random_variable
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.topology_theory.topology_structure
  • mathcomp.analysis.normedtype_theory.normed_module

Source code
PSource code FSource code :
  \bigcup_(iSource code in P) F i = \bigcup_iSource code if i \in P then F i else set0.
Proof.
rewrite predeqE => x; split=> [[i Pi Fix]|[i _]].
  by exists i => //; case: ifPn; rewrite (inE, notin_setE).
by case: ifPn; rewrite (inE, notin_setE) => Pi Fix; exists i.
Qed.

Lemma bigcup_mkcondrUsed by
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.classical.cardinality

Source code
PSource code QSource code FSource code :
  \bigcup_(iSource code in P `&` Q) F i = \bigcup_(iSource code in P) if i \in Q then F i else set0.
Proof.
rewrite bigcup_mkcond [RHS]bigcup_mkcond; apply: eq_bigcupr => i _.
by rewrite in_setI; case: (i \in P) (i \in Q) => [] [].
Qed.

Lemma bigcup_mkcondlSource code PSource code QSource code FSource code :
  \bigcup_(iSource code in P `&` Q) F i = \bigcup_(iSource code in Q) if i \in P then F i else set0.
Proof.
rewrite bigcup_mkcond [RHS]bigcup_mkcond; apply: eq_bigcupr => i _.
by rewrite in_setI; case: (i \in P) (i \in Q) => [] [].
Qed.

Lemma bigcap_mkcondSource code FSource code PSource code :
  \bigcap_(iSource code in P) F i = \bigcap_iSource code if i \in P then F i else setT.
Proof.
apply: setC_inj; rewrite !setC_bigcap bigcup_mkcond; apply: eq_bigcupr => i _.
by case: ifP; rewrite ?setCT.
Qed.

Lemma bigcap_mkcondrUsed by
  • mathcomp.classical.cardinality

Source code
PSource code QSource code FSource code :
  \bigcap_(iSource code in P `&` Q) F i = \bigcap_(iSource code in P) if i \in Q then F i else setT.
Proof.
rewrite bigcap_mkcond [RHS]bigcap_mkcond; apply: eq_bigcapr => i _.
by rewrite in_setI; case: (i \in P) (i \in Q) => [] [].
Qed.

Lemma bigcap_mkcondlSource code PSource code QSource code FSource code :
  \bigcap_(iSource code in P `&` Q) F i = \bigcap_(iSource code in Q) if i \in P then F i else setT.
Proof.
rewrite bigcap_mkcond [RHS]bigcap_mkcond; apply: eq_bigcapr => i _.
by rewrite in_setI; case: (i \in P) (i \in Q) => [] [].
Qed.

Lemma bigcup_imset1Used by
  • mathcomp.analysis.probability_theory.bernoulli_distribution
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.sequences

Source code
PSource code (fSource code : I -> T) : \bigcup_(xSource code in P) [set f x] = f @` P.
Proof.
by rewrite eqEsubset; split=>[a [i ?]->| a [i ?]<-]; [apply: imageP | exists i].
Qed.

Lemma bigcup_setUUsed by
  • mathcomp.analysis.real_measure.lebesgue_stieltjes_measure
  • mathcomp.analysis.measure_theory.measure_function

Source code
FSource code (XSource code YSource code : set I) :
  \bigcup_(iSource code in X `|` Y) F i = \bigcup_(iSource code in X) F i `|` \bigcup_(iSource code in Y) F i.
Proof.
rewrite predeqE => t; split=> [[z]|].
  by move=> [Xz|Yz]; [left|right]; exists z.
by move=> [[z Xz Fzy]|[z Yz Fxz]]; exists z => //; [left|right].
Qed.

Lemma bigcap_setUUsed by
  • mathcomp.analysis.topology_theory.order_topology
  • mathcomp.analysis.normedtype_theory.tvs
  • mathcomp.classical.filter

Source code
FSource code (XSource code YSource code : set I) :
  \bigcap_(iSource code in X `|` Y) F i = \bigcap_(iSource code in X) F i `&` \bigcap_(iSource code in Y) F i.
Proof.
by apply: setC_inj; rewrite !(setCI, setC_bigcap) bigcup_setU. Qed.

Lemma bigcup_setU1Source code FSource code (xSource code : I) (XSource code : set I) :
  \bigcup_(iSource code in x |` X) F i = F x `|` \bigcup_(iSource code in X) F i.
Proof.
by rewrite bigcup_setU bigcup_set1. Qed.

Lemma bigcap_setU1Used by
  • mathcomp.analysis.probability_theory.independence
  • mathcomp.classical.filter

Source code
FSource code (xSource code : I) (XSource code : set I) :
  \bigcap_(iSource code in x |` X) F i = F x `&` \bigcap_(iSource code in X) F i.
Proof.
by rewrite bigcap_setU bigcap_set1. Qed.

Lemma bigcup_setD1Source code (xSource code : I) FSource code (XSource code : set I) : X x ->
  \bigcup_(iSource code in X) F i = F x `|` \bigcup_(iSource code in X `\ x) F i.
Proof.
by move=> Xx; rewrite -bigcup_setU1 setD1K. Qed.

Lemma bigcap_setD1Used by
  • mathcomp.analysis.measure_theory.measurable_structure

Source code
 (xSource code : I) FSource code (XSource code : set I) : X x ->
  \bigcap_(iSource code in X) F i = F x `&` \bigcap_(iSource code in X `\ x) F i.
Proof.
by move=> Xx; rewrite -bigcap_setU1 setD1K. Qed.

Lemma setC_bigsetUSource code USource code (sSource code : seq T) (fSource code : T -> set U) (PSource code : pred T) :
   (~` (\big[setU/set0]_(tSource code <- s | P t) f t)) = \big[setI/setT]_(tSource code <- s | P t) ~` f t.
Proof.
by elim/big_rec2: _ => [|i X Y Pi <-]; rewrite ?setC0 ?setCU. Qed.

Lemma setC_bigsetIUsed by
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.classical.cardinality

Source code
USource code (sSource code : seq T) (fSource code : T -> set U) (PSource code : pred T) :
  (~` (\big[setI/setT]_(tSource code <- s | P t) f t)) =
  \big[setU/set0]_(tSource code <- s | P t) ~` f t.
Proof.
by elim/big_rec2: _ => [|i X Y Pi <-]; rewrite ?setCT ?setCI. Qed.

#[deprecated(since="mathcomp-analysis 1.17.0", note="use `setD_bigcupr` instead")]
Lemma bigcupDrSource code (FSource code : I -> set T) (PSource code : set I) (ASource code : set T) : P !=set0 ->
  \bigcap_(iSource code in P) (A `\` F i) = A `\` \bigcup_(iSource code in P) F i.
Proof.
by move=> PN0; rewrite setDE setC_bigcup -bigcapIr. Qed.

Lemma setD_bigcuprUsed by
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.lebesgue_integral_theory.measurable_fun_approximation

Source code
 (FSource code : I -> set T) (PSource code : set I) (ASource code : set T) : P !=set0 ->
  A `\` \bigcup_(iSource code in P) F i = \bigcap_(iSource code in P) (A `\` F i).
Proof.
by move=> PN0; rewrite setDE setC_bigcup -bigcapIr. Qed.

Lemma setD_bigcaprSource code (FSource code : I -> set T) [PSource code : set I] (ASource code : set T) :
  A `\` \bigcap_(iSource code in P)  F i = \bigcup_(iSource code in P)  (A `\` F i).
Proof.
by rewrite setDE setC_bigcap setI_bigcupr. Qed.

Lemma setD_bigcuplUsed by
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure

Source code
 (FSource code : I -> set T) (PSource code : set I) (ASource code : set T) :
  \bigcup_(iSource code in P) F i `\` A = \bigcup_(iSource code in P) (F i `\` A).
Proof.
by rewrite setDE setI_bigcupl; under eq_bigcupr do rewrite -setDE. Qed.

Lemma bigcup_setX_depUsed by
  • mathcomp.analysis.measure_theory.measure_function

Source code
{JSource code : Type} (FSource code : I -> J -> set T)
    (PSource code : set I) (QSource code : I -> set J) :
  \bigcup_(kSource code in P `*`` Q) F k.1 k.2 = \bigcup_(iSource code in P) \bigcup_(jSource code in Q i) F i j.
Proof.
apply/predeqP => x; split=> [|[i Pi [j Pj Fijx]]]; last by exists (i, j).
by move=> [[/= i j] [Pi Qj] Fijx]; exists i => //; exists j.
Qed.

Lemma bigcup_setXUsed by
  • mathcomp.analysis.measure_theory.measure_function

Source code
{JSource code : Type} (FSource code : I -> J -> set T) (PSource code : set I) (QSource code : set J) :
  \bigcup_(kSource code in P `*` Q) F k.1 k.2 = \bigcup_(iSource code in P) \bigcup_(jSource code in Q) F i j.
Proof.
exact: bigcup_setX_dep. Qed.

Lemma bigcup_bigcupUsed by
  • mathcomp.analysis.real_measure.lebesgue_measure

Source code
T'Source code (FSource code : I -> set T) (PSource code : set I) (GSource code : T -> set T') :
  \bigcup_(iSource code in \bigcup_(nSource code in P) F n) G i =
  \bigcup_(nSource code in P) \bigcup_(iSource code in F n) G i.
Proof.
apply/seteqP; split; first by move=> x [n [m ? ?] h]; exists m => //; exists n.
by move=> x [n ? [m ?]] h; exists m => //; exists n.
Qed.

Lemma bigcupIDUsed by
  • mathcomp.analysis.measure_theory.counting_measure

Source code
 (QSource code : set I) (FSource code : I -> set T) (PSource code : set I) :
  \bigcup_(iSource code in P) F i =
    (\bigcup_(iSource code in P `&` Q) F i) `|` (\bigcup_(iSource code in P `&` ~` Q) F i).
Proof.
by rewrite -bigcup_setU -setIUr setUv setIT. Qed.

Lemma bigcapIDSource code (QSource code : set I) (FSource code : I -> set T) (PSource code : set I) :
  \bigcap_(iSource code in P) F i =
    (\bigcap_(iSource code in P `&` Q) F i) `&` (\bigcap_(iSource code in P `&` ~` Q) F i).
Proof.
by rewrite -bigcap_setU -setIUr setUv setIT. Qed.

Lemma bigcup_subUsed by
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.measure_theory.signed_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.measure_theory.measurable_function
  • mathcomp.analysis.ftc
  • mathcomp.analysis.topology_theory.topology_structure
  • mathcomp.analysis.normedtype_theory.num_normedtype

Source code
FSource code ASource code PSource code :
  (forall iSource code, P i -> F i `<=` A) -> \bigcup_(iSource code in P) F i `<=` A.
Proof.
by move=> FD t [n An Fnt]; exact: (FD n). Qed.

Lemma sub_bigcapUsed by
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.topology_theory.supremum_topology

Source code
FSource code ASource code PSource code :
  (forall iSource code, P i -> A `<=` F i) -> A `<=` \bigcap_(iSource code in P) F i.
Proof.
by move=> AF t At n Pn; exact: AF. Qed.

Lemma subset_bigcupUsed by
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.real_measure.lebesgue_stieltjes_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measure_negligible
  • mathcomp.analysis.topology_theory.topology_structure

Source code
PSource code FSource code GSource code : (forall iSource code, P i -> F i `<=` G i) ->
  \bigcup_(iSource code in P) F i `<=` \bigcup_(iSource code in P) G i.
Proof.
by move=> FG; apply: bigcup_sub => i Pi + /(FG _ Pi); apply: bigcup_sup.
Qed.

Lemma bigcup_subsetUsed by
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.measure_theory.signed_measure

Source code
PSource code QSource code FSource code : P `<=` Q ->
  \bigcup_(iSource code in P) F i `<=` \bigcup_(iSource code in Q) F i.
Proof.
by move=> PQ t [i /PQ Qi Fit]; exists i. Qed.

Lemma subset_bigcapSource code PSource code FSource code GSource code : (forall iSource code, P i -> F i `<=` G i) ->
  \bigcap_(iSource code in P) F i `<=` \bigcap_(iSource code in P) G i.
Proof.
move=> FG; apply: sub_bigcap => i Pi x Fx; apply: FG => //.
exact: bigcap_inf Fx.
Qed.

End bigop_lemmas.
Arguments bigcup_setD1 {T I} x.
Arguments bigcap_setD1 {T I} x.

Lemma setD_bigcupUsed by
  • mathcomp.analysis.measure_theory.measurable_structure

Source code
{TSource code} (ISource code : eqType) (FSource code : I -> set T) (PSource code : set I) (jSource code : I) : P j ->
  F j `\` \bigcup_(iSource code in [set kSource code | P k /\ k != j]) (F j `\` F i) =
  \bigcap_(iSource code in P) F i.
Proof.
move=> Pj; apply/seteqP; split => [t [Fjt UFt] i Pi|t UFt].
  by have [->//|ij] := eqVneq i j; apply: contra_notP UFt => Fit; exists i.
by split=> [|[k [Pk kj]] [Fjt]]; [|apply]; exact: UFt.
Qed.

Definition sequence

sequence : Type -> Type sequence is not universe polymorphic Arguments sequence R%_type_scope sequence is transparent Expands to: Constant mathcomp.classical.classical_sets.sequence Declared in library mathcomp.classical.classical_sets, line 2241, characters 11-19


Used by
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.sequences

Source code
RSource code := nat -> R.

Notation "R ^nat"Source code := (sequence R) : type_scope.

Definition bigcup2

bigcup2 : forall [T : Type], set T -> set T -> (set T) ^nat bigcup2 is not universe polymorphic Arguments bigcup2 [T]%_type_scope (A B)%_classical_set_scope n / _ (where some original arguments have been renamed) The reduction tactics unfold bigcup2 when applied to 4 arguments bigcup2 is transparent Expands to: Constant mathcomp.classical.classical_sets.bigcup2 Declared in library mathcomp.classical.classical_sets, line 2245, characters 11-18


Used by
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.measure_theory.signed_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.measure_theory.measure_negligible

Source code
TSource code (ASource code BSource code : set T) : (set T)^nat :=
  fun iSource code => if i == 0 then A else if i == 1 then B else set0.
Arguments bigcup2 T A B n /.

Lemma bigcup2EUsed by
  • mathcomp.analysis.measure_theory.signed_measure
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.measure_theory.measurable_function

Source code
TSource code (ASource code BSource code : set T) : \bigcup_iSource code (bigcup2 A B) i = A `|` B.
Proof.
rewrite predeqE => t; split=> [|[At|Bt]]; [|by exists 0|by exists 1].
by case=> -[_ At|[_ Bt|//]]; [left|right].
Qed.

Lemma bigcup2inEUsed by
  • mathcomp.analysis.measure_theory.signed_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.topology_theory.connected

Source code
TSource code (ASource code BSource code : set T) : \bigcup_(iSource code < 2) (bigcup2 A B) i = A `|` B.
Proof.
rewrite predeqE => t; split=> [|[At|Bt]]; [|by exists 0|by exists 1].
by case=> -[_ At|[_ Bt|//]]; [left|right].
Qed.

Definition bigcap2

bigcap2 : forall [T : Type], set T -> set T -> (set T) ^nat bigcap2 is not universe polymorphic Arguments bigcap2 [T]%_type_scope (A B)%_classical_set_scope n / _ (where some original arguments have been renamed) The reduction tactics unfold bigcap2 when applied to 4 arguments bigcap2 is transparent Expands to: Constant mathcomp.classical.classical_sets.bigcap2 Declared in library mathcomp.classical.classical_sets, line 2261, characters 11-18


Source code
TSource code (ASource code BSource code : set T) : (set T)^nat :=
  fun iSource code => if i == 0 then A else if i == 1 then B else setT.
Arguments bigcap2 T A B n /.

Lemma bigcap2ESource code TSource code (ASource code BSource code : set T) : \bigcap_iSource code (bigcap2 A B) i = A `&` B.
Proof.
apply: setC_inj; rewrite setC_bigcap setCI -bigcup2E /bigcap2 /bigcup2.
by apply: eq_bigcupr => -[|[|[]]]//=; rewrite setCT.
Qed.

Lemma bigcap2inEUsed by
  • mathcomp.analysis.measure_theory.measurable_structure

Source code
TSource code (ASource code BSource code : set T) : \bigcap_(iSource code < 2) (bigcap2 A B) i = A `&` B.
Proof.
apply: setC_inj; rewrite setC_bigcap setCI -bigcup2inE /bigcap2 /bigcup2.
by apply: eq_bigcupr => // -[|[|[]]].
Qed.

Lemma bigcup_reclUsed by
  • mathcomp.analysis.measure_theory.measure_extension

Source code
TSource code (FSource code : (set T)^nat) :
  \bigcup_nSource code F n = F 0%N `|` \bigcup_(nSource code in ~` `I_1) F n.
Proof.
by apply/seteqP; split => [t [[_ F0t|n _ Fnt]]|t [F0t|[n /= n0 Fnt]]];
  [left|right; by exists n.+1|exists 0%N|exists n].
Qed.

Lemma bigcup_imageUsed by
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.classical.functions

Source code
{aTSource code rTSource code ISource code} (PSource code : set aT) (fSource code : aT -> I) (FSource code : I -> set rT) :
  \bigcup_(xSource code in f @` P) F x = \bigcup_(xSource code in P) F (f x).
Proof.
rewrite eqEsubset; split=> x; first by case=> j [] i pi <- Xfix; exists i.
by case=> i Pi Ffix; exists (f i); [exists i|].
Qed.

Lemma bigcap_set_typeSource code {ISource code TSource code} (PSource code : set I) (FSource code : I -> set T) :
   \bigcap_(iSource code in P) F i = \bigcap_(jSource code : P) F (val j).
Proof.
by apply: setC_inj; rewrite !setC_bigcap bigcup_set_type. Qed.

Lemma bigcap_imageUsed by
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.topology_theory.topology_structure
  • mathcomp.analysis.topology_theory.supremum_topology
  • mathcomp.analysis.normedtype_theory.tvs
  • mathcomp.classical.functions

Source code
{aTSource code rTSource code ISource code} (PSource code : set aT) (fSource code : aT -> I) (FSource code : I -> set rT) :
  \bigcap_(xSource code in f @` P) F x = \bigcap_(xSource code in P) F (f x).
Proof.
by apply: setC_inj; rewrite !setC_bigcap bigcup_image. Qed.

Lemma bigcup_fsetUsed by
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.real_measure.lebesgue_stieltjes_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.classical.cardinality

Source code
{ISource code : choiceType} {USource code : Type}
    (FSource code : I -> set U) (XSource code : {fset I}) :
  \bigcup_(iSource code in [set iSource code | i \in X]) F i = \big[setU/set0]_(iSource code <- X) F i :> set U.
Proof.
elim/finSet_rect: X => X IHX; have [->|[x xX]] := fset_0Vmem X.
  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 bigcap_fsetUsed by
  • mathcomp.analysis.probability_theory.independence
  • mathcomp.analysis.normedtype_theory.tvs
  • mathcomp.classical.filter

Source code
{ISource code : choiceType} {USource code : Type}
    (FSource code : I -> set U) (XSource code : {fset I}) :
  \bigcap_(iSource code in [set iSource code | i \in X]) F i = \big[setI/setT]_(iSource code <- X) F i :> set U.
Proof.
by apply: setC_inj; rewrite setC_bigcap setC_bigsetI bigcup_fset. Qed.

Lemma bigcup_fsetU1Source code {TSource code USource code : choiceType} (FSource code : T -> set U) (xSource code : T) (XSource code : {fset T}) :
  \bigcup_(iSource code in [set jSource code | j \in x |` X]%fset) F i =
  F x `|` \bigcup_(iSource code in [set jSource code | j \in X]) F i.
Proof.
by rewrite set_fsetU1 bigcup_setU1. Qed.

Lemma bigcap_fsetU1Source code {TSource code USource code : choiceType} (FSource code : T -> set U) (xSource code : T) (XSource code : {fset T}) :
  \bigcap_(iSource code in [set jSource code | j \in x |` X]%fset) F i =
  F x `&` \bigcap_(iSource code in [set jSource code | j \in X]) F i.
Proof.
by rewrite set_fsetU1 bigcap_setU1. Qed.

Lemma bigcup_fsetD1Used by
  • mathcomp.analysis.topology_theory.function_spaces

Source code
{TSource code USource code : choiceType} (xSource code : T) (FSource code : T -> set U) (XSource code : {fset T}) :
    x \in X ->
  \bigcup_(iSource code in [set iSource code | i \in X]%fset) F i =
  F x `|` \bigcup_(iSource code in [set iSource code | i \in X `\ x]%fset) F i.
Proof.
by move=> Xx; rewrite (bigcup_setD1 x)// set_fsetD1. Qed.
Arguments bigcup_fsetD1 {T U} x.

Lemma bigcap_fsetD1Source code {TSource code USource code : choiceType} (xSource code : T) (FSource code : T -> set U) (XSource code : {fset T}) :
    x \in X ->
  \bigcap_(iSource code in [set iSource code | i \in X]%fset) F i =
  F x `&` \bigcap_(iSource code in [set iSource code | i \in X `\ x]%fset) F i.
Proof.
by move=> Xx; rewrite (bigcap_setD1 x)// set_fsetD1. Qed.
Arguments bigcup_fsetD1 {T U} x.

Section bigcup_seq.
Variables (TSource code : choiceType) (USource code : Type).

Lemma bigcup_seq_condUsed by
  • mathcomp.analysis.sequences
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_definition

Source code
 (sSource code : seq T) (fSource code : T -> set U) (PSource code : pred T) :
  \bigcup_(tSource code in [set xSource code | (x \in s) && P x]) (f t) =
  \big[setU/set0]_(tSource code <- s | P t) (f t).
Proof.
elim: s => [/=|h s ih]; first by rewrite set_nil bigcup_set0 big_nil.
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 bigcup_seqUsed by
  • mathcomp.analysis.measure_theory.measurable_function
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_definition
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_differentiation
  • mathcomp.analysis.lebesgue_integral_theory.measurable_fun_approximation

Source code
 (sSource code : seq T) (fSource code : T -> set U) :
  \bigcup_(tSource code in [set` s]) (f t) = \big[setU/set0]_(tSource code <- s) (f t).
Proof.
rewrite -(bigcup_seq_cond s f xpredT); congr (\bigcup_(tSource code in mkset _) _).
by rewrite funeqE => t; rewrite andbT.
Qed.

Lemma bigcap_seq_condSource code (sSource code : seq T) (fSource code : T -> set U) (PSource code : pred T) :
  \bigcap_(tSource code in [set xSource code | (x \in s) && P x]) (f t) =
  \big[setI/setT]_(tSource code <- s | P t) (f t).
Proof.

Lemma bigcap_seqSource code (sSource code : seq T) (fSource code : T -> set U) :
  \bigcap_(tSource code in [set` s]) (f t) = \big[setI/setT]_(tSource code <- s) (f t).
Proof.
by apply: setC_inj; rewrite setC_bigcap setC_bigsetI bigcup_seq. Qed.

End bigcup_seq.

Section bigop_nat_lemmas.
Context {TSource code : Type}.
Implicit Types (A : set T) (F : (set T)^nat).

Lemma bigcup_mkordUsed by
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.real_measure.lebesgue_stieltjes_measure
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.measure_theory.signed_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.measure_theory.counting_measure
  • mathcomp.analysis.ftc
  • mathcomp.analysis.sequences
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg
  • mathcomp.analysis.lebesgue_integral_theory.radon_nikodym
  • mathcomp.analysis.normedtype_theory.vitali_lemma
  • mathcomp.classical.cardinality

Source code
nSource code FSource code : \bigcup_(iSource code < n) F i = \big[setU/set0]_(iSource code < n) F i.
Proof.
rewrite -(big_mkord xpredT F) -bigcup_seq.
by apply: eq_bigcupl; split=> i; rewrite /= mem_index_iota leq0n.
Qed.

Lemma bigcup_bigsetUUsed by
  • mathcomp.analysis.measure_theory.measure_function

Source code
FSource code :
  \bigcup_kSource code \big[setU/set0]_(iSource code < k.+1) F i =
  \bigcup_kSource code \big[setU/set0]_(iSource code < k) F i.
Proof.
transitivity (\bigcup_(kSource code in S @` setT) \big[setU/set0]_(iSource code < k) F i).
  by rewrite bigcup_image.
rewrite [RHS](bigcup_setD1 0%N)// big_ord0 set0U; apply: eq_bigcupl.
split=> [x [? _ <-//]|x [_ x0]]/=; exists x.-1 => //; rewrite prednK// lt0n.
exact/eqP.
Qed.

Lemma bigcup_bigsetU_bigcupUsed by
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure

Source code
FSource code :
  \bigcup_kSource code \big[setU/set0]_(iSource code < k.+1) F i = \bigcup_kSource code F k.
Proof.
apply/seteqP; split=> [x [i _]|x [i _ Fix]].
  by rewrite -bigcup_mkord => -[j _ Fjx]; exists j.
by exists i => //; rewrite big_ord_recr/=; right.
Qed.

Lemma bigcup_mkord_ordUsed by
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.measure_theory.measurable_function

Source code
nSource code (GSource code : 'I_n.+1 -> set T) :
  \bigcup_(iSource code < n.+1) G (inord i) = \big[setU/set0]_(iSource code < n.+1) G i.
Proof.
rewrite bigcup_mkord; apply: eq_bigr => /= i _; congr G.
by apply/val_inj => /=; rewrite inordK.
Qed.

Lemma bigcap_mkordUsed by
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.topology_theory.topology_structure

Source code
nSource code FSource code : \bigcap_(iSource code < n) F i = \big[setI/setT]_(iSource code < n) F i.
Proof.
by apply: setC_inj; rewrite setC_bigsetI setC_bigcap bigcup_mkord. Qed.

Lemma bigsetU_supUsed by
  • mathcomp.analysis.measure_theory.measure_function

Source code
iSource code nSource code FSource code : (i < n)%N -> F i `<=` \big[setU/set0]_(jSource code < n) F j.
Proof.
by move: n => // n ni; rewrite -bigcup_mkord; exact/bigcup_sup. Qed.

Lemma bigsetU_bigcupUsed by
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.measure_theory.signed_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.ftc
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg

Source code
FSource code nSource code : \big[setU/set0]_(iSource code < n) F i `<=` \bigcup_kSource code F k.
Proof.
by rewrite -bigcup_mkord => x [k _ Fkx]; exists k. Qed.

Lemma bigsetU_bigcup2Used by
  • mathcomp.analysis.measure_theory.measure_negligible

Source code
 (ASource code BSource code : set T) :
   \big[setU/set0]_(iSource code < 2) bigcup2 A B i = A `|` B.
Proof.
by rewrite -bigcup_mkord bigcup2inE. Qed.

Lemma bigsetI_bigcap2Source code (ASource code BSource code : set T) :
   \big[setI/setT]_(iSource code < 2) bigcap2 A B i = A `&` B.
Proof.
by rewrite -bigcap_mkord bigcap2inE. Qed.

Lemma bigcup_splitnUsed by
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.measure_theory.measure_function

Source code
nSource code FSource code :
  \bigcup_iSource code F i = \big[setU/set0]_(iSource code < n) F i `|` \bigcup_iSource code F (n + i).
Proof.
rewrite -bigcup_mkord -(bigcup_image _ (addn n)) -bigcup_setU.
apply: eq_bigcupl; split=> // k _.
have [ltkn|lenk] := ltnP k n; [left => //|right].
by exists (k - n); rewrite // subnKC.
Qed.

Lemma bigcap_splitnSource code nSource code FSource code :
  \bigcap_iSource code F i = \big[setI/setT]_(iSource code < n) F i `&` \bigcap_iSource code F (n + i).
Proof.
by apply: setC_inj; rewrite setCI !setC_bigcap (bigcup_splitn n) setC_bigsetI.
Qed.

Lemma subset_bigsetUUsed by
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg

Source code
FSource code :
  {homo (fun nSource code => \big[setU/set0]_(iSource code < n) F i) : nSource code mSource code / (n <= m) >-> n `<=` m}.
Proof.
move=> m n mn; rewrite -!bigcup_mkord => x [i im Fix].
by exists i => //=; rewrite (leq_trans im).
Qed.

Lemma subset_bigsetISource code FSource code :
  {homo (fun nSource code => \big[setI/setT]_(iSource code < n) F i) : nSource code mSource code / (n <= m) >-> m `<=` n}.
Proof.
move=> m n mn; rewrite -setCS !setC_bigsetI.
exact: (@subset_bigsetU (setC \o F)).
Qed.

Lemma subset_bigsetU_condSource code (PSource code : pred nat) FSource code :
  {homo (fun nSource code => \big[setU/set0]_(iSource code < n | P i) F i)
    : nSource code mSource code / (n <= m) >-> n `<=` m}.
Proof.
move=> n m nm; rewrite big_mkcond [in X in _ `<=` X]big_mkcond/=.
exact: (@subset_bigsetU (fun iSource code => if P i then F i else _)).
Qed.

Lemma subset_bigsetI_condSource code (PSource code : pred nat) FSource code :
  {homo (fun nSource code => \big[setI/setT]_(iSource code < n | P i) F i)
    : nSource code mSource code / (n <= m) >-> m `<=` n}.
Proof.
move=> n m nm; rewrite big_mkcond [in X in _ `<=` X]big_mkcond/=.
exact: (@subset_bigsetI (fun iSource code => if P i then F i else _)).
Qed.

Lemma bigcup_addnSource code FSource code nSource code : \bigcup_iSource code F (n + i) = \bigcup_(iSource code >= n) F i.
Proof.
rewrite eqEsubset; split => [x /= [m _ Fmnx]|x /= [m nm Fmx]].
- by exists (n + m) => //=; rewrite leq_addr.
- by exists (m - n) => //; rewrite subnKC.
Qed.

Lemma bigcap_addnSource code FSource code nSource code : \bigcap_iSource code F (n + i) = \bigcap_(iSource code >= n) F i.
Proof.
rewrite eqEsubset; split=> [x /= Fnx m nm|x /= nFx m _].
- by rewrite -(subnKC nm); exact: Fnx.
- exact/nFx/leq_addr.
Qed.

End bigop_nat_lemmas.

Lemma bigcup_predUsed by
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.real_measure.lebesgue_stieltjes_measure

Source code
[TSource code : finType] [USource code : Type] (PSource code : {pred T}) (fSource code : T -> set U) :
  \bigcup_(tSource code in [set` P]) f t = \big[setU/set0]_(tSource code in P) f t.
Proof.
apply/predeqP => u; split=> [[x Px fxu]|]; first by rewrite (bigD1 x)//; left.
move=> /mem_set; rewrite (@big_morph _ _ (fun XSource code => 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 {TSource code} (CSource code : set T -> Prop).

Definition smallest

smallest : forall {T : Type}, (set T -> Prop) -> set T -> set T smallest is not universe polymorphic Arguments smallest {T}%_type_scope C%_function_scope G%_classical_set_scope _ smallest is transparent Expands to: Constant mathcomp.classical.classical_sets.smallest Declared in library mathcomp.classical.classical_sets, line 2501, characters 11-19


Used by
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.topology_theory.topology_structure
  • mathcomp.analysis.normedtype_theory.urysohn
  • mathcomp.analysis.normedtype_theory.normed_module
  • mathcomp.classical.filter

Source code
 (GSource code : set T) := \bigcap_(ASource code in [set MSource code | C M /\ G `<=` M]) A.

Lemma smallest_subUsed by
  • mathcomp.analysis.probability_theory.independence
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.real_measure.lebesgue_stieltjes_measure
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.measure_theory.measurable_function
  • mathcomp.analysis.topology_theory.topology_structure
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule
  • mathcomp.analysis.normedtype_theory.normed_module
  • mathcomp.classical.filter

Source code
GSource code XSource code : C X -> G `<=` X -> smallest G `<=` X.
Proof.
by move=> XC GX A; apply. Qed.

Lemma smallest_sub_subSource code GSource code XSource code : smallest G `<=` X -> G `<=` X.
Proof.
by apply: subset_trans => t Gt B [CB]; exact. Qed.

Lemma sub_smallestUsed by
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.normedtype_theory.normed_module

Source code
GSource code XSource code : X `<=` G -> X `<=` smallest G.
Proof.
by move=> XG A /XG GA Y /= [PY]; exact. Qed.

Lemma sub_gen_smallestUsed by
  • mathcomp.analysis.probability_theory.independence
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.lebesgue_integral_theory.giry
  • mathcomp.analysis.normedtype_theory.urysohn
  • mathcomp.classical.filter

Source code
GSource code : G `<=` smallest G
Proof.
exact: sub_smallest. Qed.

Lemma smallest_idUsed by
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.lebesgue_integral_theory.giry

Source code
GSource code : C G -> smallest G = G.
Proof.
by move=> Cs; apply/seteqP; split; [exact: smallest_sub|exact: sub_smallest].
Qed.

End smallest.
#[global] Hint Resolve sub_gen_smallest : core.

Lemma smallest_sub_iffUsed by
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.measure_theory.measurable_function

Source code
{TSource code} (CSource code : set T -> Prop) (XSource code YSource code : set T) :
  C Y -> smallest C X `<=` Y <-> X `<=` Y.
Proof.
by move=> CY; split; [exact: smallest_sub_sub|exact: smallest_sub].
Qed.

Definition bigcap_closed

bigcap_closed : forall {T : Type}, set_system T -> Prop bigcap_closed is not universe polymorphic Arguments bigcap_closed {T}%_type_scope C bigcap_closed is transparent Expands to: Constant mathcomp.classical.classical_sets.bigcap_closed Declared in library mathcomp.classical.classical_sets, line 2528, characters 11-24


Source code
{TSource code} (CSource code : set_system T) :=
  forall MMSource code : set_system T, MM `<=` C -> C (\bigcap_(ASource code in MM) A).

Section bigcap_closed_smallest.
Context {TSource code} (CSource code : set T -> Prop).

Lemma bigcap_closed_smallestSource code (GSource code : set T) : bigcap_closed C -> C (smallest C G).
Proof.
by apply; exact: subIsetl. Qed.

End bigcap_closed_smallest.

Lemma sub_smallest2rUsed by
  • mathcomp.analysis.probability_theory.independence
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.measure_theory.measurable_structure

Source code
{TSource code} (CSource code : set T -> Prop) G1Source code G2Source code :
   C (smallest C G2) -> G1 `<=` G2 -> smallest C G1 `<=` smallest C G2.
Proof.
by move=> CCG2 G12; apply: smallest_sub => //; exact: sub_smallest.
Qed.

Lemma sub_smallest2lUsed by
  • mathcomp.analysis.measure_theory.measurable_structure

Source code
{TSource code} (C1Source code C2Source code : set T -> Prop) :
   (forall GSource code, C2 G -> C1 G) ->
   forall GSource code, smallest C1 G `<=` smallest C2 G.
Proof.
by move=> C12 G X sX M [/C12 C1M GM]; exact: sX. Qed.

Definition is_subset1

is_subset1 : forall {T : Type}, set T -> Prop is_subset1 is not universe polymorphic Arguments is_subset1 {T}%_type_scope A%_classical_set_scope is_subset1 is transparent Expands to: Constant mathcomp.classical.classical_sets.is_subset1 Declared in library mathcomp.classical.classical_sets, line 2550, characters 11-21


Used by
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule

Source code
{TSource code} (ASource code : set T) := forall xSource code ySource code, A x -> A y -> x = y.
Definition is_fun

is_fun : forall {T1 T2 : Type}, (T1 -> T2 -> Prop) -> Prop is_fun is not universe polymorphic Arguments is_fun {T1 T2}%_type_scope f%_function_scope is_fun is transparent Expands to: Constant mathcomp.classical.classical_sets.is_fun Declared in library mathcomp.classical.classical_sets, line 2551, characters 11-17


Used by
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule

Source code
{T1Source code T2Source code} (fSource code : T1 -> T2 -> Prop) := Logic.all (is_subset1 \o f).
Definition is_total

is_total : forall {T1 T2 : Type}, (T1 -> T2 -> Prop) -> Prop is_total is not universe polymorphic Arguments is_total {T1 T2}%_type_scope f%_function_scope is_total is transparent Expands to: Constant mathcomp.classical.classical_sets.is_total Declared in library mathcomp.classical.classical_sets, line 2552, characters 11-19


Source code
{T1Source code T2Source code} (fSource code : T1 -> T2 -> Prop) := Logic.all (nonempty \o f).
Definition is_totalfun

is_totalfun : forall {T1 T2 : Type}, (T1 -> T2 -> Prop) -> Prop is_totalfun is not universe polymorphic Arguments is_totalfun {T1 T2}%_type_scope f%_function_scope is_totalfun is transparent Expands to: Constant mathcomp.classical.classical_sets.is_totalfun Declared in library mathcomp.classical.classical_sets, line 2553, characters 11-22


Used by
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.classical.filter

Source code
{T1Source code T2Source code} (fSource code : T1 -> T2 -> Prop) :=
  forall xSource code, (f x !=set0) /\ is_subset1 (f x).

Definition xget

xget : forall {T : choiceType}, T -> set T -> T xget is not universe polymorphic Arguments xget {T} x0 P%_classical_set_scope xget is transparent Expands to: Constant mathcomp.classical.classical_sets.xget Declared in library mathcomp.classical.classical_sets, line 2556, characters 11-15


Used by
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.matrix_topology
  • mathcomp.analysis.normedtype_theory.vitali_lemma
  • mathcomp.classical.classical_orders

Source code
{TSource code : choiceType} x0Source code (PSource code : set T) : T :=
  if pselect (exists xSource code : T, `[<P x>]) isn't left exP then x0
  else projT1 (sigW exP).

CoInductive xget_specSource code {TSource code : choiceType} x0Source code (PSource code : set T) : T -> Prop -> Type :=
| XGetSomeSource code xSource code of x = xget x0 P & P x : xget_spec x0 P x True
| XGetNoneSource code of (forall xSource code, ~ P x) : xget_spec x0 P x0 False.

Lemma xgetPUsed by
  • mathcomp.analysis.elementary_functions.trigonometry_functions
  • mathcomp.analysis.ereal
  • mathcomp.analysis.normedtype_theory.vitali_lemma
  • mathcomp.analysis.exp
  • mathcomp.classical.filter
  • mathcomp.classical.classical_orders
  • mathcomp.reals_stdlib.Rstruct

Source code
{TSource code : choiceType} x0Source code (PSource code : set T) :
  xget_spec x0 P (xget x0 P) (P (xget x0 P)).
Proof.
move: (erefl (xget x0 P)); set y := {2}(xget x0 P).
rewrite /xget; case: pselect => /= [?|neqP _].
  by case: sigW => x /= /asboolP Px; rewrite [P x]propT //; constructor.
suff NP x : ~ P x by rewrite [P x0]propF //; constructor.
by apply: contra_not neqP => Px; exists x; apply/asboolP.
Qed.

Lemma xgetPexUsed by
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.matrix_topology

Source code
{TSource code : choiceType} x0Source code (PSource code : set T) : (exists xSource code, P x) -> P (xget x0 P).
Proof.
by case: xgetP=> // NP [x /NP]. Qed.

Lemma xgetISource code {TSource code : choiceType} x0Source code (PSource code : set T) (xSource code : T): P x -> P (xget x0 P).
Proof.
by move=> Px; apply: xgetPex; exists x. Qed.

Lemma xget_subset1Source code {TSource code : choiceType} x0Source code (PSource code : set T) (xSource code : T) :
  P x -> is_subset1 P -> xget x0 P = x.
Proof.
by move=> Px /(_ _ _ (xgetI x0 Px) Px). Qed.

Lemma xget_uniqueSource code  {TSource code : choiceType} x0Source code (PSource code : set T) (xSource code : T) :
  P x -> (forall ySource code, P y -> y = x) -> xget x0 P = x.
Proof.
by move=> /xget_subset1 gPx eqx; apply: gPx=> y z /eqx-> /eqx. Qed.

Lemma xgetPNSource code {TSource code : choiceType} x0Source code (PSource code : set T) :
  (forall xSource code, ~ P x) -> xget x0 P = x0.
Proof.
by case: xgetP => // x _ Px /(_ x). Qed.

Definition fun_of_rel

fun_of_rel : forall [T : Type], rel T -> T -> pred T fun_of_rel is not universe polymorphic Arguments fun_of_rel [T]%_type_scope _ _ _ fun_of_rel is a reversible coercion fun_of_rel is transparent Expands to: Constant mathcomp.classical.boolp.fun_of_rel Declared in library mathcomp.classical.boolp, line 617, characters 18-28


Source code
{aTSource code} {rTSource code : choiceType} (f0Source code : aT -> rT)
  (fSource code : aT -> rT -> Prop) := fun xSource code => xget (f0 x) (f x).

Lemma fun_of_relPSource code {aTSource code} {rTSource code : choiceType} (fSource code : aT -> rT -> Prop) (f0Source code : aT -> rT) aSource code :
  f a !=set0 -> f a (fun_of_rel f0 f a).
Proof.
by move=> [b fab]; rewrite /fun_of_rel; apply: xgetI fab. Qed.

Lemma fun_of_rel_uniqSource code {aTSource code} {rTSource code : choiceType}
    (fSource code : aT -> rT -> Prop) (f0Source code : aT -> rT) aSource code :
  is_subset1 (f a) -> forall bSource code, f a b ->  fun_of_rel f0 f a = b.
Proof.
by move=> fa1 b /xget_subset1 xgeteq; rewrite /fun_of_rel xgeteq. Qed.

Lemma forall_sigUsed by
  • mathcomp.analysis.topology_theory.function_spaces

Source code
TSource code (ASource code : set T) (PSource code : {xSource code | x \in A} -> Prop) :
  (forall uSource code : {xSource code | x \in A}, P u) =
  (forall uSource code : T, forall (aSource code : A u), P (exist _ u (mem_set a))).
Proof.
rewrite propeqE; split=> [+ u a|PA [u a]]; first exact.
have Au : A u by rewrite inE in a.
by rewrite (Prop_irrelevance a (mem_set Au)); apply: PA.
Qed.

Lemma in_setPUsed by
  • mathcomp.analysis.kernel
  • mathcomp.analysis.topology_theory.subspace_topology

Source code
{USource code} (ASource code : set U) (PSource code : U -> Prop) :
  {in A, forall xSource code, P x} <-> forall xSource code, A x -> P x.
Proof.
by split=> AP x; have := AP x; rewrite inE. Qed.

Lemma in_set2PSource code {USource code VSource code} (ASource code : set U) (BSource code : set V) (PSource code : U -> V -> Prop) :
  {in A & B, forall xSource code ySource code, P x y} <-> (forall xSource code ySource code, A x -> B y -> P x y).
Proof.
by split=> AP x y; have := AP x y; rewrite !inE. Qed.

Lemma in1TTUsed by
  • mathcomp.analysis.probability_theory.normal_distribution
  • mathcomp.classical.cardinality

Source code
[T1Source code] [P1Source code : T1 -> Prop] :
  {in [set: T1], forall xSource code : T1, P1 x : Prop} -> forall xSource code : T1, P1 x : Prop.
Proof.
by move=> + *; apply; rewrite !inE. Qed.

Lemma in2TTUsed by
  • mathcomp.classical.functions
  • mathcomp.classical.cardinality

Source code
[T1Source code T2Source code] [P2Source code : T1 -> T2 -> Prop] :
  {in [set: T1] & [set: T2], forall (xSource code : T1) (ySource code : T2), P2 x y : Prop} ->
  forall (xSource code : T1) (ySource code : T2), P2 x y : Prop.
Proof.
by move=> + *; apply; rewrite !inE. Qed.

Lemma in3TTSource code [T1Source code T2Source code T3Source code] [P3Source code : T1 -> T2 -> T3 -> Prop] :
  {in [set: T1] & [set: T2] & [set: T3], forall (xSource code : T1) (ySource code : T2) (zSource code : T3), P3 x y z : Prop} ->
  forall (xSource code : T1) (ySource code : T2) (zSource code : T3), P3 x y z : Prop.
Proof.
by move=> + *; apply; rewrite !inE. Qed.

Lemma inTT_bijSource code [T1Source code T2Source code : Type] [fSource code : T1 -> T2] :
  {in [set: T1], bijective f} -> bijective f.
Proof.
by case=> [g /in1TT + /in1TT +]; exists g. Qed.

HBUsed by
  • mathcomp.analysis.topology_theory.uniform_structure
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule

Source code
.mixinUsed by
  • mathcomp.analysis.topology_theory.uniform_structure
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule

Source code
RecordUsed by
  • mathcomp.analysis.topology_theory.uniform_structure
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule

Source code
isPointedUsed by
  • mathcomp.analysis.topology_theory.uniform_structure
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule

Source code
TUsed by
  • mathcomp.analysis.topology_theory.uniform_structure
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule

Source code
:=Used by
  • mathcomp.analysis.topology_theory.uniform_structure
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule

Source code
{Used by
  • mathcomp.analysis.topology_theory.uniform_structure
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule

Source code
pointUsed by
  • mathcomp.analysis.topology_theory.uniform_structure
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule

Source code
:Used by
  • mathcomp.analysis.topology_theory.uniform_structure
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule

Source code
TUsed by
  • mathcomp.analysis.topology_theory.uniform_structure
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule

Source code
}.

#[shortUsed by
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.cantor
  • mathcomp.analysis.topology_theory.pseudometric_structure
  • mathcomp.analysis.topology_theory.discrete_topology
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.normedtype_theory.urysohn
  • mathcomp.classical.filter

Source code
(type=pointedTypeUsed by
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.cantor
  • mathcomp.analysis.topology_theory.pseudometric_structure
  • mathcomp.analysis.topology_theory.discrete_topology
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.normedtype_theory.urysohn
  • mathcomp.classical.filter

Source code
)]Used by
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.cantor
  • mathcomp.analysis.topology_theory.pseudometric_structure
  • mathcomp.analysis.topology_theory.discrete_topology
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.normedtype_theory.urysohn
  • mathcomp.classical.filter

Source code

HBUsed by
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.cantor
  • mathcomp.analysis.topology_theory.pseudometric_structure
  • mathcomp.analysis.topology_theory.discrete_topology
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.normedtype_theory.urysohn
  • mathcomp.classical.filter

Source code
.structureUsed by
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.cantor
  • mathcomp.analysis.topology_theory.pseudometric_structure
  • mathcomp.analysis.topology_theory.discrete_topology
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.normedtype_theory.urysohn
  • mathcomp.classical.filter

Source code
DefinitionUsed by
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.cantor
  • mathcomp.analysis.topology_theory.pseudometric_structure
  • mathcomp.analysis.topology_theory.discrete_topology
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.normedtype_theory.urysohn
  • mathcomp.classical.filter

Source code
PointedUsed by
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.cantor
  • mathcomp.analysis.topology_theory.pseudometric_structure
  • mathcomp.analysis.topology_theory.discrete_topology
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.normedtype_theory.urysohn
  • mathcomp.classical.filter

Source code
:=Used by
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.cantor
  • mathcomp.analysis.topology_theory.pseudometric_structure
  • mathcomp.analysis.topology_theory.discrete_topology
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.normedtype_theory.urysohn
  • mathcomp.classical.filter

Source code
{TUsed by
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.cantor
  • mathcomp.analysis.topology_theory.pseudometric_structure
  • mathcomp.analysis.topology_theory.discrete_topology
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.normedtype_theory.urysohn
  • mathcomp.classical.filter

Source code
of isPointed T & Choice T}.

HBSource code.instanceSource code DefinitionSource code _Source code (TSource code :Source code TypeSource code) (T'Source code :Source code TSource code -> pointedType) :=
  isPointed.Build (forall tSource code : T, T' t) (fun=> point).

HBSource code.instanceSource code DefinitionSource code _Source code :=Source code isPointedSource code.Build unit tt.
HBSource code.instanceSource code DefinitionSource code _Source code :=Source code isPointedSource code.Build bool false.
HBSource code.instanceSource code DefinitionSource code _Source code :=Source code isPointedSource code.Build Prop False.
HBSource code.instanceSource code DefinitionSource code _Source code :=Source code isPointedSource code.Build nat 0.
HBSource code.instanceSource code DefinitionSource code _Source code (TSource code T'Source code :Source code pointedTypeSource code) :=
  isPointed.Build (T * T')%type (point, point).
HBSource code.instanceSource code DefinitionSource code _Source code (nSource code :Source code natSource code) (T : pointedType) :=
  isPointed.Build (n.-tuple T) (nseq n point).
HBSource code.instanceSource code DefinitionSource code _Source code mSource code nSource code (TSource code :Source code pointedTypeSource code) :=
  isPointed.Build 'M[T]_(m, n) (\matrix_(_, _) point)%R.
HBSource code.instanceSource code DefinitionSource code _Source code (TSource code :Source code choiceTypeSource code) := isPointed.Build (option T) None.
HBSource code.instanceSource code DefinitionSource code _Source code (TSource code :Source code choiceTypeSource code) := isPointed.Build {fset T} fset0.

Notation getUsed by
  • mathcomp.analysis.elementary_functions.trigonometry_functions
  • mathcomp.analysis.topology_theory.uniform_structure
  • mathcomp.analysis.topology_theory.topology_structure
  • mathcomp.analysis.topology_theory.initial_topology
  • mathcomp.analysis.topology_theory.matrix_topology
  • mathcomp.analysis.derive
  • mathcomp.analysis.normedtype_theory.vitali_lemma
  • mathcomp.analysis.normedtype_theory.matrix_normedtype
  • mathcomp.analysis_stdlib.showcase.uniform_bigO
  • mathcomp.classical.filter

Source code
:= (xget point).
Notation "[ 'get' x | E ]"Source code := (get [set xSource code | E])
  (at level 0, x name, format "[ 'get' x | E ]", only printing) : form_scope.
Notation "[ 'get' x : T | E ]"Source code := (get (fun xSource code : T  => E))
  (at level 0, x name, format "[ 'get' x : T | E ]", only parsing) : form_scope.
Notation "[ 'get' x | E ]"Source code := (get (fun xSource code => E))
  (at level 0, x name, format "[ 'get' x | E ]") : form_scope.

Section PointedTheory.
Context {TSource code : pointedType}.

Lemma getPexUsed by
  • mathcomp.analysis.topology_theory.uniform_structure
  • mathcomp.analysis.topology_theory.topology_structure
  • mathcomp.analysis.topology_theory.initial_topology
  • mathcomp.analysis.topology_theory.matrix_topology
  • mathcomp.analysis.derive
  • mathcomp.analysis.normedtype_theory.matrix_normedtype
  • mathcomp.analysis.normedtype_theory.num_normedtype
  • mathcomp.analysis_stdlib.showcase.uniform_bigO
  • mathcomp.classical.filter

Source code
 (PSource code : set T) : (exists xSource code, P x) -> P (get P).
Proof.
exact: (xgetPex point). Qed.

Lemma getISource code (PSource code : set T) (xSource code : T): P x -> P (get P).
Proof.
exact: (xgetI point). Qed.

Lemma get_subset1Source code (PSource code : set T) (xSource code : T) : P x -> is_subset1 P -> get P = x.
Proof.
exact: (xget_subset1 point). Qed.

Lemma get_uniqueUsed by
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis_stdlib.Rstruct_topology

Source code
 (PSource code : set T) (xSource code : T) :
   P x -> (forall ySource code, P y -> y = x) -> get P = x.
Proof.
exact: (xget_unique point). Qed.

Lemma getPNSource code (PSource code : set T) : (forall xSource code, ~ P x) -> get P = point.
Proof.
exact: (xgetPN point). Qed.

Lemma setT0Used by
  • mathcomp.analysis.ereal
  • mathcomp.analysis.topology_theory.topology_structure

Source code
: setT != set0 :> set T.
Proof.
by apply/eqP => /seteqP[] /(_ point) /(_ Logic.I). Qed.

End PointedTheory.

HBSource code.mixinSource code RecordSource code isBiPointedSource code (XSource code :Source code TypeSource code) &Source code EqualitySource code X := {
  zero : X;
  one : X;
  zero_one_neq : zero != one;
}.

#[shortUsed by
  • mathcomp.analysis.topology_theory.topology_structure

Source code
(type=Used by
  • mathcomp.analysis.topology_theory.topology_structure

Source code
"biPointedType"Used by
  • mathcomp.analysis.topology_theory.topology_structure

Source code
)]Used by
  • mathcomp.analysis.topology_theory.topology_structure

Source code

HBUsed by
  • mathcomp.analysis.topology_theory.topology_structure

Source code
.structureUsed by
  • mathcomp.analysis.topology_theory.topology_structure

Source code
DefinitionUsed by
  • mathcomp.analysis.topology_theory.topology_structure

Source code
BiPointedUsed by
  • mathcomp.analysis.topology_theory.topology_structure

Source code
:=Used by
  • mathcomp.analysis.topology_theory.topology_structure

Source code

  { XSource code of Choice X & isBiPointed X }.

Variant squashedSource code TSource code : Prop := squashUsed by
  • mathcomp.classical.functions
  • mathcomp.classical.cardinality

Source code
 (xSource code : T).
Arguments squash {T} x.
Notation "$| T |"Source code := (squashed T) : form_scope.
Tactic Notation "squash" uconstr(x) := (exists; refine x) ||
   match goal with |- $| ?T | => exists; refine [the T of x] end.

Definition unsquash

unsquash : forall {T : Type}, $| T | -> T unsquash is not universe polymorphic Arguments unsquash {T}%_type_scope s unsquash is transparent Expands to: Constant mathcomp.classical.classical_sets.unsquash Declared in library mathcomp.classical.classical_sets, line 2709, characters 11-19


Used by
  • mathcomp.analysis.probability_theory.random_variable
  • mathcomp.analysis.cantor
  • mathcomp.analysis.topology_theory.uniform_structure
  • mathcomp.classical.functions
  • mathcomp.classical.cardinality

Source code
{TSource code} (sSource code : $|T|) : T :=
  projT1 (cid (let: squash x := s in @ex_intro T _ x isT)).
Lemma unsquashKUsed by
  • mathcomp.classical.functions

Source code
{TSource code} : cancel (@unsquash T) squash
Proof.
by move=> []. Qed.


HBSource code.mixinSource code RecordSource code isEmptySource code TSource code :=Source code {Source code
  axiomSource code :Source code TSource code -> False
}.

#[shortSource code(type=Source code"emptyType"Source code)]Source code
HBSource code.structureSource code DefinitionSource code EmptySource code :=Source code {TSource code of isEmpty T & Finite T}.

HBSource code.factorySource code RecordSource code Choice_isEmptySource code TSource code &Source code ChoiceSource code T := {
  axiom : T -> False
}.
HBSource code.buildersSource code ContextSource code TSource code &Source code Choice_isEmptySource code T.

Definition pickle

Builders_64.pickle : forall [T : Type], T -> nat Builders_64.pickle is not universe polymorphic Arguments Builders_64.pickle [T]%_type_scope _ Builders_64.pickle is transparent Expands to: Constant mathcomp.classical.classical_sets.Builders_64.pickle Declared in library mathcomp.classical.classical_sets, line 2727, characters 11-17


Source code
: T -> nat := fun=> 0%N.
Definition unpickle

Builders_64.unpickle : forall T : Type, nat -> option T Builders_64.unpickle is not universe polymorphic Arguments Builders_64.unpickle T%_type_scope _%_nat_scope Builders_64.unpickle is transparent Expands to: Constant mathcomp.classical.classical_sets.Builders_64.unpickle Declared in library mathcomp.classical.classical_sets, line 2728, characters 11-19


Source code
: nat -> option T := fun=> None.
Lemma pickleKSource code : pcancel pickle unpickle.
Proof.
by move=> x; case: (axiom x). Qed.
HBSource code.instanceSource code DefinitionSource code _Source code :=Source code isCountableSource code.Build T pickleK.

Lemma fin_axiomSource code : Finite.axiom ([::] : seq T).
Proof.
by move=> /[dup]/axiom. Qed.
HBSource code.instanceSource code DefinitionSource code _Source code :=Source code isFiniteSource code.Build T fin_axiom.

HBSource code.instanceSource code DefinitionSource code _Source code :=Source code isEmptySource code.Build T axiom.
HBSource code.endSource code.

HBSource code.factorySource code RecordSource code Type_isEmptySource code TSource code :=Source code {Source code
  axiomSource code :Source code TSource code -> False
}.
HBSource code.buildersSource code ContextSource code TSource code &Source code Type_isEmptySource code T.
Definition eq_op

Builders_73.eq_op : forall [T : Type], T -> T -> bool Builders_73.eq_op is not universe polymorphic Arguments Builders_73.eq_op [T]%_type_scope x y Builders_73.eq_op is transparent Expands to: Constant mathcomp.classical.classical_sets.Builders_73.eq_op Declared in library mathcomp.classical.classical_sets, line 2744, characters 11-16


Source code
 (xSource code ySource code : T) := true.
Lemma eq_opPSource code : Equality.axiom eq_op
Proof.
by move=> ? /[dup]/axiom. Qed.
HBSource code.instanceSource code DefinitionSource code _Source code :=Source code hasDecEqSource code.Build T eq_opP.

Definition find

Builders_73.find : forall [T : Type], pred T -> nat -> option T Builders_73.find is not universe polymorphic Arguments Builders_73.find [T]%_type_scope _ _%_nat_scope Builders_73.find is transparent Expands to: Constant mathcomp.classical.classical_sets.Builders_73.find Declared in library mathcomp.classical.classical_sets, line 2748, characters 11-15


Source code
& pred T & nat : option T := None.
Lemma findPSource code (PSource code : pred T) (nSource code : nat) (xSource code : T) :  find P n = Some x -> P x.
Proof.
by []. Qed.
Lemma ex_findSource code (PSource code : pred T) : (exists xSource code : T, P x) -> exists nSource code : nat, find P n.
Proof.
by move=> [/[dup]/axiom]. Qed.
Lemma eq_findSource code (PSource code QSource code : pred T) : P =1 Q -> find P =1 find Q.
Proof.
by []. Qed.
HBSource code.instanceSource code DefinitionSource code _Source code :=Source code hasChoiceSource code.Build T findP ex_find eq_find.

HBSource code.instanceSource code DefinitionSource code _Source code :=Source code Choice_isEmptySource code.Build T axiom.
HBSource code.endSource code.

HBSource code.instanceSource code DefinitionSource code _Source code :=Source code Type_isEmptySource code.Build False id.

HBSource code.instanceSource code DefinitionSource code _Source code :=Source code isEmptySource code.Build void (@of_void _).

Definition no

no : forall {T : emptyType}, T -> False no is not universe polymorphic Arguments no {T} _ no is transparent Expands to: Constant mathcomp.classical.classical_sets.no Declared in library mathcomp.classical.classical_sets, line 2764, characters 11-13


Used by
  • mathcomp.analysis.esum
  • mathcomp.classical.fsbigop
  • mathcomp.classical.cardinality

Source code
{TSource code : emptyType} : T -> False := @axiom T.
Definition any

any : forall {T : emptyType} {U : Type}, T -> U any is not universe polymorphic Arguments any {T} {U}%_type_scope _ any is transparent Expands to: Constant mathcomp.classical.classical_sets.any Declared in library mathcomp.classical.classical_sets, line 2765, characters 11-14


Used by
  • mathcomp.classical.functions
  • mathcomp.classical.cardinality

Source code
{TSource code : emptyType} {USource code}  : T -> U := @False_rect _ \o no.

Lemma empty_eq0Used by
  • mathcomp.classical.functions

Source code
{TSource code : emptyType} : all_equal_to (set0 : set T).
Proof.
by move=> X; apply/setF_eq0/no. Qed.

Definition quasi_canonical_of

quasi_canonical_of : forall [T C : Type], (C -> T) -> (emptyType -> T) -> Type quasi_canonical_of is not universe polymorphic Arguments quasi_canonical_of [T C]%_type_scope (sort alt)%_function_scope quasi_canonical_of is transparent Expands to: Constant mathcomp.classical.classical_sets.quasi_canonical_of Declared in library mathcomp.classical.classical_sets, line 2770, characters 11-29


Source code
TSource code CSource code (sortSource code : C -> T) (altSource code  : emptyType -> T):=
    forall (GSource code : T -> Type), (forall sSource code : emptyType, G (alt s)) -> (forall xSource code, G (sort x)) ->
  forall xSource code, G x.
Notation quasi_canonical_Source code sort alt := (@quasi_canonical_of _ _ sort alt).
Notation quasi_canonicalSource code T C := (@quasi_canonical_of T C id id).

Lemma qcanonSource code TSource code CSource code (sortSource code : C -> T) (altSource code : emptyType -> T) :
    (forall xSource code, (exists ySource code : emptyType, alt y = x) + (exists ySource code, sort y = x)) ->
  quasi_canonical_ sort alt.
Proof.
by move=> + G Cx Gs x => /(_ x)[/cid[y <-]|/cid[y <-]]. Qed.
Arguments qcanon {T C sort alt} x.

Lemma choicePpointedUsed by
  • mathcomp.analysis.esum
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.classical.fsbigop
  • mathcomp.classical.cardinality

Source code
: quasi_canonical choiceType pointedType.
Proof.
apply: qcanon => -[Ts [Tc Te]].
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 eqPpointedSource code : quasi_canonical eqType pointedType.
Proof.
by apply: qcanon; elim/eqPchoice; elim/choicePpointed => [[T F]|T];
   [left; exists (Empty.Pack F) | right; exists T].
Qed.

Lemma PpointedUsed by
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.classical.cardinality

Source code
: quasi_canonical Type pointedType.
Proof.
by apply: qcanon; elim/Peq; elim/eqPpointed => [[T F]|T];
   [left; exists (Empty.Pack F) | right; exists T].
Qed.

Section partitions.

Definition trivIset

trivIset : forall {T : finType}, {set {set T}} -> bool trivIset is not universe polymorphic Arguments trivIset {T} P%_set_scope trivIset is transparent Expands to: Constant mathcomp.boot.finset.trivIset Declared in library mathcomp.boot.finset, line 2011, characters 11-19


Used by
  • mathcomp.analysis.esum
  • mathcomp.analysis.probability_theory.independence
  • mathcomp.analysis.probability_theory.random_variable
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.measure_theory.signed_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.cantor
  • mathcomp.analysis.kernel
  • mathcomp.analysis.topology_theory.num_topology
  • mathcomp.analysis.numfun
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg
  • mathcomp.analysis.lebesgue_integral_theory.simple_functions
  • mathcomp.analysis.lebesgue_integral_theory.radon_nikodym
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integrable
  • mathcomp.analysis.lebesgue_integral_theory.measurable_fun_approximation
  • mathcomp.analysis.normedtype_theory.vitali_lemma
  • mathcomp.analysis.normedtype_theory.normed_module
  • mathcomp.classical.set_interval
  • mathcomp.classical.functions
  • mathcomp.classical.cardinality

Source code
TSource code ISource code (DSource code : set I) (FSource code : I -> set T) :=
  forall iSource code jSource code : I, D i -> D j -> F i `&` F j !=set0 -> i = j.

Lemma trivIset1Used by
  • mathcomp.analysis.normedtype_theory.vitali_lemma

Source code
TSource code ISource code (iSource code : I) (FSource code : I -> set T) : trivIset [set i] F.
Proof.
by move=> j k <- <-. Qed.

Lemma ltn_trivIsetSource code TSource code (FSource code : nat -> set T) :
  (forall nSource code mSource code, (m < n)%N -> F m `&` F n = set0) -> trivIset setT F.
Proof.
move=> h m n _ _ [t [mt nt]]; apply/eqP/negPn/negP.
by rewrite neq_ltn => /orP[] /h; apply/eqP/set0P; exists t.
Qed.

Lemma subsetC_trivIsetUsed by
  • mathcomp.analysis.measure_theory.signed_measure

Source code
TSource code (FSource code : nat -> set T) :
  (forall nSource code, F n.+1 `<=` ~` (\big[setU/set0]_(iSource code < n.+1) F i)) -> trivIset setT F.
Proof.
move=> sF; apply: ltn_trivIset => n m h; rewrite setIC; apply/disjoints_subset.
by case: n h => // n h; apply: (subset_trans (sF n)); exact/subsetC/bigsetU_sup.
Qed.

Lemma trivIset_mkcondUsed by
  • mathcomp.analysis.probability_theory.random_variable
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.normedtype_theory.normed_module

Source code
TSource code ISource code (DSource code : set I) (FSource code : I -> set T) :
  trivIset D F <-> trivIset setT (fun iSource code => if i \in D then F i else set0).
Proof.
split=> [tA i j _ _|tA i j Di Dj]; last first.
  by have := tA i j Logic.I Logic.I; rewrite !mem_set.
case: ifPn => iD; last by rewrite set0I => -[].
by case: ifPn => [jD /tA|jD]; [apply; exact: set_mem|rewrite setI0 => -[]].
Qed.

Lemma trivIset_set0Used by
  • mathcomp.analysis.measure_theory.signed_measure
  • mathcomp.analysis.measure_theory.measure_function

Source code
{ISource code TSource code} (DSource code : set I) : trivIset D (fun=> set0 : set T).
Proof.
by move=> i j Di Dj; rewrite setI0 => /set0P; rewrite eqxx. Qed.

Lemma trivIsetPUsed by
  • mathcomp.analysis.probability_theory.independence
  • mathcomp.analysis.probability_theory.random_variable
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.real_measure.lebesgue_stieltjes_measure
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.measure_theory.signed_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.dirac_measure
  • mathcomp.analysis.kernel
  • mathcomp.analysis.numfun
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg
  • mathcomp.analysis.lebesgue_integral_theory.radon_nikodym
  • mathcomp.analysis.lebesgue_integral_theory.measurable_fun_approximation
  • mathcomp.analysis.normedtype_theory.vitali_lemma
  • mathcomp.analysis.normedtype_theory.normed_module
  • mathcomp.classical.set_interval

Source code
{TSource code} {ISource code : eqType} {DSource code : set I} {FSource code : I -> set T} :
  trivIset D F <->
  forall iSource code jSource code : I, D i -> D j -> i != j -> F i `&` F j = set0.
Proof.
split=> tDF i j Di Dj; first by apply: contraNeq => /set0P/tDF->.
by move=> /set0P; apply: contraNeq => /tDF->.
Qed.

Lemma trivIset_bigsetUIUsed by
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.classical.cardinality

Source code
TSource code (DSource code : {pred nat}) (FSource code : nat -> set T) : trivIset D F ->
  forall nSource code mSource code, D m -> n <= m -> \big[setU/set0]_(iSource code < n | D i) F i `&` F m = set0.
Proof.
move=> /trivIsetP tA; elim => [|n IHn] m Dm.
  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 trivIset_setIlUsed by
  • mathcomp.analysis.probability_theory.random_variable
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.lebesgue_integral_theory.simple_functions
  • mathcomp.analysis.lebesgue_integral_theory.radon_nikodym

Source code
 (TSource code ISource code : Type) (DSource code : set I) (FSource code : I -> set T) (GSource code : I -> set T) :
  trivIset D F -> trivIset D (fun iSource code => G i `&` F i).
Proof.
by move=> tF i j Di Dj [x [[Gix Fix] [Gjx Fjx]]]; apply tF => //; exists x.
Qed.

Lemma trivIset_setIrUsed by
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_definition

Source code
 (TSource code ISource code : Type) (DSource code : set I) (FSource code : I -> set T) (GSource code : I -> set T) :
  trivIset D F -> trivIset D (fun iSource code => F i `&` G i).
Proof.
by move=> tF i j Di Dj [x [[Fix Gix] [Fjx Gjx]]]; apply tF => //; exists x.
Qed.

Lemma sub_trivIsetUsed by
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.ftc
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg
  • mathcomp.analysis.lebesgue_integral_theory.radon_nikodym

Source code
ISource code TSource code (DSource code D'Source code : set I) (FSource code : I -> set T) :
  D `<=` D' -> trivIset D' F -> trivIset D F.
Proof.
by move=> DD' Ftriv i j /DD' + /DD' + /Ftriv->//. Qed.

Lemma trivIset_bigcup2Used by
  • mathcomp.analysis.measure_theory.measurable_structure

Source code
TSource code (ASource code BSource code : set T) :
  (A `&` B = set0) = trivIset setT (bigcup2 A B).
Proof.
apply/propext; split=> [AB0|/trivIsetP/(_ 0 1 Logic.I Logic.I erefl)//].
apply/trivIsetP => -[/=|]; rewrite /bigcup2 /=.
- by move=> [//|[_ _ _ //|j _ _ _]]; rewrite setI0.
- move=> [[j _ _|]|i j _ _ _]; [by rewrite setIC| |by rewrite set0I].
  by move=> [//|j _ _ _]; rewrite setI0.
Qed.

Lemma trivIset_imageSource code TSource code ISource code I'Source code (DSource code : set I) (fSource code : I -> I') (FSource code : I' -> set T) :
  trivIset D (F \o f) -> trivIset (f @` D) F.
Proof.
by move=> trivF i j [{}i Di <-] [{}j Dj <-] Ffij; congr (f _); apply: trivF.
Qed.
Arguments trivIset_image {T I I'} D f F.

Lemma trivIset_compUsed by
  • mathcomp.analysis.probability_theory.random_variable
  • mathcomp.analysis.measure_theory.measure_function

Source code
TSource code ISource code I'Source code (DSource code : set I) (fSource code : I -> I') (FSource code : I' -> set T) :
    {in D &, injective f} ->
  trivIset D (F \o f) = trivIset (f @` D) F.
Proof.
move=> finj; apply/propext; split; first exact: trivIset_image.
move=> trivF i j Di Dj Ffij; apply: finj; rewrite ?in_setE//.
by apply: trivF => //=; [exists i| exists j].
Qed.

Lemma trivIset_preimage1Used by
  • mathcomp.analysis.probability_theory.random_variable
  • mathcomp.analysis.lebesgue_integral_theory.simple_functions
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_definition
  • mathcomp.analysis.lebesgue_integral_theory.counting_lebesgue

Source code
{aTSource code rTSource code} DSource code (fSource code : aT -> rT) :
  trivIset D (fun xSource code => f @^-1` [set x]).
Proof.
by move=> y z _ _ [x [<- <-]]. Qed.

Lemma trivIset_preimage1_inSource code {aTSource code} {rTSource code : choiceType} (DSource code : set rT) (ASource code : set aT)
  (fSource code : aT -> rT) : trivIset D (fun xSource code => A `&` f @^-1` [set x]).
Proof.
by move=> y z _ _ [x [[_ <-] [_ <-]]]. Qed.

Lemma trivIset_bigcupUsed by
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.normedtype_theory.vitali_lemma

Source code
 (ISource code TSource code : Type) (JSource code : eqType) (DSource code : J -> set I) (FSource code : I -> set T) :
  (forall nSource code, trivIset (D n) F) ->
  (forall nSource code mSource code iSource code jSource code, n != m -> D n i -> D m j -> F i `&` F j !=set0 -> i = j) ->
  trivIset (\bigcup_kSource code D k) F.
Proof.
move=> tB H; move=> i j [n _ Dni] [m _ Dmi] ij.
have [nm|nm] := eqVneq n m; first by apply: (tB m) => //; rewrite -nm.
exact: (H _ _ _ _ nm).
Qed.

Lemma trivIsetT_bigcupUsed by
  • mathcomp.analysis.real_measure.lebesgue_measure

Source code
T1Source code T2Source code (ISource code : eqType) (DSource code : I -> set T1) (FSource code : T1 -> set T2) :
  trivIset setT D ->
  trivIset (\bigcup_iSource code D i) F ->
  trivIset setT (fun iSource code => \bigcup_(tSource code in D i) F t).
Proof.
move=> D0 h i j _ _ [t [[m Dim Fmt] [n Djn Fnt]]].
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 cover

cover : forall {T : finType}, {set {set T}} -> {set T} cover is not universe polymorphic Arguments cover {T} P%_set_scope cover is transparent Expands to: Constant mathcomp.boot.finset.cover Declared in library mathcomp.boot.finset, line 2009, characters 11-16


Used by
  • mathcomp.analysis.real_measure.lebesgue_stieltjes_measure
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.topology_theory.compact
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_differentiation
  • mathcomp.analysis.normedtype_theory.vitali_lemma

Source code
TSource code ISource code DSource code (FSource code : I -> set T) := \bigcup_(iSource code in D) F i.

Lemma coverEUsed by
  • mathcomp.analysis.topology_theory.function_spaces

Source code
TSource code ISource code DSource code (FSource code : I -> set T) : cover D F = \bigcup_(iSource code in D) F i.
Proof.
by []. Qed.

Lemma cover_restrSource code TSource code ISource code D'Source code DSource code (FSource code : I -> set T) :
  D `<=` D' -> (forall iSource code, D' i -> ~ D i -> F i = set0) ->
  cover D F = cover D' F.
Proof.
move=> DD' D'DF; rewrite /cover eqEsubset; split=> [r [i Di Fit]|r [i D'i Fit]].
- by have [D'i|] := pselect (D' i); [exists i | have := DD' _ Di].
- by have [Di|Di] := pselect (D i); [exists i | move: Fit; rewrite (D'DF i)].
Qed.

Lemma eqcover_rSource code TSource code ISource code DSource code (FSource code GSource code : I -> set T) :
  [set F i | iSource code in D] = [set G i | iSource code in D] ->
  cover D F = cover D G.
Proof.
move=> FG.
rewrite eqEsubset; split => [t [i Di Fit]|t [i Di Git]].
  have [j Dj GF] : [set G i | iSource code in D] (F i) by rewrite -FG /mkset; exists i.
  by exists j => //; rewrite GF.
have [j Dj GF] : [set F i | iSource code in D] (G i) by rewrite FG /mkset; exists i.
by exists j => //; rewrite GF.
Qed.

Definition partition

partition : forall {T : finType}, {set {set T}} -> {set T} -> bool partition is not universe polymorphic Arguments partition {T} (P D)%_set_scope partition is transparent Expands to: Constant mathcomp.boot.finset.partition Declared in library mathcomp.boot.finset, line 2012, characters 11-20


Source code
TSource code ISource code DSource code (FSource code : I -> set T) (ASource code : set T) :=
  [/\ cover D F = A, trivIset D F & forall iSource code, D i -> F i !=set0].

Definition pblock_index

pblock_index : forall [T : Type] [I : pointedType], (I -> Prop) -> (I -> set T) -> T -> I pblock_index is not universe polymorphic Arguments pblock_index [T]%_type_scope [I] (D F)%_function_scope x pblock_index is transparent Expands to: Constant mathcomp.classical.classical_sets.pblock_index Declared in library mathcomp.classical.classical_sets, line 2961, characters 11-23


Source code
TSource code (ISource code : pointedType) DSource code (FSource code : I -> set T) (xSource code : T) :=
  [get iSource code | D i /\ F i x].

Definition pblock

pblock : forall {T : finType}, {set {set T}} -> T -> {set T} pblock is not universe polymorphic Arguments pblock {T} P%_set_scope x pblock is transparent Expands to: Constant mathcomp.boot.finset.pblock Declared in library mathcomp.boot.finset, line 2010, characters 11-17


Source code
TSource code (ISource code : pointedType) DSource code (FSource code : I -> set T) (xSource code : T) :=
  F (pblock_index D F x).


Notation trivIsetsSource code X := (trivIset X id).

Lemma trivIset_setsUsed by
  • mathcomp.analysis.measure_theory.measure_function

Source code
TSource code ISource code DSource code (FSource code : I -> set T) :
  trivIset D F -> trivIsets [set F i | iSource code in D].
Proof.
exact: trivIset_image. Qed.

Lemma trivIset_widenSource code TSource code ISource code D'Source code DSource code (FSource code : I -> set T) :
  D `<=` D' -> (forall iSource code, D' i -> ~ D i -> F i = set0) ->
  trivIset D F = trivIset D' F.
Proof.
move=> DD' DD'F.
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 perm_eq_trivIsetSource code {TSource code : eqType} (s1Source code s2Source code : seq (set T)) (DSource code : set nat) :
  [set kSource code | (k < size s1)] `<=` D -> perm_eq s1 s2 ->
  trivIset D (fun iSource code => nth set0 s1 i) -> trivIset D (fun iSource code => nth set0 s2 i).
Proof.
move=> s1D; rewrite perm_sym => /(perm_iotaP set0)[s ss1 s12] /trivIsetP ts1.
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 trivIset_setISource code := trivIset_setIl (only parsing).

Section Zorn.

Definition total_on

total_on : forall [T : Type], set T -> (T -> T -> Prop) -> Prop total_on is not universe polymorphic Arguments total_on [T]%_type_scope A%_classical_set_scope R%_function_scope total_on is transparent Expands to: Constant mathcomp.classical.classical_sets.total_on Declared in library mathcomp.classical.classical_sets, line 3013, characters 11-19


Source code
TSource code (ASource code : set T) (RSource code : T -> T -> Prop) :=
  forall sSource code tSource code, A s -> A t -> R s t \/ R t s.

Let total_on_wo_chainSource code (TSource code : Type) (RSource code : rel T) (PSource code : {pred T}) :
  (forall ASource code, total_on A R -> exists tSource code, forall sSource code, A s -> R s t) ->
  wo_chain R P -> exists2 zSource code, z \in predT & upper_bound R P z.
Proof.
move: R P; elim/Peq : T => T R P Atot RP.
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 ZornUsed by
  • mathcomp.analysis.functional_analysis.hahn_banach_theorem

Source code
 (TSource code : Type) (RSource code : rel T) :
  (forall tSource code, R t t) -> (forall rSource code sSource code tSource code, R r s -> R s t -> R r t) ->
  (forall sSource code tSource code, R s t -> R t s -> s = t) ->
  (forall ASource code : set T, total_on A R -> exists tSource code, forall sSource code, A s -> R s t) ->
  exists tSource code, forall sSource code, R t s -> s = t.
Proof.
move: R; elim/Peq : T => T R Rxx Rtrans Ranti Atot.
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 premaximal

premaximal : forall [T : Type], (T -> T -> Prop) -> T -> Prop premaximal is not universe polymorphic Arguments premaximal [T]%_type_scope R%_function_scope t premaximal is transparent Expands to: Constant mathcomp.classical.classical_sets.premaximal Declared in library mathcomp.classical.classical_sets, line 3043, characters 11-21


Used by
  • mathcomp.classical.filter

Source code
TSource code (RSource code : T -> T -> Prop) (tSource code : T) :=
  forall sSource code, R t s -> R s t.

Lemma ZL_preorderUsed by
  • mathcomp.classical.filter

Source code
 (TSource code : Type) (t0Source code : T) (RSource code : rel T) :
  (forall tSource code, R t t) -> (forall rSource code sSource code tSource code, R r s -> R s t -> R r t) ->
  (forall ASource code, total_on A R -> exists tSource code, forall sSource code, A s -> R s t) ->
  exists tSource code, premaximal R t.
Proof.
move: t0 R; elim/Peq : T => T t0 R Rxx Rtrans Atot.
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 (TSource code : Type) (PSource code : set_system T).

Lemma Zorn_bigcupSource code :
    (forall FSource code : set_system T, F `<=` P -> total_on F subset ->
      P (\bigcup_(XSource code in F) X)) ->
  exists ASource code, P A /\ forall BSource code, A `<` B -> ~ P B.
Proof.
move=> totP; pose R (sASource code sBSource code : P) := `[< sval sA `<=` sval sB >].
have {}totR F (FRSource code : total_on F R) : exists sBSource code, forall sASource code, F sA -> R sA sB.
   have FP : [set val x | xSource code in F] `<=` P.
     by move=> _ [X FX <-]; apply: set_mem; exact/valP.
   have totF : total_on [set val x | xSource code 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 xSource code : 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 maximal_disjoint_subcollection

maximal_disjoint_subcollection : forall [T I : Type], (I -> set T) -> set I -> set I -> Prop maximal_disjoint_subcollection is not universe polymorphic Arguments maximal_disjoint_subcollection [T I]%_type_scope F%_function_scope (A B)%_classical_set_scope maximal_disjoint_subcollection is transparent Expands to: Constant mathcomp.classical.classical_sets.maximal_disjoint_subcollection Declared in library mathcomp.classical.classical_sets, line 3091, characters 11-41


Used by
  • mathcomp.analysis.normedtype_theory.vitali_lemma

Source code
TSource code ISource code (FSource code : I -> set T) (ASource code BSource code : set I) :=
  [/\ A `<=` B, trivIset A F & forall CSource code,
      A `<` C -> C `<=` B -> ~ trivIset C F ].

Section maximal_disjoint_subcollection.
Context {ISource code TSource code : Type}.
Variables (BSource code : I -> set T) (DSource code : set I).

Let PSource code := fun XSource code => X `<=` D /\ trivIset X B.

Let maxPSource code (ASource code : set_system I) :
  A `<=` P -> total_on A (fun xSource code ySource code => x `<=` y) -> P (\bigcup_(xSource code in A) x).
Proof.
move=> AP h; split; first by apply: bigcup_sub => E /AP [].
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 ex_maximal_disjoint_subcollectionUsed by
  • mathcomp.analysis.normedtype_theory.vitali_lemma

Source code
:
  { ESource code | maximal_disjoint_subcollection B E D }.
Proof.
have /cid[E [[ED tEB] maxE]] := Zorn_bigcup maxP.
by exists E; split => // F /maxE + FD; exact: contra_not.
Qed.

End maximal_disjoint_subcollection.

Section UpperLowerTheory.
Import Order.TTheory.
Variables (dSource code : Order.disp_t) (TSource code : porderType d).
Implicit Types (A : set T) (x y z : T).

Definition ubound

ubound : forall [d : Order.disp_t] [T : porderType d], set T -> set T ubound is not universe polymorphic Arguments ubound [d T] A%_classical_set_scope _ ubound is transparent Expands to: Constant mathcomp.classical.classical_sets.ubound Declared in library mathcomp.classical.classical_sets, line 3124, characters 11-17


Used by
  • mathcomp.analysis.functional_analysis.hahn_banach_theorem
  • mathcomp.analysis.elementary_functions.trigonometry_functions
  • mathcomp.analysis.ereal
  • mathcomp.analysis.topology_theory.order_topology
  • mathcomp.analysis.topology_theory.num_topology
  • mathcomp.analysis.sequences
  • mathcomp.reals.reals
  • mathcomp.classical.set_interval
  • mathcomp.experimental_reals.realsum
  • mathcomp.reals_stdlib.Rstruct

Source code
ASource code : set T := [set ySource code | forall xSource code, A x -> (x <= y)%O].
Definition lbound

lbound : forall [d : Order.disp_t] [T : porderType d], set T -> set T lbound is not universe polymorphic Arguments lbound [d T] A%_classical_set_scope _ lbound is transparent Expands to: Constant mathcomp.classical.classical_sets.lbound Declared in library mathcomp.classical.classical_sets, line 3125, characters 11-17


Used by
  • mathcomp.analysis.functional_analysis.hahn_banach_theorem
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.ereal
  • mathcomp.analysis.topology_theory.order_topology
  • mathcomp.analysis.sequences
  • mathcomp.reals.reals
  • mathcomp.classical.set_interval

Source code
ASource code : set T := [set ySource code | forall xSource code, A x -> (y <= x)%O].

Lemma ubPUsed by
  • mathcomp.analysis.realfun
  • mathcomp.analysis.ereal
  • mathcomp.analysis.sequences
  • mathcomp.analysis.normedtype_theory.complete_normed_module
  • mathcomp.reals.reals
  • mathcomp.classical.set_interval
  • mathcomp.experimental_reals.distr
  • mathcomp.experimental_reals.realsum
  • mathcomp.experimental_reals.realseq
  • mathcomp.reals_stdlib.Rstruct

Source code
ASource code xSource code : (forall ySource code, A y -> (y <= x)%O) <-> ubound A x.
Proof.
by []. Qed.

Lemma lbPUsed by
  • mathcomp.analysis.ereal
  • mathcomp.classical.set_interval

Source code
ASource code xSource code : (forall ySource code, A y -> (x <= y)%O) <-> lbound A x.
Proof.
by []. Qed.

Lemma ub_set1Used by
  • mathcomp.analysis.ereal

Source code
xSource code ySource code : ubound [set x] y = (x <= y)%O.
Proof.
by rewrite propeqE; split => [/(_ x erefl)//|xy z ->]. Qed.

Lemma lb_set1Source code xSource code ySource code : lbound [set x] y = (x >= y)%O.
Proof.
by rewrite propeqE; split => [/(_ x erefl)//|xy z ->]. Qed.

Lemma lb_ub_set1Source code xSource code ySource code : lbound (ubound [set x]) y -> (y <= x)%O.
Proof.
by move/(_ x); apply; rewrite ub_set1. Qed.

Lemma ub_lb_set1Source code xSource code ySource code : ubound (lbound [set x]) y -> (x <= y)%O.
Proof.
by move/(_ x); apply; rewrite lb_set1. Qed.

Lemma lb_ub_reflUsed by
  • mathcomp.analysis.ereal

Source code
xSource code : lbound (ubound [set x]) x.
Proof.
by move=> y; apply. Qed.

Lemma ub_lb_reflSource code xSource code : ubound (lbound [set x]) x.
Proof.
by move=> y; apply. Qed.

Lemma ub_lb_ubSource code ASource code xSource code ySource code : ubound A y -> lbound (ubound A) x -> (x <= y)%O.
Proof.
by move=> Ay; apply. Qed.

Lemma lb_ub_lbSource code ASource code xSource code ySource code : lbound A y -> ubound (lbound A) x -> (y <= x)%O.
Proof.
by move=> Ey; apply. Qed.

Definition down

down : forall [d : Order.disp_t] [T : porderType d], set T -> set T down is not universe polymorphic Arguments down [d T] A%_classical_set_scope _ down is transparent Expands to: Constant mathcomp.classical.classical_sets.down Declared in library mathcomp.classical.classical_sets, line 3159, characters 11-15


Used by
  • mathcomp.analysis.normedtype_theory.complete_normed_module
  • mathcomp.reals.reals

Source code
ASource code : set T := [set xSource code | exists ySource code, A y /\ (x <= y)%O].

Definition has_ubound

has_ubound : forall [d : Order.disp_t] [T : porderType d], set T -> Prop has_ubound is not universe polymorphic Arguments has_ubound [d T] A%_classical_set_scope has_ubound is transparent Expands to: Constant mathcomp.classical.classical_sets.has_ubound Declared in library mathcomp.classical.classical_sets, line 3161, characters 11-21


Used by
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.real_measure.lebesgue_stieltjes_measure
  • mathcomp.analysis.realfun
  • mathcomp.analysis.ereal
  • mathcomp.analysis.topology_theory.num_topology
  • mathcomp.analysis.numfun
  • mathcomp.analysis.sequences
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule
  • mathcomp.analysis.normedtype_theory.tvs
  • mathcomp.analysis.normedtype_theory.num_normedtype
  • mathcomp.analysis.normedtype_theory.normed_module
  • mathcomp.reals.reals
  • mathcomp.classical.set_interval
  • mathcomp.reals_stdlib.Rstruct

Source code
ASource code := ubound A !=set0.
Definition has_sup

has_sup : forall [d : Order.disp_t] [T : porderType d], set T -> Prop has_sup is not universe polymorphic Arguments has_sup [d T] A%_classical_set_scope has_sup is transparent Expands to: Constant mathcomp.classical.classical_sets.has_sup Declared in library mathcomp.classical.classical_sets, line 3162, characters 11-18


Used by
  • mathcomp.analysis.realfun
  • mathcomp.analysis.ereal
  • mathcomp.analysis.derive
  • mathcomp.analysis.sequences
  • mathcomp.analysis.normedtype_theory.complete_normed_module
  • mathcomp.analysis.normedtype_theory.num_normedtype
  • mathcomp.analysis.normedtype_theory.normed_module
  • mathcomp.reals.real_interval
  • mathcomp.reals.reals
  • mathcomp.experimental_reals.realsum
  • mathcomp.experimental_reals.realseq
  • mathcomp.reals_stdlib.Rstruct

Source code
ASource code := (A !=set0) /\ has_ubound A.
Definition has_lbound

has_lbound : forall [d : Order.disp_t] [T : porderType d], set T -> Prop has_lbound is not universe polymorphic Arguments has_lbound [d T] A%_classical_set_scope has_lbound is transparent Expands to: Constant mathcomp.classical.classical_sets.has_lbound Declared in library mathcomp.classical.classical_sets, line 3163, characters 11-21


Used by
  • mathcomp.analysis.real_measure.measurable_realfun
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.real_measure.lebesgue_stieltjes_measure
  • mathcomp.analysis.realfun
  • mathcomp.analysis.ereal
  • mathcomp.analysis.topology_theory.num_topology
  • mathcomp.analysis.sequences
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule
  • mathcomp.analysis.normedtype_theory.num_normedtype
  • mathcomp.analysis.normedtype_theory.normed_module
  • mathcomp.reals.reals
  • mathcomp.classical.set_interval

Source code
ASource code := lbound A !=set0.
Definition has_inf

has_inf : forall [d : Order.disp_t] [T : porderType d], set T -> Prop has_inf is not universe polymorphic Arguments has_inf [d T] A%_classical_set_scope has_inf is transparent Expands to: Constant mathcomp.classical.classical_sets.has_inf Declared in library mathcomp.classical.classical_sets, line 3164, characters 11-18


Used by
  • mathcomp.analysis.sequences
  • mathcomp.analysis.normedtype_theory.tvs
  • mathcomp.analysis.normedtype_theory.num_normedtype
  • mathcomp.reals.real_interval
  • mathcomp.reals.reals

Source code
ASource code := (A !=set0) /\ has_lbound A.

Lemma has_ub_set1Source code xSource code : has_ubound [set x].
Proof.
by exists x; rewrite ub_set1. Qed.

Lemma has_inf0Source code : ~ has_inf (@set0 T).
Proof.
by rewrite /has_inf not_andP; left; exact/nonemptyPn. Qed.

Lemma has_sup0Used by
  • mathcomp.reals.reals

Source code
: ~ has_sup (@set0 T).
Proof.
by rewrite /has_sup not_andP; left; exact/nonemptyPn. Qed.

Lemma has_sup1Used by
  • mathcomp.reals.real_interval

Source code
xSource code : has_sup [set x].
Proof.
by split; [exists x | exists x => y ->]. Qed.

Lemma has_inf1Used by
  • mathcomp.reals.real_interval

Source code
xSource code : has_inf [set x].
Proof.
by split; [exists x | exists x => y ->]. Qed.

Lemma subset_has_lboundUsed by
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.real_measure.lebesgue_stieltjes_measure
  • mathcomp.classical.set_interval

Source code
ASource code BSource code : A `<=` B -> has_lbound B -> has_lbound A.
Proof.
by move=> AB [l Bl]; exists l => a Aa; exact/Bl/AB. Qed.

Lemma subset_has_uboundUsed by
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.real_measure.lebesgue_stieltjes_measure
  • mathcomp.analysis.normedtype_theory.pseudometric_normed_Zmodule
  • mathcomp.classical.set_interval

Source code
ASource code BSource code : A `<=` B -> has_ubound B -> has_ubound A.
Proof.
by move=> AB [l Bl]; exists l => a Aa; exact/Bl/AB. Qed.

Lemma downPUsed by
  • mathcomp.analysis.normedtype_theory.complete_normed_module
  • mathcomp.reals.reals
  • mathcomp.experimental_reals.realsum

Source code
ASource code xSource code : (exists2 ySource code, A y & (x <= y)%O) <-> down A x.
Proof.
by split => [[y Ay xy]|[y [Ay xy]]]; [exists y| exists y]. Qed.

Definition isLub

isLub : forall [d : Order.disp_t] [T : porderType d], set T -> T -> Prop isLub is not universe polymorphic Arguments isLub [d T] A%_classical_set_scope m isLub is transparent Expands to: Constant mathcomp.classical.classical_sets.isLub Declared in library mathcomp.classical.classical_sets, line 3190, characters 11-16


Used by
  • mathcomp.reals_stdlib.Rstruct

Source code
ASource code mSource code := ubound A m /\ forall bSource code, ubound A b -> (m <= b)%O.

Definition supremums

supremums : forall [d : Order.disp_t] [T : porderType d], set T -> set T supremums is not universe polymorphic Arguments supremums [d T] A%_classical_set_scope _ supremums is transparent Expands to: Constant mathcomp.classical.classical_sets.supremums Declared in library mathcomp.classical.classical_sets, line 3192, characters 11-20


Used by
  • mathcomp.analysis.ereal
  • mathcomp.analysis.topology_theory.order_topology
  • mathcomp.reals_stdlib.Rstruct

Source code
ASource code := ubound A `&` lbound (ubound A).

Lemma supremums1Source code xSource code : supremums [set x] = [set x].
Proof.
rewrite /supremums predeqE => y; split => [[]|->{y}]; last first.
  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 is_subset1_supremumsUsed by
  • mathcomp.analysis.ereal

Source code
ASource code : is_subset1 (supremums A).
Proof.
move=> x y [Ax xA] [Ay yA]; apply/eqP.
by rewrite eq_le (ub_lb_ub Ax yA) (ub_lb_ub Ay xA).
Qed.

Definition supremum

supremum : forall [d : Order.disp_t] [T : porderType d], T -> set T -> T supremum is not universe polymorphic Arguments supremum [d T] x0 A%_classical_set_scope supremum is transparent Expands to: Constant mathcomp.classical.classical_sets.supremum Declared in library mathcomp.classical.classical_sets, line 3207, characters 11-19


Used by
  • mathcomp.analysis.ereal
  • mathcomp.reals.reals
  • mathcomp.reals_stdlib.Rstruct

Source code
x0Source code ASource code := if A == set0 then x0 else xget x0 (supremums A).

Lemma supremum_outUsed by
  • mathcomp.reals.reals

Source code
x0Source code ASource code : ~ has_sup A -> supremum x0 A = x0.
Proof.
move=> hsA; rewrite /supremum; case: ifPn => // /set0P[/= x Ax].
case: xgetP => //= _ -> [uA _]; exfalso.
by apply: hsA; split; [exists x|exists (xget x0 (supremums A))].
Qed.

Lemma supremum0Used by
  • mathcomp.analysis.ereal
  • mathcomp.reals.reals

Source code
x0Source code : supremum x0 set0 = x0.
Proof.
by rewrite /supremum eqxx. Qed.

Lemma supremum1Used by
  • mathcomp.analysis.ereal
  • mathcomp.reals.reals

Source code
x0Source code xSource code : supremum x0 [set x] = x.
Proof.
rewrite /supremum ifF.
  by apply/eqP; rewrite predeqE => /(_ x)[+ _]; apply.
by rewrite supremums1; case: xgetP => // /(_ x) /(_ erefl).
Qed.

Definition infimums

infimums : forall [d : Order.disp_t] [T : porderType d], set T -> set T infimums is not universe polymorphic Arguments infimums [d T] A%_classical_set_scope _ infimums is transparent Expands to: Constant mathcomp.classical.classical_sets.infimums Declared in library mathcomp.classical.classical_sets, line 3226, characters 11-19


Used by
  • mathcomp.analysis.topology_theory.order_topology

Source code
ASource code := lbound A `&` ubound (lbound A).

Lemma infimums1Source code xSource code : infimums [set x] = [set x].
Proof.
rewrite /infimums predeqE => y; split => [[]|->{y}]; last first.
  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 is_subset1_infimumsSource code ASource code : is_subset1 (infimums A).
Proof.
move=> x y [Ax xA] [Ay yA]; apply/eqP.
by rewrite eq_le (lb_ub_lb Ax yA) (lb_ub_lb Ay xA).
Qed.

Definition infimum

infimum : forall [d : Order.disp_t] [T : porderType d], T -> set T -> T infimum is not universe polymorphic Arguments infimum [d T] x0 A%_classical_set_scope infimum is transparent Expands to: Constant mathcomp.classical.classical_sets.infimum Declared in library mathcomp.classical.classical_sets, line 3241, characters 11-18


Source code
x0Source code ASource code := if A == set0 then x0 else xget x0 (infimums A).

End UpperLowerTheory.

Section UpperLowerOrderTheory.
Import Order.TTheory.
Variables (dSource code : Order.disp_t) (TSource code : orderType d).
Implicit Types (A : set T) (x y z : T).

Lemma ge_supremum_NmemUsed by
  • mathcomp.reals_stdlib.Rstruct

Source code
x0Source code ASource code tSource code :
  supremums A !=set0 -> A t -> (supremum x0 A >= t)%O.
Proof.
case=> x Ax; rewrite /supremum; case: ifPn => [/eqP -> //|_].
by case: xgetP => [y yA [uAy _]|/(_ x) //]; exact: uAy.
Qed.

Lemma le_infimum_NmemSource code x0Source code ASource code tSource code :
  infimums A !=set0 -> A t -> (infimum x0 A <= t)%O.
Proof.
case=> x Ex; rewrite /infimum; case: ifPn => [/eqP -> //|_].
by case: xgetP => [y yE [uEy _]|/(_ x) //]; exact: uEy.
Qed.

End UpperLowerOrderTheory.

Lemma nat_supremums_neq0Source code (ASource code : set nat) : ubound A !=set0 -> supremums A !=set0.
Proof.
case => /=; elim => [A0|n ih]; first by exists O.
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 meets

meets : forall [T : Type], set_system T -> set_system T -> Prop meets is not universe polymorphic Arguments meets [T]%_type_scope F G meets is transparent Expands to: Constant mathcomp.classical.classical_sets.meets Declared in library mathcomp.classical.classical_sets, line 3275, characters 11-16


Used by
  • mathcomp.analysis.topology_theory.separation_axioms

Source code
TSource code (FSource code GSource code : set_system T) :=
  forall ASource code BSource code, F A -> G B -> A `&` B !=set0.

Notation "F `#` G"Source code := (meets F G) : classical_set_scope.

Section meets.

Lemma meetsCUsed by
  • mathcomp.analysis.topology_theory.topology_structure
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.classical.filter

Source code
TSource code (FSource code GSource code : set_system T) : F `#` G = G `#` F.
Proof.
gen have sFG : F G / F `#` G -> G `#` F.
  by move=> FG B A => /FG; rewrite setIC; apply.
by rewrite propeqE; split; apply: sFG.
Qed.

Lemma sub_meetsUsed by
  • mathcomp.analysis.topology_theory.separation_axioms

Source code
TSource code (FSource code F'Source code GSource code G'Source code : set_system T) :
  F `<=` F' -> G `<=` G' -> F' `#` G' -> F `#` G.
Proof.
by move=> sF sG FG A B /sF FA /sG GB; apply: (FG A B). Qed.

Lemma meetsSrUsed by
  • mathcomp.analysis.topology_theory.topology_structure

Source code
TSource code (FSource code GSource code G'Source code : set_system T) : G `<=` G' -> F `#` G' -> F `#` G.
Proof.
exact: sub_meets. Qed.

Lemma meetsSlSource code TSource code (GSource code FSource code F'Source code : set_system T) : F `<=` F' -> F' `#` G -> F `#` G.
Proof.
by move=> /sub_meets; apply. Qed.

End meets.

Fact set_displaySource code : Order.disp_t
Proof.
by []. Qed.

Module SetOrderSource code.
Module InternalSource code.
Section SetOrder.
Context {TSource code : Type}.
Implicit Types A B : set T.

Lemma le_defSource code ASource code BSource code : `[< A `<=` B >] = (A `&` B == A).
Proof.
by apply/asboolP/eqP; rewrite setIidPl. Qed.

Lemma lt_defSource code ASource code BSource code : `[< A `<` B >] = (B != A) && `[< A `<=` B >].
Proof.
apply/idP/idP => [/asboolP|/andP[BA /asboolP AB]]; rewrite properEneq eq_sym;
  by [move=> [] -> /asboolP|apply/asboolP].
Qed.

Lemma joinKISource code BSource code ASource code : A `&` (A `|` B) = A.
Proof.
by rewrite setUC setKU. Qed.

Lemma meetKUSource code BSource code ASource code : A `|` (A `&` B) = A.
Proof.
by rewrite setIC setKI. Qed.

#[export]Source code
HBSource code.instanceSource code DefinitionSource code _Source code :Source code ChoiceSource code (set T) := Choice.copy _ (set T).

#[export]Source code
HBSource code.instanceSource code DefinitionSource 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 SetOrder_sub0setSource code ASource code : (set0 <= A)%O.
Proof.
by apply/asboolP; exact: sub0set. Qed.

Lemma SetOrder_setTsubSource code ASource code : (A <= setT)%O.
Proof.
exact/asboolP. Qed.

#[export]Source code
HBSource code.instanceSource code DefinitionSource code _Source code :=Source code OrderSource code.hasBottom.Build set_display (set T)
  SetOrder_sub0set.

#[export]Source code
HBSource code.instanceSource code DefinitionSource code _Source code :=Source code OrderSource code.hasTop.Build set_display (set T)
  SetOrder_setTsub.

Lemma subKISource code ASource code BSource code : B `&` (A `\` B) = set0.
Proof.
by rewrite setDE setICA setICr setI0. Qed.

Lemma joinIBSource code ASource code BSource code : (A `&` B) `|` A `\` B = A.
Proof.
by rewrite setUC -setDDr setDv setD0. Qed.

#[export]Source code
HBSource code.instanceSource code DefinitionSource code _Source code :=Source code OrderSource code.BDistrLattice_hasSectionalComplement.Build
  set_display (set T) subKI joinIB.

#[export]Source code
HBSource code.instanceSource code DefinitionSource code _Source code :=Source code OrderSource code.CBDistrLattice_hasComplement.Build
  set_display (set T) (fun xSource code => esym (setTD x)).

End SetOrder.
Module ExportsSource code. HB.reexport. End Exports.
End Internal.

Module ExportsSource code.

Export Internal.Exports.

Section exports.
Context {TSource code : Type}.
Implicit Types A B : set T.

Lemma subsetEsetUsed by
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.topology_theory.topology_structure
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg

Source code
ASource code BSource code : (A <= B)%O = (A `<=` B) :> Prop.
Proof.
by rewrite asboolE. Qed.

Lemma properEsetSource code ASource code BSource code : (A < B)%O = (A `<` B) :> Prop.
Proof.
by rewrite asboolE. Qed.

Lemma subEsetSource code ASource code BSource code : (A `\` B)%O = (A `\` B)
Proof.
by []. Qed.

Lemma complEsetSource code ASource code : (~` A)%O = ~` A
Proof.
by []. Qed.

Lemma botEsetSource code : \bot%O = @set0 T
Proof.
by []. Qed.

Lemma topEsetSource code : \top%O = @setT T
Proof.
by []. Qed.

Lemma meetEsetUsed by
  • mathcomp.classical.cardinality

Source code
ASource code BSource code : (A `&` B)%O = (A `&` B)
Proof.
by []. Qed.

Lemma joinEsetSource code ASource code BSource code : (A `|` B)%O = (A `|` B)
Proof.
by []. Qed.

Lemma subsetPsetUsed by
  • mathcomp.analysis.probability_theory.random_variable
  • mathcomp.analysis.real_measure.lebesgue_measure
  • mathcomp.analysis.real_measure.lebesgue_stieltjes_measure
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.sequences
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_definition
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_fubini
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integrable

Source code
ASource code BSource code : reflect (A `<=` B) (A <= B)%O.
Proof.
by apply: (iffP idP); rewrite subsetEset. Qed.

Lemma properPsetSource code ASource code BSource code : reflect (A `<` B) (A < B)%O.
Proof.
by apply: (iffP idP); rewrite properEset. Qed.

End exports.
End Exports.
End SetOrder.
Export SetOrder.Exports.

Section seqD.
Variable TSource code : Type.
Implicit Types F : (set T)^nat.

Definition seqDU

seqDU : forall [T : Type], (set T) ^nat -> nat -> set T seqDU is not universe polymorphic Arguments seqDU [T]%_type_scope F n%_nat_scope _ seqDU is transparent Expands to: Constant mathcomp.classical.classical_sets.seqDU Declared in library mathcomp.classical.classical_sets, line 3406, characters 11-16


Used by
  • mathcomp.analysis.measure_theory.signed_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.ftc
  • mathcomp.analysis.sequences
  • mathcomp.analysis.lebesgue_integral_theory.radon_nikodym

Source code
FSource code nSource code := F n `\` \big[setU/set0]_(kSource code < n) F k.

Lemma trivIset_seqDUUsed by
  • mathcomp.analysis.measure_theory.signed_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.ftc
  • mathcomp.analysis.sequences
  • mathcomp.analysis.lebesgue_integral_theory.radon_nikodym

Source code
FSource code : trivIset setT (seqDU F).
Proof.
move=> i j _ _; wlog ij : i j / (i < j)%N => [/(_ _ _ _) tB|].
  by have [ij /tB->|ij|] := ltngtP i j; rewrite //setIC => /tB ->.
move=> /set0P; apply: contraNeq => _; apply/eqP.
rewrite /seqDU 2!setDE !setIA setIC (bigD1 (Ordinal ij)) //=.
by rewrite setCU setIAC !setIA setICl !set0I.
Qed.

Definition seqD

seqD : forall [T : Type], (set T) ^nat -> nat -> set T seqD is not universe polymorphic Arguments seqD [T]%_type_scope F n%_nat_scope _ seqD is transparent Expands to: Constant mathcomp.classical.classical_sets.seqD Declared in library mathcomp.classical.classical_sets, line 3417, characters 11-15


Used by
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.sequences

Source code
FSource code := fun nSource code => if n isn't n'.+1 then F O else F n `\` F n'.

Lemma seqDU_seqDUsed by
  • mathcomp.analysis.sequences

Source code
FSource code : nondecreasing_seq F -> seqDU F = seqD F.
Proof.
move=> ndF; rewrite funeqE => -[|n] /=; first by rewrite /seqDU big_ord0 setD0.
rewrite /seqDU big_ord_recr /= setUC; congr (_ `\` _); apply/setUidPl.
by rewrite -bigcup_mkord => + [k /= kn]; exact/subsetPset/ndF/ltnW.
Qed.

Lemma trivIset_seqDUsed by
  • mathcomp.analysis.measure_theory.measure_extension
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure

Source code
FSource code : nondecreasing_seq F -> trivIset setT (seqD F).
Proof.
by move=> ndF; rewrite -seqDU_seqD //; exact: trivIset_seqDU. Qed.

Lemma eq_bigcup_seqDUsed by
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.sequences

Source code
FSource code : \bigcup_nSource code seqD F n = \bigcup_nSource code F n.
Proof.
apply/seteqP; split => [x []|x []].
  by elim=> [_ /= F0x|n ih _ /= [Fn1x Fnx]]; [exists O | exists n.+1].
elim=> [_ F0x|n ih _ Fn1x]; first by exists O.
have [|Fnx] := pselect (F n x); last by exists n.+1.
by move=> /(ih I)[m _ Fmx]; exists m.
Qed.

Lemma seqDU_bigcup_eqUsed by
  • mathcomp.analysis.measure_theory.signed_measure
  • mathcomp.analysis.measure_theory.measure_function
  • mathcomp.analysis.measure_theory.measurable_structure
  • mathcomp.analysis.measure_theory.measure_negligible
  • mathcomp.analysis.ftc
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_under
  • mathcomp.analysis.lebesgue_integral_theory.radon_nikodym

Source code
FSource code : \bigcup_kSource code F k = \bigcup_kSource code seqDU F k.
Proof.
rewrite /seqDU predeqE => t; split=> [[n _ Fnt]|[n _]]; last first.
  by rewrite setDE => -[? _]; exists n.
have [UFnt|UFnt] := pselect ((\big[setU/set0]_(kSource code < n) F k) t); last by exists n.
suff [m [Fmt FNmt]] : exists mSource code, F m t /\ forall kSource code, (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 mSource code, (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 (T1Source code T2Source code : Type).
Implicit Type A B : set (T1 * T2).

Lemma subset_fst_setSource code : {homo @fst_set T1 T2 : ASource code BSource code / A `<=` B}.
Proof.
by move=> A B AB x [y Axy]; exists y; exact/AB. Qed.

Lemma subset_snd_setSource code : {homo @snd_set T1 T2 : ASource code BSource code / A `<=` B}.
Proof.
by move=> A B AB x [y Axy]; exists y; exact/AB. Qed.

Lemma fst_set_fstUsed by
  • mathcomp.analysis.esum

Source code
ASource code : A `<=` A.`1 \o fst
Proof.
by move=> [x y]; exists y. Qed.

Lemma snd_set_sndUsed by
  • mathcomp.analysis.esum

Source code
ASource code: A `<=` A.`2 \o snd
Proof.
by move=> [x y]; exists x. Qed.

Lemma fst_setXSource code (XSource code : set T1) (YSource code : set T2) : (X `*` Y).`1 `<=` X.
Proof.
by move=> x [y [//]]. Qed.

Lemma snd_setXSource code (XSource code : set T1) (YSource code : set T2) : (X `*` Y).`2 `<=` Y.
Proof.
by move=> x [y [//]]. Qed.

Lemma fst_setXRSource code (XSource code : set T1) (YSource code : T1 -> set T2) : (X `*`` Y).`1 `<=` X.
Proof.
by move=> x [y [//]]. Qed.

End product.

Section section.
Variables (T1Source code T2Source code : Type).
Implicit Types (A : set (T1 * T2)) (x : T1) (y : T2).

Definition xsection

xsection : forall [T1 T2 : Type], set (T1 * T2) -> T1 -> set T2 xsection is not universe polymorphic Arguments xsection [T1 T2]%_type_scope A%_classical_set_scope x _ xsection is transparent Expands to: Constant mathcomp.classical.classical_sets.xsection Declared in library mathcomp.classical.classical_sets, line 3486, characters 11-19


Used by
  • mathcomp.analysis.measure_theory.measurable_function
  • mathcomp.analysis.cantor
  • mathcomp.analysis.kernel
  • mathcomp.analysis.topology_theory.uniform_structure
  • mathcomp.analysis.topology_theory.product_topology
  • mathcomp.analysis.topology_theory.supremum_topology
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.initial_topology
  • mathcomp.analysis.topology_theory.matrix_topology
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.topology_theory.compact
  • mathcomp.analysis.numfun
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_fubini
  • mathcomp.analysis.normedtype_theory.urysohn
  • mathcomp.analysis.normedtype_theory.normed_module

Source code
ASource code xSource code := [set ySource code | (x, y) \in A].

Definition ysection

ysection : forall [T1 T2 : Type], set (T1 * T2) -> T2 -> set T1 ysection is not universe polymorphic Arguments ysection [T1 T2]%_type_scope A%_classical_set_scope y _ ysection is transparent Expands to: Constant mathcomp.classical.classical_sets.ysection Declared in library mathcomp.classical.classical_sets, line 3488, characters 11-19


Used by
  • mathcomp.analysis.measure_theory.measurable_function
  • mathcomp.analysis.kernel
  • mathcomp.analysis.numfun
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_fubini

Source code
ASource code ySource code := [set xSource code | (x, y) \in A].

Lemma xsection_snd_setSource code ASource code xSource code : xsection A x `<=` A.`2.
Proof.
by move=> y Axy; exists x; rewrite /xsection/= inE in Axy. Qed.

Lemma ysection_fst_setSource code ASource code ySource code : ysection A y `<=` A.`1.
Proof.
by move=> x Axy; exists y; rewrite /ysection/= inE in Axy. Qed.

Lemma mem_xsectionUsed by
  • mathcomp.analysis.numfun
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_fubini

Source code
xSource code ySource code ASource code : (y \in xsection A x) = ((x, y) \in A).
Proof.
by apply/idP/idP => [|]; [rewrite inE|rewrite /xsection !inE /= inE]. Qed.

Lemma xsectionPUsed by
  • mathcomp.analysis.cantor
  • mathcomp.analysis.ereal
  • mathcomp.analysis.topology_theory.pseudometric_structure
  • mathcomp.analysis.topology_theory.uniform_structure
  • mathcomp.analysis.topology_theory.product_topology
  • mathcomp.analysis.topology_theory.supremum_topology
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.matrix_topology
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.topology_theory.compact
  • mathcomp.analysis.normedtype_theory.tvs
  • mathcomp.analysis.normedtype_theory.urysohn

Source code
xSource code ySource code ASource code : xsection A x y <-> A (x, y).
Proof.
by rewrite /xsection/= inE. Qed.

Lemma mem_ysectionUsed by
  • mathcomp.analysis.numfun
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_fubini

Source code
xSource code ySource code ASource code : (x \in ysection A y) = ((x, y) \in A).
Proof.
by apply/idP/idP => [|]; [rewrite inE|rewrite /ysection !inE /= inE]. Qed.

Lemma ysectionPSource code xSource code ySource code ASource code : ysection A y x <-> A (x, y).
Proof.
by rewrite /ysection/= inE. Qed.

Lemma xsectionEUsed by
  • mathcomp.analysis.measure_theory.measurable_function
  • mathcomp.analysis.kernel

Source code
ASource code xSource code : xsection A x = (fun ySource code => (x, y)) @^-1` A.
Proof.
by apply/seteqP; split => [y|y] /xsectionP. Qed.

Lemma ysectionEUsed by
  • mathcomp.analysis.measure_theory.measurable_function
  • mathcomp.analysis.kernel

Source code
ASource code ySource code : ysection A y = (fun xSource code => (x, y)) @^-1` A.
Proof.
by apply/seteqP; split => [x|x] /ysectionP. Qed.

Lemma xsection0Used by
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_fubini

Source code
xSource code : xsection set0 x = set0.
Proof.
by rewrite xsectionE preimage_set0. Qed.

Lemma ysection0Used by
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_fubini

Source code
ySource code : ysection set0 y = set0.
Proof.
by rewrite ysectionE preimage_set0. Qed.

Lemma in_xsectionXUsed by
  • mathcomp.analysis.kernel
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_fubini

Source code
X1Source code X2Source code xSource code : x \in X1 -> xsection (X1 `*` X2) x = X2.
Proof.
move=> xX1; apply/seteqP; split=> [y /xsection_snd_set|]; first exact: snd_setX.
by move=> y X2y; rewrite /xsection/= inE; split=> //=; rewrite inE in xX1.
Qed.

Lemma in_ysectionXUsed by
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_fubini

Source code
X1Source code X2Source code ySource code : y \in X2 -> ysection (X1 `*` X2) y = X1.
Proof.
move=> yX2; apply/seteqP; split=> [x /ysection_fst_set|]; first exact: fst_setX.
by move=> x X1x; rewrite /ysection/= inE; split=> //=; rewrite inE in yX2.
Qed.

Lemma notin_xsectionXUsed by
  • mathcomp.analysis.kernel
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_fubini

Source code
X1Source code X2Source code xSource code : x \notin X1 -> xsection (X1 `*` X2) x = set0.
Proof.
move=> xX1; rewrite /xsection /= predeqE => y; split => //.
by rewrite /xsection/= inE => -[] /=; rewrite notin_setE in xX1.
Qed.

Lemma notin_ysectionXUsed by
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_fubini

Source code
X1Source code X2Source code ySource code : y \notin X2 -> ysection (X1 `*` X2) y = set0.
Proof.
move=> yX2; rewrite /xsection /= predeqE => x; split => //.
by rewrite /ysection/= inE => -[_]; rewrite notin_setE in yX2.
Qed.

Lemma xsection_bigcupUsed by
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_fubini

Source code
 (FSource code : nat -> set (T1 * T2)) xSource code :
  xsection (\bigcup_nSource code F n) x = \bigcup_nSource code xsection (F n) x.
Proof.
rewrite predeqE /xsection => y; split => [|[n _]] /=; rewrite inE.
  by move=> -[n _ Fnxy]; exists n => //=; rewrite inE.
by move=> Fnxy; rewrite inE; exists n.
Qed.

Lemma ysection_bigcupUsed by
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_fubini

Source code
 (FSource code : nat -> set (T1 * T2)) ySource code :
  ysection (\bigcup_nSource code F n) y = \bigcup_nSource code ysection (F n) y.
Proof.
rewrite predeqE /ysection => x; split => [|[n _]] /=; rewrite inE.
  by move=> -[n _ Fnxy]; exists n => //=; rewrite inE.
by move=> Fnxy; rewrite inE; exists n.
Qed.

Lemma trivIset_xsectionUsed by
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_fubini

Source code
 (FSource code : nat -> set (T1 * T2)) xSource code : trivIset setT F ->
  trivIset setT (fun nSource code => xsection (F n) x).
Proof.
move=> /trivIsetP h; apply/trivIsetP => i j _ _ ij.
rewrite /xsection /= predeqE => y; split => //= -[]; rewrite !inE => Fixy Fjxy.
by have := h i j Logic.I Logic.I ij; rewrite predeqE => /(_ (x, y))[+ _]; apply.
Qed.

Lemma trivIset_ysectionUsed by
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_fubini

Source code
 (FSource code : nat -> set (T1 * T2)) ySource code : trivIset setT F ->
  trivIset setT (fun nSource code => ysection (F n) y).
Proof.
move=> /trivIsetP h; apply/trivIsetP => i j _ _ ij.
rewrite /ysection /= predeqE => x; split => //= -[]; rewrite !inE => Fixy Fjxy.
by have := h i j Logic.I Logic.I ij; rewrite predeqE => /(_ (x, y))[+ _]; apply.
Qed.

Lemma le_xsectionUsed by
  • mathcomp.analysis.kernel
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_fubini

Source code
xSource code : {homo xsection ^~ x : XSource code YSource code / X `<=` Y >-> X `<=` Y}.
Proof.
by move=> X Y XY y; rewrite /xsection /= 2!inE => /XY. Qed.

Lemma le_ysectionUsed by
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_fubini

Source code
ySource code : {homo ysection ^~ y : XSource code YSource code / X `<=` Y >-> X `<=` Y}.
Proof.
by move=> X Y XY x; rewrite /ysection /= 2!inE => /XY. Qed.

Lemma xsectionIUsed by
  • mathcomp.analysis.topology_theory.uniform_structure
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_fubini
  • mathcomp.analysis.normedtype_theory.normed_module

Source code
ASource code BSource code xSource code : xsection (A `&` B) x = xsection A x `&` xsection B x.
Proof.
by rewrite /xsection predeqE => y/=; split; rewrite !inE => -[]. Qed.

Lemma ysectionIUsed by
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_fubini

Source code
ASource code BSource code ySource code : ysection (A `&` B) y = ysection A y `&` ysection B y.
Proof.
by rewrite /ysection predeqE => x/=; split; rewrite !inE => -[]. Qed.

Lemma xsectionDUsed by
  • mathcomp.analysis.kernel
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_fubini

Source code
XSource code YSource code xSource code : xsection (X `\` Y) x = xsection X x `\` xsection Y x.
Proof.
by rewrite predeqE /xsection /= => y; split; rewrite !inE. Qed.

Lemma ysectionDUsed by
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_fubini

Source code
XSource code YSource code ySource code : ysection (X `\` Y) y = ysection X y `\` ysection Y y.
Proof.
by rewrite predeqE /ysection /= => x; split; rewrite !inE. Qed.

Lemma xsection_preimage_sndUsed by
  • mathcomp.analysis.kernel
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_fubini

Source code
 (BSource code : set T2) xSource code : xsection (snd @^-1` B) x = B.
Proof.
by apply/seteqP; split; move=> y/=; rewrite /xsection/= inE. Qed.

Lemma ysection_preimage_fstUsed by
  • mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_fubini

Source code
 (ASource code : set T1) ySource code : ysection (fst @^-1` A) y = A.
Proof.
by apply/seteqP; split; move=> x/=; rewrite /ysection/= inE. Qed.

End section.

Notation "B \; A"Source code :=
  ([set xySource code | exists2 zSource code, A (xy.1, z) & B (z, xy.2)]) : relation_scope.

Notation "A ^-1"Source code := ([set xySource code | A (xy.2, xy.1)]) : relation_scope.

Section relation.
Local Open Scope relation_scope.

Lemma set_compose_subsetUsed by
  • mathcomp.analysis.topology_theory.separation_axioms

Source code
{XSource code YSource code : Type} (ASource code CSource code : set (X * Y)) (BSource code DSource code : set (Y * X)) :
  A `<=` C -> B `<=` D -> A \; B `<=` C \; D.
Proof.
by move=> AsubC BD [x z] /= [y] Bxy Ayz; exists y; [exact: BD | exact: AsubC].
Qed.

Lemma set_compose_diagUsed by
  • mathcomp.analysis.topology_theory.discrete_topology
  • mathcomp.analysis.topology_theory.separation_axioms

Source code
{TSource code : Type} (ESource code : set (T * T)) :
  E \; range (fun xSource code => (x, x)) = E.
Proof.
rewrite eqEsubset; split => [[_ _] [_ [_ _ [<- <-//]]]|[x y] Exy]/=.
by exists x => //; exists x.
Qed.

Lemma set_prod_invKUsed by
  • mathcomp.analysis.normedtype_theory.urysohn

Source code
{TSource code : Type} (ESource code : set (T * T)) : E^-1^-1 = E.
Proof.
by rewrite eqEsubset; split; case. Qed.

Definition diagonal

diagonal : forall {T : Type}, set (T * T) diagonal is not universe polymorphic Arguments diagonal {T}%_type_scope _ diagonal is transparent Expands to: Constant mathcomp.classical.classical_sets.diagonal Declared in library mathcomp.classical.classical_sets, line 3626, characters 11-19


Used by
  • mathcomp.analysis.topology_theory.pseudometric_structure
  • mathcomp.analysis.topology_theory.uniform_structure
  • mathcomp.analysis.topology_theory.product_topology
  • mathcomp.analysis.topology_theory.supremum_topology
  • mathcomp.analysis.topology_theory.discrete_topology
  • mathcomp.analysis.topology_theory.function_spaces
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.initial_topology
  • mathcomp.analysis.topology_theory.matrix_topology
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.normedtype_theory.urysohn

Source code
{TSource code : Type} := [set xSource code : T * T | x.1 = x.2].

Lemma diagonalPUsed by
  • mathcomp.analysis.topology_theory.supremum_topology
  • mathcomp.analysis.topology_theory.separation_axioms
  • mathcomp.analysis.topology_theory.initial_topology
  • mathcomp.analysis.topology_theory.subspace_topology
  • mathcomp.analysis.normedtype_theory.urysohn

Source code
{TSource code : Type} (xSource code ySource code : T) : diagonal (x, y) <-> x = y.
Proof.
by []. Qed.

End relation.

Section powerset.
Context {TSource code : Type}.
Implicit Types (a b : T) (A B : set T).

Lemma powerset0Source code : [set XSource code | X `<=` set0] = [set set0] :> set_system T.
Proof.
by apply/funext => X /=; rewrite subset0. Qed.

Lemma powerset1Used by
  • mathcomp.analysis.topology_theory.num_topology

Source code
aSource code : [set XSource code | X `<=` [set a]] = [set set0; [set a]].
Proof.
by apply/seteqP; split => X/=; [move/subset_set1|case=> ->]. Qed.

Lemma powerset2Used by
  • mathcomp.analysis.topology_theory.num_topology

Source code
aSource code bSource code :
  [set XSource code | X `<=` [set a; b]] = [set set0; [set a]; [set b]; [set a; b]].
Proof.
apply/seteqP; split => X/=; first by move/subset_set2; rewrite or4E !orA.
by move=> [[[]|]|] ->.
Qed.

Lemma powersetSSource code ASource code BSource code : (A `<=` B) = ([set XSource code | X `<=` A] `<=` [set XSource code | X `<=` B]).
Proof.
apply: propext; split; first by move=> AB X/= /subset_trans; apply.
by move=> + a Aa => /(_ [set a])/= /(_ _ a); apply => // ? ->.
Qed.

Lemma setorder_itv_setUl_imageSource code ASource code BSource code :
  A `<=` B -> `[A, B] = setU A @` [set XSource code | X `<=` B `\` A].
Proof.
move=> AB; apply/seteqP; split => Y/=.
  rewrite in_itv/= => /andP[]; rewrite !subsetEset => AY YB.
  by exists (Y `\` A); [exact: setSD | rewrite setDUK].
case=> X XBA <-; rewrite in_itv/= Order.JoinTheory.leUl/=.
by rewrite -(setDUK AB) Order.JoinTheory.leU2// subsetEset.
Qed.

Lemma setorder_itv_setUr_imageSource code ASource code BSource code :
  A `<=` B -> `[A, B] = setU^~ A @` [set XSource code | X `<=` B `\` A].
Proof.
by (under eq_imagel do rewrite setUC); exact: setorder_itv_setUl_image.
Qed.

Lemma setorder_itv_setDl_imageUsed by
  • mathcomp.analysis.topology_theory.num_topology

Source code
ASource code BSource code :
  A `<=` B -> `[A, B] = setD B @` [set XSource code | X `<=` B `\` A].
Proof.
move=> AB; apply/seteqP; split => Y/=.
  rewrite in_itv/= => /andP[]; rewrite !subsetEset => AY YB.
  by exists (B `\` Y); [exact: setDS | rewrite setDD setIidr].
case=> X XBA <-; rewrite in_itv/= Order.MeetTheory.leIl andbT.
rewrite (@Order.POrderTheory.le_trans _ _ (B `\` (B `\` A)))//.
  by rewrite setDD setIidr.
by rewrite subsetEset; exact: setDS.
Qed.

End powerset.