diff --git a/CHANGELOG_UNRELEASED.md b/CHANGELOG_UNRELEASED.md index 67bb43c3b6..64facd8db9 100644 --- a/CHANGELOG_UNRELEASED.md +++ b/CHANGELOG_UNRELEASED.md @@ -8,6 +8,10 @@ ### Renamed +- in `boolp.v`: + + `mextentionality` -> `mextensionality` + + `extentionality` -> `extensionality` + ### Generalized ### Deprecated diff --git a/classical/boolp.v b/classical/boolp.v index 7d2d0ba576..4e6177046c 100644 --- a/classical/boolp.v +++ b/classical/boolp.v @@ -56,8 +56,6 @@ Unset Printing Implicit Defensive. Declare Scope box_scope. Declare Scope quant_scope. -(* -------------------------------------------------------------------- *) - Axiom functional_extensionality_dep : forall (A : Type) (B : A -> Type) (f g : forall x : A, B x), (forall x : A, f x = g x) -> f = g. @@ -76,14 +74,13 @@ move=> PQA; suff: {x | P x /\ Q x} by move=> [a [*]]; exists a. by apply: cid; case: PQA => x; exists x. Qed. -(* -------------------------------------------------------------------- *) -Record mextentionality := { +Record mextensionality := { _ : forall (P Q : Prop), (P <-> Q) -> (P = Q); _ : forall {T U : Type} (f g : T -> U), (forall x, f x = g x) -> f = g; }. -Fact extentionality : mextentionality. +Fact extensionality : mextensionality. Proof. split. - exact: propositional_extensionality. @@ -91,10 +88,10 @@ split. Qed. Lemma propext (P Q : Prop) : (P <-> Q) -> (P = Q). -Proof. by have [propext _] := extentionality; apply: propext. Qed. +Proof. by have [propext _] := extensionality; apply: propext. Qed. Lemma funext {T U : Type} (f g : T -> U) : (f =1 g) -> f = g. -Proof. by case: extentionality=> _; apply. Qed. +Proof. by case: extensionality=> _; apply. Qed. Lemma propeqE (P Q : Prop) : (P = Q) = (P <-> Q). Proof. by apply: propext; split=> [->|/propext]. Qed. @@ -161,7 +158,6 @@ Lemma Prop_irrelevance (P : Prop) (x y : P) : x = y. Proof. by move: x (x) y => /propT-> [] []. Qed. #[global] Hint Resolve Prop_irrelevance : core. -(* -------------------------------------------------------------------- *) Record mclassic := { _ : forall (P : Prop), {P} + {~P}; _ : forall T, Choice.mixin_of T @@ -220,7 +216,6 @@ Proof. by have [p|Np] := pselect P; [left|right]; rewrite propeqE. Qed. Lemma lem (P : Prop): P \/ ~P. Proof. by case: (pselect P); tauto. Qed. -(* -------------------------------------------------------------------- *) Lemma trueE : true = True :> Prop. Proof. by rewrite propeqE; split. Qed. @@ -376,7 +371,6 @@ Proof. by apply: canon=> T; exists [choiceType of {eclassic T}]; case: T. Qed. Lemma not_True : (~ True) = False. Proof. exact/propext. Qed. Lemma not_False : (~ False) = True. Proof. by apply/propext; split=> _. Qed. -(* -------------------------------------------------------------------- *) Lemma asbool_equiv_eq {P Q : Prop} : (P <-> Q) -> `[
] = `[ ] = `[ ] = `[ ] && `[ ] ==> `[ ]) (`[ ].
Prenex Implicits pred0p.
Lemma pred0pP (T : Type) (P : predp T) : reflect (P =1 xpredp0) (pred0p P).
Proof. by apply: (iffP (asboolP _)). Qed.
-(* -------------------------------------------------------------------- *)
Lemma forallp_asboolPn {T} {P : T -> Prop} :
reflect (forall x : T, ~ P x) (~~ `[].
Proof. by rewrite -propeqE => ->. Qed.
@@ -389,7 +383,6 @@ Proof. by move/asbool_equiv_eq->. Qed.
Lemma asbool_eq_equiv {P Q : Prop} : `[
] -> (P <-> Q).
Proof. by move=> eq; split=> /asboolP; rewrite (eq, =^~ eq) => /asboolP. Qed.
-(* -------------------------------------------------------------------- *)
Lemma and_asboolP (P Q : Prop) : reflect (P /\ Q) (`[< P >] && `[< Q >]).
Proof.
apply: (iffP idP); first by case/andP => /asboolP p /asboolP q.
@@ -425,7 +418,6 @@ Proof. exact: (asbool_equiv_eqP (or_asboolP _ _)). Qed.
Lemma asbool_and {P Q : Prop} : `[
].
Proof. exact: (asbool_equiv_eqP (and_asboolP _ _)). Qed.
-(* -------------------------------------------------------------------- *)
Lemma imply_asboolP {P Q : Prop} : reflect (P -> Q) (`[
]).
Proof.
apply: (iffP implyP)=> [PQb /asboolP/PQb/asboolW //|].
@@ -442,7 +434,6 @@ by rewrite asbool_imply negb_imply -asbool_neg => /and_asboolP.
by move/and_asboolP; rewrite asbool_neg -negb_imply asbool_imply.
Qed.
-(* -------------------------------------------------------------------- *)
Lemma forall_asboolP {T : Type} (P : T -> Prop) :
reflect (forall x, `[