diff --git a/theories/proofmode/class_instances.v b/theories/proofmode/class_instances.v index 81eef985bda13aa51531be6208069b18d920d1cb..8ba330065fdee81cd93da85026e4d44d369ff7f6 100644 --- a/theories/proofmode/class_instances.v +++ b/theories/proofmode/class_instances.v @@ -772,6 +772,9 @@ Proof. done. Qed. Global Instance from_forall_pure {A} (φ : A → Prop) : @FromForall M A (⌜∀ a : A, φ aâŒ) (λ a, ⌜ φ a âŒ)%I. Proof. by rewrite /FromForall pure_forall. Qed. +Global Instance from_forall_pure_not (φ : Prop) : + @FromForall M φ (⌜¬ φâŒ) (λ a : φ, False)%I. +Proof. by rewrite /FromForall pure_forall. Qed. Global Instance from_forall_impl_pure P Q φ : IntoPureT P φ → FromForall (P → Q) (λ _ : φ, Q)%I. Proof. diff --git a/theories/tests/proofmode.v b/theories/tests/proofmode.v index 1ed83a72fee986a25e3bb839fa527b01660ebeff..4aa097847bdced00066e48a4355db957bc1d34eb 100644 --- a/theories/tests/proofmode.v +++ b/theories/tests/proofmode.v @@ -233,6 +233,9 @@ Qed. Lemma test_iIntros_rewrite P (x1 x2 x3 x4 : nat) : x1 = x2 → (⌜ x2 = x3 ⌠∗ ⌜ x3 ≡ x4 ⌠∗ P) -∗ ⌜ x1 = x4 ⌠∗ P. Proof. iIntros (?) "(-> & -> & $)"; auto. Qed. + +Lemma test_iItros_pure : (⌜ ¬False ⌠: uPred M)%I. +Proof. by iIntros (?). Qed. End tests. Section more_tests.