Module mathcomp.classical.classical_sets
From HB Require Import structures.From mathcomp Require Import boot order ssralg matrix finmap ssrnum.
From mathcomp Require Import ssrint rat interval.
#[warning="-warn-library-file-internal-analysis"]
From mathcomp Require Import unstable.
From mathcomp Require Import boolp wochoice.
Unset SsrOldRewriteGoalsOrder.
Set Implicit Arguments.
Unset Strict Implicit.
Unset Printing Implicit Defensive.
Declare Scope classical_set_scope.
Reserved Notation "R ^nat".
Reserved Notation "[ 'set' x : T | P ]" (only parsing).
Reserved Notation "[ 'set' x | P ]" (format "[ 'set' x | P ]").
Reserved Notation "[ 'set' E | x 'in' A ]"
(format "[ '[hv' 'set' E '/ ' | x 'in' A ] ']'").
Reserved Notation "[ 'set' E | x 'in' A & y 'in' B ]"
(format "[ '[hv' 'set' E '/ ' | x 'in' A & y 'in' B ] ']'").
Reserved Notation "[ 'set' a ]" (format "[ 'set' a ]").
Reserved Notation "[ 'set' : T ]" (format "[ 'set' : T ]").
Reserved Notation "[ 'set' a : T ]" (format "[ 'set' a : T ]").
Reserved Notation "A `|` B" (at level 52, left associativity).
Reserved Notation "a |` A" (at level 52, left associativity).
Reserved Notation "A `&` B" (at level 48, left associativity).
Reserved Notation "A `*` B" (at level 46, left associativity).
Reserved Notation "A `*`` B" (at level 46, left associativity).
Reserved Notation "A ``*` B" (at level 46, left associativity).
Reserved Notation "A .`1" (format "A .`1").
Reserved Notation "A .`2" (format "A .`2").
Reserved Notation "~` A" (at level 35, right associativity).
Reserved Notation "[ 'set' ~ a ]" (format "[ 'set' ~ a ]").
Reserved Notation "A `\` B" (at level 50, left associativity).
Reserved Notation "A `\ b" (at level 50, left associativity).
Reserved Notation "A `+` B" (at level 54, left associativity).
Reserved Notation "A `<` B" (at level 70, no associativity).
Reserved Notation "A `<=` B" (at level 70, no associativity).
Reserved Notation "A `<=>` B" (at level 70, no associativity).
Reserved Notation "f @^-1` A" (at level 24).
Reserved Notation "f @` A" (at level 24).
Reserved Notation "A !=set0" (at level 80).
Reserved Notation "[ 'set`' p ]" (format "[ 'set`' p ]").
Reserved Notation "[ 'disjoint' A & B ]"
(format "'[hv' [ 'disjoint' '/ ' A '/' & B ] ']'").
Reserved Notation "F `#` G"
(at level 48, left associativity, format "F `#` G").
Reserved Notation "'`I_' n" (at level 8, n at level 2, format "'`I_' n").
Reserved Notation "A `x` B" (at level 46, left associativity).
Definition
fctE : (forall (T T' : Type) (x : T), cst x = (fun=> x)) * (forall (T1 T2 T3 : Type) (f : T1 -> T2) (g : T2 -> T3), g \o f = (fun x : T1 => g (f x))) * (forall (T : Type) (K : GRing.Zmodule.Exports.zmodType) (f : T -> K), (- f)%R = (fun x : T => (- f x)%R)) * (forall (T : Type) (K : GRing.Nmodule.Exports.nmodType) (f g : T -> K), (f + g)%R = (fun x : T => (f x + g x)%R)) * (forall (T : Type) (K : pzRingType) (f g : T -> K), (f * g)%R = (fun x : T => (f x * g x)%R)) * (forall (T : Type) (K : pzRingType) (L : lmodType K) (k : K) (f : T -> L), (k *: f)%R = (fun x : T => (k *: f x)%R)) * (forall (T : Type) (K : pzRingType) (f : T -> K) (n : nat), (f ^+ n)%R = (fun x : T => (f x ^+ n)%R)) * (forall (T : Type) (K : GRing.Nmodule.Exports.nmodType) (x : T), (0%R : T -> K) x = 0%R) * (forall (T : Type) (K : pzRingType) (x : T), (1%R : T -> K) x = 1%R) fctE is not universe polymorphic fctE is transparent Expands to: Constant mathcomp.classical.functions.fctE Declared in library mathcomp.classical.functions, line 2763, characters 11-15
Source code
Definition
linfun : forall {K : numDomainType} {E F : lmodType K}, (K -> F -> F) -> {pred E -> F} linfun is not universe polymorphic Arguments linfun {K E F} {s}%_function_scope _ linfun is transparent Expands to: Constant mathcomp.classical.functions.linfun Declared in library mathcomp.classical.functions, line 2793, characters 11-17
Source code
Canonical
linfun_key : forall {K : numDomainType} {E F : lmodType K} {s : K -> F -> F}, pred_key (T:=E -> F) linfun linfun_key is not universe polymorphic Arguments linfun_key {K E F} {s}%_function_scope linfun_key is opaque Expands to: Constant mathcomp.classical.functions.linfun_key Declared in library mathcomp.classical.functions, line 2795, characters 11-21
Source code
Lemma
Source code
Definition
linfun_keyed : forall {K : numDomainType} {E F : lmodType K} {s : K -> F -> F}, keyed_pred linfun_key linfun_keyed is not universe polymorphic Arguments linfun_keyed {K E F} {s}%_function_scope linfun_keyed is transparent Expands to: Constant mathcomp.classical.functions.linfun_keyed Declared in library mathcomp.classical.functions, line 2797, 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
linfun_Sub_subproof not a defined object.
Source code
Arguments mkset _ _ _ /.
Notation
Source code
Notation
Source code
Definition
linfun_Sub : forall {R : numDomainType} {E F : lmodType R} {s : GRing.Scale.law R F} [f : E -> F], f \in linfun -> {linear E -> F | s} linfun_Sub is not universe polymorphic Arguments linfun_Sub {R E F s} [f]%_function_scope fP linfun_Sub is transparent Expands to: Constant mathcomp.classical.functions.linfun_Sub Declared in library mathcomp.classical.functions, line 2816, characters 11-21
Source code
[set | exists2 , A x & f x = y].
Arguments image _ _ _ _ _ /.
Notation
Source code
(image A (fun => E)) : classical_set_scope.
Definition
Source code
[set | exists2 , A x & exists2 , B y & f x y = z].
Arguments image2 _ _ _ _ _ _ _ /.
Notation
Source code
(image2 A B (fun => E)) : classical_set_scope.
Section basic_definitions.
Context { : Type}.
Implicit Types (T : Type) (A B : set T) (f : T -> rT) (Y : set rT).
Definition
Source code
Definition
Source code
Definition
asbool : Prop -> bool asbool is not universe polymorphic Arguments asbool P%_type_scope asbool is transparent Expands to: Constant mathcomp.classical.boolp.asbool Declared in library mathcomp.classical.boolp, line 324, characters 11-17
Source code
Definition
gen_eq : forall [T : Type], T -> T -> bool gen_eq is not universe polymorphic Arguments gen_eq [T]%_type_scope u v gen_eq is transparent Expands to: Constant mathcomp.classical.boolp.gen_eq Declared in library mathcomp.classical.boolp, line 380, characters 11-17
Source code
Definition
gen_eqMixin : forall T : Type, hasDecEq.phant_axioms T gen_eqMixin is not universe polymorphic Arguments gen_eqMixin T%_type_scope gen_eqMixin is transparent Expands to: Constant mathcomp.classical.boolp.gen_eqMixin Declared in library mathcomp.classical.boolp, line 383, characters 11-22
Source code
Definition
classicType : Type -> Type classicType is not universe polymorphic Arguments classicType T%_type_scope classicType is transparent Expands to: Constant mathcomp.classical.boolp.classicType Declared in library mathcomp.classical.boolp, line 397, characters 11-22
Source code
Definition
eclassicType : eqType -> Type eclassicType is not universe polymorphic Arguments eclassicType T eclassicType is transparent Expands to: Constant mathcomp.classical.boolp.eclassicType Declared in library mathcomp.classical.boolp, line 406, characters 11-23
Source code
Definition
canonical_of : forall [T U : Type], (U -> T) -> Type canonical_of is not universe polymorphic Arguments canonical_of [T U]%_type_scope sort%_function_scope canonical_of is transparent Expands to: Constant mathcomp.classical.boolp.canonical_of Declared in library mathcomp.classical.boolp, line 413, characters 11-23
Source code
Definition
predp : Type -> Type predp is not universe polymorphic Arguments predp T%_type_scope predp is transparent Expands to: Constant mathcomp.classical.boolp.predp Declared in library mathcomp.classical.boolp, line 611, characters 11-16
Source code
Definition
relp : Type -> Type relp is not universe polymorphic Arguments relp T%_type_scope relp is transparent Expands to: Constant mathcomp.classical.boolp.relp Declared in library mathcomp.classical.boolp, line 615, characters 11-15
Source code
Definition
pred0p : forall {T : Type}, predp T -> bool pred0p is not universe polymorphic Arguments pred0p {T}%_type_scope P pred0p is transparent Expands to: Constant mathcomp.classical.boolp.pred0p Declared in library mathcomp.classical.boolp, line 628, characters 11-17
Source code
Definition
FunOrder.lef : forall {aT : Type} {d : Order.disp_t} {T : porderType d}, (aT -> T) -> (aT -> T) -> bool FunOrder.lef is not universe polymorphic Arguments FunOrder.lef {aT}%_type_scope {d T} (f g)%_function_scope FunOrder.lef is transparent Expands to: Constant mathcomp.classical.boolp.FunOrder.lef Declared in library mathcomp.classical.boolp, line 909, characters 11-14
Source code
Definition
FunOrder.ltf : forall {aT : Type} {d : Order.disp_t} {T : porderType d}, (aT -> T) -> (aT -> T) -> bool FunOrder.ltf is not universe polymorphic Arguments FunOrder.ltf {aT}%_type_scope {d T} (f g)%_function_scope FunOrder.ltf is transparent Expands to: Constant mathcomp.classical.boolp.FunOrder.ltf Declared in library mathcomp.classical.boolp, line 912, characters 11-14
Source code
[set | A1 z.1 /\ A2 z.1 z.2].
Definition
FunOrder.meetf : forall {aT : Type} {d : Order.disp_t} {T : latticeType d}, (aT -> T) -> (aT -> T) -> aT -> T FunOrder.meetf is not universe polymorphic Arguments FunOrder.meetf {aT}%_type_scope {d T} (f g)%_function_scope x FunOrder.meetf is transparent Expands to: Constant mathcomp.classical.boolp.FunOrder.meetf Declared in library mathcomp.classical.boolp, line 951, characters 11-16
Source code
[set | A1 z.2 z.1 /\ A2 z.2].
Lemma
Source code
Proof.
Definition
FunOrder.joinf : forall {aT : Type} {d : Order.disp_t} {T : latticeType d}, (aT -> T) -> (aT -> T) -> aT -> T FunOrder.joinf is not universe polymorphic Arguments FunOrder.joinf {aT}%_type_scope {d T} (f g)%_function_scope x FunOrder.joinf is transparent Expands to: Constant mathcomp.classical.boolp.FunOrder.joinf Declared in library mathcomp.classical.boolp, line 952, characters 11-16
Source code
[set | forall , P i -> F i a].
Definition
Source code
[set | exists2 , P i & F i a].
Definition
Source code
Local Notation
Source code
Lemma
Source code
Proof.
Definition
Source code
Definition
Source code
End basic_definitions.
Arguments preimage T rT f Y t /.
Arguments set0 _ _ /.
Arguments setT _ _ /.
Arguments set1 _ _ _ /.
Arguments setI _ _ _ _ /.
Arguments setU _ _ _ _ /.
Arguments setC _ _ _ /.
Arguments setD _ _ _ _ /.
Arguments setX _ _ _ _ _ /.
Arguments setXR _ _ _ _ _ /.
Arguments setXL _ _ _ _ _ /.
Arguments fst_set _ _ _ _ /.
Arguments snd_set _ _ _ _ /.
Arguments subsetP {T A B}.
Notation
Source code
Notation
Source code
Notation
Source code
Notation
Source code
Notation
Source code
Notation
Source code
Notation
Source code
(setU .. (a1 |` [set a2]) .. [set an]) : classical_set_scope.
Notation
Source code
Notation
Source code
Notation
Source code
Notation
Source code
Notation
Source code
Notation
Source code
Notation
Source code
Notation
Source code
Notation
Source code
Notation
Source code
Notation
Source code
Definition
Source code
Arguments setY _ _ _ _ /.
Notation
Source code
Notation
Source code
Notation
Source code
(bigcup P (fun => F)) : classical_set_scope.
Notation
Source code
(\bigcup_( in @setT T) F) : classical_set_scope.
Notation
Source code
(\bigcup_( in `I_n) F) : classical_set_scope.
Notation
Source code
(\bigcup_( in [set | (n <= i)%N]) F) : classical_set_scope.
Notation
Source code
Notation
Source code
(bigcap P (fun => F)) : classical_set_scope.
Notation
Source code
(\bigcap_( in @setT T) F) : classical_set_scope.
Notation
Source code
(\bigcap_( in `I_n) F) : classical_set_scope.
Notation
Source code
(\bigcap_( in [set | (n <= i)%N]) F) : classical_set_scope.
Notation
Source code
Notation
Source code
Notation
Source code
Notation
Source code
Notation
Source code
Notation
Source code
Notation
Source code
Notation
Source code
Notation
Source code
Notation
Source code
[set` Interval (BLeft a) (BRight b)] : classical_set_scope.
Notation
Source code
[set` Interval (BRight a) (BRight b)] : classical_set_scope.
Notation
Source code
[set` Interval (BLeft a) (BLeft b)] : classical_set_scope.
Notation
Source code
[set` Interval (BRight a) (BLeft b)] : classical_set_scope.
Notation
Source code
[set` Interval -oo%O (BRight b)] : classical_set_scope.
Notation
Source code
[set` Interval -oo%O (BLeft b)] : classical_set_scope.
Notation
Source code
[set` Interval (BLeft a) +oo%O] : classical_set_scope.
Notation
Source code
[set` Interval (BRight a) +oo%O] : classical_set_scope.
Notation
Source code
[set` Interval -oo%O +oo%O] : classical_set_scope.
Lemma
Source code
Proof.
#[global] Hint Resolve nat_nonempty : core.
Lemma
Source code
Lemma
Source code
[set` j] `<=` [set` i] ->
{in i &, forall , P x y} -> {in j &, forall , P x y}.
Proof.
Lemma
Source code
((f @^-1` [set` i]) x) = (f x \in i).
Proof.
Lemma
Source code
f @^-1` `]y, +oo[%classic = [set | (y < f x)%O].
Lemma
Source code
f @^-1` `[y, +oo[%classic = [set | (y <= f x)%O].
Lemma
Source code
f @^-1` `]-oo, y[%classic = [set | (f x < y)%O].
Lemma
Source code
f @^-1` `]-oo, y]%classic = [set | (f x <= y)%O].
Lemma
Source code
[set | P x] = [set | Q x].
Proof.
Coercion
Source code
Definition
Source code
exist (fun => x \in P) x.
Lemma
Source code
Proof.
Lemma
Source code
pred_oapp D = mem (some @` D)%classic.
Proof.
Lemma
Source code
pred_oapp (mem D) = mem (some @` D)%classic.
Proof.
Section basic_lemmas.
Context { : Type}.
Implicit Types A B C D : set T.
Lemma
Source code
Proof.
Source code
Proof.
Lemma
Source code
Proof.
Source code
Proof.
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Proof.
apply: contra_notP => /forallNP h.
by apply/eqP; rewrite predeqE => t; split => // _; apply: contrapT.
Qed.
Notation
Source code
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Definition
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
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
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
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
by move=> NAx y; apply: contraPnot => ->.
Qed.
Lemma
Source code
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
by move=> sBC_A; split=> x ?; apply sBC_A; [left | right].
Qed.
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Proof.
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Proof.
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
by rewrite -AB => -[].
by split=> [[]//|At]; move: (AB t At).
Qed.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Lemma
Source code
A `<=` B -> C `<=` D -> A `&` C !=set0 -> B `&` D !=set0.
Proof.
Lemma
Source code
A `<=` B -> C `<=` D -> B `&` D = set0 -> A `&` C = set0.
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
by split => //; apply/negP; apply: contra_not BA => /eqP ->.
by rewrite eqEsubset => AB BA; split => //; exact: contra_not AB.
Qed.
Lemma
Source code
Lemma
Source code
Lemma
Source code
Proof.
by move/subsets_disjoint; rewrite setCK setIC => /subsets_disjoint.
by apply/subsets_disjoint; rewrite setCK setIC; apply/subsets_disjoint.
Qed.
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Proof.
Lemma
Source code
Proof.
by apply: asbool_eq_equiv; rewrite asbool_and !asbool_neg asbool_or negb_or.
Qed.
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Proof.
by move=> [[At|Bt] Ct]; [left|right].
by move=> [[At Ct]|[Bt Ct]]; split => //; [left|right].
Qed.
Lemma
Source code
Lemma
Source code
Proof.
by move=> [[At Bt]|Ct]; split; by [left|right].
by move=> [[At|Ct] [Bt|Ct']]; by [left|right].
Qed.
Lemma
Source code
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Proof.
- by left.
- by right.
- by split=> //; left.
- by split=> //; right.
Qed.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
(X1 `&` Y1) `*` (X2 `&` Y2) = X1 `*` X2 `&` Y1 `*` Y2.
Proof.
Lemma
Source code
A `<=` B -> C `<=` D -> C `*` A `<=` D `*` B.
Proof.
Lemma
Source code
A `*` \bigcup_( in P) F i = \bigcup_( in P) (A `*` F i).
Proof.
by move=> [n Pn [/= Ax Fny]]; split => //; exists n.
Qed.
Lemma
Source code
\bigcup_( in P) F i `*` A = \bigcup_( in P) (F i `*` A).
Proof.
by move=> [n Pn [/= Ax Fny]]; split => //; exists n.
Qed.
Lemma
Source code
\bigcup_( in A1) ([set i] `*` A2 i) = A1 `*`` A2.
Proof.
Lemma
Source code
\bigcup_( in A2) (A1 i `*` [set i]) = A1 ``*` A2.
Proof.
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Proof.
End basic_lemmas.
Arguments subsetT {T} A.
#[global]
Hint Resolve subsetUl subsetUr subIsetl subIsetr subDsetl subDsetr : core.
Arguments setU_id2r {T} C {A B}.
Lemma
Source code
[set x | _ in A] = if A == set0 then set0 else [set x].
Proof.
Section set_order.
Import Order.TTheory.
Lemma
Source code
[set | f x = g x] = [set | (f x <= g x)%O] `&` [set | (f x >= g x)%O].
Lemma
Source code
[set | f x != g x ] = [set | (f x < g x)%O] `|` [set | (f x > g x)%O].
End set_order.
Lemma
Source code
[set f x y | in A & in B] = uncurry f @` (A `*` B).
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Proof.
Lemma
Source code
([set` S] == set0) = (S == fset0).
Proof.
Section InitialSegment.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Definition
Source code
Definition
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
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
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
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
Identity Coercion set_system_to_set : set_system >-> set.
Section set_systems.
Context {} ( : set_system T).
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
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
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
[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
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
( : 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
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
( : 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
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
preimage_set_system [set: T] f X
`|` preimage_set_system [set: T] g Y.
End cross.
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
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
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 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
Notation
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
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
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
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
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
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
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
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
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
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
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
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
forall , f x !=set0 /\ is_subset1 (f x).
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
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
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
( : 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
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
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
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
Definition
SigSub : forall {T : Type} {pT : predType T} {P : pT} [x : T], x \in P -> {x0 : T | x0 \in P} SigSub is not universe polymorphic Arguments SigSub {T}%_type_scope {pT P} [x] _ SigSub is transparent Expands to: Constant mathcomp.classical.classical_sets.SigSub Declared in library mathcomp.classical.classical_sets, line 488, characters 11-17
Source code
Lemma
Source code
Proof.
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
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
.
Source code
Source code
Source code
Definition
subsetCW : forall {T : Type} {A B : set T}, A = B -> (B `<=` A)%classic subsetCW is not universe polymorphic Expanded type for implicit arguments subsetCW : forall {T : Type} {A B : set T}, A = B -> forall [t : T], B t -> A t Arguments subsetCW {T}%_type_scope {A B}%_classical_set_scope _ [t] _ subsetCW is transparent Expands to: Constant mathcomp.classical.classical_sets.subsetCW Declared in library mathcomp.classical.classical_sets, line 807, characters 11-19
Source code
Lemma
Source code
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
ordII : forall {n : nat}, 'I_n -> `I_n ordII is not universe polymorphic Arguments ordII {n}%_nat_scope k ordII is transparent Expands to: Constant mathcomp.classical.classical_sets.ordII Declared in library mathcomp.classical.classical_sets, line 1289, characters 11-16
Source code
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 1290, characters 11-16
Source code
Lemma
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 1292, characters 11-17
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
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 1646, characters 11-21
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
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 1652, characters 11-22
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
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 1654, characters 11-22
Source code
[/\ cover D F = A, trivIset D F & forall , D i -> F i !=set0].
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 1678, characters 11-20
Source code
[get | D i /\ F i x].
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 1693, characters 11-30
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
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 1724, characters 11-27
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
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 1732, characters 11-16
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
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 1738, characters 11-18
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
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 2199, characters 11-18
Source code
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 2215, characters 11-18
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
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 2455, characters 11-19
Source code
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 2482, characters 11-24
Source code
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 2504, 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 2505, 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 2506, 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.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
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 2507, characters 11-22
Source code
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 2510, characters 11-15
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
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
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Proof.
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 2663, 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
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 2681, characters 11-17
Source code
End UpperLowerTheory.
Section UpperLowerOrderTheory.
Import Order.TTheory.
Variables ( : Order.disp_t) ( : orderType d).
Implicit Types (A : set T) (x y z : T).
Lemma
Source code
supremums A !=set0 -> A t -> (supremum x0 A >= t)%O.
Proof.
Lemma
Source code
infimums A !=set0 -> A t -> (infimum x0 A <= t)%O.
Proof.
End UpperLowerOrderTheory.
Lemma
Source code
Proof.
case: (pselect (ubound A n)) => [/ih //|An {ih}] An1.
exists n.+1; split => // m Am; case/existsNP : An => k /not_implyP[Ak /negP].
rewrite -Order.TotalTheory.ltNge => kn.
by rewrite (Order.POrderTheory.le_trans _ (Am _ Ak)).
Qed.
Definition
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 2698, 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
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 2719, characters 11-14
Source code
Lemma
Source code
Proof.
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 2724, characters 11-29
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
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
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
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
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
Lemma
Source code
Proof.
Local Close Scope relation_scope.