# Proofs

proof_type: f_proof
decl_type: formula
library: lebesgue
theory: riemann_scaf
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (name "N1" "length(P1!1)-2")
   (name "N2" "length(P2!1)-2")
   (lemma "both_sides_times_pos_le1"
    ("pz" "2*part_norm(P2!1)" "x" "0" "y" "sup_norm(f!1)"))
   (replace -3)
   (name-replace "K" "2 * sup_norm(f!1) * part_norm(P2!1)")
   (assert)
   (lemma "riemann_lebesgue_step_integrable" ("phi" "phi!1"))
   (lemma "riemann_lebesgue_step_integrable" ("phi" "psi!1"))
   (flatten)
   (hide -1 -3 -4 -6)
   (lemma "integrable_diff" ("f1" "phi!1" "f2" "psi!1"))
   (case "K*N1 >= integral((-[real])(phi!1, psi!1))")
   (("1" (rewrite "integral_diff") (expand "K") (assert))
    ("2"
     (hide 2)
     (name "EE"
           "lambda (ii:below(N2+1)): {x | seq(P2!1)(ii) < x & x < seq(P2!1)(ii+1)}")
     (name "PHI" "lambda (ii:below(N2+1)): phi(EE(ii))")
     (name "FF"
           "lambda (ii:below(N2+1)):
                    (*[real])(PHI(ii), (-[real])(phi!1, psi!1))")
     (case "forall (ii: below(N2 + 1)): integrable?(FF(ii))")
     (("1"
       (hide -2 -3 -4)
       (name "GG" "(LAMBDA (ii: below(N2+1)): integral(FF(ii)))")
       (("1"
         (case "FORALL (n: nat):
                       n <= N2 =>
                        integral(phi(closed(seq(P2!1)(0), seq(P2!1)(n+1))) *
                                  (-[real])(phi!1, psi!1))
                         = sigma[below(N2 + 1)](0, n, GG)")
         (("1"
           (inst - "N2")
           (assert)
           (case-replace
            "phi(closed(seq(P2!1)(0), seq(P2!1)(1 + N2))) *
                            (-[real])(phi!1, psi!1)=(-[real])(phi!1, psi!1)")
           (("1"
             (replace -2)
             (hide -1 -2)
             (expand ">=")
             (name "PART2"
                   "lambda (ii:below(N1+1)): ii_of_x(P2!1)(seq(P1!1)(ii))")
             (("1"
               (case "PART2(0)=0")
               (("1"
                 (hide -2)
                 (case "forall (ii:below(N1+1)): 0 <= PART2(ii) & PART2(ii) < N2+1")
                 (("1"
                   (case "forall(ii,jj:below(N1+1)):ii<=jj=>PART2(ii)<=PART2(jj)")
                   (("1"
                     (name "ENDS"
                           "lambda (ii:below(N1+1)): exists (jj:below(N2+1)): seq(P1!1)(ii) = seq(P2!1)(jj)")
                     (name "MIDS"
                           "LAMBDA (ii: below(N1 + 1)): not ENDS(ii)")
                     (name "JUMPS"
                           "image[below(N1+1),below(N2+1)](PART2,MIDS)")
                     (("1"
                       (case "forall (ii:below(N2+1)): JUMPS(ii) => GG(ii) <=K")
                       (("1"
                         (case "forall (ii:below(N2+1)): not JUMPS(ii) => GG(ii)<=0")
                         (("1"
                           (hide -3 -4 -5)
                           (case "sigma[below(N2 + 1)](PART2(N1)+1, N2, GG) <= 0")
                           (("1"
                             (case "forall (ii: below(N1)): sigma[below(N2 + 1)](PART2(ii) + 1, PART2(ii+1)-1, GG) <= 0")
                             (("1"
                               (case "FORALL (n: posnat):
                                             n <= N1 => sigma[below(N2 + 1)](0, PART2(n), GG) <= K * n")
                               (("1"
                                 (case-replace "N1=0")
                                 (("1"
                                   (lemma
                                    "sigma_le[below(N2 + 1)]"
                                    ("low"
                                     "0"
                                     "high"
                                     "N2"
                                     "F"
                                     "GG"
                                     "G"
                                     "lambda (ii: below(N2 + 1)): 0"))
                                   (rewrite
                                    "sigma_zero[below(N2 + 1)]"
                                    -1)
                                   (assert)
                                   (hide 2)
                                   (skosimp)
                                   (typepred "n!1")
                                   (inst -7 "n!1")
                                   (assert)
                                   (expand "JUMPS" -7)
                                   (expand "image")
                                   (skosimp)
                                   (typepred "x!1")
                                   (replace -5)
                                   (expand "MIDS")
                                   (expand "ENDS")
                                   (inst + "0")
                                   (assert))
                                  ("2"
                                   (inst - "N1")
                                   (("1"
                                     (assert)
                                     (lemma
                                      "sigma_split[below(N2 + 1)]"
                                      ("low"
                                       "0"
                                       "high"
                                       "N2"
                                       "F"
                                       "GG"
                                       "z"
                                       "PART2(N1)"))
                                     (assert))
                                    ("2" (assert))))))
                                ("2"
                                 (hide 2)
                                 (induct "n")
                                 (("1" (assert))
                                  ("2" (assert))
                                  ("3"
                                   (skosimp)
                                   (case-replace "j!1=0")
                                   (("1"
                                     (assert)
                                     (case-replace "PART2(1)=0")
                                     (("1"
                                       (expand "sigma" 1)
                                       (assert)
                                       (inst -8 "0")
                                       (split -8)
                                       (("1" (propax))
                                        ("2" (inst -7 "0") (assert))))
                                      ("2"
                                       (case "PART2(1) >=1")
                                       (("1"
                                         (hide 1)
                                         (inst -6 "0")
                                         (rewrite "sigma_first" 1)
                                         (inst-cp -7 "0")
                                         (assert)
                                         (split -8)
                                         (("1"
                                           (expand "sigma" 1)
                                           (inst -8 "PART2(1)")
                                           (inst -9 "PART2(1)")
                                           (case-replace
                                            "JUMPS(PART2(1))")
                                           (("1" (assert))
                                            ("2" (assert))))
                                          ("2"
                                           (expand "JUMPS")
                                           (expand "image")
                                           (skosimp)
                                           (typepred "x!1")
                                           (case-replace "x!1=0")
                                           (("1"
                                             (expand "MIDS")
                                             (expand "ENDS")
                                             (inst + "0")
                                             (assert))
                                            ("2"
                                             (inst -12 "1" "x!1")
                                             (assert))))))
                                        ("2" (assert))))))
                                    ("2"
                                     (assert)
                                     (inst -4 "j!1")
                                     (expand "sigma" 2)
                                     (inst -7 "PART2(1+j!1)")
                                     (split -7)
                                     (("1"
                                       (lemma
                                        "sigma_split[below(N2 + 1)]"
                                        ("low"
                                         "0"
                                         "high"
                                         "PART2(1 + j!1) - 1"
                                         "z"
                                         "PART2(j!1)"
                                         "F"
                                         "GG"))
                                       (case-replace
                                        "PART2(j!1)=PART2(1 + j!1)")
                                       (("1" (assert))
                                        ("2"
                                         (assert)
                                         (inst -8 "j!1" "j!1+1")
                                         (assert))))
                                      ("2"
                                       (inst -6 "PART2(1 + j!1)")
                                       (assert)
                                       (lemma
                                        "sigma_split[below(N2 + 1)]"
                                        ("low"
                                         "0"
                                         "high"
                                         "PART2(1 + j!1) - 1"
                                         "z"
                                         "PART2(j!1)"
                                         "F"
                                         "GG"))
                                       (assert)
                                       (inst -7 "j!1" "1+j!1")
                                       (assert))))))
                                  ("4"
                                   (skosimp)
                                   (assert)
                                   (inst -9 "n!2")
                                   (flatten)
                                   (assert)
                                   (skosimp*)
                                   (assert))
                                  ("5"
                                   (skosimp)
                                   (assert)
                                   (assert)
                                   (skosimp*)
                                   (assert))
                                  ("6"
                                   (skosimp)
                                   (assert)
                                   (inst -7 "n!1")
                                   (("1" (assert)) ("2" (assert))))
                                  ("7" (skosimp) (assert) (assert))
                                  ("8" (skosimp*) (assert))
                                  ("9" (assert) (skosimp*) (assert))))
                                ("3" (skosimp) (skosimp) (assert))
                                ("4"
                                 (skosimp)
                                 (inst -7 "n!1")
                                 (("1" (flatten) (assert))
                                  ("2" (assert))))
                                ("5" (skosimp) (assert))))
                              ("2"
                               (hide 2)
                               (skosimp)
                               (lemma "sigma_le[below(N2 + 1)]"
                                ("low"
                                 "PART2(ii!1) + 1"
                                 "high"
                                 "PART2(ii!1 + 1) - 1"
                                 "F"
                                 "GG"
                                 "G"
                                 "lambda (ii:below(N2 + 1)):0"))
                               (rewrite "sigma_zero[below(N2 + 1)]" -1)
                               (assert)
                               (hide -1 2)
                               (skosimp)
                               (typepred "n!1")
                               (inst -3 "n!1")
                               (assert)
                               (expand "JUMPS" -3)
                               (expand "image")
                               (skosimp)
                               (typepred "x!1")
                               (lemma "trich_lt" ("x" "ii!1" "y" "x!1"))
                               (split)
                               (("1" (inst -8 "ii!1+1" "x!1") (assert))
                                ("2" (assert))
                                ("3" (inst -8 "x!1" "ii!1") (assert))))
                              ("3" (skosimp) (skosimp) (assert))
                              ("4" (skosimp) (inst + "N2") (assert))
                              ("5"
                               (skosimp)
                               (assert)
                               (inst-cp -5 "ii!1")
                               (flatten)
                               (assert)
                               (inst + "0")
                               (assert))))
                            ("2"
                             (hide 2)
                             (lemma "sigma_le[below(N2 + 1)]"
                              ("low"
                               "PART2(N1)+1"
                               "high"
                               "N2"
                               "F"
                               "GG"
                               "G"
                               "lambda (ii:below(N2 + 1)): 0"))
                             (rewrite "sigma_zero[below(N2 + 1)]" -1)
                             (assert)
                             (hide 2)
                             (skosimp)
                             (typepred "n!1")
                             (inst -3 "n!1")
                             (assert)
                             (expand "JUMPS" -3)
                             (expand "image")
                             (skosimp)
                             (typepred "x!1")
                             (inst -7 "x!1" "N1")
                             (assert))
                            ("3" (skosimp) (assert))
                            ("4" (flatten) (inst + "0") (assert))))
                          ("2"
                           (hide 2)
                           (hide -1)
                           (skosimp)
                           (hide -1 -2 -3)
                           (typepred "ii!1")
                           (expand "JUMPS")
                           (expand "image")
                           (expand "GG")
                           (hide -5)
                           (expand "FF")
                           (expand "PHI")
                           (expand "EE")
                           (inst -5 "ii!1")
                           (lemma "integral_ae_le"
                            ("f1"
                             "(*[real])
                                                 (phi({x |
                                                         seq(P2!1)(ii!1) < x &
                                                          x < seq(P2!1)(1 + ii!1)}),
                                                  (-[real])(phi!1, psi!1))"
                             "f2"
                             "lambda (x:real): 0"))
                           (("1"
                             (rewrite "integral_zero")
                             (assert)
                             (hide 3)
                             (expand "ae_le?")
                             (expand "pointwise_ae?")
                             (expand "ae?")
                             (expand "fullset")
                             (expand "ae_in?")
                             (inst + "emptyset[real]")
                             (skosimp)
                             (hide 1)
                             (expand "*")
                             (expand "phi")
                             (expand "member")
                             (expand "-")
                             (assert)
                             (case-replace
                              "seq(P2!1)(ii!1) < x!1 & x!1 < seq(P2!1)(1 + ii!1)")
                             (("1"
                               (flatten)
                               (assert)
                               (hide-all-but
                                (-1 -2 -3 -4 -5 -12 -12 -14 -15 1 2))
                               (replace -7)
                               (replace -8)
                               (hide -7 -8)
                               (expand "lower_step" 1 2)
                               (case-replace
                                "EXISTS (ii: below(length(P2!1) - 1)): x!1 = seq(P2!1)(ii)")
                               (("1"
                                 (skosimp)
                                 (lemma
                                  "part_not_in"
                                  ("a" "a" "b" "b" "x" "x!1"))
                                 (assert)
                                 (inst - "P2!1")
                                 (inst - "ii!1" "ii!2")
                                 (assert))
                                ("2"
                                 (replace 1 2)
                                 (expand "lower_step")
                                 (case-replace
                                  "EXISTS (ii: below(length(P1!1) - 1)): x!1 = seq(P1!1)(ii)")
                                 (("1"
                                   (skosimp)
                                   (expand "PART2" 3)
                                   (inst 3 "ii!2")
                                   (("1"
                                     (lemma
                                      "ii_of_x_def"
                                      ("P"
                                       "P2!1"
                                       "x"
                                       "seq(P1!1)(ii!2)"
                                       "ii"
                                       "ii!1"))
                                     (assert))
                                    ("2"
                                     (expand "MIDS")
                                     (expand "ENDS")
                                     (skosimp)
                                     (inst + "jj!1")
                                     (assert))))
                                  ("2"
                                   (replace 1)
                                   (typepred
                                    "inf(image(f!1, part_set_of(P1!1)(x!1)))")
                                   (name-replace
                                    "INF1"
                                    "inf(image(f!1, part_set_of(P1!1)(x!1)))")
                                   (typepred
                                    "inf(image(f!1, part_set_of(P2!1)(x!1)))")
                                   (name-replace
                                    "INF2"
                                    "inf(image(f!1, part_set_of(P2!1)(x!1)))")
                                   (expand "greatest_lower_bound")
                                   (flatten)
                                   (name "II" "ii_of_x(P1!1)(x!1)")
                                   (lemma
                                    "ii_of_x_def"
                                    ("P" "P1!1" "x" "x!1" "ii" "II"))
                                   (assert)
                                   (flatten)
                                   (case
                                    "seq(P1!1)(II) <=seq(P2!1)(ii!1)")
                                   (("1"
                                     (case
                                      "seq(P2!1)(1 + ii!1)<=seq(P1!1)(II+1)")
                                     (("1"
                                       (inst -7 "INF1")
                                       (assert)
                                       (expand "lower_bound")
                                       (skosimp)
                                       (typepred "z!1")
                                       (expand "image")
                                       (skosimp)
                                       (typepred "x!2")
                                       (expand "part_set_of")
                                       (flatten)
                                       (lemma
                                        "ii_of_x_def"
                                        ("P"
                                         "P2!1"
                                         "x"
                                         "x!1"
                                         "ii"
                                         "ii!1"))
                                       (assert)
                                       (replace -1)
                                       (inst -11 "z!1")
                                       (expand "image")
                                       (inst + "x!2")
                                       (expand "part_set_of")
                                       (propax))
                                      ("2"
                                       (case
                                        "seq(P1!1)(II + 1)<seq(P2!1)(1 + ii!1)")
                                       (("1"
                                         (hide 1)
                                         (inst 4 "II+1")
                                         (("1"
                                           (expand "PART2")
                                           (lemma
                                            "ii_of_x_def"
                                            ("P"
                                             "P2!1"
                                             "x"
                                             "seq(P1!1)(1 + II)"
                                             "ii"
                                             "ii!1"))
                                           (assert))
                                          ("2"
                                           (assert)
                                           (expand "MIDS")
                                           (expand "ENDS")
                                           (skosimp)
                                           (lemma
                                            "part_not_in"
                                            ("a"
                                             "a"
                                             "b"
                                             "b"
                                             "x"
                                             "seq(P1!1)(1 + II)"))
                                           (assert)
                                           (inst - "P2!1")
                                           (inst - "ii!1" "jj!1")
                                           (assert))))
                                        ("2" (assert))))))
                                    ("2"
                                     (case
                                      "seq(P2!1)(ii!1)<seq(P1!1)(II)")
                                     (("1"
                                       (hide 1)
                                       (inst 4 "II")
                                       (("1"
                                         (expand "PART2")
                                         (lemma
                                          "ii_of_x_def"
                                          ("P"
                                           "P2!1"
                                           "x"
                                           "seq(P1!1)(II)"
                                           "ii"
                                           "ii!1"))
                                         (assert))
                                        ("2"
                                         (expand "MIDS")
                                         (expand "ENDS")
                                         (skosimp)
                                         (expand "<=" -3)
                                         (split)
                                         (("1"
                                           (lemma
                                            "trich_lt"
                                            ("x" "ii!1" "y" "jj!1"))
                                           (split)
                                           (("1"
                                             (replace -3)
                                             (lemma
                                              "parts_order_le"
                                              ("a"
                                               "a"
                                               "b"
                                               "b"
                                               "P"
                                               "P2!1"
                                               "ii"
                                               "ii!1+1"
                                               "jj"
                                               "jj!1"))
                                             (assert))
                                            ("2" (assert))
                                            ("3"
                                             (assert)
                                             (lemma
                                              "parts_order"
                                              ("a"
                                               "a"
                                               "b"
                                               "b"
                                               "P"
                                               "P2!1"
                                               "ii"
                                               "jj!1"
                                               "jj"
                                               "ii!1"))
                                             (assert))))
                                          ("2"
                                           (inst 1 "II")
                                           (assert))))))
                                      ("2" (assert))))))))))
                              ("2" (replace 1) (assert))))
                            ("2" (rewrite "integrable_zero"))))))
                        ("2"
                         (hide 2)
                         (skosimp)
                         (expand "GG")
                         (hide -1 -2 -3 -4 -5 -6 -7 -8)
                         (expand "FF")
                         (expand "K")
                         (expand "PHI")
                         (expand "EE")
                         (inst - "ii!1")
                         (lemma "integral_ae_le"
                          ("f1"
                           "(((*[real])
                                               (phi({x |
                                                       seq(P2!1)(ii!1) < x &
                                                        x < seq(P2!1)(1 + ii!1)}),
                                                (-[real])(phi!1, psi!1))))"
                           "f2"
                           "(*[real])(2 *sup_norm(f!1),
                                               phi({x |seq(P2!1)(ii!1) < x &
                                                        x < seq(P2!1)(1 + ii!1)}))
                                                     "))
                         (("1"
                           (split)
                           (("1"
                             (name-replace "LHS"
                              "integral((((*[real])
                                                   (phi({x |
                                                           seq(P2!1)(ii!1) < x &
                                                            x < seq(P2!1)(1 + ii!1)}),
                                                    (-[real])(phi!1, psi!1)))))")
                             (rewrite "integral_scal")
                             (("1"
                               (lemma "integral_phi_open"
                                ("a"
                                 "seq(P2!1)(ii!1)"
                                 "b"
                                 "seq(P2!1)(1 + ii!1)"))
                               (("1"
                                 (case-replace
                                  "open(seq(P2!1)(ii!1), seq(P2!1)(1 + ii!1))={x | seq(P2!1)(ii!1) < x & x < seq(P2!1)(1 + ii!1)}")
                                 (("1"
                                   (hide -1)
                                   (replace -1)
                                   (expand "part_norm")
                                   (lemma
                                    "width_lem"
                                    ("a"
                                     "a"
                                     "b"
                                     "b"
                                     "P"
                                     "P2!1"
                                     "ii"
                                     "ii!1"))
                                   (expand "finseq_appl")
                                   (typepred "sup_norm(f!1)")
                                   (expand ">=")
                                   (expand "<=" -1)
                                   (split)
                                   (("1"
                                     (lemma
                                      "both_sides_times_pos_le1"
                                      ("pz"
                                       "sup_norm(f!1)"
                                       "x"
                                       "P2!1`seq(1 + ii!1) - P2!1`seq(ii!1)"
                                       "y"
                                       "width(a, b, P2!1)"))
                                     (("1" (assert)) ("2" (assert))))
                                    ("2" (assert))))
                                  ("2"
                                   (hide-all-but 1)
                                   (apply-extensionality :hide? t)
                                   (typepred "P2!1")
                                   (inst - "ii!1")
                                   (grind))))
                                ("2"
                                 (assert)
                                 (typepred "P2!1")
                                 (inst - "ii!1"))))
                              ("2"
                               (lemma "integrable_phi_open"
                                ("a"
                                 "seq(P2!1)(ii!1)"
                                 "b"
                                 "seq(P2!1)(1 + ii!1)"))
                               (("1"
                                 (case-replace
                                  "open(seq(P2!1)(ii!1), seq(P2!1)(1 + ii!1))={x | seq(P2!1)(ii!1) < x & x < seq(P2!1)(1 + ii!1)}")
                                 (apply-extensionality :hide? t)
                                 (hide-all-but 1)
                                 (typepred "P2!1")
                                 (inst - "ii!1")
                                 (grind))
                                ("2"
                                 (typepred "P2!1")
                                 (inst - "ii!1"))))))
                            ("2"
                             (hide 2)
                             (expand "ae_le?")
                             (expand "pointwise_ae?")
                             (expand "ae?")
                             (expand "fullset")
                             (expand "ae_in?")
                             (inst + "emptyset[real]")
                             (skosimp)
                             (expand "*" 2)
                             (expand "-" 2)
                             (expand "phi" 2)
                             (expand "member")
                             (case-replace
                              "seq(P2!1)(ii!1) < x!1 & x!1 < seq(P2!1)(1 + ii!1)")
                             (("1"
                               (hide-all-but (-9 -10 2))
                               (lemma "lower_step_prop"
                                ("f" "f!1" "P" "P1!1"))
                               (replace -2 -1 rl)
                               (lemma "sup_norm_prop" ("f" "f!1"))
                               (flatten)
                               (case "phi!1(x!1)<=sup_norm(f!1)")
                               (("1"
                                 (case "-psi!1(x!1)<=sup_norm(f!1)")
                                 (("1" (assert))
                                  ("2"
                                   (hide -1 2)
                                   (lemma
                                    "lower_step_prop"
                                    ("f" "f!1" "P" "P2!1"))
                                   (replace -6 -1 rl)
                                   (hide -4 -5)
                                   (expand "<=" -1)
                                   (inst - "x!1")
                                   (expand "lower_step")
                                   (replace -4)
                                   (assert)
                                   (case-replace "x!1 < a OR b < x!1")
                                   (("1" (assert))
                                    ("2"
                                     (replace 1)
                                     (case-replace
                                      "(EXISTS (ii: below(length(P2!1) - 1)): x!1 = seq(P2!1)(ii)) OR
                                                x!1 = b")
                                     (("1"
                                       (inst -3 "x!1")
                                       (hide-all-but (-3 2))
                                       (grind))
                                      ("2"
                                       (replace 1)
                                       (hide -4)
                                       (typepred
                                        "inf(image(f!1, part_set_of(P2!1)(x!1)))")
                                       (name-replace
                                        "INF"
                                        "inf(image(f!1, part_set_of(P2!1)(x!1)))")
                                       (expand "greatest_lower_bound")
                                       (flatten)
                                       (expand "lower_bound")
                                       (inst -2 "-sup_norm(f!1)")
                                       (assert)
                                       (skosimp)
                                       (typepred "z!1")
                                       (expand "image")
                                       (skosimp)
                                       (inst -4 "x!2")
                                       (hide-all-but (-1 1 -4))
                                       (grind))))))))
                                ("2"
                                 (hide 2 -5 -4)
                                 (expand "<=" -3)
                                 (inst -3 "x!1")
                                 (inst -1 "x!1")
                                 (hide -2)
                                 (grind))))
                              ("2" (assert) (replace 1) (assert))))))
                          ("2"
                           (hide -1 2)
                           (lemma "integrable_phi_open"
                            ("a"
                             "seq(P2!1)(ii!1)"
                             "b"
                             "seq(P2!1)(1 + ii!1)"))
                           (("1"
                             (case-replace
                              "open(seq(P2!1)(ii!1), seq(P2!1)(1 + ii!1))={x |
                                                       seq(P2!1)(ii!1) < x & x < seq(P2!1)(1 + ii!1)}")
                             (("1"
                               (hide -1)
                               (rewrite "integrable_scal" +))
                              ("2"
                               (hide 2)
                               (apply-extensionality :hide? t)
                               (typepred "P2!1")
                               (inst - "ii!1")
                               (hide-all-but (-4 1))
                               (grind))))
                            ("2"
                             (assert)
                             (typepred "P2!1")
                             (inst - "ii!1"))))))))
                      ("2" (skosimp) (inst -4 "x1!1") (assert))))
                    ("2"
                     (hide-all-but (-1 -9 -10 1))
                     (case "FORALL (ii:below(N1)):PART2(ii)<=PART2(ii+1)")
                     (("1"
                       (case "FORALL (ii: below(N1 + 1),n:nat): ii+n <= N1 => PART2(ii) <= PART2(ii+n)")
                       (("1"
                         (skosimp)
                         (inst - "ii!1" "jj!1-ii!1")
                         (("1" (assert)) ("2" (assert))))
                        ("2"
                         (hide 2)
                         (induct "n")
                         (("1" (skosimp) (assert))
                          ("2"
                           (skosimp)
                           (skosimp)
                           (inst - "ii!1")
                           (assert)
                           (inst - "ii!1+j!1")
                           (assert))
                          ("3" (skosimp) (assert))
                          ("4" (skosimp) (assert))))
                        ("3" (hide 2) (skosimp) (assert))))
                      ("2"
                       (hide 2)
                       (skosimp)
                       (expand "PART2")
                       (name "II" "ii_of_x(P2!1)(seq(P1!1)(ii!1))")
                       (name "JJ" "ii_of_x(P2!1)(seq(P1!1)(1 + ii!1))")
                       (replace -1)
                       (replace -2)
                       (rewrite "ii_of_x_def")
                       (rewrite "ii_of_x_def")
                       (flatten)
                       (typepred "P1!1")
                       (inst - "ii!1")
                       (name-replace "xx" "seq(P1!1)(ii!1)")
                       (name-replace "yy" "seq(P1!1)(ii!1+1)")
                       (lemma "parts_order_le"
                        ("a"
                         "a"
                         "b"
                         "b"
                         "P"
                         "P2!1"
                         "ii"
                         "JJ+1"
                         "jj"
                         "II"))
                       (assert))))))
                  ("2"
                   (hide-all-but (1 -9 -8))
                   (skosimp)
                   (assert)
                   (expand "PART2")
                   (assert)
                   (typepred "ii_of_x(P2!1)(seq(P1!1)(ii!1))")
                   (("1" (assert)) ("2" (assert))))))
                ("2"
                 (hide-all-but (1 -8 -9))
                 (expand "PART2")
                 (rewrite "ii_of_x_def")
                 (typepred "P2!1")
                 (inst - "0")
                 (assert))))
              ("2"
               (skosimp)
               (assert)
               (lemma "parts_order_le"
                ("a" "a" "b" "b" "P" "P1!1" "ii" "0" "jj" "ii!1"))
               (assert)
               (assert)
               (typepred "P1!1")
               (lemma "parts_order"
                ("a" "a" "b" "b" "P" "P1!1" "ii" "ii!1" "jj" "N1+1"))
               (assert))))
            ("2"
             (hide-all-but (1 -8))
             (typepred "phi!1")
             (typepred "psi!1")
             (expand "step?")
             (flatten)
             (hide -1 -3)
             (apply-extensionality :hide? t)
             (expand "zeroed?")
             (inst - "x!1")
             (inst - "x!1")
             (grind))))
          ("2"
           (hide 2)
           (induct "n")
           (("1"
             (assert)
             (expand "sigma" 1)
             (assert)
             (inst - "0")
             (expand "GG")
             (hide -1)
             (lemma "integral.integral_ae_eq"
              ("f"
               "phi(closed(seq(P2!1)(0), seq(P2!1)(1))) *
                               (-[real])(phi!1, psi!1)"
               "h"
               "FF(0)"))
             (("1"
               (assert)
               (hide 2)
               (expand "ae_eq?")
               (expand "restrict")
               (expand "pointwise_ae?")
               (expand "ae?")
               (expand "fullset")
               (expand "ae_in?")
               (lemma "singleton_is_null" ("x" "seq(P2!1)(0)"))
               (lemma "singleton_is_null" ("x" "seq(P2!1)(1)"))
               (lemma "null_union"
                ("N1"
                 "singleton[real](seq(P2!1)(0))"
                 "N2"
                 "singleton[real](seq(P2!1)(1))"))
               (inst +
                "union[real]
                                    (singleton[real](seq(P2!1)(0)),
                                     singleton[real](seq(P2!1)(1)))")
               (skosimp)
               (hide -1 -2 -3)
               (expand "union")
               (expand "singleton")
               (expand "member")
               (flatten)
               (hide -1 -2 -3 -8 -9 -4)
               (expand "FF")
               (expand "PHI")
               (expand "EE")
               (grind))
              ("2"
               (assert)
               (lemma "integrable_is_measurable")
               (inst - "FF(0)"))))
            ("2"
             (skosimp*)
             (assert)
             (expand "sigma" 1)
             (replace -1 1 rl)
             (hide -1 -3)
             (expand "GG")
             (inst - "1+j!1")
             (expand "FF")
             (name-replace "HH" "(-[real])(phi!1, psi!1)")
             (expand "PHI")
             (rewrite "integral_add" 1 :dir rl)
             (lemma "parts_order_le"
              ("a" "a" "b" "b" "P" "P2!1" "ii" "0" "jj" "1+j!1"))
             (split)
             (("1"
               (lemma "closed_is_measurable"
                ("a" "seq(P2!1)(0)" "b" "seq(P2!1)(1 + j!1)"))
               (lemma "indefinite_integrable"
                ("E"
                 "closed(seq(P2!1)(0), seq(P2!1)(1 + j!1))"
                 "f"
                 "HH"))
               (("1"
                 (lemma "integrable_add"
                  ("f1"
                   "(*[real])(phi(EE(1 + j!1)), HH)"
                   "f2"
                   "phi(closed(seq(P2!1)(0), seq(P2!1)(1 + j!1))) * HH"))
                 (("1"
                   (lemma "indefinite_integrable"
                    ("E"
                     "closed(seq(P2!1)(0), seq(P2!1)(2 + j!1))"
                     "f"
                     "HH"))
                   (lemma "integral.integral_ae_eq"
                    ("f"
                     "phi(closed(seq(P2!1)(0), seq(P2!1)(2 + j!1))) * HH"
                     "h"
                     "((*[real])(phi(EE(1 + j!1)), HH)) +
                                      phi(closed(seq(P2!1)(0), seq(P2!1)(1 + j!1))) * HH"))
                   (("1"
                     (assert)
                     (hide -1 -2 -3 -4 2 -7 -8 -9 -10 -14 -15)
                     (expand "ae_eq?")
                     (expand "restrict")
                     (expand "pointwise_ae?")
                     (expand "ae?")
                     (expand "fullset")
                     (expand "ae_in?")
                     (lemma "singleton_is_null"
                      ("x" "seq(P2!1)(2 + j!1)"))
                     (inst + "singleton[real](seq(P2!1)(2 + j!1))")
                     (skosimp)
                     (expand "singleton")
                     (hide -1)
                     (typepred "P2!1")
                     (inst - "1+j!1")
                     (expand "EE")
                     (grind))
                    ("2"
                     (lemma "integrable_is_measurable")
                     (inst-cp - "((*[real])(phi(EE(1 + j!1)), HH))")
                     (inst -
                      "phi(closed(seq(P2!1)(0), seq(P2!1)(1 + j!1))) * HH")
                     (rewrite "sum_measurable[real, cal_M]" 1))))
                  ("2" (propax)) ("3" (propax))))
                ("2" (propax))))
              ("2" (assert))))
            ("3" (skosimp*) (assert)) ("4" (skosimp*) (assert))
            ("5" (skosimp*) (assert)) ("6" (skosimp*) (assert))
            ("7"
             (skosimp)
             (lemma "parts_order_le"
              ("a" "a" "b" "b" "P" "P2!1" "ii" "0" "jj" "1+n!2"))
             (split)
             (("1"
               (assert)
               (lemma "indefinite_integrable[real, cal_M, lambda_]"
                ("E"
                 "closed(seq(P2!1)(0), seq(P2!1)(1 + n!2))"
                 "f"
                 "(-[real])(phi!1,psi!1)"))
               (propax))
              ("2" (assert))))
            ("8" (assert))
            ("9"
             (skosimp)
             (lemma "parts_order_le"
              ("a" "a" "b" "b" "P" "P2!1" "ii" "0" "jj" "1+n!2"))
             (assert))
            ("10" (assert)) ("11" (skosimp*) (assert))
            ("12" (skosimp) (assert))))
          ("3" (skosimp*) (assert)) ("4" (skosimp*) (assert))
          ("5"
           (skosimp)
           (lemma "parts_order_le"
            ("a" "a" "b" "b" "P" "P2!1" "ii" "0" "jj" "1+n!1"))
           (split)
           (("1"
             (lemma "closed_is_measurable"
              ("a" "seq(P2!1)(0)" "b" "seq(P2!1)(1 + n!1)"))
             (rewrite "indefinite_integrable"))
            ("2" (assert))))
          ("6" (skosimp) (assert)) ("7" (skosimp) (assert))))
        ("2" (propax))))
      ("2"
       (skosimp)
       (expand "FF")
       (expand "PHI")
       (rewrite "indefinite_integrable")
       (expand "EE")
       (hide-all-but 1)
       (typepred "P2!1")
       (inst - "ii!1")
       (lemma "open_is_measurable"
        ("a" "seq(P2!1)(ii!1)" "b" "seq(P2!1)(1 + ii!1)"))
       (("1"
         (case-replace
          "open(seq(P2!1)(ii!1), seq(P2!1)(1 + ii!1))={x | seq(P2!1)(ii!1) < x & x < seq(P2!1)(1 + ii!1)}")
         (apply-extensionality :hide? t)
         (hide -1 2)
         (grind))
        ("2" (propax))))))
    ("3" (propax))))


proof_type: f_proof
decl_type: formula
library: lebesgue
theory: riemann_scaf
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skolem + ("PS!1" "_"))
   (case "FORALL (f: bounded):
                        convergence?(part_norm o PS!1, 0) =>
                         convergence?(integral o lower_step(f) o PS!1,
                                       lower_riemann_integral(f))")
   (("1"
     (skosimp)
     (inst-cp - "f!1")
     (assert)
     (inst - "-f!1")
     (("1"
       (hide -2 -3)
       (case-replace
        "lower_riemann_integral(-f!1) = -upper_riemann_integral(f!1)")
       (("1"
         (hide -1)
         (expand "o")
         (case-replace
          "(LAMBDA (x_1: nat):
                                       integral(lower_step(-f!1)(PS!1(x_1))))=(LAMBDA (x_1: nat): -integral(upper_step(f!1)(PS!1(x_1))))")
         (("1"
           (hide -1)
           (rewrite "metric_convergence_def")
           (("1"
             (rewrite "metric_convergence_def")
             (("1"
               (expand "metric_converges_to")
               (skosimp)
               (inst - "r!1")
               (skosimp)
               (inst + "n!1")
               (skosimp)
               (inst - "i!1")
               (assert)
               (name-replace "DRL1" "upper_riemann_integral(f!1)")
               (name-replace "DRL2"
                "integral(upper_step(f!1)(PS!1(i!1)))")
               (grind))
              ("2"
               (skosimp)
               (lemma "riemann_lebesgue_step_integrable"
                ("phi" "upper_step(f!1)(PS!1(x!1))"))
               (flatten))))
            ("2"
             (skosimp)
             (lemma "riemann_lebesgue_step_integrable"
              ("phi" "upper_step(f!1)(PS!1(x!1))"))
             (flatten))))
          ("2"
           (hide -1 2)
           (apply-extensionality :hide? t)
           (("1"
             (name-replace "P!1" "PS!1(x!1)")
             (case-replace "lower_step(-f!1)(P!1)=-upper_step(f!1)(P!1)")
             (("1" (rewrite "integral_opp"))
              ("2"
               (hide 2)
               (expand "upper_step")
               (expand "lower_step")
               (apply-extensionality :hide? t)
               (expand "lower_step")
               (expand "upper_step")
               (expand "-")
               (case-replace "x!2 < a OR b < x!2")
               (replace 1 2)
               (case-replace
                "(EXISTS (ii: below(length(P!1) - 1)): x!2 = seq(P!1)(ii)) OR
                                           x!2 = b")
               (replace 1 3)
               (flatten)
               (typepred
                "inf[real](image[real,real](LAMBDA (x: real): -f!1(x), part_set_of(P!1)(x!2)))")
               (name-replace "INF"
                "inf[real](image[real,real](LAMBDA (x: real): -f!1(x), part_set_of(P!1)(x!2)))")
               (typepred
                "sup[real](image[real,real](f!1, part_set_of(P!1)(x!2)))")
               (name-replace "SUP"
                "sup[real](image[real,real](f!1, part_set_of(P!1)(x!2)))")
               (expand "greatest_lower_bound")
               (expand "least_upper_bound")
               (flatten)
               (inst -2 "-INF")
               (split -2)
               (("1"
                 (inst -4 "-SUP")
                 (split -4)
                 (("1" (assert)) ("2" (propax))
                  ("3"
                   (expand "lower_bound" 1)
                   (skosimp)
                   (typepred "z!1")
                   (expand "image" -1)
                   (skosimp)
                   (expand "upper_bound" -3)
                   (inst -3 "-z!1")
                   (("1" (assert))
                    ("2" (expand "image") (inst 1 "x!3") (assert))))))
                ("2" (assert))
                ("3"
                 (expand "upper_bound" 1)
                 (skosimp)
                 (typepred "z!1")
                 (expand "image" -1)
                 (skosimp)
                 (expand "lower_bound" -3)
                 (inst -3 "-z!1")
                 (("1" (assert))
                  ("2" (expand "image") (inst 1 "x!3") (assert))))))))
            ("2"
             (skosimp)
             (lemma "riemann_lebesgue_step_integrable"
              ("phi" "upper_step(f!1)(PS!1(x!1))"))
             (flatten))
            ("3"
             (skosimp)
             (lemma "riemann_lebesgue_step_integrable"
              ("phi" "lower_step(-f!1)(PS!1(x!1))"))
             (flatten))
            ("4"
             (typepred "f!1")
             (expand "zeroed_bounded?")
             (flatten)
             (split)
             (("1"
               (expand "bounded?")
               (skosimp)
               (inst + "c!1")
               (skosimp)
               (inst - "x!1")
               (hide -2)
               (grind))
              ("2"
               (hide -1)
               (expand "zeroed?")
               (skosimp)
               (inst - "x!1")
               (grind))))))
          ("3"
           (skosimp)
           (lemma "riemann_lebesgue_step_integrable"
            ("phi" "upper_step(f!1)(PS!1(x!1))"))
           (flatten))
          ("4"
           (skosimp)
           (lemma "riemann_lebesgue_step_integrable"
            ("phi" "lower_step(-f!1)(PS!1(x!1))"))
           (flatten))
          ("5"
           (hide -1 2)
           (typepred "f!1")
           (expand "zeroed_bounded?")
           (flatten)
           (split)
           (("1"
             (expand "bounded?")
             (skosimp)
             (inst + "c!1")
             (skosimp)
             (inst - "x!1")
             (hide -2)
             (grind))
            ("2"
             (hide -1)
             (expand "zeroed?")
             (skosimp)
             (inst - "x!1")
             (grind))))))
        ("2"
         (hide-all-but 1)
         (expand "upper_riemann_integral")
         (expand "lower_riemann_integral")
         (typepred
          "sup({z | EXISTS phi: phi <= -f!1 AND z = integral(phi)})")
         (("1"
           (name-replace "LHS"
            "sup({z | EXISTS phi: phi <= -f!1 AND z = integral(phi)})")
           (typepred
            "inf({z | EXISTS psi: f!1 <= psi AND z = integral(psi)})")
           (("1"
             (name-replace "RHS"
              "inf({z | EXISTS psi: f!1 <= psi AND z = integral(psi)})")
             (expand "greatest_lower_bound")
             (expand "least_upper_bound")
             (flatten)
             (inst -4 "-RHS")
             (assert)
             (split -4)
             (("1"
               (inst -3 "-LHS")
               (split -3)
               (("1" (assert)) ("2" (assert))
                ("3"
                 (expand "lower_bound" 1)
                 (skosimp)
                 (typepred "z!1")
                 (skosimp)
                 (expand "upper_bound")
                 (inst -5 "-z!1")
                 (("1" (assert))
                  ("2"
                   (inst + "-psi!1")
                   (("1"
                     (split 1)
                     (("1"
                       (hide-all-but (-1 1))
                       (expand "<=")
                       (skosimp)
                       (inst - "x!1")
                       (grind))
                      ("2" (rewrite "integral_opp") (assert))))
                    ("2"
                     (hide-all-but (1))
                     (typepred "psi!1")
                     (expand "step?")
                     (flatten)
                     (split)
                     (("1"
                       (expand "step_function?")
                       (skosimp)
                       (inst + "P!1")
                       (expand "step_function_on?")
                       (skosimp)
                       (inst - "ii!1")
                       (skosimp)
                       (inst + "-fv!1")
                       (skosimp)
                       (inst - "x!1")
                       (grind))
                      ("2"
                       (hide -1)
                       (expand "zeroed?")
                       (skosimp)
                       (inst - "x!1")
                       (grind))))))))))
              ("2"
               (expand "upper_bound" 1)
               (skosimp)
               (typepred "z!1")
               (skosimp)
               (expand "lower_bound" -3)
               (inst -3 "-z!1")
               (("1" (assert))
                ("2"
                 (inst + "-phi!1")
                 (("1"
                   (split)
                   (("1"
                     (hide-all-but (-1 1))
                     (expand "<=")
                     (skosimp)
                     (inst - "x!1")
                     (grind))
                    ("2" (rewrite "integral_opp" 1) (assert))))
                  ("2"
                   (hide-all-but 1)
                   (typepred "phi!1")
                   (expand "step?")
                   (flatten)
                   (split)
                   (("1"
                     (hide -2)
                     (expand "step_function?")
                     (skosimp)
                     (inst + "P!1")
                     (expand "step_function_on?")
                     (skosimp)
                     (inst - "ii!1")
                     (skosimp)
                     (inst + "-fv!1")
                     (skosimp)
                     (inst - "x!1")
                     (grind))
                    ("2"
                     (hide -1)
                     (expand "zeroed?")
                     (skosimp)
                     (inst - "x!1")
                     (grind))))))))))
            ("2"
             (hide -1 2)
             (lemma "upper_riemann_integral_TCC2" ("f" "f!1"))
             (propax))
            ("3"
             (skosimp)
             (lemma "riemann_lebesgue_step_integrable" ("phi" "psi!1"))
             (flatten))))
          ("2"
           (lemma "lower_riemann_integral_TCC2" ("f" "-f!1"))
           (("1" (propax))
            ("2"
             (hide 2 3)
             (typepred "f!1")
             (expand "zeroed_bounded?")
             (flatten)
             (split)
             (("1"
               (hide -2)
               (expand "bounded?")
               (skosimp)
               (inst + "c!1")
               (skosimp)
               (inst - "x!1")
               (grind))
              ("2"
               (hide -1)
               (expand "zeroed?")
               (skosimp)
               (inst - "x!1")
               (grind))))))
          ("3"
           (hide 2)
           (skosimp)
           (lemma "riemann_lebesgue_step_integrable" ("phi" "phi!1"))
           (flatten))))))
      ("2"
       (typepred "f!1")
       (hide-all-but (-1 1))
       (expand "zeroed_bounded?")
       (flatten)
       (split)
       (("1"
         (expand "bounded?")
         (skosimp)
         (inst + "c!1")
         (skosimp)
         (inst - "x!1")
         (hide -2)
         (grind))
        ("2"
         (hide -1)
         (expand "zeroed?")
         (skosimp)
         (inst - "x!1")
         (grind))))))
    ("2"
     (hide 2)
     (skosimp)
     (rewrite "metric_convergence_def")
     (("1"
       (rewrite "metric_convergence_def")
       (("1"
         (case "forall epsilon: exists n: forall (i:nat): i >= n => integral(lower_step(f!1)(PS!1(i))) > lower_riemann_integral(f!1)-epsilon")
         (("1"
           (expand "metric_converges_to")
           (skosimp)
           (expand "member")
           (expand "o ")
           (inst - "r!1")
           (skosimp)
           (inst + "n!1")
           (skosimp)
           (inst - "i!1")
           (assert)
           (hide -2)
           (expand "ball")
           (lemma "lower_riemann_prop2"
            ("phi" "lower_step(f!1)(PS!1(i!1))" "f" "f!1"))
           (lemma "lower_step_prop" ("f" "f!1" "P" "PS!1(i!1)"))
           (assert)
           (expand "lower_step" -2 1)
           (expand "abs")
           (assert))
          ("2"
           (hide 2)
           (skosimp)
           (expand "metric_converges_to")
           (lemma "lower_riemann_prop1"
            ("f" "f!1" "epsilon" "epsilon!1/2"))
           (skosimp)
           (name-replace "LOWER_RIEMANN" "lower_riemann_integral(f!1)")
           (expand "member")
           (typepred "phi!1")
           (expand "step?")
           (flatten)
           (expand "step_function?")
           (skosimp)
           (hide -2)
           (name "phi!2" "lower_step(f!1,P!1)")
           (case "phi!1 <= phi!2")
           (("1"
             (case "phi!2 <= f!1 & integral(phi!2) > LOWER_RIEMANN - epsilon!1 / 2")
             (("1"
               (flatten)
               (hide -3 -5 -6 -7)
               (lemma "lower_step_error"
                ("phi" "phi!2" "f" "f!1" "P1" "P!1"))
               (replace -4)
               (case-replace "length(P!1)=2")
               (("1"
                 (assert)
                 (inst + "0")
                 (skosimp)
                 (expand "lower_step" 1)
                 (inst - "PS!1(i!1)" "lower_step(f!1, PS!1(i!1))")
                 (assert))
                ("2"
                 (case "length(P!1)-2>=1")
                 (("1"
                   (hide 1)
                   (typepred "sup_norm(f!1)")
                   (("1"
                     (expand ">=" -1)
                     (expand "<=" -1)
                     (split)
                     (("1"
                       (lemma "posreal_times_posreal_is_posreal"
                        ("px" "2" "py" "sup_norm(f!1)"))
                       (("1"
                         (lemma "posreal_times_posreal_is_posreal"
                          ("px"
                           "length(P!1)-2"
                           "py"
                           "2 * sup_norm(f!1)"))
                         (("1"
                           (name-replace "KK"
                            "(length(P!1) - 2) * (2 * sup_norm(f!1))")
                           (hide -2 -3)
                           (lemma "posreal_div_posreal_is_posreal"
                            ("px" "epsilon!1" "py" "KK*2"))
                           (("1"
                             (inst -8 "epsilon!1 / (KK * 2)")
                             (("1"
                               (skosimp)
                               (inst + "n!1")
                               (skosimp)
                               (inst -9 "i!1")
                               (expand "lower_step" 1)
                               (assert)
                               (expand "ball" -9)
                               (expand "o")
                               (rewrite "abs_mult" -9)
                               (expand "abs" -9)
                               (rewrite "one_times")
                               (inst -4 "PS!1(i!1)"
                                "lower_step(f!1,PS!1(i!1))")
                               (lemma "both_sides_times_pos_lt1"
                                ("pz"
                                 "KK"
                                 "x"
                                 "part_norm(PS!1(i!1))"
                                 "y"
                                 "epsilon!1 / (2 * KK)"))
                               (case-replace
                                "epsilon!1 / (2 * KK) * KK=epsilon!1/2")
                               (("1" (assert)) ("2" (assert))))
                              ("2" (assert))))
                            ("2" (assert))))
                          ("2" (propax)) ("3" (assert))))
                        ("2" (assert))))
                      ("2"
                       (replace -1 * rl)
                       (assert)
                       (inst + "0")
                       (skosimp)
                       (expand "lower_step" 1)
                       (inst - "PS!1(i!1)" "lower_step(f!1, PS!1(i!1))")
                       (assert))))
                    ("2"
                     (typepred "f!1")
                     (expand "zeroed_bounded?")
                     (flatten))))
                  ("2" (assert))))))
              ("2"
               (split)
               (("1"
                 (lemma "lower_step_prop" ("f" "f!1" "P" "P!1"))
                 (assert))
                ("2"
                 (hide -6 2)
                 (lemma "integral_ae_le" ("f1" "phi!1" "f2" "phi!2"))
                 (split)
                 (("1" (assert))
                  ("2"
                   (hide-all-but (-1 1))
                   (expand "ae_le?")
                   (expand "pointwise_ae?")
                   (expand "ae?")
                   (expand "fullset")
                   (expand "ae_in?")
                   (inst + " emptyset[real]")
                   (skosimp)
                   (expand "<=" -1)
                   (inst - "x!1")
                   (expand "member")
                   (propax))))))
              ("3"
               (flatten)
               (lemma "riemann_lebesgue_step_integrable" ("phi" "phi!2"))
               (flatten))))
            ("2"
             (hide -4 -5 2)
             (expand "<=")
             (skosimp)
             (replace -1 1 rl)
             (hide -1)
             (expand "lower_step")
             (typepred "phi!1")
             (expand "step?")
             (flatten)
             (hide -1)
             (expand "zeroed?")
             (inst - "x!1")
             (case-replace "x!1 < a OR b < x!1")
             (("1" (assert))
              ("2"
               (assert)
               (replace 1)
               (case-replace
                "(EXISTS (ii: below(length(P!1) - 1)): x!1 = seq(P!1)(ii)) OR
                                         x!1 = b")
               (("1" (inst -3 "x!1"))
                ("2"
                 (replace 1 3)
                 (typepred "inf(image(f!1, part_set_of(P!1)(x!1)))")
                 (name-replace "INF"
                  "inf(image(f!1, part_set_of(P!1)(x!1)))")
                 (expand "greatest_lower_bound")
                 (flatten)
                 (expand "lower_bound")
                 (inst -2 "phi!1(x!1)")
                 (assert)
                 (skosimp)
                 (typepred "z!1")
                 (expand "image")
                 (skosimp)
                 (typepred "x!2")
                 (lemma "part_set_of_prop" ("x" "x!1" "P" "P!1"))
                 (assert)
                 (replace 2 -1)
                 (expand "part_set_of")
                 (flatten)
                 (expand "step_function_on?")
                 (inst -7 "ii_of_x(P!1)(x!1)")
                 (skosimp)
                 (inst-cp -7 "x!1")
                 (("1"
                   (inst -7 "x!2")
                   (("1" (assert) (replace -8) (inst -9 "x!2") (assert))
                    ("2" (assert))))
                  ("2" (assert))))))))))
          ("3"
           (skosimp)
           (lemma "riemann_lebesgue_step_integrable"
            ("phi" "lower_step(f!1)(PS!1(i!1))"))
           (flatten))))
        ("2" (skosimp) (assert))))
      ("2" (skosimp) (assert))))
    ("3" (hide 2) (skosimp) (skosimp) (assert))
    ("4" (hide 2) (skosimp*) (assert))
    ("5"
     (hide 2)
     (skosimp*)
     (assert)
     (lemma "riemann_lebesgue_step_integrable"
      ("phi" "lower_step(f!1)(x1!1)"))
     (flatten))
    ("6" (hide 2) (skosimp*) (assert))
    ("7" (hide 2) (skosimp*) (assert))))


proof_type: f_proof
decl_type: formula
library: lebesgue
theory: riemann_scaf
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (expand "part_norm")
   (expand "partition_2n")
   (lemma "width_eq_part" ("a" "a" "b" "b" "N" "1+2^n!1"))
   (("1" (assert))
    ("2"
     (hide 2)
     (lemma "real_expt_int_rew" ("x" "2" "i" "n!1"))
     (assert)
     (replace -1)
     (assert))))


proof_type: f_proof
decl_type: formula
library: lebesgue
theory: riemann_scaf
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (expand "part_refines?")
   (skosimp)
   (expand "<=" -1)
   (split)
   (("1"
     (typepred "ii!1")
     (expand "partition_2n" -1)
     (expand "eq_partition" -1)
     (name "JJ" "floor(ii!1/2^(m!1-n!1))")
     (("1"
       (lemma "real_expt_pos" ("px" "2" "a" "m!1-n!1"))
       (lemma "both_sides_div_pos_le1"
        ("x" "0" "y" "ii!1" "pz" "2 ^ (m!1 - n!1)"))
       (("1"
         (assert)
         (rewrite "div_def" -1)
         (rewrite "zero_times1")
         (typepred "floor(ii!1 / 2 ^ (m!1 - n!1))")
         (replace -5)
         (case "JJ<2^n!1")
         (("1"
           (inst + "JJ")
           (("1"
             (expand "partition_2n")
             (expand "eq_partition")
             (assert)
             (rewrite "div_mult_pos_le2" -2)
             (rewrite "div_mult_pos_lt1" -3)
             (split)
             (("1"
               (assert)
               (lemma "posreal_div_posreal_is_posreal"
                ("px" "b-a" "py" "2^m!1"))
               (lemma "both_sides_times_pos_le1"
                ("x"
                 "JJ * 2 ^ (m!1 - n!1)"
                 "y"
                 "ii!1"
                 "pz"
                 "(b-a)/2^m!1"))
               (("1"
                 (assert)
                 (name-replace "RHS" "ii!1 * ((b - a) / 2 ^ m!1)")
                 (case-replace
                  "2 ^ (m!1 - n!1) * ((b - a) / 2 ^ m!1) = (b - a) / 2 ^ n!1")
                 (("1" (assert))
                  ("2"
                   (lemma "real_expt_minus"
                    ("px" "2" "a" "m!1" "b" "n!1"))
                   (assert))))
                ("2" (assert))))
              ("2"
               (lemma "both_sides_times_pos_le1"
                ("pz" "b-a" "x" "(ii!1+1)/2^m!1" "y" "(JJ+1)/2^n!1"))
               (flatten -1)
               (hide -1)
               (split)
               (("1" (assert))
                ("2"
                 (hide 2)
                 (rewrite "div_mult_pos_le1" 1)
                 (case-replace
                  "(1 + JJ) / 2 ^ n!1 * 2 ^ m!1=(1+JJ)*2^(m!1-n!1)")
                 (("1"
                   (case "forall (i,j:int): i < j => i+1 <= j")
                   (("1"
                     (inst - "ii!1" "(1 + JJ) * 2 ^ (m!1 - n!1)")
                     (("1" (assert))
                      ("2"
                       (rewrite "real_expt_int_rew")
                       (assert)
                       (expand "^" 1)
                       (propax))))
                    ("2" (hide-all-but 1) (grind))))
                  ("2"
                   (hide 2)
                   (rewrite "real_expt_minus" 1)
                   (assert))))))))
            ("2"
             (expand "partition_2n")
             (expand "eq_partition")
             (propax))))
          ("2"
           (hide 2)
           (lemma "both_sides_div_pos_lt1"
            ("x" "ii!1" "y" "2^m!1" "pz" "2 ^ (m!1 - n!1)"))
           (lemma "real_expt_minus" ("px" "2" "a" "m!1" "b" "m!1-n!1"))
           (assert))))
        ("2" (propax))))
      ("2"
       (rewrite "real_expt_int_rew")
       (rewrite "real_expt_int_rew")
       (assert))))
    ("2" (inst + "ii!1") (("1" (assert)) ("2" (assert))))))


proof_type: f_proof
decl_type: formula
library: lebesgue
theory: riemann_scaf
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (expand "<=" 1)
   (skosimp)
   (expand "lower_step" 1 2)
   (case-replace "x!1 < a OR b < x!1")
   (("1" (expand "lower_step") (assert) (replace -1) (assert))
    ("2"
     (replace 1)
     (case-replace "x!1=b")
     (("1" (expand "lower_step") (assert))
      ("2"
       (replace 1)
       (case-replace
        "EXISTS (ii: below(length(P2!1) - 1)): x!1 = seq(P2!1)(ii)")
       (("1"
         (lemma "lower_step_prop" ("f" "f!1" "P" "P1!1"))
         (expand "<=" -1)
         (inst - "x!1"))
        ("2"
         (replace 1)
         (expand "lower_step")
         (replace 3)
         (replace 2)
         (case-replace
          "EXISTS (ii: below(length(P1!1) - 1)): x!1 = seq(P1!1)(ii)")
         (("1"
           (skosimp)
           (hide 5)
           (expand "part_refines?")
           (name "II" "ii_of_x(P2!1)(x!1)")
           (("1"
             (inst - "II")
             (skosimp)
             (case-replace "jj!1=ii!1")
             (("1" (inst + "II") (assert) (rewrite "ii_of_x_def" -2))
              ("2"
               (rewrite "ii_of_x_def" -1)
               (flatten)
               (expand "<=" -1)
               (split)
               (("1"
                 (lemma "part_not_in" ("a" "a" "b" "b" "x" "x!1"))
                 (assert)
                 (inst - "P1!1")
                 (inst - "jj!1" "ii!1")
                 (split)
                 (("1" (assert)) ("2" (assert)) ("3" (assert))))
                ("2" (inst + "II") (assert))))))
            ("2" (assert))))
          ("2"
           (replace 1)
           (hide 1 2)
           (typepred "inf(image(f!1, part_set_of(P1!1)(x!1)))")
           (name-replace "INF1"
            "inf(image(f!1, part_set_of(P1!1)(x!1)))")
           (typepred "inf(image(f!1, part_set_of(P2!1)(x!1)))")
           (name-replace "INF2"
            "inf(image(f!1, part_set_of(P2!1)(x!1)))")
           (expand "greatest_lower_bound")
           (expand "lower_bound")
           (flatten)
           (inst -2 "INF1")
           (assert)
           (skosimp)
           (typepred "z!1")
           (expand "image")
           (skosimp)
           (typepred "x!2")
           (expand "part_refines?")
           (expand "part_set_of")
           (flatten)
           (name "II" "ii_of_x(P2!1)(x!1)")
           (replace -1)
           (inst -8 "II")
           (skosimp)
           (inst -6 "f!1(x!2)")
           (("1" (assert))
            ("2"
             (expand "image")
             (inst + "x!2")
             (expand "part_set_of")
             (lemma "ii_of_x_def"
              ("P" "P1!1" "x" "x!1" "ii" "ii_of_x(P1!1)(x!1)"))
             (assert)
             (flatten)
             (case-replace "ii_of_x(P1!1)(x!1)=jj!1")
             (("1" (assert))
              ("2"
               (hide 2)
               (rewrite "ii_of_x_def" 1)
               (assert)
               (rewrite "ii_of_x_def" -3)
               (flatten)
               (assert))))))))))))))


proof_type: f_proof
decl_type: formula
library: lebesgue
theory: riemann_scaf
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (lemma "lower_refines" ("P1" "P1!1" "P2" "P2!1" "f" "-f!1"))
   (("1"
     (assert)
     (case "forall P: lower_step(-f!1, P) = -upper_step(f!1, P)")
     (("1"
       (inst-cp - "P1!1")
       (inst - "P2!1")
       (assert)
       (replace -1)
       (replace -2)
       (hide-all-but (1 -3))
       (expand "-")
       (expand "<=")
       (skosimp)
       (inst - "x!1")
       (assert))
      ("2"
       (hide-all-but 1)
       (skosimp)
       (apply-extensionality :hide? t)
       (expand "lower_step")
       (expand "upper_step")
       (case-replace "x!1 < a OR b < x!1")
       (("1" (expand "-") (assert) (replace -1) (assert))
        ("2"
         (expand "-" 2 1)
         (expand "-" 2 3)
         (replace 1)
         (case-replace
          "(EXISTS (ii: below(length(P!1) - 1)): x!1 = seq(P!1)(ii)) OR
                    x!1 = b")
         (replace 1)
         (typepred "sup(image(f!1, part_set_of(P!1)(x!1)))")
         (name-replace "RHS" "sup(image(f!1, part_set_of(P!1)(x!1)))")
         (typepred "inf(image(-f!1, part_set_of(P!1)(x!1)))")
         (name-replace "LHS" "inf(image(-f!1, part_set_of(P!1)(x!1)))")
         (expand "greatest_lower_bound")
         (expand "least_upper_bound")
         (expand "upper_bound")
         (expand "lower_bound")
         (flatten)
         (inst -2 "-RHS")
         (assert)
         (split -2)
         (("1"
           (inst -4 "-LHS")
           (assert)
           (skosimp)
           (typepred "z!1")
           (expand "image")
           (skosimp)
           (typepred "x!2")
           (inst -4 "-z!1")
           (("1" (assert))
            ("2" (expand "image") (inst 1 "x!2") (expand "-") (assert))))
          ("2"
           (skosimp)
           (typepred "z!1")
           (expand "image")
           (skosimp)
           (expand "-" -1)
           (inst -3 "f!1(x!2)")
           (("1" (assert)) ("2" (expand "image") (inst + "x!2"))))))))))
    ("2"
     (hide -1 2)
     (typepred "f!1")
     (expand "zeroed_bounded?")
     (flatten)
     (split)
     (("1"
       (expand "bounded?")
       (skosimp)
       (inst + "c!1")
       (skosimp)
       (inst - "x!1")
       (expand "-")
       (rewrite "abs_neg"))
      ("2"
       (hide -1)
       (expand "zeroed?")
       (skosimp)
       (inst - "x!1")
       (expand "-")
       (assert))))))


proof_type: f_proof
decl_type: formula
library: lebesgue
theory: riemann_scaf
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (rewrite "metric_continuous_at_def")
   (expand "metric_continuous_at?")
   (expand "member")
   (expand "ball")
   (inst - "epsilon!1/2")
   (skosimp)
   (lemma "part_norm_partition_2n")
   (lemma "posreal_div_posreal_is_posreal" ("px" "b-a" "py" "delta!1"))
   (("1"
     (name "ll" "log(2)((b - a) / delta!1)")
     (("1"
       (name "M" "ceiling(ll)")
       (lemma "ceiling_def" ("x" "ll"))
       (flatten)
       (name "N" "max(0,M)")
       (case "(b - a) / delta!1 <= 2^N")
       (("1"
         (hide -3 -4 -5 -6)
         (inst + "N")
         (("1"
           (expand "lower_step")
           (typepred "f!1")
           (expand "zeroed_bounded?")
           (flatten)
           (expand "zeroed?")
           (inst - "x!1")
           (case-replace "x!1 < a OR b < x!1")
           (("1" (assert))
            ("2"
             (case-replace
              "(EXISTS (ii: below(length(partition_2n(N)) - 1)):
                              x!1 = seq(partition_2n(N))(ii))
                            OR x!1 = b")
             (("1" (assert) (replace 1) (assert))
              ("2"
               (replace 1)
               (replace 2)
               (flatten)
               (typepred
                "inf(image(f!1, part_set_of(partition_2n(N))(x!1)))")
               (("1"
                 (name-replace "RHS"
                  "inf(image(f!1, part_set_of(partition_2n(N))(x!1)))")
                 (expand "greatest_lower_bound")
                 (flatten)
                 (expand "lower_bound")
                 (inst -2 "f!1(x!1) - epsilon!1")
                 (assert)
                 (skosimp)
                 (typepred "z!1")
                 (expand "image")
                 (skosimp)
                 (typepred "x!2")
                 (expand "part_set_of")
                 (flatten)
                 (name "II" "ii_of_x(partition_2n(N))(x!1)")
                 (replace -1)
                 (rewrite "ii_of_x_def" -1)
                 (flatten)
                 (expand "<=" -1)
                 (split)
                 (("1"
                   (replace -5)
                   (inst -12 "x!2")
                   (split -12)
                   (("1" (hide-all-but (-1 1)) (grind))
                    ("2"
                     (hide-all-but (-1 -2 -3 -4 -8 1))
                     (case "(b - a) / 2^N <= delta!1")
                     (("1"
                       (hide -6)
                       (expand "partition_2n")
                       (expand "eq_partition")
                       (grind))
                      ("2"
                       (hide-all-but (-5 1))
                       (rewrite "div_mult_pos_le1")
                       (rewrite "div_mult_pos_le1")
                       (assert))))))
                  ("2" (inst 2 "II") (assert))))
                ("2" (assert))))
              ("3" (skosimp) (assert))))))
          ("2" (assert))))
        ("2"
         (hide -7 -8 2)
         (replace -4)
         (hide -4)
         (replace -4 -2 rl)
         (hide -4 -3)
         (lemma "both_sides_real_expt_gt1_le"
          ("gt1x" "2" "a" "log(2)((b - a) / delta!1)" "b" "M"))
         (("1"
           (rewrite "expt_log")
           (assert)
           (lemma "both_sides_real_expt_gt1_le"
            ("gt1x" "2" "a" "M" "b" "N"))
           (assert))
          ("2" (assert))))))
      ("2" (assert))))
    ("2" (assert) (assert))))


proof_type: f_proof
decl_type: formula
library: lebesgue
theory: riemann_scaf
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (lemma "is_countable_cross[nat,nat]" ("X" "fullset" "Y" "fullset"))
   (case-replace "is_countable[nat](fullset[nat])")
   (("1"
     (lemma "countable_image[[nat,nat],real]"
      ("S"
       "cross_product(fullset, fullset)"
       "f"
       "lambda (i,j:nat): ((b-a)*i)/2^j+a"))
     (("1"
       (assert)
       (lemma "countability.countable_subset")
       (inst - "partition_2n_exterior"
        "(image[[nat,nat],real](LAMBDA (i, j: nat): (i * b - i * a) / 2 ^ j + a)
                                (cross_product(fullset[nat], fullset[nat])))")
       (("1"
         (assert)
         (hide-all-but 1)
         (expand "subset?")
         (expand "member")
         (expand "partition_2n_exterior")
         (skosimp)
         (expand "fullset")
         (expand "cross_product")
         (expand "image")
         (expand "image")
         (skosimp)
         (inst + "(n!1,m!1)"))
        ("2"
         (skosimp)
         (lemma "real_expt_pos" ("px" "2" "a" "j!1"))
         (assert))))
      ("2"
       (skosimp)
       (lemma "real_expt_pos" ("px" "2" "a" "j!1"))
       (assert))))
    ("2"
     (hide -1 2)
     (expand "fullset")
     (expand "is_countable")
     (inst + "lambda n: n")
     (expand "injective?")
     (skosimp))))


proof_type: f_proof
decl_type: formula
library: lebesgue
theory: riemann_scaf
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (expand "disjoint?")
   (expand "empty?")
   (expand "intersection")
   (expand "member")
   (skosimp)
   (expand "partition_2n_interior")
   (expand "partition_2n_exterior")
   (lemma "trich_lt" ("x" "a" "y" "x!1"))
   (split)
   (("1"
     (assert)
     (lemma "trich_lt" ("x" "x!1" "y" "b"))
     (split)
     (("1" (assert)) ("2" (assert)) ("3" (assert))))
    ("2" (assert)) ("3" (assert))))


proof_type: f_proof
decl_type: formula
library: lebesgue
theory: riemann_scaf
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (apply-extensionality 1 :hide? t)
   (expand "union")
   (expand "closed")
   (expand "partition_2n_interior")
   (expand "partition_2n_exterior")
   (expand "member")
   (expand "closed_ball")
   (case-replace "a < x!1")
   (("1"
     (case-replace "x!1<b")
     (("1" (assert) (grind))
      ("2"
       (replace 1)
       (assert)
       (case-replace "x!1=b")
       (("1"
         (assert)
         (case-replace "abs((a + b) / 2 - b) <= (b - a) / 2")
         (("1" (inst + "1" "0") (rewrite "real_expt_x0") (assert))
          ("2" (hide 3) (grind))))
        ("2" (assert))))))
    ("2"
     (assert)
     (case-replace "x!1=a")
     (("1"
       (assert)
       (case-replace "abs((a + b) / 2 - a) <= (b - a) / 2")
       (("1" (inst + "0" "0") (rewrite "real_expt_x0") (assert))
        ("2" (hide 3) (grind))))
      ("2" (assert))))))


proof_type: f_proof
decl_type: formula
library: lebesgue
theory: riemann_scaf
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (expand "lower_step")
   (expand "lower_limit_n")
   (expand "partition_2n_interior")
   (flatten)
   (assert)
   (case-replace
    "EXISTS (ii: below(length(partition_2n(n!1)) - 1)):
                x!1 = seq(partition_2n(n!1))(ii)")
   (("1"
     (skosimp)
     (expand "partition_2n")
     (expand "eq_partition")
     (inst + "ii!1" "n!1"))
    ("2" (replace 1) (propax))))


proof_type: f_proof
decl_type: formula
library: lebesgue
theory: riemann_scaf
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (expand "upper_limit_n")
   (expand "upper_step")
   (expand "partition_2n_interior")
   (flatten)
   (assert)
   (case-replace
    "EXISTS (ii: below(length(partition_2n(n!1)) - 1)):
                x!1 = seq(partition_2n(n!1))(ii)")
   (("1"
     (skosimp)
     (expand "partition_2n")
     (expand "eq_partition")
     (inst + "ii!1" "n!1"))
    ("2" (replace 1) (propax))))


proof_type: f_proof
decl_type: formula
library: lebesgue
theory: riemann_scaf
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (expand "lower_limit")
   (case-replace "partition_2n_interior(x!1)")
   (("1"
     (typepred "sup(image(lower_limit_n(f!1, x!1), fullset[nat]))")
     (("1"
       (name-replace "SUP"
        "sup(image(lower_limit_n(f!1, x!1), fullset[nat]))")
       (expand "least_upper_bound")
       (expand "fullset")
       (expand "upper_bound")
       (flatten)
       (inst -1 "lower_step(f!1, partition_2n(n!1))(x!1)")
       (("1"
         (assert)
         (inst -2 "f!1(x!1)")
         (assert)
         (skosimp)
         (typepred "z!1")
         (expand "image")
         (skolem - "m!1")
         (lemma "lower_limit_n_prop" ("f" "f!1" "x" "x!1" "n" "m!1"))
         (assert)
         (lemma "lower_step_prop" ("f" "f!1" "P" "partition_2n(m!1)"))
         (expand "<=" -1)
         (inst - "x!1")
         (assert))
        ("2"
         (expand "image")
         (inst + "n!1")
         (lemma "lower_limit_n_prop" ("f" "f!1" "x" "x!1" "n" "n!1"))
         (assert))))
      ("2"
       (hide 2)
       (lemma "lower_limit_TCC1" ("f" "f!1" "x" "x!1"))
       (assert))
      ("3" (propax))))
    ("2"
     (replace 1)
     (assert)
     (lemma "lower_step_prop" ("f" "f!1" "P" "partition_2n(n!1)"))
     (expand "<=" -1)
     (inst - "x!1"))))


proof_type: f_proof
decl_type: formula
library: lebesgue
theory: riemann_scaf
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (expand "upper_limit")
   (case-replace "partition_2n_interior(x!1)")
   (("1"
     (typepred "inf(image(upper_limit_n(f!1, x!1), fullset[nat]))")
     (("1"
       (name-replace "INF"
        "inf(image(upper_limit_n(f!1, x!1), fullset[nat]))")
       (expand "greatest_lower_bound")
       (expand "fullset")
       (expand "image")
       (expand "lower_bound")
       (flatten)
       (inst - "upper_limit_n(f!1, x!1)(n!1)")
       (("1"
         (lemma "upper_limit_n_prop" ("f" "f!1" "x" "x!1" "n" "n!1"))
         (assert)
         (inst -3 "f!1(x!1)")
         (assert)
         (skosimp)
         (typepred "z!1")
         (skolem - "m!1")
         (lemma "upper_limit_n_prop" ("f" "f!1" "x" "x!1" "n" "m!1"))
         (assert)
         (lemma "upper_step_prop" ("f" "f!1" "P" "partition_2n(m!1)"))
         (expand "<=" -1)
         (inst - "x!1")
         (assert))
        ("2" (inst + "n!1"))))
      ("2" (lemma "upper_limit_TCC1" ("f" "f!1" "x" "x!1")) (assert))
      ("3" (propax))))
    ("2"
     (assert)
     (lemma "upper_step_prop" ("f" "f!1" "P" "partition_2n(n!1)"))
     (expand "<=" -1)
     (inst - "x!1"))))


proof_type: f_proof
decl_type: formula
library: lebesgue
theory: riemann_scaf
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (case "lower_limit(f!1)(x!1) <= f!1(x!1) & f!1(x!1) <= upper_limit(f!1)(x!1)")
   (("1"
     (flatten)
     (expand "<=" -1)
     (split)
     (("1"
       (assert)
       (hide -2)
       (name "EPS" "(f!1(x!1)-lower_limit(f!1)(x!1))/2")
       (case "EPS>0")
       (("1"
         (lemma "continuous_step" ("f" "f!1" "x" "x!1" "epsilon" "EPS"))
         (("1"
           (assert)
           (skosimp)
           (lemma "lower_limit_prop" ("x" "x!1" "f" "f!1" "n" "n!1"))
           (assert))
          ("2" (assert))))
        ("2" (assert))))
      ("2"
       (expand "<=" -2)
       (split)
       (("1"
         (assert)
         (hide -2)
         (name "EPS" "(upper_limit(f!1)(x!1)-f!1(x!1))/2")
         (case "EPS>0")
         (("1"
           (lemma "continuous_step"
            ("f" "-f!1" "x" "x!1" "epsilon" "EPS"))
           (("1"
             (split)
             (("1"
               (skosimp)
               (assert)
               (rewrite "lower_step_neg")
               (expand "-" -1)
               (lemma "upper_limit_prop" ("f" "f!1" "x" "x!1" "n" "n!1"))
               (assert))
              ("2"
               (hide-all-but (-5 1))
               (rewrite "metric_continuous_at_def")
               (rewrite "metric_continuous_at_def")
               (expand "-")
               (expand "metric_continuous_at?")
               (expand "member")
               (expand "ball")
               (skosimp)
               (inst - "epsilon!1")
               (skosimp)
               (inst + "delta!1")
               (skosimp)
               (inst - "x!2")
               (grind))))
            ("2"
             (hide-all-but 1)
             (typepred "f!1")
             (expand "zeroed_bounded?")
             (flatten)
             (split)
             (("1"
               (expand "-")
               (expand "bounded?")
               (skosimp)
               (inst + "c!1")
               (skosimp)
               (inst - "x!2")
               (grind))
              ("2"
               (hide -1)
               (expand "-")
               (expand "zeroed?")
               (skosimp)
               (inst - "x!2")
               (grind))))
            ("3" (assert))))
          ("2" (assert))))
        ("2"
         (assert)
         (rewrite "metric_continuous_at_def")
         (expand "metric_continuous_at?")
         (expand "member")
         (expand "ball")
         (skosimp)
         (expand "lower_limit")
         (typepred "sup(image(lower_limit_n(f!1, x!1), fullset[nat]))")
         (replace -3 *)
         (hide -3)
         (expand "least_upper_bound")
         (flatten)
         (expand "fullset")
         (expand "image")
         (expand "upper_bound")
         (inst -2 "f!1(x!1)-epsilon!1/3")
         (assert)
         (skosimp)
         (typepred "z!1")
         (skolem -1 "i!1")
         (case "f!1(x!1) - lower_limit_n(f!1, x!1)(i!1) < epsilon!1/2")
         (("1"
           (hide -2 1)
           (hide -2)
           (expand "upper_limit")
           (typepred "inf(image(upper_limit_n(f!1, x!1), fullset[nat]))")
           (replace -3 -1 rl)
           (hide -3)
           (expand "greatest_lower_bound")
           (flatten)
           (expand "fullset")
           (expand "image")
           (inst -2 "f!1(x!1)+epsilon!1/3")
           (assert)
           (hide -1)
           (expand "lower_bound")
           (skosimp)
           (typepred "z!2")
           (skolem - "j!1")
           (replace -1)
           (hide -1)
           (case "upper_limit_n(f!1, x!1)(j!1)-f!1(x!1) <epsilon!1 / 2")
           (("1"
             (hide 1)
             (lemma "upper_limit_n_prop" ("x" "x!1" "f" "f!1" "n" "j!1"))
             (lemma "lower_limit_n_prop" ("x" "x!1" "f" "f!1" "n" "i!1"))
             (assert)
             (replace -1)
             (replace -2)
             (hide -1 -2)
             (lemma "partion_2n_refines" ("n" "i!1" "m" "i!1+j!1"))
             (lemma "partion_2n_refines" ("n" "j!1" "m" "i!1+j!1"))
             (assert)
             (name "N" "i!1 + j!1")
             (replace -1)
             (lemma "lower_refines"
              ("f"
               "f!1"
               "P2"
               "partition_2n(N)"
               "P1"
               "partition_2n(i!1)"))
             (assert)
             (lemma "upper_refines"
              ("f"
               "f!1"
               "P2"
               "partition_2n(N)"
               "P1"
               "partition_2n(j!1)"))
             (assert)
             (hide -4 -5)
             (lemma "lower_step_prop" ("f" "f!1" "P" "partition_2n(N)"))
             (lemma "upper_step_prop" ("f" "f!1" "P" "partition_2n(N)"))
             (case "upper_step(f!1, partition_2n(N))(x!1) - f!1(x!1) < epsilon!1 / 2")
             (("1"
               (case "f!1(x!1) - lower_step(f!1, partition_2n(N))(x!1) < epsilon!1 / 2")
               (("1"
                 (hide -5 -6 -8 -9)
                 (name "II" "ii_of_x(partition_2n(N))(x!1)")
                 (("1"
                   (rewrite "ii_of_x_def" -1)
                   (flatten)
                   (expand "<=" -1)
                   (split)
                   (("1"
                     (name "DELTA"
                           "min(x!1-seq(partition_2n(N))(II),seq(partition_2n(N))(1 + II)-x!1)")
                     (case "DELTA>0")
                     (("1"
                       (inst + "DELTA")
                       (("1"
                         (skosimp)
                         (expand "<=" (-7 -8))
                         (inst -7 "x!2")
                         (inst -8 "x!2")
                         (case "seq(partition_2n(N))(II) < x!2&x!2 < seq(partition_2n(N))(1 + II)")
                         (("1"
                           (flatten)
                           (lemma "ii_of_x_def"
                            ("P" "partition_2n(N)" "x" "x!2" "ii" "II"))
                           (("1"
                             (assert)
                             (case-replace
                              "lower_step(f!1, partition_2n(N))(x!2)=lower_step(f!1, partition_2n(N))(x!1)")
                             (("1"
                               (hide -1)
                               (name-replace "LOW"
                                "lower_step(f!1, partition_2n(N))(x!1)")
                               (case-replace
                                "upper_step(f!1, partition_2n(N))(x!2)=upper_step(f!1, partition_2n(N))(x!1)")
                               (("1"
                                 (hide -1)
                                 (name-replace
                                  "HIGH"
                                  "upper_step(f!1, partition_2n(N))(x!1)")
                                 (expand "abs" 1)
                                 (case-replace "f!1(x!1) - f!1(x!2) < 0")
                                 (("1" (assert)) ("2" (assert))))
                                ("2"
                                 (hide 2 -8 -9 -10 -11 -12)
                                 (expand "upper_step")
                                 (case-replace
                                  "EXISTS (ii: below(length(partition_2n(N)) - 1)):
                                             x!2 = seq(partition_2n(N))(ii)")
                                 (("1"
                                   (skosimp)
                                   (lemma
                                    "part_not_in"
                                    ("a" "a" "b" "b" "x" "x!2"))
                                   (assert)
                                   (inst - "partition_2n(N)")
                                   (inst - "II" "ii!1")
                                   (assert))
                                  ("2"
                                   (replace 1)
                                   (hide 1)
                                   (case-replace
                                    "EXISTS (ii: below(length(partition_2n(N)) - 1)):
                                                x!1 = seq(partition_2n(N))(ii)")
                                   (("1"
                                     (skosimp)
                                     (lemma
                                      "part_not_in"
                                      ("a" "a" "b" "b" "x" "x!1"))
                                     (assert)
                                     (inst - "partition_2n(N)")
                                     (inst - "II" "ii!1")
                                     (assert))
                                    ("2"
                                     (replace 1)
                                     (hide 1)
                                     (lemma
                                      "ii_of_x_def"
                                      ("x"
                                       "x!1"
                                       "P"
                                       "partition_2n(N)"
                                       "ii"
                                       "II"))
                                     (assert)
                                     (expand "part_set_of")
                                     (replace -1)
                                     (replace -2)
                                     (propax))))))))
                              ("2"
                               (hide 2 -8 -9 -10 -11)
                               (expand "lower_step")
                               (case-replace
                                "EXISTS (ii: below(length(partition_2n(N)) - 1)):
                                           x!2 = seq(partition_2n(N))(ii)")
                               (("1"
                                 (skosimp)
                                 (lemma
                                  "part_not_in"
                                  ("a" "a" "b" "b" "x" "x!2"))
                                 (assert)
                                 (inst - "partition_2n(N)")
                                 (inst - "II" "ii!1")
                                 (assert))
                                ("2"
                                 (replace 1)
                                 (hide 1)
                                 (case-replace
                                  "EXISTS (ii: below(length(partition_2n(N)) - 1)):
                                              x!1 = seq(partition_2n(N))(ii)")
                                 (("1"
                                   (skosimp)
                                   (lemma
                                    "part_not_in"
                                    ("a" "a" "b" "b" "x" "x!1"))
                                   (assert)
                                   (inst - "partition_2n(N)")
                                   (inst - "II" "ii!1")
                                   (assert))
                                  ("2"
                                   (replace 1)
                                   (hide 1)
                                   (expand "part_set_of")
                                   (replace -1)
                                   (lemma
                                    "ii_of_x_def"
                                    ("x"
                                     "x!1"
                                     "P"
                                     "partition_2n(N)"
                                     "ii"
                                     "II"))
                                   (assert)
                                   (replace -1)
                                   (propax))))))))
                            ("2" (assert))))
                          ("2"
                           (hide-all-but (-1 -2 -3 -4 -11 1))
                           (expand "min")
                           (case-replace
                            "x!1 - seq(partition_2n(N))(II) >
                                      seq(partition_2n(N))(1 + II) - x!1")
                           (("1" (assert)) ("2" (assert))))))
                        ("2" (assert))))
                      ("2"
                       (assert)
                       (hide-all-but (-1 -2 1))
                       (expand "min")
                       (case-replace
                        "x!1 - seq(partition_2n(N))(II) >
                                  seq(partition_2n(N))(1 + II) - x!1")
                       (("1" (assert)) ("2" (assert))))))
                    ("2"
                     (hide 1)
                     (expand "partition_2n_interior")
                     (flatten)
                     (expand "partition_2n")
                     (expand "eq_partition")
                     (inst + "II" "N")
                     (assert))))
                  ("2"
                   (expand "partition_2n_interior")
                   (flatten)
                   (assert))))
                ("2" (expand "<=" -5) (inst -5 "x!1") (assert))))
              ("2" (expand "<=" -3) (inst -3 "x!1") (assert))))
            ("2" (assert))))
          ("2" (assert))))))))
    ("2"
     (hide 2)
     (lemma "upper_limit_prop" ("f" "f!1" "x" "x!1" "n" "0"))
     (lemma "lower_limit_prop" ("f" "f!1" "x" "x!1" "n" "0"))
     (assert)
     (flatten)
     (assert))))


proof_type: f_proof
decl_type: formula
library: lebesgue
theory: riemann_scaf
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (lemma "darboux" ("PS" "partition_2n" "f" "f!1"))
   (name-replace "RHS" "lower_riemann_integral(f!1)")
   (split -1)
   (("1"
     (flatten)
     (hide -2)
     (lemma "monotone_convergence_complete"
      ("F"
       "lambda n: lower_step(f!1,partition_2n(n))"
       "h"
       "lower_limit(f!1)"))
     (("1"
       (split -1)
       (("1"
         (flatten)
         (expand "monotonic_converges?")
         (flatten)
         (replace -1)
         (name-replace "LHS" "integral(lower_limit(f!1))")
         (hide -3)
         (expand "o")
         (expand "lower_step" -3)
         (name-replace "FF"
          "lambda n: integral(lower_step(f!1, partition_2n(n)))")
         (lemma "hausdorff_convergence.unique_limit"
          ("u" "FF" "l1" "LHS" "l2" "RHS"))
         (assert))
        ("2"
         (hide 2)
         (expand "RHS")
         (expand "ae_monotonic_converges?")
         (split)
         (("1"
           (expand "ae_convergence?")
           (expand "fullset")
           (expand "ae_convergence_in?")
           (expand "ae_in?")
           (inst + "partition_2n_exterior")
           (("1"
             (skosimp)
             (expand "member")
             (lemma "partition_2n_ext_int_union")
             (case "a<=x!1&x!1<=b")
             (("1"
               (flatten)
               (case "partition_2n_interior(x!1)")
               (("1"
                 (hide -4 1)
                 (rewrite "metric_convergence_def" +)
                 (expand "metric_converges_to")
                 (skosimp)
                 (expand "member")
                 (expand "ball")
                 (expand "lower_limit")
                 (assert)
                 (typepred
                  "sup(image(lower_limit_n(f!1, x!1), fullset[nat]))")
                 (("1"
                   (name-replace "SUP"
                    "sup(image(lower_limit_n(f!1, x!1), fullset[nat]))")
                   (expand "least_upper_bound")
                   (flatten)
                   (expand "upper_bound")
                   (inst -2 "SUP-r!1/2")
                   (assert)
                   (skosimp)
                   (typepred "z!1")
                   (expand "fullset")
                   (expand "image")
                   (skolem - "n!1")
                   (case "SUP-lower_limit_n(f!1, x!1)(n!1)<r!1/2")
                   (("1"
                     (hide -2 1)
                     (inst + "n!1")
                     (skosimp)
                     (lemma "lower_limit_n_prop"
                      ("x" "x!1" "f" "f!1" "n" "n!1"))
                     (lemma "lower_limit_n_prop"
                      ("x" "x!1" "f" "f!1" "n" "i!1"))
                     (assert)
                     (inst -4 "lower_limit_n(f!1, x!1)(i!1)")
                     (("1"
                       (expand "abs")
                       (assert)
                       (lemma "partion_2n_refines" ("n" "n!1" "m" "i!1"))
                       (lemma "lower_refines"
                        ("f"
                         "f!1"
                         "P2"
                         "partition_2n(i!1)"
                         "P1"
                         "partition_2n(n!1)"))
                       (assert)
                       (assert)
                       (expand "<=" -1)
                       (inst - "x!1")
                       (assert))
                      ("2"
                       (expand "fullset")
                       (expand "image")
                       (inst + "i!1"))))
                    ("2" (assert))))
                  ("2"
                   (lemma "lower_limit_TCC1" ("f" "f!1" "x" "x!1"))
                   (assert))))
                ("2"
                 (case-replace "closed(a,b)(x!1)")
                 (("1"
                   (replace -4 -1 rl)
                   (expand "union")
                   (expand "member")
                   (split)
                   (("1" (propax)) ("2" (propax))))
                  ("2" (hide-all-but (-1 -2 1)) (grind))))))
              ("2"
               (hide -1 2)
               (rewrite "metric_convergence_def")
               (expand "lower_limit")
               (expand "lower_step")
               (case-replace "x!1<a")
               (("1"
                 (expand "partition_2n_interior")
                 (assert)
                 (typepred "f!1")
                 (expand "zeroed_bounded?")
                 (flatten)
                 (expand "zeroed?")
                 (inst - "x!1")
                 (assert)
                 (replace -2)
                 (hide-all-but 1)
                 (expand "metric_converges_to")
                 (skosimp)
                 (inst + "0")
                 (skosimp)
                 (expand "ball")
                 (expand "member")
                 (expand "abs")
                 (assert))
                ("2"
                 (expand "partition_2n_interior")
                 (assert)
                 (typepred "f!1")
                 (expand "zeroed_bounded?")
                 (flatten)
                 (expand "zeroed?")
                 (inst - "x!1")
                 (assert)
                 (replace -2)
                 (hide-all-but 3)
                 (expand "metric_converges_to")
                 (skosimp)
                 (inst + "0")
                 (skosimp)
                 (grind))))))
            ("2"
             (lemma "countable_is_null")
             (inst - "partition_2n_exterior")
             (("1" (rewrite "null_is_negligible"))
              ("2" (lemma "countable_2n_exterior") (propax))))))
          ("2"
           (flatten)
           (hide 2)
           (expand "ae_increasing?")
           (inst + "emptyset[real]")
           (skosimp)
           (skosimp)
           (lemma "lower_refines"
            ("P2"
             "partition_2n(j!1)"
             "P1"
             "partition_2n(i!1)"
             "f"
             "f!1"))
           (lemma "partion_2n_refines" ("n" "i!1" "m" "j!1"))
           (assert)
           (expand "<=" -2)
           (inst - "x!1"))))
        ("3"
         (hide -1 2)
         (expand "bounded?")
         (split)
         (("1"
           (expand "bounded_above?")
           (lemma "riemann_lebesgue_step_integrable"
            ("phi" "upper_step(f!1,partition_2n(0))"))
           (flatten)
           (inst + "integral(upper_step(f!1, partition_2n(0)))")
           (skolem + "n!1")
           (expand "o ")
           (lemma "riemann_lebesgue_step_integrable"
            ("phi" "lower_step(f!1,partition_2n(n!1))"))
           (flatten)
           (hide-all-but (-2 -5 1))
           (lemma "integral_ae_le"
            ("f1"
             "lower_step(f!1, partition_2n(n!1))"
             "f2"
             "upper_step(f!1, partition_2n(0))"))
           (assert)
           (hide-all-but 1)
           (expand "ae_le?")
           (expand "pointwise_ae?")
           (expand "ae?")
           (expand "fullset")
           (expand "ae_in?")
           (inst + "emptyset[real]")
           (skosimp)
           (expand "member")
           (lemma "lower_step_prop" ("f" "f!1" "P" "partition_2n(n!1)"))
           (lemma "upper_step_prop" ("f" "f!1" "P" "partition_2n(0)"))
           (expand "<=" (-1 -2))
           (inst - "x!1")
           (inst - "x!1")
           (assert))
          ("2"
           (expand "bounded_below?")
           (lemma "riemann_lebesgue_step_integrable"
            ("phi" "lower_step(f!1, partition_2n(0))"))
           (flatten)
           (inst + "integral(lower_step(f!1, partition_2n(0)))")
           (skolem + "n!1")
           (expand "o ")
           (lemma "riemann_lebesgue_step_integrable"
            ("phi" "lower_step(f!1, partition_2n(n!1))"))
           (flatten)
           (hide-all-but (-2 -5 1))
           (lemma "integral_ae_le"
            ("f1"
             "lower_step(f!1, partition_2n(0))"
             "f2"
             "lower_step(f!1, partition_2n(n!1))"))
           (assert)
           (hide-all-but 1)
           (expand "ae_le?")
           (expand "pointwise_ae?")
           (expand "ae?")
           (expand "fullset")
           (expand "ae_in?")
           (expand "member")
           (inst + "emptyset[real]")
           (skosimp)
           (lemma "partion_2n_refines" ("n" "0" "m" "n!1"))
           (lemma "lower_refines"
            ("P2" "partition_2n(n!1)" "P1" "partition_2n(0)" "f" "f!1"))
           (assert)
           (replace -2 -1)
           (expand "<=" -1)
           (inst - "x!1"))))))
      ("2"
       (hide 2 -1)
       (skosimp)
       (lemma "riemann_lebesgue_step_integrable"
        ("phi" "lower_step(f!1, partition_2n(n!1))"))
       (flatten))))
    ("2"
     (hide 2)
     (expand "o ")
     (rewrite "metric_convergence_def")
     (expand "metric_converges_to")
     (lemma "part_norm_partition_2n")
     (skosimp)
     (expand "member")
     (expand "ball")
     (lemma "posreal_div_posreal_is_posreal" ("px" "b-a" "py" "r!1"))
     (("1"
       (name "N" "max(0,floor(log(2)((b - a) / r!1)))")
       (("1"
         (typepred "floor(log(2)((b - a) / r!1))")
         (("1"
           (name-replace "FLOOR" "floor(log(2)((b - a) / r!1))")
           (inst + "N+1")
           (skosimp)
           (inst -5 "i!1")
           (rewrite "abs_mult")
           (rewrite "abs_neg")
           (expand "abs" 1)
           (rewrite "one_times")
           (replace -5)
           (hide -5)
           (case "(b - a)/r!1 < 2^i!1")
           (("1"
             (rewrite "div_mult_pos_lt1" -1)
             (rewrite "div_mult_pos_lt1" 1)
             (assert))
            ("2"
             (hide 2)
             (name-replace "BAR" "(b - a) / r!1")
             (lemma "expt_log" ("ne1x" "2" "y" "BAR"))
             (("1"
               (lemma "both_sides_real_expt_gt1_lt"
                ("gt1x" "2" "a" "log(2)(BAR)" "b" "i!1"))
               (assert))
              ("2" (assert))))))
          ("2" (assert))))
        ("2" (assert))))
      ("2" (assert) (typepred "b") (assert))))))


proof_type: f_proof
decl_type: formula
library: lebesgue
theory: riemann_scaf
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (lemma "darboux" ("PS" "partition_2n" "f" "f!1"))
   (split -1)
   (("1"
     (flatten)
     (hide -1)
     (expand "upper_step" -1)
     (expand "o")
     (name-replace "RHS" "upper_riemann_integral(f!1)")
     (lemma "monotone_convergence_complete"
      ("F"
       "lambda n: upper_step(f!1,partition_2n(n))"
       "h"
       "upper_limit(f!1)"))
     (("1"
       (split -1)
       (("1"
         (flatten)
         (expand "o")
         (name-replace "LHS" "integral(upper_limit(f!1))")
         (name-replace "FF"
          "lambda n: integral(upper_step(f!1, partition_2n(n)))")
         (expand "monotonic_converges?")
         (assert)
         (flatten)
         (hide -1 -3)
         (lemma "hausdorff_convergence.unique_limit"
          ("u" "FF" "l1" "LHS" "l2" "RHS"))
         (assert))
        ("2"
         (hide 2)
         (expand "RHS")
         (expand "ae_monotonic_converges?")
         (split)
         (("1"
           (hide -1)
           (expand "ae_convergence?")
           (expand "fullset")
           (expand "ae_convergence_in?")
           (expand "ae_in?")
           (inst + "partition_2n_exterior")
           (("1"
             (skosimp)
             (case "a<=x!1& x!1<=b")
             (("1"
               (flatten)
               (expand "<=" -1)
               (split)
               (("1"
                 (expand "<=" -2)
                 (split)
                 (("1"
                   (case "partition_2n_interior(x!1)")
                   (("1"
                     (hide 1)
                     (expand "upper_limit")
                     (assert)
                     (rewrite "metric_convergence_def")
                     (expand "metric_converges_to")
                     (expand "member")
                     (expand "ball")
                     (skosimp)
                     (typepred
                      "inf(image(upper_limit_n(f!1, x!1), fullset[nat]))")
                     (("1"
                       (name-replace "INF"
                        "inf(image(upper_limit_n(f!1, x!1), fullset[nat]))")
                       (expand "greatest_lower_bound")
                       (flatten)
                       (expand "fullset")
                       (expand "lower_bound")
                       (inst -2 "INF+r!1/2")
                       (assert)
                       (skosimp)
                       (typepred "z!1")
                       (expand "image")
                       (skolem - "n!1")
                       (lemma "upper_limit_n_prop"
                        ("f" "f!1" "x" "x!1" "n" "n!1"))
                       (assert)
                       (replace -1)
                       (replace -2)
                       (case "r!1 / 2 + INF > upper_step(f!1, partition_2n(n!1))(x!1)")
                       (("1"
                         (hide 1)
                         (inst + "n!1")
                         (hide -3)
                         (skosimp)
                         (inst -3 "upper_limit_n(f!1, x!1)(i!1)")
                         (("1"
                           (case-replace
                            "upper_step(f!1, partition_2n(i!1))(x!1)-INF < r!1")
                           (("1"
                             (expand "abs" 1)
                             (assert)
                             (case-replace
                              "INF - upper_step(f!1, partition_2n(i!1))(x!1) < 0")
                             (("1" (assert))
                              ("2"
                               (assert)
                               (lemma "upper_limit_n_prop"
                                ("f" "f!1" "x" "x!1" "n" "i!1"))
                               (assert))))
                            ("2"
                             (assert)
                             (hide 2)
                             (lemma "upper_limit_n_prop"
                              ("f" "f!1" "x" "x!1" "n" "i!1"))
                             (assert)
                             (lemma "partion_2n_refines"
                              ("n" "n!1" "m" "i!1"))
                             (assert)
                             (lemma "upper_refines"
                              ("f"
                               "f!1"
                               "P2"
                               "partition_2n(i!1)"
                               "P1"
                               "partition_2n(n!1)"))
                             (assert)
                             (expand "<=" -1)
                             (inst - "x!1")
                             (assert))))
                          ("2" (expand "image") (inst + "i!1"))))
                        ("2" (assert))))
                      ("2"
                       (lemma "upper_limit_TCC1" ("f" "f!1" "x" "x!1"))
                       (assert))))
                    ("2"
                     (hide 3)
                     (expand "partition_2n_interior")
                     (expand "partition_2n_exterior")
                     (assert))))
                  ("2"
                   (expand "partition_2n_exterior")
                   (assert)
                   (inst + "1" "0")
                   (rewrite "real_expt_x0")
                   (assert))))
                ("2"
                 (expand "partition_2n_exterior")
                 (assert)
                 (inst + "0" "0")
                 (rewrite "real_expt_x0")
                 (assert))))
              ("2"
               (case-replace "upper_limit(f!1)(x!1)=0")
               (("1"
                 (expand "member")
                 (replace -1)
                 (hide -1)
                 (case-replace
                  "(LAMBDA (n_1: nat):
                                       upper_step(f!1, partition_2n(n_1))(x!1))=lambda n: 0")
                 (("1"
                   (hide-all-but 3)
                   (rewrite "metric_convergence_def")
                   (expand "metric_converges_to")
                   (skosimp)
                   (inst + " 0")
                   (skosimp)
                   (expand "ball")
                   (expand "member")
                   (expand "abs")
                   (assert))
                  ("2"
                   (apply-extensionality :hide? t)
                   (hide 4)
                   (expand "upper_step")
                   (assert)
                   (lift-if 1)
                   (case-replace "x!1 < a")
                   (assert)
                   (case-replace "b < x!1")
                   (assert))))
                ("2"
                 (hide 4)
                 (expand "upper_limit")
                 (expand "partition_2n_interior")
                 (assert)
                 (typepred "f!1")
                 (expand "zeroed_bounded?")
                 (flatten)
                 (expand "zeroed?")
                 (inst - "x!1")
                 (hide -1 3)
                 (case-replace "a<x!1")
                 (("1"
                   (assert)
                   (case-replace "x!1<b")
                   (("1" (assert)) ("2" (assert))))
                  ("2" (assert) (ground))))))))
            ("2"
             (lemma "countable_is_null" ("x" "partition_2n_exterior"))
             (("1" (rewrite "null_is_negligible"))
              ("2" (rewrite "countable_2n_exterior"))))))
          ("2"
           (flatten)
           (hide -1 1)
           (expand "ae_decreasing?")
           (inst + "emptyset")
           (skosimp)
           (skosimp)
           (lemma "partion_2n_refines" ("n" "i!1" "m" "j!1"))
           (assert)
           (lemma "upper_refines"
            ("f"
             "f!1"
             "P2"
             "partition_2n(j!1)"
             "P1"
             "partition_2n(i!1)"))
           (assert)
           (expand "<=" -1)
           (inst - "x!1"))))
        ("3"
         (hide -1 2)
         (expand "o ")
         (expand "bounded?")
         (split)
         (("1"
           (lemma "riemann_lebesgue_step_integrable"
            ("phi" "upper_step(f!1,partition_2n(0))"))
           (flatten)
           (expand "bounded_above?")
           (inst + "integral(upper_step(f!1, partition_2n(0)))")
           (skolem + "n!1")
           (lemma "riemann_lebesgue_step_integrable"
            ("phi" "upper_step(f!1,partition_2n(n!1))"))
           (flatten)
           (lemma "integral_ae_le"
            ("f1"
             "upper_step(f!1, partition_2n(n!1))"
             "f2"
             "upper_step(f!1, partition_2n(0))"))
           (assert)
           (hide-all-but 1)
           (expand "ae_le?")
           (expand "pointwise_ae?")
           (expand "ae?")
           (expand "fullset")
           (expand "ae_in?")
           (inst + "emptyset")
           (skosimp)
           (lemma "partion_2n_refines" ("n" "0" "m" "n!1"))
           (assert)
           (lemma "upper_refines"
            ("f" "f!1" "P2" "partition_2n(n!1)" "P1" "partition_2n(0)"))
           (assert)
           (expand "<=" -1)
           (inst - "x!1"))
          ("2"
           (expand "bounded_below?")
           (lemma "riemann_lebesgue_step_integrable"
            ("phi" "lower_step(f!1,partition_2n(0))"))
           (flatten)
           (inst + "integral(lower_step(f!1, partition_2n(0)))")
           (skolem + "n!1")
           (lemma "riemann_lebesgue_step_integrable"
            ("phi" "upper_step(f!1,partition_2n(n!1))"))
           (flatten)
           (lemma "integral_ae_le"
            ("f1"
             "lower_step(f!1, partition_2n(0))"
             "f2"
             "upper_step(f!1, partition_2n(n!1))"))
           (assert)
           (hide-all-but 1)
           (expand "ae_le?")
           (expand "pointwise_ae?")
           (expand "ae?")
           (expand "fullset")
           (expand "ae_in?")
           (inst + "emptyset")
           (skosimp)
           (lemma "lower_step_prop" ("f" "f!1" "P" "partition_2n(0)"))
           (lemma "upper_step_prop" ("f" "f!1" "P" "partition_2n(n!1)"))
           (expand "<=" (-1 -2))
           (inst - "x!1")
           (inst - "x!1")
           (assert))))))
      ("2"
       (skosimp)
       (lemma "riemann_lebesgue_step_integrable"
        ("phi" "upper_step(f!1, partition_2n(n!1))"))
       (flatten))))
    ("2"
     (hide 2)
     (expand "o")
     (rewrite "metric_convergence_def")
     (expand "metric_converges_to")
     (skosimp)
     (expand "member")
     (expand "ball")
     (lemma "part_norm_partition_2n")
     (lemma "posreal_div_posreal_is_posreal" ("px" "b-a" "py" "r!1"))
     (("1"
       (name "N" "max(0,floor(log(2)((b - a) / r!1)))")
       (("1"
         (inst + "N+1")
         (skosimp)
         (inst - "i!1")
         (rewrite "abs_mult")
         (rewrite "abs_neg")
         (expand "abs" 1)
         (rewrite "one_times")
         (replace -3)
         (hide -3)
         (case "(b-a)/r!1 < 2^i!1")
         (("1"
           (rewrite "div_mult_pos_lt1")
           (rewrite "div_mult_pos_lt1")
           (assert))
          ("2"
           (hide 2)
           (typepred "floor(log(2)((b - a) / r!1))")
           (("1"
             (name-replace "FLOOR" "floor(log(2)((b - a) / r!1))")
             (name-replace "BAR" "(b - a) / r!1")
             (lemma "both_sides_real_expt_gt1_le"
              ("gt1x" "2" "a" "1+FLOOR" "b" "i!1"))
             (assert)
             (lemma "both_sides_real_expt_gt1_lt"
              ("gt1x" "2" "a" "log(2)(BAR)" "b" "1 + FLOOR"))
             (rewrite "expt_log")
             (assert))
            ("2" (assert))))))
        ("2" (assert))))
      ("2" (assert) (assert))))))


proof_type: f_proof
decl_type: formula
library: lebesgue
theory: riemann_scaf
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (name "F" "LAMBDA n: lower_step(f!1, partition_2n(n))")
   (lemma "monotone_convergence_complete" ("F" "F" "h" "f!1"))
   (("1"
     (assert)
     (hide 2 -1)
     (split)
     (("1"
       (expand "ae_monotonic_converges?")
       (split)
       (("1"
         (expand "ae_convergence?")
         (expand "fullset")
         (expand "ae_convergence_in?")
         (expand "ae_in?")
         (expand "ae_continuous?")
         (inst + "{x | a < x AND x < b AND NOT continuous_at?(f!1, x)}")
         (("1"
           (skosimp)
           (hide -1)
           (typepred "f!1")
           (expand "F")
           (expand "member")
           (rewrite "metric_convergence_def")
           (expand "metric_converges_to")
           (expand "member")
           (expand "ball")
           (skosimp)
           (lemma "continuous_step"
            ("f" "f!1" "x" "x!1" "epsilon" "r!1/2"))
           (expand "zeroed_bounded?")
           (flatten)
           (hide -2)
           (expand "zeroed?")
           (inst-cp -2 "x!1")
           (case-replace "a<x!1")
           (("1"
             (case-replace "x!1<b")
             (("1"
               (assert)
               (hide -5 -6)
               (skosimp)
               (inst + "n!1")
               (skosimp)
               (lemma "partion_2n_refines" ("n" "n!1" "m" "i!1"))
               (assert)
               (lemma "lower_refines"
                ("P2"
                 "partition_2n(i!1)"
                 "P1"
                 "partition_2n(n!1)"
                 "f"
                 "f!1"))
               (assert)
               (hide -2)
               (lemma "lower_step_prop"
                ("f" "f!1" "P" "partition_2n(i!1)"))
               (name-replace "PHI" "lower_step(f!1, partition_2n(n!1))")
               (name-replace "PSI" "lower_step(f!1, partition_2n(i!1))")
               (expand "<=" (-1 -2))
               (inst - "x!1")
               (inst - "x!1")
               (expand "abs")
               (assert))
              ("2"
               (assert)
               (case-replace "x!1=b")
               (("1"
                 (assert)
                 (hide 1 -3 -5 -4)
                 (expand "lower_step")
                 (expand "abs")
                 (propax))
                ("2"
                 (assert)
                 (replace -4)
                 (expand "lower_step")
                 (expand "abs")
                 (propax))))))
            ("2"
             (case-replace "x!1=a")
             (("1"
               (assert)
               (hide -2 -1 -4 1)
               (expand "lower_step")
               (inst + "0")
               (skosimp)
               (case-replace
                "EXISTS (ii: below(length(partition_2n(i!1)) - 1)):
                           a = seq(partition_2n(i!1))(ii)")
               (("1" (expand "abs") (assert))
                ("2" (inst + "0") (("1" (assert)) ("2" (assert))))))
              ("2"
               (assert)
               (replace -3)
               (hide -1 -2)
               (inst + "0")
               (skosimp)
               (expand "lower_step")
               (expand "abs")
               (assert))))))
          ("2" (rewrite "null_is_negligible"))))
        ("2"
         (flatten)
         (hide 2 -1)
         (expand "ae_increasing?")
         (inst + "emptyset[real]")
         (skosimp)
         (hide 1)
         (skosimp)
         (expand "F")
         (lemma "partion_2n_refines" ("n" "i!1" "m" "j!1"))
         (assert)
         (lemma "lower_refines"
          ("f" "f!1" "P2" "partition_2n(j!1)" "P1" "partition_2n(i!1)"))
         (assert)
         (expand "<=" -1)
         (inst - "x!1"))))
      ("2"
       (hide -1)
       (typepred "f!1")
       (expand "zeroed_bounded?")
       (flatten)
       (expand "bounded?" -1)
       (skosimp)
       (lemma "integrable_phi_closed" ("a" "a" "b" "b"))
       (lemma "integral_phi_closed" ("a" "a" "b" "b"))
       (lemma "integrable_scal" ("c" "c!1" "f" "phi(closed(a, b))"))
       (lemma "integral_scal" ("c" "c!1" "f" "phi(closed(a, b))"))
       (lemma "integral_scal" ("c" "-c!1" "f" "phi(closed(a, b))"))
       (lemma "integrable_scal" ("c" "-c!1" "f" "phi(closed(a, b))"))
       (replace -5)
       (expand "bounded?")
       (split)
       (("1"
         (expand "bounded_above?")
         (inst + "c!1 * (b - a)")
         (skolem + "n!1")
         (expand "o")
         (lemma "riemann_lebesgue_step_integrable" ("phi" "F(n!1)"))
         (flatten)
         (lemma "integral_ae_le"
          ("f1" "F(n!1)" "f2" "c!1 * phi(closed(a, b))"))
         (assert)
         (hide 2)
         (expand "ae_le?")
         (expand "pointwise_ae?")
         (expand "ae?")
         (expand "fullset")
         (expand "ae_in?")
         (inst + "emptyset[real]")
         (skosimp)
         (expand "F")
         (hide-all-but (-10 -11 2))
         (lemma "lower_step_prop" ("f" "f!1" "P" "partition_2n(n!1)"))
         (expand "<=" -1)
         (inst - "x!1")
         (name-replace "LHS" "lower_step(f!1, partition_2n(n!1))(x!1)")
         (expand "*")
         (expand "phi")
         (expand "member")
         (expand "zeroed?")
         (inst - "x!1")
         (inst - "x!1")
         (case-replace "closed(a, b)(x!1)")
         (("1"
           (case "a<=x!1&x!1<=b")
           (("1"
             (flatten)
             (lemma "lower_step_prop"
              ("f" "f!1" "P" "partition_2n(n!1)"))
             (expand "<=" -1)
             (inst - "x!1")
             (assert))
            ("2" (hide-all-but (-1 1)) (grind))))
          ("2"
           (replace 1)
           (case-replace "x!1 < a OR b < x!1")
           (("1"
             (lemma "lower_step_prop"
              ("f" "f!1" "P" "partition_2n(n!1)"))
             (expand "<=" -1)
             (inst - "x!1")
             (assert))
            ("2" (hide-all-but (1 2)) (grind))))))
        ("2"
         (expand "bounded_below?")
         (expand "o" 1)
         (inst + "-c!1 * (b - a)")
         (skolem + "n!1")
         (hide -3 -4)
         (lemma "integral_ae_le"
          ("f1" "*[real](-c!1, phi(closed(a, b)))" "f2" "F(n!1)"))
         (assert)
         (hide-all-but (-5 -6 1))
         (expand "ae_le?")
         (expand "pointwise_ae?")
         (expand "ae?")
         (expand "fullset")
         (expand "ae_in?")
         (inst + "emptyset[real]")
         (skosimp)
         (expand "*")
         (expand "phi")
         (expand "member")
         (typepred "F(n!1)")
         (expand "step?")
         (flatten)
         (hide -1)
         (expand "zeroed?")
         (inst - "x!1")
         (case-replace "x!1 < a OR b < x!1")
         (("1" (replace -2) (hide-all-but (-1 2)) (grind))
          ("2"
           (replace 1)
           (case-replace "closed(a, b)(x!1)")
           (("1"
             (hide 2)
             (expand "F")
             (expand "lower_step")
             (hide -1)
             (replace 1)
             (case-replace
              "(EXISTS (ii: below(length(partition_2n(n!1)) - 1)):
                            x!1 = seq(partition_2n(n!1))(ii))
                          OR x!1 = b")
             (("1" (inst - "x!1") (hide-all-but (-2 2)) (grind))
              ("2"
               (replace 1)
               (flatten)
               (typepred
                "inf(image(f!1, part_set_of(partition_2n(n!1))(x!1)))")
               (name-replace "INF"
                "inf(image(f!1, part_set_of(partition_2n(n!1))(x!1)))")
               (expand "greatest_lower_bound")
               (flatten)
               (inst - "-c!1")
               (assert)
               (hide -1)
               (expand "lower_bound")
               (skosimp)
               (typepred "z!1")
               (expand "image")
               (skosimp)
               (replace -1)
               (inst -2 "x!2")
               (hide-all-but (-2 1))
               (grind))))
            ("2" (hide-all-but (1 2)) (grind))))))))))
    ("2"
     (hide 2 -2)
     (skolem + "n!1")
     (hide -1)
     (expand "F")
     (lemma "riemann_lebesgue_step_integrable"
      ("phi" "lower_step(f!1, partition_2n(n!1))"))
     (flatten))))


proof_type: f_proof
decl_type: formula
library: lebesgue
theory: riemann_scaf
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (lemma "ae_continuity_implies_integrable" ("f" "f!1"))
   (assert)
   (lemma "riemann_sequence"
    ("f"
     "f!1"
     "Phi"
     "lower_step(f!1) o partition_2n"
     "Psi"
     "upper_step(f!1) o partition_2n"))
   (("1"
     (split -1)
     (("1" (skosimp))
      ("2"
       (hide-all-but 1)
       (skosimp)
       (expand "o ")
       (expand "lower_step")
       (expand "upper_step")
       (rewrite "lower_step_prop")
       (rewrite "upper_step_prop"))
      ("3"
       (hide 2)
       (expand "o ")
       (expand "-")
       (expand "upper_step")
       (expand "lower_step")
       (lemma "monotone_convergence_complete"
        ("F" "lambda n: upper_step(f!1, partition_2n(n))" "h" "f!1"))
       (("1"
         (split)
         (("1"
           (flatten)
           (lemma "monotone_convergence_complete"
            ("F" "lambda n: lower_step(f!1, partition_2n(n))" "h" "f!1"))
           (("1"
             (split)
             (("1"
               (flatten)
               (expand "monotonic_converges?")
               (flatten)
               (hide -3 -6)
               (expand "o")
               (hide -1 -3)
               (rewrite "metric_convergence_def")
               (rewrite "metric_convergence_def")
               (rewrite "metric_convergence_def")
               (("1"
                 (hide -3 -4)
                 (expand "metric_converges_to")
                 (skosimp)
                 (inst - "r!1/2")
                 (inst - "r!1/2")
                 (skosimp*)
                 (inst + "n!1+n!2")
                 (skosimp)
                 (inst - "i!1")
                 (inst - "i!1")
                 (assert)
                 (expand "ball")
                 (rewrite "abs_mult" 1)
                 (rewrite "abs_neg")
                 (rewrite "integral_diff" 1)
                 (name-replace "DRL1"
                  "integral(lower_step(f!1, partition_2n(i!1)))")
                 (name-replace "DRL2"
                  "integral(upper_step(f!1, partition_2n(i!1)))")
                 (name-replace "DRL3" "integral(f!1)")
                 (grind))
                ("2"
                 (skosimp)
                 (rewrite "integrable_diff" 1)
                 (("1"
                   (lemma "riemann_lebesgue_step_integrable"
                    ("phi" "lower_step(f!1, partition_2n(x!1))"))
                   (flatten))
                  ("2"
                   (lemma "riemann_lebesgue_step_integrable"
                    ("phi" "upper_step(f!1, partition_2n(x!1))"))
                   (flatten))))))
              ("2"
               (hide 2 -2 -1)
               (expand "ae_monotonic_converges?")
               (split)
               (("1"
                 (expand "ae_convergence?")
                 (expand "fullset")
                 (expand "ae_convergence_in?")
                 (expand "ae_in?")
                 (expand "ae_continuous?")
                 (inst +
                  "{x | a < x AND x < b AND NOT continuous_at?(f!1, x)}")
                 (("1"
                   (skosimp)
                   (hide -2)
                   (expand "member")
                   (typepred "f!1")
                   (expand "zeroed_bounded?")
                   (flatten)
                   (hide -1)
                   (expand "zeroed?")
                   (inst - "x!1")
                   (case-replace "a<x!1")
                   (("1"
                     (case-replace "x!1<b")
                     (("1"
                       (rewrite "metric_convergence_def")
                       (expand "metric_converges_to")
                       (skosimp)
                       (expand "ball")
                       (expand "member")
                       (assert)
                       (hide -3)
                       (lemma "continuous_step"
                        ("f" "f!1" "x" "x!1" "epsilon" "r!1/2"))
                       (assert)
                       (skosimp)
                       (inst + "n!1")
                       (skosimp)
                       (lemma "lower_step_prop"
                        ("f" "f!1" "P" "partition_2n(i!1)"))
                       (expand "<=" -1)
                       (inst - "x!1")
                       (expand "abs")
                       (assert)
                       (lemma "partion_2n_refines" ("n" "n!1" "m" "i!1"))
                       (assert)
                       (lemma "lower_refines"
                        ("P2"
                         "partition_2n(i!1)"
                         "P1"
                         "partition_2n(n!1)"
                         "f"
                         "f!1"))
                       (assert)
                       (expand "<=" -1)
                       (inst - "x!1")
                       (assert))
                      ("2"
                       (case-replace "x!1=b")
                       (("1"
                         (assert)
                         (expand "lower_step")
                         (assert)
                         (hide-all-but 3)
                         (rewrite "metric_convergence_def")
                         (expand "metric_converges_to")
                         (skosimp)
                         (inst + "0")
                         (skosimp)
                         (expand "ball")
                         (expand "member")
                         (expand "abs")
                         (assert))
                        ("2"
                         (assert)
                         (replace -2)
                         (expand "lower_step")
                         (rewrite "metric_convergence_def")
                         (expand "metric_converges_to")
                         (skosimp)
                         (inst + "0")
                         (skosimp)
                         (expand "member")
                         (expand "ball")
                         (expand "abs")
                         (assert))))))
                    ("2"
                     (assert)
                     (case-replace "x!1=a")
                     (("1"
                       (expand "lower_step")
                       (rewrite "metric_convergence_def")
                       (("1"
                         (expand "metric_converges_to")
                         (skosimp)
                         (expand "member")
                         (expand "ball")
                         (expand "abs" 2 1)
                         (hide -1 -2 -3 1)
                         (inst + "0")
                         (skosimp)
                         (prop)
                         (inst + "0")
                         (("1" (assert)) ("2" (assert))))
                        ("2"
                         (skosimp)
                         (inst + "0")
                         (("1" (assert)) ("2" (assert))))))
                      ("2"
                       (assert)
                       (replace -1)
                       (expand "lower_step")
                       (assert)
                       (rewrite "metric_convergence_def")
                       (expand "metric_converges_to")
                       (skosimp)
                       (inst + "0")
                       (skosimp)
                       (expand "member")
                       (expand "ball")
                       (expand "abs")
                       (assert))))))
                  ("2" (rewrite "null_is_negligible"))))
                ("2"
                 (flatten)
                 (hide 2)
                 (expand "ae_increasing?")
                 (inst + "emptyset[real]")
                 (skosimp)
                 (skosimp)
                 (lemma "partion_2n_refines" ("n" "i!1" "m" "j!1"))
                 (assert)
                 (lemma "lower_refines"
                  ("f"
                   "f!1"
                   "P2"
                   "partition_2n(j!1)"
                   "P1"
                   "partition_2n(i!1)"))
                 (assert)
                 (expand "<=" -1)
                 (inst - "x!1"))))
              ("3"
               (hide-all-but 1)
               (expand "o ")
               (expand "bounded?")
               (split)
               (("1"
                 (expand "bounded_above?")
                 (lemma "riemann_lebesgue_step_integrable"
                  ("phi" "upper_step(f!1,partition_2n(0))"))
                 (flatten)
                 (hide -1 -3)
                 (inst + "integral(upper_step(f!1, partition_2n(0)))")
                 (skolem + "n!1")
                 (lemma "integral_ae_le"
                  ("f1"
                   "lower_step(f!1, partition_2n(n!1))"
                   "f2"
                   "upper_step(f!1, partition_2n(0))"))
                 (assert)
                 (hide-all-but 1)
                 (expand "ae_le?")
                 (expand "pointwise_ae?")
                 (expand "ae?")
                 (expand "fullset")
                 (expand "ae_in?")
                 (inst + " emptyset[real]")
                 (skosimp)
                 (lemma "lower_step_prop"
                  ("f" "f!1" "P" "partition_2n(n!1)"))
                 (lemma "upper_step_prop"
                  ("f" "f!1" "P" "partition_2n(0)"))
                 (expand "<=" (-1 -2))
                 (inst - "x!1")
                 (inst - "x!1")
                 (assert))
                ("2"
                 (expand "bounded_below?")
                 (lemma "riemann_lebesgue_step_integrable"
                  ("phi" "lower_step(f!1, partition_2n(0))"))
                 (flatten)
                 (hide -1 -3)
                 (inst + "integral(lower_step(f!1, partition_2n(0)))")
                 (skolem + "n!1")
                 (lemma "partion_2n_refines" ("n" "0" "m" "n!1"))
                 (assert)
                 (lemma "lower_refines"
                  ("f"
                   "f!1"
                   "P2"
                   "partition_2n(n!1)"
                   "P1"
                   "partition_2n(0)"))
                 (assert)
                 (expand "<=" -1)
                 (hide -2)
                 (lemma "integral_ae_le"
                  ("f1"
                   "lower_step(f!1, partition_2n(0))"
                   "f2"
                   "lower_step(f!1, partition_2n(n!1))"))
                 (assert)
                 (hide -2 2)
                 (expand "ae_le?")
                 (expand "pointwise_ae?")
                 (expand "ae?")
                 (expand "fullset")
                 (expand "ae_in?")
                 (inst + "emptyset[real]")
                 (skosimp)
                 (inst - "x!1")
                 (expand "member")
                 (propax))))))
            ("2"
             (skosimp)
             (lemma "riemann_lebesgue_step_integrable"
              ("phi" "lower_step(f!1, partition_2n(n!1))"))
             (flatten))))
          ("2"
           (hide 2)
           (expand "ae_monotonic_converges?")
           (split)
           (("1"
             (expand "ae_convergence?")
             (expand "fullset")
             (expand "ae_convergence_in?")
             (expand "ae_in?")
             (expand "ae_continuous?")
             (inst +
              "{x | a < x AND x < b AND NOT continuous_at?(f!1, x)}")
             (("1"
               (skosimp)
               (typepred "f!1")
               (expand "zeroed_bounded?")
               (flatten)
               (hide -1 -3 -4)
               (expand "zeroed?")
               (inst - "x!1")
               (expand "member")
               (case-replace "a < x!1")
               (("1"
                 (case-replace "x!1<b")
                 (("1"
                   (rewrite "metric_convergence_def")
                   (expand "metric_converges_to")
                   (skosimp)
                   (expand "member")
                   (expand "ball")
                   (lemma "continuous_step"
                    ("f" "-f!1" "x" "x!1" "epsilon" "r!1/2"))
                   (("1"
                     (split -1)
                     (("1"
                       (skosimp)
                       (assert)
                       (lemma "lower_step_neg"
                        ("f" "f!1" "P" "partition_2n(n!1)"))
                       (replace -1)
                       (hide -1)
                       (inst + "n!1")
                       (skosimp)
                       (lemma "partion_2n_refines" ("n" "n!1" "m" "i!1"))
                       (assert)
                       (lemma "upper_refines"
                        ("P2"
                         "partition_2n(i!1)"
                         "P1"
                         "partition_2n(n!1)"
                         "f"
                         "f!1"))
                       (assert)
                       (expand "<=" -1)
                       (inst - "x!1")
                       (expand "-" -3)
                       (lemma "upper_step_prop"
                        ("f" "f!1" "P" "partition_2n(i!1)"))
                       (expand "<=" -1)
                       (inst - "x!1")
                       (expand "abs" 1)
                       (assert)
                       (expand "<=" -1)
                       (split -1)
                       (("1" (assert)) ("2" (assert))))
                      ("2"
                       (hide-all-but (-4 1))
                       (rewrite "metric_continuous_at_def")
                       (rewrite "metric_continuous_at_def")
                       (expand "metric_continuous_at?")
                       (skosimp)
                       (inst - "epsilon!1")
                       (skosimp)
                       (inst + "delta!1")
                       (skosimp)
                       (inst - "x!2")
                       (expand "member")
                       (expand "-")
                       (assert)
                       (expand "ball")
                       (hide -1)
                       (grind))))
                    ("2"
                     (typepred "f!1")
                     (hide-all-but (-1 1))
                     (expand "zeroed_bounded?")
                     (flatten)
                     (split)
                     (("1"
                       (expand "bounded?")
                       (skosimp)
                       (inst + "c!1")
                       (skosimp)
                       (inst - "x!2")
                       (hide -2)
                       (grind))
                      ("2"
                       (hide -1)
                       (expand "zeroed?")
                       (skosimp)
                       (inst - "x!2")
                       (assert)
                       (ground)
                       (("1" (grind)) ("2" (grind))))))))
                  ("2"
                   (case-replace "x!1=b")
                   (("1"
                     (expand "upper_step")
                     (hide-all-but 3)
                     (rewrite "metric_convergence_def")
                     (expand "metric_converges_to")
                     (skosimp)
                     (inst + "0")
                     (skosimp)
                     (expand "ball")
                     (expand "member")
                     (expand "abs")
                     (assert))
                    ("2"
                     (assert)
                     (expand "upper_step")
                     (replace -2)
                     (rewrite "metric_convergence_def")
                     (expand "metric_converges_to")
                     (skosimp)
                     (inst + "0")
                     (skosimp)
                     (expand "member")
                     (expand "ball")
                     (expand "abs")
                     (assert))))))
                ("2"
                 (assert)
                 (case-replace "x!1=a")
                 (("1"
                   (expand "upper_step")
                   (rewrite "metric_convergence_def")
                   (("1"
                     (expand "metric_converges_to")
                     (skosimp)
                     (expand "member")
                     (expand "ball")
                     (expand "abs" 2 1)
                     (inst + "0")
                     (skosimp)
                     (prop)
                     (("1" (inst + "0") (("1" (assert)) ("2" (assert))))
                      ("2"
                       (inst + "0")
                       (("1" (assert)) ("2" (assert))))))
                    ("2"
                     (skosimp)
                     (inst + "0")
                     (("1" (assert)) ("2" (assert))))))
                  ("2"
                   (assert)
                   (replace -1)
                   (expand "upper_step")
                   (rewrite "metric_convergence_def")
                   (expand "metric_converges_to")
                   (skosimp)
                   (inst + "0")
                   (skosimp)
                   (expand "member")
                   (expand "ball")
                   (expand "abs")
                   (assert))))))
              ("2" (rewrite "null_is_negligible"))))
            ("2"
             (flatten)
             (hide -1 -2 1)
             (expand "ae_decreasing?")
             (inst + "emptyset[real]")
             (skosimp)
             (skosimp)
             (lemma "partion_2n_refines" ("n" "i!1" "m" "j!1"))
             (assert)
             (lemma "upper_refines"
              ("f"
               "f!1"
               "P2"
               "partition_2n(j!1)"
               "P1"
               "partition_2n(i!1)"))
             (assert)
             (expand "<=" -1)
             (inst - "x!1"))))
          ("3"
           (hide-all-but 1)
           (expand "o ")
           (expand "bounded?")
           (split)
           (("1"
             (expand "bounded_above?")
             (lemma "riemann_lebesgue_step_integrable"
              ("phi" "upper_step(f!1, partition_2n(0))"))
             (flatten)
             (hide -1 -3)
             (inst + "integral(upper_step(f!1, partition_2n(0)))")
             (skolem + "n!1")
             (lemma "integral_ae_le"
              ("f1"
               "upper_step(f!1, partition_2n(n!1))"
               "f2"
               "upper_step(f!1, partition_2n(0))"))
             (assert)
             (hide -1 2)
             (expand "ae_le?")
             (expand "pointwise_ae?")
             (expand "ae?")
             (expand "fullset")
             (expand "ae_in?")
             (inst + "emptyset[real]")
             (skosimp)
             (lemma "partion_2n_refines" ("n" "0" "m" "n!1"))
             (assert)
             (lemma "upper_refines"
              ("f"
               "f!1"
               "P2"
               "partition_2n(n!1)"
               "P1"
               "partition_2n(0)"))
             (assert)
             (expand "<=" -1)
             (inst - "x!1"))
            ("2"
             (expand "bounded_below?")
             (lemma "riemann_lebesgue_step_integrable"
              ("phi" "lower_step(f!1, partition_2n(0))"))
             (flatten)
             (inst + "integral(lower_step(f!1, partition_2n(0)))")
             (skolem + "n!1")
             (lemma "integral_ae_le"
              ("f1"
               "lower_step(f!1, partition_2n(0))"
               "f2"
               "upper_step(f!1, partition_2n(n!1))"))
             (assert)
             (hide-all-but 1)
             (expand "ae_le?")
             (expand "pointwise_ae?")
             (expand "ae?")
             (expand "fullset")
             (expand "ae_in?")
             (inst + "emptyset[real]")
             (skosimp)
             (lemma "lower_step_prop" ("f" "f!1" "P" "partition_2n(0)"))
             (lemma "upper_step_prop"
              ("f" "f!1" "P" "partition_2n(n!1)"))
             (expand "<=" (-1 -2))
             (inst - "x!1")
             (inst - "x!1")
             (assert))))))
        ("2"
         (skosimp)
         (lemma "riemann_lebesgue_step_integrable"
          ("phi" "upper_step(f!1, partition_2n(n!1))"))
         (flatten))))))
    ("2"
     (hide-all-but 1)
     (expand "decreasing?")
     (expand "restrict")
     (expand "o")
     (skolem + ("i!1" "j!1"))
     (flatten)
     (expand "upper_step")
     (lemma "partion_2n_refines" ("n" "i!1" "m" "j!1"))
     (assert)
     (lemma "upper_refines"
      ("f" "f!1" "P2" "partition_2n(j!1)" "P1" "partition_2n(i!1)"))
     (assert))
    ("3"
     (hide-all-but 1)
     (expand "increasing?")
     (expand "restrict")
     (expand "o")
     (skolem + ("i!1" "j!1"))
     (flatten)
     (lemma "lower_refines"
      ("f" "f!1" "P2" "partition_2n(j!1)" "P1" "partition_2n(i!1)"))
     (lemma "partion_2n_refines" ("n" "i!1" "m" "j!1"))
     (assert)
     (assert)
     (expand "lower_step" 1)
     (propax))
    ("4" (skosimp) (assert)) ("5" (skosimp) (assert))))


proof_type: f_proof
decl_type: formula
library: lebesgue
theory: riemann_scaf
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (rewrite "riemann_integrable_def1")
   (lemma "lower_limit_integrable" ("f" "f!1"))
   (lemma "upper_limit_integrable" ("f" "f!1"))
   (flatten)
   (lemma "integral_abs_0" ("f" "upper_limit(f!1)-lower_limit(f!1)"))
   (("1"
     (split -1)
     (("1"
       (hide-all-but (-1 1))
       (expand "ae_0?")
       (expand "restrict")
       (expand "ae_continuous?")
       (expand "pointwise_ae?")
       (expand "ae?")
       (expand "fullset")
       (expand "ae_in?")
       (skosimp)
       (typepred "E!1")
       (lemma "null_is_negligible" ("X" "E!1"))
       (assert)
       (hide -2)
       (lemma "countable_is_null" ("x" "partition_2n_exterior"))
       (("1"
         (lemma "null_union" ("N1" "E!1" "N2" "partition_2n_exterior"))
         (("1"
           (hide -2 -3)
           (lemma "null_subset"
            ("N"
             "union[real](E!1, partition_2n_exterior)"
             "X"
             "{x | a < x AND x < b AND NOT continuous_at?(f!1, x)}"))
           (("1"
             (assert)
             (hide -1 2)
             (expand "subset?")
             (expand "member")
             (skosimp)
             (expand "union")
             (expand "member")
             (flatten)
             (lemma "partition_2n_ext_int_disjoint")
             (expand "disjoint?")
             (expand "empty?")
             (expand "intersection")
             (expand "member")
             (case "partition_2n_interior(x!1)")
             (("1"
               (hide 3)
               (rewrite "continuous_at_prop" 1)
               (inst -5 "x!1")
               (assert)
               (expand "-")
               (assert))
              ("2"
               (hide-all-but (1 4 -2 -3))
               (expand "partition_2n_interior")
               (expand "partition_2n_exterior")
               (assert))))
            ("2" (propax))))
          ("2" (propax))))
        ("2" (rewrite "countable_2n_exterior"))))
      ("2"
       (case-replace
        "abs(upper_limit(f!1) - lower_limit(f!1))=upper_limit(f!1) - lower_limit(f!1)")
       (("1" (hide -1) (rewrite "integral_diff") (assert))
        ("2"
         (hide-all-but 1)
         (apply-extensionality :hide? t)
         (("1"
           (expand "abs" 1)
           (expand "-" 1)
           (lemma "lower_limit_prop" ("f" "f!1" "x" "x!1"))
           (inst - "0")
           (flatten)
           (lemma "upper_limit_prop" ("f" "f!1" "x" "x!1" "n" "0"))
           (flatten)
           (assert)
           (expand "abs")
           (propax))
          ("2"
           (skosimp)
           (expand "-")
           (lemma "upper_limit_prop" ("f" "f!1" "x" "x1!1" "n" "0"))
           (lemma "lower_limit_prop" ("f" "f!1" "x" "x1!1" "n" "0"))
           (flatten)
           (assert))))))))
    ("2" (rewrite "integrable_diff" 1))))


proof_type: f_proof
decl_type: formula
library: lebesgue
theory: riemann_scaf
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (lemma "ae_continuity_implies_integrable" ("f" "f!1"))
   (assert)
   (lemma "ae_continuity_implies_Integrable" ("f" "f!1"))
   (assert)
   (lemma "riemann_integrable_def2" ("f" "f!1"))
   (assert)
   (replace -1)
   (rewrite "riemann_integrable_def1")
   (hide -1)
   (lemma "darboux" ("f" "f!1" "PS" "partition_2n"))
   (name "LIMIT" "lower_riemann_integral(f!1)")
   (replace -1 1)
   (case-replace "convergence?(part_norm o partition_2n, 0)")
   (("1"
     (flatten)
     (lemma "monotone_convergence_complete"
      ("F" "lower_step(f!1) o partition_2n" "h" "f!1"))
     (("1"
       (split -1)
       (("1"
         (flatten)
         (expand "monotonic_converges?")
         (flatten)
         (hide -3)
         (expand "o" (-2 -5))
         (lemma "hausdorff_convergence.unique_limit"
          ("u"
           "LAMBDA (x_1: nat):
                                integral(lower_step(f!1)(partition_2n(x_1)))"
           "l1"
           "integral(f!1)"
           "l2"
           "LIMIT"))
         (("1" (replace -3) (assert))
          ("2"
           (skolem + "n!1")
           (expand "lower_step")
           (lemma "riemann_lebesgue_step_integrable"
            ("phi" "lower_step(f!1, partition_2n(n!1))"))
           (flatten))))
        ("2"
         (hide 2 -4)
         (expand "ae_monotonic_converges?")
         (expand "o ")
         (expand "lower_step")
         (split)
         (("1"
           (expand "ae_convergence?")
           (expand "fullset")
           (expand "ae_convergence_in?")
           (expand "ae_in?")
           (hide -1 -2 -3 -4 -5)
           (expand "ae_continuous?")
           (inst +
            "{x | a < x AND x < b AND NOT continuous_at?(f!1, x)}")
           (("1"
             (skosimp)
             (hide -1)
             (typepred "f!1")
             (expand "zeroed_bounded?")
             (flatten)
             (hide -1)
             (expand "zeroed?")
             (inst - "x!1")
             (expand "member")
             (case-replace "a<x!1")
             (("1"
               (case-replace "x!1<b")
               (("1"
                 (rewrite "metric_convergence_def")
                 (expand "metric_converges_to")
                 (skosimp)
                 (expand "member")
                 (expand "ball")
                 (lemma "continuous_step"
                  ("f" "f!1" "x" "x!1" "epsilon" "r!1/2"))
                 (assert)
                 (skosimp)
                 (inst + "n!1")
                 (skosimp)
                 (lemma "lower_step_prop"
                  ("f" "f!1" "P" "partition_2n(i!1)"))
                 (expand "<=" -1)
                 (inst - "x!1")
                 (expand "abs" 1)
                 (assert)
                 (lemma "partion_2n_refines" ("n" "n!1" "m" "i!1"))
                 (assert)
                 (lemma "lower_refines"
                  ("P2"
                   "partition_2n(i!1)"
                   "P1"
                   "partition_2n(n!1)"
                   "f"
                   "f!1"))
                 (assert)
                 (expand "<=" -1)
                 (inst - "x!1")
                 (assert))
                ("2"
                 (assert)
                 (case-replace "x!1=b")
                 (("1"
                   (hide -1 -3 1)
                   (expand "lower_step")
                   (rewrite "metric_convergence_def")
                   (expand "metric_converges_to")
                   (skosimp)
                   (inst + "0")
                   (skosimp)
                   (expand "member")
                   (expand "ball")
                   (expand "abs")
                   (assert))
                  ("2"
                   (assert)
                   (replace -2)
                   (expand "lower_step")
                   (rewrite "metric_convergence_def")
                   (expand "metric_converges_to")
                   (skosimp)
                   (inst + "0")
                   (skosimp)
                   (expand "member")
                   (expand "ball")
                   (assert))))))
              ("2"
               (assert)
               (case-replace "x!1=a")
               (("1"
                 (expand "lower_step")
                 (hide-all-but 2)
                 (case-replace
                  "(LAMBDA n:
                                       IF EXISTS (ii: below(length(partition_2n(n)) - 1)):
                                            a = seq(partition_2n(n))(ii)
                                         THEN f!1(a)
                                       ELSE inf(image(f!1,
                                                      part_set_of
                                                      (partition_2n(n))(a))) ENDIF) = lambda n: f!1(a)")
                 (("1"
                   (hide -1)
                   (rewrite "metric_convergence_def")
                   (expand "metric_converges_to")
                   (skosimp)
                   (inst + "0")
                   (assert)
                   (skosimp)
                   (expand "ball")
                   (expand "abs")
                   (assert))
                  ("2"
                   (apply-extensionality :hide? t)
                   (("1"
                     (lift-if 1)
                     (case-replace
                      "EXISTS (ii: below(length(partition_2n(x!2)) - 1)):
                                 a = seq(partition_2n(x!2))(ii)")
                     (inst + "0")
                     (("1" (assert)) ("2" (assert))))
                    ("2"
                     (skosimp)
                     (inst + "0")
                     (("1" (assert)) ("2" (assert))))))
                  ("3"
                   (skosimp)
                   (inst + "0")
                   (("1" (assert)) ("2" (assert))))))
                ("2"
                 (assert)
                 (replace -1)
                 (expand "lower_step")
                 (rewrite "metric_convergence_def")
                 (expand "metric_converges_to")
                 (skosimp)
                 (inst + " 0")
                 (skosimp)
                 (grind))))))
            ("2" (rewrite "null_is_negligible"))))
          ("2"
           (flatten)
           (hide 2)
           (expand "ae_increasing?")
           (inst + "emptyset[real]")
           (skosimp)
           (hide 1)
           (skosimp)
           (hide-all-but (-1 1))
           (lemma "partion_2n_refines" ("n" "i!1" "m" "j!1"))
           (assert)
           (lemma "lower_refines"
            ("f"
             "f!1"
             "P2"
             "partition_2n(j!1)"
             "P1"
             "partition_2n(i!1)"))
           (assert)
           (expand "<=" -1)
           (inst - "x!1"))))
        ("3"
         (hide-all-but 1)
         (expand "o ")
         (expand "lower_step")
         (expand "bounded?")
         (split)
         (("1"
           (expand "bounded_above?")
           (lemma "riemann_lebesgue_step_integrable"
            ("phi" "upper_step(f!1, partition_2n(0))"))
           (flatten)
           (hide -1 -3)
           (lemma "upper_step_prop" ("f" "f!1" "P" "partition_2n(0)"))
           (inst + "integral(upper_step(f!1, partition_2n(0)))")
           (skolem + "n!1")
           (lemma "lower_step_prop" ("f" "f!1" "P" "partition_2n(n!1)"))
           (lemma "integral_ae_le"
            ("f1"
             "lower_step(f!1, partition_2n(n!1))"
             "f2"
             "upper_step(f!1, partition_2n(0))"))
           (assert)
           (hide 2 -3)
           (expand "ae_le?")
           (expand "pointwise_ae?")
           (expand "ae?")
           (expand "fullset")
           (expand "ae_in?")
           (inst + "emptyset[real]")
           (skosimp)
           (expand "<=" (-1 -2))
           (inst - "x!1")
           (inst - "x!1")
           (assert))
          ("2"
           (expand "bounded_below?")
           (lemma "lower_step_prop" ("f" "f!1" "P" "partition_2n(0)"))
           (lemma "riemann_lebesgue_step_integrable"
            ("phi" "lower_step(f!1, partition_2n(0))"))
           (flatten)
           (hide -1 -3)
           (inst + "integral(lower_step(f!1, partition_2n(0)))")
           (skolem + "n!1")
           (lemma "upper_step_prop" ("f" "f!1" "P" "partition_2n(n!1)"))
           (expand "<=" (-1 -3))
           (lemma "integral_ae_le"
            ("f1"
             "lower_step(f!1, partition_2n(0))"
             "f2"
             "lower_step(f!1, partition_2n(n!1))"))
           (assert)
           (hide 2 -2)
           (expand "ae_le?")
           (expand "pointwise_ae?")
           (expand "ae?")
           (expand "fullset")
           (expand "ae_in?")
           (inst + "emptyset[real]")
           (skosimp)
           (hide -1 -2)
           (lemma "partion_2n_refines" ("n" "0" "m" "n!1"))
           (assert)
           (lemma "lower_refines"
            ("f" "f!1" "P2" "partition_2n(n!1)" "P1" "partition_2n(0)"))
           (assert)
           (expand "<=" -1)
           (inst - "x!1"))))))
      ("2"
       (hide 2)
       (skolem + "n!1")
       (expand "o")
       (expand "lower_step" 1)
       (lemma "riemann_lebesgue_step_integrable"
        ("phi" "lower_step(f!1, partition_2n(n!1))"))
       (flatten))
      ("3" (skosimp) (assert)) ("4" (skosimp) (assert))))
    ("2"
     (hide -2 2)
     (rewrite "metric_convergence_def")
     (("1"
       (expand "metric_converges_to")
       (skosimp)
       (expand "member")
       (expand "o ")
       (expand "ball")
       (hide-all-but 1)
       (lemma "part_norm_partition_2n")
       (lemma "posreal_div_posreal_is_posreal" ("px" "b-a" "py" "r!1"))
       (name "R" "(b - a) / r!1")
       (replace -1)
       (lemma "ceiling_def" ("x" "log(2)(R)"))
       (("1"
         (flatten)
         (name "CEIL" "ceiling(log(2)(R))")
         (("1"
           (replace -1)
           (lemma "both_sides_real_expt_gt1_le"
            ("gt1x" "2" "a" "log(2)(R)" "b" "CEIL"))
           (rewrite "expt_log")
           (assert)
           (name "N" "max(0,CEIL)")
           (case "N>=0&CEIL<=N")
           (("1"
             (flatten)
             (lemma "both_sides_real_expt_gt1_le"
              ("gt1x" "2" "a" "CEIL" "b" "N"))
             (assert)
             (inst + "N+1")
             (skosimp)
             (inst -11 "i!1")
             (rewrite "abs_mult")
             (rewrite "abs_neg")
             (expand "abs")
             (rewrite "one_times")
             (replace -11)
             (rewrite "div_mult_pos_lt1" 1)
             (("1"
               (lemma "div_mult_pos_lt1"
                ("z" "b-a" "py" "r!1" "x" "2^i!1"))
               (replace -1 1 rl)
               (replace -10)
               (lemma "both_sides_real_expt_gt1_lt"
                ("gt1x" "2" "a" "N" "b" "i!1"))
               (assert))
              ("2" (assert) (rewrite "real_expt_pos" 1))))
            ("2" (hide-all-but (-1 1)) (grind))))
          ("2" (assert))))
        ("2" (assert))))
      ("2" (skosimp) (assert)) ("3" (skosimp) (assert))))
    ("3" (skosimp) (assert)) ("4" (skosimp) (assert))))


proof_type: t_proof
decl_type: tcc
library: lebesgue
theory: riemann_scaf
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (expand "not_one_element?")
   (skosimp)
   (case-replace "x!1=0")
   (("1" (inst + "1") (assert)) ("2" (inst + "0") (assert))))


proof_type: t_proof
decl_type: tcc
library: lebesgue
theory: riemann_scaf
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (expand "step?")
   (expand "step_function?")
   (expand "zeroed?")
   (inst +
    "(# length := 2,
                         seq := (LAMBDA (ii: below(2)): if ii = 0 then a else b endif) #)")
   (("1" (expand "step_function_on?") (skosimp) (inst + "0") (skosimp))
    ("2" (skosimp) (assert)) ("3" (skosimp) (assert))
    ("4" (skosimp) (assert))))


proof_type: t_proof
decl_type: tcc
library: lebesgue
theory: riemann_scaf
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (expand "zeroed_bounded?")
   (expand "bounded?")
   (expand "zeroed?")
   (expand "abs")
   (propax))


proof_type: t_proof
decl_type: tcc
library: lebesgue
theory: riemann_scaf
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (expand "partial_order?")
   (expand "preorder?")
   (expand "restrict")
   (split)
   (("1" (expand "reflexive?") (skosimp) (expand "<=") (propax))
    ("2"
     (expand "transitive?")
     (expand "<=")
     (skosimp*)
     (inst - "x!2")
     (inst - "x!2")
     (assert))
    ("3"
     (expand "antisymmetric?")
     (expand "<=")
     (skosimp)
     (apply-extensionality 1 :hide? t)
     (inst - "x!2")
     (inst - "x!2")
     (assert))))


proof_type: t_proof
decl_type: tcc
library: lebesgue
theory: riemann_scaf
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (expand "finite_partition?")
   (split)
   (("1"
     (expand "singleton" 1 1)
     (expand "singleton" 1 1)
     (expand "union")
     (expand "member")
     (expand "fullset")
     (expand "partition?")
     (split)
     (("1"
       (apply-extensionality :hide? t)
       (expand "Union")
       (case "x!1<a OR b <x!1")
       (("1"
         (split)
         (("1" (inst + "{x | x < a}")) ("2" (inst + "{x | b<x}"))))
        ("2"
         (flatten)
         (case "a<=x!1")
         (("1"
           (case "x!1<=b")
           (("1"
             (hide 1 2)
             (lemma "part_in" ("P" "P!1" "a" "a" "b" "b" "x" "x!1"))
             (assert)
             (skosimp)
             (expand "<=" (-1 -2))
             (split -1)
             (("1"
               (split -2)
               (("1"
                 (inst +
                  "{x |
                                                seq(P!1)(ii!1) < x AND
                                                 x < seq(P!1)(1 + ii!1)}")
                 (("1" (assert))
                  ("2" (flatten) (assert) (inst 4 "ii!1"))))
                ("2"
                 (inst +
                  "singleton[closed_interval[real](a, b)]
                                               (seq(P!1)(1+ii!1))")
                 (("1" (expand "extend") (expand "singleton") (propax))
                  ("2"
                   (flatten)
                   (inst 3 "1+ii!1")
                   (expand "extend")
                   (hide 1 2 4)
                   (apply-extensionality 1 :hide? t)
                   (("1"
                     (expand "singleton")
                     (lift-if 1)
                     (prop)
                     (("1" (assert)) ("2" (assert))))
                    ("2" (skosimp) (assert))))))))
              ("2"
               (inst +
                "singleton[closed_interval[real](a, b)]
                                             (seq(P!1)(ii!1))")
               (("1" (expand "extend") (expand "singleton") (assert))
                ("2"
                 (flatten)
                 (hide 1 2 4)
                 (inst + "ii!1")
                 (apply-extensionality 1 :hide? t)
                 (expand "extend")
                 (expand "singleton")
                 (lift-if 1)
                 (assert)
                 (case-replace "x!2 = seq(P!1)(ii!1)")
                 (("1" (assert)) ("2" (assert))))))))
            ("2" (assert))))
          ("2" (assert))))))
      ("2"
       (skosimp*)
       (typepred "x!1")
       (typepred "y!1")
       (split)
       (("1"
         (split)
         (("1" (assert)) ("2" (grind)) ("3" (skosimp) (grind))
          ("4" (grind))))
        ("2"
         (split -2)
         (("1" (grind)) ("2" (assert)) ("3" (grind)) ("4" (grind))))
        ("3"
         (skosimp)
         (split -2)
         (("1" (grind)) ("2" (grind)) ("3" (grind))
          ("4"
           (skosimp)
           (replace -1)
           (replace -2)
           (hide-all-but 2)
           (expand "disjoint?")
           (expand "intersection")
           (expand "empty?")
           (expand "member")
           (skosimp)
           (expand "singleton")
           (lemma "part_not_in" ("a" "a" "b" "b" "x" "x!2"))
           (assert)
           (inst - "P!1")
           (inst - "i!2" "i!1")
           (assert))))
        ("4"
         (split)
         (("1" (grind)) ("2" (grind))
          ("3"
           (skosimp*)
           (replace -1)
           (replace -2)
           (hide-all-but 2)
           (expand "disjoint?")
           (expand "intersection")
           (expand "empty?")
           (expand "member")
           (skosimp)
           (expand "singleton")
           (lemma "part_not_in" ("a" "a" "b" "b" "x" "x!2"))
           (assert)
           (inst - "P!1")
           (inst - "i!2" "i!1")
           (assert))
          ("4"
           (skosimp*)
           (lemma "parts_disjoint" ("a" "a" "b" "b"))
           (inst - "_" "P!1" "i!1" "i!2")
           (replace -2)
           (replace -3)
           (hide -2 -3)
           (expand "disjoint?")
           (expand "intersection")
           (expand "empty?")
           (expand "member")
           (skosimp)
           (inst - "x!2")
           (assert)
           (replace -1)
           (propax))))))))
    ("2"
     (rewrite "finite_union")
     (hide 2)
     (rewrite "finite_union")
     (("1"
       (hide 2)
       (rewrite "is_finite_surj" + :dir rl)
       (inst + "length(P!1)-1"
        "lambda (i: below(length(P!1) - 1)):
                                 {x |
                                      seq(P!1)(i) < x AND
                                       x < seq(P!1)(1 + i)}")
       (("1"
         (expand "surjective?")
         (skosimp)
         (typepred "y!1")
         (skosimp)
         (inst + "i!1")
         (assert))
        ("2" (skosimp) (inst + "i!1"))))
      ("2"
       (hide 2)
       (rewrite "is_finite_surj" + :dir rl)
       (inst + "length(P!1)"
        "lambda (i: below(length(P!1))):singleton[closed_interval[real](a, b)]
                                      (seq(P!1)(i))")
       (("1"
         (expand "surjective?")
         (skosimp)
         (typepred "y!1")
         (skosimp)
         (inst + "i!1")
         (expand "extend")
         (apply-extensionality :hide? t)
         (("1"
           (replace -1 1 rl)
           (lift-if 1)
           (prop)
           (("1" (assert) (replace -2) (expand "singleton") (assert))
            ("2" (assert) (replace -2) (expand "singleton") (assert))))
          ("2" (skosimp) (assert))))
        ("2"
         (skosimp)
         (inst + "i!1")
         (expand "extend")
         (apply-extensionality :hide? t)
         (("1"
           (expand "singleton")
           (case-replace "x!1 = seq(P!1)(i!1)")
           (("1" (assert)) ("2" (assert))))
          ("2" (skosimp) (assert))))))))))


proof_type: j_proof
decl_type: tcc
library: lebesgue
theory: riemann_scaf
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (typepred "x!1")
   (lemma "riemann_lebesgue_step_isf" ("phi" "x!1"))
   (flatten)
   (expand "isf?")
   (flatten))


proof_type: j_proof
decl_type: tcc
library: lebesgue
theory: riemann_scaf
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skolem + "phi!1")
   (typepred "phi!1")
   (expand "zeroed_bounded?")
   (expand "step?")
   (flatten)
   (assert)
   (lemma "step_function_is_simple")
   (inst - "phi!1")
   (lemma "simple_is_bounded_measurable")
   (inst - "phi!1")
   (expand "bounded_measurable?")
   (propax))


proof_type: t_proof
decl_type: tcc
library: lebesgue
theory: riemann_scaf
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (split)
   (("1"
     (expand "nonempty?")
     (expand "empty?")
     (expand "member")
     (lemma "lower_step_exists" ("f" "f!1"))
     (skosimp)
     (inst - "Integral(a,b,phi!1)")
     (("1"
       (inst + "phi!1")
       (assert)
       (lemma "riemann_lebesgue_step_integrable" ("phi" "phi!1"))
       (flatten))
      ("2"
       (lemma "riemann_lebesgue_step_integrable" ("phi" "phi!1"))
       (flatten))))
    ("2"
     (expand "above_bounded")
     (typepred "f!1")
     (expand "zeroed_bounded?")
     (flatten)
     (expand "bounded?")
     (skosimp)
     (inst + "(b-a)*c!1")
     (expand "upper_bound")
     (skosimp)
     (typepred "z!1")
     (skosimp)
     (expand "<=" -1)
     (lemma "riemann_lebesgue_step_integrable" ("phi" "phi!1"))
     (flatten)
     (replace -5)
     (hide -1 -3 -5)
     (lemma "integrable_phi_closed" ("a" "a" "b" "b"))
     (("1"
       (lemma "integral_phi_closed" ("a" "a" "b" "b"))
       (lemma "integrable_scal" ("c" "c!1" "f" "phi(closed(a, b))"))
       (lemma "integral_scal" ("c" "c!1" "f" "phi(closed(a, b))"))
       (replace -3)
       (lemma "integral_ae_le"
        ("f1" "phi!1" "f2" "*[real](c!1, phi(closed(a, b)))"))
       (split -1)
       (("1" (replace -2) (assert))
        ("2"
         (hide-all-but (1 -6 -7 -8))
         (expand "ae_le?")
         (expand "pointwise_ae?")
         (expand "ae?")
         (expand "fullset")
         (expand "ae_in?")
         (inst + "emptyset[real]")
         (expand "emptyset")
         (skosimp)
         (expand "phi")
         (expand "member")
         (inst - "x!1")
         (inst - "x!1")
         (expand "zeroed?")
         (inst - "x!1")
         (grind))))
      ("2" (assert))))))


proof_type: t_proof
decl_type: tcc
library: lebesgue
theory: riemann_scaf
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (split)
   (("1"
     (expand "nonempty?")
     (expand "empty?")
     (expand "member")
     (lemma "upper_step_exists" ("f" "f!1"))
     (skosimp)
     (lemma "riemann_lebesgue_step_integrable" ("phi" "psi!1"))
     (flatten)
     (inst - "Integral[real](a, b, psi!1)")
     (inst + "psi!1")
     (assert))
    ("2"
     (expand "below_bounded")
     (typepred "f!1")
     (expand "zeroed_bounded?")
     (flatten)
     (expand "bounded?")
     (skosimp)
     (inst + "(-c!1)*(b-a)")
     (expand "lower_bound")
     (skosimp)
     (typepred "z!1")
     (skosimp)
     (lemma "riemann_lebesgue_step_integrable" ("phi" "psi!1"))
     (flatten)
     (lemma "integrable_phi_closed" ("a" "a" "b" "b"))
     (("1"
       (lemma "integral_phi_closed" ("a" "a" "b" "b"))
       (lemma "integrable_scal" ("c" "(-c!1)" "f" "phi(closed(a, b))"))
       (lemma "integral_scal" ("c" "(-c!1)" "f" "phi(closed(a, b))"))
       (replace -3)
       (lemma "integral_ae_le"
        ("f2" "psi!1" "f1" "*[real]((-c!1), phi(closed(a, b)))"))
       (split -1)
       (("1" (replace -2) (replace -10) (assert))
        ("2"
         (hide-all-but (1 -11 -10 -8))
         (expand "<=")
         (expand "ae_le?")
         (expand "pointwise_ae?")
         (expand "ae?")
         (expand "fullset")
         (expand "ae_in?")
         (inst + "emptyset[real]")
         (skosimp)
         (expand "emptyset")
         (expand "*")
         (inst - "x!1")
         (inst - "x!1")
         (expand "zeroed?")
         (inst - "x!1")
         (grind))))
      ("2" (assert))))))


proof_type: t_proof
decl_type: tcc
library: lebesgue
theory: riemann_scaf
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (typepred "x!1")
   (lemma "part_in" ("a" "a" "b" "b" "P" "P!1" "x" "x!1"))
   (assert)
   (skosimp)
   (expand "<=" -2)
   (split)
   (("1"
     (expand "nonempty?")
     (expand "empty?")
     (inst - "ii!1")
     (expand "member")
     (assert))
    ("2"
     (typepred "P!1")
     (typepred "ii!1")
     (expand "nonempty?")
     (expand "empty?")
     (inst -10 "ii!1+1")
     (("1"
       (expand "member")
       (assert)
       (assert)
       (inst -5 "ii!1+1")
       (assert))
      ("2" (assert))))))


proof_type: t_proof
decl_type: tcc
library: lebesgue
theory: riemann_scaf
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (expand "nonempty?")
   (expand "empty?")
   (expand "member")
   (typepred "ii_of_x(P!1)(x!1)")
   (inst -
    "(seq(P!1)(1 + ii_of_x(P!1)(x!1))+seq(P!1)(ii_of_x(P!1)(x!1)))/2")
   (("1" (assert) (typepred "P!1") (inst - "ii_of_x(P!1)(x!1)") (assert))
    ("2" (assert)) ("3" (assert))))


proof_type: t_proof
decl_type: tcc
library: lebesgue
theory: riemann_scaf
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (case "a < x!1 & x!1 < b")
   (("1"
     (hide 1 2)
     (flatten)
     (split)
     (("1"
       (typepred "part_set_of(P!1)(x!1)")
       (hide 2)
       (name-replace "DRL" "part_set_of(P!1)(x!1)")
       (expand "image")
       (expand "nonempty?")
       (expand "empty?")
       (skosimp)
       (expand "member")
       (inst - "f!1(x!2)")
       (inst + "x!2"))
      ("2"
       (typepred "f!1")
       (expand "zeroed_bounded?")
       (expand "bounded?")
       (flatten)
       (skosimp)
       (expand "below_bounded")
       (inst 1 "-c!1")
       (expand "image")
       (expand "lower_bound")
       (skosimp)
       (typepred "z!1")
       (skosimp)
       (replace -1)
       (inst - "x!2")
       (hide-all-but (-2 1))
       (grind))))
    ("2" (assert) (assert) (inst + "0") (typepred "P!1") (assert))))


proof_type: t_proof
decl_type: tcc
library: lebesgue
theory: riemann_scaf
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (lemma "lower_step_TCC2" ("P" "P!1" "f" "f!1"))
   (expand "step?")
   (split)
   (("1"
     (expand "step_function?")
     (inst + "P!1")
     (expand "step_function_on?")
     (skosimp)
     (name "MID" "(seq(P!1)(ii!1)+ seq(P!1)(1 + ii!1))/2")
     (inst - "MID")
     (assert)
     (assert)
     (typepred "P!1")
     (inst - "ii!1")
     (assert)
     (split -6)
     (("1"
       (flatten)
       (inst +
        "inf[real](image[real, real](f!1, part_set_of(P!1)(MID)))")
       (("1"
         (skosimp)
         (typepred "x!1")
         (lift-if 1)
         (prop)
         (("1"
           (skosimp)
           (lemma "part_not_in" ("a" "a" "b" "b" "x" "x!1"))
           (assert)
           (inst - "P!1")
           (inst - "ii!1" "ii!2")
           (assert))
          ("2"
           (hide 1)
           (case-replace "part_set_of(P!1)(x!1)=part_set_of(P!1)(MID)")
           (hide 2)
           (apply-extensionality 1 :hide? t)
           (expand "part_set_of")
           (case-replace "ii_of_x(P!1)(x!1)=ii_of_x(P!1)(MID)")
           (hide 2)
           (hide -4)
           (expand "ii_of_x")
           (hide -3)
           (lemma "choose_member[below(length(P!1) - 1)]"
            ("a"
             "{ii: below(length(P!1) - 1) |
                           seq(P!1)(ii) <= x!1 AND x!1 < seq(P!1)(1 + ii)}"))
           (case-replace
            "empty?({ii: below(length(P!1) - 1) |
                                seq(P!1)(ii) <= x!1 AND x!1 < seq(P!1)(1 + ii)})")
           (("1"
             (expand "empty?")
             (expand "member")
             (inst - "ii!1")
             (assert))
            ("2"
             (replace 1 -1)
             (name-replace "II_LEFT"
              "choose[below(length(P!1) - 1)]
                        ({ii: below(length(P!1) - 1) |
                            seq(P!1)(ii) <= x!1 AND x!1 < seq(P!1)(1 + ii)})")
             (("1"
               (expand "member")
               (flatten)
               (lemma "part_not_in" ("a" "a" "b" "b" "x" "x!1"))
               (assert)
               (inst - "P!1")
               (inst - "ii!1" "II_LEFT")
               (expand "<=" -2)
               (replace -4)
               (replace -5)
               (expand "/=" -1)
               (split -1)
               (("1"
                 (hide 1)
                 (lemma "parts_disjoint" ("a" "a" "b" "b"))
                 (inst - "x!1" "P!1" "ii!1" "II_LEFT")
                 (assert)
                 (replace -1)
                 (hide -1 -2 -3 -4 -5 1)
                 (lemma "choose_member[below(length(P!1) - 1)]"
                  ("a"
                   "{ii: below(length(P!1) - 1) |
                                  seq(P!1)(ii) <= MID AND MID < seq(P!1)(1 + ii)}"))
                 (case-replace
                  "empty?({ii: below(length(P!1) - 1) |
                                      seq(P!1)(ii) <= MID AND MID < seq(P!1)(1 + ii)})")
                 (("1"
                   (expand "empty?")
                   (expand "member")
                   (inst - "ii!1")
                   (assert))
                  ("2"
                   (replace 1 -1)
                   (name-replace "II_RIGHT"
                    "choose[below(length(P!1) - 1)]
                               ({ii: below(length(P!1) - 1) |
                                   seq(P!1)(ii) <= MID AND MID < seq(P!1)(1 + ii)})")
                   (("1"
                     (expand "member")
                     (flatten)
                     (expand "<=" -1)
                     (split)
                     (("1"
                       (lemma "parts_disjoint"
                        ("a"
                         "a"
                         "b"
                         "b"
                         "P"
                         "P!1"
                         "x"
                         "MID"
                         "ii"
                         "ii!1"
                         "jj"
                         "II_RIGHT"))
                       (assert))
                      ("2"
                       (lemma "part_not_in" ("a" "a" "b" "b" "x" "MID"))
                       (assert)
                       (inst - "P!1")
                       (inst - "ii!1" "II_RIGHT")
                       (assert))))
                    ("2" (expand "nonempty?") (propax))))))
                ("2" (assert))))
              ("2" (expand "nonempty?") (propax))))))))
        ("2" (assert))))
      ("2"
       (skosimp)
       (assert)
       (lemma "part_not_in" ("a" "a" "b" "b"))
       (inst - "MID")
       (assert)
       (inst - "P!1")
       (inst - "ii!1" "ii!2")
       (assert))))
    ("2"
     (expand "zeroed?")
     (skosimp)
     (split)
     (("1" (assert)) ("2" (assert))))))


proof_type: t_proof
decl_type: tcc
library: lebesgue
theory: riemann_scaf
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (typepred "part_set_of(P!1)(x!1)")
   (("1"
     (split)
     (("1"
       (expand "nonempty?")
       (expand "image")
       (expand "empty?")
       (expand "member")
       (skosimp)
       (inst - "f!1(x!2)")
       (inst 1 "x!2"))
      ("2"
       (hide-all-but 1)
       (typepred "f!1")
       (expand "zeroed_bounded?")
       (flatten)
       (expand "above_bounded")
       (expand "bounded?")
       (skosimp)
       (inst + "c!1")
       (hide -2)
       (expand "image")
       (expand "upper_bound")
       (skosimp)
       (typepred "z!1")
       (skosimp)
       (inst - "x!2")
       (grind))))
    ("2" (assert))))


proof_type: t_proof
decl_type: tcc
library: lebesgue
theory: riemann_scaf
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (expand "step?")
   (split)
   (("1"
     (expand "step_function?")
     (inst + "P!1")
     (expand "step_function_on?")
     (skosimp)
     (name "MID" "(seq(P!1)(ii!1)+ seq(P!1)(1 + ii!1))/2")
     (lemma "upper_step_TCC1" ("P" "P!1" "f" "f!1" "x" "MID"))
     (assert)
     (split -1)
     (("1"
       (flatten)
       (inst +
        "sup[real]
                           (image[real, real](f!1, part_set_of(P!1)(MID)))")
       (("1"
         (skosimp)
         (typepred "x!1")
         (lift-if 1)
         (prop)
         (("1"
           (skosimp)
           (lemma "part_not_in" ("a" "a" "b" "b" "x" "x!1"))
           (assert)
           (inst - "P!1")
           (inst - "ii!1" "ii!2")
           (assert))
          ("2"
           (hide 1)
           (expand "part_set_of")
           (case-replace "ii_of_x(P!1)(x!1)=ii_of_x(P!1)(MID)")
           (hide -3 -4 2)
           (expand "ii_of_x")
           (lemma "choose_member[below(length(P!1) - 1)]"
            ("a"
             "{ii: below(length(P!1) - 1) |
                           seq(P!1)(ii) <= x!1 AND x!1 < seq(P!1)(1 + ii)}"))
           (case-replace
            "empty?({ii: below(length(P!1) - 1) |
                                seq(P!1)(ii) <= x!1 AND x!1 < seq(P!1)(1 + ii)})")
           (("1" (expand "empty?") (inst - "ii!1") (assert))
            ("2"
             (replace 1 -1)
             (name-replace "II_LEFT"
              "choose[below(length(P!1) - 1)]
                        ({ii: below(length(P!1) - 1) |
                            seq(P!1)(ii) <= x!1 AND x!1 < seq(P!1)(1 + ii)})")
             (("1"
               (expand "member")
               (flatten)
               (expand "<=" -1)
               (split)
               (("1"
                 (hide 1)
                 (lemma "parts_disjoint"
                  ("a"
                   "a"
                   "b"
                   "b"
                   "P"
                   "P!1"
                   "ii"
                   "ii!1"
                   "jj"
                   "II_LEFT"
                   "x"
                   "x!1"))
                 (assert)
                 (replace -1)
                 (hide -1 -2 -3)
                 (lemma "choose_member[below(length(P!1) - 1)]"
                  ("a"
                   "{ii: below(length(P!1) - 1) |
                                  seq(P!1)(ii) <= MID AND MID < seq(P!1)(1 + ii)}"))
                 (case-replace
                  "empty?({ii: below(length(P!1) - 1) |
                                      seq(P!1)(ii) <= MID AND MID < seq(P!1)(1 + ii)})")
                 (("1"
                   (expand "empty?")
                   (inst - "ii!1")
                   (typepred "P!1")
                   (inst - "ii!1")
                   (assert))
                  ("2"
                   (replace 1 -1)
                   (name-replace "II_RIGHT"
                    "choose[below(length(P!1) - 1)]
                               ({ii: below(length(P!1) - 1) |
                                   seq(P!1)(ii) <= MID AND MID < seq(P!1)(1 + ii)})")
                   (("1"
                     (hide 1)
                     (expand "member")
                     (flatten)
                     (expand "<=" -1)
                     (split)
                     (("1"
                       (lemma "parts_disjoint"
                        ("a"
                         "a"
                         "b"
                         "b"
                         "P"
                         "P!1"
                         "x"
                         "MID"
                         "ii"
                         "II_RIGHT"
                         "jj"
                         "ii!1"))
                       (typepred "P!1")
                       (inst - "ii!1")
                       (assert))
                      ("2"
                       (lemma "part_not_in" ("a" "a" "b" "b" "x" "MID"))
                       (assert)
                       (inst - "P!1")
                       (inst - "ii!1" "II_RIGHT")
                       (typepred "P!1")
                       (inst - "ii!1")
                       (assert))))
                    ("2" (expand "nonempty?") (propax))))))
                ("2"
                 (lemma "part_not_in" ("a" "a" "b" "b" "x" "x!1"))
                 (assert)
                 (inst - "P!1")
                 (inst - "ii!1" "II_LEFT")
                 (assert))))
              ("2" (expand "nonempty?") (propax))))))))
        ("2" (assert))))
      ("2"
       (hide 1)
       (skosimp)
       (lemma "part_not_in" ("a" "a" "b" "b" "x" "MID"))
       (assert)
       (inst - "P!1")
       (inst - "ii!1" "ii!2")
       (assert)
       (typepred "P!1")
       (inst - "ii!1")
       (assert))
      ("3" (hide 1) (typepred "P!1") (inst - "ii!1") (assert))))
    ("2"
     (expand "zeroed?")
     (skosimp)
     (split)
     (("1" (assert)) ("2" (assert))))))


proof_type: t_proof
decl_type: tcc
library: lebesgue
theory: riemann_scaf
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (typepred "f!1")
   (expand "zeroed_bounded?")
   (flatten)
   (split)
   (("1"
     (expand "bounded?")
     (skosimp)
     (inst + "c!1")
     (skosimp)
     (inst - "x!1")
     (hide -2)
     (grind))
    ("2"
     (expand "zeroed?")
     (skosimp)
     (inst - "x!1")
     (replace -1)
     (hide -1 -2)
     (grind))))


proof_type: t_proof
decl_type: tcc
library: lebesgue
theory: riemann_scaf
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (expand "-")
   (typepred "Psi!1(x1!1)")
   (typepred "Phi!1(x1!1)")
   (lemma "riemann_lebesgue_step_integrable" ("phi" "Phi!1(x1!1)"))
   (lemma "riemann_lebesgue_step_integrable" ("phi" "Psi!1(x1!1)"))
   (flatten)
   (lemma "integrable_diff" ("f1" "Psi!1(x1!1)" "f2" "Phi!1(x1!1)"))
   (propax))


proof_type: t_proof
decl_type: tcc
library: lebesgue
theory: riemann_scaf
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (typepred "Psi!1(x1!1)")
   (lemma "riemann_lebesgue_step_integrable" ("phi" "Psi!1(x1!1)"))
   (flatten))


proof_type: t_proof
decl_type: tcc
library: lebesgue
theory: riemann_scaf
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (typepred "Phi!1(x1!1)")
   (lemma "riemann_lebesgue_step_integrable" ("phi" "Phi!1(x1!1)"))
   (flatten))


proof_type: t_proof
decl_type: tcc
library: lebesgue
theory: riemann_scaf
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (assert)
   (lemma "riemann_lebesgue_step_integrable"
    ("phi" "lower_step(f!1)(x1!1)"))
   (flatten))


proof_type: t_proof
decl_type: tcc
library: lebesgue
theory: riemann_scaf
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (lemma "riemann_lebesgue_step_integrable"
    ("phi" "upper_step(f!1)(x1!1)"))
   (flatten))


proof_type: t_proof
decl_type: tcc
library: lebesgue
theory: riemann_scaf
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (assert)
   (typepred "x!1")
   (expand "partition_2n_interior")
   (flatten)
   (assert))


proof_type: t_proof
decl_type: tcc
library: lebesgue
theory: riemann_scaf
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (split)
   (("1"
     (expand "image")
     (expand "nonempty?")
     (expand "empty?")
     (expand "member")
     (inst - "f!1(x!1)")
     (inst + "x!1")
     (lemma "part_set_of_prop" ("x" "x!1" "P" "partition_2n(n!1)"))
     (expand "member")
     (assert)
     (hide 2)
     (typepred "x!1")
     (expand "partition_2n_interior")
     (flatten)
     (assert)
     (skosimp)
     (expand "partition_2n")
     (expand "eq_partition")
     (inst + "ii!1" "n!1"))
    ("2"
     (expand "image")
     (typepred "f!1")
     (expand "zeroed_bounded?")
     (flatten)
     (expand "bounded?")
     (skosimp)
     (expand "below_bounded")
     (inst + "-c!1")
     (expand "lower_bound")
     (skosimp)
     (typepred "z!1")
     (skosimp)
     (inst - "x!2")
     (grind))))


proof_type: t_proof
decl_type: tcc
library: lebesgue
theory: riemann_scaf
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (split)
   (("1"
     (expand "image")
     (expand "nonempty?")
     (expand "empty?")
     (expand "member")
     (inst - "f!1(x!1)")
     (inst + "x!1")
     (lemma "part_set_of_prop" ("x" "x!1" "P" "partition_2n(n!1)"))
     (assert)
     (hide 2)
     (typepred "x!1")
     (expand "partition_2n_interior")
     (flatten)
     (assert)
     (skosimp)
     (expand "partition_2n")
     (expand "eq_partition")
     (inst + "ii!1" "n!1"))
    ("2"
     (typepred "f!1")
     (expand "zeroed_bounded?")
     (flatten)
     (expand "bounded?")
     (skosimp)
     (expand "above_bounded")
     (inst + "c!1")
     (expand "image")
     (expand "upper_bound")
     (skosimp)
     (typepred "z!1")
     (skosimp)
     (inst - "x!2")
     (grind))))


proof_type: t_proof
decl_type: tcc
library: lebesgue
theory: riemann_scaf
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (split)
   (("1"
     (expand "fullset")
     (expand "image")
     (expand "nonempty?")
     (expand "empty?")
     (expand "member")
     (inst - "lower_limit_n(f!1, x!1)(0)")
     (inst + "0"))
    ("2"
     (expand "above_bounded")
     (inst + "f!1(x!1)")
     (expand "fullset")
     (expand "image")
     (expand "upper_bound")
     (skosimp)
     (typepred "z!1")
     (skolem - "n!1")
     (lemma "lower_limit_n_prop" ("f" "f!1" "x" "x!1" "n" "n!1"))
     (lemma "lower_step_prop" ("f" "f!1" "P" "partition_2n(n!1)"))
     (expand "<=" -1)
     (inst - "x!1")
     (assert))))


proof_type: t_proof
decl_type: tcc
library: lebesgue
theory: riemann_scaf
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (split)
   (("1"
     (expand "fullset")
     (expand "image")
     (expand "nonempty?")
     (expand "empty?")
     (expand "member")
     (inst - "upper_limit_n(f!1, x!1)(0)")
     (inst + "0"))
    ("2"
     (expand "below_bounded")
     (inst + "f!1(x!1)")
     (expand "fullset")
     (expand "image")
     (expand "lower_bound")
     (skosimp)
     (typepred "z!1")
     (skolem - "n!1")
     (lemma "upper_limit_n_prop" ("f" "f!1" "x" "x!1" "n" "n!1"))
     (assert)
     (lemma "upper_step_prop" ("f" "f!1" "P" "partition_2n(n!1)"))
     (expand "<=" -1)
     (inst - "x!1")
     (assert))))


proof_type: f_proof
decl_type: formula
library: lebesgue
theory: riemann_link
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (split)
   (("1"
     (flatten)
     (expand "zeroed_bounded?")
     (split)
     (("1"
       (expand "bounded_on?")
       (skosimp)
       (expand "bounded?")
       (inst + "B!1")
       (("1"
         (skosimp)
         (expand "*")
         (expand "phi")
         (expand "member")
         (case-replace "closed(a!1, b!1)(x!1)")
         (("1" (inst - "x!1") (("1" (grind)) ("2" (hide 2) (grind))))
          ("2"
           (assert)
           (rewrite "zero_times1")
           (expand "abs" 2)
           (typepred "b!1")
           (inst - "(a!1+b!1)/2")
           (assert))))
        ("2" (typepred "b!1") (inst - "(a!1+b!1)/2") (assert))))
      ("2" (hide -1) (expand "zeroed?") (skosimp) (grind))))
    ("2"
     (flatten)
     (expand "zeroed_bounded?")
     (flatten)
     (expand "bounded_on?")
     (expand "bounded?")
     (skosimp)
     (inst + "c!1")
     (skosimp)
     (typepred "x!1")
     (inst - "x!1")
     (hide -4)
     (grind))))


proof_type: f_proof
decl_type: formula
library: lebesgue
theory: riemann_link
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (split)
   (("1"
     (flatten)
     (case-replace "bounded_on?(a!1, b!1, f!1)")
     (("1"
       (expand "<=")
       (split)
       (("1"
         (rewrite "bounded_on_def")
         (rewrite "ae_continuous_def")
         (case "Integrable?(a!1, b!1, phi(closed(a!1, b!1)) * f!1)")
         (("1"
           (lemma "Integrable_implies_ae_continuity[a!1,b!1]"
            ("f" "phi(closed(a!1, b!1)) * f!1"))
           (("1" (assert)) ("2" (propax)) ("3" (propax))))
          ("2"
           (hide -2 2)
           (expand "Integrable?")
           (assert)
           (lemma "integral_restrict_eq"
            ("a"
             "a!1"
             "b"
             "b!1"
             "f"
             "f!1"
             "g"
             "phi(closed(a!1, b!1)) * f!1"))
           (assert)
           (hide -2 2)
           (grind))))
        ("2"
         (hide -2 -3)
         (expand "ae_continuous?")
         (case-replace
          "{x | a!1 < x AND x < b!1 AND NOT continuous_at?(f!1, x)}=emptyset[real]")
         (("1" (rewrite "null_emptyset"))
          ("2"
           (hide 2)
           (apply-extensionality :hide? t)
           (expand "emptyset")
           (flatten)
           (assert))))))
      ("2"
       (hide 2)
       (expand "Integrable?")
       (expand "<=" -2)
       (split -2)
       (("1"
         (assert)
         (lemma "integrable_bounded" ("a" "a!1" "b" "b!1" "f" "f!1"))
         (assert))
        ("2"
         (hide -2)
         (expand "bounded_on?")
         (inst + "abs(f!1(a!1))")
         (skosimp)
         (ground))))))
    ("2"
     (flatten)
     (expand "<=" -3)
     (split)
     (("1"
       (rewrite "bounded_on_def")
       (rewrite "ae_continuous_def")
       (lemma "ae_continuity_implies_Integrable[a!1,b!1]"
        ("f" "phi(closed(a!1, b!1)) * f!1"))
       (("1"
         (assert)
         (expand "Integrable?")
         (lemma "integral_restrict_eq"
          ("a"
           "a!1"
           "b"
           "b!1"
           "f"
           "phi(closed(a!1, b!1)) * f!1"
           "g"
           "f!1"))
         (assert)
         (hide-all-but (-2 1))
         (skosimp)
         (grind))
        ("2" (propax)) ("3" (propax))))
      ("2" (expand "Integrable?") (flatten))))))


proof_type: f_proof
decl_type: formula
library: lebesgue
theory: riemann_link
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (rewrite "riemann_integrable_def")
   (flatten)
   (rewrite "ae_continuous_def")
   (expand "<=" -1)
   (split)
   (("1"
     (rewrite "bounded_on_def")
     (lemma "ae_continuity_implies_integrable[a!1,b!1]"
      ("f" "phi(closed(a!1, b!1)) * f!1"))
     (("1" (assert) (expand "integrable?" 1) (propax)) ("2" (propax))
      ("3" (propax))))
    ("2"
     (expand "integrable?")
     (replace -1 * rl)
     (hide -1 -2 -3)
     (lemma "integrable_singleton" ("x" "a!1"))
     (lemma "integrable_scal"
      ("c" "f!1(a!1)" "f" "phi(singleton[real](a!1))"))
     (("1"
       (case-replace
        "*[real](f!1(a!1), phi(singleton[real](a!1)))=phi(closed(a!1, a!1)) * f!1")
       (hide-all-but 1)
       (apply-extensionality :hide? t)
       (grind))
      ("2" (propax))))))


proof_type: f_proof
decl_type: formula
library: lebesgue
theory: riemann_link
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (lemma "riemann_integrable_def" ("a" "a!1" "b" "b!1" "f" "f!1"))
   (assert)
   (flatten)
   (expand "integral")
   (rewrite "ae_continuous_def")
   (expand "<=" -3)
   (split)
   (("1"
     (rewrite "bounded_on_def")
     (lemma "ae_continuity_implies_integrals[a!1,b!1]"
      ("f" "phi(closed(a!1, b!1)) * f!1"))
     (("1"
       (assert)
       (replace -1)
       (hide -1 -3 -4)
       (expand "Integrable?")
       (expand "Integral")
       (lemma "integral_restrict_eq"
        ("a"
         "a!1"
         "b"
         "b!1"
         "f"
         "f!1"
         "g"
         "phi(closed(a!1, b!1)) * f!1"))
       (assert)
       (hide -2 2)
       (grind))
      ("2" (propax)) ("3" (propax))))
    ("2"
     (expand "Integral")
     (assert)
     (replace -1 * rl)
     (lemma "integrable_singleton" ("x" "a!1"))
     (lemma "integrable_scal"
      ("c" "f!1(a!1)" "f" "phi(singleton[real](a!1))"))
     (("1"
       (hide -4 -5 -6)
       (lemma "integral_singleton" ("x" "a!1"))
       (lemma "integral_scal"
        ("c" "f!1(a!1)" "f" "phi(singleton[real](a!1))"))
       (replace -2)
       (case-replace
        "(*[real])(f!1(a!1),phi(singleton[real](a!1)))=(*[real])(phi(closed(a!1, a!1)),f!1)")
       (("1" (assert))
        ("2" (hide-all-but 1) (apply-extensionality :hide? t) (grind))))
      ("2" (propax))))))


proof_type: f_proof
decl_type: formula
library: lebesgue
theory: riemann_link
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (lemma "riemann_integrable_def" ("f" "f!1" "a" "a!1" "b" "b!1"))
   (assert)
   (lemma "riemann_lebesgue_integrable" ("a" "a!1" "b" "b!1" "f" "f!1"))
   (assert))


proof_type: f_proof
decl_type: formula
library: lebesgue
theory: riemann_link
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (lemma "continuous_integrable" ("a" "a!1" "b" "b!1" "f" "f!1"))
   (expand "Integrable?")
   (assert)
   (skosimp)
   (expand "<=" -2)
   (replace 1)
   (replace -2)
   (assert)
   (hide-all-but (-1 -2 1))
   (skosimp)
   (typepred "x!1")
   (rewrite "continuous_iff_continuous_at?")
   (expand "continuous?")
   (inst - "x!1"))


proof_type: f_proof
decl_type: formula
library: lebesgue
theory: riemann_link
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (lemma "continuous_is_Integrable" ("a" "a!1" "b" "b!1" "f" "f!1"))
   (assert)
   (lemma "riemann_lebesgue_integrable" ("a" "a!1" "b" "b!1" "f" "f!1"))
   (assert))


proof_type: f_proof
decl_type: formula
library: lebesgue
theory: riemann_link
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (expand "<=" -1)
   (split)
   (("1"
     (lemma "continuous_integrable" ("a" "a!1" "b" "b!1" "f" "f!1"))
     (assert)
     (split -1)
     (("1"
       (lemma "riemann_integrable_def" ("a" "a!1" "b" "b!1" "f" "f!1"))
       (assert)
       (expand "Integrable?")
       (propax))
      ("2"
       (hide 2)
       (skosimp)
       (inst - "x!1")
       (assert)
       (rewrite "continuous_iff_continuous_at?"))))
    ("2"
     (hide -2)
     (expand "bounded_on?")
     (inst + "abs(f!1(a!1))")
     (grind))))


proof_type: f_proof
decl_type: formula
library: lebesgue
theory: lebesgue_fundamental
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (typepred "F!1")
   (typepred "f!1")
   (lemma "continuous_at_is_ae_continuous" ("a" "a" "b" "b" "f" "f!1"))
   (lemma "bounded_ae_continuous_integrable" ("a" "a" "b" "b" "f" "f!1"))
   (lemma "continuous_at_is_bounded" ("a" "a" "b" "b" "f" "f!1"))
   (assert)
   (assert)
   (case-replace
    "(FORALL x: a <= x AND x <= b => continuous_at?(f!1, x))")
   (("1"
     (split -4)
     (("1"
       (assert)
       (hide -5)
       (lemma "riemann_integrable_def" ("a" "a" "b" "b" "f" "f!1"))
       (assert)
       (lemma "fundamental3" ("F" "F!1" "f" "f!1" "a" "a" "b" "b"))
       (replace -8)
       (replace -7)
       (split -1)
       (("1"
         (flatten)
         (assert)
         (hide -1 -2)
         (expand "restrict")
         (lemma "riemann_lebesgue_integral" ("a" "a" "b" "b" "f" "f!1"))
         (assert)
         (replace -1 1 rl)
         (case-replace "(LAMBDA (s_1: real): f!1(s_1)) = f!1")
         (("1"
           (lemma "fundamental3[(closed(a, b))]"
            ("a"
             "a"
             "b"
             "b"
             "F"
             "F!1"
             "f"
             "LAMBDA (s_1:(closed(a, b))): f!1(s_1)"))
           (replace -10)
           (replace -9)
           (split)
           (("1"
             (flatten)
             (lemma "restrict_Integral")
             (inst - "a" "b" "f!1")
             (assert))
            ("2"
             (hide-all-but (1 -5))
             (expand "continuous?")
             (skosimp)
             (inst - "x0!1")
             (typepred "x0!1")
             (split)
             (("1"
               (rewrite "metric_continuous_at_def")
               (expand "continuous?")
               (expand "metric_continuous_at?")
               (skosimp)
               (inst - "epsilon!1")
               (skosimp)
               (inst + "delta!1")
               (skosimp)
               (typepred "x!1")
               (inst - "x!1")
               (split)
               (("1" (hide-all-but (-1 1)) (grind))
                ("2" (hide-all-but (-3 1)) (grind))))
              ("2" (hide 2) (grind)) ("3" (hide 2) (grind))))))
          ("2" (apply-extensionality :hide? t))))
        ("2"
         (hide-all-but (-3 1))
         (expand "restrict")
         (assert)
         (expand "continuous?")
         (skosimp)
         (inst - "x0!1")
         (typepred "x0!1")
         (split -2)
         (("1"
           (rewrite "metric_continuous_at_def")
           (expand "continuous?")
           (expand "metric_continuous_at?")
           (skosimp)
           (inst - "epsilon!1")
           (skosimp)
           (inst + "delta!1")
           (skosimp)
           (inst - "x!1")
           (split)
           (("1" (hide-all-but (-1 1)) (grind))
            ("2" (hide-all-but (-2 1)) (grind))))
          ("2" (hide 2) (grind)) ("3" (hide 2) (grind))))))
      ("2" (hide-all-but (-1 1)) (skosimp) (inst - "x!1") (assert))))
    ("2"
     (hide-all-but (-4 1))
     (expand "continuous_on?")
     (skosimp)
     (inst - "x!1")
     (hide 2)
     (grind))))


proof_type: f_proof
decl_type: formula
library: lebesgue
theory: lebesgue_fundamental
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (name "H" "real_fun_ops.*(F!1,G!1)")
   (("1"
     (lemma "prod_derivable_fun" ("f1" "F!1" "f2" "G!1"))
     (split)
     (("1"
       (lemma "deriv_prod_fun" ("ff1" "F!1" "ff2" "G!1"))
       (lemma "fundamental_lebesgue" ("F" "H"))
       (replace -4)
       (replace -2)
       (replace -5)
       (replace -6)
       (hide -4 -5 -6)
       (hide -3 -2)
       (expand "H" -)
       (expand "*" - 3)
       (expand "*" - 4)
       (expand "restrict" -)
       (expand "*" - 1)
       (expand "+" - 1)
       (assert)
       (expand "*" - 1)
       (typepred "f!1")
       (typepred "g!1")
       (lemma "derivable_cont_fun[(closed(a, b))]")
       (inst-cp - "F!1")
       (inst - "G!1")
       (assert)
       (name "CE"
             "lambda (f:[real->real]): lambda x: if x<a then f(a) elsif b<x then f(b) else f(x) endif")
       (hide -1)
       (case "FORALL (f:[real->real]): (forall x: closed(a,b)(x) => continuous_at?(f,x)) => continuity_def.continuous?(CE(f))")
       (("1"
         (case "FORALL (f:[real->real],x): closed(a, b)(x) => CE(f)(x) = f(x)")
         (("1"
           (name-replace "FF"
            "extend[real, (closed(a, b)), real, 0](F!1)")
           (name-replace "GG"
            "extend[real, (closed(a, b)), real, 0](G!1)")
           (inst-cp - "f!1")
           (inst-cp - "g!1")
           (split)
           (("1"
             (split)
             (("1"
               (inst-cp - "g!1" "_")
               (inst-cp - "f!1" "_")
               (hide -6)
               (case "continuity_def.continuous?(CE(GG)*CE(f!1))")
               (("1"
                 (case "continuity_def.continuous?(CE(FF)*CE(g!1))")
                 (("1"
                   (case "continuity_def.continuous?((CE(FF)*CE(g!1)) + (CE(GG)*CE(f!1)))")
                   (("1"
                     (inst -13 "(CE(FF) * CE(g!1)) + (CE(GG) * CE(f!1))")
                     (("1"
                       (split -13)
                       (("1"
                         (flatten)
                         (lemma "continuous_is_integrable"
                          ("a" "a" "b" "b" "f" "CE(GG) * CE(f!1)"))
                         (lemma "continuous_is_integrable"
                          ("a" "a" "b" "b" "f" "CE(FF) * CE(g!1)"))
                         (assert)
                         (rewrite "indefinite_add" -4)
                         (expand "integral" (1 -4))
                         (expand "integrable?" (1 -1 -2))
                         (expand "*")
                         (hide-all-but (-1 -2 -3 -4 1))
                         (expand "phi")
                         (expand "member")
                         (case-replace
                          "(LAMBDA (x_1: real):
                                                                                              IF closed(a, b)(x_1) THEN 1 ELSE 0 ENDIF *
                                                                                               (CE(FF)(x_1) * CE(g!1)(x_1)))=(LAMBDA (x_1: real):
                                                                                               IF closed(a, b)(x_1) THEN 1 ELSE 0 ENDIF *
                                                                                                (FF(x_1) * g!1(x_1)))")
                         (("1"
                           (replace -2)
                           (hide -1)
                           (case-replace
                            "(LAMBDA (x_1: real):
                                                                                                    IF closed(a, b)(x_1) THEN 1 ELSE 0 ENDIF *
                                                                                                     (CE(GG)(x_1) * CE(f!1)(x_1)))=(LAMBDA (x_1: real):
                                                                                                    IF closed(a, b)(x_1) THEN 1 ELSE 0 ENDIF *
                                                                                                     (GG(x_1) * f!1(x_1)))")
                           (("1" (hide -1) (replace -2) (assert))
                            ("2"
                             (hide-all-but 1)
                             (apply-extensionality :hide? t)
                             (expand "CE")
                             (grind))))
                          ("2"
                           (hide-all-but 1)
                           (apply-extensionality :hide? t)
                           (expand "CE")
                           (grind))))
                        ("2"
                         (hide-all-but 1)
                         (apply-extensionality :hide? t)
                         (expand "CE")
                         (typepred "x!1")
                         (expand "GG")
                         (expand "FF")
                         (grind))))
                      ("2"
                       (hide-all-but (-1 1))
                       (expand "continuous_on?")
                       (skosimp)
                       (expand "continuous?")
                       (inst - "x!1"))))
                    ("2"
                     (hide-all-but (-1 -2 1))
                     (rewrite "metric_continuous_def")
                     (rewrite "metric_continuous_def")
                     (rewrite "metric_continuous_def")
                     (rewrite "sum_continuous"))))
                  ("2"
                   (hide-all-but (1 -3 -8))
                   (rewrite "metric_continuous_def")
                   (rewrite "metric_continuous_def")
                   (rewrite "prod_continuous")
                   (hide 2 -1)
                   (expand "continuous?")
                   (expand "metric_continuous?")
                   (skosimp)
                   (case "closed(a,b)(x!1)")
                   (("1"
                     (inst - "x!1")
                     (expand "continuous?")
                     (expand "metric_continuous_at?")
                     (skosimp)
                     (inst - "epsilon!1")
                     (skosimp)
                     (inst + "delta!1")
                     (expand "ball")
                     (expand "member")
                     (skosimp)
                     (expand "CE")
                     (case "closed(a,b)(x!2)")
                     (("1"
                       (inst - "x!2")
                       (split -4)
                       (("1" (hide -4) (expand "FF") (grind))
                        ("2" (hide 2 -1 -2) (grind))))
                      ("2"
                       (case "x!2<a")
                       (("1"
                         (inst - "a")
                         (("1"
                           (expand "FF")
                           (split -4)
                           (("1" (grind)) ("2" (hide 3) (grind))))
                          ("2" (hide-all-but 1) (grind))))
                        ("2"
                         (case "b<x!2")
                         (("1"
                           (inst - "b")
                           (("1"
                             (split)
                             (("1" (expand "FF") (grind))
                              ("2" (hide 4) (grind))))
                            ("2" (hide-all-but 1) (grind))))
                          ("2" (hide-all-but (1 2 3)) (grind))))))))
                    ("2"
                     (hide -1)
                     (expand "metric_continuous_at?")
                     (skosimp)
                     (expand "ball")
                     (expand "member")
                     (expand "CE")
                     (case-replace "x!1<a")
                     (("1"
                       (inst + "a-x!1")
                       (("1" (skosimp) (expand "FF") (grind))
                        ("2" (assert))))
                      ("2"
                       (case-replace "b<x!1")
                       (("1"
                         (inst + "x!1-b")
                         (("1" (expand "FF") (grind)) ("2" (assert))))
                        ("2" (hide 4) (grind))))))))))
                ("2"
                 (hide-all-but (1 -1 -6))
                 (rewrite "metric_continuous_def")
                 (rewrite "metric_continuous_def")
                 (rewrite "prod_continuous")
                 (hide -1 2)
                 (expand "metric_continuous?")
                 (skosimp)
                 (expand "continuous?")
                 (expand "metric_continuous_at?")
                 (case "closed(a,b)(x!1)")
                 (("1"
                   (inst - "x!1")
                   (expand "continuous?")
                   (skosimp)
                   (expand "CE")
                   (expand "member")
                   (expand "ball")
                   (inst - "epsilon!1")
                   (skosimp)
                   (inst + "delta!1")
                   (skosimp)
                   (case "closed(a, b)(x!2)")
                   (("1"
                     (inst - "x!2")
                     (assert)
                     (split -4)
                     (("1" (expand "GG") (grind))
                      ("2" (hide -1 -2 2) (grind))))
                    ("2"
                     (case-replace "x!2 < a")
                     (("1"
                       (expand "GG")
                       (inst - "a")
                       (("1" (grind)) ("2" (hide-all-but 1) (grind))))
                      ("2"
                       (case-replace "b < x!2")
                       (("1"
                         (inst - "b")
                         (("1"
                           (expand "GG")
                           (split -4)
                           (("1" (hide -4) (grind))
                            ("2" (hide 4) (grind))))
                          ("2" (hide-all-but 1) (grind))))
                        ("2" (hide-all-but (1 2 3)) (grind))))))))
                  ("2"
                   (expand "member")
                   (expand "ball")
                   (hide -1)
                   (case "x!1<a")
                   (("1"
                     (skosimp)
                     (inst + "a-x!1")
                     (("1" (skosimp) (expand "CE") (grind))
                      ("2" (assert))))
                    ("2"
                     (case "b<x!1")
                     (("1"
                       (skosimp)
                       (inst + "x!1-b")
                       (("1" (expand "CE") (grind)) ("2" (assert))))
                      ("2" (hide 4) (grind))))))))))
              ("2"
               (hide-all-but (-7 1))
               (skosimp)
               (expand "continuous_on?")
               (inst - "x!1"))))
            ("2"
             (hide-all-but (1 -6))
             (skosimp)
             (expand "continuous_on?")
             (inst - "x!1"))))
          ("2" (hide-all-but 1) (expand "CE") (grind))))
        ("2"
         (hide-all-but 1)
         (skosimp)
         (rewrite "metric_continuous_def")
         (expand "CE")
         (expand "metric_continuous?")
         (skosimp)
         (expand "metric_continuous_at?")
         (skosimp)
         (expand "ball")
         (expand "member")
         (case-replace "x!1 < a")
         (("1"
           (hide -2)
           (inst + "a-x!1")
           (("1" (skosimp) (grind)) ("2" (assert))))
          ("2"
           (case-replace "b < x!1")
           (("1"
             (hide -2 1)
             (inst + "x!1-b")
             (("1" (grind)) ("2" (assert))))
            ("2"
             (assert)
             (inst - "x!1")
             (split -1)
             (("1"
               (rewrite "metric_continuous_at_def")
               (expand "metric_continuous_at?")
               (inst - "epsilon!1")
               (skosimp)
               (expand "ball")
               (expand "member")
               (inst + "delta!1")
               (skosimp)
               (case-replace "x!2 < a")
               (("1"
                 (inst - "a")
                 (split)
                 (("1" (propax)) ("2" (hide 4) (grind))))
                ("2"
                 (case-replace "b < x!2")
                 (("1"
                   (inst - "b")
                   (split)
                   (("1" (assert)) ("2" (hide 5) (grind))))
                  ("2" (assert) (inst - "x!2") (assert))))))
              ("2" (hide 4) (grind))))))))))
      ("2" (assert)) ("3" (assert))))
    ("2" (assert))))


proof_type: t_proof
decl_type: tcc
library: lebesgue
theory: lebesgue_fundamental
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (expand "connected?")
   (skosimp*)
   (typepred "x!1")
   (typepred "y!1")
   (expand "closed")
   (expand "closed_ball")
   (grind))


proof_type: t_proof
decl_type: tcc
library: lebesgue
theory: lebesgue_fundamental
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (expand "not_one_element?")
   (skosimp)
   (typepred "x!1")
   (case "x!1=a")
   (("1" (inst + "b") (("1" (assert)) ("2" (hide -2) (grind))))
    ("2" (inst + "a") (("1" (assert)) ("2" (hide -1 2) (grind))))))


proof_type: t_proof
decl_type: tcc
library: lebesgue
theory: lebesgue_fundamental
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (typepred "x!1")
   (case "x!1=a")
   (("1" (inst + "b") (("1" (assert)) ("2" (hide -2) (grind))))
    ("2" (inst + "a") (("1" (assert)) ("2" (hide -1 2) (grind))))))


proof_type: f_proof
decl_type: formula
library: lebesgue
theory: bounded_interval_props
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (typepred "A!1")
   (expand "bounded_interval?")
   (flatten)
   (expand "bounded?")
   (split)
   (("1" (expand "empty?") (inst - "a!1") (assert))
    ("2"
     (flatten)
     (typepred "inf(A!1)")
     (("1"
       (typepred "sup(A!1)")
       (("1"
         (assert)
         (name-replace "INF" "inf(A!1)")
         (name-replace "SUP" "sup(A!1)")
         (hide -3 -4 -5)
         (expand "least_upper_bound")
         (expand "greatest_lower_bound")
         (expand "lower_bound")
         (expand "upper_bound")
         (flatten)
         (inst - "a!1")
         (inst -3 "a!1")
         (assert))
        ("2" (propax))))
      ("2" (assert))))))


proof_type: f_proof
decl_type: formula
library: lebesgue
theory: bounded_interval_props
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (typepred "A!1")
   (expand "bounded_interval?")
   (expand "bounded?")
   (flatten)
   (split)
   (("1" (expand "nonempty?") (propax))
    ("2"
     (flatten)
     (hide -1)
     (typepred "inf(A!1)")
     (typepred "sup(A!1)")
     (name-replace "INF" "inf(A!1)")
     (name-replace "SUP" "sup(A!1)")
     (expand "least_upper_bound")
     (expand "greatest_lower_bound")
     (expand "upper_bound")
     (expand "lower_bound")
     (flatten)
     (inst -2 "a!1")
     (split -2)
     (("1" (assert)) ("2" (assert))
      ("3"
       (skosimp)
       (typepred "z!1")
       (case "a!1<z!1")
       (("1"
         (hide 1)
         (inst -5 "a!1")
         (split -5)
         (("1" (assert)) ("2" (assert))
          ("3"
           (skosimp)
           (case "z!2<a!1")
           (("1"
             (hide 1)
             (typepred "z!2")
             (expand "interval?")
             (inst - "z!2" "z!1" "a!1")
             (assert))
            ("2" (assert))))))
        ("2" (assert))))))))


proof_type: f_proof
decl_type: formula
library: lebesgue
theory: bounded_interval_props
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (typepred "A!1")
   (expand "bounded_interval?")
   (expand "bounded?")
   (flatten)
   (split)
   (("1" (expand "nonempty?") (propax))
    ("2"
     (flatten)
     (typepred "inf(A!1)")
     (typepred "sup(A!1)")
     (hide -7)
     (expand "nonempty?")
     (expand "empty?")
     (skosimp)
     (expand "member")
     (lemma "bounded_interval1" ("a" "x!1" "A" "A!1"))
     (assert)
     (flatten)
     (assert))))


proof_type: f_proof
decl_type: formula
library: lebesgue
theory: bounded_interval_props
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (expand "<=" -4)
   (split -4)
   (("1"
     (typepred "A!1")
     (typepred "B!1")
     (expand "bounded_interval?")
     (flatten)
     (hide -1 -3)
     (expand "bounded?")
     (split)
     (("1" (expand "empty?") (inst - "b!1") (assert))
      ("2"
       (split)
       (("1" (expand "empty?") (inst - "a!1") (assert))
        ("2"
         (flatten)
         (typepred "sup(A!1)")
         (typepred "inf(B!1)")
         (expand "greatest_lower_bound")
         (expand "lower_bound")
         (expand "least_upper_bound")
         (expand "upper_bound")
         (flatten)
         (inst -2 "sup(A!1)")
         (split -2)
         (("1" (propax)) ("2" (assert))
          ("3"
           (skosimp)
           (typepred "z!1")
           (case "z!1<sup(A!1)")
           (("1"
             (hide 1)
             (lemma "bounded_interval3" ("A" "A!1"))
             (assert)
             (expand "<=" -1)
             (split -1)
             (("1"
               (name "XX" "(max(inf(A!1),z!1)+sup(A!1))/2")
               (case "A!1(XX)")
               (("1"
                 (case "B!1(XX)")
                 (("1"
                   (expand "disjoint?")
                   (expand "empty?")
                   (inst -17 "XX")
                   (expand "intersection")
                   (expand "member")
                   (assert))
                  ("2"
                   (case "XX<sup(A!1)")
                   (("1"
                     (case "sup(A!1)<=sup(B!1)")
                     (("1"
                       (lemma "bounded_interval2" ("A" "B!1" "a" "XX"))
                       (assert)
                       (inst -8 "z!1")
                       (name-replace "IB" "inf(B!1)")
                       (name-replace "IA" "inf(A!1)")
                       (name-replace "SA" "sup(A!1)")
                       (hide-all-but (-2 -4 -5 -8 1))
                       (grind))
                      ("2"
                       (typepred "sup(A!1)")
                       (typepred "sup(B!1)")
                       (expand "least_upper_bound")
                       (expand "upper_bound")
                       (flatten)
                       (inst -2 "sup(A!1)")
                       (split -2)
                       (("1"
                         (assert)
                         (inst -2 "b!1")
                         (inst -4 "b!1")
                         (assert)
                         (skosimp)
                         (typepred "z!2")
                         (case "b!1<z!2")
                         (("1"
                           (typepred "A!1")
                           (expand "bounded_interval?")
                           (flatten)
                           (expand "interval?")
                           (inst - "a!1" "z!2" "b!1")
                           (assert)
                           (hide-all-but (-1 -26 -24))
                           (expand "disjoint?")
                           (expand "empty?")
                           (inst - "b!1")
                           (grind))
                          ("2" (assert))))
                        ("2" (assert))
                        ("3"
                         (skosimp)
                         (case "sup(A!1)<z!2")
                         (("1"
                           (hide 1)
                           (typepred "z!2")
                           (case "sup(B!1)<sup(A!1)")
                           (("1" (hide 1) (inst -4 "z!2") (assert))
                            ("2" (assert))))
                          ("2" (assert))))))))
                    ("2"
                     (name-replace "SA" "sup(A!1)")
                     (name-replace "IA" "inf(A!1)")
                     (hide-all-but (-2 -3 -4 1))
                     (grind))))))
                ("2"
                 (lemma "bounded_interval2" ("A" "A!1" "a" "XX"))
                 (assert)
                 (name-replace "SA" "sup(A!1)")
                 (name-replace "IA" "inf(A!1)")
                 (hide-all-but (-1 -2 -3 1))
                 (grind))))
              ("2"
               (case-replace "sup(A!1)=a!1")
               (("1"
                 (typepred "inf(B!1)")
                 (expand "greatest_lower_bound")
                 (expand "lower_bound")
                 (flatten)
                 (inst -2 "a!1")
                 (split -2)
                 (("1" (propax)) ("2" (assert))
                  ("3"
                   (skosimp)
                   (typepred "z!2")
                   (case "z!2<a!1")
                   (("1"
                     (hide 1)
                     (typepred "B!1")
                     (expand "bounded_interval?")
                     (flatten)
                     (hide -2)
                     (expand "interval?")
                     (inst - "z!2" "b!1" "a!1")
                     (assert)
                     (expand "disjoint?")
                     (expand "empty?")
                     (inst -19 "a!1")
                     (expand "intersection")
                     (expand "member")
                     (propax))
                    ("2" (assert))))))
                ("2"
                 (hide-all-but (-1 1 -7 -8 -9 -15))
                 (lemma "bounded_interval1" ("A" "A!1" "a" "a!1"))
                 (assert)
                 (flatten)
                 (assert))))))
            ("2" (assert))))))))))
    ("2"
     (replace -1)
     (hide -1 1)
     (expand "disjoint?")
     (expand "empty?")
     (inst - "b!1")
     (grind))))


proof_type: f_proof
decl_type: formula
library: lebesgue
theory: bounded_interval_props
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (lemma "bounded_interval4" ("A" "A!1" "B" "B!1" "a" "a!1" "b" "b!1"))
   (assert)
   (expand "<=" -5)
   (split -5)
   (("1"
     (typepred "A!1")
     (typepred "B!1")
     (expand "bounded_interval?")
     (expand "bounded?")
     (flatten)
     (split -2)
     (("1" (expand "empty?") (inst - "b!1") (assert))
      ("2"
       (split -4)
       (("1" (expand "empty?") (inst - "a!1") (assert))
        ("2"
         (flatten)
         (skosimp)
         (typepred "sup(A!1)")
         (typepred "inf(B!1)")
         (expand "greatest_lower_bound")
         (expand "least_upper_bound")
         (expand "upper_bound")
         (expand "lower_bound")
         (flatten)
         (inst - "y!1")
         (inst -3 "x!1")
         (case "x!1<=y!1")
         (("1"
           (expand "<=" -1)
           (split)
           (("1" (propax))
            ("2"
             (typepred "x!1")
             (replace -2)
             (expand "disjoint?")
             (expand "empty?")
             (inst -17 "y!1")
             (expand "intersection")
             (expand "member")
             (propax))))
          ("2" (assert))))))))
    ("2"
     (replace -1)
     (expand "disjoint?")
     (expand "empty?")
     (inst - "b!1")
     (expand "intersection")
     (expand "member")
     (propax))))


proof_type: f_proof
decl_type: formula
library: lebesgue
theory: bounded_interval_props
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (lemma "bounded_interval4" ("A" "A!1" "B" "B!1" "a" "a!1" "b" "b!1"))
   (expand "<=" -1 2)
   (replace 1 -1)
   (split -1)
   (("1"
     (lemma "bounded_interval1" ("A" "A!1" "a" "a!1"))
     (lemma "bounded_interval1" ("A" "B!1" "a" "b!1"))
     (assert)
     (flatten)
     (hide 1 -2 -3)
     (name "XX" "(inf(B!1)+sup(A!1))/2")
     (case "sup(A!1)<XX & XX < inf(B!1)")
     (("1"
       (flatten)
       (expand "union")
       (expand "bounded_interval?")
       (expand "member")
       (flatten)
       (expand "interval?")
       (inst -8 "a!1" "b!1" "XX")
       (assert)
       (split -8)
       (("1"
         (typepred "sup(A!1)")
         (expand "least_upper_bound")
         (expand "upper_bound")
         (flatten)
         (inst - "XX")
         (assert))
        ("2"
         (typepred "inf(B!1)")
         (expand "greatest_lower_bound")
         (expand "lower_bound")
         (flatten)
         (inst - "XX")
         (assert))))
      ("2" (grind))))
    ("2" (propax)) ("3" (propax)) ("4" (propax)) ("5" (propax))))


proof_type: f_proof
decl_type: formula
library: lebesgue
theory: bounded_interval_props
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (lemma "bounded_interval_disjoint_union1"
    ("A" "A!1" "B" "B!1" "a" "a!1" "b" "b!1"))
   (assert)
   (expand "bounded_interval?")
   (flatten)
   (expand "union")
   (expand "member")
   (expand "interval?")
   (inst - "a!1" "b!1" "inf(B!1)")
   (typepred "inf(B!1)")
   (expand "greatest_lower_bound")
   (expand "lower_bound")
   (flatten)
   (inst - "b!1")
   (typepred "sup(A!1)")
   (expand "least_upper_bound")
   (expand "upper_bound")
   (flatten)
   (inst - "a!1")
   (assert))


proof_type: f_proof
decl_type: formula
library: lebesgue
theory: bounded_interval_props
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (typepred "inf(A!1)")
   (typepred "inf(union[real](A!1, B!1))")
   (case "inf(union[real](A!1, B!1)) <= inf(A!1)")
   (("1"
     (case "inf(A!1)<=inf(union[real](A!1, B!1))")
     (("1" (assert))
      ("2"
       (hide -1 2)
       (expand "greatest_lower_bound")
       (expand "lower_bound")
       (flatten)
       (inst -2 "inf(A!1)")
       (split -2)
       (("1" (propax)) ("2" (assert))
        ("3"
         (skosimp)
         (typepred "z!1")
         (expand "union")
         (expand "member")
         (split -1)
         (("1" (inst -3 "z!1"))
          ("2"
           (lemma "bounded_interval1" ("A" "B!1" "a" "z!1"))
           (assert)
           (flatten)
           (lemma "bounded_interval3" ("A" "A!1"))
           (split -1)
           (("1"
             (lemma "bounded_interval4"
              ("A" "A!1" "B" "B!1" "a" "a!1" "b" "b!1"))
             (assert))
            ("2"
             (expand "nonempty?")
             (expand "empty?")
             (inst - "a!1")
             (assert))))))))))
    ("2"
     (hide 2)
     (expand "greatest_lower_bound")
     (expand "lower_bound")
     (flatten)
     (inst -4 "inf(union[real](A!1, B!1))")
     (split -4)
     (("1" (propax)) ("2" (assert))
      ("3"
       (skosimp)
       (typepred "z!1")
       (inst -2 "z!1")
       (expand "union")
       (expand "member")
       (propax))))))


proof_type: f_proof
decl_type: formula
library: lebesgue
theory: bounded_interval_props
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (case "sup(union[real](A!1, B!1)) <= sup(B!1)")
   (("1"
     (case "sup(B!1)<=sup(union[real](A!1, B!1))")
     (("1" (assert))
      ("2"
       (hide -1 2)
       (typepred "sup(union[real](A!1, B!1))")
       (typepred "sup(B!1)")
       (expand "least_upper_bound")
       (expand "upper_bound")
       (flatten)
       (inst -2 "sup(union[real](A!1, B!1))")
       (split -2)
       (("1" (propax)) ("2" (assert))
        ("3"
         (skosimp)
         (typepred "z!1")
         (inst -3 "z!1")
         (expand "union")
         (expand "member")
         (propax))))))
    ("2"
     (hide 2)
     (typepred "sup(B!1)")
     (typepred "sup(union[real](A!1, B!1))")
     (expand "least_upper_bound")
     (expand "upper_bound")
     (flatten)
     (inst -2 "sup(B!1)")
     (split -2)
     (("1" (propax)) ("2" (assert))
      ("3"
       (skosimp)
       (typepred "z!1")
       (expand "union" -1)
       (expand "member")
       (split -1)
       (("1"
         (lemma "bounded_interval1" ("A" "A!1" "a" "z!1"))
         (assert)
         (flatten)
         (lemma "bounded_interval1" ("A" "B!1" "a" "b!1"))
         (assert)
         (flatten)
         (assert)
         (lemma "bounded_interval4"
          ("A" "A!1" "B" "B!1" "a" "a!1" "b" "b!1"))
         (assert))
        ("2" (inst -3 "z!1"))))))))


proof_type: t_proof
decl_type: tcc
library: lebesgue
theory: bounded_interval_props
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (typepred "A!1")
   (expand "bounded_interval?")
   (flatten)
   (expand "bounded?")
   (split)
   (("1" (expand "empty?") (inst - "a!1") (assert))
    ("2" (flatten) (assert))))


proof_type: t_proof
decl_type: tcc
library: lebesgue
theory: bounded_interval_props
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (typepred "A!1")
   (expand "bounded_interval?")
   (expand "bounded?")
   (flatten)
   (split)
   (("1" (expand "empty?") (inst - "a!1") (assert))
    ("2" (flatten) (assert))))


proof_type: t_proof
decl_type: tcc
library: lebesgue
theory: bounded_interval_props
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (typepred "A!1")
   (expand "bounded_interval?")
   (expand "bounded?")
   (flatten)
   (assert)
   (expand "nonempty?")
   (propax))


proof_type: t_proof
decl_type: tcc
library: lebesgue
theory: bounded_interval_props
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (typepred "A!1")
   (expand "bounded_interval?")
   (expand "bounded?")
   (flatten)
   (split)
   (("1" (expand "nonempty?") (propax)) ("2" (flatten))))


proof_type: t_proof
decl_type: tcc
library: lebesgue
theory: bounded_interval_props
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (typepred "B!1")
   (expand "bounded_interval?")
   (expand "bounded?")
   (flatten)
   (split)
   (("1" (expand "empty?") (inst - "b!1") (assert))
    ("2" (flatten) (assert))))


proof_type: t_proof
decl_type: tcc
library: lebesgue
theory: bounded_interval_props
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (expand "bounded_interval?")
   (flatten)
   (expand "bounded?")
   (split -5)
   (("1"
     (expand "empty?")
     (inst - "a!1")
     (expand "union")
     (expand "member")
     (flatten))
    ("2" (flatten) (assert))))


proof_type: t_proof
decl_type: tcc
library: lebesgue
theory: bounded_interval_props
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (expand "bounded_interval?")
   (expand "bounded?")
   (flatten)
   (split -5)
   (("1"
     (expand "empty?")
     (inst - "a!1")
     (expand "union")
     (expand "member")
     (flatten))
    ("2" (flatten) (assert))))


proof_type: t_proof
decl_type: tcc
library: lebesgue
theory: bounded_interval_props
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (typepred "B!1")
   (expand "bounded_interval?")
   (expand "bounded?")
   (flatten)
   (split -2)
   (("1" (expand "empty?") (inst - "b!1") (assert))
    ("2" (flatten) (assert))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: sigma_lemmas
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (induct "j")
   (("1"
     (case "j!1=0")
     (("1" (hide 1) (skosimp) (replace -1) (expand "sigma") (propax))
      ("2" (assert))))
    ("2" (assert))
    ("3"
     (skosimp)
     (skosimp)
     (case "j!1=0")
     (("1"
       (hide -2 -3)
       (replace -1)
       (assert)
       (expand "sigma")
       (inst -2 "0")
       (assert))
      ("2"
       (case "j!1>0")
       (("1"
         (assert)
         (hide -3 1)
         (expand "sigma" 1)
         (copy -3)
         (inst -1 "j!1")
         (replace -1 1)
         (assert)
         (hide -1)
         (inst -2 "m!1" "F!1" "G!1")
         (assert))
        ("2" (assert))))))
    ("4" (skosimp) (skosimp) (assert))
    ("5" (skosimp) (skosimp) (assert))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: sigma_lemmas
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (induct "j")
   (("1"
     (skosimp)
     (case "j!1=0")
     (("1" (replace -1 2) (expand "sigma") (propax)) ("2" (assert))))
    ("2" (assert))
    ("3"
     (skosimp)
     (skosimp)
     (case "j!1=0")
     (("1"
       (replace -1 1)
       (expand "sigma")
       (expand "sigma")
       (inst -4 "1"))
      ("2"
       (case "j!1>0")
       (("1"
         (assert)
         (hide -3)
         (inst -2 "m!1" "F!1" "G!1")
         (assert)
         (replace -3 -2)
         (lemma "sigma_last[below[j!1]]")
         (("1" (expand "sigma" 2) (hide -1) (inst -3 "1+j!1") (assert))
          ("2"
           (hide -1 -2 -3 -4 2 3)
           (skosimp)
           (typepred "y!1")
           (assert))))
        ("2" (assert))))))
    ("4" (skosimp) (skosimp) (assert)) ("5" (skosimp) (skosimp))
    ("6" (skosimp) (skosimp) (assert))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: sigma_lemmas
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (induct "m")
   (("1" (skosimp) (typepred "m!1") (propax)) ("2" (assert))
    ("3"
     (skosimp)
     (skosimp)
     (case "j!1=0")
     (("1"
       (hide -2 -3)
       (replace -1)
       (expand "sigma")
       (expand "sigma")
       (propax))
      ("2"
       (assert)
       (("1"
         (lemma "sigma_last[below[2+j!1]]")
         (inst -1 " LAMBDA (i: below[2 + j!1]): F!1(i)" "1+j!1" "1")
         (assert)
         (replace -1 2)
         (hide -1)
         (lemma "sigma_last[below[1+j!1]]")
         (inst -1 " LAMBDA (i: below[1 + j!1]): F!1(1 + i)" "j!1" "0")
         (assert)
         (replace -1 2)
         (assert)
         (hide -1)
         (inst -1 " LAMBDA (i: below[1 + j!1]): F!1(i)")
         (lemma "sigma_restrict_dom")
         (inst -1 "j!1" "j!1" "LAMBDA (i_1: below[j!1]): F!1(1 + i_1)"
          "LAMBDA (i: below[1 + j!1]): F!1(1 + i)")
         (assert)
         (swap-rel -1)
         (("1"
           (replace -1 2)
           (hide -1)
           (lemma "sigma_restrict_dom2")
           (inst -1 "j!1" "1+j!1"
            " LAMBDA (i_1: below[1 + j!1]): F!1(i_1)"
            "LAMBDA (i: below[2 + j!1]): F!1(i)")
           (assert))
          ("2" (skosimp) (typepred "y!1") (assert))))
        ("2" (assert))))))
    ("4" (skosimp) (skosimp) (typepred "y!1") (assert))
    ("5" (skosimp) (assert)) ("6" (skosimp) (assert))
    ("7" (skosimp) (assert))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: sigma_lemmas
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: fin
script:
  (""
   (induct "m")
   (("1" (typepred "m!1") (propax)) ("2" (assert))
    ("3"
     (skosimp)
     (typepred "j!1")
     (case "j!1=0")
     (("1"
       (hide -2 -3 -4)
       (skosimp)
       (replace -1)
       (expand "sigma")
       (expand "sigma")
       (assert)
       (replace -2 1)
       (assert)
       (grind))
      ("2"
       (case "j!1>0")
       (("1"
         (hide -2 1)
         (hide -3)
         (assert)
         (skosimp)
         (swap-rel -3)
         (replace -3 1)
         (assert)
         (lemma "sigma_last[ Index[1 + j!1]]")
         (inst -1 " LAMBDA (i: Index[1 + j!1]): F!1(i)" "j!1" "0")
         (assert)
         (replace -1 1)
         (hide -1)
         (lemma "sigma_last[Index[n!1]]")
         (inst -1 " LAMBDA (i: Index[n!1]): G!1(i)" "j!1" "0")
         (assert)
         (replace -1 1)
         (hide -1)
         (copy -4)
         (inst -1 "j!1")
         (replace -1 1)
         (hide -1)
         (assert)
         (inst -2 "n!1-1" " LAMBDA (i: Index[j!1]): F!1(i)"
          "LAMBDA (i: Index[n!1-1]): G!1(i)")
         (assert)
         (case " (FORALL (i_1: below[j!1]): F!1(i_1) = G!1(i_1))")
         (("1"
           (replace -1 -3)
           (hide -1)
           (case " sigma(0, j!1 - 1, LAMBDA (i_1: Index[j!1]): F!1(i_1))= sigma(0, j!1 - 1, LAMBDA (i: Index[1 + j!1]): F!1(i))")
           (("1"
             (replace -1 -3)
             (hide -1)
             (case " sigma(0, n!1 - 2, LAMBDA (i_1: Index[n!1 - 1]): G!1(i_1))= sigma(0, n!1 - 2, LAMBDA (i_1: Index[n!1]): G!1(i_1))")
             (("1" (replace -1 -3) (hide -1) (replace -3 -2) (assert))
              ("2"
               (hide -2 2)
               (assert)
               (lemma "sigma_restrict_dom")
               (inst -1 "n!1-1" "n!1-1"
                " LAMBDA (i_1: Index[n!1 - 1]): G!1(i_1)"
                "LAMBDA (i_1: Index[n!1]): G!1(i_1)")
               (assert))
              ("3" (hide -2 -4 2) (grind))))
            ("2"
             (hide -2 2)
             (assert)
             (lemma "sigma_restrict_dom")
             (inst -1 "j!1" "j!1" "LAMBDA (i_1: Index[j!1]): F!1(i_1)"
              " LAMBDA (i: Index[1 + j!1]): F!1(i)")
             (assert))
            ("3" (hide -2 -4 2) (skosimp) (grind))))
          ("2" (hide -2 2) (skosimp) (inst -3 "i!1"))))
        ("2" (assert))))))
    ("4" (skosimp) (hide 2) (skosimp) (grind))
    ("5" (hide 2) (skosimp) (grind)) ("6" (hide 2) (skosimp) (grind))
    ("7" (hide 2) (skosimp) (grind))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: sigma_lemmas
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: fin
script:
  (""
   (induct "m")
   (("1" (grind)) ("2" (assert))
    ("3"
     (skosimp)
     (case "j!1=0")
     (("1"
       (hide -2 -3)
       (skosimp)
       (replace -1)
       (expand "sigma")
       (expand "sigma")
       (assert)
       (replace -2)
       (inst -3 "0"))
      ("2"
       (case "j!1>0")
       (("1"
         (assert)
         (("1"
           (hide -3 1)
           (skosimp)
           (inst -2 "n!1" "Lambda(i: below[j!1]): F!1(i)"
            " LAMBDA (i: below[j!1 + n!1]): G!1(i)")
           (assert)
           (case " (FORALL (i_1: below[j!1]): F!1(i_1) = G!1(i_1)) ")
           (("1"
             (replace -1 -3)
             (hide -1)
             (lemma "sigma_last[below[1+j!1]]")
             (inst -1 "LAMBDA (i: below[1 + j!1]): F!1(i)" "j!1" "0")
             (assert)
             (replace -1 1)
             (hide -1)
             (lemma "sigma_last[ below[1 + j!1 + n!1]]")
             (inst -1 " LAMBDA (i: below[1 + j!1 + n!1]): G!1(i)"
              "j!1+n!1" "0")
             (assert)
             (replace -1 1)
             (hide -1)
             (copy -4)
             (inst -1 "j!1")
             (case "F!1(j!1)=G!1(j!1+n!1)")
             (("1"
               (replace -1 1)
               (assert)
               (hide -1 -2)
               (case " sigma(0, j!1 - 1, LAMBDA (i_1: below[j!1]): F!1(i_1)) =sigma(0, j!1 - 1, LAMBDA (i: below[1 + j!1]): F!1(i))")
               (("1"
                 (replace -1 -3)
                 (hide -1)
                 (case " sigma(0, j!1 - 1 + n!1, LAMBDA (i_1: below[j!1 + n!1]): G!1(i_1))= sigma(0, j!1 - 1 + n!1, LAMBDA (i: below[1 + j!1 + n!1]): G!1(i))")
                 (("1" (replace -1 -3) (propax))
                  ("2"
                   (hide 2)
                   (hide -2)
                   (assert)
                   (lemma "sigma_restrict_dom")
                   (inst -1 "j!1+n!1" "j!1+n!1"
                    " LAMBDA (i_1: below[j!1 + n!1]): G!1(i_1)"
                    " LAMBDA (i: below[1 + j!1 + n!1]): G!1(i)")
                   (assert))
                  ("3" (skosimp) (hide -4 -6 2) (grind))))
                ("2"
                 (hide -2 2)
                 (assert)
                 (lemma "sigma_restrict_dom")
                 (inst -1 "j!1" "j!1"
                  " LAMBDA (i_1: below[j!1]): F!1(i_1)"
                  " LAMBDA (i: below[1 + j!1]): F!1(i)")
                 (assert))
                ("3" (hide -2 -4 2) (skosimp) (grind))))
              ("2" (replace -4) (assert))))
            ("2" (skosimp) (inst -4 "i!1"))))
          ("2" (skosimp) (assert))))
        ("2" (assert))))))
    ("4" (hide 2) (grind)) ("5" (hide 2) (grind)) ("6" (hide 2) (grind))
    ("7" (hide 2) (grind)) ("8" (hide 2) (grind)) ("9" (hide 2) (grind))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: sigma_lemmas
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: finished
script:
  (""
   (induct "j")
   (("1" (assert)) ("2" (assert))
    ("3"
     (skosimp)
     (case "j!1=0")
     (("1"
       (skosimp)
       (hide -2)
       (replace -1)
       (assert)
       (replace -3)
       (expand "sigma")
       (expand "sigma")
       (inst -5 "0"))
      ("2"
       (case "j!1>0")
       (("1"
         (assert)
         (hide -3 1)
         (skosimp)
         (lemma "sigma_last[below[m!1]]")
         (("1"
           (inst -1 " LAMBDA (i: below[m!1]): F!1(i)" "j!1" "0")
           (assert)
           (replace -1 1)
           (hide -1)
           (lemma "sigma_last[below[m!1+n!1]]")
           (("1"
             (inst -1 " LAMBDA (i: below[m!1 + n!1]): G!1(i)" "j!1+n!1"
              "0")
             (assert)
             (replace -1 1)
             (hide -1)
             (copy -5)
             (inst -1 "j!1")
             (replace -1 1)
             (hide -1)
             (case "G!1(j!1)=G!1(j!1+n!1)")
             (("1"
               (replace -1 1)
               (hide -1)
               (assert)
               (inst -2 "m!1" "n!1" " LAMBDA (i: below[m!1]): F!1(i)"
                " LAMBDA (i: below[m!1 + n!1]): G!1(i)")
               (assert))
              ("2" (replace -3 1) (assert))))
            ("2" (hide -2 2) (skosimp) (hide -6) (grind))))
          ("2" (hide -2 -5 2) (skosimp) (grind))))
        ("2" (assert))))))
    ("4" (hide 2) (skosimp) (skosimp) (skosimp) (hide -4) (grind))
    ("5" (hide 2) (skosimp) (skosimp) (hide -4) (grind))
    ("6" (hide 2) (skosimp) (skosimp) (skosimp) (hide -4) (grind))
    ("7" (hide 2) (skosimp) (skosimp) (hide -4) (grind))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: sigma_lemmas
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: fin
script:
  (""
   (induct "n")
   (("1" (grind)) ("2" (assert))
    ("3"
     (skosimp)
     (skosimp)
     (typepred "j!1")
     (case "j!1=0")
     (("1"
       (replace -1)
       (hide -3 -4)
       (assert)
       (case " (FORALL (i: below[m!1]): F!1(i) = G!1(i))")
       (("1"
         (hide -1)
         (hide -3 -4)
         (hide -1)
         (lemma "sigma_eq[below[1+j!1+m!1]]")
         (inst -1 "G!1" "lambda(i:below[1+j!1+m!1]):G!1(i)" "j!2-1" "0")
         (assert)
         (replace -1 1)
         (hide -1)
         (lemma "sigma_eq[below[1+m!1]]")
         (inst -1 "G!1" " LAMBDA (i: below[1 +m!1]): G!1(i)" "j!2-1" "0")
         (("1"
           (assert)
           (hide -1)
           (lemma "aux_sigma2")
           (inst -1 "m!1+1" "j!2" "j!1"
            "LAMBDA (i: below[1 + m!1]): G!1(i)"
            "LAMBDA (i: below[1 + j!1 + m!1]): G!1(i)")
           (assert)
           (lemma "sigma_restrict_dom")
           (inst -1 "j!2" "m!1" "F!1" "G!1")
           (("1" (assert)) ("2" (hide -1 2) (skosimp) (grind))))
          ("2" (skosimp) (hide 2) (grind))))
        ("2" (propax))))
      ("2"
       (case "j!1>0")
       (("1"
         (assert)
         (hide -2 1 -4)
         (inst -2 "j!2" "_" "_" "_")
         (inst -2 "m!1" "_" "_")
         (inst -2 "F!1" "_")
         (inst -2 "Lambda(i: below[j!1+m!1]): G!1(i)")
         (case " (FORALL (i_1: below[m!1]): F!1(i_1) = G!1(i_1))")
         (("1"
           (replace -1 -3)
           (hide -1)
           (assert)
           (replace -2 1)
           (hide -2)
           (assert)
           (hide -1)
           (lemma "sigma_eq[below[1 + j!1 + m!1]]")
           (inst -1 "LAMBDA (i: below[j!1 + m!1 + 1]): G!1(i)" "G!1"
            "j!2-1" "0")
           (assert)
           (lemma "sigma_restrict_dom")
           (inst -1 "j!2" "j!1+m!1"
            "LAMBDA (i: below[j!1 + m!1]): G!1(i)"
            "LAMBDA (i: below[j!1 + m!1+1]): G!1(i)")
           (assert))
          ("2" (propax))))
        ("2" (assert))))))
    ("4" (skosimp) (grind)) ("5" (hide 2) (skosimp) (grind))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: sigma_lemmas
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: finished
script:
  (""
   (induct "j")
   (("1" (assert)) ("2" (assert))
    ("3"
     (skosimp)
     (case "j!1=0")
     (("1"
       (hide -2)
       (hide -2)
       (skosimp)
       (replace -1)
       (expand "sigma")
       (expand "sigma")
       (inst -4 "0"))
      ("2"
       (case "j!1>0")
       (("1"
         (hide 1)
         (assert)
         (hide -3)
         (skosimp)
         (inst -2 "m!1+1" "n!1+1" "_" "_")
         (assert)
         (inst -2
          " LAMBDA (i: Index[m!1+1]): IF i<m!1 THEN F!1(i) ELSE 0 ENDIF"
          "_")
         (inst -2
          " LAMBDA (i: Index[n!1+1]): IF i<n!1 THEN G!1(i) ELSE 0 ENDIF")
         (case " (FORALL (i_1: below[1 + m!1]):
                        IF i_1 < m!1 THEN F!1(i_1) ELSE 0 ENDIF =
                         IF i_1 < n!1 THEN G!1(i_1) ELSE 0 ENDIF)")
         (("1"
           (replace -1 -3)
           (hide -1)
           (lemma "sigma_last[below[m!1]]")
           (("1"
             (inst -1 "LAMBDA (i: Index[m!1]): F!1(i)" "j!1" "0")
             (assert)
             (replace -1 1)
             (hide -1)
             (lemma "sigma_last[below[n!1]]")
             (("1"
               (inst -1 " LAMBDA (i: Index[n!1]): G!1(i)" "j!1" "0")
               (assert)
               (replace -1 1)
               (hide -1)
               (copy -5)
               (inst -1 "j!1")
               (replace -1 1)
               (hide -1)
               (assert)
               (lemma "sigma_restrict_gen")
               (inst -1 "j!1" "m!1" "1" " LAMBDA (i: Index[m!1]): F!1(i)"
                " LAMBDA (i_1: Index[1 + m!1]):
                              IF i_1 < m!1 THEN F!1(i_1) ELSE 0 ENDIF")
               (assert)
               (swap-rel -1)
               (("1"
                 (replace -1 -3)
                 (hide -1)
                 (lemma "sigma_restrict_gen")
                 (inst -1 "j!1" "n!1" "1"
                  " LAMBDA (i: Index[n!1]): G!1(i)"
                  " LAMBDA (i_1: Index[1 + n!1]):
                                 IF i_1 < n!1 THEN G!1(i_1) ELSE 0 ENDIF")
                 (assert))
                ("2" (skosimp) (assert))))
              ("2" (skosimp) (assert))))
            ("2" (skosimp) (assert))))
          ("2"
           (hide -2 2)
           (skosimp)
           (lift-if)
           (case "i!1<m!1")
           (("1" (assert) (inst -5 "i!1"))
            ("2" (case "i!1>=m!1") (("1" (assert)) ("2" (assert))))))))
        ("2" (assert))))))
    ("4" (skosimp) (skosimp) (skosimp) (assert))
    ("5" (skosimp) (skosimp) (assert))
    ("6" (skosimp) (skosimp) (skosimp) (assert))
    ("7" (skosimp) (skosimp) (assert))
    ("8" (skosimp) (skosimp) (skosimp) (assert))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: sigma_lemmas
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (lemma "sigma_split[below[m!1]]")
   (("1"
     (inst -1 "F!1" "j!1-1" "0" "k!1-1")
     (assert)
     (lemma "sigma_split[below[m!1+n!1]]")
     (("1"
       (inst -1 "G!1" "j!1-1" "0" "k!1-1")
       (assert)
       (lemma "both_sides_plus2")
       (lemma "sigma_restrict_gen")
       (inst -1 "j!1" "m!1" "n!1" "F!1" "G!1")
       (replace -5 -1)
       (assert)
       (replace -1 -4)
       (hide -1)
       (lemma "sigma_restrict_gen")
       (inst -1 "k!1" "m!1" "n!1" "F!1" "G!1")
       (replace -5 -1)
       (assert))
      ("2" (skosimp) (hide -3 2) (assert))))
    ("2" (skosimp) (hide -3 2) (assert))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: sigma_lemmas
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (lemma "sigma_eq_index2")
   (inst -1 "m!1" "n!1" "j!1" " LAMBDA (i: Index[m!1]): F!1(i)"
    "LAMBDA (i: Index[n!1]): G!1(i)")
   (assert)
   (case " (FORALL (i_1: below[m!1]): F!1(i_1) = G!1(i_1))")
   (("1"
     (replace -1 -2)
     (hide -1)
     (lemma "sigma_split[below[m!1]]")
     (("1"
       (inst -1 " LAMBDA (i_1: Index[m!1]): F!1(i_1)" "j!1-1" "0"
        "k!1-1")
       (assert)
       (replace -1 -2)
       (hide -1)
       (lemma "sigma_split[below[n!1]]")
       (("1"
         (inst -1 " LAMBDA (i_1: Index[n!1]): G!1(i_1)" "j!1-1" "0"
          "k!1-1")
         (assert)
         (replace -1 -2)
         (hide -1)
         (case " sigma(0, k!1 - 1, LAMBDA (i_1: Index[m!1]): F!1(i_1))= sigma(0, k!1 - 1, LAMBDA (i_1: Index[n!1]): G!1(i_1))")
         (("1" (assert))
          ("2"
           (hide -1 2)
           (lemma "sigma_eq_index2")
           (inst -1 "m!1" "n!1" "k!1"
            " LAMBDA (i_1: Index[m!1]): F!1(i_1)"
            "LAMBDA (i_1: Index[n!1]): G!1(i_1)")
           (assert))))
        ("2" (skosimp) (assert))))
      ("2" (skosimp) (assert))))
    ("2" (propax))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: sigma_lemmas
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: finished
script:
  (""
   (induct "m")
   (("1" (assert)) ("2" (assert))
    ("3"
     (skosimp)
     (skosimp)
     (case "j!1=0")
     (("1"
       (hide -2 -3)
       (typepred "j!2")
       (case "j!2=1")
       (("1"
         (hide -2)
         (replace -1)
         (assert)
         (expand "sigma")
         (expand "sigma")
         (propax))
        ("2" (hide 2) (assert))))
      ("2"
       (case "j!1>0")
       (("1"
         (assert)
         (hide -3 1)
         (typepred "j!2")
         (case "j!2=1")
         (("1"
           (replace -1)
           (assert)
           (expand "sigma")
           (expand "sigma")
           (propax))
          ("2"
           (case "j!2>1")
           (("1"
             (hide 1)
             (hide -2)
             (inst -3 "j!2-1" "n!1"
              "LAMBDA (i: below[j!1 + n!1]): F!1(i)")
             (("1"
               (assert)
               (lemma "sigma_last[below[1+j!1]]")
               (("1"
                 (inst -1 " LAMBDA (i: below[1 + j!1]): F!1(i + n!1)"
                  "j!2-1" "0")
                 (assert)
                 (replace -1 1)
                 (hide -1)
                 (lemma "sigma_last[below[1+j!1+n!1]]")
                 (("1"
                   (inst -1 " LAMBDA (i: below[1 + j!1 + n!1]): F!1(i)"
                    "j!2-1+n!1" "n!1")
                   (assert)
                   (replace -1 1)
                   (hide -1)
                   (assert)
                   (lemma "sigma_restrict_gen")
                   (inst -1 "j!2-1" "j!1" "1"
                    "LAMBDA (i_1: below[j!1]): F!1(i_1 + n!1)"
                    " LAMBDA (i: below[1 + j!1]): F!1(i + n!1)")
                   (assert)
                   (replace -1 -4)
                   (hide -1)
                   (case " sigma[below[j!1 + n!1]]
                                    (n!1, j!2 - 2 + n!1, LAMBDA (i_1: below[j!1 + n!1]): F!1(i_1))= sigma(n!1, j!2 - 2 + n!1, LAMBDA (i: below[1 + j!1 + n!1]): F!1(i))")
                   (("1" (replace -1 -4) (propax))
                    ("2"
                     (hide -3 2)
                     (lemma "sigma_restrict_gen2")
                     (inst -1 "j!2-1+n!1" "n!1" "j!1+n!1" "1"
                      " LAMBDA (i_1: below[j!1 + n!1]): F!1(i_1)"
                      " LAMBDA (i: below[1 + j!1 + n!1]): F!1(i)")
                     (assert))
                    ("3" (skosimp) (hide -3 2) (grind))))
                  ("2" (skosimp) (hide -5 2) (grind))))
                ("2" (hide -3 2) (skosimp) (grind))))
              ("2" (assert))))
            ("2" (assert))))))
        ("2" (assert))))))
    ("4" (hide 2) (skosimp) (skosimp) (skosimp) (grind))
    ("5" (hide 2) (skosimp) (skosimp) (grind))
    ("6" (hide 2) (skosimp) (skosimp) (grind))
    ("7" (hide 2) (skosimp) (skosimp) (skosimp) (grind))
    ("8" (hide 2) (skosimp) (skosimp) (grind))
    ("9" (hide 2) (skosimp) (skosimp) (grind))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrices
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: thm
script:
  (""
   (skosimp)
   (apply-extensionality)
   (("1" (grind)) ("2" (grind))
    ("3"
     (apply-extensionality 1)
     (case "x!1=x!2 or x!1/=x!2")
     (("1"
       (split)
       (("1" (replace -1) (expand "I" 1) (assert) (grind))
        ("2" (hide 2 3) (grind))))
      ("2" (hide 2 3 4) (grind))))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrices
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (grind-with-ext :if-match nil)
   (inst? :copy? t)
   (assert)
   (replace -4 :hide? t)
   (assert)
   (case-replace
    "(LAMBDA (k: below(Z!1`cols)):
                  Z!1`matrix(i!1, k) * M!1`matrix(k, j!1)) = (LAMBDA (k:
                  below(Z!1`cols)): 0)")
   (("1" (use "sigma_const[below(Z!1`cols)]") (assert))
    ("2" (apply-extensionality :hide? t) (inst?) (assert))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrices
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (grind-with-ext :if-match nil)
   (inst? :copy? t)
   (replace -4 :hide? t)
   (assert)
   (case-replace
    "(LAMBDA (k: below(M!1`cols)):
                  M!1`matrix(i!1, k) * Z!1`matrix(k, j!1)) = (LAMBDA (k:
                  below(M!1`cols)): 0)")
   (("1" (use "sigma_const[below(M!1`cols)]") (assert))
    ("2" (apply-extensionality :hide? t) (inst?) (assert))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrices
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skolem-typepred)
   (lemma "sigma_with[below(n!1)]")
   (inst?)
   (inst -1 "lambda (k: below(n!1)): 0" "r!1" "j!1")
   (assert)
   (replace -1)
   (assert)
   (hide -1)
   (use "sigma_const[below(n!1)]")
   (replace -1)
   (lift-if)
   (assert))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrices
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skolem-typepred)
   (expand "identity?")
   (flatten)
   (expand "*")
   (apply-extensionality :hide? t)
   (("1" (grind))
    ("2"
     (apply-extensionality :hide? t)
     (case-replace
      "(LAMBDA (k: below(M!1`cols)):
                        M!1`matrix(x!1, k) * I!1`matrix(k, x!2)) = (LAMBDA (k:
                        below(M!1`cols)): if k = x!2 then M!1`matrix(x!1, x!2) else
          0 endif)"
      :hide? t)
     (("1"
       (case-replace
        "(LAMBDA (k: below(M!1`cols)):
                             IF k = x!2 THEN M!1`matrix(x!1, x!2) ELSE 0 ENDIF) = (LAMBDA
                             (k: below(M!1`cols)): 0) WITH [(x!2) := M!1`matrix(x!1,
              x!2)]"
        :hide? t)
       (("1" (use "sigma_lem"))
        ("2" (hide 2) (apply-extensionality :hide? t) (lift-if) (propax))
        ("3" (hide 2) (grind)) ("4" (hide 2) (grind))))
      ("2"
       (hide 2)
       (apply-extensionality :hide? t)
       (("1"
         (inst?)
         (("1" (replace -2) (lift-if) (assert)) ("2" (grind))))
        ("2" (grind))))
      ("3" (grind))))
    ("3" (grind))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrices
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skolem-typepred)
   (expand "identity?")
   (expand "*")
   (apply-extensionality :hide? t)
   (("1"
     (apply-extensionality :hide? t)
     (flatten)
     (case-replace
      "(LAMBDA (k: below(I!1`cols)):
                                I!1`matrix(x!1, k) * M!1`matrix(k, x!2)) = (LAMBDA (k:
                                below(I!1`cols)): if k = x!1 then M!1`matrix(x!1,
          x!2) else 0 endif)"
      :hide? t)
     (("1"
       (case-replace
        "(LAMBDA (k: below(I!1`cols)):
                                         IF k = x!1 THEN M!1`matrix(x!1, x!2) ELSE 0 ENDIF) = (LAMBDA
                                         (k: below(I!1`cols)): 0) WITH [(x!1) :=
              M!1`matrix(x!1, x!2)]"
        :hide? t)
       (("1" (assert) (use "sigma_lem") (grind))
        ("2"
         (apply-extensionality :hide? t)
         (("1" (lift-if) (propax)) ("2" (grind))))
        ("3" (grind)) ("4" (grind)) ("5" (grind))))
      ("2"
       (apply-extensionality :hide? t)
       (("1"
         (lift-if)
         (inst? -2)
         (("1" (assert) (replace -2) (lift-if) (assert)) ("2" (grind))))
        ("2" (grind))))
      ("3" (grind))))
    ("2" (grind)) ("3" (grind))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrices
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: thm
script:
  (""
   (skosimp)
   (expand "*")
   (skosimp)
   (apply-extensionality)
   (("1"
     (hide 2)
     (typepred "I!1")
     (expand "identity?")
     (flatten)
     (lemma "sigma_middle[below[I!1`cols]]")
     (inst -1 "LAMBDA (k: below(I!1`cols)): I!1`matrix(x!2, k) * x!1(k)"
      "I!1`cols-1" "x!2" "0")
     (assert)
     (typepred "x!2")
     (expand "square?")
     (replace -3)
     (assert)
     (replace -2)
     (case "sigma(0, x!2 - 1,
                       LAMBDA (k: below(I!1`cols)): I!1`matrix(x!2, k) * x!1(k))=0")
     (("1"
       (replace -1)
       (assert)
       (case "sigma(1 + x!2, I!1`cols - 1,
                         LAMBDA (k: below(I!1`cols)): I!1`matrix(x!2, k) * x!1(k))=0")
       (("1"
         (replace -1)
         (assert)
         (copy -6)
         (inst -1 "x!2" "x!2")
         (replace -1)
         (assert))
        ("2"
         (hide 2)
         (lemma "sigma_zero[below[I!1`cols]]")
         (inst -1 "I!1`cols-1" "1+x!2")
         (lemma "sigma_eq[below[I!1`cols]]")
         (inst?)
         (inst -1
          "LAMBDA (k: below(I!1`cols)): I!1`matrix(x!2, k) * x!1(k)")
         (assert)
         (skosimp)
         (inst -6 "x!2" "n!1")
         (assert))))
      ("2"
       (hide 2)
       (lemma "sigma_zero[below[I!1`cols]]")
       (inst -1 "x!2-1" "0")
       (lemma "sigma_eq[below[I!1`cols]]")
       (inst?)
       (inst -1
        "LAMBDA (k: below(I!1`cols)): I!1`matrix(x!2, k) * x!1(k)")
       (assert)
       (skosimp)
       (inst -5 "x!2" "n!1")
       (assert))))
    ("2" (skosimp) (grind)) ("3" (skosimp) (grind))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrices
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (case-replace "m!1 - 1 = 0")
   (("1" (grind) (use "sigma_scal[below(n!1)]") (assert))
    ("2"
     (generalize "m!1 - 1" "mm" "below(m!1)")
     (induct "mm")
     (skosimp*)
     (expand "sigma" 2 3)
     (expand "sigma" 2 1)
     (use "sigma_scal[below(n!1)]")
     (replace -1 :hide? t)
     (assert)
     (replace -2)
     (grind)
     (use "sigma_scal[below(n!1)]")
     (replace -1 :hide? t)
     (propax))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrices
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (generalize "m!1 - 1" "mm" "below(m!1)")
   (induct "mm")
   (("1" (flatten) (grind))
    ("2"
     (skosimp*)
     (expand "sigma" 1 4)
     (expand "sigma" 1 1)
     (replace -2 :hide? t)
     (rewrite "sigma_sum[below(n!1)]"))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrices
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skolem-typepred)
   (expand "*")
   (apply-extensionality :hide? t)
   (lemma "sigma_prop")
   (inst? :copy? t)
   (replace -2 :hide? t)
   (inst -1 "N!1`cols" "M!1`cols"
    "LAMBDA (k_1: below(N!1`cols)): P!1`matrix(k_1, x!2)"
    "LAMBDA (k_1: below(N!1`cols), k: below(M!1`cols)):
                           M!1`matrix(x!1, k) * N!1`matrix(k, k_1)")
   (assert)
   (replace -1)
   (rewrite "sigma_comm")
   (assert))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrices
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: thm
script:
  (""
   (skosimp)
   (expand "*")
   (apply-extensionality)
   (("1"
     (hide 2)
     (lemma "sigma_prop")
     (inst?)
     (replace -1)
     (assert)
     (hide -1)
     (lemma "sigma_comm")
     (inst?)
     (replace -1)
     (assert)
     (hide -1)
     (name "aa"
           "LAMBDA (j_1: below(N!1`cols)):
                         sigma(0, M!1`cols - 1,
                               LAMBDA (i_1: below(M!1`cols)):
                                 M!1`matrix(x!1, i_1) *
                                  (N!1`matrix(i_1, j_1) * V!1(j_1)))")
     (replace -1)
     (name "bb"
           "LAMBDA (k_1: below(N!1`cols)):
                          sigma(0, M!1`cols - 1,
                                LAMBDA (k: below(M!1`cols)):
                                  M!1`matrix(x!1, k) * N!1`matrix(k, k_1))
                           * V!1(k_1)")
     (replace -1)
     (hide -1)
     (lemma "sigma_eq[below[N!1`cols]]")
     (inst -1 "aa" "bb" "N!1`cols-1" "0")
     (case "(FORALL (n: subrange(0, N!1`cols - 1)): aa(n) = bb(n))")
     (("1" (assert))
      ("2"
       (skosimp)
       (hide -1 -2 2)
       (expand "aa")
       (expand "bb")
       (lemma "sigma_eq[below[M!1`cols]]")
       (lemma "sigma_scal[below[M!1`cols]]")
       (inst -1
        "LAMBDA (k: below(M!1`cols)):
                       M!1`matrix(x!1, k) * N!1`matrix(k, n!1)"
        "V!1(n!1)" "M!1`cols-1" "0")
       (replace -1)
       (assert))))
    ("2" (skosimp) (assert)) ("3" (skosimp) (assert))
    ("4" (skosimp) (assert)) ("5" (skosimp) (assert))
    ("6" (skosimp) (assert)) ("7" (skosimp) (assert))
    ("8" (skosimp) (assert)) ("9" (skosimp) (assert))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrices
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skolem-typepred)
   (expand "*")
   (expand "+")
   (apply-extensionality :hide? t)
   (("1"
     (lemma "sigma_sum[below(M!1`cols)]")
     (inst?)
     (("1" (replace -1 :hide? t) (propax))
      ("2" (typepred "x!2") (hide 2) (grind))
      ("3" (hide 2) (typepred "x!2") (grind))))
    ("2" (grind)) ("3" (grind)) ("4" (grind))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrices
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skolem-typepred)
   (expand "same_dim?")
   (expand "+")
   (expand "*")
   (apply-extensionality :hide? t)
   (("1"
     (same-name "sigma[below(N!1`cols)]" "sigma[below(M!1`cols)]")
     (("1"
       (replace -1 :hide? t)
       (flatten)
       (replace -2)
       (rewrite "sigma_sum[below(M!1`cols)]"))
      ("2" (hide 2) (grind))))
    ("2" (grind)) ("3" (grind)) ("4" (grind)) ("5" (grind)) ("6" (grind))
    ("7" (grind)) ("8" (grind)) ("9" (grind)) ("10" (grind))
    ("11" (grind))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrices
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: thm
script:
  (""
   (skosimp)
   (apply-extensionality)
   (case "(M!1 * v1!1 - M!1 * v2!1)(x!1)=(M!1 * v1!1)(x!1) - (M!1 * v2!1)(x!1)")
   (("1"
     (replace -1)
     (assert)
     (expand "*" 1)
     (hide -1 2)
     (lemma "sigma_minus[below[M!1`cols]]")
     (inst?)
     (assert)
     (replace -1)
     (hide -1)
     (lemma "sigma_eq[below[M!1`cols]]")
     (inst?)
     (assert)
     (skosimp)
     (assert)
     (hide 2)
     (grind))
    ("2" (hide 2 3) (grind))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrices
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skolem-typepred)
   (expand "transpose")
   (expand "*")
   (apply-extensionality :hide? t)
   (("1"
     (same-name "sigma[below(N!1`rows)]" "sigma[below(M!1`cols)]")
     (("1"
       (replace -1)
       (replace -2 :dir rl)
       (case-replace
        "(LAMBDA (k: below(M!1`cols)):
                      M!1`matrix(x!2, k) * N!1`matrix(k, x!1)) = (LAMBDA (k: below(N!1`rows)):
                      N!1`matrix(k, x!1) * M!1`matrix(x!2, k))")
       (("1"
         (hide 2)
         (assert)
         (apply-extensionality :hide? t)
         (("1" (grind)) ("2" (grind) (typepred "x!2") (grind))
          ("3" (typepred "x!1") (grind)) ("4" (typepred "x!1") (grind))
          ("5" (typepred "x!2") (grind))))
        ("2" (hide 2) (typepred "x!2") (grind))
        ("3" (hide 2) (typepred "x!1") (grind))
        ("4" (hide 2) (typepred "x!1") (grind))
        ("5" (hide 2) (typepred "x!2") (grind))))
      ("2" (hide 2) (grind))))
    ("2" (grind)) ("3" (grind)) ("4" (grind))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrices
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: thm
script:
  (""
   (skosimp)
   (expand "*")
   (lemma "sigma_prop")
   (inst?)
   (replace -1)
   (hide -1)
   (lemma "sigma_comm")
   (inst?)
   (replace -1)
   (hide -1)
   (name "aa"
         "LAMBDA (j_1: below(A!1`cols)):
                       sigma(0, A!1`rows - 1,
                             LAMBDA (i_1: below(A!1`rows)):
                               x!1(i_1) * (A!1`matrix(i_1, j_1) * y!1(j_1)))")
   (("1"
     (replace -1)
     (name "bb"
           "LAMBDA (i_1: Index[transpose(A!1)`rows]):
                          sigma(0, transpose(A!1)`cols - 1,
                                LAMBDA (k: below(transpose(A!1)`cols)):
                                  transpose(A!1)`matrix(i_1, k) * x!1(k))
                           * y!1(i_1)")
     (("1"
       (replace -1)
       (hide -1 -2)
       (lemma "sigma_eq[below[A!1`cols]]")
       (inst?)
       (inst -1 "bb")
       (("1"
         (case "A!1`cols=transpose(A!1)`rows")
         (("1"
           (replace -1 :actuals? t :hide? t)
           (assert)
           (hide 2)
           (grind)
           (expand "aa")
           (expand "bb")
           (lemma "sigma_eq[below[A!1`cols]]")
           (name "a1"
                 "LAMBDA (i_1: below(A!1`rows)):
                               x!1(i_1) * (A!1`matrix(i_1, n!1) * y!1(n!1))")
           (replace -1)
           (hide -1)
           (lemma "sigma_scal[below[transpose(A!1)`cols]]")
           (inst?)
           (("1"
             (inst -1 "y!1(n!1)")
             (swap-rel -1)
             (("1"
               (case " sigma(0, transpose(A!1)`cols - 1,
                                  LAMBDA (k: below(transpose(A!1)`cols)):
                                    transpose(A!1)`matrix(n!1, k) * x!1(k))
                             * y!1(n!1)= y!1(n!1) *
                            sigma(0, transpose(A!1)`cols - 1,
                                  LAMBDA (k: below(transpose(A!1)`cols)):
                                    transpose(A!1)`matrix(n!1, k) * x!1(k))")
               (("1"
                 (replace -1)
                 (replace -2)
                 (hide -1 -2)
                 (name "a2"
                       " LAMBDA (i: below[transpose(A!1)`cols]):
                                      y!1(n!1) * (transpose(A!1)`matrix(n!1, i) * x!1(i))")
                 (replace -1)
                 (lemma "sigma_eq[below[A!1`rows]]")
                 (inst?)
                 (inst -1 "a2")
                 (case "transpose(A!1)`cols=A!1`rows")
                 (("1"
                   (replace -1 :actuals? t :hide? t)
                   (assert)
                   (assert)
                   (hide 2)
                   (grind)
                   (expand "a1")
                   (expand "a2")
                   (assert))
                  ("2" (hide 2) (grind))))
                ("2" (hide 2) (assert)) ("3" (hide 2) (grind))))
              ("2" (hide 2) (grind))))
            ("2" (hide 2) (grind))))
          ("2" (hide 2) (grind))))
        ("2" (skosimp) (grind))))
      ("2" (hide 2) (grind)) ("3" (grind)) ("4" (hide 2) (grind))
      ("5" (hide 2) (grind))))
    ("2" (hide 2) (grind)) ("3" (hide 2) (grind))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrices
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skolem-typepred)
   (expand "square?")
   (expand "inverse?")
   (flatten)
   (lemma "right_mult_ident")
   (inst -1 "N!1" "I(N!1`rows)")
   (("1"
     (replace -5)
     (replace -10 -1 :dir rl)
     (rewrite "mult_assoc")
     (replace -7)
     (rewrite "left_mult_ident")
     (("1" (assert)) ("2" (grind))))
    ("2" (grind))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrices
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skolem-typepred)
   (expand "invertible?")
   (skolem-typepred)
   (skolem-typepred)
   (expand "square?")
   (assert)
   (hide-all-but (-3 -6 1))
   (expand "inverse?")
   (inst 1 "N!3 * N!2")
   (expand "square?")
   (assert)
   (flatten)
   (prop)
   (("1" (grind)) ("2" (grind))
    ("3"
     (expand "inverse?")
     (rewrite "mult_assoc")
     (("1"
       (lemma "mult_assoc")
       (inst -1 "M!1" "N!1" "N!3")
       (replace -1 :dir rl)
       (replace -2)
       (rewrite "right_mult_ident")
       (("1"
         (rewrite "mult_assoc")
         (("1"
           (lemma "mult_assoc")
           (inst -1 "N!3" "N!2" "M!1")
           (replace -1 1 :dir rl :hide? t)
           (replace -5)
           (hide -1)
           (case-replace "(M!1 * N!1)`rows = M!1`rows" :hide? t)
           (("1"
             (assert)
             (rewrite "right_mult_ident")
             (("1" (assert)) ("2" (hide-all-but 1) (grind))))
            ("2" (hide-all-but 1) (grind))))
          ("2" (hide-all-but 1) (grind))))
        ("2" (hide-all-but 1) (grind))))
      ("2" (hide-all-but 1) (grind))))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrices
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skolem-typepred)
   (expand "square?")
   (assert)
   (hide -1 -3 -5)
   (expand "invertible?")
   (skolem-typepred)
   (skolem-typepred)
   (expand "square?")
   (assert)
   (hide -1 -2 -4 -5)
   (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!3")
     (("1"
       (replace -2 :hide? t)
       (typepred
        "the! (N: Square | (N`rows = M!1`rows)): inverse?(M!1)(N)")
       (("1"
         (hide -1 -2)
         (inst -2 "M!1"
          "the! (N: Square | (N`rows = M!1`rows)):
           inverse?(M!1)(N)"
          "N!2")
         (("1"
           (replace -2 :hide? t)
           (typepred
            "the! (N: Square | (N`rows = ((M!1 * N!1))`rows)):
                     inverse?((M!1 * N!1))(N)")
           (("1"
             (hide -1 -2)
             (lemma "invertible_product")
             (inst -1 "M!1" "N!1")
             (expand "invertible?")
             (skolem-typepred)
             (lemma "inverse_unique")
             (inst -1 "M!1 * N!1"
              "the! (N: Square | (N`rows = ((M!1 * N!1))`rows)):
                       inverse?((M!1 * N!1))(N)"
              "N!4")
             (("1"
               (replace -1 :hide? t)
               (expand "inverse?")
               (flatten)
               (expand "square?")
               (assert)
               (hide -1 -2)
               (case-replace "(M!1 * N!1)`rows = M!1`rows" :hide? t)
               (("1"
                 (case "(N!3 * N!2) * (M!1 * N!1) = I(M!1`rows)")
                 (("1"
                   (lemma "inverse_unique")
                   (inst -1 "M!1 * N!1" "N!4" "N!3 * N!2")
                   (("1"
                     (assert)
                     (prop)
                     (("1" (hide-all-but 1) (grind))
                      ("2" (hide-all-but 1) (grind))
                      ("3"
                       (expand "inverse?")
                       (rewrite "mult_assoc")
                       (("1"
                         (lemma "mult_assoc")
                         (inst -1 "M!1" "N!1" "N!3")
                         (replace -1 :dir rl :hide? t)
                         (replace -8)
                         (rewrite "right_mult_ident")
                         (("1" (assert)) ("2" (hide-all-but 1) (grind))))
                        ("2" (hide-all-but 1) (grind))))))
                    ("2"
                     (prop)
                     (("1" (hide-all-but 1) (grind))
                      ("2"
                       (hide 2)
                       (expand "invertible?")
                       (inst 1 "N!4"))))))
                  ("2"
                   (rewrite "mult_assoc")
                   (("1"
                     (lemma "mult_assoc")
                     (inst -1 "N!3" "N!2" "M!1")
                     (replace -1 :dir rl :hide? t)
                     (replace -6)
                     (rewrite "right_mult_ident")
                     (("1" (assert)) ("2" (hide-all-but 1) (grind))))
                    ("2" (hide-all-but 1) (grind))))
                  ("3" (hide-all-but 1) (grind))))
                ("2" (hide-all-but 1) (grind))))
              ("2"
               (hide-all-but 1)
               (expand "singleton?")
               (lemma "inverse_unique")
               (inst -1 "M!1 * N!1" _ _)
               (("1"
                 (reveal -3)
                 (inst 1 "N!4")
                 (skolem-typepred)
                 (inst?))
                ("2"
                 (hide 2)
                 (prop)
                 (("1" (grind))
                  ("2" (expand "invertible?") (inst 1 "N!4"))))))
              ("3" (expand "invertible?") (skosimp) (inst 1 "N!4"))
              ("4" (expand "invertible?") (inst 1 "N!4"))))
            ("2"
             (hide 2)
             (expand "singleton?")
             (lemma "inverse_unique")
             (inst -1 "M!1 * N!1" _ _)
             (("1"
               (lemma "invertible_product")
               (inst -1 "M!1" "N!1")
               (expand "invertible?" -1)
               (skolem-typepred)
               (inst 1 "N!4")
               (skolem-typepred)
               (inst?))
              ("2"
               (hide 2)
               (split)
               (("1" (hide-all-but 1) (grind))
                ("2" (lemma "invertible_product") (inst?))))))
            ("3" (hide-all-but 1) (grind))))
          ("2"
           (hide 2)
           (expand "singleton?")
           (inst 1 "N!2")
           (skosimp)
           (lemma "inverse_unique")
           (inst?))))
        ("2"
         (hide 2)
         (expand "singleton?")
         (inst 1 "N!2")
         (skosimp)
         (inst?))))
      ("2"
       (hide 2)
       (expand "singleton?")
       (inst 1 "N!3")
       (skosimp)
       (rewrite "inverse_unique"))))
    ("2"
     (hide 2)
     (expand "singleton?")
     (inst 1 "N!3")
     (skosimp)
     (rewrite "inverse_unique"))))


proof_type: t_proof
decl_type: tcc
library: linear_algebra
theory: matrices
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skolem-typepred)
   (expand "singleton?")
   (expand "invertible?")
   (skolem-typepred)
   (expand "inverse?")
   (flatten)
   (inst 1 "N!1")
   (skolem-typepred)
   (expand "inverse?")
   (flatten)
   (case "N!1 = N!1 * I(N!1`rows)")
   (("1"
     (replace -1 1 :hide? t)
     (replace -6 :hide? t)
     (replace -3 1 :dir rl)
     (rewrite "mult_assoc")
     (replace -7)
     (lemma "left_mult_ident")
     (inst -1 "y!1" "I(M!1`rows)")
     (grind))
    ("2"
     (expand "square?" -5)
     (assert)
     (lemma "right_mult_ident")
     (inst -1 "N!1" "I(N!1`rows)")
     (("1" (assert)) ("2" (grind))))
    ("3" (grind))))


proof_type: t_proof
decl_type: tcc
library: linear_algebra
theory: matrices
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skolem-typepred)
   (split)
   (("1" (grind))
    ("2"
     (expand "invertible?")
     (skolem-typepred)
     (skolem-typepred)
     (inst 1 "N!3 * N!2")
     (("1"
       (prop)
       (("1" (grind)) ("2" (grind))
        ("3"
         (expand "inverse?")
         (prop)
         (("1"
           (rewrite "mult_assoc")
           (("1"
             (rewrite "mult_assoc" :dir rl)
             (replace -3)
             (rewrite "right_mult_ident")
             (("1" (assert) (replace -7) (grind)) ("2" (grind))))
            ("2" (grind))))
          ("2"
           (rewrite "mult_assoc")
           (("1"
             (rewrite "mult_assoc" :dir rl)
             (replace -8)
             (rewrite "right_mult_ident")
             (("1"
               (replace -4)
               (case "N!1`rows = ((M!1 * N!1))`rows")
               (("1" (assert)) ("2" (hide-all-but 1) (grind))))
              ("2" (grind))))
            ("2" (grind))))))))
      ("2" (grind))))))


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


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: block_matrices
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (expand "Bdiag_square?")
   (expand "Bsquare?")
   (flatten)
   (expand "Block2M")
   (expand "square?")
   (expand "Block2M1")
   (expand "Block2M4")
   (assert))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: block_matrices
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: finished
script:
  (""
   (skosimp)
   (expand "Bsymmetric?")
   (expand "Block2M")
   (expand "symmetric?")
   (flatten)
   (split)
   (("1"
     (expand "square?")
     (expand "Block2M1" -1)
     (expand "Block2M4" -3)
     (assert))
    ("2"
     (expand "transpose")
     (split)
     (("1"
       (expand "square?")
       (expand "Block2M1" -1)
       (expand "Block2M4" -3)
       (assert))
      ("2"
       (expand "square?")
       (expand "Block2M1" -1)
       (expand "Block2M4" -3)
       (assert))
      ("3"
       (apply-extensionality)
       (("1"
         (hide 2)
         (typepred "x!2")
         (typepred "x!1")
         (case "x!2<M!1`rows1")
         (("1"
           (case "x!1<M!1`cols1")
           (("1"
             (expand "Block2M1")
             (flatten)
             (decompose-equality -8)
             (("1"
               (inst -1 "(x!2, x!1)")
               (("1" (assert))
                ("2"
                 (expand "Block2M1")
                 (expand "square?")
                 (replace -5 1)
                 (propax))
                ("3"
                 (expand "Block2M1")
                 (expand "square?")
                 (replace -6 1)
                 (propax))))
              ("2"
               (typepred "x!3`1")
               (expand "Block2M1")
               (expand "square?")
               (replace -6 -1)
               (propax))
              ("3" (typepred "x!3`2") (expand "Block2M1") (propax))
              ("4"
               (expand "Block2M1")
               (hide -14)
               (expand "square?")
               (replace -9 -1)
               (assert))
              ("5" (expand "square?") (expand "Block2M1") (assert))))
            ("2"
             (case "x!1>=M!1`cols1")
             (("1"
               (hide 1)
               (expand "Block2M2")
               (expand "Block2M3")
               (flatten)
               (decompose-equality -11)
               (("1"
                 (inst -1 "(x!2,x!1-M!1`cols1)")
                 (("1" (assert))
                  ("2"
                   (assert)
                   (expand "Block2M2")
                   (hide -6 -7 -8 2)
                   (hide -5)
                   (grind))
                  ("3"
                   (expand "Block2M2")
                   (hide -5 -6 -7 -8 2)
                   (grind))))
                ("2"
                 (typepred "x!3`1")
                 (expand "Block2M2")
                 (replace -10 -1)
                 (propax))
                ("3"
                 (typepred "x!3`2")
                 (expand "Block2M2")
                 (replace -11 -1)
                 (propax))
                ("4" (expand "Block2M2") (replace -13 -1) (assert))
                ("5"
                 (expand "Block2M2")
                 (hide -9 -10 -11 -12 -15 2)
                 (grind))))
              ("2" (assert))))))
          ("2"
           (case "x!2>=M!1`rows1")
           (("1"
             (hide 1)
             (case "x!1<M!1`cols1")
             (("1"
               (expand "Block2M2")
               (expand "Block2M3")
               (flatten)
               (decompose-equality -11)
               (("1"
                 (inst -1 "(x!1,x!2-M!1`rows1)")
                 (("1" (assert))
                  ("2"
                   (split)
                   (("1" (assert)) ("2" (expand "Block2M2") (assert))))
                  ("3" (expand "Block2M2") (propax))))
                ("2"
                 (typepred "x!3`1")
                 (expand "Block2M2")
                 (replace -10 -1)
                 (propax))
                ("3"
                 (typepred "x!3`2")
                 (expand "Block2M2")
                 (expand "square?")
                 (replace -11 -1)
                 (propax))
                ("4" (expand "Block2M2") (assert))
                ("5" (expand "Block2M2") (assert))))
              ("2"
               (case "x!1>=M!1`cols1")
               (("1"
                 (hide 1)
                 (hide -9)
                 (expand "Block2M4")
                 (flatten)
                 (decompose-equality -10)
                 (("1"
                   (inst -1 "(x!1-M!1`cols1,x!2-M!1`rows1)")
                   (("1"
                     (assert)
                     (expand "square?" -6)
                     (expand "Block2M1")
                     (propax))
                    ("2"
                     (expand "Block2M1")
                     (flatten)
                     (hide 2)
                     (split)
                     (("1" (assert)) ("2" (expand "Block2M4") (assert))))
                    ("3"
                     (split)
                     (("1" (assert))
                      ("2" (expand "Block2M4") (assert))))))
                  ("2" (typepred "x!3`1") (expand "Block2M4") (assert))
                  ("3" (typepred "x!3`2") (expand "Block2M4") (propax))
                  ("4" (expand "Block2M4") (assert))
                  ("5" (expand "Block2M4") (assert))))
                ("2" (assert))))))
            ("2" (assert))))))
        ("2"
         (hide 2)
         (split)
         (("1"
           (skosimp)
           (case "M!1`rows1 + M!1`rows2= M!1`cols1 + M!1`cols2")
           (("1" (replace -1 1) (assert))
            ("2"
             (hide 2)
             (expand "square?")
             (expand "Block2M1" -1)
             (expand "Block2M4" -3)
             (assert))))
          ("2"
           (skosimp)
           (case " M!1`cols1 + M!1`cols2= M!1`rows1 + M!1`rows2")
           (("1" (replace -1 1) (assert))
            ("2"
             (expand "square?")
             (expand "Block2M1" -1)
             (expand "Block2M4" -3)
             (assert))))))))))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: block_matrices
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: finished
script:
  (""
   (skosimp)
   (expand "Bsymmetric?")
   (split)
   (("1"
     (expand "symmetric?")
     (split)
     (("1" (propax))
      ("2"
       (flatten)
       (expand "Block2M1" 1)
       (expand "Block2M" -2)
       (expand "transpose")
       (split)
       (("1" (expand "square?") (expand "Block2M1") (swap-rel -3))
        ("2" (expand "square?") (expand "Block2M1") (propax))
        ("3"
         (apply-extensionality)
         (("1"
           (hide 2)
           (flatten)
           (decompose-equality -4)
           (inst -1 "(x!2,x!1)")
           (swap-rel -1))
          ("2"
           (hide 2)
           (skosimp)
           (split)
           (("1"
             (skosimp)
             (expand "square?" -5)
             (expand "Block2M1")
             (replace -5 1)
             (assert))
            ("2"
             (skosimp)
             (expand "square?" -5)
             (expand "Block2M1")
             (replace -5 1)
             (assert))))))))))
    ("2"
     (expand "symmetric?")
     (flatten)
     (split)
     (("1" (propax))
      ("2"
       (expand "Block2M4" 1)
       (expand "transpose")
       (split)
       (("1" (expand "square?" -4) (expand "Block2M4") (swap-rel -4))
        ("2" (expand "square?" -4) (expand "Block2M4") (propax))
        ("3"
         (apply-extensionality 1)
         (("1"
           (hide 2)
           (expand "Block2M")
           (flatten)
           (decompose-equality -4)
           (("1"
             (expand "square?")
             (expand "Block2M1")
             (replace -5 1)
             (inst -1 "(M!1`cols1 + x!2, M!1`cols1 + x!1)")
             (("1" (swap-rel -1))
              ("2" (expand "Block2M") (typepred "x!1") (hide 2) (grind))
              ("3" (hide 2) (grind))))
            ("2"
             (hide 2)
             (typepred "x!3`1")
             (expand "Block2M")
             (replace -3 -1)
             (propax))
            ("3" (typepred "x!3`2") (expand "Block2M") (propax))
            ("4" (expand "Block2M") (replace -6 -1) (propax))
            ("5" (expand "Block2M") (propax))))
          ("2"
           (hide 2)
           (split)
           (("1"
             (skosimp)
             (expand "square?")
             (expand "Block2M4")
             (replace -4 1)
             (assert))
            ("2"
             (skosimp)
             (expand "square?")
             (expand "Block2M4")
             (replace -4 1)
             (assert))))))))))
    ("3"
     (expand "symmetric?")
     (flatten)
     (expand "transpose")
     (expand "Block2M3")
     (split)
     (("1"
       (expand "Block2M2")
       (expand "square?")
       (expand "Block2M1")
       (swap-rel -3))
      ("2"
       (expand "Block2M2")
       (expand "square?")
       (expand "Block2M4")
       (propax))
      ("3"
       (apply-extensionality)
       (("1"
         (hide 2)
         (expand "Block2M2")
         (expand "Block2M")
         (flatten)
         (decompose-equality -4)
         (("1"
           (expand "square?" -5)
           (expand "Block2M1")
           (replace -5 1)
           (inst -1 "(M!1`cols1 + x!2, x!1)")
           (("1" (swap-rel -1))
            ("2"
             (typepred "x!1")
             (expand "Block2M")
             (expand "Block2M2")
             (replace -5 1)
             (assert))
            ("3"
             (expand "Block2M")
             (typepred "x!2")
             (expand "Block2M2")
             (expand "square?")
             (expand "Block2M4")
             (assert))))
          ("2"
           (typepred "x!3`1")
           (expand "Block2M")
           (replace -3 -1)
           (propax))
          ("3" (typepred "x!3`2") (expand "Block2M") (propax))
          ("4" (expand "Block2M") (replace -6 -1) (propax))
          ("5" (expand "Block2M") (propax))))
        ("2"
         (hide 2)
         (split)
         (("1"
           (skosimp)
           (expand "square?")
           (expand "Block2M2")
           (expand "Block2M1")
           (replace -3 1)
           (assert))
          ("2"
           (skosimp)
           (expand "Block2M2")
           (expand "square?")
           (expand "Block2M4")
           (replace -4 1)
           (assert))))
        ("3" (hide 2) (skosimp) (typepred "i!1") (assert))))))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: block_matrices
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (expand "Block2V")
   (split)
   (("1"
     (flatten)
     (apply-extensionality)
     (hide 2)
     (skosimp)
     (split)
     (("1" (flatten) (grind)) ("2" (flatten) (grind))))
    ("2"
     (flatten)
     (apply-extensionality)
     (hide 2)
     (apply-extensionality)
     (hide 2)
     (decompose-equality -1)
     (inst -1 "x!1"))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: block_matrices
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: Ya esta
script:
  (""
   (skeep)
   (apply-extensionality)
   (hide 2)
   (expand "Vec2Block")
   (expand "Block2V")
   (propax))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: block_matrices
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (apply-extensionality)
   (("1" (hide 2) (expand "Block2V") (expand "Vec2Block") (propax))
    ("2" (hide 2) (grind))
    ("3"
     (hide 2)
     (expand "Block2V")
     (expand "Vec2Block")
     (grind)
     (apply-extensionality))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: block_matrices
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: finished
script:
  (""
   (skosimp)
   (apply-extensionality)
   (hide 2)
   (case "x!1<M!1`cols1")
   (("1"
     (typepred "M!1")
     (lemma "VtoBlocktoV")
     (typepred "V!1")
     (hide -3)
     (expand "*" 1 1)
     (expand "BV2toBV1")
     (expand "Block2V" 1 1)
     (expand "Bdiag_square?")
     (expand "square?")
     (expand "Block2M1" -3)
     (expand "Block2M4" -3)
     (flatten)
     (assert)
     (expand "*")
     (lemma "comp_distr_add[Block2M1(M!1)`rows]")
     (inst -1 "x!1"
      "(LAMBDA (i: below(Block2M1(M!1)`rows)):
                sigma(0, Block2M1(M!1)`cols - 1,
                      LAMBDA (k: below(Block2M1(M!1)`cols)):
                        Block2M1(M!1)`matrix(i, k) * Block2V1(V!1)(k)))"
      " (LAMBDA (i: below(Block2M3(M!1)`rows)):
                 sigma(0, Block2M3(M!1)`cols - 1,
                       LAMBDA (k: below(Block2M3(M!1)`cols)):
                         Block2M3(M!1)`matrix(i, k) * Block2V2(V!1)(k)))")
     (("1"
       (replace -1 1)
       (hide -1)
       (expand "Block2M" 1 1)
       (expand "Block2M1" 1 1)
       (expand "Block2M3" 1 1)
       (lemma "sigma_split[ below(Block2M(M!1)`cols)]")
       (("1"
         (inst -1
          " LAMBDA (k: below(Block2M(M!1)`cols)):
                         Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)"
          " M!1`cols1 + M!1`cols2 - 1" "0" "M!1`cols1-1")
         (("1"
           (assert)
           (replace -1 1)
           (hide -1)
           (case " sigma(0, M!1`cols1 - 1,
                             LAMBDA (k: below(Block2M1(M!1)`cols)):
                               Block2M1(M!1)`matrix(x!1, k) * Block2V1(V!1)(k))= sigma(0, M!1`cols1 - 1,
                              LAMBDA (k: below(Block2M(M!1)`cols)):
                                Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k))")
           (("1"
             (replace -1 1)
             (hide -1)
             (assert)
             (lemma "sigma_shift_gen")
             (inst -1 "M!1`cols2" "M!1`cols2" "M!1`cols1"
              " LAMBDA (k: below(Block2M(M!1)`cols)):
                             Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)")
             (("1"
               (assert)
               (swap-rel -1)
               (("1"
                 (case " sigma[below[M!1`cols1 + M!1`cols2]]
                                 (M!1`cols1, M!1`cols1 + M!1`cols2 - 1,
                                  LAMBDA (i: below[M!1`cols1 + M!1`cols2]):
                                    Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i))=sigma(M!1`cols1, M!1`cols1 + M!1`cols2 - 1,
                                    LAMBDA (k: below(Block2M(M!1)`cols)):
                                      Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k))")
                 (("1"
                   (replace -1 -2)
                   (replace -2 1)
                   (hide -2)
                   (lemma "sigma_eq_index")
                   (inst -1 "Block2M3(M!1)`cols" "M!1`cols2"
                    " LAMBDA (k: below(Block2M3(M!1)`cols)):
                                  Block2M3(M!1)`matrix(x!1, k) * Block2V2(V!1)(k)"
                    " LAMBDA (k: below(M!1`cols2)):
                                  Block2M3(M!1)`matrix(x!1, k) * Block2V2(V!1)(k)")
                   (("1"
                     (expand "Block2M3" -1 1)
                     (hide -2)
                     (expand "Block2M3" -1 1)
                     (replace -1 1)
                     (hide -1)
                     (lemma "sigma_eq[below[M!1`cols2]]")
                     (("1"
                       (inst -1
                        " LAMBDA (i: Index[M!1`cols2]):
                                      Block2M3(M!1)`matrix(x!1, i) * Block2V2(V!1)(i)"
                        " LAMBDA (i: below[M!1`cols2]):
                                      Block2M(M!1)`matrix(x!1, i + M!1`cols1) *
                                       Block2V(V!1)(i + M!1`cols1)"
                        "M!1`cols2-1" "0")
                       (("1"
                         (case " (FORALL (n: subrange(0, M!1`cols2 - 1)):
                                        Block2M3(M!1)`matrix(x!1, n) * Block2V2(V!1)(n) =
                                         Block2M(M!1)`matrix(x!1, n + M!1`cols1) *
                                          Block2V(V!1)(n + M!1`cols1))")
                         (("1" (replace -1 -2) (propax))
                          ("2" (hide -1 2) (skosimp) (grind))
                          ("3" (skosimp) (expand "Block2M") (assert))
                          ("4" (skosimp) (expand "Block2M") (assert))
                          ("5"
                           (skosimp)
                           (expand "Block2M3")
                           (typepred "n!1")
                           (assert))
                          ("6" (skosimp) (expand "Block2M3") (assert))))
                        ("2"
                         (skosimp)
                         (typepred "i!1")
                         (expand "Block2M")
                         (assert))
                        ("3" (skosimp) (expand "Block2M") (assert))
                        ("4"
                         (skosimp)
                         (typepred "i!1")
                         (expand "Block2M3")
                         (propax))
                        ("5" (skosimp) (expand "Block2M3") (assert))))
                      ("2" (skosimp) (assert))))
                    ("2"
                     (skosimp)
                     (expand "Block2M3")
                     (typepred "k!1")
                     (propax))
                    ("3" (skosimp) (expand "Block2M3") (assert))
                    ("4"
                     (skosimp)
                     (typepred "k!1")
                     (assert)
                     (expand "Block2M3")
                     (assert))
                    ("5" (skosimp) (expand "Block2M3") (assert))))
                  ("2"
                   (hide 2)
                   (hide -1)
                   (lemma "sigma_eq_index3")
                   (inst -1 " M!1`cols1 + M!1`cols2" "Block2M(M!1)`cols"
                    "M!1`cols1 + M!1`cols2" "M!1`cols1"
                    " LAMBDA (i: below[M!1`cols1 + M!1`cols2]):
                                 Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i)"
                    " LAMBDA (k: below(Block2M(M!1)`cols)):
                                   Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)")
                   (("1" (assert) (expand "Block2M") (propax))
                    ("2"
                     (skosimp)
                     (typepred "k!1")
                     (expand "Block2M")
                     (assert))
                    ("3" (skosimp) (expand "Block2M") (assert))
                    ("4"
                     (skosimp)
                     (typepred "i!1")
                     (expand "Block2M")
                     (propax))
                    ("5" (skosimp) (expand "Block2M") (assert))))
                  ("3" (skosimp) (assert))
                  ("4"
                   (skosimp)
                   (typepred "i!1")
                   (expand "Block2M")
                   (propax))
                  ("5" (skosimp) (expand "Block2M") (assert))))
                ("2" (skosimp) (assert))
                ("3"
                 (skosimp)
                 (typepred "i!1")
                 (expand "Block2M")
                 (propax))
                ("4" (skosimp) (expand "Block2M") (assert))
                ("5" (skosimp) (assert))
                ("6"
                 (skosimp)
                 (typepred "i!1")
                 (expand "Block2M")
                 (assert))
                ("7" (skosimp) (expand "Block2M") (assert))))
              ("2" (skosimp) (expand "Block2M") (propax))
              ("3"
               (skosimp)
               (typepred "k!1")
               (expand "Block2M")
               (assert))
              ("4" (skosimp) (expand "Block2M") (assert))))
            ("2"
             (hide 2)
             (lemma "sigma_eq_index2")
             (inst -1 "Block2M(M!1)`cols" "M!1`cols1+M!1`cols2"
              "M!1`cols1"
              " LAMBDA (k: below(Block2M(M!1)`cols)):
                             Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)"
              " LAMBDA (k: below(M!1`cols1+M!1`cols2)):
                             Block2M(M!1)`matrix(x!1, k) * Block2V(V!1)(k)")
             (("1"
               (expand "Block2M" -1 1)
               (expand "Block2M" -1 1)
               (replace -1 1)
               (hide -1)
               (lemma "sigma_eq_index")
               (inst -1 "Block2M1(M!1)`cols" "M!1`cols1" "_" "_")
               (inst -1
                " LAMBDA (k: below(Block2M1(M!1)`cols)):
                              Block2M1(M!1)`matrix(x!1, k) * Block2V1(V!1)(k)"
                "_")
               (("1"
                 (inst -1
                  " LAMBDA (k: below(M!1`cols1)):
                                Block2M1(M!1)`matrix(x!1, k) * Block2V1(V!1)(k)")
                 (("1"
                   (expand "Block2M1" -1 1)
                   (expand "Block2M1" -1 1)
                   (replace -1 1)
                   (hide -1)
                   (lemma "sigma_restrict_gen")
                   (inst -1 "M!1`cols1" "M!1`cols1" "M!1`cols2" "_" "_")
                   (inst -1
                    "LAMBDA (i: Index[M!1`cols1]):
                                   Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i)"
                    "_")
                   (("1"
                     (inst -1
                      " LAMBDA (i: Index[M!1`cols1 + M!1`cols2]):
                                     Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i)")
                     (("1"
                       (assert)
                       (swap-rel -1)
                       (("1"
                         (replace -1 1)
                         (hide -1)
                         (lemma "sigma_eq[below[M!1`cols1]]")
                         (("1"
                           (inst -1
                            " LAMBDA (i: Index[M!1`cols1]):
                                          Block2M1(M!1)`matrix(x!1, i) * Block2V1(V!1)(i)"
                            " LAMBDA (i: Index[M!1`cols1]):
                                          Block2M(M!1)`matrix(x!1, i) * Block2V(V!1)(i)"
                            "M!1`cols1 -1" "0")
                           (("1"
                             (case "(FORALL (n: subrange(0, M!1`cols1 - 1)):
                                            Block2M1(M!1)`matrix(x!1, n) * Block2V1(V!1)(n) =
                                             Block2M(M!1)`matrix(x!1, n) * Block2V(V!1)(n))")
                             (("1" (replace -1 -2) (propax))
                              ("2" (hide -1 2) (skosimp) (grind))
                              ("3"
                               (skosimp)
                               (typepred "n!1")
                               (expand "Block2M")
                               (assert))
                              ("4" (skosimp) (expand "Block2M") (assert))
                              ("5"
                               (skosimp)
                               (expand "Block2M1")
                               (typepred "n!1")
                               (assert))
                              ("6"
                               (skosimp)
                               (expand "Block2M1")
                               (assert))))
                            ("2"
                             (skosimp)
                             (typepred "i!1")
                             (expand "Block2M")
                             (assert))
                            ("3" (skosimp) (expand "Block2M") (assert))
                            ("4"
                             (skosimp)
                             (typepred "i!1")
                             (expand "Block2M")
                             (expand "Block2M1")
                             (propax))
                            ("5"
                             (skosimp)
                             (expand "Block2M1")
                             (assert))))
                          ("2" (skosimp) (assert))))
                        ("2" (skosimp) (assert))
                        ("3"
                         (skosimp)
                         (typepred "i!1")
                         (expand "Block2M")
                         (propax))
                        ("4" (skosimp) (expand "Block2M") (assert))
                        ("5" (skosimp) (assert))
                        ("6"
                         (skosimp)
                         (typepred "i!1")
                         (expand "Block2M")
                         (assert))
                        ("7" (skosimp) (expand "Block2M") (assert))))
                      ("2"
                       (skosimp)
                       (typepred "i!1")
                       (expand "Block2M")
                       (propax))
                      ("3" (skosimp) (expand "Block2M") (assert))))
                    ("2"
                     (skosimp)
                     (typepred "i!1")
                     (expand "Block2M")
                     (assert))
                    ("3" (skosimp) (expand "Block2M") (assert))))
                  ("2"
                   (skosimp)
                   (expand "Block2M1")
                   (typepred "k!1")
                   (propax))
                  ("3" (skosimp) (expand "Block2M1") (assert))))
                ("2"
                 (skosimp)
                 (typepred "k!1")
                 (expand "Block2M1")
                 (assert))
                ("3" (skosimp) (expand "Block2M1") (assert))))
              ("2"
               (skosimp)
               (expand "Block2M")
               (typepred "k!1")
               (propax))
              ("3" (skosimp) (expand "Block2M") (assert))
              ("4"
               (skosimp)
               (typepred "k!1")
               (expand "Block2M")
               (assert))
              ("5" (skosimp) (expand "Block2M") (assert))))
            ("3"
             (skosimp)
             (hide 2)
             (typepred "k!1")
             (expand "Block2M")
             (assert))
            ("4" (skosimp) (expand "Block2M") (assert))
            ("5"
             (skosimp)
             (expand "Block2M1")
             (assert)
             (typepred "y!1")
             (expand "Block2M1")
             (assert))
            ("6" (skosimp) (typepred "k!1") (expand "Block2M1") (assert))
            ("7" (skosimp) (expand "Block2M1") (assert))))
          ("2" (skosimp) (typepred "k!1") (expand "Block2M") (assert))
          ("3" (skosimp) (expand "Block2M") (assert))))
        ("2" (skosimp) (hide 2) (assert))))
      ("2" (skosimp) (hide 2) (grind))
      ("3"
       (hide 2)
       (skosimp)
       (skosimp)
       (grind)
       (typepred "y!1")
       (expand "Block2M3")
       (assert))
      ("4"
       (hide 2)
       (skosimp)
       (typepred "k!1")
       (expand "Block2M3")
       (assert))
      ("5" (hide 2) (skosimp) (grind)) ("6" (skosimp) (hide 3) (grind))
      ("7"
       (hide 2)
       (skosimp)
       (skosimp)
       (grind)
       (typepred "y!1")
       (expand "Block2M1")
       (grind))
      ("8" (hide 2) (skosimp) (typepred "k!1") (grind))
      ("9" (hide 2) (skosimp) (grind))
      ("10" (hide 2) (skosimp) (grind))))
    ("2"
     (case "x!1>=M!1`cols1")
     (("1"
       (hide 1)
       (typepred "M!1")
       (lemma "VtoBlocktoV")
       (expand "Bdiag_square?")
       (expand "square?")
       (flatten)
       (expand "Block2M1" -2)
       (expand "Block2M4" -3)
       (typepred "V!1")
       (expand "*" 1 1)
       (expand "BV2toBV1")
       (expand "Block2V")
       (assert)
       (expand "*")
       (lemma "comp_distr_add[Block2M2(M!1)`rows]")
       (inst -1 " (x!1 - M!1`rows1)"
        "(LAMBDA (i: below(Block2M2(M!1)`rows)):
                  sigma(0, Block2M2(M!1)`cols - 1,
                        LAMBDA (k: below(Block2M2(M!1)`cols)):
                          Block2M2(M!1)`matrix(i, k) * Block2V1(V!1)(k)))"
        " (LAMBDA (i: below(Block2M4(M!1)`rows)):
                   sigma(0, Block2M4(M!1)`cols - 1,
                         LAMBDA (k: below(Block2M4(M!1)`cols)):
                           Block2M4(M!1)`matrix(i, k) * Block2V2(V!1)(k)))")
       (("1"
         (replace -1 1)
         (hide -1)
         (expand "Block2M" 1 1)
         (expand "Block2M2" 1 1)
         (expand "Block2M4" 1 1)
         (lemma "sigma_split[ below(Block2M(M!1)`cols)]")
         (("1"
           (inst -1
            " LAMBDA (k: below(Block2M(M!1)`cols)):
                           Block2M(M!1)`matrix(x!1, k) * V!1`vector(k)"
            " M!1`cols1 + M!1`cols2 - 1" "0" "M!1`cols1-1")
           (("1"
             (assert)
             (replace -1 1)
             (hide -1)
             (case " sigma(0, M!1`cols1 - 1,
                               LAMBDA (k: below(Block2M2(M!1)`cols)):
                                 Block2M2(M!1)`matrix((x!1 - M!1`rows1), k) *
                                  Block2V1(V!1)(k))= sigma(0, M!1`cols1 - 1,
                                LAMBDA (k: below(Block2M(M!1)`cols)):
                                  Block2M(M!1)`matrix(x!1, k) * V!1`vector(k))")
             (("1"
               (replace -1 1)
               (hide -1)
               (assert)
               (lemma "sigma_shift_gen")
               (inst -1 "M!1`cols2" "M!1`cols2" "M!1`cols1"
                " LAMBDA (k: below(Block2M(M!1)`cols)):
                               Block2M(M!1)`matrix(x!1, k) * V!1`vector(k)")
               (("1"
                 (assert)
                 (swap-rel -1)
                 (("1"
                   (case " sigma[below[M!1`cols1 + M!1`cols2]]
                                   (M!1`cols1, M!1`cols1 + M!1`cols2 - 1,
                                    LAMBDA (i: below[M!1`cols1 + M!1`cols2]):
                                      Block2M(M!1)`matrix(x!1, i) * V!1`vector(i))= sigma(M!1`cols1, M!1`cols1 + M!1`cols2 - 1,
                                      LAMBDA (k: below(Block2M(M!1)`cols)):
                                        Block2M(M!1)`matrix(x!1, k) * V!1`vector(k))")
                   (("1"
                     (replace -1 -2)
                     (replace -2 1)
                     (hide -2)
                     (hide -1)
                     (lemma "sigma_eq_index")
                     (inst -1 "Block2M4(M!1)`cols" "M!1`cols2"
                      "LAMBDA (k: below(Block2M4(M!1)`cols)):
                                    Block2M4(M!1)`matrix((x!1 - M!1`rows1), k) *
                                     Block2V2(V!1)(k)"
                      "LAMBDA (i: below[M!1`cols2]):
                                    Block2M(M!1)`matrix(x!1, i + M!1`cols1) *
                                     V!1`vector(i + M!1`cols1)")
                     (("1"
                       (expand "Block2M4" -1 1)
                       (case "  (FORALL (i_1: below[Block2M4(M!1)`cols]):
                                      Block2M4(M!1)`matrix((x!1 - M!1`rows1), i_1) * Block2V2(V!1)(i_1)
                                       =
                                       Block2M(M!1)`matrix(x!1, i_1 + M!1`cols1) *
                                        V!1`vector(i_1 + M!1`cols1))")
                       (("1"
                         (replace -1 -2)
                         (hide -1)
                         (expand "Block2M4" -1 1)
                         (propax))
                        ("2"
                         (hide -1)
                         (hide 2)
                         (skosimp)
                         (hide -3)
                         (grind))
                        ("3"
                         (hide -1 2)
                         (skosimp)
                         (typepred "i!1")
                         (hide -4)
                         (grind))
                        ("4"
                         (hide -1 2)
                         (skosimp)
                         (typepred "i!1")
                         (hide -4)
                         (grind))
                        ("5"
                         (hide -1 -4 2)
                         (skosimp)
                         (typepred "x!1")
                         (grind))
                        ("6"
                         (hide -1 2)
                         (skosimp)
                         (hide -3)
                         (typepred "i!1")
                         (grind))
                        ("7"
                         (hide -1 2)
                         (skosimp)
                         (typepred "x!1")
                         (hide -4)
                         (grind))))
                      ("2"
                       (hide -3 2)
                       (skosimp)
                       (typepred "i!1")
                       (grind))
                      ("3"
                       (hide -3 2)
                       (skosimp)
                       (typepred "x!1")
                       (grind))
                      ("4"
                       (hide -3 2)
                       (skosimp)
                       (typepred "k!1")
                       (grind))
                      ("5"
                       (hide -3 2)
                       (skosimp)
                       (typepred "x!1")
                       (grind))))
                    ("2"
                     (hide -1 2)
                     (lemma "sigma_eq_index3")
                     (inst -1 " M!1`cols1 + M!1`cols2"
                      "Block2M(M!1)`cols" "M!1`cols1 + M!1`cols2"
                      "M!1`cols1"
                      " LAMBDA (i: below[M!1`cols1 + M!1`cols2]):
                                   Block2M(M!1)`matrix(x!1, i) * V!1`vector(i)"
                      " LAMBDA (k: below(Block2M(M!1)`cols)):
                                     Block2M(M!1)`matrix(x!1, k) * V!1`vector(k)")
                     (("1" (assert) (expand "Block2M") (propax))
                      ("2"
                       (skosimp)
                       (typepred "k!1")
                       (expand "Block2M")
                       (assert))
                      ("3"
                       (skosimp)
                       (expand "Block2M")
                       (hide -3 2)
                       (grind)
                       (typepred "x!1")
                       (grind))
                      ("4"
                       (skosimp)
                       (typepred "i!1")
                       (expand "Block2M")
                       (propax))
                      ("5"
                       (skosimp)
                       (expand "Block2M")
                       (typepred "x!1")
                       (hide -4 2)
                       (grind))))
                    ("3" (skosimp) (assert))
                    ("4"
                     (skosimp)
                     (hide -1 -4 2)
                     (typepred "i!1")
                     (grind))
                    ("5"
                     (skosimp)
                     (hide -1 -4 2)
                     (typepred "x!1")
                     (grind))))
                  ("2" (skosimp) (assert))
                  ("3" (hide -1 -4 2) (skosimp) (typepred "i!1") (grind))
                  ("4" (hide -1 -4 2) (skosimp) (typepred "x!1") (grind))
                  ("5" (hide -1 -4 2) (skosimp) (assert))
                  ("6" (hide -1 -4 2) (skosimp) (typepred "i!1") (grind))
                  ("7"
                   (skosimp)
                   (expand "Block2M")
                   (hide -1 -4 2)
                   (typepred "x!1")
                   (grind))))
                ("2"
                 (hide -3 2)
                 (skosimp)
                 (typepred "x!2")
                 (expand "Block2M")
                 (propax))
                ("3"
                 (hide -3 2)
                 (skosimp)
                 (typepred "k!1")
                 (expand "Block2M")
                 (assert))
                ("4" (hide -3 2) (skosimp) (typepred "x!1") (grind))))
              ("2"
               (hide 2)
               (lemma "sigma_eq_index2")
               (inst -1 "Block2M(M!1)`cols" "M!1`cols1+M!1`cols2"
                "M!1`cols1"
                " LAMBDA (k: below(Block2M(M!1)`cols)):
                               Block2M(M!1)`matrix(x!1, k) * V!1`vector(k)"
                " LAMBDA (k: below(M!1`cols1+M!1`cols2)):
                               Block2M(M!1)`matrix(x!1, k) * V!1`vector(k)")
               (("1"
                 (expand "Block2M" -1 1)
                 (expand "Block2M" -1 1)
                 (replace -1 1)
                 (hide -1)
                 (lemma "sigma_eq_index")
                 (inst -1 "Block2M2(M!1)`cols" "M!1`cols1" "_" "_")
                 (inst -1
                  " LAMBDA (k: below(Block2M2(M!1)`cols)):
                                Block2M2(M!1)`matrix((x!1 - M!1`rows1), k) *
                                 Block2V1(V!1)(k)"
                  "_")
                 (("1"
                   (inst -1
                    " LAMBDA (k: below(M!1`cols1)):
                                  Block2M2(M!1)`matrix((x!1 - M!1`rows1), k) *
                                   Block2V1(V!1)(k)")
                   (("1"
                     (expand "Block2M2" -1 1)
                     (expand "Block2M2" -1 1)
                     (replace -1 1)
                     (hide -1)
                     (lemma "sigma_restrict_gen")
                     (inst -1 "M!1`cols1" "M!1`cols1" "M!1`cols2" "_"
                      "_")
                     (inst -1
                      " LAMBDA (i: Index[M!1`cols1]):
                                    Block2M2(M!1)`matrix((x!1 - M!1`rows1), i) *
                                     Block2V1(V!1)(i)"
                      " LAMBDA (i: Index[M!1`cols1 + M!1`cols2]):
                                     Block2M(M!1)`matrix(x!1, i) * V!1`vector(i)")
                     (("1" (assert) (hide -3 2) (skosimp) (grind))
                      ("2"
                       (hide -3 2)
                       (skosimp)
                       (typepred "i!1")
                       (expand "Block2M")
                       (propax))
                      ("3"
                       (hide -3 2)
                       (skosimp)
                       (typepred "x!1")
                       (grind))
                      ("4"
                       (hide -3 2)
                       (skosimp)
                       (typepred "i!1")
                       (expand "Block2M2")
                       (propax))
                      ("5"
                       (hide -3 2)
                       (skosimp)
                       (typepred "x!1")
                       (grind))))
                    ("2" (hide -3 2) (skosimp) (typepred "k!1") (grind))
                    ("3"
                     (hide -3 2)
                     (skosimp)
                     (typepred "x!1")
                     (grind))))
                  ("2" (hide -3 2) (skosimp) (typepred "k!1") (grind))
                  ("3" (hide -3 2) (skosimp) (typepred "x!1") (grind))))
                ("2" (hide -3 2) (skosimp) (typepred "k!1") (grind))
                ("3" (hide -3 2) (skosimp) (typepred "x!1") (grind))
                ("4" (hide -3 2) (skosimp) (typepred "k!1") (grind))
                ("5" (hide -3 2) (skosimp) (typepred "x!1") (grind))))
              ("3"
               (hide -3 2)
               (skosimp)
               (typepred "k!1")
               (expand "Block2M")
               (assert))
              ("4" (hide -3 2) (skosimp) (typepred "x!1") (grind))
              ("5" (hide -3 2) (skosimp) (assert))
              ("6"
               (hide -3 2)
               (skosimp)
               (typepred "k!1")
               (expand "Block2M2")
               (assert))
              ("7" (hide -3 2) (skosimp) (typepred "x!1") (grind))))
            ("2" (hide -3 2) (skosimp) (typepred "k!1") (grind))
            ("3" (hide -3 2) (skosimp) (typepred "x!1") (grind))))
          ("2"
           (skosimp)
           (expand "Block2M")
           (typepred "y!1")
           (expand "Block2M")
           (assert))))
        ("2" (hide -3 2) (skosimp) (grind))
        ("3"
         (hide -3 2)
         (skosimp)
         (skosimp)
         (grind)
         (typepred "y!1")
         (expand "Block2M4")
         (assert))
        ("4" (hide -3 2) (skosimp) (typepred "k!1") (grind))
        ("5" (hide -3 2) (skosimp) (grind))
        ("6" (hide -3 2) (skosimp) (grind))
        ("7"
         (hide -3 2)
         (skosimp)
         (skosimp)
         (grind)
         (typepred "y!1")
         (grind))
        ("8" (hide -3 2) (skosimp) (grind) (typepred "k!1") (grind))
        ("9" (hide -3 2) (skosimp) (grind))
        ("10" (hide -3 2) (skosimp) (grind))))
      ("2" (assert))))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: block_matrices
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: finished
script:
  (""
   (skosimp)
   (expand "*" 1 1)
   (expand "*")
   (expand "Block2V")
   (expand "Block2V1")
   (expand "Block2V2")
   (lemma "sigma_split[Index[V!1`comp1 + V!1`comp2]]")
   (("1"
     (inst -1
      "LAMBDA (i: Index[V!1`comp1 + V!1`comp2]):
                     V!1`vector(i) * W!1`vector(i)"
      "V!1`comp1 + V!1`comp2 - 1" "0" " V!1`comp1 - 1")
     (assert)
     (replace -1 1)
     (hide -1)
     (case " sigma(0, V!1`comp1 - 1,
                       LAMBDA (i: Index[V!1`comp1]): V!1`vector(i) * W!1`vector(i))= sigma(0, V!1`comp1 - 1,
                        LAMBDA (i: Index[V!1`comp1 + V!1`comp2]):
                          V!1`vector(i) * W!1`vector(i))")
     (("1"
       (replace -1 1)
       (assert)
       (hide -1)
       (lemma "sigma_shift_gen")
       (inst -1 "V!1`comp2" "V!1`comp2" "V!1`comp1"
        " LAMBDA (i: Index[V!1`comp1 + V!1`comp2]):
                       V!1`vector(i) * W!1`vector(i)")
       (assert))
      ("2"
       (hide 2)
       (lemma "sigma_restrict_gen")
       (inst -1 "V!1`comp1" "V!1`comp1" "V!1`comp2"
        " LAMBDA (i: Index[V!1`comp1]): V!1`vector(i) * W!1`vector(i)"
        "LAMBDA (i: Index[V!1`comp1 + V!1`comp2]):
                       V!1`vector(i) * W!1`vector(i)")
       (assert))
      ("3" (hide 2) (skosimp) (grind))))
    ("2" (hide 2) (skosimp) (grind))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: sigma_vector
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (expand "SigmaV")
   (apply-extensionality)
   (("1"
     (hide 2)
     (expand "+")
     (lemma "sigma_last[T]")
     (inst -1 "LAMBDA (j: T): F!1(j)(x!1)" "high!1" "low!1")
     (assert))
    ("2"
     (skosimp)
     (typepred "high!1")
     (case " T_pred(high!1)")
     (("1" (inst 2 "high!1") (assert))
      ("2"
       (case " (EXISTS (j: T): high!1 <= j)")
       (("1" (skosimp) (inst 3 "j!1") (assert)) ("2" (assert))))))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: sigma_vector
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: finished
script:
  (""
   (skosimp)
   (case "p!1>m!1")
   (("1"
     (expand "SigmaV")
     (expand "sigma")
     (replace -1)
     (expand "*")
     (propax))
    ("2"
     (case "p!1=m!1")
     (("1"
       (hide 1)
       (replace -1)
       (expand "SigmaV")
       (expand "sigma")
       (expand "sigma")
       (apply-extensionality)
       (hide 2)
       (expand "*")
       (expand "*")
       (propax))
      ("2"
       (case "p!1<m!1")
       (("1"
         (hide 1 2)
         (expand "SigmaV")
         (lemma "sigma_scal[T]")
         (apply-extensionality)
         (hide 2)
         (inst -1 "LAMBDA (j: T): F!1(j)(x!1)" "a!1" "m!1" "p!1")
         (case " sigma(p!1, m!1, LAMBDA (i: T): a!1 * F!1(i)(x!1))= sigma(p!1, m!1, LAMBDA (j: T): (a!1 * F!1)(j)(x!1))")
         (("1"
           (replace -1 -2)
           (replace -2 1)
           (hide -1 -2)
           (expand "*")
           (propax))
          ("2" (hide -1 2) (expand "*") (expand "*") (propax))))
        ("2" (assert))))))))


proof_type: t_proof
decl_type: tcc
library: linear_algebra
theory: sigma_vector
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: fin
script:
  (""
   (skosimp)
   (typepred "high!1")
   (case " T_pred(high!1)")
   (("1" (inst 2 "high!1") (assert))
    ("2"
     (case "(EXISTS (j: T): high!1 <= j)")
     (("1" (skosimp) (grind)) ("2" (assert))))))


proof_type: t_proof
decl_type: tcc
library: linear_algebra
theory: sigma_vector
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: fin
script:
  (""
   (skosimp)
   (typepred "high!1")
   (typepred "low!1")
   (grind)
   (("1"
     (lemma "connected_domain")
     (inst -1 "low!1" "j!1" "high!1")
     (assert))
    ("2"
     (lemma "connected_domain")
     (typepred "low!1")
     (inst -2 "j!1" "j!2" "high!1")
     (assert))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: linear_map_def
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: vec_bases
script:
  (""
   (skosimp)
   (expand "SigmaV")
   (apply-extensionality)
   (("1"
     (hide 2)
     (lemma "sigma_middle[Index[n!1]]")
     (("1"
       (inst -1 "LAMBDA (j: Index[n!1]): (x!1 * e(n!1))(j)(x!2)" "n!1-1"
        "x!2" "0")
       (assert)
       (replace -1)
       (case " sigma(0, x!2 - 1, LAMBDA (j: Index[n!1]): (x!1 * e(n!1))(j)(x!2))=0")
       (("1"
         (replace -1)
         (case " sigma(1 + x!2, n!1 - 1,
                             LAMBDA (j: Index[n!1]): (x!1 * e(n!1))(j)(x!2))=0")
         (("1" (replace -1) (assert) (expand "*" 1) (grind))
          ("2"
           (hide 2)
           (lemma "sigma_zero[ Index[n!1]]")
           (inst -1 "n!1-1" "1+x!2")
           (lemma "sigma_eq[ Index[n!1]]")
           (inst -1 " LAMBDA (j: Index[n!1]): (x!1 * e(n!1))(j)(x!2)"
            "LAMBDA (i: Index[n!1]): 0" "n!1-1" "1+x!2")
           (assert)
           (hide 2)
           (skosimp)
           (grind))))
        ("2"
         (hide 2)
         (lemma "sigma_zero[ Index[n!1]]")
         (inst -1 "x!2-1" "0")
         (assert)
         (lemma "sigma_eq[ Index[n!1]]")
         (inst -1 " LAMBDA (j: Index[n!1]): (x!1 * e(n!1))(j)(x!2)"
          "(LAMBDA (i: Index[n!1]): 0)" "x!2-1" "0")
         (assert)
         (skosimp)
         (grind))))
      ("2" (skosimp) (assert))))
    ("2" (skosimp) (skosimp) (assert))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: linear_map_def
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (expand "base?")
   (split)
   (("1"
     (expand "unit?")
     (skosimp)
     (expand "*")
     (lemma "sigma_middle[ Index[n!1]]")
     (("1"
       (inst -1
        " LAMBDA (i: Index[n!1]): e(n!1)(i!1)(i) * e(n!1)(i!1)(i)"
        "n!1-1" "i!1" "0")
       (assert)
       (replace -1)
       (case " sigma(0, i!1 - 1,
                         LAMBDA (i: Index[n!1]): e(n!1)(i!1)(i) * e(n!1)(i!1)(i))=0")
       (("1"
         (replace -1)
         (assert)
         (case " sigma(1 + i!1, n!1 - 1,
                           LAMBDA (i: Index[n!1]): e(n!1)(i!1)(i) * e(n!1)(i!1)(i))=0")
         (("1" (replace -1) (assert) (grind))
          ("2"
           (hide 2)
           (lemma "sigma_zero[ Index[n!1]]")
           (inst -1 "n!1-1" "1+i!1")
           (swap-rel -1)
           (replace -1)
           (lemma "sigma_eq [Index[n!1]]")
           (inst -1
            " LAMBDA (i: Index[n!1]): e(n!1)(i!1)(i) * e(n!1)(i!1)(i)"
            "LAMBDA (i: Index[n!1]): 0" "n!1-1" "1+i!1")
           (assert)
           (skosimp)
           (grind))))
        ("2"
         (hide 2)
         (lemma "sigma_zero[ Index[n!1]]")
         (inst -1 "i!1-1" "0")
         (swap-rel -1)
         (lemma "sigma_eq[Index[n!1]]")
         (inst -1 " (LAMBDA (i: Index[n!1]): 0)"
          " LAMBDA (i: Index[n!1]): e(n!1)(i!1)(i) * e(n!1)(i!1)(i)"
          "i!1-1" "0")
         (swap-rel -2)
         (assert)
         (skosimp)
         (hide 2)
         (grind))))
      ("2" (skosimp) (assert))))
    ("2"
     (expand "ortho?")
     (skosimp)
     (expand "*")
     (lemma "sigma_zero[ Index[n!1]]")
     (("1"
       (inst -1 "n!1-1" "0")
       (lemma "sigma_eq  [Index[n!1]]")
       (inst -1
        " LAMBDA (i: Index[n!1]): e(n!1)(i!1)(i) * e(n!1)(j!1)(i)"
        " (LAMBDA (i: Index[n!1]): 0)" "n!1-1" "0")
       (assert)
       (hide 2)
       (skosimp)
       (grind))
      ("2" (skosimp) (assert))))
    ("3"
     (expand "vec_expan?")
     (skosimp)
     (lemma "vec_repre_bases")
     (inst?))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: linear_map_def
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (expand "linear_map_e?")
   (skosimp)
   (expand "linear_map_e?")
   (split)
   (("1" (grind)) ("2" (grind))
    ("3"
     (skosimp)
     (expand "o" 1)
     (expand "o" 1)
     (inst -2 "l!1")
     (inst -1 "l!1")
     (inst -2 "x!1" "F!1")
     (replace -2)
     (hide -2)
     (expand "o")
     (inst -1 "x!1" "LAMBDA (x: below[l!1]): g!1`mp(F!1(x))")
     (("1"
       (apply-extensionality 1)
       (("1"
         (hide 2)
         (expand "*")
         (decompose-equality -1)
         (inst -1 "x!2")
         (expand "SigmaV")
         (expand "*")
         (propax))
        ("2" (hide 2) (skosimp) (grind)) ("3" (hide 2) (grind))
        ("4" (hide 2) (skosimp) (skosimp) (grind)) ("5" (hide 2) (grind))
        ("6" (hide 2) (grind)) ("7" (hide 2) (grind))))
      ("2" (hide 2) (grind)) ("3" (hide 2) (grind))))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: linear_map_def
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: thm
script:
  (""
   (skosimp)
   (expand "bijective?")
   (flatten)
   (split)
   (("1"
     (expand "injective?")
     (skosimp)
     (inst -3 "x1!1" "x2!1")
     (lemma "extensionality_postulate[Vector[n],Vector[n]]")
     (inst -1 "k!1" "h!1")
     (assert)
     (name "hh" "k!1 = h!1")
     (replace -1)
     (assert)
     (skosimp)
     (expand "hh")
     (grind))
    ("2"
     (expand "surjective?")
     (skosimp)
     (inst -3 "y!1")
     (skosimp)
     (case "k!1(x!1)=h!1(x!1)")
     (("1" (inst 1 "x!1") (assert)) ("2" (grind))))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: linear_map_def
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: thm
script:
  (""
   (skosimp)
   (typepred "h!1")
   (typepred "k!1")
   (apply-extensionality 1)
   (apply-extensionality 1)
   (lemma "vec_repre_bases")
   (inst -1 "n!1" "x!1")
   (("1"
     (replace -1)
     (expand "linear_map_e?")
     (inst -4 "n!1")
     (inst -7 "n!1")
     (expand "linear_map_e?")
     (inst -7 "x!1" "e(n!1)")
     (replace -7)
     (inst -4 "x!1" "e(n!1)")
     (replace -4)
     (expand "SigmaV" 1)
     (apply-extensionality 1)
     (("1"
       (hide 2 3)
       (lemma "sigma_eq[Index[n!1]]")
       (("1"
         (hide 2)
         (inst -1
          "LAMBDA (j: Index[n!1]): (x!1 * (h!1`mp o e(n!1)))(j)(x!2)"
          "LAMBDA (j: Index[n!1]): (x!1 * (k!1`mp o e(n!1)))(j)(x!2)"
          "n!1-1" "0")
         (("1"
           (name "ff"
                 "(FORALL (n: subrange(0, n!1 - 1)):
                          (x!1 * (h!1`mp o e(n!1)))(n)(x!2) =
                           (x!1 * (k!1`mp o e(n!1)))(n)(x!2))")
           (("1"
             (replace -1)
             (hide -1)
             (case "ff")
             (("1" (assert) (assert) (grind))
              ("2"
               (expand "ff" 1)
               (skosimp)
               (replace -9)
               (assert)
               (grind))))
            ("2" (skosimp) (skosimp) (assert))
            ("3" (skosimp) (skosimp) (replace -6) (assert))))
          ("2" (skosimp) (skosimp) (assert))
          ("3" (skosimp) (assert) (replace -5) (assert))))
        ("2" (skosimp) (assert))))
      ("2" (skosimp) (skosimp) (assert))
      ("3" (skosimp) (skosimp) (assert))))
    ("2" (replace -4) (assert))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: linear_map_def
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: fin
script:
  (""
   (skosimp)
   (split)
   (("1"
     (flatten)
     (expand "linear_map_e?")
     (induct "l")
     (("1"
       (case "l!1=0")
       (("1" (expand "linear_map_e?") (skosimp) (replace -1 2) (assert))
        ("2" (assert))))
      ("2" (assert))
      ("3"
       (skosimp)
       (case "j!1=0")
       (("1"
         (expand "linear_map_e?")
         (skosimp)
         (replace -1)
         (hide -2)
         (expand "SigmaV")
         (expand "sigma")
         (expand "sigma")
         (expand "o")
         (expand "linear_map?")
         (flatten)
         (expand "homogeneous?")
         (expand "*" 1 1)
         (expand "*" 1 1)
         (inst -4 "x!1(0)" "F!1(0)")
         (("1"
           (expand "*" -4 1)
           (case "f!1`mp(LAMBDA (i: Index[f!1`dom]): x!1(0) * F!1(0)(i)) =f!1`mp(LAMBDA (i: below[n!1]): x!1(0) * F!1(0)(i))")
           (("1"
             (replace -1)
             (replace -5)
             (hide -1)
             (typepred "f!1")
             (hide -6)
             (apply-extensionality)
             (("1" (hide 2) (expand "*") (expand "*") (propax))
              ("2" (skosimp) (replace -2) (assert))
              ("3" (skosimp) (skosimp) (typepred "y!1") (assert))
              ("4" (skosimp) (skosimp) (replace -1) (assert))))
            ("2"
             (hide -4 2)
             (lemma "congruence[Vector[f!1`dom],Vector[n!1]]")
             (inst -1 "f!1`mp" "f!1`mp"
              "LAMBDA (i: Index[f!1`dom]): x!1(0) * F!1(0)(i)"
              "LAMBDA (i: below[n!1]): x!1(0) * F!1(0)(i)")
             (("1"
               (case " ((LAMBDA (i: Index[f!1`dom]): x!1(0) * F!1(0)(i)) =
                             (LAMBDA (i: below[n!1]): x!1(0) * F!1(0)(i)))")
               (("1" (replace -1) (propax))
                ("2"
                 (hide -1 2)
                 (apply-extensionality)
                 (typepred "f!1")
                 (skosimp)
                 (replace -1)
                 (assert))))
              ("2" (skosimp) (typepred "f!1") (replace -1) (assert))
              ("3" (skosimp) (typepred "f!1") (replace -2) (assert))))
            ("3" (skosimp) (typepred "f!1") (replace -1) (assert))))
          ("2" (skosimp) (typepred "f!1") (replace -1) (assert))))
        ("2"
         (assert)
         (expand "linear_map_e?")
         (skosimp)
         (expand "*")
         (expand "o")
         (lemma "SigmaV_last[below[1+j!1],n!1]")
         (("1"
           (inst -1 " LAMBDA (i: Index[1 + j!1]): x!1(i) * F!1(i)" "j!1"
            "0")
           (assert)
           (replace -1)
           (hide -1)
           (expand "*")
           (expand "+")
           (copy -3)
           (expand "linear_map?" -1)
           (flatten)
           (expand "additive?")
           (inst -1
            "LAMBDA (i_1: Index[n!1]):
                         SigmaV(0, j!1 - 1,
                                LAMBDA (i: Index[1 + j!1]):
                                  LAMBDA (i_1: Index[n!1]): x!1(i) * F!1(i)(i_1))
                               (i_1)"
            "LAMBDA (i_1: Index[n!1]):x!1(j!1) * F!1(j!1)(i_1)")
           (("1"
             (expand "+" -1 1)
             (lemma "congruence[Vector[f!1`dom],Vector[f!1`codom]]")
             (typepred "f!1")
             (inst -3 "f!1`mp" "f!1`mp"
              "LAMBDA (i_1: Index[f!1`dom]):
                           SigmaV(0, j!1 - 1,
                                  LAMBDA (i: Index[1 + j!1]):
                                    LAMBDA (i_1: Index[n!1]): x!1(i) * F!1(i)(i_1))
                                 (i_1)
                            + x!1(j!1) * F!1(j!1)(i_1)"
              "LAMBDA (i_1: Index[n!1]):
                           SigmaV(0, j!1 - 1,
                                  LAMBDA (i: Index[1 + j!1]):
                                    LAMBDA (i_1: Index[n!1]): x!1(i) * F!1(i)(i_1))
                                 (i_1)
                            + x!1(j!1) * F!1(j!1)(i_1)")
             (("1"
               (case " ((LAMBDA (i_1: Index[f!1`dom]):
                               SigmaV(0, j!1 - 1,
                                      LAMBDA (i: Index[1 + j!1]):
                                        LAMBDA (i_1: Index[n!1]): x!1(i) * F!1(i)(i_1))
                                     (i_1)
                                + x!1(j!1) * F!1(j!1)(i_1))
                             =
                             (LAMBDA (i_1: Index[n!1]):
                                SigmaV(0, j!1 - 1,
                                       LAMBDA (i: Index[1 + j!1]):
                                         LAMBDA (i_1: Index[n!1]): x!1(i) * F!1(i)(i_1))
                                      (i_1)
                                 + x!1(j!1) * F!1(j!1)(i_1)))")
               (("1"
                 (replace -1 -4)
                 (replace -1)
                 (replace -4)
                 (hide -1 -4)
                 (inst -4 " LAMBDA (i: Index[j!1]): x!1(i)"
                  " LAMBDA (i: Index[j!1]): F!1(i)")
                 (case "SigmaV[below[j!1], n!1]
                                      (0, j!1 - 1,
                                       LAMBDA (i_2: Index[j!1]):
                                         LAMBDA (i_1: Index[n!1]): x!1(i_2) * F!1(i_2)(i_1))=LAMBDA (i_1: Index[n!1]):
                                    SigmaV(0, j!1 - 1,
                                           LAMBDA (i: Index[1 + j!1]):
                                             LAMBDA (i_1: Index[n!1]): x!1(i) * F!1(i)(i_1))
                                          (i_1)")
                 (("1"
                   (replace -1 -5)
                   (hide -1)
                   (replace -4 2)
                   (hide -4)
                   (expand "homogeneous?")
                   (expand "*")
                   (inst -3 "x!1(j!1)" "F!1(j!1)")
                   (("1"
                     (lemma
                      "congruence[Vector[f!1`dom],Vector[f!1`codom
                       ]]")
                     (inst -1 "f!1`mp" "f!1`mp"
                      "LAMBDA (i: Index[f!1`dom]): x!1(j!1) * F!1(j!1)(i)"
                      "LAMBDA (i_1: Index[n!1]): x!1(j!1) * F!1(j!1)(i_1)")
                     (("1"
                       (case " ((LAMBDA (i: Index[f!1`dom]): x!1(j!1) * F!1(j!1)(i)) =
                                     (LAMBDA (i_1: Index[n!1]): x!1(j!1) * F!1(j!1)(i_1)))")
                       (("1"
                         (replace -1 -2)
                         (replace -1)
                         (replace -4)
                         (hide -1)
                         (lemma "SigmaV_last[below[1+j!1],f!1`codom]")
                         (hide -4)
                         (inst -1
                          " LAMBDA (i: Index[1 + j!1]):
                                        LAMBDA (i_1: Index[f!1`codom]): x!1(i) * f!1`mp(F!1(i))(i_1)"
                          "j!1" "0")
                         (("1"
                           (assert)
                           (expand "SigmaV")
                           (case " (LAMBDA (i_1: below[f!1`codom]):
                                          sigma(0, j!1,
                                                LAMBDA (j: below[1 + j!1]): x!1(j) * f!1`mp(F!1(j))(i_1)))= (LAMBDA (i_1: below[n!1]):
                                           sigma(0, j!1,
                                                 LAMBDA (j: below[1 + j!1]): x!1(j) * f!1`mp(F!1(j))(i_1)))")
                           (("1"
                             (replace -1 -2)
                             (replace -2 2)
                             (hide -1 -2)
                             (case " (LAMBDA (i: below[n!1]):
                                             sigma(0, j!1 - 1,
                                                   LAMBDA (j: below[j!1]): x!1(j) * f!1`mp(F!1(j))(i)))= LAMBDA (i_1: below[f!1`codom]):
                                             sigma(0, j!1 - 1,
                                                   LAMBDA (j: below[1 + j!1]): x!1(j) * f!1`mp(F!1(j))(i_1))")
                             (("1" (replace -1 2) (propax))
                              ("2"
                               (hide 3)
                               (apply-extensionality)
                               (("1"
                                 (hide 2)
                                 (lemma "sigma_restrict_dom")
                                 (inst
                                  -1
                                  "j!1"
                                  "j!1"
                                  "LAMBDA (j: below[j!1]): x!1(j) * f!1`mp(F!1(j))(x!2)"
                                  " LAMBDA (j: below[1 + j!1]): x!1(j) * f!1`mp(F!1(j))(x!2)")
                                 (("1" (assert))
                                  ("2"
                                   (hide 2 3 -4)
                                   (skosimp)
                                   (skosimp)
                                   (replace -1)
                                   (assert))
                                  ("3"
                                   (hide 2 3 -3 -4)
                                   (skosimp)
                                   (skosimp)
                                   (replace -1)
                                   (assert))))
                                ("2" (skosimp) (replace -2) (assert))
                                ("3"
                                 (skosimp)
                                 (skosimp)
                                 (typepred "y!1")
                                 (assert))
                                ("4"
                                 (skosimp)
                                 (skosimp)
                                 (replace -1)
                                 (assert))
                                ("5"
                                 (skosimp)
                                 (skosimp)
                                 (typepred "y!1")
                                 (assert))
                                ("6"
                                 (skosimp)
                                 (skosimp)
                                 (replace -1)
                                 (assert))))
                              ("3" (skosimp) (replace -2) (assert))
                              ("4"
                               (skosimp)
                               (skosimp)
                               (typepred "y!1")
                               (assert))
                              ("5"
                               (skosimp)
                               (skosimp)
                               (replace -1)
                               (assert))))
                            ("2"
                             (hide -1 -5 3)
                             (apply-extensionality)
                             (("1" (skosimp) (replace -2) (assert))
                              ("2"
                               (skosimp)
                               (skosimp)
                               (typepred "y!1")
                               (assert))
                              ("3"
                               (skosimp)
                               (skosimp)
                               (replace -1)
                               (assert))
                              ("4"
                               (skosimp)
                               (skosimp)
                               (typepred "y!1")
                               (assert))
                              ("5"
                               (skosimp)
                               (skosimp)
                               (replace -1)
                               (assert))))
                            ("3" (skosimp) (replace -3) (assert))
                            ("4"
                             (skosimp)
                             (replace -2)
                             (skosimp)
                             (assert))
                            ("5"
                             (skosimp)
                             (skosimp)
                             (typepred "y!1")
                             (assert))
                            ("6"
                             (skosimp)
                             (skosimp)
                             (replace -2)
                             (assert))))
                          ("2"
                           (skosimp)
                           (skosimp)
                           (replace -1)
                           (assert))))
                        ("2"
                         (hide -1 -4 -6 3)
                         (apply-extensionality)
                         (skosimp)
                         (replace -1)
                         (assert))))
                      ("2" (skosimp) (replace -1) (assert))))
                    ("2" (skosimp) (replace -1) (assert))))
                  ("2"
                   (hide 3)
                   (hide -4)
                   (apply-extensionality)
                   (("1"
                     (hide 2)
                     (expand "SigmaV")
                     (lemma "sigma_restrict_dom")
                     (inst -1 "j!1" "j!1"
                      "LAMBDA (j: below[j!1]): x!1(j) * F!1(j)(x!2)"
                      "LAMBDA (j: Index[1 + j!1]): x!1(j) * F!1(j)(x!2)")
                     (assert))
                    ("2" (skosimp) (skosimp) (typepred "y!1") (assert))
                    ("3" (skosimp) (typepred "y!1") (assert))))
                  ("3" (skosimp) (typepred "y!1") (assert))))
                ("2"
                 (hide 3)
                 (hide -4 -6)
                 (hide -3)
                 (apply-extensionality)
                 (("1" (skosimp) (replace -1) (assert))
                  ("2" (skosimp) (skosimp) (typepred "y!1") (assert))
                  ("3" (skosimp) (skosimp) (typepred "y!1") (assert))))
                ("3"
                 (hide 3 -4)
                 (skosimp)
                 (hide -3)
                 (replace -1)
                 (assert))
                ("4"
                 (skosimp)
                 (skosimp)
                 (hide -6 3)
                 (hide -5)
                 (typepred "y!1")
                 (assert))
                ("5" (skosimp) (skosimp) (typepred "y!1") (assert))))
              ("2" (skosimp) (hide -3 3) (replace -1) (assert))
              ("3" (skosimp) (skosimp) (typepred "y!1") (assert))
              ("4" (skosimp) (skosimp) (typepred "y!1") (assert))))
            ("2" (skosimp) (typepred "f!1") (replace -1) (assert))
            ("3" (skosimp) (skosimp) (typepred "y!1") (assert))))
          ("2" (skosimp) (typepred "y!1") (assert))))))))
    ("2"
     (expand "linear_map_e?")
     (flatten)
     (expand "linear_map_e?")
     (expand "linear_map?")
     (split)
     (("1"
       (expand "additive?")
       (skosimp)
       (inst -1 "2")
       (assert)
       (expand "SigmaV")
       (expand "sigma")
       (expand "sigma")
       (expand "sigma")
       (inst -1 "LAMBDA (i:below[2]):1" "_")
       (assert)
       (inst -1 "(LAMBDA (i: below[2]): x!1)   WITH [(1) := y!1]")
       (("1"
         (assert)
         (grind)
         (case " f!1`mp(LAMBDA (i_1: below[n!1]): x!1(i_1) + y!1(i_1)) =f!1`mp(x!1 + y!1)")
         (("1"
           (replace -1 -2)
           (hide -1)
           (replace -1)
           (expand "+" 1 2)
           (apply-extensionality)
           (typepred "f!1")
           (skosimp)
           (replace -2)
           (assert))
          ("2"
           (hide -1 2)
           (lemma "congruence[Vector[n!1],Vector[f!1`codom]]")
           (inst -1 "f!1`mp" "f!1`mp"
            "LAMBDA (i_1: below[n!1]): x!1(i_1) + y!1(i_1)" "x!1+y!1")
           (("1"
             (case " (LAMBDA (i_1: below[n!1]): x!1(i_1) + y!1(i_1)) = x!1 + y!1")
             (("1" (assert)) ("2" (apply-extensionality))
              ("3" (typepred "f!1") (skosimp) (replace -1) (assert))))
            ("2" (skosimp) (typepred "f!1") (replace -1) (assert))))
          ("3" (typepred "f!1") (skosimp) (replace -1) (assert))))
        ("2" (skosimp) (typepred "f!1") (replace -1) (assert))))
      ("2"
       (expand "homogeneous?")
       (skosimp)
       (inst -1 "1")
       (inst -1 "LAMBDA (i: below[1]): a!1" "LAMBDA (i: below[1]): x!1")
       (("1"
         (expand "SigmaV")
         (expand "sigma")
         (expand "sigma")
         (assert)
         (typepred "f!1")
         (expand "*" -3 1)
         (expand "*" -3 1)
         (expand "*" 1 1)
         (case "f!1`mp(LAMBDA (i_1: below[n!1]): a!1 * x!1(i_1)) = f!1`mp(LAMBDA (i: Index[f!1`dom]): a!1 * x!1(i))")
         (("1"
           (replace -1 -4)
           (replace -4 1)
           (hide -1)
           (hide -3)
           (expand "*")
           (apply-extensionality)
           (("1" (hide 2) (expand "*") (expand "o") (propax))
            ("2" (skosimp) (replace -2) (assert))))
          ("2"
           (hide -3 2)
           (lemma "congruence[Vector[f!1`dom],Vector[f!1`codom]]")
           (inst -1 "f!1`mp" "f!1`mp"
            "LAMBDA (i_1: below[n!1]): a!1 * x!1(i_1)"
            "LAMBDA (i: Index[f!1`dom]): a!1 * x!1(i)")
           (("1"
             (case " ((LAMBDA (i_1: below[n!1]): a!1 * x!1(i_1)) =
                           (LAMBDA (i: Index[f!1`dom]): a!1 * x!1(i)))")
             (("1" (assert))
              ("2"
               (hide -1 2)
               (apply-extensionality)
               (skosimp)
               (replace -1)
               (assert))
              ("3" (skosimp) (replace -2) (assert))))
            ("2" (skosimp) (replace -1) (assert))))
          ("3" (skosimp) (replace -1) (assert))))
        ("2"
         (skosimp)
         (skosimp)
         (typepred "f!1")
         (replace -1)
         (assert))))))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrix_operator
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: thm
script:
  (""
   (skosimp)
   (expand "linear_map_e?")
   (skosimp)
   (expand "linear_map_e?")
   (split)
   (("1"
     (assert)
     (expand "bijective?")
     (expand "bijective?")
     (typepred "f!1")
     (grind))
    ("2" (grind))
    ("3"
     (skosimp)
     (copy -1)
     (expand "bijective?" -2)
     (expand "bijective?" -2)
     (flatten)
     (expand "injective?")
     (inst -2
      " inverse(n!1)(f!1)`mp(SigmaV[below[l!1], n!1](0, l!1 - 1, x!1 * F!1))"
      " SigmaV[below[l!1], n!1]
                 (0, l!1 - 1, x!1 * (inverse(n!1)(f!1)`mp o F!1))")
     (("1"
       (case "(f!1`mp
                        (inverse(n!1)(f!1)`mp
                             (SigmaV[below[l!1], n!1](0, l!1 - 1, x!1 * F!1))))
                     =
                     f!1`mp
                         (SigmaV[below[l!1], n!1]
                              (0, l!1 - 1, x!1 * (inverse(n!1)(f!1)`mp o F!1)))")
       (("1" (assert))
        ("2"
         (hide 2)
         (hide -2)
         (typepred "f!1")
         (expand "linear_map_e?")
         (inst -3 "l!1")
         (expand "linear_map_e?")
         (inst -3 "x!1" " (inverse(n!1)(f!1)`mp o F!1)")
         (("1"
           (replace-extensionality
            " f!1`mp
                       (SigmaV[below[l!1], n!1]
                            (0, l!1 - 1, x!1 * (inverse(n!1)(f!1)`mp o F!1)))"
            " SigmaV[below[l!1], n!1]
                       (0, l!1 - 1, x!1 * (f!1`mp o (inverse(n!1)(f!1)`mp o F!1)))")
           (("1"
             (hide -3)
             (lemma "inverse_surjective[Vector[n!1],Vector[n!1]]")
             (copy -1)
             (inst -1 "SigmaV[below[l!1], n!1](0, l!1 - 1, x!1 * F!1)"
              "f!1`mp")
             (expand "inverse" 1)
             (replace -1)
             (hide -1)
             (case "(f!1`mp o (inverse[Vector[n!1], Vector[n!1]](f!1`mp) o F!1)=F!1)")
             (("1"
               (apply-extensionality 1)
               (hide 2)
               (decompose-equality -1)
               (expand "o")
               (expand "SigmaV")
               (lemma "sigma_eq[below[l!1]]")
               (("1"
                 (inst -1 " LAMBDA (j: below[l!1]): (x!1 * F!1)(j)(x!2)"
                  "LAMBDA (j: below[l!1]):
                                 (x!1 *
                                   (LAMBDA (x_1: below[l!1]):
                                      f!1`mp
                                          (inverse[Vector[n!1], Vector[n!1]]
                                               (f!1`mp)(F!1(x_1)))))
                                     (j)(x!2)"
                  "l!1-1" "0")
                 (("1" (assert) (hide 2) (skosimp) (expand "*") (grind))
                  ("2" (hide 2) (grind))))
                ("2" (skosimp) (assert))))
              ("2"
               (hide 2)
               (apply-extensionality 1)
               (hide 2)
               (expand "o")
               (inst -1 "F!1(x!2)" "f!1`mp"))
              ("3" (hide 2) (grind)) ("4" (hide 2) (grind))))
            ("2"
             (hide 2)
             (decompose-equality -3)
             (inst -1 "x!2")
             (assert)
             (expand "o")
             (expand "SigmaV")
             (assert)
             (expand "inverse")
             (grind))))
          ("2" (hide 2) (grind))))
        ("3" (hide 2) (grind)) ("4" (hide 2) (grind))))
      ("2" (hide 2) (grind))))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrix_operator
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (typepred "f!1")
   (typepred "g!1")
   (expand "linear_map_e?")
   (skosimp)
   (expand "linear_map_e?")
   (split)
   (("1" (assert) (grind)) ("2" (grind))
    ("3"
     (skosimp)
     (expand "o" 1)
     (expand "o" 1)
     (inst -3 "l!2")
     (inst -3 "x!1" "F!1")
     (replace -3)
     (inst -6 "l!2")
     (inst -6 "x!1" "g!1`mp o F!1")
     (("1" (expand "o" -6) (expand "o" 1) (expand "SigmaV") (grind))
      ("2" (skosimp) (hide 2) (grind))))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrix_operator
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: thm
script:
  (""
   (skosimp)
   (expand "SigmaV")
   (apply-extensionality 1)
   (("1"
     (hide 2)
     (expand "*")
     (lemma "sigma_prop")
     (inst -1 "A!1`cols" "l!1"
      " LAMBDA (k: below(A!1`cols)):
                    A!1`matrix(x!1, k)"
      "LAMBDA(k:below[A!1`cols],j: below[l!1]): F!1(j)(k)")
     (replace -1)
     (hide -1)
     (lemma "sigma_comm")
     (inst -1 "A!1`cols" "l!1"
      " LAMBDA (i: below(A!1`cols),j_1:below[l!1]):
                            A!1`matrix(x!1, i) * F!1(j_1)(i)"))
    ("2" (skosimp) (assert) (skosimp) (assert)) ("3" (skosimp) (grind))
    ("4" (skosimp) (grind)) ("5" (skosimp) (skosimp) (grind))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrix_operator
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: thm
script:
  (""
   (skosimp)
   (expand "bijective?")
   (expand "bijective?")
   (split)
   (("1"
     (expand "injective?")
     (skosimp)
     (case "(h!1 o f!1)`mp(x1!1) = (h!1 o f!1)`mp(x2!1)")
     (("1" (replace -4) (assert) (expand "id" -1) (propax))
      ("2" (hide 2) (grind)) ("3" (skosimp) (grind))))
    ("2"
     (expand "surjective?")
     (skosimp)
     (inst 1 "g!1`mp(y!1)")
     (("1"
       (case "(f!1`mp o g!1`mp)(y!1)= f!1`mp(g!1`mp(y!1))")
       (("1"
         (swap-rel -1)
         (replace -1)
         (expand "o" -2)
         (replace -2)
         (expand "id" 1)
         (propax))
        ("2" (grind)) ("3" (skosimp) (grind))))
      ("2" (grind)) ("3" (grind))))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrix_operator
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: thm
script:
  (""
   (skosimp)
   (split)
   (("1"
     (expand "o" -1)
     (apply-extensionality 1)
     (("1" (grind)) ("2" (grind))
      ("3"
       (apply-extensionality 1)
       (lemma "extensionality_postulate[Vector[n!1],Vector[n!1]]")
       (inst -1 "f!1`mp o g!1`mp" "id(n!1)`mp")
       (("1"
         (case "(FORALL (x: Vector[n!1]): (f!1`mp o g!1`mp)(x) = id(n!1)`mp(x))")
         (("1"
           (assert)
           (inst -1 "x!1")
           (("1"
             (expand "o" -1)
             (case "inverse(n!1)(f!1)`mp (f!1`mp(g!1`mp(x!1))) = inverse(n!1)(f!1)`mp(id(n!1)`mp(x!1))")
             (("1"
               (expand "id" -1)
               (assert)
               (expand "inverse" -1)
               (lemma "comp_inverse_left[Vector[n!1],Vector[n!1]]")
               (inst -1 "g!1`mp(x!1)" "f!1`mp")
               (("1" (assert) (replace -1) (expand "inverse" 1) (assert))
                ("2"
                 (lemma "equa_inv")
                 (inst -1 "n!1" "f!1" "g!1" "h!1")
                 (assert)
                 (expand "o" -1)
                 (expand "bijective?" -1)
                 (propax))
                ("3" (skosimp) (hide 2 3 4) (grind))))
              ("2" (hide 2 3 4) (grind))
              ("3" (skosimp) (hide 2 3 4) (grind))
              ("4" (hide 2 3 4) (grind))))
            ("2" (hide 2 3 4) (grind))))
          ("2" (assert)) ("3" (hide 2 3 4) (grind)) ("4" (grind))
          ("5" (grind))))
        ("2"
         (split)
         (("1" (skosimp) (assert) (hide 2 3 4) (grind))
          ("2" (hide 2 3 4) (grind))))
        ("3"
         (split)
         (("1" (hide 2 3 4) (grind)) ("2" (hide 2 3 4) (grind))))))))
    ("2"
     (assert)
     (apply-extensionality)
     (("1" (grind)) ("2" (grind))
      ("3"
       (apply-extensionality 1)
       (expand "inverse" 1)
       (assert)
       (lemma "extensionality_postulate[Vector[n!1],Vector[n!1]]")
       (inst -1 "(h!1 o f!1)`mp" "id(n!1)`mp")
       (("1"
         (case "(FORALL (x: Vector[n!1]): (h!1 o f!1)`mp(x) = id(n!1)`mp(x))")
         (("1"
           (assert)
           (inst -1 "inverse[Vector[n!1],Vector[n!1]](f!1`mp)(x!1)")
           (assert)
           (expand "id" -1)
           (assert)
           (expand "o" -1)
           (assert)
           (expand "o" -1)
           (assert)
           (lemma "comp_inverse_right[Vector[n!1],Vector[n!1]]")
           (inst -1 "x!1" "f!1`mp")
           (("1" (replace -1) (assert))
            ("2"
             (lemma "equa_inv")
             (inst -1 "n!1" "f!1" "g!1" "h!1")
             (assert)
             (expand "bijective?" -1)
             (propax))))
          ("2" (hide 2 3 4) (grind)) ("3" (grind))
          ("4" (hide 2 3 4) (grind)) ("5" (hide 2 3 4) (grind))))
        ("2"
         (split)
         (("1" (hide 2 3 4) (grind)) ("2" (hide 2 3 4) (grind))))
        ("3"
         (split)
         (("1" (hide 2 3 4) (grind)) ("2" (hide 2 3 4) (grind))))))))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrix_operator
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: thm
script:
  (""
   (skosimp)
   (expand "T")
   (apply-extensionality)
   (("1" (hide 2) (expand "*") (propax)) ("2" (skosimp) (assert) (grind))
    ("3" (skosimp) (skosimp) (grind))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrix_operator
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: thm
script:
  (""
   (skosimp)
   (expand "linear_map_e?")
   (skosimp)
   (expand "linear_map_e?")
   (split)
   (("1" (grind)) ("2" (grind))
    ("3"
     (skosimp)
     (lemma "T_matr")
     (inst -1 "m!1" "n!1" "A!1"
      "SigmaV[below[l!1], n!1](0, l!1 - 1, x!1 * F!1)")
     (replace -1)
     (lemma "linear_matrix")
     (inst -1 "l!1" "n!1" "m!1" "A!1" "x!1*F!1")
     (replace -1)
     (apply-extensionality 1)
     (("1"
       (hide 2)
       (expand "SigmaV" 1)
       (lemma "sigma_eq[below[l!1]]")
       (("1"
         (inst -1 "LAMBDA (j: below[l!1]): (A!1 * (x!1 * F!1)(j))(x!2)"
          "LAMBDA (j: below[l!1]):
                         (x!1 * (T(n!1, m!1)(A!1)`mp o F!1))(j)(x!2)"
          "l!1-1" "0")
         (("1"
           (assert)
           (hide 2)
           (skosimp)
           (lemma "T_matr")
           (expand "o" 1)
           (expand "*" 1)
           (inst -1 "m!1" "n!1" "A!1" "F!1(n!2)")
           (replace -1)
           (expand "*" 1)
           (lemma "sigma_scal[below[A!1`cols]]")
           (("1"
             (inst -1
              "LAMBDA (k: below(A!1`cols)): A!1`matrix(x!2, k) * F!1(n!2)(k)"
              "x!1(n!2)" "A!1`cols-1" "0")
             (replace -1)
             (propax))
            ("2" (skosimp) (assert))))
          ("2" (skosimp) (skosimp) (assert) (hide 2) (grind))
          ("3" (skosimp) (skosimp) (assert) (hide 2) (grind))))
        ("2" (skosimp) (assert))))
      ("2" (skosimp) (assert) (hide 2) (grind))
      ("3" (skosimp) (skosimp) (assert) (hide 2) (grind))))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrix_operator
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: thm
script:
  (""
   (skosimp)
   (apply-extensionality)
   (hide 2)
   (apply-extensionality)
   (hide 2)
   (expand "L")
   (lemma "linear_map_T")
   (inst -1 "m!1" "n!1" "A!1")
   (lemma "T_matr")
   (inst -1 "m!1" "n!1" "A!1" "e(n!1)(x!2)")
   (replace -1)
   (expand "*")
   (lemma "sigma_middle[below(A!1`cols)]")
   (("1"
     (inst -1
      " LAMBDA (k: below(A!1`cols)):
                    A!1`matrix(x!1, k) * e(n!1)(x!2)(k)"
      "A!1`cols-1" "x!2" "0")
     (assert)
     (replace -1)
     (case "sigma(0, x!2 - 1,
                       LAMBDA (k: below(A!1`cols)):
                         A!1`matrix(x!1, k) * e(n!1)(x!2)(k)) = 0")
     (("1"
       (replace -1)
       (assert)
       (case "sigma(1 + x!2, A!1`cols - 1,
                         LAMBDA (k: below(A!1`cols)):
                           A!1`matrix(x!1, k) * e(n!1)(x!2)(k))=0")
       (("1" (replace -1) (assert) (grind))
        ("2"
         (hide 2)
         (lemma "sigma_zero[below(A!1`cols)]")
         (inst -1 "A!1`cols-1" "1+x!2")
         (swap-rel -1)
         (replace -1)
         (lemma "sigma_eq[below(A!1`cols)]")
         (inst -1
          " LAMBDA (k: below(A!1`cols)):
                        A!1`matrix(x!1, k) * e(n!1)(x!2)(k)"
          "(LAMBDA (i: below(A!1`cols)): 0)" "A!1`cols-1" "1+x!2")
         (assert)
         (skosimp)
         (grind))))
      ("2"
       (lemma "sigma_zero[below(A!1`cols)]")
       (inst -1 "x!2-1" "0")
       (swap-rel -1)
       (hide 2)
       (swap-rel 1)
       (lemma "sigma_eq[below(A!1`cols)]")
       (inst -1
        "LAMBDA (k: below(A!1`cols)):
                       A!1`matrix(x!1, k) * e(n!1)(x!2)(k)"
        "(LAMBDA (i: below(A!1`cols)): 0)" "x!2-1" "0")
       (assert)
       (skosimp)
       (grind))))
    ("2" (skosimp) (assert))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrix_operator
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: thm
script:
  (""
   (skosimp)
   (expand "bijective?")
   (split)
   (("1"
     (expand "injective?")
     (skosimp)
     (apply-extensionality)
     (lemma "extensionality_postulate[[below[m!1],below[n!1]],real]")
     (lemma "equa_basis_n")
     (expand "L")
     (inst -2
      " (LAMBDA (j: below[m!1], i: below[n!1]): x1!1`mp(e(n!1)(i))(j))"
      "(LAMBDA (j: below[m!1], i: below[n!1]): x2!1`mp(e(n!1)(i))(j))")
     (("1"
       (assert)
       (apply-extensionality 1)
       (apply-extensionality 1)
       (inst -1 "m!1" "n!1" "x1!1" "x2!1")
       (assert)
       (hide 1 2 4 5)
       (apply-extensionality 1)
       (apply-extensionality 1)
       (hide 2 3)
       (expand "o")
       (inst -1 "(x!4,x!3)"))
      ("2" (skosimp) (skosimp) (grind))
      ("3" (skosimp) (skosimp) (grind))))
    ("2"
     (expand "surjective?")
     (skosimp)
     (lemma "map_matrix_bij")
     (inst -1 "m!1" "n!1" "y!1")
     (inst 1 "T(n!1, m!1)(y!1)"))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrix_operator
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: thm
script:
  (""
   (skosimp)
   (lemma "map_matrix_bij")
   (lemma "Iso")
   (inst -1 "m!1" "n!1")
   (expand "bijective?")
   (flatten)
   (expand "surjective?")
   (expand "injective?")
   (inst?)
   (inst -3 "m!1" "n!1" "L(n!1,m!1)(f!1)")
   (assert))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrix_operator
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: thm
script:
  (""
   (skosimp)
   (apply-extensionality)
   (("1"
     (lemma "bijective_inverse[Map_linear(n!1,m!1),Mat(m!1,n!1)]")
     (("1"
       (inst -1 "T(n!1, m!1)(x!1)" "x!1" "L(n!1,m!1)")
       (("1" (assert) (lemma "map_matrix_bij") (inst?) (swap-rel 1))
        ("2" (lemma "Iso") (hide 2 3) (inst -1 "m!1" "n!1"))))
      ("2"
       (inst 1
        "(#dom:=n!1,codom:=m!1,mp:=lambda(x:Vector[n!1]):zero[m!1]#)")
       (expand "linear_map_e?")
       (skosimp)
       (expand "linear_map_e?")
       (skosimp)
       (apply-extensionality 1)
       (expand "SigmaV" 1)
       (expand "*" 1)
       (assert)
       (expand "o" 1)
       (assert)
       (lemma "sigma_zero[below[l!1]]")
       (("1" (inst -1 "l!1-1" "0") (assert)) ("2" (skosimp) (assert))))))
    ("2"
     (inst 1
      "(#dom:=n!1,codom:=m!1,mp:=lambda(x:Vector[n!1]):zero[m!1]#)")
     (expand "linear_map_e?")
     (skosimp)
     (expand "linear_map_e?")
     (skosimp)
     (apply-extensionality 1)
     (expand "SigmaV" 1)
     (expand "o" 1)
     (expand "*" 1)
     (assert)
     (assert)
     (lemma "sigma_zero[below[l!1]]")
     (("1" (inst -1 "l!1-1" "0") (assert)) ("2" (skosimp) (assert))))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrix_operator
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: thm
script:
  (""
   (skosimp)
   (lemma "Iso")
   (inst -1 "m!1" "n!1")
   (lemma "bij_inv_is_bij[Map_linear(n!1,m!1),Mat(m!1,n!1)]")
   (("1"
     (inst?)
     (assert)
     (lemma "L_inverse")
     (inst -1 "m!1" "n!1")
     (replace -1)
     (propax))
    ("2"
     (inst 1
      "(#dom:=n!1,codom:=m!1,mp:=lambda(y:Vector[n!1]):zero[m!1]#)")
     (expand "linear_map_e?")
     (skosimp)
     (hide 2)
     (expand "linear_map_e?")
     (skosimp)
     (expand "o")
     (expand "*")
     (assert)
     (lemma "sigma_zero[below[l!1]]")
     (("1"
       (expand "SigmaV")
       (apply-extensionality 1)
       (("1" (hide 2) (inst -1 "l!1-1" "0") (assert))
        ("2" (skosimp) (skosimp) (assert))))
      ("2" (skosimp) (assert))))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrix_operator
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: thm
script:
  (""
   (skosimp)
   (apply-extensionality)
   (("1" (hide 2) (grind)) ("2" (hide 2) (grind))
    ("3"
     (hide 2)
     (expand "o")
     (apply-extensionality)
     (hide 2)
     (lemma "T_matr")
     (expand "o")
     (copy -1)
     (inst -1 "p!1" "n!1" "A!1*B!1" "x!1")
     (("1"
       (replace -1)
       (hide -1)
       (copy -1)
       (inst -1 "m!1" "n!1" "B!1" "x!1")
       (("1"
         (replace -1)
         (hide -1)
         (inst -1 "p!1" "m!1" "A!1" "B!1*x!1")
         (("1"
           (replace -1)
           (assert)
           (hide -1)
           (lemma "mult_assoc_vect")
           (inst -1 "A!1" "B!1" "x!1"))
          ("2" (hide 2) (grind))))
        ("2" (hide 2) (grind))))
      ("2" (hide 2) (grind))))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrix_operator
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: thm1
script:
  (""
   (skosimp)
   (lemma "Iso_T")
   (inst -1 "p!1" "n!1")
   (expand "bijective?")
   (flatten)
   (expand "injective?")
   (inst -1 "L(n!1, p!1)(f!1 o g!1)"
    "L(m!1, p!1)(f!1) * L(n!1, m!1)(g!1)")
   (("1"
     (assert)
     (hide 2)
     (hide -1)
     (lemma "iso_map")
     (copy -1)
     (copy -2)
     (inst -1 "p!1" "n!1" "f!1 o g!1")
     (replace -1)
     (lemma "mult_comp")
     (inst -1 "m!1" "n!1" "p!1" "L(m!1, p!1)(f!1)" "L(n!1, m!1)(g!1)")
     (replace -1)
     (hide -1 -2)
     (inst -1 "p!1" "m!1" "f!1")
     (replace -1)
     (inst -2 "m!1" "n!1" "g!1")
     (replace -2)
     (propax))
    ("2" (split) (("1" (hide 2) (grind)) ("2" (grind))))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrix_operator
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (expand "L")
   (apply-extensionality)
   (("1" (grind)) ("2" (grind)) ("3" (grind))
    ("4" (split) (("1" (grind)) ("2" (grind)))) ("5" (grind))
    ("6" (grind))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrix_operator
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: thm
script:
  (""
   (skosimp)
   (apply-extensionality)
   (("1" (grind)) ("2" (grind))
    ("3"
     (apply-extensionality 1)
     (apply-extensionality 1)
     (expand "T" 1)
     (expand "id" 1)
     (hide 2 3 4)
     (lemma "sigma_middle[below[I(n!1)`cols]]")
     (("1"
       (inst -1
        "LAMBDA (i: below[I(n!1)`cols]): I(n!1)`matrix(x!2, i) * x!1(i)"
        "I(n!1)`cols-1" "x!2" "0")
       (("1"
         (assert)
         (case " I(n!1)`cols - 1 >= x!2")
         (("1"
           (assert)
           (replace -2)
           (hide -1)
           (hide -1)
           (case "sigma(0, x!2 - 1,
                             LAMBDA (i: below[I(n!1)`cols]): I(n!1)`matrix(x!2, i) * x!1(i))=0")
           (("1"
             (replace -1)
             (case "sigma(1 + x!2, I(n!1)`cols - 1,
                                LAMBDA (i: below[I(n!1)`cols]):
                                  I(n!1)`matrix(x!2, i) * x!1(i))=0")
             (("1" (replace -1) (assert) (expand "I") (assert))
              ("2"
               (hide 2)
               (lemma "sigma_eq[below[I(n!1)`cols]]")
               (lemma "sigma_zero[below[I(n!1)`cols]]")
               (inst -1 "I(n!1)`cols-1" "1+x!2")
               (inst?)
               (inst -2
                "LAMBDA (i: below[I(n!1)`cols]): I(n!1)`matrix(x!2, i) * x!1(i)")
               (("1" (assert) (skosimp) (expand "I" 1) (assert))
                ("2" (skosimp) (grind) (typepred "i!1") (assert))
                ("3" (skosimp) (grind))))))
            ("2"
             (hide 2)
             (lemma "sigma_eq[below[I(n!1)`cols]]")
             (lemma "sigma_zero[below[I(n!1)`cols]]")
             (inst -1 "x!2-1" "0")
             (inst?)
             (inst -2
              "LAMBDA (i: below[I(n!1)`cols]): I(n!1)`matrix(x!2, i) * x!1(i)")
             (("1" (assert) (skosimp) (expand "I" 1) (assert))
              ("2" (skosimp) (assert) (grind) (typepred "i!1") (assert))
              ("3" (skosimp) (assert) (grind))))
            ("3" (skosimp) (grind) (grind) (typepred "i!1") (assert))))
          ("2" (grind))))
        ("2" (grind))
        ("3"
         (skosimp)
         (expand "T")
         (hide 2)
         (typepred "i!1")
         (assert)
         (grind))
        ("4" (skosimp) (grind))))
      ("2" (skosimp) (assert))))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrix_operator
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (split)
   (("1" (grind))
    ("2"
     (lemma "iso_map")
     (inst -1 "n!1" "n!1" "inverse(n!1)(T(n!1, n!1)(A!1))")
     (replace -1)
     (expand "bijective?")
     (lemma "bij_inv_is_bij[Vector[n!1],Vector[n!1]]")
     (inst -1 "T(n!1,n!1)(A!1)`mp")
     (assert)
     (expand "bijective?")
     (flatten)
     (split)
     (("1" (assert) (grind)) ("2" (grind))))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrix_operator
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: thm
script:
  (""
   (skosimp)
   (split)
   (("1"
     (expand "inv")
     (lemma "map_matrix_bij")
     (inst -1 "n!1" "n!1" "M!1")
     (name "aa" "inverse(n!1)(T(n!1, n!1)(M!1))")
     (replace -1)
     (swap-rel -1)
     (swap-rel -2)
     (replace -2)
     (lemma "comp_mult")
     (inst -1 "n!1" "n!1" "n!1" "T(n!1,n!1)(M!1)" "aa")
     (swap-rel -1)
     (replace -1)
     (lemma "iso_ide_L")
     (inst -1 "n!1")
     (assert)
     (case "aa o T(n!1,n!1)(M!1)=id(n!1)")
     (("1" (replace -1) (propax))
      ("2"
       (expand "aa" 1)
       (apply-extensionality 1)
       (("1" (expand "o" 1) (assert) (grind))
        ("2" (expand "o" 1) (grind))
        ("3"
         (expand "o" 1)
         (hide 2 3)
         (expand "o" 1)
         (assert)
         (apply-extensionality 1)
         (("1"
           (hide 2)
           (expand "id" 1)
           (expand "bijective?")
           (lemma "iso_map")
           (inst -1 "n!1" "n!1" "T(n!1,n!1)(M!1)")
           (replace -1)
           (lemma "comp_inverse_left[Vector[n!1],Vector[n!1]]")
           (inst -1 "x!1" "T(n!1,n!1)(M!1)`mp")
           (("1" (assert) (grind))
            ("2"
             (split)
             (("1" (skosimp) (assert) (grind))
              ("2" (skosimp) (assert) (grind)) ("3" (propax))))
            ("3" (skosimp) (grind))))
          ("2" (split) (("1" (skosimp) (grind)) ("2" (skosimp) (grind))))
          ("3" (skosimp) (grind))))))))
    ("2"
     (expand "inv")
     (lemma "map_matrix_bij")
     (inst -1 "n!1" "n!1" "M!1")
     (swap-rel -1)
     (name "ss" "inverse(n!1)(T(n!1, n!1)(M!1))")
     (replace -1)
     (replace -2)
     (lemma "comp_mult")
     (inst?)
     (swap-rel -1)
     (replace -1)
     (lemma "iso_ide_L")
     (inst -1 "n!1")
     (assert)
     (case "T(n!1,n!1)(M!1) o ss =id(n!1) ")
     (("1" (replace -1) (propax))
      ("2"
       (expand "ss")
       (expand "o" 1)
       (apply-extensionality 1)
       (("1" (grind)) ("2" (grind))
        ("3"
         (hide 2 3)
         (expand "o" 1)
         (apply-extensionality 1)
         (("1"
           (expand "id" 1)
           (swap-rel -4)
           (replace -4)
           (expand "bijective?")
           (lemma "comp_inverse_right[Vector[n!1],Vector[n!1]]")
           (inst?)
           (("1" (inst -1 "T(n!1,n!1)(M!1)`mp") (assert) (grind))
            ("2" (skosimp) (grind))))
          ("2" (skosimp) (grind))))
        ("4" (split) (("1" (skosimp) (grind)) ("2" (grind))))))))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrix_operator
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (expand "inverse?")
   (split)
   (("1"
     (lemma "iso_inv")
     (inst -1 "M!1" "n!1")
     (assert)
     (flatten)
     (expand "squareMat?")
     (replace -3)
     (propax))
    ("2"
     (lemma "iso_inv")
     (inst -1 "M!1" "n!1")
     (assert)
     (flatten)
     (expand "squareMat?")
     (replace -3)
     (propax))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrix_operator
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: thm
script:
  (""
   (skosimp)
   (expand "bijective?")
   (lemma "mult_comp")
   (inst -1 "n!1" "n!1" "n!1" "A!1" "M!1")
   (replace -1)
   (assert)
   (lemma "composition_bijective[Vector[n!1],Vector[n!1],Vector[n!1]]")
   (inst -1 "T(n!1, n!1)(M!1)`mp" "T(n!1, n!1)(A!1)`mp")
   (assert)
   (expand "o" 1)
   (assert)
   (name "jj" "T(n!1, n!1)(A!1)`mp o T(n!1, n!1)(M!1)`mp")
   (expand "o")
   (assert)
   (expand "bijective?")
   (split)
   (("1" (assert) (grind)) ("2" (grind))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrix_operator
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: thm
script:
  (""
   (skosimp)
   (lemma "map_matrix_bij")
   (inst -1 "n!1" "n!1" "inv(n!1)(A!1)")
   (apply-extensionality 1)
   (("1" (grind)) ("2" (grind))
    ("3"
     (lemma "bijective_inverse[Vector[n!1],Vector[n!1]]")
     (apply-extensionality 1)
     (hide 2 3)
     (inst -1 "T(n!1, n!1)(inv(n!1)(A!1))`mp(x!1)" "x!1"
      "T(n!1, n!1)(A!1)`mp")
     (("1"
       (flatten)
       (case " x!1 = T(n!1, n!1)(A!1)`mp(T(n!1, n!1)(inv(n!1)(A!1))`mp(x!1))")
       (("1" (assert) (assert) (grind))
        ("2"
         (lemma "T_matr")
         (copy -1)
         (hide -3)
         (inst -1 "n!1" "n!1" "inv(n!1)(A!1)" "x!1")
         (("1"
           (replace -1)
           (inst -2 "n!1" "n!1" "A!1" "inv(n!1)(A!1) * x!1")
           (("1"
             (replace -2)
             (assert)
             (lemma "mult_assoc_vect")
             (inst -1 "A!1" "inv(n!1)(A!1)" "x!1")
             (("1"
               (replace -1)
               (lemma "iso_inv")
               (inst -1 "A!1" "n!1")
               (assert)
               (flatten)
               (replace -2)
               (assert)
               (hide 2)
               (lemma " ident_vect")
               (inst -1 "I(n!1)" "x!1")
               (assert))
              ("2" (assert) (hide 2 3) (typepred "A!1") (grind))))
            ("2" (skosimp) (grind))))
          ("2" (hide 2 3) (grind))))
        ("3" (skosimp) (grind)) ("4" (skosimp) (grind))))
      ("2"
       (split)
       (("1" (skosimp) (assert) (grind)) ("2" (grind))
        ("3"
         (assert)
         (typepred "A!1")
         (expand "bijective?" -3)
         (propax))))
      ("3" (grind)) ("4" (grind))))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrix_operator
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: thmm
script:
  (""
   (skosimp)
   (expand "inverse?")
   (split)
   (("1"
     (lemma "transpose_product")
     (inst -1 "inv(n!1)(A!1)" "A!1")
     (("1"
       (swap-rel -1)
       (replace -1)
       (lemma "iso_inv")
       (inst -1 "A!1" "n!1")
       (assert)
       (flatten)
       (replace -1)
       (apply-extensionality 1)
       (("1" (grind)) ("2" (grind))
        ("3" (hide 2) (apply-extensionality 1) (hide 2) (grind))))
      ("2" (grind))))
    ("2"
     (lemma "iso_inv")
     (inst -1 "A!1" "n!1")
     (assert)
     (flatten)
     (lemma "transpose_product")
     (inst -1 "A!1" "inv(n!1)(A!1)")
     (swap-rel -1)
     (replace -1)
     (replace -3)
     (apply-extensionality 1)
     (("1" (grind)) ("2" (grind))
      ("3" (apply-extensionality 1) (hide 2 3) (grind))))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrix_operator
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: thm
script:
  (""
   (skosimp)
   (lemma "equa_inv")
   (lemma "iso_inv")
   (inst?)
   (assert)
   (flatten)
   (inst -3 "n!1" "T(n!1,n!1)(transpose(A!1))"
    "T(n!1,n!1)(transpose(inv(n!1)(A!1)))"
    "T(n!1,n!1)(transpose(inv(n!1)(A!1)))")
   (("1"
     (assert)
     (split)
     (("1"
       (lemma "mult_comp")
       (inst -1 "n!1" "n!1" "n!1" "transpose(A!1)"
        "transpose(inv(n!1)(A!1))")
       (swap-rel -1)
       (replace -1)
       (lemma "iso_ide_T")
       (inst -1 "n!1")
       (swap-rel -1)
       (replace -1)
       (hide -1 -2)
       (lemma "Iso_T")
       (inst -1 "n!1" "n!1")
       (expand "bijective?" -1)
       (flatten)
       (expand "injective?")
       (lemma "transpose_product")
       (inst -1 "inv(n!1)(A!1)" "A!1")
       (swap-rel -1)
       (replace -1)
       (replace -4)
       (assert)
       (case "transpose(I(n!1))=I(n!1)")
       (("1" (replace -1) (propax))
        ("2"
         (hide 2 3)
         (apply-extensionality 1)
         (("1" (grind)) ("2" (grind))
          ("3" (lemma " ident_trans") (inst -1 "n!1"))))))
      ("2"
       (lemma "mult_comp")
       (inst -1 "n!1" "n!1" "n!1" "transpose(inv(n!1)(A!1))"
        "transpose(A!1)")
       (swap-rel -1)
       (replace -1)
       (lemma "transpose_product")
       (inst -1 "A!1" "inv(n!1)(A!1)")
       (swap-rel -1)
       (replace -1)
       (replace -4)
       (lemma " ident_trans")
       (inst -1 "I(n!1)")
       (assert)
       (lemma "iso_ide_T")
       (inst -1 "n!1")
       (swap-rel -1)
       (replace -1)
       (lemma "ident_trans")
       (inst -1 "n!1")
       (replace -1)
       (propax))))
    ("2"
     (split)
     (("1" (hide 2) (assert) (grind)) ("2" (hide 2) (grind))))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrix_operator
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (lemma "tran_inv")
   (inst -1 "A!1" "n!1")
   (assert)
   (lemma "inverse_unique")
   (inst -1 "transpose(A!1)" "transpose(inv(n!1)(A!1))"
    "inv(n!1)(transpose(A!1))")
   (("1" (assert))
    ("2"
     (split)
     (("1" (hide 2) (grind))
      ("2"
       (assert)
       (lemma "tran_inv")
       (inst -1 "A!1" "n!1")
       (assert)
       (expand "inverse?" 1)
       (split)
       (("1"
         (lemma "bijec_transpose")
         (inst -1 "A!1" "n!1")
         (assert)
         (lemma "iso_inv")
         (inst -1 "transpose(A!1)" "n!1")
         (assert)
         (case "squareMat?(n!1)(transpose(A!1)) ")
         (("1"
           (assert)
           (assert)
           (flatten)
           (assert)
           (split)
           (("1"
             (assert)
             (case "transpose(A!1)`rows=n!1")
             (("1" (replace -1) (propax)) ("2" (grind))))
            ("2"
             (case "transpose(A!1)`rows=n!1 ")
             (("1" (replace -1) (propax)) ("2" (hide 2 3) (grind))))))
          ("2" (hide 2 3) (grind))))
        ("2" (propax))))))
    ("3"
     (hide 2)
     (expand "invertible?")
     (inst 1 "transpose(inv(n!1)(A!1))"))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrix_operator
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: thm
script:
  (""
   (skosimp)
   (expand "inverse?")
   (split)
   (("1"
     (lemma " mult_assoc")
     (copy -1)
     (inst -2 "A!1" "B!1" "inv(n!1)(B!1) * inv(n!1)(A!1)")
     (("1"
       (swap-rel -2)
       (replace -2)
       (copy -1)
       (inst -2 "B!1" "inv(n!1)(B!1)" "inv(n!1)(A!1)")
       (("1"
         (replace -2)
         (lemma "iso_inv")
         (inst -1 "B!1" "n!1")
         (assert)
         (flatten)
         (replace -2)
         (assert)
         (lemma "left_mult_ident")
         (inst -1 "inv(n!1)(A!1)" "I(n!1)")
         (("1"
           (replace -1)
           (lemma "iso_inv")
           (inst -1 "A!1" "n!1")
           (assert)
           (flatten)
           (assert)
           (case "(A!1 * B!1)`rows=n!1")
           (("1" (replace -1) (propax)) ("2" (hide 2) (grind))))
          ("2" (grind))))
        ("2" (hide 2) (grind))))
      ("2" (assert) (grind))))
    ("2"
     (lemma "mult_assoc")
     (copy -1)
     (inst -2 "inv(n!1)(B!1)" "inv(n!1)(A!1)" "A!1*B!1")
     (("1"
       (swap-rel -2)
       (replace -2)
       (inst -1 "inv(n!1)(A!1)" "A!1" "B!1")
       (("1"
         (replace -1)
         (lemma "iso_inv")
         (inst -1 "A!1" "n!1")
         (assert)
         (flatten)
         (replace -1)
         (assert)
         (lemma " left_mult_ident")
         (inst -1 "B!1" "I(n!1)")
         (("1"
           (replace -1)
           (assert)
           (lemma "iso_inv")
           (inst -1 "B!1" "n!1")
           (assert)
           (flatten)
           (case "(A!1*B!1)`rows=n!1")
           (("1" (replace -1) (propax)) ("2" (grind))))
          ("2" (grind))))
        ("2" (grind))))
      ("2" (hide 2) (grind))))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrix_operator
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: thm
script:
  (""
   (skosimp)
   (lemma "inv")
   (inst -1 "A!1*B!1" "n!1")
   (lemma "bijec_prod")
   (inst -1 "A!1" "B!1" "n!1")
   (assert)
   (case " squareMat?(n!1)(A!1 * B!1)")
   (("1"
     (assert)
     (lemma "inverse_unique")
     (inst -1 "A!1*B!1" "inv(n!1)(B!1) * inv(n!1)(A!1)"
      "inv(n!1)(A!1 * B!1)")
     (("1" (assert))
      ("2"
       (split)
       (("1" (expand "square?" 1) (grind)) ("2" (hide 2) (grind))
        ("3" (lemma "prod_inv") (inst?) (assert))))
      ("3"
       (hide 2)
       (expand "invertible?")
       (inst 1 "inv(n!1)(A!1 * B!1)"))))
    ("2" (expand "squareMat?") (grind))))


proof_type: f_proof
decl_type: formula
library: linear_algebra
theory: matrix_operator
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: thm
script:
  (""
   (skosimp)
   (lemma "mult_assoc_vect")
   (inst -1 "inv(n!1)(M!1)" "M!1" "x!1")
   (("1"
     (lemma "inv")
     (inst -1 "M!1" "n!1")
     (assert)
     (expand "inverse?")
     (flatten)
     (replace -2)
     (lemma "ident_vect")
     (inst -1 "I(M!1`rows)" "x!1")
     (replace -1)
     (move-terms -7 r 2)
     (("1" (replace -7) (propax)) ("2" (grind)) ("3" (grind))))
    ("2" (grind))))


proof_type: t_proof
decl_type: tcc
library: linear_algebra
theory: matrix_operator
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: tcc
script:
  (""
   (skosimp)
   (expand "linear_map_e?")
   (skosimp)
   (expand "linear_map_e?")
   (skosimp)
   (apply-extensionality)
   (("1"
     (hide 2)
     (expand "SigmaV")
     (assert)
     (expand "o")
     (expand "*")
     (expand "*")
     (lemma "sigma_prop")
     (inst -1 "A!1`cols" "l!1"
      " LAMBDA (i: below[A!1`cols]):
                   A!1`matrix(x!2, i)"
      "lambda(i:below[A!1`cols],j: below[l!1]): x!1(j) * F!1(j)(i)")
     (replace -1)
     (hide -1)
     (lemma "sigma_comm")
     (inst -1 "A!1`cols" "l!1"
      " LAMBDA (i_1:below(A!1`cols),j_1: below(l!1)):
                            A!1`matrix(x!2, i_1) * (x!1(j_1) * F!1(j_1)(i_1))")
     (replace -1)
     (hide -1)
     (lemma "sigma_prop")
     (inst?)
     (assert))
    ("2" (skosimp) (skosimp) (assert))))


proof_type: t_proof
decl_type: tcc
library: linear_algebra
theory: matrix_operator
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: fin
script:
  (""
   (existence-tcc)
   (inst 1
    "(#dom:=n!1,codom:=m!1,mp:= Lambda(x:Vector[n!1]):zero[m!1]#)")
   (skosimp)
   (skosimp)
   (expand "SigmaV")
   (apply-extensionality)
   (hide 2)
   (lemma "sigma_zero[below[l!1]]")
   (inst -1 "l!1-1" "0")
   (assert))


proof_type: t_proof
decl_type: tcc
library: linear_algebra
theory: matrix_operator
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (split)
   (("1" (grind)) ("2" (grind))
    ("3"
     (expand "linear_map_e?")
     (skosimp)
     (lemma "linear_map_e_comp")
     (inst -1 "m!1" "n!1" "p!1" "f!1" "g!1")
     (assert)
     (expand "linear_map_e?" -1)
     (inst -1 "l!1"))))


proof_type: t_proof
decl_type: tcc
library: linear_algebra
theory: matrix_operator
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: fin
script:
  (""
   (skosimp)
   (split)
   (("1" (grind)) ("2" (grind))
    ("3"
     (lemma "linear_comp")
     (typepred "f!1")
     (typepred "g!1")
     (inst -7 "n!1" "m!1" "p!1" "g!1" "f!1"))))


proof_type: t_proof
decl_type: tcc
library: linear_algebra
theory: matrix_operator
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: tcc
script:
  (""
   (skosimp)
   (split)
   (("1" (assert) (grind)) ("2" (grind))
    ("3"
     (expand "linear_map_e?")
     (skosimp)
     (expand "linear_map_e?")
     (split)
     (("1" (expand "id") (propax)) ("2" (expand "id") (propax))
      ("3"
       (skosimp)
       (expand "id")
       (expand "o")
       (assert)
       (grind)
       (apply-extensionality))))))


proof_type: t_proof
decl_type: tcc
library: linear_algebra
theory: matrix_operator
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (split)
   (("1" (grind)) ("2" (grind))
    ("3"
     (lemma "linear_inverse_map_n")
     (inst -1 "n!1" "T(n!1, n!1)(A!1)")
     (("1" (assert)) ("2" (hide 2) (lemma "linear_map_T") (inst?))))))


proof_type: t_proof
decl_type: tcc
library: linear_algebra
theory: matrix_operator
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: tcc
script:
  (""
   (skosimp)
   (split)
   (("1" (grind)) ("2" (grind))
    ("3"
     (lemma "linear_inverse_map_n")
     (lemma "linear_map_T")
     (inst -1 "n!1" "n!1" "A!1")
     (inst -2 "n!1" "T(n!1, n!1)(A!1)")
     (assert))))


proof_type: t_proof
decl_type: tcc
library: linear_algebra
theory: matrix_operator
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: tcc
script:
  (""
   (skosimp)
   (split)
   (("1" (grind)) ("2" (grind))
    ("3" (lemma "inverse_invertible") (inst?) (assert))))


proof_type: t_proof
decl_type: tcc
library: linear_algebra
theory: matrix_operator
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: tcc
script:
  (""
   (skosimp)
   (split)
   (("1" (grind)) ("2" (grind))
    ("3" (lemma "bijec_transpose") (inst -1 "A!1" "n!1") (assert))))


proof_type: t_proof
decl_type: tcc
library: linear_algebra
theory: matrix_operator
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: tcc
script:
  (""
   (skosimp)
   (split)
   (("1" (grind)) ("2" (grind))
    ("3" (lemma "bijec_transpose") (inst?) (assert))))


proof_type: t_proof
decl_type: tcc
library: linear_algebra
theory: matrix_operator
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: tcc
script:
  (""
   (skosimp)
   (split)
   (("1" (assert) (grind)) ("2" (grind))
    ("3" (lemma "bijec_prod") (inst?) (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)
   (hide 2)
   (expand "*")
   (expand "zero")
   (lemma "sigma_zero[below[A!1`cols]]")
   (("1" (inst -1 "A!1`cols-1" "0"))
    ("2" (skosimp) (typepred "y!1") (assert))))


