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

Give more usefull alternative characterization of contractive.

I added the old one in 176a588c but it was never used.
parent 40ddc78f
No related branches found
No related tags found
No related merge requests found
...@@ -871,13 +871,18 @@ Section later. ...@@ -871,13 +871,18 @@ Section later.
Global Instance Later_inj n : Inj (dist n) (dist (S n)) (@Next A). Global Instance Later_inj n : Inj (dist n) (dist (S n)) (@Next A).
Proof. by intros x y. Qed. Proof. by intros x y. Qed.
Lemma contractive_alt {B : ofeT} (f : A B) : Instance later_car_anti_contractive n :
Contractive f ( n x y, Next x {n} Next y f x {n} f y). Proper (dist n ==> dist_later n) later_car.
Proof. done. Qed. Proof. move=> [x] [y] /= Hxy. done. Qed.
Lemma later_car_anti_contractive : Lemma contractive_alt {B : ofeT} (f : A B) :
n, Proper (dist n ==> dist_later n) later_car. Contractive f g : later A B,
Proof. move=> n [x] [y] /= Hxy. done. Qed. ( n, Proper (dist n ==> dist n) g) ( x, f x g (Next x)).
Proof.
split.
- intros Hf. exists (f later_car); split=> // n x y ?. by f_equiv.
- intros (g&Hg&Hf) n x y Hxy. rewrite !Hf. by apply Hg.
Qed.
End later. End later.
Arguments laterC : clear implicits. Arguments laterC : clear implicits.
......
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