@@ -834,6 +834,9 @@ apply: contrapT => /asboolPn/forallp_asboolPn A0; apply/A_neq0/eqP.
834834by rewrite eqEsubset; split.
835835Qed .
836836
837+ Lemma not_nonemptyP 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/not_nonemptyP . 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; apply/not_nonemptyP . Qed .
29872990
29882991Lemma has_sup1 x : has_sup [set x].
29892992Proof . by split; [exists x | exists x => y ->]. Qed .
0 commit comments