Skip to content
Snippets Groups Projects
Commit ee8815c0 authored by Robbert Krebbers's avatar Robbert Krebbers
Browse files

Have `iNext` turn `Next x ≡ Next y` into `x ≡ y`.

parent 71fb10bd
No related branches found
No related tags found
No related merge requests found
...@@ -567,6 +567,14 @@ Proof. ...@@ -567,6 +567,14 @@ Proof.
move=> Hn [_ ->|->] <-; by rewrite -!laterN_plus -Hn Nat.add_comm. move=> Hn [_ ->|->] <-; by rewrite -!laterN_plus -Hn Nat.add_comm.
Qed. Qed.
Global Instance into_laterN_Next {A : ofeT} only_head n n' (x y : A) :
NatCancel n 1 n' 0
IntoLaterN (PROP:=PROP) only_head n (Next x Next y) (x y) | 2.
Proof.
rewrite /MakeLaterN /IntoLaterN /MaybeIntoLaterN /NatCancel Nat.add_0_r.
move=> <-. rewrite later_equivI. by rewrite Nat.add_comm /= -laterN_intro.
Qed.
Global Instance into_laterN_and_l n P1 P2 Q1 Q2 : Global Instance into_laterN_and_l n P1 P2 Q1 Q2 :
IntoLaterN false n P1 Q1 MaybeIntoLaterN false n P2 Q2 IntoLaterN false n P1 Q1 MaybeIntoLaterN false n P2 Q2
IntoLaterN false n (P1 P2) (Q1 Q2) | 10. IntoLaterN false n (P1 P2) (Q1 Q2) | 10.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment