# Proofs

proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: prelude_aux
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "exp_of_exists" ("b" "2" "py" "1/lt1y!1"))
   (skosimp*)
   (lemma "expt_pos" ("px" "2" "i" "i!1+1"))
   (lemma "both_sides_div_pos_lt2"
    ("pz" "1" "px" "lt1y!1" "py" "2^-(i!1+1)"))
   (lemma "expt_inverse" ("n0x" "2" "i" "-(i!1+1)"))
   (assert)
   (replace -1 -2 rl)
   (replace -5 -2)
   (assert)
   (lemma "exp_of2_exists" ("lt1x" "lt1x!1"))
   (skosimp*)
   (lemma "expt_pos" ("px" "lt1x!1" "i" "n!1"))
   (lemma "both_sides_expt_pos_lt"
    ("pm" "1+i!1" "px" "lt1x!1^n!1" "py" "1/2"))
   (("1"
     (inst + "n!1*(1+i!1)")
     (("1"
       (lemma "expt_times" ("n0x" "lt1x!1" "i" "n!1" "j" "1+i!1"))
       (lemma "expt_division" ("n0x" "1" "n0y" "2" "i" "1+i!1"))
       (rewrite "expt_1i")
       (lemma "expt_inverse" ("n0x" "2" "i" "1+i!1"))
       (assert))
      ("2"
       (typepred "n!1")
       (lemma "both_sides_times_nonneg_le1"
        ("x" "0" "y" "i!1+1" "nnz" "n!1"))
       (lemma "both_sides_expt_gt1_lt"
        ("gt1x" "2" "i" "-(1+i!1)" "j" "0"))
       (rewrite "expt_x0")
       (assert))))
    ("2"
     (lemma "both_sides_expt_gt1_lt" ("gt1x" "2" "i" "-(1+i!1)" "j" "0"))
     (rewrite "expt_x0")
     (assert))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: prelude_aux
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "floor_def" ("x" "sqrt(n!1)"))
   (flatten -1)
   (typepred "sqrt(n!1)")
   (lemma "nonneg_floor_is_nat" ("x" "sqrt(n!1)"))
   (expand ">=")
   (rewrite "sq_rew")
   (rewrite "sq_rew")
   (rewrite "sq_rew")
   (lemma "sqrt_le" ("nny" "sq(m!1)" "nnz" "n!1"))
   (lemma "sqrt_lt" ("nnz" "sq(1+m!1)" "nny" "n!1"))
   (replace -1 1 rl)
   (replace -2 1 rl)
   (rewrite "sqrt_sq")
   (rewrite "sqrt_sq")
   (split 1)
   (("1"
     (flatten)
     (lemma "trich_lt" ("x" "floor(sqrt(n!1))" "y" "m!1"))
     (split -1)
     (("1" (assert)) ("2" (propax)) ("3" (assert))))
    ("2" (flatten 1) (assert))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: prelude_aux
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (rewrite "sq_rew")
   (rewrite "sq_rew")
   (lemma "ceiling_def" ("x" "sqrt(pn!1)"))
   (flatten -1)
   (typepred "pn!1")
   (lemma "sqrt_le" ("nny" "1" "nnz" "pn!1"))
   (rewrite "sqrt_1")
   (assert)
   (name-replace "M" "ceiling(sqrt(pn!1))")
   (lemma "sq_le" ("nna" "sqrt(pn!1)" "nnb" "M"))
   (lemma "sq_lt" ("nnb" "sqrt(pn!1)" "nna" "M-1"))
   (("1"
     (assert)
     (rewrite "sq_sqrt")
     (split 1)
     (("1"
       (flatten 1)
       (lemma "trich_lt" ("x" "M" "y" "pm!1"))
       (split -1)
       (("1" (lemma "sq_le" ("nna" "M" "nnb" "pm!1-1")) (assert))
        ("2" (propax))
        ("3" (lemma "sq_lt" ("nna" "pm!1" "nnb" "M-1")) (assert))))
      ("2" (flatten 1) (assert))))
    ("2" (assert))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: prelude_aux
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (case "FORALL (n:nat): log2(2 ^ n) = n")
   (("1"
     (skosimp*)
     (case "i!1>=0")
     (("1" (inst - "i!1"))
      ("2"
       (inst - "-i!1")
       (("1"
         (rewrite "expt_inverse")
         (expand "log2")
         (rewrite "ln_div")
         (rewrite "ln_1")
         (assert))
        ("2" (assert))))))
    ("2"
     (hide 2)
     (induct "n")
     (("1" (rewrite "expt_x0") (expand "log2") (rewrite "ln_1") (assert))
      ("2"
       (skosimp*)
       (rewrite "expt_plus")
       (rewrite "expt_x1")
       (expand "log2")
       (rewrite "ln_mult")
       (assert))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: prelude_aux
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (lemma "ln_strict_increasing")
   (expand "strict_increasing?")
   (skosimp*)
   (inst-cp - "x!1" "y!1")
   (inst - "1" "2")
   (rewrite "ln_1")
   (assert)
   (expand "log2")
   (lemma "both_sides_div_pos_lt1"
    ("pz" "ln(2)" "x" "ln(x!1)" "y" "ln(y!1)"))
   (assert))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: prelude_aux
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (lemma "ln_strict_increasing")
   (expand "strict_increasing?")
   (inst - "1" "2")
   (rewrite "ln_1")
   (assert))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: prelude_A4
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (expand "even?")
   (skosimp*)
   (replace -1)
   (hide -1)
   (rewrite "expt_times")
   (rewrite "expt_times")
   (case-replace "(-nx!1) ^ 2 = nx!1 ^ 2")
   (hide 2)
   (grind))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: prelude_A4
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (expand "odd?")
   (skosimp*)
   (replace -1)
   (case "j!1 >=0")
   (("1"
     (rewrite "expt_plus")
     (rewrite "expt_plus")
     (rewrite "expt_x1")
     (rewrite "expt_x1")
     (lemma "expt_neg_even" ("nx" "nx!1" "n" "2*j!1"))
     (("1"
       (split -1)
       (("1" (assert)) ("2" (hide 2) (expand "even?") (inst + "j!1"))))
      ("2" (assert))))
    ("2" (hide 2) (typepred "n!1") (assert))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: prelude_A4
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (case-replace "x!1=0")
   (("1" (expand "^" 1 2) (expand "^" 1 1) (expand "expt") (propax))
    ("2"
     (case-replace "y!1=0")
     (("1" (expand "^" 2 1) (expand "^" 2 2) (expand "expt") (assert))
      ("2" (rewrite "mult_expt"))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: prelude_A4
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "expt_product_n0i" ("x" "x!1" "y" "1/n0y!1" "pn" "pn!1"))
   (rewrite "expt_inverse_inv" -1)
   (assert))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: prelude_A4
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (case "n!1 + 1 + y!1 > 0")
   (("1"
     (rewrite "div_mult_pos_le2")
     (rewrite "div_mult_pos_lt1")
     (assert))
    ("2" (assert))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: prelude_A4
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (typepred "pn!1")
   (lemma "A4_0" ("y" "y!1" "n" "pn!1"))
   (assert)
   (flatten -1)
   (assert))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: prelude_A4
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "A4_0" ("y" "y!1" "n" "n!1"))
   (lemma "trich_lt" ("x" "y!1" "y" "0"))
   (split -1)
   (("1"
     (lemma "both_sides_times_neg_lt1" ("y" "-1" "x" "y!1" "nz" "-1"))
     (lemma "lt_times_lt_pos1"
      ("px" "y!1 * -1" "y" "1" "nnz" "n!1 / (n!1 + 1 + y!1)" "w" "1"))
     (("1"
       (lemma "both_sides_times_neg_lt1" ("y" "-1" "x" "z!1" "nz" "-1"))
       (grind))
      ("2" (assert)) ("3" (assert)) ("4" (assert))))
    ("2" (replace -1) (grind))
    ("3"
     (lemma "trich_lt" ("x" "n!1" "y" "0"))
     (split -1)
     (("1" (assert)) ("2" (replace -1) (assert))
      ("3"
       (lemma "A4_1" ("y" "y!1" "pn" "n!1"))
       (("1"
         (lemma "lt_times_lt_nn1"
          ("nnx" "0" "y" "n!1 / (n!1 + 1 + y!1)" "nnz" "0" "w" "y!1"))
         (("1" (grind)) ("2" (assert))))
        ("2" (assert))))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: prelude_A4
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "A4_1" ("y" "y!1" "pn" "pn!1"))
   (lemma "both_sides_times_neg_lt1"
    ("y" "pn!1 / (pn!1 + 1 + y!1)" "x" "1" "nz" "y!1"))
   (("1" (grind)) ("2" (assert)) ("3" (assert))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: prelude_A4
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "A4_1" ("pn" "pn!1" "y" "y!1"))
   (assert)
   (flatten -1)
   (lemma "both_sides_times_pos_lt1"
    ("pz" "y!1" "x" "pn!1 / (1 + pn!1 + y!1)" "y" "1"))
   (assert))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: prelude_A4
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "A4_1" ("y" "y!1" "pn" "pn!1"))
   (lemma "both_sides_plus_lt1" ("x" "-1" "y" "y!1" "z" "pn!1+1"))
   (lemma "lt_le_transitivity" ("x" "0" "y" "pn!1" "z" "1+pn!1+y!1"))
   (lemma "both_sides_plus1"
    ("x"
     "z!1"
     "y"
     "pn!1 * y!1 / (pn!1 + 1 + y!1)"
     "z"
     "(pn!1 + 1 + y!1)/(pn!1 + 1 + y!1)"))
   (("1"
     (copy -6)
     (("1"
       (replace -2 -7 rl)
       (rewrite "div_distributes" -7)
       (rewrite "div_simp" -7)
       (replace -7 1)
       (replace -1 1)
       (hide (-1 -2 -7))
       (lemma "both_sides_div_pos_lt1"
        ("x"
         "pn!1 * x!1 * (1 + pn!1) * (1+y!1)"
         "y"
         "pn!1 * y!1"
         "pz"
         "pn!1 + 1 + y!1"))
       (("1"
         (lemma "both_sides_times_pos_lt1"
          ("x"
           "(pn!1 + 1) * x!1 * (1 + y!
            1)"
           "y"
           "y!1"
           "pz"
           "pn!1"))
         (grind))
        ("2" (assert))))
      ("2" (assert))))
    ("2" (assert))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: prelude_A4
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skolem!)
   (flatten)
   (induct "n")
   (("1" (skosimp*) (grind))
    ("2"
     (skolem!)
     (skosimp*)
     (lemma "trich_lt" ("x" "j!1" "y" "0"))
     (split -1)
     (("1" (assert))
      ("2"
       (replace -1)
       (lemma "div_mult_pos_lt2" ("x" "x!1" "py" "1+y!1" "z" "y!1"))
       (("1"
         (lemma "lt_times_lt_nn1"
          ("nnx" "0" "y" "y!1" "nnz" "0" "w" "y!1"))
         (lemma "both_sides_plus_lt1"
          ("x" "0" "y" "y!1 * y!1" "z" "y!1"))
         (lemma "div_mult_pos_lt1" ("z" "y!1" "py" "1+y!1" "x" "y!1"))
         (grind))
        ("2" (assert))))
      ("3"
       (name "z!1" "j!1*y!1/(j!1+1+y!1)")
       (("1"
         (lemma "A4_4" ("y" "y!1" "z" "z!1" "pn" "j!1" "x" "x!1"))
         (("1"
           (inst - "z!1")
           (lemma "A4_1" ("y" "y!1" "pn" "j!1"))
           (lemma "lt_times_lt_nn1"
            ("nnx" "0" "y" "j!1 / (j!1 + 1 + y!1)" "nnz" "0" "w" "y!1"))
           (("1"
             (replace -4)
             (bash -3)
             (lemma "both_sides_plus1"
              ("y"
               "z!1"
               "x"
               "j!1 * y!1 / (j!1 + 1 + y!1)"
               "z"
               "(j!1 + 1 + y!1)/(j!1 + 1 + y!1)"))
             (copy -6)
             (replace -2 -7 rl)
             (rewrite "div_distributes" -7)
             (rewrite "div_simp" -7)
             (replace -7 -9 rl)
             (lemma "lt_times_lt_nn1"
              ("nnx" "0" "y" "y!1" "nnz" "0" "w" "y!1"))
             (lemma "both_sides_plus_lt1"
              ("x" "0" "y" "y!1 * y!1" "z" "y!1"))
             (lemma "div_mult_pos_lt1"
              ("z" "y!1" "x" "y!1" "py" "1+y!1"))
             (lemma "div_mult_pos_lt2"
              ("x" "x!1*(1+j!1)" "py" "1+y!1" "z" "y!1"))
             (lemma "expt_plus" ("n0x" "1+x!1" "i" "1" "j" "j!1"))
             (replace -1 1)
             (name-replace "AA" "(1 + x!1) ^ j!1")
             (hide -1)
             (replace -14)
             (simplify -4)
             (replace -4)
             (simplify -3)
             (replace -3)
             (simplify -2)
             (replace -15 -1)
             (simplify -1)
             (reveal -2)
             (lemma "posreal_expt")
             (inst - "j!1" "1+x!1")
             (expand "^")
             (replace -2 -1)
             (hide -2)
             (expand "expt")
             (expand "expt")
             (lemma "lt_times_lt_pos1"
              ("px"
               "AA"
               "y"
               "((1+j!1)*(1+y!1))/(1 + j!1 + y!1)"
               "nnz"
               "1+x!1"
               "w"
               "(1 + j!1 + y!1)/(1+j!1)"))
             (("1"
               (lemma "div_times"
                ("x"
                 "(1 + y!1)*(1 + j!1)"
                 "n0x"
                 "(1 + j!1 + y!1)"
                 "y"
                 "(1 + j!1 + y!1)"
                 "n0y"
                 "1 + j!1"))
               (replace -1 -2)
               (lemma "div_cancel1"
                ("x" "1+y!1" "n0z" "(1 + j!1 + y!1) * (1 + j!1)"))
               (("1"
                 (replace -1 -3)
                 (hide (-1 -2))
                 (lemma "div_mult_pos_lt2"
                  ("x" "x!1" "py" "(1+y!1)*(1+j!1)" "z" "y!1"))
                 (("1"
                   (replace -18 -1)
                   (lemma "both_sides_plus_lt1"
                    ("x" "y!1 / (1 + y!1)" "y" "y!1" "z" "1+j!1"))
                   (replace -6 -1)
                   (lemma "lt_le_transitivity"
                    ("x" "(1+j!1)*x!1" "y" "y!1 / (1 + y!1)" "z" "y!1"))
                   (lemma "both_sides_plus_lt1"
                    ("x" "(1 + j!1) * x!1" "y" "y!1" "z" "1 + j!1"))
                   (lemma "div_mult_pos_lt2"
                    ("x" "x!1+1" "py" "1 + j!1" "z" "y!1+1+j!1"))
                   (grind))
                  ("2"
                   (lemma "lt_times_lt_nn1"
                    ("nnx" "0" "y" "1+j!1" "nnz" "0" "w" "1+y!1"))
                   (grind))))
                ("2"
                 (assert)
                 (lemma "lt_times_lt_nn1"
                  ("nnx"
                   "0"
                   "y"
                   "1 + j!1 + y!1"
                   "nnz"
                   "0"
                   "w"
                   "1 + j!1"))
                 (grind))))
              ("2" (assert))))
            ("2" (assert))))
          ("2" (assert))))
        ("2" (assert))))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: prelude_A4
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skolem!)
   (flatten)
   (induct "pn")
   (("1" (assert)) ("2" (assert))
    ("3"
     (skosimp*)
     (lemma "lt_times_lt_np1" ("x" "y!1" "npy" "0" "z" "y!1" "npw" "0"))
     (replace -5)
     (simplify -1)
     (lemma "both_sides_plus_lt1" ("x" "0" "y" "y!1 * y!1" "z" "y!1"))
     (lemma "both_sides_plus_lt1" ("x" "-1" "y" "y!1" "z" "1"))
     (replace -6)
     (replace -3)
     (simplify (-1 -2))
     (lemma "div_mult_pos_lt1" ("z" "y!1" "x" "y!1" "py" "1+y!1"))
     (("1"
       (replace -3 -1)
       (simplify -1)
       (hide (-3 -4))
       (lemma "trich_lt" ("x" "j!1" "y" "0"))
       (split -1)
       (("1" (assert))
        ("2"
         (replace -1)
         (lemma "div_mult_pos_lt2" ("x" "x!1" "py" "1+y!1" "z" "y!1"))
         (lemma "lt_le_transitivity"
          ("x" "x!1" "y" "y!1 / (1 + y!1)" "z" "y!1"))
         (("1" (grind)) ("2" (assert))))
        ("3"
         (lemma "both_sides_plus_lt1" ("x" "-1" "y" "x!1" "z" "1"))
         (replace -10 -1)
         (simplify -1)
         (lemma "expt_plus" ("n0x" "1 + x!1" "i" "j!1" "j" "1"))
         (("1"
           (replace -1 1)
           (lemma "posreal_expt")
           (inst - "j!1" "1+x!1")
           (("1"
             (name "AA" "(1 + x!1) ^ j!1")
             (replace -1)
             (expand "^" -1)
             (replace -1)
             (hide (-1 -3))
             (expand "^")
             (expand "expt")
             (expand "expt")
             (expand ">" -6)
             (replace -3 -6)
             (name "z!1" "j!1*y!1/(j!1+1+y!1)")
             (("1"
               (lemma "A4_4" ("z" "z!1" "y" "y!1" "pn" "j!1" "x" "x!1"))
               (("1"
                 (replace -2 -1)
                 (replace -10)
                 (simplify -1)
                 (replace -12 -1)
                 (simplify -1)
                 (inst - "z!1")
                 (replace -1 -8)
                 (lemma "A4_2" ("z" "z!1" "y" "y!1" "n" "j!1"))
                 (replace -11)
                 (replace -3 -1)
                 (replace -1)
                 (lemma "posreal_div_posreal_is_posreal")
                 (inst - "j!1" "j!1 + 1 + y!1")
                 (("1"
                   (expand ">")
                   (lemma "both_sides_times_neg_lt1"
                    ("y" "0" "x" "j!1 / (1 + j!1 + y!1)" "nz" "y!1"))
                   (("1"
                     (replace -2 -1)
                     (simplify -1)
                     (replace -5)
                     (replace -1 -11)
                     (simplify -11)
                     (lemma "both_sides_plus1"
                      ("y"
                       "z!1"
                       "x"
                       "j!1 * y!1 / (j!1 + 1 + y!1)"
                       "z"
                       "(j!1 + 1 + y!1)/(j!1 + 1 + y!1)"))
                     (("1"
                       (copy -6)
                       (("1"
                         (replace -2 -7 rl)
                         (rewrite "div_distributes" -7)
                         (rewrite "div_simp" -7)
                         (replace -7 -13 rl)
                         (lemma "div_mult_pos_lt2"
                          ("x"
                           "x!1"
                           "py"
                           "(1 + y!1) * (j!1 + 1)"
                           "z"
                           "y!1"))
                         (("1"
                           (replace -18 -1)
                           (lemma "both_sides_div_pos_lt1"
                            ("x"
                             "y!1 / (1 + y!1)"
                             "y"
                             "y!1"
                             "pz"
                             "1+j!1"))
                           (("1"
                             (replace -13 -1)
                             (rewrite "div_div2" -1)
                             (lemma "lt_le_transitivity"
                              ("x"
                               "x!1"
                               "y"
                               "y!1 / ((1 + y!1) * (j!1 + 1))"
                               "z"
                               "y!1 / (1 + j!1)"))
                             (("1"
                               (expand "<=" -1)
                               (simplify (-2 -3))
                               (replace -2 -1)
                               (replace -3 -1)
                               (lemma "both_sides_plus_lt1"
                                ("x"
                                 "x!1"
                                 "y"
                                 "y!1 / (1 + j!1)"
                                 "z"
                                 "(1 + j!1)/(1 + j!1)"))
                               (replace -2 -1)
                               (rewrite "div_distributes" -1)
                               (rewrite "div_simp" -1)
                               (simplify -1)
                               (lemma "lt_times_lt_nn1"
                                ("nnx"
                                 "AA"
                                 "y"
                                 "((1+j!1)*(1+y!1))/(1 + j!1 + y!1)"
                                 "nnz"
                                 "1+x!1"
                                 "w"
                                 "(1 + j!1 + y!1) / (1 + j!1)"))
                               (("1"
                                 (replace -18 -1)
                                 (replace -2 -1)
                                 (lemma
                                  "div_times"
                                  ("x"
                                   "(1 + j!1) * (1 + y!1)"
                                   "n0x"
                                   "1 + j!1 + y!1"
                                   "y"
                                   "1 + j!1 + y!1"
                                   "n0y"
                                   "1 + j!1"))
                                 (replace -1 -2)
                                 (hide -1)
                                 (lemma
                                  "div_cancel1"
                                  ("x"
                                   "1 + y!1"
                                   "n0z"
                                   "(1 + j!1 + y!1) * (1 + j!1)"))
                                 (("1" (replace -1 -2) (grind))
                                  ("2"
                                   (lemma
                                    "lt_times_lt_nn1"
                                    ("nnx"
                                     "0"
                                     "y"
                                     "1+j!1"
                                     "nnz"
                                     "0"
                                     "w"
                                     "1 + j!1 + y!1"))
                                   (grind))))
                                ("2" (assert)) ("3" (assert))))
                              ("2"
                               (lemma "lt_times_lt_nn1"
                                ("nnx"
                                 "0"
                                 "y"
                                 "1+j!1"
                                 "nnz"
                                 "0"
                                 "w"
                                 "1+y!1"))
                               (grind))))
                            ("2" (assert))))
                          ("2"
                           (lemma "lt_times_lt_nn1"
                            ("nnx"
                             "0"
                             "y"
                             "1+j!1"
                             "nnz"
                             "0"
                             "w"
                             "1+y!1"))
                           (grind))))
                        ("2"
                         (lemma "lt_plus_lt1"
                          ("x" "0" "y" "1+y!1" "z" "0" "w" "j!1"))
                         (grind))))
                      ("2"
                       (lemma "lt_plus_lt1"
                        ("x" "0" "y" "1+y!1" "z" "0" "w" "j!1"))
                       (grind))))
                    ("2"
                     (lemma "lt_plus_lt1"
                      ("x" "0" "y" "1+y!1" "z" "0" "w" "j!1"))
                     (grind))
                    ("3" (assert))))
                  ("2" (assert)) ("3" (assert))))
                ("2" (assert))))
              ("2"
               (lemma "lt_plus_lt1"
                ("x" "0" "y" "j!1" "z" "0" "w" "1+y!1"))
               (grind))))
            ("2" (assert))))
          ("2" (assert))))))
      ("2" (assert))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: prelude_A4
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "trich_lt" ("x" "n!1" "y" "0"))
   (split)
   (("1" (assert)) ("2" (replace -1) (grind))
    ("3"
     (lemma "both_sides_minus_lt1"
      ("x" "(1 + y!1) * n!1 * x!1" "y" "y!1" "z" "y!1*n!1*x!1"))
     (copy -6)
     (replace -2 -7 rl)
     (simplify -7)
     (hide -2)
     (lemma "negreal_times_negreal_is_posreal" ("nx" "-n!1" "ny" "x!1"))
     (("1"
       (lemma "both_sides_plus_gt1" ("x" "-n!1 * x!1" "y" "0" "z" "1"))
       (replace -2 -1)
       (simplify -1)
       (lemma "div_mult_pos_lt2"
        ("x" "-1" "py" "1-n!1*x!1" "z" "n!1*x!1"))
       (("1"
         (lemma "div_mult_pos_lt1"
          ("x" "y!1" "py" "1-n!1*x!1" "z" "n!1 * x!1"))
         (replace -10 -1)
         (lemma "lt_le_transitivity")
         (inst - "-1" "n!1 * x!1 / (1 - n!1 * x!1)" "y!1")
         (("1"
           (expand "<=" -1)
           (flatten -2)
           (replace -2 -1)
           (replace -3 -1)
           (simplify -1)
           (lemma "A4_5nn" ("x" "x!1"))
           (bash)
           (bash))
          ("2" (assert))))
        ("2" (assert))))
      ("2" (assert)) ("3" (assert))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: prelude_A4
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "trich_lt" ("x" "x!1" "y" "0"))
   (split -1)
   (("1"
     (lemma "trich_lt" ("x" "y!1" "y" "0"))
     (split -1)
     (("1" (lemma "A4_5nn" ("x" "x!1")) (bash) (bash))
      ("2"
       (replace -1)
       (lemma "both_sides_expt_lt1_lt"
        ("lt1x" "1+x!1" "j" "0" "i" "pn!1"))
       (("1" (grind)) ("2" (assert))))
      ("3"
       (lemma "both_sides_times_pos_lt1"
        ("x" "x!1" "y" "0" "pz" "(1 + y!1) * pn!1"))
       (("1"
         (lemma "lt_le_transitivity"
          ("x" "(1 + y!1) * pn!1 * x!1" "y" "0" "z" "y!1"))
         (replace -3)
         (replace -4)
         (simplify (-1 -2))
         (expand "<=" -1)
         (replace -2 -1)
         (simplify -1)
         (lemma "both_sides_expt_lt1_lt"
          ("lt1x" "1+x!1" "j" "0" "i" "pn!1"))
         (("1" (bash) (expand "^" -1 2) (expand "expt") (assert))
          ("2" (assert))))
        ("2"
         (lemma "lt_times_lt_nn1"
          ("nnx" "0" "y" "1+y!1" "nnz" "0" "w" "pn!1"))
         (grind))))))
    ("2"
     (replace -1)
     (lemma "expt_1i" ("i" "pn!1"))
     (replace -1)
     (simplify -5)
     (assert))
    ("3"
     (lemma "trich_lt" ("x" "y!1" "y" "0"))
     (split -1)
     (("1"
       (lemma "both_sides_times_pos_lt1"
        ("x" "0" "y" "x!1" "pz" "(1 + y!1) * pn!1"))
       (("1" (replace -3 -1) (simplify -1) (assert))
        ("2"
         (lemma "lt_times_lt_nn1"
          ("nnx" "0" "y" "pn!1" "nnz" "0" "w" "1+y!1"))
         (grind))))
      ("2"
       (replace -1)
       (lemma "both_sides_times_pos_lt1" ("x" "0" "y" "x!1" "pz" "pn!1"))
       (bash))
      ("3"
       (lemma "A4_5pp" ("x" "x!1"))
       (replace -3)
       (simplify -1)
       (inst - "pn!1")
       (inst - "y!1")
       (replace -2)
       (simplify -1)
       (replace -6 -1)
       (simplify -1)
       (propax))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: prelude_A4
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skolem!)
   (flatten)
   (induct "n")
   (("1"
     (skosimp*)
     (lemma "posreal_times_posreal_is_posreal" ("px" "y!1" "py" "1+x!1"))
     (("1" (assert)) ("2" (assert)) ("3" (assert))))
    ("2"
     (skosimp*)
     (lemma "trich_lt" ("x" "j!1" "y" "0"))
     (split -1)
     (("1" (assert))
      ("2"
       (replace -1)
       (lemma "both_sides_plus_lt1" ("x" "0" "y" "x!1" "z" "1"))
       (lemma "div_mult_pos_lt1" ("z" "x!1" "py" "1+x!1" "x" "1"))
       (("1"
         (lemma "div_mult_pos_lt2" ("x" "y!1" "py" "1+x!1" "z" "x!1"))
         (lemma "both_sides_times_pos_lt1"
          ("x" "1" "y" "x!1+1" "pz" "x!1"))
         (("1"
           (lemma "div_mult_pos_lt1" ("x" "x!1" "py" "1+x!1" "z" "x!1"))
           (grind))
          ("2" (assert))))
        ("2" (assert))))
      ("3"
       (name "z!1" "j!1*y!1/(j!1+1)")
       (inst - "z!1")
       (bash)
       (("1"
         (lemma "expt_plus" ("n0x" "1 + x!1" "i" "1" "j" "j!1"))
         (replace -1)
         (name-replace "AA" "(1 + x!1) ^ j!1")
         (hide -1)
         (expand "^")
         (expand "expt")
         (expand "expt")
         (lemma "both_sides_times_neg_lt1"
          ("y" "0" "x" "x!1" "nz" "-j!1"))
         (lemma "both_sides_plus_lt1"
          ("y" "x!1" "x" "x!1* -j!1" "z" "1"))
         (lemma "both_sides_times_pos_lt1"
          ("y" "x!1 + 1" "x" "1 - x!1 * j!1" "pz" "y!1"))
         (lemma "div_mult_pos_lt1"
          ("x" "x!1" "py" "j!1+1" "z" "(1-x!1 * j!1) * y!1"))
         (lemma "minus_div1"
          ("x" "1" "n0x" "1" "y" "j!1*(1+x!1)" "n0y" "j!1+1"))
         (rewrite "div_simp" -1)
         (lemma "both_sides_plus_lt1"
          ("x"
           "y!1*(1 - (j!1 * (1 + x!1) / (j!1 + 1)))"
           "y"
           "x!1"
           "z"
           "y!1*j!1 * (1 + x!1) / (j!1 + 1)"))
         (replace -7 -9 rl)
         (replace -12 -6)
         (simplify -6)
         (lemma "lt_le_transitivity")
         (inst-cp - "x!1 * -j!1" "0" "x!1")
         (expand "<=")
         (replace -8 -2)
         (simplify -2)
         (replace -7)
         (replace -2)
         (simplify -6)
         (inst - "y!1 - j!1 * x!1 * y!1" "x!1 * y!1 + y!1"
          "j!1 * x!1 + x!1")
         (replace -13)
         (replace -6)
         (simplify -1)
         (replace -1)
         (simplify -5)
         (hide (-1 -2 -6 -7 -8))
         (simplify -2)
         (replace -2 -1)
         (replace -3 -1)
         (hide (-2 -3))
         (lemma "lt_le_transitivity"
          ("x"
           "1+y!1"
           "y"
           "1+x!1 + y!1 * j!1 * (1 + x!1) / (j!1 + 1)"
           "z"
           "AA + AA * x!1"))
         (lemma "both_sides_times_pos_lt2"
          ("x" "1 + j!1 * y!1 / (1 + j!1)" "y" "AA" "pz" "1+x!1"))
         (replace -6 -1)
         (simplify -1)
         (replace -1 -2)
         (lemma "both_sides_plus_lt1"
          ("x"
           "y!1 * ((1 - j!1 * x!1) / (1 + j!1)) +
                  y!1 * j!1 * (1 + x!1) / (j!1 + 1)"
           "y"
           "x!1 + y!1 * j!1 * (1 + x!1) / (j!1 + 1)"
           "z"
           "1"))
         (replace -4 -1)
         (hide (-4))
         (simplify -1)
         (hide -2)
         (lemma "div_distributes"
          ("x"
           "(j!1 * x!1 * y!1 + j!1 * y!1)"
           "y"
           "y!1 *(1 - j!1 * x!1)"
           "n0z"
           "1 + j!1"))
         (rewrite "times_div1" -2)
         (name-replace "B" "(j!1 * x!1 * y!1 + j!1 * y!1) / (1 + j!1)")
         (name-replace "C" "(y!1 - j!1 * x!1 * y!1) / (1 + j!1)")
         (simplify -1)
         (lemma "div_cancel1" ("n0z" "1+j!1" "x" "y!1"))
         (grind))
        ("2"
         (hide 2)
         (grind)
         (replace -1 1 rl)
         (lemma "div_mult_pos_lt1"
          ("py" "j!1+1" "x" "x!1" "z" "x!1 * y!1 + y!1"))
         (lemma "both_sides_times_pos_lt2"
          ("x" "(x!1 * y!1 + y!1) / (j!1 + 1)" "y" "x!1" "pz" "j!1"))
         (grind))
        ("3"
         (hide 2)
         (lemma "lt_times_lt_nn1"
          ("nnx" "0" "y" "j!1 / (j!1 + 1)" "nnz" "0" "w" "y!1"))
         (lemma "posreal_div_posreal_is_posreal"
          ("px" "j!1" "py" "j!1+1"))
         (assert))))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: prelude_A4
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "trich_lt" ("x" "y!1" "y" "0"))
   (split)
   (("1"
     (lemma "both_sides_expt_gt1_le" ("gt1x" "1+x!1" "i" "0" "j" "n!1"))
     (("1" (simplify -1) (expand "^" -1 1) (expand "expt") (assert))
      ("2" (assert))))
    ("2"
     (replace -1)
     (lemma "trich_lt" ("x" "n!1" "y" "0"))
     (split)
     (("1" (assert)) ("2" (assert))
      ("3"
       (lemma "both_sides_expt_gt1_lt"
        ("gt1x" "1+x!1" "i" "0" "j" "n!1"))
       (("1" (expand "^" -1 1) (expand "expt") (assert))
        ("2" (assert))))))
    ("3"
     (lemma "A4_6pp" ("x" "x!1"))
     (replace -3)
     (simplify -1)
     (inst - "n!1")
     (inst - "y!1")
     (grind))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: prelude_A4
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (induct "n")
   (("1" (skosimp*) (grind))
    ("2"
     (skosimp*)
     (lemma "trich_lt" ("x" "j!1" "y" "0"))
     (split)
     (("1" (assert))
      ("2"
       (replace -1)
       (lemma "negreal_times_negreal_is_posreal" ("nx" "x!1" "ny" "y!1"))
       (("1"
         (lemma "lt_minus_lt1"
          ("x" "y!1 * (1 + x!1)" "y" "x!1" "w" "0" "z" "x!1 * y!1"))
         (expand "<=" -1)
         (replace -7 -1)
         (expand ">" -2)
         (replace -2 -1)
         (simplify -1)
         (grind))
        ("2" (assert)) ("3" (assert))))
      ("3"
       (name "z!1" "j!1*y!1/(j!1+1)")
       (inst - "z!1")
       (lemma "expt_plus" ("n0x" "1 + x!1" "i" "1" "j" "j!1"))
       (("1"
         (replace -1)
         (name-replace "AA" "(1 + x!1) ^ j!1")
         (hide -1)
         (expand "^")
         (expand "expt")
         (expand "expt")
         (lemma "div_mult_pos_lt1" ("z" "j!1" "x" "1" "py" "j!1 + 1"))
         (simplify -1)
         (lemma "both_sides_div_pos_lt1"
          ("x" "0" "y" "j!1" "pz" "j!1+1"))
         (simplify -1)
         (replace -4 -1)
         (simplify -1)
         (lemma "lt_times_lt_np1"
          ("x" "-1" "npy" "y!1" "npw" "-1*j!1/ (1 + j!1)" "z" "-1"))
         (("1"
           (lemma "lt_times_lt_np1"
            ("x" "y!1" "npy" "0" "z" "-1*j!1/ (1 + j!1)" "npw" "0"))
           (lemma "both_sides_times_neg_lt1" ("nz" "-1"))
           (inst-cp - "j!1 / (1 + j!1)" "0")
           (inst-cp - "1" "j!1 / (1 + j!1)")
           (inst-cp - "0" "y!1 * j!1 / (1 + j!1)")
           (inst - "y!1 * j!1 / (1 + j!1)" "-1")
           (replace -13)
           (replace -12)
           (replace -8)
           (replace -7)
           (flatten (-3 -4))
           (replace -3)
           (replace -4)
           (simplify (-5 -6))
           (replace -5)
           (replace -6)
           (flatten (-1 -2))
           (replace -9)
           (replace -1)
           (replace -2)
           (simplify -11)
           (hide (-1 -2 -3 -4 -5 -6 -7 -8))
           (lemma "both_sides_times_pos_lt1"
            ("x" "y!1 * (1 + x!1)" "y" "(j!1 + 1) * x!1" "pz" "j!1"))
           (("1"
             (lemma "div_mult_pos_lt1"
              ("x" "x!1 * j!1" "py" "j!1+1" "z" "(1 + x!1)*j!1 * y!1"))
             (replace -1 -2 rl)
             (replace -8 -2)
             (flatten -2)
             (hide -1)
             (replace -2 -4 rl)
             (simplify -4)
             (rewrite "times_div1" -4)
             (rewrite "div_distributes" -4)
             (replace -1 -4)
             (simplify -4)
             (hide (-1 -2))
             (lemma "lt_le_transitivity"
              ("x"
               "1+y!1"
               "y"
               "(1 + j!1 * y!1 / (1 + j!1))*(1+x!1)"
               "z"
               "(1+x!1)*AA"))
             (lemma "both_sides_times_pos_lt1"
              ("x" "1 + j!1 * y!1 / (1 + j!1)" "y" "AA" "pz" "1+x!1"))
             (("1"
               (replace -1 -4 rl)
               (replace -4 -2)
               (hide (-1 -4))
               (expand "<=" -1)
               (lemma "lt_le_transitivity"
                ("x" "1+x!1" "y" "1" "z" "1-j!1*x!1"))
               (expand "<=" -1)
               (simplify -1)
               (lemma "both_sides_plus_lt1" ("x" "x!1" "y" "0" "z" "1"))
               (replace -1 -2)
               (replace -9)
               (lemma "posreal_times_posreal_is_posreal"
                ("px" "j!1" "py" "-x!1"))
               (("1"
                 (expand ">" -1)
                 (lemma "both_sides_plus_lt1"
                  ("x" "0" "y" "j!1 * -x!1" "z" "1"))
                 (replace -2 -1)
                 (simplify -1)
                 (replace -1 -4)
                 (simplify -4)
                 (hide (-1 -2 -3))
                 (lemma "both_sides_times_neg_lt2"
                  ("y" "1 + x!1" "x" "1 - j!1 * x!1" "nz" "y!1"))
                 (("1"
                   (replace -1 -2 rl)
                   (lemma "lt_le_transitivity"
                    ("x"
                     "y!1 * (1 - j!1 * x!1)"
                     "y"
                     "y!1 * (1 + x!1)"
                     "z"
                     "(j!1 + 1) * x!1"))
                   (replace -8 -1)
                   (expand "<=" -1)
                   (replace -3 -1)
                   (simplify -1)
                   (hide (-2 -3))
                   (lemma "div_mult_pos_lt1"
                    ("z" "y!1*(1-j!1*x!1)" "x" "x!1" "py" "j!1+1"))
                   (replace -2 -1)
                   (hide -2)
                   (flatten -1)
                   (lemma "minus_div2"
                    ("x" "j!1+1" "n0x" "j!1+1" "y" "j!1*(1+x!1)"))
                   (rewrite "div_simp" -1)
                   (simplify -1)
                   (lemma "times_div1"
                    ("x" "y!1" "y" "1 - j!1 * x!1" "n0z" "j!1 + 1"))
                   (replace -1 -3 rl)
                   (replace -2 -3 rl)
                   (hide (-1 -2))
                   (name "B" "(j!1 * x!1 + j!1) / (1 + j!1)")
                   (replace -1 -2)
                   (lemma "both_sides_plus_lt1"
                    ("x" "y!1 * (1 - B)" "y" "x!1" "z" "y!1*B"))
                   (replace -1 -3 rl)
                   (simplify -3)
                   (lemma "commutative_mult" ("x" "y!1" "y" "B"))
                   (replace -1)
                   (simplify -4)
                   (replace -3 -4 rl)
                   (hide (-1 -2 -3))
                   (grind))
                  ("2" (assert))))
                ("2" (assert))))
              ("2" (assert))))
            ("2" (assert))))
          ("2" (assert))))
        ("2" (assert))))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: prelude_A4
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "trich_lt" ("x" "y!1" "y" "-1"))
   (split)
   (("1"
     (lemma "posreal_exp" ("i" "n!1" "x" "1+x!1"))
     (("1" (name-replace "AA" "(1 + x!1) ^ n!1") (assert))
      ("2" (assert))))
    ("2"
     (replace -1)
     (lemma "posreal_exp" ("i" "n!1" "x" "1+x!1"))
     (("1" (assert)) ("2" (assert))))
    ("3"
     (lemma "A4_6nn" ("x" "x!1"))
     (replace -3)
     (replace -4)
     (simplify -1)
     (inst - "n!1")
     (inst - "y!1")
     (replace -2)
     (grind))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: prelude_A4
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (lemma "sq_lt" ("nna" "1/sqrt(2)" "nnb" "7/8"))
   (rewrite "sq_div")
   (rewrite "sq_1")
   (rewrite "sq_sqrt")
   (expand "sq")
   (expand "^")
   (expand "expt")
   (expand "expt")
   (expand "expt")
   (expand "expt")
   (assert))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: prelude_A4
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (lemma "sq_lt" ("nna" "1/8" "nnb" "1/sqrt(2)"))
   (rewrite "sq_div")
   (rewrite "sq_div")
   (rewrite "sq_1")
   (rewrite "sq_sqrt")
   (expand "sq")
   (expand "^")
   (expand "expt")
   (expand "expt")
   (expand "expt")
   (expand "expt")
   (assert))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: prelude_A4
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "expt_x1" ("x" "2"))
   (replace -1 -2 rl)
   (lemma "posreal_exp" ("x" "2"))
   (inst-cp - "l!1")
   (inst - "-l!1")
   (lemma "both_sides_times_pos_le1"
    ("pz" "2^-l!1" "x" "2^1" "y" "pn!1"))
   (assert)
   (lemma "expt_plus" ("n0x" "2" "i" "1" "j" "-l!1"))
   (replace -1 -2 rl)
   (hide -1)
   (lemma "lt_le_transitivity"
    ("x" "2 ^ (1 + -l!1)" "y" "pn!1 * 2 ^ -l!1" "z" "2"))
   (assert))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: prelude_A4
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (case "1 <= n!1")
   (("1"
     (hide -1)
     (lemma "both_sides_sqrt_lt1" ("nnx" "2" "nny" "2"))
     (lemma "both_sides_div_pos_lt2" ("pz" "1" "px" "2" "py" "sqrt(2)"))
     (("1"
       (assert)
       (assert)
       (lemma "posreal_exp" ("x" "2" "i" "-n!1"))
       (lemma "posreal_div_posreal_is_posreal"
        ("px" "2^-n!1" "py" "sqrt(2)"))
       (lemma "both_sides_expt_lt1_lt" ("lt1x" "x!1" "j" "2" "i" "pn!1"))
       (("1"
         (assert)
         (expand "^" -1 2)
         (expand "expt")
         (expand "expt")
         (expand "expt")
         (lemma "div_mult_pos_le1"
          ("z" "2^-n!1" "py" "sqrt(2)" "x" "x!1"))
         (lemma "both_sides_expt_gt1_le"
          ("gt1x" "2" "i" "-n!1" "j" "-1"))
         (expand "^" -1 2)
         (expand "expt")
         (expand "expt")
         (lemma "both_sides_times_pos_lt1"
          ("x" "x!1" "y" "1/2" "pz" "x!1"))
         (lemma "A4_sqrt_ineq1")
         (lemma "both_sides_times_pos_lt1"
          ("x" "1/2" "y" "2-sqrt(2)" "pz" "x!1"))
         (assert))
        ("2"
         (assert)
         (lemma "both_sides_expt_gt1_lt" ("gt1x" "2" "i" "-n!1" "j" "0"))
         (assert)
         (rewrite "expt_x0")
         (assert))))
      ("2"
       (lemma "both_sides_sqrt_lt3" ("nnx" "0" "nny" "2"))
       (assert))))
    ("2" (propax))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: prelude_A4
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (hide -4)
   (lemma "posreal_exp" ("x" "2" "i" "-n!1"))
   (lemma "both_sides_expt_lt1_lt" ("lt1x" "x!1" "j" "1" "i" "pn!1"))
   (("1"
     (rewrite "expt_x1")
     (lemma "lt_plus_lt1"
      ("x" "2 ^ -n!1" "y" "x!1" "z" "x!1 ^ pn!1" "w" "x!1"))
     (assert))
    ("2" (assert))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: prelude_A4
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "sqrt_lt" ("nny" "sq(1)" "nnz" "2"))
   (lemma "sqrt_lt" ("nny" "2" "nnz" "sq(2)"))
   (rewrite "sqrt_sq")
   (rewrite "sqrt_sq")
   (expand "sq")
   (lemma "both_sides_div_pos_lt2" ("pz" "1" "px" "2" "py" "sqrt(2)"))
   (lemma "sq_le" ("nna" "1 / sqrt(2)" "nnb" "x!1"))
   (("1"
     (rewrite "sq_div" -1)
     (rewrite "sq_sqrt")
     (expand "sq")
     (assert)
     (case "0 < x!1 * x!1 - 1 + x!1")
     (("1"
       (lemma "lt_times_lt_nn1"
        ("nnx" "0" "y" "1-x!1" "nnz" "0" "w" "x!1 * x!1 - 1 + x!1"))
       (replace -2 -1)
       (split -1)
       (("1"
         (simplify -1)
         (simplify -1)
         (lemma "both_sides_expt_lt1_le"
          ("lt1x" "x!1" "i" "pn!1" "j" "3"))
         (lemma "both_sides_plus_lt1"
          ("x"
           "0"
           "y"
           "-1*(x!1 * x!1 * x!1) + 2*x!1 - 1"
           "z"
           "x!1 * x!1 * x!1 + 1"))
         (expand "^" -2 2)
         (expand "expt")
         (expand "expt")
         (expand "expt")
         (expand "expt")
         (lemma "posreal_exp" ("i" "pn!1" "x" "x!1"))
         (lemma "A4_5"
          ("x" "2 ^ -(2 + l!1)/x!1" "y" "1/x!1 ^ pn!1" "pn" "pn!1"))
         (("1"
           (assert)
           (hide -3)
           (lemma "posreal_div_posreal_is_posreal")
           (inst-cp - "1" "x!1 ^ pn!1")
           (lemma "posreal_exp" ("x" "2" "i" "-(l!1+1)"))
           (inst - "2 ^ -(2 + l!1)" "x!1")
           (assert)
           (lemma "div_mult_pos_lt1"
            ("z"
             "((pn!1*2 ^ -(2 + l!1))/x!1) *(x!1 ^ pn!1 + 1)"
             "py"
             "x!1 ^ pn!1"
             "x"
             "1/x!1 ^ pn!1"))
           (rewrite "div_cancel2" -1)
           (replace -1 -5)
           (hide -1)
           (lemma "div_mult_pos_lt1"
            ("z"
             "pn!1 * 2 ^ -(2 + l!1) * (x!1 ^ pn!1 + 1)"
             "py"
             "x!1"
             "x"
             "1"))
           (replace -1 -5)
           (hide -1)
           (lemma "expt_plus" ("n0x" "2" "i" "-l!1" "j" "-2"))
           (case "2^-2 = 1/4")
           (("1"
             (replace -1)
             (replace -2)
             (lemma "both_sides_div_pos_lt1"
              ("x" "pn!1 * 2 ^ -l!1" "y" "2" "pz" "4"))
             (lemma "div_mult_pos_lt1"
              ("z" "x!1 ^ pn!1 + 1" "py" "2" "x" "x!1"))
             (lemma "both_sides_times_pos_lt1"
              ("pz"
               "(x!1 ^ pn!1 + 1)"
               "x"
               "pn!1 * 2 ^ -l!1 / 4"
               "y"
               "1/2"))
             (lemma "expt_product"
              ("n0x"
               "1 + 2 ^ -l!1 * (1 / 4) / x!1"
               "n0y"
               "x!1"
               "i"
               "pn!1"))
             (replace -1)
             (hide -1)
             (lemma "both_sides_times_pos_lt1"
              ("x"
               "(1 + 2 ^ -l!1 * (1 / 4) / x!1) ^ pn!1"
               "y"
               "1 + 1 / x!1 ^ pn!1"
               "pz"
               "x!1^pn!1"))
             (assert))
            ("2" (hide-all-but 1) (grind))))
          ("2" (assert))))
        ("2" (assert))))
      ("2" (assert))))
    ("2" (assert))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: prelude_A4
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (case "1 <= n!1")
   (("1"
     (lemma "A4_lemma_ineq1" ("n" "n!1" "pn" "pn!1" "x" "x!1"))
     (lemma "A4_lemma_ineq2" ("pn" "pn!1" "l" "l!1" "x" "x!1" "n" "n!1"))
     (lemma "posreal_exp" ("i" "-n!1" "x" "2"))
     (lemma "posreal_exp" ("i" "-(2 + l!1 + n!1)" "x" "2"))
     (lemma "sqrt_lt" ("nny" "2" "nnz" "sq(2)"))
     (lemma "sqrt_lt" ("nny" "1" "nnz" "2"))
     (rewrite "sqrt_1")
     (rewrite "sqrt_sq")
     (expand "sq")
     (assert)
     (lemma "both_sides_div_pos_lt2" ("pz" "1" "px" "2" "py" "sqrt(2)"))
     (lemma "posreal_div_posreal_is_posreal"
      ("px" "e2!1" "py" "sqrt(2)"))
     (lemma "posreal_exp" ("i" "pn!1" "x" "x!1"))
     (lemma "posreal_div_posreal_is_posreal" ("px" "e1!1" "py" "x!1"))
     (lemma "A4_5pp" ("x" "e1!1/x!1"))
     (assert)
     (inst - "pn!1")
     (inst - "e2!1/x!1 ^ pn!1")
     (lemma "posreal_div_posreal_is_posreal"
      ("px" "e2!1" "py" "x!1^pn!1"))
     (assert)
     (lemma "expt_product" ("n0x" "1+e1!1 / x!1" "n0y" "x!1" "i" "pn!1"))
     (replace -1)
     (lemma "div_mult_pos_lt2"
      ("x"
       "(1 + e1!1 / x!1) ^ pn!1"
       "z"
       "x!1 ^ pn!1 + e2!1"
       "py"
       "x!1 ^ pn!1"))
     (replace -1 1 rl)
     (hide -1 -2)
     (lemma "div_distributes"
      ("x" "x!1 ^ pn!1" "y" "e2!1" "n0z" "x!1 ^ pn!1"))
     (rewrite "div_simp" -1)
     (replace -1 1 rl)
     (hide -1)
     (lemma "expt_plus" ("n0x" "2"))
     (inst-cp - "-n!1" "-(l!1+2)")
     (inst - "-l!1" "-2")
     (case "2^-2=1/4")
     (("1"
       (replace -1)
       (replace -2)
       (replace -3)
       (replace -23 * rl)
       (lemma "posreal_exp" ("i" "-l!1" "x" "2"))
       (lemma "both_sides_times_pos_lt1"
        ("x" "pn!1 * 2 ^ -l!1" "y" "2" "pz" "2 ^ -n!1*2^-2 / x!1"))
       (("1"
         (lemma "both_sides_times_pos_lt1"
          ("x"
           "2 ^ -n!1 + x!1 ^ pn!1"
           "y"
           "2*x!1"
           "pz"
           "2 ^ -n!1/(x!1*2*x!1 ^ pn!1)"))
         (("1"
           (lemma "div_cancel1"
            ("n0z" "2 * x!1" "x" "2 ^ -n!1 /x!1 ^ pn!1"))
           (replace -1 -2)
           (hide -1)
           (simplify -1)
           (lemma "div_cancel1"
            ("n0z" "x!1 ^ pn!1" "x" "2 ^ -n!1 / (2 * x!1)"))
           (replace -1)
           (hide -1)
           (lemma "lt_times_lt_pos1"
            ("px"
             "pn!1 * 2 ^ -l!1*2^-2"
             "y"
             "1/2"
             "nnz"
             "2 ^ -n!1 * (2 ^ -n!1 / (2 * (x!1 ^ pn!1 * x!1))) +
                    2 ^ -n!1 / (2 * x!1)"
             "w"
             "2 ^ -n!1 / x!1 ^ pn!1"))
           (("1"
             (lemma "both_sides_times_pos_lt1"
              ("x" "pn!1 * 2 ^ -l!1" "y" "2" "pz" "2^-2"))
             (replace -6)
             (replace -26)
             (flatten -1)
             (split -2)
             (("1"
               (flatten -4)
               (replace -28 * rl)
               (case "2 ^ -n!1 <= x!1")
               (("1" (assert)) ("2" (assert))))
              ("2"
               (hide-all-but (-25 1))
               (lemma "both_sides_div_pos_lt1"
                ("pz" "4" "x" "pn!1 * 2 ^ -l!1" "y" "2"))
               (assert))
              ("3" (hide 2) (assert))))
            ("2"
             (lemma "posreal_div_posreal_is_posreal"
              ("px" "2 ^ -n!1 * 2 ^ -n!1" "py" "2 * x!1 ^ pn!1 * x!1"))
             (("1"
               (lemma "posreal_div_posreal_is_posreal"
                ("px" "2 ^ -n!1" "py" "2 * x!1"))
               (hide-all-but (-1 -2 1))
               (assert))
              ("2"
               (hide-all-but (-10 1 -21 -16 -13))
               (lemma "posreal_times_posreal_is_posreal"
                ("px" "2*x!1" "py" "x!1^pn!1"))
               (assert))))
            ("3"
             (lemma "posreal_times_posreal_is_posreal"
              ("px" "2*x!1" "py" "x!1^pn!1"))
             (hide-all-but (-1 1))
             (assert))))
          ("2"
           (lemma "posreal_times_posreal_is_posreal"
            ("px" "2*x!1" "py" "x!1^pn!1"))
           (replace -26 * rl)
           (lemma "posreal_div_posreal_is_posreal"
            ("px" "e2!1" "py" "2 * x!1 * x!1 ^ pn!1"))
           (("1" (assert)) ("2" (assert))))
          ("3"
           (lemma "posreal_times_posreal_is_posreal"
            ("px" "2*x!1" "py" "x!1^pn!1"))
           (hide-all-but (-1 -2))
           (assert))))
        ("2"
         (replace -2)
         (replace -24 * rl)
         (lemma "posreal_div_posreal_is_posreal"
          ("px" "e2!1" "py" "4*x!1"))
         (hide-all-but (-1 1))
         (assert))))
      ("2" (hide-all-but 1) (grind))))
    ("2"
     (case-replace "n!1=0")
     (("1"
       (rewrite "expt_x0")
       (replace -8)
       (lemma "A4_lemma_large_UB_0" ("pn" "pn!1" "x" "x!1" "l" "l!1"))
       (assert))
      ("2" (assert))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: prelude_A4
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "posreal_exp" ("i" "-n!1" "x" "2"))
   (lemma "sqrt_pos" ("px" "2"))
   (lemma "posreal_div_posreal_is_posreal" ("px" "e2!1" "py" "sqrt(2)"))
   (("1"
     (lemma "posreal_exp" ("x" "2" "i" "-(n!1 + l!1 + 2)"))
     (lemma "sqrt_lt" ("nny" "2" "nnz" "sq(2)"))
     (rewrite "sqrt_sq")
     (expand "sq")
     (lemma "both_sides_div_pos_lt2" ("pz" "1" "px" "2" "py" "sqrt(2)"))
     (lemma "expt_plus" ("n0x" "2" "i" "-n!1" "j" "-(l!1+2)"))
     (replace -1)
     (hide -1)
     (lemma "both_sides_expt_gt1_lt"
      ("gt1x" "2" "i" "-(l!1 + 2)" "j" "-1"))
     (assert)
     (expand "^" -1 2)
     (expand "expt")
     (expand "expt")
     (lemma "posreal_exp" ("x" "x!1" "i" "pn!1"))
     (lemma "A4_6nn_general"
      ("x" "-e1!1/x!1" "y" "-e2!1/x!1 ^ pn!1" "n" "pn!1"))
     (("1"
       (lemma "expt_product"
        ("n0x" "1-e1!1 / x!1" "n0y" "x!1" "i" "pn!1"))
       (("1"
         (replace -1 1)
         (hide -1)
         (lemma "div_mult_pos_lt1"
          ("z"
           "x!1 ^ pn!1 - e2!1"
           "x"
           "(1 - e1!1 / x!1) ^ pn!1"
           "py"
           "x!1 ^ pn!1"))
         (("1"
           (replace -1 1 rl)
           (hide -1)
           (lemma "div_distributes_minus"
            ("x" "x!1 ^ pn!1" "y" "e2!1" "n0z" "x!1 ^ pn!1"))
           (rewrite "div_simp" -1)
           (replace -1 1 rl)
           (lemma "posreal_div_posreal_is_posreal"
            ("px" "e2!1" "py" "x!1^pn!1"))
           (lemma "posreal_div_posreal_is_posreal"
            ("px" "e1!1" "py" "x!1"))
           (lemma "both_sides_times_neg_gt2" ("x" "0" "nz" "-1"))
           (inst-cp - "e1!1 / x!1")
           (simplify -2)
           (replace -3 -2)
           (simplify -2)
           (inst - "e2!1 / x!1 ^ pn!1")
           (("1"
             (replace -4 -1)
             (simplify -1)
             (expand ">")
             (replace -1)
             (replace -2)
             (lemma "div_mult_pos_lt2" ("x" "-1" "z" "-e1!1" "py" "x!1"))
             (lemma "both_sides_times_neg_lt1"
              ("nz" "-1" "y" "e1!1" "x" "x!1"))
             (lemma "both_sides_times_pos_lt1"
              ("x" "2 ^ -(2 + l!1)" "y" "1/2" "pz" "2^-n!1"))
             (lemma "both_sides_times_pos_lt1"
              ("pz" "e2!1" "x" "1/2" "y" "1/sqrt(2)"))
             (lemma "both_sides_times_neg_lt1"
              ("y"
               "pn!1 *e1!1/x!1"
               "x"
               "e2!1/x!1^pn!1 - e1!1 /x!1 *(e2!1/x!1 ^ pn!1)"
               "nz"
               "-1"))
             (lemma "div_mult_pos_lt2"
              ("x"
               "pn!1 * e1!1 / x!1"
               "z"
               "e2!1 *(1-e1!1/x!1)"
               "py"
               "x!1 ^ pn!1"))
             (lemma " expt_plus" ("n0x" "2" "i" "-l!1" "j" "-2"))
             (lemma "both_sides_times_pos_lt1"
              ("x" "pn!1* 2 ^ -l!1" "y" "2" "pz" "2 ^ -n!1* 2 ^ -2"))
             (assert)
             (hide 2)
             (replace -2)
             (case-replace "2^-2=1/4")
             (("1"
               (replace -5 1)
               (replace -4 1)
               (hide -1 -3 -4 -5 -8)
               (lemma "both_sides_times_pos_lt1"
                ("x" "e1!1 * pn!1" "y" "2^-n!1 /2" "pz" "x!1 ^ pn!1"))
               (lemma "both_sides_div_pos_lt1"
                ("x"
                 "pn!1 * e1!1*x!1 ^ pn!1"
                 "y"
                 "e2!1 * (x!1-e1!1)"
                 "pz"
                 "x!1"))
               (replace -1 1)
               (hide -1)
               (lemma "both_sides_expt_lt1_lt"
                ("lt1x" "x!1" "j" "1" "i" "pn!1"))
               (rewrite "expt_x1")
               (lemma "lt_plus_lt1"
                ("x" "x!1 ^ pn!1" "y" "x!1" "z" "2*e1!1" "w" "x!1"))
               (lemma "both_sides_expt_gt1_le"
                ("gt1x" "2" "i" "-l!1" "j" "0"))
               (rewrite "expt_x0")
               (assert)
               (lemma "both_sides_times_pos_le1"
                ("x" "2 ^ -l!1" "y" "1" "pz" "2*2 ^ -n!1* 2 ^ -2"))
               (assert)
               (lemma "both_sides_times_pos_lt1"
                ("x" "x!1 ^ pn!1" "y" "2*(x!1-e1!1)" "pz" "e2!1/2"))
               (expand "^" -2 1)
               (expand "^" -2 3)
               (expand "expt")
               (expand "expt")
               (expand "expt")
               (assert))
              ("2" (hide-all-but 1) (grind))))
            ("2" (assert))))
          ("2" (assert))))
        ("2"
         (hide -1 2)
         (expand "/=")
         (lemma "div_cancel3")
         (inst - "x!1" "e1!1" "1")
         (case "e1!1<x!1")
         (("1" (assert))
          ("2"
           (lemma "both_sides_div_pos_lt2"
            ("pz" "e2!1" "px" "2" "py" "sqrt(2)"))
           (hide -2 -3 -4 -8)
           (lemma "both_sides_times_pos_lt1"
            ("pz" "e2!1" "x" "2 ^ -(2 + l!1)" "y" "1 / 2"))
           (assert))))))
      ("2" (assert))))
    ("2" (assert))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: prelude_A4
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "A4_lemma_large_UB"
    ("x" "x!1" "pn" "pn!1" "n" "n!1" "e1" "e1!1" "e2" "e2!1" "l" "l!1"))
   (lemma "A4_lemma_large_LB"
    ("x" "x!1" "pn" "pn!1" "n" "n!1" "e1" "e1!1" "e2" "e2!1" "l" "l!1"))
   (assert))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: prelude_A4
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (split -1)
   (("1"
     (replace -1)
     (rewrite "expt_x1")
     (rewrite "expt_x1")
     (rewrite "expt_x1")
     (lemma "posreal_exp" ("x" "2"))
     (inst-cp - "-n!1")
     (inst - "-(n!1 + l!1 + 2)")
     (lemma "both_sides_expt_gt1_lt"
      ("gt1x" "2" "i" "-(n!1 + l!1 + 2)" "j" "-n!1"))
     (assert))
    ("2"
     (replace -1)
     (expand "^" 1)
     (expand "expt")
     (expand "expt")
     (expand "expt")
     (simplify 1)
     (lemma "both_sides_expt_gt1_le" ("gt1x" "2" "i" "-n!1" "j" "0"))
     (assert)
     (rewrite "expt_x0")
     (lemma "posreal_exp" ("x" "2" "i" "-n!1"))
     (lemma "expt_plus" ("n0x" "2" "i" "-n!1" "j" "-(l!1+2)"))
     (replace -1)
     (hide -1)
     (name-replace "AA" "2 ^ -n!1")
     (replace -9)
     (hide -9)
     (lemma "sqrt_lt" ("nny" "1" "nnz" "2"))
     (assert)
     (rewrite "sqrt_1")
     (lemma "posreal_div_posreal_is_posreal" ("px" "AA" "py" "sqrt(2)"))
     (expand ">" -1)
     (lemma "le_lt_transitivity" ("x" "0" "y" "AA / sqrt(2)" "z" "x!1"))
     (replace -2 -1)
     (replace -7 -1)
     (simplify -1)
     (hide (-2 -3 -7))
     (lemma "A4_logsize" ("pn" "pn!1" "l" "l!1"))
     (assert)
     (hide (-7 -8))
     (hide -5)
     (lemma "posreal_exp" ("i" "-(2 + l!1)" "x" "2"))
     (lemma "both_sides_expt_gt1_le"
      ("gt1x" "2" "i" "-(2 + l!1)" "j" "-3"))
     (assert)
     (name-replace "B" "2 ^ -(2 + l!1)")
     (replace -8)
     (expand "^")
     (expand "expt")
     (expand "expt")
     (expand "expt")
     (expand "expt")
     (hide (-3 -8))
     (lemma "both_sides_plus_lt1" ("z" "x!1 * x!1"))
     (inst-cp - "- AA" "AA * B * (AA * B) - 2 * (AA * B * x!1)")
     (replace -2)
     (inst - "AA * B * (AA * B) + 2 * (AA * B * x!1)" "AA")
     (replace -1)
     (hide (-1 -2))
     (lemma "both_sides_times_pos_lt1" ("pz" "AA"))
     (inst-cp - "-1" "B *(AA * B - 2*x!1)")
     (replace -2)
     (inst - "B * (AA*B + 2*x!1)" "1")
     (replace -1)
     (hide (-1 -2))
     (lemma "le_times_le_pos" ("nnx" "AA" "y" "1" "nnz" "B" "w" "1/8"))
     (assert)
     (lemma "both_sides_times_pos_lt1" ("x" "x!1" "y" "1" "pz" "2"))
     (replace -1 -8 rl)
     (hide -1)
     (lemma "lt_plus_lt1" ("x" "AA * B" "y" "1/8" "z" "x!1 * 2" "w" "2"))
     (replace -2 -1)
     (replace -8 -1)
     (lemma "lt_times_lt_pos2"
      ("pz" "B" "w" "1/8" "nnx" "AA * B + x!1 * 2" "y" "1 / 8 + 2"))
     (assert))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: prelude_A4
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "both_sides_sqrt_lt3" ("nnx" "0" "nny" "2"))
   (assert)
   (lemma "posreal_exp" ("i" "-n!1" "x" "2"))
   (lemma "posreal_exp" ("i" "-(2 + l!1 + n!1)" "x" "2"))
   (lemma "both_sides_plus_lt1"
    ("x" "x!1" "y" "e2!1 / sqrt(2)" "z" "e1!1"))
   (lemma "expt_plus" ("n0x" "2" "i" "-n!1" "j" "-(l!1+2)"))
   (replace -1)
   (hide -1)
   (lemma "both_sides_expt_gt1_le"
    ("gt1x" "2" "i" "-(l!1 + 2)" "j" "-3"))
   (lemma "posreal_exp" ("i" "-(l!1+2)" "x" "2"))
   (lemma "both_sides_expt_pos_lt"
    ("pm"
     "pn!1"
     "px"
     "x!1 + e1!1"
     "py"
     "e2!1*(1/sqrt(2)+2 ^ -(l!1 + 2))"))
   (("1"
     (replace -13 (-12 -5 -6) rl)
     (replace -12)
     (replace -4 -1)
     (simplify -1)
     (lemma "expt_product"
      ("n0x" "2 ^ -(2 + l!1)+ 1 / sqrt(2)" "n0y" "e2!1" "i" "pn!1"))
     (("1"
       (lemma "both_sides_expt_pos_le"
        ("pm"
         "pn!1"
         "px"
         "2 ^ -(2 + l!1) + 1 / sqrt(2)"
         "py"
         "2^-3+ 1 / sqrt(2)"))
       (("1"
         (lemma "both_sides_plus_le1"
          ("x" "2 ^ -(l!1 + 2)" "y" "2 ^ -3" "z" "1 / sqrt(2)"))
         (lemma "A4_sqrt_ineq2")
         (lemma "both_sides_expt_pos_lt"
          ("px" "1 / sqrt(2) + 2 ^ -3" "py" "1" "pm" "pn!1"))
         (("1"
           (rewrite "expt_1i")
           (assert)
           (lemma "both_sides_times_pos_lt1"
            ("x"
             "(2 ^ -(2 + l!1) + 1 / sqrt(2)) ^ pn!1"
             "y"
             "1"
             "pz"
             "e2!1 ^ pn!1"))
           (("1"
             (case "n!1=0")
             (("1"
               (replace -1)
               (rewrite "expt_x0")
               (replace -20)
               (assert)
               (rewrite "expt_1i")
               (lemma "both_sides_expt_lt1_le"
                ("lt1x" "x!1" "i" "pn!1" "j" "2"))
               (expand "^" -1 2)
               (expand "expt" -1)
               (expand "expt" -1)
               (expand "expt" -1)
               (lemma "lt_times_lt_pos1"
                ("px"
                 "x!1"
                 "y"
                 "1 / sqrt(2)"
                 "nnz"
                 "x!1"
                 "w"
                 "1 / sqrt(2)"))
               (assert)
               (rewrite "div_times" -1)
               (lemma "sqrt_square1" ("nnx" "2"))
               (expand "square")
               (replace -1)
               (assert)
               (name-replace "AA" "2^ -(2+l!1)")
               (name-replace "B" "sqrt(2)")
               (name-replace "C" "2^ -3")
               (lemma "posreal_exp" ("i" "pn!1" "x" "x!1"))
               (assert))
              ("2"
               (assert)
               (case "1<=n!1")
               (("1"
                 (lemma "both_sides_expt_gt1_le"
                  ("gt1x" "2" "i" "-n!1" "j" "-1"))
                 (assert)
                 (expand "^" -1 2)
                 (expand "expt" -1)
                 (expand "expt" -1)
                 (replace -21 -1 rl)
                 (lemma "both_sides_expt_lt1_lt"
                  ("lt1x" "e2!1" "j" "1" "i" "pn!1"))
                 (("1"
                   (assert)
                   (rewrite "expt_x1")
                   (assert)
                   (lemma "lt_times_lt_pos1"
                    ("px"
                     "e2!1 ^ pn!1"
                     "y"
                     "e2!1"
                     "nnz"
                     "(2 ^ -(2 + l!1) + 1 / sqrt(2)) ^ pn!1"
                     "w"
                     "1"))
                   (("1"
                     (lemma "posreal_exp" ("i" "pn!1" "x" "x!1"))
                     (assert))
                    ("2"
                     (lemma "posreal_div_posreal_is_posreal"
                      ("px" "1" "py" "sqrt(2)"))
                     (lemma "expt_pos" ("px" "2" "i" "-(2+l!1)"))
                     (lemma "expt_pos"
                      ("px" "2 ^ -(2 + l!1) + 1 / sqrt(2)" "i" "pn!1"))
                     (assert))))
                  ("2" (assert))))
                ("2" (assert))))))
            ("2" (lemma "expt_pos" ("px" "e2!1" "i" "pn!1")) (assert))))
          ("2"
           (lemma "expt_pos" ("px" "2" "i" "-3"))
           (lemma "posreal_div_posreal_is_posreal"
            ("px" "1" "py" "sqrt(2)"))
           (assert))))
        ("2"
         (lemma "posreal_div_posreal_is_posreal"
          ("px" "1" "py" "sqrt(2)"))
         (lemma "expt_pos" ("px" "2" "i" "-3"))
         (assert))
        ("3"
         (lemma "posreal_div_posreal_is_posreal"
          ("px" "1" "py" "sqrt(2)"))
         (lemma "expt_pos" ("px" "2" "i" "-(2+l!1)"))
         (assert))))
      ("2"
       (lemma "posreal_div_posreal_is_posreal" ("px" "1" "py" "sqrt(2)"))
       (lemma "expt_pos" ("px" "2" "i" "-(2+l!1)"))
       (assert)
       (lemma "posreal_plus_nnreal_is_posreal"
        ("px" "2^ -(2+l!1)" "nny" "1/sqrt(2)"))
       (assert)
       (hide-all-but (-1 1))
       (name-replace "AA" "2 ^ -(2 + l!1) + 1 / sqrt(2)")
       (grind))))
    ("2"
     (lemma "posreal_div_posreal_is_posreal" ("px" "1" "py" "sqrt(2)"))
     (lemma "expt_pos" ("px" "2" "i" "-(2+l!1)"))
     (lemma "posreal_times_posreal_is_posreal"
      ("px" "2^ -(2+l!1) + 1/sqrt(2)" "py" "e2!1"))
     (("1" (assert)) ("2" (assert))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: prelude_A4
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "posreal_exp" ("i" "-n!1" "x" "2"))
   (lemma "posreal_exp" ("i" "-(l!1+2)" "x" "2"))
   (lemma "posreal_exp" ("i" "pn!1" "x" "x!1"))
   (("1"
     (lemma "expt_plus" ("n0x" "2" "i" "-n!1" "j" "-(l!1+2)"))
     (replace -1)
     (lemma "both_sides_expt_gt1_le"
      ("gt1x" "2" "i" "-(l!1 + 2)" "j" "-3"))
     (assert)
     (hide -2)
     (name-replace "B" "2 ^ -(2 + l!1)")
     (expand "^" -1)
     (expand "expt")
     (expand "expt")
     (expand "expt")
     (expand "expt")
     (lemma "sqrt_lt" ("nny" "1" "nnz" "2"))
     (rewrite "sqrt_1")
     (lemma "div_mult_pos_lt1" ("x" "1" "py" "sqrt(2)" "z" "1"))
     (assert)
     (lemma "both_sides_expt_gt1_le" ("gt1x" "2" "i" "-n!1" "j" "0"))
     (rewrite "expt_x0")
     (assert)
     (name-replace "AA" "2^-n!1")
     (replace -12)
     (replace -13)
     (lemma "lt_times_lt_pos1"
      ("px" "AA" "y" "1" "nnz" "1 / sqrt(2)" "w" "1"))
     (assert)
     (lemma "both_sides_expt_pos_lt" ("pm" "pn!1" "px" "x!1" "py" "1"))
     (assert)
     (rewrite "expt_1i")
     (lemma "trich_lt" ("x" "x!1" "y" "AA*B"))
     (lemma "both_sides_expt_lt1_le" ("lt1x" "x!1" "i" "pn!1" "j" "2"))
     (assert)
     (expand "^" -1 2)
     (expand "expt")
     (expand "expt")
     (expand "expt")
     (lemma "lt_times_lt_pos1"
      ("px" "x!1" "y" "AA / sqrt(2)" "nnz" "x!1" "w" "AA / sqrt(2)"))
     (assert)
     (rewrite "div_times" -1)
     (lemma "sqrt_sq" ("x" "2"))
     (expand "sq")
     (lemma "both_sides_div_pos_le1" ("x" "AA" "y" "1" "pz" "2"))
     (lemma "both_sides_minus_le1" ("x" "AA/2" "y" "1/2" "z" "1"))
     (lemma "both_sides_times_pos_le1"
      ("x" "AA / 2 - 1" "y" "-1/2" "pz" "AA"))
     (assert)
     (split -7)
     (("1"
       (case "even?(pn!1)")
       (("1"
         (lemma "expt_neg_even" ("n" "pn!1" "nx" "x!1 - AA * B"))
         (("1"
           (assert)
           (replace -1)
           (lemma "posreal_exp" ("i" "pn!1" "x" "-(x!1-AA*B)"))
           (assert))
          ("2" (assert))))
        ("2"
         (rewrite "odd_even")
         (lemma "expt_neg_odd" ("n" "pn!1" "nx" "x!1 - AA * B"))
         (("1"
           (assert)
           (replace -1)
           (hide (-1 -5 -6))
           (hide -1)
           (lemma "lt_times_lt_pos1"
            ("px" "AA" "y" "1" "nnz" "1/2-B*B" "w" "1"))
           (("1"
             (lemma "lt_times_lt_nn1"
              ("nnx" "0" "y" "B" "nnz" "0" "w" "B"))
             (assert)
             (hide -1)
             (lemma "both_sides_times_neg_lt1"
              ("y"
               "x!1 ^ pn!1 - AA"
               "x"
               "-((-(x!1 - AA * B)) ^ pn!1)"
               "nz"
               "-1"))
             (replace -1 1 rl)
             (hide -1)
             (simplify 1)
             (lemma "both_sides_expt_pos_le"
              ("pm" "pn!1" "py" "AA*B" "px" "AA*B-x!1"))
             (assert)
             (lemma "both_sides_expt_lt1_le"
              ("lt1x" "AA*B" "j" "2" "i" "pn!1"))
             (("1"
               (expand "^" -1 2)
               (expand "expt")
               (expand "expt")
               (expand "expt")
               (lemma "le_times_le_pos"
                ("nnx" "B" "y" "1/8" "nnz" "B" "w" "1/8"))
               (assert)
               (rewrite "div_times" -1)
               (lemma "both_sides_times_pos_le1"
                ("x" "B*B" "y" "1/64" "pz" "AA*AA"))
               (assert))
              ("2"
               (assert)
               (lemma "le_times_le_pos"
                ("nnx" "AA" "y" "1" "nnz" "B" "w" "1/8"))
               (assert))))
            ("2"
             (lemma "le_times_le_pos"
              ("nnx" "B" "y" "1/8" "nnz" "B" "w" "1/8"))
             (assert))))
          ("2" (assert))))))
      ("2" (replace -1) (rewrite "expt_0pn") (assert))
      ("3"
       (lemma "posreal_exp" ("i" "pn!1" "x" "x!1 - AA * B"))
       (("1" (assert)) ("2" (assert))))))
    ("2" (assert))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: prelude_A4
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (typepred "pn!1")
   (expand ">" -1)
   (lemma "lt_equiv_le_plus_one" ("x" "0" "y" "pn!1"))
   (replace -1 -2)
   (expand "<=" -2)
   (hide -1)
   (lemma "lt_equiv_le_plus_one" ("x" "1" "y" "pn!1"))
   (replace -1 -2)
   (hide -1)
   (split -1)
   (("1"
     (lemma "A4_logsize" ("pn" "pn!1" "l" "l!1"))
     (assert)
     (lemma "A4_lemma_small_UB"
      ("pn"
       "pn!1"
       "x"
       "x!1"
       "e2"
       "e2!1"
       "e1"
       "e1!1"
       "l"
       "l!1"
       "n"
       "n!1"))
     (assert)
     (lemma "A4_lemma_small_LB"
      ("pn"
       "pn!1"
       "x"
       "x!1"
       "e2"
       "e2!1"
       "e1"
       "e1!1"
       "l"
       "l!1"
       "n"
       "n!1"))
     (assert))
    ("2"
     (replace -1 (1 -4 -5) rl)
     (rewrite "expt_x1")
     (rewrite "expt_x1")
     (rewrite "expt_x1")
     (lemma "expt_plus" ("n0x" "2" "i" "-n!1" "j" "-(l!1+2)"))
     (replace -1)
     (lemma "posreal_exp" ("x" "2"))
     (inst-cp - "-n!1")
     (inst-cp - "-(l!1 + 2)")
     (lemma "both_sides_expt_gt1_lt"
      ("gt1x" "2" "i" "-(l!1 + 2)" "j" "0"))
     (assert)
     (rewrite "expt_x0")
     (name-replace "AA" "2 ^ -(2 + l!1)")
     (replace -12 (-11 -4) rl)
     (hide (-2 -5 -6 -7 -8 -9 -10 -12))
     (replace -4 1)
     (lemma "both_sides_times_pos_lt1" ("x" "AA" "y" "1" "pz" "e2!1"))
     (assert))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: prelude_A4
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "both_sides_sqrt1" ("nnx" "2" "nny" "0"))
   (case "x!1<e2!1/sqrt(2)")
   (("1"
     (lemma "posreal_exp" ("i" "-n!1" "x" "2"))
     (lemma "A4_lemma_small"
      ("n"
       "n!1"
       "pn"
       "pn!1"
       "x"
       "x!1"
       "e1"
       "e1!1"
       "e2"
       "e2!1"
       "l"
       "l!1"))
     (assert))
    ("2"
     (rewrite "lt_equiv_not_le" 1)
     (case "3<=pn!1")
     (("1"
       (lemma "A4_lemma_large_ge3"
        ("n"
         "n!1"
         "pn"
         "pn!1"
         "x"
         "x!1"
         "e1"
         "e1!1"
         "e2"
         "e2!1"
         "l"
         "l!1"))
       (assert))
      ("2"
       (case "pn!1=1 OR pn!1=2")
       (("1"
         (lemma "A4_lemma_large_lt3"
          ("n"
           "n!1"
           "pn"
           "pn!1"
           "x"
           "x!1"
           "e1"
           "e1!1"
           "e2"
           "e2!1"
           "l"
           "l!1"))
         (assert)
         (replace -2 -1)
         (assert))
        ("2" (hide-all-but (1 2)) (grind))))))
    ("3" (assert))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: prelude_A4
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "A4_lemma_px"
    ("e1" "e1!1" "e2" "e2!1" "x" "x!1" "l" "l!1" "pn" "pn!1" "n" "n!1"))
   (assert)
   (flatten)
   (assert)
   (lemma "posreal_exp" ("x" "2" "i" "-(2 + l!1 + n!1)"))
   (expand "<=" -4)
   (split -4)
   (("1"
     (lemma "both_sides_expt_pos_lt"
      ("pm" "pn!1" "px" "x!1 - e1!1" "py" "e1!1 + x!1"))
     (("1" (assert)) ("2" (assert))))
    ("2"
     (replace -1)
     (rewrite "expt_0pn")
     (lemma "posreal_exp" ("i" "pn!1" "x" "2*x!1"))
     (assert))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: prelude_A4
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "sqrt_lt" ("nny" "2" "nnz" "sq(2)"))
   (rewrite "sqrt_sq")
   (expand "sq")
   (lemma "posreal_exp" ("i" "-n!1" "x" "2"))
   (lemma "both_sides_div_pos_lt2" ("pz" "e2!1" "py" "sqrt(2)" "px" "2"))
   (("1"
     (replace -3)
     (simplify -1)
     (lemma "expt_plus" ("n0x" "2" "i" "-n!1" "j" "-(l!1+2)"))
     (replace -1)
     (lemma "both_sides_expt_gt1_lt"
      ("gt1x" "2" "i" "-(l!1+2)" "j" "-1"))
     (expand "^" -1 2)
     (expand "expt")
     (expand "expt")
     (lemma "posreal_exp" ("i" "-(2 + l!1)" "x" "2"))
     (lemma "A4_lemma_small"
      ("x"
       "x!1"
       "pn"
       "pn!1"
       "l"
       "l!1"
       "e1"
       "e1!1"
       "e2"
       "e2!1"
       "n"
       "n!1"))
     (assert)
     (split -1)
     (("1" (propax))
      ("2"
       (hide 2)
       (lemma "both_sides_times_pos_lt2"
        ("pz" "e2!1" "x" "2 ^ -(2 + l!1)" "y" "1 / 2"))
       (assert))))
    ("2" (assert))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: prelude_A4
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "A4_lemma_0_px"
    ("n" "n!1" "pn" "pn!1" "x" "x!1" "e1" "e1!1" "e2" "e2!1" "l" "l!1"))
   (assert)
   (flatten)
   (replace -1)
   (replace -2)
   (simplify 1)
   (lemma "posreal_exp")
   (inst-cp - "-n!1" "2")
   (inst-cp - "-(2 + l!1 + n!1)" "2")
   (inst-cp - "-l!1" "2")
   (inst-cp - "pn!1" "x!1")
   (inst - "pn!1" "e1!1+x!1")
   (split 1)
   (("1"
     (lemma "both_sides_expt_lt1_le" ("lt1x" "x!1" "j" "1" "i" "pn!1"))
     (("1"
       (rewrite "expt_x1")
       (assert)
       (lemma "both_sides_minus_le1"
        ("z" "e2!1" "x" "x!1 ^ pn!1" "y" "x!1"))
       (name-replace "AA" "x!1 ^ pn!1 - e2!1")
       (name-replace "B" "(e1!1 + x!1) ^ pn!1")
       (assert)
       (lemma "expt_plus" ("n0x" "2" "i" "-n!1" "j" "-(2 + l!1)"))
       (replace -16 -1 rl)
       (replace -15 -1 rl)
       (lemma "posreal_exp" ("i" "-(2 + l!1)" "x" "2"))
       (lemma "both_sides_expt_gt1_lt"
        ("gt1x" "2" "i" "-(2 + l!1)" "j" "0"))
       (assert)
       (rewrite "expt_x0")
       (name-replace "C" "2 ^ -(2 + l!1)")
       (replace -18 -10 rl)
       (replace -17 -9 rl)
       (hide (-17 -18 -15 -16 -5 -7 -8 -11))
       (hide -8)
       (lemma "both_sides_minus_lt1" ("x" "x!1" "y" "e1!1" "z" "e2!1"))
       (replace -1 -10 rl)
       (replace -4 -10)
       (lemma "both_sides_times_pos_lt1" ("pz" "e2!1" "x" "C-1" "y" "0"))
       (grind))
      ("2"
       (lemma "both_sides_expt_gt1_lt"
        ("gt1x" "2" "i" "-(2 + l!1 + n!1)" "j" "0"))
       (assert)
       (rewrite "expt_x0")
       (assert))))
    ("2"
     (case "even?(pn!1)")
     (("1"
       (lemma "expt_neg_even" ("n" "pn!1" "nx" "x!1 - e1!1"))
       (assert)
       (replace -1 1)
       (lemma "both_sides_expt_pos_lt"
        ("pm" "pn!1" "px" "e1!1-x!1" "py" "e1!1+x!1"))
       (replace -15 -7 rl)
       (assert))
      ("2"
       (rewrite "odd_even")
       (replace -13 -5 rl)
       (lemma "expt_neg_odd" ("n" "pn!1" "nx" "x!1 - e1!1"))
       (assert)
       (replace -1 1)
       (lemma "posreal_exp" ("i" "pn!1" "x" "e1!1-x!1"))
       (replace -16 -8 rl)
       (assert))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: prelude_A4
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "trich_lt" ("x" "x!1" "y" "0"))
   (split -1)
   (("1"
     (lemma "A4_lemma_0_p"
      ("n"
       "n!1"
       "pn"
       "pn!1"
       "l"
       "l!1"
       "e1"
       "e1!1"
       "e2"
       "e2!1"
       "x"
       "-x!1"))
     (assert)
     (flatten)
     (case "even?(pn!1)")
     (("1"
       (lemma "expt_neg_even" ("n" "pn!1"))
       (replace -2)
       (assert)
       (inst-cp - "x!1")
       (replace -2)
       (name-replace "X1" "(-x!1) ^ pn!1 - e2!1")
       (name-replace "X2" "(-x!1) ^ pn!1 + e2!1")
       (lemma "posreal_exp" ("i" "-(2 + l!1 + n!1)" "x" "2"))
       (lemma "both_sides_expt_pos_lt"
        ("pm" "pn!1" "py" "e1!1-x!1" "px" "e1!1+x!1"))
       (assert)
       (inst-cp - "x!1 - e1!1")
       (replace -4)
       (assert)
       (inst - "-x!1 - e1!1")
       (assert))
      ("2"
       (rewrite "odd_even")
       (lemma "expt_neg_odd" ("n" "pn!1"))
       (replace -2)
       (assert)
       (inst-cp - "x!1")
       (replace -2)
       (lemma "both_sides_expt_pos_lt"
        ("pm" "pn!1" "px" "e1!1+x!1" "py" "e1!1-x!1"))
       (assert)
       (inst-cp - "x!1-e1!1")
       (replace -3)
       (assert)
       (inst - "-(e1!1 + x!1)")
       (replace -2)
       (assert))))
    ("2"
     (replace -1)
     (rewrite "expt_0pn")
     (lemma "posreal_exp" ("i" "pn!1" "x" "e1!1"))
     (("1"
       (assert)
       (case "even?(pn!1)")
       (("1"
         (lemma "expt_neg_even" ("n" "pn!1"))
         (replace -2)
         (assert)
         (inst - "-1*e1!1")
         (replace -1)
         (assert)
         (name "AA" "-(-1 * e1!1)")
         (replace -1)
         (simplify 1)
         (assert)
         (lemma "expt_times"
          ("n0x" "2" "i" "-(2 + l!1 + n!1)" "j" "pn!1"))
         (replace -11)
         (replace -1 1 rl)
         (replace -12)
         (lemma "both_sides_expt_gt1_lt"
          ("gt1x" "2" "i" "-(2 + l!1 + n!1) * pn!1" "j" "-n!1"))
         (assert)
         (typepred "pn!1")
         (expand ">")
         (lemma "lt_equiv_le_plus_one" ("x" "0" "y" "pn!1"))
         (lemma "lt_times_lt_pos1"
          ("px" "1" "y" "pn!1" "nnz" "n!1" "w" "2 + l!1 + n!1"))
         (assert))
        ("2"
         (rewrite "odd_even")
         (lemma "expt_neg_odd" ("n" "pn!1"))
         (assert)
         (replace -2)
         (assert)
         (inst - " -1 * e1!1")
         (replace -1)
         (replace -9)
         (lemma "expt_times"
          ("n0x" "2" "i" "-(2 + l!1 + n!1)" "j" "pn!1"))
         (replace -1 1 rl)
         (hide (-1 -2))
         (assert)
         (lemma "posreal_exp" ("i" "-(2 + l!1 + n!1) * pn!1" "x" "2"))
         (assert)
         (lemma "both_sides_expt_gt1_lt"
          ("gt1x" "2" "i" "-(2 + l!1 + n!1) * pn!1" "j" "-n!1"))
         (lemma "lt_times_lt_pos1"
          ("px" "1" "y" "pn!1" "nnz" "n!1" "w" "2 + l!1 + n!1"))
         (assert))))
      ("2" (assert))))
    ("3"
     (lemma "A4_lemma_0_p"
      ("x"
       "x!1"
       "n"
       "n!1"
       "pn"
       "pn!1"
       "e1"
       "e1!1"
       "e2"
       "e2!1"
       "l"
       "l!1"))
     (assert))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: prelude_A4
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "A4_lemma_p"
    ("n" "n!1" "pn" "pn!1" "e1" "e1!1" "e2" "e2!1" "l" "l!1" "x" "-x!1"))
   (replace -7)
   (replace -8)
   (replace -3 -1 rl)
   (replace -4 -1 rl)
   (assert)
   (flatten)
   (lemma "expt_neg_even" ("n" "pn!1" "nx" "x!1"))
   (replace -6)
   (lemma "expt_neg_even" ("n" "pn!1"))
   (replace -7)
   (simplify)
   (replace -2)
   (name-replace "XN" "(-x!1) ^ pn!1")
   (lemma "posreal_exp" ("i" "-(2 + l!1 + n!1)" "x" "2"))
   (name-replace "B" "2 ^ -(2 + l!1 + n!1)")
   (name-replace "AA" "2 ^ -n!1")
   (replace -9)
   (replace -10)
   (hide (-3 -8 -9 -10 -13 -14))
   (expand "<=" -8)
   (split -8)
   (("1"
     (inst-cp - "B + x!1")
     (("1"
       (inst - "x!1-B")
       (("1" (replace -3) (replace -4) (hide (-3 -4)) (assert))
        ("2" (assert))))
      ("2" (assert))))
    ("2"
     (replace -1)
     (rewrite "expt_0pn")
     (inst - "-2*B")
     (("1" (assert)) ("2" (assert))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: prelude_A4
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "A4_lemma_p"
    ("n" "n!1" "pn" "pn!1" "e1" "e1!1" "e2" "e2!1" "x" "-x!1" "l" "l!1"))
   (replace -7)
   (replace -8)
   (replace -3 -1 rl)
   (replace -4 -1 rl)
   (assert)
   (flatten)
   (lemma "expt_neg_odd" ("n" "pn!1"))
   (replace -6)
   (simplify -1)
   (lemma "posreal_exp" ("i" "-(2 + l!1 + n!1)" "x" "2"))
   (name-replace "B" "2 ^ -(2 + l!1 + n!1)")
   (replace -8)
   (inst-cp - "x!1")
   (replace -3)
   (hide (-3 -8 -9 -13 -14))
   (expand "<=" -9)
   (split -9)
   (("1"
     (inst-cp - "x!1 - B")
     (("1"
       (inst - "B + x!1")
       (("1"
         (name-replace "XN" "(-x!1) ^ pn!1")
         (lemma "both_sides_expt_pos_lt"
          ("pm" "pn!1" "px" "-(B + x!1)" "py" "-(x!1 - B)"))
         (("1" (assert)) ("2" (assert)) ("3" (assert))))
        ("2" (assert))))
      ("2" (assert))))
    ("2"
     (replace -1)
     (rewrite "expt_0pn")
     (lemma "posreal_exp" ("x" "B" "i" "pn!1"))
     (lemma "posreal_exp" ("x" "2*B" "i" "pn!1"))
     (inst - "-2*B")
     (("1" (assert)) ("2" (assert))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: prelude_A4
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "A4_lemma_n_even"
    ("pn" "pn!1" "n" "n!1" "l" "l!1" "x" "x!1" "e1" "e1!1" "e2" "e2!1"))
   (lemma "A4_lemma_n_odd"
    ("pn" "pn!1" "n" "n!1" "l" "l!1" "x" "x!1" "e1" "e1!1" "e2" "e2!1"))
   (replace -8 (-1 -2) rl)
   (replace -7 (-1 -2) rl)
   (replace -3)
   (replace -4)
   (replace -5)
   (replace -6)
   (simplify)
   (name-replace "X1" "x!1 ^ pn!1 - e2!1")
   (name-replace "X2" "x!1 ^ pn!1 + e2!1")
   (name-replace "B" "2 ^ -(2 + l!1 + n!1)")
   (hide (-5 -6))
   (replace -5)
   (lemma "posreal_exp" ("x" "2"))
   (reveal -3)
   (inst - "-(2 + l!1 + n!1)")
   (replace -1)
   (hide -1)
   (expand "<=" -5)
   (split -5)
   (("1"
     (case "even?(pn!1)")
     (("1"
       (lemma "expt_neg_even" ("n" "pn!1"))
       (replace -2)
       (simplify)
       (hide (-5 -8 -9))
       (flatten)
       (inst-cp - "B + x!1")
       (("1"
         (inst - "x!1-B")
         (("1"
           (lemma "both_sides_expt_pos_lt"
            ("pm" "pn!1" "py" "-(x!1 - B)" "px" "-(B + x!1)"))
           (("1" (simplify -1) (assert)) ("2" (assert)) ("3" (assert))))
          ("2" (assert))))
        ("2" (assert))))
      ("2"
       (rewrite "odd_even" 1)
       (hide (-5 -7 -8))
       (lemma "expt_neg_odd" ("n" "pn!1"))
       (replace -2)
       (simplify)
       (inst-cp - "x!1 - B")
       (("1"
         (inst - "B+x!1")
         (("1"
           (lemma "both_sides_expt_pos_lt"
            ("pm" "pn!1" "px" "-(B + x!1)" "py" "-(x!1 - B)"))
           (("1" (assert) (flatten) (assert)) ("2" (assert))
            ("3" (assert))))
          ("2" (assert))))
        ("2" (assert))))))
    ("2"
     (replace -1)
     (rewrite "expt_0pn")
     (case "even?(pn!1)")
     (("1"
       (lemma "expt_neg_even" ("n" "pn!1" "nx" "-2*B"))
       (("1"
         (replace -2)
         (simplify)
         (replace -1)
         (flatten)
         (replace -7)
         (replace -6)
         (lemma "posreal_exp" ("i" "pn!1" "x" "2 * B"))
         (name-replace "C" "2*B")
         (assert))
        ("2" (assert))))
      ("2"
       (rewrite "odd_even" 1)
       (replace -1)
       (simplify)
       (hide -5)
       (lemma "expt_neg_odd" ("n" "pn!1" "nx" "-2*B"))
       (replace -2)
       (simplify)
       (lemma "posreal_exp" ("i" "pn!1" "x" "2*B"))
       (name-replace "C" "2*B")
       (replace -2)
       (flatten)
       (replace -6)
       (replace -7)
       (assert))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: appendix
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "round")
   (split)
   (("1"
     (flatten)
     (typepred "floor(1/2+p/q)")
     (replaces -3 :dir rl)
     (grind-reals))
    ("2"
     (flatten)
     (case-replace "1/2+p/q = (q+2*p)/(2*q)")
     (("1"
       (hide -1)
       (lemma "floor_val")
       (inst? -1)
       (inst -1 "r")
       (assert))
      ("2" (assert))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: appendix
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (lemma "floor_def" ("x" "log2(px!1)"))
   (flatten -1)
   (name-replace "II" "floor(log2(px!1))")
   (split 1)
   (("1"
     (flatten)
     (replace -1 * rl)
     (hide -1)
     (lemma "log2_strict_increasing")
     (lemma "log2_2_expt_i")
     (inst-cp - "i!1")
     (inst - "i!1+1")
     (expand "strict_increasing?")
     (split 1)
     (("1"
       (case "2^i!1 > px!1")
       (("1" (inst - "px!1" "2^i!1") (assert)) ("2" (assert))))
      ("2"
       (case "px!1>=2 ^ (i!1 + 1)")
       (("1" (inst - "2 ^ (i!1 + 1)" "px!1") (assert)) ("2" (assert))))))
    ("2"
     (flatten 1)
     (lemma "log2_2_expt_i" ("i" "i!1"))
     (lemma "log2_2_expt_i" ("i" "i!1+1"))
     (lemma "log2_strict_increasing")
     (expand "strict_increasing?")
     (lemma "trich_lt" ("x" "i!1" "y" "II"))
     (split -1)
     (("1"
       (expand "<=" -5)
       (split -5)
       (("1"
         (inst-cp - "2^i!1" "px!1")
         (inst - "px!1" "2^(i!1+1)")
         (assert))
        ("2" (assert))))
      ("2" (propax))
      ("3"
       (expand "<=" -5)
       (split -5)
       (("1"
         (inst-cp - "2^i!1" "px!1")
         (inst - "px!1" "2^(i!1+1)")
         (assert))
        ("2" (assert))))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: appendix
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (name "l!1" "floor(log2(pn!1))")
   (replace -1)
   (lemma "lemma_A3" ("i" "l!1" "px" "pn!1"))
   (assert)
   (flatten)
   (lemma "posreal_exp" ("i" "-l!1" "x" "2"))
   (lemma "both_sides_times_pos_lt1"
    ("x" "pn!1" "y" "2 ^ (1 + l!1)" "pz" "2 ^ -l!1"))
   (lemma "both_sides_times_pos_le1"
    ("y" "pn!1" "x" "2 ^ l!1" "pz" "2 ^ -l!1"))
   (lemma "expt_div" ("n0x" "2" "j" "l!1"))
   (rewrite "expt_inverse")
   (inst-cp - "l!1")
   (inst - "l!1+1")
   (replace -1)
   (replace -2)
   (hide -1 -2)
   (lemma "expt_inverse" ("n0x" "2" "i" "l!1"))
   (replace -1 * rl)
   (rewrite "expt_x0")
   (rewrite "expt_x1")
   (case "e1!1 <= x!1")
   (("1"
     (lemma "A4_lemma_p"
      ("x"
       "x!1"
       "e1"
       "e1!1"
       "e2"
       "e2!1"
       "n"
       "n!1"
       "pn"
       "pn!1"
       "l"
       "l!1"))
     (("1" (assert) (replace -5) (replace -4) (propax))
      ("2"
       (hide 2)
       (lemma "log2_strict_increasing")
       (expand "strict_increasing?")
       (typepred "pn!1")
       (case-replace "pn!1=1")
       (("1"
         (expand "log2")
         (rewrite "ln_1")
         (rewrite "floor_int")
         (assert))
        ("2"
         (case-replace "pn!1=2")
         (("1"
           (expand "log2" -11)
           (rewrite "div_simp" -11)
           (rewrite "floor_int" -11)
           (assert))
          ("2"
           (inst - "2" "pn!1")
           (assert)
           (hide-all-but (-1 -2 -10 1 2 3))
           (lemma "floor_def" ("x" "log2(pn!1)"))
           (flatten)
           (expand "log2" -4 1)
           (rewrite "div_simp")
           (assert))))))))
    ("2"
     (rewrite "le_equiv_not_lt" 1)
     (case "-e1!1 < x!1")
     (("1"
       (lemma "A4_lemma_0"
        ("x"
         "x!1"
         "e1"
         "e1!1"
         "e2"
         "e2!1"
         "n"
         "n!1"
         "pn"
         "pn!1"
         "l"
         "l!1"))
       (("1" (assert) (assert))
        ("2"
         (hide-all-but (-9 1))
         (case-replace "pn!1=1")
         (("1"
           (expand "log2")
           (rewrite "ln_1")
           (rewrite "floor_int")
           (assert))
          ("2"
           (case-replace "pn!1=2")
           (("1"
             (expand "log2")
             (rewrite "div_simp")
             (rewrite "floor_int")
             (assert))
            ("2"
             (lemma "log2_strict_increasing")
             (expand "strict_increasing?")
             (inst - "2" "pn!1")
             (expand "log2" -1 1)
             (rewrite "div_simp")
             (assert))))))))
      ("2"
       (rewrite "lt_equiv_not_le" 1)
       (lemma "A4_lemma_n"
        ("x"
         "x!1"
         "e1"
         "e1!1"
         "e2"
         "e2!1"
         "n"
         "n!1"
         "pn"
         "pn!1"
         "l"
         "l!1"))
       (("1" (assert) (assert))
        ("2"
         (hide-all-but (-9 1))
         (case-replace "pn!1=1")
         (("1"
           (expand "log2")
           (rewrite "ln_1")
           (rewrite "floor_int")
           (assert))
          ("2"
           (case-replace "pn!1=2")
           (("1" (expand "log2") (rewrite "floor_int") (assert))
            ("2"
             (lemma "log2_strict_increasing")
             (expand "strict_increasing?")
             (inst - "2" "pn!1")
             (expand "log2" -1 1)
             (rewrite "div_simp")
             (assert))))))))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: appendix
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (induct "n")
   (("1" (assert)) ("2" (assert))
    ("3"
     (skosimp*)
     (case "j!1=0")
     (("1" (inst + "1") (grind))
      ("2"
       (assert)
       (skosimp*)
       (inst + "p!1+1")
       (hide -2)
       (typepred "p!1")
       (expand ">=")
       (expand "<=" -1)
       (split -1)
       (("1" (expand "^") (expand "expt" 2) (assert))
        ("2" (replace -1 * rl) (grind))))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: appendix
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skolem!)
   (lemma "archimedean" ("px" "px!1"))
   (skolem!)
   (lemma "epsilon_log2_aux" ("n" "n!1"))
   (skolem!)
   (inst 1 "p!1")
   (lemma "lt_times_lt_pos1"
    ("px" "n!1" "y" "2^p!1" "nnz" "1/n!1" "w" "px!1"))
   (rewrite "div_cancel1")
   (lemma "div_mult_pos_lt1" ("z" "1" "py" "2 ^ p!1" "x" "px!1"))
   (assert))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: appendix
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (case "forall n,m: (m*m <= n AND n < (m+1)*(m+1)) IFF floor_sqrt(n) = m")
   (("1"
     (skosimp)
     (inst - "n!1" "floor_sqrt(n!1)")
     (assert)
     (ground)
     (name-replace "DRL1" "floor_sqrt(n!1)")
     (typepred "floor(sqrt(n!1))")
     (name-replace "DRL2" "floor(sqrt(n!1))")
     (lemma "sq_le" ("nna" "DRL2" "nnb" "sqrt(n!1)"))
     (lemma "sq_lt" ("nnb" "1+DRL2" "nna" "sqrt(n!1)"))
     (rewrite "sq_sqrt")
     (assert)
     (hide -3 -4)
     (expand "sq")
     (assert)
     (lemma "trich_lt" ("x" "DRL1" "y" "DRL2"))
     (split -1)
     (("1"
       (case "DRL1+1 <= DRL2")
       (("1"
         (lemma "trich_lt" ("x" "DRL1" "y" "DRL2"))
         (split -1)
         (("1" (lemma "sq_le" ("nna" "DRL1+1" "nnb" "DRL2")) (grind))
          ("2" (propax))
          ("3" (lemma "sq_le" ("nna" "DRL2+1" "nnb" "DRL1")) (grind))))
        ("2" (assert))))
      ("2" (propax))
      ("3" (lemma "sq_le" ("nna" "DRL2+1" "nnb" "DRL1")) (grind))))
    ("2"
     (hide 2)
     (case "forall (n,m:nat): (m+1)*(m+1)<=n => m+floor_sqrt_aux(n,m) = floor_sqrt(n)")
     (("1"
       (case "forall n, m:floor_sqrt(n) = m=>(m * m <= n AND n < (m + 1) * (m + 1))")
       (("1"
         (case "FORALL n,m:n<(m+1)*(m+1)=>floor_sqrt_aux(n,m)=0")
         (("1"
           (case "FORALL n, m:floor_sqrt_aux(n,m)=0=>floor_sqrt(n)<=m")
           (("1"
             (case "FORALL n, m: m*m <= n => m <= floor_sqrt(n)")
             (("1"
               (skosimp)
               (split 1)
               (("1"
                 (flatten)
                 (inst - "n!1" "m!1")
                 (assert)
                 (inst - "n!1" "m!1")
                 (inst - "n!1" "m!1")
                 (assert))
                ("2"
                 (flatten)
                 (hide -2 -3 -4 -6)
                 (inst - "n!1" "m!1")
                 (assert))))
              ("2"
               (hide 2)
               (case "FORALL n, m: floor_sqrt(n) = m => (FORALL (j:nat): j <= m
                               => j+floor_sqrt_aux(n,j) = m)")
               (("1"
                 (skosimp)
                 (case-replace "m!1=0")
                 (("1" (assert))
                  ("2"
                   (inst -6 "n!1" "m!1-1")
                   (("1" (assert) (expand "floor_sqrt_aux" -6) (assert))
                    ("2" (assert))))))
                ("2"
                 (hide 2)
                 (skosimp)
                 (induct "j")
                 (("1" (assert) (expand "floor_sqrt") (propax))
                  ("2"
                   (skosimp*)
                   (expand "floor_sqrt_aux" -1)
                   (assert)
                   (lift-if)
                   (assert))))))))
            ("2"
             (hide 2)
             (case "FORALL n, m: floor_sqrt(n) = m => (FORALL (j:nat): j <= m
                             => j+floor_sqrt_aux(n,j) = m)")
             (("1"
               (skosimp)
               (inst - "n!1" "floor_sqrt(n!1)")
               (case "m!1<floor_sqrt(n!1)")
               (("1" (inst - "m!1") (assert)) ("2" (assert))))
              ("2"
               (hide 2)
               (skosimp)
               (induct "j")
               (("1" (assert) (expand "floor_sqrt") (propax))
                ("2"
                 (skosimp*)
                 (expand "floor_sqrt_aux" -1)
                 (assert)
                 (lift-if)
                 (replace 1 -1)
                 (case-replace "j!1=m!1")
                 (("1" (assert)) ("2" (assert))))))))))
          ("2"
           (hide -1 2)
           (skosimp)
           (expand "floor_sqrt_aux" 1)
           (assert))))
        ("2"
         (hide 2)
         (case "FORALL n, m:
                       floor_sqrt(n) = m => floor_sqrt_aux(n, m) = 0")
         (("1"
           (case "FORALL n, m: floor_sqrt(n) = m => n < (m + 1) * (m + 1)")
           (("1"
             (case "FORALL n, m:
                           floor_sqrt(n) = m => m * m <= n")
             (("1"
               (skosimp)
               (inst - "n!1" "m!1")
               (inst - "n!1" "m!1")
               (assert))
              ("2"
               (hide 2)
               (case "FORALL n, m: floor_sqrt(n) = m => (FORALL (j:nat): j <= m
                               => j+floor_sqrt_aux(n,j) = m)")
               (("1"
                 (skosimp)
                 (inst -4 "n!1" "m!1")
                 (assert)
                 (case "0<m!1")
                 (("1"
                   (inst - "n!1" "m!1")
                   (assert)
                   (inst - "m!1-1")
                   (assert)
                   (expand "floor_sqrt_aux" -2)
                   (assert))
                  ("2"
                   (case-replace "m!1=0")
                   (("1" (assert)) ("2" (assert))))))
                ("2"
                 (hide 2)
                 (skosimp)
                 (induct "j")
                 (("1"
                   (assert)
                   (inst -3 "n!1" "m!1")
                   (assert)
                   (expand "floor_sqrt" -1)
                   (propax))
                  ("2"
                   (skosimp*)
                   (assert)
                   (expand "floor_sqrt_aux" -1)
                   (assert)
                   (lift-if -1)
                   (replace 1 -1)
                   (case-replace "j!1=m!1")
                   (("1" (assert)) ("2" (replace 1 -1) (prop))))))))))
            ("2"
             (hide 2)
             (skosimp)
             (inst - "n!1" "m!1")
             (assert)
             (inst - "n!1" "m!1")
             (expand "floor_sqrt_aux")
             (hide -3)
             (expand "floor_sqrt_aux")
             (hide -1)
             (lift-if)
             (assert)
             (typepred " 2 + floor_sqrt_aux(n!1, 2 + m!1)")
             (assert))))
          ("2"
           (hide 2)
           (skosimp)
           (inst-cp - "n!1" "m!1")
           (split -3)
           (("1" (assert)) ("2" (expand "floor_sqrt_aux") (assert))))))))
      ("2"
       (hide 2)
       (induct "m")
       (("1" (expand "floor_sqrt") (propax))
        ("2"
         (skosimp*)
         (rewrite "sq_rew")
         (rewrite "sq_rew")
         (inst - "n!1")
         (assert)
         (split -1)
         (("1" (expand "floor_sqrt_aux" -1) (expand "sq" -2) (assert))
          ("2" (hide 2) (grind))))))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: appendix
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (case "forall (n,pn): (2^n <= pn & pn < 2^(n+1)) => floor_log2(pn) = floor(log2(pn))")
   (("1"
     (skosimp)
     (inst - "floor(log2(pn!1))" "pn!1")
     (("1"
       (lemma "lemma_A3" ("i" "floor(log2(pn!1))" "px" "pn!1"))
       (flatten -1)
       (hide -2)
       (simplify -1)
       (flatten -1)
       (assert))
      ("2"
       (hide 2)
       (expand "log2")
       (lemma "ln_strict_increasing")
       (expand "strict_increasing?")
       (case-replace "pn!1=1")
       (("1" (rewrite "ln_1") (rewrite "floor_int") (assert))
        ("2"
         (case-replace "pn!1=2")
         (("1" (rewrite "floor_int") (assert))
          ("2"
           (inst - "2" "pn!1")
           (assert)
           (typepred "floor(ln(pn!1) / ln(2))")
           (name-replace "LHS" "floor(ln(pn!1) / ln(2))")
           (lemma "both_sides_div_pos_lt1"
            ("pz" "ln(2)" "x" "ln(2)" "y" "ln(pn!1)"))
           (("1" (assert))
            ("2"
             (assert)
             (lemma "ln_strict_increasing")
             (expand "strict_increasing?")
             (inst - "1" "2")
             (rewrite "ln_1")
             (assert))))))))))
    ("2"
     (hide 2)
     (induct "n")
     (("1"
       (skosimp)
       (rewrite "expt_x0")
       (rewrite "expt_x1")
       (case-replace "pn!1=1")
       (("1"
         (expand "floor_log2")
         (expand "log2")
         (rewrite "ln_1")
         (rewrite "floor_int")
         (assert))
        ("2" (assert))))
      ("2"
       (skosimp*)
       (expand "floor_log2" 1)
       (inst - "floor(pn!1 / 2)")
       (("1"
         (typepred "floor(pn!1 / 2)")
         (lemma "div_mult_pos_le2"
          ("py" "2" "x" "floor(pn!1 / 2)" "z" "pn!1"))
         (lemma "div_mult_pos_lt1"
          ("py" "2" "x" "1+floor(pn!1 / 2)" "z" "pn!1"))
         (flatten (-1 -2))
         (hide -2 -4)
         (split -1)
         (("1"
           (split -2)
           (("1"
             (lemma "both_sides_expt_gt1_le"
              ("gt1x" "2" "i" "1" "j" "1+j!1"))
             (rewrite "expt_x1")
             (assert)
             (name-replace "LHS" "floor_log2(floor(pn!1 / 2))")
             (lemma "both_sides_times_pos_le1"
              ("pz" "2" "x" "2 ^ j!1" "y" "floor(pn!1 / 2)"))
             (lemma "both_sides_times_pos_lt1"
              ("pz" "2" "y" "2 ^(1+j!1)" "x" "floor(pn!1 / 2)"))
             (rewrite "expt_plus" -10)
             (rewrite "expt_plus" -11)
             (rewrite "expt_x1")
             (rewrite "expt_x2")
             (assert)
             (hide -1)
             (hide -1)
             (case "odd?(pn!1)")
             (("1"
               (expand "odd?")
               (skosimp)
               (replace -1)
               (case-replace "floor((1 + 2 * j!2) / 2) = j!2")
               (("1"
                 (assert)
                 (hide -1 -2 -4 -5)
                 (case-replace "j!2=0")
                 (("1" (assert))
                  ("2"
                   (expand "log2")
                   (lemma "ln_strict_increasing")
                   (expand "strict_increasing?")
                   (inst - "1 + 2 * j!2" "2*(1+j!2)")
                   (split -1)
                   (("1"
                     (rewrite "ln_mult" -1)
                     (split -6)
                     (("1"
                       (lemma "ln_strict_increasing")
                       (expand "strict_increasing?")
                       (inst-cp - "1+2*j!2" "2*2*2^j!1")
                       (rewrite "ln_mult" -2)
                       (rewrite "ln_expt" -2)
                       (lemma "ln_mult" ("px" "2" "py" "2"))
                       (replace -1)
                       (assert)
                       (inst-cp - "1" "2")
                       (rewrite "ln_1")
                       (assert)
                       (case "1+j!1<=ln(1 + 2 * j!2) / ln(2) & ln(1 + 2 * j!2) / ln(2) < 2+j!1")
                       (("1"
                         (case-replace
                          "floor(ln(1 + 2 * j!2) / ln(2))=1+j!1")
                         (("1"
                           (hide-all-but (-3 -4 -5 -7 -12 -13 -14 2))
                           (case "j!1<=floor(ln(j!2) / ln(2))&floor(ln(j!2) / ln(2))<j!1+1")
                           (("1"
                             (flatten)
                             (replace -6 * rl)
                             (hide-all-but (-1 -2 1))
                             (grind))
                            ("2"
                             (case "2^j!1<=j!2&j!2<2^(j!1+1)")
                             (("1"
                               (flatten)
                               (expand "<=" -1)
                               (split -1)
                               (("1"
                                 (inst-cp - "2^j!1" "j!2")
                                 (inst - "j!2" "2^(j!1+1)")
                                 (rewrite "ln_expt")
                                 (rewrite "ln_expt")
                                 (assert)
                                 (typepred "floor(ln(j!2) / ln(2))")
                                 (name-replace
                                  "FLOOR"
                                  "floor(ln(j!2) / ln(2))")
                                 (lemma
                                  "div_mult_pos_lt1"
                                  ("py"
                                   "ln(2)"
                                   "x"
                                   "1+j!1"
                                   "z"
                                   "ln(j!2)"))
                                 (lemma
                                  "div_mult_pos_lt2"
                                  ("py" "ln(2)" "x" "j!1" "z" "ln(j!2)"))
                                 (assert))
                                ("2"
                                 (replace -1 * rl)
                                 (rewrite "ln_expt" 1)
                                 (rewrite "floor_int" 1)
                                 (assert))))
                              ("2"
                               (hide 2 3 -4 -1 -2 -3)
                               (typepred "j!1")
                               (rewrite "expt_plus" 1)
                               (rewrite "expt_x1" 1)
                               (assert)
                               (hide -4)
                               (case "2^j!1 >= j!2+1")
                               (("1" (assert))
                                ("2"
                                 (case-replace "j!2=0")
                                 (("1" (assert))
                                  ("2"
                                   (assert)
                                   (case "2^j!1<=j!2+1/2")
                                   (("1"
                                     (assert)
                                     (lemma
                                      "nat_exp"
                                      ("x" "2" "n" "j!1"))
                                     (name-replace "J2" "2^j!1")
                                     (grind))
                                    ("2" (assert))))))))))))
                          ("2"
                           (lemma "floor_def"
                            ("x" "ln(1 + 2 * j!2) / ln(2)"))
                           (flatten)
                           (assert)
                           (hide-all-but (-1 -2 -3 -4 1))
                           (name-replace "FLOOR"
                            "floor(ln(1 + 2 * j!2) / ln(2))")
                           (name-replace "LOG" "ln(1 + 2 * j!2) / ln(2)")
                           (grind))))
                        ("2"
                         (rewrite "div_mult_pos_lt1" 1)
                         (rewrite "div_mult_pos_le2" 1)
                         (assert)
                         (expand "<=" -11)
                         (split -11)
                         (("1"
                           (inst - "2*2^j!1" "1+2*j!2")
                           (rewrite "ln_mult")
                           (rewrite "ln_expt")
                           (assert))
                          ("2"
                           (replace -1 * rl)
                           (rewrite "ln_mult")
                           (rewrite "ln_expt")
                           (assert))))))
                      ("2"
                       (hide -1 3)
                       (case "2^j!1-1/2 <=j!2")
                       (("1"
                         (assert)
                         (case "2^j!1-1 >= j!2")
                         (("1" (assert))
                          ("2"
                           (assert)
                           (hide-all-but (1 2))
                           (lemma "nat_expt" ("x" "2" "n" "j!1"))
                           (expand "^")
                           (name-replace "CC" "expt(2,j!1)")
                           (expand ">=")
                           (expand "<=")
                           (flatten)
                           (assert))))
                        ("2" (assert))))))
                    ("2" (assert))))))
                ("2"
                 (lemma "floor_plus_int" ("i" "j!2" "x" "1/2"))
                 (replace -1 1)
                 (assert))))
              ("2"
               (case "even?(pn!1)")
               (("1"
                 (hide 1)
                 (expand "even?")
                 (skosimp)
                 (replace -1)
                 (rewrite "floor_int" -8)
                 (assert)
                 (case-replace "2 * j!2 / 2 = j!2")
                 (("1"
                   (hide-all-but (-9 1))
                   (expand "log2")
                   (rewrite "ln_mult")
                   (lemma "floor_plus_int"
                    ("x" "ln(j!2) / ln(2)" "i" "1"))
                   (assert))
                  ("2" (assert))))
                ("2"
                 (assert)
                 (lemma "even_or_odd" ("x" "pn!1"))
                 (assert))))))
            ("2" (propax))))
          ("2" (propax))))
        ("2"
         (hide 2 -2)
         (lemma "floor_plus_int" ("i" "1" "x" "pn!1/2-1"))
         (lemma "nonneg_floor_is_nat" ("x" "pn!1 / 2 - 1"))
         (("1" (assert))
          ("2"
           (assert)
           (lemma "div_mult_pos_le2" ("py" "2" "x" "1" "z" "pn!1"))
           (lemma "both_sides_expt_gt1_le"
            ("gt1x" "2" "i" "1" "j" "1+j!1"))
           (rewrite "expt_x1")
           (assert))))))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: cauchy
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "cauchy_prop")
   (expand "cauchy_zero")
   (lemma "trich_lt" ("x" "x!1" "y" "0"))
   (split -1)
   (("1"
     (lemma "epsilon_log2" ("px" "-x!1"))
     (("1"
       (skolem!)
       (lemma "div_mult_pos_lt1" ("z" "1" "py" "2^p!1" "x" "-x!1"))
       (lemma "both_sides_times_neg_lt1"
        ("y" "1" "nz" "-1" "x" "-x!1 * 2 ^ p!1"))
       (split)
       (("1" (flatten) (inst - "p!1") (assert) (grind))
        ("2"
         (flatten 1)
         (skolem!)
         (replace -1)
         (lemma "expt_ge1" ("b" "2" "n" "p!2"))
         (assert))))
      ("2" (assert))))
    ("2"
     (replace -1)
     (split)
     (("1" (assert))
      ("2"
       (flatten)
       (skolem!)
       (lemma "expt_ge1" ("b" "2" "n" "p!1"))
       (grind))))
    ("3"
     (lemma "epsilon_log2" ("px" "x!1"))
     (("1"
       (skolem!)
       (lemma "div_mult_pos_lt1" ("z" "1" "py" "2^p!1" "x" "x!1"))
       (split 1)
       (("1" (flatten 1) (inst - "p!1") (assert) (grind))
        ("2" (flatten 1) (skolem!) (replace -1) (grind))))
      ("2" (assert))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: cauchy
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (split)
   (("1"
     (flatten)
     (expand "cauchy_prop")
     (skolem!)
     (expand "cauchy_zero")
     (inst - "p!1")
     (flatten)
     (rewrite "zero_times1")
     (rewrite "lt_equiv_le_plus_one" -1)
     (rewrite "lt_plus_one_equiv_le" -2)
     (assert))
    ("2"
     (flatten)
     (lemma "extensionality_postulate" ("f" "cx!1" "g" "cauchy_zero"))
     (lemma "unique_cauchy_zero" ("x" "0"))
     (grind))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: cauchy
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "extensionality_postulate" ("f" "cx!1" "g" "cauchy_zero"))
   (lemma "unique_cauchy_zero2" ("cx" "cx!1"))
   (grind))


proof_type: j_proof
decl_type: tcc
library: exact_real_arith
theory: cauchy
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (typepred "x!1")
   (expand "cauchy_nzreal?")
   (expand "cauchy_real?")
   (skosimp)
   (inst 1 "x!2"))


proof_type: j_proof
decl_type: tcc
library: exact_real_arith
theory: cauchy
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (typepred "x!1")
   (expand "cauchy_nnreal?")
   (expand "cauchy_real?")
   (skosimp*)
   (inst 1 "x!2"))


proof_type: j_proof
decl_type: tcc
library: exact_real_arith
theory: cauchy
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (typepred "x!1")
   (expand "cauchy_real?")
   (expand "cauchy_npreal?")
   (skosimp*)
   (inst 1 "x!2"))


proof_type: j_proof
decl_type: tcc
library: exact_real_arith
theory: cauchy
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (typepred "x!1")
   (expand "cauchy_nnreal?")
   (expand "cauchy_posreal?")
   (skosimp*)
   (inst 1 "x!2"))


proof_type: j_proof
decl_type: tcc
library: exact_real_arith
theory: cauchy
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (typepred "x!1")
   (expand "cauchy_nzreal?")
   (expand "cauchy_posreal?")
   (skosimp*)
   (inst 1 "x!2"))


proof_type: j_proof
decl_type: tcc
library: exact_real_arith
theory: cauchy
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (typepred "x!1")
   (expand "cauchy_nzreal?")
   (expand "cauchy_negreal?")
   (skosimp*)
   (inst 1 "x!2"))


proof_type: j_proof
decl_type: tcc
library: exact_real_arith
theory: cauchy
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (typepred "x!1")
   (expand "cauchy_npreal?")
   (expand "cauchy_negreal?")
   (skosimp*)
   (inst 1 "x!2"))


proof_type: j_proof
decl_type: tcc
library: exact_real_arith
theory: cauchy
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (typepred "x!1")
   (expand "cauchy_real?")
   (expand "cauchy_smallreal?")
   (skosimp*)
   (inst 1 "sx!1"))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: add
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "cauchy_prop")
   (skosimp*)
   (inst -1 "2+p!1")
   (inst -2 "2+p!1")
   (expand "cauchy_add")
   (grind))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: add
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (typepred "cx!1" "cy!1")
   (expand "cauchy_real?")
   (skosimp*)
   (inst 1 "x!1+x!2")
   (expand "cauchy_prop")
   (skosimp*)
   (inst -1 "2+p!1")
   (inst -2 "2+p!1")
   (grind))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: neg
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "cauchy_prop")
   (expand "cauchy_neg")
   (split)
   (("1" (skosimp*) (inst - "p!1") (grind))
    ("2" (skosimp*) (inst - "p!1") (grind))))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: neg
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "cauchy_real?")
   (typepred "cx!1")
   (expand "cauchy_real?")
   (skolem!)
   (inst 1 "-x!1")
   (assert)
   (expand "cauchy_prop")
   (skolem!)
   (inst - "p!1")
   (assert)
   (grind))


proof_type: j_proof
decl_type: tcc
library: exact_real_arith
theory: neg
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (typepred "nzcx!1")
   (expand "cauchy_nzreal?")
   (skolem!)
   (typepred "x!1")
   (inst + "-x!1")
   (lemma "neg_lemma" ("x" "x!1" "cx" "nzcx!1"))
   (assert))


proof_type: j_proof
decl_type: tcc
library: exact_real_arith
theory: neg
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skolem!)
   (typepred "pcx!1")
   (expand "cauchy_negreal?")
   (expand "cauchy_posreal?")
   (skolem!)
   (typepred "x!1")
   (inst + "-x!1")
   (lemma "neg_lemma" ("x" "x!1" "cx" "pcx!1"))
   (assert))


proof_type: j_proof
decl_type: tcc
library: exact_real_arith
theory: neg
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skolem!)
   (typepred "ncx!1")
   (expand "cauchy_negreal?")
   (skolem!)
   (expand "cauchy_posreal?")
   (inst + "-x!1")
   (typepred "x!1")
   (lemma "neg_lemma" ("x" "x!1" "cx" "ncx!1"))
   (assert))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: unique
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "neg_lemma" ("x" "y!1" "cx" "cx!1"))
   (lemma "add_lemma"
    ("x" "x!1" "y" "-y!1" "cx" "cx!1" "cy" "cauchy_neg(cx!1)"))
   (replace -4)
   (replace -3)
   (simplify)
   (replace -2)
   (simplify)
   (hide (-2 -3 -4))
   (extensionality "[nat->int]")
   (inst -1 "cauchy_add(cx!1, cauchy_neg(cx!1))" "cauchy_zero")
   (expand "cauchy_add" -1 1)
   (expand "cauchy_neg" -1 1)
   (expand "cauchy_zero" -1 1)
   (lemma "unique_cauchy_zero")
   (bash -2)
   (("1"
     (lemma "unique_cauchy_zero")
     (inst -1 "x!1-y!1")
     (hide (-2 -3))
     (assert))
    ("2" (grind))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: unique
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skolem!)
   (split)
   (("1"
     (flatten)
     (expand "cauchy_posreal?")
     (expand "cauchy_negreal?")
     (skosimp*)
     (typepred "x!1" "x!2")
     (lemma "unique_cauchy" ("x" "x!1" "y" "x!2" "cx" "nzcx!1"))
     (assert))
    ("2"
     (flatten)
     (expand "cauchy_negreal?")
     (expand "cauchy_posreal?")
     (typepred "nzcx!1")
     (expand "cauchy_nzreal?")
     (skolem!)
     (typepred "x!1")
     (case "x!1<0")
     (("1" (inst 1 "x!1") (assert))
      ("2"
       (case "0<x!1")
       (("1" (inst 3 "x!1") (assert)) ("2" (assert))))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: unique
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "cauchy_nnreal?")
   (expand "cauchy_negreal?")
   (split)
   (("1"
     (flatten)
     (skosimp*)
     (typepred "x!1" "x!2")
     (lemma "unique_cauchy" ("x" "x!1" "y" "x!2" "cx" "nncx!1"))
     (assert))
    ("2"
     (flatten)
     (typepred "nncx!1")
     (expand "cauchy_nnreal?")
     (propax))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: unique
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skolem!)
   (expand "cauchy_npreal?")
   (expand "cauchy_posreal?")
   (split)
   (("1"
     (skosimp*)
     (lemma "unique_cauchy" ("x" "x!1" "y" "x!2" "cx" "npcx!1"))
     (typepred "x!1" "x!2")
     (assert))
    ("2" (typepred "npcx!1") (expand "cauchy_npreal?") (flatten))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: unique
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (typepred "nzcx!1")
   (expand "cauchy_nzreal?")
   (expand "cauchy_negreal?")
   (expand "cauchy_posreal?")
   (skolem!)
   (typepred "x!1")
   (lemma "trich_lt" ("x" "x!1" "y" "0"))
   (split -1)
   (("1" (inst 1 "x!1") (assert)) ("2" (assert))
    ("3" (inst 2 "x!1") (assert))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: unique
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (typepred "cx!1")
   (expand "cauchy_real?")
   (skolem!)
   (lemma "trich_lt" ("x" "x!1" "y" "0"))
   (split -1)
   (("1" (expand "cauchy_negreal?") (inst + "x!1") (assert))
    ("2" (lemma "unique_cauchy_zero3" ("cx" "cx!1")) (grind))
    ("3" (expand "cauchy_posreal?") (inst + "x!1") (assert))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: unique
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (typepred "pcx!1")
   (expand "cauchy_posreal?")
   (skolem!)
   (typepred "x!1")
   (expand "cauchy_prop")
   (inst - "p!1")
   (flatten)
   (lemma "expt_ge1" ("b" "2" "n" "p!1"))
   (lemma "lt_times_lt_pos1" ("px" "1" "y" "2^p!1" "nnz" "0" "w" "x!1"))
   (lemma "lt_plus_one_equiv_le" ("x" "0" "y" "pcx!1(p!1)"))
   (grind))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: unique
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (typepred "ncx!1")
   (expand "cauchy_negreal?")
   (skolem!)
   (typepred "x!1")
   (expand "cauchy_prop")
   (inst - "p!1")
   (flatten)
   (lemma "lt_equiv_le_plus_one" ("x" "ncx!1(p!1) - 1" "y" "0"))
   (lemma "expt_ge1" ("b" "2" "n" "p!1"))
   (lemma "both_sides_times_pos_lt1" ("x" "x!1" "y" "0" "pz" "2^p!1"))
   (grind))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: unique
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (typepred "pcx!1")
   (expand "cauchy_posreal?")
   (skosimp*)
   (expand "cauchy_prop")
   (inst-cp - "s!1")
   (inst - "s!1+p!1")
   (lemma "expt_plus" ("n0x" "2" "i" "s!1" "j" "p!1"))
   (replace -1)
   (lemma "expt_ge1" ("b" "2" "n" "p!1"))
   (expand ">=")
   (flatten)
   (case "p!1=0")
   (("1" (assert))
    ("2"
     (case "1<=p!1")
     (("1"
       (lemma "both_sides_expt_gt1_le" ("gt1x" "2" "i" "1" "j" "p!1"))
       (expand "^" -1 1)
       (expand "expt")
       (expand "expt")
       (replace -2 -1)
       (assert)
       (lemma "both_sides_times_pos_lt1"
        ("x" "pcx!1(s!1) - 1" "y" "x!1 * 2 ^ s!1" "pz" "2^p!1"))
       (replace -8 -1)
       (rewrite "associative_mult" -7)
       (hide (1 -5 -6 -9))
       (lemma "reals_totally_ordered")
       (expand "strict_total_order?")
       (expand "strict_order?")
       (expand "transitive?")
       (flatten)
       (hide (-1 -3))
       (inst-cp -1 "(pcx!1(s!1) - 1) * 2 ^ p!1" "2 ^ p!1 * 2 ^ s!1 * x!1"
        "1 + pcx!1(p!1 + s!1)")
       (replace -3 -2)
       (replace -7 -2)
       (lemma "lt_times_lt_pos1"
        ("px" "2" "y" "pcx!1(s!1)-1" "nnz" "2" "w" "2 ^ p!1"))
       (inst -2 "2*2" "(pcx!1(s!1) - 1) * 2 ^ p!1"
        "1 + pcx!1(p!1 + s!1)")
       (grind))
      ("2" (assert))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: unique
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (case "p!1=0")
   (("1" (replace -1) (assert))
    ("2"
     (case "0< p!1")
     (("1"
       (typepred "nzcx!1")
       (lemma "cauchy_dich5" ("nzcx" "nzcx!1"))
       (lemma "expt_ge1" ("b" "2"))
       (inst-cp - "s!1")
       (inst - "s!1+ p!1")
       (split -3)
       (("1"
         (copy -1)
         (expand "cauchy_negreal?" -1)
         (skolem!)
         (typepred "x!1")
         (expand "cauchy_prop")
         (inst-cp - "s!1")
         (inst - "s!1+ p!1")
         (flatten)
         (lemma "cauchy_neg_characteristic" ("ncx" "nzcx!1"))
         (("1"
           (inst-cp - "s!1")
           (inst - "s!1+ p!1")
           (rewrite "abs_nonpos")
           (rewrite "abs_nonpos")
           (lemma "expt_plus" ("n0x" "2" "i" "s!1" "j" "p!1"))
           (replace -1)
           (rewrite "lt_equiv_le_plus_one" -14)
           (lemma "expt_ge1" ("b" "2" "n" "p!1-1"))
           (("1"
             (lemma "expt_plus" ("n0x" "2" "i" "p!1-1" "j" "1"))
             (simplify -1)
             (expand "^" -1 3)
             (expand "expt")
             (expand "expt")
             (lemma "both_sides_times_pos_ge1"
              ("x" "2 ^ (p!1 - 1)" "y" "1" "pz" "2"))
             (replace -2 -1 rl)
             (replace -3 -1)
             (flatten -1)
             (lemma "both_sides_times_neg_lt1"
              ("y"
               "nzcx!1(s!1 + p!1) - 1"
               "x"
               "x!1 * (2 ^ s!1 * 2 ^ p!1)"
               "nz"
               "-1"))
             (lemma "both_sides_times_neg_lt1"
              ("y"
               "x!1 * 2 ^ s!1"
               "x"
               "1 + nzcx!1(s!1)"
               "nz"
               "-1*(2^p!1)"))
             (replace -14 -1)
             (replace -11 -2)
             (flatten)
             (simplify)
             (lemma "both_sides_plus_le1"
              ("x" "3" "y" "-nzcx!1(s!1)" "z" "-1"))
             (replace -21 -1)
             (simplify -1)
             (expand ">=")
             (lemma "le_times_le_pos"
              ("nnx" "2" "y" "-nzcx!1(s!1) - 1" "nnz" "2" "w" "2 ^ p!1"))
             (replace -2 -1)
             (replace -5 -1)
             (simplify -1)
             (hide-all-but (-1 -3 -4 2))
             (grind))
            ("2" (assert))))
          ("2" (propax))))
        ("2"
         (lemma "cauchy_pos_characteristic" ("pcx" "nzcx!1"))
         (("1"
           (inst-cp - "s!1")
           (inst - "s!1+ p!1")
           (rewrite "abs_nonneg")
           (rewrite "abs_nonneg")
           (lemma "cauchy_pos_monotonic"
            ("pcx" "nzcx!1" "s" "s!1" "p" "p!1"))
           (assert))
          ("2" (propax))))))
      ("2" (assert))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: unique
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "cauchy_dich5" ("nzcx" "nzcx!1"))
   (split -1)
   (("1"
     (copy -1)
     (expand "cauchy_negreal?" -1)
     (skolem!)
     (typepred "x!1")
     (lemma "unique_cauchy" ("x" "nzx!1" "y" "x!1" "cx" "nzcx!1"))
     (inst -8 "-x!1" "cauchy_neg(nzcx!1)")
     (("1"
       (lemma "neg_lemma" ("x" "x!1" "cx" "nzcx!1"))
       (expand "odd_real_fn?")
       (expand "odd_cauchy_fn?")
       (inst -7 "x!1")
       (inst -8 "nzcx!1")
       (lemma "neg_lemma"
        ("x" "-f!1(x!1)" "cx" "cauchy_neg(cf!1(nzcx!1))"))
       (replace -6 -2)
       (replace -6 -3)
       (replace -11)
       (simplify)
       (replace -2)
       (simplify)
       (simplify)
       (expand "cauchy_neg" -1 1)
       (expand "cauchy_neg" -1 1)
       (lemma "eta" ("f" "cf!1"))
       (replace -1 1 rl)
       (grind))
      ("2"
       (lemma "neg_cauchy_negreal_is_cauchy_posreal")
       (inst - "nzcx!1"))))
    ("2"
     (expand "cauchy_posreal?")
     (skolem!)
     (typepred "x!1")
     (lemma "unique_cauchy" ("cx" "nzcx!1" "x" "x!1" "y" "nzx!1"))
     (inst - "x!1" "nzcx!1")
     (("1" (assert)) ("2" (expand "cauchy_posreal?") (inst + "x!1"))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: power
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (lemma "expt_neg_odd" ("n" "pn!1"))
   (replace -2 -1)
   (assert)
   (hide -2)
   (lemma "lemma_A2_generalized"
    ("r" "Y!1" "x" "(rx!1 * e1!1) ^ pn!1 * 2 ^ p!1"))
   (replace -5 -1 rl)
   (simplify -1)
   (flatten)
   (hide -6)
   (lemma "lemma_A4"
    ("pn" "pn!1" "e1" "e1!1" "n" "p!1+1" "x" "sx!1" "e2" "2^-(p!1+1)"))
   (assert)
   (flatten)
   (inst-cp - "sx!1")
   (inst-cp - "e1!1 + sx!1")
   (inst-cp - "sx!1 - e1!1")
   (inst - "rx!1 * e1!1")
   (("1"
     (replace -7)
     (replace -8)
     (replace -9)
     (replace -10)
     (hide (-7 -8 -9 -10))
     (lemma "div_mult_pos_lt2" ("py" "e1!1" "x" "rx!1 - 1" "z" "sx!1"))
     (simplify -1)
     (lemma "div_mult_pos_lt1" ("py" "e1!1" "x" "rx!1 + 1" "z" "sx!1"))
     (simplify -1)
     (hide (-11 -12))
     (lemma "both_sides_expt_pos_lt"
      ("pm" "pn!1" "px" "-(rx!1 * e1!1)" "py" "-(sx!1 - e1!1)"))
     (("1"
       (lemma "both_sides_times_neg_lt1"
        ("nz" "-1" "y" "sx!1 - e1!1" "x" "rx!1 * e1!1"))
       (lemma "both_sides_expt_pos_lt"
        ("pm" "pn!1" "py" "-(rx!1 * e1!1)" "px" "-(sx!1 + e1!1)"))
       (lemma "both_sides_times_neg_lt1"
        ("nz" "-1" "x" "sx!1 + e1!1" "y" "rx!1 * e1!1"))
       (hide (-7 -10))
       (lemma "both_sides_times_pos_lt1"
        ("x"
         "-((-sx!1) ^ pn!1) - 2 ^ -(1 + p!1)"
         "y"
         "-((-(e1!1 + sx!1)) ^ pn!1)"
         "pz"
         "2^p!1"))
       (simplify -1)
       (lemma "expt_plus" ("n0x" "2" "i" "-(1 + p!1)" "j" "p!1"))
       (simplify -1)
       (expand "^" -1 1)
       (expand "expt")
       (expand "expt")
       (lemma "both_sides_times_pos_lt1"
        ("x"
         "-((-(sx!1 - e1!1)) ^ pn!1)"
         "y"
         "2 ^ -(1 + p!1) + -((-sx!1) ^ pn!1)"
         "pz"
         "2^p!1"))
       (simplify -1)
       (replace -2 (-1 -3) rl)
       (assert)
       (hide (-4 -6 -2))
       (lemma "both_sides_times_neg_lt1"
        ("nz"
         "-1"
         "y"
         "(-(e1!1 + sx!1)) ^ pn!1"
         "x"
         "(-(rx!1 * e1!1)) ^ pn!1"))
       (lemma "both_sides_times_neg_lt1"
        ("nz"
         "-1"
         "y"
         "(-(rx!1 * e1!1)) ^ pn!1"
         "x"
         "(-(sx!1 - e1!1)) ^ pn!1"))
       (name-replace "AA" "(-sx!1) ^ pn!1")
       (name-replace "B" "(-(rx!1 * e1!1)) ^ pn!1")
       (name-replace "C" "(-(sx!1 - e1!1)) ^ pn!1")
       (name-replace "D" "(-(e1!1 + sx!1)) ^ pn!1")
       (lemma "both_sides_times_pos_lt1"
        ("pz" "2^p!1" "x" "-C" "y" "-B"))
       (lemma "both_sides_times_pos_lt1"
        ("pz" "2^p!1" "x" "-B" "y" "-D"))
       (assert)
       (reveal (-7 -8))
       (reveal (-1 -2 -3))
       (replace -1)
       (replace -2)
       (reveal (-4 -5))
       (replace -1)
       (hide (-1 -3 -4 -5))
       (lemma "both_sides_times_pos_lt1"
        ("pz" "2^p!1" "x" "-AA - 2 ^ -(1 + p!1)" "y" "-C"))
       (lemma "both_sides_times_pos_lt1"
        ("pz" "2^p!1" "x" "-D" "y" "2 ^ -(1 + p!1) -AA"))
       (assert))
      ("2" (assert))))
    ("2"
     (hide-all-but (-10 -12 1))
     (lemma "div_mult_pos_lt2" ("py" "e1!1" "z" "sx!1" "x" "rx!1 - 1"))
     (assert))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: power
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (lemma "expt_neg_even" ("n" "pn!1"))
   (replace -2 -1)
   (lemma "lemma_A2_generalized"
    ("r" "Y!1" "x" "(rx!1 * e1!1) ^ pn!1 * 2 ^ p!1"))
   (lemma "lemma_A4"
    ("pn" "pn!1" "e1" "e1!1" "n" "p!1+1" "x" "sx!1" "e2" "2^-(p!1+1)"))
   (lemma "div_mult_pos_lt2" ("py" "e1!1" "x" "rx!1 - 1" "z" "sx!1"))
   (lemma "div_mult_pos_lt1" ("py" "e1!1" "x" "rx!1 + 1" "z" "sx!1"))
   (assert)
   (flatten)
   (hide (-10 -13 -14 -15 -12))
   (lemma "expt_plus" ("n0x" "2" "i" "-(1 + p!1)" "j" "p!1"))
   (expand "^" -1 1)
   (expand "expt")
   (expand "expt")
   (inst-cp - "rx!1 * e1!1")
   (inst-cp - "sx!1 - e1!1")
   (inst - "e1!1 + sx!1")
   (replace -10)
   (replace -11)
   (replace -12)
   (lemma "both_sides_expt_pos_lt"
    ("pm" "pn!1" "px" "-(e1!1 * rx!1)" "py" "-(sx!1 - e1!1)"))
   (lemma "both_sides_expt_pos_lt"
    ("pm" "pn!1" "py" "-(e1!1 * rx!1)" "px" "-(sx!1 + e1!1)"))
   (assert)
   (lemma "both_sides_times_pos_lt1"
    ("x"
     "(-(rx!1 * e1!1)) ^ pn!1"
     "y"
     "2 ^ -(1 + p!1) + sx!1 ^ pn!1"
     "pz"
     "2^p!1"))
   (lemma "both_sides_times_pos_lt1"
    ("y"
     "(-(rx!1 * e1!1)) ^ pn!1"
     "x"
     "sx!1 ^ pn!1 - 2 ^ -(1 + p!1)"
     "pz"
     "2^p!1"))
   (assert))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: power
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (lemma "expt_neg_odd" ("n" "pn!1"))
   (replace -2 -1)
   (lemma "lemma_A2_generalized"
    ("r" "Y!1" "x" "(rx!1 * e1!1) ^ pn!1 * 2 ^ p!1"))
   (lemma "lemma_A4"
    ("pn" "pn!1" "e1" "e1!1" "n" "p!1+1" "x" "sx!1" "e2" "2^-(p!1+1)"))
   (lemma "lemma_A4"
    ("pn" "pn!1" "e1" "e1!1" "n" "p!1+1" "x" "sx!1" "e2" "2^-(p!1+1)"))
   (lemma "div_mult_pos_lt1" ("py" "e1!1" "x" "rx!1 + 1" "z" "sx!1"))
   (assert)
   (flatten)
   (replace -15)
   (rewrite "expt_0pn")
   (lemma "trich_lt" ("x" "rx!1" "y" "0"))
   (split -1)
   (("1"
     (inst-cp - "rx!1*e1!1")
     (("1"
       (replace -14)
       (lemma "posreal_exp" ("x" "-(rx!1 * e1!1)" "i" "pn!1"))
       (("1"
         (lemma "both_sides_times_pos_lt1"
          ("x" "sx!1 ^ pn!1 - 2 ^ -(1 + p!1)" "y" "0" "pz" "2^p!1"))
         (assert)
         (lemma "expt_plus" ("n0x" "2" "i" "-(1 + p!1)" "j" "p!1"))
         (expand "^" -1 1)
         (expand "expt")
         (expand "expt")
         (replace -1 -2 rl)
         (lemma "both_sides_times_pos_lt1"
          ("x" "-((-(rx!1 * e1!1)) ^ pn!1)" "y" "0" "pz" "2^p!1"))
         (lemma "both_sides_times_pos_lt1"
          ("x" "0" "y" "2 ^ -(1 + p!1) + sx!1 ^ pn!1" "pz" "2^p!1"))
         (assert)
         (inst-cp - "sx!1")
         (inst-cp - "sx!1-e1!1")
         (lemma "both_sides_expt_pos_lt"
          ("pm" "pn!1" "px" "-sx!1" "py" "-(sx!1 - e1!1)"))
         (name-replace "AA" "(-sx!1)^pn!1")
         (name-replace "B" "(-(rx!1*e1!1))^pn!1")
         (lemma "both_sides_expt_pos_lt"
          ("pm" "pn!1" "px" "-e1!1 * rx!1" "py" "-(sx!1 - e1!1)"))
         (("1"
           (assert)
           (reveal -1)
           (reveal -2)
           (replace -2)
           (lemma "both_sides_times_pos_lt1"
            ("x" "-AA - 2 ^ -(1 + p!1)" "y" "-B" "pz" "2^p!1"))
           (assert))
          ("2"
           (lemma "negreal_times_negreal_is_posreal"
            ("nx" "-e1!1" "ny" "rx!1"))
           (assert))))
        ("2"
         (lemma "both_sides_times_neg_gt2"
          ("nz" "-1" "x" "rx!1*e1!1" "y" "0"))
         (lemma "neg_times_lt" ("x" "rx!1" "y" "e1!1"))
         (assert))))
      ("2" (lemma "neg_times_lt" ("x" "rx!1" "y" "e1!1")) (assert))))
    ("2" (assert)) ("3" (assert))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: power
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (lemma "expt_neg_even" ("n" "pn!1"))
   (replace -2 -1)
   (lemma "lemma_A2_generalized"
    ("r" "Y!1" "x" "(rx!1 * e1!1) ^ pn!1 * 2 ^ p!1"))
   (lemma "lemma_A4"
    ("pn" "pn!1" "e1" "e1!1" "n" "p!1+1" "x" "sx!1" "e2" "2^-(p!1+1)"))
   (lemma "div_mult_pos_lt2" ("py" "e1!1" "x" "rx!1 - 1" "z" "sx!1"))
   (lemma "div_mult_pos_lt1" ("py" "e1!1" "x" "rx!1 + 1" "z" "sx!1"))
   (assert)
   (flatten)
   (hide (-10 -13 -14 -15 -16))
   (replace -11)
   (rewrite "expt_0pn")
   (lemma "trich_lt" ("x" "rx!1" "y" "0"))
   (split -1)
   (("1"
     (lemma "both_sides_expt_pos_lt"
      ("pm" "pn!1" "px" "-(rx!1 * e1!1)" "py" "-(sx!1 - e1!1)"))
     (lemma "posreal_exp" ("x" "-(rx!1 * e1!1)" "i" "pn!1"))
     (assert)
     (inst-cp - "rx!1 * e1!1")
     (inst-cp - "sx!1 - e1!1")
     (replace -13)
     (lemma "both_sides_times_pos_lt1"
      ("x" "0" "y" "(-(rx!1 * e1!1)) ^ pn!1" "pz" "2^p!1"))
     (lemma "both_sides_times_pos_lt1"
      ("y"
       "2 ^ -(1 + p!1) + sx!1 ^ pn!1"
       "x"
       "(-(rx!1 * e1!1)) ^ pn!1"
       "pz"
       "2^p!1"))
     (assert)
     (lemma "expt_plus" ("n0x" "2" "i" "-(1 + p!1)" "j" "p!1"))
     (expand "^" -1 1)
     (expand "expt")
     (expand "expt")
     (replace -1 -2 rl)
     (assert)
     (lemma "both_sides_times_pos_lt1"
      ("x" "sx!1 ^ pn!1" "y" "2 ^ -(1 + p!1)" "pz" "2^p!1"))
     (assert))
    ("2" (assert)) ("3" (assert))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: power
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (lemma "expt_neg_odd" ("n" "pn!1"))
   (lemma "lemma_A2_generalized"
    ("r" "Y!1" "x" "(rx!1 * e1!1) ^ pn!1 * 2 ^ p!1"))
   (lemma "lemma_A4"
    ("pn" "pn!1" "e1" "e1!1" "n" "p!1+1" "x" "sx!1" "e2" "2^-(p!1+1)"))
   (lemma "div_mult_pos_lt2" ("py" "e1!1" "x" "rx!1 - 1" "z" "sx!1"))
   (lemma "div_mult_pos_lt1" ("py" "e1!1" "x" "rx!1 + 1" "z" "sx!1"))
   (assert)
   (flatten)
   (lemma "trich_lt" ("x" "rx!1" "y" "0"))
   (lemma "expt_plus" ("n0x" "2" "i" "-(1 + p!1)" "j" "p!1"))
   (lemma "expt_times"
    ("n0x" "2" "i" "-(3 + floor(log2(pn!1)) + p!1)" "j" "pn!1"))
   (lemma "lt_times_lt_pos1"
    ("px"
     "1"
     "y"
     "pn!1"
     "nnz"
     "1 + p!1"
     "w"
     "3 + floor(log2(pn!1)) + p!1"))
   (lemma "both_sides_expt_gt1_lt"
    ("gt1x"
     "2"
     "i"
     "-(3 + floor(log2(pn!1)) + p!1) * pn!1"
     "j"
     "-(1 + p!1)"))
   (case "floor(log2(pn!1)) >= 0")
   (("1"
     (assert)
     (assert)
     (split -6)
     (("1"
       (lemma "both_sides_times_pos_lt1"
        ("x" "rx!1" "y" "0" "pz" "e1!1"))
       (inst-cp - "rx!1 * e1!1")
       (("1"
         (inst-cp - "sx!1 - e1!1")
         (lemma "both_sides_expt_pos_lt"
          ("pm" "pn!1" "px" "-(rx!1 * e1!1)" "py" "-(sx!1 - e1!1)"))
         (("1"
           (lemma "both_sides_times_pos_lt1"
            ("x"
             "sx!1 ^ pn!1 - 2 ^ -(1 + p!1)"
             "y"
             "-((-(rx!1 * e1!1)) ^ pn!1)"
             "pz"
             "2^p!1"))
           (lemma "both_sides_expt_pos_lt"
            ("pm" "pn!1" "px" "-sx!1" "py" "e1!1"))
           (inst - "sx!1")
           (lemma "posreal_exp" ("x" "-(e1!1 * rx!1)" "i" "pn!1"))
           (("1"
             (lemma "both_sides_times_pos_lt1"
              ("x"
               "-((-(rx!1 * e1!1)) ^ pn!1)"
               "y"
               "2 ^ -(1 + p!1) + -((-sx!1) ^ pn!1)"
               "pz"
               "2^p!1"))
             (replace -27 * rl)
             (assert)
             (replace -12 -1 rl)
             (simplify -1)
             (case-replace "2 ^ (-(1 + p!1) + p!1) = 1/2")
             (("1" (assert)) ("2" (hide-all-but 1) (grind))))
            ("2"
             (hide-all-but (-5 1 -25 -6))
             (lemma "expt_pos"
              ("px" "2" "i" "-(3 + floor(log2(pn!1)) + p!1)"))
             (lemma "posreal_times_posreal_is_posreal"
              ("px" "-rx!1" "py" "e1!1"))
             (("1" (assert)) ("2" (assert))))))
          ("2" (assert) (hide-all-but (-1 1)) (assert))))
        ("2" (hide-all-but (-1 1 -2)) (assert) (assert))))
      ("2"
       (replace -1)
       (rewrite "expt_0pn")
       (lemma "both_sides_expt_pos_lt"
        ("pm" "pn!1" "px" "-sx!1" "py" "e1!1"))
       (inst-cp - "sx!1")
       (lemma "posreal_exp" ("x" "-sx!1" "i" "pn!1"))
       (lemma "both_sides_times_pos_lt1"
        ("x" "(-sx!1) ^ pn!1" "y" "2 ^ -(1 + p!1)" "pz" "2^p!1"))
       (lemma "both_sides_times_neg_lt1"
        ("nz" "-1" "y" "(-sx!1) ^ pn!1 * 2 ^ p!1" "x" "1/2"))
       (lemma "both_sides_times_neg_lt1"
        ("nz" "-(2 ^ p!1)" "x" "(-sx!1) ^ pn!1" "y" "0"))
       (assert)
       (replace -25 * rl)
       (replace -10)
       (case-replace "2 ^ (-(1 + p!1) + p!1)=1/2")
       (("1" (assert)) ("2" (hide-all-but 1) (grind))))
      ("3"
       (lemma "both_sides_times_pos_lt1"
        ("x" "0" "y" "rx!1" "pz" "e1!1"))
       (lemma "both_sides_expt_pos_lt"
        ("pm" "pn!1" "px" "rx!1 * e1!1" "py" "e1!1 + sx!1"))
       (("1"
         (lemma "both_sides_times_pos_lt1"
          ("x"
           "(rx!1 * e1!1) ^ pn!1"
           "y"
           "2 ^ -(1 + p!1) + sx!1 ^ pn!1"
           "pz"
           "2^p!1"))
         (inst-cp - "sx!1")
         (lemma "posreal_exp" ("x" "-sx!1" "i" "pn!1"))
         (lemma "posreal_exp" ("x" "rx!1 * e1!1" "i" "pn!1"))
         (lemma "both_sides_times_neg_lt1"
          ("nz" "-(2 ^ p!1)" "y" "0" "x" "(-sx!1) ^ pn!1"))
         (lemma "both_sides_times_pos_lt1"
          ("x" "0" "y" "(rx!1 * e1!1) ^ pn!1" "pz" "2^p!1"))
         (assert)
         (case-replace "2 ^ (-(1 + p!1) + p!1) = 1/2")
         (("1" (assert)) ("2" (hide-all-but 1) (grind))))
        ("2" (hide-all-but (-1 -2 1)) (assert) (assert))))))
    ("2"
     (hide-all-but 1)
     (lemma "log2_strict_increasing")
     (expand "strict_increasing?")
     (case-replace "pn!1=1")
     (("1"
       (expand "log2")
       (rewrite "ln_1")
       (rewrite "floor_int")
       (assert))
      ("2"
       (case-replace "pn!1=2")
       (("1"
         (expand "log2" 2)
         (rewrite "div_simp")
         (rewrite "floor_int")
         (assert))
        ("2"
         (inst - "2" "pn!1")
         (expand "log2" -1 1)
         (rewrite "div_simp")
         (assert))))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: power
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (lemma "expt_neg_even" ("n" "pn!1"))
   (lemma "lemma_A2_generalized"
    ("r" "Y!1" "x" "(rx!1 * e1!1) ^ pn!1 * 2 ^ p!1"))
   (lemma "lemma_A4"
    ("pn" "pn!1" "e1" "e1!1" "n" "p!1+1" "x" "sx!1" "e2" "2^-(p!1+1)"))
   (lemma "div_mult_pos_lt2" ("py" "e1!1" "x" "rx!1 - 1" "z" "sx!1"))
   (lemma "div_mult_pos_lt1" ("py" "e1!1" "x" "rx!1 + 1" "z" "sx!1"))
   (assert)
   (flatten)
   (lemma "trich_lt" ("x" "rx!1" "y" "0"))
   (split -1)
   (("1"
     (lemma "both_sides_times_pos_lt1" ("x" "rx!1" "y" "0" "pz" "e1!1"))
     (inst-cp - "rx!1 * e1!1")
     (("1"
       (inst-cp - "sx!1 - e1!1")
       (lemma "posreal_exp" ("x" "-(rx!1 * e1!1)" "i" "pn!1"))
       (("1"
         (lemma "posreal_exp" ("x" "-(sx!1)" "i" "pn!1"))
         (inst - "sx!1")
         (lemma "both_sides_expt_pos_lt"
          ("pm" "pn!1" "px" "-(rx!1 * e1!1)" "py" "-(sx!1 - e1!1)"))
         (lemma "both_sides_times_pos_lt1"
          ("x"
           "(-(rx!1 * e1!1)) ^ pn!1"
           "y"
           "2 ^ -(1 + p!1) + sx!1 ^ pn!1"
           "pz"
           "2^p!1"))
         (lemma "expt_plus" ("n0x" "2" "i" "-(1 + p!1)" "j" "p!1"))
         (case-replace "2 ^ (-(1 + p!1) + p!1) = 1/2")
         (("1"
           (lemma "both_sides_expt_pos_lt"
            ("pm" "pn!1" "px" "-sx!1" "py" "e1!1"))
           (lemma "expt_times"
            ("n0x" "2" "i" "-(3 + floor(log2(pn!1)) + p!1)" "j" "pn!1"))
           (lemma "lt_times_lt_pos1"
            ("px"
             "1"
             "y"
             "pn!1"
             "nnz"
             "1+p!1"
             "w"
             "3 + floor(log2(pn!1)) + p!1"))
           (lemma "both_sides_expt_gt1_lt"
            ("gt1x"
             "2"
             "i"
             "-(3 + floor(log2(pn!1)) + p!1) * pn!1"
             "j"
             "-(1 + p!1)"))
           (lemma "both_sides_times_pos_lt1"
            ("x" "(-sx!1) ^ pn!1" "y" "2 ^ -(1 + p!1)" "pz" "2^p!1"))
           (lemma "both_sides_times_pos_lt1"
            ("x" "0" "y" "(-(rx!1 * e1!1)) ^ pn!1" "pz" "2^p!1"))
           (assert)
           (assert)
           (assert)
           (case "floor(log2(pn!1))>=0")
           (("1" (assert))
            ("2"
             (hide-all-but 1)
             (case-replace "pn!1=1")
             (("1"
               (expand "log2")
               (rewrite "ln_1")
               (rewrite "floor_int")
               (assert))
              ("2"
               (case-replace "pn!1=2")
               (("1"
                 (expand "log2")
                 (rewrite "div_simp")
                 (rewrite "floor_int")
                 (assert))
                ("2"
                 (lemma "log2_strict_increasing")
                 (expand "strict_increasing?")
                 (inst - "2" "pn!1")
                 (expand "log2" -1 1)
                 (assert))))))))
          ("2" (hide-all-but 1) (grind))))
        ("2" (assert) (hide-all-but (-1 1)) (assert))))
      ("2" (hide-all-but (-1 1 -2)) (assert) (assert))))
    ("2"
     (replace -1)
     (rewrite "expt_0pn")
     (lemma "posreal_exp" ("x" "e1!1 + sx!1" "i" "pn!1"))
     (lemma "both_sides_times_pos_lt1"
      ("x" "0" "y" "2 ^ -(1 + p!1) + sx!1 ^ pn!1" "pz" "2^p!1"))
     (lemma "expt_plus" ("n0x" "2" "i" "-(1 + p!1)" "j" "p!1"))
     (inst-cp - "sx!1")
     (lemma "both_sides_expt_pos_lt"
      ("pm" "pn!1" "px" "-sx!1" "py" "e1!1"))
     (lemma "expt_times"
      ("n0x" "2" "i" "-(3 + floor(log2(pn!1)) + p!1)" "j" "pn!1"))
     (case-replace "2 ^ (-(1 + p!1) + p!1) = 1/2")
     (("1"
       (lemma "lt_times_lt_pos1"
        ("px"
         "1"
         "y"
         "pn!1"
         "nnz"
         "1+p!1"
         "w"
         "3 + floor(log2(pn!1)) + p!1"))
       (lemma "both_sides_expt_gt1_lt"
        ("gt1x"
         "2"
         "i"
         "-(3 + floor(log2(pn!1)) + p!1) * pn!1"
         "j"
         "-(1 + p!1)"))
       (lemma "both_sides_times_pos_lt1"
        ("x" "(-sx!1) ^ pn!1" "y" "2 ^ -(1 + p!1)" "pz" "2^p!1"))
       (assert)
       (assert)
       (replace -21 * rl)
       (case "floor(log2(pn!1))>=0")
       (("1" (assert))
        ("2"
         (hide-all-but 1)
         (case-replace "pn!1=1")
         (("1"
           (expand "log2")
           (rewrite "ln_1")
           (rewrite "floor_int")
           (assert))
          ("2"
           (case-replace "pn!1=2")
           (("1"
             (expand "log2")
             (rewrite "div_simp")
             (rewrite "floor_int")
             (assert))
            ("2"
             (lemma "log2_strict_increasing")
             (expand "strict_increasing?")
             (inst - "2" "pn!1")
             (expand "log2" -1 1)
             (assert))))))))
      ("2" (hide-all-but 1) (grind))))
    ("3"
     (case "2 ^ (-(1 + p!1) + p!1) = 1 / 2")
     (("1"
       (case "floor(log2(pn!1))>=0")
       (("1"
         (lemma "both_sides_expt_pos_lt"
          ("pm" "pn!1" "px" "e1!1 * rx!1" "py" "e1!1 + sx!1"))
         (("1"
           (lemma "expt_plus" ("n0x" "2" "i" "-(1 + p!1)" "j" "p!1"))
           (lemma "both_sides_times_pos_lt1"
            ("x"
             "(rx!1 * e1!1) ^ pn!1"
             "y"
             "2 ^ -(1 + p!1) + sx!1 ^ pn!1"
             "pz"
             "2^p!1"))
           (inst-cp - "sx!1")
           (lemma "posreal_exp" ("x" "rx!1 * e1!1" "i" "pn!1"))
           (("1"
             (lemma "both_sides_times_pos_lt1"
              ("x" "0" "y" "(rx!1 * e1!1) ^ pn!1" "pz" "2 ^ p!1"))
             (lemma "expt_times"
              ("n0x"
               "2"
               "i"
               "-(3 + floor(log2(pn!1)) + p!1)"
               "j"
               "pn!1"))
             (lemma "lt_times_lt_pos1"
              ("px"
               "1"
               "y"
               "pn!1"
               "nnz"
               "1+p!1"
               "w"
               "3 + floor(log2(pn!1)) + p!1"))
             (lemma "both_sides_expt_gt1_lt"
              ("gt1x"
               "2"
               "i"
               "-(3 + floor(log2(pn!1)) + p!1) * pn!1"
               "j"
               "-(1 + p!1)"))
             (lemma "both_sides_times_pos_lt1"
              ("x" "(-sx!1) ^ pn!1" "y" "2 ^ -(1 + p!1)" "pz" "2^p!1"))
             (lemma "both_sides_expt_pos_lt"
              ("pm" "pn!1" "px" "-sx!1" "py" "e1!1"))
             (assert)
             (assert)
             (assert))
            ("2"
             (assert)
             (lemma "both_sides_times_pos_lt1"
              ("x" "0" "y" "rx!1" "pz" "e1!1"))
             (assert))))
          ("2"
           (lemma "both_sides_times_pos_lt1"
            ("x" "0" "y" "rx!1" "pz" "e1!1"))
           (assert))))
        ("2"
         (hide-all-but 1)
         (case-replace "pn!1=1")
         (("1"
           (expand "log2")
           (rewrite "ln_1")
           (rewrite "floor_int")
           (assert))
          ("2"
           (case-replace "pn!1=2")
           (("1"
             (expand "log2")
             (rewrite "div_simp")
             (rewrite "floor_int")
             (assert))
            ("2"
             (lemma "log2_strict_increasing")
             (expand "strict_increasing?")
             (inst - "2" "pn!1")
             (expand "log2" -1 1)
             (rewrite "div_simp")
             (assert))))))))
      ("2" (hide-all-but 1) (grind))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: power
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (lemma "lemma_A2_generalized"
    ("r" "Y!1" "x" "(rx!1 * e1!1) ^ pn!1 * 2 ^ p!1"))
   (lemma "lemma_A4"
    ("pn" "pn!1" "e1" "e1!1" "n" "p!1+1" "x" "sx!1" "e2" "2^-(p!1+1)"))
   (assert)
   (flatten)
   (hide -9)
   (replace -7)
   (rewrite "expt_0pn")
   (lemma "div_mult_pos_lt1" ("py" "e1!1" "z" "0" "x" "rx!1+1"))
   (lemma "div_mult_pos_lt2" ("py" "e1!1" "z" "0" "x" "rx!1-1"))
   (assert)
   (hide (-11 -12 -9))
   (lemma "trich_lt" ("x" "rx!1" "y" "0"))
   (lemma "expt_plus" ("n0x" "2" "i" "-(1 + p!1)" "j" "p!1"))
   (expand "^" -1 1)
   (expand "expt")
   (expand "expt")
   (split -2)
   (("1"
     (lemma "both_sides_times_pos_lt1" ("y" "0" "x" "rx!1" "pz" "e1!1"))
     (case "even?(pn!1)")
     (("1"
       (lemma "expt_neg_even" ("n" "pn!1"))
       (replace -2 -1)
       (assert)
       (lemma "both_sides_times_pos_lt1"
        ("x" "rx!1" "y" "0" "pz" "e1!1"))
       (inst - "rx!1 * e1!1")
       (replace -2)
       (hide (-2 -3 -1 -9 -11))
       (lemma "posreal_exp" ("x" "-(rx!1 * e1!1)" "i" "pn!1"))
       (lemma "both_sides_expt_pos_lt"
        ("pm" "pn!1" "px" "-(rx!1 * e1!1)" "py" "e1!1"))
       (lemma "both_sides_times_pos_lt1"
        ("x"
         "(-(rx!1 * e1!1)) ^ pn!1"
         "y"
         "2 ^ -(1 + p!1)"
         "pz"
         "2^p!1"))
       (lemma "both_sides_times_pos_lt1"
        ("y" "(-(rx!1 * e1!1)) ^ pn!1" "x" "0" "pz" "2^p!1"))
       (assert)
       (assert))
      ("2"
       (rewrite "odd_even" 1)
       (lemma "expt_neg_odd" ("n" "pn!1"))
       (replace -2 -1)
       (assert)
       (lemma "both_sides_times_pos_lt1"
        ("x" "rx!1" "y" "0" "pz" "e1!1"))
       (inst-cp - "-e1!1")
       (inst - "rx!1 * e1!1")
       (lemma "posreal_exp" ("x" "-(rx!1 * e1!1)" "i" "pn!1"))
       (replace -3)
       (name-replace "AA" "(-(rx!1 * e1!1)) ^ pn!1")
       (lemma "both_sides_expt_pos_lt"
        ("pm" "pn!1" "px" "-(e1!1 * rx!1)" "py" "e1!1"))
       (reveal -1)
       (replace -1)
       (assert)
       (lemma "both_sides_times_neg_lt1"
        ("y" "AA" "x" "e1!1 ^ pn!1" "nz" "-1*2^p!1"))
       (lemma "both_sides_times_neg_lt1"
        ("x" "AA" "y" "0" "nz" "-1*2^p!1"))
       (assert)
       (lemma "both_sides_times_neg_lt1"
        ("x" "2 ^ -(1 + p!1)" "y" "e1!1 ^ pn!1" "nz" "2 ^ p!1 * -1"))
       (simplify -1)
       (propax))))
    ("2" (replace -1) (rewrite "expt_0pn") (assert))
    ("3"
     (lemma "both_sides_expt_pos_lt"
      ("pm" "pn!1" "px" "e1!1 * rx!1" "py" "e1!1"))
     (("1"
       (assert)
       (lemma "both_sides_times_pos_lt1"
        ("x" "(rx!1 * e1!1) ^ pn!1" "y" "2 ^ -(1 + p!1)" "pz" "2^p!1"))
       (lemma "both_sides_times_pos_lt1"
        ("y"
         "(rx!1 * e1!1) ^ pn!1"
         "x"
         "-1 * 2 ^ -(1 + p!1)"
         "pz"
         "2^p!1"))
       (simplify -1)
       (replace -5 (-1 -2) rl)
       (assert)
       (lemma "posreal_exp" ("x" "rx!1 * e1!1" "i" "pn!1"))
       (("1"
         (lemma "both_sides_times_pos_lt1"
          ("y" "(rx!1 * e1!1) ^ pn!1" "x" "0" "pz" "2^p!1"))
         (assert))
        ("2"
         (lemma "both_sides_times_pos_lt1"
          ("x" "0" "y" "rx!1" "pz" "e1!1"))
         (assert))))
      ("2"
       (lemma "both_sides_times_pos_lt1"
        ("x" "0" "y" "rx!1" "pz" "e1!1"))
       (assert))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: power
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (lemma "expt_neg_odd" ("n" "pn!1"))
   (replace -2 -1)
   (hide -2)
   (lemma "lemma_A2_generalized"
    ("r" "Y!1" "x" "(rx!1 * e1!1) ^ pn!1 * 2 ^ p!1"))
   (assert)
   (flatten)
   (lemma "lemma_A4"
    ("pn" "pn!1" "e1" "e1!1" "n" "p!1+1" "x" "sx!1" "e2" "2^-(p!1+1)"))
   (assert)
   (flatten)
   (hide (-11))
   (inst - "sx!1 - e1!1")
   (replace -7)
   (lemma "div_mult_pos_lt1" ("py" "e1!1" "z" "sx!1" "x" "rx!1+1"))
   (lemma "div_mult_pos_lt2" ("py" "e1!1" "z" "sx!1" "x" "rx!1-1"))
   (assert)
   (hide (-9 -13 -14))
   (reveal -4)
   (lemma "trich_lt" ("x" "rx!1" "y" "0"))
   (split -1)
   (("1"
     (lemma "both_sides_times_pos_lt1" ("x" "rx!1" "y" "0" "pz" "e1!1"))
     (assert)
     (inst - "rx!1 * e1!1")
     (replace -3)
     (lemma "expt_plus" ("i" "-(1 + p!1)" "j" "p!1" "n0x" "2"))
     (expand "^" -1 1)
     (expand "expt")
     (expand "expt")
     (hide (-4 -15))
     (lemma "both_sides_expt_pos_lt"
      ("pm" "pn!1" "px" "-(rx!1 * e1!1)" "py" "-(sx!1 - e1!1)"))
     (assert)
     (lemma "both_sides_times_pos_lt1"
      ("x" "-((-(rx!1 * e1!1)) ^ pn!1)" "pz" "2^p!1" "y" "0"))
     (lemma "posreal_exp" ("x" "-(sx!1 - e1!1)" "i" "pn!1"))
     (lemma "both_sides_times_pos_lt1"
      ("x" "sx!1 ^ pn!1 - 2 ^ -(1 + p!1)" "y" "0" "pz" "2^p!1"))
     (lemma "both_sides_times_pos_lt1"
      ("y" "sx!1 ^ pn!1 + 2 ^ -(1 + p!1)" "x" "0" "pz" "2^p!1"))
     (simplify (-1 -2))
     (replace -6 (-1 -2) rl)
     (lemma "posreal_exp" ("x" "e1!1 + sx!1" "i" "pn!1"))
     (assert)
     (lemma "posreal_exp" ("x" "-(rx!1 * e1!1)" "i" "pn!1"))
     (assert)
     (assert)
     (name-replace "AA" "(-(rx!1 * e1!1)) ^ pn!1")
     (name-replace "B" "sx!1 ^ pn!1")
     (lemma "both_sides_times_neg_lt1"
      ("nz" "2^p!1 * -1" "y" "AA" "x" "(-(sx!1 - e1!1)) ^ pn!1"))
     (lemma "both_sides_times_pos_lt1"
      ("pz" "2^p!1" "x" "B - 2 ^ -(1 + p!1)" "y" "-AA"))
     (simplify -1)
     (replace -10 -1 rl)
     (assert))
    ("2"
     (replace -1)
     (rewrite "expt_0pn")
     (lemma "posreal_exp" ("x" "-(sx!1 - e1!1)" "i" "pn!1"))
     (lemma "both_sides_times_pos_lt1"
      ("x" "sx!1 ^ pn!1 - 2 ^ -(1 + p!1)" "y" "0" "pz" "2^p!1"))
     (lemma "posreal_exp" ("x" "sx!1" "i" "pn!1"))
     (lemma "both_sides_times_pos_lt1"
      ("x" "0" "y" "sx!1 ^ pn!1" "pz" "2^p!1"))
     (assert)
     (lemma "both_sides_times_neg_lt1"
      ("y" "0" "x" "(-(sx!1 - e1!1)) ^ pn!1" "nz" "-1"))
     (assert)
     (lemma "expt_plus" ("n0x" "2" "i" "-(1 + p!1)" "j" "p!1"))
     (expand "^" -1 1)
     (expand "expt")
     (expand "expt")
     (replace -1 -5 rl)
     (assert))
    ("3"
     (lemma "both_sides_expt_pos_lt"
      ("pm" "pn!1" "px" "e1!1 * rx!1" "py" "e1!1 + sx!1"))
     (("1"
       (lemma "posreal_exp" ("x" "e1!1 * rx!1" "i" "pn!1"))
       (lemma "expt_plus" ("n0x" "2" "i" "-(1 + p!1)" "j" "p!1"))
       (expand "^" -1 1)
       (expand "expt")
       (expand "expt")
       (lemma "both_sides_times_pos_lt1"
        ("x"
         "(rx!1 * e1!1) ^ pn!1"
         "pz"
         "2 ^ p!1"
         "y"
         "2 ^ -(1 + p!1) + sx!1 ^ pn!1"))
       (lemma "both_sides_times_pos_lt1"
        ("x" "sx!1 ^ pn!1 - 2 ^ -(1 + p!1)" "y" "0" "pz" "2^p!1"))
       (simplify (-1 -2))
       (replace -3 (-1 -2) rl)
       (lemma "posreal_exp" ("x" "-(sx!1 - e1!1)" "i" "pn!1"))
       (assert)
       (assert)
       (assert)
       (lemma "both_sides_times_pos_lt1"
        ("y" "(rx!1 * e1!1) ^ pn!1" "x" "0" "pz" "2^p!1"))
       (assert))
      ("2"
       (lemma "both_sides_times_pos_lt1"
        ("y" "rx!1" "x" "0" "pz" "e1!1"))
       (assert))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: power
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (lemma "expt_neg_even" ("n" "pn!1"))
   (replace -2 -1)
   (hide -2)
   (lemma "lemma_A2_generalized"
    ("r" "Y!1" "x" "(rx!1 * e1!1) ^ pn!1 * 2 ^ p!1"))
   (lemma "lemma_A4"
    ("pn" "pn!1" "e1" "e1!1" "n" "p!1+1" "x" "sx!1" "e2" "2^-(p!1+1)"))
   (lemma "div_mult_pos_lt1" ("py" "e1!1" "z" "sx!1" "x" "rx!1+1"))
   (lemma "div_mult_pos_lt2" ("py" "e1!1" "z" "sx!1" "x" "rx!1-1"))
   (case "floor(log2(pn!1))>=0")
   (("1"
     (case-replace "2 ^ (-(1 + p!1) + p!1) = 1/2")
     (("1"
       (lemma "trich_lt" ("x" "rx!1" "y" "0"))
       (split -1)
       (("1"
         (lemma "both_sides_times_pos_lt1"
          ("x" "rx!1" "y" "0" "pz" "e1!1"))
         (inst-cp - "rx!1 * e1!1")
         (("1"
           (inst-cp - "sx!1 -e1!1")
           (("1"
             (lemma "both_sides_expt_pos_lt"
              ("pm" "pn!1" "px" "-(rx!1 * e1!1)" "py" "-(sx!1 - e1!1)"))
             (("1"
               (lemma "both_sides_times_pos_lt1"
                ("x"
                 "(-(rx!1 * e1!1)) ^ pn!1"
                 "y"
                 "2 ^ -(1 + p!1) + sx!1 ^ pn!1"
                 "pz"
                 "2^p!1"))
               (lemma "expt_plus" ("n0x" "2" "i" "-(1 + p!1)" "j" "p!1"))
               (lemma "both_sides_expt_pos_lt"
                ("pm" "pn!1" "px" "sx!1" "py" "e1!1"))
               (("1"
                 (lemma "expt_times"
                  ("n0x"
                   "2"
                   "i"
                   "-(3 + floor(log2(pn!1)) + p!1)"
                   "j"
                   "pn!1"))
                 (lemma "lt_times_lt_pos1"
                  ("px"
                   "1"
                   "y"
                   "pn!1"
                   "nnz"
                   "1+p!1"
                   "w"
                   "3 + floor(log2(pn!1)) + p!1"))
                 (lemma "both_sides_expt_gt1_lt"
                  ("gt1x"
                   "2"
                   "i"
                   "-(3 + floor(log2(pn!1)) + p!1) * pn!1"
                   "j"
                   "-(1+p!1)"))
                 (lemma "both_sides_times_pos_lt1"
                  ("x" "sx!1 ^ pn!1" "y" "2 ^ -(1 + p!1)" "pz" "2^p!1"))
                 (lemma "posreal_exp" ("x" "-(rx!1 * e1!1)" "i" "pn!1"))
                 (lemma "both_sides_times_pos_lt1"
                  ("x" "0" "y" "(-(rx!1 * e1!1)) ^ pn!1" "pz" "2^p!1"))
                 (assert)
                 (flatten (-17 -18))
                 (assert)
                 (assert))
                ("2" (assert))))
              ("2" (assert))
              ("3" (assert) (hide-all-but (-1 1)) (assert))))
            ("2" (assert))))
          ("2" (hide-all-but (-1 1 -2)) (assert) (assert))))
        ("2"
         (lemma "posreal_exp" ("x" "e1!1 + sx!1" "i" "pn!1"))
         (("1"
           (lemma "both_sides_times_pos_lt1"
            ("x" "0" "y" "2 ^ -(1 + p!1) + sx!1 ^ pn!1" "pz" "2^p!1"))
           (lemma "expt_plus" ("n0x" "2" "i" "-(1 + p!1)" "j" "p!1"))
           (lemma "both_sides_expt_pos_lt"
            ("pm" "pn!1" "px" "sx!1" "py" "e1!1"))
           (("1"
             (lemma "expt_times"
              ("n0x"
               "2"
               "i"
               "-(3 + floor(log2(pn!1)) + p!1)"
               "j"
               "pn!1"))
             (lemma "both_sides_expt_gt1_lt"
              ("gt1x"
               "2"
               "i"
               "-(3 + floor(log2(pn!1)) + p!1) * pn!1"
               "j"
               "-(1+p!1)"))
             (lemma "lt_times_lt_pos1"
              ("px"
               "1"
               "y"
               "pn!1"
               "nnz"
               "1 + p!1"
               "w"
               "3 + floor(log2(pn!1)) + p!1"))
             (lemma "both_sides_times_pos_lt1"
              ("x" "sx!1 ^ pn!1" "y" "2 ^ -(1 + p!1)" "pz" "2 ^ p!1"))
             (assert)
             (flatten (-14 -15))
             (replace -10)
             (replace -6 * rl)
             (replace -22 * rl)
             (replace -4)
             (lemma "expt_pos" ("px" "sx!1" "i" "pn!1"))
             (lemma "expt_pos" ("px" "2" "i" "p!1"))
             (lemma "posreal_times_posreal_is_posreal"
              ("px" "sx!1 ^ pn!1" "py" "2 ^ p!1"))
             (("1"
               (assert)
               (inst - "sx!1 - e1!1")
               (assert)
               (replace -12)
               (case "Y!1=0")
               (("1" (assert))
                ("2"
                 (hide-all-but (1 -26))
                 (expand "^")
                 (expand "expt" -1 1)
                 (expand "round")
                 (lemma "floor_def" ("x" "1/2"))
                 (flatten)
                 (assert))))
              ("2" (assert))))
            ("2" (assert))))
          ("2" (assert))))
        ("3"
         (inst-cp - "sx!1 - e1!1")
         (("1"
           (lemma "both_sides_expt_pos_lt"
            ("pm" "pn!1" "px" "e1!1 * rx!1" "py" "e1!1 + sx!1"))
           (("1"
             (lemma "posreal_exp" ("x" "e1!1 * rx!1" "i" "pn!1"))
             (lemma "both_sides_times_pos_lt1"
              ("x"
               "(rx!1 * e1!1) ^ pn!1"
               "pz"
               "2 ^ p!1"
               "y"
               "2 ^ -(1 + p!1) + sx!1 ^ pn!1"))
             (lemma "both_sides_expt_pos_lt"
              ("pm" "pn!1" "px" "sx!1" "py" "e1!1"))
             (("1"
               (lemma "expt_times"
                ("n0x"
                 "2"
                 "i"
                 "-(3 + floor(log2(pn!1)) + p!1)"
                 "j"
                 "pn!1"))
               (lemma "both_sides_expt_gt1_lt"
                ("gt1x"
                 "2"
                 "i"
                 "-(3 + floor(log2(pn!1)) + p!1) * pn!1"
                 "j"
                 "-(1 + p!1)"))
               (lemma "lt_times_lt_pos1"
                ("px"
                 "1"
                 "y"
                 "pn!1"
                 "nnz"
                 "1 + p!1"
                 "w"
                 "3 + floor(log2(pn!1)) + p!1"))
               (lemma "both_sides_times_pos_lt1"
                ("x" "sx!1 ^ pn!1" "y" "2 ^ -(1 + p!1)" "pz" "2^p!1"))
               (lemma "expt_plus" ("n0x" "2" "i" "-(1 + p!1)" "j" "p!1"))
               (lemma "posreal_times_posreal_is_posreal"
                ("px" "(e1!1 * rx!1) ^ pn!1" "py" "2 ^ p!1"))
               (("1" (assert) (flatten (-16 -17)) (assert) (assert))
                ("2"
                 (hide-all-but (-10 1))
                 (lemma "expt_pos" ("px" "e1!1*rx!1" "i" "pn!1"))
                 (assert))))
              ("2" (assert))))
            ("2" (assert))
            ("3"
             (assert)
             (lemma "posreal_times_posreal_is_posreal"
              ("px" "e1!1" "py" "rx!1"))
             (assert))))
          ("2" (assert))))))
      ("2" (hide-all-but 1) (grind))))
    ("2"
     (hide-all-but 1)
     (case-replace "pn!1=1")
     (("1"
       (expand "log2")
       (rewrite "ln_1")
       (rewrite "floor_int")
       (assert))
      ("2"
       (case-replace "pn!1=2")
       (("1"
         (expand "log2")
         (rewrite "div_simp")
         (rewrite "floor_int")
         (assert))
        ("2"
         (lemma "log2_strict_increasing")
         (expand "strict_increasing?")
         (inst - "2" "pn!1")
         (expand "log2" -1 1)
         (rewrite "div_simp")
         (assert))))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: power
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (lemma "div_mult_pos_lt1" ("py" "e1!1" "x" "rx!1 + 1" "z" "sx!1"))
   (lemma "div_mult_pos_lt2" ("py" "e1!1" "x" "rx!1 - 1" "z" "sx!1"))
   (lemma "lemma_A2_generalized"
    ("r" "Y!1" "x" "(rx!1 * e1!1) ^ pn!1 * 2 ^ p!1"))
   (replace -6 -1 rl)
   (simplify -1)
   (assert)
   (hide (-7 -8 -6))
   (flatten)
   (lemma "lemma_A4"
    ("pn" "pn!1" "e1" "e1!1" "n" "p!1+1" "x" "sx!1" "e2" "2^-(p!1+1)"))
   (assert)
   (flatten)
   (name-replace "AA" "sx!1 - e1!1")
   (replace -9)
   (rewrite "expt_0pn")
   (lemma "expt_plus" ("n0x" "2" "i" "-(1 + p!1)" "j" "p!1"))
   (expand "^" -1 1)
   (expand "expt")
   (expand "expt")
   (lemma "both_sides_times_pos_lt1"
    ("pz" "2 ^ p!1" "x" "sx!1 ^ pn!1 - 2 ^ -(1 + p!1)" "y" "0"))
   (lemma "posreal_exp" ("x" "rx!1 * e1!1" "i" "pn!1"))
   (lemma "both_sides_times_pos_lt1"
    ("x" "0" "y" "(rx!1 * e1!1) ^ pn!1" "pz" "2^p!1"))
   (lemma "both_sides_expt_pos_lt"
    ("pm" "pn!1" "px" "rx!1 * e1!1" "py" "e1!1 + sx!1"))
   (lemma "both_sides_times_pos_lt1"
    ("x"
     "(rx!1 * e1!1) ^ pn!1"
     "y"
     "2 ^ -(1 + p!1) + sx!1 ^ pn!1"
     "pz"
     "2^p!1"))
   (simplify -1)
   (replace -6 -1 rl)
   (simplify -5)
   (replace -6 -5 rl)
   (assert)
   (assert))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: power
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (lemma "div_mult_pos_lt1" ("py" "e1!1" "x" "rx!1+1" "z" "sx!1"))
   (lemma "div_mult_pos_lt2" ("py" "e1!1" "x" "rx!1-1" "z" "sx!1"))
   (assert)
   (hide (-6 -7))
   (lemma "lemma_A4"
    ("pn" "pn!1" "e1" "e1!1" "n" "p!1+1" "x" "sx!1" "e2" "2^-(p!1+1)"))
   (assert)
   (flatten)
   (lemma "both_sides_expt_pos_lt"
    ("pm" "pn!1" "px" "sx!1 - e1!1" "py" "e1!1 * rx!1"))
   (lemma "both_sides_expt_pos_lt"
    ("pm" "pn!1" "py" "sx!1 + e1!1" "px" "e1!1 * rx!1"))
   (lemma "both_sides_times_pos_lt1"
    ("pz"
     "2^p!1"
     "x"
     "sx!1 ^ pn!1 - 2 ^ -(1 + p!1)"
     "y"
     "(e1!1 + sx!1) ^ pn!1"))
   (lemma "both_sides_times_pos_lt1"
    ("pz"
     "2^p!1"
     "y"
     "sx!1 ^ pn!1 + 2 ^ -(1 + p!1)"
     "x"
     "( sx!1-e1!1) ^ pn!1"))
   (lemma "expt_plus" ("n0x" "2" "i" "-(1 + p!1)" "j" "p!1"))
   (expand "^" -1 1)
   (expand "expt")
   (expand "expt")
   (simplify (-2 -3))
   (replace -1 (-2 -3) rl)
   (assert)
   (lemma "lemma_A2_generalized"
    ("x" "(rx!1 * e1!1) ^ pn!1 * 2 ^ p!1" "r" "Y!1"))
   (assert)
   (flatten)
   (assert)
   (lemma "both_sides_expt_pos_lt"
    ("pm" "pn!1" "px" "e1!1 * rx!1" "py" "sx!1+e1!1"))
   (lemma "both_sides_expt_pos_lt"
    ("pm" "pn!1" "py" "e1!1 * rx!1" "px" "sx!1-e1!1"))
   (lemma "both_sides_times_pos_lt1"
    ("pz" "2^p!1" "x" "(sx!1 - e1!1) ^ pn!1" "y" "(e1!1 * rx!1) ^ pn!1"))
   (lemma "both_sides_times_pos_lt1"
    ("pz" "2^p!1" "x" "(e1!1 * rx!1) ^ pn!1" "y" "(sx!1 + e1!1) ^ pn!1"))
   (assert)
   (lemma "both_sides_times_pos_lt1"
    ("pz"
     "2^p!1"
     "x"
     "(e1!1 + sx!1) ^ pn!1"
     "y"
     "2 ^ -(1 + p!1) + sx!1 ^ pn!1"))
   (lemma "both_sides_times_pos_lt1"
    ("pz"
     "2^p!1"
     "y"
     "(sx!1-e1!1) ^ pn!1"
     "x"
     "sx!1 ^ pn!1 - 2 ^ -(1 + p!1)"))
   (assert))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: power
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (lemma "trich_lt" ("x" "sx!1" "y" "0"))
   (name "e1!1" "2^-(p!1+floor(log2(pn!1))+3)")
   (replace -1)
   (lemma "expt_inverse"
    ("i" "-(p!1 + floor(log2(pn!1)) + 3)" "n0x" "2"))
   (replace -2 -1)
   (replace -1 (-5 -6))
   (hide -1)
   (split -2)
   (("1"
     (lemma "trich_lt" ("x" "sx!1+e1!1" "y" "0"))
     (split -1)
     (("1"
       (case "even?(pn!1)")
       (("1"
         (lemma "cauchy_power_lt1_n_even"
          ("pn"
           "pn!1"
           "sx"
           "sx!1"
           "e1"
           "e1!1"
           "p"
           "p!1"
           "Y"
           "Y!1"
           "rx"
           "rx!1"))
         (assert))
        ("2"
         (lemma "cauchy_power_lt1_n_odd"
          ("pn"
           "pn!1"
           "sx"
           "sx!1"
           "e1"
           "e1!1"
           "p"
           "p!1"
           "Y"
           "Y!1"
           "rx"
           "rx!1"))
         (rewrite "odd_even" 1)
         (assert))))
      ("2"
       (case "even?(pn!1)")
       (("1"
         (lemma "cauchy_power_lt1_snz_even"
          ("pn"
           "pn!1"
           "sx"
           "sx!1"
           "e1"
           "e1!1"
           "p"
           "p!1"
           "Y"
           "Y!1"
           "rx"
           "rx!1"))
         (assert))
        ("2"
         (lemma "cauchy_power_lt1_snz_odd"
          ("pn"
           "pn!1"
           "sx"
           "sx!1"
           "e1"
           "e1!1"
           "p"
           "p!1"
           "Y"
           "Y!1"
           "rx"
           "rx!1"))
         (rewrite "odd_even" 1)
         (assert))))
      ("3"
       (case "even?(pn!1)")
       (("1"
         (lemma "cauchy_power_lt1_sn_even"
          ("pn"
           "pn!1"
           "sx"
           "sx!1"
           "e1"
           "e1!1"
           "p"
           "p!1"
           "Y"
           "Y!1"
           "rx"
           "rx!1"))
         (assert))
        ("2"
         (rewrite "odd_even" 1)
         (lemma "cauchy_power_lt1_sn_odd"
          ("pn"
           "pn!1"
           "sx"
           "sx!1"
           "e1"
           "e1!1"
           "p"
           "p!1"
           "Y"
           "Y!1"
           "rx"
           "rx!1"))
         (assert))))))
    ("2"
     (lemma "cauchy_power_lt1_z"
      ("pn"
       "pn!1"
       "sx"
       "sx!1"
       "e1"
       "e1!1"
       "p"
       "p!1"
       "Y"
       "Y!1"
       "rx"
       "rx!1"))
     (assert))
    ("3"
     (lemma "trich_lt" ("x" "sx!1-e1!1" "y" "0"))
     (split -1)
     (("1"
       (case "even?(pn!1)")
       (("1"
         (lemma "cauchy_power_lt1_sp_even"
          ("pn"
           "pn!1"
           "sx"
           "sx!1"
           "e1"
           "e1!1"
           "p"
           "p!1"
           "Y"
           "Y!1"
           "rx"
           "rx!1"))
         (assert))
        ("2"
         (rewrite "odd_even" 1)
         (lemma "cauchy_power_lt1_sp_odd"
          ("pn"
           "pn!1"
           "sx"
           "sx!1"
           "e1"
           "e1!1"
           "p"
           "p!1"
           "Y"
           "Y!1"
           "rx"
           "rx!1"))
         (assert))))
      ("2"
       (lemma "cauchy_power_lt1_pz"
        ("pn"
         "pn!1"
         "sx"
         "sx!1"
         "e1"
         "e1!1"
         "p"
         "p!1"
         "Y"
         "Y!1"
         "rx"
         "rx!1"))
       (assert))
      ("3"
       (lemma "cauchy_power_lt1_p"
        ("pn"
         "pn!1"
         "sx"
         "sx!1"
         "e1"
         "e1!1"
         "p"
         "p!1"
         "Y"
         "Y!1"
         "rx"
         "rx!1"))
       (assert))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: power
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (lemma "cauchy_power_lt1_main_generalized"
    ("pn" "pn!1" "sx" "sx!1" "p" "p!1" "Y" "Y!1" "rx" "X!1"))
   (assert))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: power
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (case "floor(log2(pn!1))>=0")
   (("1"
     (typepred "scx!1")
     (expand "cauchy_real?")
     (expand "cauchy_smallreal?")
     (expand "cauchy_prop")
     (skosimp*)
     (inst + "sx!1^pn!1")
     (skosimp*)
     (inst - "3 + p!1 + floor(log2(pn!1))")
     (("1"
       (flatten)
       (lemma "cauchy_power_lt1_main"
        ("Y"
         "round((scx!1(3 + p!1 + floor(log2(pn!1))) *
                              2 ^ -(3 + p!1 + floor(log2(pn!1))))
                             ^ pn!1
                             * 2 ^ p!1)"
         "p"
         "p!1"
         "pn"
         "pn!1"
         "sx"
         "sx!1"
         "X"
         "scx!1(3 + p!1 + floor(log2(pn!1)))"))
       (("1" (assert)) ("2" (assert)) ("3" (assert))))
      ("2" (assert))))
    ("2"
     (hide 2)
     (case-replace "pn!1=1")
     (("1"
       (expand "log2")
       (rewrite "ln_1")
       (rewrite "floor_int")
       (assert))
      ("2"
       (case-replace "pn!1=2")
       (("1"
         (expand "log2")
         (rewrite "div_simp")
         (rewrite "floor_int")
         (assert))
        ("2"
         (lemma "log2_strict_increasing")
         (expand "strict_increasing?")
         (inst - "2" "pn!1")
         (expand "log2" -1 1)
         (rewrite "div_simp")
         (assert))))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: power
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (expand "cauchy_prop")
   (skosimp*)
   (case "p!1+floor(log2(pn!1))+3>=0")
   (("1"
     (inst - "p!1+floor(log2(pn!1))+3")
     (("1"
       (flatten)
       (expand "cauchy_power_lt1")
       (lemma "cauchy_power_lt1_main"
        ("Y"
         "round((scx!1(3 + p!1 + floor(log2(pn!1))) *
                       2 ^ -(3 + p!1 + floor(log2(pn!1))))
                      ^ pn!1
                      * 2 ^ p!1)"
         "p"
         "p!1"
         "pn"
         "pn!1"
         "sx"
         "sx!1"
         "X"
         "scx!1(3 + p!1 + floor(log2(pn!1)))"))
       (("1" (assert))
        ("2"
         (hide-all-but 1)
         (case-replace "pn!1=1")
         (("1"
           (expand "log2")
           (rewrite "ln_1")
           (rewrite "floor_int")
           (assert))
          ("2"
           (case-replace "pn!1=2")
           (("1"
             (expand "log2")
             (rewrite "div_simp")
             (rewrite "floor_int")
             (assert))
            ("2"
             (lemma "log2_strict_increasing")
             (expand "strict_increasing?")
             (inst - "2" "pn!1")
             (expand "log2" -1 1)
             (rewrite "div_simp")
             (assert))))))
        ("3" (assert))))
      ("2" (assert))))
    ("2"
     (assert)
     (hide-all-but 1)
     (case-replace "pn!1=1")
     (("1"
       (expand "log2")
       (rewrite "ln_1")
       (rewrite "floor_int")
       (assert))
      ("2"
       (case-replace "pn!1=2")
       (("1"
         (expand "log2")
         (rewrite "div_simp")
         (rewrite "floor_int")
         (assert))
        ("2"
         (lemma "log2_strict_increasing")
         (expand "strict_increasing?")
         (inst - "2" "pn!1")
         (expand "log2" -1 1)
         (assert))))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: power
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (case "floor(log2(abs(X0!1) + 1))>=0")
   (("1"
     (case "p!1>=1")
     (("1"
       (lemma "lemma_A3" ("i" "p!1-1" "px" "abs(X0!1) + 1"))
       (assert)
       (flatten)
       (lemma "both_sides_expt_gt1_lt"
        ("gt1x" "2" "i" "p!1 - 1" "j" "p!1"))
       (simplify -1)
       (lemma "posreal_exp" ("x" "2" "i" "p!1"))
       (expand "abs")
       (case "X0!1 < 0")
       (("1" (assert)) ("2" (assert))))
      ("2" (assert))))
    ("2"
     (hide-all-but 1)
     (case "FORALL (n:posnat): floor(log2(n)) >= 0")
     (("1" (inst - "abs(X0!1) + 1"))
      ("2"
       (hide 2)
       (skosimp*)
       (case-replace "n!1=1")
       (("1"
         (expand "log2")
         (rewrite "ln_1")
         (rewrite "floor_int")
         (assert))
        ("2"
         (case-replace "n!1=2")
         (("1"
           (expand "log2")
           (rewrite "div_simp")
           (rewrite "floor_int")
           (assert))
          ("2"
           (lemma "log2_strict_increasing")
           (expand "strict_increasing?")
           (inst - "2" "n!1")
           (expand "log2" -1 1)
           (rewrite "div_simp")
           (assert))))))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: power
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (lemma "cauchy_power_div1" ("X0" "X0!1" "x" "x!1" "p" "q!1"))
   (assert)
   (flatten)
   (case "FORALL (n:posnat): floor(log2(n)) >= 0")
   (("1"
     (inst-cp - "1+abs(X0!1)")
     (inst - "pn!1")
     (lemma "cauchy_power_lt1_main_generalized"
      ("pn"
       "pn!1"
       "sx"
       "x!1*2^-q!1"
       "rx"
       "X!1*2^-q!1"
       "p"
       "p!1+pn!1*q!1"
       "Y"
       "Y!1"))
     (("1"
       (lemma "expt_product_n0i" ("x" "x!1" "y" "2 ^ -q!1" "pn" "pn!1"))
       (lemma "expt_times" ("n0x" "2" "i" "-q!1" "j" "pn!1"))
       (lemma "expt_plus"
        ("n0x" "2" "i" "-q!1 * pn!1" "j" "p!1 + pn!1 * q!1"))
       (lemma "expt_plus"
        ("n0x" "2" "i" "-1 *q!1 * pn!1" "j" "q!1* pn!1 +p!1 "))
       (lemma "expt_inverse" ("n0x" "2" "i" "p1!1"))
       (lemma "expt_product_n0i"
        ("x" "X!1/2 ^ p1!1" "y" "2 ^ -q!1" "pn" "pn!1"))
       (lemma "expt_plus" ("n0x" "2" "i" "pn!1 * q!1" "j" "p!1"))
       (lemma "expt_plus" ("n0x" "2" "i" "-q!1 * pn!1" "j" "pn!1 * q!1"))
       (rewrite "expt_x0")
       (lemma "both_sides_times_pos_lt1"
        ("x" "X!1 - 1" "y" "x!1 * 2 ^ p1!1" "pz" "2 ^ -q!1"))
       (lemma "both_sides_times_pos_lt1"
        ("y" "X!1 + 1" "x" "x!1 * 2 ^ p1!1" "pz" "2 ^ -q!1"))
       (lemma "both_sides_expt_gt1_lt" ("gt1x" "2" "i" "-q!1" "j" "0"))
       (rewrite "expt_x0")
       (assert)
       (flatten)
       (assert))
      ("2"
       (lemma "expt_inverse" ("n0x" "2" "i" "q!1"))
       (lemma "div_mult_pos_lt1" ("py" "2 ^ q!1" "x" "1" "z" "x!1"))
       (lemma "div_mult_pos_lt2" ("py" "2 ^ q!1" "x" "-1" "z" "x!1"))
       (assert))))
    ("2"
     (hide-all-but 1)
     (skosimp*)
     (case-replace "n!1=1")
     (("1"
       (expand "log2")
       (rewrite "ln_1")
       (rewrite "floor_int")
       (assert))
      ("2"
       (case-replace "n!1=2")
       (("1"
         (expand "log2")
         (rewrite "div_simp")
         (rewrite "floor_int")
         (assert))
        ("2"
         (lemma "log2_strict_increasing")
         (expand "strict_increasing?")
         (inst - "2" "n!1")
         (expand "log2" -1 1)
         (rewrite "div_simp")
         (assert))))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: power
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (typepred "cx!1")
   (expand "cauchy_real?")
   (skosimp)
   (inst + "x!1^pn!1")
   (expand "cauchy_prop")
   (skosimp)
   (inst-cp - "0")
   (name-replace "X0!1" "cx!1(0)")
   (rewrite "expt_x0")
   (typepred "floor_log2(1 + abs(X0!1))")
   (typepred "floor_log2(pn!1)")
   (rewrite "floor_log2_def")
   (rewrite "floor_log2_def")
   (name-replace "QF" "floor(log2(1+abs(X0!1)))")
   (lemma "posreal_times_posreal_is_posreal" ("px" "QF+1" "py" "pn!1"))
   (("1"
     (name "P1" "3 + p!1 + floor(log2(pn!1))+(QF+1)*pn!1")
     (replace -1)
     (lemma "cauchy_power_main"
      ("X0"
       "X0!1"
       "x"
       "x!1"
       "q"
       "QF+1"
       "p1"
       "P1"
       "p"
       "p!1"
       "X"
       "cx!1(P1)"
       "Y"
       "round((cx!1(P1) * 2 ^ -P1) ^ pn!1 * 2 ^ p!1)"
       "pn"
       "pn!1"))
     (("1"
       (flatten -7)
       (rewrite "expt_inverse")
       (assert)
       (inst - "P1")
       (replace -6)
       (expand "QF" -1)
       (propax))
      ("2" (assert)) ("3" (assert))))
    ("2" (assert))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: power
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (expand "cauchy_prop")
   (skosimp)
   (expand "cauchy_power")
   (lemma "cauchy_power_main"
    ("x"
     "x!1"
     "X0"
     "cx!1(0)"
     "q"
     "1+floor_log2(abs(cx!1(0))+1)"
     "p1"
     "3 + floor_log2(pn!1) +
                           floor_log2(1 + abs(cx!1(0))) * pn!1
                           + p!1
                           + pn!1"
     "p"
     "p!1"
     "Y"
     "round((cx!1(3 + floor_log2(pn!1) +
                           floor_log2(1 + abs(cx!1(0))) * pn!1
                           + p!1
                           + pn!1)
                      *
                      2 ^
                       -(3 + floor_log2(pn!1) +
                          floor_log2(1 + abs(cx!1(0))) * pn!1
                          + p!1
                          + pn!1))
                     ^ pn!1
                     * 2 ^ p!1)"
     "X"
     "cx!1(3 + floor_log2(pn!1) +
                           floor_log2(1 + abs(cx!1(0))) * pn!1
                           + p!1
                           + pn!1)"
     "pn"
     "pn!1"))
   (rewrite "floor_log2_def")
   (rewrite "floor_log2_def")
   (name-replace "P1"
    "3 + floor(log2(pn!1)) +
                          floor(log2(1 + abs(cx!1(0)))) * pn!1
                          + p!1
                          + pn!1")
   (inst-cp - "P1")
   (("1"
     (replace -3 -1)
     (inst - "0")
     (rewrite "expt_x0")
     (flatten)
     (assert)
     (rewrite "expt_inverse")
     (assert))
    ("2"
     (expand "P1")
     (hide-all-but 1)
     (assert)
     (lemma "floor_log2_def")
     (inst-cp - "pn!1")
     (typepred "floor_log2(pn!1)")
     (inst - "1 + abs(cx!1(0))")
     (typepred "floor_log2(1 + abs(cx!1(0)))")
     (assert)
     (lemma "both_sides_times_pos_le1"
      ("pz" "pn!1" "x" "0" "y" "floor_log2(1 + abs(cx!1(0)))"))
     (assert))))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: power
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (case-replace "pn!1=1")
   (("1" (expand "log2") (rewrite "ln_1") (rewrite "floor_int") (assert))
    ("2"
     (case-replace "pn!1=2")
     (("1"
       (expand "log2")
       (rewrite "div_simp")
       (rewrite "floor_int")
       (assert))
      ("2"
       (lemma "log2_strict_increasing")
       (expand "strict_increasing?")
       (inst - "2" "pn!1")
       (expand "log2" -1 1)
       (rewrite "div_simp")
       (assert))))))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: power
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (case "FORALL (n:posnat): floor(log2(n)) >= 0")
   (("1"
     (inst-cp - "pn!1")
     (inst - "abs(cx!1(0))+1")
     (lemma "posreal_times_posreal_is_posreal"
      ("px" "pn!1" "py" "1 + floor(log2(abs(cx!1(0)) + 1))"))
     (("1" (assert)) ("2" (assert))))
    ("2"
     (hide 2)
     (skosimp*)
     (case-replace "n!1=1")
     (("1"
       (expand "log2")
       (rewrite "ln_1")
       (rewrite "floor_int")
       (assert))
      ("2"
       (case-replace "n!1=2")
       (("1"
         (expand "log2")
         (rewrite "div_simp")
         (rewrite "floor_int")
         (assert))
        ("2"
         (lemma "log2_strict_increasing")
         (expand "strict_increasing?")
         (inst - "2" "n!1")
         (expand "log2" -1 1)
         (rewrite "div_simp")
         (assert))))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: sum
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (induct "n1")
   (("1"
     (skosimp*)
     (expand "sigma")
     (inst - "0")
     (expand "cauchy_prop")
     (inst - "p!1")
     (expand "cauchys_to_reals")
     (flatten)
     (rewrite "expt_inverse")
     (rewrite "div_mult_pos_lt2" 1)
     (lemma "abs_mult"
      ("x" "xs!1(0) - cxs!1(0)(p!1) * (1 / (2 ^ p!1))" "y" "2 ^ p!1"))
     (expand "abs" -1 3)
     (hide -1)
     (assert)
     (expand "sigma")
     (lemma "abs_mult"
      ("x" "xs!1(0) - cxs!1(0)(p!1) * (1 / (2 ^ p!1))" "y" "2^p!1"))
     (expand "abs" -1 3)
     (replace -1 1 rl)
     (hide -1)
     (assert)
     (rewrite "associative_mult" :dir rl)
     (rewrite "inverse_mult")
     (assert)
     (name-replace "XP" "xs!1(0) * 2 ^ p!1")
     (grind))
    ("2"
     (skosimp*)
     (inst - "cxs!1" "_" "xs!1")
     (replace -2 -1)
     (expand "sigma" 1)
     (inst - "p!1")
     (name-replace "SS" "sigma(0, j!1, xs!1)")
     (name-replace "CS" "sigma(0, j!1, cauchys_to_reals(cxs!1, p!1))")
     (expand "cauchys_to_reals")
     (lemma "triangle"
      ("x" "SS-CS" "y" "xs!1(1 + j!1) - cxs!1(1 + j!1)(p!1) * 2 ^ -p!1"))
     (case "abs(xs!1(1 + j!1) - cxs!1(1 + j!1)(p!1) * 2 ^ -p!1)<=2^-p!1")
     (("1" (assert))
      ("2"
       (hide -1 -2 2)
       (expand "cauchy_prop")
       (inst - "1+j!1")
       (inst - "p!1")
       (flatten)
       (rewrite "expt_inverse")
       (rewrite "div_mult_pos_le2" 1)
       (lemma "abs_mult"
        ("x"
         "xs!1(1 + j!1) - cxs!1(1 + j!1)(p!1) * (1 / (2 ^ p!1))"
         "y"
         "2 ^ p!1"))
       (expand "abs" -1 3)
       (replace -1 1 rl)
       (expand "<=" 1)
       (flatten)
       (rewrite "abs_interval")
       (assert))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: sum
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (induct "n")
   (("1"
     (skosimp*)
     (expand "cauchy_sum_aux")
     (expand "cauchys_to_reals")
     (expand "sigma")
     (expand "sigma")
     (propax))
    ("2"
     (skosimp*)
     (expand "cauchy_sum_aux" 1)
     (expand "sigma" 1)
     (inst - "cxs!1" "p!1")
     (name-replace "AA" "cauchy_sum_aux(cxs!1, j!1, p!1) * 2 ^ -p!1")
     (name-replace "B" "sigma(0,j!1,cauchys_to_reals(cxs!1, p!1))")
     (expand "cauchys_to_reals")
     (propax))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: sum
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (lemma "sum_lemma3"
    ("cxs" "cxs!1" "n" "n!1" "p" "p!1 + floor(log2(n!1 + 1)) + 2"))
   (("1"
     (replace -1 1 rl)
     (hide -1)
     (expand "cauchy_sum_type_int")
     (rewrite "floor_log2_def")
     (name-replace "AA"
      "cauchy_sum_aux(cxs!1, n!1, 2 + floor(log2(1 + n!1)) + p!1)")
     (lemma "expt_inverse" ("n0x" "2" "i" "2 + floor(log2(1 + n!1))"))
     (lemma "expt_plus"
      ("n0x" "2" "i" "-(2 + floor(log2(1 + n!1)))" "j" "-p!1"))
     (replace -1)
     (replace -2)
     (name-replace "B" "2 ^ (2 + floor(log2(1 + n!1)))")
     (lemma "abs_mult" ("x" "AA/B - round(AA/B)" "y" "2 ^ -p!1"))
     (replace -1 1)
     (hide -1 -2 -3)
     (name-replace "C" "AA/B")
     (lemma "abs_interval2" ("x" "C - round(C)" "a" "1/2"))
     (lemma "lemma_A2_generalized" ("r" "round(C)" "x" "C"))
     (assert)
     (flatten -1)
     (assert)
     (expand "abs" 1 2)
     (lemma "expt_plus" ("n0x" "2" "i" "-1" "j" "-p!1"))
     (lemma "both_sides_times_pos_le1"
      ("x" "abs(C - round(C))" "y" "1 / 2" "pz" "2 ^ -p!1"))
     (expand "^" -2 2)
     (expand "expt" -2)
     (expand "expt" -2)
     (assert))
    ("2"
     (hide 2)
     (lemma "sum_lemma4_TCC1")
     (inst - "n!1" "p!1")
     (assert))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: sum
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (lemma "sum_lemma2" ("xs" "xs!1" "n1" "n1!1" "cxs" "cxs!1"))
   (replace -2 -1)
   (lemma "sum_lemma4" ("cxs" "cxs!1" "n" "n1!1" "p" "p!1"))
   (case "floor(log2(n1!1 + 1))>=0")
   (("1"
     (inst - "p!1 + floor(log2(n1!1 + 1)) + 2")
     (("1"
       (name "AA" "sigma(0,n1!1,xs!1)")
       (replace -1)
       (name "B" "cauchy_sum_type_int(cxs!1, n1!1, p!1)")
       (replace -1)
       (name "C"
             "sigma(0,n1!1,cauchys_to_reals(cxs!1,2+floor(log2(1+n1!1)) +
              p!1))")
       (("1"
         (lemma "expt_inverse" ("n0x" "2" "i" "p!1"))
         (replace -1)
         (name "D" "B / 2 ^ p!1")
         (replace -1)
         (replace -3)
         (lemma "triangle" ("x" "AA-C" "y" "C-D"))
         (case "2 ^ -(p!1 + 1)+(n1!1 + 1) * 2 ^ -(p!1 + floor(log2(n1!1 + 1)) + 2)<= 1 / (2 ^ p!1)")
         (("1" (assert))
          ("2"
           (hide -1 -2 -3 -4 -5 -6 -8 -9 -10 2)
           (lemma "lemma_A3"
            ("i" "floor(log2(1 + n1!1))" "px" "1 + n1!1"))
           (simplify -1)
           (flatten -1)
           (hide -1)
           (lemma "both_sides_times_pos_lt1"
            ("x"
             "1 + n1!1"
             "y"
             "2 ^ (1 + floor(log2(1 + n1!1)))"
             "pz"
             "2 ^ -(p!1 + floor(log2(n1!1 + 1)) + 2)"))
           (replace -1 -2 rl)
           (hide -1)
           (lemma "expt_plus"
            ("n0x"
             "2"
             "i"
             "1 + floor(log2(1 + n1!1))"
             "j"
             "-(p!1 + floor(log2(n1!1 + 1)) + 2)"))
           (replace -1 -2 rl)
           (hide -1)
           (name-replace "FLOOR" "floor(log2(n1!1 + 1))")
           (name-replace "LHS" "(1 + n1!1) * 2 ^ -(p!1 + FLOOR + 2)")
           (case-replace "1 + FLOOR + -(p!1 + FLOOR + 2)= -(p!1+1)")
           (("1"
             (hide -1 -3)
             (rewrite "expt_inverse")
             (rewrite "expt_plus")
             (rewrite "expt_x1")
             (assert))
            ("2" (assert))))))
        ("2" (assert))))
      ("2" (assert))))
    ("2"
     (hide-all-but 1)
     (lemma "nonneg_floor_is_nat" ("x" "log2(n1!1 + 1)"))
     (("1" (propax))
      ("2"
       (hide 2)
       (expand "log2")
       (lemma "ln_strict_increasing")
       (expand "strict_increasing?")
       (inst - "1" "1+n1!1")
       (case-replace "n1!1=0")
       (("1" (rewrite "ln_1") (assert))
        ("2"
         (lemma "both_sides_div_pos_lt1"
          ("x" "0" "y" "ln(1+n1!1)" "pz" "ln(2)"))
         (("1" (rewrite "ln_1") (assert))
          ("2"
           (lemma "ln_strict_increasing")
           (expand "strict_increasing?")
           (inst - "1" "2")
           (rewrite "ln_1")
           (assert))))))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: sum
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (expand "cauchy_prop" 1)
   (skosimp)
   (lemma "sum_lemma5" ("xs" "xs!1" "cxs" "cxs!1" "n1" "m!1" "p" "p!1"))
   (replace -2 -1)
   (expand "cauchy_sum")
   (lemma "abs_interval1"
    ("x"
     "sigma(0,m!1,xs!1) -cauchy_sum_type_int(cxs!1, m!1, p!1) * 2 ^ -p!1"
     "a"
     "(2 ^ -p!1)"))
   (replace -2 -1)
   (simplify -1)
   (flatten)
   (name-replace "AA" "sigma(0,m!1,xs!1)")
   (name-replace "B" "cauchy_sum_type_int(cxs!1,m!1,p!1)")
   (lemma "expt_pos" ("px" "2" "i" "p!1"))
   (rewrite "expt_inverse")
   (hide -4 -5)
   (rewrite "div_mult_pos_lt2" -3)
   (assert)
   (lemma "div_mult_pos_lt1" ("py" "2^p!1" "x" "AA" "z" "B-1"))
   (assert))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: sum
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (expand "log2")
   (lemma "ln_strict_increasing")
   (expand "strict_increasing?")
   (inst-cp - "1" "2")
   (inst - "1" "1+n!1")
   (rewrite "ln_1")
   (assert)
   (case-replace "n!1=0")
   (("1" (assert) (rewrite "floor_int" 1) (assert))
    ("2"
     (assert)
     (lemma "posreal_div_posreal_is_posreal"
      ("px" "ln(1+n!1)" "py" "ln(2)"))
     (typepred "floor(ln(1 + n!1) / ln(2))")
     (assert))))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: sum
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (expand "cauchys_real?")
   (inst + "LAMBDA n: 0")
   (expand "cauchys_prop")
   (skolem!)
   (expand "cauchy_prop")
   (propax))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: sum
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (typepred "cxs!1")
   (expand "cauchys_real?")
   (skosimp)
   (expand "cauchy_real?")
   (inst + "sigma(0,n!1,xs!1)")
   (expand "cauchy_prop")
   (skosimp)
   (lemma "sum_lemma5" ("cxs" "cxs!1" "xs" "xs!1" "n1" "n!1" "p" "p!1"))
   (split -1)
   (("1"
     (hide -2)
     (name-replace "CS" "cauchy_sum_type_int(cxs!1, n!1, p!1)")
     (name-replace "SS" "sigma(0, n!1, xs!1)")
     (rewrite "expt_inverse")
     (lemma "expt_pos" ("px" "2" "i" "p!1"))
     (name-replace "P" "2 ^ p!1")
     (rewrite "div_mult_pos_lt2" -2)
     (lemma "abs_mult" ("x" "SS-CS/P" "y" "P"))
     (expand "abs" -1 3)
     (assert))
    ("2" (skosimp) (expand "cauchys_prop") (inst - "n!2"))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: mul
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "neg_lt" ("x" "nx!1"))
   (lemma "posreal_times_posreal_is_posreal" ("px" "py!1" "py" "-nx!1"))
   (grind))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: mul
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (case "nnx!1=0")
   (("1"
     (replace -1)
     (lemma "both_sides_times_pos_lt2"
      ("pz" "x!1" "x" "nny!1" "y" "y!1"))
     (("1"
       (replace -1 -4 rl)
       (lemma "both_sides_times_pos_lt2"
        ("pz" "nny!1" "x" "0" "y" "x!1"))
       (("1" (assert)) ("2" (assert))))
      ("2" (assert))))
    ("2"
     (case "0<nnx!1")
     (("1"
       (lemma "lt_times_lt_pos1"
        ("px" "nnx!1" "nnz" "nny!1" "y" "x!1" "w" "y!1"))
       (("1" (assert)) ("2" (assert))))
      ("2" (assert))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: mul
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (typepred "nnx!1")
   (expand ">=")
   (expand "<=")
   (split)
   (("1"
     (lemma "both_sides_times_neg_lt2" ("nz" "-1" "x" "x!1" "y" "nnx!1"))
     (lemma "lt_times_lt_neg1"
      ("ny" "-1 * nnx!1" "x" "-1 * x!1" "z" "y!1" "npw" "npy!1"))
     (("1" (assert)) ("2" (assert))))
    ("2"
     (replace -1 (-2 1) rl)
     (lemma "both_sides_times_pos_lt2"
      ("pz" "x!1" "y" "npy!1" "x" "y!1"))
     (("1"
       (lemma "negreal_times_posreal_is_negreal" ("nx" "y!1" "py" "x!1"))
       (("1" (assert)) ("2" (assert))))
      ("2" (assert))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: mul
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "D3" ("x" "px!1" "n" "n!1"))
   (lemma "D3" ("x" "py!1" "n" "m!1"))
   (lemma "lt_times_lt_nonneg1"
    ("nnx" "px!1" "x" "1+n!1" "nny" "py!1" "y" "1+m!1"))
   (grind)
   (case "1<=n!1")
   (("1"
     (case "1<=m!1")
     (("1"
       (lemma "lt_times_lt_nonneg1"
        ("nnx" "n!1 - 1" "x" "px!1" "nny" "m!1 - 1" "y" "py!1"))
       (("1" (assert)) ("2" (assert)) ("3" (assert))))
      ("2"
       (case "m!1=0")
       (("1" (grind)) ("2" (grind) (expand "<=" -5) (propax))))))
    ("2"
     (lemma "le_equiv_not_lt" ("x" "1" "y" "n!1"))
     (replace -1 1 lr)
     (hide -1)
     (rewrite "lt_equiv_le_plus_one")
     (lemma "both_sides_plus_le1" ("x" "n!1" "y" "0" "z" "1"))
     (replace -1 -2 lr)
     (hide -1)
     (lemma "total_le")
     (expand "total_order?")
     (expand "partial_order?")
     (expand "antisymmetric?")
     (flatten)
     (inst -2 "n!1" "0")
     (prop)
     (replace -1)
     (case "1<=m!1")
     (("1"
       (lemma "lt_times_lt_nonneg1"
        ("nnx" "0" "x" "px!1" "nny" "m!1 - 1" "y" "py!1"))
       (("1" (grind)) ("2" (assert))))
      ("2" (assert))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: mul
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "D1" ("x" "y!1" "n" "m!1"))
   (lemma "D3" ("x" "px!1" "n" "n!1"))
   (grind))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: mul
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "trich_lt" ("x" "x!1" "y" "0"))
   (split)
   (("1"
     (lemma "trich_lt" ("x" "y!1" "y" "0"))
     (split)
     (("1"
       (lemma "D_nn" ("n" "n!1" "m" "m!1" "nx" "x!1" "ny" "y!1"))
       (("1" (grind)) ("2" (assert)) ("3" (assert))))
      ("2"
       (lemma "D_n0" ("n" "n!1" "m" "m!1" "nx" "x!1" "y" "y!1"))
       (("1" (grind)) ("2" (assert))))
      ("3"
       (lemma "D_pn" ("m" "n!1" "n" "m!1" "ny" "x!1" "px" "y!1"))
       (("1" (grind)) ("2" (assert)) ("3" (assert))))))
    ("2"
     (lemma "trich_lt" ("x" "y!1" "y" "0"))
     (split)
     (("1"
       (lemma "D_n0" ("m" "n!1" "n" "m!1" "y" "x!1" "nx" "y!1"))
       (("1" (grind)) ("2" (assert))))
      ("2" (grind))
      ("3"
       (lemma "D_p0" ("m" "n!1" "n" "m!1" "y" "x!1" "px" "y!1"))
       (("1" (grind)) ("2" (assert))))))
    ("3"
     (lemma "trich_lt" ("x" "y!1" "y" "0"))
     (split)
     (("1"
       (lemma "D_pn" ("n" "n!1" "m" "m!1" "ny" "y!1" "px" "x!1"))
       (("1" (grind)) ("2" (assert)) ("3" (assert))))
      ("2"
       (lemma "D_p0" ("n" "n!1" "m" "m!1" "y" "y!1" "px" "x!1"))
       (("1" (grind)) ("2" (assert))))
      ("3"
       (lemma "D_pp" ("n" "n!1" "m" "m!1" "py" "y!1" "px" "x!1"))
       (("1" (grind)) ("2" (assert)) ("3" (assert))))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: mul
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (typepred "cx!1")
   (expand "cauchy_real?")
   (skolem!)
   (expand "cauchy_prop")
   (inst - "0")
   (lemma "dich_le" ("x" "cx!1(0)" "y" "0"))
   (name "r!1" "floor(log2(abs(cx!1(0))+2))")
   (replace -1)
   (lemma "lemma_A3" ("i" "r!1" "px" "abs(cx!1(0)) + 2"))
   (replace -2)
   (simplify -1)
   (flatten)
   (split -4)
   (("1"
     (lemma "abs_nonpos" ("npx" "cx!1(0)"))
     (("1"
       (replace -1)
       (lemma "both_sides_plus1" ("x" "s!1-3" "y" "r!1" "z" "3"))
       (simplify -1)
       (replace -1 -9)
       (lemma "expt_plus" ("n0x" "2" "i" "s!1-2" "j" "-1"))
       (simplify -1)
       (replace -10 1)
       (replace -10 -6 rl)
       (simplify -6)
       (assert))
      ("2" (propax))))
    ("2"
     (lemma "abs_nonneg" ("nnx" "cx!1(0)"))
     (("1"
       (lemma "lemma_A3" ("i" "r!1" "px" "abs(cx!1(0)) + 2"))
       (replace -6 -1)
       (replace -2)
       (simplify -1)
       (flatten)
       (lemma "both_sides_plus1" ("x" "s!1-3" "y" "r!1" "z" "3"))
       (replace -1 -11)
       (replace -11 -7 rl)
       (replace -11 -6 rl)
       (assert))
      ("2" (assert))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: mul
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (split)
   (("1"
     (typepred "cx!1")
     (expand "cauchy_real?")
     (skolem!)
     (expand "cauchy_prop")
     (inst-cp - "p!1")
     (inst - "0")
     (expand "^" -1)
     (expand "expt")
     (flatten)
     (lemma "trich_lt" ("x" "x!1" "y" "0"))
     (split)
     (("1"
       (lemma "expt_ge1" ("b" "2" "n" "p!1-1"))
       (("1"
         (lemma "expt_ge1" ("b" "2" "n" "p!1"))
         (lemma "expt_plus" ("n0x" "2" "i" "p!1-1" "j" "1"))
         (expand "^" -1 3)
         (expand "expt")
         (expand "expt")
         (expand ">=")
         (lemma "both_sides_times_pos_le1"
          ("x" "1" "y" "2 ^ (p!1 - 1)" "pz" "2"))
         (replace -4)
         (replace -2 -1 rl)
         (simplify -1)
         (lemma "strict_lt")
         (expand "strict_total_order?")
         (expand "strict_order?")
         (expand "transitive?")
         (flatten)
         (inst-cp - "cx!1(0) - 1" "x!1" "0")
         (lemma "both_sides_times_pos_lt1"
          ("x" "x!1" "y" "0" "pz" "2^p!1"))
         (rewrite "zero_times1")
         (inst-cp - "cx!1(p!1) - 1" "x!1 * 2 ^ p!1" "0")
         (replace -11)
         (replace -14)
         (replace -12)
         (replace -1)
         (simplify)
         (rewrite "lt_equiv_le_plus_one" -4)
         (rewrite "lt_equiv_le_plus_one" -5)
         (lemma "abs_nonpos" ("npx" "cx!1(0)"))
         (("1"
           (lemma "abs_nonpos" ("npx" "cx!1(p!1)"))
           (("1"
             (replace -19)
             (replace -1)
             (replace -2)
             (lemma "both_sides_times_neg_le1"
              ("y"
               "1 + -cx!1(p!1)"
               "x"
               "2 * 2 ^ p!1 + -cx!1(0) * 2 ^ p!1"
               "nz"
               "-1"))
             (replace -1 1 rl)
             (simplify 1)
             (simplify 1)
             (lemma "both_sides_minus_lt1"
              ("x" "x!1 * 2 ^ p!1" "y" "1 + cx!1(p!1)" "z" "2"))
             (replace -1 -19 rl)
             (simplify -19)
             (lemma "both_sides_times_pos_lt1"
              ("x" "cx!1(0) - 1" "y" "x!1" "pz" "2^p!1"))
             (replace -1 -17 rl)
             (lemma "lt_minus_lt2"
              ("x"
               "(cx!1(0) - 1) * 2 ^ p!1"
               "y"
               "x!1 * 2 ^ p!1"
               "w"
               "2"
               "z"
               "2 ^ p!1"))
             (replace -13)
             (replace -18)
             (simplify -1)
             (inst - "cx!1(0) * 2 ^ p!1 - 2 * 2 ^ p!1"
              "x!1 * 2 ^ p!1 - 2" "cx!1(p!1) - 1")
             (assert))
            ("2" (propax))))
          ("2" (propax))))
        ("2" (assert))))
      ("2"
       (replace -1)
       (rewrite "lt_equiv_le_plus_one")
       (rewrite "lt_plus_one_equiv_le")
       (rewrite "zero_times1")
       (rewrite "lt_equiv_le_plus_one")
       (rewrite "lt_plus_one_equiv_le")
       (lemma "total_le")
       (expand "total_order?")
       (expand "partial_order?")
       (expand "antisymmetric?")
       (flatten)
       (inst-cp - "cx!1(0)" "0")
       (inst - "cx!1(p!1)" "0")
       (replace -6)
       (replace -7)
       (replace -8)
       (replace -9)
       (simplify)
       (replace -2)
       (replace -3)
       (replace -11)
       (expand "abs")
       (lemma "expt_ge1" ("b" "2" "n" "p!1"))
       (assert))
      ("3"
       (lemma "expt_ge1" ("b" "2" "n" "p!1"))
       (lemma "strict_lt")
       (expand "strict_total_order?")
       (expand "strict_order?")
       (expand "transitive?")
       (flatten)
       (inst-cp - "0" "x!1" "1 + cx!1(0)")
       (lemma "both_sides_times_pos_lt1"
        ("x" "0" "y" "x!1" "pz" "2^p!1"))
       (replace -7)
       (rewrite "zero_times1")
       (simplify -1)
       (inst-cp - "0" "x!1 * 2 ^ p!1" "1 + cx!1(p!1)")
       (replace -1)
       (replace -12)
       (replace -10)
       (simplify)
       (rewrite "lt_plus_one_equiv_le")
       (rewrite "lt_plus_one_equiv_le")
       (lemma "abs_nonneg" ("nnx" "cx!1(0)"))
       (("1"
         (lemma "abs_nonneg" ("nnx" "cx!1(p!1)"))
         (("1"
           (replace -16)
           (replace -1)
           (replace -2)
           (lemma "both_sides_plus_lt1"
            ("x" "cx!1(p!1) - 1" "y" "x!1* 2 ^ p!1" "z" "2"))
           (replace -1 -14 rl)
           (simplify -14)
           (lemma "expt_ge1" ("b" "2" "n" "p!1-1"))
           (("1"
             (lemma "both_sides_times_pos_lt1"
              ("x" "x!1" "y" "1 + cx!1(0)" "pz" "2^p!1"))
             (replace -15 -1)
             (simplify -1)
             (lemma "expt_plus" ("n0x" "2" "i" "p!1-1" "j" "1"))
             (expand "^" -1 3)
             (expand "expt")
             (expand "expt")
             (lemma "both_sides_times_pos_ge1"
              ("x" "2 ^ (p!1 - 1)" "y" "1" "pz" "2"))
             (replace -1 -4 rl)
             (replace -2 -4 rl)
             (simplify -4)
             (expand ">=")
             (lemma "lt_plus_lt1"
              ("x"
               "2"
               "y"
               "2 ^ p!1"
               "z"
               "x!1 * 2 ^ p!1"
               "w"
               "2 ^ p!1 + cx!1(0) * 2 ^ p!1"))
             (replace -5)
             (replace -4)
             (assert))
            ("2" (assert))))
          ("2" (assert))))
        ("2" (assert))))))
    ("2"
     (lemma "expt_plus" ("n0x" "2" "i" "p!1" "j" "s!1-2"))
     (replace -1)
     (lemma "mul_p1" ("s" "s!1" "cx" "cx!1"))
     (replace -3 -1 rl)
     (simplify -1)
     (flatten)
     (lemma "expt_ge1" ("b" "2" "n" "s!1-3"))
     (("1"
       (lemma "both_sides_times_pos_lt1"
        ("x" "2 + abs(cx!1(0))" "y" "2 ^ (s!1 - 2)" "pz" "2 ^ p!1"))
       (replace -1 1)
       (propax))
      ("2"
       (assert)
       (hide-all-but (-4 1))
       (lemma "int_abs_is_nonneg" ("i" "cx!1(0)"))
       (flatten -1)
       (expand ">=")
       (expand "<=" -2)
       (split -2)
       (("1"
         (lemma "log2_strict_increasing")
         (expand "strict_increasing?")
         (inst - "2" "2 + abs(cx!1(0))")
         (expand "log2" -1 1)
         (assert))
        ("2"
         (replace -1 * rl)
         (expand "log2")
         (rewrite "div_simp")
         (rewrite "floor_int")
         (assert))))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: mul
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (lemma "mul_p2" ("s" "s!1" "n" "cx!1(p!1)" "p" "p!1" "cx" "cx!1"))
   (replace -2 -1 rl)
   (replace -3 -1)
   (assert)
   (flatten)
   (lemma "lt_le_transitivity"
    ("x"
     "1 + abs(cx!1(p!1))"
     "y"
     "2 * 2 ^ p!1 + abs(cx!1(0)) * 2 ^ p!1"
     "z"
     "2 ^ (p!1 - 2 + s!1)"))
   (assert))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: mul
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (name "r!1" "floor(log2(abs(cx!1(0)) + 2))")
   (name "r!2" "floor(log2(abs(cy!1(0)) + 2))")
   (replace -1)
   (replace -2)
   (lemma "mul_p3" ("s" "s1!1" "cx" "cx!1" "p" "p!1+s2!1"))
   (lemma "mul_p3" ("s" "s2!1" "cx" "cy!1" "p" "p!1+s1!1"))
   (case "r!1>=0")
   (("1"
     (case "r!2>=0")
     (("1"
       (assert)
       (lemma "le_plus_le"
        ("x"
         "1 + abs(cy!1(p!1 + s1!1))"
         "y"
         "2 ^ (p!1 - 2 + s1!1 + s2!1)"
         "z"
         "1 + abs(cx!1(p!1 + s2!1))"
         "w"
         "2 ^ (p!1 - 2 + s1!1 + s2!1)"))
       (lemma "expt_plus"
        ("n0x" "2" "i" "p!1 - 2 + s1!1 + s2!1" "j" "1"))
       (rewrite "expt_x1")
       (assert))
      ("2"
       (hide-all-but (1 -4))
       (lemma "log2_strict_increasing")
       (expand "strict_increasing?")
       (lemma "int_abs_is_nonneg" ("i" "cy!1(0)"))
       (flatten)
       (inst - "1" "2+abs(cy!1(0))")
       (expand "log2" -4 1)
       (rewrite "ln_1")
       (assert))))
    ("2"
     (hide-all-but (1 -4))
     (lemma "log2_strict_increasing")
     (expand "strict_increasing?")
     (lemma "int_abs_is_nonneg" ("i" "cx!1(0)"))
     (flatten)
     (inst - "1" "2+abs(cx!1(0))")
     (expand "log2" -4 1)
     (rewrite "ln_1")
     (assert))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: mul
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (lemma "mul_p4"
    ("cx" "cx!1" "cy" "cy!1" "s1" "s1!1" "s2" "s2!1" "p" "p!1"))
   (assert)
   (replace -4 -1 rl)
   (replace -5 -1 rl)
   (lemma "both_sides_times_neg_lt1"
    ("y"
     "1 + abs(n1!1) + abs(n2!1)"
     "x"
     "2 ^ (p!1 - 1 + s1!1 + s2!1)"
     "nz"
     "-1"))
   (replace -2 -1)
   (split)
   (("1"
     (lemma "lemma_A2"
      ("r" "r!1" "p" "n1!1 * n2!1" "q" "2 ^ (p!1 + s1!1 + s2!1)"))
     (replace -8 -1 rl)
     (simplify -1)
     (flatten)
     (hide-all-but (-1 -3 1))
     (lemma "expt_plus" ("n0x" "2" "i" "p!1 + s1!1 + s2!1" "j" "-1"))
     (expand "^" -1 3)
     (expand "expt")
     (expand "expt")
     (replace -1 -2 rl)
     (lemma "lt_plus_lt1"
      ("x"
       "2 ^ (p!1 + s1!1 + s2!1) * r!1 - 2 ^ (p!1 - 1 + s1!1 + s2!1)"
       "y"
       "n1!1 * n2!1"
       "z"
       "2 ^ (p!1 - 1 + s1!1 + s2!1) * -1"
       "w"
       "(1 + abs(n1!1) + abs(n2!1)) * -1"))
     (assert))
    ("2"
     (flatten)
     (lemma "lemma_A2"
      ("r" "r!1" "p" "n1!1 * n2!1" "q" "2 ^ (p!1 + s1!1 + s2!1)"))
     (replace -8 -1 rl)
     (simplify -1)
     (flatten)
     (lemma "expt_plus" ("n0x" "2" "i" "p!1 + s1!1 + s2!1" "j" "-1"))
     (expand "^" -1 3)
     (expand "expt")
     (expand "expt")
     (replace -1 -3 rl)
     (hide-all-but (1 -3 -5))
     (lemma "lt_plus_lt1"
      ("x"
       "n1!1 * n2!1"
       "y"
       "2 ^ (p!1 - 1 + s1!1 + s2!1) + 2 ^ (p!1 + s1!1 + s2!1) * r!1"
       "z"
       "1 + abs(n1!1) + abs(n2!1)"
       "w"
       "2 ^ (p!1 - 1 + s1!1 + s2!1)"))
     (grind))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: mul
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (expand "cauchy_prop")
   (inst -6 "p!1+s2!1")
   (inst -7 "p!1+s1!1")
   (replace -3 -6 rl)
   (replace -4 -7 rl)
   (flatten)
   (lemma "mul_p5"
    ("s1"
     "s1!1"
     "s2"
     "s2!1"
     "cx"
     "cx!1"
     "cy"
     "cy!1"
     "p"
     "p!1"
     "r"
     "r!1"
     "n1"
     "n1!1"
     "n2"
     "n2!1"))
   (assert)
   (flatten)
   (lemma "D"
    ("n"
     "n1!1"
     "x"
     "x!1* 2 ^ (p!1 + s2!1)"
     "m"
     "n2!1"
     "y"
     "y!1* 2 ^ (p!1 + s1!1)"))
   (assert)
   (flatten)
   (lemma "lt_le_transitivity"
    ("x"
     "2 ^ (p!1 + s1!1 + s2!1) * r!1 - 2 ^ (p!1 + s1!1 + s2!1)"
     "y"
     "-1 - abs(n1!1) - abs(n2!1) + n1!1 * n2!1"
     "z"
     "2 ^ (p!1 + s1!1) * 2 ^ (p!1 + s2!1) * x!1 * y!1"))
   (replace -2 -1)
   (replace -4 -1)
   (simplify -1)
   (lemma "expt_plus" ("n0x" "2" "i" "p!1 + s1!1" "j" "p!1 + s2!1"))
   (simplify -1)
   (lemma "expt_plus" ("n0x" "2" "i" "p!1 + s1!1 + s2!1" "j" "p!1"))
   (simplify -1)
   (replace -1 -2 lr)
   (lemma "strict_lt")
   (expand "strict_total_order?")
   (expand "strict_order?")
   (expand "transitive?")
   (flatten)
   (lemma "le_lt_transitivity"
    ("x"
     "2^ (p!1 + s1!1) * 2 ^ (p!1 + s2!1) * x!1 * y!1"
     "y"
     "1 + abs(n1!1) + abs(n2!1) + n1!1 * n2!1"
     "z"
     "2 ^ (p!1 + s1!1 + s2!1) + 2 ^ (p!1 + s1!1 + s2!1) * r!1"))
   (lemma "expt_ge1" ("b" "2" "n" "p!1 + s1!1 + s2!1"))
   (lemma "both_sides_times_pos_lt1"
    ("x"
     "r!1 - 1"
     "y"
     "x!1 * y!1 * 2 ^ p!1"
     "pz"
     "2 ^ (p!1 + s1!1 + s2!1)"))
   (lemma "both_sides_times_pos_lt1"
    ("y"
     "r!1 + 1"
     "x"
     "x!1 * y!1 * 2 ^ p!1"
     "pz"
     "2 ^ (p!1 + s1!1 + s2!1)"))
   (assert))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: mul
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (typepred "cx!1" "cy!1")
   (expand "cauchy_real?")
   (skosimp*)
   (inst + "x!1*x!2")
   (expand "cauchy_prop" 1)
   (skosimp*)
   (lemma "mul_p6"
    ("s1"
     "floor(log2(abs(cx!1(0))+2))+3"
     "s2"
     "floor(log2(abs(cy!1(0))+2))+3"
     "n1"
     "cx!1(p!1+floor(log2(abs(cy!1(0))+2))+3)"
     "n2"
     "cy!1(p!1+floor(log2(abs(cx!1(0))+2))+3)"
     "p"
     "p!1"
     "r"
     "round((cx!1(3 + p!1 + floor(log2(2 + abs(cy!1(0))))) *
                      cy!1(3 + p!1 + floor(log2(2 + abs(cx!1(0))))))
                     /
                     2 ^
                      (6 + p!1 + floor(log2(2 + abs(cx!1(0)))) +
                        floor(log2(2 + abs(cy!1(0))))))"
     "x"
     "x!1"
     "y"
     "x!2"
     "cx"
     "cx!1"
     "cy"
     "cy!1"))
   (("1" (assert))
    ("2"
     (hide-all-but 1)
     (lemma "int_abs_is_nonneg" ("i" "cy!1(0)"))
     (flatten)
     (lemma "log2_strict_increasing")
     (expand "strict_increasing?")
     (inst - "1" "2 + abs(cy!1(0))")
     (expand "log2" -1 1)
     (rewrite "ln_1")
     (assert))
    ("3"
     (hide-all-but 1)
     (lemma "int_abs_is_nonneg" ("i" "cx!1(0)"))
     (flatten)
     (lemma "log2_strict_increasing")
     (expand "strict_increasing?")
     (inst - "1" "2 + abs(cx!1(0))")
     (expand "log2" -1 1)
     (rewrite "ln_1")
     (assert))
    ("4"
     (hide-all-but 1)
     (lemma "int_abs_is_nonneg" ("i" "cx!1(0)"))
     (flatten)
     (lemma "log2_strict_increasing")
     (expand "strict_increasing?")
     (inst - "1" "2 + abs(cx!1(0))")
     (expand "log2" -1 1)
     (rewrite "ln_1")
     (assert))
    ("5"
     (hide-all-but 1)
     (lemma "int_abs_is_nonneg" ("i" "cy!1(0)"))
     (flatten)
     (lemma "log2_strict_increasing")
     (expand "strict_increasing?")
     (inst - "1" "2 + abs(cy!1(0))")
     (expand "log2" -1 1)
     (rewrite "ln_1")
     (assert))
    ("6"
     (hide-all-but 1)
     (lemma "int_abs_is_nonneg" ("i" "cx!1(0)"))
     (flatten)
     (lemma "log2_strict_increasing")
     (expand "strict_increasing?")
     (inst - "1" "2 + abs(cx!1(0))")
     (expand "log2" -1 1)
     (rewrite "ln_1")
     (assert))
    ("7"
     (hide-all-but 1)
     (lemma "int_abs_is_nonneg" ("i" "cy!1(0)"))
     (flatten)
     (lemma "log2_strict_increasing")
     (expand "strict_increasing?")
     (inst - "1" "2 + abs(cy!1(0))")
     (expand "log2" -1 1)
     (rewrite "ln_1")
     (assert))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: mul
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (expand "cauchy_mul")
   (expand "cauchy_prop" 1)
   (skosimp*)
   (lemma "mul_p6"
    ("s1"
     "floor(log2(abs(cx!1(0))+2))+3"
     "s2"
     "floor(log2(abs(cy!1(0))+2))+3"
     "n1"
     "cx!1(p!1+floor(log2(abs(cy!1(0))+2))+3)"
     "n2"
     "cy!1(p!1+floor(log2(abs(cx!1(0))+2))+3)"
     "p"
     "p!1"
     "r"
     "round((cx!1(3 + p!1 + floor(log2(2 + abs(cy!1(0))))) *
                      cy!1(3 + p!1 + floor(log2(2 + abs(cx!1(0))))))
                     /
                     2 ^
                      (6 + p!1 + floor(log2(2 + abs(cx!1(0)))) +
                        floor(log2(2 + abs(cy!1(0))))))"
     "x"
     "x!1"
     "y"
     "y!1"
     "cx"
     "cx!1"
     "cy"
     "cy!1"))
   (("1" (assert) (rewrite "floor_log2_def") (rewrite "floor_log2_def"))
    ("2"
     (hide -1 -2 2)
     (lemma "int_abs_is_nonneg" ("i" "cy!1(0)"))
     (flatten)
     (lemma "log2_strict_increasing")
     (expand "strict_increasing?")
     (inst - "1" "2 + abs(cy!1(0))")
     (expand "log2" -1 1)
     (rewrite "ln_1")
     (assert))
    ("3"
     (hide-all-but 1)
     (lemma "int_abs_is_nonneg" ("i" "cx!1(0)"))
     (flatten)
     (lemma "log2_strict_increasing")
     (expand "strict_increasing?")
     (inst - "1" "2 + abs(cx!1(0))")
     (expand "log2" -1 1)
     (rewrite "ln_1")
     (assert))
    ("4"
     (hide-all-but 1)
     (lemma "log2_strict_increasing")
     (expand "strict_increasing?")
     (lemma "int_abs_is_nonneg" ("i" "cx!1(0)"))
     (flatten)
     (inst - "1" "2 + abs(cx!1(0))")
     (expand "log2" -4 1)
     (rewrite "ln_1")
     (assert))
    ("5"
     (hide-all-but 1)
     (lemma "int_abs_is_nonneg" ("i" "cy!1(0)"))
     (flatten)
     (lemma "log2_strict_increasing")
     (expand "strict_increasing?")
     (inst - "1" "2 + abs(cy!1(0))")
     (expand "log2" -1 1)
     (rewrite "ln_1")
     (assert))
    ("6"
     (hide-all-but 1)
     (lemma "int_abs_is_nonneg" ("i" "cx!1(0)"))
     (flatten)
     (lemma "log2_strict_increasing")
     (expand "strict_increasing?")
     (inst - "1" "2 + abs(cx!1(0))")
     (expand "log2" -1 1)
     (rewrite "ln_1")
     (assert))
    ("7"
     (hide-all-but 1)
     (lemma "int_abs_is_nonneg" ("i" "cy!1(0)"))
     (flatten)
     (lemma "log2_strict_increasing")
     (expand "strict_increasing?")
     (inst - "1" "2 + abs(cy!1(0))")
     (expand "log2" -1 1)
     (rewrite "ln_1")
     (assert))))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: mul
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (lemma "int_abs_is_nonneg" ("i" "cy!1(0)"))
   (flatten)
   (expand ">=")
   (expand "<=" -2)
   (split -2)
   (("1"
     (lemma "log2_strict_increasing")
     (expand "strict_increasing?")
     (inst - "2" "2+abs(cy!1(0))")
     (expand "log2" -1 1)
     (rewrite "div_simp")
     (assert))
    ("2"
     (replace -1 * rl)
     (expand "log2" 1)
     (rewrite "div_simp")
     (rewrite "floor_int")
     (assert))))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: mul
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (lemma "cauchy_mul_type" ("cx" "c1!1" "cy" "c2!1"))
   (rewrite "floor_log2_def")
   (rewrite "floor_log2_def")
   (assert))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: powerseries
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (expand "powerseries")
   (expand "cauchy_powerseries")
   (lemma "sum_lemma"
    ("xs"
     "(LAMBDA i: IF i = 0 THEN xs!1(i) ELSE xs!1(i) * x!1 ^ i ENDIF)"
     "m"
     "m!1"
     "cxs"
     "(LAMBDA i: IF i = 0 THEN cxs!1(i) ELSE cauchy_mul(cxs!1(i), cauchy_power(cx!1, i)) ENDIF)"))
   (("1"
     (assert)
     (hide 2)
     (skosimp*)
     (lemma "trichotomy" ("x" "n!1"))
     (inst - "n!1")
     (split -1)
     (("1"
       (simplify)
       (assert)
       (lemma "mul_lemma"
        ("x"
         "xs!1(n!1)"
         "y"
         "x!1 ^ n!1"
         "cx"
         "cxs!1(n!1)"
         "cy"
         "cauchy_power(cx!1, n!1)"))
       (assert)
       (lemma "power_lemma" ("x" "x!1" "cx" "cx!1" "pn" "n!1"))
       (assert))
      ("2" (assert)) ("3" (assert))))
    ("2" (skosimp*) (assert))))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: powerseries
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (typepred "cxs!1")
   (expand "cauchys_real?")
   (typepred "cx!1")
   (expand "cauchy_real?")
   (skosimp*)
   (inst + "(LAMBDA i: IF i = 0 THEN xs!1(i) ELSE xs!1(i)*x!1^i ENDIF)")
   (assert)
   (expand "cauchys_prop")
   (skosimp*)
   (inst - "n!1")
   (lemma "trichotomy" ("x" "n!1"))
   (split -1)
   (("1"
     (assert)
     (lemma "mul_lemma"
      ("x"
       "xs!1(n!1)"
       "y"
       "x!1 ^ n!1"
       "cx"
       "cxs!1(n!1)"
       "cy"
       "cauchy_power(cx!1, n!1)"))
     (lemma "power_lemma" ("x" "x!1" "pn" "n!1" "cx" "cx!1"))
     (assert))
    ("2" (assert)) ("3" (assert))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: bisection_nat_sqrt
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (expand "fs_le?")
   (expand "fs_ge?")
   (expand "fs_lt?")
   (expand "fs_eq?")
   (expand "fs_gt?")
   (split -1)
   (("1"
     (split)
     (("1"
       (flatten)
       (lemma "sq_lt" ("nna" "1+m!1" "nnb" "1+n!1"))
       (assert))
      ("2" (lemma "sq_lt" ("nna" "1+m!1" "nnb" "n!1")) (assert))))
    ("2"
     (split)
     (("1"
       (flatten)
       (lemma "sq_lt" ("nna" "n!1" "nnb" "1+m!1"))
       (lemma "sq_lt" ("nna" "m!1" "nnb" "1+n!1"))
       (assert))
      ("2"
       (flatten)
       (lemma "sq_lt" ("nna" "m!1" "nnb" "n!1"))
       (assert))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: bisection_nat_sqrt
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (case "FORALL (k,m, n, x: nat):
                 n-m<=k & fs_le?(x)(m) AND fs_ge?(x)(n) =>
                  fs_eq?(x, bisection_sqrt_aux(x, m, n))")
   (("1"
     (skosimp)
     (inst - "n!1-m!1" "m!1" "n!1" "x!1")
     (("1" (assert))
      ("2"
       (assert)
       (hide 2)
       (expand "fs_le?")
       (expand "fs_ge?")
       (expand "fs_eq?")
       (expand "fs_lt?")
       (expand "fs_gt?")
       (split)
       (("1"
         (split)
         (("1"
           (flatten)
           (lemma "sq_lt" ("nna" "1+m!1" "nnb" "1+n!1"))
           (assert))
          ("2" (lemma "sq_lt" ("nna" "1+m!1" "nnb" "n!1")) (assert))))
        ("2"
         (split)
         (("1"
           (flatten)
           (lemma "sq_lt" ("nna" "m!1" "nnb" "1+n!1"))
           (lemma "sq_lt" ("nna" "n!1" "nnb" "1+m!1"))
           (assert))
          ("2"
           (flatten)
           (lemma "sq_lt" ("nna" "m!1" "nnb" "n!1"))
           (assert))))))))
    ("2"
     (hide 2)
     (induct "k")
     (("1"
       (skosimp)
       (expand "<=")
       (assert)
       (split)
       (("1"
         (assert)
         (expand "fs_le?")
         (hide 1)
         (expand "fs_ge?")
         (expand "fs_eq?")
         (expand "fs_lt?")
         (expand "fs_gt?")
         (split)
         (("1"
           (split)
           (("1"
             (flatten)
             (lemma "sq_lt" ("nna" "1+m!1" "nnb" "1+n!1"))
             (assert))
            ("2" (lemma "sq_lt" ("nna" "1+m!1" "nnb" "n!1")) (assert))))
          ("2"
           (split)
           (("1"
             (flatten)
             (lemma "sq_lt" ("nna" "m!1" "nnb" "1+n!1"))
             (assert))
            ("2"
             (flatten)
             (lemma "sq_lt" ("nna" "m!1" "nnb" "n!1"))
             (assert))))))
        ("2"
         (expand "bisection_sqrt_aux")
         (assert)
         (expand "fs_le?")
         (expand "fs_ge?")
         (expand "fs_lt?")
         (expand "fs_gt?")
         (expand "fs_eq?")
         (lemma "sq_lt" ("nna" "m!1" "nnb" "1+m!1"))
         (assert))))
      ("2"
       (skosimp*)
       (expand "bisection_sqrt_aux" 1)
       (case-replace "n!1=m!1")
       (("1"
         (assert)
         (expand "fs_le?")
         (expand "fs_ge?")
         (hide -1 -2 -3)
         (expand "fs_gt?")
         (expand "fs_lt?")
         (expand "fs_eq?")
         (lemma "sq_lt" ("nna" "1+m!1" "nnb" "m!1"))
         (assert))
        ("2"
         (assert)
         (case "n!1>m!1")
         (("1"
           (hide 1)
           (typepred "floor((m!1 + n!1) / 2)")
           (name-replace "N" "floor((m!1 + n!1) / 2)")
           (rewrite "div_mult_pos_le2")
           (rewrite "div_mult_pos_lt1")
           (case-replace "fs_lt?(x!1, N)")
           (("1"
             (inst - "1+N" "n!1" "x!1")
             (assert)
             (hide 2)
             (expand "fs_le?")
             (flatten)
             (expand "fs_eq?")
             (expand "fs_ge?")
             (expand "fs_lt?")
             (expand "fs_eq?")
             (expand "fs_gt?")
             (assert))
            ("2"
             (assert)
             (case-replace "fs_eq?(x!1, N)")
             (assert)
             (lemma "fs_trichotomy" ("n" "x!1" "m" "N"))
             (assert)
             (hide 1 2)
             (inst - "m!1" "N" "x!1")
             (assert)
             (hide 2)
             (expand "fs_ge?")
             (propax))))
          ("2"
           (assert)
           (hide-all-but (-3 -4 1 2))
           (expand "fs_le?")
           (expand "fs_ge?")
           (expand "fs_eq?")
           (expand "fs_lt?")
           (expand "fs_gt?")
           (split)
           (("1"
             (split)
             (("1"
               (flatten)
               (lemma "sq_lt" ("nna" "1+m!1" "nnb" "1+n!1"))
               (assert))
              ("2"
               (lemma "sq_lt" ("nna" "1+m!1" "nnb" "n!1"))
               (assert))))
            ("2"
             (split)
             (("1"
               (flatten)
               (lemma "sq_lt" ("nna" "m!1" "nnb" "1+n!1"))
               (assert))
              ("2"
               (flatten)
               (lemma "sq_lt" ("nna" "m!1" "nnb" "n!1"))
               (assert))))))))))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: bisection_nat_sqrt
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (expand "bisection_sqrt")
   (lemma "bisection_sqrt_aux_prop" ("x" "n!1" "m" "0" "n" "n!1"))
   (split -1)
   (("1"
     (name-replace "M" "bisection_sqrt_aux(n!1, 0, n!1)")
     (expand "fs_eq?")
     (typepred "floor(sqrt(n!1))")
     (name-replace "N" "floor(sqrt(n!1))")
     (lemma "sq_le" ("nna" "N" "nnb" "sqrt(n!1)"))
     (lemma "sq_lt" ("nnb" "N+1" "nna" "sqrt(n!1)"))
     (assert)
     (flatten)
     (lemma "sq_lt" ("nna" "M" "nnb" "1+N"))
     (lemma "sq_lt" ("nna" "N" "nnb" "1+M"))
     (assert))
    ("2"
     (hide 2)
     (expand "fs_le?")
     (expand "fs_lt?")
     (expand "fs_eq?")
     (flatten)
     (expand "sq")
     (assert))
    ("3"
     (hide 2)
     (expand "fs_ge?")
     (expand "fs_eq?")
     (expand "fs_gt?")
     (flatten)
     (case-replace "n!1=0")
     (("1" (expand "sq") (propax))
      ("2"
       (case-replace "n!1=1")
       (("1" (expand "sq") (propax))
        ("2"
         (lemma "both_sides_times_pos_le1"
          ("x" "2" "y" "n!1" "pz" "n!1"))
         (("1" (rewrite "sq_rew") (assert)) ("2" (assert))))))))))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: bisection_nat_sqrt
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (typepred "m!1")
   (typepred "n!1")
   (lemma "fs_le_ge" ("x" "x!1" "m" "m!1" "n" "n!1"))
   (assert))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: bisection_nat_sqrt
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (typepred "t!1")
   (assert)
   (expand "fs_le?")
   (flatten)
   (expand "fs_lt?")
   (expand "fs_eq?")
   (assert))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: bisection_nat_sqrt
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (typepred "m!1")
   (typepred "n!1")
   (lemma "nonneg_floor_is_nat" ("x" "(n!1+m!1)/2"))
   (assert)
   (hide-all-but (-4 2))
   (expand "fs_le?")
   (expand "fs_lt?")
   (flatten)
   (expand "fs_eq?")
   (replace -1)
   (assert))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: bisection_nat_sqrt
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "fs_le_ge" ("x" "x!1" "m" "m!1" "n" "n!1"))
   (lemma "nonneg_floor_is_nat" ("x" "(n!1+m!1)/2"))
   (assert)
   (expand "fs_eq?")
   (expand "fs_lt?")
   (expand "fs_ge?")
   (expand "fs_gt?")
   (assert))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: bisection_nat_sqrt
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (expand "fs_ge?")
   (expand "fs_eq?")
   (expand "fs_gt?")
   (flatten)
   (assert)
   (expand "sq")
   (assert))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: sqrtx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "^" 1)
   (expand "expt")
   (expand "expt")
   (expand "expt")
   (lemma "lemma_A1" ("m" "r!1" "n" "n!1"))
   (replace -1 -3 rl)
   (flatten)
   (hide (-1 -2))
   (lemma "lt_equiv_le_plus_one" ("x" "0" "y" "n!1"))
   (lemma "lt_le_transitivity"
    ("x" "1" "y" "n!1" "z" "(r!1 + 1) * (r!1 + 1)"))
   (replace -3 -2)
   (simplify -2)
   (replace -2 -1)
   (replace -5 -1)
   (simplify -1)
   (lemma "sq_lt" ("nna" "1" "nnb" "r!1+1"))
   (expand "sq")
   (rewrite "lt_equiv_le_plus_one" -1)
   (simplify -1)
   (lemma "both_sides_minus_le1" ("x" "2" "y" "1+r!1" "z" "1"))
   (replace -2 -1)
   (simplify -1)
   (split)
   (("1"
     (lemma "both_sides_times_neg_le1" ("y" "1" "x" "r!1" "nz" "-2"))
     (replace -2 -1)
     (simplify -1)
     (lemma "both_sides_plus_le1" ("x" "r!1*-2" "y" "-2" "z" "1"))
     (replace -2 -1)
     (simplify -1)
     (lemma "le_plus_le"
      ("x" "1 + r!1 * -2" "y" "-1" "z" "r!1 * r!1" "w" "n!1"))
     (replace -2 -1)
     (replace -9 -1)
     (assert))
    ("2"
     (lemma "lt_equiv_le_plus_one"
      ("x" "n!1" "y" "(r!1 + 1) * (r!1 + 1)"))
     (replace -1 1 rl)
     (propax))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: sqrtx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "sqrt_p1" ("n" "n!1" "r" "r!1"))
   (replace -2 -1)
   (replace -3 -1 rl)
   (prop)
   (("1" (assert)) ("2" (assert))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: sqrtx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (typepred "nncx!1")
   (expand "cauchy_nnreal?")
   (skolem!)
   (expand "cauchy_prop")
   (typepred "x!1")
   (inst - "p!1")
   (flatten)
   (lemma "expt_ge1" ("b" "2" "n" "p!1"))
   (expand ">=")
   (lemma "le_times_le_pos" ("nnx" "1" "y" "2^p!1" "nnz" "0" "w" "x!1"))
   (lemma "lt_le_transitivity"
    ("x" "0" "y" "2 ^ p!1 * x!1" "z" "1 + nncx!1(p!1)"))
   (replace -4 -2)
   (replace -3 -2)
   (simplify -2)
   (replace -2 -1)
   (replace -6 -1)
   (simplify -1)
   (rewrite "lt_plus_one_equiv_le" -1))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: sqrtx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (expand "cauchy_nnsqrt")
   (expand "cauchy_prop")
   (skosimp)
   (rewrite "bisection_sqrt_def")
   (("1"
     (name "n!1" "nncx!1(2 * p!1)")
     (replace -1)
     (lemma "sqrt_p3" ("nncx" "nncx!1" "p" "2*p!1"))
     (replace -2)
     (name "r!1" "floor(sqrt(n!1))")
     (("1"
       (replace -1)
       (expand "<=" -2)
       (split -2)
       (("1"
         (case "r!1>=1")
         (("1"
           (inst - "2*p!1")
           (replace -4)
           (lemma "sqrt_p2"
            ("n" "n!1" "r" "r!1" "p" "p!1" "nnx" "nnx!1"))
           (assert)
           (assert)
           (flatten)
           (assert)
           (flatten)
           (rewrite "expt_x2")
           (rewrite "expt_x2")
           (lemma "sq_lt"
            ("nna" "r!1 - 1" "nnb" "sqrt(nnx!1) * 2 ^ p!1"))
           (lemma "sq_lt" ("nnb" "1+r!1" "nna" "sqrt(nnx!1) * 2 ^ p!1"))
           (rewrite "sq_times")
           (lemma "expt_times" ("n0x" "2" "i" "p!1" "j" "2"))
           (rewrite "expt_x2")
           (expand "sq")
           (assert))
          ("2"
           (lemma "floor_plus_int" ("x" "sqrt(n!1)-1" "i" "1"))
           (lemma "nonneg_floor_is_nat" ("x" "sqrt(n!1)-1"))
           (("1" (assert))
            ("2"
             (assert)
             (lemma "sqrt_le" ("nny" "1" "nnz" "n!1"))
             (rewrite "sqrt_1")
             (assert)
             (case "forall (n:nat): n=0 OR 1 <= n")
             (("1"
               (inst - "n!1")
               (split -1)
               (("1" (assert)) ("2" (propax))))
              ("2" (hide-all-but 1) (grind))))))))
        ("2"
         (replace -1 * rl)
         (rewrite "sqrt_0")
         (rewrite "floor_int")
         (replace -2 * rl)
         (inst - "2*p!1")
         (replace -3)
         (lemma "expt_times" ("n0x" "2" "i" "p!1" "j" "2"))
         (rewrite "expt_x2")
         (rewrite "sq_rew")
         (replace -1)
         (lemma "sq_lt" ("nna" "sqrt(nnx!1) * 2 ^ p!1" "nnb" "1"))
         (rewrite "sq_times")
         (flatten)
         (assert))))
      ("2" (assert))))
    ("2"
     (typepred "p!1")
     (expand ">=" -1)
     (expand "<=" -1)
     (split -1)
     (("1"
       (inst - "2*p!1")
       (flatten)
       (hide 2)
       (lemma "both_sides_expt_gt1_le" ("gt1x" "2" "i" "2" "j" "2*p!1"))
       (rewrite "expt_x2")
       (assert))
      ("2"
       (replace -1 * rl)
       (inst - "0")
       (rewrite "expt_x0")
       (flatten)
       (rewrite "bisection_sqrt_def")
       (assert))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: sqrtx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (lemma "sqrt_nn_lemma" ("nnx" "nnx!1" "nncx" "nncx!1"))
   (assert)
   (expand "cauchy_sqrt")
   (propax))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: sqrtx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (typepred "nncx!1")
   (expand "cauchy_nnreal?")
   (skosimp)
   (inst + "sqrt(x!1)")
   (expand "cauchy_prop")
   (skosimp)
   (rewrite "bisection_sqrt_def")
   (("1"
     (lemma "sqrt_p2"
      ("n"
       "nncx!1(2*p!1)"
       "r"
       "floor(sqrt(nncx!1(2 * p!1)))"
       "p"
       "p!1"
       "nnx"
       "x!1"))
     (assert)
     (inst -2 "2*p!1")
     (replace -2)
     (lemma "sqrt_p3" ("nncx" "nncx!1" "p" "2*p!1"))
     (expand "<=" -1)
     (split -1)
     (("1"
       (assert)
       (flatten)
       (assert)
       (lemma "sqrt_pos" ("px" "nncx!1(2 * p!1)"))
       (lemma "nonneg_floor_is_nat" ("x" "sqrt(nncx!1(2 * p!1))"))
       (name-replace "FLOOR" "floor(sqrt(nncx!1(2 * p!1)))")
       (hide -6 -7 -2 -3)
       (case-replace "2 ^ (2 * p!1)=sq(2^p!1)")
       (("1"
         (expand ">=" -2)
         (expand "<=" -2)
         (split -2)
         (("1"
           (hide -2)
           (lemma "sq_lt"
            ("nna" "FLOOR - 1" "nnb" "sqrt(x!1) * 2 ^ p!1"))
           (("1"
             (lemma "sq_lt"
              ("nnb" "FLOOR+1" "nna" "sqrt(x!1) * 2 ^ p!1"))
             (rewrite "sq_times")
             (expand "^" -4 1)
             (expand "^" -5 2)
             (expand "expt")
             (expand "expt")
             (expand "expt")
             (expand "sq" -1 2)
             (expand "sq" -2 1)
             (assert))
            ("2" (assert))))
          ("2"
           (replace -1 * rl)
           (hide -1 -2)
           (expand "^" -1 1)
           (expand "^" -2 2)
           (expand "expt")
           (expand "expt")
           (expand "expt")
           (rewrite "sq_rew")
           (rewrite "sq_neg")
           (assert))))
        ("2"
         (hide-all-but 1)
         (lemma "expt_times" ("n0x" "2" "i" "p!1" "j" "2"))
         (rewrite "expt_x2")
         (expand "sq")
         (assert))))
      ("2"
       (hide -2)
       (replace -1 * rl)
       (assert)
       (rewrite "floor_int")
       (hide -1)
       (lemma "posreal_times_posreal_is_posreal"
        ("px" "sqrt(x!1)" "py" "2^p!1"))
       (("1"
         (assert)
         (hide -1)
         (lemma "expt_times" ("n0x" "2" "i" "p!1" "j" "2"))
         (rewrite "expt_x2")
         (rewrite "sq_rew")
         (replace -1)
         (hide -1)
         (lemma "sq_lt" ("nna" "sqrt(x!1) * 2 ^ p!1" "nnb" "1"))
         (assert)
         (hide 2)
         (rewrite "sq_times"))
        ("2" (assert))))))
    ("2"
     (hide 2)
     (inst - "2*p!1")
     (flatten)
     (lemma "sqrt_p3" ("p" "2*p!1" "nncx" "nncx!1"))
     (assert))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: shift
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (expand "cauchy_prop")
   (expand "cauchy_div2n")
   (expand "div2n")
   (skosimp*)
   (case "p!1>=n!1")
   (("1"
     (replace -1 1)
     (inst -2 "p!1-n!1")
     (("1"
       (lemma "expt_div" ("n0x" "2" "i" "p!1" "j" "n!1"))
       (replace -1 -3 rl)
       (grind))
      ("2" (assert))))
    ("2"
     (replace 1 2)
     (name "RR" "round(cx!1(p!1)/2^n!1)")
     (inst -2 "p!1")
     (lemma "expt_pos" ("px" "2" "i" "n!1"))
     (lemma "lemma_A2" ("r" "RR" "p" "cx!1(p!1)" "q" "2^n!1"))
     (replace -3)
     (skosimp*)
     (lemma "div_mult_pos_lt1" ("z" "x!1*2^p!1" "py" "2^n!1" "x" "RR+1"))
     (lemma "div_mult_pos_lt2" ("x" "RR-1" "z" "x!1*2^p!1" "py" "2^n!1"))
     (replace -1)
     (replace -2)
     (lemma "both_sides_expt_gt1_ge" ("gt1x" "2" "i" "n!1" "j" "1"))
     (rewrite "expt_x1")
     (assert))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: shift
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (expand "cauchy_prop")
   (expand "cauchy_mul2n")
   (expand "mul2n")
   (skosimp*)
   (inst - "n!1+p!1")
   (lemma "expt_plus" ("n0x" "2" "i" "n!1" "j" "p!1"))
   (grind))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: shift
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (typepred "cx!1")
   (expand "cauchy_real?")
   (skosimp*)
   (inst 1 "x!1/2^n!1")
   (expand "cauchy_prop")
   (skosimp*)
   (case "p!1>=n!1")
   (("1"
     (replace -1 1)
     (inst -2 "p!1-n!1")
     (("1"
       (lemma "expt_div" ("n0x" "2" "i" "p!1" "j" "n!1"))
       (replace -1 -3 rl)
       (grind))
      ("2" (assert))))
    ("2"
     (replace 1 2)
     (name "RR" "round(cx!1(p!1)/2^n!1)")
     (inst -2 "p!1")
     (lemma "expt_pos" ("px" "2" "i" "n!1"))
     (lemma "lemma_A2" ("r" "RR" "p" "cx!1(p!1)" "q" "2^n!1"))
     (replace -3)
     (skosimp*)
     (lemma "div_mult_pos_lt1" ("z" "x!1*2^p!1" "py" "2^n!1" "x" "RR+1"))
     (lemma "div_mult_pos_lt2" ("x" "RR-1" "z" "x!1*2^p!1" "py" "2^n!1"))
     (lemma "both_sides_expt_gt1_ge" ("gt1x" "2" "i" "n!1" "j" "1"))
     (rewrite "expt_x1")
     (assert))))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: shift
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (typepred "cx!1")
   (expand "cauchy_real?")
   (skosimp*)
   (inst 1 "x!1*2^n!1")
   (expand "cauchy_prop")
   (skosimp*)
   (inst - "p!1+n!1")
   (lemma "expt_plus" ("n0x" "2" "i" "p!1" "j" "n!1"))
   (grind))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: inv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skolem!)
   (typepred "nzcx!1")
   (lemma "cauchy_dich5" ("nzcx" "nzcx!1"))
   (split)
   (("1"
     (lemma "cauchy_neg_characteristic" ("ncx" "nzcx!1"))
     (("1"
       (expand "cauchy_negreal?")
       (skolem!)
       (typepred "x!1")
       (expand "cauchy_prop")
       (lemma "epsilon_log2" ("px" "-x!1"))
       (skolem!)
       (expand "nonempty?")
       (expand "empty?")
       (inst -7 "p!1+4")
       (inst -5 "p!1+4")
       (expand "member")
       (inst -4 "p!1+4")
       (rewrite "abs_nonpos")
       (lemma "expt_plus" ("n0x" "2" "i" "4" "j" "p!1"))
       (expand "^" -1 2)
       (expand "expt")
       (expand "expt")
       (expand "expt")
       (expand "expt")
       (expand "expt")
       (replace -1)
       (flatten)
       (lemma "both_sides_times_pos_lt1"
        ("x" "1" "y" "-x!1 * 2 ^ p!1" "pz" "2^p!1"))
       (lemma "div_mult_pos_lt1" ("z" "1" "py" "2^p!1" "x" "-x!1"))
       (grind))
      ("2" (propax))))
    ("2"
     (lemma "cauchy_pos_characteristic" ("pcx" "nzcx!1"))
     (("1"
       (expand "cauchy_posreal?")
       (skolem!)
       (typepred "x!1")
       (expand "cauchy_prop")
       (lemma "epsilon_log2" ("px" "x!1"))
       (skolem!)
       (expand "nonempty?")
       (expand "empty?")
       (inst - "p!1+4")
       (inst - "p!1+4")
       (inst - "p!1+4")
       (expand "member")
       (rewrite "abs_nonneg")
       (lemma "div_mult_pos_lt1" ("z" "1" "py" "2^p!1" "x" "x!1"))
       (lemma "both_sides_times_pos_lt1"
        ("x" "1" "y" "x!1 * 2 ^ p!1" "pz" "2^p!1"))
       (lemma "expt_plus" ("n0x" "2" "i" "4" "j" "p!1"))
       (expand "^" -1 2)
       (expand "expt")
       (expand "expt")
       (expand "expt")
       (expand "expt")
       (expand "expt")
       (replace -1)
       (grind))
      ("2" (propax))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: inv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "minimum_inv")
   (lemma "minimum_inv_exists" ("nzcx" "nzcx!1"))
   (lemma "min_def" ("a" "s!1" "S" "{s | 3 <= abs(nzcx!1(s))}"))
   (("1" (grind)) ("2" (propax))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: inv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (copy -2)
   (expand "cauchy_prop" -1)
   (inst - "s!1")
   (lemma "minimum_inv_prop0" ("s" "s!1" "nzcx" "nzcx!1"))
   (typepred "nzcx!1")
   (lemma "cauchy_dich5" ("nzcx" "nzcx!1"))
   (split -1)
   (("1"
     (copy -1)
     (expand "cauchy_negreal?" -1)
     (skolem!)
     (typepred "x!2")
     (lemma "unique_cauchy" ("x" "x!1" "y" "x!2" "cx" "nzcx!1"))
     (replace -4 -1)
     (replace -10 -1)
     (simplify -1)
     (replace -1)
     (rewrite "abs_nonpos" 1)
     (lemma "cauchy_neg_characteristic" ("ncx" "nzcx!1" "p" "s!1"))
     (("1"
       (rewrite "abs_nonpos" -8)
       (flatten)
       (lemma "both_sides_plus_le1"
        ("x" "3" "y" "-nzcx!1(s!1)" "z" "-1"))
       (lemma "both_sides_times_neg_lt1"
        ("y" "x!2 * 2 ^ s!1" "x" "1 + nzcx!1(s!1)" "nz" "-1"))
       (grind))
      ("2" (propax))))
    ("2"
     (lemma "cauchy_pos_characteristic" ("pcx" "nzcx!1" "p" "s!1"))
     (("1"
       (rewrite "abs_nonneg" -4)
       (expand "cauchy_posreal?")
       (skolem!)
       (lemma "unique_cauchy" ("x" "x!1" "y" "x!2" "cx" "nzcx!1"))
       (replace -3 -1)
       (replace -8 -1)
       (simplify -1)
       (replace -1)
       (typepred "x!2")
       (rewrite "abs_nonneg" 1)
       (grind))
      ("2" (propax))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: inv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "trich_lt" ("x" "nzx!1" "y" "0"))
   (lemma "expt_ge1" ("b" "2"))
   (lemma "expt_plus" ("n0x" "2"))
   (inst-cp -2 "p!1 + s!1 + 2")
   (inst-cp -1 "p!1 + s!1 + 2" "s!1")
   (replace -2)
   (lemma "both_sides_times_pos_le1"
    ("x" "2" "y" "abs(nzx!1) * 2 ^ s!1" "pz" "2 ^ (p!1 + s!1 + 2)"))
   (replace -7 -1)
   (flatten -1)
   (name "AA" "2 ^ (p!1 + s!1 + 2)")
   (replace -1)
   (inst -5 "s!1")
   (name "B" "2 ^ s!1")
   (replace -1)
   (hide (-1 -2 -4 -5))
   (split -4)
   (("1"
     (rewrite "abs_nonpos")
     (lemma "both_sides_times_neg_le1"
      ("y" "2*AA" "x" "-nzx!1 * B * AA" "nz" "-1"))
     (grind))
    ("2" (assert)) ("3" (rewrite "abs_nonneg") (grind))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: inv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (expand "minimum_inv_impl")
   (case "forall (s:{n:nat | n <= minimum_inv(nzcx!1)}): minimum_inv_aux(nzcx!1,  minimum_inv(nzcx!1)-s) = minimum_inv(nzcx!1)")
   (("1" (inst - "minimum_inv(nzcx!1)") (assert))
    ("2"
     (hide 2)
     (case "forall (n:nat): n <= minimum_inv(nzcx!1) => minimum_inv_aux(nzcx!1, minimum_inv(nzcx!1) - n) =
                    minimum_inv(nzcx!1)")
     (("1" (skosimp) (inst - "s!1") (assert))
      ("2"
       (hide 2)
       (induct "n")
       (("1"
         (flatten)
         (expand "minimum_inv_aux")
         (expand "minimum_inv")
         (typepred "min_nat.min({s | 3 <= abs(nzcx!1(s))})")
         (("1" (assert)) ("2" (rewrite "minimum_inv_exists"))))
        ("2"
         (skosimp*)
         (expand "minimum_inv_aux" 1)
         (expand "<=" -2)
         (split -2)
         (("1"
           (assert)
           (replace -2)
           (lift-if)
           (prop)
           (assert)
           (hide 1)
           (expand "minimum_inv")
           (typepred "min_nat.min({s | 3 <= abs(nzcx!1(s))})")
           (("1"
             (name-replace "MIN"
              "min_nat.min({s | 3 <= abs(nzcx!1(s))})")
             (inst - "MIN - 1 - j!1")
             (("1" (assert)) ("2" (assert))))
            ("2" (rewrite "minimum_inv_exists"))))
          ("2"
           (replace -1 * rl)
           (assert)
           (replace -2)
           (lift-if)
           (prop)
           (hide 1 -3)
           (expand "minimum_inv")
           (typepred "min_nat.min({s | 3 <= abs(nzcx!1(s))})")
           (("1"
             (name-replace "MIN"
              "min_nat.min({s | 3 <= abs(nzcx!1(s))})")
             (inst - "0")
             (assert))
            ("2" (rewrite "minimum_inv_exists"))))))
        ("3" (skosimp) (assert))))
      ("3" (hide 2) (skosimp) (assert))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: inv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "expt_plus" ("n0x" "2" "i" "p!1 + s!1" "j" "3"))
   (lemma "expt_ge1" ("b" "2" "n" "p!1 + s!1"))
   (expand "^" -2 3)
   (expand "expt")
   (expand "expt")
   (expand "expt")
   (expand "expt")
   (replace -2 -3)
   (assert))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: inv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "both_sides_minus_lt1"
    ("x" "2 ^ (p!1 + s!1 + 3) - 1" "y" "pn!1" "z" "1"))
   (replace -2 -1)
   (rewrite "lt_equiv_le_plus_one" -1)
   (lemma "expt_ge1" ("b" "2" "n" "2+p!1+s!1"))
   (expand ">=")
   (lemma "both_sides_minus_le1"
    ("z"
     "1"
     "x"
     "1"
     "y"
     "2 ^ (2+
      p!1 + s!1)"))
   (replace -2 -1)
   (lemma "both_sides_plus_le1"
    ("x" "0" "y" "2 ^ (2+p!1 + s!1) - 1" "z" "2 ^ (2+p!1 + s!1)"))
   (replace -2 -1)
   (simplify)
   (lemma "expt_plus" ("n0x" "2" "i" "1" "j" "2 + p!1 + s!1"))
   (expand "^" -1 2)
   (expand "expt")
   (expand "expt")
   (replace -1 -2 rl)
   (lemma "lt_le_transitivity"
    ("x" "2 ^ (2 + p!1 + s!1)" "y" "2 ^ (3 + p!1 + s!1) - 1" "z" "pn!1"))
   (lemma "total_le")
   (expand "total_order?")
   (expand "partial_order?")
   (expand "preorder?")
   (expand "transitive?")
   (flatten)
   (inst -2 "2 ^ (2 + p!1 + s!1)" "2 ^ (3 + p!1 + s!1) - 1" "pn!1 - 1")
   (replace -7)
   (replace -10)
   (replace -11)
   (simplify)
   (lemma "both_sides_expt_gt1_lt"
    ("gt1x" "2" "i" "3 + 2 * p!1 + 2 * s!1" "j" "4 + 2 * p!1 + 2 * s!1"))
   (simplify -1)
   (lemma "lt_times_lt_pos1"
    ("px"
     "2 ^ (2 + p!1 + s!1)"
     "y"
     "pn!1 - 1"
     "nnz"
     "2 ^ (2 + p!1 + s!1)"
     "w"
     "pn!1"))
   (replace -4)
   (replace -7)
   (simplify)
   (lemma "expt_times2" ("nzx" "2" "s" "2 + p!1 + s!1"))
   (replace -1 -2 rl)
   (simplify)
   (assert))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: inv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "inv_p1" ("p" "p!1" "s" "s!1" "pn" "pn!1"))
   (name "t!1" "2 ^ (p!1 + s!1 + 3) - 1")
   (replace -1)
   (name "t!2" "2 ^ (2 * p!1 + 2 * s!1 + 3)")
   (replace -1)
   (hide (-1 -2))
   (grind))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: inv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "inv_p1" ("p" "p!1" "s" "s!1" "pn" "pn!1"))
   (use "both_sides_times_pos_lt2"
        ("x"
         "2 ^ (2 * p!1 + 2 * s!1 + 2) / pn!1 - (pn!1 - 1) / 2"
         "y"
         "0"
         "pz"
         "2"))
   (replace -1 1 rl)
   (simplify 1)
   (rewrite "div_cancel1")
   (rewrite "times_div1")
   (hide -1)
   (lemma "both_sides_times_pos_lt2"
    ("x"
     "(2 * 2 ^ (2 + 2 * p!1 + 2 * s!1)) / pn!1 - (pn!1 - 1)"
     "y"
     "0"
     "pz"
     "pn!1"))
   (replace -1 1 rl)
   (hide -1)
   (simplify 1)
   (rewrite "div_cancel2")
   (lemma "both_sides_plus_lt1"
    ("x"
     "(2 * 2 ^ (2 + 2 * p!1 + 2 * s!1)) - pn!1 * pn!1 + pn!1"
     "y"
     "0"
     "z"
     "pn!1 * pn!1 + pn!1"))
   (replace -1 1 rl)
   (hide -1)
   (simplify 1)
   (grind))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: inv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "inv_p2" ("p" "p!1" "s" "s!1" "pn" "pn!1"))
   (lemma "both_sides_times_pos_lt2"
    ("x"
     "2 ^ (2 * p!1 + 2 * s!1 + 2) / pn!1 - (pn!1 + 1) / 2"
     "y"
     "0"
     "pz"
     "2"))
   (replace -1 1 rl)
   (simplify 1)
   (rewrite "div_cancel1")
   (rewrite "times_div1")
   (lemma "both_sides_times_pos_lt2"
    ("x"
     "(2 * 2 ^ (2 + 2 * p!1 + 2 * s!1)) / pn!1 - (1+pn!1)"
     "y"
     "0"
     "pz"
     "pn!1"))
   (replace -1 1 rl)
   (simplify 1)
   (rewrite "div_cancel2")
   (lemma "both_sides_plus_lt1"
    ("x"
     "(2 * 2 ^ (2 + 2 * p!1 + 2 * s!1)) - pn!1 * pn!1 -
      pn!1"
     "y"
     "0"
     "z"
     "pn!1 * pn!1 - pn!1"))
   (replace -1 1 rl)
   (hide (-1 -2 -3))
   (grind))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: inv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "lemma_A2"
    ("p" "2 ^ (2 * p!1 + 2 * s!1 + 2)" "r" "r!1" "q" "pn!1"))
   (replace -1)
   (flatten)
   (hide (-1 -2 -4))
   (lemma "div_mult_pos_le2"
    ("x" "r!1 - 1 / 2" "z" "2 ^ (2 * p!1 + 2 * s!1 + 2)" "py" "pn!1"))
   (replace -1 -2 rl)
   (lemma "both_sides_minus_le1"
    ("x"
     "r!1 - 1 / 2"
     "y"
     "2 ^ (2 * p!1 + 2 * s!1 + 2) / pn!1"
     "z"
     "1/2"))
   (replace -1 -3 rl)
   (simplify -3)
   (rewrite "div_cancel1" -3)
   (hide (-1 -2))
   (lemma "both_sides_times_pos_le1"
    ("x"
     "r!1 - 1"
     "y"
     "(2 ^ (2 + 2 * p!1 + 2 * s!1)) / pn!1 - 1 / 2"
     "pz"
     "pn!1+1"))
   (replace -1 -2 rl)
   (hide -1)
   (simplify)
   (lemma "inv_p4" ("p" "p!1" "s" "s!1" "pn" "pn!1"))
   (replace -3 -1)
   (simplify)
   (lemma "both_sides_plus_lt1"
    ("x"
     "(2 ^ (2 + 2 * p!1 + 2 * s!1)) / pn!1 - (1 + pn!1) / 2"
     "y"
     "0"
     "z"
     "2 ^ (2 + 2 * p!1 + 2 * s!1)"))
   (grind))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: inv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "lemma_A2"
    ("p" "2 ^ (2 * p!1 + 2 * s!1 + 2)" "r" "r!1" "q" "pn!1"))
   (replace -1)
   (flatten)
   (lemma "inv_p3" ("p" "p!1" "s" "s!1" "pn" "pn!1"))
   (replace -6 -1)
   (hide (-2 -3 -4 -6))
   (simplify -1)
   (lemma "div_mult_pos_lt1"
    ("z" "2 ^ (2 * p!1 + 2 * s!1 + 2)" "x" "(r!1 + 1 / 2)" "py" "pn!1"))
   (replace -1 -3 rl)
   (lemma "both_sides_plus_lt1"
    ("x" "2 ^ (2 * p!1 + 2 * s!1 + 2)/pn!1" "y" "r!1 + 1 / 2" "z" "1/2"))
   (replace -1 -4 rl)
   (hide (-1 -2))
   (simplify -2)
   (rewrite "div_cancel1" -2)
   (reveal -6)
   (lemma "expt_plus" ("n0x" "2" "i" "3" "j" "p!1 + s!1"))
   (expand "^" -1 2)
   (expand "expt")
   (expand "expt")
   (expand "expt")
   (expand "expt")
   (lemma "expt_ge1" ("b" "2" "n" "p!1 + s!1"))
   (lemma "both_sides_times_pos_ge1"
    ("x" "2 ^ (p!1 + s!1)" "y" "1" "pz" "8"))
   (replace -1 -2 rl)
   (lemma "both_sides_minus_ge1"
    ("x" "2 ^ (p!1 + s!1) * 8" "y" "8" "z" "1"))
   (expand ">=")
   (replace -3 -1)
   (replace -4 -1 rl)
   (simplify)
   (lemma "lt_le_transitivity"
    ("x" "7" "y" "2 ^ (3 + p!1 + s!1) - 1" "z" "pn!1"))
   (replace -2 -1)
   (replace -6 -1)
   (simplify -1)
   (lemma "both_sides_minus_lt1" ("x" "7" "y" "pn!1" "z" "1"))
   (replace -1 -2 rl)
   (simplify -2)
   (lemma "both_sides_times_pos_lt1"
    ("x"
     "1 / 2 + (2 ^ (2 + 2 * p!1 + 2 * s!1)) / pn!1"
     "y"
     "1 + r!1"
     "pz"
     "pn!1-1"))
   (("1"
     (replace -1 -10 rl)
     (simplify -10)
     (rewrite "div_cancel2" -10)
     (lemma "both_sides_times_neg_lt1"
      ("y"
       "(2 ^ (2 + 2 * p!1 + 2 * s!1)) / pn!1 - (pn!1 - 1) / 2"
       "x"
       "0"
       "nz"
       "-1"))
     (replace -1 -10 rl)
     (simplify)
     (lemma "both_sides_plus_lt1"
      ("x"
       "0"
       "y"
       "(pn!1 - 1) / 2 - (2 ^ (2 + 2 * p!1 + 2 * s!1)) / pn!1"
       "z"
       "2 ^ (2 + 2 * p!1 + 2 * s!1)"))
     (replace -1 -11 rl)
     (assert))
    ("2" (assert))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: inv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "inv_p5" ("p" "p!1" "s" "s!1" "pn" "pn!1" "r" "r!1"))
   (lemma "inv_p6" ("p" "p!1" "s" "s!1" "pn" "pn!1" "r" "r!1"))
   (replace -3 -1 rl)
   (replace -3 -2 rl)
   (replace -4)
   (simplify -1)
   (simplify -2)
   (hide (-3 -4))
   (lemma "both_sides_times_pos_lt1"
    ("x"
     "(r!1 - 1) / 2 ^ p!1"
     "y"
     "2 ^ (p!1 + 2 * s!1 + 2) / (pn!1 + 1)"
     "pz"
     "2 ^ p!1"))
   (replace -1 1 rl)
   (lemma "both_sides_times_pos_lt1"
    ("y"
     "(r!1 + 1) / 2 ^ p!1"
     "x"
     "2 ^ (p!1 + 2 * s!1 + 2) / (pn!1 - 1)"
     "pz"
     "2 ^ p!1"))
   (("1"
     (replace -1 1 rl)
     (hide (-1 -2))
     (rewrite "div_cancel2")
     (rewrite "div_cancel2")
     (rewrite "times_div2")
     (rewrite "times_div2")
     (reveal -4)
     (lemma "expt_plus" ("n0x" "2" "i" "p!1+s!1" "j" "3"))
     (expand "^" -1 3)
     (expand "expt")
     (expand "expt")
     (expand "expt")
     (expand "expt")
     (lemma "expt_ge1" ("b" "2" "n" "p!1 + s!1"))
     (replace -2 -3)
     (hide -2)
     (lemma "both_sides_times_pos_ge1"
      ("x" "2 ^ (p!1 + s!1)" "y" "1" "pz" "8"))
     (replace -1 -2 rl)
     (hide -1)
     (expand ">=")
     (lemma "both_sides_minus_le1"
      ("x" "8" "y" "8 * 2 ^ (p!1 + s!1)" "z" "1"))
     (replace -1 -2 rl)
     (hide -1)
     (lemma "lt_le_transitivity"
      ("x" "7" "y" "8 * 2 ^ (p!1 + s!1) - 1" "z" "pn!1"))
     (simplify -1)
     (replace -2 -1)
     (replace -3 -1)
     (simplify -1)
     (hide (-2 -3))
     (lemma "both_sides_times_pos_lt1"
      ("x"
       "r!1 - 1"
       "y"
       "((2 ^ (2 + p!1 + 2 * s!1)) * 2 ^ p!1) / (1 + pn!1)"
       "pz"
       "1 + pn!1"))
     (replace -1 1 rl)
     (lemma "both_sides_times_pos_lt1"
      ("y"
       "1+r!1"
       "x"
       "((2 ^ (2 + p!1 + 2 * s!1)) * 2 ^ p!1) / (pn!1-1)"
       "pz"
       "pn!1-1"))
     (("1"
       (replace -1 1 rl)
       (hide (-1 -2))
       (lemma "expt_plus" ("n0x" "2" "i" "2 + p!1 + 2 * s!1" "j" "p!1"))
       (replace -1 1 rl)
       (hide -1)
       (lemma "times_div2")
       (inst-cp - "1+p!1" "2 ^ (2 + p!1 + 2 * s!1 + p!1)" "1+p!1")
       (rewrite "div_cancel2")
       (rewrite "div_cancel2")
       (rewrite "div_cancel2")
       (hide (-1 -2))
       (grind))
      ("2" (hide-all-but (-2 1)) (grind))))
    ("2"
     (reveal -2)
     (hide-all-but (-1 1))
     (lemma "expt_plus" ("i" "p!1 + s!1" "j" "3"))
     (inst - "2")
     (replace -1)
     (hide -1)
     (expand "^" -1 2)
     (expand "expt")
     (expand "expt")
     (expand "expt")
     (expand "expt")
     (lemma "expt_ge1" ("b" "2" "n" "p!1+s!1"))
     (name "t" "2 ^ (p!1 + s!1)")
     (replace -1)
     (hide -1)
     (grind))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: inv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "both_sides_times_pos_le1"
    ("x" "2" "y" "px!1 * 2 ^ s!1" "pz" "2 ^ (p!1 + s!1 + 2)"))
   (replace -1 -2 rl)
   (lemma "expt_plus" ("n0x" "2" "i" "1" "j" "p!1 + s!1 + 2"))
   (lemma "expt_plus" ("n0x" "2" "i" "s!1" "j" "p!1 + s!1 + 2"))
   (simplify -1)
   (replace -1)
   (expand "^" -2 2)
   (expand "expt")
   (expand "expt")
   (replace -2 -4 rl)
   (lemma "lt_le_transitivity"
    ("x"
     "2 ^ (3 + p!1 + s!1)"
     "y"
     "px!1 * 2 ^ s!1 * 2 ^ (p!1 + s!1 + 2)"
     "z"
     "pn!1 + 1"))
   (replace -5 -1)
   (replace -7 -1)
   (simplify -1)
   (assert))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: inv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "inv_p8" ("px" "px!1" "s" "s!1" "pn" "pn!1" "p" "p!1"))
   (lemma "inv_p7" ("r" "r!1" "p" "p!1" "s" "s!1" "pn" "pn!1"))
   (replace -4 -1 rl)
   (replace -3)
   (replace -5)
   (replace -6)
   (simplify -2)
   (replace -2 -1)
   (simplify -1)
   (lemma "expt_plus" ("n0x" "2" "i" "3" "j" "p!1+s!1"))
   (expand "^" -1 2)
   (expand "expt")
   (expand "expt")
   (expand "expt")
   (expand "expt")
   (lemma "expt_ge1" ("b" "2" "n" "p!1+s!1"))
   (lemma "both_sides_times_pos_le1"
    ("x" "1" "y" "2 ^ (p!1 + s!1)" "pz" "8"))
   (expand ">=")
   (replace -1 -2 rl)
   (replace -3 -2 rl)
   (lemma "both_sides_minus_le1"
    ("x" "8" "y" "2 ^ (3 + p!1 + s!1)" "z" "1"))
   (replace -3 -1)
   (simplify -1)
   (lemma "lt_le_transitivity"
    ("x" "7" "y" "2 ^ (3 + p!1 + s!1) - 1" "z" "pn!1"))
   (replace -2 -1)
   (replace -7 -1)
   (simplify -1)
   (hide (-2 -3 -4 -5 -9))
   (flatten)
   (split)
   (("1"
     (case "1<=r!1")
     (("1"
       (lemma "lt_times_lt_pos1"
        ("px"
         "px!1 * 2 ^ (p!1 + 2 * s!1 + 2)"
         "y"
         "pn!1 + 1"
         "nnz"
         "(r!1 - 1) / 2 ^ p!1"
         "w"
         "(2 ^ (2 + p!1 + 2 * s!1)) / (1 + pn!1)"))
       (("1"
         (replace -4 -1)
         (expand "<=" -1)
         (replace -9 -1)
         (lemma "both_sides_times_pos_lt1"
          ("x"
           "((r!1 - 1) / 2 ^ p!1) * px!1"
           "y"
           "(1+pn!1)/(1+pn!1)"
           "pz"
           "2 ^ (2 + p!1 + 2 * s!1)"))
         (simplify -1)
         (simplify -2)
         (lemma "both_sides_times_pos_lt1"
          ("x"
           "((r!1 - 1) / 2 ^ p!1) * px!1"
           "y"
           "1"
           "pz"
           "2 ^ (2 + p!1 + 2 * s!1)"))
         (hide (-2))
         (lemma "div_cancel1"
          ("x" "2 ^ (2 + p!1 + 2 * s!1)" "n0z" "1+pn!1"))
         (simplify -1)
         (replace -1 -3)
         (replace -3 -2)
         (simplify -2)
         (lemma "div_mult_pos_lt1"
          ("x" "1" "py" "2^p!1" "z" "(r!1 - 1) * px!1"))
         (replace -1 1 rl)
         (assert))
        ("2"
         (lemma "expt_ge1" ("b" "2" "n" "p!1"))
         (name "a!1" "2 ^ p!1")
         (replace -1)
         (hide-all-but (-2 -3 1))
         (grind)
         (expand ">=")
         (lemma "both_sides_minus_le1" ("x" "1" "y" "r!1" "z" "1"))
         (replace -1 -3 rl)
         (assert)
         (lemma "div_mult_pos_le2" ("x" "0" "z" "r!1 - 1" "py" "a!1"))
         (assert))))
      ("2"
       (typepred "px!1")
       (rewrite "le_equiv_not_lt" 1)
       (lemma "expt_ge1" ("b" "2" "n" "p!1"))
       (lemma "both_sides_minus_lt1" ("x" "r!1" "y" "1" "z" "1"))
       (replace -5 -1)
       (simplify -1)
       (lemma "both_sides_times_pos_lt1"
        ("x" "r!1 - 1" "y" "0" "pz" "px!1"))
       (replace -2 -1)
       (simplify -1)
       (simplify 1)
       (assert))))
    ("2"
     (hide (-2 -4 -5 -7))
     (lemma "both_sides_minus_lt1" ("x" "7" "y" "pn!1" "z" "1"))
     (replace -1 -2 rl)
     (simplify -2)
     (lemma "expt_ge1" ("b" "2" "n" "p!1"))
     (lemma "expt_ge1" ("b" "2" "n" "p!1 + 2 * s!1 + 2"))
     (lemma "div_mult_pos_lt1"
      ("z"
       "2 ^ (2 + p!1 + 2 * s!1)"
       "py"
       "pn!1 - 1"
       "x"
       "(1 + r!1) / 2 ^ p!1"))
     (("1"
       (replace -1 -6)
       (lemma "lt_times_lt_pos1"
        ("px"
         "2 ^ (2 + p!1 + 2 * s!1)"
         "y"
         "(1 + r!1) / 2 ^ p!1 * (pn!1 - 1)"
         "nnz"
         "pn!1 - 1"
         "w"
         "px!1 * 2 ^ (p!1 + 2 * s!1 + 2)"))
       (expand "<=" -1)
       (replace -8 -1)
       (replace -7 -1)
       (simplify -1)
       (lemma "div_mult_pos_lt2"
        ("z" "(r!1 + 1) * px!1" "x" "1" "py" "2 ^ p!1"))
       (replace -1 1 rl)
       (lemma "both_sides_times_pos_lt1"
        ("x"
         "1"
         "y"
         "(r!1 + 1) * px!1 / 2 ^ p!1"
         "pz"
         "2 ^ (2 + p!1 + 2 * s!1) * (pn!1-1)"))
       (("1" (replace -1 1 rl) (assert))
        ("2"
         (lemma "lt_times_lt_pos1"
          ("nnz"
           "6"
           "w"
           "pn!1 - 1"
           "px"
           "1"
           "y"
           "2 ^ (2 + p!1 + 2 * s!1)"))
         (replace -8 -1)
         (lemma "expt_ge1" ("b" "2" "n" "2 + p!1 + 2 * s!1"))
         (expand ">=")
         (replace -1 -2)
         (assert))))
      ("2" (assert))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: inv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "inv_p0" ("p" "p!1" "s" "s!1" "pn" "-1 * nn!1"))
   (replace -3 -1)
   (lemma "inv_p3" ("p" "p!1" "s" "s!1" "pn" "-1 * nn!1"))
   (replace -4 -1)
   (lemma "lemma_A2"
    ("r" "r!1" "p" "-1*2 ^ (2 * p!1 + 2 * s!1 + 2)" "q" "-1*nn!1"))
   (replace -4 -1 rl)
   (simplify)
   (flatten)
   (hide (-2 -5 -6))
   (lemma "div_mult_neg_lt2"
    ("x" "r!1 - 1" "ny" "1 + nn!1" "z" "2 ^ (2 + 2 * p!1 + 2 * s!1)"))
   (("1"
     (replace -1 1)
     (hide -1)
     (name "AA" "2 ^ (2 + 2 * p!1 + 2 * s!1)")
     (replace -1)
     (hide -1)
     (lemma "both_sides_times_neg_lt1"
      ("y" "AA / (-1 * nn!1) - (-1 - nn!1) / 2" "x" "0" "nz" "-1"))
     (lemma "both_sides_times_neg_le1"
      ("y" "1 / 2 * nn!1 - nn!1 * r!1" "x" "-1 * AA" "nz" "-1"))
     (replace -1 -3 rl)
     (replace -2 -4 rl)
     (hide (-1 -2))
     (simplify)
     (reveal -3)
     (lemma "expt_ge1" ("b" "2" "n" "2 + 2 * p!1 + 2 * s!1"))
     (replace -2)
     (hide -2)
     (lemma "div_mult_neg_le2" ("z" "AA" "x" "r!1-1/2" "ny" "nn!1"))
     (lemma "both_sides_minus_le1"
      ("x" "r!1 - 1 / 2" "y" "AA / nn!1" "z" "1/2"))
     (simplify -1)
     (rewrite "div_cancel1" -1)
     (lemma "both_sides_times_neg_le1"
      ("y" "r!1 - 1" "x" "AA / nn!1 - 1 / 2" "nz" "nn!1+1"))
     (("1"
       (replace -5 -3)
       (replace -3 -2)
       (replace -2)
       (flatten)
       (simplify -1)
       (lemma "lt_minus_lt1"
        ("x"
         "-1 * (1 / 2) - 1 / 2 * nn!1 + AA / nn!1 +AA"
         "y"
         "-1 - nn!1 + (nn!1 * r!1 + r!1)"
         "w"
         "0"
         "z"
         "(-1 - nn!1) / 2 - AA / (-1 * nn!1)"))
       (replace -2 -1)
       (replace -7 -1)
       (simplify -1)
       (hide-all-but (-1 1))
       (grind))
      ("2" (grind))))
    ("2" (hide (-1 -2 2)) (grind))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: inv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "inv_p0" ("p" "p!1" "s" "s!1" "pn" "-1*nn!1"))
   (lemma "inv_p4" ("p" "p!1" "s" "s!1" "pn" "-1*nn!1"))
   (replace -4)
   (simplify (-1 -2))
   (lemma "lemma_A2"
    ("r" "r!1" "p" "-1*2 ^ (2 * p!1 + 2 * s!1 + 2)" "q" "-1*nn!1"))
   (replace -4 -1 rl)
   (simplify -1)
   (flatten)
   (hide (-1 -5 -6))
   (lemma "expt_ge1" ("b" "2"))
   (inst - "2 * p!1 + 2 * s!1 + 2")
   (name "AA" "2 ^ (2 * p!1 + 2 * s!1 + 2)")
   (replace -1)
   (hide -1)
   (lemma "div_mult_neg_lt1" ("z" "AA" "ny" "nn!1 - 1" "x" "r!1 + 1"))
   (replace -1)
   (hide -1)
   (lemma "div_mult_neg_lt2"
    ("z" "-1*AA" "ny" "nn!1" "x" "-1*r!1 - 1/2"))
   (replace -1 -3 rl)
   (lemma "both_sides_times_neg_lt1"
    ("x" "r!1 + 1 / 2" "y" "AA / nn!1" "nz" "-1"))
   (replace -1)
   (hide (-1 -2))
   (lemma "both_sides_plus_lt1"
    ("x" "AA / nn!1" "y" "r!1 + 1 / 2" "z" "1 / 2"))
   (replace -3 -1)
   (simplify -1)
   (rewrite "div_cancel1" -1)
   (lemma "both_sides_times_neg_lt1"
    ("y" "1 / 2 + AA / nn!1" "x" "1 + r!1" "nz" "nn!1 - 1"))
   (replace -2 -1)
   (simplify -1)
   (lemma "both_sides_times_neg_lt1"
    ("y" "AA / (-1 * nn!1) - (1 - nn!1) / 2" "x" "0" "nz" "-1"))
   (replace -6 -1)
   (simplify -1)
   (lemma "lt_minus_lt1"
    ("x"
     "nn!1 * r!1 - r!1 + (nn!1 - 1)"
     "y"
     "1 / 2 * nn!1 - 1 / 2 + (AA / nn!1 * nn!1 - AA / nn!1)"
     "w"
     "AA / (-1 * nn!1) - (1 - nn!1) / 2"
     "z"
     "0"))
   (replace -7 -1)
   (simplify -1)
   (grind))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: inv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "inv_p0" ("p" "p!1" "s" "s!1" "pn" "-1*nn!1"))
   (replace -3 -1)
   (simplify -1)
   (lemma "inv_n5" ("p" "p!1" "s" "s!1" "nn" "nn!1" "r" "r!1"))
   (lemma "inv_n6" ("p" "p!1" "s" "s!1" "nn" "nn!1" "r" "r!1"))
   (replace -4 (-1 -2) rl)
   (replace -5 (-1 -2))
   (simplify (-1 -2))
   (lemma "expt_ge1" ("b" "2" "n" "p!1"))
   (lemma "expt_plus" ("n0x" "2" "i" "p!1" "j" "p!1 + 2 * s!1 + 2"))
   (replace -1)
   (lemma "div_mult_pos_lt1"
    ("z"
     "r!1 - 1"
     "py"
     "2 ^ p!1"
     "x"
     "2 ^ (p!1 + 2 * s!1 + 2) / (nn!1 + 1)"))
   (("1"
     (lemma "div_mult_pos_lt2"
      ("z"
       "r!1 + 1"
       "py"
       "2 ^ p!1"
       "x"
       "2 ^ (p!1 + 2 * s!1 + 2) / (nn!1 - 1)"))
     (replace -5)
     (replace -6)
     (simplify (-1 -2))
     (replace -1 1)
     (replace -2 1)
     (assert))
    ("2" (hide-all-but (-1 -6)) (grind))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: inv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "expt_ge1" ("b" "2"))
   (inst-cp - "s!1")
   (inst - "p!1 + s!1 + 2")
   (lemma "expt_plus" ("n0x" "2" "i" "p!1 + s!1 + 2" "j" "s!1"))
   (lemma "both_sides_plus_lt1"
    ("x" "nn!1 - 1" "y" "nx!1 * 2 ^ (p!1 + 2 * s!1 + 2)" "z" "1"))
   (lemma "both_sides_times_neg_lt1"
    ("y" "nn!1" "x" "nx!1 * 2 ^ (p!1 + 2 * s!1 + 2) + 1" "nz" "-1"))
   (simplify -1)
   (lemma "both_sides_times_pos_le1"
    ("x" "2" "y" "-1 *nx!1 * 2 ^ s!1" "pz" "2 ^ (2 + p!1 + s!1)"))
   (lemma "expt_plus" ("n0x" "2" "i" "2 + p!1 + s!1" "j" "1"))
   (expand "^" -1 3)
   (expand "expt")
   (expand "expt")
   (assert))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: inv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "inv_n8" ("nx" "nx!1" "nn" "nn!1" "p" "p!1" "s" "s!1"))
   (lemma "inv_n7" ("nn" "nn!1" "p" "p!1" "s" "s!1" "r" "r!1"))
   (replace -4 -1 rl)
   (replace -3)
   (replace -5)
   (replace -6)
   (simplify -2)
   (replace -2)
   (simplify -1)
   (flatten)
   (lemma "inv_p0" ("p" "p!1" "s" "s!1" "pn" "-1*nn!1"))
   (replace -4)
   (simplify -1)
   (lemma "expt_ge1" ("b" "2"))
   (lemma "expt_plus" ("n0x" "2"))
   (lemma "div_mult_neg_lt1" ("z" "2 ^ p!1" "ny" "nx!1" "x" "r!1 + 1"))
   (replace -1)
   (lemma "div_mult_neg_lt2" ("z" "2 ^ p!1" "ny" "nx!1" "x" "r!1 - 1"))
   (replace -1)
   (hide (-1 -2 -10))
   (inst-cp -2 "p!1")
   (lemma "div_mult_pos_lt1"
    ("z"
     "r!1 - 1"
     "py"
     "2 ^ p!1"
     "x"
     "(2 ^ (2 + p!1 + 2 * s!1)) / (1 + nn!1)"))
   (("1"
     (replace -1)
     (lemma "div_mult_pos_lt2"
      ("z"
       "r!1 + 1"
       "py"
       "2 ^ p!1"
       "x"
       "(2 ^ (2 + p!1 + 2 * s!1)) / (nn!1 -1)"))
     (replace -1)
     (hide (-1 -2))
     (inst-cp -2 "2 + p!1 + 2 * s!1")
     (name "B" "2 ^ p!1")
     (replace -1)
     (name "AA" "2 ^ (2 + p!1 + 2 * s!1)")
     (replace -1)
     (hide (-1 -2 -3 -4 -10))
     (split)
     (("1"
       (lemma "div_mult_pos_lt2" ("x" "nx!1" "z" "nn!1 + 1" "py" "AA"))
       (replace -1 -9 rl)
       (lemma "lt_times_lt_neg1"
        ("x"
         "r!1 - 1"
         "ny"
         "AA / (1 + nn!1) * B"
         "z"
         "nx!1"
         "npw"
         "(nn!1 + 1) / AA"))
       (("1"
         (simplify -1)
         (lemma "div_times"
          ("x" "AA" "n0x" "nn!1 + 1" "y" "nn!1 + 1" "n0y" "AA"))
         (("1"
           (simplify -1)
           (simplify -1)
           (rewrite "div_simp" -1)
           (("1"
             (lemma "both_sides_times1"
              ("x"
               "(AA / (1 + nn!1)) * ((1 + nn!1) / AA)"
               "y"
               "1"
               "n0z"
               "B"))
             (replace -1 -2 rl)
             (simplify -2)
             (replace -2 -3 lr)
             (grind))
            ("2"
             (hide-all-but (-4 -6 1))
             (lemma "both_sides_times_neg_le1"
              ("y" "6" "x" "-1*nn!1" "nz" "-1"))
             (lemma "both_sides_plus_le1" ("x" "nn!1" "y" "-6" "z" "1"))
             (lemma "both_sides_times_pos_le1"
              ("x" "nn!1 + 1" "y" "-5" "pz" "AA"))
             (grind))))
          ("2" (assert))))
        ("2"
         (hide-all-but (-2 -3 -4 1))
         (lemma "both_sides_times_neg_le1"
          ("y" "6" "x" "-1*nn!1" "nz" "-1"))
         (lemma "both_sides_plus_le1" ("y" "-6" "x" "nn!1" "z" "1"))
         (simplify)
         (lemma "div_mult_neg_le1" ("x" "0" "ny" "1+nn!1" "z" "AA*B"))
         (("1" (grind)) ("2" (assert))))
        ("3"
         (hide-all-but (1 -2 -4))
         (lemma "div_mult_pos_le1" ("py" "AA" "z" "1 + nn!1" "x" "0"))
         (grind))))
      ("2"
       (lemma "trich_lt" ("x" "r!1 + 1" "y" "0"))
       (split -1)
       (("1"
         (lemma "lt_times_lt_neg1"
          ("x"
           "AA / (nn!1 - 1) * B"
           "ny"
           "r!1 + 1"
           "z"
           "nn!1 - 1"
           "npw"
           "nx!1 * AA"))
         (("1"
           (lemma "both_sides_times_pos_lt1"
            ("x" "(r!1 + 1) * nx!1" "y" "B" "pz" "AA"))
           (hide -9)
           (replace -1 1 rl)
           (rewrite "times_div2" -2)
           (rewrite "div_cancel2" -2)
           (grind))
          ("2" (assert)) ("3" (assert))))
        ("2" (replace -1) (assert))
        ("3"
         (lemma "both_sides_times_neg_lt1"
          ("y" "0" "x" "r!1 + 1" "nz" "nx!1"))
         (grind))))))
    ("2" (hide-all-but (-4 1)) (grind))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: inv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "trich_lt" ("x" "nzx!1" "y" "0"))
   (split -1)
   (("1"
     (rewrite "abs_nonpos")
     (lemma "expt_ge1" ("b" "2"))
     (lemma "expt_plus" ("n0x" "2"))
     (lemma "both_sides_times_neg_le1"
      ("y" "2" "x" "-1 * nzx!1 * 2 ^ s!1" "nz" "-1"))
     (replace -5 -1)
     (flatten)
     (simplify -1)
     (inst-cp -3 "p!1 + s!1 + 2")
     (lemma "both_sides_times_pos_le1"
      ("x" "2 ^ s!1 * nzx!1" "y" "2 * -1" "pz" "2 ^ (p!1 + s!1 + 2)"))
     (replace -2 -1)
     (simplify -1)
     (inst -3 "2 + p!1 + s!1" "s!1")
     (replace -3)
     (name "AA" "2 ^ (2 + p!1 + s!1)")
     (replace -1)
     (name "B" "2 ^ s!1")
     (replace -1)
     (expand ">=")
     (lemma "inv_n9"
      ("nx" "nzx!1" "nn" "nzn!1" "s" "s!1" "p" "p!1" "r" "r!1"))
     (("1"
       (replace -2)
       (replace -10)
       (replace -11 -1 rl)
       (replace -6)
       (replace -12)
       (replace -13)
       (simplify -1)
       (assert))
      ("2" (assert)) ("3" (hide-all-but (-3 -7 -11 1)) (grind))))
    ("2" (assert))
    ("3"
     (rewrite "abs_nonneg")
     (lemma "expt_ge1" ("b" "2"))
     (lemma "expt_plus" ("n0x" "2"))
     (inst-cp -2 "s!1")
     (inst -2 "p!1 + s!1 + 2")
     (inst-cp - "p!1 + s!1 + 2" "s!1")
     (replace -2)
     (lemma "both_sides_times_pos_le1"
      ("x" "2" "y" "nzx!1 * 2 ^ s!1" "pz" "2 ^ (p!1 + s!1 + 2)"))
     (replace -7 -1)
     (flatten)
     (lemma "inv_p9"
      ("px" "nzx!1" "s" "s!1" "r" "r!1" "p" "p!1" "pn" "nzn!1"))
     (("1"
       (replace -8 -1)
       (replace -9 -1 rl)
       (replace -4)
       (replace -10)
       (replace -11)
       (simplify -1)
       (flatten)
       (hide-all-but (-1 -2 -8 1))
       (split)
       (("1"
         (lemma "div_mult_pos_lt2"
          ("x" "r!1 - 1" "py" "nzx!1" "z" "2 ^ p!1"))
         (replace -1)
         (assert))
        ("2"
         (lemma "div_mult_pos_lt1"
          ("x" "r!1 + 1" "py" "nzx!1" "z" "2 ^ p!1"))
         (replace -1)
         (assert))))
      ("2" (assert))
      ("3"
       (name "AA" "2 ^ (p!1 + s!1 + 2)")
       (replace -1)
       (name "B" "2 ^ s!1")
       (replace -1)
       (hide-all-but (-3 -6 -12 1))
       (grind))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: inv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "minimum_inv_prop1" ("s" "s!1" "nzcx" "nzcx!1" "x" "nzx!1"))
   (replace -3 -1)
   (expand "cauchy_prop")
   (skosimp*)
   (inst - "2 + p!1 + 2 * s!1")
   (name "nzn!1" "nzcx!1(2 + p!1 + 2 * s!1)")
   (replace -1)
   (lemma "minimum_inv_prop2"
    ("s" "s!1" "nzx" "nzx!1" "n" "nzn!1" "p" "p!1"))
   (replace -4 -3 rl)
   (simplify -3)
   (replace -5 -1)
   (replace -3 -1)
   (simplify -1)
   (name "r!1" "round((2 ^ (2 + 2 * p!1 + 2 * s!1)) / nzn!1)")
   (("1"
     (replace -1)
     (lemma "inv_p"
      ("s" "s!1" "nzx" "nzx!1" "p" "p!1" "nzn" "nzn!1" "r" "r!1"))
     (replace -5 -1)
     (replace -2)
     (replace -7 -1)
     (hide-all-but (-1 1))
     (grind))
    ("2" (propax))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: inv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (lemma "minimum_inv_prop3" ("nzcx" "nzcx!1" "nzx" "nzx!1"))
   (inst - "minimum_inv(nzcx!1)")
   (expand "cauchy_nz_inv")
   (rewrite "minimum_inv_impl_def")
   (assert))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: inv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (lemma "inv_nz_lemma" ("nzx" "nzx!1" "nzcx" "nzcx!1"))
   (assert)
   (expand "cauchy_inv")
   (propax))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: inv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (assert)
   (typepred "s!1")
   (expand "minimum_inv")
   (typepred "min_nat.min({s | 3 <= abs(nzcx!1(s))})")
   (("1" (inst - "s!1") (assert)) ("2" (rewrite "minimum_inv_exists"))))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: inv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (replace 1)
   (lift-if)
   (simplify 2)
   (prop)
   (typepred "nzcx!1")
   (expand "cauchy_nzreal?")
   (skosimp)
   (expand "cauchy_prop")
   (inst-cp - "s!1")
   (case "s!1>=minimum_inv(nzcx!1)")
   (("1"
     (hide 1 -4)
     (expand "minimum_inv")
     (typepred "min_nat.min({s | 3 <= abs(nzcx!1(s))})")
     (("1"
       (typepred "s!1")
       (expand "minimum_inv")
       (name-replace "MIN" "min_nat.min({s | 3 <= abs(nzcx!1(s))})")
       (assert))
      ("2" (lemma "minimum_inv_exists" ("nzcx" "nzcx!1")) (propax))))
    ("2" (assert))))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: inv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "expt_plus" ("n0x" "2" "i" "p!1 + s!1" "j" "3"))
   (replace -1 -2)
   (hide -1)
   (expand "^" -1 2)
   (expand "expt")
   (expand "expt")
   (expand "expt")
   (expand "expt")
   (lemma "expt_ge1" ("b" "2" "n" "p!1+s!1"))
   (name "t" "2^(p!1+s!1)")
   (replace -1)
   (hide -1)
   (grind))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: inv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "minimum_inv_prop0" ("s" "s!1" "nzcx" "nzcx!1"))
   (lemma "cauchy_monotonic"
    ("s" "s!1" "nzcx" "nzcx!1" "p" "p!1 + s!1 + 2"))
   (lemma "cauchy_dich5" ("nzcx" "nzcx!1"))
   (split -1)
   (("1"
     (lemma "cauchy_neg_characteristic"
      ("p" "2 + p!1 + 2 * s!1" "ncx" "nzcx!1"))
     (("1"
       (rewrite "abs_nonpos")
       (("1" (assert) (assert) (assert) (grind)) ("2" (grind))))
      ("2" (propax))))
    ("2"
     (lemma "cauchy_pos_characteristic"
      ("pcx" "nzcx!1" "p" "2 + p!1 + 2 * s!1"))
     (("1" (rewrite "abs_nonneg") (("1" (grind)) ("2" (grind))))
      ("2" (propax))))))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: inv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (rewrite "minimum_inv_impl_def" * :dir rl)
   (expand "minimum_inv")
   (typepred "min_nat.min({s | 3 <= abs(nzcx!1(s))})")
   (("1"
     (replace -3 * rl)
     (typepred "nzcx!1")
     (expand "cauchy_nzreal?")
     (skosimp)
     (expand "cauchy_prop")
     (inst-cp - "s!1")
     (inst - "p!1+2*s!1+2")
     (flatten)
     (case "abs(nzcx!1(s!1))<=abs(nzcx!1(p!1+2*s!1+2))")
     (("1" (replace -9 -1) (expand "abs" -1 2) (assert))
      ("2"
       (replace -8)
       (expand "abs" 1 2)
       (hide 1 -8)
       (lemma "div_mult_pos_lt2"
        ("py" " 2 ^ (p!1 + 2 * s!1 + 2)" "x" "x!1" "z" "1"))
       (lemma "div_mult_pos_lt1"
        ("py" " 2 ^ (p!1 + 2 * s!1 + 2)" "x" "x!1" "z" "-1"))
       (assert)
       (case "abs(x!1 * 2 ^ s!1) <= 1/2^(2+p!1+s!1)")
       (("1"
         (lemma "both_sides_expt_gt1_le"
          ("gt1x" "2" "i" "-(2+p!1+s!1)" "j" "-2"))
         (assert)
         (rewrite "expt_inverse" -1)
         (rewrite "expt_inverse" -1)
         (expand "^" -1 2)
         (expand "expt")
         (expand "expt")
         (expand "expt")
         (case "abs(nzcx!1(s!1)) <=2")
         (("1" (assert))
          ("2"
           (case "abs(x!1 * 2 ^ s!1) <=1/4")
           (("1"
             (name-replace "X2S" "x!1 * 2 ^ s!1")
             (hide-all-but (-1 -8 -9 1))
             (grind))
            ("2" (assert))))))
        ("2"
         (hide-all-but (-1 -2 1))
         (rewrite "abs_mult" 1)
         (expand "abs" 1 2)
         (rewrite "div_mult_pos_le2" 1)
         (lemma "expt_plus" ("n0x" "2" "i" "2 + p!1 + s!1" "j" "s!1"))
         (rewrite "associative_mult" 1 :dir rl)
         (replace -1 1 rl)
         (hide -1)
         (typepred "2 ^ (2 + p!1 + 2 * s!1)")
         (lemma "div_mult_pos_le2"
          ("py" "2 ^ (2 + p!1 + s!1 + s!1)" "x" "abs(x!1)" "z" "1"))
         (replace -1 1 rl)
         (hide -1 -2)
         (name-replace "DRL" "2 ^ (2 + p!1 + 2 * s!1)")
         (grind))))))
    ("2" (rewrite "minimum_inv_exists"))))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: inv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (typepred "nzcx!1")
   (expand "cauchy_nzreal?")
   (skosimp)
   (lemma "minimum_inv_prop3"
    ("s" "minimum_inv(nzcx!1)" "nzx" "x!1" "nzcx" "nzcx!1"))
   (assert)
   (rewrite "minimum_inv_impl_def")
   (inst + "1/x!1"))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: div
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (lemma "inv_lemma" ("nzx" "nzy!1" "nzcx" "nzcy!1"))
   (assert)
   (lemma "mul_lemma"
    ("x" "x!1" "cx" "cx!1" "y" "1/nzy!1" "cy" "cauchy_inv(nzcy!1)"))
   (assert)
   (expand "cauchy_div")
   (name-replace "CZ" "cauchy_mul(cx!1, cauchy_inv(nzcy!1))")
   (rewrite "div_def" -1)
   (rewrite "div_def" 1))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: sub
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "cauchy_sub")
   (lemma "neg_lemma" ("x" "y!1" "cx" "cy!1"))
   (lemma "add_lemma"
    ("x" "x!1" "y" "-y!1" "cx" "cx!1" "cy" "cauchy_neg(cy!1)"))
   (assert))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: log
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (expand "cauchy_ln_series")
   (typepred "n!1")
   (expand ">=")
   (expand "<=")
   (split -1)
   (("1"
     (assert)
     (expand "lnT")
     (case "even?(n!1)")
     (("1"
       (assert)
       (expand "even?")
       (skosimp)
       (replace -1)
       (rewrite "expt_times")
       (rewrite "expt_x2")
       (rewrite "expt_1i")
       (replace -1 * rl)
       (hide -1)
       (lemma "div_lemma"
        ("x"
         "-1"
         "nzy"
         "n!1"
         "cx"
         "cauchy_int(-1)"
         "nzcy"
         "cauchy_int(n!1)"))
       (rewrite "int_lemma")
       (rewrite "int_lemma"))
      ("2"
       (assert)
       (rewrite "even_iff_not_odd")
       (expand "odd?")
       (skosimp)
       (replace -1)
       (rewrite "expt_plus")
       (rewrite "expt_times")
       (rewrite "expt_x2")
       (rewrite "expt_1i")
       (replace -1 * rl)
       (hide -1)
       (lemma "div_lemma"
        ("x"
         "1"
         "nzy"
         "n!1"
         "cx"
         "cauchy_int(1)"
         "nzcy"
         "cauchy_int(n!1)"))
       (rewrite "int_lemma")
       (rewrite "int_lemma")
       (rewrite "expt_x1")
       (assert))))
    ("2"
     (replace -1 * rl)
     (lemma "unique_cauchy_zero" ("x" "0"))
     (assert))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: log
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (expand "ln_estimate")
   (lemma "powerseries_lemma"
    ("x"
     "ssx!1"
     "cx"
     "cssx!1"
     "xs"
     "LAMBDA n: IF n = 0 THEN 0 ELSE lnT(1)(n-1) ENDIF"
     "cxs"
     "cauchy_ln_series"
     "m"
     "n!1"))
   (("1"
     (expand "powerseries")
     (replace -2)
     (lemma "ln_series_lemma")
     (replace -1)
     (hide -1)
     (name-replace "CPS"
      "cauchy_powerseries(cssx!1, cauchy_ln_series, n!1)")
     (expand "lnT")
     (case-replace
      "(LAMBDA (i:nat):
                                IF i = 0 THEN 0
                                ELSE -(-1) ^ i / i * ssx!1 ^ i
                                ENDIF)=(LAMBDA (nn: nat):
                                IF nn = 0 THEN 0 ELSE -(-ssx!1) ^ nn / nn ENDIF)")
     (("1"
       (hide-all-but 1)
       (apply-extensionality :hide? t)
       (("1"
         (case-replace "x!1=0")
         (assert)
         (case-replace "(-ssx!1) ^ x!1 = (-1) ^ x!1* ssx!1 ^ x!1")
         (("1" (assert))
          ("2"
           (hide 3)
           (case-replace "ssx!1=0")
           (("1" (expand "^") (expand "expt") (assert))
            ("2"
             (lemma "mult_expt" ("n0x" "-1" "n0y" "ssx!1" "i" "x!1"))
             (("1" (assert)) ("2" (assert))))))))
        ("2" (skosimp))))
      ("2" (skosimp))))
    ("2" (skosimp) (assert))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: log
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (lemma "ln_estimate_lemma" ("ssx" "ssx!1" "cssx" "cssx!1"))
   (expand "cauchy_ln_drx")
   (expand "cauchy_prop" 1)
   (skosimp)
   (inst - "2+p!1")
   (assert)
   (lemma "ln_estimate_bnd" ("z" "ssx!1" "n" "2+p!1"))
   (name-replace "LOG_" "ln(1 + ssx!1)")
   (name-replace "CPS"
    "cauchy_powerseries(cssx!1, cauchy_ln_series, 2 + p!1)")
   (name-replace "EST" "ln_estimate(ssx!1, 2 + p!1)")
   (expand "round")
   (typepred "floor(1 / 2 + CPS(2 + p!1) / 4)")
   (name-replace "RR" "floor(1 / 2 + CPS(2 + p!1) / 4)")
   (hide -5)
   (expand "cauchy_prop")
   (inst - "2+p!1")
   (flatten)
   (case "abs(LOG_ - EST)*2^p!1 < 1/4")
   (("1"
     (hide -4)
     (case "abs(LOG_* 2 ^ p!1 - CPS(2 + p!1)/4) < 1/2")
     (("1" (hide -2 -5 -6) (name-replace "P2" "2 ^ p!1") (grind))
      ("2"
       (hide -2 -3 2)
       (lemma "abs_mult" ("x" "LOG_-EST" "y" "2^p!1"))
       (expand "abs" -1 3)
       (replace -1 -2 rl)
       (hide -1)
       (rewrite "expt_plus")
       (rewrite "expt_x2")
       (name-replace "P2" "2^p!1")
       (grind))))
    ("2"
     (hide-all-but (-3 1))
     (name-replace "ABS" "abs(LOG_ - EST)")
     (typepred "ssx!1")
     (case "abs(ssx!1) ^ (2 + p!1 + 1) <= 1/2^(3+p!1)")
     (("1"
       (case "1 <= IF ssx!1 < 0 THEN 1 + ssx!1 ELSE 1 ENDIF * (2 + p!1 + 1)")
       (("1"
         (lemma "le_div_le_pos"
          ("nnx"
           "abs(ssx!1) ^ (2 + p!1 + 1)"
           "y"
           "1 / 2 ^ (3 + p!1)"
           "pz"
           "1"
           "w"
           "IF ssx!1 < 0 THEN 1 + ssx!1 ELSE 1 ENDIF * (2 + p!1 + 1)"))
         (replace -3)
         (replace -2)
         (name-replace "RHS"
          "abs(ssx!1) ^ (2 + p!1 + 1) /
                         (IF ssx!1 < 0 THEN 1 + ssx!1 ELSE 1 ENDIF * (2 + p!1 + 1))")
         (rewrite "div_div2")
         (lemma "both_sides_expt_gt1_lt"
          ("gt1x" "2" "i" "2+p!1" "j" "3+p!1"))
         (assert)
         (hide -3 -4)
         (lemma "div_mult_pos_lt2" ("py" "2^p!1" "x" "ABS" "z" "1/4"))
         (replace -1 1 rl)
         (hide -1)
         (rewrite "div_div2")
         (lemma "both_sides_div_pos_lt2"
          ("pz" "1" "px" "2 ^ (3 + p!1)" "py" "2 ^ (2 + p!1)"))
         (assert)
         (lemma "expt_plus" ("n0x" "2" "i" "2" "j" "p!1"))
         (rewrite "expt_x2")
         (replace -1)
         (assert))
        ("2"
         (hide-all-but (-2 -3 1))
         (case-replace "ssx!1<0")
         (("1"
           (lemma "both_sides_times_pos_le1"
            ("pz" "3+p!1" "x" "-1/2" "y" "ssx!1"))
           (assert))
          ("2" (assert))))))
      ("2"
       (hide-all-but (-1 -2 1))
       (case-replace "ssx!1=0")
       (("1"
         (expand "^" 1 1)
         (expand "expt" 1 1)
         (expand "abs")
         (assert))
        ("2"
         (lemma "both_sides_expt_pos_le"
          ("px" "abs(ssx!1)" "py" "1/2" "pm" "3+p!1"))
         (("1"
           (flatten)
           (hide -1)
           (split -1)
           (("1" (rewrite "inv_expt") (assert))
            ("2" (hide 2 3) (grind))))
          ("2" (assert))))))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: log
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (expand "cauchy_ln_half")
   (lemma "lemma_div2n" ("x" "1" "cx" "cauchy_int(1)" "n" "1"))
   (rewrite "int_lemma")
   (expand "div2n")
   (rewrite "expt_x1")
   (lemma "neg_lemma" ("x" "1/2" "cx" "cauchy_div2n(cauchy_int(1), 1)"))
   (assert)
   (lemma "ln_drx_lemma"
    ("ssx" "-(1/2)" "cssx" "cauchy_neg(cauchy_div2n(cauchy_int(1), 1))"))
   (assert))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: log
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (lemma "cauchy_ln_half_lemma")
   (lemma "ln_div" ("px" "1" "py" "2"))
   (replace -1)
   (expand "cauchy_ln2")
   (lemma "neg_lemma" ("x" "-ln(2)" "cx" "cauchy_ln_half"))
   (assert))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: log
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (lemma "cauchy_ln2_lemma")
   (expand "cauchy_ln_sqrt2")
   (lemma "lemma_div2n" ("x" "ln(2)" "cx" "cauchy_ln2" "n" "1"))
   (assert)
   (expand "div2n")
   (rewrite "expt_x1")
   (lemma "ln_expt" ("px" "sqrt(2)" "i" "2"))
   (rewrite "expt_x2")
   (rewrite "sq_rew")
   (assert))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: log
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (expand "cauchy_ln_dr")
   (case-replace "3 <= cmx!1(2) AND cmx!1(2) <= 5")
   (("1"
     (flatten)
     (lemma "sub_lemma"
      ("x" "mx!1" "cx" "cmx!1" "y" "1" "cy" "cauchy_int(1)"))
     (rewrite "int_lemma")
     (assert)
     (expand "cauchy_prop" -4)
     (inst - "2")
     (rewrite "expt_x2")
     (flatten)
     (case "1/2<mx!1&mx!1<3/2")
     (("1"
       (flatten)
       (lemma "ln_drx_lemma"
        ("ssx" "mx!1 - 1" "cssx" "cauchy_sub(cmx!1, cauchy_int(1))"))
       (("1" (assert)) ("2" (assert))))
      ("2" (assert))))
    ("2"
     (replace 1 2)
     (hide 1)
     (lemma "sqrt_lemma" ("nnx" "mx!1" "nncx" "cmx!1"))
     (assert)
     (lemma "sub_lemma"
      ("x"
       "sqrt(mx!1)"
       "cx"
       "cauchy_sqrt(cmx!1)"
       "y"
       "1"
       "cy"
       "cauchy_int(1)"))
     (rewrite "int_lemma")
     (assert)
     (typepred "mx!1")
     (lemma "sqrt_le" ("nny" "sq(1/2)" "nnz" "mx!1"))
     (lemma "sqrt_le" ("nnz" "sq(3/2)" "nny" "mx!1"))
     (expand "sq" -1 2)
     (expand "sq" -2 2)
     (assert)
     (lemma "ln_drx_lemma"
      ("ssx"
       "sqrt(mx!1) - 1"
       "cssx"
       "cauchy_sub(cauchy_sqrt(cmx!1), cauchy_int(1))"))
     (assert)
     (lemma "lemma_mul2n"
      ("x"
       "ln(sqrt(mx!1))"
       "cx"
       "cauchy_ln_drx(cauchy_sub(cauchy_sqrt(cmx!1),cauchy_int(1)))"
       "n"
       "1"))
     (assert)
     (expand "mul2n")
     (rewrite "expt_x1")
     (lemma "ln_expt" ("px" "sqrt(mx!1)" "i" "2"))
     (rewrite "expt_x2")
     (rewrite "sq_rew")
     (assert))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: log
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (expand "cauchy_lnx")
   (case-replace "cgt!1(2) <= 8")
   (("1"
     (lemma "ln_dr_lemma" ("mx" "gt!1" "cmx" "cgt!1"))
     (("1" (assert))
      ("2"
       (hide 2)
       (expand "cauchy_prop")
       (inst - "2")
       (rewrite "expt_x2")
       (flatten)
       (assert))))
    ("2"
     (assert)
     (case "9<=cgt!1(2)")
     (("1"
       (hide 1)
       (rewrite "floor_log2_def")
       (lemma "lemma_A3" ("i" "floor(log2(cgt!1(2)))" "px" "cgt!1(2)"))
       (assert)
       (flatten)
       (typepred "floor_log2(cgt!1(2))")
       (rewrite "floor_log2_def")
       (name-replace "N" "floor(log2(cgt!1(2)))")
       (case "N>=2")
       (("1"
         (lemma "lemma_div2n" ("x" "gt!1" "cx" "cgt!1" "n" "N-1"))
         (("1"
           (assert)
           (expand "cauchy_prop" -7)
           (inst - "2")
           (rewrite "expt_x2")
           (flatten)
           (expand "div2n")
           (case "1/4<=gt!1 / 2 ^ (N - 1)&gt!1 / 2 ^ (N - 1)<=9/4")
           (("1"
             (flatten)
             (lemma "ln_dr_lemma"
              ("mx"
               "gt!1 / 2 ^ (N - 1)"
               "cmx"
               "cauchy_div2n(cgt!1, N - 1)"))
             (("1"
               (assert)
               (lemma "mul_lemma"
                ("x"
                 "N-1"
                 "cx"
                 "cauchy_int(N - 1)"
                 "y"
                 "ln(2)"
                 "cy"
                 "cauchy_ln2"))
               (rewrite "int_lemma")
               (rewrite "cauchy_ln2_lemma")
               (lemma "add_lemma"
                ("x"
                 "ln(gt!1 / 2 ^ (N - 1))"
                 "cx"
                 "cauchy_ln_dr(cauchy_div2n(cgt!1, N - 1))"
                 "y"
                 "(N - 1) * ln(2)"
                 "cy"
                 "cauchy_mul(cauchy_int(N - 1), cauchy_ln2)"))
               (assert)
               (case-replace
                "ln(gt!1 / 2 ^ (N - 1)) + ln(2) * N - ln(2)=ln(gt!1)")
               (hide-all-but (-7 -4 1))
               (rewrite "ln_div")
               (rewrite "ln_expt")
               (assert))
              ("2" (assert))))
            ("2"
             (hide -1 2)
             (case "2^(N-3)<=gt!1&gt!1<9*2^(N-3)")
             (("1"
               (flatten)
               (lemma "expt_plus" ("n0x" "2" "i" "N" "j" "-1"))
               (lemma "expt_plus" ("n0x" "2" "i" "N" "j" "-2"))
               (lemma "expt_plus" ("n0x" "2" "i" "N" "j" "-3"))
               (rewrite "expt_inverse")
               (rewrite "expt_inverse")
               (rewrite "expt_inverse")
               (rewrite "expt_x1")
               (rewrite "expt_x2")
               (rewrite "expt_x3")
               (replace -1)
               (replace -3)
               (hide -1 -2 -3)
               (assert)
               (split 1)
               (("1" (rewrite "div_mult_pos_le2" 1))
                ("2" (rewrite "div_mult_pos_le1" 1))))
              ("2"
               (hide 2)
               (assert)
               (case "cgt!1(2)/4 - 1/4 <gt!1&gt!1 < 1/4 + cgt!1(2)/4")
               (("1"
                 (flatten)
                 (hide -8 -9)
                 (case "2 ^ (N - 3) <= (2 ^ N-1)/4 & (2^(1+N)+1)/4 <=9 * 2 ^ (N - 3)")
                 (("1" (flatten) (assert))
                  ("2"
                   (hide-all-but (-3 1))
                   (rewrite "expt_plus")
                   (lemma "expt_plus" ("n0x" "2" "i" "N" "j" "-3"))
                   (rewrite "expt_inverse")
                   (rewrite "expt_x1")
                   (rewrite "expt_x3")
                   (replace -1)
                   (assert)
                   (lemma "both_sides_expt_gt1_le"
                    ("gt1x" "2" "i" "2" "j" "N"))
                   (rewrite "expt_x2")
                   (assert))))
                ("2" (assert))))))))
          ("2" (assert))))
        ("2"
         (hide -5 2)
         (case-replace "N=0")
         (("1" (rewrite "expt_x1") (assert))
          ("2"
           (case-replace "N=1")
           (("1" (rewrite "expt_x2") (assert)) ("2" (assert))))))))
      ("2" (assert))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: log
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (expand "cauchy_ln")
   (case-replace "pcx!1(2) <= 2")
   (("1"
     (lemma "inv_lemma" ("nzx" "px!1" "nzcx" "pcx!1"))
     (assert)
     (expand "cauchy_prop" -3)
     (inst - "2")
     (rewrite "expt_x2")
     (flatten)
     (case "0<px!1&px!1<3/4")
     (("1"
       (flatten)
       (lemma "both_sides_div_pos_lt2" ("pz" "1" "px" "3/4" "py" "px!1"))
       (rewrite "div_div1")
       (assert)
       (lemma "ln_lemma_x"
        ("gt_14" "1/px!1" "cgt_14" "cauchy_inv(pcx!1)"))
       (assert)
       (lemma "neg_lemma"
        ("x" "ln(1 / px!1)" "cx" "cauchy_lnx(cauchy_inv(pcx!1))"))
       (assert)
       (lemma "ln_div" ("px" "1" "py" "px!1"))
       (assert))
      ("2" (assert))))
    ("2"
     (case "3<=pcx!1(2)")
     (("1"
       (assert)
       (hide 1)
       (lemma "ln_lemma_x" ("gt_14" "px!1" "cgt_14" "pcx!1"))
       (("1" (assert))
        ("2"
         (hide 2)
         (expand "cauchy_prop")
         (inst - "2")
         (rewrite "expt_x2")
         (flatten)
         (assert))))
      ("2" (assert))))))


proof_type: j_proof
decl_type: tcc
library: exact_real_arith
theory: log
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (typepred "x!1")
   (expand "cauchy_ln_small?")
   (skosimp)
   (expand "cauchy_real?")
   (inst + "x!2"))


proof_type: j_proof
decl_type: tcc
library: exact_real_arith
theory: log
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (typepred "x!1")
   (expand "cauchy_ln_med?")
   (expand "cauchy_posreal?")
   (skosimp)
   (inst + "x!2"))


proof_type: j_proof
decl_type: tcc
library: exact_real_arith
theory: log
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (typepred "x!1")
   (expand "cauchy_gt_quarter?")
   (skosimp)
   (expand "cauchy_posreal?")
   (inst + "x!2"))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: log
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (expand "cauchy_nzreal?")
   (inst + "n!1")
   (("1" (rewrite "int_lemma")) ("2" (assert))))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: log
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (expand "cauchys_real?")
   (lemma "ln_series_lemma")
   (inst + "lambda n:IF n = 0 THEN 0 ELSE lnT(1)(n - 1) ENDIF")
   (("1" (expand "cauchys_prop") (propax)) ("2" (skosimp) (assert))))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: log
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (lemma "ln_series_lemma")
   (expand "cauchys_real?")
   (inst + "lambda n:IF n = 0 THEN 0 ELSE lnT(1)(n - 1) ENDIF")
   (("1" (expand "cauchys_prop") (propax)) ("2" (skosimp) (assert))))


proof_type: j_proof
decl_type: tcc
library: exact_real_arith
theory: log
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (typepred "cssx!1")
   (expand "cauchy_ln_small?")
   (skosimp)
   (lemma "ln_drx_lemma" ("ssx" "x!1" "cssx" "cssx!1"))
   (assert)
   (expand "cauchy_real?")
   (inst + "ln(1+x!1)"))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: log
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (lemma "lemma_div2n" ("x" "1" "cx" "cauchy_int(1)" "n" "1"))
   (rewrite "int_lemma")
   (lemma "neg_lemma"
    ("x" "div2n(1, 1)" "cx" "cauchy_div2n(cauchy_int(1), 1)"))
   (assert)
   (expand "div2n")
   (rewrite "expt_x1")
   (expand "cauchy_ln_small?")
   (inst + "-(1/2)"))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: log
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (lemma "lemma_div2n" ("x" "1" "cx" "cauchy_int(1)" "n" "1"))
   (rewrite "int_lemma")
   (expand "div2n")
   (rewrite "expt_x1")
   (lemma "neg_lemma" ("x" "1/2" "cx" "cauchy_div2n(cauchy_int(1), 1)"))
   (assert)
   (lemma "ln_drx_lemma"
    ("ssx" "-(1/2)" "cssx" "cauchy_neg(cauchy_div2n(cauchy_int(1), 1))"))
   (assert)
   (assert)
   (lemma "ln_strict_increasing")
   (expand "strict_increasing?")
   (inst - "1/2" "1")
   (assert)
   (expand "cauchy_negreal?")
   (inst + "ln(1/2)")
   (assert))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: log
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (typepred "cauchy_ln2")
   (expand "cauchy_posreal?")
   (skosimp)
   (typepred "x!1")
   (lemma "lemma_div2n" ("x" "x!1" "cx" "cauchy_ln2" "n" "1"))
   (assert)
   (expand "div2n")
   (rewrite "expt_x1")
   (inst + "x!1/2"))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: log
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (typepred "cmx!1")
   (expand "cauchy_ln_med?")
   (skosimp)
   (typepred "x!1")
   (lemma "sub_lemma"
    ("x" "x!1" "cx" "cmx!1" "y" "1" "cy" "cauchy_int(1)"))
   (rewrite "int_lemma")
   (assert)
   (expand "cauchy_prop" -4)
   (inst - "2")
   (flatten)
   (rewrite "expt_x2")
   (case "1/2<x!1&x!1<3/2")
   (("1"
     (flatten)
     (expand "cauchy_ln_small?")
     (inst + "x!1 - 1")
     (assert))
    ("2" (hide -1 2) (assert))))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: log
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (typepred "cmx!1")
   (expand "cauchy_ln_med?")
   (skosimp)
   (lemma "sqrt_lemma" ("nnx" "x!1" "nncx" "cmx!1"))
   (assert)
   (typepred "x!1")
   (lemma "sub_lemma"
    ("x"
     "sqrt(x!1)"
     "cx"
     "cauchy_sqrt(cmx!1)"
     "y"
     "1"
     "cy"
     "cauchy_int(1)"))
   (rewrite "int_lemma")
   (assert)
   (lemma "sqrt_le" ("nny" "sq(1/2)" "nnz" "x!1"))
   (lemma "sqrt_le" ("nnz" "sq(3/2)" "nny" "x!1"))
   (expand "sq" -1 2)
   (expand "sq" -2 2)
   (assert)
   (expand "cauchy_ln_small?")
   (inst + "sqrt(x!1) - 1"))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: log
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (typepred "cgt!1")
   (expand "cauchy_gt_quarter?")
   (skosimp)
   (expand "cauchy_ln_med?")
   (inst + "x!1")
   (expand "cauchy_prop")
   (inst - "2")
   (rewrite "expt_x2")
   (flatten)
   (assert))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: log
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (case "8<=t!1")
   (("1"
     (hide 1)
     (rewrite "floor_log2_def")
     (case "3<=log2(t!1)")
     (("1"
       (lemma "floor_plus_int" ("i" "3" "x" "log2(t!1)-3"))
       (lemma "nonneg_floor_is_nat" ("x" "log2(t!1) - 3"))
       (("1" (assert)) ("2" (assert))))
      ("2"
       (hide-all-but (-1 1))
       (lemma "ln_strict_increasing")
       (expand "<=" -2)
       (split -2)
       (("1"
         (expand "strict_increasing?")
         (inst-cp - "2^3" "t!1")
         (("1"
           (rewrite "ln_expt")
           (expand "log2")
           (rewrite "expt_x3")
           (assert)
           (rewrite "div_mult_pos_le2")
           (inst - "1" "2")
           (assert)
           (assert))
          ("2" (assert))))
        ("2"
         (expand "log2")
         (case-replace "t!1=2^3")
         (("1" (rewrite "ln_expt") (assert))
          ("2" (rewrite "expt_x3") (assert))))))
      ("3" (assert))))
    ("2" (assert))))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: log
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (case "9<=cgt!1(2)")
   (("1"
     (hide 1)
     (typepred "cgt!1")
     (expand "cauchy_gt_quarter?")
     (skosimp)
     (typepred "floor_log2(t!1)")
     (("1"
       (lemma "lemma_A3" ("i" "floor_log2(t!1)" "px" "t!1"))
       (rewrite "floor_log2_def")
       (flatten)
       (case "n!1>=2")
       (("1"
         (case-replace "floor(log2(t!1))=n!1+1")
         (("1"
           (hide -9 -1)
           (assert)
           (hide -4)
           (lemma "lemma_div2n" ("x" "x!1" "cx" "cgt!1" "n" "n!1"))
           (assert)
           (expand "div2n")
           (case "1/4<=x!1 / 2 ^ n!1&x!1 / 2 ^ n!1<=9/4")
           (("1"
             (flatten)
             (expand "cauchy_ln_med?")
             (inst + "x!1 / 2 ^ n!1")
             (assert))
            ("2"
             (hide -1 2)
             (expand "cauchy_prop")
             (inst - "2")
             (rewrite "expt_x2")
             (flatten)
             (case "2^(n!1-2)<=x!1&x!1<=9*2^(n!1-2)")
             (("1"
               (flatten)
               (lemma "expt_plus" ("n0x" "2" "i" "n!1" "j" "-2"))
               (rewrite "expt_inverse")
               (rewrite "expt_x2")
               (replace -1)
               (hide -1)
               (split 1)
               (("1" (rewrite "div_mult_pos_le2" 1) (assert))
                ("2" (rewrite "div_mult_pos_le1" 1) (assert))))
              ("2"
               (hide 2)
               (replace -7 * rl)
               (hide -7)
               (case "2 ^ n!1 <= 4*x!1 & 4*x!1 <= 9 * 2 ^ n!1")
               (("1"
                 (flatten)
                 (lemma "expt_plus" ("n0x" "2" "i" "n!1" "j" "-2"))
                 (rewrite "expt_inverse")
                 (rewrite "expt_x2")
                 (assert))
                ("2"
                 (hide 2)
                 (name-replace "X4" "4 * x!1")
                 (case "2^n!1<=t!1-1&t!1+1<=9*2^n!1")
                 (("1" (flatten) (assert))
                  ("2"
                   (hide 2 -4 -5)
                   (rewrite "expt_plus")
                   (rewrite "expt_plus")
                   (rewrite "expt_x1")
                   (rewrite "expt_x2")
                   (assert))))))))))
          ("2" (assert))))
        ("2"
         (case-replace "n!1=-1")
         (("1" (assert) (assert) (grind))
          ("2"
           (case-replace "n!1=0")
           (("1"
             (assert)
             (case-replace "floor(log2(t!1)) =1")
             (("1" (rewrite "expt_x2") (assert)) ("2" (assert))))
            ("2"
             (case-replace "n!1=1")
             (("1"
               (assert)
               (case-replace "floor(log2(t!1))=2")
               (("1" (rewrite "expt_x3") (assert)) ("2" (assert))))
              ("2" (assert))))))))))
      ("2" (assert))))
    ("2" (assert))))


proof_type: j_proof
decl_type: tcc
library: exact_real_arith
theory: log
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (typepred "cgt!1")
   (expand "cauchy_gt_quarter?")
   (skosimp)
   (lemma "ln_lemma_x" ("cgt_14" "cgt!1" "gt_14" "x!1"))
   (expand "cauchy_real?")
   (inst + "ln(x!1)")
   (assert))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: log
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (typepred "pcx!1")
   (expand "cauchy_posreal?")
   (skosimp)
   (lemma "inv_lemma" ("nzx" "x!1" "nzcx" "pcx!1"))
   (assert)
   (expand "cauchy_gt_quarter?")
   (inst + "1/x!1")
   (hide -1)
   (expand "cauchy_prop")
   (inst - "2")
   (rewrite "expt_x2")
   (flatten)
   (assert)
   (case "0<x!1&x!1<3/4")
   (("1"
     (flatten)
     (lemma "both_sides_div_pos_lt2" ("pz" "1" "py" "x!1" "px" "3/4"))
     (rewrite "div_div1")
     (assert))
    ("2" (assert))))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: log
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (case "3<=pcx!1(2)")
   (("1"
     (hide 1)
     (typepred "pcx!1")
     (expand "cauchy_posreal?")
     (skosimp)
     (expand "cauchy_gt_quarter?")
     (inst + "x!1")
     (expand "cauchy_prop")
     (inst - "2")
     (rewrite "expt_x2")
     (flatten)
     (assert))
    ("2" (assert))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: exp
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (expand "cauchy_exp_series")
   (expand "expT")
   (case-replace "n!1=0")
   (("1"
     (expand "factorial")
     (lemma "inv_lemma" ("nzx" "1" "nzcx" "cauchy_int(1)"))
     (rewrite "int_lemma")
     (assert))
    ("2"
     (assert)
     (rewrite "expt_1i")
     (lemma "inv_lemma"
      ("nzx" "factorial(n!1)" "nzcx" "cauchy_int(factorial(n!1))"))
     (rewrite "int_lemma"))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: exp
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (expand "exp_estimate")
   (lemma "powerseries_lemma"
    ("x"
     "x!1"
     "xs"
     "expT(1)"
     "cx"
     "cx!1"
     "cxs"
     "cauchy_exp_series"
     "m"
     "n!1"))
   (replace -2)
   (lemma "exp_series_lemma")
   (replace -1)
   (expand "powerseries")
   (case-replace
    "(LAMBDA (i:nat):
                              IF i = 0 THEN expT(1)(i)
                              ELSE expT(1)(i) * x!1 ^ i
                              ENDIF)=expT(x!1)")
   (hide-all-but 1)
   (apply-extensionality :hide? t)
   (expand "expT")
   (case-replace "x!2=0")
   (assert)
   (rewrite "expt_1i")
   (assert))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: exp
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (expand "cauchy_prop" 1)
   (skosimp)
   (lemma "exp_estimate_lemma" ("x" "sx!1" "cx" "csx!1" "n" "p!1+3"))
   (assert)
   (expand "cauchy_exp_dr")
   (expand "cauchy_prop" -1)
   (inst - "2+p!1")
   (name-replace "CPS"
    "cauchy_powerseries(csx!1, cauchy_exp_series, 3 + p!1)(2 + p!1)")
   (flatten)
   (case "abs(exp_estimate(sx!1,3+p!1)*2^p!1-CPS/4)<1/4")
   (("1"
     (hide -2 -3)
     (lemma "lemma_A2" ("r" "round(CPS / 4)" "p" "CPS" "q" "4"))
     (assert)
     (flatten)
     (case "abs(CPS/4-round(CPS / 4))<=1/2")
     (("1"
       (hide -2 -3)
       (case "abs(exp_estimate(sx!1, 3 + p!1) * 2 ^ p!1 - round(CPS / 4)) < 3 / 4")
       (("1"
         (hide -2 -3)
         (name-replace "RR" "round(CPS / 4)")
         (lemma "exp_estimate_bnd" ("x" "sx!1" "n" "3+p!1"))
         (case "abs((exp(sx!1) - exp_estimate(sx!1, 3 + p!1))*2^p!1) <= 1/4")
         (("1" (hide -2 -4) (name-replace "EXP_" "exp(sx!1)") (assert))
          ("2"
           (hide-all-but (-1 1))
           (lemma "abs_mult"
            ("x"
             "exp(sx!1) - exp_estimate(sx!1, 3 + p!1)"
             "y"
             "2 ^ p!1"))
           (replace -1)
           (expand "abs" 1 2)
           (hide -1)
           (case "max(exp(sx!1), 1) * abs(sx!1) ^ (3 + p!1 + 1) /
                                        factorial(3 + p!1 + 1) <= 1/(4*2^p!1)")
           (("1"
             (name-replace "LHS"
              "abs(exp(sx!1) - exp_estimate(sx!1, 3 + p!1))")
             (name-replace "RHS"
              "max(exp(sx!1), 1) * abs(sx!1) ^ (3 + p!1 + 1) /
                                 factorial(3 + p!1 + 1)")
             (rewrite "div_mult_pos_le2" 1)
             (rewrite "div_mult_pos_le2" -1)
             (lemma "both_sides_times_pos_le1"
              ("pz" "4 * 2 ^ p!1" "x" "LHS" "y" "RHS"))
             (assert))
            ("2"
             (hide-all-but 1)
             (case "max(exp(sx!1), 1) * abs(sx!1) ^ (3 + p!1 + 1)<exp(1)")
             (("1"
               (case "12 * 2 ^ p!1 <= factorial(4 + p!1)")
               (("1"
                 (case "exp(1)<3")
                 (("1"
                   (case-replace "sx!1=0")
                   (("1"
                     (expand "abs")
                     (expand "^" 1 1)
                     (expand "expt")
                     (assert))
                    ("2"
                     (lemma "lt_div_lt_pos2"
                      ("nnx"
                       "max(exp(sx!1), 1) * abs(sx!1) ^ (3 + p!1 + 1)"
                       "y"
                       "3"
                       "pz"
                       "12 * 2 ^ p!1"
                       "w"
                       "factorial(4 + p!1)"))
                     (assert))))
                  ("2"
                   (hide-all-but 1)
                   (lemma "exp_strict_increasing")
                   (expand "strict_increasing?")
                   (inst - "1" "ln(3)")
                   (rewrite "exp_ln")
                   (split -1)
                   (("1" (propax))
                    ("2"
                     (hide 2)
                     (lemma "ln_bounds" ("px" "3" "n" "4"))
                     (name-replace "LN3" "ln(3)")
                     (grind))))))
                ("2"
                 (hide-all-but 1)
                 (case "forall (m:nat): 12*2^m<factorial(4+m)")
                 (("1" (inst - "p!1") (assert))
                  ("2"
                   (hide 2)
                   (induct "m")
                   (("1" (grind))
                    ("2"
                     (skosimp*)
                     (rewrite "expt_plus")
                     (expand "factorial" 1)
                     (assert))))))))
              ("2"
               (hide 2)
               (case-replace "sx!1=0")
               (("1"
                 (rewrite "exp_0")
                 (expand "max")
                 (expand "abs")
                 (expand "^")
                 (expand "expt")
                 (assert))
                ("2"
                 (lemma "exp_strict_increasing")
                 (expand "strict_increasing?")
                 (inst - "sx!1" "1")
                 (assert)
                 (lemma "both_sides_expt_pos_lt"
                  ("px" "abs(sx!1)" "py" "1" "pm" "4+p!1"))
                 (rewrite "expt_1i")
                 (flatten)
                 (hide -1)
                 (split -1)
                 (("1"
                   (lemma "both_sides_times_pos_lt1"
                    ("pz"
                     "max(exp(sx!1), 1)"
                     "x"
                     "abs(sx!1) ^ (4 + p!1)"
                     "y"
                     "1"))
                   (assert)
                   (case "max(exp(sx!1), 1)<=e")
                   (("1" (assert))
                    ("2"
                     (hide-all-but (-3 1))
                     (name-replace "EXP_" "exp(sx!1)")
                     (expand "max")
                     (case-replace "EXP_ < 1")
                     (("1"
                       (lemma "exp_strict_increasing")
                       (expand "strict_increasing?")
                       (inst - "0" "1")
                       (assert))
                      ("2" (assert))))))
                  ("2" (hide-all-but 1) (grind))))))))))))
        ("2"
         (hide -3 2)
         (name-replace "RR" "round(CPS / 4)")
         (name-replace "P2" "2^p!1")
         (name-replace "EST" "exp_estimate(sx!1, 3 + p!1)")
         (grind))))
      ("2" (hide -3 -4 2) (name-replace "RR" "round(CPS / 4)") (grind))))
    ("2"
     (hide -3 2)
     (rewrite "expt_plus")
     (rewrite "expt_x2")
     (name-replace "EST" "exp_estimate(sx!1, 3 + p!1)")
     (name-replace "P2" "2^p!1")
     (grind))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: exp
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (expand "cauchy_exp")
   (name "N" "cauchy_div(cx!1, cauchy_ln2)(0)")
   (replace -1)
   (lemma "mul_lemma"
    ("x" "N" "cx" "cauchy_int(N)" "y" "ln(2)" "cy" "cauchy_ln2"))
   (rewrite "int_lemma")
   (rewrite "cauchy_ln2_lemma")
   (lemma "sub_lemma"
    ("x"
     "x!1"
     "cx"
     "cx!1"
     "y"
     "N * ln(2)"
     "cy"
     "cauchy_mul(cauchy_int(N), cauchy_ln2)"))
   (assert)
   (case "0<ln(2)&ln(2)<1")
   (("1"
     (flatten)
     (lemma "div_lemma"
      ("x" "x!1" "cx" "cx!1" "nzy" "ln(2)" "nzcy" "cauchy_ln2"))
     (("1"
       (rewrite "cauchy_ln2_lemma")
       (assert)
       (expand "cauchy_prop" -1)
       (inst - "0")
       (rewrite "expt_x0")
       (replace -6)
       (flatten)
       (assert)
       (rewrite "div_mult_pos_lt1")
       (rewrite "div_mult_pos_lt2")
       (lemma "exp_dr_lemma"
        ("sx"
         "x!1 - N * ln(2)"
         "csx"
         "cauchy_sub(cx!1, cauchy_mul(cauchy_int(N), cauchy_ln2))"))
       (("1"
         (assert)
         (name-replace "EXP_"
          "cauchy_exp_dr(cauchy_sub(cx!1,
                                                             cauchy_mul
                                                             (cauchy_int(N), cauchy_ln2)))")
         (lemma "trichotomy" ("x" "N"))
         (split -1)
         (("1"
           (assert)
           (lemma "lemma_mul2n"
            ("x" "exp(x!1 - N * ln(2))" "cx" "EXP_" "n" "N"))
           (assert)
           (expand "mul2n")
           (rewrite "exp_diff" -1)
           (rewrite "exp_scal" -1)
           (assert)
           (rewrite "exp_ln")
           (assert))
          ("2" (assert))
          ("3"
           (assert)
           (lemma "lemma_div2n"
            ("x" "exp(x!1 - N * ln(2))" "cx" "EXP_" "n" "-N"))
           (assert)
           (expand "div2n")
           (rewrite "exp_diff")
           (rewrite "exp_scal")
           (rewrite "exp_ln")
           (rewrite "div_div2")
           (lemma "expt_plus" ("n0x" "2" "i" "N" "j" "-N"))
           (rewrite "expt_x0")
           (replace -1 -2 rl)
           (assert))))
        ("2" (assert))
        ("3"
         (expand "cauchy_smallreal?")
         (inst + "x!1 - N * ln(2)")
         (assert))))
      ("2" (assert))))
    ("2"
     (hide-all-but 1)
     (lemma "ln_bounds" ("px" "2" "n" "2"))
     (name-replace "LN2" "ln(2)")
     (grind))))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: exp
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "inv_lemma"
    ("nzx" "factorial(n!1)" "nzcx" "cauchy_int(factorial(n!1))"))
   (rewrite "int_lemma")
   (expand "cauchy_nnreal?")
   (inst + "1 / factorial(n!1)"))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: exp
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (expand "cauchys_real?")
   (lemma "exp_series_lemma")
   (inst + "expT(1)")
   (expand "cauchys_prop")
   (propax))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: exp
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (lemma "exp_series_lemma")
   (expand "cauchys_real?")
   (inst + "expT(1)")
   (expand "cauchys_prop")
   (propax))


proof_type: j_proof
decl_type: tcc
library: exact_real_arith
theory: exp
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (typepred "csx!1")
   (expand "cauchy_smallreal?")
   (skosimp)
   (lemma "exp_dr_lemma" ("csx" "csx!1" "sx" "sx!1"))
   (expand "cauchy_posreal?")
   (inst + "exp(sx!1)")
   (assert))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: exp
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (typepred "cx!1")
   (expand "cauchy_real?")
   (skosimp)
   (lemma "div_lemma"
    ("x" "x!1" "cx" "cx!1" "nzy" "ln(2)" "nzcy" "cauchy_ln2"))
   (("1"
     (rewrite "cauchy_ln2_lemma")
     (assert)
     (expand "cauchy_prop" -1)
     (inst - "0")
     (replace -3 * rl)
     (rewrite "expt_x0")
     (flatten)
     (lemma "mul_lemma"
      ("x" "n!1" "cx" "cauchy_int(n!1)" "y" "ln(2)" "cy" "cauchy_ln2"))
     (rewrite "int_lemma")
     (rewrite "cauchy_ln2_lemma")
     (lemma "sub_lemma"
      ("x"
       "x!1"
       "cx"
       "cx!1"
       "y"
       "n!1 * ln(2)"
       "cy"
       "cauchy_mul(cauchy_int(n!1), cauchy_ln2)"))
     (assert)
     (replace -8 * rl)
     (rewrite "div_mult_pos_lt2" -3)
     (("1"
       (rewrite "div_mult_pos_lt1" -4)
       (("1"
         (case "ln(2)<1")
         (("1"
           (expand "cauchy_smallreal?")
           (inst + "x!1 - n!1 * ln(2)")
           (assert))
          ("2"
           (hide-all-but 1)
           (lemma "ln_bounds" ("px" "2" "n" "2"))
           (flatten)
           (hide -1)
           (name-replace "LN2" "ln(2)")
           (grind))))
        ("2"
         (lemma "ln_strict_increasing")
         (expand "strict_increasing?")
         (inst - "1" "2")
         (assert))))
      ("2"
       (lemma "ln_strict_increasing")
       (expand "strict_increasing?")
       (inst - "1" "2")
       (assert))))
    ("2"
     (lemma "ln_strict_increasing")
     (expand "strict_increasing?")
     (inst - "1" "2")
     (assert))))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: exp
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (hide 1)
   (case "0<ln(2)&ln(2)<1")
   (("1"
     (flatten)
     (typepred "cx!1")
     (expand "cauchy_real?")
     (skosimp)
     (lemma "div_lemma"
      ("x" "x!1" "cx" "cx!1" "nzy" "ln(2)" "nzcy" "cauchy_ln2"))
     (("1"
       (rewrite "cauchy_ln2_lemma")
       (assert)
       (expand "cauchy_prop" -1)
       (inst - "0")
       (rewrite "expt_x0")
       (replace -5 * rl)
       (flatten)
       (assert)
       (rewrite "div_mult_pos_lt2" -1)
       (rewrite "div_mult_pos_lt1" -2)
       (lemma "mul_lemma"
        ("x" "n!1" "cx" "cauchy_int(n!1)" "y" "ln(2)" "cy" "cauchy_ln2"))
       (rewrite "int_lemma")
       (rewrite "cauchy_ln2_lemma")
       (lemma "sub_lemma"
        ("x"
         "x!1"
         "cx"
         "cx!1"
         "y"
         "n!1 * ln(2)"
         "cy"
         "cauchy_mul(cauchy_int(n!1), cauchy_ln2)"))
       (assert)
       (replace -10 * rl)
       (expand "cauchy_smallreal?")
       (inst + "x!1 - n!1 * ln(2)"))
      ("2" (assert))))
    ("2"
     (hide-all-but 1)
     (lemma "ln_bounds" ("px" "2" "n" "1"))
     (name-replace "LN2" "ln(2)")
     (grind))))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: exp
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (case-replace "n!1=0")
   (("1"
     (hide -1 1 2)
     (lemma "mul_lemma"
      ("x" "0" "cx" "cauchy_int(0)" "y" "ln(2)" "cy" "cauchy_ln2"))
     (rewrite "int_lemma")
     (rewrite "cauchy_ln2_lemma")
     (lemma "unique_cauchy_zero3"
      ("cx" "cauchy_mul(cauchy_int(0), cauchy_ln2)"))
     (assert)
     (replace -1)
     (typepred "cx!1")
     (expand "cauchy_real?")
     (skosimp)
     (lemma "sub_lemma"
      ("x" "x!1" "cx" "cx!1" "y" "0" "cy" "cauchy_zero"))
     (lemma "unique_cauchy_zero" ("x" "0"))
     (assert)
     (hide -1)
     (replace -6 * rl)
     (hide -3 -4 -6)
     (lemma "div_lemma"
      ("x" "x!1" "cx" "cx!1" "nzy" "ln(2)" "nzcy" "cauchy_ln2"))
     (("1"
       (rewrite "cauchy_ln2_lemma")
       (assert)
       (expand "cauchy_prop" -1)
       (inst - "0")
       (rewrite "expt_x0")
       (replace -4 * rl)
       (flatten)
       (assert)
       (rewrite "div_mult_pos_lt2" -1)
       (("1"
         (rewrite "div_mult_pos_lt1" -2)
         (("1"
           (case "ln(2)<1")
           (("1" (expand "cauchy_smallreal?") (inst + "x!1") (assert))
            ("2"
             (hide-all-but 1)
             (lemma "ln_bounds" ("px" "2" "n" "1"))
             (name-replace "LN2" "ln(2)")
             (grind))))
          ("2"
           (lemma "ln_strict_increasing")
           (expand "strict_increasing?")
           (inst - "1" "2")
           (assert))))
        ("2"
         (lemma "ln_strict_increasing")
         (expand "strict_increasing?")
         (inst - "1" "2")
         (assert))))
      ("2"
       (lemma "ln_strict_increasing")
       (expand "strict_increasing?")
       (inst - "1" "2")
       (assert))))
    ("2" (assert))))


proof_type: j_proof
decl_type: tcc
library: exact_real_arith
theory: exp
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (typepred "cx!1")
   (expand "cauchy_real?")
   (skosimp)
   (lemma "exp_lemma" ("x" "x!1" "cx" "cx!1"))
   (assert)
   (expand "cauchy_posreal?")
   (inst + "exp(x!1)"))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: hyperbolicx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (expand "sinh")
   (expand "cauchy_sinh")
   (lemma "exp_lemma" ("x" "x!1" "cx" "cx!1"))
   (lemma "neg_lemma" ("x" "x!1" "cx" "cx!1"))
   (assert)
   (lemma "exp_lemma" ("x" "-x!1" "cx" "cauchy_neg(cx!1)"))
   (assert)
   (lemma "sub_lemma"
    ("x"
     "exp(x!1)"
     "cx"
     "cauchy_exp(cx!1)"
     "y"
     "exp(-x!1)"
     "cy"
     "cauchy_exp(cauchy_neg(cx!1))"))
   (assert)
   (lemma "lemma_div2n"
    ("x"
     "exp(x!1) - exp(-x!1)"
     "cx"
     "cauchy_sub(cauchy_exp(cx!1),cauchy_exp(cauchy_neg(cx!1)))"
     "n"
     "1"))
   (assert)
   (expand "div2n")
   (rewrite "expt_x1"))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: hyperbolicx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (expand "cauchy_cosh")
   (expand "cosh")
   (lemma "neg_lemma" ("x" "x!1" "cx" "cx!1"))
   (assert)
   (lemma "exp_lemma" ("x" "x!1" "cx" "cx!1"))
   (lemma "exp_lemma" ("x" "-x!1" "cx" "cauchy_neg(cx!1)"))
   (assert)
   (lemma "add_lemma"
    ("x"
     "exp(x!1)"
     "cx"
     "cauchy_exp(cx!1)"
     "y"
     "exp(-x!1)"
     "cy"
     "cauchy_exp(cauchy_neg(cx!1))"))
   (assert)
   (lemma "lemma_div2n"
    ("x"
     "exp(-x!1) + exp(x!1)"
     "cx"
     "cauchy_add(cauchy_exp(cx!1),cauchy_exp(cauchy_neg(cx!1)))"
     "n"
     "1"))
   (assert)
   (expand "div2n")
   (rewrite "expt_x1"))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: hyperbolicx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (expand "tanh")
   (expand "cauchy_tanh")
   (lemma "sinh_lemma" ("x" "x!1" "cx" "cx!1"))
   (lemma "cosh_lemma" ("x" "x!1" "cx" "cx!1"))
   (assert)
   (lemma "div_lemma"
    ("x"
     "sinh(x!1)"
     "cx"
     "cauchy_sinh(cx!1)"
     "nzy"
     "cosh(x!1)"
     "nzcy"
     "cauchy_cosh(cx!1)"))
   (assert))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: hyperbolicx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (expand "sech")
   (expand "cauchy_sech")
   (lemma "cosh_lemma" ("x" "x!1" "cx" "cx!1"))
   (assert)
   (lemma "inv_lemma" ("nzx" "cosh(x!1)" "nzcx" "cauchy_cosh(cx!1)"))
   (assert))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: hyperbolicx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (expand "cauchy_coth")
   (expand "coth")
   (lemma "sinh_lemma" ("x" "nzx!1" "cx" "cnzx!1"))
   (lemma "cosh_lemma" ("x" "nzx!1" "cx" "cnzx!1"))
   (assert)
   (expand "tanh")
   (rewrite "div_div1")
   (("1"
     (assert)
     (lemma "div_lemma"
      ("x"
       "cosh(nzx!1)"
       "cx"
       "cauchy_cosh(cnzx!1)"
       "nzy"
       "sinh(nzx!1)"
       "nzcy"
       "cauchy_sinh(cnzx!1)"))
     (assert))
    ("2"
     (hide-all-but 1)
     (lemma "sinh_0")
     (lemma "sinh_strict_increasing")
     (expand "strict_increasing?")
     (lemma "trichotomy" ("x" "nzx!1"))
     (split -1)
     (("1" (inst - "0" "nzx!1") (assert)) ("2" (assert))
      ("3" (inst - "nzx!1" "0") (assert))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: hyperbolicx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (lemma "sinh_lemma" ("x" "nzx!1" "cx" "cnzx!1"))
   (assert)
   (expand "cauchy_csch")
   (expand "csch")
   (lemma "inv_lemma" ("nzx" "sinh(nzx!1)" "nzcx" "cauchy_sinh(cnzx!1)"))
   (assert))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: hyperbolicx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (expand "cauchy_asinh")
   (expand "asinh")
   (lemma "mul_lemma" ("x" "x!1" "cx" "cx!1" "y" "x!1" "cy" "cx!1"))
   (assert)
   (rewrite "sq_rew")
   (lemma "add_lemma"
    ("x"
     "sq(x!1)"
     "cx"
     "cauchy_mul(cx!1, cx!1)"
     "y"
     "1"
     "cy"
     "cauchy_int(1)"))
   (rewrite "int_lemma")
   (assert)
   (lemma "sqrt_lemma"
    ("nnx"
     "1 + sq(x!1)"
     "nncx"
     "cauchy_add(cauchy_mul(cx!1, cx!1), cauchy_int(1))"))
   (("1"
     (assert)
     (lemma "add_lemma"
      ("x"
       "x!1"
       "cx"
       "cx!1"
       "y"
       "sqrt(1 + sq(x!1))"
       "cy"
       "cauchy_sqrt(cauchy_add(cauchy_mul(cx!1, cx!1),
                                                cauchy_int(1)))"))
     (assert)
     (lemma "ln_lemma"
      ("px"
       "sqrt(1 + sq(x!1)) + x!1"
       "pcx"
       "cauchy_add(cx!1,
                                    cauchy_sqrt(cauchy_add
                                                (cauchy_mul(cx!1, cx!1),
                                                 cauchy_int(1))))"))
     (("1" (assert))
      ("2"
       (hide-all-but 1)
       (lemma "sqrt_lt" ("nny" "sq(x!1)" "nnz" "1+sq(x!1)"))
       (case "x!1>=0")
       (("1" (rewrite "sqrt_sq") (assert))
        ("2" (rewrite "sqrt_sq_neg") (assert))))))
    ("2" (expand "cauchy_nnreal?") (inst + "1+sq(x!1)"))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: hyperbolicx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (expand "cauchy_acosh")
   (expand "acosh")
   (lemma "mul_lemma"
    ("x" "ge1x!1" "cx" "cge1x!1" "y" "ge1x!1" "cy" "cge1x!1"))
   (rewrite "sq_rew")
   (assert)
   (lemma "sub_lemma"
    ("x"
     "sq(ge1x!1)"
     "cx"
     "cauchy_mul(cge1x!1, cge1x!1)"
     "y"
     "1"
     "cy"
     "cauchy_int(1)"))
   (rewrite "int_lemma")
   (assert)
   (lemma "sqrt_lemma"
    ("nnx"
     "sq(ge1x!1) - 1"
     "nncx"
     "cauchy_sub(cauchy_mul(cge1x!1, cge1x!1), cauchy_int(1))"))
   (("1"
     (assert)
     (lemma "add_lemma"
      ("x"
       "ge1x!1"
       "cx"
       "cge1x!1"
       "y"
       "sqrt(sq(ge1x!1) - 1)"
       "cy"
       "cauchy_sqrt(cauchy_sub
                                               (cauchy_mul(cge1x!1, cge1x!1),
                                                cauchy_int(1)))"))
     (assert)
     (lemma "ln_lemma"
      ("px"
       "sqrt(sq(ge1x!1) - 1) + ge1x!1"
       "pcx"
       "cauchy_add(cge1x!1,
                                    cauchy_sqrt(cauchy_sub
                                                (cauchy_mul(cge1x!1, cge1x!1),
                                                 cauchy_int(1))))"))
     (assert))
    ("2" (expand "cauchy_nnreal?") (inst + "sq(ge1x!1) - 1"))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: hyperbolicx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (expand "cauchy_atanh")
   (expand "atanh")
   (lemma "add_lemma"
    ("x" "1" "cx" "cauchy_int(1)" "y" "sx!1" "cy" "csx!1"))
   (lemma "sub_lemma"
    ("x" "1" "cx" "cauchy_int(1)" "y" "sx!1" "cy" "csx!1"))
   (rewrite "int_lemma")
   (assert)
   (lemma "div_lemma"
    ("x"
     "1 + sx!1"
     "cx"
     "cauchy_add(cauchy_int(1), csx!1)"
     "nzy"
     "1 - sx!1"
     "nzcy"
     "cauchy_sub(cauchy_int(1), csx!1)"))
   (assert)
   (lemma "ln_lemma"
    ("px"
     "(1 + sx!1) / (1 - sx!1)"
     "pcx"
     "cauchy_div(cauchy_add(cauchy_int(1), csx!1),
                                  cauchy_sub(cauchy_int(1), csx!1))"))
   (("1"
     (assert)
     (hide-all-but (-1 1))
     (lemma "lemma_div2n"
      ("x"
       "ln((1 + sx!1) / (1 - sx!1))"
       "cx"
       "cauchy_ln(cauchy_div(cauchy_add(cauchy_int(1), csx!1),
                                              cauchy_sub(cauchy_int(1), csx!1)))"
       "n"
       "1"))
     (assert)
     (expand "div2n")
     (rewrite "expt_x1"))
    ("2"
     (hide-all-but 1)
     (lemma "posreal_div_posreal_is_posreal"
      ("px" "1+sx!1" "py" "1-sx!1"))
     (assert))))


proof_type: j_proof
decl_type: tcc
library: exact_real_arith
theory: hyperbolicx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (typepred "cx!1")
   (expand "cauchy_real?")
   (skosimp)
   (lemma "sinh_lemma" ("x" "x!1" "cx" "cx!1"))
   (inst + "sinh(x!1)")
   (assert))


proof_type: j_proof
decl_type: tcc
library: exact_real_arith
theory: hyperbolicx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (typepred "cx!1")
   (expand "cauchy_real?")
   (skosimp)
   (lemma "cosh_lemma" ("x" "x!1" "cx" "cx!1"))
   (expand "cauchy_posreal?")
   (inst + "cosh(x!1)")
   (("1" (assert)) ("2" (typepred "cosh(x!1)") (assert))))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: hyperbolicx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (typepred "cnzx!1")
   (expand "cauchy_nzreal?")
   (skosimp)
   (lemma "sinh_lemma" ("x" "x!1" "cx" "cnzx!1"))
   (assert)
   (inst + "sinh(x!1)")
   (hide -1 -2)
   (typepred "x!1")
   (lemma "sinh_strict_increasing")
   (expand "strict_increasing?")
   (lemma "trichotomy" ("x" "x!1"))
   (split -1)
   (("1" (inst - "0" "x!1") (rewrite "sinh_0") (assert)) ("2" (assert))
    ("3" (inst - "x!1" "0") (rewrite "sinh_0") (assert))))


proof_type: j_proof
decl_type: tcc
library: exact_real_arith
theory: hyperbolicx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (typepred "cx!1")
   (expand "cauchy_real?")
   (skosimp)
   (lemma "tanh_lemma" ("x" "x!1" "cx" "cx!1"))
   (assert)
   (typepred "tanh(x!1)")
   (expand "cauchy_smallreal?")
   (inst + "tanh(x!1)"))


proof_type: j_proof
decl_type: tcc
library: exact_real_arith
theory: hyperbolicx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (typepred "cnzx!1")
   (expand "cauchy_nzreal?")
   (skosimp)
   (lemma "coth_lemma" ("nzx" "x!1" "cnzx" "cnzx!1"))
   (assert)
   (typepred "coth(x!1)")
   (inst + "coth(x!1)")
   (split -1)
   (("1" (assert)) ("2" (assert))))


proof_type: j_proof
decl_type: tcc
library: exact_real_arith
theory: hyperbolicx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (typepred "cnzx!1")
   (expand "cauchy_nzreal?")
   (skosimp)
   (lemma "csch_lemma" ("nzx" "x!1" "cnzx" "cnzx!1"))
   (assert)
   (inst + "csch(x!1)")
   (hide -1 -2)
   (expand "csch")
   (lemma "sinh_strict_increasing")
   (expand "strict_increasing?")
   (lemma "trichotomy" ("x" "x!1"))
   (split -1)
   (("1" (inst - "0" "x!1") (rewrite "sinh_0") (assert)) ("2" (assert))
    ("3" (inst - "x!1" "0") (rewrite "sinh_0") (assert))))


proof_type: j_proof
decl_type: tcc
library: exact_real_arith
theory: hyperbolicx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (typepred "cx!1")
   (expand "cauchy_real?")
   (skosimp)
   (lemma "sech_lemma" ("x" "x!1" "cx" "cx!1"))
   (assert)
   (expand "cauchy_posreal?")
   (inst + "sech(x!1)"))


proof_type: j_proof
decl_type: tcc
library: exact_real_arith
theory: hyperbolicx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (typepred "x!1")
   (expand "cauchy_ge1?")
   (skosimp)
   (expand "cauchy_posreal?")
   (inst + "x!2"))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: hyperbolicx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (typepred "cx!1")
   (expand "cauchy_real?")
   (skosimp)
   (expand "cauchy_nnreal?")
   (lemma "mul_lemma" ("x" "x!1" "y" "x!1" "cx" "cx!1" "cy" "cx!1"))
   (assert)
   (rewrite "sq_rew")
   (lemma "add_lemma"
    ("x"
     "sq(x!1)"
     "y"
     "1"
     "cx"
     "cauchy_mul(cx!1, cx!1)"
     "cy"
     "cauchy_int(1)"))
   (rewrite "int_lemma")
   (assert)
   (inst + "1+sq(x!1)"))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: hyperbolicx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (typepred "cx!1")
   (expand "cauchy_posreal?")
   (expand "cauchy_real?")
   (skosimp)
   (lemma "mul_lemma" ("x" "x!1" "y" "x!1" "cx" "cx!1" "cy" "cx!1"))
   (rewrite "sq_rew")
   (assert)
   (lemma "add_lemma"
    ("x"
     "sq(x!1)"
     "y"
     "1"
     "cx"
     "cauchy_mul(cx!1, cx!1)"
     "cy"
     "cauchy_int(1)"))
   (rewrite "int_lemma")
   (assert)
   (case "1+sq(x!1)>=1")
   (("1"
     (lemma "sqrt_lemma"
      ("nnx"
       "1 + sq(x!1)"
       "nncx"
       "cauchy_add(cauchy_mul(cx!1, cx!1), cauchy_int(1))"))
     (("1"
       (assert)
       (lemma "add_lemma"
        ("x"
         "x!1"
         "y"
         "sqrt(1 + sq(x!1))"
         "cx"
         "cx!1"
         "cy"
         "cauchy_sqrt(cauchy_add(cauchy_mul(cx!1, cx!1),
                                                  cauchy_int(1)))"))
       (assert)
       (inst + "sqrt(1 + sq(x!1)) + x!1")
       (hide-all-but (-3 1))
       (lemma "sq_lt" ("nna" "abs(x!1)" "nnb" "sqrt(1 + sq(x!1))"))
       (rewrite "sq_abs")
       (rewrite "sq_sqrt")
       (assert))
      ("2" (expand "cauchy_nnreal?") (inst + "1+sq(x!1)"))))
    ("2" (assert))))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: hyperbolicx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (typepred "cge1x!1")
   (expand "cauchy_ge1?")
   (skosimp)
   (typepred "x!1")
   (lemma "sub_lemma"
    ("x"
     "sq(x!1)"
     "y"
     "1"
     "cx"
     "cauchy_mul(cge1x!1, cge1x!1)"
     "cy"
     "cauchy_int(1)"))
   (rewrite "int_lemma")
   (expand "sq" -1 1)
   (rewrite "mul_lemma")
   (expand "cauchy_nnreal?")
   (inst + "sq(x!1)-1")
   (lemma "sq_le" ("nna" "1" "nnb" "x!1"))
   (assert))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: hyperbolicx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (typepred "cge1x!1")
   (expand "cauchy_ge1?")
   (skosimp)
   (typepred "x!1")
   (lemma "sub_lemma"
    ("x"
     "sq(x!1)"
     "y"
     "1"
     "cx"
     "cauchy_mul(cge1x!1, cge1x!1)"
     "cy"
     "cauchy_int(1)"))
   (rewrite "int_lemma")
   (expand "sq" -1 1)
   (rewrite "mul_lemma")
   (case "sq(x!1)-1>=0")
   (("1"
     (lemma "sqrt_lemma"
      ("nnx"
       "sq(x!1)-1"
       "nncx"
       "cauchy_sub(cauchy_mul(cge1x!1, cge1x!1), cauchy_int(1))"))
     (("1"
       (assert)
       (lemma "add_lemma"
        ("x"
         "x!1"
         "cx"
         "cge1x!1"
         "y"
         "sqrt(sq(x!1) - 1)"
         "cy"
         "cauchy_sqrt(cauchy_sub(cauchy_mul(cge1x!1, cge1x!1),
                                                  cauchy_int(1)))"))
       (assert)
       (expand "cauchy_posreal?")
       (inst + "sqrt(sq(x!1) - 1) + x!1"))
      ("2" (propax))))
    ("2" (lemma "sq_le" ("nna" "1" "nnb" "x!1")) (assert))))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: hyperbolicx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (typepred "csx!1")
   (expand "cauchy_smallreal?")
   (skosimp)
   (typepred "sx!1")
   (lemma "sub_lemma"
    ("x" "1" "cx" "cauchy_int(1)" "y" "sx!1" "cy" "csx!1"))
   (rewrite "int_lemma")
   (assert)
   (expand "cauchy_nzreal?")
   (inst + "1-sx!1"))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: hyperbolicx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (typepred "csx!1")
   (expand "cauchy_smallreal?")
   (skosimp)
   (typepred "sx!1")
   (lemma "add_lemma"
    ("x" "1" "cx" "cauchy_int(1)" "y" "sx!1" "cy" "csx!1"))
   (lemma "sub_lemma"
    ("x" "1" "cx" "cauchy_int(1)" "y" "sx!1" "cy" "csx!1"))
   (rewrite "int_lemma")
   (assert)
   (lemma "div_lemma"
    ("x"
     "1+sx!1"
     "cx"
     "cauchy_add(cauchy_int(1), csx!1)"
     "nzy"
     "1 - sx!1"
     "nzcy"
     "cauchy_sub(cauchy_int(1), csx!1)"))
   (assert)
   (expand "cauchy_posreal?")
   (inst + "(1 + sx!1) / (1 - sx!1)")
   (assert)
   (lemma "posreal_div_posreal_is_posreal"
    ("px" "1 + sx!1" "py" "1 - sx!1"))
   (assert))


proof_type: j_proof
decl_type: tcc
library: exact_real_arith
theory: hyperbolicx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (typepred "cx!1")
   (expand "cauchy_real?")
   (skosimp)
   (lemma "asinh_lemma" ("x" "x!1" "cx" "cx!1"))
   (inst + "asinh(x!1)")
   (assert))


proof_type: j_proof
decl_type: tcc
library: exact_real_arith
theory: hyperbolicx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (typepred "cge1x!1")
   (expand "cauchy_ge1?")
   (skosimp)
   (lemma "acosh_lemma" ("ge1x" "x!1" "cge1x" "cge1x!1"))
   (expand "cauchy_nnreal?")
   (inst + "acosh(x!1)")
   (assert))


proof_type: j_proof
decl_type: tcc
library: exact_real_arith
theory: hyperbolicx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (typepred "csx!1")
   (expand "cauchy_smallreal?")
   (skosimp)
   (lemma "atanh_lemma" ("sx" "sx!1" "csx" "csx!1"))
   (expand "cauchy_real?")
   (inst + "atanh(sx!1)")
   (assert))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: remx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (expand "remx")
   (skosimp)
   (case-replace "i!1>=0")
   (("1" (rewrite "modx_def"))
    ("2"
     (assert)
     (lemma "both_sides_times_neg_le1" ("nz" "i!1" "y" "0" "x" "b!1-1"))
     (assert)
     (rewrite "modx_def")
     (rewrite "same_remainder")
     (expand "divides")
     (inst + "-i!1")
     (assert))))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: remx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (typepred "floor(n!1 / b!1)")
   (name-replace "N" "floor(n!1 / b!1)")
   (rewrite "div_mult_pos_le2")
   (rewrite "div_mult_pos_lt1")
   (assert))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: remx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (lemma "both_sides_times_neg_le1" ("nz" "i!1" "y" "0" "x" "b!1-1"))
   (("1" (assert)) ("2" (assert))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: atanx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (expand "atan_series_coef")
   (expand "cauchy_atan_drx_series")
   (skosimp*)
   (lemma "int_lemma" ("n" "1+2*n!1"))
   (lemma "int_lemma" ("n" "1"))
   (lemma "int_lemma" ("n" "-1"))
   (assert)
   (typepred "n!1")
   (lemma "expt_minus1" ("i" "n!1"))
   (case-replace "even?(n!1)")
   (("1"
     (assert)
     (flatten)
     (replace -2)
     (lemma "div_lemma"
      ("x"
       "1"
       "cx"
       "cauchy_int(1)"
       "nzy"
       "1+2*n!1"
       "nzcy"
       "cauchy_int(1 + 2 * n!1)"))
     (assert))
    ("2"
     (assert)
     (rewrite "even_or_odd")
     (assert)
     (replace -2)
     (lemma "div_lemma"
      ("x"
       "-1"
       "cx"
       "cauchy_int(-1)"
       "nzy"
       "1+2*n!1"
       "nzcy"
       "cauchy_int(1 + 2 * n!1)"))
     (assert))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: atanx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (typepred "vsx!1")
   (expand "cauchy_atan_drxx")
   (lemma "powerseries_lemma"
    ("x"
     "vsx!1"
     "cx"
     "cvsx!1"
     "xs"
     "atan_series_coef"
     "cxs"
     "cauchy_atan_drx_series"))
   (replace -4)
   (lemma "atan_series_lemma")
   (replace -1)
   (hide -1)
   (expand "cauchy_prop")
   (skosimp*)
   (inst -1 "2+p!1")
   (inst -1 "2+p!1")
   (flatten -1)
   (name-replace "CPS"
    "cauchy_powerseries(cvsx!1, cauchy_atan_drx_series, 2 + p!1)(2 + p!1)")
   (case-replace "2^(2+p!1)=4*2^p!1")
   (("1"
     (lemma "lemma_A2" ("r" "round(CPS/4)" "p" "CPS" "q" "4"))
     (assert)
     (flatten -1)
     (lemma "atan_series" ("x" "sqrt(vsx!1)" "n" "2+p!1"))
     (expand "atan_series_n")
     (expand "atan_series_term")
     (case "FORALL (n:nat): sqrt(vsx!1) ^ (1 + 2 * n) = sqrt(vsx!1)* vsx!1^n")
     (("1"
       (case-replace
        "sigma(0, 2 + p!1,
                         LAMBDA (n: nat):
                           (sqrt(vsx!1) ^ (1 + 2 * n)) * atan_series_coef(n)) = sqrt(vsx!1)*sigma(0, 2 + p!1,LAMBDA (n: nat): vsx!1^n * atan_series_coef(n))")
       (("1"
         (hide -1)
         (inst - "3+p!1")
         (replace -1 -2)
         (expand "powerseries")
         (case-replace
          "(LAMBDA (i:nat):
                            IF i = 0 THEN atan_series_coef(i)
                            ELSE atan_series_coef(i) * vsx!1 ^ i
                            ENDIF) = (LAMBDA (n: nat): vsx!1 ^ n * atan_series_coef(n))")
         (("1"
           (hide -1 -2 -6)
           (name-replace "PS"
            "sigma(0, 2 + p!1,
                              LAMBDA (n: nat): vsx!1 ^ n * atan_series_coef(n))")
           (name-replace "RR" "round(CPS / 4)")
           (expand "<=" -6)
           (split -6)
           (("1"
             (assert)
             (lemma "sqrt_pos" ("px" "vsx!1"))
             (lemma "expt_pos" ("px" "vsx!1" "i" "3+p!1"))
             (lemma "sqrt_lt" ("nny" "vsx!1" "nnz" "sq(1/2)"))
             (rewrite "sqrt_sq")
             (expand "sq" -1)
             (rewrite "abs_mult" -5)
             (expand "abs" -5 2)
             (expand "abs" -5 2)
             (assert)
             (lemma "both_sides_div_pos_le1"
              ("x"
               "abs(atan(sqrt(vsx!1)) - sqrt(vsx!1) * PS)"
               "y"
               "(sqrt(vsx!1) * vsx!1 ^ (3 + p!1)) / (7 + 2 * p!1)"
               "pz"
               "sqrt(vsx!1)"))
             (replace -1 -6 rl)
             (hide -1)
             (case-replace
              "(sqrt(vsx!1) * vsx!1 ^ (3 + p!1)) / (7 + 2 * p!1) / sqrt(vsx!1) = vsx!1 ^ (3 + p!1) / (7 + 2 * p!1)")
             (("1"
               (hide -1)
               (case-replace
                "abs(atan(sqrt(vsx!1)) - sqrt(vsx!1) * PS) / sqrt(vsx!1) = abs(atan(sqrt(vsx!1)) / sqrt(vsx!1) -PS)")
               (("1"
                 (hide -1)
                 (name-replace "TMP1" "atan(sqrt(vsx!1)) / sqrt(vsx!1)")
                 (lemma "both_sides_expt_pos_lt"
                  ("px" "vsx!1" "py" "1/4" "pm" "3+p!1"))
                 (assert)
                 (hide -12)
                 (case "abs(TMP1 - PS)*2^p!1 < 1/4")
                 (("1"
                   (expand "abs" -1)
                   (case "TMP1<PS")
                   (("1"
                     (assert)
                     (lemma "posreal_times_posreal_is_posreal"
                      ("px" "-(TMP1 - PS)" "py" "2 ^ p!1"))
                     (assert))
                    ("2"
                     (assert)
                     (lemma "posreal_times_posreal_is_posreal"
                      ("px" "TMP1-PS" "py" "2 ^ p!1"))
                     (assert))))
                  ("2"
                   (lemma "both_sides_div_pos_lt2"
                    ("pz"
                     "vsx!1 ^ (3 + p!1)"
                     "px"
                     "7 + 2 * p!1"
                     "py"
                     "1"))
                   (hide 2)
                   (assert)
                   (lemma "both_sides_expt_pos_lt"
                    ("px" "1/4" "py" "1/2" "pm" "3+p!1"))
                   (assert)
                   (lemma "both_sides_expt_lt1_lt"
                    ("lt1x" "1/2" "i" "3+p!1" "j" "2+p!1"))
                   (assert)
                   (lemma "inv_expt" ("n0x" "2" "i" "2+p!1"))
                   (lemma "expt_pos" ("px" "2" "i" "p!1"))
                   (lemma "div_mult_pos_lt2"
                    ("py" "2^p!1" "x" "abs(TMP1 - PS)" "z" "1/4"))
                   (replace -1 1 rl)
                   (case-replace "1 / 4 / 2 ^ p!1 = 1 / 2 ^ (2 + p!1)")
                   (("1" (assert))
                    ("2"
                     (hide-all-but (-2 1))
                     (case-replace "2 ^ (2 + p!1) = 4*2^p!1")
                     (("1" (name-replace "TMP4" "2^p!1") (assert))
                      ("2"
                       (hide-all-but 1)
                       (lemma "expt_plus" ("n0x" "2" "i" "2" "j" "p!1"))
                       (replace -1)
                       (expand "^" 1 1)
                       (expand "expt")
                       (expand "expt")
                       (expand "expt")
                       (propax))))))))
                ("2"
                 (hide-all-but (-3 1))
                 (lemma "abs_div")
                 (inst - "sqrt(vsx!1)"
                  "atan(sqrt(vsx!1)) - sqrt(vsx!1) * PS")
                 (expand "abs" -1 3)
                 (assert))))
              ("2" (hide-all-but (-3 1)) (assert))))
            ("2"
             (replace -1 * rl)
             (rewrite "sqrt_0")
             (expand "PS")
             (case-replace
              "sigma(0, 2 + p!1,
                              LAMBDA (n: nat): vsx!1 ^ n * atan_series_coef(n)) =1")
             (("1" (assert))
              ("2"
               (hide-all-but (-1 1))
               (case "FORALL (m:nat): sigma(0,m,LAMBDA (n: nat): 0 ^ n * atan_series_coef(n)) =1")
               (("1" (inst - "2+p!1") (replace -2 1 rl) (propax))
                ("2"
                 (hide -1 2)
                 (induct "m")
                 (("1"
                   (expand "sigma")
                   (expand "atan_series_coef")
                   (expand "^")
                   (expand "expt")
                   (assert))
                  ("2"
                   (skosimp*)
                   (expand "sigma" 1)
                   (replace -1 1)
                   (hide -1)
                   (expand "^")
                   (expand "expt")
                   (propax))))))))))
          ("2"
           (hide -6 -7 -2 -1 -3 -4 -10 2)
           (rewrite "extensionality" 1)
           (hide 2)
           (skosimp*)
           (case "x!1=0")
           (("1" (replace -1) (expand "^" 1) (expand "expt" 1) (assert))
            ("2" (assert))))))
        ("2"
         (hide -6 -7 -10 -2 2 -3 -4 -5)
         (case "FORALL (m:nat): sigma(0, m,
                           LAMBDA (n: nat):
                             (sqrt(vsx!1) ^ (1 + 2 * n)) * atan_series_coef(n))
                      =
                      sqrt(vsx!1) *
                       sigma(0, m, LAMBDA (n: nat): vsx!1 ^ n * atan_series_coef(n))")
         (("1" (inst - "2+p!1"))
          ("2"
           (hide 2)
           (induct "m")
           (("1"
             (expand "sigma")
             (expand "^" 1)
             (expand "expt")
             (expand "expt")
             (expand "sigma")
             (propax))
            ("2"
             (skosimp*)
             (expand "sigma" 1)
             (replace -1 1)
             (inst - "1+j!1")
             (replace -2)
             (assert))))))))
      ("2"
       (hide -1 -2 -3 -4 -5 -6 -9 2)
       (induct "n")
       (("1" (expand "^" 1) (expand "expt" 1) (expand "expt" 1) (propax))
        ("2"
         (skosimp*)
         (expand "<=" -2)
         (split -2)
         (("1"
           (lemma "expt_plus")
           (inst-cp - "1+2*j!1" "2" "sqrt(vsx!1)")
           (("1"
             (inst - "j!1" "1" "vsx!1")
             (("1"
               (replace -1)
               (replace -2)
               (replace -4)
               (rewrite "expt_x1")
               (case-replace "sqrt(vsx!1) ^ 2 = vsx!1")
               (("1" (assert) (assert))
                ("2"
                 (hide-all-but (-3 1))
                 (expand "^")
                 (expand "expt")
                 (expand "expt")
                 (expand "expt")
                 (rewrite "sq_rew"))))
              ("2" (assert))))
            ("2"
             (lemma "sqrt_pos")
             (inst - "vsx!1")
             (("1" (assert)) ("2" (assert))))))
          ("2"
           (replace -1 * rl)
           (rewrite "sqrt_0")
           (expand "^" 1)
           (expand "expt")
           (assert))))))))
    ("2"
     (hide-all-but 1)
     (lemma "expt_plus" ("n0x" "2" "i" "2" "j" "p!1"))
     (expand "^" -1 2)
     (expand "expt")
     (expand "expt")
     (expand "expt")
     (propax))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: atanx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (expand "cauchy_atan_dr")
   (lemma "cauchy_atan_drxx_prop"
    ("vsx" "sq(ssx!1)" "cvsx" "cauchy_mul(cssx!1, cssx!1)"))
   (("1"
     (lemma "mul_lemma"
      ("x" "ssx!1" "cx" "cssx!1" "y" "ssx!1" "cy" "cssx!1"))
     (case-replace "sqrt(sq(ssx!1)) = abs(ssx!1)")
     (("1"
       (replace -4)
       (rewrite "sq_eq_0")
       (expand "sq" -3)
       (replace -2)
       (lemma "mul_lemma"
        ("x"
         "ssx!1"
         "cx"
         "cssx!1"
         "y"
         "IF ssx!1 = 0 THEN 1 ELSE atan(abs(ssx!1)) / abs(ssx!1) ENDIF"
         "cy"
         "cauchy_atan_drxx(cauchy_mul(cssx!1, cssx!1))"))
       (("1"
         (assert)
         (replace -4 -1)
         (case-replace
          "ssx!1 *
                             IF ssx!1 = 0 THEN 1
                             ELSE atan(abs(ssx!1)) / abs(ssx!1)
                             ENDIF = atan(ssx!1)")
         (hide-all-but 1)
         (expand "abs")
         (lemma "trichotomy" ("x" "ssx!1"))
         (split -1)
         (("1" (assert)) ("2" (assert) (replace -1) (rewrite "atan_0"))
          ("3" (assert) (rewrite "atan_neg") (assert))))
        ("2" (hide-all-but 1) (grind))
        ("3"
         (hide 2)
         (expand "cauchy_real?")
         (inst +
          "IF ssx!1 = 0 THEN 1
                            ELSE atan(abs(ssx!1)) / abs(ssx!1)
                            ENDIF")
         (hide-all-but 1)
         (grind))))
      ("2"
       (hide-all-but 1)
       (typepred "ssx!1")
       (case "0<= ssx!1")
       (("1" (expand "abs") (rewrite "sqrt_sq") (assert))
        ("2"
         (expand "abs")
         (lemma "sq_neg")
         (inst - "ssx!1")
         (replace -1 2 rl)
         (rewrite "sqrt_sq" 2)
         (assert))))))
    ("2"
     (hide-all-but 1)
     (lemma "sq_pos")
     (inst - "ssx!1")
     (typepred "ssx!1")
     (assert)
     (case "0<=ssx!1")
     (("1"
       (lemma "sq_lt")
       (inst - "ssx!1" "1/2")
       (("1" (expand "sq" -1 2) (propax)) ("2" (assert))))
      ("2"
       (lemma "sq_neg" ("a" "ssx!1"))
       (lemma "sq_lt")
       (inst - "-ssx!1" "1/2")
       (("1" (expand "sq" -1 2) (assert)) ("2" (assert))))))
    ("3"
     (hide 2)
     (expand "cauchy_vsmallreal?")
     (inst + "sq(ssx!1)")
     (("1"
       (lemma "mul_lemma"
        ("x" "ssx!1" "cx" "cssx!1" "y" "ssx!1" "cy" "cssx!1"))
       (expand "sq" 1)
       (assert))
      ("2"
       (hide -1)
       (lemma "sq_pos" ("a" "ssx!1"))
       (assert)
       (typepred "ssx!1")
       (case "0<= ssx!1")
       (("1"
         (lemma "sq_lt" ("nna" "ssx!1" "nnb" "1/2"))
         (("1" (expand "sq" -1 2) (propax)) ("2" (assert))))
        ("2"
         (lemma "sq_neg" ("a" "ssx!1"))
         (lemma "sq_lt" ("nna" "-ssx!1" "nnb" "1/2"))
         (("1" (expand "sq" -1 2) (assert)) ("2" (assert))))))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: atanx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (expand "cauchy_pi")
   (lemma "atan_1")
   (lemma "div_lemma"
    ("x" "1" "cx" "cauchy_int(1)" "nzy" "5" "nzcy" "cauchy_int(5)"))
   (lemma "div_lemma"
    ("x" "1" "cx" "cauchy_int(1)" "nzy" "239" "nzcy" "cauchy_int(239)"))
   (rewrite "int_lemma")
   (rewrite "int_lemma")
   (rewrite "int_lemma")
   (name-replace "R5" "cauchy_div(cauchy_int(1), cauchy_int(5))")
   (name-replace "R239" "cauchy_div(cauchy_int(1), cauchy_int(239))")
   (lemma "atan_dr_lemma" ("ssx" "1/5" "cssx" "R5"))
   (lemma "atan_dr_lemma" ("ssx" "1/239" "cssx" "R239"))
   (assert)
   (hide -1 -6)
   (lemma "lemma_mul2n"
    ("x" "atan(1/5)" "cx" "cauchy_atan_dr(R5)" "n" "4"))
   (lemma "lemma_mul2n"
    ("x" "atan(1/239)" "cx" "cauchy_atan_dr(R239)" "n" "2"))
   (assert)
   (expand "mul2n")
   (rewrite "expt_x2")
   (rewrite "expt_x4")
   (lemma "sub_lemma"
    ("x"
     "16*atan(1/5)"
     "cx"
     "cauchy_mul2n(cauchy_atan_dr(R5),4)"
     "y"
     "4*atan(1/239)"
     "cy"
     "cauchy_mul2n(cauchy_atan_dr(R239),2)"))
   (assert)
   (expand "pi" 1)
   (assert)
   (expand "atan" (-1 -7))
   (assert))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: atanx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (expand "cauchy_atan")
   (case-replace "cx!1(3)<=-20")
   (("1"
     (copy -2)
     (expand "cauchy_prop" -1)
     (inst - "3")
     (rewrite "expt_x3")
     (flatten)
     (case "x!1<-19/8")
     (("1"
       (hide -2 -3 -4)
       (lemma "inv_lemma" ("nzx" "x!1" "nzcx" "cx!1"))
       (("1"
         (assert)
         (lemma "neg_lemma" ("x" "1/x!1" "cx" "cauchy_inv(cx!1)"))
         (assert)
         (lemma "atan_dr_lemma"
          ("ssx" "-(1 / x!1)" "cssx" "cauchy_neg(cauchy_inv(cx!1))"))
         (("1"
           (assert)
           (lemma "lemma_div2n" ("x" "pi" "cx" "cauchy_pi" "n" "1"))
           (rewrite "pi_lemma")
           (expand "div2n")
           (rewrite "expt_x1")
           (lemma "sub_lemma"
            ("x"
             "atan(-(1 / x!1))"
             "cx"
             "cauchy_atan_dr(cauchy_neg(cauchy_inv(cx!1)))"
             "y"
             "pi/2"
             "cy"
             "cauchy_div2n(cauchy_pi, 1)"))
           (assert)
           (lemma "atan_inv" ("px" "-x!1"))
           (replace -1)
           (assert)
           (rewrite "atan_neg" -2)
           (assert))
          ("2"
           (hide-all-but (-3 1))
           (case "-8/19<1/x!1&1/x!1<0")
           (("1" (flatten) (assert))
            ("2"
             (assert)
             (hide 2)
             (split)
             (("1" (rewrite "div_mult_neg_lt2" 1))
              ("2" (assert) (rewrite "div_mult_neg_lt1" 1))))))))
        ("2" (assert))))
      ("2" (assert))))
    ("2"
     (case-replace "cx!1(3)<=-4")
     (("1"
       (assert)
       (case "-19<=cx!1(3)")
       (("1"
         (hide 1)
         (copy -3)
         (expand "cauchy_prop" -1)
         (inst - "3")
         (rewrite "expt_x3")
         (flatten)
         (case "-20/8<x!1&x!1<-3/8")
         (("1"
           (hide -2 -3 -4 -5)
           (flatten)
           (lemma "int_lemma" ("n" "1"))
           (lemma "add_lemma"
            ("x" "x!1" "y" "1" "cx" "cx!1" "cy" "cauchy_int(1)"))
           (lemma "sub_lemma"
            ("x" "x!1" "y" "1" "cx" "cx!1" "cy" "cauchy_int(1)"))
           (assert)
           (lemma "div_lemma"
            ("x"
             "1 + x!1"
             "cx"
             "cauchy_add(cx!1, cauchy_int(1))"
             "nzy"
             "x!1 - 1"
             "nzcy"
             "cauchy_sub(cx!1, cauchy_int(1))"))
           (assert)
           (lemma "atan_dr_lemma"
            ("ssx"
             "(1 + x!1) / (x!1 - 1)"
             "cssx"
             "cauchy_div(cauchy_add(cx!1, cauchy_int(1)),
                                          cauchy_sub(cx!1, cauchy_int(1)))"))
           (("1"
             (assert)
             (hide -2 -3 -4 -5 -8)
             (lemma "lemma_div2n" ("x" "pi" "cx" "cauchy_pi" "n" "2"))
             (rewrite "pi_lemma")
             (expand "div2n")
             (rewrite "expt_x2")
             (lemma "neg_lemma"
              ("x" "pi/4" "cx" "cauchy_div2n(cauchy_pi, 2)"))
             (assert)
             (lemma "atan_plus" ("x" "x!1" "y" "1"))
             (assert)
             (lemma "atan_neg" ("x" "(1 + x!1) / (1 - x!1)"))
             (assert)
             (case-replace
              "-((1 + x!1) / (1 - x!1)) = (1 + x!1) / (x!1 - 1)")
             (("1"
               (assert)
               (expand "pi")
               (assert)
               (expand "atan" -3 1)
               (assert)
               (lemma "sub_lemma"
                ("x"
                 "-atan_value(1)"
                 "y"
                 "atan((1 + x!1) / (x!1 - 1))"
                 "cx"
                 "cauchy_neg(cauchy_div2n(cauchy_pi, 2))"
                 "cy"
                 "cauchy_atan_dr(cauchy_div(cauchy_add
                                                             (cx!1, cauchy_int(1)),
                                                             cauchy_sub
                                                             (cx!1, cauchy_int(1))))"))
               (assert))
              ("2"
               (hide-all-but 1)
               (assert)
               (lemma "times_div1" ("x" "-1" "y" "1+x!1" "n0z" "1-x!1"))
               (replace -1 1)
               (hide -1)
               (rewrite "cross_mult"))))
            ("2"
             (hide-all-but (-5 -6 1))
             (split)
             (("1" (rewrite "div_mult_neg_lt2" 1))
              ("2" (rewrite "div_mult_neg_lt1" 1))))))
          ("2" (assert))))
        ("2" (assert))))
      ("2"
       (case-replace "cx!1(3)<=3")
       (("1"
         (assert)
         (case "-3<=cx!1(3)")
         (("1"
           (hide 1 2)
           (copy -3)
           (expand "cauchy_prop" -1)
           (inst - "3")
           (rewrite "expt_x3")
           (flatten)
           (case "-1/2<x!1&x!1<1/2")
           (("1"
             (hide -2 -3 -4 -5)
             (flatten)
             (lemma "atan_dr_lemma" ("ssx" "x!1" "cssx" "cx!1"))
             (("1" (assert)) ("2" (assert))))
            ("2" (assert))))
          ("2" (assert))))
        ("2"
         (case-replace "cx!1(3)<=19")
         (("1"
           (assert)
           (case "4<=cx!1(3)")
           (("1"
             (hide 1 2 3)
             (copy -3)
             (expand "cauchy_prop" -1)
             (inst - "3")
             (flatten)
             (rewrite "expt_x3")
             (case "3/8<x!1&x!1<20/8")
             (("1"
               (hide -2 -3 -4 -5)
               (flatten)
               (lemma "int_lemma" ("n" "1"))
               (lemma "add_lemma"
                ("x" "x!1" "y" "1" "cx" "cx!1" "cy" "cauchy_int(1)"))
               (lemma "sub_lemma"
                ("x" "x!1" "y" "1" "cx" "cx!1" "cy" "cauchy_int(1)"))
               (assert)
               (lemma "div_lemma"
                ("x"
                 "x!1-1"
                 "cx"
                 "cauchy_sub(cx!1, cauchy_int(1))"
                 "nzy"
                 "1 + x!1"
                 "nzcy"
                 "cauchy_add(cx!1, cauchy_int(1))"))
               (assert)
               (lemma "atan_dr_lemma"
                ("ssx"
                 "(x!1 - 1) / (1 + x!1)"
                 "cssx"
                 "cauchy_div(cauchy_sub(cx!1, cauchy_int(1)),
                                              cauchy_add(cx!1, cauchy_int(1)))"))
               (("1"
                 (assert)
                 (hide -2 -3 -4 -5 -8)
                 (lemma "lemma_div2n"
                  ("x" "pi" "cx" "cauchy_pi" "n" "2"))
                 (rewrite "pi_lemma")
                 (expand "div2n")
                 (rewrite "expt_x2")
                 (assert)
                 (lemma "atan_minus" ("x" "x!1" "y" "1"))
                 (assert)
                 (expand "pi")
                 (assert)
                 (expand "atan" -1 2)
                 (assert)
                 (lemma "add_lemma"
                  ("x"
                   "atan_value(1)"
                   "y"
                   "atan((x!1 - 1) / (1 + x!1))"
                   "cx"
                   "cauchy_div2n(cauchy_pi, 2)"
                   "cy"
                   "cauchy_atan_dr(cauchy_div(cauchy_sub
                                                               (cx!1, cauchy_int(1)),
                                                               cauchy_add
                                                               (cx!1, cauchy_int(1))))"))
                 (assert))
                ("2"
                 (hide-all-but (-5 -6 1))
                 (split)
                 (("1" (rewrite "div_mult_pos_lt2" 1))
                  ("2" (rewrite "div_mult_pos_lt1" 1))))))
              ("2" (assert))))
            ("2" (assert))))
          ("2"
           (case "20<=cx!1(3)")
           (("1"
             (assert)
             (hide 1 2 3 4)
             (copy -2)
             (expand "cauchy_prop" -1)
             (inst - "3")
             (rewrite "expt_x3")
             (flatten)
             (case "19/8<x!1")
             (("1"
               (hide -2 -3 -4)
               (lemma "inv_lemma" ("nzx" "x!1" "nzcx" "cx!1"))
               (("1"
                 (assert)
                 (lemma "atan_dr_lemma"
                  ("ssx" "1/x!1" "cssx" "cauchy_inv(cx!1)"))
                 (("1"
                   (assert)
                   (rewrite "atan_inv")
                   (lemma "lemma_div2n"
                    ("x" "pi" "cx" "cauchy_pi" "n" "1"))
                   (rewrite "pi_lemma")
                   (expand "div2n")
                   (rewrite "expt_x1")
                   (lemma "sub_lemma"
                    ("x"
                     "pi / 2"
                     "cx"
                     "cauchy_div2n(cauchy_pi, 1)"
                     "y"
                     "pi / 2 - atan(x!1)"
                     "cy"
                     "cauchy_atan_dr(cauchy_inv(cx!1))"))
                   (assert))
                  ("2"
                   (assert)
                   (case "0<1/x!1&1/x!1<8/19")
                   (("1" (flatten) (assert))
                    ("2"
                     (assert)
                     (hide-all-but (-2 1))
                     (split)
                     (("1" (assert) (rewrite "div_mult_pos_lt2" 1))
                      ("2" (rewrite "div_mult_pos_lt1" 1))))))))
                ("2" (assert))))
              ("2" (assert))))
            ("2" (assert))))))))))))


proof_type: j_proof
decl_type: tcc
library: exact_real_arith
theory: atanx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (typepred "x!1")
   (expand "cauchy_ssmallreal?")
   (skosimp*)
   (expand "cauchy_real?")
   (inst + "x!2"))


proof_type: j_proof
decl_type: tcc
library: exact_real_arith
theory: atanx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (typepred "x!1")
   (expand "cauchy_vsmallreal?")
   (expand "cauchy_real?")
   (skosimp*)
   (inst + "x!2"))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: atanx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (expand "cauchy_nzreal?")
   (inst + "1+2*n!1")
   (expand "cauchy_prop")
   (skosimp)
   (expand "cauchy_int")
   (propax))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: atanx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (hide 1)
   (expand "cauchy_nzreal?")
   (inst + "1+2*n!1")
   (expand "cauchy_prop")
   (skosimp)
   (expand "cauchy_int")
   (propax))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: atanx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (expand "cauchys_real?")
   (inst + "atan_series_coef")
   (expand "cauchys_prop")
   (skosimp*)
   (lemma "atan_series_lemma" ("n" "n!1"))
   (propax))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: atanx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (typepred "cssx!1")
   (expand "cauchy_ssmallreal?")
   (skosimp*)
   (lemma "mul_lemma" ("x" "x!1" "y" "x!1" "cx" "cssx!1" "cy" "cssx!1"))
   (rewrite "sq_rew")
   (assert)
   (expand "cauchy_vsmallreal?")
   (typepred "x!1")
   (case "0 <= sq(x!1) & sq(x!1) < 1/4")
   (("1" (flatten -1) (inst + "sq(x!1)") (assert))
    ("2"
     (hide -3 -4 2)
     (lemma "sq_pos" ("a" "x!1"))
     (assert)
     (case "0 <= x!1")
     (("1"
       (lemma "sq_lt" ("nna" "x!1" "nnb" "1/2"))
       (("1" (expand "sq" -1 2) (propax)) ("2" (assert))))
      ("2"
       (lemma "sq_neg" ("a" "x!1"))
       (lemma "sq_lt" ("nna" "-x!1" "nnb" "1/2"))
       (("1" (expand "sq" -1 2) (assert)) ("2" (assert))))))))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: atanx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (expand "cauchy_real?")
   (typepred "cssx!1")
   (expand "cauchy_ssmallreal?")
   (skosimp*)
   (lemma "mul_lemma" ("x" "x!1" "y" "x!1" "cx" "cssx!1" "cy" "cssx!1"))
   (typepred "x!1")
   (assert)
   (rewrite "sq_rew")
   (lemma "cauchy_atan_drxx_prop"
    ("vsx" "sq(x!1)" "cvsx" "cauchy_mul(cssx!1, cssx!1)"))
   (("1"
     (assert)
     (inst +
      "IF sq(x!1) = 0 THEN 1
                        ELSE atan(sqrt(sq(x!1))) / sqrt(sq(x!1))
                        ENDIF")
     (skosimp*)
     (rewrite "sqrt_sq" -1)
     (replace -1)
     (rewrite "sq_0" 1))
    ("2"
     (hide-all-but (1 -1 -2))
     (case "0<=x!1")
     (("1"
       (lemma "sq_lt" ("nna" "x!1" "nnb" "1/2"))
       (("1" (expand "sq" -1 2) (propax)) ("2" (assert))))
      ("2"
       (lemma "sq_neg" ("a" "x!1"))
       (lemma "sq_lt" ("nna" "-x!1" "nnb" "1/2"))
       (("1" (expand "sq" -1 2) (assert)) ("2" (assert))))))
    ("3"
     (hide 2)
     (expand "cauchy_vsmallreal?")
     (case "0<=sq(x!1) & sq(x!1) < 1/4")
     (("1" (flatten -1) (inst + "sq(x!1)") (assert))
      ("2"
       (hide -3 -4 2)
       (lemma "sq_pos" ("a" "x!1"))
       (assert)
       (case "0<=x!1")
       (("1"
         (lemma "sq_lt" ("nna" "x!1" "nnb" "1/2"))
         (("1" (expand "sq" -1 2) (propax)) ("2" (assert))))
        ("2"
         (lemma "sq_neg" ("a" "x!1"))
         (lemma "sq_lt" ("nna" "-x!1" "nnb" "1/2"))
         (("1" (expand "sq" -1 2) (assert)) ("2" (assert))))))))))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: atanx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (expand "cauchy_nzreal?")
   (inst + "5")
   (expand "cauchy_int")
   (expand "cauchy_prop")
   (propax))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: atanx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (expand "cauchy_ssmallreal?")
   (inst + "1/5")
   (lemma "div_lemma"
    ("x" "1" "nzy" "5" "cx" "cauchy_int(1)" "nzcy" "cauchy_int(5)"))
   (rewrite "int_lemma")
   (rewrite "int_lemma"))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: atanx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (expand "cauchy_ssmallreal?")
   (inst + "1/239")
   (lemma "div_lemma"
    ("x" "1" "nzy" "239" "cx" "cauchy_int(1)" "nzcy" "cauchy_int(239)"))
   (rewrite "int_lemma")
   (rewrite "int_lemma"))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: atanx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (replace -1)
   (hide-all-but (-5 1))
   (typepred "cx!1")
   (expand "cauchy_nzreal?")
   (expand "cauchy_real?")
   (skosimp)
   (expand "cauchy_prop")
   (inst-cp - "3")
   (rewrite "expt_x3")
   (flatten)
   (case "x!1<-19/8")
   (("1" (inst + "x!1") (assert)) ("2" (assert))))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: atanx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (replace -1)
   (hide-all-but (-5 1))
   (typepred "cx!1")
   (expand "cauchy_real?")
   (expand "cauchy_ssmallreal?")
   (skosimp)
   (expand "cauchy_prop")
   (inst-cp - "3")
   (rewrite "expt_x3")
   (flatten)
   (case "x!1<-19/8")
   (("1"
     (inst + "-(1/x!1)")
     (("1"
       (skosimp)
       (lemma "inv_lemma" ("nzx" "x!1" "nzcx" "cx!1"))
       (("1"
         (split -1)
         (("1"
           (lemma "neg_lemma" ("x" "1/x!1" "cx" "cauchy_inv(cx!1)"))
           (assert)
           (expand "cauchy_prop")
           (inst - "p!1"))
          ("2" (expand "cauchy_prop") (propax))))
        ("2" (assert))
        ("3"
         (hide 2)
         (expand "cauchy_nzreal?")
         (inst + "x!1")
         (("1" (expand "cauchy_prop") (propax)) ("2" (assert))))))
      ("2"
       (assert)
       (rewrite "div_mult_pos_lt1" 1)
       (rewrite "div_mult_pos_lt2" 1)
       (lemma "both_sides_div_neg_lt3"
        ("nz" "-1" "nx" "x!1" "ny" "-19 / 8"))
       (assert)
       (lemma "negreal_div_negreal_is_posreal" ("nx" "-1" "ny" "x!1"))
       (assert))
      ("3" (assert))))
    ("2" (assert))))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: atanx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (case "-19 <= t!1")
   (("1"
     (replace -2)
     (hide-all-but (-1 -3 -6 2))
     (typepred "cx!1")
     (expand "cauchy_real?")
     (skosimp)
     (copy -1)
     (expand "cauchy_prop" -1)
     (inst - "3")
     (flatten)
     (rewrite "expt_x3")
     (case "-20/8<x!1&x!1<-3/8")
     (("1"
       (flatten)
       (lemma "sub_lemma"
        ("x" "x!1" "cx" "cx!1" "y" "1" "cy" "cauchy_int(1)"))
       (rewrite "int_lemma")
       (assert)
       (expand "cauchy_nzreal?")
       (inst + "x!1-1")
       (replace -8 * rl)
       (propax))
      ("2" (assert))))
    ("2" (assert))))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: atanx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (case "-19<=t!1")
   (("1"
     (replace -2)
     (hide (-2 1 -5 -7))
     (typepred "cx!1")
     (expand "cauchy_real?")
     (skosimp)
     (copy -1)
     (expand "cauchy_prop" -1)
     (inst - "3")
     (rewrite "expt_x3")
     (flatten)
     (case "-20/8<x!1&x!1<-3/8")
     (("1"
       (flatten)
       (hide -3 -4 -6 -9)
       (lemma "sub_lemma"
        ("x" "x!1" "cx" "cx!1" "y" "1" "cy" "cauchy_int(1)"))
       (lemma "add_lemma"
        ("x" "x!1" "cx" "cx!1" "y" "1" "cy" "cauchy_int(1)"))
       (assert)
       (rewrite "int_lemma")
       (lemma "div_lemma"
        ("x"
         "1+x!1"
         "cx"
         "cauchy_add(cx!1, cauchy_int(1))"
         "nzy"
         "x!1-1"
         "nzcy"
         "cauchy_sub(cx!1, cauchy_int(1))"))
       (("1"
         (assert)
         (expand "cauchy_ssmallreal?")
         (inst + "(1 + x!1) / (x!1 - 1)")
         (("1" (assert))
          ("2"
           (hide-all-but (-4 -5 1))
           (lemma "div_mult_neg_lt1"
            ("ny" "x!1-1" "z" "1+x!1" "x" "1/2"))
           (lemma "div_mult_neg_lt2"
            ("ny" "x!1-1" "z" "1+x!1" "x" "-1/2"))
           (replace -1)
           (replace -2)
           (hide -1 -2)
           (assert))))
        ("2" (expand "cauchy_nzreal?") (inst + "x!1-1"))))
      ("2" (assert))))
    ("2" (assert))))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: atanx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (case "-3<=t!1")
   (("1"
     (replace -2)
     (hide-all-but (-1 -6 3))
     (typepred "cx!1")
     (expand "cauchy_real?")
     (skosimp)
     (copy -1)
     (expand "cauchy_prop" -1)
     (inst - "3")
     (rewrite "expt_x3")
     (flatten)
     (case "-1/2<x!1&x!1<1/2")
     (("1"
       (flatten)
       (expand "cauchy_ssmallreal?")
       (inst + "x!1")
       (assert))
      ("2" (assert))))
    ("2" (assert))))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: atanx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (case "4<=t!1")
   (("1"
     (replace -2)
     (typepred "cx!1")
     (expand "cauchy_real?")
     (skosimp)
     (copy -1)
     (expand "cauchy_prop" -1)
     (inst - "3")
     (rewrite "expt_x3")
     (flatten)
     (case "3/8<x!1&x!1<20/8")
     (("1"
       (flatten)
       (hide -3 -4 -6 -7 -11 -10 -12 -8 1 2 3)
       (lemma "add_lemma"
        ("x" "x!1" "cx" "cx!1" "y" "1" "cy" "cauchy_int(1)"))
       (rewrite "int_lemma")
       (assert)
       (expand "cauchy_nzreal?")
       (inst + "1+x!1")
       (assert))
      ("2" (assert))))
    ("2" (assert))))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: atanx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (case "4<=t!1")
   (("1"
     (replace -2)
     (typepred "cx!1")
     (expand "cauchy_real?")
     (skosimp)
     (copy -1)
     (expand "cauchy_prop" -1)
     (inst - "3")
     (rewrite "expt_x3")
     (flatten)
     (case "3/8<x!1&x!1<20/8")
     (("1"
       (flatten)
       (hide -3 -4 -6 -7 -10 -11 -12 1 2 3)
       (lemma "add_lemma"
        ("x" "x!1" "cx" "cx!1" "y" "1" "cy" "cauchy_int(1)"))
       (lemma "sub_lemma"
        ("x" "x!1" "cx" "cx!1" "y" "1" "cy" "cauchy_int(1)"))
       (rewrite "int_lemma")
       (assert)
       (lemma "div_lemma"
        ("x" "x!1-1" "cx" "cxm1!1" "nzy" "1+x!1" "nzcy" "cxp1!1"))
       (assert)
       (expand "cauchy_ssmallreal?")
       (inst + "(x!1 - 1) / (1 + x!1)")
       (hide-all-but (-4 -5 1))
       (rewrite "div_mult_pos_lt1")
       (rewrite "div_mult_pos_lt1")
       (lemma "div_mult_pos_lt2" ("py" "1+x!1" "z" "2*(x!1-1)" "x" "-1"))
       (assert))
      ("2" (assert))))
    ("2" (assert))))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: atanx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (case "20<=cx!1(3)")
   (("1"
     (typepred "cx!1")
     (expand "cauchy_real?")
     (skosimp)
     (copy -1)
     (expand "cauchy_prop" -1)
     (inst - "3")
     (rewrite "expt_x3")
     (flatten)
     (case "19/8<x!1")
     (("1"
       (hide -2 -3 -5 -6 -7 -8 -9 -10 1 2 3 4)
       (expand "cauchy_nzreal?")
       (inst + "x!1")
       (assert))
      ("2" (assert))))
    ("2" (assert))))


proof_type: t_proof
decl_type: tcc
library: exact_real_arith
theory: atanx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (case "20<=cx!1(3)")
   (("1"
     (hide-all-but (-1 5))
     (typepred "cx!1")
     (expand "cauchy_real?")
     (skosimp)
     (copy -1)
     (expand "cauchy_prop" -1)
     (inst - "3")
     (rewrite "expt_x3")
     (flatten)
     (case "19/8<x!1")
     (("1"
       (hide -2 -3 -5)
       (lemma "inv_lemma" ("nzx" "x!1" "nzcx" "cx!1"))
       (("1"
         (assert)
         (expand "cauchy_ssmallreal?")
         (inst + "1/x!1")
         (rewrite "div_mult_pos_lt2" 1)
         (rewrite "div_mult_pos_lt1" 1))
        ("2" (assert))))
      ("2" (assert))))
    ("2" (assert))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: sincosx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (expand "cauchy_sin_series")
   (expand "sin_term")
   (lemma "div_lemma"
    ("x"
     "(-1) ^ n!1"
     "cx"
     "cauchy_int((-1) ^ n!1)"
     "nzy"
     "factorial(1 + 2 * n!1)"
     "nzcy"
     "cauchy_int(factorial(1 + 2 * n!1))"))
   (rewrite "expt_1i")
   (rewrite "int_lemma")
   (rewrite "int_lemma")
   (assert))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: sincosx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (expand "cauchy_cos_series")
   (expand "cos_term")
   (rewrite "expt_1i")
   (case-replace "n!1=0")
   (("1"
     (rewrite "expt_x0")
     (expand "factorial")
     (lemma "div_lemma"
      ("x" "1" "cx" "cauchy_int(1)" "nzy" "1" "nzcy" "cauchy_int(1)"))
     (rewrite "int_lemma")
     (assert))
    ("2"
     (assert)
     (lemma "div_lemma"
      ("x"
       "(-1) ^ n!1"
       "nzy"
       "factorial(2 * n!1)"
       "cx"
       "cauchy_int((-1) ^ n!1)"
       "nzcy"
       "cauchy_int(factorial(2 * n!1))"))
     (rewrite "int_lemma")
     (rewrite "int_lemma"))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: sincosx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (typepred "snx!1")
   (expand "<=" -1)
   (split -1)
   (("1"
     (hide 1)
     (expand "cauchy_sin_drx")
     (lemma "powerseries_lemma"
      ("x"
       "snx!1"
       "cx"
       "csnx!1"
       "xs"
       "sin_term(1)"
       "cxs"
       "cauchy_sin_series"))
     (lemma "sin_series_lemma")
     (replace -1)
     (replace -5)
     (hide -1)
     (expand "cauchy_prop" (-1 1))
     (skosimp)
     (inst - "2+p!1")
     (inst - "2+p!1")
     (flatten)
     (name-replace "CPS"
      "cauchy_powerseries(csnx!1, cauchy_sin_series, 2 + p!1)(2 + p!1)")
     (lemma "sin_approx_sin" ("a" "sqrt(snx!1)" "n" "2+p!1"))
     (lemma "both_sides_div_pos_le1"
      ("pz"
       "sqrt(snx!1)"
       "x"
       "abs(sin(sqrt(snx!1)) - sin_approx(sqrt(snx!1), 2 + p!1))"
       "y"
       "abs(sin_term(sqrt(snx!1))(2 + p!1 + 1))"))
     (("1"
       (assert)
       (hide -2)
       (lemma "abs_div"
        ("x"
         "sin(sqrt(snx!1)) - sin_approx(sqrt(snx!1), 2 + p!1)"
         "n0y"
         "sqrt(snx!1)"))
       (expand "abs" -1 3)
       (rewrite "minus_div2" -1 :dir rl)
       (replace -1 -2 rl)
       (hide -1)
       (case-replace
        "sin_approx(sqrt(snx!1), 2 + p!1) / sqrt(snx!1)=powerseries(snx!1, sin_term(1), 2 + p!1)")
       (("1"
         (hide -1)
         (name-replace "SIN_APPROX"
          "powerseries(snx!1, sin_term(1), 2 + p!1)")
         (name-replace "SIN_" "sin(sqrt(snx!1)) / sqrt(snx!1)")
         (case "abs((SIN_ - SIN_APPROX)) <=2^-(2+p!1)")
         (("1"
           (hide -2)
           (case "abs(SIN_APPROX-CPS/2^(2+p!1))<2^-(2+p!1)")
           (("1"
             (case "abs(SIN_-CPS / 2 ^ (2 + p!1)) < 2 ^ -(1 + p!1)")
             (("1"
               (hide -2 -3 -4 -5 -8)
               (expand "round")
               (typepred "floor(1 / 2 + CPS / 4)")
               (name-replace "RR" "floor(1 / 2 + CPS / 4)")
               (lemma "abs_mult"
                ("x" "SIN_ - CPS / 2 ^ (2 + p!1)" "y" "2^p!1"))
               (expand "abs" -1 3)
               (lemma "div_cancel1" ("n0z" "2^p!1" "x" "CPS/4"))
               (rewrite "div_div2")
               (rewrite "expt_plus" -2)
               (rewrite "expt_x2")
               (replace -1 -2)
               (case "abs(2 ^ p!1 * SIN_ - CPS / 4)<1/2")
               (("1"
                 (hide -2 -3 -6 -7 -8)
                 (name-replace "P2" "2^p!1")
                 (grind))
                ("2"
                 (replace -2)
                 (name-replace "LHS" "abs(SIN_ - CPS / (4 * 2 ^ p!1))")
                 (hide-all-but (-5 1))
                 (rewrite "expt_inverse")
                 (rewrite "expt_plus")
                 (rewrite "expt_x1")
                 (rewrite "div_mult_pos_lt2")
                 (grind)
                 (grind-reals))))
              ("2"
               (hide 2)
               (name-replace "DRL1" "CPS / 2 ^ (2 + p!1)")
               (hide-all-but (-1 -2 1))
               (rewrite "expt_inverse")
               (rewrite "expt_inverse")
               (rewrite "expt_plus")
               (rewrite "expt_plus")
               (rewrite "expt_x1")
               (rewrite "expt_x2")
               (name-replace "P2" "2^p!1")
               (grind))))
            ("2"
             (hide-all-but (-2 -3 1 -4 -5))
             (rewrite "expt_inverse")
             (rewrite "expt_plus")
             (rewrite "expt_x2")
             (lemma "div_mult_pos_lt1"
              ("py" "4*2^p!1" "z" "CPS-1" "x" "SIN_APPROX"))
             (lemma "div_mult_pos_lt2"
              ("py" "4*2^p!1" "z" "CPS+1" "x" "SIN_APPROX"))
             (assert)
             (name-replace "P2" "2^p!1")
             (grind))))
          ("2"
           (case "abs(sin_term(sqrt(snx!1))(3 + p!1)) / sqrt(snx!1)<2 ^ -(2 + p!1)")
           (("1" (assert))
            ("2"
             (hide-all-but (-4 -5 1))
             (expand "sin_term")
             (rewrite "abs_div")
             (rewrite "abs_mult")
             (rewrite "abs_expt" 1 :dir rl)
             (expand "abs" 1 1)
             (rewrite "expt_1i" 1)
             (expand "abs" 1 2)
             (typepred "factorial(7 + 2 * p!1)")
             (assert)
             (hide -1)
             (lemma "expt_plus"
              ("n0x" "sqrt(snx!1)" "i" "1" "j" "6+2*p!1"))
             (rewrite "expt_x1")
             (lemma "expt_times"
              ("n0x" "sqrt(snx!1)" "i" "2" "j" "3+p!1"))
             (rewrite "expt_x2")
             (rewrite "sq_rew")
             (replace -1)
             (replace -2)
             (rewrite "abs_mult")
             (expand "abs" 1 1)
             (expand "abs" 1 1)
             (assert)
             (hide -1 -2)
             (rewrite "div_div2")
             (lemma "div_cancel1"
              ("n0z"
               "sqrt(snx!1)"
               "x"
               "snx!1^(3+p!1)/factorial(7 + 2 * p!1)"))
             (replace -1 1)
             (hide -1)
             (rewrite "div_mult_pos_lt1")
             (lemma "both_sides_expt_pos_lt"
              ("px" "snx!1" "py" "1/2" "pm" "3+p!1"))
             (assert)
             (lemma "inv_expt")
             (inst -1 "3+p!1" "2")
             (replaces -1)
             (rewrite "expt_inverse" 1)
             (case "1 / 2 ^ (3 + p!1)<1 / (2 ^ (2 + p!1)) * factorial(7 + 2 * p!1)")
             (("1" (assert))
              ("2"
               (hide 2)
               (lemma "both_sides_times_pos_lt1"
                ("pz"
                 "2 ^ (3 + p!1)"
                 "x"
                 "1 / 2 ^ (3 + p!1)"
                 "y"
                 "1 / (2 ^ (2 + p!1)) * factorial(7 + 2 * p!1)"))
               (rewrite "div_cancel2")
               (replace -1 1 rl)
               (hide -1 -2)
               (lemma "expt_inverse" ("n0x" "2" "i" "2+p!1"))
               (replace -1 1 rl)
               (assert)
               (lemma "expt_plus" ("n0x" "2" "i" "-(2+p!1)" "j" "3+p!1"))
               (rewrite "associative_mult" 1 :dir rl)
               (replace -1 1 rl)
               (assert)
               (rewrite "expt_x1")
               (lemma "factorial_incr" ("k" "2" "n" "7+2*p!1"))
               (rewrite "factorial_2")
               (assert))))))))
        ("2"
         (hide-all-but (-4 -5 1))
         (expand "powerseries")
         (expand "sin_approx")
         (lemma "sigma_scal"
          ("a"
           "1/sqrt(snx!1)"
           "F"
           "sin_term(sqrt(snx!1))"
           "low"
           "0"
           "high"
           "2+p!1"))
         (replace -1 1 rl)
         (hide -1)
         (case-replace
          "(LAMBDA (i: nat): 1 / sqrt(snx!1) * sin_term(sqrt(snx!1))(i))
                                 =
                                 (LAMBDA (i_1: nat):
                                         IF i_1 = 0 THEN sin_term(1)(i_1)
                                         ELSE sin_term(1)(i_1) * snx!1 ^ i_1
                                         ENDIF)")
         (hide 2)
         (apply-extensionality :hide? t)
         (expand "sin_term")
         (name-replace "SGN" "(-1) ^ x!1")
         (name-replace "FACTORIAL" "factorial(1 + 2 * x!1)")
         (rewrite "expt_1i")
         (rewrite "expt_plus")
         (rewrite "expt_x1")
         (rewrite "expt_times")
         (rewrite "expt_x2")
         (rewrite "sq_rew")
         (case-replace "x!1=0")
         (("1" (rewrite "expt_x0") (assert))
          ("2" (replace 1) (assert))))))
      ("2"
       (lemma "sqrt_pos" ("px" "snx!1"))
       (("1" (propax)) ("2" (assert))))))
    ("2" (assert))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: sincosx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (case-replace "sx!1=0")
   (("1"
     (rewrite "sin_0")
     (lemma "unique_cauchy_zero3")
     (inst - "csx!1")
     (assert)
     (replace -1)
     (expand "cauchy_sin_dr")
     (lemma "mul_lemma"
      ("x" "0" "y" "0" "cx" "cauchy_zero" "cy" "cauchy_zero"))
     (replace -4)
     (lemma "unique_cauchy_zero3"
      ("cx" "cauchy_mul(cauchy_zero, cauchy_zero)"))
     (assert)
     (replace -1)
     (hide -1 -2 -3 -4)
     (typepred "cauchy_sin_drx(cauchy_zero)")
     (expand "cauchy_real?")
     (skosimp)
     (lemma "mul_lemma"
      ("x"
       "0"
       "y"
       "x!1"
       "cx"
       "cauchy_zero"
       "cy"
       "cauchy_sin_drx(cauchy_zero)"))
     (assert))
    ("2"
     (typepred "sx!1")
     (lemma "sq_lt" ("nna" "abs(sx!1)" "nnb" "3*pi/16"))
     (rewrite "sq_abs")
     (flatten)
     (hide -1)
     (split -1)
     (("1"
       (lemma "pi_bnds")
       (flatten)
       (lemma "sq_lt" ("nna" "pi" "nnb" "319/100"))
       (assert)
       (case "sq(sx!1) <1/2")
       (("1"
         (hide -2 -3 -4 -5 -6 -7)
         (lemma "mul_lemma"
          ("x" "sx!1" "y" "sx!1" "cx" "csx!1" "cy" "csx!1"))
         (replace -3)
         (rewrite "sq_rew")
         (expand "cauchy_sin_dr")
         (lemma "sin_drx_lemma"
          ("snx" "sq(sx!1)" "csnx" "cauchy_mul(csx!1, csx!1)"))
         (("1"
           (assert)
           (expand "/=" -1)
           (lemma "sq_eq_0" ("a" "sx!1"))
           (assert)
           (case-replace
            "sin(sqrt(sq(sx!1))) / sqrt(sq(sx!1)) = sin(sx!1)/sx!1")
           (("1"
             (hide -1)
             (lemma "mul_lemma"
              ("x"
               "sx!1"
               "y"
               "sin(sx!1)/sx!1"
               "cx"
               "csx!1"
               "cy"
               "cauchy_sin_drx(cauchy_mul(csx!1, csx!1))"))
             (assert))
            ("2"
             (hide -1 -2 -4 4)
             (case-replace "sx!1>=0")
             (("1" (rewrite "sqrt_sq"))
              ("2"
               (rewrite "sqrt_sq_neg")
               (rewrite "sin_neg")
               (assert))))))
          ("2" (assert))))
        ("2" (hide-all-but (-1 -4 1)) (grind))))
      ("2" (hide-all-but (-1 -2 1)) (grind))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: sincosx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (expand "cauchy_cos_dr")
   (lemma "mul_lemma" ("x" "sx!1" "cx" "csx!1" "y" "sx!1" "cy" "csx!1"))
   (assert)
   (rewrite "sq_rew")
   (case "sq(sx!1)<1/2")
   (("1"
     (expand "cauchy_cos_drx")
     (name-replace "SQCX" "cauchy_mul(csx!1, csx!1)")
     (lemma "powerseries_lemma"
      ("cx"
       "SQCX"
       "cxs"
       "cauchy_cos_series"
       "x"
       "sq(sx!1)"
       "xs"
       "cos_term(1)"))
     (lemma "cos_series_lemma")
     (replace -1)
     (replace -4)
     (expand "cauchy_prop" (-2 1))
     (skosimp)
     (inst -2 "2+p!1")
     (inst -2 "2+p!1")
     (flatten)
     (name-replace "CPS"
      "cauchy_powerseries(SQCX, cauchy_cos_series, 2 + p!1)")
     (expand "powerseries")
     (case-replace
      "sigma(0, 2 + p!1,
                       LAMBDA (i:nat):
                         IF i = 0 THEN cos_term(1)(i)
                         ELSE cos_term(1)(i) * sq(sx!1) ^ i
                         ENDIF)=cos_approx(sx!1,2+p!1)")
     (("1"
       (hide -1)
       (lemma "cos_approx_cos" ("a" "sx!1" "n" "2+p!1"))
       (case "abs(cos_term(sx!1)(2 + p!1 + 1)) <= 2^-(12+p!1)")
       (("1"
         (case "abs(cos(sx!1) - cos_approx(sx!1, 2 + p!1)) <=2 ^ -(12 + p!1)")
         (("1"
           (hide -2 -3)
           (name-replace "COS_APPROX" "cos_approx(sx!1, 2 + p!1)")
           (case "abs(COS_APPROX-CPS(2 + p!1)/2 ^ (2 + p!1))<2^-(2+p!1)")
           (("1"
             (hide -4 -5)
             (hide -3)
             (case "abs(cos(sx!1)-CPS(2 + p!1) / 2 ^ (2 + p!1)) < 2 ^ -(1 + p!1)")
             (("1"
               (hide -2 -3)
               (expand "round")
               (typepred "floor(1 / 2 + CPS(2 + p!1) / 4)")
               (lemma "abs_mult"
                ("x"
                 "cos(sx!1) - CPS(2 + p!1) / 2 ^ (2 + p!1)"
                 "y"
                 "2^p!1"))
               (rewrite "expt_plus" -1)
               (rewrite "expt_x2")
               (expand "abs" -1 3)
               (assert)
               (lemma "div_cancel1" ("n0z" "2^p!1" "x" "CPS(2 + p!1)/4"))
               (rewrite "div_div2" -1)
               (replace -1)
               (hide -1)
               (case "abs(cos(sx!1) * 2 ^ p!1 - CPS(2 + p!1) / 4)<1/2")
               (("1"
                 (hide -2 -5 -7 -8)
                 (name-replace "COS2P" "cos(sx!1) * 2 ^ p!1")
                 (name-replace "CPS4" "CPS(2 + p!1) / 4")
                 (name-replace "RR" "floor(1 / 2 + CPS4)")
                 (grind))
                ("2"
                 (assert)
                 (replace -1 1)
                 (hide-all-but (-4 1))
                 (rewrite "expt_inverse" -1)
                 (rewrite "div_mult_pos_lt2" -1)
                 (rewrite "expt_plus")
                 (rewrite "expt_x1")
                 (assert))))
              ("2"
               (lemma "triangle"
                ("x"
                 "cos(sx!1) - COS_APPROX"
                 "y"
                 "COS_APPROX - CPS(2 + p!1) / 2 ^ (2 + p!1)"))
               (assert)
               (case "2 ^ -(2 + p!1)+2 ^ -(12 + p!1)<2 ^ -(1 + p!1)")
               (("1" (assert))
                ("2"
                 (hide-all-but 1)
                 (lemma "both_sides_expt_gt1_lt"
                  ("gt1x" "2" "i" "-(12+p!1)" "j" "-(2+p!1)"))
                 (assert)
                 (lemma "expt_plus" ("n0x" "2" "i" "1" "j" "-(2+p!1)"))
                 (rewrite "expt_x1")
                 (replace -1 1)
                 (assert))))))
            ("2"
             (hide-all-but (-3 -4 1))
             (rewrite "expt_inverse" 1)
             (rewrite "div_mult_pos_lt2" 1)
             (lemma "abs_mult"
              ("x"
               "COS_APPROX - CPS(2 + p!1) / 2 ^ (2 + p!1)"
               "y"
               "2 ^ (2 + p!1)"))
             (expand "abs" -1 3)
             (hide -1)
             (name-replace "P2" "2 ^ (2 + p!1)")
             (grind))))
          ("2" (assert))))
        ("2"
         (hide-all-but (-5 1))
         (expand "cos_term")
         (rewrite "abs_div")
         (rewrite "abs_mult")
         (rewrite "abs_expt" 1 :dir rl)
         (expand "abs" 1 1)
         (rewrite "expt_1i")
         (expand "abs" 1 2)
         (typepred "factorial(6 + 2 * p!1)")
         (assert)
         (hide -1)
         (rewrite "div_mult_pos_le1" 1)
         (case-replace "sx!1 ^ (6 + 2 * p!1)=sq(sx!1)^(3+p!1)")
         (("1"
           (hide -1)
           (lemma "nnreal_exp" ("x" "sq(sx!1)" "i" "3+p!1"))
           (expand "abs")
           (assert)
           (case "2^9<factorial(6)")
           (("1"
             (rewrite "expt_inverse" 1)
             (lemma "div_mult_pos_le2"
              ("py"
               "2^(12+p!1)"
               "x"
               "sq(sx!1) ^ (3 + p!1)"
               "z"
               "factorial(6 + 2 * p!1)"))
             (replace -1 1)
             (hide -1)
             (typepred "sq(sx!1)")
             (expand ">=" -1)
             (expand "<=" -1)
             (split -1)
             (("1"
               (lemma "both_sides_expt_pos_lt"
                ("px" "sq(sx!1)" "py" "1/2" "pm" "3+p!1"))
               (("1"
                 (assert)
                 (case "sq(sx!1) ^ (3 + p!1) * 2 ^ (12 + p!1) < 2^9")
                 (("1"
                   (lemma "factorial_incr" ("k" "6" "n" "6+2*p!1"))
                   (assert))
                  ("2"
                   (hide 2 -3)
                   (name-replace "SQX" "sq(sx!1)")
                   (lemma "both_sides_times_pos_lt1"
                    ("pz"
                     "2 ^ (12 + p!1)"
                     "x"
                     "SQX ^ (3 + p!1)"
                     "y"
                     "(1 / 2) ^ (3 + p!1)"))
                   (assert)
                   (lemma "expt_div"
                    ("n0x" "2" "i" "12+p!1" "j" "3+p!1"))
                   (lemma "inv_expt")
                   (inst -1 "(3 + p!1)" "2")
                   (replaces -1)
                   (assert))))
                ("2" (assert))))
              ("2"
               (replace -1 * rl)
               (expand "^" 1 1)
               (expand "expt")
               (assert))))
            ("2" (hide-all-but 1) (grind))))
          ("2"
           (hide-all-but 1)
           (case-replace "sx!1=0")
           (("1" (expand "^") (expand "expt") (assert))
            ("2"
             (lemma "expt_times" ("n0x" "sx!1" "i" "2" "j" "3+p!1"))
             (("1" (rewrite "expt_x2") (rewrite "sq_rew") (assert))
              ("2" (assert))))))))))
      ("2"
       (hide-all-but (1 -4))
       (expand "cos_approx")
       (expand "cos_term")
       (case-replace
        "(LAMBDA (i: nat):
                            IF i = 0 THEN 1
                            ELSE (-1) ^ i * 1 ^ (2 * i) / factorial(2 * i) * sq(sx!1) ^ i
                            ENDIF)
                     =(LAMBDA (n:nat):
                             IF n = 0 THEN 1
                             ELSE (-1) ^ n * sx!1 ^ (2 * n) / factorial(2 * n)
                             ENDIF)")
       (hide -1 2)
       (apply-extensionality :hide? t)
       (case-replace "x!1=0")
       (assert)
       (rewrite "expt_1i")
       (case-replace "sq(sx!1) ^ x!1 =sx!1 ^ (2 * x!1)")
       (("1" (assert))
        ("2"
         (hide-all-but 1)
         (case-replace "sx!1=0")
         (("1"
           (typepred "x!1")
           (expand "^")
           (expand "expt")
           (expand "sq")
           (assert))
          ("2"
           (rewrite "expt_times")
           (expand "^" 2 2)
           (expand "expt")
           (expand "expt")
           (expand "expt")
           (rewrite "sq_rew"))))))))
    ("2"
     (hide-all-but 1)
     (typepred "sx!1")
     (lemma "sq_lt" ("nna" "abs(sx!1)" "nnb" "3*pi/16"))
     (rewrite "sq_abs")
     (flatten -1)
     (hide -1)
     (split -1)
     (("1"
       (rewrite "sq_div")
       (rewrite "sq_times")
       (lemma "pi_bnds")
       (flatten)
       (lemma "sq_lt" ("nna" "pi" "nnb" "319/100"))
       (grind))
      ("2" (hide 2) (grind))))))


proof_type: f_proof
decl_type: formula
library: exact_real_arith
theory: sincosx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (lemma "lemma_div2n" ("x" "pi" "cx" "cauchy_pi" "n" "2"))
   (rewrite "pi_lemma")
   (expand "div2n")
   (rewrite "expt_x2")
   (lemma "lemma_div2n" ("x" "1" "cx" "cauchy_int(1)" "n" "1"))
   (rewrite "int_lemma")
   (expand "div2n")
   (rewrite "expt_x1")
   (lemma "sqrt_lemma"
    ("nnx" "1/2" "nncx" "cauchy_div2n(cauchy_int(1), 1)"))
   (("1"
     (assert)
     (hide -2)
     (lemma "div_lemma"
      ("x"
       "x!1"
       "cx"
       "cx!1"
       "nzy"
       "pi/4"
       "nzcy"
       "cauchy_div2n(cauchy_pi, 2)"))
     (("1"
       (assert)
       (rewrite "div_div1")
       (name-replace "P2" "cauchy_div2n(cauchy_pi, 2)")
       (name "S" "round(cauchy_div(cx!1,P2)(2)/4)")
       (copy -2)
       (expand "cauchy_prop" -1)
       (inst - "2")
       (rewrite "expt_x2")
       (flatten)
       (expand "round")
       (typepred "floor(1 / 2 + cauchy_div(cx!1, P2)(2) / 4)")
       (replace -5)
       (name-replace "DIV" "cauchy_div(cx!1, P2)(2)")
       (case "4*x!1/pi-3/4<S&S<4*x!1/pi+3/4")
       (("1"
         (flatten)
         (lemma "mul_lemma"
          ("x" "pi/4" "cx" "P2" "y" "S" "cy" "cauchy_int(S)"))
         (rewrite "int_lemma" -1)
         (assert)
         (lemma "sub_lemma"
          ("x"
           "x!1"
           "cx"
           "cx!1"
           "y"
           "pi/4*S"
           "cy"
           "cauchy_mul(P2, cauchy_int(S))"))
         (assert)
         (case "-3*pi/16<x!1 - pi / 4 * S&x!1 - pi / 4 * S<3*pi/16")
         (("1"
           (flatten)
           (lemma "pi_bnds")
           (flatten)
           (name "CY" "cauchy_sub(cx!1, cauchy_mul(P2, cauchy_int(S)))")
           (replace -1)
           (lemma "sin_dr_lemma" ("sx" "x!1 - pi / 4 * S" "csx" "CY"))
           (("1"
             (lemma "cos_dr_lemma" ("sx" "x!1 - pi / 4 * S" "csx" "CY"))
             (("1"
               (assert)
               (expand "DIV")
               (expand "P2")
               (expand "cauchy_sin")
               (expand "round")
               (replace -16)
               (name-replace "PI4"
                "cauchy_div2n
                                                                             (cauchy_pi, 2)")
               (replace -3)
               (name-replace "SQRT_"
                "cauchy_sqrt(cauchy_div2n(cauchy_int(1), 1))")
               (name-replace "SIN_" "cauchy_sin_dr(CY)")
               (name-replace "COS_" "cauchy_cos_dr(CY)")
               (rewrite "remx_def")
               (typepred "rem(8)(S)")
               (skosimp)
               (case-replace "rem(8)(S)=0")
               (("1"
                 (replace -3)
                 (assert)
                 (rewrite "sin_minus")
                 (lemma "cos_2k_pi" ("k" "q!1"))
                 (replace -1)
                 (lemma "sin_k_pi" ("k" "2*q!1"))
                 (replace -1)
                 (assert))
                ("2"
                 (case-replace "rem(8)(S)=1")
                 (("1"
                   (replace -3)
                   (assert)
                   (hide-all-but (-4 -5 -21 2))
                   (lemma "sin_period" ("a" "x!1-pi/4" "j" "-q!1"))
                   (lemma "cos_period" ("a" "x!1-pi/4" "j" "-q!1"))
                   (replace -1 * rl)
                   (replace -2 * rl)
                   (hide -1 -2)
                   (rewrite "sin_minus")
                   (rewrite "cos_minus")
                   (rewrite "cos_pi4")
                   (rewrite "sin_pi4")
                   (case-replace "1 / sqrt(2)=sqrt(1/2)")
                   (("1"
                     (hide -1)
                     (lemma "add_lemma"
                      ("x"
                       "cos(x!1) * sqrt(1 / 2) + sin(x!1) * sqrt(1 / 2)"
                       "cx"
                       "COS_"
                       "y"
                       "sin(x!1) * sqrt(1 / 2) - sqrt(1 / 2) * cos(x!1)"
                       "cy"
                       "SIN_"))
                     (assert)
                     (assert)
                     (lemma "mul_lemma"
                      ("x"
                       "sqrt(1 / 2)"
                       "cx"
                       "SQRT_"
                       "y"
                       "2 * (sin(x!1) * sqrt(1 / 2))"
                       "cy"
                       "cauchy_add(COS_, SIN_)"))
                     (assert))
                    ("2"
                     (assert)
                     (hide-all-but 1)
                     (lemma "sq_eq"
                      ("nna" "1 / sqrt(2)" "nnb" "sqrt(1 / 2)"))
                     (assert)
                     (hide 2)
                     (rewrite "sq_div"))))
                  ("2"
                   (hide-all-but (-1 -2 -3 -4 -20 1 2 3))
                   (case "1/sqrt(2)=sqrt(1/2)")
                   (("1"
                     (replace -3 -4)
                     (replace -3 -5)
                     (lemma "sin_period"
                      ("a" "x!1-rem(8)(S)*(pi/4)" "j" "-q!1"))
                     (lemma "cos_period"
                      ("a" "x!1-rem(8)(S)*(pi/4)" "j" "-q!1"))
                     (replace -1 * rl)
                     (replace -2 * rl)
                     (hide -1 -2 -5)
                     (rewrite "cos_minus")
                     (rewrite "sin_minus")
                     (case-replace "rem(8)(S) = 2")
                     (("1"
                       (assert)
                       (rewrite "sin_pi2")
                       (rewrite "cos_pi2")
                       (assert))
                      ("2"
                       (case-replace "rem(8)(S)=3")
                       (("1"
                         (assert)
                         (lemma "sub_lemma"
                          ("x"
                           "cos(x!1) * -(1 / sqrt(2)) + sin(x!1) * sqrt(1 / 2)"
                           "cx"
                           "COS_"
                           "y"
                           "sin(x!1) * -(1 / sqrt(2)) - sqrt(1 / 2) * cos(x!1)"
                           "cy"
                           "SIN_"))
                         (assert)
                         (replace -3)
                         (assert)
                         (lemma "mul_lemma"
                          ("x"
                           "sqrt(1 / 2)"
                           "cx"
                           "SQRT_"
                           "y"
                           "2*sin(x!1) * sqrt(1 / 2)"
                           "cy"
                           "cauchy_sub(COS_, SIN_)"))
                         (assert)
                         (rewrite "associative_mult" -1 :dir rl)
                         (rewrite "sq_rew")
                         (assert)
                         (rewrite "cos_3pi4")
                         (rewrite "sin_3pi4")
                         (lemma "sub_lemma"
                          ("x"
                           "cos(x!1) * (-1 / sqrt(2)) + sin(x!1) * (1 / sqrt(2))"
                           "cx"
                           "COS_"
                           "y"
                           "sin(x!1) * (-1 / sqrt(2)) - 1 / sqrt(2) * cos(x!1)"
                           "cy"
                           "SIN_"))
                         (assert))
                        ("2"
                         (case-replace "rem(8)(S)=4")
                         (("1"
                           (rewrite "sin_pi")
                           (rewrite "cos_pi")
                           (assert)
                           (lemma "neg_lemma"
                            ("x" "-sin(x!1)" "cx" "SIN_"))
                           (assert))
                          ("2"
                           (case-replace "rem(8)(S)=5")
                           (("1"
                             (rewrite "cos_5pi4")
                             (rewrite "sin_5pi4")
                             (case-replace "-1 / sqrt(2)=-sqrt(1/2)")
                             (("1"
                               (assert)
                               (lemma "add_lemma"
                                ("x"
                                 "cos(x!1) * -sqrt(1 / 2) + sin(x!1) * -sqrt(1 / 2)"
                                 "cx"
                                 "COS_"
                                 "y"
                                 "sin(x!1) * -sqrt(1 / 2) - -sqrt(1 / 2) * cos(x!1)"
                                 "cy"
                                 "SIN_"))
                               (assert)
                               (lemma "mul_lemma"
                                ("x"
                                 "sqrt(1/2)"
                                 "cx"
                                 "SQRT_"
                                 "y"
                                 "cos(x!1) * -sqrt(1 / 2) + 2 * (sin(x!1) * -sqrt(1 / 2)) -
                                                                                 -sqrt(1 / 2) * cos(x!1)"
                                 "cy"
                                 "cauchy_add(COS_, SIN_)"))
                               (assert)
                               (assert)
                               (case-replace
                                "2 * (sin(x!1) * sqrt(1 / 2) * -sqrt(1 / 2)) = -sin(x!1)")
                               (("1"
                                 (hide -1)
                                 (lemma
                                  "neg_lemma"
                                  ("x"
                                   "-sin(x!1)"
                                   "cx"
                                   "cauchy_mul(SQRT_, cauchy_add(COS_, SIN_))"))
                                 (assert))
                                ("2"
                                 (assert)
                                 (case
                                  "sin(x!1) * sqrt(1 / 2) * -sqrt(1 / 2) = -sin(x!1)*sq(sqrt(1/2))")
                                 (("1" (assert))
                                  ("2" (expand "sq" 1) (assert))))))
                              ("2" (assert))))
                            ("2"
                             (case-replace "rem(8)(S)=6")
                             (("1"
                               (assert)
                               (rewrite "sin_3pi2")
                               (rewrite "cos_3pi2")
                               (lemma "neg_lemma"
                                ("x" "-sin(x!1)" "cx" "COS_"))
                               (assert))
                              ("2"
                               (assert)
                               (case-replace "rem(8)(S)=7")
                               (("1"
                                 (hide 1 2 3 4 5 6 7)
                                 (lemma
                                  "sin_minus"
                                  ("a" "2*pi" "b" "pi/4"))
                                 (lemma
                                  "cos_minus"
                                  ("a" "2*pi" "b" "pi/4"))
                                 (rewrite "cos_pi4")
                                 (rewrite "sin_pi4")
                                 (replace -4)
                                 (rewrite "sin_2pi")
                                 (rewrite "cos_2pi")
                                 (assert)
                                 (replace -1)
                                 (replace -2)
                                 (hide -1 -2 -3 -4 -5)
                                 (lemma
                                  "sub_lemma"
                                  ("x"
                                   "cos(x!1) * sqrt(1 / 2) + sin(x!1) * (-1 * sqrt(1 / 2))"
                                   "cx"
                                   "COS_"
                                   "y"
                                   "sin(x!1) * sqrt(1 / 2) - -1 * sqrt(1 / 2) * cos(x!1)"
                                   "cy"
                                   "SIN_"))
                                 (assert)
                                 (lemma
                                  "mul_lemma"
                                  ("x"
                                   "sqrt(1/2)"
                                   "cx"
                                   "SQRT_"
                                   "y"
                                   "sin(x!1) * (-1 * sqrt(1 / 2)) - sin(x!1) * sqrt(1 / 2)"
                                   "cy"
                                   "cauchy_sub(COS_, SIN_)"))
                                 (assert)
                                 (rewrite "associative_mult" -1 :dir rl)
                                 (rewrite "sq_rew")
                                 (assert)
                                 (assert)
                                 (lemma
                                  "neg_lemma"
                                  ("x"
                                   "-2 * (sin(x!1) * (1 / 2))"
                                   "cx"
                                   "cauchy_mul(SQRT_, cauchy_sub(COS_, SIN_))"))
                                 (assert))
                                ("2" (assert))))))))))))))
                    ("2"
                     (hide-all-but 1)
                     (lemma "sq_eq"
                      ("nna" "1/sqrt(2)" "nnb" "sqrt(1/2)"))
                     (rewrite "sq_div")
                     (assert))))))))
              ("2" (assert))))
            ("2" (assert))
            ("3"
             (assert)
             (expand "cauchy_real_3pi16?")
             (inst + "x!1 - pi / 4 * S"))))
          ("2"
           (assert)
           (lemma "both_sides_times_pos_lt1"
            ("pz" "pi/4" "x" "4 * x!1 / pi - 3 / 4" "y" "S"))
           (lemma "both_sides_times_pos_lt1"
            ("pz" "pi/4" "y" "4 * x!1 / pi + 3 / 4" "x" "S"))
           (assert))))
        ("2" (assert))))
      ("2" (expand "cauchy_nzreal?") (inst + "pi/4"))))
    ("2" (expand "cauchy_nnreal?") (inst + "1/2"))))


