Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/VDM/VDMPP/ProductLinePP/   (Wiener Entwicklungsmethode ©)  Datei vom 13.4.2020 mit Größe 1 kB image not shown  

Bilddatei real_to_fp.prf   Sprache: unbekannt

 
(real_to_fp
 (truncate_zero 0
  (truncate_zero-1 nil 3321205307
   ("" (skosimp*)
    (("" (apply-extensionality)
      (("" (expand "truncate")
        (("" (expand "d_zero")
          (("" (assert)
            (("" (lemma "div_eq_zero")
              (("" (assert)
                (("" (rewrite "floor_int")
                  (("" (rewrite "mod_zero"nil))))))))))))))))
    nil)
   ((number nonempty-type-decl nil numbers nil)
    (boolean nonempty-type-decl nil booleans nil)
    (number_field_pred const-decl "[number -> boolean]" number_fields
     nil)
    (number_field nonempty-type-from-decl nil number_fields nil)
    (real_pred const-decl "[number_field -> boolean]" reals nil)
    (real nonempty-type-from-decl nil reals nil)
    (rational_pred const-decl "[real -> boolean]" rationals nil)
    (rational nonempty-type-from-decl nil rationals nil)
    (integer_pred const-decl "[rational -> boolean]" integers nil)
    (int nonempty-type-eq-decl nil integers nil)
    (bool nonempty-type-eq-decl nil booleans nil)
    (>= const-decl "bool" reals nil)
    (nat nonempty-type-eq-decl nil naturalnumbers nil)
    (< const-decl "bool" reals nil) (> const-decl "bool" reals nil)
    (above nonempty-type-eq-decl nil integers nil)
    (p formal-const-decl "above(1)" real_to_fp nil)
    (below type-eq-decl nil naturalnumbers nil)
    (b formal-const-decl "above(1)" real_to_fp nil)
    (d_zero const-decl "digits" IEEE_854_values nil)
    (digits type-eq-decl nil IEEE_854_values nil)
    (E_min formal-const-decl "{i: integer | E_max > i}" real_to_fp nil)
    (E_max formal-const-decl "integer" real_to_fp nil)
    (truncate const-decl "[below(p) -> below(b)]" fp_round_aux nil)
    (nonneg_real nonempty-type-eq-decl nil real_types nil)
    (integer nonempty-type-from-decl nil integers nil)
    (div_eq_zero formula-decl nil real_props nil)
    (floor_int formula-decl nil floor_ceil nil)
    (mod_zero formula-decl nil mod nil)
    (/= const-decl "boolean" notequal nil)
    (nonzero_integer nonempty-type-eq-decl nil integers nil)
    (nil application-judgement "below(m)" mod nil)
    (nonneg_floor_is_nat application-judgement "nat" floor_ceil nil)
    (posrat_exp application-judgement "posrat" exponentiation nil)
    (nnrat_exp application-judgement "nnrat" exponentiation nil))
   nil))
 (digits_of_finite 0
  (digits_of_finite-1 nil 3321205307
   ("" (skosimp*)
    (("" (rewrite "abs_value_fin")
      ((""
        (case "b ^ (Exp(fin!1)) * Sum(p, value_digit(d(fin!1))) >=0")
        (("1" (apply-extensionality)
          (("1" (hide 2)
            (("1" (rewrite "truncate")
              (("1" (assert)
                (("1"
                  (case-replace "(b ^ (x!1 - Exp(fin!1))
                  *
                  (b ^ (Exp(fin!1))
                     * Sum(p, value_digit(d(fin!1))))) =
Sum(p, value_digit(d(fin!1)))*b^x!1")
                  (("1" (hide -1 -2)
                    (("1" (lemma "floor_Sum")
                      (("1" (inst?)
                        (("1" (replace -1)
                          (("1" (hide -1)
                            (("1" (lemma "mod_Sum")
                              (("1" (inst?) nil)))))))))))))
                   ("2" (hide -1 2)
                    (("2" (assert)
                      (("2" (lemma "expt_plus")
                        (("2" (inst?)
                          (("2" (inst - "Exp(fin!1)")
                            (("2" (assertnil)))))))))))))))))))))
         ("2" (lemma "expt_pos")
          (("2" (inst?)
            (("2" (lemma "Sum_nonneg")
              (("2" (inst?)
                (("2" (rewrite "pos_times_ge")
                  (("2" (assertnil))))))))))))))))
    nil)
   ((abs_value_fin formula-decl nil IEEE_854_values nil)
    (fp_num type-decl nil IEEE_854_values nil)
    (finite? adt-recognizer-decl "[fp_num -> boolean]" IEEE_854_values
     nil)
    (number nonempty-type-decl nil numbers nil)
    (boolean nonempty-type-decl nil booleans nil)
    (number_field_pred const-decl "[number -> boolean]" number_fields
     nil)
    (number_field nonempty-type-from-decl nil number_fields nil)
    (real_pred const-decl "[number_field -> boolean]" reals nil)
    (real nonempty-type-from-decl nil reals nil)
    (rational_pred const-decl "[real -> boolean]" rationals nil)
    (rational nonempty-type-from-decl nil rationals nil)
    (integer_pred const-decl "[rational -> boolean]" integers nil)
    (int nonempty-type-eq-decl nil integers nil)
    (bool nonempty-type-eq-decl nil booleans nil)
    (> const-decl "bool" reals nil)
    (above nonempty-type-eq-decl nil integers nil)
    (b formal-const-decl "above(1)" real_to_fp nil)
    (p formal-const-decl "above(1)" real_to_fp nil)
    (integer nonempty-type-from-decl nil integers nil)
    (E_max formal-const-decl "integer" real_to_fp nil)
    (E_min formal-const-decl "{i: integer | E_max > i}" real_to_fp nil)
    (nnrat_exp application-judgement "nnrat" exponentiation nil)
    (real_times_real_is_real application-judgement "real" reals nil)
    (expt_pos formula-decl nil exponentiation nil)
    (Sum_nonneg formula-decl nil sum_hack nil)
    (pos_times_ge formula-decl nil real_props nil)
    (posreal nonempty-type-eq-decl nil real_types nil)
    (truncate const-decl "[below(p) -> below(b)]" fp_round_aux nil)
    (fin!1 skolem-const-decl "(finite?)" real_to_fp nil)
    (real_ge_is_total_order name-judgement "(total_order?[real])"
     real_props nil)
    (posrat_exp application-judgement "posrat" exponentiation nil)
    (int_minus_int_is_int application-judgement "int" integers nil)
    (nil application-judgement "below(m)" mod nil)
    (- const-decl "[numfield, numfield -> numfield]" number_fields nil)
    (= const-decl "[T, T -> boolean]" equalities nil)
    (posint_exp application-judgement "posint" exponentiation nil)
    (floor_Sum formula-decl nil IEEE_854_values nil)
    (mod_Sum formula-decl nil IEEE_854_values nil)
    (nzreal_exp application-judgement "nzreal" exponentiation nil)
    (nzreal nonempty-type-eq-decl nil reals nil)
    (posrat_times_posrat_is_posrat application-judgement "posrat"
     rationals nil)
    (int_plus_int_is_int application-judgement "int" integers nil)
    (expt_plus formula-decl nil exponentiation nil)
    (>= const-decl "bool" reals nil)
    (numfield nonempty-type-eq-decl nil number_fields nil)
    (* const-decl "[numfield, numfield -> numfield]" number_fields nil)
    (OR const-decl "[bool, bool -> bool]" booleans nil)
    (/= const-decl "boolean" notequal nil)
    (^ const-decl "real" exponentiation nil)
    (AND const-decl "[bool, bool -> bool]" booleans nil)
    (<= const-decl "bool" reals nil)
    (Exponent type-eq-decl nil IEEE_854_values nil)
    (Exp adt-accessor-decl "[(finite?) -> Exponent]" IEEE_854_values
     nil)
    (nat nonempty-type-eq-decl nil naturalnumbers nil)
    (Sum def-decl "real" sum_hack nil) (< const-decl "bool" reals nil)
    (below type-eq-decl nil naturalnumbers nil)
    (digits type-eq-decl nil IEEE_854_values nil)
    (nonneg_real nonempty-type-eq-decl nil real_types nil)
    (value_digit const-decl "nonneg_real" IEEE_854_values nil)
    (d adt-accessor-decl "[(finite?) -> digits]" IEEE_854_values nil))
   nil))
 (real_to_fp_TCC1 0
  (real_to_fp_TCC1-1 nil 3321205307 ("" (tcc :defs !) nil nil)
   ((/= const-decl "boolean" notequal nil)) nil))
 (real_to_fp_TCC2 0
  (real_to_fp_TCC2-1 nil 3321205307 ("" (tcc :defs !) nil nil)
   ((boolean nonempty-type-decl nil booleans nil)
    (bool nonempty-type-eq-decl nil booleans nil)
    (NOT const-decl "[bool -> bool]" booleans nil)
    (number nonempty-type-decl nil numbers nil)
    (number_field_pred const-decl "[number -> boolean]" number_fields
     nil)
    (number_field nonempty-type-from-decl nil number_fields nil)
    (real_pred const-decl "[number_field -> boolean]" reals nil)
    (real nonempty-type-from-decl nil reals nil)
    (posnat_expt application-judgement "posnat" exponentiation nil)
    (posint_times_posint_is_posint application-judgement "posint"
     integers nil)
    (mult_divides1 application-judgement "(divides(n))" divides nil)
    (mult_divides2 application-judgement "(divides(m))" divides nil)
    (abs const-decl "{n: nonneg_real | n >= m AND n >= -m}" real_defs
         nil)
    (expt def-decl "real" exponentiation nil)
    (^ const-decl "real" exponentiation nil)
    (/= const-decl "boolean" notequal nil)
    (int_plus_int_is_int application-judgement "int" integers nil)
    (minus_int_is_int application-judgement "int" integers nil))
   nil))
 (real_to_fp_TCC3 0
  (real_to_fp_TCC3-1 nil 3321205307 ("" (tcc :defs !) nil nil)
   ((boolean nonempty-type-decl nil booleans nil)
    (bool nonempty-type-eq-decl nil booleans nil)
    (NOT const-decl "[bool -> bool]" booleans nil)
    (number nonempty-type-decl nil numbers nil)
    (number_field_pred const-decl "[number -> boolean]" number_fields
     nil)
    (number_field nonempty-type-from-decl nil number_fields nil)
    (real_pred const-decl "[number_field -> boolean]" reals nil)
    (real nonempty-type-from-decl nil reals nil)
    (real_le_is_total_order name-judgement "(total_order?[real])"
     real_props nil)
    (abs const-decl "{n: nonneg_real | n >= m AND n >= -m}" real_defs
         nil)
    (expt def-decl "real" exponentiation nil)
    (^ const-decl "real" exponentiation nil)
    (minus_int_is_int application-judgement "int" integers nil)
    (int_plus_int_is_int application-judgement "int" integers nil))
   nil))
 (real_to_fp_TCC4 0
  (real_to_fp_TCC4-1 nil 3321205307
   ("" (skosimp*)
    (("" (lemma "expt_pos") (("" (inst?) (("" (assertnil nil)) nil))
      nil))
    nil)
   ((expt_pos formula-decl nil exponentiation nil)
    (int_plus_int_is_int application-judgement "int" integers nil)
    (real_ge_is_total_order name-judgement "(total_order?[real])"
     real_props nil)
    (real_lt_is_strict_total_order name-judgement
     "(strict_total_order?[real])" real_props nil)
    (posrat_exp application-judgement "posrat" exponentiation nil)
    (nnrat_exp application-judgement "nnrat" exponentiation nil)
    (real_gt_is_strict_total_order name-judgement
     "(strict_total_order?[real])" real_props nil)
    (b formal-const-decl "above(1)" real_to_fp nil)
    (above nonempty-type-eq-decl nil integers nil)
    (posreal nonempty-type-eq-decl nil real_types nil)
    (nonneg_real nonempty-type-eq-decl nil real_types nil)
    (>= const-decl "bool" reals nil)
    (E_min formal-const-decl "{i: integer | E_max > i}" real_to_fp nil)
    (E_max formal-const-decl "integer" real_to_fp nil)
    (> const-decl "bool" reals nil)
    (bool nonempty-type-eq-decl nil booleans nil)
    (integer nonempty-type-from-decl nil integers nil)
    (int nonempty-type-eq-decl nil integers nil)
    (integer_pred const-decl "[rational -> boolean]" integers nil)
    (rational nonempty-type-from-decl nil rationals nil)
    (rational_pred const-decl "[real -> boolean]" rationals nil)
    (real nonempty-type-from-decl nil reals nil)
    (real_pred const-decl "[number_field -> boolean]" reals nil)
    (number_field nonempty-type-from-decl nil number_fields nil)
    (number_field_pred const-decl "[number -> boolean]" number_fields
     nil)
    (boolean nonempty-type-decl nil booleans nil)
    (number nonempty-type-decl nil numbers nil))
   nil))
 (real_to_fp_TCC5 0
  (real_to_fp_TCC5-1 nil 3321205307
   ("" (skosimp)
    (("" (case "abs(r!1)>0")
      (("1" (typepred "Exp_of(abs(r!1))")
        (("1" (ground)
          (("1" (case "b^E_min<= abs(r!1)")
            (("1" (lemma "both_sides_expt_gt1_lt")
              (("1" (inst - "b" "E_min" "(1 + Exp_of(abs(r!1)))")
                (("1" (assertnil)))))
             ("2" (assertnil)))
           ("2" (case "abs(r!1))
            (("1" (lemma "both_sides_expt_gt1_lt")
              (("1" (inst - "b" "Exp_of(abs(r!1))" "1+E_max")
                (("1" (assertnil)))))
             ("2" (assertnil)))))
         ("2" (skosimp*) (("2" (assertnil)))
         ("3" (skosimp*) (("3" (assertnil))) ("4" (propax) nil)))
       ("2" (lemma "expt_pos")
        (("2" (inst - "E_min" "b")
          (("1" (assertnil) ("2" (assertnil))))))))
    nil)
   ((abs const-decl "{n: nonneg_real | n >= m AND n >= -m}" real_defs
         nil)
    (- const-decl "[numfield -> numfield]" number_fields nil)
    (numfield nonempty-type-eq-decl nil number_fields nil)
    (AND const-decl "[bool, bool -> bool]" booleans nil)
    (nonneg_real nonempty-type-eq-decl nil real_types nil)
    (>= const-decl "bool" reals nil) (> const-decl "bool" reals nil)
    (bool nonempty-type-eq-decl nil booleans nil)
    (real nonempty-type-from-decl nil reals nil)
    (real_pred const-decl "[number_field -> boolean]" reals nil)
    (number_field nonempty-type-from-decl nil number_fields nil)
    (number_field_pred const-decl "[number -> boolean]" number_fields
     nil)
    (boolean nonempty-type-decl nil booleans nil)
    (number nonempty-type-decl nil numbers nil)
    (real_le_is_total_order name-judgement "(total_order?[real])"
     real_props nil)
    (nnrat_exp application-judgement "nnrat" exponentiation nil)
    (real_lt_is_strict_total_order name-judgement
     "(strict_total_order?[real])" real_props nil)
    (int_plus_int_is_int application-judgement "int" integers nil)
    (real_ge_is_total_order name-judgement "(total_order?[real])"
     real_props nil)
    (posrat_exp application-judgement "posrat" exponentiation nil)
    (both_sides_expt_gt1_lt formula-decl nil exponentiation nil)
    (E_min formal-const-decl "{i: integer | E_max > i}" real_to_fp nil)
    (E_max formal-const-decl "integer" real_to_fp nil)
    (integer nonempty-type-from-decl nil integers nil)
    (real_gt_is_strict_total_order name-judgement
     "(strict_total_order?[real])" real_props nil)
    (NOT const-decl "[bool -> bool]" booleans nil)
    (<= const-decl "bool" reals nil)
    (rational_pred const-decl "[real -> boolean]" rationals nil)
    (rational nonempty-type-from-decl nil rationals nil)
    (integer_pred const-decl "[rational -> boolean]" integers nil)
    (int nonempty-type-eq-decl nil integers nil)
    (OR const-decl "[bool, bool -> bool]" booleans nil)
    (/= const-decl "boolean" notequal nil)
    (^ const-decl "real" exponentiation nil)
    (above nonempty-type-eq-decl nil integers nil)
    (b formal-const-decl "above(1)" real_to_fp nil)
    (posreal nonempty-type-eq-decl nil real_types nil)
    (< const-decl "bool" reals nil)
    (+ const-decl "[numfield, numfield -> numfield]" number_fields nil)
    (p formal-const-decl "above(1)" real_to_fp nil)
    (Exp_of const-decl "{i: int | b ^ i <= x & x < b ^ (i + 1)}"
     fp_round_aux nil)
    (expt_pos formula-decl nil exponentiation nil))
   nil))
 (real_to_fp_zero 0
  (real_to_fp_zero-1 nil 3321205307
   ("" (rewrite "real_to_fp")
    (("" (expand "abs")
      (("" (lemma "expt_pos")
        (("" (inst-cp - "(1+E_max)" "b")
          (("" (assert)
            (("" (hide -2)
              (("" (inst?)
                (("" (assert)
                  (("" (rewrite "truncate_zero")
                    (("" (expand "sign_of")
                      (("" (expand "pos_zero")
                        (("" (propax) nil))))))))))))))))))))))
    nil)
   ((abs const-decl "{n: nonneg_real | n >= m AND n >= -m}" real_defs
         nil)
    (rational_pred const-decl "[real -> boolean]" rationals nil)
    (rational nonempty-type-from-decl nil rationals nil)
    (integer_pred const-decl "[rational -> boolean]" integers nil)
    (int nonempty-type-eq-decl nil integers nil)
    (numfield nonempty-type-eq-decl nil number_fields nil)
    (+ const-decl "[numfield, numfield -> numfield]" number_fields nil)
    (integer nonempty-type-from-decl nil integers nil)
    (E_max formal-const-decl "integer" real_to_fp nil)
    (bool nonempty-type-eq-decl nil booleans nil)
    (>= const-decl "bool" reals nil)
    (nonneg_real nonempty-type-eq-decl nil real_types nil)
    (> const-decl "bool" reals nil)
    (posreal nonempty-type-eq-decl nil real_types nil)
    (above nonempty-type-eq-decl nil integers nil)
    (b formal-const-decl "above(1)" real_to_fp nil)
    (sign_of const-decl "sign_rep" fp_round_aux nil)
    (pos_zero const-decl "{fin | zero?(fin)}" IEEE_854_values nil)
    (truncate_zero formula-decl nil real_to_fp nil)
    (E_min formal-const-decl "{i: integer | E_max > i}" real_to_fp nil)
    (real_gt_is_strict_total_order name-judgement
     "(strict_total_order?[real])" real_props nil)
    (real_lt_is_strict_total_order name-judgement
     "(strict_total_order?[real])" real_props nil)
    (expt_pos formula-decl nil exponentiation nil)
    (real_ge_is_total_order name-judgement "(total_order?[real])"
     real_props nil)
    (int_abs_is_nonneg application-judgement "{j: nonneg_int | j >= i}"
     real_defs nil)
    (nnrat_exp application-judgement "nnrat" exponentiation nil)
    (posrat_exp application-judgement "posrat" exponentiation nil)
    (int_plus_int_is_int application-judgement "int" integers nil)
    (real nonempty-type-from-decl nil reals nil)
    (real_pred const-decl "[number_field -> boolean]" reals nil)
    (number_field nonempty-type-from-decl nil number_fields nil)
    (number_field_pred const-decl "[number -> boolean]" number_fields
     nil)
    (boolean nonempty-type-decl nil booleans nil)
    (number nonempty-type-decl nil numbers nil)
    (real_to_fp const-decl "fp_num" real_to_fp nil))
   nil))
 (sign_of_value 0
  (sign_of_value-1 nil 3321205307
   ("" (skosimp*)
    (("" (expand "sign_of")
      (("" (lift-if)
        (("" (lemma "value_negative")
          (("" (inst?)
            (("" (ground)
              (("" (expand "neg")
                (("" (expand "pos")
                  (("" (assert)
                    (("" (typepred "sign(fin!1)")
                      (("" (assertnil))))))))))))))))))))
    nil)
   ((sign_of const-decl "sign_rep" fp_round_aux nil)
    (E_min formal-const-decl "{i: integer | E_max > i}" real_to_fp nil)
    (E_max formal-const-decl "integer" real_to_fp nil)
    (integer nonempty-type-from-decl nil integers nil)
    (p formal-const-decl "above(1)" real_to_fp nil)
    (b formal-const-decl "above(1)" real_to_fp nil)
    (above nonempty-type-eq-decl nil integers nil)
    (> const-decl "bool" reals nil)
    (bool nonempty-type-eq-decl nil booleans nil)
    (int nonempty-type-eq-decl nil integers nil)
    (integer_pred const-decl "[rational -> boolean]" integers nil)
    (rational nonempty-type-from-decl nil rationals nil)
    (rational_pred const-decl "[real -> boolean]" rationals nil)
    (real nonempty-type-from-decl nil reals nil)
    (real_pred const-decl "[number_field -> boolean]" reals nil)
    (number_field nonempty-type-from-decl nil number_fields nil)
    (number_field_pred const-decl "[number -> boolean]" number_fields
     nil)
    (boolean nonempty-type-decl nil booleans nil)
    (number nonempty-type-decl nil numbers nil)
    (value_negative formula-decl nil IEEE_854_values nil)
    (real_lt_is_strict_total_order name-judgement
     "(strict_total_order?[real])" real_props nil)
    (pos const-decl "sign_rep" enumerated_type_defs nil)
    (sign adt-accessor-decl "[(finite?) -> sign_rep]" IEEE_854_values
          nil)
    (sign_rep type-eq-decl nil enumerated_type_defs nil)
    (nat nonempty-type-eq-decl nil naturalnumbers nil)
    (>= const-decl "bool" reals nil)
    (= const-decl "[T, T -> boolean]" equalities nil)
    (OR const-decl "[bool, bool -> bool]" booleans nil)
    (NOT const-decl "[bool -> bool]" booleans nil)
    (neg const-decl "sign_rep" enumerated_type_defs nil)
    (finite? adt-recognizer-decl "[fp_num -> boolean]" IEEE_854_values
     nil)
    (fp_num type-decl nil IEEE_854_values nil))
   nil))
 (Exp_of_value_normal_TCC1 0
  (Exp_of_value_normal_TCC1-1 nil 3321205307
   ("" (skosimp*)
    (("" (expand "abs")
      (("" (lift-if)
        (("" (ground)
          (("" (lemma "finite_disjoint1")
            (("" (inst?)
              (("" (expand "zero?") (("" (propax) nil))))))))))))))
    nil)
   ((abs const-decl "{n: nonneg_real | n >= m AND n >= -m}" real_defs
         nil)
    (minus_real_is_real application-judgement "real" reals nil)
    (real_gt_is_strict_total_order name-judgement
     "(strict_total_order?[real])" real_props nil)
    (real_lt_is_strict_total_order name-judgement
     "(strict_total_order?[real])" real_props nil)
    (finite? adt-recognizer-decl "[fp_num -> boolean]" IEEE_854_values
     nil)
    (fp_num type-decl nil IEEE_854_values nil)
    (zero? const-decl "bool" IEEE_854_values nil)
    (finite_disjoint1 formula-decl nil IEEE_854_values nil)
    (number nonempty-type-decl nil numbers nil)
    (boolean nonempty-type-decl nil booleans nil)
    (number_field_pred const-decl "[number -> boolean]" number_fields
     nil)
    (number_field nonempty-type-from-decl nil number_fields nil)
    (real_pred const-decl "[number_field -> boolean]" reals nil)
    (real nonempty-type-from-decl nil reals nil)
    (rational_pred const-decl "[real -> boolean]" rationals nil)
    (rational nonempty-type-from-decl nil rationals nil)
    (integer_pred const-decl "[rational -> boolean]" integers nil)
    (int nonempty-type-eq-decl nil integers nil)
    (bool nonempty-type-eq-decl nil booleans nil)
    (> const-decl "bool" reals nil)
    (above nonempty-type-eq-decl nil integers nil)
    (b formal-const-decl "above(1)" real_to_fp nil)
    (p formal-const-decl "above(1)" real_to_fp nil)
    (integer nonempty-type-from-decl nil integers nil)
    (E_max formal-const-decl "integer" real_to_fp nil)
    (E_min formal-const-decl "{i: integer | E_max > i}" real_to_fp
     nil))
   nil))
 (Exp_of_value_normal 0
  (Exp_of_value_normal-1 nil 3321205307
   ("" (skosimp*)
    (("" (rewrite "normal_value")
      (("" (rewrite "abs_value_fin")
        (("" (lemma "value_sig_lt_b")
          (("" (lemma "value_sig_ge1")
            (("" (expand "normal?")
              (("" (assert)
                (("" (inst?)
                  (("" (assert)
                    (("" (inst?)
                      (("" (lemma "expt_pos")
                        (("" (inst?)
                          ((""
                            (case "(b ^ (Exp(normalize(fin!1)))
               * Sum(p, value_digit(d(normalize(fin!1)))))>0")
                            (("1" (assert)
                              (("1"
                                (typepred
                                 "Exp_of(b ^ (Exp(normalize(fin!1)))
               * Sum(p, value_digit(d(normalize(fin!1)))))")
                                (("1"
                                  (lemma "div_mult_pos_lt2")
                                  (("1"
                                    (inst
                                     -
                                     "b ^ (Exp(normalize(fin!1)))"
                                     "Sum(p, value_digit(d(normalize(fin!1))))"
                                     "b
            ^
            (1
               +
               Exp_of(b ^ (Exp(normalize(fin!1)))
                        * Sum(p, value_digit(d(normalize(fin!1))))))")
                                    (("1"
                                      (replace -1 :dir rl)
                                      (("1"
                                        (hide -1)
                                        (("1"
                                          (lemma "div_mult_pos_le1")
                                          (("1"
                                            (inst
                                             -
                                             "b ^ (Exp(normalize(fin!1)))"
                                             "Sum(p, value_digit(d(normalize(fin!1))))"
                                             "b
            ^
            ( Exp_of(b ^ (Exp(normalize(fin!1)))
                        * Sum(p, value_digit(d(normalize(fin!1))))))")
                                            (("1"
                                              (replace -1 :dir rl)
                                              (("1"
                                                (hide -1)
                                                (("1"
                                                  (rewrite "expt_div")
                                                  (("1"
                                                    (rewrite
                                                     "expt_div")
                                                    (("1"
                                                      (case
                                                       "(Exp_of(b ^ (Exp(normalize(fin!1)))
                   * Sum(p, value_digit(d(normalize(fin!1))))))
           > (Exp(normalize(fin!1)))")
                                                      (("1"
                                                        (lemma
                                                         "expt_gt1_pos")
                                                        (("1"
                                                          (inst
                                                           -
                                                           "b"
                                                           "(Exp_of(b ^ (Exp(normalize(fin!1)))
                   * Sum(p, value_digit(d(normalize(fin!1))))))
           - (Exp(normalize(fin!1)))")
                                                          (("1"
                                                            (assert)
                                                            nil)
                                                           ("2"
                                                            (assert)
                                                            nil)))))
                                                       ("2"
                                                        (lemma
                                                         "expt_gt1_nonpos")
                                                        (("2"
                                                          (inst
                                                           -
                                                           "b"
                                                           "-((1
                +
                Exp_of(b ^ (Exp(normalize(fin!1)))
                         * Sum(p, value_digit(d(normalize(fin!1))))))
               - (Exp(normalize(fin!1))))")
                                                          (("1"
                                                            (assert)
                                                            nil)
                                                           ("2"
                                                            (assert)
                                                            nil)))))))))))))))))))))))))))))))
                             ("2" (rewrite "pos_times_gt")
                              (("2"
                                (assert)
                                nil))))))))))))))))))))))))))))
    nil)
   ((normal_value formula-decl nil IEEE_854_values nil)
    (fp_num type-decl nil IEEE_854_values nil)
    (finite? adt-recognizer-decl "[fp_num -> boolean]" IEEE_854_values
     nil)
    (number nonempty-type-decl nil numbers nil)
    (boolean nonempty-type-decl nil booleans nil)
    (number_field_pred const-decl "[number -> boolean]" number_fields
     nil)
    (number_field nonempty-type-from-decl nil number_fields nil)
    (real_pred const-decl "[number_field -> boolean]" reals nil)
    (real nonempty-type-from-decl nil reals nil)
    (rational_pred const-decl "[real -> boolean]" rationals nil)
    (rational nonempty-type-from-decl nil rationals nil)
    (integer_pred const-decl "[rational -> boolean]" integers nil)
    (int nonempty-type-eq-decl nil integers nil)
    (bool nonempty-type-eq-decl nil booleans nil)
    (> const-decl "bool" reals nil)
    (above nonempty-type-eq-decl nil integers nil)
    (b formal-const-decl "above(1)" real_to_fp nil)
    (p formal-const-decl "above(1)" real_to_fp nil)
    (integer nonempty-type-from-decl nil integers nil)
    (E_max formal-const-decl "integer" real_to_fp nil)
    (E_min formal-const-decl "{i: integer | E_max > i}" real_to_fp nil)
    (value_sig_lt_b formula-decl nil IEEE_854_values nil)
    (normal? const-decl "bool" IEEE_854_values nil)
    (d adt-accessor-decl "[(finite?) -> digits]" IEEE_854_values nil)
    (digits type-eq-decl nil IEEE_854_values nil)
    (below type-eq-decl nil naturalnumbers nil)
    (< const-decl "bool" reals nil)
    (nat nonempty-type-eq-decl nil naturalnumbers nil)
    (>= const-decl "bool" reals nil)
    (posreal nonempty-type-eq-decl nil real_types nil)
    (nonneg_real nonempty-type-eq-decl nil real_types nil)
    (Exp adt-accessor-decl "[(finite?) -> Exponent]" IEEE_854_values
     nil)
    (Exponent type-eq-decl nil IEEE_854_values nil)
    (<= const-decl "bool" reals nil)
    (AND const-decl "[bool, bool -> bool]" booleans nil)
    (pos_times_gt formula-decl nil real_props nil)
    (real_lt_is_strict_total_order name-judgement
     "(strict_total_order?[real])" real_props nil)
    (real_ge_is_total_order name-judgement "(total_order?[real])"
     real_props nil)
    (div_mult_pos_lt2 formula-decl nil real_props nil)
    (div_mult_pos_le1 formula-decl nil real_props nil)
    (nzreal nonempty-type-eq-decl nil reals nil)
    (expt_div formula-decl nil exponentiation nil)
    (int_minus_int_is_int application-judgement "int" integers nil)
    (posrat_exp application-judgement "posrat" exponentiation nil)
    (- const-decl "[numfield, numfield -> numfield]" number_fields nil)
    (fin!1 skolem-const-decl "(finite?)" real_to_fp nil)
    (posnat nonempty-type-eq-decl nil integers nil)
    (nonneg_int nonempty-type-eq-decl nil integers nil)
    (real_le_is_total_order name-judgement "(total_order?[real])"
     real_props nil)
    (expt_gt1_pos formula-decl nil exponentiation nil)
    (minus_int_is_int application-judgement "int" integers nil)
    (- const-decl "[numfield -> numfield]" number_fields nil)
    (expt_gt1_nonpos formula-decl nil exponentiation nil)
    (int_plus_int_is_int application-judgement "int" integers nil)
    (Exp_of const-decl "{i: int | b ^ i <= x & x < b ^ (i + 1)}"
     fp_round_aux nil)
    (+ const-decl "[numfield, numfield -> numfield]" number_fields nil)
    (NOT const-decl "[bool -> bool]" booleans nil)
    (value_digit const-decl "nonneg_real" IEEE_854_values nil)
    (Sum def-decl "real" sum_hack nil)
    (^ const-decl "real" exponentiation nil)
    (/= const-decl "boolean" notequal nil)
    (OR const-decl "[bool, bool -> bool]" booleans nil)
    (* const-decl "[numfield, numfield -> numfield]" number_fields nil)
    (numfield nonempty-type-eq-decl nil number_fields nil)
    (expt_pos formula-decl nil exponentiation nil)
    (real_gt_is_strict_total_order name-judgement
     "(strict_total_order?[real])" real_props nil)
    (value_sig_ge1 formula-decl nil IEEE_854_values nil)
    (real_times_real_is_real application-judgement "real" reals nil)
    (nnrat_exp application-judgement "nnrat" exponentiation nil)
    (normalize def-decl "(finite?)" IEEE_854_values nil)
    (abs_value_fin formula-decl nil IEEE_854_values nil))
   nil))
 (real_to_fp_normal 0
  (real_to_fp_normal-1 nil 3321205307
   ("" (skosimp*)
    (("" (rewrite "real_to_fp")
      (("" (lift-if)
        (("" (lemma "value_normal")
          (("" (inst?)
            (("" (assert)
              (("" (flatten)
                (("" (assert)
                  (("" (case "max_pos < b^(1+E_max)")
                    (("1" (assert)
                      (("1" (hide -1 -2 -3)
                        (("1" (rewrite "Exp_of_value_normal")
                          (("1" (lemma "finite_disjoint1")
                            (("1" (inst?)
                              (("1"
                                (assert)
                                (("1"
                                  (rewrite "normal_value")
                                  (("1"
                                    (rewrite "sign_of_value")
                                    (("1"
                                      (assert)
                                      (("1"
                                        (rewrite "digits_of_finite")
                                        (("1"
                                          (rewrite "fp_num_finite_eta")
                                          nil)))))
                                     ("2"
                                      (expand "zero?")
                                      (("2"
                                        (rewrite "normal_value" +)
                                        nil)))))))))))))))))))
                     ("2" (hide 2)
                      (("2" (hide -1 -2 -3)
                        (("2" (lemma "max_fp_correct")
                          (("2" (lemma "expt_pos")
                            (("2" (inst - "(E_max-(p-1))" "b")
                              (("2"
                                (assert)
                                nil))))))))))))))))))))))))))))
    nil)
   ((real_to_fp const-decl "fp_num" real_to_fp nil)
    (number nonempty-type-decl nil numbers nil)
    (boolean nonempty-type-decl nil booleans nil)
    (number_field_pred const-decl "[number -> boolean]" number_fields
     nil)
    (number_field nonempty-type-from-decl nil number_fields nil)
    (real_pred const-decl "[number_field -> boolean]" reals nil)
    (real nonempty-type-from-decl nil reals nil)
    (rational_pred const-decl "[real -> boolean]" rationals nil)
    (rational nonempty-type-from-decl nil rationals nil)
    (integer_pred const-decl "[rational -> boolean]" integers nil)
    (int nonempty-type-eq-decl nil integers nil)
    (bool nonempty-type-eq-decl nil booleans nil)
    (> const-decl "bool" reals nil)
    (above nonempty-type-eq-decl nil integers nil)
    (b formal-const-decl "above(1)" real_to_fp nil)
    (p formal-const-decl "above(1)" real_to_fp nil)
    (integer nonempty-type-from-decl nil integers nil)
    (E_max formal-const-decl "integer" real_to_fp nil)
    (E_min formal-const-decl "{i: integer | E_max > i}" real_to_fp nil)
    (fp_num type-decl nil IEEE_854_values nil)
    (finite? adt-recognizer-decl "[fp_num -> boolean]" IEEE_854_values
     nil)
    (value const-decl "real" IEEE_854_values nil)
    (int_plus_int_is_int application-judgement "int" integers nil)
    (posrat_exp application-judgement "posrat" exponentiation nil)
    (nnrat_exp application-judgement "nnrat" exponentiation nil)
    (real_ge_is_total_order name-judgement "(total_order?[real])"
     real_props nil)
    (value_normal formula-decl nil IEEE_854_values nil)
    (real_le_is_total_order name-judgement "(total_order?[real])"
     real_props nil)
    (max_fp_correct formula-decl nil IEEE_854_values nil)
    (int_minus_int_is_int application-judgement "int" integers nil)
    (- const-decl "[numfield, numfield -> numfield]" number_fields nil)
    (real_gt_is_strict_total_order name-judgement
     "(strict_total_order?[real])" real_props nil)
    (rat_minus_rat_is_rat application-judgement "rat" rationals nil)
    (expt_pos formula-decl nil exponentiation nil)
    (real_lt_is_strict_total_order name-judgement
     "(strict_total_order?[real])" real_props nil)
    (Exp_of_value_normal formula-decl nil real_to_fp nil)
    (normal_value formula-decl nil IEEE_854_values nil)
    (zero? const-decl "bool" IEEE_854_values nil)
    (fp_num_finite_eta formula-decl nil IEEE_854_values nil)
    (digits_of_finite formula-decl nil real_to_fp nil)
    (sign_of_value formula-decl nil real_to_fp nil)
    (normalize def-decl "(finite?)" IEEE_854_values nil)
    (finite_disjoint1 formula-decl nil IEEE_854_values nil)
    (< const-decl "bool" reals nil) (>= const-decl "bool" reals nil)
    (nonneg_real nonempty-type-eq-decl nil real_types nil)
    (posreal nonempty-type-eq-decl nil real_types nil)
    (max_pos const-decl "posreal" IEEE_854_values nil)
    (OR const-decl "[bool, bool -> bool]" booleans nil)
    (/= const-decl "boolean" notequal nil)
    (^ const-decl "real" exponentiation nil)
    (numfield nonempty-type-eq-decl nil number_fields nil)
    (+ const-decl "[numfield, numfield -> numfield]" number_fields
       nil))
   nil))
 (real_to_fp_subnormal 0
  (real_to_fp_subnormal-1 nil 3321205307
   ("" (skosimp*)
    (("" (rewrite "real_to_fp")
      (("" (lemma "value_subnormal")
        (("" (inst?)
          (("" (assert)
            (("" (flatten)
              (("" (assert)
                (("" (case "b^E_min < b^(1+E_max)")
                  (("1" (assert)
                    (("1" (rewrite "normal_value")
                      (("1" (rewrite "sign_of_value")
                        (("1" (hide -1)
                          (("1" (expand "subnormal?")
                            (("1" (assert)
                              (("1"
                                (ground)
                                (("1"
                                  (lemma "digits_of_finite")
                                  (("1"
                                    (inst?)
                                    (("1"
                                      (lemma "fp_num_finite_eta")
                                      (("1"
                                        (inst?)
                                        (("1"
                                          (replace -5)
                                          (("1"
                                            (replace -2)
                                            (("1"
                                              (propax)
                                              nil)))))))))))))))))))))
                         ("2" (expand "subnormal?")
                          (("2" (ground)
                            (("2" (expand "zero?")
                              (("2"
                                (assert)
                                (("2"
                                  (rewrite "normal_value" +)
                                  nil)))))))))))))))
                   ("2" (hide -1 -2 -3 2)
                    (("2" (rewrite "both_sides_expt_gt1_lt")
                      nil))))))))))))))))))
    nil)
   ((real_to_fp const-decl "fp_num" real_to_fp nil)
    (number nonempty-type-decl nil numbers nil)
    (boolean nonempty-type-decl nil booleans nil)
    (number_field_pred const-decl "[number -> boolean]" number_fields
     nil)
    (number_field nonempty-type-from-decl nil number_fields nil)
    (real_pred const-decl "[number_field -> boolean]" reals nil)
    (real nonempty-type-from-decl nil reals nil)
    (rational_pred const-decl "[real -> boolean]" rationals nil)
    (rational nonempty-type-from-decl nil rationals nil)
    (integer_pred const-decl "[rational -> boolean]" integers nil)
    (int nonempty-type-eq-decl nil integers nil)
    (bool nonempty-type-eq-decl nil booleans nil)
    (> const-decl "bool" reals nil)
    (above nonempty-type-eq-decl nil integers nil)
    (b formal-const-decl "above(1)" real_to_fp nil)
    (p formal-const-decl "above(1)" real_to_fp nil)
    (integer nonempty-type-from-decl nil integers nil)
    (E_max formal-const-decl "integer" real_to_fp nil)
    (E_min formal-const-decl "{i: integer | E_max > i}" real_to_fp nil)
    (fp_num type-decl nil IEEE_854_values nil)
    (finite? adt-recognizer-decl "[fp_num -> boolean]" IEEE_854_values
     nil)
    (value const-decl "real" IEEE_854_values nil)
    (int_plus_int_is_int application-judgement "int" integers nil)
    (posrat_exp application-judgement "posrat" exponentiation nil)
    (nnrat_exp application-judgement "nnrat" exponentiation nil)
    (real_ge_is_total_order name-judgement "(total_order?[real])"
     real_props nil)
    (< const-decl "bool" reals nil)
    (OR const-decl "[bool, bool -> bool]" booleans nil)
    (/= const-decl "boolean" notequal nil)
    (>= const-decl "bool" reals nil)
    (^ const-decl "real" exponentiation nil)
    (numfield nonempty-type-eq-decl nil number_fields nil)
    (+ const-decl "[numfield, numfield -> numfield]" number_fields nil)
    (normal_value formula-decl nil IEEE_854_values nil)
    (zero? const-decl "bool" IEEE_854_values nil)
    (digits_of_finite formula-decl nil real_to_fp nil)
    (fp_num_finite_eta formula-decl nil IEEE_854_values nil)
    (subnormal? const-decl "bool" IEEE_854_values nil)
    (sign_of_value formula-decl nil real_to_fp nil)
    (normalize def-decl "(finite?)" IEEE_854_values nil)
    (real_gt_is_strict_total_order name-judgement
     "(strict_total_order?[real])" real_props nil)
    (posreal nonempty-type-eq-decl nil real_types nil)
    (nonneg_real nonempty-type-eq-decl nil real_types nil)
    (both_sides_expt_gt1_lt formula-decl nil exponentiation nil)
    (real_le_is_total_order name-judgement "(total_order?[real])"
     real_props nil)
    (real_lt_is_strict_total_order name-judgement
     "(strict_total_order?[real])" real_props nil)
    (value_subnormal formula-decl nil IEEE_854_values nil))
   nil))
 (real_to_fp_inverts_value 0
  (real_to_fp_inverts_value-1 nil 3321205307
   ("" (skosimp*)
    (("" (lemma "finite_cover")
      (("" (inst?)
        (("" (ground)
          (("1" (rewrite "real_to_fp_normal"nil)
           ("2" (rewrite "real_to_fp_subnormal"nil))))))))
    nil)
   ((E_min formal-const-decl "{i: integer | E_max > i}" real_to_fp nil)
    (E_max formal-const-decl "integer" real_to_fp nil)
    (integer nonempty-type-from-decl nil integers nil)
    (p formal-const-decl "above(1)" real_to_fp nil)
    (b formal-const-decl "above(1)" real_to_fp nil)
    (above nonempty-type-eq-decl nil integers nil)
    (> const-decl "bool" reals nil)
    (bool nonempty-type-eq-decl nil booleans nil)
    (int nonempty-type-eq-decl nil integers nil)
    (integer_pred const-decl "[rational -> boolean]" integers nil)
    (rational nonempty-type-from-decl nil rationals nil)
    (rational_pred const-decl "[real -> boolean]" rationals nil)
    (real nonempty-type-from-decl nil reals nil)
    (real_pred const-decl "[number_field -> boolean]" reals nil)
    (number_field nonempty-type-from-decl nil number_fields nil)
    (number_field_pred const-decl "[number -> boolean]" number_fields
     nil)
    (boolean nonempty-type-decl nil booleans nil)
    (number nonempty-type-decl nil numbers nil)
    (finite_cover formula-decl nil IEEE_854_values nil)
    (real_to_fp_normal formula-decl nil real_to_fp nil)
    (real_to_fp_subnormal formula-decl nil real_to_fp nil)
    (finite? adt-recognizer-decl "[fp_num -> boolean]" IEEE_854_values
     nil)
    (fp_num type-decl nil IEEE_854_values nil))
   nil))
 (round_exceptions_x_TCC1 0
  (round_exceptions_x_TCC1-1 nil 3321205307
   ("" (skolem-typepred)
    (("" (expand "over_under?") (("" (ground) nil)))) nil)
   ((over_under? const-decl "bool" over_under nil)
    (E_min formal-const-decl "{i: integer | E_max > i}" real_to_fp nil)
    (E_max formal-const-decl "integer" real_to_fp nil)
    (alpha formal-const-decl "integer" real_to_fp nil)
    (integer nonempty-type-from-decl nil integers nil)
    (p formal-const-decl "above(1)" real_to_fp nil)
    (b formal-const-decl "above(1)" real_to_fp nil)
    (above nonempty-type-eq-decl nil integers nil)
    (> const-decl "bool" reals nil)
    (int nonempty-type-eq-decl nil integers nil)
    (integer_pred const-decl "[rational -> boolean]" integers nil)
    (rational nonempty-type-from-decl nil rationals nil)
    (rational_pred const-decl "[real -> boolean]" rationals nil)
    (real nonempty-type-from-decl nil reals nil)
    (real_pred const-decl "[number_field -> boolean]" reals nil)
    (number_field nonempty-type-from-decl nil number_fields nil)
    (number_field_pred const-decl "[number -> boolean]" number_fields
     nil)
    (number nonempty-type-decl nil numbers nil)
    (NOT const-decl "[bool -> bool]" booleans nil)
    (bool nonempty-type-eq-decl nil booleans nil)
    (boolean nonempty-type-decl nil booleans nil))
   nil))
 (round_exceptions_x_TCC2 0
  (round_exceptions_x_TCC2-1 nil 3321205307
   ("" (skolem-typepred)
    (("" (expand "over_under?") (("" (ground) nil)))) nil)
   ((over_under? const-decl "bool" over_under nil)
    (E_min formal-const-decl "{i: integer | E_max > i}" real_to_fp nil)
    (E_max formal-const-decl "integer" real_to_fp nil)
    (alpha formal-const-decl "integer" real_to_fp nil)
    (integer nonempty-type-from-decl nil integers nil)
    (p formal-const-decl "above(1)" real_to_fp nil)
    (b formal-const-decl "above(1)" real_to_fp nil)
    (above nonempty-type-eq-decl nil integers nil)
    (> const-decl "bool" reals nil)
    (int nonempty-type-eq-decl nil integers nil)
    (integer_pred const-decl "[rational -> boolean]" integers nil)
    (rational nonempty-type-from-decl nil rationals nil)
    (rational_pred const-decl "[real -> boolean]" rationals nil)
    (real nonempty-type-from-decl nil reals nil)
    (real_pred const-decl "[number_field -> boolean]" reals nil)
    (number_field nonempty-type-from-decl nil number_fields nil)
    (number_field_pred const-decl "[number -> boolean]" number_fields
     nil)
    (number nonempty-type-decl nil numbers nil)
    (NOT const-decl "[bool -> bool]" booleans nil)
    (bool nonempty-type-eq-decl nil booleans nil)
    (boolean nonempty-type-decl nil booleans nil))
   nil))
 (fp_round_TCC1 0
  (fp_round_TCC1-1 nil 3321205307 ("" (tcc :defs !) nil nil)
   ((NOT const-decl "[bool -> bool]" booleans nil)
    (/= const-decl "boolean" notequal nil)
    (abs const-decl "{n: nonneg_real | n >= m AND n >= -m}" real_defs
         nil)
    (pos const-decl "sign_rep" enumerated_type_defs nil)
    (E_min formal-const-decl "{i: integer | E_max > i}" real_to_fp nil)
    (E_max formal-const-decl "integer" real_to_fp nil)
    (integer nonempty-type-from-decl nil integers nil)
    (p formal-const-decl "above(1)" real_to_fp nil)
    (b formal-const-decl "above(1)" real_to_fp nil)
    (above nonempty-type-eq-decl nil integers nil)
    (> const-decl "bool" reals nil)
    (bool nonempty-type-eq-decl nil booleans nil)
    (int nonempty-type-eq-decl nil integers nil)
    (integer_pred const-decl "[rational -> boolean]" integers nil)
    (rational nonempty-type-from-decl nil rationals nil)
    (rational_pred const-decl "[real -> boolean]" rationals nil)
    (real nonempty-type-from-decl nil reals nil)
    (real_pred const-decl "[number_field -> boolean]" reals nil)
    (number_field nonempty-type-from-decl nil number_fields nil)
    (number_field_pred const-decl "[number -> boolean]" number_fields
     nil)
    (boolean nonempty-type-decl nil booleans nil)
    (number nonempty-type-decl nil numbers nil)
    (max_fp_pos const-decl "fp_num" IEEE_854_values nil)
    (expt def-decl "real" exponentiation nil)
    (^ const-decl "real" exponentiation nil)
    (value const-decl "real" IEEE_854_values nil)
    (max_pos const-decl "posreal" IEEE_854_values nil)
    (alpha formal-const-decl "integer" real_to_fp nil)
    (over_under? const-decl "bool" over_under nil)
    (minus_int_is_int application-judgement "int" integers nil)
    (posnat_expt application-judgement "posnat" exponentiation nil)
    (posint_times_posint_is_posint application-judgement "posint"
     integers nil)
    (mult_divides1 application-judgement "(divides(n))" divides nil)
    (mult_divides2 application-judgement "(divides(m))" divides nil))
   nil))
 (round_value 0
  (round_value-1 nil 3321205307
   ("" (skosimp*)
    (("" (expand "fp_round")
      (("" (expand "round_scaled")
        (("" (assert)
          (("" (lift-if)
            (("" (assert)
              (("" (ground)
                (("" (expand "scale")
                  (("" (rewrite "Exp_of_value_normal")
                    (("1" (rewrite "round_int")
                      (("1" (rewrite "expt_inverse")
                        (("1" (assertnil)))
                       ("2" (hide 2 3 4)
                        (("2"
                          (case "integer?(value(fin!1)*b^(-(1 + Exp(normalize(fin!1)) - p)))")
                          (("1" (expand "integer?")
                            (("1" (assert) (("1" (ground) nil)))))
                           ("2" (hide 2)
                            (("2" (rewrite "normal_value")
                              (("2"
                                (expand "value")
                                (("2"
                                  (case-replace
                                   "(Sum(p, value_digit(d(normalize(fin!1))))
                     * (-1) ^ sign(normalize(fin!1))
                     * b ^ Exp(normalize(fin!1))
                     * b ^ (-(1 + Exp(normalize(fin!1)) - p))) =
(-1) ^ sign(normalize(fin!1))
                     * Sum(p, value_digit(d(normalize(fin!1))))
                     * b ^ (p-1)")
                                  (("1"
                                    (hide -1)
                                    (("1"
                                      (case-replace
                                       "((-1) ^ sign(normalize(fin!1))
                     * Sum(p, value_digit(d(normalize(fin!1))))
                     * b ^ (p - 1)) = ((-1) ^ sign(normalize(fin!1))
                     * Sum(p, scale_value_p(d(normalize(fin!1)))))")
                                      (("1"
                                        (hide -1)
                                        (("1"
                                          (case
                                           "FORALL (i,j:int): integer?(i*j)")
                                          (("1"
                                            (inst?)
                                            (("1"
                                              (hide 2)
                                              (("1"
                                                (case
                                                 "forall (n:nat),(d:digits): integer?(Sum(n,scale_value_p(d)))")
                                                (("1"
                                                  (expand "integer?")
                                                  (("1" (inst?) nil)))
                                                 ("2"
                                                  (hide 2)
                                                  (("2"
                                                    (induct "n")
                                                    (("1"
                                                      (expand "Sum")
                                                      (("1"
                                                        (expand
                                                         "integer?")
                                                        (("1"
                                                          (propax)
                                                          nil)))))
                                                     ("2"
                                                      (skosimp*)
                                                      (("2"
                                                        (rewrite "Sum")
                                                        (("2"
                                                          (inst?)
                                                          (("2"
                                                            (case
                                                             "FORALL (i,j:int): integer?(i+j)")
                                                            (("1"
                                                              (inst?)
                                                              (("1"
                                                                (expand
                                                                 "integer?")
                                                                (("1"
                                                                  (propax)
                                                                  nil)))))
                                                             ("2"
                                                              (hide
                                                               -1
                                                               2)
                                                              (("2"
                                                                (skosimp*)
                                                                (("2"
                                                                  (expand
                                                                   "integer?")
                                                                  (("2"
                                                                    (propax)
                                                                    nil)))))))))))))))))))))))))
                                           ("2"
                                            (hide 2)
                                            (("2"
                                              (skosimp*)
                                              (("2"
                                                (expand "integer?")
                                                (("2"
                                                  (propax)
                                                  nil)))))))))))
                                       ("2"
                                        (hide 2)
                                        (("2"
                                          (assert)
                                          (("2"
                                            (lemma "scaled_Sum")
                                            (("2"
                                              (inst?)
                                              (("2"
                                                (assert)
                                                nil)))))))))))))
                                   ("2"
                                    (hide 2)
                                    (("2"
                                      (assert)
                                      (("2"
                                        (lemma "expt_plus")
                                        (("2"
                                          (inst
                                           -
                                           "Exp(normalize(fin!1))"
                                           "(-(1+Exp(normalize(fin!1)) - p))"
                                           "b")
                                          (("2"
                                            (assert)
                                            nil)))))))))))))))))))))))
                     ("2" (hide 3)
                      (("2" (expand "over_under?")
                        (("2" (lemma "value_subnormal")
                          (("2" (inst?)
                            (("2" (ground)
                              (("2"
                                (lemma "finite_cover")
                                (("2"
                                  (inst?)
                                  (("2"
                                    (expand "zero?")
                                    (("2"
                                      (propax)
                                      nil))))))))))))))))))))))))))))))))))
    nil)
   ((fp_round const-decl "real" real_to_fp nil)
    (posrat_exp application-judgement "posrat" exponentiation nil)
    (nnrat_exp application-judgement "nnrat" exponentiation nil)
    (scale const-decl
           "{i: int | b ^ (i + p - 1) <= x & x < b ^ (i + p)}"
           fp_round_aux nil)
    (value_subnormal formula-decl nil IEEE_854_values nil)
    (real_gt_is_strict_total_order name-judgement
     "(strict_total_order?[real])" real_props nil)
    (real_lt_is_strict_total_order name-judgement
     "(strict_total_order?[real])" real_props nil)
    (zero? const-decl "bool" IEEE_854_values nil)
    (finite_cover formula-decl nil IEEE_854_values nil)
    (over_under? const-decl "bool" over_under nil)
    (round_int formula-decl nil round nil)
    (numfield nonempty-type-eq-decl nil number_fields nil)
    (* const-decl "[numfield, numfield -> numfield]" number_fields nil)
    (OR const-decl "[bool, bool -> bool]" booleans nil)
    (/= const-decl "boolean" notequal nil)
    (>= const-decl "bool" reals nil)
    (^ const-decl "real" exponentiation nil)
    (- const-decl "[numfield -> numfield]" number_fields nil)
    (- const-decl "[numfield, numfield -> numfield]" number_fields nil)
    (+ const-decl "[numfield, numfield -> numfield]" number_fields nil)
    (AND const-decl "[bool, bool -> bool]" booleans nil)
    (<= const-decl "bool" reals nil)
    (Exponent type-eq-decl nil IEEE_854_values nil)
    (Exp adt-accessor-decl "[(finite?) -> Exponent]" IEEE_854_values
     nil)
    (normalize def-decl "(finite?)" IEEE_854_values nil)
    (value const-decl "real" IEEE_854_values nil)
    (rounding_mode type-decl nil enumerated_type_defs nil)
    (posrat_div_posrat_is_posrat application-judgement "posrat"
     rationals nil)
    (expt_inverse formula-decl nil exponentiation nil)
    (nzreal nonempty-type-eq-decl nil reals nil)
    (integer? const-decl "bool" integers nil)
    (real_ge_is_total_order name-judgement "(total_order?[real])"
     real_props nil)
    (normal_value formula-decl nil IEEE_854_values nil)
    (sign adt-accessor-decl "[(finite?) -> sign_rep]" IEEE_854_values
          nil)
    (sign_rep type-eq-decl nil enumerated_type_defs nil)
    (d adt-accessor-decl "[(finite?) -> digits]" IEEE_854_values nil)
    (value_digit const-decl "nonneg_real" IEEE_854_values nil)
    (nonneg_real nonempty-type-eq-decl nil real_types nil)
    (digits type-eq-decl nil IEEE_854_values nil)
    (below type-eq-decl nil naturalnumbers nil)
    (< const-decl "bool" reals nil) (Sum def-decl "real" sum_hack nil)
    (nat nonempty-type-eq-decl nil naturalnumbers nil)
    (= const-decl "[T, T -> boolean]" equalities nil)
    (scale_value_p const-decl "nat" IEEE_854_values nil)
    (j!1 skolem-const-decl "nat" real_to_fp nil)
    (d!1 skolem-const-decl "digits[b, p, E_max, E_min]" real_to_fp nil)
    (real_plus_real_is_real application-judgement "real" reals nil)
    (nnint_plus_posint_is_posint application-judgement "posint"
     integers nil)
    (nat_induction formula-decl nil naturalnumbers nil)
    (pred type-eq-decl nil defined_types nil)
    (fin!1 skolem-const-decl "(finite?)" real_to_fp nil)
    (int_exp application-judgement "int" exponentiation nil)
    (nzreal_exp application-judgement "nzreal" exponentiation nil)
    (mult_divides2 application-judgement "(divides(m))" divides nil)
    (mult_divides1 application-judgement "(divides(n))" divides nil)
    (scaled_Sum formula-decl nil IEEE_854_values nil)
    (posrat_times_posrat_is_posrat application-judgement "posrat"
     rationals nil)
    (expt_plus formula-decl nil exponentiation nil)
    (int_plus_int_is_int application-judgement "int" integers nil)
    (minus_odd_is_odd application-judgement "odd_int" integers nil)
    (finite? adt-recognizer-decl "[fp_num -> boolean]" IEEE_854_values
     nil)
    (fp_num type-decl nil IEEE_854_values nil)
    (E_min formal-const-decl "{i: integer | E_max > i}" real_to_fp nil)
    (E_max formal-const-decl "integer" real_to_fp nil)
    (integer nonempty-type-from-decl nil integers nil)
    (p formal-const-decl "above(1)" real_to_fp nil)
    (b formal-const-decl "above(1)" real_to_fp nil)
    (above nonempty-type-eq-decl nil integers nil)
    (> const-decl "bool" reals nil)
    (bool nonempty-type-eq-decl nil booleans nil)
    (int nonempty-type-eq-decl nil integers nil)
    (integer_pred const-decl "[rational -> boolean]" integers nil)
    (rational nonempty-type-from-decl nil rationals nil)
    (rational_pred const-decl "[real -> boolean]" rationals nil)
    (real nonempty-type-from-decl nil reals nil)
    (real_pred const-decl "[number_field -> boolean]" reals nil)
    (number_field nonempty-type-from-decl nil number_fields nil)
    (number_field_pred const-decl "[number -> boolean]" number_fields
     nil)
    (boolean nonempty-type-decl nil booleans nil)
    (number nonempty-type-decl nil numbers nil)
    (Exp_of_value_normal formula-decl nil real_to_fp nil)
    (minus_int_is_int application-judgement "int" integers nil)
    (real_times_real_is_real application-judgement "real" reals nil)
    (rat_times_rat_is_rat application-judgement "rat" rationals nil)
    (round_scaled const-decl "real" fp_round_aux nil)
    (int_minus_int_is_int application-judgement "int" integers nil))
   nil))
 (round_value2 0
  (round_value2-1 nil 3321205307
   ("" (skosimp*)
    (("" (rewrite "round_value")
      (("" (expand "fp_round")
        (("" (lift-if)
          (("" (assert)
            (("" (prop)
              (("" (expand "round_exceptions")
                (("" (expand "round_exceptions_x")
                  (("" (lemma "value_nonzero")
                    (("" (inst?)
                      (("" (assert)
                        (("" (expand "zero?")
                          (("" (lift-if)
                            (("" (prop)
                              (("1" (assertnil)
                               ("2"
                                (expand "over_under?")
                                (("2"
                                  (assert)
                                  (("2"
                                    (expand "underflow")
                                    (("2"
                                      (lift-if)
                                      (("2"
                                        (assert)
                                        (("2"
                                          (rewrite "round_under_value")
                                          (("2"
                                            (lemma "finite_cover")
                                            (("2"
                                              (inst?)
                                              (("2"
                                                (expand "zero?")
                                                (("2"
                                                  (lemma
                                                   "value_normal")
                                                  (("2"
                                                    (inst?)
                                                    (("2"
                                                      (assert)
                                                      nil))))))))))))))))))))))))))))))))))))))))))))))))))
    nil)
   ((round_value formula-decl nil real_to_fp nil)
    (number nonempty-type-decl nil numbers nil)
    (boolean nonempty-type-decl nil booleans nil)
    (number_field_pred const-decl "[number -> boolean]" number_fields
     nil)
    (number_field nonempty-type-from-decl nil number_fields nil)
    (real_pred const-decl "[number_field -> boolean]" reals nil)
    (real nonempty-type-from-decl nil reals nil)
    (rational_pred const-decl "[real -> boolean]" rationals nil)
    (rational nonempty-type-from-decl nil rationals nil)
    (integer_pred const-decl "[rational -> boolean]" integers nil)
    (int nonempty-type-eq-decl nil integers nil)
    (bool nonempty-type-eq-decl nil booleans nil)
    (> const-decl "bool" reals nil)
    (above nonempty-type-eq-decl nil integers nil)
    (b formal-const-decl "above(1)" real_to_fp nil)
    (p formal-const-decl "above(1)" real_to_fp nil)
    (integer nonempty-type-from-decl nil integers nil)
    (E_max formal-const-decl "integer" real_to_fp nil)
    (E_min formal-const-decl "{i: integer | E_max > i}" real_to_fp nil)
    (fp_num type-decl nil IEEE_854_values nil)
    (finite? adt-recognizer-decl "[fp_num -> boolean]" IEEE_854_values
     nil)
    (rounding_mode type-decl nil enumerated_type_defs nil)
    (round_exceptions_x const-decl "[real, exception]" real_to_fp nil)
    (zero? const-decl "bool" IEEE_854_values nil)
    (real_le_is_total_order name-judgement "(total_order?[real])"
     real_props nil)
    (alpha formal-const-decl "integer" real_to_fp nil)
    (round_under_value formula-decl nil over_under nil)
    (value_normal formula-decl nil IEEE_854_values nil)
    (finite_cover formula-decl nil IEEE_854_values nil)
    (real_lt_is_strict_total_order name-judgement
     "(strict_total_order?[real])" real_props nil)
    (nnrat_exp application-judgement "nnrat" exponentiation nil)
    (posrat_exp application-judgement "posrat" exponentiation nil)
    (underflow const-decl "[real, exception]" over_under nil)
    (over_under? const-decl "bool" over_under nil)
    (real_gt_is_strict_total_order name-judgement
     "(strict_total_order?[real])" real_props nil)
    (value_nonzero formula-decl nil IEEE_854_values nil)
    (round_exceptions const-decl "real" real_to_fp nil)
    (fp_round const-decl "real" real_to_fp nil))
   nil))
 (round_0 0
  (round_0-1 nil 3321205307
   ("" (skosimp*) (("" (expand "fp_round") (("" (propax) nil)))) nil)
   ((fp_round const-decl "real" real_to_fp nil)) nil))
 (round_value3 0
  (round_value3-1 nil 3321205307
   ("" (skosimp*)
    (("" (rewrite "round_value2")
--> --------------------

--> maximum size reached

--> --------------------

100%


[ zur Elbe Produktseite wechseln0.41Quellennavigators  Analyse erneut starten  ]