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
near_simpl : (forall (U : Type) (T : filteredType U) (x : T) (P : set U), (\forall x0 \near nbhs x, P x0) = (\near x, P x)) * (forall (U : Type) (T : filteredType U) (x : T) (P : set U), nbhs x P = (\near x, P x)) * (forall (X : Type) (fX : filteredType X) (x : fX) (P : set X), nbhs x P = (\near x, P x)) * (forall (T : Type) (F : filter_on T) (P : set T), (\near F, P F) = (\forall x \near F, P x)) * (forall (T U : Type) (f : T -> U) (F : set_system T) (P : set U), (\forall y \near (f x @[x --> F])%classic, P y) = (\near F, P (f F))) * (forall (T U : Type) (f : T -> set U) (F : set_system T) (P : set U), (\forall y \near (f x `@[x --> F])%classic, P y) = (\near F, exists y : U, f F y /\ P y)) * (forall (T T' U U' : Type) (f : T -> U) (g : T' -> U') (F : set_system T) (G : set_system T') (P : U -> set U'), Filter F -> Filter G -> (\forall y \near (f x @[x --> F])%classic & y' \near (g x @[x --> G])%classic, P y y') = (\near F & G, P (f F) (g G))) near_simpl is not universe polymorphic near_simpl is transparent Expands to: Constant mathcomp.classical.filter.NearMap.near_simpl Declared in library mathcomp.classical.filter, line 1146, characters 11-21
Source code
Definition
cvg_to_comp_2 : forall [T U V W : Type] [F : set_system T] [G : set_system U] [H : set_system V] [I : set_system W], Filter F -> Filter G -> Filter H -> forall [f : T -> U] [g : T -> V] [h : U -> V -> W], (f x @[x --> F] --> G)%classic -> (g x @[x --> F] --> H)%classic -> (h x.1 x.2 @[x --> (G, H)] --> I)%classic -> (h (f x) (g x) @[x --> F] --> I)%classic cvg_to_comp_2 is not universe polymorphic Expanded type for implicit arguments cvg_to_comp_2 : forall [T U V W : Type] [F : set_system T] [G : set_system U] [H : set_system V] [I : set_system W], Filter F -> Filter G -> Filter H -> forall [f : T -> U] [g : T -> V] [h : U -> V -> W], (f x @[x --> F] --> G)%classic -> (g x @[x --> F] --> H)%classic -> (h x.1 x.2 @[x --> (G, H)] --> I)%classic -> forall [t : set W], nbhs I t -> F ((fun x : T => h (f x) (g x)) @^-1` t)%classic Arguments cvg_to_comp_2 [T U V W]%_type_scope [F G H I] FF FG FH [f g h]%_function_scope _ _ _ [t] _ cvg_to_comp_2 is transparent Expands to: Constant mathcomp.classical.filter.cvg_to_comp_2 Declared in library mathcomp.classical.filter, line 1172, characters 11-24
Source code
Canonical
within : forall {T : Type}, set T -> set_system T -> set_system T within is not universe polymorphic Arguments within {T}%_type_scope D%_classical_set_scope F _ within is transparent Expands to: Constant mathcomp.classical.filter.within Declared in library mathcomp.classical.filter, line 1194, characters 11-17
Source code
Lemma
Source code
Definition
within_filter_on : forall [T : Type], set T -> filter_on T -> filter_on T within_filter_on is not universe polymorphic Arguments within_filter_on [T]%_type_scope D%_classical_set_scope F within_filter_on is transparent Expands to: Constant mathcomp.classical.filter.within_filter_on Declared in library mathcomp.classical.filter, line 1240, characters 10-26
Source code
Bind Scope classical_set_scope with set.
Local Open Scope classical_set_scope.
Delimit Scope classical_set_scope with classic.
Definition
subset_filter : forall [T : finType] (p : T -> bool) [s1 s2 : seq T], s1 \subset s2 -> [seq a <- s1 | p a] \subset [seq a <- s2 | p a] subset_filter is not universe polymorphic Arguments subset_filter [T] p%_function_scope [s1 s2]%_seq_scope _ subset_filter is opaque Expands to: Constant mathcomp.boot.fintype.subset_filter Declared in library mathcomp.boot.fintype, line 710, characters 6-19
Source code
Arguments mkset _ _ _ /.
Notation
Source code
Notation
Source code
Definition
powerset_filter_from : forall {Y : Type}, set_system Y -> set_system (set Y) powerset_filter_from is not universe polymorphic Arguments powerset_filter_from {Y}%_type_scope F _ powerset_filter_from is transparent Expands to: Constant mathcomp.classical.filter.powerset_filter_from Declared in library mathcomp.classical.filter, line 1286, characters 11-31
Source code
[set | exists2 , A x & f x = y].
Arguments image _ _ _ _ _ /.
Notation
Source code
(image A (fun => E)) : classical_set_scope.
Definition
principal_filter : forall {X : Type}, X -> set_system X principal_filter is not universe polymorphic Arguments principal_filter {X}%_type_scope x _ principal_filter is transparent Expands to: Constant mathcomp.classical.filter.principal_filter Declared in library mathcomp.classical.filter, line 1379, characters 11-27
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
principal_filter_type : Type -> Type principal_filter_type is not universe polymorphic Arguments principal_filter_type P%_type_scope principal_filter_type is transparent Expands to: Constant mathcomp.classical.filter.principal_filter_type Declared in library mathcomp.classical.filter, line 1383, characters 11-32
Source code
Definition
filterI_iter : forall {T : Type}, set_system T -> nat -> set (set T) filterI_iter is not universe polymorphic Arguments filterI_iter {T}%_type_scope F n%_nat_scope _ filterI_iter is transparent Expands to: Constant mathcomp.classical.filter.filterI_iter Declared in library mathcomp.classical.filter, line 1531, characters 9-21
Source code
Definition
open_finI_from : forall [I : choiceType] [T : Type], set I -> (I -> set T) -> set (set T) open_finI_from is not universe polymorphic Arguments open_finI_from [I] [T]%_type_scope D%_classical_set_scope f%_function_scope _ open_finI_from is transparent Expands to: Constant mathcomp.classical.filter.open_finI_from Declared in library mathcomp.classical.filter, line 1563, characters 11-25
Source code
Definition
finI : forall [I : choiceType] [T : Type], set I -> (I -> set T) -> Prop finI is not universe polymorphic Arguments finI [I] [T]%_type_scope D%_classical_set_scope f%_function_scope finI is transparent Expands to: Constant mathcomp.classical.filter.finI Declared in library mathcomp.classical.filter, line 1636, characters 11-15
Source code
Definition
Source code
Definition
Source code
Definition
Source code
Definition
Source code
Definition
Source code
Definition
Source code
Definition
Source code
Definition
Source code
Definition
card_le : forall [T U : Type], set T -> set U -> bool card_le is not universe polymorphic Arguments card_le [T U]%_type_scope (A B)%_classical_set_scope card_le is transparent Expands to: Constant mathcomp.classical.cardinality.card_le Declared in library mathcomp.classical.cardinality, line 61, characters 11-18
Source code
[set | A1 z.1 /\ A2 z.1 z.2].
Definition
card_eq : forall [T U : Type], set T -> set U -> bool card_eq is not universe polymorphic Arguments card_eq [T U]%_type_scope (A B)%_classical_set_scope card_eq is transparent Expands to: Constant mathcomp.classical.cardinality.card_eq Declared in library mathcomp.classical.cardinality, line 66, characters 11-18
Source code
[set | A1 z.2 z.1 /\ A2 z.2].
Lemma
Source code
Proof.
Definition
finite_set : forall {T : Type}, set T -> Prop finite_set is not universe polymorphic Arguments finite_set {T}%_type_scope A%_classical_set_scope finite_set is transparent Expands to: Constant mathcomp.classical.cardinality.finite_set Declared in library mathcomp.classical.cardinality, line 71, characters 11-21
Source code
[set | forall , P i -> F i a].
Definition
emptyE_subdef : (forall T : emptyType, all_equal_to (set0 : set T)) * (forall (T : emptyType) (U : Type) (A : set T) (B : set U), (A #<= B)%card) * (forall (T : emptyType) (U : Type) (A : set T) (B : set U), (B #<= A)%card = (B == set0)) * (forall (T : eqType) (x y : T), (x == y : Prop) = (x = y)) emptyE_subdef is not universe polymorphic emptyE_subdef is transparent Expands to: Constant mathcomp.classical.cardinality.emptyE_subdef Declared in library mathcomp.classical.cardinality, line 191, characters 11-24
Source code
[set | exists2 , P i & F i a].
Definition
emptyE : (forall T : emptyType, all_equal_to (set0 : set T)) * (forall (T : emptyType) (U : Type) (A : set T) (B : set U), (A #<= B)%card) * (forall (T : emptyType) (U : Type) (A : set T) (B : set U), (B #<= A)%card = (B == set0)) * (forall (T : eqType) (x y : T), (x == y : Prop) = (x = y)) * (forall (T : emptyType) (U : Type) (A : set T) (B : set U), (B #= A)%card = (B == set0)) * (forall (T : emptyType) (U : Type) (A : set T) (B : set U), (A #= B)%card = (B == set0)) emptyE is not universe polymorphic emptyE is transparent Expands to: Constant mathcomp.classical.cardinality.emptyE Declared in library mathcomp.classical.cardinality, line 363, characters 11-17
Source code
Local Notation
Source code
Lemma
Source code
Proof.
Definition
countable : forall [T : Type], set T -> bool countable is not universe polymorphic Arguments countable [T]%_type_scope A%_classical_set_scope countable is transparent Expands to: Constant mathcomp.classical.cardinality.countable Declared in library mathcomp.classical.cardinality, line 459, characters 11-20
Source code
Definition
fset_set : forall [T : choiceType], set T -> {fset T} fset_set is not universe polymorphic Arguments fset_set [T] A%_classical_set_scope fset_set is transparent Expands to: Constant mathcomp.classical.cardinality.fset_set Declared in library mathcomp.classical.cardinality, line 761, 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
fst_fset : forall [T1 T2 : choiceType], {fset T1 * T2} -> {fset T1} fst_fset is not universe polymorphic Arguments fst_fset [T1 T2] A fst_fset is transparent Expands to: Constant mathcomp.classical.cardinality.fst_fset Declared in library mathcomp.classical.cardinality, line 846, characters 11-19
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
snd_fset : forall [T1 T2 : choiceType], {fset T1 * T2} -> {fset T2} snd_fset is not universe polymorphic Arguments snd_fset [T1 T2] A snd_fset is transparent Expands to: Constant mathcomp.classical.cardinality.snd_fset Declared in library mathcomp.classical.cardinality, line 848, characters 11-19
Source code
Definition
fimfun : forall {aT rT : Type}, {pred aT -> rT} fimfun is not universe polymorphic Arguments fimfun {aT rT}%_type_scope _ fimfun is transparent Expands to: Constant mathcomp.classical.cardinality.fimfun Declared in library mathcomp.classical.cardinality, line 1340, characters 11-17
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
fimfun_key : forall {aT rT : Type}, pred_key (T:=aT -> rT) fimfun fimfun_key is not universe polymorphic Arguments fimfun_key {aT rT}%_type_scope fimfun_key is opaque Expands to: Constant mathcomp.classical.cardinality.fimfun_key Declared in library mathcomp.classical.cardinality, line 1341, characters 11-21
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
fimfun_keyed : forall {aT rT : Type}, keyed_pred fimfun_key fimfun_keyed is not universe polymorphic Arguments fimfun_keyed {aT rT}%_type_scope fimfun_keyed is transparent Expands to: Constant mathcomp.classical.cardinality.fimfun_keyed Declared in library mathcomp.classical.cardinality, line 1343, characters 10-22
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
fimfun_Sub : forall {aT rT : Type} [f : aT -> rT], f \in fimfun -> {fimfun aT >-> rT} fimfun_Sub is not universe polymorphic Arguments fimfun_Sub {aT rT}%_type_scope [f]%_function_scope fP fimfun_Sub is transparent Expands to: Constant mathcomp.classical.cardinality.fimfun_Sub Declared in library mathcomp.classical.cardinality, line 1354, characters 11-21
Source code
Definition
cst_fimfun : forall {aT rT : Type}, rT -> {fimfun aT >-> rT} cst_fimfun is not universe polymorphic Arguments cst_fimfun {aT rT}%_type_scope x cst_fimfun is transparent Expands to: Constant mathcomp.classical.cardinality.cst_fimfun Declared in library mathcomp.classical.cardinality, line 1391, characters 11-21
Source code
Definition
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
Source code
Identity Coercion set_system_to_set : set_system >-> set.
Section set_systems.
Context {} ( : set_system T).
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
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
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
[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
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
( : set_system rT) : set_system aT :=
[set D `&` f @^-1` B | in G].
Lemma
Source code
preimage_set_system D f set0 = set0.
Proof.
Lemma
Source code
{morph preimage_set_system D f : / x `|` y >-> x `|` y}.
Proof.
Lemma
Source code
( : aT -> bT) ( : bT -> rT) ( : set_system rT) :
preimage_set_system D (g \o f) F
= preimage_set_system D f (preimage_set_system setT g F).
Proof.
by exists (g @^-1` B) => //; exists B => //; rewrite setTI.
by exists C => //; rewrite setTI comp_preimage.
Qed.
Lemma
Source code
preimage_set_system D idfun F = setI D @` F.
Proof.
Lemma
Source code
A `<=` B ->
preimage_set_system [set: _] f A `<=` preimage_set_system [set: _] f B.
Proof.
Definition
Source code
( : set_system aT) : set_system rT :=
[set : set rT | G (D `&` f @^-1` B)].
Section cross.
Context { : Type}.
Implicit Types (X : set_system T1) (Y : set_system T2).
Definition
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
preimage_set_system [set: T] f X
`|` preimage_set_system [set: T] g Y.
End cross.
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
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
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
Notation
Source code
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
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
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
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
Notation setT := [set: _] Expands to: Notation mathcomp.boot.finset.setT Declared in library mathcomp.boot.finset, line 256, characters 0-41 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 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
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
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
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
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
forall , f x !=set0 /\ is_subset1 (f x).
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
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
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
( : 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
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
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
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
Definition
setXL : forall [T1 T2 : Type], (T2 -> set T1) -> set T2 -> set (T1 * T2) setXL is not universe polymorphic Arguments setXL [T1 T2]%_type_scope A1%_function_scope A2%_classical_set_scope _ / The reduction tactics unfold setXL when applied to 5 arguments setXL is transparent Expands to: Constant mathcomp.classical.classical_sets.setXL Declared in library mathcomp.classical.classical_sets, line 334, characters 11-16
Source code
Lemma
Source code
Proof.
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
bigcap : forall [T I : Type], set I -> (I -> set T) -> set T bigcap is not universe polymorphic Arguments bigcap [T I]%_type_scope P%_classical_set_scope F%_function_scope _ bigcap is transparent Expands to: Constant mathcomp.classical.classical_sets.bigcap Declared in library mathcomp.classical.classical_sets, line 340, characters 11-17
Source code
Lemma
Source code
.
Source code
Source code
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
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
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
Lemma
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
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
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
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
set_type : finType -> predArgType set_type is not universe polymorphic Arguments set_type T Expands to: Inductive mathcomp.boot.finset.set_type Declared in library mathcomp.boot.finset, line 136, characters 10-18
Source code
Lemma
Source code
Proof.
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
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
[/\ cover D F = A, trivIset D F & forall , D i -> F i !=set0].
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
[get | D i /\ F i x].
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 815, characters 11-19
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
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
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
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
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
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
[/\ A `<=` B, trivIset A F & forall ,
A `<` C -> C `<=` B -> ~ trivIset C F ].
Section maximal_disjoint_subcollection.
Context { : Type}.
Variables ( : I -> set T) ( : set I).
Let := fun => X `<=` D /\ trivIset X B.
Let
Source code
A `<=` P -> total_on A (fun => x `<=` y) -> P (\bigcup_( in A) x).
Proof.
move=> i j [x Ax] xi [y Ay] yj ij; have [xy|yx] := h _ _ Ax Ay.
- by apply: (AP _ Ay).2 => //; exact: xy.
- by apply: (AP _ Ax).2 => //; exact: yx.
Qed.
Lemma
Source code
{ | maximal_disjoint_subcollection B E D }.
Proof.
by exists E; split => // F /maxE + FD; exact: contra_not.
Qed.
End maximal_disjoint_subcollection.
Section UpperLowerTheory.
Import Order.TTheory.
Variables ( : Order.disp_t) ( : porderType d).
Implicit Types (A : set T) (x y z : T).
Definition
setI_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
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
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
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
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
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
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
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
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
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
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
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
Lemma
Source code
Proof.
Lemma
Source code
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 2463, 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
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
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
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
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
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
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 628, characters 18-28
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
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
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
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
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.
Local Close Scope relation_scope.