CoRN.metric2.Ranges


Require Import Program canonical_names util.Container QArith QMinMax CRlattice.

Definition Range (T: Type) := prod T T.

Instance in_QRange: Container Q (Range Q)
  := λ r x, (Qmin (fst r) (snd r) x Qmax (fst r) (snd r))%Q.

Instance in_CRRange: Container CR (Range CR)
  := λ r x, (CRmin (fst r) (snd r) x x CRmax (fst r) (snd r))%CR.

Instance in_sig_Range `{Container A (Range A)} (P: A Prop): Container (sig P) (Range (sig P))
  := λ r x, In (` (fst r), ` (snd r)) (` x).