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