MAJ terminée. Nous sommes passés en version 14.6.2 . Pour consulter les "releases notes" associées c'est ici :

Commit c7756ed4 by Guillaume Melquiond

### Realize axiom Round_logic_def in Coq.

parent 5fa2b7df
 ... ... @@ -17,12 +17,6 @@ Definition round: floating_point.Rounding.mode -> R -> R. exact (round 53 1024). Defined. (* Why3 goal *) Definition round_logic: floating_point.Rounding.mode -> R -> floating_point.DoubleFormat.double. exact (round_logic 53 1024 (refl_equal true) (refl_equal true)). Defined. (* Why3 goal *) Definition value: floating_point.DoubleFormat.double -> R. exact (value 53 1024). ... ... @@ -56,7 +50,6 @@ Lemma Bounded_real_no_overflow : forall (m:floating_point.Rounding.mode) (x:R), ((Rabs x) <= (9007199254740991 * 19958403095347198116563727130368385660674512604354575415025472424372118918689640657849579654926357010893424468441924952439724379883935936607391717982848314203200056729510856765175377214443629871826533567445439239933308104551208703888888552684480441575071209068757560416423584952303440099278848)%R)%R -> (no_overflow m x). (* YOU MAY EDIT THE PROOF BELOW *) exact (Bounded_real_no_overflow 53 1024 (refl_equal true) (refl_equal true)). Qed. ... ... @@ -117,6 +110,19 @@ Lemma Round_up_neg : forall (x:R), ((round floating_point.Rounding.Up now apply Round_up_neg. Qed. (* Why3 goal *) Definition round_logic: floating_point.Rounding.mode -> R -> floating_point.DoubleFormat.double. exact (round_logic 53 1024 (refl_equal true) (refl_equal true)). Defined. (* Why3 goal *) Lemma Round_logic_def : forall (m:floating_point.Rounding.mode) (x:R), (no_overflow m x) -> ((value (round_logic m x)) = (round m x)). Proof. exact (Round_logic_def 53 1024 (refl_equal true) (refl_equal true)). Qed. (* Why3 assumption *) Definition of_real_post (m:floating_point.Rounding.mode) (x:R) (res:floating_point.DoubleFormat.double): Prop := ((value res) = (round m ... ...
 ... ... @@ -188,11 +188,6 @@ Definition round: floating_point.Rounding.mode -> R -> R. exact (fun m => round radix2 fexp (round_mode (rnd_of_mode m))). Defined. (* Why3 goal *) Definition round_logic: floating_point.Rounding.mode -> R -> t. exact (fun m r => r_to_fp_aux m r r r). Defined. (* Why3 assumption *) Definition round_error(x:t): R := (Rabs ((value x) - (exact x))%R). ... ... @@ -387,4 +382,30 @@ rewrite Round_down_neg. now rewrite Ropp_involutive. Qed. (* Why3 goal *) Definition round_logic: floating_point.Rounding.mode -> R -> t. exact (fun m r => r_to_fp_aux m r r r). Defined. (* Why3 goal *) Lemma Round_logic_def : forall (m:floating_point.Rounding.mode) (x:R), (no_overflow m x) -> ((value (round_logic m x)) = (round m x)). Proof. intros m x h1. unfold value, round_logic. simpl. apply r_to_fp_correct. apply Rle_lt_trans with (1 := h1). replace emax with (prec + (emax - prec))%Z by ring. rewrite bpow_plus. apply Rmult_lt_compat_r. apply bpow_gt_0. simpl. rewrite <- Z2R_Zpower. apply Z2R_lt. apply Zlt_pred. apply Zlt_le_weak. exact Hprec'. Qed. End GenFloat.
 ... ... @@ -17,12 +17,6 @@ Definition round: floating_point.Rounding.mode -> R -> R. exact (round 24 128). Defined. (* Why3 goal *) Definition round_logic: floating_point.Rounding.mode -> R -> floating_point.SingleFormat.single. exact (round_logic 24 128 (refl_equal true) (refl_equal true)). Defined. (* Why3 goal *) Definition value: floating_point.SingleFormat.single -> R. exact (value 24 128). ... ... @@ -59,7 +53,6 @@ Qed. Lemma Bounded_real_no_overflow : forall (m:floating_point.Rounding.mode) (x:R), ((Rabs x) <= (33554430 * 10141204801825835211973625643008)%R)%R -> (no_overflow m x). (* YOU MAY EDIT THE PROOF BELOW *) intros m x Hx. unfold no_overflow. rewrite max_single_eq in *. ... ... @@ -125,6 +118,22 @@ Lemma Round_up_neg : forall (x:R), ((round floating_point.Rounding.Up now apply Round_up_neg. Qed. (* Why3 goal *) Definition round_logic: floating_point.Rounding.mode -> R -> floating_point.SingleFormat.single. exact (round_logic 24 128 (refl_equal true) (refl_equal true)). Defined. (* Why3 goal *) Lemma Round_logic_def : forall (m:floating_point.Rounding.mode) (x:R), (no_overflow m x) -> ((value (round_logic m x)) = (round m x)). Proof. intros m x. unfold no_overflow. rewrite max_single_eq. exact (Round_logic_def 24 128 (refl_equal true) (refl_equal true) m x). Qed. (* Why3 assumption *) Definition of_real_post (m:floating_point.Rounding.mode) (x:R) (res:floating_point.SingleFormat.single): Prop := ((value res) = (round m ... ...
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!