Module mathcomp.classical.boolp
From HB Require Import structures.From mathcomp Require Import boot order.
#[warning="-warn-library-file-internal-analysis"]
From mathcomp Require Import unstable.
From mathcomp Require Import mathcomp_extra.
From mathcomp Require internal_Eqdep_dec.
Unset SsrOldRewriteGoalsOrder.
Set Implicit Arguments.
Unset Strict Implicit.
Unset Printing Implicit Defensive.
Declare Scope box_scope.
Declare Scope quant_scope.
Axiom
Source code
forall ( : Type) ( : A -> Type) ( : forall : A, B x),
(forall : A, f x = g x) -> f = g.
Axiom
Source code
forall : Prop, P <-> Q -> P = Q.
Axiom
Source code
forall ( : Type) ( : A -> Prop),
(exists : A, P x) -> { : A | P x}.
Notation
Source code
Lemma
Source code
(exists2 : A, P x & Q x) -> { : A | P x & Q x}.
Proof.
Lemma
Source code
existT P x Px = existT P y Py -> x = y.
Proof.
Lemma
Source code
Source code
Source code
existT P x Px1 = existT P x Px2 -> Px1 = Px2.
Proof.
by have [|/eqP] := eqVneq y z; [left|right].
Qed.
Lemma
Source code
existT [eta P] (projT1 p) (projT2 p) = p.
Proof.
Record
Source code
_ : forall ( : Prop), (P <-> Q) -> (P = Q);
_ : forall { : Type} ( : T -> U),
(forall , f x = g x) -> f = g;
}.
Fact
Source code
Proof.
- exact: propositional_extensionality.
- by move=> T U f g; apply: functional_extensionality_dep.
Qed.
Lemma
Source code
Proof.
Ltac eqProp := apply: propext; split.
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Lemma
Source code
(f = g) = (forall , f x y z = g x y z).
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
(f = g) <-> (forall , f x y z = g x y z).
Proof.
Lemma
Source code
Lemma
Source code
(P = Q) = (forall , P x y <-> Q x y).
Lemma
Source code
(P = Q) = (forall , P x y z <-> Q x y z).
Lemma
Source code
Proof.
Lemma
Source code
(P = Q) <-> (forall , P x y <-> Q x y).
Proof.
Lemma
Source code
(P = Q) <-> (forall , P x y z <-> Q x y z).
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Record
Source code
_ : forall ( : Prop), {P} + {~P};
_ : forall , hasChoice T
}.
Lemma
Source code
(forall , exists , P x y) -> { & forall , P x (f x)}.
Proof.
Theorem : P \/ ~ P.
Proof.
Source code
have Uex val : exists , U val b by exists val; left.
pose f
Source code
pose Uf
Source code
have : f true != f false \/ P.
have [] := (Uf true, Uf false); rewrite /U.
by move=> [->|?] [->|?] ; do ?[by right]; left.
move=> [/eqP fTFN|]; [right=> p|by left]; apply: fTFN.
have UTF : U true = U false by rewrite predeqE /U => b; split=> _; right.
rewrite /f; move: (Uex true) (Uex false); rewrite UTF => p1 p2.
by congr (projT1 (cid _)).
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
(forall : T, U x = V x) -> (fun => U x) = (fun => V x).
Proof.
Lemma
Source code
(forall , U x y = V x y) -> (fun => U x y) = (fun => V x y).
Proof.
Notation
Source code
Lemma
Source code
(forall , U x y z = V x y z) ->
(fun => U x y z) = (fun => V x y z).
Proof.
Notation
Source code
Lemma
Source code
(forall : T, U x = V x) -> (forall , U x) = (forall , V x).
Lemma
Source code
(forall , U x y = V x y) -> (forall , U x y) = (forall , V x y).
#[deprecated(since="mathcomp-analysis 1.10.0", note="renamed to `eq2_forall`.")]
Notation
Source code
Lemma
Source code
(forall , U x y z = V x y z) ->
(forall , U x y z) = (forall , V x y z).
Proof.
Notation
Source code
Lemma
Source code
(forall : T, U x = V x) -> (exists , U x) = (exists , V x).
Lemma
Source code
(forall , U x y = V x y) -> (exists , U x y) = (exists , V x y).
Lemma
Source code
(forall , U x y z = V x y z) ->
(exists , U x y z) = (exists , V x y z).
Proof.
Notation
Source code
Lemma
Source code
s = t -> exist P s p = exist P t q.
Proof.
Lemma
Source code
(forall , U x y) = (forall , U x y).
Proof.
Lemma
Source code
(exists , U x y) = (exists , U x y).
Proof.
Lemma
Source code
Definition
supremum : forall [d : disp_t] [T : porderType d], T -> set T -> T supremum is not universe polymorphic Arguments supremum [d T] x0 A%_classical_set_scope supremum is transparent Expands to: Constant mathcomp.classical.classical_sets.supremum Declared in library mathcomp.classical.classical_sets, line 3169, characters 11-19
Source code
Notation
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
Lemma
Source code
Lemma
Source code
Definition
infimums : forall [d : disp_t] [T : porderType d], set T -> set T infimums is not universe polymorphic Arguments infimums [d T] A%_classical_set_scope _ infimums is transparent Expands to: Constant mathcomp.classical.classical_sets.infimums Declared in library mathcomp.classical.classical_sets, line 3188, characters 11-19
Source code
Lemma
Source code
Definition
infimum : forall [d : disp_t] [T : porderType d], T -> set T -> T infimum is not universe polymorphic Arguments infimum [d T] x0 A%_classical_set_scope infimum is transparent Expands to: Constant mathcomp.classical.classical_sets.infimum Declared in library mathcomp.classical.classical_sets, line 3203, characters 11-18
Source code
hasDecEq.Build T (@gen_eqP T).
.
Source code
Source code
Source code
gen_eqMixin (forall : T, T' t).
.
Source code
Source code
Source code
gen_choiceMixin (forall : T, T' t).
.
Source code
Source code
Source code
.
Source code
Source code
Source code
Section classicType.
Variable : Type.
Definition
meets : forall [T : Type], set_system T -> set_system T -> Prop meets is not universe polymorphic Arguments meets [T]%_type_scope F G meets is transparent Expands to: Constant mathcomp.classical.classical_sets.meets Declared in library mathcomp.classical.classical_sets, line 3237, characters 11-16
Source code
.
Source code
Source code
Source code
.
Source code
Source code
Source code
End classicType.
Notation
Source code
(format "'{classic' T }") : type_scope.
Section eclassicType.
Variable : eqType.
Definition
seqDU : forall [T : Type], (set T) ^nat -> nat -> set T seqDU is not universe polymorphic Arguments seqDU [T]%_type_scope F n%_nat_scope _ seqDU is transparent Expands to: Constant mathcomp.classical.classical_sets.seqDU Declared in library mathcomp.classical.classical_sets, line 3368, characters 11-16
Source code
.
Source code
Source code
Source code
.
Source code
Source code
Source code
End eclassicType.
Notation
Source code
(format "'{eclassic' T }") : type_scope.
Definition
seqD : forall [T : Type], (set T) ^nat -> nat -> set T seqD is not universe polymorphic Arguments seqD [T]%_type_scope F n%_nat_scope _ seqD is transparent Expands to: Constant mathcomp.classical.classical_sets.seqD Declared in library mathcomp.classical.classical_sets, line 3379, characters 11-15
Source code
Source code
(forall , G (sort x')) -> forall , G x.
Notation
Source code
Notation
Source code
Lemma
Source code
Source code
(forall , exists , sort y = x) -> canonical_ sort.
Proof.
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Proof.
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
reflect [/\ P, Q & R] [&& `[< P >], `[< Q >] & `[< R >]].
Proof.
Lemma
Source code
Proof.
Lemma
Source code
reflect [\/ P, Q | R] [|| `[< P >], `[< Q >] | `[< R >]].
Proof.
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 asbool_imply negb_imply -asbool_neg => /and_asboolP.
by move/and_asboolP; rewrite asbool_neg -negb_imply asbool_imply.
Qed.
Lemma
Source code
reflect (forall , `[<P x>]) (`[<forall , P x>]).
Proof.
Lemma
Source code
reflect (exists , `[<P x>]) (`[<exists , P x>]).
Proof.
Variant
Source code
|
Source code
|
Source code
Lemma
Source code
Lemma
Source code
Proof.
Lemma
Source code
* (left_zero False and * right_zero False and * idempotent_op and).
Proof.
Lemma
Source code
* (left_zero True or * right_zero True or * idempotent_op or).
Proof.
Lemma
Source code
Source code
(imply False =1 fun=> True) * (imply^~ False =1 not)
* (left_id True imply * right_zero True imply * self_inverse True imply).
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
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Lemma
Source code
Source code
(~ P -> (x < y)%O) -> (y <= x)%O -> P.
Proof.
Lemma
Source code
Source code
(~ P -> (x <= y)%O) -> (y < x)%O -> P.
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Definition
xsection : forall [T1 T2 : Type], set (T1 * T2) -> T1 -> set T2 xsection is not universe polymorphic Arguments xsection [T1 T2]%_type_scope A%_classical_set_scope x _ xsection is transparent Expands to: Constant mathcomp.classical.classical_sets.xsection Declared in library mathcomp.classical.classical_sets, line 3448, characters 11-19
Source code
Identity Coercion fun_of_pred : predp >-> Funclass.
Definition
ysection : forall [T1 T2 : Type], set (T1 * T2) -> T2 -> set T1 ysection is not universe polymorphic Arguments ysection [T1 T2]%_type_scope A%_classical_set_scope y _ ysection is transparent Expands to: Constant mathcomp.classical.classical_sets.ysection Declared in library mathcomp.classical.classical_sets, line 3450, characters 11-19
Source code
Identity Coercion fun_of_rel : rel >-> Funclass.
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
diagonal : forall {T : Type}, set (T * T) diagonal is not universe polymorphic Arguments diagonal {T}%_type_scope _ diagonal is transparent Expands to: Constant mathcomp.classical.classical_sets.diagonal Declared in library mathcomp.classical.classical_sets, line 3590, characters 11-19
Source code
Prenex Implicits pred0p.
Lemma
Source code
Lemma
Source code
reflect (forall : T, ~ P x) (~~ `[<exists : T, P x>]).
Proof.
Lemma
Source code
reflect (exists : T, ~ P x) (~~ `[<forall : T, P x>]).
Proof.
Lemma
Source code
`[< forall : T, ~~ (P x) >] = ~~ `[< exists : T, P x >].
Proof.
Lemma
Source code
`[< exists : T, ~~ (P x) >] = ~~ `[< forall : T, P x >].
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
by rewrite asbool_and negb_and => /orP[]/asboolPn; [left|right].
Qed.
Lemma
Source code
Proof.
Lemma
Source code
Proof.
by rewrite 2!negb_and -3!asbool_neg => /or3_asboolP.
by rewrite 3!asbool_neg -2!negb_and => /and3_asboolP.
Qed.
Lemma
Source code
Proof.
Notation
Source code
Lemma
Source code
#[deprecated(since="mathcomp-analysis 1.15.0", note="Renamed to `not_notE`. Warning: a different `notE` is provided by `contra.v`.")]
Notation
Source code
Lemma
Source code
Lemma
Source code
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Proof.
by rewrite -2!(reflect_eq orP).
Qed.
Lemma
Source code
Proof.
by rewrite -3!(reflect_eq orP).
Qed.
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
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
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Proof.
Lemma
Source code
(exists2 , P x & Q x) <-> exists , P x /\ Q x.
Proof.
Lemma
Source code
(exists2 , P x & Q x) <-> ~ forall , ~ P x \/ ~ Q x.
Proof.
by split; apply: contra_not => PQx x; apply/not_andP; apply: PQx.
Qed.
Lemma
Source code
(forall , ~ P x \/ ~ Q x) <-> ~ (exists2 , P x & Q x).
Proof.
by rewrite -not_andP => -[Pt Qt]; apply PQ; exists t.
Qed.
Lemma
Source code
(forall , P x -> ~ Q x) <-> ~ (exists2 , P x & Q x).
Proof.
by move=> Pt Qt; apply: PQ; exists t.
Qed.
Lemma
Source code
(exists2 , P x & ~ Q x) <-> ~ (forall , P x -> Q x).
Proof.
by apply: contra_notP => NQx; exists x.
Qed.
Lemma
Source code
reflect (forall : T, ~ P x \/ ~ Q x) (~~ `[<exists2 : T, P x & Q x>]).
Proof.
Section bigmaxmin.
Local Notation
Source code
Local Notation
Source code
Local Open Scope order_scope.
Variables ( : Order.disp_t) ( : orderType d).
Variables ( : T) ( : finType) ( : pred I) ( : T) ( : I -> T).
Import Order.TTheory.
Lemma
Source code
(m <= \big[max/x]_( | P i) F i).
Proof.
- rewrite leNgt => /bigmax_ltP /not_andP[/negP|]; first by rewrite -leNgt; left.
by move=> /existsNP[i /not_implyP[Pi /negP]]; rewrite -leNgt; right; exists i.
- by rewrite bigmax_idl le_max mx.
- by rewrite (bigmaxD1 i)// le_max mFi.
Qed.
Lemma
Source code
(m < \big[max/x]_( | P i) F i).
Proof.
- rewrite ltNge => /bigmax_leP /not_andP[/negP|]; first by rewrite -ltNge; left.
by move=> /existsNP[i /not_implyP[Pi /negP]]; rewrite -ltNge; right; exists i.
- by rewrite bigmax_idl lt_max mx.
- by rewrite (bigmaxD1 i)// lt_max mFi.
Qed.
Lemma
Source code
(\big[min/x]_( | P i) F i <= m).
Proof.
- rewrite leNgt => /bigmin_gtP /not_andP[/negP|]; first by rewrite -leNgt; left.
by move=> /existsNP[i /not_implyP[Pi /negP]]; rewrite -leNgt; right; exists i.
- by rewrite bigmin_idl ge_min xm.
- by rewrite (bigminD1 i)// ge_min Fim.
Qed.
Lemma
Source code
(\big[min/x]_( | P i) F i < m).
Proof.
- rewrite ltNge => /bigmin_geP /not_andP[/negP|]; first by rewrite -ltNge; left.
by move=> /existsNP[i /not_implyP[Pi /negP]]; rewrite -ltNge; right; exists i.
- by rewrite bigmin_idl gt_min xm.
- by rewrite (bigminD1 _ _ _ Pi) gt_min Fim.
Qed.
End bigmaxmin.
Module
Source code
Section FunOrder.
Import Order.TTheory.
Variables ( : Type) ( : Order.disp_t) ( : porderType d).
Implicit Types f g h : aT -> T.
Lemma
Source code
Proof.
Definition
maximal : forall [T : Type], rel T -> T -> Prop maximal is not universe polymorphic Arguments maximal [T]%_type_scope R z maximal is transparent Expands to: Constant mathcomp.classical.wochoice.maximal Declared in library mathcomp.classical.wochoice, line 72, characters 11-18
Source code
Local Notation
Source code
Definition
minimal : forall [T : Type], rel T -> T -> Prop minimal is not universe polymorphic Arguments minimal [T]%_type_scope R z minimal is transparent Expands to: Constant mathcomp.classical.wochoice.minimal Declared in library mathcomp.classical.wochoice, line 74, characters 11-18
Source code
Local Notation
Source code
Lemma
Source code
Proof.
- by apply/eqP => gf; move: fg => /asboolP[fg] [x /eqP]; apply; rewrite gf.
- apply/asboolP => x; rewrite le_eqVlt; move/asboolP : fg => [fg [y gfy]].
by have [//|gfx /=] := boolP (f x == g x); rewrite lt_neqAle gfx /= fg.
- apply/not_existsP => h.
have : f =1 g by move=> x; have /negP/negPn/eqP := h x.
by rewrite -funeqE; apply/nesym/eqP.
Qed.
Fact
Source code
Proof.
Fact
Source code
Proof.
Fact
Source code
Source code
.
Source code
Source code
Source code
fun_display (aT -> T) lef ltf ltf_def lef_refl lef_anti lef_trans.
End FunOrder.
Section FunLattice.
Import Order.TTheory.
Variables ( : Type) ( : Order.disp_t) ( : latticeType d).
Implicit Types f g h : aT -> T.
Definition
lower_bound : forall [T : Type], rel T -> {pred T} -> T -> Prop lower_bound is not universe polymorphic Arguments lower_bound [T]%_type_scope R A z lower_bound is transparent Expands to: Constant mathcomp.classical.wochoice.lower_bound Declared in library mathcomp.classical.wochoice, line 78, characters 11-22
Source code
Definition
preorder : forall [T : Type], rel T -> Prop preorder is not universe polymorphic Arguments preorder [T]%_type_scope R preorder is transparent Expands to: Constant mathcomp.classical.wochoice.preorder Declared in library mathcomp.classical.wochoice, line 80, characters 11-19
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Lemma
Source code
Proof.
Source code
.
Source code
Source code
Source code
meetfC joinfC meetfA joinfA joinfKI meetfKU lef_meet.
End FunLattice.
Module
Source code
HB.reexport.
End Exports.
End FunOrder.
Export FunOrder.Exports.
Lemma
Source code
reflect (forall , (f x <= g x)%O) (f <= g)%O.
Lemma
Source code
((f `&` g) x = f x `&` g x)%O.
Proof.
Lemma
Source code
((f `|` g) x = f x `|` g x)%O.
Proof.
Lemma
Source code
Proof.
Lemma
Source code
Lemma
Source code
Proof.
Section Inhabited.
Variable ( : Type).
Lemma
Source code
Proof.
Lemma
Source code
Proof.
End Inhabited.
Lemma
Source code
Proof.
Lemma
Source code