# Proofs

proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrix_lemmas
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (lemma "product_rows")
   (inst -1 "A!1*B!1" "C!1")
   (("1"
     (replace -1 1)
     (hide -1)
     (lemma "product_rows")
     (inst -1 "A!1" "B!1"))
    ("2"
     (hide 2)
     (lemma "product_cols")
     (inst -1 "A!1" "B!1")
     (replace -1 1)
     (hide -1)
     (typepred "C!1")
     (propax))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrix_lemmas
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (lemma "product_cols")
   (inst -1 "A!1*B!1" "C!1")
   (hide 2)
   (lemma "product_cols")
   (inst -1 "A!1" "B!1")
   (replace -1 1)
   (typepred "C!1")
   (propax))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrix_lemmas
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (lemma "product_rows2")
   (inst -1 "A!1*B!1" "C!1" "D!1")
   (("1"
     (replace -1)
     (hide -1)
     (lemma "product_rows")
     (inst -1 "A!1" "B!1"))
    ("2"
     (hide 2)
     (lemma "product_cols")
     (inst -1 "A!1" "B!1")
     (replace -1)
     (hide -1)
     (typepred "C!1")
     (propax))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrix_lemmas
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (lemma "product_cols2")
   (inst -1 "A!1*B!1" "C!1" "D!1")
   (lemma "product_cols")
   (inst -1 "A!1" "B!1")
   (replace -1 1)
   (typepred "C!1")
   (propax))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrix_lemmas
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (lemma "product_rows3")
   (inst -1 "A!1*B!1" "C!1" "D!1" "E!1")
   (("1"
     (replace -1)
     (hide -1)
     (lemma "product_rows")
     (inst -1 "A!1" "B!1"))
    ("2"
     (lemma "product_cols")
     (inst -1 "A!1" "B!1")
     (replace -1)
     (typepred "C!1")
     (propax))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrix_lemmas
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: finished
script:
  (""
   (skosimp)
   (lemma "product_cols3")
   (inst -1 "A!1*B!1" "C!1" "D!1" "E!1")
   (lemma "product_cols")
   (inst -1 "A!1" "B!1")
   (replace -1)
   (typepred "C!1")
   (propax))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrix_lemmas
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skolem-typepred)
   (expand "square?")
   (expand "invertible?")
   (skolem-typepred)
   (expand "square?")
   (expand "inverse")
   (typepred "the! (N: Square | N`rows = N!1`rows): inverse?(N!1)(N)")
   (("1"
     (hide -1 -2)
     (lemma "inverse_unique")
     (inst-cp -1 "N!1"
      "the! (N: Square | (N`rows = N!1`rows)): inverse?(N!1)(N)" "N!2")
     (("1" (replace -2 :hide? t) (expand "inverse?") (flatten))
      ("2"
       (hide 2)
       (expand "singleton?")
       (lemma "inverse_unique")
       (inst -1 "N!1" _ _)
       (inst 1 "N!2")
       (skolem-typepred)
       (inst?))))
    ("2"
     (hide 2)
     (expand "singleton?")
     (lemma "inverse_unique")
     (inst -1 "N!1" _ _)
     (inst 1 "N!2")
     (skolem-typepred)
     (inst?))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrix_lemmas
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: finished
script:
  (""
   (skosimp)
   (apply-extensionality)
   (hide 2)
   (expand "*")
   (typepred "x!2")
   (expand "I" -1)
   (lemma "sigma_middle[below[matrices.I(n!1)`cols]]")
   (("1"
     (inst -1 "_" "_" "_" "0")
     (inst -1 "_" "_" "x!2")
     (("1"
       (inst -1
        " LAMBDA (k: below(matrices.I(n!1)`cols)):
                      matrices.I(n!1)`matrix(x!2, k) * x!1(k)"
        " matrices.I(n!1)`cols - 1")
       (("1"
         (assert)
         (case " matrices.I(n!1)`cols=n!1")
         (("1"
           (replace -1 -2)
           (hide -1)
           (assert)
           (case " sigma(0, n!1 - 1,
                             LAMBDA (k: below(matrices.I(n!1)`cols)):
                               matrices.I(n!1)`matrix(x!2, k) * x!1(k))= sigma(0, matrices.I(n!1)`cols - 1,
                             LAMBDA (k: below(matrices.I(n!1)`cols)):
                               matrices.I(n!1)`matrix(x!2, k) * x!1(k))")
           (("1"
             (replace -1 -2)
             (hide -1)
             (replace -1 1)
             (hide -1)
             (case " sigma(0, x!2 - 1,
                               LAMBDA (k: below(matrices.I(n!1)`cols)):
                                 matrices.I(n!1)`matrix(x!2, k) * x!1(k))=0")
             (("1"
               (replace -1)
               (hide -1)
               (case " sigma(1 + x!2, n!1 - 1,
                                  LAMBDA (k: below(matrices.I(n!1)`cols)):
                                    matrices.I(n!1)`matrix(x!2, k) * x!1(k))=0")
               (("1"
                 (replace -1)
                 (hide -1)
                 (assert)
                 (expand "I")
                 (assert))
                ("2"
                 (hide 2)
                 (lemma
                  " sigma_restrict_eq_0[below(matrices.I(n!1)`cols)]")
                 (inst -1
                  "LAMBDA (k: below(matrices.I(n!1)`cols)):
                                matrices.I(n!1)`matrix(x!2, k) * x!1(k)"
                  "n!1 - 1" "1 + x!2")
                 (("1" (assert) (hide 2) (skosimp) (expand "I") (assert))
                  ("2"
                   (hide 2)
                   (skosimp)
                   (typepred "k!1")
                   (expand "I")
                   (propax))))))
              ("2"
               (hide 2)
               (lemma
                "sigma_restrict_eq_0[ below(matrices.I(n!1)`cols)]")
               (inst -1
                " LAMBDA (k: below(matrices.I(n!1)`cols)):
                              matrices.I(n!1)`matrix(x!2, k) * x!1(k)"
                "x!2-1" "0")
               (("1" (assert) (hide 2) (skosimp) (expand "I") (assert))
                ("2"
                 (hide 2)
                 (skosimp)
                 (typepred "k!1")
                 (expand "I")
                 (propax))))))
            ("2"
             (hide -1 2)
             (case "n!1= matrices.I(n!1)`cols")
             (("1"
               (name "dd"
                     " LAMBDA (k: below(matrices.I(n!1)`cols)):
                                   matrices.I(n!1)`matrix(x!2, k) * x!1(k)")
               (replace -1)
               (hide -1)
               (name "ee" " sigma(0, matrices.I(n!1)`cols - 1, dd)")
               (replace -1)
               (hide -1)
               (replace -1)
               (expand "ee")
               (propax))
              ("2" (expand "I") (propax))))
            ("3"
             (hide -1 2)
             (skosimp)
             (typepred "k!1")
             (expand "I")
             (propax))))
          ("2" (hide -1 2) (expand "I") (propax))))
        ("2" (hide 2) (skosimp) (typepred "k!1") (expand "I") (propax))))
      ("2" (expand "I") (propax))))
    ("2"
     (hide 2)
     (skosimp)
     (expand "I")
     (typepred "y!1")
     (expand "I")
     (assert))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrix_lemmas
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: finish
script:
  (""
   (skosimp)
   (lemma "inverse_ident")
   (inst -1 "N!1")
   (typepred "N!1")
   (expand "square?")
   (hide -2)
   (grind))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrix_lemmas
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (apply-extensionality)
   (("1"
     (hide 2)
     (lemma "transpose_cols")
     (inst -1 "I(n!1)")
     (replace -1)
     (hide -1)
     (grind))
    ("2"
     (hide 2)
     (lemma "transpose_rows")
     (inst -1 "I(n!1)")
     (replace -1 1)
     (hide -1)
     (grind))
    ("3"
     (hide 2)
     (apply-extensionality)
     (hide 2)
     (case "x!1=x!2")
     (("1"
       (case "x!1/=x!2")
       (("1" (assert))
        ("2" (hide 1) (expand "I") (replace -1 1) (grind))))
      ("2"
       (case "x!1/=x!2")
       (("1" (hide 1) (expand "I") (grind)) ("2" (assert))))))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrix_lemmas
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: finished
script:
  (""
   (skosimp)
   (lemma "inverse_unique")
   (inst -1 "transpose(M!1)" " transpose(inverse(M!1))"
    " inverse((transpose(M!1)))")
   (("1"
     (hide 2)
     (expand "inverse?")
     (split)
     (("1" (lemma "ident_inverse") (inst -1 "transpose(M!1)"))
      ("2" (lemma "inverse_ident") (inst -1 "transpose(M!1)"))))
    ("2"
     (hide 2)
     (split)
     (("1" (typepred "M!1") (expand "square?") (hide -2) (grind))
      ("2" (typepred "M!1") (hide -2) (grind))
      ("3"
       (expand "inverse?")
       (split)
       (("1"
         (lemma "transpose_product")
         (inst -1 "inverse(M!1)" "M!1")
         (("1"
           (swap-rel -1)
           (replace -1 1)
           (hide -1)
           (lemma "inverse_ident")
           (inst -1 "M!1")
           (replace -1 1)
           (hide -1)
           (typepred "M!1")
           (hide -2)
           (expand "square?")
           (lemma "transp_ident")
           (inst -1 "M!1`rows")
           (replace -1 1)
           (hide -1)
           (lemma "transpose_rows")
           (inst -1 "M!1")
           (replace -1 1)
           (hide -1)
           (replace -1 1)
           (propax))
          ("2" (hide 2) (typepred "M!1") (hide -2) (grind))))
        ("2"
         (lemma "transpose_product")
         (inst -1 "M!1" "inverse(M!1)")
         (("1"
           (swap-rel -1)
           (replace -1 1)
           (hide -1)
           (lemma "ident_inverse")
           (inst -1 "M!1")
           (replace -1 1)
           (hide -1)
           (lemma "transp_ident")
           (inst -1 "M!1`rows")
           (replace -1 1)
           (hide -1)
           (typepred "M!1")
           (expand "square?")
           (hide -2)
           (lemma "transpose_rows")
           (inst -1 "M!1")
           (replace -1 1)
           (hide -1)
           (replace -1 1)
           (propax))
          ("2"
           (hide 2)
           (typepred "M!1")
           (hide -2)
           (expand "square?")
           (grind))))))))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrix_lemmas
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: finished
script:
  (""
   (skosimp)
   (lemma "inverse_ident")
   (inst -1 "N!1")
   (replace -1 1)
   (lemma "right_mult_ident")
   (inst -1 "A!1" "I(N!1`rows)")
   (hide -1 2)
   (grind))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrix_lemmas
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: finished
script:
  (""
   (skosimp)
   (lemma "ident_inverse")
   (inst -1 "N!1")
   (replace -1 1)
   (hide -1)
   (lemma "left_mult_ident")
   (inst -1 "B!1" "I(N!1`rows)")
   (hide 2)
   (grind)
   (typepred "N!1")
   (expand "square?")
   (hide -2)
   (grind))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrix_lemmas
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: finished
script:
  (""
   (skosimp)
   (lemma "invar_inverse_left")
   (inst -1 "B!1" "N!1")
   (("1" (replace -1 1) (propax))
    ("2" (typepred "N!1") (expand "square?") (assert))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrix_lemmas
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: fin
script:
  (""
   (skosimp)
   (apply-extensionality)
   (hide 2)
   (lemma "comp_distr_add[A!1`rows]")
   (inst -1 "x!1" "A!1*y!1" "B!1*y!1")
   (replace -1 1)
   (hide -1)
   (expand "*")
   (typepred "B!1")
   (lemma "sigma_eq_index")
   (copy -1)
   (inst -1 "B!1`cols" "A!1`cols"
    " LAMBDA (k: below(B!1`cols)): B!1`matrix(x!1, k) * y!1(k)"
    " LAMBDA (k: below(A!1`cols)): B!1`matrix(x!1, k) * y!1(k)")
   (("1"
     (assert)
     (replace -1 1)
     (hide -1)
     (inst -1 " (A!1 + B!1)`cols" "A!1`cols"
      " LAMBDA (k: below((A!1 + B!1)`cols)):
                    (A!1 + B!1)`matrix(x!1, k) * y!1(k)"
      " LAMBDA (k: below(A!1`cols)):
                    (A!1 + B!1)`matrix(x!1, k) * y!1(k)")
     (("1"
       (case "(A!1 + B!1)`cols = A!1`cols")
       (("1"
         (assert)
         (replace -2 1)
         (hide -2)
         (lemma "sigma_sum[below[A!1`cols]]")
         (("1"
           (inst -1
            " LAMBDA (k: below(A!1`cols)): A!1`matrix(x!1, k) * y!1(k)"
            "LAMBDA (i: Index[A!1`cols]): B!1`matrix(x!1, i) * y!1(i)"
            "A!1`cols-1" "0")
           (("1"
             (replace -1 1)
             (hide -1)
             (lemma "sigma_eq[below[A!1`cols]]")
             (inst -1
              " LAMBDA (i: Index[A!1`cols]):
                            (A!1 + B!1)`matrix(x!1, i) * y!1(i)"
              " LAMBDA (i_1: below[A!1`cols]):
                             A!1`matrix(x!1, i_1) * y!1(i_1) +
                              B!1`matrix(x!1, i_1) * y!1(i_1)"
              "A!1`cols-1" "0")
             (("1" (assert) (hide 2) (skosimp) (grind))
              ("2" (hide 2) (skosimp) (typepred "x!1") (grind))
              ("3" (hide 2) (skosimp) (typepred "x!1") (grind))))
            ("2" (hide 2) (skosimp) (typepred "x!1") (grind))
            ("3" (hide 2) (skosimp) (typepred "x!1") (grind))))
          ("2" (hide 2) (skosimp) (assert))))
        ("2" (hide -1 2) (grind))))
      ("2" (hide 2) (skosimp) (typepred "k!1") (grind))
      ("3" (hide 2) (skosimp) (typepred "k!1") (grind))))
    ("2"
     (hide -1 2)
     (skosimp)
     (typepred "k!1")
     (assert)
     (typepred "B!1")
     (swap-rel -1)
     (replace -1 1)
     (typepred "x!1")
     (hide -2 -3 -4 -5 -6)
     (grind))
    ("3" (hide -1 2) (skosimp) (typepred "x!1") (grind))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrix_lemmas
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: finished
script:
  (""
   (skosimp)
   (apply-extensionality)
   (hide 2)
   (lemma "comp_distr_add[A!1`rows]")
   (inst -1 "x!2" "A!1*x!1" "A!1*y!1")
   (replace -1 1)
   (hide -1)
   (expand "*")
   (lemma "sigma_sum[below[A!1`cols]]")
   (("1"
     (inst -1 "LAMBDA (k: below(A!1`cols)): A!1`matrix(x!2, k) * x!1(k)"
      " LAMBDA (k: below(A!1`cols)): A!1`matrix(x!2, k) * y!1(k)"
      "A!1`cols-1" "0")
     (replace -1 1)
     (hide -1)
     (lemma "sigma_eq[below[A!1`cols]]")
     (inst -1
      " LAMBDA (i: below[A!1`cols]):
                    A!1`matrix(x!2, i) * x!1(i) + A!1`matrix(x!2, i) * y!1(i)"
      " LAMBDA (k: below(A!1`cols)):
                     A!1`matrix(x!2, k) * (x!1 + y!1)(k)"
      "A!1`cols-1" "0")
     (case " (FORALL (n: subrange(0, A!1`cols - 1)):
                    A!1`matrix(x!2, n) * x!1(n) + A!1`matrix(x!2, n) * y!1(n) =
                     A!1`matrix(x!2, n) * (x!1 + y!1)(n))")
     (("1" (replace -1 -2) (propax))
      ("2"
       (hide -1 2)
       (skosimp)
       (lemma "distributive")
       (inst -1 " A!1`matrix(x!2, n!1)" "x!1(n!1)" "y!1(n!1)")
       (swap-rel -1)
       (replace -1 1)
       (hide -1)
       (lemma "comp_distr_add[A!1`cols]")
       (inst -1 "n!1" "x!1" "y!1")
       (replace -1 1)
       (propax))))
    ("2" (hide 2) (skosimp) (assert))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrix_lemmas
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (apply-extensionality)
   (("1" (hide 2) (grind)) ("2" (hide 2) (grind)) ("3" (hide 2) (grind))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrix_lemmas
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (apply-extensionality)
   (hide 2)
   (expand "*")
   (expand "-")
   (lemma "sigma_minus[below[A!1`cols]]")
   (("1"
     (lemma "sigma_eq_index")
     (inst -1 "(-A!1)`cols" "(A!1)`cols"
      " LAMBDA (k: below((-A!1)`cols)): -A!1`matrix(x!2, k) * x!1(k)"
      " LAMBDA (k: below((A!1)`cols)): -A!1`matrix(x!2, k) * x!1(k)")
     (("1"
       (assert)
       (case " (-A!1)`cols = (A!1)`cols")
       (("1"
         (replace -1 -2)
         (hide -1)
         (replace -1 1)
         (hide -1)
         (inst -1 " LAMBDA (i: Index[(A!1)`cols]): 0"
          " LAMBDA (i: Index[(A!1)`cols]): -A!1`matrix(x!2, i) * x!1(i)"
          "A!1`cols -1" "0")
         (lemma " sigma_restrict_eq_0[below[A!1`cols]]")
         (inst -1 " LAMBDA (i: Index[(A!1)`cols]): 0" "A!1`cols-1" "0")
         (assert))
        ("2" (hide -1 -2 2) (grind))))
      ("2" (skosimp) (typepred "k!1") (hide -2 2) (grind))))
    ("2" (skosimp) (typepred "y!1") (assert))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrix_lemmas
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: finished
script:
  (""
   (skosimp)
   (lemma "distr_mat_vect")
   (inst -1 "A!1" "B!1" "y!1")
   (replace -1 1)
   (hide -1)
   (lemma "dot_add_right[A!1`rows]")
   (inst -1 "x!1" "A!1*y!1" "B!1*y!1"))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrix_lemmas
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: fin
script:
  (""
   (skosimp)
   (case "A!1-B!1=A!1+(-B!1)")
   (("1"
     (replace -1 1)
     (hide -1)
     (lemma "distr_esc_add")
     (inst -1 "A!1" "-B!1" "x!1" "y!1")
     (replace -1 1)
     (hide -1)
     (case "x!1 * (-B!1 * y!1)= - x!1 * (B!1 * y!1)")
     (("1"
       (replace -1 1)
       (hide -1)
       (lemma "minus_add")
       (inst -1 " x!1 * (A!1 * y!1)" "x!1 * (B!1 * y!1)")
       (swap-rel -1)
       (assert)
       (swap-rel -1)
       (replace -1 1)
       (hide -1)
       (name "dd" "B!1*y!1")
       (replace -1)
       (hide -1)
       (expand "*")
       (lemma "sigma_minus[below[A!1`rows]]")
       (("1"
         (inst -1 " LAMBDA (i: Index[A!1`rows]): 0"
          " LAMBDA (i: Index[A!1`rows]): x!1(i) * dd(i)" "A!1`rows-1"
          "0")
         (lemma "sigma_restrict_eq_0[below[A!1`rows]]")
         (inst -1 " LAMBDA (i: Index[A!1`rows]): 0" "A!1`rows -1" "0")
         (assert)
         (replace -1 -2)
         (hide -1)
         (replace -1 1)
         (hide -1)
         (lemma "sigma_eq[below[A!1`rows]]")
         (inst -1 " LAMBDA (i: Index[A!1`rows]): (-x!1)(i) * dd(i)"
          "LAMBDA (i_1: below[A!1`rows]): -1 * (x!1(i_1) * dd(i_1))"
          "A!1`rows-1" "0")
         (assert)
         (hide 2)
         (skosimp)
         (grind))
        ("2" (skosimp) (assert))))
      ("2"
       (hide 2)
       (lemma "matrix_prod_minus")
       (inst -1 "B!1" "y!1")
       (swap-rel -1)
       (("1"
         (replace -1 1)
         (hide -1)
         (lemma "dot_neg_left[A!1`rows]")
         (inst -1 "x!1" "(B!1 * y!1)")
         (replace -1 1)
         (hide -1)
         (lemma "dot_neg_right[A!1`rows]")
         (inst -1 "x!1" "B!1*y!1")
         (name "dd" " -(x!1 * (B!1 * y!1))")
         (replace -1)
         (hide -1)
         (expand "*" -1 2)
         (expand "*" 1 2)
         (name "yy"
               "LAMBDA (i: below(B!1`rows)):
                           sigma(0, B!1`cols - 1,
                                 LAMBDA (k: below(B!1`cols)): B!1`matrix(i, k) * y!1(k))")
         (("1"
           (replace -1)
           (hide -1)
           (expand "-")
           (case "(LAMBDA (i: Index[A!1`rows]): -yy(i))= (LAMBDA (i: Index[B!1`rows]): -yy(i))")
           (("1" (replace -1 -2) (propax))
            ("2"
             (hide -1 2)
             (apply-extensionality)
             (hide 2)
             (skosimp)
             (typepred "B!1")
             (grind))
            ("3" (skosimp) (hide -1 2) (typepred "B!1") (grind))))
          ("2" (skosimp) (skosimp) (typepred "y!2") (assert))
          ("3" (skosimp) (hide -1 3) (grind))
          ("4" (skosimp) (hide -1 3) (grind))))
        ("2" (skosimp) (hide -1 2) (grind))))))
    ("2" (hide 2) (lemma "matrix_sum_minus") (inst -1 "A!1" "B!1"))
    ("3"
     (hide 2)
     (typepred "B!1")
     (split)
     (("1" (grind)) ("2" (grind))))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrix_lemmas
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: finished
script:
  (""
   (skosimp)
   (lemma "distr_vect_mat")
   (inst -1 "A!1" "x!1" "y!1")
   (swap-rel -1)
   (replace -1 1)
   (hide -1)
   (lemma "dot_add_right[A!1`cols]")
   (inst -1 "x!1+y!1" "A!1*x!1" "A!1*y!1")
   (name "dd" "A!1*x!1")
   (replace -1)
   (hide -1)
   (name "ee" "A!1*y!1")
   (replace -1)
   (hide -1)
   (name "yy" "x!1+y!1")
   (replace -1)
   (hide -1)
   (expand "+" -1 1)
   (expand "+" 1 1)
   (case "(LAMBDA (i: Index[A!1`cols]): dd(i) + ee(i))= (LAMBDA (i: Index[A!1`rows]): dd(i) + ee(i))")
   (("1"
     (replace -1 -2)
     (hide -1)
     (replace -1 1)
     (hide -1)
     (expand "yy")
     (case "(x!1+y!1)*dd = x!1*dd+y!1*dd")
     (("1"
       (replace -1 1)
       (hide -1)
       (case "(x!1+y!1)*ee = x!1*ee +y!1*ee")
       (("1" (replace -1 1) (hide -1) (grind))
        ("2"
         (hide 2)
         (lemma "dot_add_left[A!1`cols]")
         (inst -1 "ee" "x!1" "y!1"))))
      ("2"
       (hide 2)
       (lemma "dot_add_left[A!1`cols]")
       (inst -1 "dd" "x!1" "y!1"))))
    ("2"
     (hide -1 2)
     (apply-extensionality)
     (("1"
       (hide 2)
       (skosimp)
       (typepred "A!1")
       (expand "square?")
       (grind))
      ("2"
       (hide 2)
       (skosimp)
       (typepred "i!1")
       (typepred "A!1")
       (expand "square?")
       (grind))))
    ("3"
     (hide -1 2)
     (skosimp)
     (grind)
     (("1" (typepred "A!1") (expand "square?") (assert))
      ("2" (typepred "A!1") (expand "square?") (assert))))
    ("4"
     (hide -1 2)
     (skosimp)
     (typepred "i!1")
     (typepred "A!1")
     (expand "square?")
     (assert))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrix_lemmas
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (lemma "trans_mat_scal")
   (inst -1 "B" "x" "A * (C * y)")
   (("1"
     (case "B * (A * (C * y)) = (B * (A * C)) * y")
     (("1" (replace -1 -2) (propax))
      ("2"
       (hide 2)
       (hide -1)
       (lemma "mult_assoc_vect")
       (inst -1 "B" "A * C" "y")
       (("1"
         (replace -1)
         (lemma "mult_assoc_vect")
         (inst -1 "A" "C" "y")
         (replace -1)
         (propax))
        ("2" (hide 2) (grind))))))
    ("2" (hide 2) (grind))))


proof_type: t_proof
decl_type: tcc
library: linear_algebra
theory: matrix_lemmas
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: finished
script:
  (""
   (skosimp)
   (split)
   (("1" (typepred "M!1") (hide -2) (grind))
    ("2"
     (typepred "M!1")
     (expand "invertible?" 1)
     (inst 1 "transpose(inverse(M!1))")
     (split)
     (("1"
       (hide -2)
       (expand "square?")
       (lemma "transpose_cols")
       (inst -1 "inverse(M!1)")
       (replace -1 1)
       (hide -1)
       (lemma "transpose_rows")
       (inst -1 "inverse(M!1)")
       (replace -1 1)
       (hide -1)
       (grind))
      ("2"
       (lemma "transpose_rows")
       (inst -1 "inverse(M!1)")
       (replace -1 1)
       (hide -1)
       (expand "square?" -1)
       (hide -2)
       (lemma "transpose_rows")
       (inst -1 "M!1")
       (replace -1 1)
       (hide -1)
       (grind))
      ("3"
       (expand "inverse?")
       (split)
       (("1"
         (lemma "transpose_product")
         (inst -1 "inverse(M!1)" "M!1")
         (("1"
           (swap-rel -1)
           (replace -1 1)
           (hide -1)
           (lemma "inverse_ident")
           (inst -1 "M!1")
           (replace -1 1)
           (hide -1 -3)
           (expand "square?")
           (lemma "transp_ident")
           (inst -1 "M!1`rows")
           (replace -1 1)
           (hide -1)
           (lemma "transpose_rows")
           (inst -1 "M!1")
           (replace -1 1)
           (hide -1)
           (replace -1 1)
           (propax))
          ("2" (hide 2 2) (expand "square?") (hide -2) (grind))))
        ("2"
         (expand "square?")
         (hide -2)
         (lemma "transpose_product")
         (inst -1 "M!1" "inverse(M!1)")
         (("1"
           (swap-rel -1)
           (replace -1 1)
           (hide -1)
           (lemma "ident_inverse")
           (inst -1 "M!1")
           (replace -1 1)
           (hide -1)
           (lemma "transp_ident")
           (inst -1 "M!1`rows")
           (replace -1 1)
           (hide -1)
           (lemma "transpose_rows")
           (inst -1 "M!1")
           (replace -1 1)
           (hide -1)
           (replace -1 1)
           (propax))
          ("2" (hide 2) (grind))))))))))


proof_type: t_proof
decl_type: tcc
library: linear_algebra
theory: matrix_lemmas
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: finished
script:
  (""
   (skosimp)
   (skosimp)
   (split)
   (("1" (flatten) (typepred "N!1") (expand "square?") (hide -2) (grind))
    ("2"
     (flatten)
     (typepred "N!1")
     (expand "square?")
     (hide -2)
     (grind))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: ln_exp
signature: nil
run_date: Unknown date
run_time: ----
status: unchecked
description: nil
script:
  (""
   (skosimp*)
   (case "derivable[posreal](LAMBDA (x: posreal): ln(py!1 * x))")
   (("1"
     (lemma "ln_derivable")
     (flatten)
     (case "deriv(LAMBDA (x: posreal): ln(py!1*x))  = deriv(LAMBDA (x: posreal): ln(x))")
     (("1"
       (lemma "derivs_eq[posreal]")
       (("1"
         (inst?)
         (assert)
         (case-replace "(LAMBDA (x: posreal): ln(x)) = ln")
         (("1"
           (assert)
           (hide -1)
           (replace -3)
           (assert)
           (skosimp*)
           (expand "+ ")
           (expand "const_fun")
           (case "(LAMBDA (x: posreal): ln(py!1 * x))(1) =       (LAMBDA (x_824: posreal): ln(x_824) + c!1)(1)")
           (("1"
             (assert)
             (hide -2)
             (rewrite "ln_1")
             (assert)
             (reveal -1)
             (replace -2 * rl)
             (case-replace
              "(LAMBDA (x: posreal): ln(py!1 * x))(px!1) =       (LAMBDA (x_824: posreal): ln(x_824) + ln(py!1))(px!1)")
             (("1" (hide -2) (assert)) ("2" (replace -1) (propax))))
            ("2" (replace -1) (propax))))
          ("2" (apply-extensionality 1 :hide? t))))
        ("2" (skosimp*) (inst + "x!1/2") (skosimp*) (assert))
        ("3" (skosimp*) (inst + "x!1+1") (assert))
        ("4" (skosimp*) (assert))))
      ("2"
       (hide 2)
       (lemma "deriv_composition[posreal,posreal]")
       (("1"
         (case-replace "(LAMBDA (x: posreal): ln(x)) = ln")
         (("1"
           (hide -1)
           (replace -3)
           (apply-extensionality 1 :hide? t)
           (inst - "(LAMBDA (t: posreal): py!1*t)" "ln" "x!1")
           (assert)
           (case "derivable((LAMBDA (t: posreal): py!1 * t), x!1) ")
           (("1"
             (assert)
             (expand "derivable" -3)
             (inst -3 "py!1*x!1")
             (assert)
             (expand "o ")
             (expand "deriv" 1)
             (case "deriv(ln)(py!1*x!1) = (LAMBDA (t: posreal): 1 / t)(py!1*x!1)")
             (("1"
               (expand "deriv" -1)
               (replace -1)
               (hide -1)
               (case-replace
                "deriv[posreal]((LAMBDA (t: posreal): py!1 * t), x!1) = py!1")
               (("1" (assert))
                ("2"
                 (hide 2)
                 (lemma "deriv_scal[posreal]")
                 (inst -1 "py!1" "I[posreal]" "x!1")
                 (split -1)
                 (("1"
                   (expand "I")
                   (expand "*")
                   (replace -1)
                   (lemma "deriv_identity[posreal]")
                   (expand "I")
                   (inst?)
                   (assert))
                  ("2"
                   (hide-all-but 1)
                   (lemma "identity_derivable[posreal]")
                   (inst?))))))
              ("2" (assert) (hide 2) (replace -4) (assert))))
            ("2"
             (hide-all-but 1)
             (lemma "scal_derivable[posreal]")
             (inst -1 "py!1" "I" "x!1")
             (lemma "identity_derivable[posreal]")
             (inst?)
             (split -2)
             (("1" (expand "I") (expand "*") (propax)) ("2" (propax))))))
          ("2" (apply-extensionality 1 :hide? t))))
        ("2" (skosimp*) (inst + "x!1+1") (assert))
        ("3" (skosimp*) (assert))))
      ("3"
       (case-replace "(LAMBDA (x: posreal): ln(x)) = ln")
       (apply-extensionality 1 :hide? t))
      ("4" (propax))))
    ("2"
     (hide 2)
     (assert)
     (lemma "ln_derivable")
     (flatten)
     (assert)
     (lemma "scal_derivable[posreal]")
     (expand "derivable" 1)
     (skosimp*)
     (inst -1 "py!1" "I" "x!1")
     (lemma "identity_derivable[posreal]")
     (inst?)
     (lemma "composition_derivable[posreal,posreal]")
     (("1"
       (inst -1 "(LAMBDA (t:posreal): py!1*t)" "ln" "x!1")
       (expand "o ")
       (split -1)
       (("1" (propax))
        ("2"
         (expand "derivable" -3)
         (inst -3 "py!1*x!1")
         (hide 2)
         (expand "I")
         (expand "*")
         (assert))
        ("3" (hide 2) (expand "derivable" -3) (inst -3 "py!1*x!1"))))
      ("2" (skosimp*) (inst + "x!2+1") (assert))
      ("3" (skosimp*) (hide 2) (hide-all-but (-1 1)) (assert))))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: ln_exp
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "ln_mult")
   (inst -1 "1/py!1" "py!1")
   (assert)
   (rewrite "ln_1")
   (lemma "ln_mult")
   (inst -1 "px!1" "1/py!1")
   (assert))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: ln_exp
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (case "(FORALL (n:nat): ln(px!1 ^ n) = n * ln(px!1))")
   (("1"
     (case-replace "i!1 >= 0")
     (("1" (inst?))
      ("2"
       (expand "^")
       (assert)
       (rewrite "ln_div")
       (rewrite "ln_1")
       (assert)
       (inst?)
       (assert))))
    ("2"
     (hide 2)
     (induct "n")
     (("1" (expand "^") (expand "expt") (rewrite "ln_1") (assert))
      ("2"
       (skosimp*)
       (case-replace "px!1 ^ (j!1 + 1) = px!1*px!1^j!1")
       (("1" (rewrite "ln_mult" +) (replace -2) (hide -2) (assert))
        ("2"
         (hide 2)
         (rewrite "expt_plus")
         (expand "^" 1 2)
         (expand "expt")
         (expand "expt")
         (assert))))))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: ln_exp
signature: nil
run_date: Unknown date
run_time: ----
status: unchecked
description: nil
script:
  (""
   (lemma "positive_derivative[posreal]")
   (("1"
     (inst?)
     (("1"
       (assert)
       (hide 2)
       (skosimp*)
       (lemma "ln_derivable")
       (flatten)
       (case "deriv[posreal](ln, x!1) = deriv(ln)(x!1)")
       (("1" (replace -1) (replace -3) (assert))
        ("2" (hide-all-but 1) (expand "deriv" 1 2) (propax))
        ("3" (propax)) ("4" (expand "derivable" -1) (inst?))))
      ("2" (lemma "ln_derivable") (flatten))))
    ("2" (skosimp*) (inst + "x!1+1") (assert)) ("3" (skosimp*) (assert))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: ln_exp
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (lemma "ln_strict_increasing")
   (expand "increasing?")
   (skosimp*)
   (expand "strict_increasing?")
   (inst?)
   (inst -1 "y!1")
   (assert))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: ln_exp
signature: nil
run_date: Unknown date
run_time: ----
status: unchecked
description: nil
script:
  (""
   (skosimp*)
   (lemma "ln_strict_increasing")
   (expand "strict_increasing?")
   (inst -1 "1" "2")
   (assert)
   (rewrite "ln_1")
   (lemma "ln_expt")
   (inst -1 "_" "2")
   (case "(FORALL (gg: real): (EXISTS (i1,i2:int): i1 < gg/ln(2) AND gg/ln(2) < i2))")
   (("1"
     (assert)
     (inst -1 "y!1")
     (skosimp*)
     (case "i1!1 < i2!1")
     (("1"
       (mult-by -2 "ln(2)")
       (rewrite "ln_expt" -2 :dir rl)
       (mult-by -3 "ln(2)")
       (rewrite "ln_expt" -3 :dir rl)
       (lemma "intermediate1[posreal]")
       (("1"
         (inst -1 "2^i1!1" "2^i2!1" "ln" "y!1")
         (("1"
           (assert)
           (split -1)
           (("1" (skosimp*) (inst + "c!1"))
            ("2"
             (hide 2)
             (lemma "both_sides_expt_gt1_le")
             (inst?)
             (assert))))
          ("2"
           (lemma "ln_derivable")
           (flatten)
           (rewrite "ln_continuous"))))
        ("2" (skosimp*) (assert))))
      ("2" (assert))))
    ("2"
     (hide 2)
     (skosimp*)
     (lemma "axiom_of_archimedes")
     (inst -1 "gg!1/ln(2)")
     (("1"
       (skosimp*)
       (lemma "axiom_of_archimedes")
       (inst -1 "-gg!1/ln(2)")
       (("1" (skosimp*) (inst + "-i!2" "i!1") (assert)) ("2" (assert))))
      ("2" (assert))))
    ("3" (skosimp*) (assert)) ("4" (assert))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: ln_exp
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (lemma "ln_strict_increasing")
   (expand "bijective?")
   (prop)
   (("1"
     (expand "injective?")
     (skosimp*)
     (expand "strict_increasing?")
     (inst-cp - "x1!1" "x2!1")
     (inst - "x2!1" "x1!1")
     (ground))
    ("2"
     (expand "surjective?")
     (skosimp*)
     (hide -1)
     (rewrite "ln_image_all"))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: ln_exp
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "ln_strict_increasing")
   (expand "strict_increasing?")
   (lemma "ln_bij")
   (expand "bijective?")
   (flatten)
   (hide -1)
   (expand "surjective?")
   (inst -1 "a!1")
   (skosimp*)
   (replace -1 * rl)
   (hide -1)
   (inst -1 "x!1" "x!1+1")
   (assert)
   (inst + "1+x!1"))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: ln_exp
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "ln_bij")
   (expand "bijective?")
   (flatten)
   (expand "injective?")
   (inst - "px!1" "1")
   (lemma "ln_1")
   (assert))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: ln_exp
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "ln_increasing")
   (expand "increasing?")
   (inst - "1" "px!1")
   (rewrite "ln_1")
   (assert))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: ln_exp
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "ln_strict_increasing")
   (expand "strict_increasing?")
   (inst - "1" "px!1")
   (rewrite "ln_1")
   (assert))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: ln_exp
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (apply-extensionality 1 :hide? t)
   (("1"
     (typepred "exp(x!1)")
     (lemma "bijective_inverse[posreal,real]")
     (inst?)
     (("1" (ground)) ("2" (rewrite "ln_bij"))))
    ("2"
     (skosimp*)
     (lemma "bijective_inverse[posreal,real]")
     (inst?)
     (("1" (ground)) ("2" (hide 2) (rewrite "ln_bij"))))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: ln_exp
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (rewrite "exp_def")
   (assert)
   (lemma "bijective_inverse_is_bijective[posreal,real]")
   (inst?)
   (hide 2)
   (rewrite "ln_bij"))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: ln_exp
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (assert)
   (typepred "exp(ln(py!1))")
   (lemma "ln_bij")
   (expand "bijective?")
   (flatten)
   (expand "injective?")
   (inst -1 "py!1" "exp(ln(py!1))")
   (assert))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: ln_exp
signature: nil
run_date: Unknown date
run_time: ----
status: unchecked
description: nil
script:
  (""
   (lemma "Integral_bound[posreal]")
   (("1"
     (inst -1 "1" "1" "2" "(LAMBDA (t: posreal): 1/t)" "1/2")
     (assert)
     (case-replace
      "Integral(1, 2, (LAMBDA (t: posreal): 1 / t)) = ln(2)")
     (("1"
       (rewrite "ln_prep")
       (assert)
       (split -2)
       (("1" (propax))
        ("2"
         (skosimp*)
         (hide-all-but 1)
         (prop)
         (("1" (mult-by 1 "x!1") (assert))
          ("2" (mult-by 1 "x!1") (assert))))))
      ("2" (expand "ln") (propax)) ("3" (rewrite "ln_prep"))))
    ("2"
     (skosimp*)
     (typepred "x!1")
     (inst + "x!1/2")
     (skosimp*)
     (assert))
    ("3" (skosimp*) (inst + "x!1+1") (assert)) ("4" (skosimp*) (assert))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: ln_exp
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (typepred "exp(i!1)")
   (lemma "ln_expt")
   (inst?)
   (rewrite "ln_e")
   (assert)
   (lemma "ln_bij")
   (expand "bijective?")
   (flatten)
   (expand "injective?")
   (inst -1 "exp(i!1)" "e^i!1")
   (assert))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: ln_exp
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (transform-both 1 "ln(%1)")
   (("1"
     (assert)
     (hide 2)
     (rewrite "ln_mult")
     (rewrite "ln_exp")
     (rewrite "ln_exp")
     (rewrite "ln_exp"))
    ("2"
     (rewrite "ln_mult")
     (assert)
     (rewrite "ln_mult" :dir rl)
     (lemma "ln_bij")
     (expand "bijective?")
     (flatten)
     (expand "injective?")
     (inst -1 "exp(x!1 + y!1) " "exp(x!1) * exp(y!1)")
     (assert))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: ln_exp
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (transform-both 1 "ln(%1)")
   (("1"
     (hide 2)
     (rewrite "ln_div")
     (rewrite "ln_exp")
     (rewrite "ln_exp")
     (rewrite "ln_exp"))
    ("2"
     (rewrite "ln_div")
     (assert)
     (rewrite "ln_div" :dir rl)
     (lemma "ln_bij")
     (expand "bijective?")
     (flatten)
     (expand "injective?")
     (inst -1 "exp(x!1 - y!1) " "exp(x!1) / exp(y!1)")
     (assert))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: ln_exp
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (transform-both 1 "ln(%1)")
   (("1"
     (hide 2)
     (rewrite "ln_expt")
     (rewrite "ln_exp")
     (rewrite "ln_exp"))
    ("2"
     (rewrite "ln_expt")
     (rewrite "ln_expt" :dir rl)
     (lemma "ln_bij")
     (expand "bijective?")
     (flatten)
     (expand "injective?")
     (inst -1 "exp(i!1*x!1) " "exp(x!1)^i!1")
     (assert))
    ("3" (assert))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: ln_exp
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (expand "strict_increasing?")
   (skosimp*)
   (typepred "exp(x!1)")
   (typepred "exp(y!1)")
   (hide -1 -2 -4 -5)
   (lemma "ln_strict_increasing")
   (expand "strict_increasing?")
   (inst -1 "exp(y!1)" "exp(x!1)")
   (assert))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: ln_exp
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (lemma "exp_strict_increasing")
   (expand "increasing?")
   (skosimp*)
   (expand "strict_increasing?")
   (inst?)
   (inst -1 "y!1")
   (assert))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: ln_exp
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (expand "e")
   (lemma "ln_2_bnds")
   (flatten)
   (mult-by -1 "2")
   (lemma "ln_expt")
   (inst -1 "2" "2")
   (replace -1 * rl)
   (hide -1)
   (expand "^")
   (expand "expt")
   (expand "expt")
   (expand "expt")
   (typepred "exp(1)")
   (hide -1 -2)
   (replace -1 (-2 -3))
   (hide -1)
   (lemma "exp_increasing")
   (expand "increasing?")
   (inst -1 "ln(exp(1))" "ln(4)")
   (assert)
   (rewrite "exp_ln")
   (rewrite "exp_ln")
   (assert)
   (lemma "exp_increasing")
   (expand "increasing?")
   (inst -1 "ln(2)" "ln(exp(1))")
   (assert)
   (rewrite "exp_ln")
   (rewrite "exp_ln"))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: ln_exp
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (case "a!1 <= 0")
   (("1" (inst + "0") (rewrite "exp_0") (assert))
    ("2"
     (inst + "ln(a!1) + 1")
     (("1"
       (rewrite "exp_sum")
       (rewrite "exp_ln")
       (rewrite "exp_1")
       (case "e > 1")
       (("1" (mult-by -1 "a!1") (assert))
        ("2" (hide-all-but 1) (lemma "e_bnds") (flatten) (assert))))
      ("2" (assert))))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: ln_exp
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (inst + "ln(px!1) - 1")
   (rewrite "exp_diff")
   (rewrite "exp_ln")
   (mult-by 1 "exp(1)")
   (rewrite "exp_1")
   (case "e > 1")
   (("1" (mult-by -1 "px!1") (assert))
    ("2" (hide 2) (lemma "e_bnds") (flatten) (assert))))


proof_type: t_proof
decl_type: tcc
library: lnexp
theory: ln_exp
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (inst + "(LAMBDA x: inverse(ln)(x))")
   (lemma "bijective_inverse[posreal,real]")
   (skosimp*)
   (inst?)
   (("1" (assert)) ("2" (hide 2) (rewrite "ln_bij"))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: ln_exp_series_alt
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (name "SS" "sigma(0, n!1, LAMBDA (i: nat): x!1 ^ i)")
   (replace -1)
   (lemma "add_div" ("x" "SS" "n0x" "1" "y" "x!1^(n!1+1)" "n0y" "1-x!1"))
   (replace -1 2)
   (lemma "both_sides_div1"
    ("x" "1" "y" "SS * (1 - x!1) + x!1 ^ (n!1 + 1)" "n0z" "1-x!1"))
   (replace -1 2)
   (hide -1 -2)
   (case "forall (n:nat): 1 = sigma(0, n, LAMBDA (i: nat): x!1 ^ i) *(1-x!1) + x!1 ^ (n+1)")
   (("1" (inst - "n!1") (assert))
    ("2"
     (hide-all-but (1 2))
     (induct "n")
     (("1"
       (expand "sigma")
       (assert)
       (expand "^")
       (expand "expt")
       (expand "expt")
       (expand "sigma")
       (propax))
      ("2"
       (skosimp*)
       (expand "sigma" 1)
       (name-replace "DRL101" "sigma(0, j!1, LAMBDA (i: nat): x!1 ^ i)")
       (case-replace "(x!1 ^ (1 + j!1)) * x!1 = x!1 ^ (2 + j!1)")
       (("1" (assert))
        ("2"
         (hide-all-but 1)
         (expand "^")
         (expand "expt" 1 2)
         (assert))))))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: ln_exp_series_alt
signature: nil
run_date: Unknown date
run_time: ----
status: unchecked
description: nil
script:
  (""
   (skosimp)
   (lemma "ln_estimate_scaf9" ("px" "1+z!1" "n" "n!1"))
   (replace -1)
   (assert)
   (hide -1)
   (typepred "z!1")
   (case "0 <=z!1")
   (("1"
     (hide -2)
     (lemma "ln_estimate_scaf10" ("px" "1+z!1" "n" "n!1"))
     (assert)
     (expand "abs" 1 2)
     (assert))
    ("2"
     (lemma "ln_estimate_scaf11" ("px" "1+z!1" "n" "n!1"))
     (assert)
     (expand "abs" 2 2)
     (assert))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: ln_exp_series_alt
signature: nil
run_date: Unknown date
run_time: ----
status: unchecked
description: nil
script:
  (""
   (skosimp*)
   (lemma "Taylors[posreal]"
    ("f" "ln" "n" "n!1" "bb" "xgm1!1+1" "aa" "1"))
   (("1"
     (lemma "nderiv_ln" ("n" "n!1+1"))
     (replace -1)
     (skosimp*)
     (inst + "c!1")
     (("1"
       (lemma "ln_nderiv" ("n" "n!1+1"))
       (simplify -1)
       (replace -1 -3)
       (simplify -3)
       (rewrite "div_expt" 1)
       (("1"
         (expand "ln_estimate" 1)
         (lemma "sigma_eq[nat]"
          ("low"
           "0"
           "high"
           "n!1"
           "F"
           "LAMBDA (nn:nat):
                                   IF nn > n!1 THEN 0
                                   ELSIF nn = 0 THEN ln(1)
                                   ELSE nderiv(nn, ln)(1) * xgm1!1 ^ nn / factorial(nn)
                                   ENDIF"
           "G"
           "LAMBDA (nn: nat):
                                   IF nn = 0 THEN 0 ELSE -(-xgm1!1) ^ nn / nn ENDIF"))
         (("1"
           (split -1)
           (("1"
             (replace -1 -4)
             (name-replace "K1"
              "sigma(0, n!1,
                                       LAMBDA (nn: nat):
                                         IF nn = 0 THEN 0 ELSE -(-xgm1!1) ^ nn / nn ENDIF)")
             (replace -4 1)
             (hide-all-but 1)
             (typepred "c!1")
             (hide -1 -3 -4 -5)
             (expand "factorial" 1 2)
             (name-replace "K2" "factorial(n!1)")
             (lemma "div_cancel1"
              ("x"
               "((-1/ (-c!1) ^ (1 + n!1)) * xgm1!1 ^ (1 + n!1)) / (1+n!1)"
               "n0z"
               "K2"))
             (rewrite "div_div2" -1)
             (case "K2 * (((-1 / (-c!1) ^ (1 + n!1)) * xgm1!1 ^ (1 + n!1)) / (K2 + K2 * n!1)) = ((-K2 / (-c!1) ^ (1 + n!1)) * xgm1!1 ^ (1 + n!1)) / (K2 + K2 * n!1)")
             (("1" (replace -1) (replace -2) (hide -1 -2) (assert))
              ("2"
               (hide 2)
               (name-replace "K3" "K2 + K2 * n!1")
               (name-replace "K4" "xgm1!1 ^ (1 + n!1)")
               (name-replace "K5" "(-c!1) ^ (1 + n!1)")
               (assert))))
            ("2"
             (hide-all-but 1)
             (skosimp*)
             (typepred "n!2")
             (assert)
             (case "n!2=0")
             (("1" (assert))
              ("2"
               (assert)
               (lemma "ln_nderiv" ("n" "n!2"))
               (assert)
               (replace -1 2)
               (simplify 2)
               (hide -1)
               (lemma "cross_mult"
                ("x"
                 "-factorial(n!2 - 1) / (-1) ^ n!2 * xgm1!1 ^ n!2"
                 "n0x"
                 "factorial(n!2)"
                 "y"
                 "-(-xgm1!1) ^ n!2"
                 "n0y"
                 "n!2"))
               (replace -1 2)
               (expand "factorial" 2 2)
               (assert)
               (case-replace "xgm1!1=0")
               (("1"
                 (expand "^" 2 3)
                 (expand "^" 2 1)
                 (expand "expt")
                 (assert))
                ("2"
                 (lemma "div_expt" ("n0x" "xgm1!1" "n0y" "-1" "i" "n!2"))
                 (("1" (assert) (replace -1) (assert))
                  ("2" (assert))))))))))
          ("2" (skosimp*))
          ("3" (skosimp*) (assert) (rewrite "nderiv_ln"))))
        ("2"
         (expand "/=" 1)
         (replace -1)
         (rewrite "ln_1")
         (expand "^" 1)
         (expand "expt" 1)
         (assert)
         (rewrite "zero_times1")
         (simplify 1)
         (expand "ln_estimate")
         (hide-all-but 1)
         (lemma "sigma_zero[nat]" ("low" "0" "high" "n!1"))
         (lemma "sigma_eq[nat]"
          ("low"
           "0"
           "high"
           "n!1"
           "F"
           "LAMBDA (i: nat): 0"
           "G"
           "LAMBDA (nn: nat): IF nn = 0 THEN 0 ELSE -(-0) ^ nn / nn ENDIF"))
         (("1"
           (split -1)
           (("1" (assert))
            ("2"
             (hide -1 2)
             (skosimp*)
             (case "n!2=0")
             (("1" (assert))
              ("2" (assert) (expand "^") (expand "expt") (assert))))))
          ("2" (skosimp*))))))
      ("2"
       (hide -1 -2)
       (typepred "xgm1!1")
       (typepred "c!1")
       (replace -3)
       (replace -4)
       (propax))))
    ("2" (hide 2) (skosimp*) (inst + "x!1+1") (assert))
    ("3" (hide 2) (skosimp*) (assert))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: ln_exp_series_alt
signature: nil
run_date: Unknown date
run_time: ----
status: unchecked
description: nil
script:
  (""
   (skosimp*)
   (lemma "Taylors" ("f" "exp" "n" "n!1" "aa" "0" "bb" "x!1"))
   (lemma "nderiv_exp")
   (inst?)
   (flatten)
   (replace -1)
   (skosimp*)
   (inst + "c!1")
   (replace -2)
   (expand "exp_estimate")
   (lemma "sigma_eq[nat]"
    ("low"
     "0"
     "high"
     "n!1"
     "F"
     "LAMBDA (nn:nat):
                       IF nn > n!1 THEN 0
                       ELSIF nn = 0 THEN exp(0)
                       ELSE nderiv(nn, exp)(0) * (x!1 - 0) ^ nn / factorial(nn)
                       ENDIF"
     "G"
     "LAMBDA (nn: nat): IF nn = 0 THEN 1 ELSE x!1 ^ nn / factorial(nn) ENDIF"))
   (("1"
     (split -1)
     (("1" (assert) (expand "expT") (replace -1 1 rl) (propax))
      ("2"
       (hide 2)
       (skosimp*)
       (typepred "n!2")
       (assert)
       (lemma "nderiv_exp")
       (inst - "n!2")
       (flatten)
       (hide -1)
       (replace -1)
       (rewrite "exp_0")
       (case "n!2=0")
       (("1" (assert)) ("2" (assert))))))
    ("2"
     (hide 2)
     (skosimp*)
     (hide 2)
     (lemma "nderiv_exp")
     (inst?)
     (flatten))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: ln_exp_series_alt
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "exp_taylors" ("x" "x!1" "n" "n!1"))
   (skosimp*)
   (typepred "c!1")
   (lemma "trichotomy" ("x" "x!1"))
   (case "exp(x!1) - exp_estimate(x!1, n!1) = exp(c!1) * x!1 ^ (n!1 + 1) / factorial(n!1 + 1)")
   (("1"
     (replace -1)
     (rewrite "abs_div" 1)
     (expand "abs" 1 2)
     (lemma "both_sides_div_pos_le1"
      ("x"
       "abs(exp(c!1) * x!1 ^ (1 + n!1))"
       "y"
       "max(exp(x!1),1) * x!1 ^ (1 + n!1)"
       "pz"
       "factorial(1 + n!1)"))
     (hide -1 -2 -7)
     (rewrite "abs_mult")
     (expand "abs" 1 1)
     (case "exp(c!1)<=max(exp(x!1),1)")
     (("1"
       (split -2)
       (("1"
         (lemma "expt_pos" ("px" "x!1" "i" "1+n!1"))
         (("1"
           (expand "abs" 1)
           (lemma "exp_strict_increasing")
           (expand "strict_increasing?")
           (inst-cp - "0" "c!1")
           (inst - "c!1" "x!1")
           (rewrite "exp_0")
           (assert)
           (flatten -6)
           (expand "max")
           (assert)
           (lemma "both_sides_times_pos_lt1"
            ("x" "exp(c!1)" "y" "exp(x!1)" "pz" "x!1^(1+n!1)"))
           (assert)
           (lemma "both_sides_div_pos_lt1"
            ("x"
             "exp(c!1) * x!1 ^ (1 + n!1)"
             "y"
             "exp(x!1) * x!1 ^ (1 + n!1)"
             "pz"
             "factorial(1+n!1)"))
           (assert))
          ("2" (assert))))
        ("2"
         (replace -1)
         (replace -5)
         (rewrite "exp_0")
         (expand "max")
         (expand "^")
         (expand "expt")
         (expand "abs")
         (assert))
        ("3"
         (lemma "exp_strict_increasing")
         (expand "strict_increasing?")
         (assert)
         (hide -4 -6)
         (flatten -4)
         (inst-cp - "x!1" "c!1")
         (inst - "c!1" "0")
         (rewrite "exp_0")
         (expand "max")
         (assert)
         (typepred "exp(c!1)")
         (hide -1 -3)
         (case "abs(x!1 ^ (1 + n!1)) = abs(x!1) ^ (1 + n!1)")
         (("1"
           (lemma "posreal_div_posreal_is_posreal"
            ("px" "abs(x!1) ^ (1 + n!1)" "py" "factorial(1 + n!1)"))
           (("1"
             (lemma "both_sides_times_pos_le1"
              ("x"
               "exp(c!1)"
               "y"
               "1"
               "pz"
               "abs(x!1) ^ (1 + n!1) / factorial(1 + n!1)"))
             (("1" (assert) (replace -3 1) (assert)) ("2" (propax))))
            ("2"
             (hide 2)
             (lemma "expt_pos" ("px" "abs(x!1)" "i" "1+n!1"))
             (("1" (propax)) ("2" (hide 2) (expand "abs") (assert))))))
          ("2"
           (hide 2)
           (case "FORALL (n:nat): abs(x!1^n) = abs(x!1)^n")
           (("1" (inst - "1+n!1"))
            ("2"
             (hide-all-but (-4 1))
             (induct "n")
             (("1"
               (rewrite "expt_x0")
               (rewrite "expt_x0")
               (expand "abs")
               (propax))
              ("2"
               (skosimp*)
               (expand "^")
               (expand "expt" 1)
               (rewrite "abs_mult" 1)
               (assert))))))))))
      ("2"
       (hide 2)
       (expand "max")
       (lemma "exp_strict_increasing")
       (expand "strict_increasing?")
       (split -2)
       (("1"
         (assert)
         (flatten -3)
         (inst-cp - "0" "c!1")
         (inst - "c!1" "x!1")
         (rewrite "exp_0")
         (assert))
        ("2"
         (assert)
         (replace -1)
         (replace -3)
         (rewrite "exp_0")
         (assert))
        ("3"
         (assert)
         (flatten -4)
         (inst-cp - "x!1" "c!1")
         (inst - "c!1" "0")
         (rewrite "exp_0")
         (assert))))))
    ("2" (assert))))


proof_type: t_proof
decl_type: tcc
library: lnexp
theory: ln_exp_series_alt
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (typepred "n!1")
   (name "NP1" "n!1+1")
   (replace -1)
   (lift-if)
   (name "zP1" "z!1+1")
   (replace -1)
   (ground)
   (mult-cases -2))


proof_type: t_proof
decl_type: tcc
library: lnexp
theory: ln_exp_series_alt
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (case "forall (n:nat,x:real): -1 <= x & x <= 1 => -1 <= x^n & x^n <= 1")
   (("1"
     (skosimp)
     (case-replace "x!1=0")
     (("1" (expand "^" 1) (expand "expt" 1) (propax))
      ("2"
       (case-replace "n!1=0")
       (("1" (rewrite "expt_x1") (assert))
        ("2"
         (inst - "n!1+1" "-x!1")
         (assert)
         (flatten)
         (rewrite "div_mult_pos_lt2" 3)
         (rewrite "div_mult_pos_le1" 3)
         (assert))))))
    ("2"
     (hide 2)
     (skolem 1 ("_" "x"))
     (induct "n")
     (("1" (expand "^" 1) (expand "expt" 1) (propax))
      ("2"
       (skosimp*)
       (assert)
       (flatten)
       (expand "^")
       (expand "expt" 1)
       (lemma "trichotomy" ("x" "x"))
       (split -1)
       (("1"
         (lemma "both_sides_times_pos_le1" ("pz" "x"))
         (("1"
           (inst-cp - "-1" "expt(x, j!1)")
           (inst - "expt(x, j!1)" "1")
           (assert))
          ("2" (assert))))
        ("2" (replace -1) (assert))
        ("3"
         (lemma "both_sides_times_neg_le1" ("nz" "x"))
         (("1"
           (inst-cp - "expt(x, j!1)" "-1")
           (inst - "1" "expt(x, j!1)")
           (assert))
          ("2" (assert))))))))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: ln_exp_ineq
signature: nil
run_date: Unknown date
run_time: ----
status: unchecked
description: nil
script:
  (""
   (skolem + "x")
   (name "z" "1+x")
   (name "foo" "z-1")
   (typepred "x")
   (replace -4)
   (replace -4 -3 rl)
   (replace -3 (1 -1 -2))
   (replace -4)
   (replace -3 (-1 -2 1) rl)
   (hide -3 -4)
   (simplify -2)
   (assert)
   (lemma "both_sides_plus_gt1" ("z" "1" "x" "z-1" "y" "-1"))
   (replace -1 -3 rl)
   (simplify -3)
   (hide -1)
   (name "F" "LAMBDA (x:posreal): x - 1 - ln(x)")
   (name "G" "LAMBDA (x:posreal): ln(x) - (x-1)/x")
   (case "FORALL (x, y: posreal), (z: real): x <= z AND z <= y IMPLIES z >= 0 AND z > 0")
   (("1"
     (case "FORALL (x: posreal): EXISTS (y: posreal): x /= y")
     (("1"
       (lemma "ln_derivable")
       (flatten -1)
       (lemma "const_derivable_fun[posreal]" ("b" "1"))
       (("1"
         (lemma "identity_derivable_fun[posreal]")
         (lemma "diff_derivable_fun[posreal]")
         (inst-cp -1 "I[posreal]" "const_fun(1)")
         (inst-cp - "I[posreal] - const_fun(1)" "ln")
         (lemma "div_derivable_fun[posreal]"
          ("f" "I[posreal]-const_fun(1)" "g" "I[posreal]"))
         (inst - "ln" "(I[posreal]-const_fun(1))/I[posreal]")
         (lemma "deriv_const_fun[posreal]" ("b" "1"))
         (lemma "deriv_id_fun[posreal]")
         (lemma "deriv_diff_fun[posreal]")
         (replace -10)
         (replace -9)
         (replace -8)
         (replace -7)
         (replace -4)
         (expand "I")
         (expand "const_fun")
         (expand "-" (-4 -5 -6 -7))
         (expand "/" (-4 -5))
         (inst-cp - "LAMBDA (x: posreal): x" "LAMBDA (x: posreal): 1")
         (inst-cp - "LAMBDA (x:posreal): x - 1" "ln")
         (lemma "deriv_div_fun[posreal]"
          ("ff" "LAMBDA (x:posreal): x-1" "gg" "LAMBDA (x:posreal): x"))
         (("1"
           (inst - "ln" "LAMBDA (x:posreal): (x-1)/x")
           (expand "-" (-1 -2 -3 -4))
           (expand "/")
           (expand "*")
           (replace -14)
           (replace -6)
           (replace -5)
           (simplify)
           (replace -4)
           (simplify -1)
           (replace -1)
           (simplify -2)
           (simplify -3)
           (replace -18)
           (replace -17)
           (hide-all-but (-2 -3 -8 -9 -15 -16 -17 -18 -19 -20 1))
           (assert)
           (lemma "minimum_derivative[posreal]")
           (inst - "F" "1" "z")
           (lemma "minimum_derivative[posreal]")
           (inst - "G" "1" "z")
           (replace -3)
           (replace -4)
           (simplify -1)
           (simplify -2)
           (replace -9 -1 rl)
           (replace -10 -2 rl)
           (simplify -1)
           (simplify -2)
           (rewrite "ln_1")
           (simplify -2)
           (split -1)
           (("1"
             (split -2)
             (("1" (assert))
              ("2"
               (hide-all-but 1)
               (skosimp)
               (rewrite "div_cancel1")
               (lemma "trich_lt" ("x" "y!1" "y" "1"))
               (split -1)
               (("1"
                 (lemma "negreal_times_negreal_is_posreal"
                  ("nx" "y!1-1" "ny" "y!1-1"))
                 (("1"
                   (lemma "both_sides_div_pos_gt1"
                    ("x" "(y!1-1)*(y!1-1)" "y" "0" "pz" "y!1"))
                   (assert))
                  ("2" (assert))))
                ("2" (propax))
                ("3"
                 (lemma "posreal_times_posreal_is_posreal"
                  ("px" "y!1-1" "py" "y!1-1"))
                 (("1"
                   (lemma "both_sides_div_pos_gt1"
                    ("x" "(y!1-1)*(y!1-1)" "y" "0" "pz" "y!1"))
                   (assert))
                  ("2" (assert))))))))
            ("2"
             (hide-all-but 1)
             (skosimp*)
             (rewrite "div_cancel1")
             (lemma "div_times"
              ("x" "y!1" "n0x" "1" "y" "1" "n0y" "y!1*y!1"))
             (replace -1 2)
             (simplify 2)
             (simplify 2)
             (lemma "div_cancel1" ("x" "1/y!1" "n0z" "y!1"))
             (rewrite "div_div2" -1)
             (replace -1)
             (hide -1)
             (lemma "trich_lt" ("x" "y!1" "y" "1"))
             (split -1)
             (("1"
               (lemma "negreal_times_negreal_is_posreal"
                ("nx" "y!1-1" "ny" "y!1-1"))
               (("1"
                 (lemma "both_sides_div_pos_gt1"
                  ("pz" "y!1*y!1" "x" "(y!1-1)*(y!1-1)" "y" "0"))
                 (assert))
                ("2" (assert))))
              ("2" (propax))
              ("3"
               (lemma "posreal_times_posreal_is_posreal"
                ("px" "y!1-1" "py" "y!1-1"))
               (("1"
                 (lemma "both_sides_div_pos_gt1"
                  ("pz" "y!1*y!1" "x" "(y!1-1)*(y!1-1)" "y" "0"))
                 (assert))
                ("2" (assert))))))))
          ("2" (propax)) ("3" (propax))))
        ("2" (propax)) ("3" (propax))))
      ("2" (skosimp*) (inst + "x!1+1") (assert))))
    ("2" (skosimp*) (assert))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: ln_exp_ineq
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (typepred "xlt1!1")
   (lemma "ln_ineq1" ("xgtm1" "-xlt1!1"))
   (flatten)
   (lemma "both_sides_times_neg_lt1" ("nz" "-1"))
   (inst-cp - "-xlt1!1" "ln(1 + -xlt1!1)")
   (inst - "ln(1 + -xlt1!1)" "-xlt1!1 / (1 + -xlt1!1)")
   (assert))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: ln_exp_ineq
signature: nil
run_date: Unknown date
run_time: ----
status: unchecked
description: nil
script:
  (""
   (skosimp)
   (expand "abs")
   (lemma "ln_strict_increasing")
   (expand "strict_increasing?")
   (inst - "1-px!1" "1")
   (("1"
     (rewrite "ln_1")
     (assert)
     (lemma "both_sides_plus_lt1"
      ("z" "ln(1-px!1)" "x" "-ln(1 - px!1)" "y" "3 * px!1 / 2"))
     (replace -1 1 rl)
     (hide -1)
     (simplify 1)
     (assert)
     (rewrite "inverse_add" 1)
     (case "px!1<=1/3")
     (("1"
       (lemma "ln_ineq1" ("xgtm1" "-px!1"))
       (flatten)
       (case "px!1/(1-px!1) <= 3*px!1/2")
       (("1" (assert))
        ("2"
         (hide -1 -2 -4 -5 2)
         (lemma "both_sides_times_pos_le1"
          ("pz" "px!1" "x" "1/(1-px!1)" "y" "3/2"))
         (replace -1 1)
         (hide -1)
         (rewrite "div_mult_pos_le1" 1)
         (lemma "both_sides_times_neg_le1" ("nz" "-3/2"))
         (inst - "1/3" "px!1")
         (assert))))
      ("2"
       (case "1/3<px!1")
       (("1"
         (hide 1)
         (name "G" "lambda (x:{x:posreal| 1/3<x&x<1}): ln(1-x) + 3/2*x")
         (case "G(5828/10000)>0")
         (("1"
           (case "strict_decreasing?(G)")
           (("1"
             (expand "strict_decreasing?")
             (expand "<=" -6)
             (split -6)
             (("1"
               (inst - "px!1" "5828/10000")
               (assert)
               (expand "G" -2 2)
               (assert))
              ("2" (replace -1) (expand "G" -3) (assert))))
            ("2"
             (hide -1 2 -4)
             (lemma
              "identity_derivable_fun[{x: posreal | 1 / 3 < x & x < 1}]")
             (("1"
               (lemma "deriv_id_fun[{x: posreal | 1 / 3 < x & x < 1}]")
               (lemma
                "const_derivable_fun[{x: posreal | 1 / 3 < x & x < 1}]"
                ("b" "1"))
               (lemma "deriv_const_fun[{x: posreal | 1 / 3 < x & x < 1}]"
                ("b" "1"))
               (expand "I")
               (expand "const_fun")
               (lemma
                "diff_derivable_fun[{x: posreal | 1 / 3 < x & x < 1}]"
                ("f1"
                 "LAMBDA (x: {x: posreal | 1 / 3 < x & x < 1}): 1"
                 "f2"
                 "LAMBDA (x: {x: posreal | 1 / 3 < x & x < 1}): x"))
               (assert)
               (expand "-")
               (lemma "deriv_diff_fun[{x: posreal | 1 / 3 < x & x < 1}]"
                ("ff1"
                 "LAMBDA (x: {x: posreal | 1 / 3 < x & x < 1}): 1"
                 "ff2"
                 "LAMBDA (x: {x: posreal | 1 / 3 < x & x < 1}): x"))
               (replace -5)
               (replace -3)
               (expand "-")
               (lemma
                "scal_derivable_fun[{x: posreal | 1 / 3 < x & x < 1}]"
                ("f"
                 "LAMBDA (x: {x: posreal | 1 / 3 < x & x < 1}): x"
                 "b"
                 "3/2"))
               (assert)
               (lemma "deriv_scal_fun[{x: posreal | 1 / 3 < x & x < 1}]"
                ("ff"
                 "LAMBDA (x: {x: posreal | 1 / 3 < x & x < 1}): x"
                 "b"
                 "3/2"))
               (replace -7)
               (expand "*")
               (lemma "ln_derivable")
               (flatten)
               (lemma
                "composition_derivable_fun[{x: posreal | 1 / 3 < x & x < 1},posreal]"
                ("f"
                 "LAMBDA (x: {x: posreal | 1 / 3 < x & x < 1}): 1 - x"
                 "g"
                 "ln"))
               (("1"
                 (assert)
                 (expand "o")
                 (lemma
                  "deriv_comp_fun[{x: posreal | 1 / 3 < x & x < 1},posreal]"
                  ("ff"
                   "LAMBDA (x: {x: posreal | 1 / 3 < x & x < 1}): 1 - x"
                   "gg"
                   "ln"))
                 (replace -4)
                 (replace -7)
                 (expand "o")
                 (expand "*")
                 (lemma
                  "sum_derivable_fun[{x: posreal | 1 / 3 < x & x < 1}]"
                  ("f1"
                   "LAMBDA (x: {x: posreal | 1 / 3 < x & x < 1}): ln(1 - x)"
                   "f2"
                   "LAMBDA (x: {x: posreal | 1 / 3 < x & x < 1}): 3 / 2 * x"))
                 (assert)
                 (expand "+")
                 (lemma "deriv_sum_fun[{x: posreal | 1 / 3 < x & x < 1}]"
                  ("ff1"
                   "LAMBDA (x: {x: posreal | 1 / 3 < x & x < 1}): ln(1 - x)"
                   "ff2"
                   "LAMBDA (x: {x: posreal | 1 / 3 < x & x < 1}): 3 / 2 * x"))
                 (replace -3)
                 (replace -7)
                 (expand "+")
                 (replace -15)
                 (lemma
                  "negative_derivative[{x: posreal | 1 / 3 < x & x < 1}]"
                  ("g" "G"))
                 (split -1)
                 (("1" (propax))
                  ("2"
                   (hide 2)
                   (skosimp)
                   (typepred "x!1")
                   (expand "deriv" -5)
                   (lemma "extensionality_postulate"
                    ("f"
                     "(LAMBDA (x: {x: posreal | 1 / 3 < x & x < 1}): deriv(G, x))"
                     "g"
                     "(LAMBDA (x_1: {x: posreal | 1 / 3 < x & x < 1}):
                                                    3 / 2 + (1 / (1 - x_1)) * -1)"))
                   (("1"
                     (replace -1 -6 rl)
                     (hide -1)
                     (inst -5 "x!1")
                     (replace -5)
                     (hide-all-but (-1 -2 -3 -4 1))
                     (lemma "div_mult_pos_lt2"
                      ("z" "1" "x" "3/2" "py" "1-x!1"))
                     (assert))
                    ("2"
                     (skosimp*)
                     (typepred "x!3")
                     (case-replace "x!3=1/2")
                     (("1" (inst + "2/3") (assert))
                      ("2" (inst + "1/2") (assert))))
                    ("3" (skosimp*) (assert))
                    ("4" (expand "derivable" -6) (propax))))))
                ("2" (skosimp) (inst + "2*x!1") (assert))
                ("3" (skosimp) (assert))))
              ("2"
               (skosimp)
               (case-replace "x!1=1/2")
               (("1" (inst + "2/3") (assert))
                ("2" (inst + "1/2") (assert))))
              ("3" (skosimp) (assert))))))
          ("2"
           (hide 2 -3 -2 -4)
           (replace -1 1 rl)
           (assert)
           (hide -1)
           (lemma "ln_estimate_bnd")
           (inst - "19" "-5828/10000")
           (assert)
           (expand "abs" -1 2)
           (name-replace "DRL1" "ln(1-5828/10000)")
           (lemma "expt_times" ("n0x" "5828/10000" "i" "4" "j" "5"))
           (replace -1)
           (case "(5828 / 10000) ^ 4 = 1153660896461056 / 10000000000000000")
           (("1"
             (replace -1)
             (hide -2)
             (case-replace
              "(1153660896461056 / 10000000000000000) ^ 5 /
                                  (20 + 20 * (-5828 / 10000)) = (1153660896461056 / 10000000000000000) ^ 5 *10000/83440")
             (("1"
               (hide -1)
               (case-replace
                "(1153660896461056 / 10000000000000000) ^ 5 = 2043576321503877532268812309827579231198161568314157086599156544970504011776/100000000000000000000000000000000000000000000000000000000000000000000000000000000")
               (("1"
                 (hide -1)
                 (hide -1)
                 (name "DRL2" "ln_estimate(-5828 / 10000, 19)")
                 (replace -1)
                 (case-replace
                  "2043576321503877532268812309827579231198161568314157086599156544970504011776
                                          /
                                          100000000000000000000000000000000000000000000000000000000000000000000000000000000
                                          * 10000
                                          / 83440 = 2043576321503877532268812309827579231198161568314157086599156544970504011776
                                          /834400000000000000000000000000000000000000000000000000000000000000000000000000000")
                 (("1"
                   (hide -1)
                   (expand "ln_estimate")
                   (expand "sigma")
                   (expand "sigma")
                   (expand "sigma")
                   (expand "sigma")
                   (expand "sigma")
                   (expand "sigma")
                   (expand "sigma")
                   (expand "sigma")
                   (expand "sigma")
                   (expand "sigma")
                   (expand "sigma")
                   (expand "sigma")
                   (expand "sigma")
                   (expand "sigma")
                   (expand "sigma")
                   (expand "sigma")
                   (expand "sigma")
                   (expand "sigma")
                   (expand "sigma")
                   (expand "sigma")
                   (case-replace "-(-5828 / 10000) = 5828/10000")
                   (("1"
                     (hide -1)
                     (lemma "expt_times" ("n0x" "5828/10000"))
                     (lemma "expt_plus" ("n0x" "5828/10000"))
                     (rewrite "expt_x1" -3)
                     (case "(5828 / 10000) ^ 2 = 33965584/100000000")
                     (("1"
                       (replace -1)
                       (inst-cp - "1" "2")
                       (lemma "expt_x1")
                       (inst - "5828/10000")
                       (replace -1)
                       (replace -2)
                       (replace -4)
                       (case-replace
                        "5828 / 10000 * (33965584 / 100000000) = 197951423552/1000000000000")
                       (("1"
                         (hide -1)
                         (inst-cp - "2" "2")
                         (replace -2)
                         (case-replace
                          "33965584 / 100000000 * (33965584 / 100000000) = 1153660896461056 / 10000000000000000")
                         (("1"
                           (hide -1)
                           (replace -4)
                           (inst-cp - "2" "3")
                           (replace -2)
                           (replace -6)
                           (case-replace
                            "33965584 / 100000000 * (197951423552 / 1000000000000) = 6723535704575034368/100000000000000000000")
                           (("1"
                             (replace -5)
                             (hide -1)
                             (inst-cp - "3" "3")
                             (replace -7)
                             (case-replace
                              "197951423552 / 1000000000000 * (197951423552 / 1000000000000) = 39184766086263300296704/1000000000000000000000000")
                             (("1"
                               (hide -1)
                               (replace -4)
                               (simplify -4)
                               (simplify -5)
                               (simplify -6)
                               (simplify -7)
                               (inst-cp - "3" "4")
                               (replace -8)
                               (replace -7)
                               (simplify -4)
                               (replace -4)
                               (hide -9)
                               (inst-cp - "4" "4")
                               (replace -8)
                               (replace -4)
                               (inst-cp - "4" "5")
                               (replace -8)
                               (replace -9)
                               (replace -4)
                               (inst-cp - "5" "5")
                               (replace -9)
                               (replace -4)
                               (inst-cp - "5" "6")
                               (replace -9)
                               (replace -10)
                               (replace -4)
                               (inst-cp - "6" "6")
                               (replace -10)
                               (replace -4)
                               (case-replace
                                "(197951423552 / 1000000000000 *
                                                                        (1153660896461056 / 10000000000000000)) = 228368816750742514129190912/10000000000000000000000000000")
                               (("1"
                                 (hide -1)
                                 (inst-cp - "6" "7")
                                 (replace -10)
                                 (replace -11)
                                 (replace -4)
                                 (inst-cp - "7" "7")
                                 (replace -11)
                                 (replace -4)
                                 (inst-cp - "7" "8")
                                 (replace -12)
                                 (replace -11)
                                 (replace -4)
                                 (inst-cp - "8" "8")
                                 (replace -12)
                                 (replace -4)
                                 (inst-cp - "8" "9")
                                 (replace -12)
                                 (replace -13)
                                 (replace -4)
                                 (inst-cp - "9" "9")
                                 (replace -13)
                                 (replace -4)
                                 (inst - "9" "10")
                                 (replace -12)
                                 (replace -13)
                                 (replace -3)
                                 (hide-all-but (-20 -21 1))
                                 (expand "abs" -2)
                                 (assert))
                                ("2" (assert))))
                              ("2" (assert))))
                            ("2" (assert))))
                          ("2" (assert))))
                        ("2" (assert))))
                      ("2"
                       (expand "^" 1)
                       (expand "expt")
                       (expand "expt")
                       (expand "expt")
                       (assert))))
                    ("2" (assert))))
                  ("2" (assert))))
                ("2"
                 (hide-all-but 1)
                 (expand "^")
                 (expand "expt")
                 (expand "expt")
                 (expand "expt")
                 (expand "expt")
                 (expand "expt")
                 (expand "expt")
                 (assert))))
              ("2" (hide-all-but 1) (assert))))
            ("2" (hide-all-but 1) (grind))))))
        ("2" (assert))))))
    ("2" (assert))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: ln_exp_ineq
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "ln_ineq1" ("xgtm1" "px!1-1"))
   (("1" (flatten) (assert))
    ("2"
     (assert)
     (case "px!1=1")
     (("1" (replace -1 2) (rewrite "ln_1") (assert)) ("2" (assert))))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: ln_exp_ineq
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (lemma "ln_ineq4" ("px" "px!1"))
   (case-replace "px!1=1")
   (("1" (rewrite "ln_1") (rewrite "exp_0") (assert))
    ("2"
     (case "ln(px!1)/=0")
     (("1"
       (lemma "nzreal_div_nzreal_is_nzreal"
        ("nzx" "ln(px!1)" "nzy" "pn!1"))
       (("1"
         (lemma "div_mult_pos_lt1"
          ("py" "pn!1" "z" "ln(px!1)" "x" "exp(ln(px!1) / pn!1) - 1"))
         (assert)
         (hide 3)
         (case "forall (nzx:nzreal): nzx+1 < exp(nzx)")
         (("1" (inst - "ln(px!1)/pn!1") (assert))
          ("2"
           (hide-all-but 1)
           (skosimp)
           (case "nzx!1<= -1")
           (("1" (typepred "exp(nzx!1)") (assert))
            ("2"
             (lemma "ln_ineq1" ("xgtm1" "nzx!1"))
             (("1"
               (flatten)
               (hide -1)
               (lemma "exp_strict_increasing")
               (expand "strict_increasing?")
               (inst - "ln(1 + nzx!1)" "nzx!1")
               (("1" (assert) (rewrite "exp_ln")) ("2" (assert))))
              ("2" (assert))))))))
        ("2" (propax))))
      ("2"
       (lemma "ln_strict_increasing")
       (expand "strict_increasing?")
       (hide -2 3)
       (lemma "trich_lt" ("x" "px!1" "y" "1"))
       (split -1)
       (("1" (inst - "px!1" "1") (rewrite "ln_1") (assert))
        ("2" (propax))
        ("3" (inst - "1" "px!1") (rewrite "ln_1") (assert))))))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: ln_exp_ineq
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (typepred "xalt1!1")
   (lemma "trichotomy" ("x" "xalt1!1"))
   (split -1)
   (("1"
     (expand "abs")
     (assert)
     (lemma "ln_strict_increasing")
     (expand "strict_increasing?")
     (inst - "1" "1+xalt1!1")
     (rewrite "ln_1")
     (assert)
     (lemma "ln_mult" ("px" "1 + xalt1!1" "py" "1 - xalt1!1"))
     (lemma "sq_nz_pos" ("nz" "xalt1!1"))
     (lemma "sq_lt" ("nna" "abs(xalt1!1)" "nnb" "1"))
     (rewrite "sq_1")
     (rewrite "sq_abs")
     (expand "abs" -1)
     (lemma "ln_ineq1" ("xgtm1" "-sq(xalt1!1)"))
     (("1" (flatten) (expand "sq") (assert)) ("2" (assert))))
    ("2" (replace -1) (expand "abs") (rewrite "ln_1") (assert))
    ("3"
     (expand "abs")
     (assert)
     (lemma "ln_strict_increasing")
     (expand "strict_increasing?")
     (inst - "1+xalt1!1" "1")
     (rewrite "ln_1")
     (assert))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: ln_exp_ineq
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skolem + "x")
   (typepred "x")
   (lemma "ln_ineq1" ("xgtm1" "-x"))
   (lemma "exp_strict_increasing")
   (expand "strict_increasing?")
   (inst-cp - "ln(1-x)" "-x")
   (inst - "-x/(1-x)" "ln(1-x)")
   (flatten -3)
   (lemma "exp_ln" ("py" "1-x"))
   (assert))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: ln_exp_ineq
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skolem + "x")
   (lemma "exp_ineq1")
   (lemma "trichotomy" ("x" "x"))
   (split -1)
   (("1" (inst - "-x") (("1" (assert)) ("2" (assert)))) ("2" (assert))
    ("3"
     (lemma "trich_lt" ("x" "x" "y" "-1"))
     (split -1)
     (("1" (typepred "exp(x)") (assert))
      ("2" (typepred "exp(x)") (assert))
      ("3" (inst - "-x") (("1" (flatten) (assert)) ("2" (assert))))))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: ln_exp_ineq
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skolem 1 "x")
   (name "z" "1-1/(1-x)")
   (case "x = z/(z-1)")
   (("1"
     (lemma "exp_ineq1" ("xlt1" "z"))
     (("1"
       (flatten)
       (case "-z/(1-z) = x")
       (("1"
         (case "1-z = 1/(1-x)")
         (("1" (replace -2 -3) (replace -1 -3) (propax))
          ("2" (replace -5 1 rl) (assert))))
        ("2" (replace -3 1) (rewrite "cross_mult" 1)) ("3" (assert))))
      ("2"
       (assert)
       (hide 2)
       (typepred "x")
       (hide -2 -3)
       (lemma "both_sides_minus_lt2" ("z" "1" "y" "x" "x" "1"))
       (flatten -1)
       (lemma "posreal_div_posreal_is_posreal" ("px" "1" "py" "1-x"))
       (assert)
       (replace -5 1 rl)
       (assert))))
    ("2"
     (hide 2)
     (lemma "div_cancel4" ("y" "x" "x" "z" "n0z" "z-1"))
     (replace -1 1)
     (hide -1)
     (replace -1 1 rl)
     (grind))
    ("3"
     (typepred "x")
     (hide 2)
     (simplify 1)
     (lemma "nzreal_div_nzreal_is_nzreal" ("nzx" "-1" "nzy" "1-x"))
     (assert))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: ln_series
signature: nil
run_date: Unknown date
run_time: ----
status: unchecked
description: nil
script:
  (""
   (skosimp*)
   (lemma "Taylors[posreal]"
    ("f" "ln" "n" "n!1" "bb" "xgm1!1+1" "aa" "1"))
   (("1"
     (lemma "nderiv_ln" ("n" "n!1+1"))
     (replace -1)
     (skosimp*)
     (inst + "c!1")
     (("1"
       (lemma "ln_nderiv" ("n" "n!1+1"))
       (simplify -1)
       (replace -1 -3)
       (simplify -3)
       (rewrite "div_expt" 1)
       (("1"
         (expand "ln_estimate" 1)
         (lemma "sigma_eq[nat]"
          ("low"
           "0"
           "high"
           "n!1"
           "F"
           "LAMBDA (nn:nat):
                                            IF nn > n!1 THEN 0
                                            ELSIF nn = 0 THEN ln(1)
                                            ELSE nderiv(nn, ln)(1) * xgm1!1 ^ nn / factorial(nn)
                                            ENDIF"
           "G"
           "LAMBDA (nn: nat):
                                            IF nn = 0 THEN 0 ELSE -(-xgm1!1) ^ nn / nn ENDIF"))
         (("1"
           (split -1)
           (("1"
             (replace -1 -4)
             (name-replace "K1"
              "sigma(0, n!1,
                                                   LAMBDA (nn: nat):
                                                     IF nn = 0 THEN 0 ELSE -(-xgm1!1) ^ nn / nn ENDIF)")
             (replace -4 1)
             (hide-all-but 1)
             (typepred "c!1")
             (hide -1 -3 -4 -5)
             (expand "factorial" 1 2)
             (name-replace "K2" "factorial(n!1)")
             (lemma "div_cancel1"
              ("x"
               "((-1/ (-c!1) ^ (1 + n!1)) * xgm1!1 ^ (1 + n!1)) / (1+n!1)"
               "n0z"
               "K2"))
             (rewrite "div_div2" -1)
             (case "K2 * (((-1 / (-c!1) ^ (1 + n!1)) * xgm1!1 ^ (1 + n!1)) / (K2 + K2 * n!1)) = ((-K2 / (-c!1) ^ (1 + n!1)) * xgm1!1 ^ (1 + n!1)) / (K2 + K2 * n!1)")
             (("1" (replace -1) (replace -2) (hide -1 -2) (assert))
              ("2"
               (hide 2)
               (name-replace "K3" "K2 + K2 * n!1")
               (name-replace "K4" "xgm1!1 ^ (1 + n!1)")
               (name-replace "K5" "(-c!1) ^ (1 + n!1)")
               (assert))))
            ("2"
             (hide-all-but 1)
             (skosimp*)
             (typepred "n!2")
             (assert)
             (lift-if)
             (ground)
             (lemma "ln_nderiv")
             (inst?)
             (replace -1)
             (hide -1)
             (assert)
             (simplify 2)
             (lemma "cross_mult"
              ("x"
               "-factorial(n!2 - 1) / (-1) ^ n!2 * xgm1!1 ^ n!2"
               "n0x"
               "factorial(n!2)"
               "y"
               "-(-xgm1!1) ^ n!2"
               "n0y"
               "n!2"))
             (replace -1 2)
             (expand "factorial" 2 2)
             (case-replace "xgm1!1=0")
             (("1"
               (expand "^" 2 3)
               (expand "^" 2 1)
               (expand "expt")
               (assert))
              ("2"
               (hide -1)
               (field 3)
               (flatten)
               (expand "^")
               (lemma "expt_of_mult")
               (inst - "n!2" "-xgm1!1" "-1")
               (assert))))))
          ("2" (hide-all-but 1) (skosimp*))
          ("3" (skosimp*) (lemma "nderiv_ln") (inst?))))
        ("2"
         (assert)
         (flatten)
         (replace -1)
         (rewrite "ln_1")
         (expand "^" 1)
         (expand "expt" 1)
         (assert)
         (rewrite "zero_times1")
         (simplify 1)
         (expand "ln_estimate")
         (hide-all-but 1)
         (lemma "sigma_zero[nat]" ("low" "0" "high" "n!1"))
         (lemma "sigma_eq[nat]"
          ("low"
           "0"
           "high"
           "n!1"
           "F"
           "LAMBDA (i: nat): 0"
           "G"
           "LAMBDA (nn: nat): IF nn = 0 THEN 0 ELSE -(-0) ^ nn / nn ENDIF"))
         (("1"
           (split -1)
           (("1" (assert))
            ("2"
             (hide -1 2)
             (skosimp*)
             (case "n!2=0")
             (("1" (assert))
              ("2" (assert) (expand "^") (expand "expt") (assert))))))
          ("2" (skosimp*))))))
      ("2"
       (hide -1 -2)
       (typepred "xgm1!1")
       (typepred "c!1")
       (replace -3)
       (replace -4)
       (propax))))
    ("2" (hide 2) (skosimp*) (inst + "x!1+1") (assert))
    ("3" (hide 2) (skosimp*) (assert))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: ln_approx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (expand "ln_le2_lb")
   (expand "ln_le2_ub")
   (skosimp*)
   (lift-if)
   (prop)
   (("1" (assert)) ("2" (assert))
    ("3"
     (lemma "ln_taylors" ("xgm1" "x!1" "n" "2*n!1"))
     (("1"
       (skosimp*)
       (typepred "c!1")
       (assert)
       (hide -1 -3 -4)
       (replace -2)
       (hide -2)
       (flatten)
       (lemma "expt_plus" ("n0x" "x!1/-c!1" "i" "1" "j" "2*n!1"))
       (rewrite "expt_x1")
       (lemma "expt_times" ("n0x" "x!1/-c!1" "i" "2" "j" "n!1"))
       (case "(x!1 / -c!1) ^ 2 > 0")
       (("1"
         (lemma "expt_pos" ("px" "(x!1 / -c!1) ^ 2" "i" "n!1"))
         (("1"
           (case "((x!1 / -c!1) ^ (1 + 2 * n!1)) / (1 + 2 * n!1) < 0")
           (("1" (assert))
            ("2"
             (hide 2)
             (rewrite "div_mult_pos_lt1" 1)
             (lemma "posreal_times_posreal_is_posreal"
              ("px" "x!1" "py" "(x!1 / -c!1) ^ (2 * n!1)"))
             (("1"
               (lemma "both_sides_div_neg_lt1" ("nz" "-c!1"))
               (("1"
                 (inst - "x!1 * (x!1 / -c!1) ^ (2 * n!1)" "0")
                 (assert)
                 (replace -6)
                 (assert))
                ("2" (assert))))
              ("2" (assert))))))
          ("2" (assert))))
        ("2"
         (hide 2)
         (lemma "both_sides_div_neg_lt1" ("nz" "-c!1" "y" "0" "x" "x!1"))
         (("1"
           (lemma "negreal_times_negreal_is_posreal"
            ("nx" "x!1/-c!1" "ny" "x!1/-c!1"))
           (("1"
             (assert)
             (expand "^" 1)
             (expand "expt")
             (expand "expt")
             (expand "expt")
             (propax))
            ("2" (assert) (assert))))
          ("2" (assert))))))
      ("2" (assert))))
    ("4"
     (lemma "ln_taylors" ("xgm1" "x!1" "n" "1+2*n!1"))
     (("1"
       (skosimp*)
       (replace -1)
       (typepred "c!1")
       (assert)
       (hide -1 -3 -4)
       (flatten)
       (hide -3)
       (case "0<((x!1 / -c!1) ^ (2 + 2 * n!1)) / (2 + 2 * n!1)")
       (("1" (assert))
        ("2"
         (hide 2)
         (lemma "expt_times" ("n0x" "x!1/-c!1" "i" "2" "j" "1+n!1"))
         (lemma "expt_pos" ("px" "(x!1 / -c!1) ^ 2" "i" "1+n!1"))
         (("1"
           (assert)
           (lemma "posreal_div_posreal_is_posreal"
            ("px" "(x!1 / -c!1) ^ (2 + 2 * n!1)" "py" "2 + 2*n!1"))
           (assert))
          ("2"
           (hide -1 2)
           (lemma "both_sides_div_neg_lt1"
            ("nz" "-c!1" "y" "0" "x" "x!1"))
           (("1"
             (assert)
             (lemma "negreal_times_negreal_is_posreal"
              ("nx" "x!1/-c!1" "ny" "x!1/-c!1"))
             (expand "^")
             (expand "expt")
             (expand "expt")
             (expand "expt")
             (propax))
            ("2" (assert))))))))
      ("2" (assert))))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: ln_approx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "ln_gt1_lb")
   (expand "ln_gt1_ub")
   (typepred "log_nat(x!1,2)`2")
   (("1"
     (name-replace "m" "log_nat(x!1,2)`1")
     (name-replace "y" "log_nat(x!1,2)`2")
     (replaces -3)
     (rewrite "ln_mult")
     (rewrite "ln_expt")
     (lemma "ln_le2_bounds")
     (inst -1 "n!1" "1")
     (assert)
     (flatten)
     (case "m=0")
     (("1"
       (replaces -1)
       (rewrite "expt_x0")
       (assert)
       (lemma "ln_le2_bounds")
       (inst -1 "n!1" "y-1")
       (assert))
      ("2"
       (mult-by -1 "m")
       (mult-by -2 "m")
       (case "y=1")
       (("1"
         (replaces -1)
         (rewrite "ln_1")
         (expand "ln_le2_lb")
         (expand "ln_le2_ub")
         (assert))
        ("2"
         (lemma "ln_le2_bounds")
         (inst -1 "n!1" "y-1")
         (assert)
         (flatten)
         (assert))))))
    ("2" (assert))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: ln_approx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (expand "ln_ub")
   (expand "ln_lb")
   (skosimp*)
   (case-replace "px!1 < 1")
   (("1"
     (lemma "ln_gt1_bounds" ("x" "1/px!1" "n" "n!1"))
     (lemma "div_mult_pos_lt2" ("py" "px!1" "x" "1" "z" "1"))
     (assert)
     (flatten)
     (lemma "ln_div" ("px" "1" "py" "px!1"))
     (rewrite "ln_1")
     (lemma "both_sides_times_neg_lt1" ("nz" "-1"))
     (inst-cp - "ln(px!1)" "-ln_gt1_ub(n!1, 1 / px!1)")
     (inst - "-ln_gt1_lb(n!1, 1 / px!1)" "ln(px!1)")
     (assert))
    ("2"
     (case-replace "px!1=1")
     (("1" (rewrite "ln_1") (assert))
      ("2"
       (assert)
       (lemma "ln_gt1_bounds" ("n" "n!1" "x" "px!1"))
       (assert)
       (flatten)
       (assert))))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: exp_series
signature: nil
run_date: Unknown date
run_time: ----
status: unchecked
description: nil
script:
  (""
   (skosimp*)
   (lemma "Taylors" ("f" "exp" "n" "n!1" "aa" "0" "bb" "x!1"))
   (lemma "sigma_eq[nat]"
    ("low"
     "1"
     "high"
     "n!1"
     "F"
     "LAMBDA (nn:nat):
                             IF nn > n!1 THEN 0
                             ELSIF nn = 0 THEN exp(0)
                             ELSE nderiv(nn, exp)(0) * (x!1 - 0) ^ nn / factorial(nn)
                             ENDIF"
     "G"
     "LAMBDA (nn: nat): x!1 ^ nn / factorial(nn)"))
   (("1"
     (assert)
     (expand "exp_estimate")
     (split -1)
     (("1"
       (rewrite "sigma_first" -2)
       (("1"
         (replace -1)
         (hide -1)
         (lemma "nderiv_exp" ("n" "n!1+1"))
         (flatten)
         (assert))
        ("2"
         (case-replace "n!1 = 0")
         (("1"
           (assert)
           (expand "sigma")
           (split -3)
           (("1"
             (lemma "nderiv_exp")
             (inst?)
             (flatten)
             (replace -2)
             (propax))
            ("2" (lemma "nderiv_exp") (inst?) (flatten))))
          ("2" (assert))))))
      ("2"
       (skosimp*)
       (hide 2)
       (hide -1)
       (lemma "nderiv_exp")
       (inst?)
       (flatten)
       (replace -2)
       (assert))))
    ("2"
     (skosimp*)
     (assert)
     (hide - 4)
     (lemma "nderiv_exp")
     (inst?)
     (flatten))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: exp_series
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "exp_taylors" ("x" "x!1" "n" "n!1"))
   (skosimp*)
   (typepred "c!1")
   (lemma "trichotomy" ("x" "x!1"))
   (case "exp(x!1) - exp_estimate(x!1, n!1) = exp(c!1) * x!1 ^ (n!1 + 1) / factorial(n!1 + 1)")
   (("1"
     (replace -1)
     (rewrite "abs_div" 1)
     (expand "abs" 1 2)
     (lemma "both_sides_div_pos_le1"
      ("x"
       "abs(exp(c!1) * x!1 ^ (1 + n!1))"
       "y"
       "max(exp(x!1),1) * x!1 ^ (1 + n!1)"
       "pz"
       "factorial(1 + n!1)"))
     (hide -1 -2 -7)
     (rewrite "abs_mult")
     (expand "abs" 1 1)
     (case "exp(c!1)<=max(exp(x!1),1)")
     (("1"
       (split -2)
       (("1"
         (lemma "expt_pos" ("px" "x!1" "i" "1+n!1"))
         (("1"
           (expand "abs" 1)
           (lemma "exp_strict_increasing")
           (expand "strict_increasing?")
           (inst-cp - "0" "c!1")
           (inst - "c!1" "x!1")
           (rewrite "exp_0")
           (assert)
           (flatten -6)
           (expand "max")
           (assert)
           (lemma "both_sides_times_pos_lt1"
            ("x" "exp(c!1)" "y" "exp(x!1)" "pz" "x!1^(1+n!1)"))
           (assert)
           (lemma "both_sides_div_pos_lt1"
            ("x"
             "exp(c!1) * x!1 ^ (1 + n!1)"
             "y"
             "exp(x!1) * x!1 ^ (1 + n!1)"
             "pz"
             "factorial(1+n!1)"))
           (assert))
          ("2" (assert))))
        ("2"
         (replace -1)
         (replace -5)
         (rewrite "exp_0")
         (expand "max")
         (expand "^")
         (expand "expt")
         (expand "abs")
         (assert))
        ("3"
         (lemma "exp_strict_increasing")
         (expand "strict_increasing?")
         (assert)
         (hide -4 -6)
         (flatten -4)
         (inst-cp - "x!1" "c!1")
         (inst - "c!1" "0")
         (rewrite "exp_0")
         (expand "max")
         (assert)
         (typepred "exp(c!1)")
         (hide -1 -3)
         (case "abs(x!1 ^ (1 + n!1)) = abs(x!1) ^ (1 + n!1)")
         (("1"
           (lemma "posreal_div_posreal_is_posreal"
            ("px" "abs(x!1) ^ (1 + n!1)" "py" "factorial(1 + n!1)"))
           (("1"
             (lemma "both_sides_times_pos_le1"
              ("x"
               "exp(c!1)"
               "y"
               "1"
               "pz"
               "abs(x!1) ^ (1 + n!1) / factorial(1 + n!1)"))
             (("1" (assert)) ("2" (propax))))
            ("2"
             (hide 2)
             (lemma "expt_pos" ("px" "abs(x!1)" "i" "1+n!1"))
             (("1" (propax)) ("2" (hide 2) (expand "abs") (assert))))))
          ("2"
           (hide 2)
           (case "FORALL (n:nat): abs(x!1^n) = abs(x!1)^n")
           (("1" (inst - "1+n!1"))
            ("2"
             (hide-all-but (-4 1))
             (induct "n")
             (("1"
               (rewrite "expt_x0")
               (rewrite "expt_x0")
               (expand "abs")
               (propax))
              ("2"
               (skosimp*)
               (expand "^")
               (expand "expt" 1)
               (rewrite "abs_mult" 1)
               (assert))))))))))
      ("2"
       (hide 2)
       (expand "max")
       (lemma "exp_strict_increasing")
       (expand "strict_increasing?")
       (split -2)
       (("1"
         (assert)
         (flatten -3)
         (inst-cp - "0" "c!1")
         (inst - "c!1" "x!1")
         (rewrite "exp_0")
         (assert))
        ("2"
         (assert)
         (replace -1)
         (replace -3)
         (rewrite "exp_0")
         (assert))
        ("3"
         (assert)
         (flatten -4)
         (inst-cp - "x!1" "c!1")
         (inst - "c!1" "0")
         (rewrite "exp_0")
         (assert))))))
    ("2" (assert))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: exp_approx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (expand "exp_neg_le1_lb")
   (expand "exp_neg_le1_ub")
   (skosimp)
   (case "FORALL (n:nat): 0 < x!1^(2*n) & x!1^(2*n) <= 1")
   (("1"
     (case "FORALL (n:nat): -1 <= x!1^(2*n+1) & x!1^(2*n+1) < 0")
     (("1"
       (case "max(exp(x!1), 1) = 1")
       (("1"
         (case "FORALL (n,m:posnat): n < m => abs(x!1)^m/factorial(m) < abs(x!1)^n/factorial(n)")
         (("1"
           (case-replace
            "FORALL (n: nat, x: real):
                              exp_estimate(x, n) =
                               sigma(0, n,
                                     LAMBDA (nn: nat):
                                       IF nn = 0 THEN 1 ELSE x ^ nn / factorial(nn) ENDIF)")
           (("1"
             (hide -1)
             (case-replace "exp_estimate(x!1, 1 + 2 * n!1) < exp(x!1)")
             (("1"
               (lemma "exp_taylors_err" ("x" "x!1" "n" "1+2*n!1"))
               (reveal -1)
               (copy -1)
               (inst?)
               (replace -1)
               (hide -1)
               (inst?)
               (replace -1)
               (hide -1)
               (expand "abs" -1 1)
               (assert)
               (replace -4)
               (hide -2)
               (expand "sigma" -1 1)
               (name-replace "RHS"
                "sigma(0, 2 * n!1,
                                                                   LAMBDA (nn: nat):
                                                                     IF nn = 0 THEN 1 ELSE x!1 ^ nn / factorial(nn) ENDIF)")
               (case "(x!1^(1+2*n!1))/factorial(1+2*n!1) + abs(x!1)^(2+2*n!1)/factorial(2+2*n!1) < 0")
               (("1" (assert))
                ("2"
                 (inst -2 "1+2*n!1" "2+2*n!1")
                 (assert)
                 (case-replace
                  "abs(x!1) ^ (1 + 2 * n!1) = -(x!1^(1+2*n!1))")
                 (("1" (assert))
                  ("2"
                   (hide 2 3 -1 -3)
                   (hide -1 -2 -3)
                   (rewrite "expt_plus")
                   (rewrite "expt_plus")
                   (rewrite "expt_times")
                   (rewrite "expt_times")
                   (expand "abs")
                   (case-replace "(-x!1) ^ 2=x!1 ^ 2")
                   (("1" (assert) (hide -1) (grind))
                    ("2"
                     (hide 2)
                     (expand "^")
                     (expand "expt")
                     (expand "expt")
                     (expand "expt")
                     (assert))))))))
              ("2"
               (hide 2)
               (lemma "exp_taylors_err" ("x" "x!1" "n" "2+2*n!1"))
               (reveal -1)
               (inst?)
               (replace -1)
               (hide -1)
               (reveal -2)
               (inst?)
               (replace -1)
               (hide -1)
               (replace -3)
               (expand "abs" -1 1)
               (expand "sigma" -1)
               (name-replace "LB"
                "sigma(0, 1 + 2 * n!1,
                                                                  LAMBDA (nn: nat):
                                                                    IF nn = 0 THEN 1 ELSE x!1 ^ nn / factorial(nn) ENDIF)")
               (case-replace
                "exp(x!1) - LB - (x!1 ^ (2 + 2 * n!1)) / factorial(2 + 2 * n!1) < 0")
               (("1"
                 (hide -1)
                 (case "x!1^(2+2*n!1) / factorial(2+2*n!1) - abs(x!1)^(3+2*n!1)/factorial(3+2*n!1) > 0")
                 (("1" (assert))
                  ("2"
                   (hide -1 2)
                   (inst - "2+2*n!1" "3+2*n!1")
                   (assert)
                   (case-replace
                    "abs(x!1) ^ (2 + 2 * n!1) = x!1 ^ (2 + 2 * n!1)")
                   (("1" (assert))
                    ("2"
                     (hide -1 2)
                     (lemma "expt_times" ("i" "2" "j" "1+n!1"))
                     (inst-cp - "abs(x!1)")
                     (inst - "x!1")
                     (case-replace "abs(x!1)^2 = x!1^2")
                     (("1" (assert))
                      ("2"
                       (hide-all-but (-7 1))
                       (expand "^")
                       (expand "expt")
                       (expand "expt")
                       (expand "expt")
                       (expand "abs")
                       (assert))))))))
                ("2"
                 (hide -1)
                 (case "(x!1 ^ (2 + 2 * n!1)) / factorial(2 + 2 * n!1) > 0")
                 (("1" (assert))
                  ("2"
                   (hide 2 3)
                   (inst -4 "1+n!1")
                   (flatten)
                   (lemma "posreal_div_posreal_is_posreal"
                    ("px"
                     "x!1 ^ (2 + 2 * n!1)"
                     "py"
                     "factorial(2 + 2 * n!1)"))
                   (("1" (propax)) ("2" (assert))))))))))
            ("2"
             (hide-all-but 1)
             (skosimp*)
             (expand "exp_estimate")
             (lemma "sigma_first")
             (inst -
              "LAMBDA (nn: nat):
                                           IF nn = 0 THEN 1 ELSE x!2 ^ nn / factorial(nn) ENDIF"
              "n!2" "0")
             (case-replace "n!2 > 0 ")
             (("1"
               (assert)
               (replace -2)
               (assert)
               (hide -2)
               (rewrite "sigma_restrict_eq")
               (hide 2)
               (expand "restrict")
               (propax))
              ("2"
               (case-replace "n!2 = 0")
               (("1"
                 (assert)
                 (hide -2)
                 (expand "sigma")
                 (expand "sigma")
                 (propax))
                ("2" (assert))))))))
          ("2"
           (hide-all-but (-4 -5 1))
           (skosimp)
           (case "forall (n,m:posnat): factorial(n) < factorial(n+m)")
           (("1"
             (case "abs(x!1) ^ m!1 <= abs(x!1) ^ n!2")
             (("1"
               (lemma "lt_div_lt_pos1"
                ("px"
                 "abs(x!1) ^ m!1"
                 "w"
                 "factorial(m!1)"
                 "y"
                 "abs(x!1) ^ n!2"
                 "pz"
                 "factorial(n!2)"))
               (("1"
                 (split -1)
                 (("1" (propax)) ("2" (propax))
                  ("3"
                   (inst - "n!2" "m!1-n!2")
                   (("1" (assert)) ("2" (assert))))))
                ("2"
                 (lemma "expt_pos" ("px" "abs(x!1)" "i" "m!1"))
                 (("1" (propax)) ("2" (expand "abs") (assert))))))
              ("2"
               (hide 2 -1)
               (case-replace "abs(x!1)=1")
               (("1" (rewrite "expt_1i") (rewrite "expt_1i") (assert))
                ("2"
                 (case "abs(x!1)<1")
                 (("1"
                   (lemma "both_sides_expt_lt1_lt"
                    ("lt1x" "abs(x!1)" "i" "m!1" "j" "n!2"))
                   (("1" (assert)) ("2" (assert))))
                  ("2" (expand "abs") (assert))))))))
            ("2"
             (hide -2 -3 2)
             (hide -1)
             (induct "m")
             (("1" (assert)) ("2" (assert))
              ("3"
               (skosimp*)
               (case-replace "j!1=0")
               (("1"
                 (expand "factorial" 1 2)
                 (lemma "both_sides_times_pos_lt1"
                  ("pz" "factorial(n!3)" "x" "1" "y" "1+n!3"))
                 (assert))
                ("2"
                 (assert)
                 (inst - "n!3")
                 (expand "factorial" 2 2)
                 (assert))))))))))
        ("2"
         (hide-all-but (-4 1))
         (expand "max")
         (lemma "exp_strict_increasing")
         (expand "strict_increasing?")
         (inst - "x!1" "0")
         (rewrite "exp_0")
         (assert))))
      ("2"
       (hide 2)
       (skosimp)
       (inst - "n!2")
       (flatten)
       (rewrite "expt_plus" 1)
       (lemma "both_sides_times_neg_lt1"
        ("nz" "x!1" "y" "0" "x" "x!1^(2*n!2)"))
       (("1"
         (lemma "both_sides_times_neg_le1"
          ("nz" "x!1" "x" "1" "y" "x!1^(2*n!2)"))
         (assert)
         (name-replace "AA" "x!1 ^ (2 * n!2)")
         (grind))
        ("2" (assert))))))
    ("2"
     (hide 2)
     (skosimp)
     (rewrite "expt_times" 1)
     (case "0 < x!1^2 & x!1^2<=1")
     (("1"
       (flatten)
       (lemma "expt_pos" ("i" "n!2" "px" "x!1^2"))
       (("1"
         (expand "<=" -3)
         (split -3)
         (("1"
           (case-replace "n!2=0")
           (("1" (rewrite "expt_x0") (assert))
            ("2"
             (lemma "both_sides_expt_pos_lt"
              ("px" "x!1^2" "py" "1" "pm" "n!2"))
             (("1" (rewrite "expt_1i") (assert)) ("2" (assert))))))
          ("2" (replace -1) (rewrite "expt_1i") (assert))))
        ("2" (assert))))
      ("2"
       (hide 2)
       (lemma "negreal_times_negreal_is_posreal" ("nx" "x!1" "ny" "x!1"))
       (("1"
         (lemma "le_times_le_neg")
         (inst - "x!1" "x!1" "-1" "-1")
         (("1"
           (expand "^")
           (expand "expt")
           (expand "expt")
           (expand "expt")
           (assert))
          ("2" (assert))))
        ("2" (assert))))))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: exp_approx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (expand "strict_decreasing?")
   (expand "exp_neg_le1_ub")
   (skosimp*)
   (case "FORALL (i:nat,j:posnat): exp_estimate(x!1, 2 * (i+j)) < exp_estimate(x!1, 2 * i)")
   (("1" (inst - "x!2" "y!1-x!2") (("1" (assert)) ("2" (assert))))
    ("2"
     (hide -3 2)
     (skolem 1 ("m" "_"))
     (induct "j")
     (("1" (assert)) ("2" (assert))
      ("3"
       (skolem 1 ("n"))
       (flatten)
       (expand "exp_estimate")
       (expand "sigma" 1 1)
       (expand "sigma" 1 1)
       (case "(x!1 ^ (1 + 2 * m + 2 * n)) / factorial(1 + 2 * m + 2 * n)
                                                     + (x!1 ^ (2 + 2 * m + 2 * n)) / factorial(2 + 2 * m + 2 * n) < 0")
       (("1"
         (case-replace "n=0")
         (("1"
           (assert)
           (lift-if)
           (ground)
           (case-replace "m = 0")
           (("1" (assert) (expand "sigma") (assert)) ("2" (assert))))
          ("2" (assert))))
        ("2"
         (hide 2 -1)
         (hide -1)
         (lemma "both_sides_div_pos_lt1"
          ("x"
           "x!1 ^ (1 + 2 * m + 2 * n)"
           "y"
           "0"
           "pz"
           "factorial(1 + 2 * m + 2 * n)"))
         (lemma "expt_plus" ("n0x" "x!1" "i" "1" "j" "2*m+2*n"))
         (("1"
           (rewrite "expt_x1")
           (lemma "expt_times" ("n0x" "x!1" "i" "2" "j" "m+n"))
           (lemma "expt_pos" ("px" "x!1^2" "i" "m+n"))
           (("1"
             (lemma "both_sides_times_pos_lt1"
              ("x" "x!1" "y" "0" "pz" "x!1 ^ (2 * m + 2 * n)"))
             (("1"
               (assert)
               (lemma "both_sides_times_neg_lt1"
                ("nz"
                 "x!1 ^ (1 + 2 * m + 2 * n) / factorial(1 + 2 * m + 2 * n)"
                 "y"
                 "-1*(x!1/(2+2*m+2*n))"
                 "x"
                 "1"))
               (lemma "div_mult_pos_lt1"
                ("py" "2+2*n+2*m" "z" "-1*x!1" "x" "1"))
               (replace -1 -2)
               (hide -1)
               (assert)
               (rewrite "div_times" -1)
               (expand "factorial" 1 2)
               (lemma "expt_plus" ("n0x" "x!1" "i" "1" "j" "1+2*n+2*m"))
               (rewrite "expt_x1")
               (replace -1 1)
               (assert))
              ("2" (assert))))
            ("2"
             (hide-all-but (-5 1))
             (lemma "negreal_times_negreal_is_posreal"
              ("nx" "x!1" "ny" "x!1"))
             (("1"
               (expand "^")
               (expand "expt")
               (expand "expt")
               (expand "expt")
               (propax))
              ("2" (assert))))))
          ("2" (assert))))))))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: exp_approx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (expand "strict_increasing?")
   (expand "exp_neg_le1_lb")
   (skosimp*)
   (case "FORALL (i:nat,j:posnat): exp_estimate(x!1, 1 + 2*i) < exp_estimate(x!1, 1+2*(j+i))")
   (("1" (inst - "x!2" "y!1-x!2") (("1" (assert)) ("2" (assert))))
    ("2"
     (hide -3 2)
     (skolem 1 ("n" "_"))
     (induct "j")
     (("1" (assert)) ("2" (assert))
      ("3"
       (skolem 1 ("m"))
       (flatten)
       (expand "exp_estimate")
       (expand "sigma" 1 2)
       (expand "sigma" 1 2)
       (case "(x!1 ^ (2 + 2 * m + 2 * n)) / factorial(2 + 2 * m + 2 * n)
                                + (x!1 ^ (3 + 2 * m + 2 * n)) / factorial(3 + 2 * m + 2 * n) > 0")
       (("1" (case-replace "m=0") (("1" (assert)) ("2" (assert))))
        ("2"
         (hide -1 2)
         (lemma "posreal_div_posreal_is_posreal"
          ("px"
           "x!1 ^ (2 + 2 * m + 2 * n)"
           "py"
           "factorial(2 + 2 * m + 2 * n)"))
         (("1"
           (lemma "both_sides_times_pos_lt1"
            ("pz"
             "x!1 ^ (2 + 2 * m + 2 * n) / factorial(2 + 2 * m + 2 * n)"
             "x"
             "-1*(x!1/(3 + 2 * m + 2 * n))"
             "y"
             "1"))
           (("1"
             (lemma "div_mult_pos_lt1"
              ("py" "3 + 2 * m + 2 * n" "z" "-1*x!1" "x" "1"))
             (assert)
             (rewrite "div_times" -2)
             (lemma "expt_plus" ("n0x" "x!1" "i" "1" "j" "2+2*m+2*n"))
             (rewrite "expt_x1")
             (replace -1 -3 rl)
             (expand "factorial" 1 2)
             (assert))
            ("2" (assert))))
          ("2"
           (hide 2)
           (lemma "expt_times" ("n0x" "x!1" "i" "2" "j" "1+m+n"))
           (("1"
             (lemma "expt_pos" ("px" "x!1^2" "i" "1+m+n"))
             (("1" (assert))
              ("2"
               (hide -1 2 -2 -3)
               (lemma "negreal_times_negreal_is_posreal"
                ("nx" "x!1" "ny" "x!1"))
               (("1" (grind)) ("2" (assert))))))
            ("2" (assert))))))))))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: exp_approx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (case "exp_neg_le1_lb(1, x!1) > 0")
   (("1"
     (lemma "exp_neg_le1_lb_strict_increasing_n" ("x" "x!1"))
     (expand "strict_increasing?")
     (assert)
     (case-replace "pn!1=1")
     (inst - "1" "pn!1")
     (assert))
    ("2"
     (hide 2)
     (expand "exp_neg_le1_lb")
     (expand "exp_estimate")
     (expand "sigma")
     (expand "sigma")
     (expand "sigma")
     (expand "factorial")
     (expand "factorial")
     (expand "factorial")
     (expand "factorial")
     (lemma "quad_min_val")
     (inst - "1/2" "1" "1" "x!1")
     (assert)
     (case-replace "(4 * (1 / 2) - 1) / (4 * (1 / 2)) = 1/2")
     (("1"
       (expand "quadratic")
       (case-replace "x!1 ^ 2 = sq(x!1)")
       (("1"
         (case "x!1 ^ 3 / 6 >= -1/6")
         (("1" (assert) (grind))
          ("2"
           (hide -2 -3 2)
           (lemma "sq_le" ("nna" "-x!1" "nnb" "1"))
           (assert)
           (rewrite "sq_neg")
           (expand "^")
           (expand "expt" 1)
           (replace -2 1)
           (lemma "sq_nz_pos")
           (inst - "-x!1")
           (rewrite "sq_neg")
           (hide -3)
           (lemma "le_times_le_pos"
            ("nnx" "sq(x!1)/6" "y" "1/6" "nnz" "-x!1" "w" "1"))
           (assert))))
        ("2" (hide-all-but 1) (grind))))
      ("2" (hide-all-but 1) (grind))))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: exp_approx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (expand "exp_neg_lb")
   (expand "exp_neg_ub")
   (typepred "floor(nx!1)")
   (typepred "nx!1")
   (name-replace "F" "floor(nx!1)")
   (name "P" "-F")
   (replace -1)
   (lemma "both_sides_div_pos_lt1" ("pz" "P" "x" "nx!1" "y" "0"))
   (("1"
     (lemma "div_mult_pos_le2" ("py" "P" "z" "nx!1" "x" "-1"))
     (assert)
     (lemma "exp_scal" ("i" "P" "x" "nx!1/P"))
     (rewrite "div_cancel1" -1)
     (replace -1)
     (lemma "exp_neg_le1_bounds" ("x" "nx!1/P" "n" "1+n!1"))
     (lemma "exp_neg_le1_lb_pos" ("x" "nx!1/P" "pn" "1+n!1"))
     (typepred "exp(nx!1 / P)")
     (assert)
     (flatten)
     (lemma "both_sides_expt_pos_lt" ("pm" "P"))
     (inst-cp - "exp_neg_le1_lb(1 + n!1, nx!1 / P)" "exp(nx!1 / P)")
     (inst - "exp(nx!1 / P)" "exp_neg_le1_ub(1 + n!1, nx!1 / P)")
     (("1" (assert)) ("2" (assert))))
    ("2" (assert))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: exp_approx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (lemma "trichotomy" ("x" "x!1"))
   (split -1)
   (("1"
     (expand "exp_lb")
     (expand "exp_ub")
     (assert)
     (lemma "exp_neg_bounds" ("n" "n!1" "nx" "-x!1"))
     (flatten)
     (lemma "exp_diff" ("x" "0" "y" "x!1"))
     (rewrite "exp_0")
     (replace -1)
     (rewrite "div_mult_pos_lt1")
     (rewrite "div_mult_pos_lt2")
     (rewrite "div_mult_pos_le1")
     (rewrite "div_mult_pos_le2")
     (assert))
    ("2"
     (expand "exp_ub")
     (expand "exp_lb")
     (replace -1)
     (rewrite "exp_0")
     (assert))
    ("3"
     (lemma "exp_neg_bounds" ("n" "n!1" "nx" "x!1"))
     (("1" (flatten) (expand "exp_lb") (expand "exp_ub") (assert))
      ("2" (assert))))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: exp_approx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (case "1000000000/2718281829 < 1/e & 1/e <1000000000/2718281828")
   (("1"
     (flatten)
     (assert)
     (rewrite "div_mult_pos_lt2" -1)
     (rewrite "div_mult_pos_lt1" -2)
     (assert))
    ("2"
     (hide 2)
     (lemma "exp_diff" ("x" "0" "y" "1"))
     (rewrite "exp_0")
     (expand "e")
     (replace -1 1 rl)
     (hide -1)
     (lemma "exp_neg_le1_bounds" ("x" "-1" "n" "10"))
     (assert)
     (flatten)
     (case "1000000000 / 2718281829 < exp_neg_le1_lb(10, -1)")
     (("1"
       (case "exp_neg_le1_ub(10, -1) < 1000000000 / 2718281828")
       (("1" (assert)) ("2" (hide-all-but 1) (grind))))
      ("2" (hide-all-but 1) (grind))))))


proof_type: t_proof
decl_type: tcc
library: lnexp
theory: exp_approx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (assert)
   (lemma "exp_neg_ub_TCC1" ("nx" "nx!1"))
   (typepred "floor(nx!1)")
   (name-replace "F" "floor(nx!1)")
   (name "P" "-F")
   (replace -1)
   (lemma "both_sides_div_pos_lt1" ("x" "nx!1" "y" "0" "pz" "P"))
   (("1"
     (assert)
     (lemma "div_mult_pos_le2" ("py" "P" "z" "nx!1" "x" "-1"))
     (assert)
     (lemma "exp_neg_le1_bounds" ("x" "nx!1/P" "n" "1+n!1"))
     (assert)
     (flatten)
     (typepred "exp(nx!1 / P)")
     (lemma "expt_pos"
      ("px" "exp_neg_le1_ub(1 + n!1, nx!1 / P)" "i" "P"))
     (("1" (assert)) ("2" (assert))))
    ("2" (assert))))


proof_type: t_proof
decl_type: tcc
library: lnexp
theory: exp_approx
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (assert)
   (typepred "floor(nx!1)")
   (name-replace "F" "floor(nx!1)")
   (typepred "nx!1")
   (name "P" "-F")
   (replace -1)
   (lemma "both_sides_div_pos_lt1" ("x" "nx!1" "y" "0" "pz" "P"))
   (("1"
     (assert)
     (lemma "div_mult_pos_le2" ("py" "P" "z" "nx!1" "x" "-1"))
     (assert)
     (lemma "exp_neg_le1_lb_pos" ("x" "nx!1/P" "pn" "1+n!1"))
     (assert)
     (lemma "expt_pos"
      ("px" "exp_neg_le1_lb(1 + n!1, nx!1 / P)" "i" "P"))
     (assert))
    ("2" (assert))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (expand "strict_increasing?")
   (expand "sinh")
   (skosimp*)
   (lemma "both_sides_div_pos_lt1"
    ("x" "exp(x!1)-exp(-x!1)" "y" "exp(y!1)-exp(-y!1)" "pz" "2"))
   (lemma "exp_strict_increasing")
   (expand "strict_increasing?")
   (inst-cp - "x!1" "y!1")
   (inst - "-y!1" "-x!1")
   (name-replace "EPX" "exp(x!1)")
   (name-replace "EMX" "exp(-x!1)")
   (name-replace "EMY" "exp(-y!1)")
   (name-replace "EPY" "exp(y!1)")
   (lemma "both_sides_times_neg_lt1" ("x" "y!1" "y" "x!1" "nz" "-1"))
   (assert))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (expand "strict_increasing?")
   (skosimp*)
   (typepred "x!1")
   (typepred "y!1")
   (expand "nnreal_cosh")
   (expand "cosh")
   (lemma "both_sides_div_pos_lt1"
    ("x" "exp(-x!1) + exp(x!1)" "y" "exp(-y!1) + exp(y!1)" "pz" "2"))
   (replace -1 1)
   (lemma "exp_diff" ("x" "0" "y" "x!1"))
   (rewrite "exp_0")
   (replace -1 1)
   (lemma "exp_diff" ("x" "0" "y" "y!1"))
   (rewrite "exp_0")
   (replace -1 1)
   (lemma "both_sides_times_pos_lt1"
    ("x"
     "1/exp(x!1)+exp(x!1)"
     "y"
     "1/exp(y!1)+exp(y!1)"
     "pz"
     "exp(x!1)*exp(y!1)"))
   (replace -1 1 rl)
   (simplify 1)
   (lemma "div_cancel1")
   (inst-cp - "exp(x!1)" "1")
   (inst - "exp(y!1)" "1")
   (lemma "exp_strict_increasing")
   (expand "strict_increasing?")
   (inst - "x!1" "y!1")
   (assert)
   (lemma "exp_increasing")
   (expand "increasing?")
   (inst - "0" "x!1")
   (assert)
   (rewrite "exp_0")
   (name-replace "EPX" "exp(x!1)")
   (name-replace "EPY" "exp(y!1)")
   (hide (-5 -6 -7 1))
   (lemma "posreal_times_posreal_is_posreal"
    ("px" "EPX*EPY-1" "py" "EPY-EPX"))
   (("1" (assert)) ("2" (assert))
    ("3"
     (lemma "lt_times_lt_pos1")
     (inst - "1" "1" "EPY" "EPX")
     (assert))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (lemma "exp_strict_increasing")
   (expand "strict_increasing?")
   (expand "tanh")
   (expand "sinh")
   (expand "cosh")
   (skosimp*)
   (rewrite "div_div1" 1)
   (rewrite "div_div1" 1)
   (rewrite "div_cancel1" 1)
   (rewrite "div_cancel1" 1)
   (case "exp(-x!1)+exp(x!1) > 0")
   (("1"
     (case "exp(-y!1)+exp(y!1) > 0")
     (("1"
       (lemma "div_mult_pos_lt1")
       (inst - "exp(-x!1) + exp(x!1)"
        "(exp(y!1) - exp(-y!1)) / (exp(-y!1) + exp(y!1))"
        "exp(x!1) - exp(-x!1)")
       (replace -1 1)
       (lemma "div_mult_pos_lt2")
       (inst - "exp(-y!1) + exp(y!1)" "exp(x!1) - exp(-x!1)"
        "(exp(y!1) - exp(-y!1))*(exp(-x!1) + exp(x!1))")
       (replace -1 1)
       (hide -1 -2)
       (inst-cp - "x!1" "y!1")
       (inst-cp - "-y!1" "-x!1")
       (inst - "x!1-y!1" "y!1-x!1")
       (lemma "exp_sum")
       (inst-cp - "x!1" "-y!1")
       (inst - "y!1" "-x!1")
       (assert))
      ("2" (assert))))
    ("2" (assert))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (lemma "sinh_strict_increasing")
   (expand "strict_decreasing?")
   (skosimp*)
   (typepred "x!1")
   (expand "strict_increasing?")
   (expand "posreal_csch")
   (expand "csch")
   (inst-cp - "x!1" "y!1")
   (inst - "0" "x!1")
   (name-replace "SX" "sinh(x!1)")
   (name-replace "SY" "sinh(y!1)")
   (expand "sinh")
   (rewrite "exp_0")
   (assert)
   (lemma "both_sides_div_pos_lt2" ("pz" "1" "py" "SX" "px" "SY"))
   (assert))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (expand "strict_decreasing?")
   (skosimp*)
   (typepred "x!1")
   (expand "nnreal_sech")
   (expand "sech")
   (lemma "cosh_strict_increasing")
   (expand "strict_increasing?")
   (inst - "x!1" "y!1")
   (expand "nnreal_cosh")
   (lemma "both_sides_div_pos_lt2"
    ("pz" "1" "py" "cosh(x!1)" "px" "cosh(y!1)"))
   (("1" (assert)) ("2" (assert)) ("3" (assert))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (expand "strict_decreasing?")
   (skosimp*)
   (expand "posreal_coth")
   (expand "coth")
   (lemma "tanh_strict_increasing")
   (expand "strict_increasing?")
   (inst-cp - "0" "x!1")
   (inst - "x!1" "y!1")
   (assert)
   (name-replace "TX" "tanh(x!1)")
   (name-replace "TY" "tanh(y!1)")
   (expand "tanh")
   (expand "cosh")
   (expand "sinh")
   (rewrite "exp_0")
   (lemma "both_sides_div_pos_lt2" ("pz" "1" "py" "TX" "px" "TY"))
   (("1" (assert)) ("2" (assert)) ("3" (assert))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "cosh")
   (expand "sinh")
   (lemma "exp_sum" ("x" "x!1" "y" "-x!1"))
   (rewrite "exp_0" -1)
   (name-replace "EPX" "exp(x!1)")
   (name-replace "EMX" "exp(-x!1)")
   (grind))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "tanh")
   (expand "sech")
   (typepred "cosh(x!1)")
   (lemma "cosh_sinh_one" ("x" "x!1"))
   (lemma "sq_div" ("d" "cosh(x!1)"))
   (inst-cp - "1")
   (inst - "sinh(x!1)")
   (assert)
   (replace -1)
   (replace -2)
   (lemma "both_sides_div1"
    ("n0z" "sq(cosh(x!1))" "x" "sq(cosh(x!1)) - sq(sinh(x!1))" "y" "1"))
   (lemma "minus_div2"
    ("x" "sq(cosh(x!1))" "y" "sq(sinh(x!1))" "n0x" "sq(cosh(x!1))"))
   (replace -2 -5 rl)
   (rewrite "sq_1")
   (assert))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (expand "coth")
   (expand "csch")
   (skosimp*)
   (expand "tanh")
   (case "sinh(n0x!1) /= 0")
   (("1"
     (rewrite "div_div1")
     (lemma "sq_div" ("d" "sinh(n0x!1)"))
     (replace -2 -1)
     (inst-cp - "cosh(n0x!1)")
     (inst - "1")
     (rewrite "sq_1")
     (lemma "cosh_sinh_one" ("x" "n0x!1"))
     (lemma "both_sides_div1"
      ("x"
       "sq(cosh(n0x!1)) - sq(sinh(n0x!1))"
       "y"
       "1"
       "n0z"
       "sq(sinh(n0x!1))"))
     (("1"
       (lemma "minus_div2"
        ("n0x"
         "sq(sinh(n0x!1))"
         "x"
         "sq(cosh(n0x!1))"
         "y"
         "sq(sinh(n0x!1))"))
       (rewrite "div_simp" -1)
       (assert))
      ("2" (lemma "sq_eq_0" ("a" "sinh(n0x!1)")) (assert))))
    ("2"
     (lemma "sinh_strict_increasing")
     (expand "strict_increasing?")
     (lemma "sinh_0")
     (case "n0x!1>0")
     (("1" (inst - "0" "n0x!1") (assert))
      ("2" (inst - "n0x!1" "0") (assert))))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "sinh")
   (expand "cosh")
   (lemma "exp_sum" ("x" "x!1" "y" "y!1"))
   (lemma "exp_diff" ("x" "0"))
   (rewrite "exp_0")
   (inst-cp - "x!1+y!1")
   (inst-cp - "y!1")
   (inst - "x!1")
   (replace -1)
   (replace -2)
   (replace -3)
   (lemma "exp_sum" ("x" "x!1" "y" "y!1"))
   (replace -1 1)
   (name-replace "EPX" "exp(x!1)")
   (name-replace "EPY" "exp(y!1)")
   (hide-all-but 1)
   (grind))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "sinh_sum" ("x" "x!1" "y" "-y!1"))
   (rewrite "sinh_neg")
   (rewrite "cosh_neg")
   (assert))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "cosh")
   (expand "sinh")
   (lemma "exp_diff" ("x" "0"))
   (inst-cp - "x!1")
   (inst-cp - "y!1")
   (inst - "x!1+y!1")
   (lemma "exp_sum" ("x" "x!1" "y" "y!1"))
   (replace -1)
   (rewrite "exp_0")
   (replace -2 1)
   (replace -3)
   (replace -4)
   (hide-all-but 1)
   (name-replace "EPX" "exp(x!1)")
   (name-replace "EPY" "exp(y!1)")
   (grind))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "cosh_sum" ("x" "x!1" "y" "-y!1"))
   (rewrite "sinh_neg")
   (rewrite "cosh_neg")
   (assert))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (expand "tanh")
   (skosimp*)
   (typepred "cosh(x!1)")
   (typepred "cosh(y!1)")
   (typepred "cosh(x!1+y!1)")
   (rewrite "sinh_sum")
   (rewrite "cosh_sum")
   (name-replace "CX" "cosh(x!1)")
   (name-replace "CY" "cosh(y!1)")
   (name-replace "SY" "sinh(y!1)")
   (name-replace "SX" "sinh(x!1)")
   (lemma "add_div")
   (inst-cp - "CX" "CY" "SX" "SY")
   (("1"
     (inst - "1" "CX*CY" "1" "SX*SY")
     (("1"
       (lemma "div_div1")
       (inst - "CX*CY + SX*SY" "CX*CY" "(SX*CY+SY*CX) / (CX * CY)")
       (("1"
         (lemma "div_cancel2")
         (inst - "CX*CY" "SX*CY+SY*CX")
         (("1"
           (replace -1 -2)
           (replace -3 1)
           (replace -4 1)
           (name-replace "CXCY" "CX*CY")
           (name-replace "SXSY" "SX*SY")
           (name-replace "SYCX" "SY*CX")
           (name-replace "SXCY" "SX*CY")
           (name-replace "NUMER" "SYCX+SXCY")
           (name-replace "DENOM" "CXCY+SXSY")
           (replace -1 1)
           (propax))
          ("2"
           (lemma "both_sides_times_pos_ge1"
            ("pz" "CX" "x" "CY" "y" "1"))
           (("1" (assert)) ("2" (assert))))))
        ("2"
         (lemma "both_sides_times_pos_ge1" ("pz" "CX" "x" "CY" "y" "1"))
         (("1" (assert)) ("2" (assert))))
        ("3" (assert))))
      ("2"
       (lemma "both_sides_times_pos_ge1" ("pz" "CX" "x" "CY" "y" "1"))
       (("1" (assert)) ("2" (assert))))))
    ("2" (assert)) ("3" (assert))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "coth")
   (lemma "tanh_sum" ("x" "n0x!1" "y" "n0y!1"))
   (case "FORALL (x:real): tanh(x) = 0 IFF x = 0")
   (("1"
     (inst-cp - "n0x!1")
     (inst-cp - "n0y!1")
     (inst - "n0x!1+n0y!1")
     (replace -1 1 rl)
     (replace -4)
     (typepred "tanh(n0x!1)")
     (typepred "tanh(n0y!1)")
     (name-replace "TX" "tanh(n0x!1)")
     (name-replace "TY" "tanh(n0y!1)")
     (lemma "abs_mult" ("x" "TX" "y" "TY"))
     (hide -9)
     (case "0 < abs(TX) & abs(TX) < 1 & 0 < abs(TY) & abs(TY) < 1")
     (("1"
       (flatten -1)
       (lemma "lt_times_lt_pos1"
        ("px" "abs(TX)" "y" "1" "nnz" "abs(TY)" "w" "1"))
       (("1"
         (expand "<=" -1)
         (replace -3 -1)
         (replace -5 -1)
         (case "1+TX*TY > 0")
         (("1"
           (rewrite "div_div1" 2)
           (rewrite "div_times" 2)
           (rewrite "add_div" 2)
           (case "TX*TY /= 0")
           (("1"
             (rewrite "div_div1" 2)
             (lemma "div_cancel2" ("x" "1" "n0z" "TX*TY"))
             (("1" (replace -1 2) (assert)) ("2" (propax))))
            ("2"
             (hide-all-but (-13 -14 1))
             (expand "/=")
             (lemma "zero_times3" ("x" "TX" "y" "TY"))
             (replace -1 -2)
             (split -2)
             (("1" (assert)) ("2" (assert))))))
          ("2" (hide-all-but (-1 -6 1)) (grind))))
        ("2" (assert))))
      ("2" (hide-all-but (-7 -8 1)) (grind))))
    ("2"
     (hide-all-but 1)
     (skosimp*)
     (split)
     (("1"
       (flatten)
       (lemma "tanh_strict_increasing")
       (expand "strict_increasing?")
       (lemma "trichotomy" ("x" "x!1"))
       (lemma "tanh_0")
       (split -2)
       (("1" (inst - "0" "x!1") (assert)) ("2" (propax))
        ("3" (inst - "x!1" "0") (assert))))
      ("2" (flatten) (lemma "tanh_0") (assert))))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (assert)
   (lemma "trichotomy" ("x" "x!1"))
   (split -1)
   (("1"
     (lemma "sinh_strict_increasing")
     (expand "strict_increasing?")
     (inst - "0" "x!1/2")
     (rewrite "sinh_0")
     (assert)
     (lemma "sq_eq"
      ("nna" "sinh(x!1 / 2)" "nnb" "sqrt((cosh(x!1) - 1) / 2)"))
     (replace -1 1 rl)
     (hide -1)
     (rewrite "sq_sqrt")
     (expand "sinh" 1)
     (rewrite "sq_div" 1)
     (rewrite "sq_minus" 1)
     (lemma "exp_sum" ("x" "x!1/2" "y" "x!1/2"))
     (lemma "exp_sum" ("x" "x!1/2" "y" "-x!1/2"))
     (lemma "exp_sum" ("x" "-x!1/2" "y" "-x!1/2"))
     (expand "sq" 1)
     (replace -1 1 rl)
     (replace -2 1 rl)
     (replace -3 1 rl)
     (rewrite "exp_0" 1)
     (expand "cosh" 1)
     (assert))
    ("2"
     (replace -1)
     (rewrite "sinh_0")
     (rewrite "cosh_0")
     (rewrite "sqrt_0")
     (assert))
    ("3"
     (lemma "sinh_strict_increasing")
     (expand "strict_increasing?")
     (inst - "x!1/2" "0")
     (rewrite "sinh_0")
     (assert)
     (lemma "sq_eq"
      ("nna" "-sinh(x!1/2)" "nnb" "sqrt((cosh(x!1) - 1) / 2)"))
     (assert)
     (hide 2)
     (rewrite "sq_sqrt")
     (expand "sinh" 1)
     (rewrite "sq_neg" 1)
     (rewrite "sq_div" 1)
     (rewrite "sq_minus" 1)
     (lemma "exp_sum" ("x" "x!1/2" "y" "x!1/2"))
     (lemma "exp_sum" ("x" "x!1/2" "y" "-x!1/2"))
     (lemma "exp_sum" ("x" "-x!1/2" "y" "-x!1/2"))
     (expand "sq" 1)
     (expand "cosh" 1)
     (replace -1 1 rl)
     (replace -2 1 rl)
     (replace -3 1 rl)
     (rewrite "exp_0")
     (assert))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "sq_eq"
    ("nna" "cosh(x!1 / 2)" "nnb" "sqrt((cosh(x!1) + 1) / 2)"))
   (("1"
     (replace -1 1 rl)
     (hide -1)
     (rewrite "sq_sqrt")
     (expand "cosh")
     (rewrite "sq_div")
     (rewrite "sq_plus" 1)
     (lemma "exp_sum" ("x" "x!1/2" "y" "x!1/2"))
     (lemma "exp_sum" ("x" "x!1/2" "y" "-x!1/2"))
     (lemma "exp_sum" ("x" "-x!1/2" "y" "-x!1/2"))
     (expand "sq" 1)
     (replace -1 1 rl)
     (replace -2 1 rl)
     (replace -3 1 rl)
     (rewrite "exp_0")
     (assert))
    ("2" (assert)) ("3" (assert))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "tanh" 1)
   (rewrite "sinh_half")
   (rewrite "cosh_half")
   (case "x!1>=0")
   (("1"
     (assert)
     (rewrite "sqrt_div" 1)
     (rewrite "sqrt_div" 1)
     (rewrite "sqrt_div" 1)
     (name-replace "K1" "sqrt((cosh(x!1) - 1))")
     (name-replace "K2" "sqrt((cosh(x!1) + 1))")
     (rewrite "div_div1"))
    ("2"
     (assert)
     (rewrite "sqrt_div")
     (rewrite "sqrt_div")
     (rewrite "sqrt_div")
     (name-replace "K1" "sqrt((cosh(x!1) - 1))")
     (name-replace "K2" "sqrt((cosh(x!1) +1))")
     (rewrite "div_div1"))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (case "sinh(n0x!1) /=0")
   (("1"
     (expand "tanh" 1)
     (lemma "cross_mult"
      ("x"
       "sinh(n0x!1 / 2)"
       "n0x"
       "cosh(n0x!1 / 2)"
       "y"
       "cosh(n0x!1) - 1"
       "n0y"
       "sinh(n0x!1)"))
     (("1"
       (replace -1 1)
       (hide -1 -2)
       (expand "sinh")
       (expand "cosh")
       (lemma "exp_sum" ("x" "n0x!1/2" "y" "n0x!1"))
       (lemma "exp_sum" ("x" "n0x!1/2" "y" "-n0x!1"))
       (lemma "exp_sum" ("x" "-(n0x!1/2)" "y" "-n0x!1"))
       (lemma "exp_sum" ("x" "-(n0x!1/2)" "y" "n0x!1"))
       (assert))
      ("2" (propax)) ("3" (assert))))
    ("2"
     (hide 2)
     (lemma "sinh_strict_increasing")
     (expand "strict_increasing?")
     (lemma "trichotomy" ("x" "n0x!1"))
     (split -1)
     (("1" (inst - "0" "n0x!1") (rewrite "sinh_0") (assert))
      ("2" (assert))
      ("3" (inst - "n0x!1" "0") (rewrite "sinh_0") (assert))))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "tanh")
   (lemma "cross_mult"
    ("x"
     "sinh(x!1 / 2)"
     "n0x"
     "cosh(x!1 / 2)"
     "y"
     "sinh(x!1)"
     "n0y"
     "1 + cosh(x!1)"))
   (("1"
     (replace -1 1)
     (hide -1)
     (expand "sinh")
     (expand "cosh")
     (lemma "exp_sum" ("x" "-x!1" "y" "x!1/2"))
     (lemma "exp_sum" ("x" "-x!1" "y" "-(x!1/2)"))
     (lemma "exp_sum" ("x" "x!1" "y" "-(x!1/2)"))
     (lemma "exp_sum" ("x" "x!1" "y" "x!1/2"))
     (assert))
    ("2" (assert)) ("3" (assert))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "sinh")
   (expand "cosh")
   (lemma "exp_sum" ("x" "x!1" "y" "x!1"))
   (lemma "exp_sum" ("x" "x!1" "y" "-x!1"))
   (lemma "exp_sum" ("x" "-x!1" "y" "-x!1"))
   (lemma "exp_sum" ("x" "-x!1" "y" "x!1"))
   (assert))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (rewrite "div_cancel4")
   (("1"
     (expand "tanh")
     (rewrite "sq_div")
     (lemma "both_sides_times1"
      ("x"
       "sinh(2 * x!1) - sinh(2 * x!1) * (sq(sinh(x!1)) / sq(cosh(x!1)))"
       "y"
       "2 * (sinh(x!1) / cosh(x!1))"
       "n0z"
       "sq(cosh(x!1))"))
     (("1"
       (replace -1 1 rl)
       (hide -1)
       (assert)
       (lemma "div_cancel1" ("x" "sq(sinh(x!1))" "n0z" "sq(cosh(x!1))"))
       (replace -1 1)
       (name-replace "K101" "sq(sinh(x!1)) / sq(cosh(x!1))")
       (case-replace
        "sinh(2 * x!1) * sq(cosh(x!1)) * K101 = sinh(2*x!1)*sq(sinh(x!1))")
       (("1"
         (hide -1 -2)
         (case-replace
          "2 * (sq(cosh(x!1)) * (sinh(x!1) / cosh(x!1))) = 2*cosh(x!1)*sinh(x!1)")
         (("1"
           (hide -1)
           (expand "sq")
           (expand "cosh")
           (expand "sinh")
           (lemma "exp_sum" ("x" "x!1" "y" "x!1"))
           (lemma "exp_sum" ("x" "x!1" "y" "-x!1"))
           (lemma "exp_sum" ("x" "-x!1" "y" "-x!1"))
           (lemma "exp_sum" ("x" "-x!1" "y" "x!1"))
           (lemma "exp_sum" ("x" "2*x!1" "y" "2*x!1"))
           (lemma "exp_sum" ("x" "2*x!1" "y" "x!1"))
           (lemma "exp_sum" ("x" "2*x!1" "y" "-x!1"))
           (lemma "exp_sum" ("x" "2*x!1" "y" "-(2*x!1)"))
           (lemma "exp_0")
           (lemma "exp_sum" ("x" "-(2*x!1)" "y" "2*x!1"))
           (lemma "exp_sum" ("x" "-(2*x!1)" "y" "x!1"))
           (lemma "exp_sum" ("x" "-(2*x!1)" "y" "-x!1"))
           (lemma "exp_sum" ("x" "-(2*x!1)" "y" "-(2*x!1)"))
           (assert))
          ("2" (hide 2) (expand "sq") (assert))))
        ("2" (hide 2) (assert))))
      ("2" (hide 2) (lemma "sq_nz_pos" ("nz" "cosh(x!1)")) (assert))))
    ("2"
     (hide 2)
     (case "tanh(x!1)>=0")
     (("1"
       (lemma "sq_gt" ("nna" "1" "nnb" "tanh(x!1)"))
       (("1" (rewrite "sq_1") (assert)) ("2" (propax))))
      ("2"
       (lemma "sq_gt" ("nna" "1" "nnb" "-tanh(x!1)"))
       (("1" (rewrite "sq_1") (rewrite "sq_neg") (assert))
        ("2" (assert))))))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "cosh")
   (expand "sq")
   (lemma "exp_sum" ("x" "x!1" "y" "x!1"))
   (lemma "exp_sum" ("x" "x!1" "y" "-x!1"))
   (lemma "exp_sum" ("x" "-x!1" "y" "-x!1"))
   (lemma "exp_sum" ("x" "-x!1" "y" "x!1"))
   (rewrite "exp_0")
   (assert))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (rewrite "div_cancel4")
   (expand "tanh")
   (rewrite "sq_div")
   (rewrite "div_times" 1)
   (("1"
     (rewrite "add_div")
     (("1"
       (lemma "cross_mult"
        ("x"
         "(sinh(2 * x!1) * (sq(cosh(x!1)) * cosh(2 * x!1)) +
                 cosh(2 * x!1) * sinh(2 * x!1) * sq(sinh(x!1)))"
         "n0x"
         "(cosh(2 * x!1) * (sq(cosh(x!1)) * cosh(2 * x!1)))"
         "y"
         "2*sinh(x!1)"
         "n0y"
         "cosh(x!1)"))
       (("1"
         (replace -1 1)
         (hide -1)
         (expand "sq")
         (rewrite "sinh2x")
         (rewrite "cosh2x")
         (expand "sq")
         (lemma "cosh_sinh_one" ("x" "x!1"))
         (expand "sq")
         (assert))
        ("2"
         (hide 2)
         (lemma "sq_nz_pos" ("nz" "cosh(2*x!1)"))
         (lemma "sq_nz_pos" ("nz" "cosh(x!1)"))
         (lemma "posreal_times_posreal_is_posreal"
          ("px" "sq(cosh(x!1))" "py" "sq(cosh(2 * x!1))"))
         (("1" (expand "sq") (assert)) ("2" (propax)) ("3" (propax))))))
      ("2"
       (hide 2)
       (lemma "sq_nz_pos" ("nz" "cosh(x!1)"))
       (lemma "posreal_times_posreal_is_posreal"
        ("px" "sq(cosh(x!1))" "py" "cosh(2*x!1)"))
       (("1" (assert)) ("2" (propax))))))
    ("2" (lemma "sq_nz_pos" ("nz" "cosh(x!1)")) (assert))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "sinh_sum" ("x" "2*x!1" "y" "x!1"))
   (replace -1 1)
   (hide -1)
   (rewrite "sinh2x")
   (rewrite "cosh2x")
   (lemma "cosh_sinh_one" ("x" "x!1"))
   (expand "sq")
   (assert)
   (expand "^")
   (expand "expt")
   (expand "expt")
   (expand "expt")
   (expand "expt")
   (assert))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "cosh_sum" ("x" "x!1" "y" "2*x!1"))
   (replace -1)
   (rewrite "cosh2x")
   (rewrite "sinh2x")
   (hide -1)
   (expand "^")
   (expand "expt")
   (expand "expt")
   (expand "expt")
   (expand "expt")
   (expand "sq")
   (lemma "cosh_sinh_one" ("x" "x!1"))
   (expand "sq")
   (assert))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "sinh2x" ("x" "2*x!1"))
   (rewrite "sinh2x")
   (rewrite "cosh2x")
   (expand "sq")
   (lemma "cosh_sinh_one" ("x" "x!1"))
   (expand "sq")
   (assert)
   (rewrite "sinh2x")
   (assert))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "cosh2x" ("x" "2*x!1"))
   (replace -1 1)
   (hide -1)
   (rewrite "cosh2x")
   (expand "sq")
   (expand "^")
   (expand "expt")
   (expand "expt")
   (expand "expt")
   (expand "expt")
   (expand "expt")
   (lemma "cosh_sinh_one" ("x" "x!1"))
   (expand "sq")
   (assert))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "sinh_times_cosh"
    ("x" "(x!1 + y!1) / 2" "y" "(x!1 - y!1) / 2"))
   (assert))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "cosh_times_cosh" ("x" "(x!1+y!1)/2" "y" "(x!1-y!1)/2"))
   (name-replace "K1" "cosh(x!1)")
   (name-replace "K2" "cosh(y!1)")
   (name-replace "K3" "cosh((x!1+y!1)/2)")
   (name-replace "K4" "cosh((x!1-y!1)/2)")
   (assert))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "sinh_times_sinh" ("x" "(x!1+y!1)/2" "y" "(x!1-y!1)/2"))
   (name-replace "K1" "cosh(x!1)")
   (name-replace "K2" "cosh(y!1)")
   (name-replace "K3" "sinh((x!1 + y!1) / 2)")
   (name-replace "K4" "sinh((x!1 - y!1) / 2)")
   (assert))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "tanh")
   (rewrite "sinh_sum")
   (lemma "add_div"
    ("x"
     "sinh(x!1)"
     "n0x"
     "cosh(x!1)"
     "y"
     "sinh(y!1)"
     "n0y"
     "cosh(y!1)"))
   (replace -1 1)
   (propax))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "coth")
   (case "FORALL (x:nzreal): sinh(x) /= 0")
   (("1"
     (inst-cp - "n0x!1")
     (inst - "n0y!1")
     (lemma "nzreal_times_nzreal_is_nzreal"
      ("nzx" "sinh(n0x!1)" "nzy" "sinh(n0y!1)"))
     (("1"
       (expand "tanh")
       (rewrite "div_div1")
       (rewrite "div_div1")
       (lemma "add_div"
        ("x"
         "cosh(n0x!1)"
         "n0x"
         "sinh(n0x!1)"
         "y"
         "cosh(n0y!1)"
         "n0y"
         "sinh(n0y!1)"))
       (rewrite "sinh_sum")
       (assert))
      ("2" (propax)) ("3" (propax))))
    ("2"
     (hide 2)
     (skosimp*)
     (lemma "sinh_strict_increasing")
     (expand "strict_increasing?")
     (lemma "sinh_0")
     (lemma "trichotomy" ("x" "x!1"))
     (split)
     (("1" (inst - "0" "x!1") (assert)) ("2" (assert))
      ("3" (inst - "x!1" "0") (assert))))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (rewrite "sinh_times_sinh")
   (lemma "sum_sinh" ("x" "x!1" "y" "y!1"))
   (lemma "diff_sinh" ("x" "x!1" "y" "y!1"))
   (lemma "cosh_times_cosh" ("x" "(x!1+y!1)/2" "y" "(x!1-y!1)/2"))
   (lemma "sinh_times_sinh" ("x" "(x!1+y!1)/2" "y" "(x!1-y!1)/2"))
   (case-replace
    "sq(sinh(x!1)) - sq(sinh(y!1)) = 2 * cosh((x!1 + y!1) / 2) * sinh((x!1 - y!1) / 2)*2 * sinh((x!1 + y!1) / 2) * cosh((x!1 - y!1) / 2)")
   (("1"
     (hide -4 -5 -1)
     (case-replace
      "2 * cosh((x!1 + y!1) / 2) * sinh((x!1 - y!1) / 2) * 2 *
             sinh((x!1 + y!1) / 2)* cosh((x!1 - y!1) / 2) = (cosh((x!1 + y!1) / 2 + (x!1 - y!1) / 2) -
               cosh((x!1 + y!1) / 2 - (x!1 - y!1) / 2))*(cosh((x!1 + y!1) / 2 + (x!1 - y!1) / 2) +
               cosh((x!1 + y!1) / 2 - (x!1 - y!1) / 2))")
     (("1"
       (hide -1 -2 -3)
       (simplify 1)
       (case-replace "(x!1 + y!1) / 2 - (x!1 - y!1) / 2 = y!1")
       (("1"
         (case-replace "(x!1 - y!1) / 2 + (x!1 + y!1) / 2 = x!1")
         (("1"
           (rewrite "cosh2x")
           (rewrite "cosh2x")
           (rewrite "sq_rew")
           (rewrite "sq_rew")
           (assert))
          ("2" (assert))))
        ("2" (assert))))
      ("2"
       (assert)
       (hide 2)
       (case-replace "(x!1 + y!1) / 2 - (x!1 - y!1) / 2=y!1")
       (("1"
         (case-replace "(x!1 - y!1) / 2 + (x!1 + y!1) / 2=x!1")
         (("1"
           (assert)
           (case-replace
            "(cosh((x!1 - y!1) / 2) * cosh((x!1 + y!1) / 2) *
                     sinh((x!1 - y!1) / 2)
                     * sinh((x!1 + y!1) / 2)) = (sinh((x!1 + y!1) / 2) * sinh((x!1 - y!1) / 2))*(cosh((x!1 + y!1) / 2) * cosh((x!1 - y!1) / 2))")
           (("1" (replace -4 1) (replace -5 1) (assert))
            ("2" (hide 2) (assert))))
          ("2" (assert))))
        ("2" (assert))))))
    ("2" (hide -1 -2 2) (expand "sq" 1) (assert))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "diff_sinh_sq" ("x" "x!1" "y" "y!1"))
   (lemma "cosh_sinh_one")
   (inst-cp - "x!1")
   (inst - "y!1")
   (assert))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (rewrite "cosh_times_cosh")
   (rewrite "div_cancel4")
   (rewrite "cosh2x")
   (rewrite "cosh2x")
   (lemma "cosh_sinh_one")
   (inst-cp - "x!1")
   (inst - "y!1")
   (assert))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: unchecked
description: nil
script:
  (""
   (skosimp*)
   (lemma "Taylors" ("aa" "0" "bb" "x!1" "f" "sinh" "n" "2*n!1+2"))
   (case "FORALL (n:nat): derivable_n_times(sinh,n)")
   (("1"
     (lemma "deriv_sinh")
     (lemma "deriv_cosh")
     (lemma "sinh_derivable2")
     (lemma "cosh_derivable2")
     (case "FORALL (n:nat): nderiv(2*n,sinh) = sinh")
     (("1"
       (case "FORALL (n:nat): nderiv(2*n+1,sinh) = cosh")
       (("1"
         (inst-cp -7 "2*n!1+3")
         (replace -8)
         (skolem! -9)
         (inst + "c!1")
         (replace -9 1)
         (inst-cp -1 "n!1+1")
         (replace -2)
         (simplify 1)
         (hide -10)
         (expand "sinh_series_n")
         (rewrite "sinh_0")
         (case "FORALL (i:nat): i <= n!1 => sigma(0, 2 + 2 * i,
                           LAMBDA (nn:nat):
                             IF nn > 2 + 2 * n!1 THEN 0
                             ELSIF nn = 0 THEN 0
                             ELSE nderiv(nn, sinh)(0) * x!1 ^ nn / factorial(nn)
                             ENDIF)
                      =
                      sigma(0, i,
                            LAMBDA (i: nat): (x!1 ^ (1 + 2 * i)) / factorial(1 + 2 * i))")
         (("1" (inst - "n!1") (assert))
          ("2"
           (hide 2)
           (induct "i")
           (("1"
             (expand "sigma" 1)
             (expand "sigma" 1)
             (expand "sigma" 1)
             (expand "nderiv" 1)
             (expand "nderiv" 1)
             (expand "nderiv" 1)
             (replace -7)
             (replace -6)
             (rewrite "sinh_0")
             (rewrite "cosh_0")
             (assert))
            ("2"
             (skosimp*)
             (expand "sigma" 1)
             (expand "sigma" 1 1)
             (assert)
             (replace -1 1)
             (simplify 1)
             (hide -1)
             (inst -2 "1+j!1")
             (replace -2)
             (inst -4 "2+j!1")
             (replace -4)
             (rewrite "sinh_0")
             (rewrite "cosh_0")
             (assert))
            ("3" (hide 2) (skosimp*) (inst -10 "nn!1"))))
          ("3" (hide 2) (skosimp*) (inst -9 "nn!1"))))
        ("2"
         (hide -7 2)
         (induct "n")
         (("1" (expand "nderiv" 1) (expand "nderiv" 1) (propax))
          ("2"
           (skosimp*)
           (expand "nderiv" 1)
           (expand "nderiv" 1)
           (replace -6)
           (replace -5)
           (assert))
          ("3" (skosimp*) (inst - "1+2*n!3"))))
        ("3" (skosimp*) (inst -6 "1+2*n!2"))))
      ("2"
       (hide -6 2)
       (copy -5)
       (induct "n" 1)
       (("1" (expand "nderiv" 1) (propax))
        ("2"
         (skolem! 1)
         (flatten 1)
         (expand "nderiv" 1)
         (expand "nderiv" 1)
         (replace -6)
         (replace -5)
         (propax))
        ("3" (skosimp*) (inst - "2*n!3"))))
      ("3" (skosimp*) (inst -5 "2*n!2"))))
    ("2"
     (hide-all-but 1)
     (skosimp*)
     (case "FORALL (n:nat): derivable_n_times(sinh, n*2)")
     (("1"
       (case "even?(n!2)")
       (("1"
         (expand "even?")
         (skosimp*)
         (replace -1)
         (inst - "j!1")
         (("1" (assert)) ("2" (assert))))
        ("2"
         (rewrite "even_or_odd")
         (expand "odd?")
         (skosimp*)
         (replace -1)
         (inst - "2+2*j!1")
         (("1"
           (lemma "derivable_n_times_lem"
            ("f" "sinh" "n" "(2 + 2 * j!1) * 2" "m" "1 + 2 * j!1"))
           (("1" (assert)) ("2" (assert)) ("3" (assert))))
          ("2" (assert))))))
      ("2"
       (hide 2)
       (induct "n")
       (("1" (expand "derivable_n_times") (propax))
        ("2"
         (skosimp*)
         (expand "derivable_n_times" 1)
         (expand "derivable_n_times" 1)
         (lemma "sinh_derivable2")
         (lemma "cosh_derivable2")
         (lemma "deriv_cosh")
         (lemma "deriv_sinh")
         (replace -1)
         (replace -2)
         (assert))))))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (stop-rewrite "sq_sqrt")
   (expand "bijective?")
   (expand "injective?")
   (split)
   (("1"
     (skosimp*)
     (lemma "trich_lt" ("x" "x1!1" "y" "x2!1"))
     (lemma "sinh_strict_increasing")
     (expand "strict_increasing?")
     (split -2)
     (("1" (inst - "x1!1" "x2!1") (assert)) ("2" (propax))
      ("3" (inst - "x2!1" "x1!1") (assert))))
    ("2"
     (expand "surjective?")
     (skosimp*)
     (case "y!1+sqrt(1+sq(y!1)) > 0")
     (("1"
       (inst + "ln(y!1+sqrt(1+sq(y!1)))")
       (("1"
         (expand "sinh")
         (lemma "exp_diff" ("x" "0" "y" "ln(sqrt(1 + sq(y!1))+y!1)"))
         (("1"
           (rewrite "exp_0")
           (replace -1 1)
           (rewrite "exp_ln")
           (hide -1)
           (lemma "div_cancel3"
            ("x"
             "sqrt(1 + sq(y!1)) + y!1 - 1 / (sqrt(1 + sq(y!1)) + y!1)"
             "y"
             "y!1"
             "n0z"
             "2"))
           (("1"
             (replace -1 1)
             (hide -1)
             (lemma "minus_div1"
              ("x"
               "sqrt(1 + sq(y!1)) + y!1"
               "n0y"
               "sqrt(1 + sq(y!1)) + y!1"
               "n0x"
               "1"
               "y"
               "1"))
             (replace -1)
             (lemma "div_cancel3"
              ("x"
               "(sqrt(1 + sq(y!1)) + y!1) * (sqrt(1 + sq(y!1)) + y!1) - 1 * 1"
               "n0z"
               "sqrt(1 + sq(y!1)) + y!1"
               "y"
               "y!1*2"))
             (replace -1 1)
             (lemma "sq_sqrt")
             (inst - "1+sq(y!1)")
             (assert)
             (expand "sq" -1 1)
             (replace -1 1)
             (expand "sq" 1)
             (propax))
            ("2" (assert))))
          ("2" (assert))))
        ("2" (assert))))
      ("2"
       (hide 2)
       (lemma "trichotomy" ("x" "y!1"))
       (split -1)
       (("1" (assert)) ("2" (assert))
        ("3"
         (lemma "sq_lt" ("nna" "-y!1" "nnb" "sqrt(1+sq(y!1))"))
         (("1" (rewrite "sq_sqrt") (rewrite "sq_neg") (assert))
          ("2" (assert))))))))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (expand "bijective?")
   (expand "injective?")
   (expand "surjective?")
   (expand "nnreal_cosh")
   (split)
   (("1"
     (skosimp*)
     (lemma "cosh_strict_increasing")
     (expand "nnreal_cosh")
     (expand "strict_increasing?")
     (lemma "trich_lt" ("x" "x1!1" "y" "x2!1"))
     (split -1)
     (("1" (inst - "x1!1" "x2!1") (assert)) ("2" (propax))
      ("3" (inst - "x2!1" "x1!1") (assert))))
    ("2"
     (skosimp*)
     (inst + "acosh(y!1)")
     (expand "cosh")
     (expand "acosh")
     (lemma "acosh_TCC1" ("x" "y!1"))
     (lemma "acosh_TCC2" ("x" "y!1"))
     (flatten -1)
     (lemma "exp_diff" ("x" "0" "y" "ln(sqrt(sq(y!1) - 1) + y!1)"))
     (("1"
       (rewrite "exp_0")
       (replace -1 1)
       (rewrite "exp_ln")
       (rewrite "div_cancel3" 1)
       (lemma "cross_mult"
        ("x"
         "y!1-sqrt(sq(y!1) - 1)"
         "n0x"
         "1"
         "y"
         "1"
         "n0y"
         "sqrt(sq(y!1) - 1) + y!1"))
       (flatten -1)
       (hide -1)
       (split -1)
       (("1" (assert))
        ("2"
         (hide -1 2)
         (assert)
         (rewrite "sq_rew" 1)
         (rewrite "sq_sqrt")
         (rewrite "sq_rew")
         (assert))))
      ("2" (assert)) ("3" (propax))))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (expand "bijective?")
   (expand "injective?")
   (expand "surjective?")
   (split)
   (("1"
     (skosimp*)
     (lemma "tanh_strict_increasing")
     (expand "strict_increasing?")
     (lemma "trich_lt" ("x" "x1!1" "y" "x2!1"))
     (split -1)
     (("1" (inst - "x1!1" "x2!1") (assert)) ("2" (propax))
      ("3" (inst - "x2!1" "x1!1") (assert))))
    ("2"
     (skosimp*)
     (inst + "atanh(y!1)")
     (expand "tanh")
     (expand "sinh")
     (expand "cosh")
     (typepred "y!1")
     (typepred "exp(atanh(y!1))")
     (typepred "exp(-atanh(y!1))")
     (hide -1 -3 -4 -6)
     (rewrite "div_div1")
     (lemma "div_cancel1"
      ("x" "exp(atanh(y!1)) - exp(-atanh(y!1))" "n0z" "2"))
     (replace -1)
     (hide (-1))
     (case "(exp(atanh(y!1)) - exp(-atanh(y!1))) / (exp(atanh(y!1)) + exp(-atanh(y!1))) = (exp(2*atanh(y!1)) - 1)/(exp(2*atanh(y!1)) + 1)")
     (("1"
       (replace -1)
       (hide -1 -2)
       (rewrite "div_cancel3" 1)
       (expand "atanh" 1)
       (lemma "div_cancel1" ("x" "ln((1 + y!1) / (1 - y!1))" "n0z" "2"))
       (("1"
         (replace -1)
         (hide -1)
         (lemma "exp_ln")
         (lemma "posreal_div_posreal_is_posreal"
          ("px" "1+y!1" "py" "1-y!1"))
         (inst - "(1 + y!1) / (1 - y!1)")
         (("1"
           (replace -2)
           (lemma "both_sides_times1"
            ("x"
             "(1 + y!1) / (1 - y!1) - 1"
             "y"
             "(1 + y!1) / (1 - y!1) * y!1 + y!1"
             "n0z"
             "1 - y!1"))
           (replace -1 1 rl)
           (hide -1)
           (lemma "div_cancel1" ("x" "1+y!1" "n0z" "1-y!1"))
           (assert))
          ("2" (assert))))
        ("2"
         (assert)
         (hide 2)
         (lemma "posreal_div_posreal_is_posreal"
          ("px" "1+y!1" "py" "1-y!1"))
         (assert))))
      ("2"
       (hide 2)
       (lemma "cross_mult"
        ("x"
         "(exp(atanh(y!1)) - exp(-atanh(y!1)))"
         "n0x"
         "(exp(atanh(y!1)) + exp(-atanh(y!1)))"
         "y"
         "(exp(2 * atanh(y!1)) - 1)"
         "n0y"
         "(exp(2 * atanh(y!1)) + 1)"))
       (replace -1)
       (hide -1)
       (name-replace "K1" "atanh(y!1)")
       (assert)
       (lemma "exp_sum" ("x" "-K1" "y" "2*K1"))
       (replace -1 * rl)
       (assert))))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (lemma "sinh_bij")
   (expand "posreal_csch")
   (expand "csch")
   (expand "bijective?")
   (flatten -1)
   (split 1)
   (("1"
     (hide -2)
     (expand "injective?")
     (skosimp*)
     (typepred "x1!1")
     (typepred "x2!1")
     (hide -1 -3)
     (lemma "sinh_strict_increasing")
     (expand "strict_increasing?")
     (inst-cp - "0" "x1!1")
     (inst-cp - "0" "x2!1")
     (rewrite "sinh_0")
     (expand ">" (-4 -5))
     (replace -4)
     (replace -5)
     (lemma "cross_mult"
      ("x" "1" "y" "1" "n0x" "sinh(x1!1)" "n0y" "sinh(x2!1)"))
     (replace -7)
     (flatten -1)
     (inst -8 "x1!1" "x2!1")
     (assert))
    ("2"
     (hide -1)
     (expand "surjective?")
     (skosimp*)
     (inst - "1/y!1")
     (skosimp*)
     (lemma "sinh_strict_increasing")
     (expand "strict_increasing?")
     (lemma "posreal_div_posreal_is_posreal" ("px" "1" "py" "y!1"))
     (lemma "trichotomy" ("x" "x!1"))
     (split -1)
     (("1"
       (inst - "0" "x!1")
       (rewrite "sinh_0")
       (assert)
       (inst + "x!1")
       (rewrite "div_cancel3")
       (replace -4)
       (assert))
      ("2" (replace -1) (rewrite "sinh_0") (assert))
      ("3"
       (inst - "x!1" "0")
       (rewrite "sinh_0")
       (assert)
       (name-replace "K1" "sinh(x!1)")
       (name-replace "K2" "1/y!1")
       (replace -4)
       (hide-all-but (-2 -3))
       (assert))))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (expand "nnreal_sech")
   (expand "sech")
   (lemma "cosh_bij")
   (expand "bijective?")
   (flatten -1)
   (lemma "cosh_strict_increasing")
   (expand "strict_increasing?")
   (split 1)
   (("1"
     (hide -3)
     (expand "injective?")
     (skosimp*)
     (lemma "trich_lt" ("x" "x1!1" "y" "x2!1"))
     (split -1)
     (("1"
       (inst-cp - "x1!1" "x2!1")
       (replace -1)
       (expand "nnreal_cosh")
       (typepred "cosh(x1!1)")
       (typepred "cosh(x2!1)")
       (lemma "cross_mult"
        ("x" "1" "y" "1" "n0x" "cosh(x1!1)" "n0y" "cosh(x2!1)"))
       (("1" (assert)) ("2" (assert)) ("3" (assert))))
      ("2" (propax))
      ("3" (inst - "x2!1" "x1!1") (expand "nnreal_cosh") (assert))))
    ("2"
     (hide -2)
     (expand "surjective?")
     (expand "nnreal_cosh")
     (skosimp*)
     (typepred "y!1")
     (hide -1)
     (inst -4 "1/y!1")
     (("1"
       (skosimp*)
       (typepred "cosh(x!1)")
       (rewrite "div_cancel4")
       (typepred "x!1")
       (inst + "x!1")
       (rewrite "div_cancel3")
       (assert))
      ("2"
       (hide -3 2)
       (lemma "both_sides_div_pos_le2" ("pz" "1" "py" "y!1" "px" "1"))
       (assert))))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (expand "posreal_coth")
   (expand "coth")
   (lemma "tanh_bij")
   (expand "bijective?")
   (flatten -1)
   (lemma "tanh_strict_increasing")
   (expand "strict_increasing?")
   (split 1)
   (("1"
     (hide -3)
     (expand "injective?")
     (skosimp*)
     (typepred "x1!1")
     (typepred "x2!1")
     (hide -1 -3)
     (inst-cp - "0" "x1!1")
     (inst-cp - "0" "x2!1")
     (rewrite "tanh_0")
     (expand ">" (-1 -2))
     (replace -1)
     (replace -2)
     (lemma "cross_mult"
      ("x" "1" "y" "1" "n0x" "tanh(x1!1)" "n0y" "tanh(x2!1)"))
     (("1"
       (replace -4 -1)
       (flatten -1)
       (simplify -1)
       (inst -8 "x1!1" "x2!1")
       (assert))
      ("2" (assert)) ("3" (assert))))
    ("2"
     (hide -2)
     (expand "surjective?")
     (skosimp*)
     (typepred "y!1")
     (lemma "posreal_div_posreal_is_posreal" ("px" "1" "py" "y!1"))
     (lemma "both_sides_div_pos_gt2" ("pz" "1" "py" "y!1" "px" "1"))
     (replace -3 -1)
     (flatten -1)
     (inst -5 "1/y!1")
     (("1"
       (skosimp*)
       (lemma "trichotomy" ("x" "x!1"))
       (split -1)
       (("1"
         (inst + "x!1")
         (("1"
           (rewrite "div_cancel4" -6)
           (rewrite "div_cancel3" 1)
           (assert))
          ("2" (assert))))
        ("2" (replace -1) (rewrite "tanh_0") (assert))
        ("3"
         (inst - "x!1" "0")
         (rewrite "tanh_0")
         (expand ">" -1)
         (replace -1)
         (replace -6)
         (assert))))
      ("2" (assert))))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "sinh_bij")
   (lemma "bijective_inverse" ("f" "sinh" "y" "x!1" "x" "asinh(x!1)"))
   (("1"
     (flatten -1)
     (hide -1)
     (split -1)
     (("1" (assert))
      ("2"
       (hide 2)
       (expand "asinh")
       (hide -1)
       (expand "sinh")
       (lemma "sqrt_pos" ("px" "1+sq(x!1)"))
       (case "sqrt(1 + sq(x!1)) + x!1 >0")
       (("1"
         (rewrite "div_cancel4" 1)
         (lemma "exp_diff" ("x" "0" "y" "ln(sqrt(1 + sq(x!1)) + x!1)"))
         (("1"
           (rewrite "exp_0")
           (replace -1)
           (rewrite "exp_ln")
           (hide -1)
           (lemma "div_cancel3"
            ("y"
             "sqrt(1 + sq(x!1))-x!1"
             "x"
             "1"
             "n0z"
             "sqrt(1 + sq(x!1)) + x!1"))
           (("1"
             (flatten -1)
             (hide -1)
             (split -1)
             (("1" (assert))
              ("2"
               (hide 2)
               (assert)
               (rewrite "sq_rew")
               (rewrite "sq_rew")
               (rewrite "sq_sqrt")
               (assert))))
            ("2" (assert))))
          ("2" (assert))))
        ("2"
         (hide 2)
         (lemma "trichotomy" ("x" "x!1"))
         (split -1)
         (("1" (assert)) ("2" (assert))
          ("3"
           (lemma "sq_gt" ("nna" "sqrt(1 + sq(x!1))" "nnb" "-x!1"))
           (("1" (rewrite "sq_sqrt") (rewrite "sq_neg") (assert))
            ("2" (assert))))))))))
    ("2" (propax))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "asinh_alt_def" ("x" "sinh(x!1)"))
   (lemma "sinh_bij")
   (lemma "comp_inverse_left" ("f" "sinh" "x" "x!1"))
   (("1" (assert)) ("2" (propax))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "sinh_bij")
   (expand "sinh")
   (hide -1)
   (rewrite "div_cancel3")
   (lemma "exp_diff" ("x" "0" "y" "asinh(x!1)"))
   (rewrite "exp_0")
   (replace -1 1)
   (hide -1)
   (expand "asinh")
   (lemma "sqrt_pos" ("px" "1+sq(x!1)"))
   (case "sqrt(1 + sq(x!1)) + x!1 > 0")
   (("1"
     (rewrite "exp_ln")
     (field 1)
     (lemma "sqrt_def")
     (inst -1 "1 + sq(x!1)")
     (assert)
     (replaces -1)
     (grind))
    ("2"
     (hide 2)
     (lemma "trichotomy" ("x" "x!1"))
     (split -1)
     (("1" (assert)) ("2" (assert))
      ("3"
       (lemma "sq_gt" ("nna" "sqrt(1 + sq(x!1))" "nnb" "-x!1"))
       (("1" (rewrite "sq_neg") (rewrite "sq_sqrt") (assert))
        ("2" (assert))))))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (lemma "sinh_strict_increasing")
   (expand "strict_increasing?")
   (skosimp*)
   (lemma "trich_lt" ("x" "asinh(x!1)" "y" "asinh(y!1)"))
   (split -1)
   (("1" (propax))
    ("2"
     (lemma "sinh_asinh" ("x" "x!1"))
     (lemma "sinh_asinh" ("x" "y!1"))
     (assert))
    ("3"
     (inst - "asinh(y!1)" "asinh(x!1)")
     (rewrite "sinh_asinh")
     (rewrite "sinh_asinh")
     (assert))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (lemma "sinh_bij")
   (lemma "bij_inv_is_bij" ("f" "sinh"))
   (lemma "extensionality" ("f" "asinh" "g" "inverse(sinh)"))
   (split -1)
   (("1" (assert))
    ("2"
     (hide 2)
     (skosimp*)
     (lemma "asinh_alt_def" ("x" "x!1"))
     (propax))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: unchecked
description: nil
script:
  (""
   (skosimp*)
   (lemma "atanh_taylors" ("z" "z!1" "n" "n!1"))
   (skosimp*)
   (replace -1 1)
   (simplify 1)
   (hide -1)
   (lemma "atanh_nderiv" ("n" "3+2*n!1"))
   (simplify -1)
   (expand "even?" -1)
   (lemma "div_cancel1" ("x" "1+n!1" "n0z" "2"))
   (replace -1 -2)
   (replace -2 1)
   (hide -1 -2)
   (case "1-sq(z!1)>0")
   (("1"
     (case "abs(z!1^(3+2*n!1))<1")
     (("1"
       (rewrite "abs_div" 1)
       (rewrite "abs_mult" 1)
       (expand "abs" 1 3)
       (lemma "expt_pos" ("px" "1-sq(z!1)" "i" "3+2*n!1"))
       (("1"
         (lemma "posreal_times_posreal_is_posreal"
          ("px" "6+4*n!1" "py" "(1 - sq(z!1)) ^ (3 + 2 * n!1)"))
         (("1"
           (case "atanhND(1 + n!1)(c!1)>0")
           (("1"
             (case "abs(atanhND(1 + n!1)(c!1)) <= atanhND(1 + n!1)(z!1)")
             (("1"
               (case "atanhND(1 + n!1)(z!1) = factorial(2+2*n!1)*(((1 - z!1) ^ (3 + 2 * n!1) + (1 + z!1) ^ (3 + 2 * n!1)) / (2 * (1 - sq(z!1)) ^ (3 + 2 * n!1)))")
               (("1"
                 (rewrite "div_mult_pos_le1" 1)
                 (expand "abs" 1 1)
                 (expand "abs" -2)
                 (assert)
                 (name-replace "K10" "1 - sq(z!1)")
                 (name-replace "K11" "K10^(3+2*n!1)")
                 (name-replace "K12"
                  "(1-z!1)^(3+2*n!1)+(1+z!1)^(3+2*n!1)")
                 (replace -1 -2)
                 (lemma "lt_times_lt_pos1"
                  ("px"
                   "atanhND(1 + n!1)(c!1)"
                   "y"
                   "factorial(2 + 2 * n!1) * (K12 / (2 * K11))"
                   "nnz"
                   "abs(z!1 ^ (3 + 2 * n!1))"
                   "w"
                   "1"))
                 (replace -3)
                 (replace -7)
                 (expand "factorial" 1)
                 (case-replace
                  "factorial(2 + 2 * n!1) * (K12 / (2 * K11)) * 1 = 3 * (factorial(2 + 2 * n!1) * (K12 / (6 * K11 + 4 * (K11 * n!1)))) +
                          2 *
                           ((factorial(2 + 2 * n!1) * (K12 / (6 * K11 + 4 * (K11 * n!1)))) *
                             n!1)")
                 (("1" (assert))
                  ("2"
                   (hide-all-but (-5 -6 1))
                   (lemma "div_cancel1"
                    ("x"
                     "factorial(2 + 2 * n!1) * (K12 / (2 * K11))"
                     "n0z"
                     "3+2*n!1"))
                   (replace -1 1 rl)
                   (hide -1)
                   (name-replace "K13" "factorial(2 + 2 * n!1)")
                   (case-replace
                    "(K13 * (K12 / (2 * K11)) / (3 + 2 * n!1))=(K13 * (K12 / (6 * K11 + 4 * (K11 * n!1))))")
                   (("1" (assert))
                    ("2"
                     (hide 2)
                     (lemma "cross_mult"
                      ("x"
                       "K13 * (K12 / (2 * K11))"
                       "n0x"
                       "3+2*n!1"
                       "y"
                       "K13*K12"
                       "n0y"
                       "6 * K11 + 4 * (K11 * n!1)"))
                     (replace -1)
                     (hide -1)
                     (assert))))))
                ("2"
                 (hide -1 -2 2)
                 (hide -1)
                 (expand "atanhND")
                 (expand "atanhN")
                 (expand "atanhD")
                 (lemma "cross_mult"
                  ("x"
                   "polynomial(atanhF(1 + n!1), 2 + 2 * n!1)(z!1)"
                   "n0x"
                   "(1 - sq(z!1)) ^ (3 + 2 * n!1)"
                   "y"
                   "factorial(2 + 2 * n!1) * ((1 - z!1) ^ (3 + 2 * n!1) + (1 + z!1) ^ (3 + 2 * n!1))"
                   "n0y"
                   "2 * (1 - sq(z!1)) ^ (3 + 2 * n!1)"))
                 (replace -1 1)
                 (hide -1)
                 (lemma "both_sides_times1"
                  ("x"
                   "polynomial(atanhF(1 + n!1), 2 + 2 * n!1)(z!1) * 2"
                   "n0z"
                   "(1 - sq(z!1)) ^ (3 + 2 * n!1)"
                   "y"
                   "factorial(2 + 2 * n!1) *
                            ((1 - z!1) ^ (3 + 2 * n!1) + (1 + z!1) ^ (3 + 2 * n!1))"))
                 (("1"
                   (replace -1 1)
                   (hide -1)
                   (hide -1 -2)
                   (lemma "power_polynomial" ("pn" "3+2*n!1"))
                   (lemma "neg_power_polynomial" ("pn" "3+2*n!1"))
                   (case-replace
                    "(1 - z!1) ^ (3 + 2 * n!1) = polynomial(neg_power_fs(3 + 2 * n!1), 3 + 2 * n!1)(z!1)")
                   (("1"
                     (case-replace
                      "(1 + z!1) ^ (3 + 2 * n!1) = polynomial(power_fs(3 + 2 * n!1), 3 + 2 * n!1)(z!1)")
                     (("1"
                       (hide -1 -2 -3 -4)
                       (expand "polynomial")
                       (lemma "sigma_scal[nat]"
                        ("low"
                         "0"
                         "high"
                         "2+2*n!1"
                         "a"
                         "2"
                         "F"
                         "LAMBDA (i: nat):
                                        atanhF(1 + n!1)(i) * (IF i = 0 THEN 1 ELSE z!1 ^ i ENDIF)"))
                       (replace -1 1 rl)
                       (hide -1)
                       (lemma "sigma_scal[nat]"
                        ("low"
                         "0"
                         "high"
                         "3+2*n!1"
                         "a"
                         "factorial(2 + 2 * n!1)"
                         "F"
                         "LAMBDA (i: nat):power_fs(3 + 2 * n!1)(i) * (IF i = 0 THEN 1 ELSE z!1 ^ i ENDIF)"))
                       (replace -1 1 rl)
                       (hide -1)
                       (lemma "sigma_scal[nat]"
                        ("low"
                         "0"
                         "high"
                         "3+2*n!1"
                         "a"
                         "factorial(2 + 2 * n!1)"
                         "F"
                         "LAMBDA (i: nat):neg_power_fs(3 + 2 * n!1)(i) * (IF i = 0 THEN 1 ELSE z!1 ^ i ENDIF)"))
                       (replace -1 1 rl)
                       (hide -1)
                       (lemma "sigma_sum"
                        ("low"
                         "0"
                         "high"
                         "3+2*n!1"
                         "F"
                         "LAMBDA (i: nat):
                                        factorial(2 + 2 * n!1) *
                                         (LAMBDA (i: nat):
                                            power_fs(3 + 2 * n!1)(i) *
                                             (IF i = 0 THEN 1 ELSE z!1 ^ i ENDIF))(i)"
                         "G"
                         "LAMBDA (i: nat):
                                        factorial(2 + 2 * n!1) *
                                         (LAMBDA (i: nat):
                                            neg_power_fs(3 + 2 * n!1)(i) *
                                             (IF i = 0 THEN 1 ELSE z!1 ^ i ENDIF))(i)"))
                       (replace -1 1)
                       (hide -1)
                       (simplify 1)
                       (lemma "sigma_last"
                        ("low"
                         "0"
                         "high"
                         "3+2*n!1"
                         "F"
                         "LAMBDA (i_1: nat):
                                        factorial(2 + 2 * n!1) *
                                         (power_fs(3 + 2 * n!1)(i_1) *
                                           (IF i_1 = 0 THEN 1 ELSE z!1 ^ i_1 ENDIF))
                                         +
                                         factorial(2 + 2 * n!1) *
                                          (neg_power_fs(3 + 2 * n!1)(i_1) *
                                            (IF i_1 = 0 THEN 1 ELSE z!1 ^ i_1 ENDIF))"))
                       (assert)
                       (replace -1 1)
                       (hide -1)
                       (expand "neg_power_fs" 1 2)
                       (expand "power_fs" 1 2)
                       (case-replace "(-1) ^ (3 + 2 * n!1)=-1")
                       (("1"
                         (case-replace
                          "sigma(0, 2 + 2 * n!1,
                                       LAMBDA (i_1: nat):
                                         factorial(2 + 2 * n!1) *
                                          (power_fs(3 + 2 * n!1)(i_1) *
                                            (IF i_1 = 0 THEN 1 ELSE z!1 ^ i_1 ENDIF))
                                          +
                                          factorial(2 + 2 * n!1) *
                                           (neg_power_fs(3 + 2 * n!1)(i_1) *
                                             (IF i_1 = 0 THEN 1 ELSE z!1 ^ i_1 ENDIF)))
                                  +
                                  factorial(2 + 2 * n!1) *
                                   (C(3 + 2 * n!1, 3 + 2 * n!1) * z!1 ^ (3 + 2 * n!1))
                                  +
                                  factorial(2 + 2 * n!1) *
                                   (C(3 + 2 * n!1, 3 + 2 * n!1) * -1 * z!1 ^ (3 + 2 * n!1)) = sigma(0, 2 + 2 * n!1,
                                       LAMBDA (i_1: nat):
                                         factorial(2 + 2 * n!1) *
                                          (power_fs(3 + 2 * n!1)(i_1) *
                                            (IF i_1 = 0 THEN 1 ELSE z!1 ^ i_1 ENDIF))
                                          +
                                          factorial(2 + 2 * n!1) *
                                           (neg_power_fs(3 + 2 * n!1)(i_1) *
                                             (IF i_1 = 0 THEN 1 ELSE z!1 ^ i_1 ENDIF)))")
                         (("1"
                           (hide -1 -2)
                           (lemma "sigma_eq[nat]"
                            ("low"
                             "0"
                             "high"
                             "2+2*n!1"
                             "F"
                             "LAMBDA (i_1: nat):
                                           2 *
                                            (atanhF(1 + n!1)(i_1) *
                                              (IF i_1 = 0 THEN 1 ELSE z!1 ^ i_1 ENDIF))"
                             "G"
                             "LAMBDA (i_1: nat):
                                            factorial(2 + 2 * n!1) *
                                             (power_fs(3 + 2 * n!1)(i_1) *
                                               (IF i_1 = 0 THEN 1 ELSE z!1 ^ i_1 ENDIF))
                                             +
                                             factorial(2 + 2 * n!1) *
                                              (neg_power_fs(3 + 2 * n!1)(i_1) *
                                                (IF i_1 = 0 THEN 1 ELSE z!1 ^ i_1 ENDIF))"))
                           (split -1)
                           (("1" (propax))
                            ("2"
                             (hide 2)
                             (skosimp*)
                             (expand "atanhF")
                             (expand "power_fs")
                             (expand "neg_power_fs")
                             (name-replace "K400"
                              "factorial(2 + 2 * n!1)")
                             (name-replace "K401" "C(3 + 2 * n!1, n!2)")
                             (name-replace "K402"
                              "(IF n!2 = 0 THEN 1 ELSE z!1 ^ n!2 ENDIF)")
                             (case "even?(n!2)")
                             (("1"
                               (lemma "even_or_odd" ("x" "n!2"))
                               (assert)
                               (expand "even?")
                               (skosimp*)
                               (replace -1 2)
                               (lemma "expt_times"
                                ("n0x" "-1" "i" "2" "j" "j!1"))
                               (case-replace "(-1)^2=1")
                               (("1" (rewrite "expt_1i") (assert))
                                ("2" (hide-all-but 1) (grind))))
                              ("2"
                               (rewrite "even_or_odd" 1)
                               (assert)
                               (expand "odd?")
                               (skosimp*)
                               (replace -1 1)
                               (lemma "expt_plus"
                                ("n0x" "-1" "i" "1" "j" "2*j!1"))
                               (rewrite "expt_x1")
                               (lemma "expt_times"
                                ("n0x" "-1" "i" "2" "j" "j!1"))
                               (case-replace "(-1)^2=1")
                               (("1" (rewrite "expt_1i") (assert))
                                ("2" (hide-all-but 1) (grind))))))))
                          ("2"
                           (hide 2)
                           (name-replace "K300"
                            "sigma(0, 2 + 2 * n!1,
                                        LAMBDA (i_1: nat):
                                          factorial(2 + 2 * n!1) *
                                           (power_fs(3 + 2 * n!1)(i_1) *
                                             (IF i_1 = 0 THEN 1 ELSE z!1 ^ i_1 ENDIF))
                                           +
                                           factorial(2 + 2 * n!1) *
                                            (neg_power_fs(3 + 2 * n!1)(i_1) *
                                              (IF i_1 = 0 THEN 1 ELSE z!1 ^ i_1 ENDIF)))"))))
                        ("2"
                         (hide-all-but 1)
                         (lemma "expt_plus"
                          ("n0x" "-1" "i" "1" "j" "2+2*n!1"))
                         (rewrite "expt_x1")
                         (lemma "expt_times")
                         (inst - "2" "1+n!1" "-1")
                         (replace -1 -2)
                         (case-replace "(-1)^2=1")
                         (("1" (rewrite "expt_1i" -2) (assert))
                          ("2" (hide-all-but 1) (grind))))))
                      ("2" (replace -3 1 rl) (simplify 1) (propax))))
                    ("2" (replace -1 1 rl) (simplify 1) (propax))))
                  ("2" (assert))))
                ("3" (assert))))
              ("2"
               (hide 2)
               (expand "abs" 1)
               (assert)
               (hide -1)
               (hide -1)
               (expand "atanhND")
               (expand "atanhN")
               (expand "atanhD")
               (case "1-sq(c!1)>0")
               (("1"
                 (lemma "expt_pos" ("px" "1-sq(c!1)" "i" "3+2*n!1"))
                 (("1"
                   (rewrite "div_mult_pos_le1" 1)
                   (lemma "div_mult_pos_le2"
                    ("z"
                     "polynomial(atanhF(1 + n!1), 2 + 2 * n!1)(z!1)*(1 - sq(c!1)) ^ (3 + 2 * n!1)"
                     "py"
                     "(1 - sq(z!1)) ^ (3 + 2 * n!1)"
                     "x"
                     "polynomial(atanhF(1 + n!1), 2 + 2 * n!1)(c!1)"))
                   (replace -1 1)
                   (hide -1)
                   (lemma "even_polynomial"
                    ("a" "atanhF(1 + n!1)" "n" "1 + n!1"))
                   (case "even_fs?(atanhF(1 + n!1))")
                   (("1"
                     (replace -1 -2)
                     (inst-cp - "c!1")
                     (inst - "z!1")
                     (replace -2)
                     (replace -3)
                     (hide -1 -2 -3)
                     (case "FORALL (x:real): x^2 = sq(x)")
                     (("1"
                       (inst-cp - "c!1")
                       (inst - "z!1")
                       (replace -1)
                       (replace -2)
                       (case "sq(c!1)<=sq(z!1)")
                       (("1"
                         (lemma "both_sides_expt_pos_le"
                          ("px"
                           "1-sq(z!1)"
                           "py"
                           "1-sq(c!1)"
                           "pm"
                           "3+2*n!1"))
                         (assert)
                         (case "FORALL (n:nat): polynomial(LAMBDA (i: nat): atanhF(1 + n!1)(2 * i), n)(sq(c!1)) > 0")
                         (("1"
                           (inst - "1+n!1")
                           (case "FORALL (n:nat): polynomial(LAMBDA (i: nat): atanhF(1 + n!1)(2 * i), n)(sq(c!1))
                                        <=
                                        polynomial(LAMBDA (i: nat): atanhF(1 + n!1)(2 * i), n)(sq(z!1))")
                           (("1"
                             (inst - "1+n!1")
                             (lemma "le_times_le_pos"
                              ("nnx"
                               "polynomial(LAMBDA (i: nat): atanhF(1 + n!1)(2 * i), 1 + n!1)(sq(c!1))"
                               "nnz"
                               "(1 - sq(z!1)) ^ (3 + 2 * n!1)"
                               "y"
                               "polynomial(LAMBDA (i: nat): atanhF(1 + n!1)(2 * i), 1 + n!1)(sq(z!1))"
                               "w"
                               "(1 - sq(c!1)) ^ (3 + 2 * n!1)"))
                             (("1" (assert)) ("2" (assert))))
                            ("2"
                             (hide-all-but (1 -3))
                             (induct "n")
                             (("1"
                               (rewrite "polynomial_n0")
                               (simplify 1)
                               (assert))
                              ("2"
                               (skosimp*)
                               (expand "polynomial")
                               (expand "sigma" 1)
                               (name-replace "K100"
                                "sigma(0, j!1,
                                            LAMBDA (i_1: nat):
                                              atanhF(1 + n!1)(2 * i_1) *
                                               (IF i_1 = 0 THEN 1 ELSE sq(c!1) ^ i_1 ENDIF))")
                               (name-replace "K101"
                                "sigma(0, j!1,
                                             LAMBDA (i_1: nat):
                                               atanhF(1 + n!1)(2 * i_1) *
                                                (IF i_1 = 0 THEN 1 ELSE sq(z!1) ^ i_1 ENDIF))")
                               (case-replace "sq(c!1)=0")
                               (("1"
                                 (expand "^" 1 1)
                                 (expand "expt" 1 1)
                                 (lemma
                                  "expt_pos"
                                  ("px" "sq(z!1)" "i" "1+j!1"))
                                 (expand "atanhF")
                                 (expand "odd?")
                                 (case "j!1>n!1")
                                 (("1" (assert))
                                  ("2"
                                   (assert)
                                   (lemma
                                    "posreal_times_posreal_is_posreal"
                                    ("px"
                                     "factorial(2 + 2 * n!1) * C(3 + 2 * n!1, 2 + 2 * j!1)"
                                     "py"
                                     "sq(z!1) ^ (1 + j!1)"))
                                   (assert))))
                                ("2"
                                 (lemma
                                  "both_sides_expt_pos_le"
                                  ("px"
                                   "sq(c!1)"
                                   "py"
                                   "sq(z!1)"
                                   "pm"
                                   "1+j!1"))
                                 (("1"
                                   (case
                                    "0 <= atanhF(1 + n!1)(2 + 2 * j!1)")
                                   (("1"
                                     (expand "<=" -1)
                                     (split -1)
                                     (("1"
                                       (lemma
                                        "both_sides_times_pos_le1"
                                        ("x"
                                         "sq(c!1) ^ (1 + j!1)"
                                         "y"
                                         "sq(z!1) ^ (1 + j!1)"
                                         "pz"
                                         "atanhF(1 + n!1)(2 + 2 * j!1)"))
                                       (("1" (assert)) ("2" (assert))))
                                      ("2" (replace -1 * rl) (assert))))
                                    ("2"
                                     (hide-all-but 1)
                                     (expand "atanhF")
                                     (expand "odd?")
                                     (case "j!1>n!1")
                                     (("1" (assert)) ("2" (assert))))))
                                  ("2"
                                   (typepred "sq(c!1)")
                                   (assert))))))))))
                          ("2"
                           (hide-all-but 1)
                           (induct "n")
                           (("1"
                             (rewrite "polynomial_n0")
                             (simplify)
                             (expand "atanhF")
                             (expand "odd?")
                             (assert))
                            ("2"
                             (skosimp*)
                             (expand "polynomial")
                             (expand "sigma" 1)
                             (name-replace "K103"
                              "sigma(0, j!1,
                                          LAMBDA (i_1: nat):
                                            atanhF(1 + n!1)(2 * i_1) *
                                             (IF i_1 = 0 THEN 1 ELSE sq(c!1) ^ i_1 ENDIF))")
                             (typepred "sq(c!1)")
                             (expand ">=" -1)
                             (expand "<=" -1)
                             (split -1)
                             (("1"
                               (lemma "expt_pos"
                                ("px" "sq(c!1)" "i" "1+j!1"))
                               (("1"
                                 (expand "atanhF")
                                 (expand "odd?")
                                 (case "j!1>n!1")
                                 (("1" (assert))
                                  ("2"
                                   (assert)
                                   (lemma
                                    "posreal_times_posreal_is_posreal"
                                    ("px"
                                     "factorial(2 + 2 * n!1) * C(3 + 2 * n!1, 2 + 2 * j!1)"
                                     "py"
                                     "sq(c!1) ^ (1 + j!1)"))
                                   (assert))))
                                ("2" (assert))))
                              ("2"
                               (replace -1 * rl)
                               (expand "^" 1)
                               (expand "expt" 1)
                               (propax))))))))
                        ("2"
                         (hide-all-but 1)
                         (typepred "c!1")
                         (lemma "trichotomy" ("x" "z!1"))
                         (split -1)
                         (("1"
                           (assert)
                           (flatten -4)
                           (lemma "sq_lt" ("nna" "c!1" "nnb" "z!1"))
                           (("1" (assert)) ("2" (assert))))
                          ("2" (assert))
                          ("3"
                           (lemma "sq_lt" ("nna" "-c!1" "nnb" "-z!1"))
                           (("1"
                             (rewrite "sq_neg")
                             (rewrite "sq_neg")
                             (assert))
                            ("2" (assert)) ("3" (assert))))))))
                      ("2" (hide-all-but 1) (grind))))
                    ("2"
                     (hide-all-but 1)
                     (expand "even_fs?")
                     (expand "atanhF")
                     (skosimp*)
                     (assert))))
                  ("2" (assert))))
                ("2"
                 (hide-all-but 1)
                 (case "c!1>=0")
                 (("1"
                   (lemma "sq_gt" ("nna" "1" "nnb" "c!1"))
                   (("1" (rewrite "sq_1") (assert)) ("2" (propax))))
                  ("2"
                   (lemma "sq_gt" ("nna" "1" "nnb" "-c!1"))
                   (("1" (rewrite "sq_1") (rewrite "sq_neg") (assert))
                    ("2" (assert))))))))))
            ("2"
             (hide 2)
             (expand "atanhND")
             (expand "atanhN")
             (expand "atanhD")
             (hide -1 -2 -3 -4)
             (case-replace "c!1=0")
             (("1"
               (rewrite "polynomial_x0")
               (expand "atanhF")
               (expand "odd?")
               (rewrite "C_0")
               (assert)
               (cross-mult)
               (ground))
              ("2"
               (lemma "even_polynomial"
                ("a" "atanhF(1 + n!1)" "n" "1 + n!1" "x" "c!1"))
               (split -1)
               (("1"
                 (replace -1 2)
                 (hide -1)
                 (case "c!1^2>0")
                 (("1"
                   (expand "polynomial")
                   (name-replace "KC" "c!1^2")
                   (case "FORALL (n:nat): sigma(0, n,
                                     LAMBDA (i_1: nat):
                                       atanhF(1 + n!1)(2 * i_1) *
                                        (IF i_1 = 0 THEN 1 ELSE KC ^ i_1 ENDIF))
                                > 0")
                   (("1"
                     (inst - "1+n!1")
                     (name-replace "SS"
                      "sigma(0, 1 + n!1,
                                  LAMBDA (i_1: nat):
                                    atanhF(1 + n!1)(2 * i_1) *
                                     (IF i_1 = 0 THEN 1 ELSE KC ^ i_1 ENDIF))")
                     (case "(1 - sq(c!1)) ^ (3 + 2 * n!1) > 0")
                     (("1" (cross-mult 2) (assert))
                      ("2"
                       (typepred "c!1")
                       (hide-all-but (-1 -2 1))
                       (lemma "expt_pos_aux")
                       (inst -1 "3+2*n!1" "1 - sq(c!1)")
                       (("1" (expand "^") (propax))
                        ("2"
                         (hide 2)
                         (lemma "neg_pos_sq_lt")
                         (inst?)
                         (rewrite "sq_1")
                         (assert))))))
                    ("2"
                     (hide 2 3)
                     (induct "n")
                     (("1"
                       (expand "sigma" 1)
                       (expand "atanhF" 1)
                       (expand "odd?" 1)
                       (rewrite "C_0")
                       (assert))
                      ("2"
                       (skosimp*)
                       (expand "sigma" 1)
                       (name-replace "K20"
                        "sigma(0, j!1,
                                    LAMBDA (i_1: nat):
                                      atanhF(1 + n!1)(2 * i_1) *
                                       (IF i_1 = 0 THEN 1 ELSE KC ^ i_1 ENDIF))")
                       (lemma "expt_pos" ("px" "KC" "i" "1+j!1"))
                       (("1"
                         (case "atanhF(1 + n!1)(2 + 2 * j!1) >=0")
                         (("1"
                           (lemma "both_sides_times_pos_ge1"
                            ("x"
                             "atanhF(1 + n!1)(2 + 2 * j!1)"
                             "y"
                             "0"
                             "pz"
                             "KC ^ (1 + j!1)"))
                           (("1" (assert)) ("2" (assert))))
                          ("2"
                           (hide-all-but 1)
                           (expand "atanhF")
                           (expand "odd?")
                           (case "j!1>n!1")
                           (("1" (assert)) ("2" (assert))))))
                        ("2" (assert))))))))
                  ("2"
                   (hide 3)
                   (expand "^")
                   (expand "expt")
                   (expand "expt")
                   (expand "expt")
                   (rewrite "sq_rew")
                   (lemma "sq_nz_pos" ("nz" "c!1"))
                   (("1" (propax)) ("2" (assert))))))
                ("2"
                 (hide-all-but 1)
                 (expand "even_fs?")
                 (expand "atanhF")
                 (skosimp*)
                 (replace -1)
                 (propax))))))))
          ("2" (assert))))
        ("2" (assert))))
      ("2"
       (hide -1 2)
       (case "FORALL (pn:posnat): abs(z!1^pn)<1")
       (("1" (inst - "3+2*n!1"))
        ("2"
         (hide 2)
         (induct "pn")
         (("1" (assert)) ("2" (assert))
          ("3"
           (skosimp*)
           (case-replace "j!1=0")
           (("1"
             (rewrite "expt_x1")
             (expand "abs")
             (case "z!1<0")
             (("1" (assert)) ("2" (assert))))
            ("2"
             (assert)
             (case-replace "z!1=0")
             (("1"
               (expand "^" 2)
               (expand "expt" 2)
               (expand "expt" 2)
               (expand "abs" 2)
               (assert))
              ("2"
               (lemma "expt_plus" ("n0x" "z!1" "i" "1" "j" "j!1"))
               (("1"
                 (replace -1 3)
                 (rewrite "expt_x1" 3)
                 (rewrite "abs_mult" 3)
                 (lemma "lt_times_lt_pos1"
                  ("px" "abs(z!1)" "y" "1" "nnz" "abs(z!1^j!1)" "w" "1"))
                 (("1"
                   (split -1)
                   (("1" (assert))
                    ("2"
                     (hide-all-but 1)
                     (expand "abs")
                     (case "z!1<0")
                     (("1" (assert)) ("2" (assert))))
                    ("3" (propax))))
                  ("2"
                   (hide-all-but (1 2))
                   (expand "abs")
                   (lemma "trichotomy" ("x" "z!1"))
                   (split -1)
                   (("1" (assert)) ("2" (propax)) ("3" (assert))))))
                ("2" (assert))))))))))))))
    ("2"
     (hide 2)
     (case "z!1>=0")
     (("1"
       (lemma "sq_gt" ("nna" "1" "nnb" "z!1"))
       (("1" (rewrite "sq_1") (assert)) ("2" (propax))))
      ("2"
       (lemma "sq_gt" ("nna" "1" "nnb" "-z!1"))
       (("1" (rewrite "sq_1") (rewrite "sq_neg") (assert))
        ("2" (assert))))))))


proof_type: t_proof
decl_type: tcc
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "trichotomy" ("x" "x!1"))
   (lemma "exp_diff" ("x" "0" "y" "x!1"))
   (rewrite "exp_0")
   (replace -1 1)
   (lemma "div_mult_pos_ge1")
   (inst - "2" "1" "exp(x!1) + 1 / exp(x!1)")
   (replace -1 1)
   (split -3)
   (("1"
     (lemma "exp_strict_increasing")
     (expand "strict_increasing?")
     (inst - "0" "x!1")
     (rewrite "exp_0")
     (assert)
     (lemma "sq_lt" ("nnb" "exp(x!1)-1" "nna" "0"))
     (expand "sq")
     (lemma "div_mult_pos_lt1"
      ("z" "-1" "py" "exp(x!1)" "x" "exp(x!1)-2"))
     (assert))
    ("2" (replace -1) (rewrite "exp_0") (assert))
    ("3"
     (lemma "exp_strict_increasing")
     (expand "strict_increasing?")
     (inst - "x!1" "0")
     (rewrite "exp_0")
     (assert)
     (lemma "sq_lt" ("nna" "0" "nnb" "1-exp(x!1)"))
     (expand "sq")
     (lemma "div_mult_pos_lt1"
      ("py" "exp(x!1)" "z" "-1" "x" "exp(x!1)-2"))
     (assert))))


proof_type: t_proof
decl_type: tcc
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "div_mult_pos_lt1")
   (inst - "cosh(x!1)" "1" "sinh(x!1)")
   (("1"
     (lemma "div_mult_pos_lt2")
     (inst - "cosh(x!1)" "-1" "sinh(x!1)")
     (("1"
       (replace -1)
       (replace -2)
       (hide (-1 -2))
       (expand "cosh")
       (expand "sinh")
       (typepred "exp(x!1)")
       (typepred "exp(-x!1)")
       (name-replace "EPX" "exp(x!1)")
       (name-replace "EMX" "exp(-x!1)")
       (hide -3 -6)
       (grind))
      ("2" (typepred "cosh(x!1)") (assert))))
    ("2" (typepred "cosh(x!1)") (assert))))


proof_type: t_proof
decl_type: tcc
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "sinh")
   (lemma "exp_diff" ("x" "0" "y" "n0x!1"))
   (lemma "exp_0")
   (replace -1 -2)
   (replace -2 -3)
   (rewrite "div_cancel3" -3)
   (lemma "minus_div1"
    ("x" "exp(n0x!1)" "y" "1" "n0x" "1" "n0y" "exp(n0x!1)"))
   (replace -1 -4)
   (rewrite "div_cancel3" -4)
   (lemma "exp_strict_increasing")
   (expand "strict_increasing?")
   (lemma "trichotomy" ("x" "2*n0x!1"))
   (lemma "exp_sum" ("x" "n0x!1" "y" "n0x!1"))
   (replace -1 -7 rl)
   (split -2)
   (("1" (inst - "0" "2*n0x!1") (assert)) ("2" (assert))
    ("3"
     (inst - "n0x!1" "0")
     (replace -2)
     (hide -2)
     (assert)
     (replace -6)
     (assert)
     (hide -5)
     (move-terms -3 l 2)
     (assert)
     (replace -3 * rl)
     (hide -1 -2 -3)
     (lemma "exp_neg")
     (inst?)
     (grind-reals))))


proof_type: t_proof
decl_type: tcc
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (typepred "cosh(x!1)")
   (lemma "both_sides_div_pos_ge2" ("py" "cosh(x!1)" "px" "1" "pz" "1"))
   (("1"
     (lemma "posreal_div_posreal_is_posreal" ("px" "1" "py" "cosh(x!1)"))
     (assert))
    ("2" (assert))))


proof_type: t_proof
decl_type: tcc
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "tanh")
   (expand "sinh")
   (lemma "exp_diff" ("x" "0" "y" "n0x!1"))
   (lemma "exp_0")
   (replace -1 -2)
   (replace -2 -3)
   (rewrite "div_div2" -3)
   (lemma "minus_div1"
    ("x" "exp(n0x!1)" "n0x" "1" "y" "1" "n0y" "exp(n0x!1)"))
   (replace -1 -4)
   (rewrite "div_div2" -4)
   (lemma "exp_sum" ("x" "n0x!1" "y" "n0x!1"))
   (replace -1 -5 rl)
   (hide -1 -2 -4)
   (lemma "exp_strict_increasing")
   (expand "strict_increasing?")
   (lemma "trichotomy" ("x" "2*n0x!1"))
   (split -1)
   (("1" (inst - "0" "2*n0x!1") (assert)) ("2" (assert))
    ("3" (inst - "2*n0x!1" "0") (assert))))


proof_type: t_proof
decl_type: tcc
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (typepred "tanh(n0x!1)")
   (lemma "coth_TCC1" ("nzx" "n0x!1"))
   (lemma "trichotomy" ("x" "n0x!1"))
   (case "strict_increasing?(sinh)")
   (("1"
     (expand "strict_increasing?")
     (case "sinh(0)=0")
     (("1"
       (expand "tanh")
       (typepred "cosh(n0x!1)")
       (split -4)
       (("1"
         (inst - "0" "n0x!1")
         (rewrite "div_div1")
         (assert)
         (replace -3 -4)
         (lemma "div_mult_pos_lt1")
         (inst - "sinh(n0x!1)" "-1" "cosh(n0x!1)")
         (lemma "div_mult_pos_lt2")
         (inst - "sinh(n0x!1)" "1" "cosh(n0x!1)")
         (replace -1)
         (replace -2)
         (hide -1 -2)
         (expand "cosh")
         (expand "sinh")
         (assert))
        ("2" (assert))
        ("3"
         (inst - "n0x!1" "0")
         (replace -3 -4)
         (assert)
         (lemma "div_mult_neg_lt1")
         (rewrite "div_div1")
         (inst - "sinh(n0x!1)" "-1" "cosh(n0x!1)")
         (lemma "div_mult_neg_lt2")
         (inst - "sinh(n0x!1)" "1" "cosh(n0x!1)")
         (replace -1)
         (replace -2)
         (hide (-1 -2))
         (expand "sinh")
         (expand "cosh")
         (assert))))
      ("2" (expand "sinh" 1) (rewrite "exp_0") (assert))))
    ("2"
     (hide-all-but 1)
     (lemma "exp_strict_increasing")
     (expand "strict_increasing?")
     (expand "sinh")
     (skosimp*)
     (inst-cp - "x!1" "y!1")
     (inst - "-y!1" "-x!1")
     (assert))))


proof_type: t_proof
decl_type: tcc
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "csch")
   (lemma "div_mult_pos_lt2" ("z" "1" "x" "0" "py" "sinh(px!1)"))
   (("1" (assert))
    ("2"
     (hide 2)
     (expand "sinh")
     (lemma "exp_diff" ("x" "0" "y" "px!1"))
     (rewrite "exp_0")
     (rewrite -1)
     (lemma "div_mult_pos_lt2")
     (inst - "2" "0" "exp(px!1)-1/exp(px!1)")
     (lemma "minus_div1"
      ("x" "exp(px!1)" "n0x" "1" "y" "1" "n0y" "exp(px!1)"))
     (lemma "exp_strict_increasing")
     (expand "strict_increasing?")
     (inst - "0" "2*px!1")
     (rewrite "exp_0")
     (lemma "exp_sum" ("x" "px!1" "y" "px!1"))
     (replace -1 -3 rl)
     (expand ">=" 1)
     (expand ">" 1)
     (expand "<=" 1)
     (assert)
     (replace -4 1)
     (replace -3 1)
     (lemma "posreal_div_posreal_is_posreal"
      ("px" "exp(2*px!1)-1" "py" "exp(px!1)"))
     (assert))))


proof_type: t_proof
decl_type: tcc
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (expand "coth")
   (skosimp*)
   (typepred "tanh(px!1)")
   (case "strict_increasing?(tanh)")
   (("1"
     (expand "strict_increasing?")
     (inst - "0" "px!1")
     (assert)
     (expand "tanh" -1 1)
     (expand "sinh" -1 1)
     (expand "cosh" -1 1)
     (rewrite "exp_0")
     (rewrite "div_div2")
     (grind-reals)
     (cross-mult 1))
    ("2"
     (hide-all-but 1)
     (expand "strict_increasing?")
     (skosimp*)
     (expand "tanh")
     (rewrite "div_mult_pos_lt1" 1)
     (lemma "div_mult_pos_lt2"
      ("z" "sinh(y!1)*cosh(x!1)" "py" "cosh(y!1)" "x" "sinh(x!1)"))
     (replace -1)
     (hide -1)
     (expand "sinh")
     (expand "cosh")
     (assert)
     (lemma "both_sides_times_pos_lt1"
      ("pz"
       "4"
       "x"
       "(exp(x!1) - exp(-x!1)) / 2 * ((exp(-y!1) + exp(y!1)) / 2)"
       "y"
       "(exp(y!1) - exp(-y!1)) / 2 * ((exp(-x!1) + exp(x!1)) / 2)"))
     (replace -1 1 rl)
     (hide -1)
     (case-replace
      "(exp(x!1) - exp(-x!1)) / 2 * ((exp(-y!1) + exp(y!1)) / 2) * 4 = (exp(x!1) - exp(-x!1))*(exp(-y!1) + exp(y!1))")
     (("1"
       (case-replace
        "(exp(y!1) - exp(-y!1)) / 2 * ((exp(-x!1) + exp(x!1)) / 2) * 4 = (exp(y!1) - exp(-y!1))*(exp(-x!1) + exp(x!1))")
       (("1"
         (hide -1 -2)
         (assert)
         (name-replace "K1" "-1 * (exp(-x!1) * exp(-y!1))")
         (name-replace "K2" "exp(x!1) * exp(y!1)")
         (lemma "exp_sum" ("x" "-x!1" "y" "y!1"))
         (replace -1 1 rl)
         (lemma "exp_sum" ("x" "-y!1" "y" "x!1"))
         (replace -1 1 rl)
         (case-replace
          "K1 - exp(-x!1 + y!1) + (exp(-y!1 + x!1) + K2) <
                                 K1 - exp(-y!1 + x!1) + (exp(-x!1 + y!1) + K2) IFF exp(-y!1 + x!1) < exp(-x!1+y!1)")
         (("1"
           (hide -1 -2 -3)
           (lemma "exp_strict_increasing")
           (expand "strict_increasing?")
           (inst - "x!1-y!1" "y!1-x!1")
           (assert))
          ("2"
           (hide -1 -2 2)
           (lemma "both_sides_times_pos_lt1"
            ("x" "exp(-y!1 + x!1)" "y" "exp(-x!1 + y!1)" "pz" "2"))
           (replace -1 1 rl)
           (assert)
           (name-replace "K3" "exp(-y!1 + x!1)")
           (name-replace "K4" "exp(-x!1 + y!1)")
           (hide -1 -2)
           (grind))))
        ("2"
         (hide -1 -2 2)
         (name-replace "EXPX" "(exp(-x!1) + exp(x!1))")
         (name-replace "EXPY" "(exp(y!1)-exp(-y!1))")
         (assert))))
      ("2"
       (hide -1 2)
       (name-replace "EXPY" "(exp(-y!1)+exp(y!1))")
       (name-replace "EXPX" "(exp(x!1)-exp(-x!1))")
       (assert))))))


proof_type: t_proof
decl_type: tcc
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (typepred "tanh(x!1)")
   (typepred "tanh(y!1)")
   (name-replace "TX" "tanh(x!1)")
   (name-replace "TY" "tanh(y!1)")
   (lemma "abs_mult" ("x" "TX" "y" "TY"))
   (case "TX=0")
   (("1" (assert))
    ("2"
     (lemma "lt_times_lt_pos1")
     (inst - "abs(TY)" "abs(TX)" "1" "1")
     (("1" (split -1) (("1" (grind)) ("2" (grind)) ("3" (grind))))
      ("2" (grind))))))


proof_type: t_proof
decl_type: tcc
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "coth")
   (lemma "tanh_strict_increasing")
   (expand "strict_increasing?")
   (case "FORALL (nzx:nzreal): tanh(nzx) /= 0")
   (("1"
     (inst-cp - "n0x!1")
     (inst - "n0y!1")
     (lemma "both_sides_div2"
      ("n0x" "tanh(n0x!1)" "n0y" "-tanh(n0y!1)" "n0z" "1"))
     (("1"
       (lemma "tanh_neg" ("x" "-n0x!1"))
       (replace -1 -2)
       (case "FORALL (x,y:real): tanh(x) = tanh(y) => x = y")
       (("1" (inst - "-n0x!1" "n0y!1") (assert))
        ("2"
         (hide-all-but 1)
         (skosimp*)
         (lemma "tanh_strict_increasing")
         (expand "strict_increasing?")
         (lemma "trich_lt" ("x" "x!1" "y" "y!1"))
         (split -1)
         (("1" (inst - "x!1" "y!1") (assert)) ("2" (propax))
          ("3" (inst - "y!1" "x!1") (assert))))))
      ("2" (assert)) ("3" (propax))))
    ("2"
     (skosimp*)
     (hide -3 1)
     (case "nzx!1>0")
     (("1" (inst - "0" "nzx!1") (rewrite "tanh_0") (assert))
      ("2" (inst - "nzx!1" "0") (rewrite "tanh_0") (assert))))))


proof_type: t_proof
decl_type: tcc
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (case "tanh(x!1)>=0")
   (("1"
     (lemma "sq_lt" ("nna" "tanh(x!1)" "nnb" "1"))
     (("1" (rewrite "sq_1") (assert)) ("2" (propax))))
    ("2"
     (lemma "sq_lt" ("nna" "-tanh(x!1)" "nnb" "1"))
     (("1" (rewrite "sq_1") (rewrite "sq_neg") (assert))
      ("2" (assert))))))


proof_type: t_proof
decl_type: tcc
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "posreal_times_posreal_is_posreal"
    ("px" "cosh(x!1)" "py" "cosh(y!1)"))
   (("1" (assert)) ("2" (assert)) ("3" (assert))))


proof_type: t_proof
decl_type: tcc
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (case "FORALL (x:nzreal): sinh(x) /=0")
   (("1"
     (skosimp*)
     (inst-cp - "n0x!1")
     (inst - "n0y!1")
     (lemma "nzreal_times_nzreal_is_nzreal"
      ("nzx" "sinh(n0x!1)" "nzy" "sinh(n0y!1)"))
     (("1" (assert)) ("2" (propax)) ("3" (propax))))
    ("2"
     (hide 2)
     (skosimp*)
     (lemma "trichotomy" ("x" "x!1"))
     (lemma "sinh_strict_increasing")
     (expand "strict_increasing?")
     (lemma "sinh_0")
     (split)
     (("1" (inst - "0" "x!1") (assert)) ("2" (assert))
      ("3" (inst - "x!1" "0") (assert))))))


proof_type: t_proof
decl_type: tcc
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (case "x!1 < 0")
   (("1"
     (lemma "sqrt_lt" ("nny" "sq(-x!1)" "nnz" "sq(x!1)+1"))
     (rewrite "sqrt_sq" -1)
     (rewrite "sq_neg" -1)
     (assert))
    ("2"
     (case "x!1=0")
     (("1" (replace -1) (rewrite "sq_0") (rewrite "sqrt_1") (assert))
      ("2"
       (lemma "sqrt_lt" ("nny" "0" "nnz" "sq(x!1)+1"))
       (flatten)
       (split -2)
       (("1" (rewrite "sqrt_0") (assert))
        ("2"
         (lemma "both_sides_times_pos_lt1"
          ("x" "0" "y" "x!1" "pz" "x!1"))
         (("1" (hide -2 4) (grind)) ("2" (assert))))))))))


proof_type: t_proof
decl_type: tcc
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (typepred "x!1")
   (lemma "le_times_le_pos")
   (inst - "1" "1" "x!1" "x!1")
   (expand "sq")
   (assert))


proof_type: t_proof
decl_type: tcc
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (typepred "sqrt(sq(x!1)-1)")
   (("1" (assert)) ("2" (lemma "acosh_TCC1" ("x" "x!1")) (propax))))


proof_type: t_proof
decl_type: tcc
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "acosh_TCC2" ("x" "x!1"))
   (flatten)
   (lemma "ln_increasing")
   (expand "increasing?")
   (lemma "le_times_le_pos" ("nnx" "1" "y" "x!1" "nnz" "1" "w" "x!1"))
   (assert)
   (case "x!1 = 1")
   (("1"
     (replace -1)
     (rewrite "sq_1")
     (rewrite "sqrt_0")
     (rewrite "ln_1")
     (assert))
    ("2"
     (case "x!1 > 1")
     (("1"
       (lemma "lt_times_lt_pos1"
        ("px" "1" "y" "x!1" "nnz" "1" "w" "x!1"))
       (assert)
       (lemma "sqrt_lt" ("nny" "0" "nnz" "sq(x!1)-1"))
       (rewrite "sqrt_0")
       (expand "sq")
       (inst - "1" "x!1+sqrt(x!1*x!1-1)")
       (("1" (rewrite "ln_1") (assert)) ("2" (assert))))
      ("2" (assert))))))


proof_type: t_proof
decl_type: tcc
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (typepred "x!1")
   (lemma "div_mult_pos_lt2")
   (inst - "1-x!1" "0" "1+x!1")
   (assert))


proof_type: t_proof
decl_type: tcc
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "atanhD")
   (lemma "expt_nonzero" ("n0x" "1-sq(x!1)" "i" "1+2*n!1"))
   (("1" (assert))
    ("2"
     (hide -1)
     (case "x!1>=0")
     (("1"
       (lemma "sq_gt" ("nna" "1" "nnb" "x!1"))
       (("1" (rewrite "sq_1") (assert)) ("2" (propax))))
      ("2"
       (lemma "sq_gt" ("nna" "1" "nnb" "-x!1"))
       (("1" (rewrite "sq_neg") (rewrite "sq_1") (assert))
        ("2" (assert))))))))


proof_type: t_proof
decl_type: tcc
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (case "1-sq(z!1)>0")
   (("1"
     (lemma "expt_pos" ("px" "1-sq(z!1)" "i" "2*n!1+3"))
     (("1"
       (lemma "posreal_times_posreal_is_posreal"
        ("px" "2*(2*n!1+3)" "py" "(1 - sq(z!1)) ^ (2 * n!1 + 3)"))
       (("1" (assert)) ("2" (assert))))
      ("2" (assert))))
    ("2"
     (hide -1)
     (case "z!1>=0")
     (("1"
       (lemma "sq_gt" ("nna" "1" "nnb" "z!1"))
       (("1" (rewrite "sq_1") (assert)) ("2" (propax))))
      ("2"
       (lemma "sq_gt" ("nna" "1" "nnb" "-z!1"))
       (("1" (rewrite "sq_1") (rewrite "sq_neg") (assert))
        ("2" (assert))))))))


proof_type: t_proof
decl_type: tcc
library: lnexp
theory: hyperbolic
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (mult-cases -1)
   (lemma "expt_pos")
   (inst?)
   (("1" (assert))
    ("2"
     (hide 1)
     (lemma "expt_pos")
     (inst?)
     (("1" (assert))
      ("2"
       (typepred "z!1")
       (hide -3)
       (case-replace "(1 - sq(z!1)) > 0")
       (("1" (assert))
        ("2"
         (hide 2)
         (expand "sq")
         (mult-ineq -2 -2)
         (("1" (assert)) ("2" (hide 3) (grind))))))))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: expt
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (induct "n")
   (("1"
     (skosimp*)
     (expand "^")
     (expand "^^")
     (assert)
     (rewrite "exp_0")
     (expand "expt")
     (propax))
    ("2"
     (skosimp*)
     (lemma "hathat_sum")
     (inst - "a!1" "j!1" "1")
     (replace -1)
     (hide -1)
     (rewrite "hathat_to_1")
     (inst?)
     (replace -1)
     (hide -1)
     (expand "^")
     (expand "expt" 1 2)
     (propax))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: expt
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "^^")
   (lemma "ln_strict_increasing")
   (expand "strict_increasing?")
   (inst - "exp((1 / px!1) * ln(a!1))" "b!1")
   (assert)
   (rewrite "ln_exp")
   (mult-by -1 "px!1")
   (assert)
   (lemma "exp_strict_increasing")
   (expand "strict_increasing?")
   (inst - "ln(a!1)" "ln(b!1) * px!1")
   (assert)
   (rewrite "exp_ln")
   (assert))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: expt
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "^^")
   (lemma "ln_strict_increasing")
   (expand "strict_increasing?")
   (inst - "b!1" "exp((1 / px!1) * ln(a!1))")
   (assert)
   (rewrite "ln_exp")
   (mult-by -1 "px!1")
   (assert)
   (lemma "exp_strict_increasing")
   (expand "strict_increasing?")
   (inst - "ln(b!1) * px!1" "ln(a!1)")
   (assert)
   (rewrite "exp_ln")
   (assert))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: expt
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "^^")
   (prop)
   (("1"
     (lemma "exp_strict_increasing")
     (expand "strict_increasing?")
     (inst-cp - "0" "x!1 * ln(px!1)")
     (inst - "x!1 * ln(px!1)" "0")
     (ground)
     (typepred "ln(px!1)")
     (lemma "ln_eq_0")
     (inst - "px!1")
     (case-replace "ln(px!1) = 0")
     (assert)
     (mult-by 1 "x!1")
     (assert))
    ("2" (replace -1) (rewrite "exp_0"))
    ("3" (replace -1) (rewrite "ln_1") (rewrite "exp_0"))))


proof_type: f_proof
decl_type: formula
library: lnexp
theory: expt
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "^^")
   (lift-if)
   (prop)
   (("1" (lemma "abs_eq_0") (inst?) (assert))
    ("2" (expand "abs") (assert) (lift-if) (ground))))


proof_type: t_proof
decl_type: tcc
library: lnexp
theory: expt
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "hathat_eq_0")
   (inst?)
   (("1" (assert)) ("2" (flatten) (replace -1) (grind))))


proof_type: f_proof
decl_type: formula
library: lnexp_fnd
theory: ln_exp
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (lemma "div_fun_continuous[posreal]")
   (inst -1 "(LAMBDA (t: posreal): 1)" "(LAMBDA (t: posreal): t)")
   (("1" (expand "/") (propax))
    ("2"
     (assert)
     (hide 2)
     (lemma "id_fun_continuous[posreal]")
     (expand "I")
     (propax))
    ("3"
     (hide 2)
     (lemma "const_fun_continuous[posreal]")
     (inst?)
     (expand "const_fun")
     (propax))))


proof_type: f_proof
decl_type: formula
library: lnexp_fnd
theory: ln_exp
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (lemma "continuous_Integrable?[posreal]")
   (("1"
     (inst?)
     (assert)
     (hide 2)
     (skosimp*)
     (lemma "one_over_t_cont")
     (expand "continuous?" -1)
     (inst?))
    ("2" (hide 2) (ground) (expand "connected?") (skosimp*) (assert))))


proof_type: f_proof
decl_type: formula
library: lnexp_fnd
theory: ln_exp
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (lemma "fundamental[posreal]")
   (("1"
     (inst -1 "ln" "1" "(LAMBDA (t: posreal): 1 / t)")
     (split -1)
     (("1" (propax)) ("2" (hide 2) (rewrite "one_over_t_cont"))
      ("3" (hide 2) (skosimp*) (expand "ln") (propax))))
    ("2"
     (assert)
     (expand "not_one_element?")
     (skosimp*)
     (inst + "x!1+1")
     (assert))
    ("3" (assert) (expand "connected?") (skosimp*) (assert))))


proof_type: f_proof
decl_type: formula
library: lnexp_fnd
theory: ln_exp
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (lemma "ln_derivable")
   (lemma "derivable_continuous[posreal]")
   (("1"
     (inst?)
     (flatten)
     (expand "continuous?" 1)
     (skosimp*)
     (inst?)
     (assert)
     (expand "derivable?" -1)
     (inst?))
    ("2" (skosimp*) (inst-cp + "1") (assert) (inst + "2") (assert))
    ("3"
     (skosimp*)
     (assert)
     (lemma "deriv_domain_posreal")
     (expand "deriv_domain?")
     (inst?))))


proof_type: f_proof
decl_type: formula
library: lnexp_fnd
theory: ln_exp
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (case "derivable?[posreal](LAMBDA (x: posreal): ln(py!1 * x))")
   (("1"
     (lemma "ln_derivable")
     (flatten)
     (case "deriv(LAMBDA (x: posreal): ln(py!1*x))  = deriv(LAMBDA (x: posreal): ln(x))")
     (("1"
       (lemma "derivs_eq[posreal]")
       (("1"
         (inst?)
         (assert)
         (case-replace "(LAMBDA (x: posreal): ln(x)) = ln")
         (("1"
           (assert)
           (hide -1)
           (replace -3)
           (assert)
           (skosimp*)
           (expand "+ ")
           (expand "const_fun")
           (case "(LAMBDA (x: posreal): ln(py!1 * x))(1) =       (LAMBDA (x_824: posreal): ln(x_824) + c!1)(1)")
           (("1"
             (assert)
             (hide -2)
             (rewrite "ln_1")
             (assert)
             (reveal -1)
             (replace -2 * rl)
             (case-replace
              "(LAMBDA (x: posreal): ln(py!1 * x))(px!1) =       (LAMBDA (x_824: posreal): ln(x_824) + ln(py!1))(px!1)")
             (("1" (hide -2) (assert)) ("2" (replace -1) (propax))))
            ("2" (replace -1) (propax))))
          ("2" (apply-extensionality 1 :hide? t))))
        ("2"
         (assert)
         (expand "not_one_element?")
         (skosimp*)
         (assert)
         (inst + "x!1+1")
         (assert))
        ("3" (assert) (expand "connected?") (skosimp*) (assert))))
      ("2"
       (hide 2)
       (lemma "deriv_composition[posreal,posreal]")
       (("1"
         (case-replace "(LAMBDA (x: posreal): ln(x)) = ln")
         (("1"
           (hide -1)
           (replace -3)
           (apply-extensionality 1 :hide? t)
           (inst - "(LAMBDA (t: posreal): py!1*t)" "ln" "x!1")
           (assert)
           (case "derivable?((LAMBDA (t: posreal): py!1 * t), x!1) ")
           (("1"
             (assert)
             (expand "derivable?" -3)
             (inst -3 "py!1*x!1")
             (assert)
             (expand "o ")
             (expand "deriv" 1)
             (case "deriv(ln)(py!1*x!1) = (LAMBDA (t: posreal): 1 / t)(py!1*x!1)")
             (("1"
               (expand "deriv" -1)
               (replace -1)
               (hide -1)
               (case-replace
                "deriv[posreal]((LAMBDA (t: posreal): py!1 * t), x!1) = py!1")
               (("1" (assert))
                ("2"
                 (hide 2)
                 (lemma "deriv_scal[posreal]")
                 (inst -1 "py!1" "I[posreal]" "x!1")
                 (split -1)
                 (("1"
                   (expand "I")
                   (expand "*")
                   (replace -1)
                   (lemma "deriv_identity[posreal]")
                   (expand "I")
                   (inst?)
                   (assert))
                  ("2"
                   (hide-all-but 1)
                   (lemma "identity_derivable[posreal]")
                   (inst?))))))
              ("2" (assert) (hide 2) (replace -4) (assert))))
            ("2"
             (hide-all-but 1)
             (lemma "scal_derivable[posreal]")
             (inst -1 "py!1" "I" "x!1")
             (lemma "identity_derivable[posreal]")
             (inst?)
             (split -2)
             (("1" (expand "I") (expand "*") (propax)) ("2" (propax))))
            ("3"
             (lemma "deriv_domain_posreal")
             (expand "deriv_domain?")
             (propax))))
          ("2" (apply-extensionality 1 :hide? t))))
        ("2" (skosimp*) (inst + "x!1+1") (assert))
        ("3" (assert) (lemma "deriv_domain_posreal") (propax))))
      ("3"
       (case-replace "(LAMBDA (x: posreal): ln(x)) = ln")
       (apply-extensionality 1 :hide? t))
      ("4" (propax))))
    ("2"
     (hide 2)
     (assert)
     (lemma "ln_derivable")
     (flatten)
     (assert)
     (lemma "scal_derivable[posreal]")
     (("1"
       (expand "derivable?" 1)
       (skosimp*)
       (inst -1 "py!1" "I" "x!1")
       (lemma "identity_derivable[posreal]")
       (inst?)
       (lemma "composition_derivable[posreal,posreal]")
       (("1"
         (inst -1 "(LAMBDA (t:posreal): py!1*t)" "ln" "x!1")
         (expand "o ")
         (split -1)
         (("1" (propax))
          ("2"
           (expand "derivable?" -3)
           (inst -3 "py!1*x!1")
           (hide 2)
           (expand "I")
           (expand "*")
           (assert))
          ("3" (hide 2) (expand "derivable?" -3) (inst -3 "py!1*x!1"))))
        ("2" (lemma "deriv_domain_posreal") (propax))))
      ("2" (skosimp*) (inst-cp + "1") (inst + "2") (assert))
      ("3"
       (skosimp*)
       (assert)
       (lemma "deriv_domain_posreal")
       (expand "deriv_domain?")
       (inst?))))))


proof_type: f_proof
decl_type: formula
library: lnexp_fnd
theory: ln_exp
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (lemma "positive_derivative[posreal]")
   (("1"
     (inst?)
     (("1"
       (assert)
       (hide 2)
       (skosimp*)
       (lemma "ln_derivable")
       (flatten)
       (case "deriv[posreal](ln, x!1) = deriv(ln)(x!1)")
       (("1" (replace -1) (replace -3) (assert))
        ("2" (hide-all-but 1) (expand "deriv" 1 2) (propax))
        ("3"
         (lemma "deriv_domain_posreal")
         (expand "deriv_domain?")
         (propax))))
      ("2" (lemma "ln_derivable") (flatten))))
    ("2" (skosimp*) (inst + "x!1+1") (assert)) ("3" (skosimp*) (assert))))


proof_type: f_proof
decl_type: formula
library: lnexp_fnd
theory: ln_exp
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (lemma "Integral_bound[posreal]")
   (("1"
     (inst -1 "1" "1" "2" "(LAMBDA (t: posreal): 1/t)" "1/2")
     (assert)
     (case-replace
      "Integral(1, 2, (LAMBDA (t: posreal): 1 / t)) = ln(2)")
     (("1"
       (rewrite "ln_prep")
       (assert)
       (split -2)
       (("1" (propax))
        ("2"
         (skosimp*)
         (hide-all-but 1)
         (prop)
         (("1" (mult-by 1 "x!1") (assert))
          ("2" (mult-by 1 "x!1") (assert))))))
      ("2" (expand "ln") (propax)) ("3" (rewrite "ln_prep"))))
    ("2"
     (expand "not_one_element?")
     (skosimp*)
     (inst + "x!1+1")
     (assert))
    ("3" (assert) (expand "connected?") (skosimp*) (assert))))


proof_type: f_proof
decl_type: formula
library: lnexp_fnd
theory: ln_exp
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (expand "continuous?")
   (skosimp*)
   (expand "continuous?")
   (skosimp*)
   (case "epsilon!1 < exp(x0!1)")
   (("1"
     (inst +
      "real_defs.min(x0!1 - ln(exp(x0!1) - epsilon!1), ln(exp(x0!1) + epsilon!1) - x0!1)")
     (("1"
       (skosimp*)
       (case "x0!1 - ln(exp(x0!1) - epsilon!1) <=           ln(exp(x0!1) + epsilon!1) - x0!1")
       (("1"
         (expand "min")
         (assert)
         (case "x!1 - x0!1 < 0")
         (("1"
           (expand "abs")
           (assert)
           (lemma "exp_strict_increasing")
           (expand "strict_increasing?")
           (inst -1 "x!1" "x0!1")
           (assert)
           (case "exp(x!1)  > exp(ln(exp(x0!1) - epsilon!1))")
           (("1" (rewrite "exp_ln") (assert))
            ("2"
             (hide -1 -2 -3 -4 2)
             (lemma "exp_strict_increasing")
             (expand "strict_increasing?")
             (inst -1 "ln(exp(x0!1) - epsilon!1)" "x!1")
             (assert))))
          ("2"
           (expand "abs")
           (assert)
           (lift-if)
           (lemma "exp_increasing")
           (expand "increasing?")
           (inst -1 "x0!1" "x!1")
           (assert)
           (case "exp(x!1) <= exp(ln(exp(x0!1) + epsilon!1))")
           (("1" (rewrite "exp_ln") (assert))
            ("2"
             (assert)
             (hide -1 -3 2 3)
             (lemma "exp_increasing")
             (expand "increasing?")
             (inst -1 "x!1" "ln(exp(x0!1) + epsilon!1)")
             (assert))))))
        ("2"
         (assert)
         (expand "min")
         (case-replace "x!1 - x0!1 >= 0")
         (("1"
           (expand "abs")
           (assert)
           (lemma "exp_increasing")
           (expand "increasing?")
           (inst -1 "x0!1" "x!1")
           (assert)
           (case "exp(x!1) < exp(ln(exp(x0!1) + epsilon!1))")
           (("1" (rewrite "exp_ln") (assert))
            ("2"
             (hide -1 -3 2 3)
             (lemma "exp_strict_increasing")
             (expand "strict_increasing?")
             (inst -1 "x!1" "ln(exp(x0!1) + epsilon!1)")
             (assert))))
          ("2"
           (expand "abs")
           (assert)
           (lemma "exp_strict_increasing")
           (expand "strict_increasing?")
           (inst -1 "x!1" "x0!1")
           (assert)
           (case "x!1 > ln(exp(x0!1) - epsilon!1)")
           (("1"
             (hide -4 2)
             (case "exp(x!1) > exp(ln(exp(x0!1) - epsilon!1))")
             (("1" (rewrite "exp_ln") (assert))
              ("2"
               (lemma "exp_strict_increasing")
               (expand "strict_increasing?")
               (inst -1 "ln(exp(x0!1) - epsilon!1)" "x!1")
               (assert))))
            ("2" (assert))))))
        ("3" (assert))))
      ("2"
       (assert)
       (expand "min")
       (lift-if)
       (lemma "ln_strict_increasing")
       (expand "strict_increasing?")
       (inst -1 "exp(x0!1) - epsilon!1" "exp(x0!1)")
       (assert)
       (lemma "ln_strict_increasing")
       (expand "strict_increasing?")
       (inst -1 "exp(x0!1)" "exp(x0!1)+epsilon!1")
       (assert))
      ("3" (assert))))
    ("2"
     (inst + "1/100")
     (skosimp*)
     (case "x!1 = x0!1")
     (("1" (expand "abs") (assert))
      ("2"
       (case "x!1 < x0!1")
       (("1"
         (lemma "exp_strict_increasing")
         (expand "strict_increasing?")
         (inst -1 "x!1" "x0!1")
         (assert)
         (expand "abs")
         (assert))
        ("2"
         (expand "abs")
         (assert)
         (lift-if)
         (assert)
         (ground)
         (lemma "exp_strict_increasing")
         (expand "strict_increasing?")
         (inst -1 "x!1" "x0!1+1/100")
         (assert)
         (rewrite "exp_sum")
         (case "exp(x!1) - exp(x0!1) < exp(1 / 100) * exp(x0!1) - exp(x0!1)")
         (("1"
           (hide -2)
           (factor -1 r)
           (case "(exp(1 / 100) - 1) < 1")
           (("1"
             (name-replace "E1" "(exp(1 / 100) - 1)")
             (mult-by 5 "E1")
             (("1" (assert) (mult-by -1 "epsilon!1") (assert))
              ("2"
               (reveal -2)
               (lemma "exp_strict_increasing")
               (expand "strict_increasing?")
               (inst -1 "0" "1/100")
               (rewrite "exp_0")
               (assert))))
            ("2"
             (assert)
             (lemma "exp_strict_increasing")
             (expand "strict_increasing?")
             (inst -1 "1/100" "ln(2)")
             (rewrite "exp_ln")
             (assert)
             (hide-all-but 1)
             (lemma "ln_2_bnds")
             (flatten)
             (assert))))
          ("2" (assert))))))))))


proof_type: f_proof
decl_type: formula
library: lnexp_fnd
theory: ln_exp
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (lemma "inverse_derivable_fun[posreal,real]")
   (("1"
     (inst?)
     (inst - "ln" "(LAMBDA (t: posreal): 1/t)")
     (lemma "deriv_inverse_fun[posreal,real]")
     (inst - "ln" "exp" "(LAMBDA (t: posreal): 1/t)")
     (lemma "ln_derivable")
     (flatten)
     (assert)
     (lemma "ln_bij")
     (assert)
     (case-replace "inverse?[posreal, real](exp, ln)")
     (("1"
       (assert)
       (case-replace "(LAMBDA (x: real): 1 / (1 / exp(x))) = exp")
       (apply-extensionality 1 :hide? t))
      ("2"
       (hide-all-but 1)
       (expand "inverse?")
       (skosimp*)
       (lemma "ln_exp")
       (inst?))))
    ("2" (assert) (expand "connected?") (propax))))


proof_type: f_proof
decl_type: formula
library: lnexp_fnd
theory: ln_exp_series_alt
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (case "FORALL (n: nat): derivable_n_times?[posreal](ln, n) & nderiv[posreal](n,ln) = IF n = 0 THEN ln ELSE (LAMBDA (x:posreal): -factorial(n-1)/(-x)^n) ENDIF")
   (("1" (skosimp*) (inst - "n!1") (flatten))
    ("2"
     (hide 2)
     (induct "n")
     (("1" (expand "derivable_n_times?") (propax))
      ("2" (expand "nderiv") (propax))
      ("3"
       (skosimp*)
       (case-replace "j!1=0")
       (("1"
         (lemma "ln_derivable")
         (flatten -1)
         (expand "derivable_n_times?")
         (expand "derivable_n_times?")
         (expand "nderiv" 1)
         (expand "nderiv" 1)
         (lemma "extensionality"
          ("f"
           "deriv(ln)"
           "g"
           "(LAMBDA (x: posreal): -factorial(1) / (-x) ^ 1)"))
         (split -1)
         (("1" (assert))
          ("2"
           (hide 2)
           (replace -2)
           (skosimp*)
           (expand "factorial")
           (expand "factorial")
           (rewrite "expt_x1")
           (assert))))
        ("2"
         (assert)
         (lemma "ln_derivable")
         (flatten -1)
         (lemma "identity_derivable_fun[posreal]")
         (lemma "const_derivable_fun[posreal]" ("b" "-factorial(j!1)"))
         (lemma "deriv_id_fun[posreal]")
         (lemma "deriv_const_fun[posreal]" ("b" "-factorial(j!1)"))
         (expand "I")
         (expand "const_fun")
         (lemma "neg_derivable_fun[posreal]"
          ("f" "LAMBDA (x: posreal): x"))
         (assert)
         (expand "-")
         (lemma "deriv_neg_fun[posreal]" ("ff" "LAMBDA (x: posreal): x"))
         (replace -4)
         (expand "-" -1)
         (lemma "inv_derivable_fun[posreal]"
          ("g" "LAMBDA (x_1: posreal): -x_1"))
         (assert)
         (expand "/")
         (lemma "deriv_inv_fun[posreal]"
          ("gg" "LAMBDA (x_1: posreal): -x_1"))
         (replace -3)
         (expand "/")
         (expand "*")
         (expand "-" -1)
         (lemma "extensionality"
          ("f"
           "LAMBDA (x: posreal): --1 / (-x * -x)"
           "g"
           "LAMBDA (x: posreal): 1 / (x * x)"))
         (split -1)
         (("1"
           (replace -1)
           (hide -1)
           (lemma "deriv_exp_fun[posreal]"
            ("f" "LAMBDA (x: posreal): 1 / -x" "n" "j!1"))
           (assert)
           (flatten -1)
           (lemma "scal_derivable_fun[posreal]"
            ("f"
             "(LAMBDA (x: posreal): 1 / -x) ^ j!1"
             "b"
             "-factorial(j!1 - 1)"))
           (replace -2)
           (lemma "deriv_scal_fun[posreal]"
            ("ff"
             "(LAMBDA (x: posreal): 1 / -x) ^ j!1"
             "b"
             "-factorial(j!1 - 1)"))
           (replace -4 -1)
           (replace -5)
           (lemma "extensionality"
            ("f"
             "-factorial(j!1 - 1) * (LAMBDA (x: posreal): 1 / -x) ^ j!1"
             "g"
             "LAMBDA (x: posreal): -factorial(j!1 - 1) / (-x) ^ j!1"))
           (split -1)
           (("1"
             (replace -1 * rl)
             (replace -17 * rl)
             (lemma "extensionality"
              ("f"
               "-factorial(j!1 - 1) *
                                                       (j!1 * (LAMBDA (x: posreal): 1 / -x) ^ (j!1 - 1) *
                                                         (LAMBDA (x: posreal): 1 / (x * x)))"
               "g"
               "LAMBDA (x: posreal): -factorial(j!1) / (-x) ^ (1 + j!1)"))
             (split -1)
             (("1"
               (replace -1)
               (lemma "nderiv_derivable_eqv[posreal]"
                ("f" "ln" "n" "j!1"))
               (replace -18 -1)
               (replace -5 -1)
               (flatten -1)
               (lemma "nderiv_derivable_aux[posreal]"
                ("f" "ln" "n" "j!1"))
               (replace -2)
               (replace -5 -1)
               (replace -1 2)
               (propax))
              ("2"
               (hide 3)
               (skosimp*)
               (expand "factorial" 1 2)
               (expand "*" 1)
               (expand "^" 1 1)
               (rewrite "div_expt" 1)
               (rewrite "expt_1i")
               (hide-all-but (1 2))
               (lemma "expt_plus" ("n0x" "-x!1" "i" "j!1-1" "j" "2"))
               (replace -1)
               (case "(-x!1) ^ 2=x!1*x!1")
               (("1" (replace -1) (assert))
                ("2" (hide-all-but 1) (grind))))))
            ("2"
             (hide 3)
             (skosimp*)
             (expand "*" 1)
             (expand "^" 1 1)
             (rewrite "div_expt" 1)
             (rewrite "expt_1i" 1)
             (assert))))
          ("2" (hide-all-but 1) (grind))))))
      ("4" (skosimp*) (assert)) ("5" (hide 1) (skosimp*) (assert))))
    ("3" (hide 2) (skosimp*) (assert))))


proof_type: f_proof
decl_type: formula
library: lnexp_fnd
theory: ln_exp_series_alt
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (induct "n")
   (("1" (expand "nderiv") (propax))
    ("2"
     (skosimp*)
     (lemma "nderiv_ln" ("n" "j!1+1"))
     (lemma "nderiv_derivable_aux[posreal]" ("f" "ln" "n" "j!1"))
     (replace -2)
     (replace -1)
     (replace -3 1)
     (hide-all-but 1)
     (case-replace "j!1=0")
     (("1"
       (lemma "ln_derivable")
       (flatten -1)
       (replace -2)
       (assert)
       (lemma "extensionality"
        ("f"
         "(LAMBDA (t: posreal): 1 / t)"
         "g"
         "(LAMBDA (x: posreal): -1 / (-x) ^ 1)"))
       (split -1)
       (("1" (assert))
        ("2"
         (hide-all-but (-3 1))
         (skosimp*)
         (rewrite "expt_x1")
         (assert))))
      ("2"
       (assert)
       (lemma "identity_derivable_fun[posreal]")
       (lemma "deriv_id_fun[posreal]")
       (expand "I")
       (lemma "neg_derivable_fun[posreal]"
        ("f" "LAMBDA (x: posreal): x"))
       (assert)
       (expand "-")
       (lemma "deriv_neg_fun[posreal]" ("ff" "LAMBDA (x: posreal): x"))
       (replace -3)
       (expand "-" -1)
       (lemma "inv_derivable_fun[posreal]"
        ("g" "LAMBDA (x_1: posreal): -x_1"))
       (replace -3)
       (expand "/")
       (lemma "deriv_inv_fun[posreal]"
        ("gg" "LAMBDA (x_1: posreal): -x_1"))
       (("1"
         (replace -3)
         (expand "/" -1)
         (expand "*" -1)
         (expand "-" -1)
         (lemma "deriv_exp_fun[posreal]"
          ("f" "LAMBDA (x: posreal): 1 / -x" "n" "j!1"))
         (assert)
         (flatten -1)
         (replace -3)
         (lemma "scal_derivable_fun[posreal]"
          ("f"
           "(LAMBDA (x: posreal): 1 / -x) ^ j!1"
           "b"
           "-factorial(j!1 - 1)"))
         (replace -2)
         (lemma "deriv_scal_fun[posreal]"
          ("ff"
           "(LAMBDA (x: posreal): 1 / -x) ^ j!1"
           "b"
           "-factorial(j!1 - 1)"))
         (replace -4)
         (lemma "extensionality"
          ("f"
           "-factorial(j!1 - 1) * (LAMBDA (x: posreal): 1 / -x) ^ j!1"
           "g"
           "LAMBDA (x: posreal): -factorial(j!1 - 1) / (-x) ^ j!1"))
         (split -1)
         (("1"
           (replace -1)
           (lemma "extensionality"
            ("f"
             "-factorial(j!1 - 1) *
                                                 (j!1 * (LAMBDA (x: posreal): 1 / -x) ^ (j!1 - 1) *
                                                   (LAMBDA (x: posreal): --1 / (-x * -x)))"
             "g"
             "LAMBDA (x: posreal): -factorial(j!1) / (-x) ^ (1 + j!1)"))
           (split -1)
           (("1" (replace -1) (propax))
            ("2"
             (hide-all-but (1 2))
             (skosimp*)
             (expand "factorial" 1 2)
             (expand "*")
             (expand "^" 1 1)
             (rewrite "div_expt" 1)
             (rewrite "expt_1i")
             (lemma "expt_plus" ("n0x" "-x!1" "i" "j!1-1" "j" "2"))
             (replace -1)
             (case-replace "(-x!1) ^ 2 = -x!1 * -x!1")
             (("1" (assert)) ("2" (hide-all-but 1) (grind))))))
          ("2"
           (hide-all-but (1 2))
           (skosimp*)
           (expand "*")
           (expand "^" 1 1)
           (rewrite "div_expt" 1)
           (rewrite "expt_1i")
           (assert))))
        ("2" (propax))))))
    ("3" (hide 2) (skosimp*) (assert))
    ("4" (lemma "nderiv_ln") (propax))))


proof_type: f_proof
decl_type: formula
library: lnexp_fnd
theory: ln_exp_series_alt
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (lemma "id_fun_continuous[posreal]")
   (expand "I")
   (lemma "const_fun_continuous[posreal]" ("u" "1"))
   (expand "const_fun")
   (lemma "diff_fun_continuous[posreal]"
    ("h1" "LAMBDA (x: posreal): 1" "h2" "LAMBDA (x: posreal): x"))
   (("1"
     (expand "-")
     (case "forall (n:nat): continuous?(LAMBDA (t: posreal): (1 - t) ^ n)")
     (("1"
       (inst - "n!1")
       (lemma "div_fun_continuous[posreal]"
        ("h"
         "LAMBDA (t: posreal): (1 - t) ^ n!1"
         "h3"
         "LAMBDA (x: posreal): x"))
       (("1" (expand "/") (propax)) ("2" (propax))))
      ("2"
       (hide -3 2)
       (induct "n")
       (("1"
         (hide -1)
         (lemma "extensionality"
          ("f"
           "LAMBDA (x: posreal): 1"
           "g"
           "LAMBDA (t: posreal): (1 - t) ^ 0"))
         (split -1)
         (("1" (assert))
          ("2"
           (hide-all-but 1)
           (skosimp)
           (expand "^")
           (expand "expt")
           (propax))))
        ("2"
         (skosimp*)
         (lemma "prod_fun_continuous[posreal]"
          ("h1"
           "LAMBDA (t: posreal): (1 - t) ^ j!1"
           "h2"
           "LAMBDA (t: posreal): (1 - t)"))
         (("1"
           (expand "*")
           (lemma "extensionality"
            ("f"
             "LAMBDA (x: posreal): (1 - x) ^ j!1 - x * (1 - x) ^ j!1"
             "g"
             "LAMBDA (t: posreal): (1 - t) ^ (j!1 + 1)"))
           (split -1)
           (("1" (assert))
            ("2"
             (hide-all-but 1)
             (skosimp)
             (expand "^")
             (expand "expt" 1 3)
             (assert))))
          ("2" (propax)) ("3" (propax))))))))
    ("2" (propax)) ("3" (propax))))


proof_type: f_proof
decl_type: formula
library: lnexp_fnd
theory: ln_exp_series_alt
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (lemma "continuous_Integrable?[posreal]")
   (("1"
     (inst?)
     (split -1)
     (("1" (propax))
      ("2"
       (hide 2)
       (skosimp)
       (lemma "ln_estimate_scaf1" ("n" "n!1"))
       (expand "continuous?" -1)
       (inst - "x!2"))))
    ("2"
     (expand "not_one_element?")
     (skosimp*)
     (inst + "x!2+1")
     (assert))
    ("3" (expand "connected?") (skosimp*) (assert))))


proof_type: f_proof
decl_type: formula
library: lnexp_fnd
theory: ln_exp_series_alt
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (expand "ln")
   (lemma "extensionality"
    ("f"
     "LAMBDA (t: posreal): (1 - t) ^ 0 / t"
     "g"
     "LAMBDA (t: posreal): 1 / t"))
   (split -1)
   (("1" (assert))
    ("2" (hide 2) (skosimp) (expand "^") (expand "expt") (propax))))


proof_type: f_proof
decl_type: formula
library: lnexp_fnd
theory: ln_exp_series_alt
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (name "SS" "sigma(0, n!1, LAMBDA (i: nat): x!1 ^ i)")
   (replace -1)
   (lemma "add_div" ("x" "SS" "n0x" "1" "y" "x!1^(n!1+1)" "n0y" "1-x!1"))
   (("1"
     (replace -1 2)
     (lemma "both_sides_div1"
      ("x" "1" "y" "SS * (1 - x!1) + x!1 ^ (n!1 + 1)" "n0z" "1-x!1"))
     (replace -1 2)
     (hide -1 -2)
     (case "forall (n:nat): 1 = sigma(0, n, LAMBDA (i: nat): x!1 ^ i) *(1-x!1) + x!1 ^ (n+1)")
     (("1" (inst - "n!1") (assert))
      ("2"
       (hide-all-but (1 2))
       (induct "n")
       (("1"
         (expand "sigma")
         (assert)
         (expand "^")
         (expand "expt")
         (expand "expt")
         (propax))
        ("2"
         (skosimp*)
         (expand "sigma" 1)
         (name-replace "DRL101"
          "sigma(0, j!1, LAMBDA (i: nat): x!1 ^ i)")
         (case-replace "(x!1 ^ (1 + j!1)) * x!1 = x!1 ^ (2 + j!1)")
         (("1" (assert))
          ("2"
           (hide-all-but 1)
           (expand "^")
           (expand "expt" 1 2)
           (assert))))))))
    ("2" (assert))))


proof_type: f_proof
decl_type: formula
library: lnexp_fnd
theory: ln_exp_series_alt
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (induct "n")
   (("1"
     (expand "ln_estimate")
     (expand "sigma")
     (assert)
     (lemma "const_derivable_fun[posreal]" ("b" "0"))
     (expand "const_fun")
     (propax))
    ("2"
     (skosimp*)
     (expand "ln_estimate")
     (expand "sigma" 1)
     (name "F"
           "(LAMBDA px:
                                          sigma(0, j!1,
                                                LAMBDA (nn: nat):
                                                  IF nn = 0 THEN 0 ELSE -(-(px - 1)) ^ nn / nn ENDIF))")
     (("1"
       (lemma "extensionality"
        ("f"
         "(LAMBDA px:
                                    sigma(0, j!1,
                                          LAMBDA (nn: nat):
                                            IF nn = 0 THEN 0 ELSE -(-(px - 1)) ^ nn / nn ENDIF)
                                     + -(-(px - 1)) ^ (1 + j!1) / (1 + j!1))"
         "g"
         "F-(LAMBDA px: (1-px)^(1+j!1)/(1+j!1))"))
       (split -1)
       (("1"
         (replace -1)
         (replace -2)
         (hide -1 -2)
         (lemma "identity_derivable_fun[posreal]")
         (expand "I")
         (lemma "const_derivable_fun[posreal]" ("b" "1"))
         (lemma "diff_derivable_fun[posreal]"
          ("f1" "LAMBDA (x: posreal): 1" "f2" "LAMBDA (x: posreal): x"))
         (expand "const_fun")
         (assert)
         (expand "-" -1)
         (lemma "deriv_exp_fun[posreal]"
          ("f" "LAMBDA (x:posreal): 1-x" "n" "1+j!1"))
         (assert)
         (flatten)
         (hide -2)
         (expand "^" -1)
         (lemma "scal_derivable_fun[posreal]"
          ("b"
           "1/(1+j!1)"
           "f"
           "LAMBDA (t: posreal): (1 - t) ^ (1 + j!1)"))
         (assert)
         (lemma "extensionality"
          ("f"
           "1 / (1 + j!1) * (LAMBDA (t: posreal): (1 - t) ^ (1 + j!1))"
           "g"
           "(LAMBDA px: (1 - px) ^ (1 + j!1) / (1 + j!1))"))
         (split -1)
         (("1"
           (replace -1)
           (lemma "diff_derivable_fun[posreal]"
            ("f1"
             "F"
             "f2"
             "(LAMBDA px: (1 - px) ^ (1 + j!1) / (1 + j!1))"))
           (assert))
          ("2" (hide-all-but 1) (skosimp) (expand "*") (assert))))
        ("2"
         (hide-all-but 1)
         (skosimp)
         (expand "F")
         (expand "-")
         (case-replace "-(x!1 - 1) = 1-x!1")
         (("1" (assert)) ("2" (assert))))))
      ("2" (skosimp*))))))


proof_type: f_proof
decl_type: formula
library: lnexp_fnd
theory: ln_exp_series_alt
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (induct "n")
   (("1"
     (expand "ln_estimate")
     (expand "sigma")
     (expand "sigma")
     (lemma "identity_derivable_fun[posreal]")
     (lemma "deriv_id_fun[posreal]")
     (expand "I")
     (lemma "const_derivable_fun[posreal]" ("b" "1"))
     (lemma "deriv_const_fun[posreal]" ("b" "1"))
     (expand "const_fun")
     (lemma "diff_derivable_fun[posreal]"
      ("f1" "LAMBDA (x: posreal): x" "f2" "LAMBDA (x: posreal): 1"))
     (assert)
     (lemma "deriv_diff_fun[posreal]"
      ("ff1" "LAMBDA (x: posreal): x" "ff2" "LAMBDA (x: posreal): 1"))
     (replace -3)
     (replace -5)
     (expand "-")
     (lemma "extensionality"
      ("f" "LAMBDA px: -(-(px - 1)) ^ 1 / 1" "g" "lambda px: px-1"))
     (split -1)
     (("1"
       (replace -1)
       (replace -2)
       (apply-extensionality 1 :hide? t)
       (expand "^" 1)
       (expand "expt" 1)
       (propax))
      ("2"
       (hide-all-but 1)
       (skosimp)
       (expand "^")
       (expand "expt")
       (expand "expt")
       (assert))))
    ("2"
     (skosimp*)
     (expand "ln_estimate")
     (expand "sigma" 1)
     (name "F"
           "(LAMBDA px:
                                 -sigma(0, 1 + j!1,
                                        LAMBDA (nn: nat):
                                          IF nn = 0 THEN 0 ELSE -(-(1 - px)) ^ nn / nn ENDIF))")
     (("1"
       (lemma "extensionality"
        ("f"
         "F+ (lambda px: (px-1) ^ (2 + j!1) / (2 + j!1))"
         "g"
         "(LAMBDA px:
                             -(sigma(0, 1 + j!1,
                                     LAMBDA (nn: nat):
                                       IF nn = 0 THEN 0 ELSE -(-(1 - px)) ^ nn / nn ENDIF)
                                + -(-(1 - px)) ^ (2 + j!1) / (2 + j!1)))"))
       (split -1)
       (("1"
         (hide -1 -2)
         (name "FF"
               "(LAMBDA px:
                                         sigma(0, 1 + j!1,
                                               LAMBDA (nn: nat):
                                                 IF nn = 0 THEN 0 ELSE -(-(px - 1)) ^ nn / nn ENDIF))")
         (replace -1)
         (lemma "extensionality"
          ("f"
           "(LAMBDA px:
                                 sigma(0, 1 + j!1,
                                       LAMBDA (nn: nat):
                                         IF nn = 0 THEN 0 ELSE -(-(px - 1)) ^ nn / nn ENDIF)
                                  + -(-(px - 1)) ^ (2 + j!1) / (2 + j!1))"
           "g"
           "FF-(lambda px: (1-px)^(2+j!1)/(2+j!1))"))
         (split -1)
         (("1"
           (replace -1)
           (lemma "ln_estimate_scaf6" ("n" "1+j!1"))
           (expand "ln_estimate")
           (replace -3)
           (hide -2 -3)
           (name "GG"
                 "(LAMBDA px: sigma(0, j!1, (LAMBDA (i: nat): (1 - px) ^ i)))")
           (lemma "extensionality"
            ("f"
             "(LAMBDA px:
                                  (1 - px) ^ (1 + j!1) +
                                   sigma(0, j!1, (LAMBDA (i: nat): (1 - px) ^ i)))"
             "g"
             "GG+(LAMBDA px:
                                  (1 - px) ^ (1 + j!1))"))
           (split -1)
           (("1"
             (replace -1)
             (replace -2)
             (hide -1 -2)
             (lemma "identity_derivable_fun[posreal]")
             (lemma "deriv_id_fun[posreal]")
             (expand "I")
             (lemma "const_derivable_fun[posreal]" ("b" "1"))
             (lemma "deriv_const_fun[posreal]" ("b" "1"))
             (expand "const_fun")
             (lemma "diff_derivable_fun[posreal]"
              ("f1"
               "LAMBDA (x: posreal): 1"
               "f2"
               "LAMBDA (x: posreal): x"))
             (assert)
             (lemma "deriv_diff_fun[posreal]"
              ("ff1"
               "LAMBDA (x: posreal): 1"
               "ff2"
               "LAMBDA (x: posreal): x"))
             (replace -3)
             (replace -5)
             (expand "-")
             (lemma "deriv_exp_fun[posreal]"
              ("f" "LAMBDA (x:posreal): 1-x" "n" "2+j!1"))
             (assert)
             (flatten)
             (expand "^" (-1 -2))
             (replace -3)
             (lemma "scal_derivable_fun[posreal]"
              ("b"
               "1/(2+j!1)"
               "f"
               "LAMBDA (t: posreal): (1 - t) ^ (2 + j!1)"))
             (assert)
             (lemma "deriv_scal_fun[posreal]"
              ("b"
               "1/(2+j!1)"
               "ff"
               "LAMBDA (t: posreal): (1 - t) ^ (2 + j!1)"))
             (replace -4)
             (lemma "extensionality"
              ("f"
               "1 / (2 + j!1) *
                                    (((2 + j!1) * (LAMBDA (t: posreal): (1 - t) ^ (1 + j!1))) *
                                      (LAMBDA (x_1: posreal): -1))"
               "g"
               "LAMBDA (t: posreal): - ((1 - t) ^ (1 + j!1))"))
             (split -1)
             (("1"
               (replace -1)
               (lemma "extensionality"
                ("f"
                 "(1 / (2 + j!1) * (LAMBDA (t: posreal): (1 - t) ^ (2 + j!1)))"
                 "g"
                 "(LAMBDA (t: posreal): (1 - t) ^ (2 + j!1)/(2+j!1))"))
               (split -1)
               (("1"
                 (replace -1)
                 (hide -1 -2 -5 -6 -7 -8 -9 -10 -11 -12)
                 (lemma "diff_derivable_fun[posreal]"
                  ("f1"
                   "FF"
                   "f2"
                   "(LAMBDA (t: posreal): (1 - t) ^ (2 + j!1) / (2 + j!1))"))
                 (assert)
                 (lemma "deriv_diff_fun[posreal]"
                  ("ff1"
                   "FF"
                   "ff2"
                   "(LAMBDA (t: posreal): (1 - t) ^ (2 + j!1) / (2 + j!1))"))
                 (replace -6)
                 (replace -3)
                 (expand "-" -1)
                 (replace -1)
                 (hide-all-but 1)
                 (apply-extensionality 1 :hide? t)
                 (expand "+")
                 (assert))
                ("2" (hide-all-but 1) (skosimp) (expand "*") (assert))))
              ("2"
               (hide-all-but 1)
               (skosimp*)
               (expand "*")
               (assert)
               (name-replace "DRL106" "(1 - x!1) ^ (1 + j!1)")
               (assert)
               (lemma "div_cancel3")
               (inst - "2+j!1" "(-2-j!1)*DRL106" "-DRL106")
               (assert))))
            ("2"
             (hide-all-but 1)
             (skosimp)
             (expand "GG")
             (expand "+")
             (propax))))
          ("2"
           (hide-all-but 1)
           (skosimp)
           (expand "FF")
           (expand "-")
           (lemma "both_sides_div1")
           (inst - "2+j!1" "-(-(x!1 - 1)) ^ (2 + j!1)"
            "-1 * ((1 - x!1) ^ (2 + j!1))")
           (replace -1 1)
           (hide -1)
           (case-replace "-(x!1 - 1) = 1-x!1")
           (("1" (assert)) ("2" (assert))))))
        ("2"
         (hide-all-but 1)
         (skosimp)
         (expand "F")
         (expand "+")
         (assert))))
      ("2" (skosimp*))))
    ("3"
     (hide 2)
     (skosimp)
     (lemma "ln_estimate_scaf6" ("n" "1+n!2"))
     (propax))))


proof_type: f_proof
decl_type: formula
library: lnexp_fnd
theory: ln_exp_series_alt
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skolem 1 ("n" "_"))
   (lemma "extensionality_postulate"
    ("f"
     "ln"
     "g"
     "lambda px: ln_estimate(px - 1, n + 1) +
                     (-1) ^ (n + 1) *
                      Integral(1, px, LAMBDA (t: posreal): (1 - t) ^ (n + 1) / t)"))
   (("1"
     (hide -1)
     (rewrite "extensionality_postulate")
     (("1"
       (name "L"
             "LAMBDA (px: posreal):
                                             ln_estimate(px - 1, 1 + n)")
       (name "II"
             "LAMBDA (px: posreal): Integral(1, px, LAMBDA (t: posreal): ((1 - t) ^ (1 + n)) / t)")
       (lemma "extensionality"
        ("f"
         "(LAMBDA (px: posreal):
                                 ln_estimate(px - 1, 1 + n) +
                                  Integral(1, px, LAMBDA (t: posreal): ((1 - t) ^ (1 + n)) / t))"
         "g"
         "L+II"))
       (split -1)
       (("1"
         (replace -1)
         (hide -1)
         (lemma "derivs_eq[posreal]" ("F" "ln" "G" "L+II"))
         (("1"
           (lemma "ln_derivable")
           (flatten)
           (lemma "ln_estimate_scaf6" ("n" "1+n"))
           (lemma "ln_estimate_scaf7" ("n" "n"))
           (replace -7)
           (hide -7)
           (lemma "fundamental[posreal]"
            ("f"
             "LAMBDA (t: posreal): ((1 - t) ^ (1 + n)) / t"
             "F"
             "II"
             "a"
             "1"))
           (lemma "ln_estimate_scaf1" ("n" "1+n"))
           (replace -1)
           (expand "II" -2 1)
           (flatten)
           (hide -1)
           (lemma "sum_derivable_fun[posreal]" ("f1" "L" "f2" "II"))
           (assert)
           (lemma "deriv_sum_fun[posreal]" ("ff1" "L" "ff2" "II"))
           (replace -4)
           (replace -5)
           (split -9)
           (("1"
             (expand "const_fun")
             (skosimp)
             (case-replace "c!1=0")
             (("1"
               (replace -2 1)
               (apply-extensionality 1 :hide? t)
               (hide-all-but 1)
               (expand "+")
               (propax))
              ("2"
               (hide-all-but (-1 1))
               (rewrite "extensionality_postulate" -1 :dir rl)
               (inst - "1")
               (rewrite "ln_1")
               (expand "+")
               (expand "II")
               (lemma "Integral_a_to_a[posreal]"
                ("a"
                 "1"
                 "f"
                 "LAMBDA (t: posreal): ((1 - t) ^ (1 + n)) / t"))
               (replace -1)
               (hide -1)
               (expand "L")
               (case "forall (n:nat): ln_estimate(0, n) = 0")
               (("1" (inst - "1+n") (assert))
                ("2"
                 (hide-all-but 1)
                 (expand "ln_estimate")
                 (induct "n")
                 (("1" (expand "sigma") (expand "sigma") (propax))
                  ("2"
                   (skosimp*)
                   (expand "sigma" 1)
                   (replace -1)
                   (hide -1)
                   (expand "^")
                   (expand "expt")
                   (assert))
                  ("3" (skosimp*))))))))
            ("2"
             (replace -1)
             (replace -8)
             (hide-all-but 1)
             (apply-extensionality 1 :hide? t)
             (expand "+")
             (lemma "ln_estimate_scaf5" ("nzx" "x!1" "n" "n"))
             (assert))))
          ("2"
           (hide-all-but 1)
           (assert)
           (expand "not_one_element?")
           (skosimp*)
           (inst + "x!1+1")
           (assert))
          ("3"
           (hide-all-but 1)
           (assert)
           (expand "connected?")
           (skosimp*)
           (assert))))
        ("2"
         (hide-all-but 1)
         (expand "II")
         (expand "L")
         (expand "+")
         (propax))))
      ("2" (lemma "ln_estimate_scaf2" ("n" "1+n")) (propax))))
    ("2" (lemma "ln_estimate_scaf2" ("n" "1+n")) (propax))))


proof_type: f_proof
decl_type: formula
library: lnexp_fnd
theory: ln_exp_series_alt
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (case-replace "n!1=0")
   (("1"
     (expand "ln_estimate")
     (expand "sigma")
     (expand "ln")
     (lemma "extensionality"
      ("f"
       "LAMBDA (t: posreal): (1 - t) ^ 0 / t"
       "g"
       "LAMBDA (t: posreal): 1 / t"))
     (split -1)
     (("1" (assert))
      ("2" (hide -1 2) (skosimp) (expand "^") (expand "expt") (propax))))
    ("2"
     (lemma "ln_estimate_scaf8" ("px" "px!1" "n" "n!1-1"))
     (("1" (assert)) ("2" (assert))))))


proof_type: f_proof
decl_type: formula
library: lnexp_fnd
theory: ln_exp_series_alt
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (stop-rewrite "abs_nat")
   (case "forall (n:nat): continuous?[posreal](LAMBDA (t: posreal): (1 - t) ^ n)")
   (("1"
     (skosimp)
     (inst - "n!1")
     (lemma "continuous_Integrable?[posreal]"
      ("a" "1" "b" "px!1" "f" "LAMBDA (t: posreal): (1 - t) ^ n!1"))
     (("1"
       (split -1)
       (("1"
         (lemma "const_derivable_fun[posreal]" ("b" "1"))
         (lemma "deriv_const_fun[posreal]" ("b" "1"))
         (lemma "identity_derivable_fun[posreal]")
         (lemma "deriv_id_fun[posreal]")
         (expand "I")
         (lemma "diff_derivable_fun[posreal]"
          ("f1" "LAMBDA (x: posreal): 1" "f2" "LAMBDA (x: posreal): x"))
         (assert)
         (lemma "deriv_diff_fun[posreal]"
          ("ff1"
           "LAMBDA (x: posreal): 1"
           "ff2"
           "LAMBDA (x: posreal): x"))
         (replace -3)
         (replace -5)
         (expand "-")
         (lemma "deriv_exp_fun[posreal]"
          ("n" "1+n!1" "f" "LAMBDA (x_1: posreal): 1 - x_1"))
         (assert)
         (expand "^" -1)
         (flatten)
         (replace -3)
         (hide -3 -4 -5 -6 -7 -8)
         (lemma "scal_derivable_fun[posreal]"
          ("b"
           "-1/(1+n!1)"
           "f"
           "LAMBDA (t: posreal): (1 - t) ^ (1 + n!1)"))
         (assert)
         (lemma "deriv_scal_fun[posreal]"
          ("b"
           "-1/(1+n!1)"
           "ff"
           "LAMBDA (t: posreal): (1 - t) ^ (1 + n!1)"))
         (expand "*")
         (replace -4 -1)
         (assert)
         (lemma "extensionality"
          ("f"
           "(LAMBDA (x: posreal):
                                                     -1 * ((1 - x) ^ n!1 * (-1 / (1 + n!1))) -
                                                      (1 - x) ^ n!1 * (-1 / (1 + n!1)) * n!1)"
           "g"
           "LAMBDA (t: posreal): (1 - t) ^ n!1"))
         (split -1)
         (("1"
           (replace -1)
           (hide -1)
           (lemma "fundamental3[posreal]"
            ("f"
             "LAMBDA (t: posreal): (1 - t) ^ n!1"
             "F"
             "LAMBDA (x: posreal): -1 / (1 + n!1) * (1 - x) ^ (1 + n!1)"
             "a"
             "1"
             "b"
             "px!1"))
           (replace -2 -1)
           (replace -3 -1)
           (replace -7 -1)
           (simplify -1)
           (expand "^" -1 3)
           (expand "expt" -1)
           (case "abs(Integral(1, px!1, LAMBDA (t: posreal): (1 - t) ^ n!1 / t)) <= abs(Integral(1, px!1, LAMBDA (t: posreal): (1 - t) ^ n!1))")
           (("1"
             (replace -2 -1)
             (name-replace "DRL100"
              "abs(Integral(1, px!1, LAMBDA (t: posreal): (1 - t) ^ n!1 / t))")
             (hide-all-but (-1 -9 -10 1))
             (rewrite "abs_mult" -1)
             (rewrite "abs_div" -1)
             (expand "abs" -1 1)
             (expand "abs" -1 1)
             (expand "<=" -2)
             (split -2)
             (("1"
               (rewrite "abs_expt" -2 :dir rl)
               (expand "abs")
               (assert))
              ("2"
               (replace -1 * rl)
               (expand "^")
               (expand "expt")
               (rewrite "zero_times1")
               (expand "abs")
               (propax))))
            ("2"
             (hide 2)
             (hide -2 -3 -4 -5)
             (hide -1)
             (expand "<=" -3)
             (split -3)
             (("1"
               (lemma "ln_estimate_scaf2" ("x" "px!1" "n" "n!1"))
               (name-replace "F"
                "LAMBDA (t: posreal): (1 - t) ^ n!1 / t")
               (name-replace "G" "LAMBDA (t: posreal): (1 - t) ^ n!1")
               (case "even?(n!1)")
               (("1"
                 (lemma "Integral_ge_0_open[posreal]"
                  ("a" "1" "b" "px!1" "f" "F"))
                 (lemma "Integral_ge_0_open[posreal]"
                  ("a" "1" "b" "px!1" "f" "G"))
                 (assert)
                 (split -1)
                 (("1"
                   (split -2)
                   (("1"
                     (expand "abs")
                     (assert)
                     (lemma "Integral_diff[posreal]"
                      ("a" "1" "b" "px!1" "f" "G" "g" "F"))
                     (assert)
                     (flatten)
                     (lemma "Integral_ge_0_open[posreal]"
                      ("a"
                       "1"
                       "b"
                       "px!1"
                       "f"
                       "LAMBDA (x: posreal): G(x) - F(x)"))
                     (assert)
                     (hide-all-but (1 -7 -5 -10))
                     (expand "even?")
                     (skosimp*)
                     (expand "F")
                     (expand "G")
                     (lemma "posreal_times_posreal_is_posreal"
                      ("px" "(1 - x!1) ^ n!1" "py" "1-1/x!1"))
                     (("1" (assert))
                      ("2"
                       (assert)
                       (hide 2)
                       (typepred "x!1")
                       (lemma "div_mult_pos_lt1"
                        ("py" "x!1" "x" "1" "z" "1"))
                       (assert)
                       (flatten)
                       (typepred "x!1")
                       (assert))
                      ("3"
                       (hide 2)
                       (replace -1)
                       (rewrite "expt_times" 1)
                       (("1"
                         (lemma "sq_nz_pos" ("nz" "1-x!1"))
                         (("1"
                           (expand "sq")
                           (expand "^" 1 1)
                           (expand "^" 1 2)
                           (expand "expt")
                           (expand "expt")
                           (expand "expt")
                           (lemma "expt_pos"
                            ("px" "1 - 2 * x!1 + x!1 * x!1" "i" "j!1"))
                           (("1" (assert)) ("2" (assert))))
                          ("2" (flatten) (typepred "x!1") (assert))))
                        ("2" (flatten) (typepred "x!1") (assert))))))
                    ("2"
                     (hide -1 2)
                     (skosimp)
                     (expand "F" 1)
                     (typepred "x!1")
                     (rewrite "div_mult_pos_ge1" 1)
                     (expand "even?")
                     (skosimp)
                     (replace -5 1)
                     (rewrite "expt_times" 1)
                     (lemma "sq_nz_pos" ("nz" "1-x!1"))
                     (("1"
                       (expand "sq")
                       (expand "^" 1 1)
                       (expand "expt" 1)
                       (expand "expt" 1)
                       (expand "expt" 1)
                       (lemma "expt_pos"
                        ("px" "1 - 2 * x!1 + x!1 * x!1" "i" "j!1"))
                       (("1" (assert)) ("2" (assert))))
                      ("2" (flatten) (typepred "x!1") (assert))))))
                  ("2"
                   (hide -1 2)
                   (expand "even?")
                   (skosimp*)
                   (expand "G")
                   (hide -2 -4 -5)
                   (replace -1)
                   (rewrite "expt_times" 1)
                   (("1"
                     (lemma "sq_nz_pos" ("nz" "1-x!1"))
                     (("1"
                       (expand "sq")
                       (expand "^" 1 1)
                       (expand "expt" 1)
                       (expand "expt" 1)
                       (expand "expt" 1)
                       (lemma "expt_pos"
                        ("px" "1 - 2 * x!1 + x!1 * x!1" "i" "j!1"))
                       (("1" (assert)) ("2" (assert))))
                      ("2" (flatten) (typepred "x!1") (assert))))
                    ("2" (flatten) (typepred "x!1") (assert))))))
                ("2"
                 (rewrite "even_or_odd")
                 (case "forall (x:posreal): 1 < x & x <= px!1 => G(x) < 0")
                 (("1"
                   (case "forall (x:posreal): 1 < x & x <= px!1 => F(x) < 0")
                   (("1"
                     (case "forall (x:posreal): 1 < x & x <= px!1 => G(x) < F(x)")
                     (("1"
                       (lemma "Integral_ge_0_open[posreal]"
                        ("a" "1" "b" "px!1" "f" "-F"))
                       (lemma "Integral_ge_0_open[posreal]"
                        ("a" "1" "b" "px!1" "f" "-G"))
                       (lemma "Integral_neg[posreal]"
                        ("a" "1" "b" "px!1" "f" "F"))
                       (lemma "Integral_neg[posreal]"
                        ("a" "1" "b" "px!1" "f" "G"))
                       (assert)
                       (flatten)
                       (assert)
                       (split -5)
                       (("1"
                         (split -6)
                         (("1"
                           (expand ">=" (-1 -2))
                           (expand "<=" (-1 -2))
                           (split -1)
                           (("1"
                             (expand "abs" 1)
                             (assert)
                             (split -2)
                             (("1"
                               (assert)
                               (lemma "Integral_diff[posreal]"
                                ("a" "1" "b" "px!1" "f" "-G" "g" "-F"))
                               (assert)
                               (flatten)
                               (lemma "Integral_ge_0_open[posreal]"
                                ("a"
                                 "1"
                                 "b"
                                 "px!1"
                                 "f"
                                 "LAMBDA (x: posreal): (-G)(x) - (-F)(x)"))
                               (replace -2)
                               (split -1)
                               (("1" (assert)) ("2" (hide 2) (assert))
                                ("3"
                                 (skosimp)
                                 (expand "-" 1)
                                 (inst -9 "x!1")
                                 (assert)
                                 (typepred "x!1")
                                 (assert)
                                 (ground))))
                              ("2"
                               (replace -1 * rl)
                               (assert)
                               (case-replace "Integral(1, px!1, G) = 0")
                               (("1"
                                 (lemma
                                  "Integral_diff[posreal]"
                                  ("a" "1" "b" "px!1" "f" "-G" "g" "-F"))
                                 (assert)
                                 (replace -3 -1 rl)
                                 (flatten)
                                 (lemma
                                  "Integral_ge_0_open[posreal]"
                                  ("a"
                                   "1"
                                   "b"
                                   "px!1"
                                   "f"
                                   "LAMBDA (x: posreal): (-G)(x) - (-F)(x)"))
                                 (replace -2)
                                 (split -1)
                                 (("1" (assert))
                                  ("2" (assert))
                                  ("3"
                                   (skosimp)
                                   (expand "-" 1)
                                   (inst -10 "x!1")
                                   (assert)
                                   (typepred "x!1")
                                   (ground))))
                                ("2" (hide 2) (assert))))))
                            ("2" (expand "abs") (assert))))
                          ("2"
                           (skosimp)
                           (expand "-" 1)
                           (inst -7 "x!1")
                           (assert)
                           (typepred "x!1")
                           (ground))))
                        ("2"
                         (skosimp)
                         (expand "-" 1)
                         (inst -8 "x!1")
                         (assert)
                         (typepred "x!1")
                         (ground))))
                      ("2"
                       (hide 2)
                       (skosimp)
                       (expand "odd?")
                       (skosimp*)
                       (expand "G")
                       (expand "F")
                       (rewrite "div_mult_pos_lt2" 1)
                       (lemma "both_sides_times_neg_lt1"
                        ("nz" "(1 - x!1) ^ n!1" "y" "1" "x" "x!1"))
                       (("1" (assert))
                        ("2"
                         (hide-all-but (-1 -2 -7 -10 1 -5))
                         (replace -3)
                         (rewrite "expt_plus" 1)
                         (rewrite "expt_x1")
                         (lemma "both_sides_times_pos_lt1"
                          ("pz"
                           "(1 - x!1) ^ (2 * j!1)"
                           "x"
                           "1-x!1"
                           "y"
                           "0"))
                         (("1" (assert))
                          ("2"
                           (hide 2)
                           (rewrite "expt_times")
                           (lemma "sq_nz_pos" ("nz" "1-x!1"))
                           (("1"
                             (lemma "expt_pos"
                              ("px" "sq(1 - x!1)" "i" "j!1"))
                             (("1"
                               (expand "sq")
                               (expand "^" 1 1)
                               (expand "^" 1 2)
                               (expand "expt")
                               (expand "expt")
                               (expand "expt")
                               (assert))
                              ("2" (propax))))
                            ("2" (assert))))
                          ("3" (assert))))))))
                    ("2"
                     (hide 2 -3 -5 -6)
                     (skosimp)
                     (inst - "x!1")
                     (assert)
                     (expand "F")
                     (expand "G")
                     (rewrite "div_mult_pos_lt1" 1)
                     (assert))))
                  ("2"
                   (hide -2 -4 -5 2)
                   (expand "odd?")
                   (skosimp*)
                   (expand "G")
                   (replace -3)
                   (rewrite "expt_plus")
                   (rewrite "expt_x1")
                   (rewrite "expt_times")
                   (lemma "sq_nz_pos" ("nz" "1-x!1"))
                   (("1"
                     (expand "sq")
                     (expand "^" 1 1)
                     (expand "expt" 1)
                     (expand "expt" 1)
                     (expand "expt" 1)
                     (lemma "expt_pos"
                      ("px" "1 - 2 * x!1 + x!1 * x!1" "i" "j!1"))
                     (("1"
                       (lemma "both_sides_times_pos_lt1"
                        ("pz"
                         "(1 - 2 * x!1 + x!1 * x!1) ^ j!1"
                         "x"
                         "1-x!1"
                         "y"
                         "0"))
                       (("1" (assert)) ("2" (assert))))
                      ("2" (assert))))
                    ("2" (assert))))))))
              ("2"
               (replace -1 * rl)
               (lemma "Integral_a_to_a[posreal]"
                ("a" "1" "f" "LAMBDA (t: posreal): (1 - t) ^ n!1"))
               (replace -1)
               (lemma "Integral_a_to_a[posreal]"
                ("a" "1" "f" "LAMBDA (t: posreal): (1 - t) ^ n!1/t"))
               (replace -1)
               (assert))))
            ("3"
             (lemma "ln_estimate_scaf2" ("x" "px!1" "n" "n!1"))
             (propax))))
          ("2"
           (hide-all-but 1)
           (skosimp)
           (lemma "div_cancel1" ("x" "(1 - x!1) ^ n!1" "n0z" "-1-n!1"))
           (case-replace "-1 / (1 + n!1) = 1/(-1-n!1)")
           (("1" (assert)) ("2" (assert))))))
        ("2"
         (hide 2)
         (skosimp)
         (expand "continuous?" -1)
         (inst - "x!1"))))
      ("2"
       (assert)
       (expand "not_one_element?")
       (skosimp*)
       (inst + "x!1+1")
       (assert))
      ("3" (assert) (expand "connected?") (skosimp*) (assert))))
    ("2"
     (hide 2)
     (lemma "const_fun_continuous[posreal]" ("u" "1"))
     (lemma "id_fun_continuous[posreal]")
     (expand "I")
     (expand "const_fun")
     (lemma "diff_fun_continuous[posreal]"
      ("h1" "LAMBDA (x: posreal): 1" "h2" "LAMBDA (x: posreal): x"))
     (("1"
       (expand "-")
       (induct "n")
       (("1"
         (lemma "extensionality"
          ("f"
           "LAMBDA (t: posreal): (1 - t) ^ 0"
           "g"
           "LAMBDA (x: posreal): 1"))
         (split -1)
         (("1" (assert))
          ("2"
           (hide-all-but 1)
           (skosimp)
           (expand "^")
           (expand "expt")
           (propax))))
        ("2"
         (skosimp*)
         (lemma "prod_fun_continuous[posreal]"
          ("h1"
           "LAMBDA (x_1: posreal): 1 - x_1"
           "h2"
           "LAMBDA (t: posreal): (1 - t) ^ j!1"))
         (("1"
           (lemma "extensionality"
            ("f"
             "((LAMBDA (x_1: posreal): 1 - x_1) *
                                                                           (LAMBDA (t: posreal): (1 - t) ^ j!1))"
             "g"
             "(LAMBDA (t: posreal): (1 - t) ^ (j!1 + 1))"))
           (split -1)
           (("1" (assert))
            ("2"
             (hide-all-but 1)
             (skosimp)
             (expand "*")
             (expand "^")
             (expand "expt" 1 3)
             (propax))))
          ("2" (propax)) ("3" (propax))))))
      ("2" (propax)) ("3" (propax))))))


proof_type: f_proof
decl_type: formula
library: lnexp_fnd
theory: ln_exp_series_alt
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (lemma "ln_estimate_scaf2" ("x" "px!1" "n" "n!1"))
   (name-replace "F" "LAMBDA (t: posreal): (1 - t) ^ n!1 / t")
   (lemma "id_fun_continuous[posreal]")
   (lemma "const_fun_continuous[posreal]" ("u" "1"))
   (expand "I")
   (expand "const_fun")
   (lemma "diff_fun_continuous[posreal]"
    ("h1" "LAMBDA (x: posreal): 1" "h2" "LAMBDA (x: posreal): x"))
   (("1"
     (expand "-")
     (case "forall (n:nat): continuous?(LAMBDA (x:posreal): (1-x)^n)")
     (("1"
       (inst - "n!1")
       (hide -2 -3 -4)
       (lemma "continuous_Integrable?[posreal]"
        ("a" "1" "b" "px!1" "f" "LAMBDA (x: posreal): (1 - x) ^ n!1"))
       (("1"
         (split -1)
         (("1"
           (case "Integral(1, px!1, LAMBDA (x: posreal): (1 - x) ^ n!1) = -(1-px!1)^(n!1+1)/(n!1+1)")
           (("1"
             (lemma "Integral_scal[posreal]"
              ("a"
               "1"
               "b"
               "px!1"
               "f"
               "LAMBDA (x: posreal): (1 - x) ^ n!1"
               "D"
               "1/px!1"))
             (assert)
             (flatten)
             (expand "*" (-1 -2))
             (assert)
             (replace -3 -2)
             (name-replace "G"
              "LAMBDA (x_1: posreal): 1 / px!1 * (1 - x_1) ^ n!1")
             (case "abs(Integral(1, px!1, F)) <= -Integral(1, px!1, G)")
             (("1"
               (assert)
               (replace -3 -1)
               (assert)
               (name-replace "DRL100" "(1 - px!1) ^ (1 + n!1)")
               (rewrite "div_times" -1)
               (assert))
              ("2"
               (hide 2)
               (case "forall (x:posreal): x < 1 => G(x) > 0")
               (("1"
                 (case "FORALL (x: posreal): x < 1 => F(x) > 0")
                 (("1"
                   (case "FORALL (x: posreal): px!1 < x & x < 1 => F(x) < G(x)")
                   (("1"
                     (lemma "Integral_rev[posreal]"
                      ("a" "1" "b" "px!1" "f" "F"))
                     (assert)
                     (flatten)
                     (lemma "Integral_ge_0_open[posreal]"
                      ("a" "px!1" "b" "1" "f" "F"))
                     (assert)
                     (split -1)
                     (("1"
                       (expand "abs" 1)
                       (assert)
                       (case-replace "Integral(1, px!1, F)=0")
                       (("1"
                         (assert)
                         (replace -9 1)
                         (rewrite "div_times" 1)
                         (lemma "expt_pos" ("px" "1-px!1" "i" "1+n!1"))
                         (lemma "posreal_times_posreal_is_posreal"
                          ("px" "n!1+1" "py" "px!1"))
                         (lemma "posreal_div_posreal_is_posreal"
                          ("px"
                           "(1 - px!1) ^ (1 + n!1)"
                           "py"
                           "(n!1+1)*px!1"))
                         (("1" (assert)) ("2" (assert))))
                        ("2"
                         (assert)
                         (lemma "Integral_diff[posreal]"
                          ("a" "px!1" "b" "1" "f" "G" "g" "F"))
                         (lemma "Integral_rev[posreal]"
                          ("a" "1" "b" "px!1" "f" "G"))
                         (assert)
                         (flatten)
                         (assert)
                         (flatten)
                         (lemma "Integral_ge_0_open[posreal]"
                          ("a"
                           "px!1"
                           "b"
                           "1"
                           "f"
                           "LAMBDA (x: posreal): G(x) - F(x)"))
                         (assert)
                         (hide 2 3)
                         (skosimp)
                         (typepred "x!1")
                         (inst -12 "x!1")
                         (assert))))
                      ("2"
                       (skosimp)
                       (inst -4 "x!1")
                       (assert)
                       (typepred "x!1")
                       (assert))))
                    ("2"
                     (hide-all-but (-9 1))
                     (skosimp)
                     (expand "F")
                     (expand "G")
                     (lemma "both_sides_times_pos_lt1"
                      ("pz" "(1 - x!1) ^ n!1" "x" "1/x!1" "y" "1/px!1"))
                     (("1"
                       (replace -1 1)
                       (hide -1)
                       (rewrite "div_mult_pos_lt1" 1)
                       (lemma "div_mult_pos_lt2"
                        ("py" "px!1" "z" "x!1" "x" "1"))
                       (assert))
                      ("2"
                       (lemma "expt_pos" ("px" "1-x!1" "i" "n!1"))
                       (("1" (assert)) ("2" (assert))))))))
                  ("2"
                   (hide-all-but (-8 1))
                   (skosimp)
                   (expand "F")
                   (typepred "x!1")
                   (lemma "expt_pos" ("px" "1-x!1" "i" "n!1"))
                   (("1" (rewrite "div_mult_pos_gt1" 1) (assert))
                    ("2" (assert))))))
                ("2"
                 (hide-all-but 1)
                 (skosimp)
                 (expand "G")
                 (lemma "div_mult_pos_gt1")
                 (inst - "px!1" "0" "(1 - x!1) ^ n!1")
                 (assert)
                 (hide 2)
                 (lemma "expt_pos" ("px" "1-x!1" "i" "n!1"))
                 (assert))))))
            ("2"
             (hide -3 2)
             (lemma "const_derivable_fun[posreal]" ("b" "1"))
             (lemma "deriv_const_fun[posreal]" ("b" "1"))
             (lemma "identity_derivable_fun[posreal]")
             (lemma "deriv_id_fun[posreal]")
             (expand "I")
             (lemma "diff_derivable_fun[posreal]"
              ("f1"
               "LAMBDA (x: posreal): 1"
               "f2"
               "LAMBDA (x: posreal): x"))
             (assert)
             (lemma "deriv_diff_fun[posreal]"
              ("ff1"
               "LAMBDA (x: posreal): 1"
               "ff2"
               "LAMBDA (x: posreal): x"))
             (replace -5)
             (replace -3)
             (expand "-")
             (lemma "deriv_exp_fun[posreal]"
              ("f" "LAMBDA (x:posreal): 1 - x" "n" "n!1+1"))
             (assert)
             (flatten)
             (expand "^" (-1 -2))
             (replace -3)
             (lemma "fundamental3[posreal]"
              ("a"
               "1"
               "b"
               "px!1"
               "f"
               "LAMBDA (x: posreal): (1 - x) ^ n!1"
               "F"
               "(-1/(1 + n!1) * (LAMBDA (t: posreal): (1 - t) ^ (1+n!1)))"))
             (lemma "scal_derivable_fun[posreal]"
              ("b"
               "-1/(1+n!1)"
               "f"
               "LAMBDA (t: posreal): (1 - t) ^ (1 + n!1)"))
             (replace -3)
             (replace -1)
             (lemma "deriv_scal_fun[posreal]"
              ("b"
               "-1/(1+n!1)"
               "ff"
               "LAMBDA (t: posreal): (1 - t) ^ (1 + n!1)"))
             (("1"
               (replace -5 -1)
               (replace -1)
               (replace -13)
               (lemma "extensionality"
                ("f"
                 "(-1 / (1 + n!1) *
                                                                       (((1 + n!1) * (LAMBDA (t: posreal): (1 - t) ^ n!1)) *
                                                                         (LAMBDA (x_1: posreal): -1)))"
                 "g"
                 "LAMBDA (x: posreal): (1 - x) ^ n!1"))
               (split -1)
               (("1"
                 (replace -1 -4)
                 (assert)
                 (replace -4 1)
                 (hide-all-but (-15 1))
                 (simplify 1)
                 (expand "*")
                 (expand "^" 1 2)
                 (expand "expt")
                 (assert))
                ("2"
                 (hide-all-but 1)
                 (skosimp)
                 (expand "*")
                 (lemma "div_cancel1" ("n0z" "-1-n!1" "x" "(1-x!1)^n!1"))
                 (case-replace ("-1 / (1 + n!1) = 1/(-1-n!1)"))
                 (("1" (assert)) ("2" (assert))))))
              ("2" (propax))))
            ("3" (propax))))
          ("2"
           (hide 2 -2)
           (skosimp)
           (expand "continuous?" -1)
           (inst - "x!1"))))
        ("2"
         (assert)
         (expand "not_one_element?")
         (skosimp*)
         (inst + "x!1+1")
         (assert))
        ("3" (assert) (expand "connected?") (skosimp*) (assert))))
      ("2"
       (hide -4 2 -5)
       (induct "n")
       (("1"
         (lemma "extensionality"
          ("f"
           "LAMBDA (x: posreal): (1 - x) ^ 0"
           "g"
           "LAMBDA (x: posreal): 1"))
         (split -1)
         (("1" (assert))
          ("2"
           (hide-all-but 1)
           (skosimp)
           (expand "^")
           (expand "expt")
           (propax))))
        ("2"
         (skosimp*)
         (lemma "prod_fun_continuous[posreal]"
          ("h1"
           "LAMBDA (x: posreal): (1 - x) ^ j!1"
           "h2"
           "LAMBDA (x: posreal): 1 - x"))
         (("1"
           (lemma "extensionality"
            ("f"
             "(LAMBDA (x: posreal): (1 - x) ^ j!1) *
                                                     (LAMBDA (x: posreal): 1 - x)"
             "g"
             "LAMBDA (x: posreal): (1 - x) ^ (j!1 + 1)"))
           (split -1)
           (("1" (assert))
            ("2"
             (hide-all-but 1)
             (skosimp)
             (expand "*")
             (expand "^")
             (expand "expt" 1 3)
             (propax))))
          ("2" (propax)) ("3" (propax))))))))
    ("2" (propax)) ("3" (propax))))


proof_type: f_proof
decl_type: formula
library: lnexp_fnd
theory: ln_exp_series_alt
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (typepred "z!1")
   (expand "convergence")
   (skosimp*)
   (case "forall (n:nat): ln_estimate(z!1, n+1) = series(lnT(z!1))(n)")
   (("1"
     (case "forall (n:nat): abs(z!1)^n <= 1")
     (("1"
       (lemma "ln_estimate_bnd" ("z" "z!1"))
       (lemma "posreal_times_posreal_is_posreal"
        ("px" "IF z!1 < 0 THEN 1 + z!1 ELSE 1 ENDIF" "py" "epsilon!1"))
       (name "N"
             "ceiling(1/(IF z!1 < 0 THEN 1 + z!1 ELSE 1 ENDIF*epsilon!1))")
       (("1"
         (lemma "ceiling_def"
          ("x" "1 / (IF z!1 < 0 THEN 1 + z!1 ELSE 1 ENDIF * epsilon!1)"))
         (replace -2)
         (flatten)
         (lemma "nonneg_ceiling_is_nat"
          ("x" "1 / (IF z!1 < 0 THEN 1 + z!1 ELSE 1 ENDIF * epsilon!1)"))
         (("1"
           (replace -4)
           (inst + "N")
           (skosimp)
           (inst -8 "i!1")
           (replace -8 1 rl)
           (inst -6 "i!1+1")
           (case-replace
            "abs(ln_estimate(z!1, i!1 + 1) - ln(1 + z!1)) = abs(ln(1 + z!1) - ln_estimate(z!1, i!1 + 1))")
           (("1"
             (case "abs(z!1) ^ (i!1 + 1 + 1) /
                                            (IF z!1 < 0 THEN 1 + z!1 ELSE 1 ENDIF * (i!1 + 1 + 1)) < epsilon!1")
             (("1"
               (assert)
               (name-replace "DRL100"
                "IF z!1 < 0 THEN 1 + z!1 ELSE 1 ENDIF")
               (assert))
              ("2"
               (hide 2 -9 -7 -1)
               (name "DRL101" "IF z!1 < 0 THEN 1 + z!1 ELSE 1 ENDIF")
               (replace -1)
               (rewrite "div_mult_pos_lt1" 1)
               (("1"
                 (rewrite "div_mult_pos_le1" -3)
                 (inst -7 "2+i!1")
                 (lemma "both_sides_times_pos_lt1"
                  ("pz" "DRL101 * epsilon!1" "x" "N" "y" "2+i!1"))
                 (("1" (assert)) ("2" (assert))))
                ("2"
                 (assert)
                 (lemma "posreal_times_posreal_is_posreal"
                  ("px" "2+i!1" "py" "DRL101"))
                 (("1" (assert))
                  ("2"
                   (hide-all-but 1)
                   (expand "DRL101")
                   (case-replace "z!1<0")
                   (("1" (assert)) ("2" (assert))))))))))
            ("2"
             (hide-all-but 1)
             (expand "abs")
             (lemma "trich_lt"
              ("x" "ln_estimate(z!1, 1 + i!1)" "y" "ln(1 + z!1)"))
             (split -1)
             (("1" (assert)) ("2" (assert)) ("3" (assert))))))
          ("2"
           (hide-all-but (-4 1))
           (rewrite "div_mult_pos_ge1" 1)
           (("1" (assert) (rewrite "zero_times1") (assert))
            ("2"
             (replace -1)
             (hide 2)
             (expand ">=")
             (expand "<=")
             (expand ">")
             (replace -1 1)
             (propax))))))
        ("2" (expand "/=") (replace -1 -2) (assert))))
      ("2"
       (hide-all-but (-2 -3 1))
       (induct "n")
       (("1" (expand "^") (expand "expt") (assert))
        ("2"
         (skosimp*)
         (expand "^")
         (expand "expt" 1)
         (lemma "le_times_le_pos"
          ("nnx" "abs(z!1)" "y" "1" "nnz" "expt(abs(z!1), j!1)" "w" "1"))
         (split -1)
         (("1" (assert))
          ("2"
           (hide-all-but (-2 -3 1))
           (expand "abs")
           (case-replace "z!1<0")
           (("1" (assert)) ("2" (assert))))
          ("3" (propax))))))))
    ("2"
     (hide-all-but 1)
     (expand "series")
     (expand "ln_estimate")
     (induct "n")
     (("1"
       (expand "sigma")
       (expand "sigma")
       (expand "lnT")
       (expand "sigma")
       (propax))
      ("2"
       (skosimp*)
       (expand "sigma" 1)
       (replace -1)
       (hide -1)
       (assert)
       (expand "lnT")
       (propax))
      ("3" (skosimp*))))))


proof_type: f_proof
decl_type: formula
library: lnexp_fnd
theory: ln_exp_series_alt
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (expand "convergent?")
   (lemma "lnT_convergence" ("z" "z!1"))
   (inst + "ln(1+z!1)"))


proof_type: f_proof
decl_type: formula
library: lnexp_fnd
theory: ln_exp_series_alt
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (expand "inf_sum")
   (lemma "lnT_convergence" ("z" "z!1"))
   (rewrite "limit_equiv" -1)
   (flatten)
   (assert))


proof_type: f_proof
decl_type: formula
library: lnexp_fnd
theory: ln_exp_series_alt
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (induct "n")
   (("1"
     (lemma "exp_deriv")
     (flatten)
     (expand "derivable_n_times?")
     (assert)
     (expand "derivable_n_times?")
     (propax))
    ("2"
     (expand "nderiv" 1)
     (expand "nderiv")
     (lemma "exp_deriv")
     (flatten))
    ("3"
     (skosimp*)
     (lemma "exp_deriv")
     (flatten)
     (prop)
     (("1" (expand "derivable_n_times?" 1) (assert))
      ("2" (expand "nderiv" 1) (assert))))
    ("4" (skosimp*)) ("5" (skosimp*))))


proof_type: f_proof
decl_type: formula
library: lnexp_fnd
theory: ln_exp_series_alt
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (lemma "Taylors[real]" ("f" "exp" "n" "n!1" "aa" "0" "bb" "x!1"))
   (lemma "nderiv_exp")
   (inst?)
   (flatten)
   (replace -1)
   (skosimp*)
   (inst + "c!1")
   (replace -2)
   (expand "exp_estimate")
   (lemma "sigma_eq[nat]"
    ("low"
     "0"
     "high"
     "n!1"
     "F"
     "LAMBDA (nn:nat):
                          IF nn > n!1 THEN 0
                          ELSIF nn = 0 THEN exp(0)
                          ELSE nderiv(nn, exp)(0) * (x!1 - 0) ^ nn / factorial(nn)
                          ENDIF"
     "G"
     "LAMBDA (nn: nat): IF nn = 0 THEN 1 ELSE x!1 ^ nn / factorial(nn) ENDIF"))
   (("1"
     (split -1)
     (("1" (assert) (expand "expT") (replace -1 1 rl) (propax))
      ("2"
       (hide 2)
       (skosimp*)
       (typepred "n!2")
       (assert)
       (lemma "nderiv_exp")
       (inst - "n!2")
       (flatten)
       (hide -1)
       (replace -1)
       (rewrite "exp_0")
       (case "n!2=0")
       (("1" (assert)) ("2" (assert))))))
    ("2"
     (hide 2)
     (skosimp*)
     (hide 2)
     (lemma "nderiv_exp")
     (inst?)
     (flatten))))


proof_type: f_proof
decl_type: formula
library: lnexp_fnd
theory: ln_exp_series_alt
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (stop-rewrite "abs_nat")
   (skosimp*)
   (lemma "exp_taylors" ("x" "x!1" "n" "n!1"))
   (skosimp*)
   (typepred "c!1")
   (lemma "trichotomy" ("x" "x!1"))
   (case "exp(x!1) - exp_estimate(x!1, n!1) = exp(c!1) * x!1 ^ (n!1 + 1) / factorial(n!1 + 1)")
   (("1"
     (replace -1)
     (rewrite "abs_div" 1)
     (expand "abs" 1 2)
     (lemma "both_sides_div_pos_le1"
      ("x"
       "abs(exp(c!1) * x!1 ^ (1 + n!1))"
       "y"
       "max(exp(x!1),1) * x!1 ^ (1 + n!1)"
       "pz"
       "factorial(1 + n!1)"))
     (hide -1 -2 -7)
     (rewrite "abs_mult")
     (expand "abs" 1 1)
     (case "exp(c!1)<=max(exp(x!1),1)")
     (("1"
       (split -2)
       (("1"
         (lemma "expt_pos" ("px" "x!1" "i" "1+n!1"))
         (("1"
           (expand "abs" 1)
           (lemma "exp_strict_increasing")
           (expand "strict_increasing?")
           (inst-cp - "0" "c!1")
           (inst - "c!1" "x!1")
           (rewrite "exp_0")
           (assert)
           (flatten -6)
           (expand "max")
           (assert)
           (lemma "both_sides_times_pos_lt1"
            ("x" "exp(c!1)" "y" "exp(x!1)" "pz" "x!1^(1+n!1)"))
           (assert)
           (lemma "both_sides_div_pos_lt1"
            ("x"
             "exp(c!1) * x!1 ^ (1 + n!1)"
             "y"
             "exp(x!1) * x!1 ^ (1 + n!1)"
             "pz"
             "factorial(1+n!1)"))
           (assert))
          ("2" (assert))))
        ("2"
         (replace -1)
         (replace -5)
         (rewrite "exp_0")
         (expand "max")
         (expand "^")
         (expand "expt")
         (expand "abs")
         (assert))
        ("3"
         (lemma "exp_strict_increasing")
         (expand "strict_increasing?")
         (assert)
         (hide -4 -6)
         (flatten -4)
         (inst-cp - "x!1" "c!1")
         (inst - "c!1" "0")
         (rewrite "exp_0")
         (expand "max")
         (assert)
         (typepred "exp(c!1)")
         (hide -1 -3)
         (case "abs(x!1 ^ (1 + n!1)) = abs(x!1) ^ (1 + n!1)")
         (("1"
           (lemma "posreal_div_posreal_is_posreal"
            ("px" "abs(x!1) ^ (1 + n!1)" "py" "factorial(1 + n!1)"))
           (("1"
             (lemma "both_sides_times_pos_le1"
              ("x"
               "exp(c!1)"
               "y"
               "1"
               "pz"
               "abs(x!1) ^ (1 + n!1) / factorial(1 + n!1)"))
             (("1" (assert)) ("2" (propax))))
            ("2"
             (hide 2)
             (lemma "expt_pos" ("px" "abs(x!1)" "i" "1+n!1"))
             (propax))))
          ("2"
           (hide 2)
           (case "FORALL (n:nat): abs(x!1^n) = abs(x!1)^n")
           (("1" (inst - "1+n!1"))
            ("2"
             (hide-all-but (-4 1))
             (induct "n")
             (("1"
               (rewrite "expt_x0")
               (rewrite "expt_x0")
               (expand "abs")
               (propax))
              ("2"
               (skosimp*)
               (expand "^")
               (expand "expt" 1)
               (rewrite "abs_mult" 1)
               (assert))))))))))
      ("2"
       (hide 2)
       (expand "max")
       (lemma "exp_strict_increasing")
       (expand "strict_increasing?")
       (split -2)
       (("1"
         (assert)
         (flatten -3)
         (inst-cp - "0" "c!1")
         (inst - "c!1" "x!1")
         (rewrite "exp_0")
         (assert))
        ("2"
         (assert)
         (replace -1)
         (replace -3)
         (rewrite "exp_0")
         (assert))
        ("3"
         (assert)
         (flatten -4)
         (inst-cp - "x!1" "c!1")
         (inst - "c!1" "0")
         (rewrite "exp_0")
         (assert))))))
    ("2" (assert))))


proof_type: f_proof
decl_type: formula
library: lnexp_fnd
theory: ln_exp_series_alt
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (lemma "exp_series_scaf2" ("n" "n!1"))
   (case-replace "n!1=0")
   (("1"
     (expand "factorial")
     (expand "factorial")
     (rewrite "sqrt_0")
     (expand "^")
     (expand "expt")
     (assert))
    ("2"
     (rewrite "expt_plus" 2)
     (expand "factorial" 2)
     (assert)
     (rewrite "expt_x1")
     (lemma "le_times_le_pos"
      ("nnx"
       "sqrt(n!1) ^ (2 * n!1)"
       "y"
       "factorial(2 * n!1)"
       "nnz"
       "sqrt(n!1)"
       "w"
       "1+2*n!1"))
     (assert)
     (hide-all-but (1 2))
     (lemma "sq_le" ("nna" "sqrt(n!1)" "nnb" "1 + 2 * n!1"))
     (rewrite "sq_sqrt")
     (replace -1 1 rl)
     (hide -1)
     (expand "sq")
     (assert))))


proof_type: f_proof
decl_type: formula
library: lnexp_fnd
theory: ln_exp_series_alt
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (expand "convergence")
   (skosimp)
   (lemma "exp_estimate_bnd" ("x" "x!1"))
   (case-replace "x!1=0")
   (("1"
     (rewrite "exp_0")
     (inst + "0")
     (skosimp)
     (expand "series")
     (case "forall (n:nat): sigma(0, n, expT(0)) = 1")
     (("1" (inst - "i!1") (replace -1) (expand "abs") (assert))
      ("2"
       (hide-all-but 1)
       (expand "expT")
       (induct "n")
       (("1" (expand "sigma") (expand "sigma") (propax))
        ("2"
         (skosimp*)
         (expand "sigma" 1)
         (replace -1 1)
         (hide -1)
         (expand "^")
         (expand "expt")
         (assert))))))
    ("2"
     (case "max(exp(x!1),1)>0")
     (("1"
       (name-replace "MX" "max(exp(x!1), 1)")
       (lemma "posreal_times_posreal_is_posreal"
        ("px" "MX" "py" "abs(x!1)"))
       (("1"
         (lemma "posreal_times_posreal_is_posreal"
          ("px" "MX*abs(x!1)" "py" "epsilon!1"))
         (("1"
           (lemma "posreal_div_posreal_is_posreal"
            ("px" "1" "py" "MX * abs(x!1) * epsilon!1"))
           (("1"
             (name "M" "ceiling(abs(x!1)+1)")
             (lemma "ceiling_def" ("x" "abs(x!1)+1"))
             (replace -2)
             (flatten)
             (case "abs(x!1)<M")
             (("1"
               (case "MX>=1")
               (("1"
                 (case "EXISTS (n: nat):
                               n > M &
                                (FORALL (i: nat):
                                   i >= n =>
                                    abs(x!1)^(i+1) / factorial(i+1) < epsilon!1 / MX)")
                 (("1"
                   (skosimp)
                   (inst + "n!1")
                   (skosimp*)
                   (inst - "i!1")
                   (assert)
                   (inst - "i!1")
                   (case-replace
                    "abs(exp(x!1) - exp_estimate(x!1, i!1)) = abs(series(expT(x!1))(i!1) - exp(x!1))")
                   (("1" (rewrite "div_mult_pos_lt2" -3) (assert))
                    ("2"
                     (hide-all-but 1)
                     (expand "exp_estimate")
                     (expand "series")
                     (expand "abs")
                     (lemma "trichotomy"
                      ("x" "exp(x!1) - sigma(0, i!1, expT(x!1))"))
                     (split)
                     (("1" (assert)) ("2" (assert)) ("3" (assert))))))
                  ("2"
                   (hide 3 -10)
                   (case "abs(x!1)>0")
                   (("1"
                     (lemma "posreal_div_posreal_is_posreal"
                      ("px" "abs(x!1)" "py" "M"))
                     (("1"
                       (lemma "div_mult_pos_lt1"
                        ("py" "M" "x" "1" "z" "abs(x!1)"))
                       (assert)
                       (lemma "posreal_div_posreal_is_posreal"
                        ("px" "epsilon!1" "py" "MX"))
                       (name-replace "K" "epsilon!1/MX")
                       (name-replace "ABS" "abs(x!1)")
                       (hide-all-but (-1 -2 -3 -4 -6 1 -7))
                       (lemma "trich_lt" ("x" "ABS" "y" "1"))
                       (split -1)
                       (("1"
                         (lemma "small_expt" ("px" "ABS"))
                         (("1"
                           (assert)
                           (inst - "K")
                           (skosimp)
                           (inst + "max(n!1,M+1)")
                           (("1"
                             (split 1)
                             (("1"
                               (expand "max")
                               (case-replace "n!1<=1+M")
                               (("1" (assert) (lift-if) (ground))
                                ("2" (assert))))
                              ("2"
                               (skosimp*)
                               (rewrite "div_mult_pos_lt1" 1)
                               (lemma "both_sides_expt_lt1_lt"
                                ("lt1x" "ABS" "i" "i!1+1" "j" "n!1"))
                               (expand "^" -1 2)
                               (expand "max")
                               (lemma "both_sides_times_pos_le1"
                                ("pz"
                                 "K"
                                 "x"
                                 "1"
                                 "y"
                                 "factorial(1+i!1)"))
                               (case-replace "n!1 <= 1 + M")
                               (("1" (assert) (lift-if) (ground))
                                ("2" (assert))))))
                            ("2" (assert))))
                          ("2" (propax))))
                        ("2"
                         (replace -1)
                         (name "N" "ceiling(1/K)")
                         (lemma "ceiling_def" ("x" "1/K"))
                         (replace -2)
                         (flatten)
                         (inst + "max(N,M+1)")
                         (("1"
                           (split)
                           (("1"
                             (expand "max")
                             (case-replace "N<=1+M")
                             (("1" (assert) (lift-if) (ground))
                              ("2" (assert))))
                            ("2"
                             (skosimp)
                             (rewrite "expt_1i")
                             (rewrite "div_mult_pos_lt1")
                             (rewrite "div_mult_pos_le1" -2)
                             (lemma "both_sides_times_pos_lt1"
                              ("pz"
                               "K"
                               "x"
                               "N"
                               "y"
                               "factorial(1 + i!1)"))
                             (assert)
                             (case "i!1>=N")
                             (("1"
                               (hide 2)
                               (hide -2)
                               (case "forall (n:nat): n <= factorial(n)")
                               (("1"
                                 (inst - "N")
                                 (case
                                  "forall (n:posnat): factorial(N) < factorial(N + n)")
                                 (("1" (inst - "1+i!1-N") (assert))
                                  ("2"
                                   (hide 2)
                                   (induct "n")
                                   (("1" (assert))
                                    ("2" (assert))
                                    ("3"
                                     (skosimp*)
                                     (assert)
                                     (case "j!1>0")
                                     (("1"
                                       (assert)
                                       (expand "factorial" 1 2)
                                       (lemma
                                        "both_sides_times_pos_le1"
                                        ("pz"
                                         "factorial(N + j!1)"
                                         "x"
                                         "1"
                                         "y"
                                         "1+N+j!1"))
                                       (assert))
                                      ("2"
                                       (assert)
                                       (case-replace "j!1=0")
                                       (("1"
                                         (expand "factorial" 2 2)
                                         (lemma
                                          "both_sides_times_pos_lt1"
                                          ("pz"
                                           "factorial(N)"
                                           "x"
                                           "1"
                                           "y"
                                           "1+N"))
                                         (assert))
                                        ("2" (assert))))))))))
                                ("2"
                                 (hide-all-but 1)
                                 (induct "n")
                                 (("1" (expand "factorial") (assert))
                                  ("2"
                                   (skosimp*)
                                   (expand "factorial" 1)
                                   (lemma
                                    "both_sides_times_pos_le1"
                                    ("pz"
                                     "1"
                                     "x"
                                     "j!1"
                                     "y"
                                     "factorial(j!1)"))
                                   (lemma
                                    "both_sides_times_pos_le1"
                                    ("pz"
                                     "1+j!1"
                                     "x"
                                     "1"
                                     "y"
                                     "factorial(j!1)"))
                                   (assert))))))
                              ("2"
                               (hide-all-but (1 -1))
                               (expand "max")
                               (case-replace "N <= 1 + M")
                               (("1" (assert)) ("2" (assert))))))))
                          ("2" (assert))))
                        ("3"
                         (name "N" "2*sq(M)")
                         (case "FORALL (i: nat): i > N => ABS ^ i / factorial(i) <= (ABS / M) ^ i")
                         (("1"
                           (lemma "small_expt" ("px" "ABS/M"))
                           (("1"
                             (assert)
                             (inst - "K")
                             (skosimp)
                             (inst + "n!1+N")
                             (("1"
                               (split)
                               (("1"
                                 (expand "sq")
                                 (lemma
                                  "both_sides_times_pos_lt1"
                                  ("pz" "M" "x" "1" "y" "2*M"))
                                 (assert))
                                ("2"
                                 (skosimp*)
                                 (inst - "1+i!1")
                                 (assert)
                                 (lemma
                                  "both_sides_expt_lt1_lt"
                                  ("lt1x" "ABS/M" "i" "1+i!1" "j" "n!1"))
                                 (assert)
                                 (expand "^" -1 2)
                                 (assert))))
                              ("2"
                               (expand "sq")
                               (assert)
                               (replace -3 * rl)
                               (assert))))
                            ("2" (assert))))
                          ("2"
                           (hide 2)
                           (skosimp)
                           (case "M>=2")
                           (("1"
                             (case "N>=8")
                             (("1"
                               (rewrite "div_expt" 1)
                               (lemma "both_sides_div_pos_le2"
                                ("pz"
                                 "ABS^i!1"
                                 "px"
                                 "factorial(i!1)"
                                 "py"
                                 "M^i!1"))
                               (("1"
                                 (replace -1 1)
                                 (hide -1 -8 -9 -10 -11 -12)
                                 (hide -5)
                                 (case "even?(i!1)")
                                 (("1"
                                   (expand "even?")
                                   (skosimp)
                                   (case "j!1>=4")
                                   (("1"
                                     (lemma "sqrt_pos" ("px" "j!1"))
                                     (("1"
                                       (lemma
                                        "exp_series_scaf2"
                                        ("n" "j!1"))
                                       (("1"
                                         (replace -4 * rl)
                                         (lemma
                                          "both_sides_expt_pos_le"
                                          ("px"
                                           "M"
                                           "py"
                                           "sqrt(j!1)"
                                           "pm"
                                           "i!1"))
                                         (("1"
                                           (assert)
                                           (hide -1 2)
                                           (lemma
                                            "sq_le"
                                            ("nna"
                                             "M"
                                             "nnb"
                                             "sqrt(j!1)"))
                                           (rewrite "sq_sqrt")
                                           (lemma
                                            "both_sides_times_pos_le1"
                                            ("pz"
                                             "2"
                                             "x"
                                             "sq(M)"
                                             "y"
                                             "j!1"))
                                           (assert))
                                          ("2" (propax))
                                          ("3" (assert))))
                                        ("2" (assert))))
                                      ("2" (assert))))
                                    ("2" (assert))))
                                  ("2"
                                   (rewrite "even_or_odd")
                                   (expand "odd?")
                                   (skosimp)
                                   (case "j!1>=4")
                                   (("1"
                                     (lemma "sqrt_pos" ("px" "j!1"))
                                     (("1"
                                       (lemma
                                        "exp_series_scaf3"
                                        ("n" "j!1"))
                                       (("1"
                                         (replace -4 * rl)
                                         (lemma
                                          "both_sides_expt_pos_le"
                                          ("px"
                                           "M"
                                           "py"
                                           "sqrt(j!1)"
                                           "pm"
                                           "i!1"))
                                         (("1"
                                           (assert)
                                           (hide -1 2)
                                           (lemma
                                            "sq_le"
                                            ("nna"
                                             "M"
                                             "nnb"
                                             "sqrt(j!1)"))
                                           (rewrite "sq_sqrt")
                                           (assert)
                                           (lemma
                                            "both_sides_times_pos_le2"
                                            ("pz"
                                             "2"
                                             "x"
                                             "sq(M)"
                                             "y"
                                             "j!1"))
                                           (hide 2)
                                           (replace -1 1 rl)
                                           (replace -8)
                                           (replace -4 -7)
                                           (replace -1 1)
                                           (hide -1 -2)
                                           (case-replace "N=2*j!1")
                                           (("1" (assert))
                                            ("2"
                                             (case-replace "N=2*j!1+1")
                                             (("1" (assert))
                                              ("2"
                                               (assert)
                                               (case "N>=2+2*j!1")
                                               (("1" (assert))
                                                ("2"
                                                 (assert)
                                                 (case-replace
                                                  "N= 2*j!1-1")
                                                 (("1" (assert))
                                                  ("2"
                                                   (assert)
                                                   (case-replace
                                                    "N <= 2*j!1-2")
                                                   (("1" (assert))
                                                    ("2"
                                                     (assert)
                                                     (expand "N")
                                                     (expand "sq")
                                                     (assert)
                                                     (typepred "M")
                                                     (expand "M")
                                                     (assert)
                                                     (typepred
                                                      "ceiling(1+abs(x!1))")
                                                     (lemma
                                                      "nonneg_ceiling_is_nat"
                                                      ("x"
                                                       "1 + abs(x!1)"))
                                                     (case
                                                      "integer_pred(ceiling(1 + abs(x!1)))")
                                                     (("1"
                                                       (name-replace
                                                        "ZZ"
                                                        "ceiling(1 + abs(x!1))")
                                                       (assert)
                                                       (case
                                                        "integer_pred(2*(ZZ*ZZ))")
                                                       (("1"
                                                         (hide-all-but
                                                          (1
                                                           2
                                                           3
                                                           4
                                                           5
                                                           -3
                                                           -2
                                                           -3))
                                                         (lemma
                                                          "trich_lt"
                                                          ("x"
                                                           "2*(ZZ*ZZ)"
                                                           "y"
                                                           "2*j!1-1"))
                                                         (split -1)
                                                         (("1" (assert))
                                                          ("2" (propax))
                                                          ("3"
                                                           (lemma
                                                            "trich_lt"
                                                            ("x"
                                                             "2*(ZZ*ZZ)"
                                                             "y"
                                                             "2*j!1"))
                                                           (split -1)
                                                           (("1"
                                                             (assert))
                                                            ("2"
                                                             (propax))
                                                            ("3"
                                                             (hide -2)
                                                             (lemma
                                                              "trich_lt"
                                                              ("x"
                                                               "2*(ZZ*ZZ)"
                                                               "y"
                                                               "2*j!1+1"))
                                                             (split -1)
                                                             (("1"
                                                               (assert)
                                                               (case
                                                                "forall (i:int): NOT (2*j!1<i & i < 2*j!1+1)")
                                                               (("1"
                                                                 (inst
                                                                  -
                                                                  "2*(ZZ*ZZ)")
                                                                 (assert))
                                                                ("2"
                                                                 (hide-all-but
                                                                  1)
                                                                 (skosimp)
                                                                 (assert)
                                                                 (case
                                                                  "forall (i,j:nat): i < j => i+1 <= j")
                                                                 (("1"
                                                                   (inst-cp
                                                                    -
                                                                    "2*j!1"
                                                                    "i!2")
                                                                   (inst
                                                                    -
                                                                    "i!2"
                                                                    "1+2*j!1")
                                                                   (assert))
                                                                  ("2"
                                                                   (hide-all-but
                                                                    1)
                                                                   (skosimp)
                                                                   (assert))))))
                                                              ("2"
                                                               (assert))
                                                              ("3"
                                                               (assert))))))))
                                                        ("2" (assert))))
                                                      ("2"
                                                       (assert))))))))))))))
                                          ("2" (propax))
                                          ("3" (assert))))
                                        ("2" (assert))))
                                      ("2" (assert))))
                                    ("2" (assert))))))
                                ("2"
                                 (lemma
                                  "expt_pos"
                                  ("px" "ABS" "i" "i!1"))
                                 (propax))
                                ("3"
                                 (lemma "expt_pos" ("px" "M" "i" "i!1"))
                                 (assert))))
                              ("2"
                               (expand "N" 1)
                               (expand "sq")
                               (hide-all-but (-1 1))
                               (lemma "sq_le" ("nna" "2" "nnb" "M"))
                               (expand "sq")
                               (assert))))
                            ("2" (assert))))))))
                      ("2" (assert))))
                    ("2"
                     (expand "abs")
                     (case-replace "x!1<0")
                     (("1" (assert)) ("2" (assert))))))))
                ("2"
                 (hide-all-but 1)
                 (expand "MX")
                 (expand "max")
                 (case-replace "exp(x!1)<=1")
                 (("1" (assert) (lift-if) (ground)) ("2" (assert))))))
              ("2" (assert))))
            ("2" (assert))))
          ("2" (propax))))
        ("2"
         (expand "abs")
         (case-replace "x!1<0")
         (("1" (assert)) ("2" (assert))))))
      ("2"
       (expand "max")
       (case-replace "exp(x!1) <= 1")
       (("1" (assert) (lift-if) (ground)) ("2" (assert))))))))


proof_type: f_proof
decl_type: formula
library: lnexp_fnd
theory: ln_exp_series_alt
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (expand "convergent?")
   (inst + "exp(x!1)")
   (lemma "expT_convergence" ("x" "x!1"))
   (propax))


proof_type: f_proof
decl_type: formula
library: lnexp_fnd
theory: ln_exp_series_alt
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (expand "inf_sum")
   (lemma "limit_equiv" ("s" "series(expT(x!1))" "l" "exp(x!1)"))
   (lemma "expT_convergence" ("x" "x!1"))
   (assert))


proof_type: t_proof
decl_type: tcc
library: lnexp_fnd
theory: ln_exp_series_alt
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (expand "conv_series?")
   (assert)
   (expand "convergent?")
   (inst + "ln(1+z!1)")
   (lemma "lnT_convergence" ("z" "z!1"))
   (propax))


proof_type: t_proof
decl_type: tcc
library: lnexp_fnd
theory: ln_exp_series_alt
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (assert)
   (case "x!1=0")
   (("1" (inst + "1") (assert)) ("2" (inst + "0") (assert))))


proof_type: f_proof
decl_type: formula
library: lnexp_fnd
theory: ln_exp_ineq
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skolem + "x")
   (name "z" "1+x")
   (name "foo" "z-1")
   (typepred "x")
   (replace -4)
   (replace -4 -3 rl)
   (replace -3 (1 -1 -2))
   (replace -4)
   (replace -3 (-1 -2 1) rl)
   (hide -3 -4)
   (simplify -2)
   (assert)
   (lemma "both_sides_plus_gt1" ("z" "1" "x" "z-1" "y" "-1"))
   (replace -1 -3 rl)
   (simplify -3)
   (hide -1)
   (name "F" "LAMBDA (x:posreal): x - 1 - ln(x)")
   (name "G" "LAMBDA (x:posreal): ln(x) - (x-1)/x")
   (case "FORALL (x, y: posreal), (z: real): x <= z AND z <= y IMPLIES z >= 0 AND z > 0")
   (("1"
     (case "FORALL (x: posreal): EXISTS (y: posreal): x /= y")
     (("1"
       (lemma "ln_derivable")
       (flatten -1)
       (lemma "const_derivable_fun[posreal]" ("b" "1"))
       (("1"
         (lemma "identity_derivable_fun[posreal]")
         (lemma "diff_derivable_fun[posreal]")
         (inst-cp -1 "I[posreal]" "const_fun(1)")
         (inst-cp - "I[posreal] - const_fun(1)" "ln")
         (lemma "div_derivable_fun[posreal]"
          ("f" "I[posreal]-const_fun(1)" "g" "I[posreal]"))
         (inst - "ln" "(I[posreal]-const_fun(1))/I[posreal]")
         (lemma "deriv_const_fun[posreal]" ("b" "1"))
         (expand "I")
         (expand "const_fun")
         (lemma "deriv_id_fun[posreal]")
         (lemma "deriv_diff_fun[posreal]")
         (replace -10)
         (replace -8)
         (expand "-" (-4 -5 -6 -7))
         (expand "/" (-4 -5))
         (inst-cp - "LAMBDA (x: posreal): x" "LAMBDA (x: posreal): 1")
         (inst-cp - "LAMBDA (x:posreal): x - 1" "ln")
         (lemma "deriv_div_fun[posreal]"
          ("ff" "LAMBDA (x:posreal): x-1" "gg" "LAMBDA (x:posreal): x"))
         (("1"
           (inst - "ln" "LAMBDA (x:posreal): (x-1)/x")
           (("1"
             (expand "-" (-1 -2 -3 -4))
             (expand "/")
             (expand "*")
             (replace -14)
             (replace -6)
             (replace -5)
             (simplify)
             (replace -4)
             (simplify -1)
             (replace -1)
             (simplify -2)
             (simplify -3)
             (replace -18)
             (replace -17)
             (hide-all-but (-2 -3 -8 -9 -15 -16 -17 -18 -19 -20 1))
             (assert)
             (lemma "minimum_derivative[posreal]")
             (("1"
               (inst - "F" "1" "z")
               (lemma "minimum_derivative[posreal]")
               (inst - "G" "1" "z")
               (replace -3)
               (replace -4)
               (simplify -1)
               (simplify -2)
               (replace -9 -1 rl)
               (replace -10 -2 rl)
               (simplify -1)
               (simplify -2)
               (rewrite "ln_1")
               (simplify -2)
               (split -1)
               (("1"
                 (split -2)
                 (("1" (assert))
                  ("2"
                   (hide-all-but 1)
                   (skosimp)
                   (rewrite "div_cancel1")
                   (lemma "trich_lt" ("x" "y!1" "y" "1"))
                   (split -1)
                   (("1"
                     (lemma "negreal_times_negreal_is_posreal"
                      ("nx" "y!1-1" "ny" "y!1-1"))
                     (("1"
                       (lemma "both_sides_div_pos_gt1"
                        ("x" "(y!1-1)*(y!1-1)" "y" "0" "pz" "y!1"))
                       (assert))
                      ("2" (assert))))
                    ("2" (propax))
                    ("3"
                     (lemma "posreal_times_posreal_is_posreal"
                      ("px" "y!1-1" "py" "y!1-1"))
                     (("1"
                       (lemma "both_sides_div_pos_gt1"
                        ("x" "(y!1-1)*(y!1-1)" "y" "0" "pz" "y!1"))
                       (assert))
                      ("2" (assert))))))))
                ("2"
                 (hide-all-but 1)
                 (skosimp*)
                 (rewrite "div_cancel1")
                 (lemma "div_times"
                  ("x" "y!1" "n0x" "1" "y" "1" "n0y" "y!1*y!1"))
                 (replace -1 2)
                 (simplify 2)
                 (simplify 2)
                 (lemma "div_cancel1" ("x" "1/y!1" "n0z" "y!1"))
                 (rewrite "div_div2" -1)
                 (replace -1)
                 (hide -1)
                 (lemma "trich_lt" ("x" "y!1" "y" "1"))
                 (split -1)
                 (("1"
                   (lemma "negreal_times_negreal_is_posreal"
                    ("nx" "y!1-1" "ny" "y!1-1"))
                   (("1"
                     (lemma "both_sides_div_pos_gt1"
                      ("pz" "y!1*y!1" "x" "(y!1-1)*(y!1-1)" "y" "0"))
                     (assert))
                    ("2" (assert))))
                  ("2" (propax))
                  ("3"
                   (lemma "posreal_times_posreal_is_posreal"
                    ("px" "y!1-1" "py" "y!1-1"))
                   (("1"
                     (lemma "both_sides_div_pos_gt1"
                      ("pz" "y!1*y!1" "x" "(y!1-1)*(y!1-1)" "y" "0"))
                     (assert))
                    ("2" (assert))))))))
              ("2" (propax))))
            ("2" (replace -9) (propax))))
          ("2" (propax)) ("3" (propax))))
        ("2" (propax)) ("3" (lemma "deriv_domain_posreal") (propax))))
      ("2" (skosimp*) (inst + "x!1+1") (assert))))
    ("2" (skosimp*) (assert))))


proof_type: f_proof
decl_type: formula
library: lnexp_fnd
theory: ln_exp_ineq
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (expand "abs")
   (lemma "ln_strict_increasing")
   (expand "strict_increasing?")
   (inst - "1-px!1" "1")
   (("1"
     (rewrite "ln_1")
     (assert)
     (lemma "both_sides_plus_lt1"
      ("z" "ln(1-px!1)" "x" "-ln(1 - px!1)" "y" "3 * px!1 / 2"))
     (replace -1 1 rl)
     (hide -1)
     (simplify 1)
     (assert)
     (rewrite "inverse_add" 1)
     (case "px!1<=1/3")
     (("1"
       (lemma "ln_ineq1" ("xgtm1" "-px!1"))
       (flatten)
       (case "px!1/(1-px!1) <= 3*px!1/2")
       (("1" (assert))
        ("2"
         (hide -1 -2 -4 -5 2)
         (lemma "both_sides_times_pos_le1"
          ("pz" "px!1" "x" "1/(1-px!1)" "y" "3/2"))
         (replace -1 1)
         (hide -1)
         (rewrite "div_mult_pos_le1" 1)
         (lemma "both_sides_times_neg_le1" ("nz" "-3/2"))
         (inst - "1/3" "px!1")
         (assert))))
      ("2"
       (case "1/3<px!1")
       (("1"
         (hide 1)
         (name "G" "lambda (x:{x:posreal| 1/3<x&x<1}): ln(1-x) + 3/2*x")
         (case "G(5828/10000)>0")
         (("1"
           (case "strict_decreasing?(G)")
           (("1"
             (expand "strict_decreasing?")
             (expand "<=" -6)
             (split -6)
             (("1"
               (inst - "px!1" "5828/10000")
               (assert)
               (expand "G" -2 2)
               (assert))
              ("2" (replace -1) (expand "G" -3) (assert))))
            ("2"
             (hide -1 2 -4)
             (lemma
              "identity_derivable_fun[{x: posreal | 1 / 3 < x & x < 1}]")
             (("1"
               (lemma "deriv_id_fun[{x: posreal | 1 / 3 < x & x < 1}]")
               (lemma
                "const_derivable_fun[{x: posreal | 1 / 3 < x & x < 1}]"
                ("b" "1"))
               (lemma "deriv_const_fun[{x: posreal | 1 / 3 < x & x < 1}]"
                ("b" "1"))
               (expand "I")
               (lemma
                "diff_derivable_fun[{x: posreal | 1 / 3 < x & x < 1}]"
                ("f1"
                 "LAMBDA (x: {x: posreal | 1 / 3 < x & x < 1}): 1"
                 "f2"
                 "LAMBDA (x: {x: posreal | 1 / 3 < x & x < 1}): x"))
               (assert)
               (expand "-")
               (lemma "deriv_diff_fun[{x: posreal | 1 / 3 < x & x < 1}]"
                ("ff1"
                 "LAMBDA (x: {x: posreal | 1 / 3 < x & x < 1}): 1"
                 "ff2"
                 "LAMBDA (x: {x: posreal | 1 / 3 < x & x < 1}): x"))
               (replace -5)
               (replace -3)
               (expand "-")
               (lemma
                "scal_derivable_fun[{x: posreal | 1 / 3 < x & x < 1}]"
                ("f"
                 "LAMBDA (x: {x: posreal | 1 / 3 < x & x < 1}): x"
                 "b"
                 "3/2"))
               (assert)
               (lemma "deriv_scal_fun[{x: posreal | 1 / 3 < x & x < 1}]"
                ("ff"
                 "LAMBDA (x: {x: posreal | 1 / 3 < x & x < 1}): x"
                 "b"
                 "3/2"))
               (replace -7)
               (expand "*")
               (lemma "ln_derivable")
               (flatten)
               (lemma
                "composition_derivable_fun[{x: posreal | 1 / 3 < x & x < 1},posreal]"
                ("f"
                 "LAMBDA (x: {x: posreal | 1 / 3 < x & x < 1}): 1 - x"
                 "g"
                 "ln"))
               (assert)
               (expand "o")
               (lemma
                "deriv_comp_fun[{x: posreal | 1 / 3 < x & x < 1},posreal]"
                ("ff"
                 "LAMBDA (x: {x: posreal | 1 / 3 < x & x < 1}): 1 - x"
                 "gg"
                 "ln"))
               (replace -4)
               (replace -7)
               (expand "o")
               (expand "*")
               (lemma
                "sum_derivable_fun[{x: posreal | 1 / 3 < x & x < 1}]"
                ("f1"
                 "LAMBDA (x: {x: posreal | 1 / 3 < x & x < 1}): ln(1 - x)"
                 "f2"
                 "LAMBDA (x: {x: posreal | 1 / 3 < x & x < 1}): 3 / 2 * x"))
               (assert)
               (expand "+")
               (lemma "deriv_sum_fun[{x: posreal | 1 / 3 < x & x < 1}]"
                ("ff1"
                 "LAMBDA (x: {x: posreal | 1 / 3 < x & x < 1}): ln(1 - x)"
                 "ff2"
                 "LAMBDA (x: {x: posreal | 1 / 3 < x & x < 1}): 3 / 2 * x"))
               (replace -3)
               (replace -7)
               (expand "+")
               (replace -15)
               (lemma
                "negative_derivative[{x: posreal | 1 / 3 < x & x < 1}]"
                ("g" "G"))
               (("1"
                 (split -1)
                 (("1" (propax))
                  ("2"
                   (hide 2)
                   (skosimp)
                   (typepred "x!1")
                   (expand "deriv" -5)
                   (lemma "extensionality_postulate"
                    ("f"
                     "(LAMBDA (x: {x: posreal | 1 / 3 < x & x < 1}): deriv(G, x))"
                     "g"
                     "(LAMBDA (x_1: {x: posreal | 1 / 3 < x & x < 1}):
                                                                                                                                3 / 2 + (1 / (1 - x_1)) * -1)"))
                   (("1"
                     (flatten)
                     (hide -1)
                     (split -1)
                     (("1"
                       (inst -1 "x!1")
                       (replace -1)
                       (lemma "div_mult_pos_lt2"
                        ("z" "1" "x" "3/2" "py" "1-x!1"))
                       (assert))
                      ("2" (replaces -5) (decompose-equality))))
                    ("2"
                     (skosimp*)
                     (expand "not_one_element?")
                     (skosimp*)
                     (inst-cp + "2/3")
                     (inst-cp + "3/4")
                     (flatten)
                     (assert))
                    ("3"
                     (hide-all-but 1)
                     (lemma "deriv_domain_open")
                     (inst - "1/3" "1")
                     (expand "deriv_domain?")
                     (skosimp*)
                     (inst - "e!1" "x!3")
                     (skosimp*)
                     (inst + "y!1"))
                    ("4" (expand "derivable?" -6) (propax))))))
                ("2"
                 (assert)
                 (expand "connected?")
                 (skosimp*)
                 (assert))))
              ("2"
               (expand "not_one_element?")
               (skosimp*)
               (inst-cp + "3/4")
               (inst-cp + "2/3")
               (assert))
              ("3"
               (assert)
               (lemma "deriv_domain_open")
               (inst - "1/3" "1")
               (assert)
               (expand "deriv_domain?")
               (skosimp*)
               (inst - "e!1" "x!1")
               (skosimp*)
               (inst + "y!1"))))))
          ("2"
           (hide 2 -3 -2 -4)
           (replace -1 1 rl)
           (assert)
           (hide -1)
           (lemma "ln_estimate_bnd")
           (inst - "19" "-5828/10000")
           (assert)
           (expand "abs" -1 2)
           (name-replace "DRL1" "ln(1-5828/10000)")
           (lemma "expt_times" ("n0x" "5828/10000" "i" "4" "j" "5"))
           (replace -1)
           (case "(5828 / 10000) ^ 4 = 1153660896461056 / 10000000000000000")
           (("1"
             (replace -1)
             (hide -2)
             (case-replace
              "(1153660896461056 / 10000000000000000) ^ 5 /
                                                                                  (20 + 20 * (-5828 / 10000)) = (1153660896461056 / 10000000000000000) ^ 5 *10000/83440")
             (("1"
               (hide -1)
               (case-replace
                "(1153660896461056 / 10000000000000000) ^ 5 = 2043576321503877532268812309827579231198161568314157086599156544970504011776/100000000000000000000000000000000000000000000000000000000000000000000000000000000")
               (("1"
                 (hide -1)
                 (hide -1)
                 (name "DRL2" "ln_estimate(-5828 / 10000, 19)")
                 (replace -1)
                 (case-replace
                  "2043576321503877532268812309827579231198161568314157086599156544970504011776
                                                                                                          /
                                                                                                          100000000000000000000000000000000000000000000000000000000000000000000000000000000
                                                                                                          * 10000
                                                                                                          / 83440 = 2043576321503877532268812309827579231198161568314157086599156544970504011776
                                                                                                          /834400000000000000000000000000000000000000000000000000000000000000000000000000000")
                 (("1"
                   (hide -1)
                   (expand "ln_estimate")
                   (expand "sigma")
                   (expand "sigma")
                   (expand "sigma")
                   (expand "sigma")
                   (expand "sigma")
                   (expand "sigma")
                   (expand "sigma")
                   (expand "sigma")
                   (expand "sigma")
                   (expand "sigma")
                   (expand "sigma")
                   (expand "sigma")
                   (expand "sigma")
                   (expand "sigma")
                   (expand "sigma")
                   (expand "sigma")
                   (expand "sigma")
                   (expand "sigma")
                   (expand "sigma")
                   (expand "sigma")
                   (case-replace "-(-5828 / 10000) = 5828/10000")
                   (("1"
                     (hide -1)
                     (lemma "expt_times" ("n0x" "5828/10000"))
                     (lemma "expt_plus" ("n0x" "5828/10000"))
                     (rewrite "expt_x1" -3)
                     (case "(5828 / 10000) ^ 2 = 33965584/100000000")
                     (("1"
                       (replace -1)
                       (inst-cp - "1" "2")
                       (lemma "expt_x1")
                       (inst - "5828/10000")
                       (replace -1)
                       (replace -2)
                       (replace -4)
                       (case-replace
                        "5828 / 10000 * (33965584 / 100000000) = 197951423552/1000000000000")
                       (("1"
                         (hide -1)
                         (inst-cp - "2" "2")
                         (replace -2)
                         (case-replace
                          "33965584 / 100000000 * (33965584 / 100000000) = 1153660896461056 / 10000000000000000")
                         (("1"
                           (hide -1)
                           (replace -4)
                           (inst-cp - "2" "3")
                           (replace -2)
                           (replace -6)
                           (case-replace
                            "33965584 / 100000000 * (197951423552 / 1000000000000) = 6723535704575034368/100000000000000000000")
                           (("1"
                             (replace -5)
                             (hide -1)
                             (inst-cp - "3" "3")
                             (replace -7)
                             (case-replace
                              "197951423552 / 1000000000000 * (197951423552 / 1000000000000) = 39184766086263300296704/1000000000000000000000000")
                             (("1"
                               (hide -1)
                               (replace -4)
                               (simplify -4)
                               (simplify -5)
                               (simplify -6)
                               (simplify -7)
                               (inst-cp - "3" "4")
                               (replace -8)
                               (replace -7)
                               (simplify -4)
                               (replace -4)
                               (hide -9)
                               (inst-cp - "4" "4")
                               (replace -8)
                               (replace -4)
                               (inst-cp - "4" "5")
                               (replace -8)
                               (replace -9)
                               (replace -4)
                               (inst-cp - "5" "5")
                               (replace -9)
                               (replace -4)
                               (inst-cp - "5" "6")
                               (replace -9)
                               (replace -10)
                               (replace -4)
                               (inst-cp - "6" "6")
                               (replace -10)
                               (replace -4)
                               (case-replace
                                "(197951423552 / 1000000000000 *
                                                                                                                                                                                                (1153660896461056 / 10000000000000000)) = 228368816750742514129190912/10000000000000000000000000000")
                               (("1"
                                 (hide -1)
                                 (inst-cp - "6" "7")
                                 (replace -10)
                                 (replace -11)
                                 (replace -4)
                                 (inst-cp - "7" "7")
                                 (replace -11)
                                 (replace -4)
                                 (inst-cp - "7" "8")
                                 (replace -12)
                                 (replace -11)
                                 (replace -4)
                                 (inst-cp - "8" "8")
                                 (replace -12)
                                 (replace -4)
                                 (inst-cp - "8" "9")
                                 (replace -12)
                                 (replace -13)
                                 (replace -4)
                                 (inst-cp - "9" "9")
                                 (replace -13)
                                 (replace -4)
                                 (inst - "9" "10")
                                 (replace -12)
                                 (replace -13)
                                 (replace -3)
                                 (hide-all-but (-20 -21 1))
                                 (expand "abs" -2)
                                 (assert))
                                ("2" (assert))))
                              ("2" (assert))))
                            ("2" (assert))))
                          ("2" (assert))))
                        ("2" (assert))))
                      ("2"
                       (expand "^" 1)
                       (expand "expt")
                       (expand "expt")
                       (expand "expt")
                       (propax))))
                    ("2" (assert))))
                  ("2" (assert))))
                ("2"
                 (assert)
                 (hide-all-but 1)
                 (expand "^")
                 (expand "expt")
                 (expand "expt")
                 (expand "expt")
                 (expand "expt")
                 (expand "expt")
                 (expand "expt")
                 (propax))))
              ("2" (assert))))
            ("2" (hide-all-but 1) (assert) (grind))))))
        ("2" (assert))))))
    ("2" (assert))))


proof_type: f_proof
decl_type: formula
library: lnexp_fnd
theory: expt
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (lemma "hathat_lt_cross")
   (lemma "hathat_gt_cross")
   (inst -1 b a 1/px)
   (inst -2 b a 1/px)
   (assert))


proof_type: f_proof
decl_type: formula
library: lnexp_fnd
theory: expt
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (expand "^^")
   (lemma "composition_cont_fun[real,real]")
   (inst - "(LAMBDA x: x * ln(a!1))" "exp")
   (expand "o ")
   (assert)
   (hide 2)
   (prop)
   (("1"
     (lemma "x_to_n_continuous[real]")
     (inst - "1")
     (expand "^")
     (expand "expt")
     (expand "expt")
     (lemma "scal_continuous[real]")
     (inst?)
     (expand "continuous?" 1)
     (skosimp*)
     (inst - "ln(a!1)" "x0!1")
     (assert)
     (expand "*")
     (hide 2)
     (expand "continuous?" -1)
     (inst?))
    ("2" (lemma "exp_continuous") (propax))))


proof_type: f_proof
decl_type: formula
library: lnexp_fnd
theory: convergence_special
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (expand "convergence")
   (skosimp*)
   (inst + "ceiling(1/epsilon!1)")
   (skosimp*)
   (grind)
   (cross-mult 1)
   (assert)
   (typepred "ceiling(1 / epsilon!1)")
   (cross-mult -1)
   (name-replace "C1dn" "ceiling(1 / epsilon!1)")
   (mult-by -4 "epsilon!1")
   (assert))


proof_type: f_proof
decl_type: formula
library: lnexp_fnd
theory: convergence_special
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (case-replace "convergence(LAMBDA n: 1/(n+1)*ln(px!1), 0)")
   (("1"
     (lemma "convergence_fun_of[real]")
     (("1"
       (assert)
       (inst - "0" "(LAMBDA n: 1 / (n + 1) * ln(px!1))" "exp")
       (expand "^^")
       (assert)
       (lemma "exp_continuous")
       (expand "continuous?" -1)
       (inst?))
      ("2" (hide -1 2) (skosimp*) (inst + "x!1+1") (assert))))
    ("2"
     (hide 2)
     (lemma "conv_1_div_n")
     (lemma "cnv_seq_scal")
     (inst?)
     (inst - "ln(px!1)")
     (assert)
     (expand "*")
     (assert))))


proof_type: f_proof
decl_type: formula
library: lnexp_fnd
theory: convergence_special
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (expand "convergence")
   (skosimp*)
   (lemma "conv_x_to_1_div_n")
   (inst -1 "epsilon!1")
   (case "(EXISTS (k: posnat): abs(x!1) < epsilon!1^^(1/k))")
   (("1"
     (skosimp*)
     (lemma "hathat_gt_cross")
     (case-replace "x!1 = 0")
     (("1"
       (expand "^")
       (inst + "100")
       (skosimp*)
       (expand "expt")
       (assert)
       (rewrite "abs_0")
       (assert))
      ("2"
       (lemma "abs_eq_0")
       (inst?)
       (assert)
       (inst - "epsilon!1" "abs(x!1)" "k!1")
       (assert)
       (inst + "k!1")
       (skosimp*)
       (lemma "hathat_nat")
       (inst?)
       (replace -1)
       (hide -1)
       (rewrite "abs_expt" :dir rl)
       (case "abs(x!1) ^ i!1 <= abs(x!1) ^ k!1")
       (("1" (assert))
        ("2"
         (hide 4)
         (hide-all-but (-4 -5 1))
         (lemma "both_sides_expt_lt1_le")
         (inst?)
         (assert))))))
    ("2"
     (hide 2)
     (expand "convergence")
     (inst - "1-abs(x!1)")
     (("1"
       (skosimp*)
       (inst + "n!1+1")
       (inst - "n!1")
       (assert)
       (grind :exclude "^^"))
      ("2" (assert))))))


proof_type: f_proof
decl_type: formula
library: lnexp_fnd
theory: convergence_special
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (induct "n")
   (("1" (grind))
    ("2"
     (skosimp*)
     (expand "^")
     (expand "expt" 1)
     (inst?)
     (assert)
     (expand "abs" 1 1)
     (lift-if)
     (ground)
     (("1"
       (rewrite "expt_of_abs")
       (name-replace "EE" "expt(x!1, j!1)")
       (grind)
       (case-replace "-x!1 >= x!1")
       (("1" (mult-ineq -1 -3)) ("2" (assert))))
      ("2" (expand "abs") (assert))))))


proof_type: f_proof
decl_type: formula
library: lnexp_fnd
theory: convergence_special
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (stop-rewrite "abs_nat")
   (skosimp*)
   (case "EXISTS (k: nat): k > abs(x!1)")
   (("1"
     (skosimp*)
     (case "convergence(LAMBDA n: abs(x!1) ^ n / factorial(n), 0)")
     (("1"
       (lemma "abs_convergence")
       (inst - "(LAMBDA n: x!1 ^ n / factorial(n))")
       (assert)
       (expand "abs" 1)
       (case-replace
        "(LAMBDA (x: nat): abs(x!1 ^ x / factorial(x))) =
                                       (LAMBDA n: abs(x!1) ^ n / factorial(n))")
       (hide -1 2 3)
       (apply-extensionality 1 :hide? t)
       (("1"
         (real-props)
         (expand "abs" 1 3)
         (lemma "abs_expt")
         (inst?)
         (("1" (assert))
          ("2"
           (assert)
           (flatten)
           (replace -1)
           (expand "^")
           (expand "expt")
           (assert)
           (lift-if)
           (ground)
           (("1" (grind)) ("2" (assert) (rewrite "abs_0") (assert))))))
        ("2"
         (skosimp*)
         (real-props)
         (hide -1)
         (rewrite "expt_abs_gt")
         (assert)
         (rewrite "abs_expt")
         (("1" (assert)) ("2" (flatten) (replace -1) (assert))))))
      ("2"
       (hide 2)
       (case "convergence(LAMBDA n: (abs(x!1)/k!1) ^ n,  0)")
       (("1"
         (lemma "squeezing_abs_0_gen")
         (inst - "(LAMBDA n: abs(x!1) ^ n / factorial(n))"
          "(LAMBDA n: (abs(x!1) / k!1) ^ n * k!1^k!1/factorial(k!1))")
         (("1"
           (assert)
           (lemma "cnv_seq_scal")
           (inst - "k!1 ^ k!1 / factorial(k!1)" "0"
            "(LAMBDA n: (abs(x!1) / k!1) ^ n)")
           (assert)
           (expand "*")
           (assert)
           (inst + "k!1")
           (skosimp*)
           (hide -1 2)
           (rewrite "abs_div")
           (expand "abs" 1 1)
           (expand "abs" 1 2)
           (lemma "factorial_ge")
           (inst - "k!1" "n!1")
           (assert)
           (cross-mult 1)
           (case-replace "x!1 = 0")
           (("1" (rewrite "abs_0") (expand "^") (expand "expt") (assert))
            ("2"
             (mult-by -1 "(abs(x!1) / k!1) ^ n!1 * k!1 ^ k!1")
             (("1"
               (case-replace
                "k!1 ^ (n!1 - k!1) * factorial(k!1) *
                                                                ((abs(x!1) / k!1) ^ n!1 * k!1 ^ k!1) = abs(x!1) ^ n!1 * factorial(k!1) ")
               (("1" (assert))
                ("2"
                 (hide -1 -3 3)
                 (rewrite "div_expt")
                 (rewrite "expt_div" :dir rl)
                 (assert))))
              ("2"
               (hide 3)
               (lemma "expt_pos")
               (inst?)
               (("1" (assert) (mult-by -1 "k!1 ^ k!1") (assert))
                ("2"
                 (prop)
                 (("1" (cross-mult 1) (assert))
                  ("2"
                   (cross-mult 1)
                   (lemma "abs_eq_0")
                   (inst?)
                   (assert))))))))))
          ("2" (assert))))
        ("2"
         (hide 2)
         (lemma "conv_x_to_n")
         (inst?)
         (("1"
           (assert)
           (hide 2)
           (expand "abs" 1 1)
           (assert)
           (lift-if)
           (ground)
           (("1" (cross-mult -1) (assert))
            ("2" (cross-mult 2) (assert))))
          ("2" (flatten) (assert))))
        ("3" (assert))))))
    ("2" (inst + "floor(abs(x!1)+1)") (assert))))


proof_type: f_proof
decl_type: formula
library: lnexp_fnd
theory: ln_series
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (expand "not_one_element?")
   (skosimp*)
   (inst-cp + "1/2")
   (("1" (inst + "1/4") (("1" (assert)) ("2" (grind)))) ("2" (grind))))


proof_type: f_proof
decl_type: formula
library: lnexp_fnd
theory: ln_series
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (case "FORALL (n: nat): derivable_n_times?[posreal](ln, n) & nderiv[posreal](n,ln) = IF n = 0 THEN ln ELSE (LAMBDA (x:posreal): -factorial(n-1)/(-x)^n) ENDIF")
   (("1" (skosimp*) (inst - "n!1") (flatten))
    ("2"
     (hide 2)
     (induct "n")
     (("1" (expand "derivable_n_times?") (propax))
      ("2" (expand "nderiv") (propax))
      ("3"
       (skosimp*)
       (case-replace "j!1=0")
       (("1"
         (lemma "ln_derivable")
         (flatten -1)
         (expand "derivable_n_times?")
         (expand "derivable_n_times?")
         (expand "nderiv" 1)
         (expand "nderiv" 1)
         (lemma "extensionality"
          ("f"
           "deriv(ln)"
           "g"
           "(LAMBDA (x: posreal): -factorial(1) / (-x) ^ 1)"))
         (("1"
           (split -1)
           (("1" (assert))
            ("2"
             (hide 2)
             (replace -2)
             (skosimp*)
             (expand "factorial")
             (expand "factorial")
             (rewrite "expt_x1")
             (assert))))
          ("2" (hide 2) (skosimp*) (inst + "x!1+1") (assert))
          ("3" (assert))))
        ("2"
         (assert)
         (lemma "ln_derivable")
         (flatten -1)
         (lemma "identity_derivable_fun[posreal]")
         (("1"
           (lemma "const_derivable_fun[posreal]" ("b" "-factorial(j!1)"))
           (lemma "deriv_id_fun[posreal]")
           (lemma "deriv_const_fun[posreal]" ("b" "-factorial(j!1)"))
           (expand "I")
           (expand "const_fun")
           (lemma "neg_derivable_fun[posreal]"
            ("f" "LAMBDA (x: posreal): x"))
           (assert)
           (expand "-")
           (lemma "deriv_neg_fun[posreal]"
            ("ff" "LAMBDA (x: posreal): x"))
           (replace -4)
           (expand "-" -1)
           (lemma "inv_derivable_fun[posreal]"
            ("g" "LAMBDA (x_1: posreal): -x_1"))
           (assert)
           (expand "/")
           (lemma "deriv_inv_fun[posreal]"
            ("gg" "LAMBDA (x_1: posreal): -x_1"))
           (replace -3)
           (expand "/")
           (expand "*")
           (expand "-" -1)
           (lemma "extensionality"
            ("f"
             "LAMBDA (x: posreal): --1 / (-x * -x)"
             "g"
             "LAMBDA (x: posreal): 1 / (x * x)"))
           (split -1)
           (("1"
             (replace -1)
             (hide -1)
             (lemma "deriv_exp_fun[posreal]"
              ("f" "LAMBDA (x: posreal): 1 / -x" "n" "j!1"))
             (assert)
             (flatten -1)
             (lemma "scal_derivable_fun[posreal]"
              ("f"
               "(LAMBDA (x: posreal): 1 / -x) ^ j!1"
               "b"
               "-factorial(j!1 - 1)"))
             (replace -2)
             (lemma "deriv_scal_fun[posreal]"
              ("ff"
               "(LAMBDA (x: posreal): 1 / -x) ^ j!1"
               "b"
               "-factorial(j!1 - 1)"))
             (replace -4 -1)
             (replace -5)
             (lemma "extensionality"
              ("f"
               "-factorial(j!1 - 1) * (LAMBDA (x: posreal): 1 / -x) ^ j!1"
               "g"
               "LAMBDA (x: posreal): -factorial(j!1 - 1) / (-x) ^ j!1"))
             (split -1)
             (("1"
               (replace -1 * rl)
               (replace -17 * rl)
               (lemma "extensionality"
                ("f"
                 "-factorial(j!1 - 1) *
                                                                          (j!1 * (LAMBDA (x: posreal): 1 / -x) ^ (j!1 - 1) *
                                                                            (LAMBDA (x: posreal): 1 / (x * x)))"
                 "g"
                 "LAMBDA (x: posreal): -factorial(j!1) / (-x) ^ (1 + j!1)"))
               (split -1)
               (("1"
                 (replace -1)
                 (lemma "nderiv_derivable_eqv[posreal]"
                  ("f" "ln" "n" "j!1"))
                 (replace -18 -1)
                 (replace -5 -1)
                 (flatten -1)
                 (lemma "nderiv_derivable_aux[posreal]"
                  ("f" "ln" "n" "j!1"))
                 (replace -2)
                 (replace -5 -1)
                 (replace -1 2)
                 (propax))
                ("2"
                 (hide 3)
                 (skosimp*)
                 (expand "factorial" 1 2)
                 (expand "*" 1)
                 (expand "^" 1 1)
                 (rewrite "div_expt" 1)
                 (hide-all-but (1 2))
                 (lemma "expt_plus" ("n0x" "-x!1" "i" "j!1-1" "j" "2"))
                 (replace -1)
                 (case "(-x!1) ^ 2=x!1*x!1")
                 (("1" (replace -1) (assert))
                  ("2" (hide-all-but 1) (grind))))))
              ("2"
               (hide 3)
               (skosimp*)
               (expand "*" 1)
               (expand "^" 1 1)
               (rewrite "div_expt" 1)
               (assert))))
            ("2" (hide-all-but 1) (grind))))
          ("2" (skosimp*) (assert) (hide 3) (inst + "x!1+1") (assert))
          ("3" (assert) (lemma "deriv_domain_posreal") (propax))))))
      ("4" (skosimp*) (assert)) ("5" (hide 1) (skosimp*) (assert))))
    ("3" (hide 2) (skosimp*) (assert))))


proof_type: f_proof
decl_type: formula
library: lnexp_fnd
theory: ln_series
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (induct "n")
   (("1" (expand "nderiv") (propax))
    ("2"
     (skosimp*)
     (lemma "nderiv_ln" ("n" "j!1+1"))
     (lemma "nderiv_derivable_aux[posreal]" ("f" "ln" "n" "j!1"))
     (replace -2)
     (replace -1)
     (replace -3 1)
     (hide-all-but 1)
     (case-replace "j!1=0")
     (("1" (lemma "ln_derivable") (flatten -1) (replace -2) (assert))
      ("2"
       (assert)
       (lemma "identity_derivable_fun[posreal]")
       (("1"
         (lemma "deriv_id_fun[posreal]")
         (expand "I")
         (expand "const_fun")
         (lemma "neg_derivable_fun[posreal]"
          ("f" "LAMBDA (x: posreal): x"))
         (assert)
         (expand "-")
         (lemma "deriv_neg_fun[posreal]" ("ff" "LAMBDA (x: posreal): x"))
         (replace -3)
         (expand "-" -1)
         (lemma "inv_derivable_fun[posreal]"
          ("g" "LAMBDA (x_1: posreal): -x_1"))
         (replace -3)
         (expand "/")
         (lemma "deriv_inv_fun[posreal]"
          ("gg" "LAMBDA (x_1: posreal): -x_1"))
         (("1"
           (replace -3)
           (expand "/" -1)
           (expand "*" -1)
           (expand "-" -1)
           (lemma "deriv_exp_fun[posreal]"
            ("f" "LAMBDA (x: posreal): 1 / -x" "n" "j!1"))
           (assert)
           (flatten -1)
           (replace -3)
           (lemma "scal_derivable_fun[posreal]"
            ("f"
             "(LAMBDA (x: posreal): 1 / -x) ^ j!1"
             "b"
             "-factorial(j!1 - 1)"))
           (replace -2)
           (lemma "deriv_scal_fun[posreal]"
            ("ff"
             "(LAMBDA (x: posreal): 1 / -x) ^ j!1"
             "b"
             "-factorial(j!1 - 1)"))
           (replace -4)
           (lemma "extensionality"
            ("f"
             "-factorial(j!1 - 1) * (LAMBDA (x: posreal): 1 / -x) ^ j!1"
             "g"
             "LAMBDA (x: posreal): -factorial(j!1 - 1) / (-x) ^ j!1"))
           (split -1)
           (("1"
             (replace -1)
             (lemma "extensionality"
              ("f"
               "-factorial(j!1 - 1) *
                                                                                 (j!1 * (LAMBDA (x: posreal): 1 / -x) ^ (j!1 - 1) *
                                                                                   (LAMBDA (x: posreal): --1 / (-x * -x)))"
               "g"
               "LAMBDA (x: posreal): -factorial(j!1) / (-x) ^ (1 + j!1)"))
             (split -1)
             (("1" (replace -1) (propax))
              ("2"
               (hide-all-but (1 2))
               (skosimp*)
               (expand "factorial" 1 2)
               (expand "*")
               (expand "^" 1 1)
               (rewrite "div_expt" 1)
               (lemma "expt_plus" ("n0x" "-x!1" "i" "j!1-1" "j" "2"))
               (replace -1)
               (case-replace "(-x!1) ^ 2 = -x!1 * -x!1")
               (("1" (assert)) ("2" (hide-all-but 1) (grind))))))
            ("2"
             (hide-all-but (1 2))
             (skosimp*)
             (expand "*")
             (expand "^" 1 1)
             (rewrite "div_expt" 1)
             (assert))))
          ("2" (propax))))
        ("2" (skosimp*) (inst + "x!1+1") (assert))
        ("3" (assert) (lemma "deriv_domain_posreal") (propax))))))
    ("3" (hide 2) (skosimp*) (assert))
    ("4" (skosimp*) (hide 2) (lemma "nderiv_ln") (inst?))))


proof_type: f_proof
decl_type: formula
library: lnexp_fnd
theory: ln_series
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (lemma "ln_taylors")
   (inst?)
   (skeep -1)
   (case "abs((xp / -c) ^ (n + 1) / (n + 1)) < xp ^ (n + 1) / (n + 1)")
   (("1" (grind :exclude ("^" "ln" "ln_estimate")))
    ("2"
     (hide-all-but 1)
     (typepred "c")
     (case "NOT c > 1")
     (("1" (assert))
      ("2"
       (rewrite "abs_div")
       (case "abs(1+n) = 1+n")
       (("1"
         (replaces -1)
         (expand "^")
         (rewrite "abs_expt")
         (rewrite "abs_div")
         (rewrite "abs_neg")
         (lemma "div_expt")
         (inst - "1+n" _ _)
         (expand "^" -1)
         (rewrite -1)
         (expand "abs" +)
         (assert)
         (case "expt(c,1+n) > 1")
         (("1"
           (case "1/expt(c,1+n) < 1")
           (("1" (mult-by -1 "expt(xp,1+n)/(1+n)") (assert))
            ("2"
             (cross-mult 1)
             (case "FORALL (nn:nat): expt(c,1+nn) > 1")
             (("1" (inst?) (assert))
              ("2"
               (induct "nn")
               (("1" (expand "expt" 1) (expand "expt" 1) (propax))
                ("2"
                 (skeep)
                 (expand "expt" +)
                 (mult-by -4 "expt(c,1+j)")
                 (assert))))))))
          ("2"
           (case "FORALL (nn:nat): expt(c,1+nn) > 1")
           (("1" (inst?))
            ("2"
             (induct "nn")
             (("1" (expand "expt" +) (expand "expt" +) (propax))
              ("2"
               (skeep)
               (expand "expt" +)
               (mult-by -3 "expt(c,1+j)")
               (assert))))))))
        ("2" (hide-all-but 1) (grind))))))))


proof_type: f_proof
decl_type: formula
library: lnexp_fnd
theory: ln_series
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (case "FORALL (m:nat): derivable?[real](LAMBDA (pr: real): ln_estimate(pr, m))")
   (("1"
     (label "derivtt" -1)
     (copy -1)
     (label "derivtt2" -1)
     (hide -1)
     (skeep)
     (lemma "nonneg_derivative[real]")
     (("1"
       (inst-cp -2 "2*n+1")
       (inst - "LAMBDA (pr:real): ln_estimate(pr,2*n+1)")
       (("1"
         (assert)
         (ground)
         (("1" (expand "increasing?") (inst - "px" "py") (assert))
          ("2"
           (hide (2 3))
           (case "FORALL (m:nat): FORALL (x: real):
                                                                                                                                                  deriv(LAMBDA (pr: real): ln_estimate(pr, m), x) = sigma(0,m-1,(LAMBDA (nn:nat): (-x)^nn))")
           (("1"
             (inst - "2*n+1")
             (skeep)
             (inst - "x")
             (replaces -1)
             (assert)
             (case "x = 0 OR x = -1")
             (("1"
               (split -)
               (("1"
                 (replaces -1)
                 (rewrite "sigma_ge_0")
                 (hide-all-but 1)
                 (expand "^")
                 (expand "expt")
                 (grind))
                ("2" (replaces -1) (rewrite "sigma_ge_0"))))
              ("2"
               (label "xtp" 1)
               (hide "xtp")
               (case "FORALL (kk:nat): sigma(0, kk - 1, LAMBDA (nn: nat): (-x) ^ nn) = (1-(-x)^kk)/(1+x)")
               (("1"
                 (inst - "2*n+1")
                 (assert)
                 (replace -1)
                 (lemma "mult_expt")
                 (inst - "1+2*n" "-1" "x")
                 (("1"
                   (assert)
                   (replace -1)
                   (hide -1)
                   (case "FORALL (m:nat): (-1)^(1+2*m) = -1")
                   (("1"
                     (inst?)
                     (replaces -1)
                     (assert)
                     (cross-mult 1)
                     (ground)
                     (("1"
                       (case "x>=0")
                       (("1"
                         (case "EXISTS (nnr:nnreal): x=nnr")
                         (("1" (skeep -1) (replaces -1) (assert))
                          ("2" (inst + "x"))))
                        ("2"
                         (case "FORALL (kk:nat): abs(x^(kk+1))<1")
                         (("1"
                           (inst - "2*n")
                           (hide-all-but (-1 +))
                           (grind :exclude "^"))
                          ("2"
                           (hide-all-but (-1 +))
                           (induct "kk")
                           (("1" (hide 3) (grind))
                            ("2"
                             (skeep)
                             (lemma "abs_expt")
                             (expand "^")
                             (rewrite -1)
                             (rewrite -1)
                             (expand "expt" +)
                             (case "abs(x) < 1")
                             (("1"
                               (mult-by -1 "expt(abs(x),1+j)")
                               (assert))
                              ("2" (grind :exclude "^"))))))))))
                      ("2"
                       (lemma "both_sides_expt_pos_ge_aux")
                       (inst - "2*n" "-x" "1")
                       (assert)
                       (case "FORALL (nn:nat): expt(-x,1+2*nn) = - (x^(1+2*nn)) AND expt(1,1+2*nn) = 1")
                       (("1" (inst - "n") (ground))
                        ("2"
                         (hide-all-but 1)
                         (induct "nn")
                         (("1" (grind)) ("2" (grind))
                          ("3"
                           (skeep)
                           (split)
                           (("1"
                             (expand "^")
                             (expand "expt" +)
                             (expand "expt" +)
                             (assert))
                            ("2"
                             (assert)
                             (expand "expt" +)
                             (expand "expt" +)
                             (propax))))))))))
                    ("2"
                     (hide-all-but 1)
                     (induct "m")
                     (("1" (grind))
                      ("2"
                       (skeep)
                       (expand "^")
                       (expand "expt" +)
                       (expand "expt" +)
                       (assert))))))
                  ("2" (assert) (flatten) (replaces -1) (assert))))
                ("2"
                 (hide-all-but 1)
                 (induct "kk")
                 (("1" (grind))
                  ("2"
                   (skeep)
                   (assert)
                   (expand "sigma" +)
                   (replaces -1)
                   (assert)
                   (expand "^")
                   (expand "expt" + 3)
                   (assert)
                   (name "yy" "expt(-x,j)")
                   (replaces -1)
                   (case "yy = (-(1-yy)+(1-(-x)*yy))/(1+x)")
                   (("1" (assert)) ("2" (hide 2) (cross-mult 1))))
                  ("3" (reveal "xtp") (ground))
                  ("4" (hide 2) (skeep) (assert))))
                ("3" (reveal "xtp") (ground))))))
            ("2"
             (induct "m")
             (("1"
               (hide 2)
               (skeep)
               (assert)
               (lemma "deriv_const[real]")
               (expand "ln_estimate" +)
               (expand "sigma" +)
               (expand "sigma" +)
               (expand "const_fun")
               (rewrite -1))
              ("2"
               (hide 2)
               (skeep)
               (case "j = 0")
               (("1"
                 (replaces -1)
                 (assert)
                 (skeep)
                 (expand "ln_estimate" +)
                 (expand "sigma" +)
                 (expand "sigma" +)
                 (expand "sigma" +)
                 (expand "^")
                 (expand "expt" +)
                 (expand "expt" +)
                 (assert)
                 (lemma "deriv_identity[real]")
                 (expand "I")
                 (rewrite -1))
                ("2"
                 (assert)
                 (label "jpos" 1)
                 (hide 1)
                 (skeep)
                 (inst - "x")
                 (lemma "deriv_sum[real]")
                 (inst - "LAMBDA (pr: real): ln_estimate(pr, j)"
                  "LAMBDA (pr:real): -(-pr) ^ (1+j) / (1+j)" "x")
                 (assert)
                 (split -)
                 (("1"
                   (expand "sigma" +)
                   (assert)
                   (invoke (case "%1 = %2 AND %3 = %4 AND %5 = %6")
                    (! -1 1) (! 1 1) (! -1 2 1) (! 1 2 2) (! -1 2 2)
                    (! 1 2 1))
                   (("1" (flatten) (assert))
                    ("2"
                     (split)
                     (("1"
                       (invoke (case "%1 = %2") (! 1 1 1) (! 1 2 1))
                       (("1" (assert))
                        ("2"
                         (hide (2 3))
                         (decompose-equality)
                         (expand "ln_estimate" +)
                         (expand "+" +)
                         (expand "sigma" + 2)
                         (propax))))
                      ("2" (propax))
                      ("3"
                       (lemma "deriv_neg[real]")
                       (hide (-2 2))
                       (case "EXISTS (c:real): (c=1 OR c=-1) AND (-x)^j = -c*x^j AND (LAMBDA (pr: real): -(-pr) ^ (1 + j) / (1 + j)) = (LAMBDA (pr: real): -c*(pr) ^ (1 + j) / (1 + j))")
                       (("1"
                         (skeep -1)
                         (replace -3)
                         (replace -2)
                         (lemma "deriv_scal[real]")
                         (inst - "-c / (1+j)"
                          "LAMBDA (pr: real): (pr) ^ (1 + j)" "x")
                         (split -)
                         (("1"
                           (invoke (case "%1 = %2") (! -1 1 1) (! 1 1 1))
                           (("1"
                             (replaces -1)
                             (replaces -1)
                             (lemma "deriv_x_n[real]")
                             (inst - "LAMBDA (pr: real): (pr) ^ (1 + j)"
                              "1+j")
                             (assert)
                             (flatten)
                             (decompose-equality -2)
                             (inst - "x")
                             (expand "deriv" -1)
                             (replaces -1)
                             (cross-mult 1))
                            ("2"
                             (hide-all-but 1)
                             (decompose-equality)
                             (expand "*")
                             (assert))))
                          ("2"
                           (lemma "deriv_x_n[real]")
                           (inst - "LAMBDA (pr: real): (pr) ^ (1 + j)"
                            "1+j")
                           (assert)
                           (flatten)
                           (expand "derivable?" -1)
                           (inst - "x"))))
                        ("2"
                         (hide-all-but 1)
                         (name "cc" "IF even?(j) THEN -1 ELSE 1 ENDIF")
                         (inst + "cc")
                         (split)
                         (("1" (replaces -1 :dir rl) (grind))
                          ("2"
                           (lemma "mult_expt")
                           (inst - "j" "-1" "x")
                           (("1"
                             (assert)
                             (replace -1)
                             (lemma "even_m1_pow")
                             (inst - "j")
                             (lemma "not_even_m1_pow")
                             (inst - "j")
                             (lift-if)
                             (ground))
                            ("2"
                             (flatten)
                             (replaces -1)
                             (reveal "jpos")
                             (expand "^")
                             (expand "expt")
                             (assert))))
                          ("3"
                           (decompose-equality)
                           (lemma "mult_expt")
                           (inst - "1+j" "-1" "x!1")
                           (("1"
                             (replaces -1)
                             (lemma "not_even_m1_pow")
                             (inst - "1+j")
                             (case "even?(1+j) IFF (NOT even?(j))")
                             (("1"
                               (replace -1)
                               (assert)
                               (lemma "even_m1_pow")
                               (inst - "1+j")
                               (replace -2)
                               (lift-if)
                               (ground))
                              ("2"
                               (assert)
                               (hide-all-but 1)
                               (expand "even?")
                               (ground)
                               (("1"
                                 (skosimp*)
                                 (assert)
                                 (replace -2)
                                 (assert)
                                 (case "EXISTS (kk:nat): 1= 2*kk")
                                 (("1" (skosimp*) (assert))
                                  ("2" (inst + "j!1-j!2") (assert))))
                                ("2"
                                 (lemma "even_or_odd")
                                 (inst - "j")
                                 (expand "even?")
                                 (expand "odd?")
                                 (ground)
                                 (skosimp*)
                                 (inst 3 "j!1+1")
                                 (assert))))))
                            ("2"
                             (flatten)
                             (replaces -1)
                             (reveal "jpos")
                             (expand "^")
                             (expand "expt")
                             (assert))))))))))))
                  ("2"
                   (inst -2 "j")
                   (expand "derivable?" -2)
                   (inst - "x"))
                  ("3"
                   (case "EXISTS (c:real): (c=1 OR c=-1) AND (-x)^j = -c*x^j AND (LAMBDA (pr: real): -(-pr) ^ (1 + j) / (1 + j)) = (LAMBDA (pr: real): -c*(pr) ^ (1 + j) / (1 + j))")
                   (("1"
                     (skeep -1)
                     (replace -3)
                     (lemma "derivable_scal[real]")
                     (inst - "-c / (1+j)"
                      "LAMBDA (pr: real): (pr) ^ (1 + j)")
                     (("1"
                       (expand "*" -1)
                       (expand "derivable?" -1)
                       (inst - "x")
                       (assert))
                      ("2"
                       (lemma "deriv_x_n[real]")
                       (inst - "LAMBDA (pr: real): (pr) ^ (1 + j)" "1+j")
                       (assert))))
                    ("2"
                     (hide-all-but 1)
                     (name "cc" "IF even?(j) THEN -1 ELSE 1 ENDIF")
                     (inst + "cc")
                     (split)
                     (("1" (replaces -1 :dir rl) (grind))
                      ("2"
                       (lemma "mult_expt")
                       (inst - "j" "-1" "x")
                       (("1"
                         (assert)
                         (replace -1)
                         (lemma "even_m1_pow")
                         (inst - "j")
                         (lemma "not_even_m1_pow")
                         (inst - "j")
                         (lift-if)
                         (ground))
                        ("2"
                         (reveal "jpos")
                         (flatten)
                         (replaces -1)
                         (expand "^")
                         (expand "expt")
                         (assert))))
                      ("3"
                       (decompose-equality)
                       (lemma "mult_expt")
                       (inst - "1+j" "-1" "x!1")
                       (("1"
                         (replaces -1)
                         (lemma "not_even_m1_pow")
                         (inst - "1+j")
                         (case "even?(1+j) IFF (NOT even?(j))")
                         (("1"
                           (replace -1)
                           (assert)
                           (lemma "even_m1_pow")
                           (inst - "1+j")
                           (replace -2)
                           (lift-if)
                           (ground))
                          ("2"
                           (assert)
                           (hide-all-but 1)
                           (expand "even?")
                           (ground)
                           (("1"
                             (skosimp*)
                             (assert)
                             (replace -2)
                             (assert)
                             (case "EXISTS (kk:nat): 1= 2*kk")
                             (("1" (skosimp*) (assert))
                              ("2" (inst + "j!1-j!2") (assert))))
                            ("2"
                             (lemma "even_or_odd")
                             (inst - "j")
                             (expand "even?")
                             (expand "odd?")
                             (ground)
                             (skosimp*)
                             (inst 3 "j!1+1")
                             (assert))))))
                        ("2" (flatten) (replaces -1) (assert))))))))))))
              ("3" (skosimp*) (assert))
              ("4"
               (reveal "derivtt2")
               (skeep)
               (inst - "m")
               (expand "derivable?" -1)
               (inst - "x"))))
            ("3" (skosimp*) (assert))
            ("4"
             (skeep)
             (inst - "m")
             (expand "derivable?" -1)
             (inst - "x"))))))
        ("2" (inst - "1+2*n"))))
      ("2" (lemma "connected_real") (propax))))
    ("2"
     (hide 2)
     (induct "m")
     (("1"
       (expand "ln_estimate")
       (expand "sigma")
       (expand "sigma")
       (lemma "derivable_const[real]")
       (inst - "0")
       (expand "const_fun")
       (propax))
      ("2"
       (skeep)
       (case "j = 0")
       (("1"
         (replaces -1)
         (hide -)
         (expand "ln_estimate")
         (expand "sigma")
         (expand "sigma")
         (expand "sigma")
         (expand "^")
         (expand "expt")
         (expand "expt")
         (lemma "identity_derivable[real]")
         (expand "derivable?" +)
         (skeep)
         (inst - "x")
         (expand "I")
         (assert))
        ("2"
         (label "jpos" 1)
         (hide 1)
         (expand "ln_estimate")
         (expand "sigma" +)
         (lemma "derivable_sum[real]")
         (inst - "(LAMBDA (pr: real): ln_estimate(pr, j))"
          "LAMBDA (pr: real): -(-pr) ^ (1 + j) / (1 + j)")
         (("1"
           (invoke (case "%1 = %2") (! -1 1) (! 1 1))
           (("1" (assert))
            ("2"
             (hide 2)
             (decompose-equality +)
             (("1" (expand "+") (expand "ln_estimate") (propax))
              ("2" (skosimp*))))
            ("3" (assert) (skosimp*))))
          ("2"
           (assert)
           (hide 2)
           (hide -1)
           (case "EXISTS (c:real): (LAMBDA (pr: real): -(-pr) ^ (1 + j) / (1 + j)) = (LAMBDA (pr: real): -c*(pr) ^ (1 + j) / (1 + j))")
           (("1"
             (skeep -1)
             (replace -1)
             (hide -1)
             (lemma "derivable_scal[real]")
             (inst - "-c / (1+j)" "LAMBDA (pr: real): (pr) ^ (1 + j)")
             (("1" (expand "*") (assert))
              ("2"
               (hide 2)
               (lemma "deriv_x_n[real]")
               (inst - "LAMBDA (pr: real): (pr) ^ (1 + j)" "1+j")
               (assert))))
            ("2"
             (hide-all-but 1)
             (name "cc" "IF even?(j) THEN -1 ELSE 1 ENDIF")
             (inst + "cc")
             (decompose-equality)
             (lemma "mult_expt")
             (inst - "1+j" "-1" "x!1")
             (("1"
               (replaces -1)
               (lemma "not_even_m1_pow")
               (inst - "1+j")
               (case "even?(1+j) IFF (NOT even?(j))")
               (("1"
                 (replace -1)
                 (assert)
                 (lemma "even_m1_pow")
                 (inst - "1+j")
                 (replace -2)
                 (lift-if)
                 (ground))
                ("2"
                 (assert)
                 (hide-all-but 1)
                 (expand "even?")
                 (ground)
                 (("1"
                   (skosimp*)
                   (assert)
                   (replace -2)
                   (assert)
                   (case "EXISTS (kk:nat): 1= 2*kk")
                   (("1" (skosimp*) (assert))
                    ("2" (inst + "j!1-j!2") (assert))))
                  ("2"
                   (lemma "even_or_odd")
                   (inst - "j")
                   (expand "even?")
                   (expand "odd?")
                   (ground)
                   (skosimp*)
                   (inst 3 "j!1+1")
                   (assert))))))
              ("2"
               (flatten)
               (replaces -1)
               (expand "^")
               (expand "expt")
               (assert))))))
          ("3" (expand "ln_estimate") (propax))))))))))


proof_type: f_proof
decl_type: formula
library: lnexp_fnd
theory: ln_series
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (induct "n")
   (("1"
     (assert)
     (skeep)
     (expand "ln_estimate")
     (expand "sigma")
     (expand "sigma")
     (assert))
    ("2"
     (skeep)
     (skeep)
     (inst - "x1" "y1")
     (assert)
     (expand "ln_estimate")
     (expand "sigma" +)
     (expand "sigma" +)
     (case "-(-x1) ^ (1 + 2 * j) / (1 + 2 * j)
                                                               + -(-x1) ^ (2 + 2 * j) / (2 + 2 * j)
                                                               <=
                                                               -(-y1) ^ (1 + 2 * j) / (1 + 2 * j)
                                                                + -(-y1) ^ (2 + 2 * j) / (2 + 2 * j)")
     (("1" (assert))
      ("2"
       (hide-all-but (-2 1))
       (lemma "mult_expt")
       (case "FORALL (i: posnat, n0x, n0y: real): (n0x * n0y) ^ i = n0x ^ i * n0y ^ i")
       (("1"
         (hide -2)
         (inst-cp - "1+2*j" "-1" "x1")
         (inst-cp - "1+2*j" "-1" "y1")
         (inst-cp - "2+2*j" "-1" "x1")
         (inst - "2+2*j" "-1" "y1")
         (replaces -1)
         (replaces -1)
         (replaces -1)
         (replaces -1)
         (case "FORALL (jj:nat): (-1)^(1+2*jj) = -1 AND (-1)^(2+2*jj) = 1")
         (("1"
           (inst - "j")
           (flatten)
           (replaces -1)
           (replaces -1)
           (assert)
           (name "FF"
                 "LAMBDA (xx:absle1): xx ^ (1 + 2 * j) / (1 + 2 * j) - xx ^ (2 + 2 * j) / (2 + 2 * j)")
           (case "derivable?[absle1](FF)")
           (("1"
             (lemma "nonneg_derivative[absle1]")
             (("1"
               (inst - "FF")
               (ground)
               (("1"
                 (expand "FF" -1)
                 (expand "increasing?")
                 (inst - "x1" "y1")
                 (assert))
                ("2"
                 (hide (2 3))
                 (lemma "deriv_diff[absle1]")
                 (skeep)
                 (inst -
                  "LAMBDA (xx:absle1): xx ^ (1 + 2 * j) / (1 + 2 * j)"
                  "LAMBDA (xx:absle1): xx ^ (2 + 2 * j) / (2 + 2 * j)"
                  "x")
                 (split -)
                 (("1"
                   (assert)
                   (invoke (case "%1 = FF") (! -1 1 1))
                   (("1"
                     (replaces -1)
                     (replaces -1)
                     (name "aa" "2+2*j")
                     (replace -1)
                     (name "bb" "1+2*j")
                     (replace -1)
                     (lemma "deriv_scal[absle1]")
                     (lemma "deriv_x_to_n[absle1]")
                     (inst-cp - "bb" "1/bb")
                     (inst - "aa" "1/aa")
                     (assert)
                     (flatten)
                     (decompose-equality -2)
                     (("1"
                       (inst - "x")
                       (expand "deriv" -1)
                       (replace -1)
                       (assert)
                       (decompose-equality -4)
                       (("1"
                         (inst - "x")
                         (expand "deriv" -1)
                         (replace -1)
                         (case "x^(2*j) >= x^(2*j+1)")
                         (("1" (assert) (field))
                          ("2"
                           (hide 2)
                           (hide-all-but 1)
                           (case "FORALL (jj:nat): x ^ (2 * jj) >= x ^ (2 * jj + 1)")
                           (("1" (inst - "j"))
                            ("2"
                             (hide 2)
                             (induct "jj")
                             (("1" (typepred "x") (grind))
                              ("2"
                               (skolem 1 "m")
                               (flatten)
                               (expand "^")
                               (expand "expt" +)
                               (expand "expt" +)
                               (case "x*x>=0")
                               (("1" (mult-by -2 "x*x") (assert))
                                ("2" (assert))))))))))
                        ("2"
                         (hide-all-but 1)
                         (expand "not_one_element?")
                         (skosimp*)
                         (inst + "IF x!1 = 0 THEN 1 ELSE 0 ENDIF")
                         (("1" (grind)) ("2" (grind)) ("3" (grind))))
                        ("3"
                         (hide-all-but 1)
                         (expand "deriv_domain?")
                         (skosimp*)
                         (case "x!1 < 0")
                         (("1"
                           (inst + "min(e!1,1)/2")
                           (("1" (typepred "x!1") (grind))
                            ("2" (typepred "x!1") (grind))))
                          ("2"
                           (inst + "-min(e!1,1)/2")
                           (("1" (typepred "x!1") (grind))
                            ("2" (typepred "x!1") (grind))))))))
                      ("2"
                       (hide-all-but 1)
                       (expand "not_one_element?")
                       (skosimp*)
                       (inst + "IF x!1 = 0 THEN 1 ELSE 0 ENDIF")
                       (("1" (grind)) ("2" (grind)) ("3" (grind))))
                      ("3"
                       (hide-all-but 1)
                       (expand "deriv_domain?")
                       (skosimp*)
                       (case "x!1 < 0")
                       (("1"
                         (inst + "min(e!1,1)/2")
                         (("1" (typepred "x!1") (grind))
                          ("2" (typepred "x!1") (grind))))
                        ("2"
                         (inst + "-min(e!1,1)/2")
                         (("1" (typepred "x!1") (grind))
                          ("2" (typepred "x!1") (grind))))))))
                    ("2"
                     (hide (-1 -2))
                     (decompose-equality)
                     (decompose-equality -)
                     (inst - "x!1")
                     (expand "-")
                     (propax))))
                  ("2"
                   (lemma "deriv_x_to_n[absle1]")
                   (inst - "1+2*j" "1/(1+2*j)")
                   (assert)
                   (flatten)
                   (assert)
                   (expand "derivable?" -1)
                   (inst - "x")
                   (assert))
                  ("3"
                   (lemma "deriv_x_to_n[absle1]")
                   (inst - "2+2*j" "1/(2+2*j)")
                   (assert)
                   (flatten)
                   (expand "derivable?" -1)
                   (inst - "x")
                   (assert))))))
              ("2"
               (hide-all-but 1)
               (expand "connected?")
               (skosimp*)
               (typepred "x!1")
               (typepred "y!1")
               (grind))))
            ("2"
             (hide 2)
             (lemma "derivable_diff[absle1]")
             (inst - "LAMBDA (xx:absle1): xx ^ (1 + 2 * j) / (1 + 2 * j)"
              "LAMBDA (xx:absle1): xx ^ (2 + 2 * j) / (2 + 2 * j)")
             (("1" (expand "-") (expand "FF" +) (propax))
              ("2"
               (lemma "deriv_x_to_n[absle1]")
               (inst - "2+2*j" "1/(2+2*j)")
               (assert)
               (flatten)
               (assert))
              ("3"
               (lemma "deriv_x_to_n[absle1]")
               (inst - "1+2*j" "1/(1+2*j)")
               (assert)
               (flatten)
               (assert))))
            ("3"
             (hide-all-but 1)
             (expand "not_one_element?")
             (skosimp*)
             (inst + "IF x!1 = 0 THEN 1 ELSE 0 ENDIF")
             (("1" (grind)) ("2" (grind)) ("3" (grind))))
            ("4"
             (hide-all-but 1)
             (expand "deriv_domain?")
             (skosimp*)
             (case "x!1 < 0")
             (("1"
               (inst + "min(e!1,1)/2")
               (("1" (typepred "x!1") (grind))
                ("2" (typepred "x!1") (grind))))
              ("2"
               (inst + "-min(e!1,1)/2")
               (("1" (typepred "x!1") (grind))
                ("2" (typepred "x!1") (grind))))))))
          ("2"
           (hide 2)
           (induct "jj")
           (("1" (grind)) ("2" (grind))
            ("3"
             (skosimp*)
             (expand "^")
             (expand "expt" +)
             (expand "expt" +)
             (assert))))))
        ("2"
         (hide 2)
         (skeep)
         (case "n0x = 0 OR n0y = 0")
         (("1"
           (split -)
           (("1" (replaces -1) (assert)) ("2" (replaces -1) (assert))))
          ("2"
           (inst - "i" "n0x" "n0y")
           (("1" (assert)) ("2" (assert))))))))))))


proof_type: f_proof
decl_type: formula
library: lnexp_fnd
theory: ln_series
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (prop)
   (("1"
     (lemma "inv_fun_continuous[{x: real | x > -1}]")
     (inst - "(LAMBDA (x: {x: real | x > -1}): x+1)")
     (("1"
       (expand "/")
       (lemma "continuous_Integrable?[{x: real | x > -1}]")
       (("1"
         (inst?)
         (assert)
         (skosimp*)
         (expand "continuous?" -1)
         (inst?))
        ("2" (inst 1 "0"))))
      ("2"
       (hide 2)
       (lemma "linear_fun_cont[{x: real | x > -1}]")
       (inst - "1" "1")
       (assert))))
    ("2"
     (lemma "Int_chg_var[posreal,{x:real | x > -1}]")
     (("1"
       (inst - "0" "x1!1" "(LAMBDA (t: posreal): 1 / t)"
        "(LAMBDA (t: {x:real | x > -1}): 1+t)")
       (assert)
       (typepred "x1!1")
       (rewrite "abs_lt")
       (flatten)
       (assert)
       (lemma "deriv_linear_fun[{x: real | x > -1}]")
       (inst - "1" "1")
       (assert)
       (flatten)
       (assert)
       (hide 2)
       (replace -2)
       (lemma "const_fun_continuous[{x: real | x > -1}]")
       (inst - "1")
       (expand "const_fun")
       (assert)
       (lemma "one_over_x_cont[posreal]")
       (assert))
      ("2" (inst + "0"))))))


proof_type: f_proof
decl_type: formula
library: lnexp_fnd
theory: ln_series
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (prop)
   (("1"
     (lemma "geometric_series")
     (inst - "-x!1")
     (rewrite "abs_neg")
     (assert)
     (expand "convergent?")
     (inst + "1/(1+x!1)")
     (("1" (expand "geometric") (assert)) ("2" (hide -1) (grind))))
    ("2"
     (lemma "geometric_sum")
     (inst - "-x!1")
     (assert)
     (rewrite "abs_neg")
     (assert)
     (expand "geometric")
     (assert))))


