Commit 352292a8 authored by Jacques-Henri Jourdan's avatar Jacques-Henri Jourdan
Browse files

We usually fail faster to prove IntoPure than Absorbing/Affine.

parent 3b03bb6d
......@@ -613,9 +613,9 @@ Proof.
apply pure_elim_l=> Hφ. by rewrite -(exist_intro Hφ).
Global Instance into_exist_sep_pure P Q φ :
TCOr (Affine P) (Absorbing Q) IntoPureT P φ IntoExist (P Q) (λ _ : φ, Q).
IntoPureT P φ TCOr (Affine P) (Absorbing Q) IntoExist (P Q) (λ _ : φ, Q).
intros ? (φ'&->&?). rewrite /IntoExist.
intros (φ'&->&?) ?. rewrite /IntoExist.
eapply (pure_elim φ'); [by rewrite (into_pure P); apply sep_elim_l, _|]=>?.
rewrite -exist_intro //. apply sep_elim_r, _.
......@@ -658,10 +658,10 @@ Proof.
intros (φ'&->&?). by rewrite /FromForall -pure_impl_forall (into_pure P).
Global Instance from_forall_wand_pure P Q φ :
TCOr (Affine P) (Absorbing Q) IntoPureT P φ
IntoPureT P φ TCOr (Affine P) (Absorbing Q)
FromForall (P - Q)%I (λ _ : φ, Q)%I.
intros [|] (φ'&->&?); rewrite /FromForall; apply wand_intro_r.
intros (φ'&->&?) [|]; rewrite /FromForall; apply wand_intro_r.
- rewrite -(affine_affinely P) (into_pure P) -persistent_and_affinely_sep_r.
apply pure_elim_r=>?. by rewrite forall_elim.
- by rewrite (into_pure P) -pure_wand_forall wand_elim_l.
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment