(* Condition variables *)
(*Definition _cond_t := 4%positive.*)
Definition tcond := tint.(* Does this need to be anything special? *)
Definition cond_var {cs} sh v := @data_at_ cs sh tcond v.

(* Specifications: *)
Lemma nonexpansive_super_non_expansive: forall (F: mpred -> mpred), nonexpansive F -> forall R n, approx n (F R) = approx n (F (approx n R)).
Lemma nonexpansive2_super_non_expansive: forall (F: mpred -> mpred -> mpred), (forall P, nonexpansive (fun Q => F P Q)) -> (forall Q, nonexpansive (fun P => F P Q)) -> forall P Q n, approx n (F P Q) = approx n (F (approx n P) (approx n Q)).
Lemma nonexpansive_super_non_expansive: forall (F: mpred -> mpred), nonexpansive F -> forall R n, approx n (F R) = approx n (F (approx n R)).
Lemma nonexpansive2_super_non_expansive: forall (F: mpred -> mpred -> mpred), (forall P, nonexpansive (fun Q => F P Q)) -> (forall Q, nonexpansive (fun P => F P Q)) -> forall P Q n, approx n (F P Q) = approx n (F (approx n P) (approx n Q)).