@@ -834,6 +834,9 @@ apply: contrapT => /asboolPn/forallp_asboolPn A0; apply/A_neq0/eqP.
834834by rewrite eqEsubset; split.
835835Qed .
836836
837+ Lemma nonemptyPn A : ~ (A !=set0) <-> A = set0.
838+ Proof . by split; [|move=> ->]; move/set0P/negP; [move/negbNE/eqP|]. Qed .
839+
837840Lemma setF_eq0 : (T -> False) -> all_equal_to (set0 : set T).
838841Proof . by move=> TF A; rewrite -subset0 => x; have := TF x. Qed .
839842
@@ -1206,7 +1209,7 @@ Notation bigcupM1l := bigcupX1l (only parsing).
12061209Notation bigcupM1r := bigcupX1r (only parsing).
12071210
12081211Lemma set_cst {T I} (x : T) (A : set I) :
1209- [set x | _ in A] = if A == set0 then set0 else [set x].
1212+ [set x | _ in A] = if A == set0 then set0 else [set x].
12101213Proof .
12111214apply/seteqP; split=> [_ [i +] <-|t]; first by case: ifPn => // /eqP ->.
12121215by case: ifPn => // /set0P[i Ai ->{t}]; exists i.
@@ -2980,10 +2983,10 @@ Lemma has_ub_set1 x : has_ubound [set x].
29802983Proof . by exists x; rewrite ub_set1. Qed .
29812984
29822985Lemma has_inf0 : ~ has_inf (@set0 T).
2983- Proof . by rewrite /has_inf not_andP; left; apply/set0P/negP/negPn . Qed .
2986+ Proof . by rewrite /has_inf not_andP; left; exact/nonemptyPn . Qed .
29842987
29852988Lemma has_sup0 : ~ has_sup (@set0 T).
2986- Proof . by rewrite /has_sup not_andP; left; apply/set0P/negP/negPn . Qed .
2989+ Proof . by rewrite /has_sup not_andP; left; exact/nonemptyPn . Qed .
29872990
29882991Lemma has_sup1 x : has_sup [set x].
29892992Proof . by split; [exists x | exists x => y ->]. Qed .
@@ -2992,10 +2995,10 @@ Lemma has_inf1 x : has_inf [set x].
29922995Proof . by split; [exists x | exists x => y ->]. Qed .
29932996
29942997Lemma subset_has_lbound A B : A `<=` B -> has_lbound B -> has_lbound A.
2995- Proof . by move=> AB [l Bl]; exists l => a Aa; apply /Bl/AB. Qed .
2998+ Proof . by move=> AB [l Bl]; exists l => a Aa; exact /Bl/AB. Qed .
29962999
29973000Lemma subset_has_ubound A B : A `<=` B -> has_ubound B -> has_ubound A.
2998- Proof . by move=> AB [l Bl]; exists l => a Aa; apply /Bl/AB. Qed .
3001+ Proof . by move=> AB [l Bl]; exists l => a Aa; exact /Bl/AB. Qed .
29993002
30003003Lemma downP A x : (exists2 y, A y & (x <= y)%O) <-> down A x.
30013004Proof . by split => [[y Ay xy]|[y [Ay xy]]]; [exists y| exists y]. Qed .
@@ -3118,7 +3121,6 @@ Fact set_display : Order.disp_t. Proof. by []. Qed.
31183121Module SetOrder.
31193122Module Internal.
31203123Section SetOrder.
3121-
31223124Context {T : Type}.
31233125Implicit Types A B : set T.
31243126
@@ -3147,7 +3149,7 @@ HB.instance Definition _ :=
31473149 joinKI meetKU (@setIUl _) setIid.
31483150
31493151Lemma SetOrder_sub0set A : (set0 <= A)%O.
3150- Proof . by apply/asboolP; apply : sub0set. Qed .
3152+ Proof . by apply/asboolP; exact : sub0set. Qed .
31513153
31523154Lemma SetOrder_setTsub A : (A <= setT)%O.
31533155Proof . exact/asboolP. Qed .
0 commit comments