Closest.v


Require Export Fround.
Section Fclosest.
Variable b:Fbound.
Variable radix:nat.
Variable precision:nat.

Local FtoRradix := (FtoR radix).
Coercion FtoRradix : float >-> R.
Hypothesis radixMoreThanOne:(lt (S O) radix).
Hypothesis precisionGreaterThanOne:(lt (1) precision).
Hypothesis pGivesBound:(vNum b)=(minus (exp radix precision) (1)).

Definition Closest :=
   [r:R] [p:
float]
   (Fbounded b p) /\
   ((f:float) (Fbounded b f) ->
    (Rle (Rabsolu (Rminus p r)) (Rabsolu (Rminus f r)))).

Theorem ClosestTotal: (TotalP Closest).

Theorem ClosestCompatible: (CompatibleP b radix Closest).

Theorem ClosestMin:
  (r:R)
  (min, max:
float)
  (isMin b radix r min) ->
  (isMax b radix r max) -> (Rle (Rmult (2) r) (Rplus min max)) ->(Closest r min).

Theorem ClosestMax:
  (r:R)
  (min, max:
float)
  (isMin b radix r min) ->
  (isMax b radix r max) -> (Rle (Rplus min max) (Rmult (2) r)) ->(Closest r max).

Theorem ClosestMinOrMax: (MinOrMaxP b radix Closest).

Theorem ClosestMinEq:
  (r:R)
  (min, max, p:
float)
  (isMin b radix r min) ->
  (isMax b radix r max) ->
  (Rlt (Rmult (2) r) (Rplus min max)) -> (Closest r p) -><R> p==min.

Theorem ClosestMaxEq:
  (r:R)
  (min, max, p:
float)
  (isMin b radix r min) ->
  (isMax b radix r max) ->
  (Rlt (Rplus min max) (Rmult (2) r)) -> (Closest r p) -><R> p==max.

Theorem ClosestMonotone: (MonotoneP radix Closest).

Theorem ClosestRoundedModeP: (RoundedModeP b radix Closest).
Split; Try Exact ClosestTotal.
Split; Try Exact ClosestCompatible.
Split; Try Exact ClosestMinOrMax.
Try Exact ClosestMonotone.
Qed.

Definition EvenClosest :=
   [r:R] [p:
float]
   (Closest r p) /\
   ((FNeven b radix precision p) \/ ((q:float) (Closest r q) -><R> q==p)).

Theorem EvenClosestTotal: (TotalP EvenClosest).

Theorem EvenClosestCompatible: (CompatibleP b radix EvenClosest).

Theorem EvenClosestMinOrMax: (MinOrMaxP b radix EvenClosest).

Theorem EvenClosestMonotone: (MonotoneP radix EvenClosest).

Theorem EvenClosestRoundedModeP: (RoundedModeP b radix EvenClosest).

Theorem EvenClosestUniqueP: (UniqueP radix EvenClosest).

Theorem ClosestSymmetric: (SymmetricP Closest).

Theorem EvenClosestSymmetric: (SymmetricP EvenClosest).
End Fclosest.

30/05/01, 17:23