(* * Copyright (c) 2009-2010, Andrew Appel, Robert Dockins and Aquinas Hobor. * *)
Local Open Scope pred.
(* Lemma box_contractive {A} `{ageable A} : forall F (M:modality), inclusion _ M fashionR -> contractive F -> contractive (fun X => box M (F X)).  Lemma box_nonexpansive {A} `{ageable A} : forall F (M:modality), inclusion _ M fashionR -> nonexpansive F -> nonexpansive (fun X => box M (F X)).  Lemma diamond_contractive {A} `{ageable A} : forall F (M:modality), inclusion _ M fashionR -> contractive F -> contractive (fun X => diamond M (F X)).  Lemma diamond_nonexpansive {A} `{ageable A} : forall F (M:modality), inclusion _ M fashionR -> nonexpansive F -> nonexpansive (fun X => diamond M (F X)). *)

Lemma prove_contractive {A} `{ageable A} : forall F,
(forall P Q,
|>(P >=> Q) |-- F P >=> F Q) ->
contractive F.