# Proofs

proof_type: f_proof
decl_type: formula
library: groups
theory: isomorphism_theorems
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "third_isomorphism_th_aux")
   (inst?)
   (assert)
   (skosimp)
   (lemma
    "first_isomorphism_th[left_cosets[T1, *, one1](G!1, N!1), mult(G!1, N!1), N!1, left_cosets[T1, *, one1](G!1, M!1), mult(G!1, M!1), M!1]")
   (("1"
     (inst -1 "G!1 / N!1" "G!1 / M!1" "psi!1")
     (replace -4 -1)
     (assert)
     (case-replace
      "extend
                     [left_cosets[T1, *, one1](G!1, M!1), (G!1 / M!1), bool,
                      FALSE]
                     (image(psi!1,
                            restrict
                                [left_cosets[T1, *, one1](G!1, N!1), (G!1 / N!1),
                                 bool]
                                (G!1 / N!1))) = G!1 / M!1"
      :hide? T)
     (("1"
       (assert)
       (hide (-1 -2 -3))
       (lemma
        "kernel_normal[left_cosets[T1, *, one1](G!1, N!1), mult[T1, *, one1](G!1, N!1),
                           N!1, left_cosets[T1, *, one1](G!1, M!1), mult[T1, *, one1](G!1, M!1),
                           M!1]")
       (inst -1 "/[T1, *, one1](G!1, N!1)" "/[T1, *, one1](G!1, M!1)"
        "psi!1")
       (assert))
      ("2"
       (hide (-1 -4 2))
       (decompose-equality 1)
       (expand "extend")
       (lift-if)
       (prop)
       (expand "image")
       (expand "surjective?")
       (inst -3 "x!1")
       (skosimp)
       (inst 1 "x!2")
       (("1" (assert)) ("2" (expand "restrict") (propax))))))
    ("2" (hide-all-but 1) (rewrite "left_cosets_group[T1, *, one1]"))
    ("3" (hide-all-but 1) (rewrite "left_cosets_group[T1, *, one1]"))
    ("4"
     (hide-all-but 1)
     (inst 1 "one1")
     (("1" (rewrite "left_coset_one[T1,*,one1]"))
      ("2"
       (typepred "G!1")
       (expand* "group?" "monoid?" "monad?" "member")
       (flatten))))
    ("5"
     (hide-all-but 1)
     (inst 1 "one1")
     (("1" (rewrite "left_coset_one[T1,*,one1]"))
      ("2"
       (typepred "G!1")
       (expand* "group?" "monoid?" "monad?" "member")
       (flatten))))))


proof_type: f_proof
decl_type: formula
library: groups
theory: isomorphism_theorems
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (inst 1
    "LAMBDA (N: subgroup_contain(G!1, kernel(G!1, GP!1)(f!1))): image(f!1, N)")
   (("1"
     (prop)
     (("1"
       (expand "bijective?")
       (prop)
       (("1"
         (expand "injective?")
         (skosimp*)
         (typepred "x1!1" "x2!1")
         (hide (-1 -4))
         (lemma "homo_inv_image_image_cor[T1,*,one1,T2,o,one2]")
         (("1"
           (assert)
           (expand "subgroup?" -1)
           (inst-cp -1 "G!1" "GP!1" "f!1" "x2!1")
           (inst -1 "G!1" "GP!1" "f!1" "x1!1")
           (assert)
           (decompose-equality -1)
           (decompose-equality -2)
           (decompose-equality -7)
           (decompose-equality 1)
           (iff)
           (prop)
           (("1"
             (inst -3 "x!1")
             (("1"
               (inst -4 "x!1")
               (iff)
               (prop)
               (("1" (hide-all-but (-4 1)) (expand "restrict") (propax))
                ("2" (hide-all-but (-3 1)) (expand "restrict") (propax))
                ("3"
                 (hide (-2 1 3))
                 (expand "inverse_image")
                 (expand "member")
                 (inst?)
                 (expand "extend")
                 (assert))
                ("4"
                 (hide-all-but (-1 1))
                 (expand "restrict")
                 (propax))))
              ("2"
               (hide-all-but (-1 -4 1))
               (expand* "subgroup?" "subset?" "member")
               (inst?)
               (assert))))
            ("2"
             (inst -3 "x!1")
             (("1"
               (inst -4 "x!1")
               (iff)
               (prop)
               (("1" (hide-all-but (-2 1)) (expand "restrict") (propax))
                ("2"
                 (hide (-2 1 3))
                 (expand "inverse_image")
                 (expand "member")
                 (inst?)
                 (expand "extend")
                 (assert))
                ("3" (hide-all-but (-3 1)) (expand "restrict") (propax))
                ("4"
                 (hide-all-but (-1 3))
                 (expand "restrict")
                 (propax))))
              ("2"
               (hide-all-but (-1 -6 1))
               (expand* "subgroup?" "subset?" "member")
               (inst?)
               (assert))))))
          ("2" (rewrite "T2_is_group")) ("3" (rewrite "T1_is_group"))))
        ("2"
         (expand "surjective?")
         (skosimp*)
         (inst 1 "inverse_image(f!1, y!1)")
         (("1"
           (decompose-equality 1)
           (iff)
           (prop)
           (("1"
             (expand "extend")
             (prop)
             (expand "image")
             (skosimp)
             (typepred "x!2")
             (expand "restrict")
             (expand "inverse_image")
             (expand "member")
             (assert))
            ("2"
             (expand "extend")
             (prop)
             (("1"
               (expand "image")
               (inst?)
               (skosimp)
               (inst 1 "x!2")
               (("1" (assert))
                ("2"
                 (expand "restrict")
                 (expand "inverse_image")
                 (expand "member")
                 (assert))))
              ("2"
               (hide -2)
               (typepred "y!1")
               (hide -1)
               (expand* "subgroup?" "subset?" "member")
               (inst?)
               (assert))))))
          ("2"
           (hide -1)
           (lemma "homo_inv_image[T1,*,one1,T2,o,one2]")
           (("1"
             (inst?)
             (assert)
             (prop)
             (("1"
               (lemma "subgroup_is_group[T1, *, one1]")
               (inst?)
               (assert))
              ("2"
               (lemma "kernel_in_inv_image[T1,*,one1,T2,o,one2]")
               (inst?)
               (assert))))
            ("2" (hide 2) (rewrite "T2_is_group"))
            ("3" (hide 2) (rewrite "T1_is_group"))))))))
      ("2"
       (skosimp*)
       (prop)
       (("1"
         (lemma "homo_image[T1,*,one1,T2,o,one2]")
         (("1" (inst?)) ("2" (hide-all-but 1) (rewrite "T2_is_group"))
          ("3" (hide-all-but 1) (rewrite "T1_is_group"))))
        ("2"
         (lemma "homo_inv_image[T1,*,one1,T2,o,one2]")
         (("1"
           (inst -1 "G!1" "GP!1" "f!1"
            "image(f!1, restrict[T1, (G!1), boolean](N!1))")
           (("1"
             (lemma "homo_inv_image_image_cor[T1, *, one1,T2, o, one2]")
             (inst?)
             (assert))
            ("2"
             (prop)
             (hide (-2 2))
             (lemma "subgroup_is_group[T2, o, one2]")
             (inst?)
             (assert))))
          ("2" (hide-all-but 1) (rewrite "T2_is_group"))
          ("3" (hide-all-but 1) (rewrite "T1_is_group"))))
        ("3"
         (lemma "homo_image_normal[T1,*,one1,T2,o,one2]")
         (("1" (inst?) (assert))
          ("2" (hide-all-but 1) (rewrite "T2_is_group"))
          ("3" (hide-all-but 1) (rewrite "T1_is_group"))))
        ("4"
         (lemma "homo_inv_image_normal[T1,*,one1,T2,o,one2]")
         (("1"
           (inst -1 "G!1" "GP!1" "f!1"
            "image(f!1, restrict[T1, (G!1), boolean](N!1))")
           (lemma "homo_inv_image_image_cor[T1, *, one1,T2, o, one2]")
           (inst?)
           (assert)
           (prop)
           (("1"
             (hide (-2 -4 -5))
             (expand "normal_subgroup?")
             (flatten)
             (skosimp)
             (hide -2)
             (expand* "subset?" "member")
             (skosimp)
             (decompose-equality -1)
             (inst -1 "x!1")
             (("1"
               (iff)
               (prop)
               (("1" (hide-all-but (-2 1)) (expand "restrict") (propax))
                ("2"
                 (hide (1 3))
                 (expand "inverse_image")
                 (expand "member")
                 (expand "image")
                 (inst -1 "a!1")
                 (inst -1 "x!1")
                 (prop)
                 (("1" (expand "extend") (prop))
                  ("2"
                   (hide 2)
                   (expand "*")
                   (skosimp)
                   (typepred "h!1")
                   (skosimp)
                   (replaces -1)
                   (inst 1 "inv[T1, *, one1](a!1) * h!2")
                   (inst 1 "h!2")
                   (expand "extend")
                   (prop)
                   (("1" (inst?) (assert) (expand "restrict") (propax))
                    ("2"
                     (hide -1)
                     (typepred "h!2" "N!1")
                     (hide (-2 -4))
                     (expand* "subgroup?" "subset?" "member")
                     (inst?)
                     (assert))))))))
              ("2"
               (hide (-1 2))
               (expand "*")
               (skosimp)
               (typepred "h!1")
               (skosimp)
               (replaces -1)
               (replaces -1)
               (rewrite "product_in[T1, *, one1]")
               (hide 2)
               (rewrite "product_in[T1, *, one1]")
               (("1" (hide 2) (rewrite "inv_in"))
                ("2"
                 (hide 2)
                 (typepred "h!2" "N!1")
                 (hide (-2 -4))
                 (expand* "subgroup?" "subset?" "member")
                 (inst?)
                 (assert))))))
            ("2"
             (hide-all-but 1)
             (typepred "N!1")
             (hide (-1 -2))
             (expand "subgroup?")
             (propax))))
          ("2" (hide-all-but 1) (rewrite "T2_is_group"))
          ("3" (hide-all-but 1) (rewrite "T1_is_group"))))))))
    ("2"
     (skosimp*)
     (lemma "homo_image[T1,*,one1,T2,o,one2]")
     (("1"
       (inst?)
       (assert)
       (hide -2)
       (lemma "subgroup_is_group[T2, o, one2]")
       (inst?)
       (assert))
      ("2" (hide 2) (rewrite "T2_is_group"))
      ("3" (hide 2) (rewrite "T1_is_group"))))
    ("3" (rewrite "T1_is_group"))))


proof_type: t_proof
decl_type: tcc
library: groups
theory: isomorphism_theorems
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "normal_subgroup_tran[T1, *, one1]")
   (("1"
     (inst -1 "G!1" "M!1" "N!1")
     (assert)
     (typepred "M!1")
     (expand "normal_subgroup?")
     (propax))
    ("2" (rewrite "G_TCC1"))))


proof_type: t_proof
decl_type: tcc
library: groups
theory: isomorphism_theorems
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (prop)
   (("1"
     (skosimp)
     (inst 1 "a!1")
     (hide -)
     (typepred "a!1" "M!1")
     (expand* "normal_subgroup?" "subgroup?")
     (flatten)
     (expand* "subset?" "member")
     (inst?)
     (assert))
    ("2" (hide -1) (inst 1 "lc_gen(M!1, N!1, x!1)") (assert))))


proof_type: t_proof
decl_type: tcc
library: groups
theory: isomorphism_theorems
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (inst 1 "one1")
   (("1" (rewrite "left_coset_one[T1,*,one1]"))
    ("2"
     (typepred "G!1")
     (expand* "group?" "monoid?" "monad?" "member")
     (flatten))))


proof_type: t_proof
decl_type: tcc
library: groups
theory: isomorphism_theorems
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (inst 1 "N!1")
   (inst 1 "one1")
   (("1" (rewrite "left_coset_one[T1,*,one1]"))
    ("2"
     (typepred "G!1")
     (expand* "group?" "monoid?" "monad?" "member")
     (flatten))))


proof_type: t_proof
decl_type: tcc
library: groups
theory: isomorphism_theorems
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (replaces -1)
   (lemma "HK_subgroup[T1, *, one1]")
   (inst -1 "G!1" "H!1" "N!1")
   (("1"
     (assert)
     (lemma "HK_subgroup_permute[T1, *, one1]")
     (inst?)
     (("1" (assert) (expand "subgroup?") (propax))
      ("2"
       (hide (-1 2))
       (typepred "N!1")
       (expand "normal_subgroup?")
       (assert))))
    ("2" (typepred "N!1") (expand "normal_subgroup?") (assert))))


proof_type: t_proof
decl_type: tcc
library: groups
theory: isomorphism_theorems
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (replaces -2)
   (replaces -1)
   (lemma "HK_subgroup[T1, *, one1]")
   (inst -1 "G!1" "H!1" "N!1")
   (("1"
     (assert)
     (lemma "HK_subgroup_permute[T1, *, one1]")
     (inst?)
     (("1"
       (assert)
       (replaces -1)
       (lemma "H_K_are_subgroups[T1, *, one1]")
       (inst?)
       (("1"
         (prop)
         (("1"
           (hide -2)
           (lemma "normal_subgroup_tran[T1, *, one1]")
           (("1"
             (inst -1 "G!1" "prod[T1, *, one1](N!1, H!1)" "N!1")
             (assert))
            ("2" (rewrite "G_TCC1"))))
          ("2" (expand "subgroup?") (assert))))
        ("2" (typepred "N!1") (expand "normal_subgroup?" -2) (assert))))
      ("2"
       (hide 2)
       (typepred "N!1")
       (expand "normal_subgroup?")
       (assert))))
    ("2" (hide 2) (typepred "N!1") (expand "normal_subgroup?") (assert))))


proof_type: t_proof
decl_type: tcc
library: groups
theory: isomorphism_theorems
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (inst 1 "one1")
   (("1" (rewrite "left_coset_one"))
    ("2"
     (replaces -1)
     (lemma "HK_subgroup[T1, *, one1]")
     (inst -1 "G!1" "H!1" "N!1")
     (("1"
       (assert)
       (lemma "HK_subgroup_permute[T1, *, one1]")
       (inst?)
       (("1"
         (assert)
         (replaces -1)
         (expand* "subgroup?" "group?" "monoid?" "monad?" "member"))
        ("2" (typepred "N!1") (expand "normal_subgroup?") (assert))))
      ("2" (typepred "N!1") (expand "normal_subgroup?") (assert))))))


proof_type: t_proof
decl_type: tcc
library: groups
theory: isomorphism_theorems
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (rewrite "left_cosets_group[T1, *, one1]")
   (("1"
     (hide 2)
     (replaces -1)
     (lemma "HK_subgroup[T1, *, one1]")
     (inst -1 "G!1" "H!1" "N!1")
     (("1"
       (assert)
       (lemma "HK_subgroup_permute[T1, *, one1]")
       (inst?)
       (("1"
         (assert)
         (replaces -1)
         (lemma "H_K_are_subgroups[T1, *, one1]")
         (inst?)
         (("1"
           (prop)
           (("1"
             (hide -2)
             (lemma "normal_subgroup_tran[T1, *, one1]")
             (("1"
               (inst -1 "G!1" "prod[T1, *, one1](N!1, H!1)" "N!1")
               (assert))
              ("2" (rewrite "G_TCC1"))))
            ("2" (expand "subgroup?") (assert))))
          ("2"
           (hide 2)
           (typepred "N!1")
           (expand "normal_subgroup?")
           (assert))))
        ("2"
         (hide 2)
         (typepred "N!1")
         (expand "normal_subgroup?")
         (assert))))
      ("2"
       (hide 2)
       (typepred "N!1")
       (expand "normal_subgroup?")
       (assert))))
    ("2"
     (hide 2)
     (replaces -1)
     (lemma "HK_subgroup[T1, *, one1]")
     (inst -1 "G!1" "H!1" "N!1")
     (("1"
       (assert)
       (lemma "HK_subgroup_permute[T1, *, one1]")
       (inst?)
       (("1"
         (assert)
         (replaces -1)
         (expand* "subgroup?" "group?" "monoid?" "monad?" "member" -1))
        ("2"
         (hide-all-but 1)
         (typepred "N!1")
         (expand "normal_subgroup?")
         (assert))))
      ("2"
       (hide 2)
       (typepred "N!1")
       (expand "normal_subgroup?")
       (assert))))))


proof_type: t_proof
decl_type: tcc
library: groups
theory: isomorphism_theorems
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (replaces -1)
   (lemma "subgroup_intersection[T1, *, one1]")
   (("1"
     (inst -1 "G!1" "N!1" "H!1")
     (assert)
     (expand "subgroup?")
     (hide (-1 2))
     (typepred "N!1")
     (expand "normal_subgroup?")
     (flatten)
     (hide -3)
     (expand "subgroup?")
     (propax))
    ("2" (rewrite "G_TCC1"))))


proof_type: t_proof
decl_type: tcc
library: groups
theory: isomorphism_theorems
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (replaces -3)
   (lemma "HK_subgroup[T1, *, one1]")
   (inst -1 "G!1" "H!1" "N!1")
   (("1"
     (assert)
     (lemma "HK_subgroup_permute[T1, *, one1]")
     (inst?)
     (("1" (assert) (expand "subgroup?") (propax))
      ("2"
       (hide-all-but 1)
       (typepred "N!1")
       (expand "normal_subgroup?")
       (assert))))
    ("2"
     (hide-all-but 1)
     (typepred "N!1")
     (expand "normal_subgroup?")
     (assert))))


proof_type: t_proof
decl_type: tcc
library: groups
theory: isomorphism_theorems
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (replaces -3)
   (hide -1)
   (lemma "HK_subgroup[T1, *, one1]")
   (inst -1 "G!1" "H!1" "N!1")
   (("1"
     (assert)
     (lemma "HK_subgroup_permute[T1, *, one1]")
     (inst?)
     (("1"
       (assert)
       (replaces -1)
       (expand "subgroup?" -1)
       (flatten)
       (lemma "H_K_are_subgroups[T1, *, one1]")
       (inst?)
       (("1"
         (assert)
         (prop)
         (hide -2)
         (lemma "normal_subgroup_tran[T1, *, one1]")
         (("1"
           (inst -1 "G!1" "prod[T1, *, one1](N!1, H!1)" "N!1")
           (assert))
          ("2" (rewrite "G_TCC1"))))
        ("2"
         (hide-all-but 1)
         (typepred "N!1")
         (expand "normal_subgroup?")
         (assert))))
      ("2"
       (hide-all-but 1)
       (typepred "N!1")
       (expand "normal_subgroup?")
       (assert))))
    ("2"
     (hide-all-but 1)
     (typepred "N!1")
     (expand "normal_subgroup?")
     (assert))))


proof_type: t_proof
decl_type: tcc
library: groups
theory: isomorphism_theorems
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (inst 1 "one1")
   (("1" (rewrite "left_coset_one"))
    ("2"
     (hide-all-but 1)
     (typepred "H!1")
     (expand* "group?" "monoid?" "monad?" "member")
     (assert))))


proof_type: t_proof
decl_type: tcc
library: groups
theory: isomorphism_theorems
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (inst 1 "one1")
   (("1" (rewrite "left_coset_one"))
    ("2"
     (lemma "HK_subgroup[T1, *, one1]")
     (inst -1 "G!1" "H!1" "N!1")
     (("1"
       (assert)
       (expand "subgroup?")
       (flatten)
       (lemma "HK_subgroup_permute[T1, *, one1]")
       (inst?)
       (("1" (assert) (expand* "group?" "monoid?" "monad?" "member"))
        ("2"
         (hide-all-but 1)
         (typepred "N!1")
         (expand "normal_subgroup?")
         (assert))))
      ("2"
       (hide-all-but 1)
       (typepred "N!1")
       (expand "normal_subgroup?")
       (assert))))))


proof_type: t_proof
decl_type: tcc
library: groups
theory: isomorphism_theorems
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (rewrite "left_cosets_group[T1, *, one1]")
   (("1"
     (hide (-1 2))
     (replaces -2)
     (lemma "HK_subgroup[T1, *, one1]")
     (inst -1 "G!1" "H!1" "N!1")
     (("1"
       (assert)
       (lemma "HK_subgroup_permute[T1, *, one1]")
       (inst?)
       (("1"
         (assert)
         (replaces -1)
         (lemma "H_K_are_subgroups[T1, *, one1]")
         (inst?)
         (("1"
           (expand "subgroup?" -2)
           (flatten)
           (assert)
           (flatten)
           (hide -2)
           (lemma "normal_subgroup_tran[T1, *, one1]")
           (("1"
             (inst -1 "G!1" "prod[T1, *, one1](N!1, H!1)" "N!1")
             (assert))
            ("2" (rewrite "G_TCC1"))))
          ("2"
           (hide-all-but 1)
           (typepred "N!1")
           (expand "normal_subgroup?")
           (assert))))
        ("2"
         (hide-all-but 1)
         (typepred "N!1")
         (expand "normal_subgroup?")
         (assert))))
      ("2"
       (hide-all-but 1)
       (typepred "N!1")
       (expand "normal_subgroup?")
       (assert))))
    ("2"
     (hide (-1 2))
     (replaces -2)
     (lemma "HK_subgroup[T1, *, one1]")
     (inst -1 "G!1" "H!1" "N!1")
     (("1"
       (assert)
       (lemma "HK_subgroup_permute[T1, *, one1]")
       (inst?)
       (("1" (assert) (replaces -1) (expand "subgroup?") (propax))
        ("2"
         (hide-all-but 1)
         (typepred "N!1")
         (expand "normal_subgroup?")
         (assert))))
      ("2"
       (hide-all-but 1)
       (typepred "N!1")
       (expand "normal_subgroup?")
       (assert))))))


proof_type: t_proof
decl_type: tcc
library: groups
theory: isomorphism_theorems
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (inst 1 "one1")
   (("1" (rewrite "left_coset_one"))
    ("2"
     (hide-all-but 1)
     (typepred "G!1")
     (expand* "group?" "monoid?" "monad?" "member")
     (assert))))


proof_type: t_proof
decl_type: tcc
library: groups
theory: isomorphism_theorems
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (prop)
   (("1"
     (skosimp)
     (prop)
     (("1"
       (skosimp)
       (inst 1 "a!1")
       (hide -)
       (typepred "a!1" "M!1")
       (expand* "normal_subgroup?" "subgroup?")
       (flatten)
       (expand* "subset?" "member")
       (inst?)
       (assert))
      ("2" (hide -1) (inst 1 "lc_gen(M!1, N!1, x!1)") (assert))))
    ("2"
     (lemma "quotient_subgroup")
     (inst?)
     (assert)
     (expand "subgroup?")
     (propax))))


proof_type: t_proof
decl_type: tcc
library: groups
theory: isomorphism_theorems
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (prop)
   (("1"
     (skosimp)
     (prop)
     (("1"
       (hide (-2 -3 -4))
       (skosimp)
       (inst 1 "a!1")
       (hide -)
       (typepred "a!1" "M!1")
       (expand* "normal_subgroup?" "subgroup?")
       (flatten)
       (expand* "subset?" "member")
       (inst?)
       (assert))
      ("2" (hide (-1 -3)) (inst 1 "lc_gen(M!1, N!1, x!1)") (assert))))
    ("2"
     (hide -1)
     (inst 1 "N!1")
     (("1"
       (decompose-equality 1)
       (("1"
         (iff)
         (prop)
         (("1"
           (expand "*" 1)
           (inst 1 "x!1")
           (lemma "N_is_identity[T1, *, one1]")
           (inst -1 "G!1" "N!1" "x!1")
           (assert))
          ("2" (grind))))
        ("2"
         (skosimp)
         (prop)
         (("1"
           (hide -1)
           (expand "*" -1)
           (skosimp)
           (typepred "h!1")
           (skosimp)
           (lemma "N_is_identity[T1, *, one1]")
           (inst -1 "G!1" "N!1" "h!1")
           (flatten)
           (replaces -1)
           (replaces -2)
           (replaces -3)
           (inst 1 "a!1"))
          ("2"
           (hide-all-but (-1 1))
           (skosimp)
           (inst 1 "a!1")
           (typepred "a!1" "M!1")
           (expand* "normal_subgroup?" "subgroup?" "subset?" "member")
           (flatten)
           (inst?)
           (assert))))
        ("3" (rewrite "left_cosets_group[T1, *, one1]"))))
      ("2"
       (prop)
       (("1"
         (inst 1 "one1")
         (("1" (rewrite "left_coset_one[T1,*,one1]"))
          ("2"
           (typepred "G!1")
           (expand* "group?" "monoid?" "monad?" "member")
           (assert))))
        ("2"
         (expand "/")
         (expand "restrict")
         (expand "left_cosets")
         (inst 1 "one1")
         (("1" (rewrite "left_coset_one[T1,*,one1]"))
          ("2"
           (typepred "G!1")
           (expand* "group?" "monoid?" "monad?" "member")
           (assert))))))))))


proof_type: t_proof
decl_type: tcc
library: groups
theory: isomorphism_theorems
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (inst 1 "one1")
   (("1" (rewrite "left_coset_one[T1,*,one1]"))
    ("2"
     (typepred "G!1")
     (expand* "group?" "monoid?" "monad?" "member")
     (assert))))


proof_type: t_proof
decl_type: tcc
library: groups
theory: isomorphism_theorems
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma
    "left_cosets_group[left_cosets[T1, *, one1](G!1, N!1), mult[T1, *, one1](G!1, N!1), N!1]")
   (("1" (inst -1 "G!1 / N!1" "M!1 / N!1"))
    ("2"
     (hide 2)
     (inst 1 "N!1")
     (inst 1 "one1")
     (("1" (rewrite "left_coset_one[T1,*,one1]"))
      ("2"
       (typepred "G!1")
       (expand* "group?" "monoid?" "monad?" "member")
       (assert))))
    ("3" (hide 2) (rewrite "left_cosets_group[T1, *, one1]"))
    ("4"
     (hide 2)
     (inst 1 "one1")
     (("1" (rewrite "left_coset_one[T1,*,one1]"))
      ("2"
       (typepred "G!1")
       (expand* "group?" "monoid?" "monad?" "member")
       (assert))))))


proof_type: f_proof
decl_type: formula
library: groups
theory: sylow_theorems
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "natural_homo[T, *, one,T, *, one]")
   (("1"
     (inst -1 "G!1" "N!1")
     (skosimp)
     (lemma
      "correspondence_theorem[T,*,one,left_cosets(G!1,N!1),mult(G!1,N!1),N!1]")
     (("1"
       (inst?)
       (("1"
         (assert)
         (skosimp)
         (expand "bijective?")
         (flatten)
         (hide -7)
         (expand "surjective?")
         (inst -3 "S!1")
         (skosimp)
         (inst 1 "x!1")
         (prop)
         (("1"
           (typepred "x!1")
           (hide-all-but (-1 -3 -10 1))
           (replace -3 -2 rl)
           (hide -3)
           (expand "subgroup?")
           (propax))
          ("2"
           (hide (-2 -4))
           (replaces -1)
           (replace -1 1 rl)
           (hide -1)
           (decompose-equality 1)
           (("1"
             (iff)
             (prop)
             (("1"
               (expand "extend")
               (prop)
               (hide -1)
               (expand "image")
               (skosimp)
               (decompose-equality -2)
               (inst -1 "x!3")
               (expand "/")
               (expand* "restrict" "left_cosets")
               (inst?)
               (("1" (assert))
                ("2" (typepred "x!3") (expand "restrict") (propax))))
              ("2"
               (expand "extend")
               (prop)
               (("1"
                 (expand "image")
                 (hide -1)
                 (expand* "/" "restrict" "left_cosets")
                 (skosimp)
                 (inst 1 "a!1")
                 (("1" (decompose-equality -2) (inst?) (assert))
                  ("2"
                   (typepred "a!1" "x!1")
                   (hide (-2 -4 -5 -6))
                   (expand* "subgroup?" "subset?" "member")
                   (inst?)
                   (expand "restrict")
                   (assert))))
                ("2"
                 (hide -2)
                 (expand* "/" "restrict" "left_cosets")
                 (skosimp)
                 (typepred "a!1" "x!1")
                 (hide (-2 -4))
                 (expand* "subgroup?" "subset?" "member")
                 (inst?)
                 (inst?)
                 (assert))))))
            ("2" (hide (-1 2)) (skosimp) (rewrite "T_is_group"))
            ("3" (hide-all-but 1) (rewrite "T_is_group"))))))
        ("2" (hide-all-but 1) (rewrite "T_is_group"))))
      ("2" (hide-all-but 1) (rewrite "left_cosets_group[T, *, one]"))
      ("3"
       (hide-all-but 1)
       (inst 1 "one")
       (("1" (rewrite "left_coset_one[T, *, one]"))
        ("2" (rewrite "one_in"))))))
    ("2" (hide-all-but 1) (rewrite "T_is_group"))))


proof_type: f_proof
decl_type: formula
library: groups
theory: sylow_theorems
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (induct "i")
   (("1" (hide 2) (typepred "i!1") (propax)) ("2" (assert))
    ("3"
     (skosimp*)
     (case-replace "j!1 = 0" :hide? T)
     (("1"
       (hide (-1 -2 -5 -6))
       (lemma "cauchy_cor[T,*,one]")
       (("1"
         (inst -1 "G!1" "p!1")
         (prop)
         (("1" (rewrite "expt_x1"))
          ("2"
           (skosimp*)
           (assert)
           (rewrite "expt_x1")
           (rewrite "expt_x0")
           (inst 1 "H!1")
           (assert)
           (lemma "one_is_subgroup")
           (inst -1 "H!1")
           (lemma "order_is_1")
           (inst?)
           (assert)
           (expand "one_group")
           (replace -1 -2 rl)
           (expand "normal_subgroup?")
           (assert)
           (skosimp*)
           (expand* "subset?" "member")
           (skosimp)
           (expand "*")
           (skosimp)
           (typepred "h!1")
           (skosimp)
           (typepred "h!2")
           (replaces -3)
           (expand "singleton")
           (replaces -1)
           (replaces -1)
           (rewrite "one_right")
           (rewrite "inv_left"))
          ("3"
           (hide 1)
           (lemma "divides_power")
           (inst?)
           (replaces -3)
           (hide -2)
           (rewrite "divides_prod1"))
          ("4"
           (hide 1)
           (lemma "divides_power")
           (inst?)
           (replaces -3)
           (hide -2)
           (rewrite "divides_prod1"))))
        ("2" (hide (- 2)) (rewrite "T_is_group"))))
      ("2"
       (assert)
       (prop)
       (("1"
         (inst -1 "m!1" "n!1" "p!1" "G!1")
         (assert)
         (flatten)
         (hide -2)
         (skosimp)
         (lemma "normalizer_index[T,*,one]")
         (inst -1 "p!1" "G!1" "H!1")
         (prop)
         (("1"
           (lemma "card_factor[T,*,one]")
           (("1"
             (inst?)
             (("1"
               (prop)
               (("1"
                 (rewrite
                  "card_extend[set[T], left_cosets[T, *, one](normalizer(G!1, H!1), H!1)]")
                 (("1"
                   (replace -1 -2 rl)
                   (hide -1)
                   (lemma
                    "cauchy_cor[left_cosets(normalizer(G!1, H!1),H!1),mult(normalizer(G!1, H!1),H!1),H!1]")
                   (("1"
                     (inst -1 "normalizer(G!1, H!1) / H!1" "p!1")
                     (("1"
                       (prop)
                       (("1"
                         (skosimp)
                         (lemma "subgroup_is_factor")
                         (inst -1 "normalizer(G!1, H!1)" "H!1" "H!2")
                         (("1"
                           (skosimp)
                           (hide -4)
                           (replaces -2)
                           (lemma "Lagrange_index[T,*,one]")
                           (inst -1 "H!3" "H!1")
                           (("1"
                             (assert)
                             (lemma "card_factor[T,*,one]")
                             (inst -1 "H!3" "H!1")
                             (prop)
                             (("1"
                               (rewrite
                                "card_extend[set[T], left_cosets[T, *, one](H!3, H!1)]")
                               (("1"
                                 (replace -1 -2 rl)
                                 (hide -1)
                                 (replace -4 -1)
                                 (case-replace
                                  "card(H!3 / H!1) = p!1"
                                  :hide?
                                  T)
                                 (("1"
                                   (inst 1 "H!3")
                                   (("1"
                                     (hide-all-but (-1 1 2))
                                     (rewrite "expt_plus")
                                     (rewrite "expt_x1"))
                                    ("2"
                                     (hide-all-but 1)
                                     (typepred "H!3")
                                     (hide -1)
                                     (lemma
                                      "normalizer_is_subgroup[T, *, one]")
                                     (inst?)
                                     (assert)
                                     (lemma
                                      "subgroup_transitive[T, *, one]")
                                     (inst
                                      -1
                                      "G!1"
                                      "normalizer(G!1, H!1)"
                                      "H!3")
                                     (("1" (assert))
                                      ("2"
                                       (hide-all-but 1)
                                       (rewrite "T_is_group"))))))
                                  ("2"
                                   (hide-all-but (-3 1))
                                   (expand "order")
                                   (rewrite
                                    "card_def[left_cosets(normalizer(G!1, H!1), H!1)]")
                                   (rewrite
                                    "card_def[left_cosets[T, *, one](H!3, H!1)]")
                                   (replace -1 1 rl)
                                   (hide -1)
                                   (expand "Card")
                                   (expand "inj_set")
                                   (propax))))
                                ("2"
                                 (hide-all-but 1)
                                 (expand "/")
                                 (lemma
                                  "restrict_finite[setof[T], left_cosets[T, *, one](H!3, H!1)]")
                                 (inst?)
                                 (("1"
                                   (assert)
                                   (hide 2)
                                   (lemma
                                    "left_cosets_partition[T,*,one]")
                                   (inst?)
                                   (("1"
                                     (expand "finite_partition?")
                                     (propax))
                                    ("2"
                                     (typepred "H!3")
                                     (hide (-1 2))
                                     (lemma
                                      "normalizer_is_subgroup[T, *, one]")
                                     (inst?)
                                     (assert)
                                     (typepred "G!1")
                                     (lemma "finite_subgroups")
                                     (inst?)
                                     (("1"
                                       (assert)
                                       (lemma "finite_subgroups")
                                       (inst
                                        -1
                                        "H!3"
                                        "normalizer(G!1, H!1)")
                                       (("1" (assert))
                                        ("2"
                                         (hide-all-but 1)
                                         (rewrite "T_is_group"))))
                                      ("2"
                                       (hide-all-but 1)
                                       (rewrite "T_is_group"))))))
                                  ("2"
                                   (hide-all-but 1)
                                   (rewrite "T_is_group"))))))
                              ("2"
                               (hide-all-but 1)
                               (typepred "H!3")
                               (hide -1)
                               (lemma
                                "normalizer_is_subgroup[T, *, one]")
                               (inst?)
                               (assert)
                               (typepred "G!1")
                               (lemma "finite_subgroups")
                               (inst?)
                               (("1"
                                 (assert)
                                 (lemma "finite_subgroups")
                                 (inst -1 "H!3" "normalizer(G!1, H!1)")
                                 (("1" (assert))
                                  ("2"
                                   (hide-all-but 1)
                                   (rewrite "T_is_group"))))
                                ("2"
                                 (hide-all-but 1)
                                 (rewrite "T_is_group"))))
                              ("3"
                               (hide-all-but (-2 1))
                               (typepred "H!3" "H!1")
                               (hide (-1 -3))
                               (lemma "normal_in_normalizer[T, *, one]")
                               (inst?)
                               (assert)
                               (lemma "normal_subgroup_tran[T, *, one]")
                               (inst -1 "normalizer(G!1, H!1)" "H!3"
                                "H!1")
                               (("1" (assert))
                                ("2"
                                 (hide-all-but 1)
                                 (rewrite "T_is_group"))))))
                            ("2"
                             (hide-all-but 1)
                             (typepred "H!1" "G!1")
                             (hide -1)
                             (lemma "finite_subgroups")
                             (inst?)
                             (assert))
                            ("3"
                             (hide-all-but 1)
                             (typepred "H!3")
                             (hide -1)
                             (lemma "normalizer_is_subgroup[T, *, one]")
                             (inst?)
                             (assert)
                             (typepred "G!1")
                             (lemma "finite_subgroups")
                             (inst?)
                             (("1"
                               (assert)
                               (lemma "finite_subgroups")
                               (inst -1 "H!3" "normalizer(G!1, H!1)")
                               (("1" (assert))
                                ("2"
                                 (hide-all-but 1)
                                 (rewrite "T_is_group"))))
                              ("2"
                               (hide-all-but 1)
                               (rewrite "T_is_group"))))))
                          ("2" (hide-all-but 1) (rewrite "T_is_group"))))
                        ("2"
                         (hide-all-but (-1 1))
                         (expand "order")
                         (propax))))
                      ("2"
                       (hide-all-but 1)
                       (expand "/")
                       (expand "finite_group?")
                       (prop)
                       (("1"
                         (lemma "divide_TCC5[T, *, one]")
                         (inst?)
                         (("1"
                           (hide 2)
                           (lemma "normal_in_normalizer[T, *, one]")
                           (inst?)
                           (assert))
                          ("2" (hide 2) (rewrite "T_is_group"))))
                        ("2"
                         (lemma
                          "restrict_finite[setof[T],left_cosets[T, *, one](normalizer[T, *, one](G!1, H!1), H!1)]")
                         (inst?)
                         (("1"
                           (assert)
                           (hide 2)
                           (lemma "left_cosets_partition[T,*,one]")
                           (inst?)
                           (("1" (expand "finite_partition?") (propax))
                            ("2"
                             (hide 2)
                             (lemma "normalizer_is_subgroup[T, *, one]")
                             (inst?)
                             (assert)
                             (typepred "G!1")
                             (lemma "finite_subgroups")
                             (inst?)
                             (("1" (assert))
                              ("2" (hide (- 2)) (rewrite "T_is_group"))))
                            ("3" (hide 2) (rewrite "T_is_group"))))
                          ("2" (hide 2) (rewrite "T_is_group"))))))
                      ("3" (hide-all-but 1) (rewrite "T_is_group"))))
                    ("2"
                     (hide-all-but 1)
                     (lemma "left_cosets_group[T, *, one]")
                     (inst?)
                     (("1"
                       (hide 2)
                       (lemma "normal_in_normalizer[T, *, one]")
                       (inst?)
                       (assert))
                      ("2"
                       (hide 2)
                       (lemma "normalizer_is_subgroup[T, *, one]")
                       (inst?)
                       (assert)
                       (lemma "subgroup_is_group[T, *, one]")
                       (inst?)
                       (("1" (assert))
                        ("2" (hide (- 2)) (rewrite "T_is_group"))))
                      ("3" (hide 2) (rewrite "T_is_group"))))
                    ("3"
                     (hide-all-but 1)
                     (inst 1 "one")
                     (("1" (rewrite "left_coset_one"))
                      ("2"
                       (expand "normalizer")
                       (expand "extend")
                       (prop)
                       (("1"
                         (rewrite "inv_one")
                         (rewrite "left_coset_one")
                         (rewrite "right_coset_one"))
                        ("2" (rewrite "one_in"))))))))
                  ("2"
                   (hide-all-but 1)
                   (expand "/")
                   (lemma
                    "restrict_finite[setof[T],left_cosets[T, *, one](normalizer[T, *, one](G!1, H!1), H!1)]")
                   (inst?)
                   (("1"
                     (assert)
                     (hide 2)
                     (lemma "left_cosets_partition[T,*,one]")
                     (inst?)
                     (("1" (expand "finite_partition?") (propax))
                      ("2"
                       (hide 2)
                       (lemma "normalizer_is_subgroup[T, *, one]")
                       (inst?)
                       (assert)
                       (typepred "G!1")
                       (lemma "finite_subgroups")
                       (inst?)
                       (("1" (assert))
                        ("2" (hide (- 2)) (rewrite "T_is_group"))))
                      ("3" (hide 2) (rewrite "T_is_group"))))
                    ("2" (hide 2) (rewrite "T_is_group"))))))
                ("2"
                 (hide-all-but 1)
                 (lemma "normalizer_is_subgroup[T, *, one]")
                 (inst?)
                 (assert)
                 (typepred "G!1")
                 (lemma "finite_subgroups")
                 (inst?)
                 (("1" (assert))
                  ("2" (hide-all-but 1) (rewrite "T_is_group"))))
                ("3"
                 (hide-all-but 1)
                 (lemma "normal_in_normalizer[T, *, one]")
                 (inst?)
                 (assert))))
              ("2"
               (hide-all-but 1)
               (lemma "normalizer_is_subgroup[T, *, one]")
               (inst?)
               (assert)
               (lemma "subgroup_is_group[T, *, one]")
               (inst?)
               (("1" (assert))
                ("2" (hide (- 2)) (rewrite "T_is_group"))))
              ("3" (hide-all-but 1) (rewrite "T_is_group"))))
            ("2" (hide-all-but 1) (rewrite "T_is_group"))))
          ("2"
           (hide-all-but (-1 -3 1))
           (lemma "p_group_iff_power[T, *, one]")
           (inst?)
           (assert)
           (inst?))
          ("3"
           (hide-all-but (-1 -4 -6 1))
           (lemma "Lagrange_index[T,*,one]")
           (("1"
             (inst?)
             (("1"
               (assert)
               (replaces -1)
               (replaces -1)
               (expand "divides")
               (lemma "div_cancel4")
               (inst -1 "p!1 ^ j!1" "index(G!1, H!1)" "p!1 ^ n!1 * m!1")
               (("1"
                 (prop)
                 (hide (-2 -3))
                 (rewrite "times_div2" :dir rl)
                 (rewrite "exponentiation.expt_div")
                 (lemma "expt_plus")
                 (inst -1 "1" "n!1 - j!1 - 1" "p!1")
                 (assert)
                 (rewrite "expt_x1")
                 (replaces -1)
                 (inst 1 "p!1 ^ (-1 - j!1 + n!1) * m!1")
                 (("1" (assert)) ("2" (hide -1) (grind))))
                ("2" (hide-all-but 1) (rewrite "T_is_group"))))
              ("2"
               (hide-all-but 1)
               (typepred "H!1")
               (hide -1)
               (typepred "G!1")
               (lemma "finite_subgroups")
               (inst?)
               (assert))))
            ("2" (hide-all-but 1) (rewrite "T_is_group"))))))
        ("2"
         (hide -1)
         (skosimp)
         (lemma "normalizer_index[T,*,one]")
         (inst -1 "p!1" "G!1" "S!1")
         (prop)
         (("1"
           (lemma "card_factor[T,*,one]")
           (("1"
             (inst?)
             (("1"
               (prop)
               (("1"
                 (rewrite
                  "card_extend[set[T], left_cosets[T, *, one](normalizer(G!1, S!1), S!1)]")
                 (("1"
                   (replace -1 -2 rl)
                   (hide -1)
                   (lemma
                    "cauchy_cor[left_cosets(normalizer(G!1, S!1),S!1),mult(normalizer(G!1, S!1),S!1),S!1]")
                   (("1"
                     (inst -1 "normalizer(G!1, S!1) / S!1" "p!1")
                     (("1"
                       (prop)
                       (("1"
                         (skosimp)
                         (lemma "subgroup_is_factor")
                         (inst -1 "normalizer(G!1, S!1)" "S!1" "H!1")
                         (("1"
                           (skosimp)
                           (hide -4)
                           (replaces -2)
                           (lemma "Lagrange_index[T,*,one]")
                           (inst -1 "H!2" "S!1")
                           (("1"
                             (assert)
                             (lemma "card_factor[T,*,one]")
                             (inst -1 "H!2" "S!1")
                             (prop)
                             (("1"
                               (rewrite
                                "card_extend[set[T], left_cosets[T, *, one](H!2, S!1)]")
                               (("1"
                                 (replace -1 -2 rl)
                                 (hide -1)
                                 (replace -4 -1)
                                 (case-replace
                                  "card(H!2 / S!1) = p!1"
                                  :hide?
                                  T)
                                 (("1"
                                   (inst 1 "H!2")
                                   (("1"
                                     (hide-all-but (-1 1 2))
                                     (rewrite "expt_plus")
                                     (rewrite "expt_x1")
                                     (assert)
                                     (hide (- 2))
                                     (typepred "H!2")
                                     (hide -1)
                                     (lemma
                                      "normal_in_normalizer[T,*,one]")
                                     (inst?)
                                     (assert)
                                     (lemma
                                      "normal_subgroup_tran[T, *, one]")
                                     (inst
                                      -1
                                      "normalizer(G!1, S!1)"
                                      "H!2"
                                      "S!1")
                                     (("1" (assert))
                                      ("2"
                                       (hide (- 2))
                                       (rewrite "T_is_group"))))
                                    ("2"
                                     (hide-all-but 1)
                                     (typepred "H!2")
                                     (hide -1)
                                     (lemma
                                      "normalizer_is_subgroup[T, *, one]")
                                     (inst?)
                                     (assert)
                                     (lemma
                                      "subgroup_transitive[T, *, one]")
                                     (inst
                                      -1
                                      "G!1"
                                      "normalizer(G!1, S!1)"
                                      "H!2")
                                     (("1" (assert))
                                      ("2"
                                       (hide (- 2))
                                       (rewrite "T_is_group"))))))
                                  ("2"
                                   (hide-all-but (-3 1))
                                   (expand "order")
                                   (rewrite
                                    "card_def[left_cosets(normalizer(G!1, S!1), S!1)]")
                                   (rewrite
                                    "card_def[left_cosets[T, *, one](H!2, S!1)]")
                                   (replace -1 1 rl)
                                   (hide -1)
                                   (expand "Card")
                                   (expand "inj_set")
                                   (propax))))
                                ("2"
                                 (hide-all-but 1)
                                 (expand "/")
                                 (lemma
                                  "restrict_finite[setof[T], left_cosets[T, *, one](H!2, S!1)]")
                                 (inst?)
                                 (("1"
                                   (assert)
                                   (hide 2)
                                   (lemma
                                    "left_cosets_partition[T,*,one]")
                                   (inst?)
                                   (("1"
                                     (expand "finite_partition?")
                                     (propax))
                                    ("2"
                                     (typepred "H!2")
                                     (hide (-1 2))
                                     (lemma
                                      "normalizer_is_subgroup[T, *, one]")
                                     (inst?)
                                     (assert)
                                     (typepred "G!1")
                                     (lemma "finite_subgroups")
                                     (inst?)
                                     (("1"
                                       (assert)
                                       (lemma "finite_subgroups")
                                       (inst
                                        -1
                                        "H!2"
                                        "normalizer(G!1, S!1)")
                                       (("1" (assert))
                                        ("2"
                                         (hide-all-but 1)
                                         (rewrite "T_is_group"))))
                                      ("2"
                                       (hide-all-but 1)
                                       (rewrite "T_is_group"))))))
                                  ("2"
                                   (hide 2)
                                   (rewrite "T_is_group"))))))
                              ("2"
                               (hide-all-but 1)
                               (typepred "H!2")
                               (hide -1)
                               (lemma
                                "normalizer_is_subgroup[T, *, one]")
                               (inst?)
                               (assert)
                               (typepred "G!1")
                               (lemma "finite_subgroups")
                               (inst?)
                               (("1"
                                 (assert)
                                 (lemma "finite_subgroups")
                                 (inst -1 "H!2" "normalizer(G!1, S!1)")
                                 (("1" (assert))
                                  ("2"
                                   (hide-all-but 1)
                                   (rewrite "T_is_group"))))
                                ("2"
                                 (hide-all-but 1)
                                 (rewrite "T_is_group"))))
                              ("3"
                               (hide-all-but (-2 1))
                               (typepred "H!2" "S!1")
                               (hide (-1 -3))
                               (lemma "normal_in_normalizer[T, *, one]")
                               (inst?)
                               (assert)
                               (lemma "normal_subgroup_tran[T, *, one]")
                               (inst -1 "normalizer(G!1, S!1)" "H!2"
                                "S!1")
                               (("1" (assert))
                                ("2"
                                 (hide-all-but 1)
                                 (rewrite "T_is_group"))))))
                            ("2"
                             (hide-all-but 1)
                             (typepred "S!1" "G!1")
                             (hide -1)
                             (lemma "finite_subgroups")
                             (inst?)
                             (assert))
                            ("3"
                             (hide-all-but 1)
                             (typepred "H!2")
                             (hide -1)
                             (lemma "normalizer_is_subgroup[T, *, one]")
                             (inst?)
                             (assert)
                             (typepred "G!1")
                             (lemma "finite_subgroups")
                             (inst?)
                             (("1"
                               (assert)
                               (lemma "finite_subgroups")
                               (inst -1 "H!2" "normalizer(G!1, S!1)")
                               (("1" (assert))
                                ("2"
                                 (hide-all-but 1)
                                 (rewrite "T_is_group"))))
                              ("2"
                               (hide-all-but 1)
                               (rewrite "T_is_group"))))))
                          ("2" (hide-all-but 1) (rewrite "T_is_group"))))
                        ("2"
                         (hide-all-but (-1 1))
                         (expand "order")
                         (propax))))
                      ("2"
                       (hide-all-but 1)
                       (expand "/")
                       (expand "finite_group?")
                       (prop)
                       (("1"
                         (lemma "divide_TCC5[T, *, one]")
                         (inst?)
                         (("1"
                           (hide 2)
                           (lemma "normal_in_normalizer[T, *, one]")
                           (inst?)
                           (assert))
                          ("2" (hide 2) (rewrite "T_is_group"))))
                        ("2"
                         (lemma
                          "restrict_finite[setof[T],left_cosets[T, *, one](normalizer[T, *, one](G!1, S!1), S!1)]")
                         (inst?)
                         (("1"
                           (assert)
                           (hide 2)
                           (lemma "left_cosets_partition[T,*,one]")
                           (inst?)
                           (("1" (expand "finite_partition?") (propax))
                            ("2"
                             (hide 2)
                             (lemma "normalizer_is_subgroup[T, *, one]")
                             (inst?)
                             (assert)
                             (typepred "G!1")
                             (lemma "finite_subgroups")
                             (inst?)
                             (("1" (assert))
                              ("2" (hide (- 2)) (rewrite "T_is_group"))))
                            ("3" (hide 2) (rewrite "T_is_group"))))
                          ("2" (hide 2) (rewrite "T_is_group"))))))
                      ("3" (hide-all-but 1) (rewrite "T_is_group"))))
                    ("2"
                     (hide-all-but 1)
                     (lemma "left_cosets_group[T, *, one]")
                     (inst?)
                     (("1"
                       (hide 2)
                       (lemma "normal_in_normalizer[T, *, one]")
                       (inst?)
                       (assert))
                      ("2"
                       (hide 2)
                       (lemma "normalizer_is_subgroup[T, *, one]")
                       (inst?)
                       (assert)
                       (lemma "subgroup_is_group[T, *, one]")
                       (inst?)
                       (("1" (assert))
                        ("2" (hide (- 2)) (rewrite "T_is_group"))))
                      ("3" (hide 2) (rewrite "T_is_group"))))
                    ("3"
                     (hide-all-but 1)
                     (inst 1 "one")
                     (("1" (rewrite "left_coset_one"))
                      ("2"
                       (expand "normalizer")
                       (expand "extend")
                       (prop)
                       (("1"
                         (rewrite "inv_one")
                         (rewrite "left_coset_one")
                         (rewrite "right_coset_one"))
                        ("2" (rewrite "one_in"))))))))
                  ("2"
                   (hide-all-but 1)
                   (expand "/")
                   (lemma
                    "restrict_finite[setof[T],left_cosets[T, *, one](normalizer[T, *, one](G!1, S!1), S!1)]")
                   (inst?)
                   (("1"
                     (assert)
                     (hide 2)
                     (lemma "left_cosets_partition[T,*,one]")
                     (inst?)
                     (("1" (expand "finite_partition?") (propax))
                      ("2"
                       (hide 2)
                       (lemma "normalizer_is_subgroup[T, *, one]")
                       (inst?)
                       (assert)
                       (typepred "G!1")
                       (lemma "finite_subgroups")
                       (inst?)
                       (("1" (assert))
                        ("2" (hide (- 2)) (rewrite "T_is_group"))))
                      ("3" (hide 2) (rewrite "T_is_group"))))
                    ("2" (hide 2) (rewrite "T_is_group"))))))
                ("2"
                 (hide-all-but 1)
                 (lemma "normalizer_is_subgroup[T, *, one]")
                 (inst?)
                 (assert)
                 (typepred "G!1")
                 (lemma "finite_subgroups")
                 (inst?)
                 (("1" (assert))
                  ("2" (hide-all-but 1) (rewrite "T_is_group"))))
                ("3"
                 (hide-all-but 1)
                 (lemma "normal_in_normalizer[T, *, one]")
                 (inst?)
                 (assert))))
              ("2"
               (hide-all-but 1)
               (lemma "normalizer_is_subgroup[T, *, one]")
               (inst?)
               (assert)
               (lemma "subgroup_is_group[T, *, one]")
               (inst?)
               (("1" (assert))
                ("2" (hide (- 2)) (rewrite "T_is_group"))))
              ("3" (hide-all-but 1) (rewrite "T_is_group"))))
            ("2" (hide-all-but 1) (rewrite "T_is_group"))))
          ("2"
           (hide-all-but (-1 -3 1))
           (lemma "p_group_iff_power[T, *, one]")
           (inst?)
           (assert)
           (inst?))
          ("3"
           (hide-all-but (-1 -4 -6 1))
           (lemma "Lagrange_index[T,*,one]")
           (("1"
             (inst?)
             (("1"
               (assert)
               (replaces -1)
               (replaces -1)
               (expand "divides")
               (lemma "div_cancel4")
               (inst -1 "p!1 ^ j!1" "index(G!1, S!1)" "p!1 ^ n!1 * m!1")
               (("1"
                 (prop)
                 (hide (-2 -3))
                 (rewrite "times_div2" :dir rl)
                 (rewrite "exponentiation.expt_div")
                 (lemma "expt_plus")
                 (inst -1 "1" "n!1 - j!1 - 1" "p!1")
                 (assert)
                 (rewrite "expt_x1")
                 (replaces -1)
                 (inst 1 "p!1 ^ (-1 - j!1 + n!1) * m!1")
                 (("1" (assert)) ("2" (hide -1) (grind))))
                ("2" (hide-all-but 1) (rewrite "T_is_group"))))
              ("2"
               (hide-all-but 1)
               (typepred "S!1")
               (hide -1)
               (typepred "G!1")
               (lemma "finite_subgroups")
               (inst?)
               (assert))))
            ("2" (hide-all-but 1) (rewrite "T_is_group"))))))))))
    ("4"
     (hide 2)
     (skosimp*)
     (hide-all-but 1)
     (typepred "K!1")
     (typepred "G!1")
     (lemma "finite_subgroups")
     (inst?)
     (assert)
     (expand* "group?" "monoid?" "finite_monad?" "finite_group?")
     (flatten)
     (assert))
    ("5"
     (hide 2)
     (skosimp*)
     (hide-all-but 1)
     (typepred "S!1")
     (typepred "G!1")
     (lemma "finite_subgroups")
     (inst?)
     (assert)
     (expand* "group?" "monoid?" "finite_monad?" "finite_group?")
     (flatten)
     (assert))
    ("6"
     (hide 2)
     (skosimp*)
     (typepred "H!1")
     (typepred "G!1")
     (lemma "finite_subgroups")
     (inst?)
     (assert)
     (expand* "group?" "monoid?" "finite_monad?" "finite_group?")
     (flatten)
     (assert))))


proof_type: f_proof
decl_type: formula
library: groups
theory: sylow_theorems
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (induct "i")
   (("1" (hide 2) (typepred "i!1") (propax)) ("2" (assert))
    ("3"
     (skosimp*)
     (case-replace "j!1 = 0" :hide? T)
     (("1"
       (hide (-1 -2 -5))
       (assert)
       (lemma "First_Sylow_Theorem")
       (inst?)
       (inst -1 "n!1")
       (assert)
       (flatten)
       (hide -1)
       (inst -1 "H!1")
       (assert)
       (skosimp)
       (hide (-3 -4 -5 -6))
       (expand "normal_subgroup?")
       (flatten)
       (hide -3)
       (inst 1 "K!1")
       (assert))
      ("2"
       (assert)
       (lemma "First_Sylow_Theorem")
       (inst?)
       (inst -1 "n!1 - j!1")
       (assert)
       (flatten)
       (hide -1)
       (inst -1 "H!1")
       (assert)
       (skosimp)
       (inst -3 "m!1" "n!1" "p!1" "G!1" "K!1")
       (assert)
       (skosimp)
       (hide-all-but (-2 -3 -4 2))
       (expand "normal_subgroup?")
       (flatten)
       (hide -2)
       (inst 1 "K!2")
       (lemma "subgroup_transitive[T,*,one]")
       (("1" (inst -1 "K!2" "K!1" "H!1") (assert))
        ("2" (hide (- 2)) (rewrite "T_is_group"))))))
    ("4"
     (hide 2)
     (skosimp*)
     (lemma "p_group_is_subgroup_TCC3")
     (inst -1 "i!2" "m!1" "n!1" "p!1" "G!1" "H!1")
     (assert)
     (inst?))
    ("5"
     (hide 2)
     (skosimp*)
     (lemma "First_Sylow_Theorem_TCC3")
     (inst -1 "i!2" "m!1" "n!1" "p!1" "G!1")
     (assert)
     (inst?))))


proof_type: f_proof
decl_type: formula
library: groups
theory: sylow_theorems
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (prop)
   (("1"
     (expand "p_subgroup_sylow?")
     (flatten)
     (lemma "p_group_iff_power[T, *, one]")
     (inst?)
     (assert)
     (skosimp)
     (case "m!2 > n!1")
     (("1"
       (hide (-3 -4))
       (lemma "gcd_1_nd")
       (inst -1 "m!1" "p!1")
       (rewrite "gcd_sym")
       (assert)
       (hide (-3 -5 2))
       (lemma "Lagrange")
       (inst -1 "G!1" "P!1")
       (("1"
         (assert)
         (replaces -3)
         (replaces -3)
         (expand "divides")
         (skosimp)
         (lemma "both_sides_div1")
         (inst -1 "p!1 ^ n!1" "p!1 ^ n!1 * m!1" "p!1 ^ m!2 * x!1")
         (prop)
         (hide (-2 -3))
         (rewrite "times_div1" :dir rl)
         (rewrite "div_cancel1")
         (rewrite "times_div2" :dir rl)
         (rewrite "exponentiation.expt_div")
         (lemma "expt_plus")
         (inst -1 "1" "m!2 - n!1 - 1" "p!1")
         (rewrite "expt_x1")
         (assert)
         (replaces -1)
         (inst 1 "p!1 ^ (-1 - n!1 + m!2) * x!1")
         (("1" (assert)) ("2" (grind))))
        ("2"
         (hide (- 2 3))
         (lemma "finite_subgroups")
         (inst -1 "P!1" "G!1")
         (assert))))
      ("2"
       (lemma "p_group_is_subgroup")
       (inst -1 "n!1 - m!2" "m!1" "n!1" "p!1" "G!1" "P!1")
       (("1"
         (assert)
         (skosimp)
         (lemma "p_group_iff_power[T, *, one]")
         (inst -1 "p!1" "K!1")
         (("1"
           (assert)
           (prop)
           (("1" (hide -2) (inst -6 "K!1") (assert))
            ("2" (hide-all-but (-1 1)) (inst?))))
          ("2"
           (hide (- 2 3))
           (lemma "finite_subgroups")
           (inst -1 "K!1" "G!1")
           (assert))))
        ("2"
         (case-replace "m!2 = n!1" :hide? T)
         (hide (- 4))
         (grind))))))
    ("2"
     (expand "p_subgroup_sylow?")
     (prop)
     (("1"
       (lemma "p_group_iff_power[T, *, one]")
       (inst -1 "p!1" "P!1")
       (assert)
       (inst?))
      ("2"
       (skosimp)
       (lemma "p_group_iff_power[T, *, one]")
       (inst?)
       (assert)
       (skosimp)
       (case "m!2 > n!1")
       (("1"
         (hide (-3 -4 -5))
         (lemma "gcd_1_nd")
         (inst -1 "m!1" "p!1")
         (rewrite "gcd_sym")
         (assert)
         (hide (-3 -5 2))
         (lemma "Lagrange")
         (inst -1 "G!1" "H!1")
         (("1"
           (assert)
           (replaces -3)
           (replaces -3)
           (expand "divides")
           (skosimp)
           (lemma "both_sides_div1")
           (inst -1 "p!1 ^ n!1" "p!1 ^ n!1 * m!1" "p!1 ^ m!2 * x!1")
           (prop)
           (hide (-2 -3))
           (rewrite "times_div1" :dir rl)
           (rewrite "div_cancel1")
           (rewrite "times_div2" :dir rl)
           (rewrite "exponentiation.expt_div")
           (lemma "expt_plus")
           (inst -1 "1" "m!2 - n!1 - 1" "p!1")
           (rewrite "expt_x1")
           (assert)
           (replaces -1)
           (inst 1 "p!1 ^ (-1 - n!1 + m!2) * x!1")
           (("1" (assert)) ("2" (grind))))
          ("2"
           (hide (- 2 3))
           (lemma "finite_subgroups")
           (inst -1 "H!1" "G!1")
           (assert))))
        ("2"
         (case-replace "m!2 = n!1" :hide? T)
         (("1"
           (hide-all-but (-1 -3 -4 2))
           (lemma "orders_equal[T, *, one]")
           (inst -1 "H!1" "P!1")
           (("1" (assert))
            ("2"
             (hide (- 2))
             (lemma "finite_subgroups")
             (inst -1 "P!1" "G!1")
             (assert))
            ("3"
             (hide (- 2))
             (lemma "finite_subgroups")
             (inst -1 "H!1" "G!1")
             (assert))))
          ("2"
           (lemma "p_group_is_subgroup")
           (inst -1 "n!1 - m!2" "m!1" "n!1" "p!1" "G!1" "H!1")
           (("1"
             (assert)
             (skosimp)
             (hide (-3 -4 -7 -8 -9 1 2))
             (lemma "subgroup_transitive[T,*,one]")
             (("1"
               (inst -1 "K!1" "H!1" "P!1")
               (assert)
               (lemma "orders_equal[T,*,one]")
               (inst -1 "K!1" "P!1")
               (("1"
                 (assert)
                 (replaces -1)
                 (hide (-1 -2 -5))
                 (expand "subgroup?")
                 (lemma "subset_antisymmetric[T]")
                 (inst?)
                 (assert))
                ("2"
                 (hide (- 2))
                 (lemma "finite_subgroups")
                 (inst -1 "P!1" "G!1")
                 (assert))
                ("3"
                 (hide (- 2))
                 (lemma "finite_subgroups")
                 (inst -1 "K!1" "G!1")
                 (assert))))
              ("2" (hide (- 2)) (rewrite "T_is_group"))))
            ("2" (hide (- 4)) (grind))))))))))))


proof_type: f_proof
decl_type: formula
library: groups
theory: sylow_theorems
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (lemma "card_eq_bij[T,T]")
   (inst -1 "P!1" "a!1 * P!1 * inv(a!1)")
   (("1"
     (prop)
     (("1"
       (hide -2)
       (lemma "p_subgroup_sylow_order")
       (inst-cp -1 "m!1" "n!1" "p!1" "G!1" "P!1")
       (inst -1 "m!1" "n!1" "p!1" "G!1" "a!1 * P!1 * inv(a!1)")
       (expand "order")
       (assert))
      ("2"
       (hide (- 2 3))
       (inst 1 "LAMBDA (x: (P!1)): a!1 * x * inv(a!1)")
       (("1"
         (expand "bijective?")
         (prop)
         (("1"
           (expand "injective?")
           (skosimp*)
           (rewrite "cancel_right")
           (rewrite "cancel_left"))
          ("2"
           (expand "surjective?")
           (skosimp)
           (typepred "y!1")
           (expand "*")
           (skosimp)
           (typepred "h!1")
           (skosimp)
           (replaces -1)
           (inst?)
           (assert))))
        ("2" (skosimp) (expand "*") (inst?) (inst?))))))
    ("2"
     (hide (- 2))
     (lemma "conjugate_is_subgroup[T, *, one]")
     (("1"
       (inst?)
       (lemma "finite_subgroups[T, *, one]")
       (inst?)
       (assert)
       (expand "finite_group?")
       (propax))
      ("2" (hide 2) (rewrite "T_is_group"))))
    ("3"
     (hide (- 2))
     (lemma "finite_subgroups[T, *, one]")
     (inst -1 "P!1" "G!1")
     (assert)
     (expand "finite_group?")
     (propax))))


proof_type: f_proof
decl_type: formula
library: groups
theory: sylow_theorems
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (decompose-equality -4)
   (lemma "conjugate_is_p_subgroup_sylow")
   (inst -1 "m!1" "n!1" "p!1" "G!1" "P!1")
   (assert)
   (inst-cp -2 "P!1")
   (iff)
   (expand* "extend" "singleton")
   (expand "p_subgroup_sylow" -3)
   (expand "extend")
   (prop)
   (expand "normal_subgroup?")
   (skosimp)
   (inst -1 "inv(a!1)")
   (("1"
     (rewrite "inv_inv")
     (inst -2 "inv(a!1) * P!1 * a!1")
     (lift-if)
     (prop)
     (("1"
       (expand "p_subgroup_sylow")
       (expand "extend")
       (lift-if)
       (prop)
       (iff)
       (prop)
       (hide-all-but (-2 1))
       (replaces -1)
       (rewrite "subset_reflexive"))
      ("2"
       (hide (- 2))
       (lemma "conjugate_is_subgroup[T,*,one]")
       (("1"
         (inst -1 "G!1" "inv(a!1)" "P!1")
         (("1"
           (rewrite "inv_inv")
           (lemma "subgroup_is_group[T,*,one]")
           (inst?)
           (assert))
          ("2" (hide 2) (rewrite "inv_in"))))
        ("2" (hide 2) (rewrite "T_is_group"))))
      ("3"
       (hide (- 2))
       (lemma "conjugate_is_subgroup[T,*,one]")
       (("1"
         (inst -1 "G!1" "inv(a!1)" "P!1")
         (("1" (rewrite "inv_inv")) ("2" (hide 2) (rewrite "inv_in"))))
        ("2" (hide 2) (rewrite "T_is_group"))))))
    ("2" (hide (- 2)) (rewrite "inv_in"))))


proof_type: f_proof
decl_type: formula
library: groups
theory: sylow_theorems
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (lemma "p_group_iff_power[T,*,one]")
   (inst?)
   (assert)
   (skosimp)
   (lemma "Fix_congruence[T,*,one,set[T]]")
   (("1"
     (inst -1 "K!1" "left_cosets(G!1,P!1)" "m!2" "p!1"
      "alt(G!1,K!1,P!1)")
     (("1"
       (prop)
       (("1"
         (case "card(Fix(K!1, left_cosets(G!1, P!1))(alt(G!1, K!1, P!1))) /= 0")
         (("1"
           (hide -2)
           (prop)
           (lemma "nonempty_card[set[T]]")
           (inst?)
           (("1"
             (assert)
             (hide 1)
             (expand* "nonempty?" "empty?" "member")
             (skosimp)
             (copy -1)
             (expand "Fix" -1)
             (expand "extend")
             (prop)
             (hide -2)
             (expand "left_cosets" -1)
             (skosimp)
             (replaces -1)
             (lemma "Fix_iff_subset[T, *, one]")
             (inst -1 "G!1" "K!1" "P!1" "a!1")
             (assert)
             (inst?)
             (prop)
             (("1" (expand "subgroup?") (propax))
              ("2"
               (hide -3)
               (lemma "finite_subgroups")
               (inst-cp -1 "P!1" "G!1")
               (inst -1 "K!1" "G!1")
               (assert)
               (expand "finite_group?")
               (case "card(K!1) = card(P!1)")
               (("1"
                 (lemma "left_coset_correspondence_inv[T, *, one]")
                 (inst -1 "G!1" "P!1" "a!1")
                 (assert)
                 (lemma "bijection_finite_set2[T,T]")
                 (inst?)
                 (prop)
                 (lemma "card_eq_bij[T,T]")
                 (inst -1 "P!1" "a!1 * P!1 * inv(a!1)")
                 (prop)
                 (hide-all-but (-1 -5 -9 1))
                 (replace -2 -1 rl)
                 (hide -2)
                 (expand "is_conjugate")
                 (inst?)
                 (rewrite "same_card_subset"))
                ("2"
                 (hide (-1 -2 -4 -5 -10 2))
                 (lemma "p_subgroup_sylow_order")
                 (inst-cp -1 "m!1" "n!1" "p!1" "G!1" "P!1")
                 (inst -1 "m!1" "n!1" "p!1" "G!1" "K!1")
                 (assert)
                 (hide-all-but (-1 -2 1))
                 (expand "order")
                 (assert))
                ("3" (propax)) ("4" (propax))))))
            ("2" (hide-all-but 1) (rewrite "T_is_group"))))
          ("2"
           (hide 2)
           (lemma "p_subgroup_sylow_order")
           (inst -1 "m!1" "n!1" "p!1" "G!1" "P!1")
           (assert)
           (hide (-7 -8))
           (lemma "Lagrange_index[T, *, one]")
           (inst -1 "G!1" "P!1")
           (("1"
             (assert)
             (replaces -2)
             (replaces -5)
             (rewrite "commutative_mult")
             (rewrite "both_sides_times1")
             (expand "index")
             (replace -1 -2 rl)
             (hide -1)
             (prop)
             (replaces -1)
             (hide -2)
             (assert)
             (lemma "gcd_1_nd")
             (inst?)
             (rewrite "gcd_sym")
             (assert))
            ("2"
             (hide (- 2))
             (lemma "finite_subgroups")
             (inst -1 "P!1" "G!1")
             (assert))))))
        ("2"
         (hide-all-but 1)
         (typepred "K!1")
         (hide -1)
         (lemma "finite_subgroups")
         (inst -1 "K!1" "G!1")
         (assert))
        ("3"
         (hide (- 2))
         (lemma "left_cosets_partition[T,*,one]")
         (inst?)
         (expand "finite_partition?")
         (assert))
        ("4"
         (hide (- 2))
         (expand* "nonempty?" "empty?" "member" "left_cosets")
         (inst?)
         (inst 1 "one")
         (("1" (rewrite "left_coset_one")) ("2" (rewrite "one_in"))))
        ("5" (hide (- 2)) (lemma "alt_is_action[T,*,one]") (inst?))))
      ("2"
       (hide (- 2))
       (skosimp)
       (expand* "left_cosets" "alt")
       (typepred "x1!1`2")
       (expand "left_cosets")
       (skosimp)
       (replaces -1)
       (inst 1 "x1!1`1 * a!1")
       (("1" (rewrite "left_coset_assoc"))
        ("2"
         (rewrite "product_in")
         (hide 2)
         (typepred "x1!1`1" "K!1")
         (hide -2)
         (expand* "subgroup?" "subset?" "member")
         (inst?)
         (assert))))
      ("3" (hide-all-but 1) (rewrite "T_is_group"))))
    ("2" (hide-all-but 1) (rewrite "T_is_group"))))


proof_type: f_proof
decl_type: formula
library: groups
theory: sylow_theorems
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (skoletin* 1 "!1")
   (("1"
     (case "stabilizer[T,*,one, set[T]](G!1, p_subgroup_sylow(G!1, p!1))(action_by_c(G!1,p_subgroup_sylow(G!1,p!1)), P!1) = normalizer(G!1, P!1)")
     (("1"
       (case "orbit[T, *, one, set[T]](G!1,p_subgroup_sylow(G!1, p!1))(action_by_c(G!1, p_subgroup_sylow(G!1, p!1)), P!1) = p_subgroup_sylow(G!1, p!1)")
       (("1"
         (lemma "orbits_eq_index[T, *, one, set[T]]")
         (inst?)
         (split -1)
         (("1"
           (prop)
           (("1" (assert))
            ("2"
             (replaces -2)
             (replaces -2)
             (replace -2 -1 rl)
             (hide -2)
             (lemma "p_subgroup_sylow_order")
             (inst -1 "m!1" "n!1" "p!1" "G!1" "P!1")
             (assert)
             (lemma "Lagrange_index[T,*,one]")
             (inst-cp -1 "G!1" "normalizer(G!1, P!1)")
             (("1"
               (inst -1 "normalizer(G!1, P!1)" "P!1")
               (("1"
                 (prop)
                 (("1"
                   (hide (-5 -7 -8))
                   (replaces -2)
                   (replaces -2)
                   (replaces -3)
                   (rewrite "commutative_mult")
                   (rewrite "associative_mult")
                   (rewrite "both_sides_times1")
                   (replaces -2)
                   (rewrite "commutative_mult")
                   (expand "divides")
                   (inst?)
                   (hide -)
                   (rewrite "T_is_group"))
                  ("2"
                   (hide (- 2))
                   (lemma "normalizer_is_subgroup[T, *, one]")
                   (inst?)
                   (assert))
                  ("3"
                   (hide (- 2))
                   (expand "subgroup?" 1)
                   (lemma "subset_of_normalizer[T, *, one]")
                   (inst?)
                   (assert))
                  ("4"
                   (hide (- 2 3))
                   (lemma "normalizer_is_subgroup[T, *, one]")
                   (inst?)
                   (assert))))
                ("2"
                 (hide (- 2))
                 (typepred "P!1")
                 (hide -1)
                 (lemma "finite_subgroups[T, *, one]")
                 (inst?)
                 (assert))
                ("3"
                 (hide (- 2))
                 (lemma "normalizer_is_subgroup[T, *, one]")
                 (inst?)
                 (assert)
                 (lemma "finite_subgroups[T, *, one]")
                 (inst?)
                 (("1" (assert))
                  ("2" (hide (- 2)) (rewrite "T_is_group"))))
                ("4" (hide (- 2)) (rewrite "T_is_group"))))
              ("2"
               (hide (- 2))
               (lemma "normalizer_is_subgroup[T, *, one]")
               (inst?)
               (assert)
               (lemma "finite_subgroups[T, *, one]")
               (inst?)
               (("1" (assert))
                ("2" (hide (- 2)) (rewrite "T_is_group"))))
              ("3" (hide (- 2)) (rewrite "T_is_group"))))
            ("3"
             (hide (-1 -2 -3))
             (lemma "Fix_congruence[T,*,one, set[T]]")
             (inst -1 "P!1" "p_subgroup_sylow(G!1, p!1)" "n!1" "p!1"
              "action_by_c(P!1,p_subgroup_sylow(G!1,p!1))")
             (("1"
               (prop)
               (("1"
                 (replace -2 -1 rl)
                 (case-replace
                  "Fix(P!1, p_subgroup_sylow(G!1, p!1))(action_by_c(P!1, p_subgroup_sylow(G!1, p!1))) = singleton(P!1)"
                  :hide? T)
                 (("1"
                   (rewrite
                    "card_extend[setof[T], subgroup[T, *, one](G!1)]")
                   (rewrite "card_singleton"))
                  ("2"
                   (hide (-1 -2 2))
                   (decompose-equality 1)
                   (("1"
                     (iff)
                     (prop)
                     (("1"
                       (expand "Fix")
                       (expand "extend")
                       (expand "p_subgroup_sylow" -1 1)
                       (expand "extend")
                       (prop)
                       (hide (-1 -2))
                       (expand* "action_by_c" "singleton")
                       (lemma "p_subgroup_sylow_order")
                       (inst -1 "m!1" "n!1" "p!1" "G!1" "P!1")
                       (assert)
                       (lemma "p_group_iff_power[T,*,one]")
                       (inst -1 "p!1" "P!1")
                       (("1"
                         (assert)
                         (prop)
                         (("1"
                           (hide -2)
                           (case "subgroup?(P!1, normalizer[T,*,one](G!1, x!1))")
                           (("1"
                             (lemma "Lagrange")
                             (inst-cp -1
                              "normalizer[T, *, one](G!1, x!1)" "P!1")
                             (("1"
                               (inst -1 "G!1"
                                "normalizer[T, *, one](G!1, x!1)")
                               (("1"
                                 (assert)
                                 (prop)
                                 (("1"
                                   (expand "divides")
                                   (skosimp*)
                                   (replace -2 -1)
                                   (replaces -5)
                                   (replaces -10)
                                   (lemma "both_sides_times2")
                                   (inst
                                    -1
                                    "p!1 ^ n!1"
                                    "m!1"
                                    "x!3 * x!2")
                                   (assert)
                                   (hide -2)
                                   (lemma "gcd_1_gcd_1")
                                   (inst -1 "m!1" "p!1" "x!3" "x!2")
                                   (rewrite "gcd_sym")
                                   (assert)
                                   (flatten)
                                   (hide (-2 -3))
                                   (rewrite "gcd_sym")
                                   (lemma "Second_Sylow_Theorem")
                                   (inst
                                    -1
                                    "x!3"
                                    "n!1"
                                    "p!1"
                                    "normalizer[T, *, one](G!1, x!1)"
                                    "x!1"
                                    "P!1")
                                   (("1"
                                     (assert)
                                     (prop)
                                     (("1"
                                       (skosimp)
                                       (hide -1)
                                       (prop)
                                       (("1"
                                         (expand "is_conjugate")
                                         (skosimp)
                                         (lemma
                                          "normal_in_normalizer[T, *, one]")
                                         (inst?)
                                         (prop)
                                         (expand "normal_subgroup?")
                                         (flatten)
                                         (lemma "normal_prep[T, *, one]")
                                         (inst
                                          -1
                                          "normalizer[T, *, one](G!1, x!1)"
                                          "x!1")
                                         (("1"
                                           (prop)
                                           (hide -3)
                                           (inst -1 "a!2")
                                           (hide-all-but (-1 -3 1))
                                           (assert))
                                          ("2"
                                           (hide (- 2))
                                           (rewrite "T_is_group"))))
                                        ("2"
                                         (hide-all-but (-6 -11 1))
                                         (expand "p_subgroup_sylow?")
                                         (skosimp)
                                         (inst?)
                                         (("1" (assert))
                                          ("2"
                                           (typepred "H!1")
                                           (hide (-1 -3 -4 2))
                                           (lemma
                                            "normalizer_is_subgroup[T, *, one]")
                                           (inst?)
                                           (assert)
                                           (hide -3)
                                           (lemma
                                            "subgroup_transitive[T, *, one]")
                                           (inst
                                            -1
                                            "G!1"
                                            "normalizer[T, *, one](G!1, x!1)"
                                            "H!1")
                                           (("1" (assert))
                                            ("2"
                                             (hide (- 2))
                                             (rewrite
                                              "T_is_group"))))))))
                                      ("2"
                                       (hide-all-but (-6 -7 1))
                                       (expand "p_subgroup_sylow?")
                                       (flatten)
                                       (assert)
                                       (skosimp)
                                       (inst?)
                                       (("1" (assert))
                                        ("2"
                                         (typepred "H!1")
                                         (hide (-1 -3 -4 -6 2))
                                         (lemma
                                          "normalizer_is_subgroup[T, *, one]")
                                         (inst?)
                                         (assert)
                                         (hide -3)
                                         (lemma
                                          "subgroup_transitive[T, *, one]")
                                         (inst
                                          -1
                                          "G!1"
                                          "normalizer[T, *, one](G!1, x!1)"
                                          "H!1")
                                         (("1" (assert))
                                          ("2"
                                           (hide (- 2))
                                           (rewrite "T_is_group"))))))))
                                    ("2"
                                     (hide-all-but (-6 1))
                                     (expand "subgroup?" 1)
                                     (lemma
                                      "subset_of_normalizer[T, *, one]")
                                     (inst?)
                                     (assert))
                                    ("3"
                                     (hide-all-but (-6 1))
                                     (lemma
                                      "finite_subgroups[T, *, one]")
                                     (inst
                                      -1
                                      "normalizer[T, *, one](G!1, x!1)"
                                      "G!1")
                                     (("1"
                                       (assert)
                                       (hide 2)
                                       (lemma
                                        "normalizer_is_subgroup[T, *, one]")
                                       (inst?)
                                       (assert))
                                      ("2"
                                       (hide (- 2))
                                       (rewrite "T_is_group"))))
                                    ("4"
                                     (hide (- 2))
                                     (rewrite "T_is_group"))
                                    ("5"
                                     (hide-all-but (-2 -9 1))
                                     (typepred
                                      "order(normalizer[T, *, one](G!1, x!1))")
                                     (replaces -2)
                                     (lemma "prime_gt_1")
                                     (inst?)
                                     (assert)
                                     (hide -3)
                                     (lemma "expt_pos")
                                     (inst?)
                                     (expand* ">=" ">")
                                     (lemma "pos_times_lt")
                                     (inst -1 "p!1 ^ n!1" "x!3")
                                     (assert))))
                                  ("2"
                                   (hide-all-but (-6 1))
                                   (lemma
                                    "normalizer_is_subgroup[T, *, one]")
                                   (inst?)
                                   (assert))))
                                ("2"
                                 (hide-all-but (-6 1))
                                 (lemma
                                  "normalizer_is_subgroup[T, *, one]")
                                 (inst?)
                                 (assert)
                                 (hide -2)
                                 (lemma "finite_subgroups[T, *, one]")
                                 (inst?)
                                 (("1" (assert))
                                  ("2"
                                   (hide (- 2))
                                   (rewrite "T_is_group"))))
                                ("3"
                                 (hide (- 2))
                                 (rewrite "T_is_group"))))
                              ("2"
                               (hide-all-but (-5 1))
                               (lemma
                                "normalizer_is_subgroup[T, *, one]")
                               (inst?)
                               (assert)
                               (hide -2)
                               (lemma "finite_subgroups[T, *, one]")
                               (inst?)
                               (("1" (assert))
                                ("2"
                                 (hide (- 2))
                                 (rewrite "T_is_group"))))
                              ("3" (hide (- 2)) (rewrite "T_is_group"))))
                            ("2"
                             (hide-all-but (-6 1))
                             (expand* "subgroup?" "subset?" "member")
                             (skosimp)
                             (expand "normalizer")
                             (expand "extend")
                             (prop)
                             (("1"
                               (inst -3 "inv(x!2)")
                               (("1" (rewrite "inv_inv"))
                                ("2" (hide (-1 2)) (rewrite "inv_in"))))
                              ("2"
                               (typepred "P!1")
                               (hide (-1 -4))
                               (expand* "subgroup?" "subset?" "member")
                               (inst?)
                               (assert))))
                            ("3"
                             (hide-all-but (-4 1))
                             (lemma "normalizer_is_subgroup[T, *, one]")
                             (inst?)
                             (assert)
                             (hide -2)
                             (lemma "subgroup_is_group[T, *, one]")
                             (inst?)
                             (("1" (assert))
                              ("2"
                               (hide (- 2))
                               (rewrite "T_is_group"))))))
                          ("2" (hide-all-but (-1 1)) (inst?))))
                        ("2"
                         (hide (- 2))
                         (typepred "P!1")
                         (hide -1)
                         (lemma "finite_subgroups[T, *, one]")
                         (inst?)
                         (assert))))
                      ("2"
                       (expand "extend")
                       (prop)
                       (expand* "singleton" "Fix")
                       (expand "extend")
                       (prop)
                       (("1"
                         (skosimp)
                         (expand "action_by_c")
                         (replaces -4)
                         (hide -)
                         (typepred "g!1")
                         (lemma "lc_is_eq[T, *, one]")
                         (inst -1 "G!1" "P!1" "g!1" "one")
                         (assert)
                         (prop)
                         (("1"
                           (rewrite "left_coset_one")
                           (replaces -1)
                           (lemma "rc_is_eq[T, *, one]")
                           (inst -1 "G!1" "P!1" "inv[T, *, one](g!1)"
                            "one")
                           (assert)
                           (prop)
                           (("1" (rewrite "right_coset_one"))
                            ("2"
                             (hide 2)
                             (inst 1 "inv[T, *, one](g!1)")
                             (rewrite "inv_in"))))
                          ("2" (hide 2) (inst?))))
                        ("2"
                         (hide-all-but (-3 -7 1))
                         (expand "p_subgroup_sylow")
                         (expand "extend")
                         (assert))))))
                    ("2" (hide -) (rewrite "T_is_group"))))))
                ("2"
                 (hide (- 2))
                 (typepred "P!1")
                 (hide -1)
                 (lemma "finite_subgroups[T, *, one]")
                 (inst?)
                 (assert))
                ("3"
                 (hide (-1 2))
                 (lemma "p_subgroup_sylow_order")
                 (inst -1 "m!1" "n!1" "p!1" "G!1" "P!1")
                 (assert))
                ("4"
                 (lemma "Third_Sylow_Theorem_TCC1")
                 (inst -1 "m!1" "n!1" "p!1" "G!1" "P!1")
                 (assert))
                ("5"
                 (hide-all-but (-5 1))
                 (expand* "nonempty?" "empty?" "member")
                 (inst -1 "P!1")
                 (expand "p_subgroup_sylow")
                 (expand "extend")
                 (propax))
                ("6"
                 (hide (- 2))
                 (expand "group_action?")
                 (skosimp*)
                 (prop)
                 (("1"
                   (expand "action_by_c")
                   (rewrite "left_coset_one")
                   (rewrite "inv_one")
                   (rewrite "right_coset_one"))
                  ("2"
                   (expand "action_by_c")
                   (rewrite "inv_star")
                   (rewrite "right_coset_assoc" :dir rl)
                   (rewrite "left_coset_assoc" :dir rl)
                   (rewrite "lr_coset_assoc"))))))
              ("2"
               (hide (-1 2))
               (skosimp)
               (expand "action_by_c")
               (expand "p_subgroup_sylow")
               (expand "extend")
               (lemma "conjugate_is_subgroup[T, *, one]")
               (inst -1 "G!1" "x1!1`1" "x1!1`2")
               (("1"
                 (lemma "subgroup_is_group[T, *, one]")
                 (inst?)
                 (assert)
                 (typepred "x1!1`2")
                 (hide (-2 -7))
                 (expand "p_subgroup_sylow")
                 (expand "extend")
                 (prop)
                 (hide (-1 -2 -4))
                 (lemma "conjugate_is_p_subgroup_sylow")
                 (inst -1 "m!1" "n!1" "p!1" "G!1" "x1!1`2")
                 (assert)
                 (inst -1 "x1!1`1")
                 (hide (- 2))
                 (typepred "x1!1`1" "P!1")
                 (hide -2)
                 (expand* "subgroup?" "subset?" "member")
                 (inst?)
                 (assert))
                ("2"
                 (hide 2)
                 (typepred "x1!1`2")
                 (expand "p_subgroup_sylow")
                 (expand "extend")
                 (prop))
                ("3"
                 (hide (- 2))
                 (typepred "x1!1`1" "P!1")
                 (hide -2)
                 (expand* "subgroup?" "subset?" "member")
                 (inst?)
                 (assert))))
              ("3"
               (hide (- 2))
               (typepred "P!1")
               (hide -1)
               (lemma "finite_subgroups[T, *, one]")
               (inst?)
               (assert))))))
          ("2"
           (hide (-1 -2 -3 2))
           (lemma "Third_Sylow_Theorem_TCC1")
           (inst -1 "m!1" "n!1" "p!1" "G!1" "P!1")
           (assert))
          ("3"
           (hide (-1 -2 -3 2))
           (expand "group_action?")
           (skosimp*)
           (prop)
           (("1"
             (expand "action_by_c")
             (rewrite "left_coset_one")
             (rewrite "inv_one")
             (rewrite "right_coset_one"))
            ("2"
             (expand "action_by_c")
             (rewrite "inv_star")
             (rewrite "right_coset_assoc" :dir rl)
             (rewrite "left_coset_assoc" :dir rl)
             (rewrite "lr_coset_assoc"))))))
        ("2"
         (hide (-1 -2 2))
         (decompose-equality 1)
         (("1"
           (iff)
           (prop)
           (("1" (expand "orbit") (expand "extend") (assert))
            ("2"
             (expand* "orbit" "extend")
             (assert)
             (expand "action_by_c")
             (expand "p_subgroup_sylow")
             (expand "extend")
             (prop)
             (hide (-1 -2))
             (lemma "Second_Sylow_Theorem")
             (inst -1 "m!1" "n!1" "p!1" "G!1" "P!1" "x!1")
             (assert)
             (hide (-3 -4 -5 -6))
             (expand "p_subgroup_sylow?")
             (flatten)
             (hide -3)
             (assert)
             (skosimp)
             (hide (-1 -3))
             (expand "is_conjugate")
             (propax))))
          ("2" (hide -) (rewrite "T_is_group"))))))
      ("2"
       (hide (- 2))
       (decompose-equality 1)
       (("1"
         (iff)
         (prop)
         (("1"
           (expand* "stabilizer" "normalizer")
           (expand "extend")
           (prop)
           (hide (-1 -2))
           (expand "action_by_c")
           (replace -1 1 rl)
           (rewrite "lr_coset_assoc")
           (rewrite "lr_coset_assoc")
           (rewrite "lr_coset_assoc")
           (rewrite "right_coset_assoc")
           (rewrite "right_coset_one")
           (rewrite "left_coset_assoc")
           (rewrite "left_coset_one")
           (assert))
          ("2"
           (expand* "stabilizer" "normalizer")
           (expand "extend")
           (prop)
           (hide (-1 -2))
           (expand "action_by_c")
           (replace -1 1 rl)
           (rewrite "lr_coset_assoc")
           (rewrite "lr_coset_assoc")
           (rewrite "lr_coset_assoc")
           (rewrite "right_coset_assoc")
           (rewrite "right_coset_one")
           (rewrite "left_coset_assoc")
           (rewrite "left_coset_one")
           (assert))))
        ("2" (rewrite "T_is_group"))))
      ("3" (hide (- 2)) (rewrite "T_is_group"))
      ("4"
       (hide-all-but (-5 1))
       (expand "p_subgroup_sylow")
       (expand "extend")
       (propax))
      ("5"
       (hide (-1 2))
       (skosimp)
       (expand "p_subgroup_sylow" 1 1)
       (expand "extend")
       (prop)
       (("1"
         (hide (-1 -2))
         (expand "action_by_c")
         (typepred "x1!1`2")
         (expand "p_subgroup_sylow")
         (expand "extend")
         (prop)
         (hide (-1 -2))
         (lemma "conjugate_is_p_subgroup_sylow")
         (inst -1 "m!1" "n!1" "p!1" "G!1" "x1!1`2")
         (assert)
         (inst?))
        ("2"
         (expand "action_by_c")
         (lemma "conjugate_is_subgroup[T, *, one]")
         (("1"
           (inst?)
           (("1"
             (hide-all-but (-1 1))
             (lemma "subgroup_is_group[T, *, one]")
             (inst?)
             (assert))
            ("2"
             (hide (- 2))
             (typepred "x1!1`2")
             (expand "p_subgroup_sylow")
             (expand "extend")
             (prop))))
          ("2" (hide (- 2)) (rewrite "T_is_group"))))
        ("3"
         (hide -)
         (expand "action_by_c")
         (lemma "conjugate_is_subgroup[T, *, one]")
         (("1"
           (inst?)
           (hide 2)
           (typepred "x1!1`2")
           (expand "p_subgroup_sylow")
           (expand "extend")
           (prop))
          ("2" (hide 2) (rewrite "T_is_group"))))))))
    ("2"
     (skosimp*)
     (hide -)
     (lemma "normalizer_is_subgroup[T, *, one]")
     (("1"
       (inst?)
       (assert)
       (lemma "subgroup_is_group[T, *, one]")
       (inst?)
       (("1" (assert)) ("2" (hide (- 2)) (rewrite "T_is_group"))))
      ("2" (hide 2) (rewrite "T_is_group"))))
    ("3" (skosimp*) (hide -) (rewrite "T_is_group"))))


proof_type: t_proof
decl_type: tcc
library: groups
theory: sylow_theorems
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (typepred "P!1" "G!1")
   (hide -1)
   (lemma "finite_subgroups")
   (inst?)
   (assert))


proof_type: t_proof
decl_type: tcc
library: groups
theory: sylow_theorems
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (hide -1)
   (typepred "H!1" "G!1")
   (hide -1)
   (lemma "finite_subgroups")
   (inst?)
   (assert))


proof_type: t_proof
decl_type: tcc
library: groups
theory: sylow_theorems
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (inst 1 "one")
   (("1" (rewrite "left_coset_one[T,*,one]"))
    ("2"
     (typepred "G!1")
     (expand* "group?" "monoid?" "monad?" "member")
     (assert))))


proof_type: t_proof
decl_type: tcc
library: groups
theory: sylow_theorems
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (typepred "N!1")
   (hide -1)
   (lemma "normal_subgroup_tran[T, *, one]")
   (("1" (inst -1 "G!1" "H!1" "N!1") (assert))
    ("2" (hide (-1 -2 2)) (rewrite "T_is_group"))))


proof_type: t_proof
decl_type: tcc
library: groups
theory: sylow_theorems
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (prop)
   (("1"
     (hide (-2 -3))
     (skosimp)
     (inst?)
     (hide -1)
     (typepred "a!1" "H!1")
     (expand* "subgroup?" "subset?" "member")
     (inst?)
     (assert))
    ("2"
     (hide -1)
     (expand "/")
     (expand "restrict")
     (expand "left_cosets")
     (propax))))


proof_type: t_proof
decl_type: tcc
library: groups
theory: sylow_theorems
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (hide -)
   (typepred "G!1" "H!1")
   (lemma "finite_subgroups[T, *, one]")
   (inst?)
   (assert)
   (hide (-2 -4))
   (expand* "group?" "finite_group?" "finite_monad?")
   (expand "monoid?")
   (flatten)
   (assert))


proof_type: t_proof
decl_type: tcc
library: groups
theory: sylow_theorems
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (hide -)
   (typepred "G!1" "K!1")
   (lemma "finite_subgroups[T, *, one]")
   (inst?)
   (assert)
   (hide (-2 -4))
   (expand* "group?" "finite_group?" "finite_monad?")
   (expand "monoid?")
   (flatten)
   (assert))


proof_type: t_proof
decl_type: tcc
library: groups
theory: sylow_theorems
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (hide -)
   (typepred "G!1" "P!1")
   (lemma "finite_subgroups[T, *, one]")
   (inst?)
   (assert)
   (hide (-2 -4))
   (expand* "group?" "finite_group?" "finite_monad?")
   (expand "monoid?")
   (flatten)
   (assert))


proof_type: t_proof
decl_type: tcc
library: groups
theory: sylow_theorems
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "conjugate_is_subgroup[T,*,one]")
   (("1"
     (inst?)
     (hide-all-but (-1 1))
     (assert)
     (lemma "subgroup_is_group[T,*,one]")
     (inst?)
     (assert))
    ("2" (hide (- 2)) (rewrite "T_is_group"))))


proof_type: t_proof
decl_type: tcc
library: groups
theory: sylow_theorems
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (hide -)
   (typepred "K!1" "G!1")
   (hide -1)
   (lemma "finite_subgroups")
   (inst?)
   (assert))


proof_type: t_proof
decl_type: tcc
library: groups
theory: sylow_theorems
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (hide -)
   (lemma "conjugate_is_subgroup[T,*,one]")
   (("1" (inst?) (lemma "subgroup_is_group[T, *, one]") (inst?) (assert))
    ("2" (hide 2) (rewrite "T_is_group"))))


proof_type: t_proof
decl_type: tcc
library: groups
theory: sylow_theorems
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (hide -)
   (typepred "G!1")
   (expand "finite_group?")
   (flatten)
   (hide -1)
   (lemma "powerset_finite[T]")
   (inst?)
   (lemma "finite_subset[set[T]]")
   (inst -1 "powerset[T](G!1)" "p_subgroup_sylow(G!1, p!1)")
   (assert)
   (hide (- 2))
   (expand* "subset?" "member")
   (skosimp)
   (expand "p_subgroup_sylow")
   (expand "extend")
   (prop)
   (hide (-1 -3))
   (expand "subgroup?")
   (flatten)
   (hide -2)
   (expand "powerset")
   (propax))


proof_type: t_proof
decl_type: tcc
library: groups
theory: sylow_theorems
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (hide -)
   (lemma "normalizer_is_subgroup[T, *, one]")
   (("1"
     (inst?)
     (assert)
     (lemma "subgroup_is_group[T, *, one]")
     (inst?)
     (("1" (assert)) ("2" (hide (-1 2)) (rewrite "T_is_group"))))
    ("2" (hide 2) (rewrite "T_is_group"))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "nXp")
   (lemma "Neg_inclusion")
   (inst -1 "X" "x")
   (assert)
   (lemma "pXp")
   (inst -1 "Neg(X)" "Y" "-x" "y")
   (assert)
   (split -1)
   (("1"
     (lemma "Neg_inclusion")
     (inst -1 "pXp(Neg(X),Y)" "-x*y")
     (assert))
    ("2" (hide-all-but (-2 1)) (grind))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (case "y >= 0")
   (("1"
     (grind :theories "real_props")
     (case "x * y >= 0")
     (("1"
       (case "ub(X) * lb(Y) <= 0")
       (("1" (assert)) ("2" (grind-reals))))
      ("2" (grind-reals))))
    ("2"
     (grind :theories "real_props")
     (("1"
       (case "x*y <= 0")
       (("1"
         (case "ub(X) * ub(Y) >= 0")
         (("1" (assert)) ("2" (grind-reals))))
        ("2" (grind-reals))))
      ("2" (mult-ineq -6 -7 (+ -)))))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "nXm")
   (lemma "pXm")
   (inst -1 "Neg(X)" "Y" "-x" "y")
   (assert)
   (split)
   (("1" (lemma "Neg_inclusion") (inst? -1) (assert))
    ("2" (rewrite "Neg_Ge_0")) ("3" (rewrite "Neg_inclusion"))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "mXm")
   (expand "Zeroin?")
   (case "ub(X) * ub(Y) >=0"
     "lb(X) * lb(Y) >= 0"
     "ub(X) * lb(Y) <= 0"
     "lb(X) * ub(Y) <= 0")
   (("1"
     (label "H" (-1 -2 -3 -4))
     (hide "H")
     (grind :theories "real_props")
     (("1"
       (case "x*y >= 0")
       (("1" (grind-reals) (mult-ineq -7 -9 (- -)) (assert))
        ("2" (reveal "H") (name-replace "A" "x*y") (assert))))
      ("2"
       (case "x*y >= 0")
       (("1" (grind-reals) (mult-ineq -8 -10 (+ +)) (assert))
        ("2" (reveal "H") (name-replace "A" "x*y") (assert))))
      ("3"
       (case "x*y >= 0")
       (("1" (reveal "H") (name-replace "A" "x*y") (assert))
        ("2"
         (grind-reals)
         (("1" (mult-ineq -5 -8 (- +)) (assert))
          ("2" (mult-ineq -6 -7 (+ -)))))))
      ("4"
       (case "x*y >= 0")
       (("1" (reveal "H") (name-replace "A" "x*y") (assert))
        ("2"
         (grind-reals)
         (("1" (mult-ineq -5 -8 (- +)))
          ("2" (mult-ineq -6 -7 (+ -)) (assert))))))))
    ("2" (hide 2) (grind-reals)) ("3" (hide 2) (grind-reals))
    ("4" (hide 2) (grind-reals)) ("5" (hide 2) (grind-reals))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "Mult")
   (case-replace "Ge(X, 0) AND Ge(Y, 0)")
   (("1" (rewrite "pXp"))
    ("2"
     (replace 1)
     (case-replace "Ge(X, 0) AND Le(Y, 0)")
     (("1" (rewrite "pXn"))
      ("2"
       (replace 1)
       (case-replace "Ge(X, 0)")
       (("1" (rewrite "pXm") (hide 4) (grind))
        ("2"
         (replace 1)
         (case-replace "Le(X, 0) AND Le(Y, 0)")
         (("1" (rewrite "nXn"))
          ("2"
           (replace 1)
           (case-replace "Le(X, 0) AND Ge(Y, 0)")
           (("1" (rewrite "nXp"))
            ("2"
             (replace 1)
             (case-replace "Le(X, 0)")
             (("1" (rewrite "nXm") (hide 5) (grind))
              ("2"
               (replace 1)
               (case-replace "Ge(Y, 0)")
               (("1" (rewrite "mXp") (hide 4) (grind))
                ("2"
                 (replace 1)
                 (case-replace "Le(Y, 0)")
                 (("1" (rewrite "mXn") (hide 5) (grind))
                  ("2"
                   (replace 1)
                   (rewrite "mXm")
                   (("1" (hide 6) (grind))
                    ("2" (hide 6) (grind))))))))))))))))))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (case "x=0")
   (("1" (grind))
    ("2"
     (rewrite "expt_plus")
     (rewrite "expt_plus")
     (rewrite "expt_times")
     (rewrite "expt_times")
     (rewrite "pow_sq")
     (rewrite "pow_sq")
     (rewrite "sq_neg")
     (rewrite "expt_x1")
     (rewrite "expt_x1")
     (assert))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "odd?")
   (skeep -1)
   (case "j>=0")
   (("1" (replaces -2) (rewrite "pow_neg_n_odd")) ("2" (assert))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (case "x=0")
   (("1" (grind))
    ("2"
     (rewrite "expt_times")
     (rewrite "expt_times")
     (rewrite "pow_sq")
     (rewrite "pow_sq")
     (rewrite "sq_neg"))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "even?")
   (skeep -1)
   (case "j>=0")
   (("1" (replaces -2) (rewrite "pow_neg_n_even")) ("2" (assert))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (case "x=0")
   (("1" (grind))
    ("2" (use "posreal_exp") (("1" (assert)) ("2" (assert))))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (case "x>=0")
   (("1" (rewrite "pow_pos"))
    ("2"
     (lemma "pow_neg_n_even")
     (inst?)
     (replaces -1 :dir rl)
     (rewrite "pow_pos"))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "even?")
   (skeep -1)
   (case "j>=0")
   (("1" (replaces -2) (rewrite "pow_even_n_pos")) ("2" (assert))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (case "x=0")
   (("1" (grind))
    ("2"
     (rewrite "expt_plus")
     (case-replace "2*n=n*2")
     (("1"
       (hide -1)
       (rewrite "expt_times")
       (rewrite "expt_x1")
       (rewrite "pow_sq")
       (grind-reals))
      ("2" (assert))))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "odd?")
   (skeep -1)
   (case "j >= 0")
   (("1" (replaces -2) (rewrite "pow_odd_n_neg")) ("2" (assert))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (splash -3)
   (("1"
     (case-replace "x=0")
     (("1" (rewrite "pow_0_0") (use "pow_pos") (assert)) ("2" (assert))))
    ("2" (rewrite "both_sides_expt_pos_le") (grind))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (case "x>=0")
   (("1" (rewrite "pow_incr_pos") (flatten) (grind))
    ("2"
     (assert)
     (hide -2)
     (expand "odd?")
     (skeep -1)
     (case "j >=0")
     (("1"
       (replace -2)
       (lemma "pow_odd_n_neg")
       (inst -1 "j" "x")
       (assert)
       (case "y<=0")
       (("1"
         (lemma "pow_neg_n_odd")
         (inst -1 "j" "-x")
         (assert)
         (replaces -1)
         (lemma "pow_neg_n_odd")
         (inst -1 "j" "-y")
         (assert)
         (replaces -1)
         (replaces -4 :dir rl)
         (lemma "pow_incr_pos")
         (inst -1 "n" "-y" "-x")
         (assert))
        ("2" (lemma "pow_pos") (inst -1 "n" "y") (assert))))
      ("2" (assert))))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (assert)
   (expand "even?")
   (skeep -1)
   (replace -1)
   (case "j >= 0")
   (("1"
     (lemma "pow_neg_n_even")
     (inst -1 "j" "-x")
     (lemma "pow_neg_n_even")
     (inst -1 "j" "-y")
     (assert)
     (replaces (-1 -2))
     (replaces -2 :dir rl)
     (rewrite "pow_incr_pos")
     (flatten)
     (assert))
    ("2" (assert))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (lemma "even_or_odd")
   (inst? -1)
   (assert)
   (expand "Pow")
   (assert)
   (case "n=0")
   (("1" (assert))
    ("2"
     (assert)
     (expand "Neg")
     (expand "[||]")
     (lemma "pow_neg_even")
     (inst-cp -1 "n" "lb(X)")
     (inst -1 "n" "ub(X)")
     (assert)
     (replaces (-1 -2))
     (grind :exclude "^"))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (case "n=0")
   (("1" (replaces) (grind))
    ("2"
     (expand "Pow")
     (assert)
     (expand "##")
     (flatten)
     (ground)
     (("1"
       (lift-if)
       (ground)
       (("1" (expand "Ge" -1) (rewrite "pow_incr_pos"))
        ("2" (rewrite "pow_incr_odd"))
        ("3"
         (expand "Le" -1)
         (rewrite "pow_decr_even")
         (rewrite "even_or_odd"))
        ("4"
         (lemma "even_or_odd")
         (inst?)
         (assert)
         (lemma "pow_even_pos")
         (inst?)
         (assert))))
      ("2"
       (lift-if)
       (ground)
       (("1" (expand "Ge" -1) (rewrite "pow_incr_pos"))
        ("2" (rewrite "pow_incr_odd"))
        ("3"
         (expand "Le" -1)
         (rewrite "pow_decr_even")
         (rewrite "even_or_odd"))
        ("4"
         (case "x>=0")
         (("1"
           (expand "max")
           (lift-if)
           (split)
           (("1" (flatten) (rewrite "pow_incr_pos"))
            ("2"
             (flatten)
             (case "x^n <= ub(X)^n")
             (("1" (assert)) ("2" (rewrite "pow_incr_pos"))))))
          ("2"
           (expand "max")
           (lift-if)
           (split)
           (("1"
             (flatten)
             (case "x^n <=  lb(X) ^ n")
             (("1" (assert))
              ("2" (rewrite "pow_decr_even") (rewrite "even_or_odd"))))
            ("2"
             (flatten)
             (rewrite "pow_decr_even")
             (rewrite "even_or_odd"))))))))))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (rewrite "Pow2_Sq" :dir rl)
   (case-replace "sq(x)=x^2")
   (("1" (hide -1) (rewrite "Pow_inclusion"))
    ("2" (hide-all-but 1) (grind))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "Div")
   (case-replace "ub(Y) /= 0 AND lb(Y) /= 0")
   (("1"
     (flatten)
     (case "x/y = x*(1/y)")
     (("1"
       (replaces -1)
       (rewrite "Mult_inclusion")
       (hide 4)
       (grind)
       (("1" (cross-mult)) ("2" (cross-mult)) ("3" (cross-mult))
        ("4" (cross-mult))))
      ("2" (assert))))
    ("2" (replace 1) (grind))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skolem 1 ("F" "f" _ "n"))
   (case "FORALL (m: nat):
                                      (FORALL (k: subrange(n, m)): f(k) ## F(k)) IMPLIES
                                       sigma(n, m, f) ## Sigma(n, m, F)")
   (("1"
     (skeep)
     (case "i < 0")
     (("1"
       (hide -2 -3)
       (expand* "sigma" "Sigma")
       (assert)
       (rewrite "r2i_inclusion"))
      ("2" (inst -1 "i") (("1" (assert)) ("2" (assert))))))
    ("2"
     (hide 2)
     (induct "m")
     (("1"
       (flatten)
       (case "n > 0")
       (("1" (grind))
        ("2" (inst -1 "n") (("1" (grind)) ("2" (assert))))))
      ("2"
       (skeep)
       (expand "Sigma" 1)
       (expand "sigma" 1)
       (lift-if)
       (rewrite "r2i_inclusion")
       (split 1)
       (("1" (propax))
        ("2"
         (flatten)
         (rewrite "Add_inclusion")
         (("1" (inst -2 "1+j")) ("2" (skeep 4) (inst -1 "k"))))))))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (grind)
   (("1" (grind-reals))
    ("2"
     (case "lb(X1) * lb(Y1) >= 0")
     (("1"
       (case "ub(X) * lb(Y) <= 0")
       (("1" (assert)) ("2" (hide -1 2) (grind-reals))))
      ("2" (hide 2) (grind-reals))))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (grind)
   (("1" (grind-reals))
    ("2"
     (mult-by -8 "lb(Y)" -)
     (case "ub(X1) * lb(Y) <= ub(X1) * lb(Y1)")
     (("1" (assert)) ("2" (hide -1 2) (grind-reals))))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (case "Ge(Y,0)")
   (("1" (rewrite "pXp_fundamental"))
    ("2"
     (case "Le(Y,0)")
     (("1"
       (rewrite "Mult_Neg_right")
       (lemma "Mult_Neg_right")
       (inst -1 "X" "Y")
       (replaces -1)
       (rewrite "Neg_fundamental")
       (hide 2 3)
       (rewrite "pXp_fundamental")
       (("1" (hide 2) (grind)) ("2" (hide 2) (grind))
        ("3" (hide 2) (grind))))
      ("2"
       (case "Ge(Y1,0)")
       (("1" (rewrite "pXpm_fundamental") (hide 4) (grind))
        ("2"
         (case "Le(Y1,0)")
         (("1"
           (rewrite "Mult_Neg_right")
           (lemma "Mult_Neg_right")
           (inst -1 "X" "Y")
           (replaces -1)
           (rewrite "Neg_fundamental")
           (hide 5)
           (rewrite "pXpm_fundamental")
           (("1" (hide 2) (grind)) ("2" (hide 2) (grind))
            ("3" (hide 2) (grind)) ("4" (hide 2) (grind))))
          ("2"
           (rewrite "pXmm_fundamental")
           (("1" (hide 6) (grind)) ("2" (hide 6) (grind))))))))))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (rewrite "Mult_Neg_left")
   (lemma "Mult_Neg_left")
   (inst -1 "X" "Y")
   (replaces -1)
   (rewrite "Neg_fundamental")
   (hide 2)
   (rewrite "pX_fundamental")
   (("1" (hide 2) (grind)) ("2" (hide 2) (grind)) ("3" (hide 2) (grind))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (grind)
   (("1" (grind-reals))
    ("2"
     (flip-ineq 1)
     (swap-rel -1)
     (case "ub(X1) * ub(Y1) <= ub(X) * ub(Y)")
     (("1" (assert)) ("2" (hide -1 2) (grind-reals))))
    ("3"
     (case "lb(X1) * lb(Y1) >= 0")
     (("1"
       (case "ub(X) * lb(Y) <= 0")
       (("1" (assert)) ("2" (hide -1 2) (grind-reals))))
      ("2" (hide 2) (grind-reals))))
    ("4"
     (case "lb(X1) * lb(Y1) >= 0")
     (("1"
       (case "lb(X) * ub(Y) <= 0")
       (("1" (assert)) ("2" (hide -1 2 3) (grind-reals))))
      ("2" (hide 2 3) (grind-reals))))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (lemma "Member_Incl")
   (inst -1 "Mult(X1,Y1)" "Mult(X,Y)")
   (assert)
   (hide 2)
   (split 1)
   (("1" (grind) (grind-reals))
    ("2"
     (case-replace "Mult(X1,Y1) = pXm(X1,Y1)")
     (("1"
       (hide -1)
       (skeep)
       (case "EXISTS(x1,y1:real):x = x1*y1 AND x1 ## X AND y1 ## Y")
       (("1" (skeep -1) (replaces -1) (rewrite "Mult_inclusion"))
        ("2"
         (hide 2)
         (expand "pXm")
         (expand "[||]")
         (case-replace "ub(X1) = 0")
         (("1" (grind))
          ("2"
           (inst 2 "ub(X1)" "x/ub(X1)")
           (("1"
             (grind)
             (("1"
               (case "x/ub(X1) <= ub(Y1)")
               (("1" (assert)) ("2" (grind-reals))))
              ("2"
               (case "x/ub(X1) >= lb(Y1)")
               (("1" (assert)) ("2" (grind-reals))))))
            ("2" (assert))))))))
      ("2" (hide 2) (grind))))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "Zeroin?")
   (flatten)
   (lemma "Member_Incl")
   (inst -1 "Mult(X1,Y1)" "Mult(X,Y)")
   (assert)
   (hide 2)
   (split 1)
   (("1"
     (grind)
     (("1" (grind-reals)) ("2" (grind-reals)) ("3" (grind-reals))
      ("4" (grind-reals))))
    ("2"
     (case-replace "Mult(X1,Y1) = mXm(X1,Y1)")
     (("1"
       (hide -1)
       (skeep)
       (case "EXISTS(x1,y1:real):x = x1*y1 AND x1 ## X AND y1 ## Y")
       (("1" (skeep -1) (replaces -1) (rewrite "Mult_inclusion"))
        ("2"
         (hide 2)
         (expand "##" -1)
         (flatten)
         (expand "mXm")
         (expand "[||]")
         (rewrite "min_le")
         (rewrite "le_max")
         (ground)
         (("1"
           (inst 1 "lb(X1)" "x/lb(X1)")
           (grind)
           (("1"
             (case "x/lb(X1) <= ub(Y1)")
             (("1" (assert)) ("2" (grind-reals))))
            ("2"
             (case "x/lb(X1) >= lb(Y1)")
             (("1" (assert)) ("2" (hide 2) (grind-reals))))))
          ("2"
           (inst 1 "x/ub(Y1)" "ub(Y1)")
           (grind)
           (("1"
             (case "x/ub(Y1) <= ub(X1)")
             (("1" (assert)) ("2" (grind-reals))))
            ("2"
             (case "x/ub(Y1) >= lb(X1)")
             (("1" (assert)) ("2" (grind-reals))))))
          ("3"
           (inst 1 "x/lb(Y1)" "lb(Y1)")
           (grind)
           (("1"
             (case "x/lb(Y1) <= ub(X1)")
             (("1" (assert)) ("2" (grind-reals))))
            ("2"
             (case "x/lb(Y1) >= lb(X1)")
             (("1" (assert)) ("2" (grind-reals))))))
          ("4"
           (inst 1 "ub(X1)" "x/ub(X1)")
           (grind)
           (("1"
             (case "x/ub(X1) <= ub(Y1)")
             (("1" (assert)) ("2" (grind-reals))))
            ("2"
             (case "x/ub(X1) >= lb(Y1)")
             (("1" (assert)) ("2" (grind-reals))))))))))
      ("2" (hide 2) (grind))))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (case "Ge(Y,0)")
   (("1"
     (rewrite "Mult_comm")
     (lemma "Mult_comm")
     (inst -1 "X" "Y")
     (replaces -1)
     (rewrite "pX_fundamental"))
    ("2"
     (case "Le(Y,0)")
     (("1"
       (hide 1)
       (rewrite "Mult_comm")
       (lemma "Mult_comm")
       (inst -1 "X" "Y")
       (replaces -1)
       (rewrite "nX_fundamental"))
      ("2"
       (case "Zeroin?(Y)")
       (("1"
         (hide 1 2)
         (case "Ge(X1,0) AND Ge(Y1,0)")
         (("1" (flatten) (rewrite "pmXpm_fundamental"))
          ("2"
           (case "Ge(X1,0) AND Le(Y1,0)")
           (("1"
             (hide 1)
             (flatten)
             (rewrite "Mult_Neg_right")
             (lemma "Mult_Neg_right")
             (inst -1 "X" "Y")
             (replaces -1)
             (rewrite "Neg_fundamental")
             (hide 2)
             (rewrite "pmXpm_fundamental")
             (("1" (hide 2) (grind)) ("2" (hide 2) (grind))
              ("3" (hide 2) (grind)) ("4" (hide 2) (grind))))
            ("2"
             (case "Le(X1,0) AND Ge(Y1,0)")
             (("1"
               (hide 1 2)
               (flatten)
               (rewrite "Mult_Neg_left")
               (lemma "Mult_Neg_left")
               (inst -1 "X" "Y")
               (replaces -1)
               (rewrite "Neg_fundamental")
               (hide 2)
               (rewrite "pmXpm_fundamental")
               (("1" (hide 2) (grind)) ("2" (hide 2) (grind))
                ("3" (hide 2) (grind)) ("4" (hide 2) (grind))))
              ("2"
               (case "Le(X1,0) AND Le(Y1,0)")
               (("1"
                 (hide 1 2 3)
                 (flatten)
                 (rewrite "Mult_Neg_Neg")
                 (lemma "Mult_Neg_Neg")
                 (inst -1 "X" "Y")
                 (replaces -1)
                 (rewrite "pmXpm_fundamental")
                 (("1" (hide 2) (grind)) ("2" (hide 2) (grind))
                  ("3" (hide 2) (grind)) ("4" (hide 2) (grind))
                  ("5" (hide 2) (grind)) ("6" (hide 2) (grind))
                  ("7" (hide 2) (grind)) ("8" (hide 2) (grind))))
                ("2"
                 (case "Ge(X1,0) AND Zeroin?(Y1)")
                 (("1"
                   (hide 1 2 3 4)
                   (flatten)
                   (rewrite "pmXmm_fundamental"))
                  ("2"
                   (case "Le(X1,0) AND Zeroin?(Y1)")
                   (("1"
                     (hide 1 2 3 4 5)
                     (flatten)
                     (rewrite "Mult_Neg_left")
                     (lemma "Mult_Neg_left")
                     (inst -1 "X" "Y")
                     (replaces -1)
                     (rewrite "Neg_fundamental")
                     (hide 2)
                     (rewrite "pmXmm_fundamental")
                     (("1" (hide 2) (grind)) ("2" (hide 2) (grind))
                      ("3" (hide 2) (grind)) ("4" (grind))))
                    ("2"
                     (case "Ge(Y1,0) AND Zeroin?(X1)")
                     (("1"
                       (hide 1 2 3 4 5 6)
                       (flatten)
                       (rewrite "Mult_comm")
                       (lemma "Mult_comm")
                       (inst -1 "X" "Y")
                       (replaces -1)
                       (rewrite "pmXmm_fundamental"))
                      ("2"
                       (case "Le(Y1,0) AND Zeroin?(X1)")
                       (("1"
                         (hide 1 2 3 4 5 6 7)
                         (flatten)
                         (rewrite "Mult_comm")
                         (lemma "Mult_comm")
                         (inst -1 "X" "Y")
                         (replaces -1)
                         (rewrite "Mult_Neg_left")
                         (lemma "Mult_Neg_left")
                         (inst -1 "Y" "X")
                         (replaces -1)
                         (rewrite "Neg_fundamental")
                         (hide 2)
                         (rewrite "pmXmm_fundamental")
                         (("1" (hide 2) (grind)) ("2" (hide 2) (grind))
                          ("3" (hide 2) (grind)) ("4" (hide 2) (grind))))
                        ("2"
                         (case "Zeroin?(X1) AND Zeroin?(Y1)")
                         (("1"
                           (hide 1 2 3 4 5 6 7 8)
                           (flatten)
                           (rewrite "mmXmm_fundamental"))
                          ("2"
                           (lemma "Trichotomy")
                           (inst-cp -1 "X1")
                           (inst -1 "Y1")
                           (assert)
                           (ground))))))))))))))))))))
        ("2" (hide 4) (grind))))))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (case "Ge(X,0)")
   (("1" (rewrite "pX_fundamental"))
    ("2"
     (case "Le(X,0)")
     (("1" (rewrite "nX_fundamental"))
      ("2"
       (case "Zeroin?(X)")
       (("1" (rewrite "mX_fundamental"))
        ("2" (hide -2 -4 4) (grind))))))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (grind)
   (("1" (grind-reals))
    ("2"
     (flip-ineq 1)
     (swap-rel -1)
     (case "ub(X1) * ub(X1) <= ub(X) * ub(X)")
     (("1" (assert)) ("2" (hide -1 2) (grind-reals))))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (case "Proper?(X)")
   (("1"
     (lemma "Trichotomy")
     (inst -1 "X")
     (assert)
     (split -1)
     (("1" (rewrite "Sq_p_fundamental"))
      ("2"
       (rewrite "Sq_Neg_eq")
       (lemma "Sq_Neg_eq")
       (inst -1 "X")
       (replaces -1)
       (rewrite "Sq_p_fundamental")
       (("1" (hide 2) (grind)) ("2" (hide 2) (grind))
        ("3" (hide 2) (grind))))
      ("3"
       (lemma "Trichotomy")
       (inst -1 "X1")
       (assert)
       (split -1)
       (("1" (rewrite "Sq_pm_fundamental"))
        ("2"
         (rewrite "Sq_Neg_eq")
         (lemma "Sq_Neg_eq")
         (inst -1 "X")
         (replaces -1)
         (rewrite "Sq_pm_fundamental")
         (("1" (hide 2) (grind)) ("2" (hide 2) (grind))
          ("3" (hide 2) (grind)) ("4" (hide 2) (grind))))
        ("3"
         (grind)
         (("1" (grind-reals))
          ("2"
           (flip-ineq 1)
           (swap-rel -1)
           (case "ub(X1) * ub(X1) <= ub(X) * ub(X)")
           (("1" (assert)) ("2" (hide -1 2) (grind-reals))))
          ("3"
           (case "lb(X1) * lb(X1) <= lb(X) * lb(X)")
           (("1" (assert)) ("2" (grind-reals))))
          ("4" (grind-reals))))))))
    ("2" (hide 2) (grind))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "Div")
   (case "ub(Y1) /= 0 AND lb(Y1) /= 0 AND ub(Y) /= 0 AND lb(Y) /= 0")
   (("1"
     (flatten)
     (assert)
     (rewrite "Mult_fundamental")
     (("1" (hide 6) (grind) (("1" (grind-reals)) ("2" (grind-reals))))
      ("2"
       (hide 6)
       (grind)
       (("1" (grind-reals)) ("2" (grind-reals)) ("3" (grind-reals))
        ("4" (grind-reals))))))
    ("2" (hide 2) (grind))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "Pow")
   (assert)
   (split -4)
   (("1"
     (assert)
     (expand "<<")
     (expand "[||]")
     (flatten)
     (rewrite "pow_incr_odd")
     (rewrite "pow_incr_odd"))
    ("2"
     (assert)
     (case "Ge(X1,0)")
     (("1"
       (assert)
       (expand "<<")
       (expand "[||]")
       (expand "Ge")
       (flatten)
       (rewrite "pow_incr_pos")
       (rewrite "pow_incr_pos"))
      ("2" (hide 2) (grind))))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "Pow")
   (assert)
   (lemma "even_or_odd")
   (inst?)
   (assert)
   (case "NOT Ge(X,0) AND NOT Le(X,0)")
   (("1"
     (flatten)
     (assert)
     (expand "<<")
     (expand "[||]")
     (flatten)
     (lemma "pow_even_pos")
     (inst?)
     (assert)
     (expand "max")
     (lift-if)
     (expand "Ge")
     (expand "Le")
     (flatten)
     (split 4)
     (("1" (flatten) (rewrite "pow_incr_pos"))
      ("2"
       (flatten)
       (expand "Zeroin?")
       (flatten)
       (assert)
       (hide 3 4)
       (case "ub(X1)^n <= ub(X)^n")
       (("1" (assert)) ("2" (rewrite "pow_incr_pos"))))))
    ("2" (hide -4 2 3) (grind))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (case "Ge(X1,0)")
   (("1" (rewrite "Pow_pm_fundamental"))
    ("2"
     (case "Le(X1,0)")
     (("1"
       (rewrite "Pow_Neg_even")
       (lemma "Pow_Neg_even")
       (inst -1 "X" "n")
       (assert)
       (split -1)
       (("1"
         (replaces -1)
         (rewrite "Pow_pm_fundamental")
         (("1" (hide -5 3) (grind)) ("2" (hide -5 3) (grind))
          ("3" (hide -5 3) (grind)) ("4" (hide -5 3) (grind))))
        ("2" (hide -5 3) (grind))))
      ("2"
       (case "Zeroin?(X1)")
       (("1"
         (expand "Pow")
         (assert)
         (lemma "even_or_odd")
         (inst? -)
         (assert)
         (case "NOT Ge(X,0) AND NOT Le(X,0)")
         (("1"
           (flatten)
           (assert)
           (expand "<<")
           (expand "[||]")
           (flatten)
           (rewrite "max_le")
           (rewrite "le_max")
           (rewrite "le_max")
           (expand "Zeroin?")
           (expand "Ge")
           (expand "Le")
           (flatten)
           (split 6)
           (("1"
             (flatten)
             (lemma "pow_decr_even")
             (inst -1 "n" "lb(X1)" "lb(X)")
             (assert))
            ("2"
             (flatten)
             (lemma "pow_incr_pos")
             (inst -1 "n" "ub(X1)" "ub(X)")
             (assert))))
          ("2" (hide -5 2 5) (grind))))
        ("2" (hide (-4 4)) (grind))))))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (case "n=0")
   (("1" (expand "Pow") (assert))
    ("2"
     (case "odd?(n) OR Ge(X,0)")
     (("1" (rewrite "Pow_p_fundamental"))
      ("2"
       (flatten)
       (lemma "even_or_odd")
       (inst?)
       (assert)
       (case "Le(X,0)")
       (("1"
         (rewrite "Pow_Neg_even")
         (lemma "Pow_Neg_even")
         (inst -1 "X" "n")
         (assert)
         (split -1)
         (("1"
           (replaces -1)
           (rewrite "Pow_p_fundamental")
           (("1" (hide -2 2 4 5) (grind)) ("2" (hide -2 2 4 5) (grind))
            ("3" (hide -2 2 4 5) (grind))))
          ("2" (hide -2 2 4 5) (grind))))
        ("2"
         (case "Zeroin?(X)")
         (("1" (lemma "Pow_m_fundamental") (inst?) (assert))
          ("2" (hide -1 3 5 6) (grind))))))))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (grind)
   (("1" (grind-reals :theories "extra_tegies"))
    ("2" (grind-reals :theories "extra_tegies"))
    ("3" (grind-reals :theories "extra_tegies"))
    ("4" (grind-reals :theories "extra_tegies"))
    ("5" (grind-reals :theories "extra_tegies"))
    ("6" (grind-reals :theories "extra_tegies"))
    ("7" (grind-reals :theories "extra_tegies"))
    ("8" (grind-reals :theories "extra_tegies"))))


proof_type: j_proof
decl_type: tcc
library: interval_arith
theory: interval
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp :preds? t)
   (grind)
   (("1" (grind-reals)) ("2" (grind-reals)) ("3" (grind-reals))
    ("4" (grind-reals))))


proof_type: j_proof
decl_type: tcc
library: interval_arith
theory: interval
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp :preds? t)
   (grind)
   (("1" (grind-reals)) ("2" (grind-reals)) ("3" (grind-reals))
    ("4" (grind-reals)) ("5" (grind-reals)) ("6" (grind-reals))
    ("7" (grind-reals)) ("8" (grind-reals)) ("9" (grind-reals))
    ("10" (grind-reals)) ("11" (grind-reals)) ("12" (grind-reals))
    ("13" (grind-reals)) ("14" (grind-reals))))


proof_type: j_proof
decl_type: tcc
library: interval_arith
theory: interval
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp :preds? t)
   (grind)
   (("1" (grind-reals)) ("2" (grind-reals)) ("3" (grind-reals))
    ("4" (grind-reals)) ("5" (grind-reals)) ("6" (grind-reals))
    ("7" (grind-reals)) ("8" (grind-reals)) ("9" (grind-reals))
    ("10" (grind-reals)) ("11" (grind-reals)) ("12" (grind-reals))
    ("13" (grind-reals)) ("14" (grind-reals)) ("15" (grind-reals))
    ("16" (grind-reals))))


proof_type: j_proof
decl_type: tcc
library: interval_arith
theory: interval
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp :preds? t)
   (grind)
   (("1" (grind-reals)) ("2" (grind-reals)) ("3" (grind-reals))
    ("4" (grind-reals)) ("5" (grind-reals)) ("6" (grind-reals))
    ("7" (grind-reals)) ("8" (grind-reals)) ("9" (grind-reals))
    ("10" (grind-reals))))


proof_type: j_proof
decl_type: tcc
library: interval_arith
theory: interval
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep :preds? t)
   (lemma "Proper_Member")
   (inst-cp -1 "X")
   (inst -1 "Y")
   (assert)
   (skolem -1 "y")
   (skolem -2 "x")
   (lemma "Member_Proper")
   (inst? -1 :where 1)
   (inst -1 "x*y")
   (assert)
   (rewrite "Mult_inclusion"))


proof_type: j_proof
decl_type: tcc
library: interval_arith
theory: interval
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep :preds? t)
   (lemma "Proper_Member")
   (inst-cp -1 "X")
   (inst -1 "Y")
   (assert)
   (skolem -1 "y")
   (skolem -2 "x")
   (lemma "Member_Proper")
   (inst? -1 :where 1)
   (inst -1 "x/y")
   (("1" (assert) (rewrite "Div_inclusion"))
    ("2" (hide-all-but (-1 -5 1)) (grind))))


proof_type: j_proof
decl_type: tcc
library: interval_arith
theory: interval
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp :preds? t)
   (grind)
   (("1" (mult-ineq -1 -1)) ("2" (mult-ineq -1 -1 (- -)))
    ("3" (mult-ineq -1 -1 (- -)) (grind)) ("4" (grind-reals))))


proof_type: j_proof
decl_type: tcc
library: interval_arith
theory: interval
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep :preds? t)
   (lemma "Proper_Member")
   (inst?)
   (assert)
   (skeep)
   (lemma "Member_Proper")
   (inst? -1 :where 1)
   (inst -1 "x^n")
   (assert)
   (rewrite "Pow_inclusion"))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_lnexp
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (expand "Exp")
   (lemma "exp_lb_increasing")
   (lemma "exp_ub_increasing")
   (inst - "n")
   (inst - "n")
   (expand "increasing?")
   (inst - "ub(X)" "ub(Y)")
   (inst - "lb(Y)" "lb(X)")
   (assert)
   (expand "<<")
   (expand "[||]")
   (ground))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_lnexp
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (expand "Ln")
   (copy -3)
   (expand "<<" -1)
   (flatten)
   (copy -4)
   (expand "Proper?" -1)
   (case "lb(Y)>0")
   (("1"
     (assert)
     (expand "[||]")
     (expand "<<")
     (flatten)
     (lemma "ln_lb_increasing")
     (inst?)
     (assert)
     (lemma "ln_ub_increasing")
     (inst?)
     (assert))
    ("2" (assert) (expand "Pos?") (expand "Gt") (propax))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_lnexp
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (expand "##")
   (expand* "exp" "Exp")
   (assert)
   (flatten)
   (lemma "exp_bounds")
   (split)
   (("1"
     (inst -1 "n" "lb(X)")
     (flatten)
     (lemma "exp_increasing")
     (expand "increasing?")
     (inst -1 "lb(X)" "x")
     (assert))
    ("2"
     (inst -1 "n" "ub(X)")
     (flatten)
     (lemma "exp_increasing")
     (expand "increasing?")
     (inst -1 "x" "ub(X)")
     (assert))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_lnexp
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (expand "Ln")
   (lift-if)
   (split 1)
   (("1"
     (flatten)
     (expand "##")
     (assert)
     (expand ">")
     (flatten)
     (lemma "ln_bounds")
     (split)
     (("1"
       (inst -1 "n" "lb(X)")
       (flatten)
       (lemma "ln_increasing")
       (expand "increasing?")
       (inst -1 "lb(X)" "x")
       (("1" (assert)) ("2" (assert))))
      ("2"
       (inst -1 "n" "ub(X)")
       (flatten)
       (lemma "ln_increasing")
       (expand "increasing?")
       (inst -1 "x" "ub(X)")
       (("1" (assert)) ("2" (assert))))))
    ("2" (flatten) (hide 2) (grind))))


proof_type: j_proof
decl_type: tcc
library: interval_arith
theory: interval_lnexp
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep :preds? t)
   (lemma "Proper_Member")
   (inst?)
   (assert)
   (skeep)
   (lemma "Member_Proper")
   (inst? -1 :where 1)
   (inst -1 "ln(x)")
   (("1" (assert) (rewrite "Ln_inclusion"))
    ("2" (hide-all-but (-1 -3 1)) (grind))))


proof_type: j_proof
decl_type: tcc
library: interval_arith
theory: interval_lnexp
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep :preds? t)
   (lemma "Proper_Member")
   (inst?)
   (assert)
   (skeep)
   (lemma "Member_Proper")
   (inst? -1 :where 1)
   (inst -1 "exp(x)")
   (assert)
   (rewrite "Exp_inclusion"))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: box
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep :preds? t)
   (expand "ProperBox?")
   (flatten)
   (lemma "every_nth[Interval]")
   (inst?)
   (assert)
   (inst? -1))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: box
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (decompose-equality)
   (expand "vars_in_box?")
   (typepred "vars_in_box_rec(box, length(box), 0)(x!1)")
   (replaces -1)
   (grind))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: box
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "Inclusion?")
   (flatten)
   (assert)
   (skeep)
   (inst? -2)
   (inst? -4)
   (lemma "Incl_trans")
   (inst -1 "nth(box1,i)" "nth(box2,i)" "nth(box,i)")
   (assert))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: box
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "Inclusion?")
   (flatten)
   (typepred "pox")
   (expand "ProperBox?")
   (rewrite "every_nth")
   (rewrite "every_nth")
   (skeep)
   (insteep -3)
   (("1" (insteep -) (lemma "Incl_Proper") (inst?) (assert))
    ("2" (assert))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: box
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep :preds? t)
   (typepred "Lbbox(pox)")
   (expand "Inclusion?")
   (assert)
   (skeep 1 :preds? t)
   (expand "Lbbox")
   (lemma "map_nth_rw[Interval,Interval]")
   (inst -1 "LAMBDA (X: Interval): [| lb(X) |]" "pox" "i")
   (replaces -1)
   (expand "ProperBox?")
   (hide -3)
   (lemma "every_nth[Interval]")
   (inst?)
   (assert)
   (inst? -1)
   (hide-all-but (-1 1))
   (rewrite "lb_inclusion"))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: box
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep :preds? t)
   (typepred "Ubbox(pox)")
   (expand "Inclusion?")
   (assert)
   (skeep 1 :preds? t)
   (expand "Ubbox")
   (lemma "map_nth_rw[Interval,Interval]")
   (inst -1 "LAMBDA (X: Interval): [| ub(X) |]" "pox" "i")
   (replaces -1)
   (expand "ProperBox?")
   (hide -3)
   (lemma "every_nth[Interval]")
   (inst?)
   (assert)
   (inst? -1)
   (hide-all-but (-1 1))
   (rewrite "ub_inclusion"))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: box
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep :preds? t)
   (typepred "Midbox(pox)")
   (expand "Inclusion?")
   (assert)
   (skeep 1 :preds? t)
   (expand "Midbox")
   (lemma "map_nth_rw[Interval,Interval]")
   (inst -1 "LAMBDA (X: Interval): [| midpoint(X) |]" "pox" "i")
   (replaces -1)
   (expand "ProperBox?")
   (hide -3)
   (lemma "every_nth[Interval]")
   (inst?)
   (assert)
   (inst? -1)
   (hide-all-but (-1 1))
   (rewrite "midpoint_inclusion"))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: box
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "vars_in_box?")
   (skeep)
   (expand "Inclusion?")
   (flatten)
   (inst? -3)
   (("1" (inst? -2) (hide -1) (grind :exclude "nth")) ("2" (assert))))


proof_type: t_proof
decl_type: tcc
library: interval_arith
theory: box
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp* :preds? t)
   (iff)
   (split)
   (("1"
     (flatten)
     (split -1)
     (("1" (skosimp* :preds? t) (hide 1) (grind))
      ("2"
       (flatten)
       (skeep :preds? t)
       (case-replace "i!1=k")
       (("1" (hide -5) (assert) (expand "nth") (propax))
        ("2"
         (typepred "v!1(cdr[Interval](box!1), n!1, i!1 + 1)(vs!1)")
         (("1"
           (replaces -1)
           (inst -4 "k")
           (("1" (expand "nth" 2) (assert)) ("2" (assert))))
          ("2" (hide -3 -4 3) (expand "length" -4) (grind))))))))
    ("2"
     (flatten)
     (split)
     (("1"
       (inst -1 "i!1")
       (("1" (expand "nth" -1) (propax)) ("2" (hide 2) (grind))))
      ("2"
       (typepred "v!1(cdr[Interval](box!1), n!1, i!1 + 1)(vs!1)")
       (("1"
         (replaces -1)
         (skeep :preds? t)
         (case-replace "i!1=k")
         (("1" (assert)) ("2" (inst -3 "k") (expand "nth" -3) (assert))))
        ("2" (hide -1 2) (expand "length" -2) (grind))))))))


proof_type: t_proof
decl_type: tcc
library: interval_arith
theory: box
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "vars_in_box?")
   (skeep)
   (rewrite "midpoint_inclusion")
   (hide 2)
   (typepred "pox")
   (expand "ProperBox?")
   (flatten)
   (rewrite "every_nth")
   (inst? -))


proof_type: j_proof
decl_type: tcc
library: interval_arith
theory: box
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep :preds? t)
   (typepred "Lbbox(pox)")
   (expand "ProperBox?")
   (lemma "every_nth[Interval]")
   (inst? :where 1)
   (replaces -1)
   (skeep 1)
   (expand "Lbbox" 1)
   (lemma "map_nth_rw[Interval,Interval]")
   (inst?)
   (("1" (replaces -1) (grind)) ("2" (hide 2) (typepred "i") (assert))))


proof_type: j_proof
decl_type: tcc
library: interval_arith
theory: box
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep :preds? t)
   (typepred "Ubbox(pox)")
   (expand "ProperBox?")
   (lemma "every_nth[Interval]")
   (inst? :where 1)
   (replaces -1)
   (skeep 1)
   (expand "Ubbox" 1)
   (lemma "map_nth_rw[Interval,Interval]")
   (inst?)
   (("1" (replaces -1) (grind)) ("2" (hide 2) (typepred "i") (assert))))


proof_type: j_proof
decl_type: tcc
library: interval_arith
theory: box
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep :preds? t)
   (typepred "Midbox(pox)")
   (expand "ProperBox?")
   (lemma "every_nth[Interval]")
   (inst? :where 1)
   (replaces -1)
   (skeep 1)
   (expand "Midbox" 1)
   (lemma "map_nth_rw[Interval,Interval]")
   (inst?)
   (("1" (replaces -1) (grind)) ("2" (hide 2) (typepred "i") (assert))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_expr
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (deftactic binop
    (then (skolem 1 ("r1" "r2") :skolem-typepreds? t) (replaces -)
     (flatten) (skeep) (insteep) (insteep) (expand "well_typed?" 1)
     (expand "Eval" -3)
     (branch (case "Proper?(Eval(r1, box)) AND Proper?(Eval(r2, box))")
      ((then (flatten) (assert))
       (then (hide-all-but (-3 1)) (lemma "Proper_NonEmpty")
        (ground))))))
   (deftactic unop
    (then (skolem 1 "r1" :skolem-typepreds? t) (replaces -1) (flatten)
     (skeep) (insteep -) (insteep -) (expand "well_typed?" 1)
     (expand "Eval" -2)
     (branch (case "Proper?(Eval(r1, box))")
      ((then (flatten) (assert))
       (then (hide-all-but (-2 1)) (lemma "Proper_NonEmpty")
        (ground))))))
   (induct "expr")
   (("1" (typepred "expr!1") (assert))
    ("2" (skeep) (hide -1) (expand "well_typed?") (propax))
    ("3"
     (skeep)
     (hide -1)
     (skeep)
     (expand "well_typed?")
     (expand "Proper?")
     (expand "Eval" -1)
     (assert)
     (grind))
    ("4" (binop)) ("5" (unop)) ("6" (unop) (grind)) ("7" (binop))
    ("8" (binop)) ("9" (unop)) ("10" (skolem 1 (_ "n")) (unop))
    ("11"
     (skolem 1 ("r1" "r2") :skolem-typepreds? t)
     (replaces -)
     (flatten)
     (skeep)
     (insteep)
     (insteep)
     (expand "well_typed?" 1)
     (expand "Eval" -3)
     (case "Proper?(Eval(r1, box)) AND Proper?(Eval(r2, box)) AND Zeroless?(Eval(r2,box))")
     (("1" (flatten) (assert))
      ("2" (hide-all-but (-3 1)) (lemma "Proper_NonEmpty") (ground))))
    ("12"
     (skolem 1 ("Pre" "f" "F" _))
     (skolem 1 "r1" :skolem-typepreds? t)
     (replaces -1)
     (flatten)
     (skeep)
     (insteep)
     (expand "well_typed?" 1)
     (expand "Eval" -2)
     (case "Proper?(Eval(r1, box)) AND Pre(Eval(r1, box))")
     (("1" (flatten) (assert))
      ("2" (hide-all-but (-2 1)) (lemma "Proper_NonEmpty") (ground))))
    ("13"
     (skolem 1 ("r1" "r2") :skolem-typepreds? t)
     (replaces -)
     (flatten)
     (skeep)
     (insteep)
     (expand "well_typed?" 1)
     (expand "Eval" -3)
     (case-replace "Proper?(Eval(r1, box))")
     (("1" (assert) (inst? -3) (assert))
      ("2" (hide-all-but (-3 1)) (lemma "Proper_NonEmpty") (ground))))
    ("14" (assert)) ("15" (assert)) ("16" (assert)) ("17" (assert))
    ("18" (assert)) ("19" (assert)) ("20" (assert)) ("21" (assert))
    ("22" (assert))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_expr
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (deftactic binop
    (then (skolem 1 ("r1" "r2") :skolem-typepreds? t) (flatten)
     (replaces (-1 -2)) (skeep) (insteep) (insteep)
     (expand "well_typed?" -3) (flatten) (assert) (expand "eval" 1)
     (expand "Eval" 1) (lemma "Member_Proper") (copy -1)
     (inst? -1 :where -3) (inst? -2 :where -4) (assert)
     (let ((lm
            (format nil "~a_inclusion"
                    (operator (extra-get-expr '(! 1 r))))))
       (rewrite lm))))
   (deftactic unop
    (then (skolem 1 "r" :skolem-typepreds? t) (flatten) (replaces -1)
     (skeep) (insteep) (insteep) (expand "well_typed?" -2) (flatten)
     (assert) (expand "eval" 1) (expand "Eval" 1) (lemma "Member_Proper")
     (inst? -1 :where -2) (assert)
     (let ((lm
            (format nil "~a_inclusion"
                    (operator (extra-get-expr '(! 1 r))))))
       (rewrite lm))))
   (induct "expr")
   (("1" (typepred "expr!1") (assert))
    ("2"
     (skeep :preds? t)
     (hide -2)
     (skeep)
     (expand* "Eval" "eval")
     (expand "Includes?")
     (propax))
    ("3"
     (skeep)
     (hide -1)
     (skeep)
     (expand* "Eval" "eval" "well_typed?")
     (assert)
     (typepred "vs")
     (expand "vars_in_box?")
     (inst? -1))
    ("4" (binop)) ("5" (unop)) ("6" (unop)) ("7" (binop)) ("8" (binop))
    ("9" (unop)) ("10" (skolem 1 (_ "n")) (unop))
    ("11"
     (skolem 1 ("r1" "r2") :skolem-typepreds? t)
     (flatten)
     (replaces (-1 -2))
     (skeep)
     (insteep)
     (insteep)
     (expand "well_typed?" -3)
     (flatten)
     (assert)
     (expand "eval" 1)
     (expand "Eval" 1)
     (lemma "Member_Proper")
     (copy -1)
     (inst? -1 :where -3)
     (inst? -2 :where -4)
     (assert)
     (lift-if)
     (split 1)
     (("1"
       (flatten)
       (replaces -1)
       (hide-all-but (-2 -4 -7))
       (grind :exclude "Eval"))
      ("2" (flatten) (rewrite "Div_inclusion"))))
    ("12"
     (skolem 1 ("Pre" "f" "F" _))
     (skolem 1 "r" :skolem-typepreds? t)
     (flatten)
     (replaces -1)
     (skeep)
     (insteep)
     (expand "well_typed?" -2)
     (flatten)
     (assert)
     (lemma "Member_Proper")
     (inst? -1 :where -2)
     (assert)
     (expand "eval" 1)
     (expand "Eval" 1)
     (typepred "F")
     (expand "Inclusion?")
     (inst? -1)
     (assert))
    ("13"
     (skolem 1 ("r1" "r2") :skolem-typepreds? t)
     (flatten)
     (replaces -)
     (skeep)
     (insteep -)
     (expand "well_typed?" -3)
     (flatten)
     (assert)
     (expand "eval" 1)
     (expand "Eval" 1)
     (inst? - :where -4)
     (assert)
     (rewrite "length_append")
     (case-replace "Proper?(Eval(r1,box))")
     (("1"
       (inst? -)
       (hide 2)
       (expand "vars_in_box?")
       (skeep)
       (case-replace "i=length(box)")
       (("1"
         (assert)
         (rewrite "nth_append[Interval]")
         (expand "nth")
         (propax))
        ("2"
         (assert)
         (rewrite "nth_append[Interval]")
         (("1"
           (typepred "i")
           (rewrite "length_append")
           (assert)
           (typepred "vs")
           (expand "vars_in_box?")
           (insteep))
          ("2" (typepred "i") (rewrite "length_append"))))))
      ("2" (assert) (hide-all-but (-1 1)) (grind :exclude "Eval"))))
    ("14" (assert)) ("15" (assert)) ("16" (assert)) ("17" (assert))
    ("18" (assert)) ("19" (assert)) ("20" (assert)) ("21" (assert))
    ("22" (assert))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_expr
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep*)
   (beta)
   (flatten)
   (lemma "Proper_well_typed")
   (inst?)
   (assert)
   (lemma "Eval_inclusion")
   (inst?)
   (assert))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_expr
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (lemma "Eval_inclusion")
   (inst? -1)
   (inst -1 "midvars(pox)")
   (assert)
   (lemma "Member_Proper")
   (inst? -1)
   (assert))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_expr
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: test
script:
  (""
   (deftactic binop
    (then (skolem 1 ("r1" "r2") :skolem-typepreds? t) (flatten)
     (replaces (-1 -2)) (skeep) (insteep) (insteep) (assert)
     (expand "well_typed?" -4) (label "PP" -5) (flatten) (assert)
     (expand "Eval" ("PP" 1))
     (branch (case "Proper?(Eval(r1, box)) AND Proper?(Eval(r2, box))")
      ((then (flatten) (assert) (lemma "Incl_Proper") (copy -1)
        (inst? -1 :where -5) (inst? -2 :where -6) (assert)
        (let ((lm
               (format nil "~a_fundamental"
                       (operator (extra-get-expr '(! 1 r))))))
          (rewrite lm)))
       (then (hide-all-but ("PP" 1)) (lemma "Proper_NonEmpty")
        (ground))))))
   (deftactic unop
    (then (skolem 1 "r" :skolem-typepreds? t) (flatten) (replaces -1)
     (skeep) (insteep) (assert) (expand "well_typed?" -3) (label "PP" -4)
     (assert) (expand "Eval" ("PP" 1))
     (branch (case "Proper?(Eval(r, box))")
      ((then (assert) (lemma "Incl_Proper") (inst? -1 :where -3) (assert)
        (let ((lm
               (format nil "~a_fundamental"
                       (operator (extra-get-expr '(! 1 r))))))
          (rewrite lm)))
       (then (hide-all-but ("PP" 1)) (assert)
        (rewrite "Proper_NonEmpty"))))))
   (induct "expr")
   (("1" (typepred "expr!1") (assert))
    ("2" (skeep) (hide -1) (expand "Eval") (assert))
    ("3"
     (skeep)
     (hide -1)
     (skeep)
     (expand "well_typed?")
     (expand "Inclusion?")
     (flatten)
     (expand "Eval")
     (assert)
     (inst? -))
    ("4" (binop)) ("5" (unop)) ("6" (unop) (grind)) ("7" (binop))
    ("8" (binop)) ("9" (unop)) ("10" (skolem 1 (_ "n")) (unop))
    ("11"
     (skolem 1 ("r1" "r2") :skolem-typepreds? t)
     (flatten)
     (replaces (-1 -2))
     (skeep)
     (insteep)
     (insteep)
     (assert)
     (expand "well_typed?" -4)
     (label "PP" -5)
     (flatten)
     (assert)
     (expand "Eval" ("PP" 1))
     (case "Proper?(Eval(r1, box)) AND Proper?(Eval(r2, box))")
     (("1"
       (flatten)
       (assert)
       (lemma "Incl_Proper")
       (copy -1)
       (inst? -1 :where -5)
       (inst? -2 :where -6)
       (assert)
       (lift-if 1)
       (split 1)
       (("1" (flatten) (assert) (rewrite "Div_fundamental"))
        ("2" (flatten) (assert) (rewrite "Proper_NonEmpty"))))
      ("2" (hide-all-but ("PP" 1)) (lemma "Proper_NonEmpty") (ground))))
    ("12"
     (skolem 1 ("Pre" "f" "F" _))
     (skolem 1 "r" :skolem-typepreds? t)
     (flatten)
     (replaces -1)
     (skeep)
     (insteep)
     (assert)
     (expand "well_typed?" -3)
     (label "PP" -4)
     (flatten)
     (assert)
     (expand "Eval" ("PP" 1))
     (case "Proper?(Eval(r, box))")
     (("1"
       (assert)
       (lemma "Incl_Proper")
       (inst? -1 :where -3)
       (assert)
       (lift-if 1)
       (split)
       (("1"
         (flatten)
         (assert)
         (typepred "F")
         (expand "Fundamental?")
         (inst? -)
         (assert))
        ("2" (flatten) (rewrite "Proper_NonEmpty"))))
      ("2"
       (hide-all-but ("PP" 1))
       (assert)
       (rewrite "Proper_NonEmpty"))))
    ("13"
     (skolem 1 ("r1" "r2") :skolem-typepreds? t)
     (flatten)
     (replaces (-1 -2))
     (skeep)
     (insteep)
     (assert)
     (expand "well_typed?" -4)
     (flatten)
     (assert)
     (label "PP" -6)
     (expand "Eval" ("PP" 1))
     (case "Proper?(Eval(r1, box)) AND Proper?(Eval(r2, append(box, (: Eval(r1, box) :))))")
     (("1"
       (flatten)
       (assert)
       (lemma "Incl_Proper")
       (copy -1)
       (inst? -1 :where -5)
       (copy -7)
       (expand "Inclusion?" -1)
       (flatten)
       (inst -8 "append(box, (: Eval(r1, box) :))"
        "append(pox, (: Eval(r1, pox) :))")
       (("1"
         (case "length(append(box, (: Eval(r1, box) :))) = length(append(pox, (: Eval(r1, pox) :)))")
         (("1"
           (inst? -5 :where -9)
           (assert)
           (assert)
           (hide 2)
           (expand "Inclusion?" 1)
           (hide -5)
           (skeep :preds? t)
           (rewrite "nth_append")
           (("1"
             (rewrite "nth_append")
             (("1"
               (case-replace "i<length(box)")
               (("1" (assert) (inst? -))
                ("2"
                 (assert)
                 (case "i=length(box)")
                 (("1"
                   (replace -1)
                   (replace -4)
                   (assert)
                   (expand "nth" 2)
                   (propax))
                  ("2" (hide 3) (rewrite "length_append") (assert))))))
              ("2" (rewrite "length_append") (assert))))
            ("2" (rewrite "length_append"))))
          ("2"
           (hide 2)
           (rewrite "length_append")
           (rewrite "length_append")
           (assert))))
        ("2"
         (hide "PP" 2)
         (rewrite "proper_append")
         (hide 2)
         (expand "ProperBox?" 1)
         (expand "every")
         (expand "every")
         (propax))))
      ("2" (hide-all-but ("PP" 1)) (lemma "Proper_NonEmpty") (ground))))
    ("14" (assert)) ("15" (assert)) ("16" (assert)) ("17" (assert))
    ("18" (assert)) ("19" (assert)) ("20" (assert)) ("21" (assert))
    ("22" (assert))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_expr
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (deftactic skeepreds2
    (then (skolem 1 ("r1" "r2") :skolem-typepreds? t) (flatten)
     (replaces (-1 -2)) (skeep) (insteep) (insteep)
     (expand "well_typed?" (-4 1)) (flatten) (assert)))
   (deftactic skeepreds1
    (then (skolem 1 "r" :skolem-typepreds? t) (flatten) (replaces -1)
     (skeep) (insteep) (expand "well_typed?" (-3 1)) (assert)))
   (lemma "Inclusion_Proper")
   (induct "expr")
   (("1" (typepred "expr!1") (assert))
    ("2" (skeep) (hide -1) (expand "well_typed?" 1) (propax))
    ("3"
     (skeep)
     (hide -1)
     (skeep)
     (insteep)
     (expand "well_typed?")
     (expand "Inclusion?")
     (flatten)
     (assert))
    ("4" (skeepreds2)) ("5" (skeepreds1)) ("6" (skeepreds1))
    ("7" (skeepreds2)) ("8" (skeepreds2)) ("9" (skeepreds1))
    ("10" (skolem 1 (_ "n")) (skeepreds1))
    ("11"
     (skeepreds2)
     (insteep)
     (assert)
     (lemma "Eval_fundamental_aux")
     (inst -1 "pox" "box" "r2")
     (assert)
     (lemma "well_typed_Proper")
     (inst? - :where -4)
     (assert)
     (hide-all-but (-1 -2 -8 1))
     (grind :exclude "Eval"))
    ("12"
     (skolem 1 ("Pre" "f" "F" _))
     (skeepreds1)
     (insteep)
     (assert)
     (lemma "Eval_fundamental_aux")
     (inst -1 "pox" "box" "r")
     (assert)
     (flatten)
     (assert)
     (lemma "well_typed_Proper")
     (inst? -1)
     (assert)
     (typepred "Pre")
     (expand "Precondition?")
     (inst? -1)
     (assert))
    ("13"
     (skolem 1 ("r1" "r2") :skolem-typepreds? t)
     (flatten)
     (replaces (-1 -2))
     (skeep)
     (insteep)
     (assert)
     (expand "well_typed?" -4)
     (flatten)
     (assert)
     (expand "well_typed?" 1)
     (inst -2 "append(box, (: Eval(r1, box) :))"
      "append(pox, (: Eval(r1, pox) :))")
     (("1"
       (assert)
       (hide 2)
       (expand "Inclusion?" 1)
       (rewrite "length_append")
       (rewrite "length_append")
       (assert)
       (insteep)
       (assert)
       (expand "Inclusion?")
       (flatten)
       (assert)
       (skeep :preds? t)
       (rewrite "length_append")
       (rewrite "nth_append")
       (rewrite "nth_append")
       (case "i< length(pox)")
       (("1" (assert) (insteep))
        ("2"
         (assert)
         (case-replace "i=length(box)")
         (("1"
           (replace -4)
           (assert)
           (hide 1)
           (expand "nth")
           (lemma "Eval_fundamental_aux")
           (inst?)
           (assert)
           (lemma "well_typed_Proper")
           (inst?)
           (assert))
          ("2" (assert))))))
      ("2"
       (hide 2)
       (rewrite "proper_append")
       (hide 2)
       (expand "ProperBox?" 1)
       (expand "every" 1)
       (expand "every" 1)
       (lemma "well_typed_Proper")
       (inst?)
       (assert))))
    ("14" (assert)) ("15" (assert)) ("16" (assert)) ("17" (assert))
    ("18" (assert)) ("19" (assert)) ("20" (assert)) ("21" (assert))
    ("22" (assert))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_expr
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep*)
   (lemma "Proper_well_typed")
   (inst?)
   (assert)
   (lemma "well_typed_Inclusion")
   (inst?)
   (assert)
   (inst?)
   (assert)
   (lemma "well_typed_Proper")
   (inst? :where -2)
   (assert))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_expr
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep*)
   (lemma "well_typed_Inclusion")
   (inst?)
   (assert)
   (inst? -1)
   (assert)
   (lemma "Eval_fundamental_aux")
   (inst? -1)
   (("1" (assert) (lemma "well_typed_Proper") (inst? -1) (assert))
    ("2" (lemma "Inclusion_Proper") (inst? -) (assert))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_expr
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep*)
   (beta)
   (flatten)
   (lemma "Proper_well_typed")
   (inst?)
   (assert)
   (lemma "Eval_fundamental")
   (inst?)
   (assert)
   (inst? -)
   (assert))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_expr
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep :preds? t)
   (case "v < length(box)")
   (("1"
     (beta)
     (flatten)
     (expand "vars_in_box?")
     (skolem 1 "i1")
     (skolem 2 "i2")
     (typepred "split(v, box)")
     (case-replace "i1=v")
     (("1"
       (case-replace "i2=v")
       (("1"
         (inst -5 "v")
         (flatten)
         (replaces (-5 -6))
         (inst -6 "v")
         (lemma "Halves_inclusion")
         (inst? -)
         (assert))
        ("2"
         (inst -4 "i2")
         (("1" (assert) (flatten) (replaces -5) (inst -6 "i2"))
          ("2" (assert))))))
      ("2"
       (inst -3 "i1")
       (("1" (assert) (flatten) (replaces -3) (inst -5 "i1"))
        ("2" (assert))))))
    ("2"
     (lemma "split_eq")
     (inst -1 "v" "box")
     (("1" (flatten) (assert)) ("2" (assert))))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_expr
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (skoletin*)
   (expand "Inclusion?")
   (typepred "split(v,pox)")
   (assert)
   (replaces (-4 -5) :dir rl)
   (split)
   (("1"
     (skeep)
     (inst - "i")
     (split -)
     (("1"
       (flatten)
       (lemma "Halves_Incl")
       (inst?)
       (assert)
       (typepred "pox")
       (expand "ProperBox?")
       (rewrite "every_nth")
       (inst - "i"))
      ("2" (flatten) (replaces -1) (assert))))
    ("2"
     (skeep)
     (inst - "i")
     (split -)
     (("1"
       (flatten)
       (lemma "Halves_Incl")
       (inst?)
       (assert)
       (typepred "pox")
       (expand "ProperBox?")
       (rewrite "every_nth")
       (inst - "i"))
      ("2" (flatten) (replaces -2) (assert))))))


proof_type: t_proof
decl_type: tcc
library: interval_arith
theory: interval_expr
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (lemma "well_founded_restrict[IntervalExpr,RealExpr]")
   (inst?)
   (expand "well_founded?")
   (propax))


proof_type: t_proof
decl_type: tcc
library: interval_arith
theory: interval_expr
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep :preds? t)
   (skeep 3)
   (name-replace "V" "v1(v - 1, cdr(box))" :hide? t)
   (("1"
     (typepred "V")
     (split)
     (("1" (hide -3) (grind)) ("2" (hide -3) (grind))
      ("3"
       (skeep)
       (case-replace "i=0")
       (("1" (assert) (expand "nth" +) (propax))
        ("2"
         (inst -3 "i-1")
         (("1"
           (assert)
           (split 2)
           (("1" (flatten) (assert) (flatten) (expand "nth" 1) (assert))
            ("2"
             (flatten)
             (assert)
             (expand "nth" 2)
             (flatten)
             (assert))))
          ("2"
           (hide 3)
           (typepred "i")
           (assert)
           (expand "length" -1)
           (assert))))))))
    ("2" (hide 4) (assert))))


proof_type: j_proof
decl_type: tcc
library: interval_arith
theory: interval_expr
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (skeep 3)
   (typepred "v1(v - 1, cdr(box))")
   (("1"
     (replaces (-1 -2))
     (replaces (-1 -2))
     (case "cons[Interval](car[Interval](box), cdr(box)) = box")
     (("1" (assert))
      ("2" (hide 4) (lemma "list_cons_eta[Interval]") (inst -1 "box"))
      ("3" (assert))))
    ("2" (assert))))


proof_type: j_proof
decl_type: tcc
library: interval_arith
theory: interval_expr
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (typepred "pox")
   (expand "ProperBox?")
   (rewrite "every_nth")
   (rewrite "every_nth")
   (rewrite "every_nth")
   (typepred "split(v,pox)")
   (ground)
   (("1"
     (skeep)
     (inst - "i")
     (inst - "i")
     (split -)
     (("1" (flatten) (replaces (-1 -3)) (rewrite "Proper_HalfRight"))
      ("2" (flatten) (assert))))
    ("2"
     (skeep)
     (inst - "i")
     (inst - "i")
     (split -)
     (("1" (flatten) (replaces (-1 -2)) (rewrite "Proper_HalfLeft"))
      ("2" (flatten) (assert))))))


proof_type: j_proof
decl_type: tcc
library: interval_arith
theory: interval_expr_lnexp
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (expand "Inclusion?")
   (skeep :preds? t)
   (expand "ln_safe")
   (case-replace "x <= 0")
   (("1" (hide 1) (grind)) ("2" (assert) (rewrite "Ln_inclusion"))))


proof_type: j_proof
decl_type: tcc
library: interval_arith
theory: interval_expr_lnexp
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (expand "Includes?")
   (expand "e_safe")
   (expand "En")
   (expand "e")
   (rewrite "Exp_inclusion")
   (hide 2)
   (grind))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_trig
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (expand "cos_term")
   (case "FORALL (kk:nat): even?(kk) IMPLIES (-1)^kk = 1")
   (("1"
     (skeep)
     (inst-cp - "2+2*n")
     (hide -1)
     (split -)
     (("1"
       (replaces -1)
       (assert)
       (expand "abs")
       (case "pi_lbn(n)^(4+4*n) < 3.2^(4+4*n)")
       (("1" (mult-by -1 "1/factorial(4+4*n)") (assert))
        ("2"
         (hide 2)
         (lemma "both_sides_expt_pos_lt_aux")
         (inst - "3+4*n" "pi_lbn(n)" "3.2")
         (assert)
         (expand "^")
         (assert)
         (hide 2)
         (lemma "pi_bounds")
         (inst-cp - "n")
         (inst - "3")
         (eval-expr "pi_ubn(3)")
         (assert)
         (ground))))
      ("2" (hide 2) (expand "even?") (inst + "1+n") (assert))))
    ("2"
     (hide 2)
     (skeep)
     (expand "even?")
     (skosimp*)
     (replace -1)
     (lemma "expt_times")
     (inst?)
     (case "(-1)^2 = 1")
     (("1"
       (replaces -1)
       (replaces -1)
       (case "FORALL (jjj:nat): 1^jjj = 1")
       (("1" (inst?) (assert))
        ("2"
         (induct "jjj")
         (("1" (hide-all-but 1) (grind))
          ("2" (skeep) (expand "^") (expand "expt" 1) (assert))))))
      ("2" (hide-all-but 1) (grind))))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_trig
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (expand "<<")
   (flatten)
   (split)
   (("1"
     (expand "Cos")
     (lift-if)
     (lift-if)
     (lift-if)
     (lift-if)
     (assert)
     (lift-if)
     (assert)
     (ground)
     (("1"
       (expand "cos_0_pi")
       (expand "[||]")
       (lemma "cos_lb_nn_strict_decreasing")
       (inst - "n")
       (expand "strict_decreasing?")
       (inst - "ub(X)" "ub(Y)")
       (("1" (assert))
        ("2"
         (case "Proper?(Y)")
         (("1"
           (hide-all-but (-1 -3 1))
           (expand "Proper?")
           (lemma "pi_bounds")
           (inst - "n")
           (lemma "pi_lb_est_le")
           (inst - "n")
           (expand "<<")
           (ground))
          ("2" (expand "Proper?") (ground))))
        ("3"
         (hide-all-but (-1 -3 1))
         (lemma "pi_lb_est_le")
         (inst - "n")
         (expand "Proper?")
         (expand "<<")
         (ground))))
      ("2"
       (case "NOT X = [|0,0|]")
       (("1"
         (hide 2)
         (hide 2)
         (expand "Proper?")
         (expand "[||]")
         (expand "<<")
         (decompose-equality +)
         (("1" (grind :exclude "pi_lb_est"))
          ("2" (grind :exclude "pi_lb_est"))))
        ("2"
         (replace -1)
         (hide-all-but 2)
         (grind :exclude "pi_lb_est"))))
      ("3" (hide (-3 1 2)) (grind :exclude "pi_lb_est"))
      ("4" (hide-all-but (- 4)) (grind :exclude "pi_lb_est"))
      ("5"
       (case "NOT X = [|0,0|]")
       (("1"
         (hide-all-but (- 1))
         (decompose-equality +)
         (("1" (grind :exclude "pi_lbn"))
          ("2" (grind :exclude "pi_lbn"))))
        ("2"
         (replace -1)
         (expand "Neg")
         (expand "[||]" 1)
         (expand "cos_0_pi" 1 1)
         (expand "[||]" 1)
         (expand "cos_0_pi")
         (expand "[||]" 1)
         (expand "cos_lb" + 2)
         (lemma "cos_approx_a0")
         (inst?)
         (replace -1)
         (hide -1)
         (assert)
         (lemma "cos_bounds")
         (inst?)
         (ground))))
      ("6"
       (expand "Neg")
       (expand "cos_0_pi")
       (expand "[||]")
       (rewrite "cos_lb_neg")
       (rewrite "cos_lb_neg")
       (lemma "cos_lb_np_strict_increasing")
       (inst - "n")
       (expand "strict_increasing?")
       (inst - "lb(Y)" "lb(X)")
       (("1" (assert)) ("2" (assert) (expand "<<") (flatten) (assert))
        ("3"
         (assert)
         (lemma "pi_lb_est_le")
         (inst - "n")
         (lemma "pi_bounds")
         (inst?)
         (expand "<<")
         (ground))))
      ("7" (hide-all-but (- 2)) (grind :exclude "pi_lbn"))
      ("8" (hide-all-but (- 3)) (grind :exclude "pi_lbn"))
      ("9"
       (expand "cos_0_pi")
       (expand "cos_npi2_pi2")
       (expand "[||]" 1)
       (lemma "cos_lb_nn_strict_decreasing")
       (inst - "n")
       (expand "strict_decreasing?")
       (inst - "ub(X)" "ub(Y)")
       (("1" (assert))
        ("2"
         (expand "<<")
         (expand "[||]")
         (lemma "pi_bounds")
         (inst - "n")
         (ground))
        ("3"
         (expand "[||]")
         (expand "<<")
         (lemma "pi_bounds")
         (inst - "n")
         (ground)
         (lemma "pi_lb_est_le")
         (inst - "n")
         (ground)
         (expand "Proper?")
         (ground))))
      ("10"
       (expand "Neg")
       (expand "cos_0_pi")
       (expand "cos_npi2_pi2")
       (expand "[||]")
       (rewrite "cos_lb_neg")
       (lemma "cos_lb_np_strict_increasing")
       (inst - "n")
       (expand "strict_increasing?")
       (inst - "lb(Y)" "lb(X)")
       (("1" (assert))
        ("2"
         (expand "<<")
         (lemma "pi_bounds")
         (inst - "n")
         (expand "Proper?")
         (ground))
        ("3"
         (expand "<<")
         (expand "Proper?")
         (lemma "pi_bounds")
         (inst - "n")
         (ground))))
      ("11"
       (expand "cos_npi2_pi2")
       (expand "[||]")
       (expand "<<")
       (flatten)
       (expand "Proper?")
       (case "ub(X) <= 0")
       (("1" (assert))
        ("2"
         (assert)
         (lemma "cos_lb_np_strict_increasing")
         (inst - "n")
         (expand "strict_increasing?")
         (inst - "lb(Y)" "lb(X)")
         (assert)
         (lemma "cos_lb_nn_strict_decreasing")
         (inst - "n")
         (expand "strict_decreasing?")
         (inst - "ub(X)" "ub(Y)")
         (split -)
         (("1"
           (split -)
           (("1"
             (expand "min")
             (assert)
             (lift-if)
             (lift-if)
             (lift-if)
             (assert))
            ("2"
             (case "lb(Y) = lb(X)")
             (("1"
               (replace -1)
               (assert)
               (expand "min")
               (lift-if)
               (lift-if)
               (lift-if)
               (assert))
              ("2" (assert))))))
          ("2"
           (assert)
           (case "ub(X) = ub(Y)")
           (("1"
             (replace -1)
             (expand "min")
             (lift-if)
             (lift-if)
             (lift-if)
             (assert))
            ("2" (assert))))))))
      ("12" (hide-all-but (- 1)) (grind :exclude "pi_lb_est"))
      ("13"
       (expand "cos_0_pi")
       (expand "[||]" 1)
       (lemma "cos_lb_nn_strict_decreasing")
       (inst - "n")
       (expand "strict_decreasing?")
       (inst - "ub(X)" "pi_lbn(n)")
       (("1"
         (assert)
         (case "NOT cos_lb(pi_lbn(n), n) <=cos_lb(ub(X), n)")
         (("1"
           (assert)
           (lemma "pi_lb_est_le")
           (inst - "n")
           (expand "<<")
           (ground))
          ("2"
           (hide -2)
           (expand "cos_lb")
           (lemma "cos_approx_cos")
           (inst - "pi_lbn(n)" "1+2*n")
           (lemma "cos_error_pi_lbn_bound")
           (inst - "n")
           (assert))))
        ("2" (lemma "pi_bounds") (inst?) (assert))
        ("3"
         (hide-all-but (-1 1 -2))
         (expand "Proper?")
         (lemma "pi_bounds")
         (inst - "n")
         (lemma "pi_lb_est_le")
         (inst - "n")
         (flatten)
         (expand "<<")
         (expand "[||]")
         (ground))))
      ("14"
       (expand "Neg")
       (expand "cos_0_pi")
       (expand "[||]" 1)
       (expand "cos_lb")
       (lemma "cos_error_pi_lbn_bound")
       (inst - "n")
       (lemma "cos_lb_nn_strict_decreasing")
       (inst - "n")
       (expand "strict_decreasing?")
       (inst - "-lb(X)" "pi_lbn(n)")
       (("1"
         (case "cos_lb(pi_lbn(n), n) <= cos_lb(-lb(X), n)")
         (("1"
           (hide -2)
           (expand "cos_lb")
           (assert)
           (lemma "cos_approx_cos")
           (inst - "pi_lbn(n)" "1+2*n")
           (assert))
          ("2"
           (assert)
           (expand "<<" -2)
           (expand "[||]" -)
           (lemma "pi_lb_est_le")
           (inst - "n")
           (ground))))
        ("2" (lemma "pi_bounds") (inst?) (assert))
        ("3"
         (expand "<<" -)
         (expand "[||]" -)
         (flatten)
         (assert)
         (expand "Proper?")
         (assert))))
      ("15"
       (expand "cos_npi2_pi2")
       (expand "[||]" 1)
       (case "FORALL (xr:real): -pi_lbn(n)/2 <= xr AND xr <= pi_lbn(n)/2 IMPLIES -1 - (3.2 ^ (4 + 4 * n) / factorial(4 + 4 * n)) <= cos_lb(xr,n)")
       (("1"
         (inst-cp - "lb(X)")
         (inst - "ub(X)")
         (assert)
         (expand "Proper?")
         (expand "<<" -3)
         (lemma "pi_lb_est_le")
         (inst - "n")
         (flatten)
         (expand "[||]" -)
         (assert)
         (expand "min")
         (lift-if)
         (ground))
        ("2"
         (hide 2)
         (skeep)
         (case "xr <= 0")
         (("1"
           (lemma "cos_lb_np_strict_increasing")
           (inst - "n")
           (expand "strict_increasing?")
           (inst - "-pi_lbn(n)" "xr")
           (("1"
             (assert)
             (lemma "cos_approx_cos")
             (expand "cos_lb")
             (inst - "pi_lbn(n)" "1+2*n")
             (lemma "cos_error_pi_lbn_bound")
             (assert)
             (inst?)
             (assert)
             (rewrite "cos_approx_neg")
             (assert))
            ("2" (assert) (lemma "pi_bounds") (inst - "n") (assert))
            ("3" (lemma "pi_bounds") (inst?) (assert) (ground))))
          ("2"
           (lemma "cos_lb_nn_strict_decreasing")
           (inst - "n")
           (expand "strict_decreasing?")
           (inst - "xr" "pi_lbn(n)")
           (("1"
             (assert)
             (expand "cos_lb")
             (lemma "cos_approx_cos")
             (inst - "pi_lbn(n)" "1+2*n")
             (lemma "cos_error_pi_lbn_bound")
             (inst?)
             (assert))
            ("2" (lemma "pi_bounds") (inst?) (assert))
            ("3" (assert) (lemma "pi_bounds") (inst?) (assert))))))))))
    ("2"
     (expand "Cos")
     (assert)
     (lift-if)
     (lift-if)
     (lift-if)
     (lift-if)
     (lift-if)
     (assert)
     (case "n = 0")
     (("1"
       (replace -1)
       (assert)
       (expand "[||]")
       (expand "<<")
       (expand "cos_0_pi")
       (expand "cos_npi2_pi2")
       (expand "[||]")
       (expand "Proper?")
       (assert)
       (expand "cos_ub")
       (expand "cos_approx")
       (expand "sigma")
       (expand "sigma")
       (expand "cos_term")
       (propax))
      ("2"
       (case "NOT n>=1")
       (("1" (hide 3) (assert))
        ("2"
         (hide 1)
         (ground)
         (("1"
           (expand "cos_0_pi")
           (expand "[||]")
           (lemma "cos_ub_nn_strict_decreasing")
           (inst - "n")
           (expand "strict_decreasing?")
           (inst - "lb(Y)" "lb(X)")
           (("1" (assert))
            ("2" (expand "Proper?") (expand "<<") (ground))
            ("3"
             (case "Proper?(Y)")
             (("1" (expand "<<") (expand "Proper?") (ground))
              ("2" (hide (2 3)) (grind :exclude "pi_lb_est"))))))
          ("2"
           (case "NOT X = [|0,0|]")
           (("1"
             (hide 2)
             (hide 2)
             (decompose-equality +)
             (("1" (grind :exclude "pi_lb_est"))
              ("2" (grind :exclude "pi_lb_est"))))
            ("2"
             (replaces -1)
             (assert)
             (expand "[||]")
             (expand "cos_0_pi")
             (expand "[||]")
             (expand "<<" -1)
             (flatten)
             (assert)
             (expand "Neg")
             (expand "[||]")
             (lemma "cos_ub_nn_strict_decreasing")
             (inst - "n")
             (assert))))
          ("3"
           (expand "cos_npi2_pi2")
           (expand "cos_0_pi")
           (expand "[||]")
           (lemma "cos_ub_nn_strict_decreasing")
           (inst - "n")
           (assert)
           (expand "strict_decreasing?")
           (inst - "0" "lb(X)")
           (("1"
             (assert)
             (lemma "cos_ub_a0")
             (inst?)
             (replaces -1)
             (assert)
             (expand "<<")
             (flatten)
             (assert)
             (case "lb(X) = 0")
             (("1"
               (replace -1)
               (assert)
               (lemma "cos_ub_a0")
               (inst?)
               (assert))
              ("2" (assert))))
            ("2" (expand "<<") (expand "Proper?") (ground))))
          ("4"
           (hide (1 3 4))
           (expand "cos_0_pi")
           (expand "[||]")
           (expand "<<")
           (flatten)
           (lemma "cos_ub_nn_strict_decreasing")
           (inst - "n")
           (assert)
           (expand "strict_decreasing?")
           (inst - "0" "lb(X)")
           (("1"
             (assert)
             (case "lb(X) = 0")
             (("1" (lemma "cos_ub_a0") (inst?) (assert))
              ("2" (assert) (lemma "cos_ub_a0") (inst?) (assert))))
            ("2" (expand "Proper?") (assert))))
          ("5"
           (case "NOT X = [|0,0|]")
           (("1"
             (hide-all-but (- 1))
             (decompose-equality +)
             (("1" (grind :exclude "pi_lb_est"))
              ("2" (grind :exclude "pi_lb_est"))))
            ("2" (replace -1) (expand "[||]") (expand "<<") (propax))))
          ("6"
           (expand "Neg")
           (expand "cos_0_pi")
           (expand "[||]")
           (rewrite "cos_ub_neg")
           (rewrite "cos_ub_neg")
           (lemma "cos_ub_np_strict_increasing")
           (inst - "n")
           (assert)
           (expand "strict_increasing?")
           (inst - "ub(X)" "ub(Y)")
           (("1" (assert))
            ("2" (expand "<<") (expand "Proper?") (ground))
            ("3" (expand "<<") (expand "Proper?") (ground))))
          ("7"
           (expand "Neg")
           (expand "[||]")
           (expand "<<")
           (flatten)
           (expand "cos_npi2_pi2")
           (expand "cos_0_pi")
           (expand "[||]")
           (lemma "cos_ub_nn_strict_decreasing")
           (inst - "n")
           (assert)
           (expand "strict_decreasing?")
           (inst - "0" "-ub(X)")
           (("1"
             (assert)
             (case "ub(X) = 0")
             (("1" (replace -1) (rewrite "cos_ub_a0") (assert))
              ("2" (assert) (rewrite "cos_ub_a0") (assert))))
            ("2" (assert) (expand "Proper?") (assert))))
          ("8"
           (hide (1 3 4 5))
           (expand "<<")
           (expand "[||]")
           (flatten)
           (expand "Neg")
           (expand "[||]")
           (expand "cos_0_pi")
           (expand "[||]")
           (lemma "cos_ub_nn_strict_decreasing")
           (expand "Proper?")
           (inst - "n")
           (assert)
           (expand "strict_decreasing?")
           (inst - "0" "-ub(X)")
           (lemma "cos_ub_a0")
           (inst?)
           (assert))
          ("9" (hide (-2 1 2)) (grind :exclude "pi_lb_est"))
          ("10" (hide (-2 1 2 4)) (grind :exclude "pi_lb_est"))
          ("11"
           (hide (2 3 4 5))
           (expand "cos_npi2_pi2")
           (expand "[||]")
           (assert))
          ("12"
           (hide (1 3 4 5 6))
           (expand "[||]")
           (expand "<<")
           (flatten)
           (expand "cos_npi2_pi2")
           (expand "[||]")
           (assert))
          ("13" (hide 1) (grind :exclude "pi_lb_est"))
          ("14" (hide 1) (hide (1 2 4)) (grind :exclude "pi_lb_est"))
          ("15" (hide (1 2 3 5 6)) (grind :exclude "pi_lb_est"))))))))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_trig
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (expand "Proper?")
   (expand "<<")
   (flatten)
   (split)
   (("1"
     (expand "Sin")
     (assert)
     (lift-if)
     (lift-if)
     (lift-if)
     (lift-if)
     (lift-if)
     (lift-if)
     (lift-if)
     (assert)
     (lift-if)
     (lift-if)
     (lift-if)
     (lift-if)
     (lift-if)
     (lift-if)
     (lift-if)
     (lift-if)
     (lift-if)
     (assert)
     (lift-if)
     (lift-if)
     (lift-if)
     (lift-if)
     (assert)
     (ground)
     (("1"
       (expand "Union")
       (expand "[||]")
       (case "FORALL (r1,r2,s1,s2:real): (r1<=s1 AND r2<=s2) IMPLIES min(r1,r2)<=min(s1,s2)")
       (("1"
         (rewrite -1)
         (("1"
           (hide 2)
           (lemma "Cos_fundamental")
           (expand "<<" -1)
           (inst?)
           (assert)
           (hide 2)
           (hide -1)
           (lemma "pi_bounds")
           (inst - "n")
           (grind :exclude ("pi_ubn" "pi_lbn")))
          ("2"
           (hide 2)
           (expand "Neg")
           (expand "[||]")
           (expand "Add")
           (expand "Intersection")
           (expand "[||]")
           (case "FORALL (r1,r2:real): (-r1 <= -r2) IFF (r2 <= r1)")
           (("1"
             (rewrite -1)
             (hide -1)
             (lemma "Cos_fundamental")
             (expand "<<" -1)
             (inst?)
             (assert)
             (hide 2)
             (hide -1)
             (lemma "pi_bounds")
             (inst - "n")
             (grind :exclude ("pi_ubn" "pi_lbn")))
            ("2" (hide-all-but 1) (grind))))))
        ("2" (hide-all-but 1) (grind))))
      ("2"
       (expand "Neg")
       (expand "[||]")
       (expand "Union")
       (expand "[||]")
       (case "FORALL (s1,s2:real,s3:real): s3<=s2 IMPLIES min(s1,-s2)<=-s3")
       (("1"
         (rewrite -1)
         (hide 2)
         (lemma "Cos_fundamental")
         (expand "<<" -1)
         (inst?)
         (assert)
         (hide 2)
         (hide -1)
         (lemma "pi_bounds")
         (inst - "n")
         (grind :exclude ("pi_ubn" "pi_lbn")))
        ("2" (hide-all-but 1) (grind))))
      ("3" (hide 2) (hide (-1 -2)) (grind))
      ("4"
       (case "FORALL (s1,s2:real,s3:real): s2<=s3 IMPLIES min(s2,s1)<=s3")
       (("1"
         (expand "Union")
         (expand "[||]")
         (rewrite -1)
         (hide 2)
         (lemma "Cos_fundamental")
         (expand "<<" -1)
         (inst?)
         (assert)
         (hide (2 3))
         (hide -1)
         (lemma "pi_bounds")
         (inst - "n")
         (grind :exclude ("pi_ubn" "pi_lbn")))
        ("2" (hide-all-but 1) (grind))))
      ("5" (hide 2) (grind)) ("6" (hide 1) (grind))
      ("7"
       (expand "Neg")
       (expand "[||]")
       (expand "Add")
       (expand "Intersection")
       (expand "[||]")
       (case "FORALL (r1,r2:real): (-r1 <= -r2) IFF (r2 <= r1)")
       (("1"
         (rewrite -1)
         (hide -1)
         (lemma "Cos_fundamental")
         (expand "<<" -1)
         (inst?)
         (assert)
         (hide 2)
         (lemma "pi_bounds")
         (inst - "n")
         (grind :exclude ("pi_ubn" "pi_lbn")))
        ("2" (hide-all-but 1) (grind))))
      ("8" (hide 2) (grind)) ("9" (hide 2) (grind))
      ("10" (hide 2) (grind)) ("11" (hide 1) (grind))
      ("12" (hide 1) (grind)) ("13" (hide 2) (grind))
      ("14" (hide 1) (grind)) ("15" (hide 1) (grind))
      ("16" (hide 2) (grind))
      ("17"
       (lemma "Cos_fundamental")
       (expand "<<" -1)
       (inst?)
       (assert)
       (hide 3)
       (lemma "pi_bounds")
       (inst - "n")
       (grind :exclude ("pi_ubn" "pi_lbn")))
      ("18" (hide 2) (grind)) ("19" (hide 1) (grind))
      ("20" (hide 1) (grind)) ("21" (hide 2) (grind))))
    ("2"
     (expand "Sin")
     (assert)
     (lift-if)
     (lift-if)
     (lift-if)
     (lift-if)
     (lift-if)
     (lift-if)
     (lift-if)
     (assert)
     (lift-if)
     (lift-if)
     (lift-if)
     (lift-if)
     (lift-if)
     (lift-if)
     (lift-if)
     (lift-if)
     (lift-if)
     (assert)
     (lift-if)
     (lift-if)
     (lift-if)
     (lift-if)
     (assert)
     (ground)
     (("1"
       (expand "Union")
       (expand "[||]")
       (case "FORALL (r1,r2,s1,s2:real): (r1<=s1 AND r2<=s2) IMPLIES max(r1,r2)<=max(s1,s2)")
       (("1"
         (rewrite -1)
         (("1"
           (hide 2)
           (lemma "Cos_fundamental")
           (expand "<<" -1)
           (inst?)
           (assert)
           (hide 2)
           (hide -1)
           (lemma "pi_bounds")
           (inst - "n")
           (grind :exclude ("pi_ubn" "pi_lbn")))
          ("2"
           (hide 2)
           (expand "Neg")
           (expand "[||]")
           (expand "Add")
           (expand "Intersection")
           (expand "[||]")
           (case "FORALL (r1,r2:real): (-r1 <= -r2) IFF (r2 <= r1)")
           (("1"
             (rewrite -1)
             (hide -1)
             (lemma "Cos_fundamental")
             (expand "<<" -1)
             (inst?)
             (assert)
             (hide 2)
             (hide -1)
             (lemma "pi_bounds")
             (inst - "n")
             (grind :exclude ("pi_ubn" "pi_lbn")))
            ("2" (hide-all-but 1) (grind))))))
        ("2" (hide-all-but 1) (grind))))
      ("2" (hide 1) (grind)) ("3" (hide 2) (grind))
      ("4" (hide 2) (grind)) ("5" (hide 2) (grind))
      ("6"
       (expand "Neg")
       (expand "Union")
       (expand "[||]")
       (case "FORALL (s1,s2:real,s3:real): s2<=s3 IMPLIES -s3<=max(s1,-s2)")
       (("1"
         (rewrite -1)
         (hide 2)
         (lemma "Cos_fundamental")
         (expand "<<" -1)
         (inst?)
         (assert)
         (hide 2)
         (hide -1)
         (lemma "pi_bounds")
         (inst - "n")
         (grind :exclude ("pi_ubn" "pi_lbn")))
        ("2" (hide-all-but 1) (grind))))
      ("7"
       (expand "Neg")
       (expand "[||]")
       (case "FORALL (r1,r2:real): (-r1 <= -r2) IFF (r2 <= r1)")
       (("1"
         (rewrite -1)
         (hide -1)
         (lemma "Cos_fundamental")
         (expand "<<" -1)
         (inst?)
         (assert)
         (hide 2)
         (lemma "pi_bounds")
         (inst - "n")
         (grind :exclude ("pi_ubn" "pi_lbn")))
        ("2" (hide-all-but 1) (grind))))
      ("8" (hide 2) (grind)) ("9" (hide 2) (grind))
      ("10" (hide 2) (grind)) ("11" (hide 1) (grind))
      ("12" (hide 1) (grind)) ("13" (hide 2) (grind))
      ("14"
       (expand "Neg")
       (expand "Union")
       (expand "[||]")
       (expand "Add")
       (expand "Intersection")
       (expand "[||]")
       (case "FORALL (s1,s2:real,s3:real): s3<=s1 IMPLIES s3<=max(s1,s2)")
       (("1"
         (inst?)
         (split -)
         (("1" (propax))
          ("2"
           (hide 2)
           (lemma "Cos_fundamental")
           (expand "<<" -1)
           (inst?)
           (assert)
           (hide 2)
           (lemma "pi_bounds")
           (inst - "n")
           (grind :exclude ("pi_ubn" "pi_lbn")))))
        ("2" (hide-all-but 1) (grind))))
      ("15" (hide 1) (grind)) ("16" (hide 2) (grind))
      ("17"
       (expand "[||]")
       (expand "Add")
       (expand "Intersection")
       (expand "[||]")
       (lemma "Cos_fundamental")
       (expand "<<" -1)
       (inst?)
       (assert)
       (hide 3)
       (lemma "pi_bounds")
       (inst - "n")
       (grind :exclude ("pi_ubn" "pi_lbn")))
      ("18" (hide 2) (grind)) ("19" (hide 1) (grind))
      ("20" (hide 1) (grind)) ("21" (hide 2) (grind))))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_trig
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (decompose-equality +)
   (("1"
     (expand "Union")
     (expand "[||]")
     (invoke (case "%1 = %2") (! 1 2) (! 1 2 1))
     (("1"
       (replaces -1)
       (expand "Neg")
       (expand "[||]")
       (expand "tan_npi2_pi2")
       (expand "<<")
       (flatten)
       (assert)
       (expand "##")
       (flatten)
       (assert)
       (invoke (case "%1") (! 1 1 1))
       (("1"
         (flatten)
         (assert)
         (case "Intersection(X,
                                                                                                                                           (# lb := -pi_lb_est(n) / 2,
                                                                                                                                              ub := 0 #)) = (# lb:= lb(X), ub:= 0 #)")
         (("1"
           (replace -1)
           (assert)
           (expand "tan_0_pi2")
           (rewrite "cos_lb_neg")
           (assert)
           (rewrite "cos_ub_a0")
           (assert)
           (rewrite "sin_ub_neg")
           (assert))
          ("2" (hide 2) (grind :exclude ("cos_lb" "pi_lb_est")))))
        ("2"
         (hide 2)
         (lemma "cos_lb_nn_strict_decreasing")
         (inst - "n")
         (expand "strict_decreasing?")
         (inst-cp - "-lb(X)" "pi_lbn(n)/2")
         (("1"
           (inst - "ub(X)" "pi_lbn(n)/2")
           (("1"
             (assert)
             (lemma "cos_lb_pi2_pos")
             (inst - "n")
             (assert)
             (assert)
             (case "pi_lb_est(n) <= pi_lbn(n)")
             (("1"
               (assert)
               (rewrite "cos_lb_neg")
               (ground)
               (("1"
                 (case "-lb(X) = pi_lbn(n)/2")
                 (("1" (replace -1 :dir rl) (rewrite "cos_lb_neg"))
                  ("2" (assert))))
                ("2"
                 (case "-lb(X) = pi_lbn(n)/2")
                 (("1" (replace -1 :dir rl) (rewrite "cos_lb_neg"))
                  ("2" (assert))))))
              ("2"
               (hide-all-but 1)
               (expand "pi_lb_est")
               (lift-if)
               (ground))))
            ("2" (lemma "pi_bounds") (inst?) (ground))))
          ("2" (lemma "pi_bounds") (inst?) (ground))))))
      ("2"
       (hide 2)
       (case "FORALL (a,b:real): a<=b IMPLIES min(a,b) = a")
       (("1"
         (rewrite -1)
         (hide (-1 2))
         (case "FORALL (a,b:real): a<=0 AND b>=0 IMPLIES a<=b")
         (("1"
           (inst?)
           (assert)
           (hide 2)
           (split)
           (("1"
             (expand "Neg")
             (expand "[||]")
             (expand "tan_0_pi2")
             (expand "[||]")
             (invoke (case "%1") (! 1 1 1))
             (("1"
               (assert)
               (flatten)
               (assert)
               (neg-formula 1)
               (lemma "sin_ub_increasing")
               (inst - "n")
               (expand "strict_increasing?")
               (cross-mult 1)
               (invoke (inst - "0" "%1") (! 1 2 1))
               (("1"
                 (rewrite "sin_ub_a0")
                 (assert)
                 (case "FORALL (a1:nnreal): (NOT a1=0) IMPLIES 0<a1")
                 (("1"
                   (rewrite -1)
                   (("1" (replace -1) (rewrite "sin_ub_a0") (assert))
                    ("2"
                     (hide-all-but (-4 1))
                     (grind :exclude "pi_lb_est"))))
                  ("2" (hide-all-but 1) (grind))))
                ("2"
                 (hide-all-but (-4 -5 1))
                 (grind :exclude "pi_lb_est"))))
              ("2"
               (hide 2)
               (case "NOT ub(Intersection(X, (# lb := -pi_lb_est(n) / 2, ub := 0 #))) = 0")
               (("1" (hide 2) (grind :exclude "pi_lb_est"))
                ("2"
                 (replace -1)
                 (rewrite "cos_ub_a0")
                 (assert)
                 (lemma "cos_lb_nn_strict_decreasing")
                 (inst - "n")
                 (expand "strict_decreasing?")
                 (invoke (inst - "%1" "pi_lbn(n)/2") (! 1 1 1))
                 (("1"
                   (assert)
                   (invoke (case "%1 = %2") (! -1 1 1) (! -1 1 2))
                   (("1" (lemma "cos_lb_pi2_pos") (inst - "n") (assert))
                    ("2"
                     (lemma "cos_lb_pi2_pos")
                     (inst - "n")
                     (assert)
                     (case "pi_lb_est(n) <= pi_lbn(n)")
                     (("1"
                       (grind :exclude ("pi_lb_est" "pi_lbn" "cos_lb")))
                      ("2"
                       (hide-all-but 1)
                       (expand "pi_lb_est")
                       (lift-if)
                       (ground))))))
                  ("2"
                   (assert)
                   (lemma "pi_bounds")
                   (inst - "n")
                   (assert))
                  ("3"
                   (assert)
                   (hide (-1 2))
                   (case "pi_lb_est(n) <= pi_lbn(n)")
                   (("1"
                     (lemma "pi_bounds")
                     (inst - "n")
                     (assert)
                     (flatten)
                     (grind :exclude
                      ("pi_lb_est" "pi_lbn" "cos_lb" "pi_ubn")))
                    ("2"
                     (hide-all-but 1)
                     (expand "pi_lb_est")
                     (lift-if)
                     (ground))))))))))
            ("2"
             (expand "tan_0_pi2")
             (expand "[||]")
             (invoke (case "%1") (! 1 1 1))
             (("1"
               (assert)
               (flatten)
               (assert)
               (cross-mult 1)
               (lemma "sin_lb_increasing")
               (inst - "n")
               (expand "strict_increasing?")
               (invoke (inst - "0" "%1") (! 1 1 1))
               (("1"
                 (invoke (case "%1 = %2") (! -1 1 1) (! -1 1 2))
                 (("1"
                   (replace -1 :dir rl)
                   (rewrite "sin_lb_a0")
                   (assert))
                  ("2"
                   (assert)
                   (rewrite "sin_lb_a0")
                   (assert)
                   (grind :exclude
                    ("pi_lb_est"
                     "pi_lbn"
                     "cos_lb"
                     "pi_ubn"
                     "sin_lb"
                     "cos_ub")))))
                ("2"
                 (grind :exclude
                  ("pi_lb_est"
                   "pi_lbn"
                   "cos_lb"
                   "pi_ubn"
                   "sin_lb"
                   "cos_ub")))))
              ("2"
               (hide 2)
               (invoke (case "%1 = 0") (! 1 1 1 1))
               (("1"
                 (replaces -1)
                 (rewrite "cos_ub_a0")
                 (assert)
                 (lemma "cos_lb_nn_strict_decreasing")
                 (inst - "n")
                 (expand "strict_decreasing?")
                 (invoke (inst - "%1" "pi_lbn(n)/2") (! 1 1 1))
                 (("1"
                   (lemma "cos_lb_pi2_pos")
                   (inst - "n")
                   (assert)
                   (invoke (case "%1 = %2") (! 1 1) (! 1 2))
                   (("1" (assert))
                    ("2"
                     (case "pi_lb_est(n) <= pi_lbn(n)")
                     (("1"
                       (grind :exclude
                        ("pi_lb_est"
                         "pi_lbn"
                         "cos_lb"
                         "pi_ubn"
                         "sin_lb"
                         "cos_ub")))
                      ("2"
                       (hide-all-but 1)
                       (expand "pi_lb_est")
                       (lift-if)
                       (ground))))))
                  ("2" (lemma "pi_bounds") (inst - "n") (ground))
                  ("3"
                   (assert)
                   (case "pi_lb_est(n) <= pi_lbn(n)")
                   (("1"
                     (lemma "pi_bounds")
                     (inst - "n")
                     (grind :exclude
                      ("pi_lb_est"
                       "pi_lbn"
                       "cos_lb"
                       "pi_ubn"
                       "sin_lb"
                       "cos_ub"
                       "pi")))
                    ("2"
                     (hide-all-but 1)
                     (expand "pi_lb_est")
                     (lift-if)
                     (ground))))))
                ("2"
                 (hide 2)
                 (grind :exclude
                  ("pi_lb_est"
                   "pi_lbn"
                   "cos_lb"
                   "pi_ubn"
                   "sin_lb"
                   "cos_ub"
                   "pi")))))))))
          ("2" (hide-all-but 1) (grind))))
        ("2" (hide-all-but 1) (grind))))))
    ("2"
     (expand "tan_npi2_pi2")
     (expand "<<")
     (flatten)
     (assert)
     (expand "##")
     (flatten)
     (assert)
     (invoke (case "%1") (! 1 1 1))
     (("1"
       (flatten)
       (assert)
       (case "Intersection(X,
                                                                                                                                       (# lb := -pi_lb_est(n) / 2,
                                                                                                                                          ub := 0 #)) = (# lb:= lb(X), ub:= 0 #)")
       (("1"
         (expand "[||]")
         (expand "Neg")
         (replace -1)
         (expand "[||]")
         (assert)
         (expand "tan_0_pi2")
         (rewrite "cos_lb_neg")
         (rewrite "cos_ub_a0")
         (rewrite "sin_lb_a0")
         (expand "[||]")
         (assert)
         (rewrite "sin_ub_neg")
         (expand "Union")
         (expand "[||]")
         (invoke (case "%1") (! 1 2 2 1))
         (("1"
           (flatten)
           (assert)
           (replace -1)
           (replace -2)
           (case "FORALL (b:real): 0<=b IMPLIES max(0,b) = b")
           (("1"
             (rewrite -1)
             (("1"
               (hide -1)
               (invoke (case "%1 = %2") (! 1 1 1 1) (! 1 2 1 1))
               (("1" (replace -1 :dir rl) (propax))
                ("2"
                 (grind :exclude
                  ("pi_lb_est"
                   "pi_lbn"
                   "cos_lb"
                   "pi_ubn"
                   "sin_lb"
                   "cos_ub"
                   "pi"
                   "sin_ub")))))
              ("2"
               (hide 2)
               (cross-mult 1)
               (lemma "sin_bounds")
               (inst?)
               (flatten)
               (lemma "sin_ge_0")
               (inst?)
               (assert)
               (hide 2)
               (lemma "pi_bounds")
               (inst - "n")
               (flatten)
               (case "pi_lb_est(n) <= pi_lbn(n)")
               (("1"
                 (grind :exclude
                  ("pi_lb_est"
                   "pi_lbn"
                   "cos_lb"
                   "pi_ubn"
                   "sin_lb"
                   "cos_ub"
                   "pi"
                   "sin_ub")))
                ("2"
                 (hide-all-but 1)
                 (expand "pi_lb_est")
                 (lift-if)
                 (ground))))))
            ("2" (hide-all-but 1) (grind))))
          ("2"
           (hide 2)
           (invoke (case "%1 = 0") (! 1 1 1 1))
           (("1"
             (replace -1)
             (rewrite "cos_ub_a0")
             (assert)
             (lemma "cos_lb_nn_strict_decreasing")
             (inst - "n")
             (expand "strict_decreasing?")
             (invoke (inst - "%1" "pi_lbn(n)/2") (! 1 1 1))
             (("1"
               (lemma "cos_lb_pi2_pos")
               (inst - "n")
               (assert)
               (lemma "pi_lb_est_le")
               (inst - "n")
               (flatten)
               (grind :exclude
                ("pi_lb_est"
                 "pi_lbn"
                 "cos_lb"
                 "pi_ubn"
                 "sin_lb"
                 "cos_ub"
                 "pi"
                 "sin_ub")))
              ("2" (lemma "pi_bounds") (inst - "n") (ground))
              ("3"
               (hide 2)
               (lemma "pi_lb_est_le")
               (inst - "n")
               (flatten)
               (grind :exclude
                ("pi_lb_est"
                 "pi_lbn"
                 "cos_lb"
                 "pi_ubn"
                 "sin_lb"
                 "cos_ub"
                 "pi"
                 "sin_ub")))))
            ("2"
             (grind :exclude
              ("pi_lb_est"
               "pi_lbn"
               "cos_lb"
               "pi_ubn"
               "sin_lb"
               "cos_ub"
               "pi"
               "sin_ub")))))))
        ("2"
         (grind :exclude
          ("pi_lb_est"
           "pi_lbn"
           "cos_lb"
           "pi_ubn"
           "sin_lb"
           "cos_ub"
           "pi"
           "sin_ub")))))
      ("2"
       (hide 2)
       (lemma "pi_lb_est_le")
       (inst - "n")
       (flatten)
       (lemma "cos_lb_pi2_pos")
       (inst - "n")
       (assert)
       (lemma "cos_lb_nn_strict_decreasing")
       (inst - "n")
       (expand "strict_decreasing?")
       (inst - _ "pi_lbn(n)/2")
       (("1"
         (inst-cp - "-lb(X)")
         (inst - "ub(X)")
         (assert)
         (rewrite "cos_lb_neg")
         (ground)
         (("1"
           (case "-lb(X) = pi_lbn(n)/2")
           (("1" (replace -1 :dir rl) (rewrite "cos_lb_neg"))
            ("2" (assert))))
          ("2"
           (case "-lb(X) = pi_lbn(n)/2")
           (("1" (replace -1 :dir rl) (rewrite "cos_lb_neg"))
            ("2" (assert))))))
        ("2" (assert) (lemma "pi_bounds") (inst - "n") (ground))))))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_trig
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (case "NOT FORALL (X: Interval, n: nat):
                        Proper?(X) AND
                         X << [| 0, pi_lb_est(n + 5) / 2 |]
                         IMPLIES Proper?(Tan(n)(X))")
   (("1"
     (hide 2)
     (skeep)
     (expand "Tan")
     (ground)
     (expand "tan_0_pi2")
     (invoke (case "%1") (! 1 1))
     (("1"
       (flatten)
       (assert)
       (expand "[||]")
       (expand "Proper?")
       (case "FORALL (a,c:nnreal,b,d:posreal): a<=c AND b>=d IMPLIES a/b<=c/d")
       (("1"
         (inst?)
         (("1"
           (assert)
           (hide 2)
           (lemma "sin_bounds")
           (split +)
           (("1"
             (inst-cp - "lb(X)" "5+n")
             (inst - "ub(X)" "5+n")
             (flatten)
             (lemma "sin_increasing")
             (inst - "ub(X)" "lb(X)")
             (assert)
             (expand "<<")
             (flatten)
             (lemma "pi_lb_est_le")
             (inst - "5+n")
             (flatten)
             (assert))
            ("2"
             (hide -1)
             (lemma "cos_bounds")
             (inst-cp - "lb(X)" "5+n")
             (inst - "ub(X)" "5+n")
             (flatten)
             (lemma "cos_decreasing")
             (inst - "ub(X)" "lb(X)")
             (assert)
             (expand "<<")
             (flatten)
             (lemma "pi_lb_est_le")
             (inst - "5+n")
             (flatten)
             (assert))))
          ("2"
           (lemma "sin_ub_increasing")
           (inst - "5+n")
           (expand "strict_increasing?")
           (inst - "0" "ub(X)")
           (("1"
             (assert)
             (lemma "sin_ub_a0")
             (inst?)
             (assert)
             (expand "<<")
             (propax))
            ("2" (expand "<<") (ground))))
          ("3"
           (lemma "sin_lb_increasing")
           (inst - "5+n")
           (expand "strict_increasing?")
           (inst - "0" "lb(X)")
           (("1"
             (assert)
             (lemma "sin_lb_a0")
             (inst - "5+n")
             (assert)
             (expand "<<")
             (propax))
            ("2" (expand "<<") (ground))))))
        ("2" (hide-all-but 1) (skeep) (mult-ineq -1 -2) (cross-mult 1))))
      ("2"
       (hide 2)
       (split +)
       (("1"
         (lemma "cos_bounds")
         (inst?)
         (flatten)
         (lemma "cos_gt_0")
         (inst?)
         (assert)
         (lemma "pi_lb_est_le")
         (inst - "5+n")
         (flatten)
         (expand "<<")
         (expand "[||]")
         (flatten)
         (assert)
         (expand "Proper?")
         (assert))
        ("2"
         (lemma "cos_lb_nn_strict_decreasing")
         (inst - "5+n")
         (expand "strict_decreasing?")
         (inst - "ub(X)" "pi_lbn(5+n)/2")
         (("1"
           (lemma "pi_lb_est_le")
           (inst - "5+n")
           (flatten)
           (assert)
           (expand "<<")
           (expand "[||]")
           (flatten)
           (assert)
           (expand "Proper?")
           (lemma "cos_lb_pi2_pos")
           (inst - "5+n")
           (assert))
          ("2" (lemma "pi_bounds") (inst?) (ground))
          ("3"
           (expand "Proper?")
           (lemma "pi_lb_est_le")
           (inst - "5+n")
           (flatten)
           (assert)
           (expand "<<")
           (expand "[||]")
           (ground))))))))
    ("2"
     (case "NOT FORALL (X: Interval, n: nat):
                            Proper?(X) AND
                             (X << [| 0, pi_lb_est(n + 5) / 2 |] OR X << [| -pi_lb_est(n + 5) / 2,0 |])
                             IMPLIES Proper?(Tan(n)(X))")
     (("1"
       (hide 2)
       (skeep)
       (inst-cp - "X" "n")
       (assert)
       (assert)
       (expand "Tan" 1)
       (inst - "Neg(X)" "n")
       (assert)
       (invoke (case "%1") (! -3 1))
       (("1"
         (flatten)
         (assert)
         (expand "Tan")
         (grind :exclude ("tan_0_pi2" "pi_lb_est")))
        ("2" (hide -3) (grind :exclude ("tan_0_pi2" "pi_lb_est")))))
      ("2"
       (skeep)
       (inst-cp - "X" "n")
       (hide -3)
       (assert)
       (flatten)
       (expand "Tan")
       (assert)
       (rewrite "tan_npi2_pi2_union")
       (("1"
         (case "NOT FORALL (XX,YY:Interval): Proper?(YY) IMPLIES Proper?(Union(XX,YY))")
         (("1" (hide-all-but 1) (grind))
          ("2"
           (inst?)
           (assert)
           (hide 4)
           (inst - "Intersection(X, [| 0, pi_lb_est(5 + n) / 2 |])" "n")
           (assert)
           (split -)
           (("1" (propax))
            ("2"
             (flatten)
             (hide-all-but (-2 1))
             (grind :exclude ("tan_0_pi2" "pi_lb_est")))
            ("3" (hide 2) (grind :exclude ("tan_0_pi2" "pi_lb_est")))
            ("4"
             (flatten)
             (hide-all-but 1)
             (grind :exclude ("tan_0_pi2" "pi_lb_est")))))))
        ("2"
         (hide -1)
         (grind :exclude ("tan_0_pi2" "pi_lb_est" "tan_npi2_pi2")))))))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_trig
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (expand "Atan")
   (lemma "atan_lb_increasing")
   (lemma "atan_ub_increasing")
   (inst - "n")
   (inst - "n")
   (expand "increasing?")
   (inst - "ub(X)" "ub(Y)")
   (inst - "lb(Y)" "lb(X)")
   (assert)
   (expand "<<")
   (expand "[||]")
   (ground))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_trig
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (expand "Pi")
   (expand "##")
   (expand "[||]")
   (lemma "pi_bounds")
   (inst?)
   (ground))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_trig
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (expand "<<")
   (flatten)
   (expand "sin_npi2_pi2")
   (assert)
   (expand "##")
   (assert)
   (lemma "sin_bounds")
   (inst-cp -1 "ub(X)" "n")
   (inst -1 "lb(X)" "n")
   (grind-reals)
   (("1"
     (lemma "sin_incr")
     (inst -1 "ub(X)" "x")
     (assert)
     (lemma "pi_bounds")
     (inst?)
     (flatten)
     (assert))
    ("2"
     (lemma "sin_incr")
     (inst -1 "x" "lb(X)")
     (assert)
     (lemma "pi_bounds")
     (inst?)
     (flatten)
     (assert))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_trig
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (expand* "<<" "##" "sin_pi2_pi")
   (assert)
   (flatten)
   (split)
   (("1"
     (case "sin(ub(X)) <= sin(x)")
     (("1" (lemma "sin_bounds") (inst -1 "ub(X)" "n") (assert))
      ("2"
       (hide 2)
       (grind-reals)
       (lemma "sin_decr")
       (inst -1 "ub(X)" "x")
       (assert)
       (lemma "pi_bounds")
       (inst?)
       (flatten)
       (assert))))
    ("2"
     (case "sin(x)<= sin(lb(X))")
     (("1" (lemma "sin_bounds") (inst -1 "lb(X)" "n") (assert))
      ("2"
       (hide 2)
       (lemma "sin_decr")
       (inst -1 "x" "lb(X)")
       (assert)
       (lemma "pi_bounds")
       (inst?)
       (flatten)
       (assert))))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_trig
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (expand* "<<" "##" "sin_0_pi")
   (flatten)
   (assert)
   (split)
   (("1"
     (case "x <= pi/2")
     (("1"
       (case "sin_lb(lb(X),n) <= sin(x)")
       (("1" (expand "min") (lift-if) (assert))
        ("2"
         (hide 2)
         (lemma "sin_bounds")
         (inst -1 "lb(X)" "n")
         (assert)
         (flatten)
         (hide -2)
         (case "sin(lb(X)) <= sin(x)")
         (("1" (assert))
          ("2"
           (hide -1 -2 2)
           (lemma "sin_incr")
           (inst -1 "x" "lb(X)")
           (assert))))))
      ("2"
       (case "sin_lb(ub(X), n) <= sin(x)")
       (("1" (expand "min") (lift-if) (assert))
        ("2"
         (hide 3)
         (lemma "sin_bounds")
         (inst -1 "ub(X)" "n")
         (assert)
         (flatten)
         (case "sin(ub(X)) <= sin(x)")
         (("1" (assert))
          ("2"
           (hide -1 -2 2)
           (lemma "sin_decr")
           (inst -1 "ub(X)" "x")
           (assert)
           (lemma "pi_bounds")
           (inst?)
           (flatten)
           (assert))))))))
    ("2" (assert))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_trig
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (case-replace "sin(x)=--sin(x)")
   (("1"
     (hide -1)
     (rewrite "Neg_inclusion")
     (hide 2)
     (lemma "sin_neg")
     (inst -1 "x")
     (replaces -1 :dir rl)
     (rewrite "sin_0_pi")
     (("1"
       (hide -2 2)
       (lemma "Neg_Incl")
       (inst? -1 :where -2)
       (assert)
       (rewrite "Neg_interval")
       (assert))
      ("2" (rewrite "Neg_inclusion"))))
    ("2" (assert))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_trig
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (case-replace "sin(x)=--sin(x)")
   (("1"
     (hide -1)
     (rewrite "Neg_inclusion")
     (hide 2)
     (lemma "sin_neg")
     (inst -1 "x")
     (replaces -1 :dir rl)
     (rewrite "sin_pi2_pi")
     (("1"
       (hide -2 2)
       (lemma "Neg_Incl")
       (inst? -1 :where -2)
       (assert)
       (rewrite "Neg_interval")
       (assert))
      ("2" (rewrite "Neg_inclusion"))))
    ("2" (assert))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_trig
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (expand* "<<" "##" "cos_0_pi" "cos_0_pi2")
   (flatten)
   (split 1)
   (("1"
     (case "cos(ub(X)) <= cos(x)")
     (("1" (lemma "cos_bounds") (inst -1 "ub(X)" "n") (assert))
      ("2"
       (hide 2)
       (lemma "cos_decr")
       (inst -1 "ub(X)" "x")
       (assert)
       (lemma "pi_bounds")
       (inst?)
       (flatten)
       (assert))))
    ("2"
     (case "cos(x) <= cos(lb(X))")
     (("1" (lemma "cos_bounds") (inst -1 "lb(X)" "n") (assert))
      ("2"
       (hide 2)
       (lemma "cos_decr")
       (inst -1 "x" "lb(X)")
       (assert)
       (lemma "pi_bounds")
       (inst?)
       (flatten)
       (assert))))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_trig
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (lemma "cos_0_pi")
   (inst -1 "Neg(X)" "n" "-x")
   (assert)
   (rewrite "cos_neg")
   (expand "cos_0_pi")
   (assert)
   (hide 2)
   (expand "<<")
   (flatten)
   (expand "Neg")
   (assert)
   (expand "##")
   (flatten)
   (assert))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_trig
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (expand "<<")
   (flatten)
   (expand "cos_npi2_pi2")
   (expand "##")
   (flatten)
   (split)
   (("1"
     (case "x >= 0")
     (("1"
       (case "cos_lb(ub(X),n) <= cos(x)")
       (("1" (expand "min") (lift-if) (assert))
        ("2"
         (hide 2)
         (lemma "cos_bounds")
         (inst -1 "ub(X)" "n")
         (flatten)
         (case "cos(ub(X)) <= cos(x)")
         (("1" (assert))
          ("2"
           (hide -1 -2 2)
           (lemma "cos_decr")
           (inst -1 "ub(X)" "x")
           (assert)
           (lemma "pi_bounds")
           (inst?)
           (flatten)
           (assert))))))
      ("2"
       (case "cos_lb(lb(X),n) <= cos(x)")
       (("1" (expand "min") (lift-if) (assert))
        ("2"
         (hide 3)
         (lemma "cos_bounds")
         (inst -1 "lb(X)" "n")
         (flatten)
         (case "cos(lb(X))<=cos(x)")
         (("1" (assert))
          ("2"
           (hide -1 -2 2)
           (lemma "cos_decr")
           (inst -1 "-x" "-lb(X)")
           (rewrite "cos_neg")
           (rewrite "cos_neg")
           (assert)
           (lemma "pi_bounds")
           (inst?)
           (flatten)
           (assert))))))))
    ("2" (assert))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_trig
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (expand "Cos")
   (lift-if)
   (bddsimp)
   (("1" (rewrite "cos_0_pi") (hide 2) (grind :exclude ("pi_lbn" "^")))
    ("2"
     (rewrite "cos_npi_0")
     (hide (2 3))
     (grind :exclude ("pi_lbn" "^")))
    ("3"
     (rewrite "cos_npi2_pi2")
     (hide (2 3 4))
     (grind :exclude ("pi_lbn" "^")))
    ("4"
     (hide-all-but 4)
     (assert)
     (typepred "cos(x)")
     (expand "##")
     (assert))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_trig
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (expand "Sin")
   (skeep)
   (name "Xpos" "Intersection(X, [| 0, ub(X) |])")
   (replace -1)
   (name "Xneg" "Intersection(X, [| lb(X), 0 |])")
   (replace -1)
   (name "piint" "[| -pi_ubn(n) / 2, -pi_lbn(n) / 2 |]")
   (replace -1)
   (case "x>=0")
   (("1"
     (case "x ## Xpos")
     (("1"
       (assert)
       (case "Proper?(Xpos)")
       (("1"
         (assert)
         (case "sin(x) ## Cos(n)(Add(Xpos, piint))")
         (("1"
           (hide-all-but (-1 1))
           (grind :exclude
            ("cos" "Cos" "sin" "Sin" "pi_lbn" "pi_ubn" "pi")))
          ("2"
           (hide 2)
           (rewrite "sin_cos")
           (lemma "cos_neg")
           (inst - "pi/2+x")
           (replaces -1 :dir rl)
           (rewrite "neg_cos")
           (assert)
           (rewrite "cos_neg" :dir rl)
           (assert)
           (case "NOT -(-(pi / 2 + x) + pi) = x-pi/2")
           (("1" (assert))
            ("2"
             (replaces -1)
             (lemma "Cos_inclusion")
             (inst?)
             (assert)
             (lemma "pi_bounds")
             (inst - "n")
             (flatten)
             (grind :exclude
              ("cos" "Cos" "sin" "Sin" "pi_lbn" "pi_ubn" "pi")))))))
        ("2" (assert) (hide-all-but (-1 1)) (grind))))
      ("2" (hide-all-but (-1 -5 1)) (expand "Xpos") (grind))))
    ("2"
     (case "Proper?(Xneg)")
     (("1"
       (assert)
       (case "sin(x) ## Neg(Cos(n)(Add(Neg(Xneg), piint)))")
       (("1"
         (hide-all-but (-1 +))
         (grind :exclude
          ("cos" "Cos" "sin" "Sin" "pi_lbn" "pi_ubn" "pi")))
        ("2"
         (hide 3)
         (rewrite "sin_cos")
         (rewrite "Neg_inclusion")
         (hide 2)
         (rewrite "cos_neg" :dir rl)
         (lemma "Cos_inclusion")
         (inst?)
         (assert)
         (hide 2)
         (lemma "pi_bounds")
         (inst - "n")
         (flatten)
         (grind :exclude
          ("cos" "Cos" "sin" "Sin" "pi_lbn" "pi_ubn" "pi")))))
      ("2"
       (case "x ## Xneg")
       (("1" (hide-all-but (-1 1)) (grind))
        ("2" (hide 4) (hide -1) (grind))))))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_trig
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (expand* "##" "<<")
   (flatten)
   (lemma "pi_bounds")
   (inst?)
   (flatten)
   (assert)
   (rewrite "tan_pi2_def"))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_trig
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (case "x=0")
   (("1" (replaces -1) (hide -1) (rewrite "cos_lb_a0") (assert))
    ("2"
     (lemma "cos_lb_pi2_pos")
     (inst?)
     (assert)
     (lemma "cos_lb_nn_strict_decreasing")
     (inst -1 "n")
     (expand "strict_decreasing?")
     (inst -1 "x" "pi_lbn(n)/2")
     (("1" (assert) (expand "##") (assert))
      ("2" (lemma "pi_bounds") (inst?) (flatten) (assert))
      ("3"
       (expand "##")
       (flatten)
       (assert)
       (lemma "pi_bounds")
       (inst?)
       (flatten)
       (assert))))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_trig
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (case "x > 0")
   (("1"
     (lemma "cos_lb_gt_0_pos")
     (inst?)
     (assert)
     (hide-all-but (-2 1))
     (expand "##")
     (assert))
    ("2"
     (lemma "cos_lb_gt_0_pos")
     (inst -1 "n" "-x")
     (rewrite "cos_lb_neg")
     (assert)
     (hide-all-but (-1 1))
     (expand "##")
     (assert))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_trig
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (expand* "Proper?" "<<")
   (flatten)
   (assert)
   (splash 1)
   (("1" (rewrite "cos_ub_gt_0") (expand "##") (assert))
    ("2" (rewrite "cos_ub_gt_0") (expand "##") (assert))
    ("3" (rewrite "cos_lb_gt_0") (expand "##") (assert))
    ("4" (rewrite "cos_lb_gt_0") (expand "##") (assert))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_trig
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (lemma "cos_lb_ub_gt_0")
   (inst -1 "X" "n")
   (case "Proper?(X)")
   (("1"
     (expand* "<<" "##" "tan_0_pi2")
     (assert)
     (flatten)
     (assert)
     (flatten)
     (split)
     (("1"
       (lift-if)
       (split)
       (("1"
         (flatten)
         (lemma "tan_bounds_0_pi2")
         (inst -1 "lb(X)" "n")
         (split)
         (("1"
           (flatten)
           (expand "tan_lb_ub")
           (lemma "tan_incr")
           (inst -1 "x" "lb(X)")
           (assert)
           (assert)
           (lemma "pi_bounds")
           (inst?)
           (flatten)
           (assert))
          ("2" (propax))
          ("3" (lemma "pi_bounds") (inst?) (flatten) (assert))
          ("4" (propax))))
        ("2" (assert))))
      ("2"
       (lift-if)
       (split 1)
       (("1"
         (flatten)
         (lemma "tan_bounds_0_pi2")
         (inst -1 "ub(X)" "n")
         (split)
         (("1"
           (flatten)
           (expand "tan_ub_lb")
           (lemma "tan_incr")
           (inst -1 "ub(X)" "x")
           (assert)
           (assert)
           (lemma "pi_bounds")
           (inst?)
           (flatten)
           (assert))
          ("2" (assert))
          ("3" (lemma "pi_bounds") (inst?) (flatten) (assert))
          ("4" (propax))))
        ("2" (assert))))))
    ("2" (hide -1) (lemma "Member_Proper") (inst?) (assert))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_trig
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (lemma "tan_0_pi2")
   (inst -1 "Neg(X)" "n" "-x")
   (rewrite "tan_neg")
   (split)
   (("1"
     (lemma "Neg_inclusion")
     (inst -1 "tan_0_pi2(n)(Neg(X))" "-tan(x)")
     (assert))
    ("2"
     (hide-all-but (-1 1))
     (expand "<<")
     (expand "Neg")
     (flatten)
     (assert))
    ("3" (propax)) ("4" (rewrite "Neg_inclusion"))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_trig
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
script:
  (""
   (skeep)
   (expand "Zeroin?")
   (lemma "cos_lb_ub_gt_0")
   (inst -1 "X" "n")
   (case "Proper?(X)")
   (("1"
     (expand* "<<" "##")
     (assert)
     (flatten)
     (assert)
     (flatten)
     (expand "tan_npi2_pi2")
     (assert)
     (split)
     (("1"
       (lemma "tan_bounds_npi2_0")
       (inst -1 "lb(X)" "n")
       (split -1)
       (("1"
         (flatten)
         (expand "tan_lb_lb")
         (case "tan(lb(X)) <= tan(x)")
         (("1" (assert))
          ("2"
           (hide -1 -2 2)
           (lemma "tan_incr")
           (inst -1 "x" "lb(X)")
           (assert)
           (assert)
           (lemma "pi_bounds")
           (inst?)
           (flatten)
           (assert))))
        ("2" (assert) (lemma "pi_bounds") (inst?) (flatten) (assert))
        ("3" (assert)) ("4" (propax))))
      ("2"
       (lemma "tan_bounds_0_pi2")
       (inst -1 "ub(X)" "n")
       (split)
       (("1"
         (flatten)
         (expand "tan_ub_lb")
         (case "tan(x) <= tan(ub(X))")
         (("1" (assert))
          ("2"
           (hide -1 -2 2)
           (lemma "tan_incr")
           (inst -1 "ub(X)" "x")
           (assert)
           (assert)
           (lemma "pi_bounds")
           (inst?)
           (flatten)
           (assert))))
        ("2" (assert))
        ("3" (assert) (lemma "pi_bounds") (inst?) (flatten) (assert))
        ("4" (propax))))))
    ("2" (hide -1) (lemma "Member_Proper") (inst?) (assert))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_trig
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (expand "TAN?")
   (lemma "pi_lb_est_le")
   (inst?)
   (flatten)
   (lemma "Tan_pi2_def")
   (inst? -1)
   (inst? -1)
   (assert)
   (hide-all-but (-3 1))
   (grind :exclude ("pi_lb_est" "pi_lbn")))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_trig
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (expand "Tan")
   (case "X << [|0, pi_lb_est(5 + n) / 2|]")
   (("1"
     (assert)
     (rewrite "tan_0_pi2")
     (lemma "pi_lb_est_le")
     (inst?)
     (flatten)
     (expand "<<")
     (expand "[||]")
     (ground))
    ("2"
     (replace 1)
     (case "X << [|-pi_lb_est(5 + n) / 2, 0|]")
     (("1"
       (assert)
       (rewrite "tan_npi2_0")
       (lemma "pi_lb_est_le")
       (inst?)
       (expand "<<")
       (expand "[||]")
       (flatten)
       (assert))
      ("2"
       (expand "TAN?")
       (assert)
       (rewrite "tan_npi2_pi2")
       (("1"
         (lemma "pi_lb_est_le")
         (inst?)
         (expand "<<")
         (expand "[||]")
         (flatten)
         (assert))
        ("2" (hide (-2 4)) (grind :exclude "pi_lb_est"))))))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_trig
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (case "NOT FORALL (X, Y: Interval, n: nat):
                                                                                              Proper?(X) AND Proper?(Tan(n)(Y)) AND X << Y AND Y << [|0,pi_lb_est(5+n)/2|]  IMPLIES
                                                                                               Tan(n)(X) << Tan(n)(Y)")
   (("1"
     (hide 2)
     (skeep)
     (case "X << [|0,pi_lb_est(5+n)/2|]")
     (("1"
       (expand "Proper?")
       (expand "Tan")
       (assert)
       (expand "<<")
       (expand "[||]")
       (flatten)
       (expand "tan_0_pi2")
       (assert)
       (lift-if)
       (split)
       (("1"
         (flatten)
         (assert)
         (lift-if)
         (split)
         (("1"
           (flatten)
           (assert)
           (split)
           (("1"
             (case "FORALL (aa,bb:nnreal,cc,dd:posreal): (aa<=bb AND cc >= dd) IMPLIES aa/cc <= bb/dd")
             (("1"
               (rewrite -1)
               (("1"
                 (hide 2)
                 (hide -1)
                 (lemma "sin_lb_increasing")
                 (inst - "5+n")
                 (expand "strict_increasing?")
                 (inst - "lb(Y)" "lb(X)")
                 (assert))
                ("2"
                 (hide 2)
                 (lemma "cos_ub_nn_strict_decreasing")
                 (inst - "5+n")
                 (assert)
                 (expand "strict_decreasing?")
                 (inst - "lb(Y)" "lb(X)")
                 (assert))
                ("3"
                 (case "cos_ub(lb(X),5+n)>0")
                 (("1"
                   (assert)
                   (lemma "sin_lb_increasing")
                   (inst - "5+n")
                   (expand "strict_increasing?")
                   (inst - "0" "lb(X)")
                   (assert)
                   (assert)
                   (rewrite "sin_lb_a0")
                   (assert))
                  ("2" (propax))))
                ("4"
                 (assert)
                 (lemma "sin_lb_increasing")
                 (inst - "5+n")
                 (expand "strict_increasing?")
                 (inst - "0" "lb(Y)")
                 (assert)
                 (case "lb(Y) = 0")
                 (("1" (replace -1) (rewrite "sin_lb_a0") (assert))
                  ("2"
                   (assert)
                   (assert)
                   (rewrite "sin_lb_a0")
                   (assert))))))
              ("2"
               (hide-all-but 1)
               (skeep)
               (mult-ineq -1 -2)
               (cross-mult 1))))
            ("2"
             (case "FORALL (aa,bb:nnreal,cc,dd:posreal): (aa<=bb AND cc >= dd) IMPLIES aa/cc <= bb/dd")
             (("1"
               (rewrite -1)
               (("1"
                 (hide 2)
                 (lemma "sin_ub_increasing")
                 (inst - "5+n")
                 (expand "strict_increasing?")
                 (inst - "ub(X)" "ub(Y)")
                 (assert))
                ("2"
                 (hide 2)
                 (lemma "cos_lb_nn_strict_decreasing")
                 (inst - "5+n")
                 (expand "strict_decreasing?")
                 (inst - "ub(X)" "ub(Y)")
                 (assert))
                ("3"
                 (hide 2)
                 (assert)
                 (lemma "sin_ub_increasing")
                 (inst - "5+n")
                 (expand "strict_increasing?")
                 (inst - "0" "ub(Y)")
                 (assert)
                 (case "sin_ub(0, 5 + n)=0")
                 (("1" (assert))
                  ("2"
                   (hide-all-but 1)
                   (expand "sin_ub")
                   (rewrite "sin_approx_a0"))))
                ("4"
                 (assert)
                 (lemma "sin_ub_increasing")
                 (inst - "5+n")
                 (expand "strict_increasing?")
                 (inst - "0" "ub(X)")
                 (case "sin_ub(0, 5 + n)=0")
                 (("1" (assert))
                  ("2"
                   (hide-all-but 1)
                   (expand "sin_ub")
                   (rewrite "sin_approx_a0"))))))
              ("2"
               (hide-all-but 1)
               (skosimp*)
               (mult-ineq -1 -2)
               (cross-mult 1))))))
          ("2"
           (flatten)
           (hide 2)
           (split)
           (("1"
             (lemma "cos_ub_nn_strict_decreasing")
             (inst - "5+n")
             (assert)
             (expand "strict_decreasing?")
             (inst - "lb(X)" "pi_lbn(5+n)/2")
             (("1"
               (assert)
               (lemma "cos_lb_pi2_pos")
               (inst - "5+n")
               (assert)
               (lemma "cos_bounds")
               (inst - "pi_lbn(5+n)/2" "5+n")
               (flatten)
               (assert)
               (case "NOT pi_lb_est(5+n) <= pi_lbn(5+n)")
               (("1"
                 (assert)
                 (expand "pi_lb_est" 1)
                 (assert)
                 (lift-if)
                 (assert)
                 (ground))
                ("2" (assert))))
              ("2"
               (expand "pi_lb_est")
               (lift-if)
               (ground)
               (case "FORALL (nn:below(10)): pi_lbn(5 + nn) / 2 <= pi_lbn(5 + nn) - 2 / (1 + (5 + nn) ^ 3)")
               (("1" (inst - "n"))
                ("2" (hide-all-but 1) (eval-formula))))))
            ("2"
             (lemma "cos_lb_nn_strict_decreasing")
             (inst - "5+n")
             (assert)
             (expand "strict_decreasing?")
             (inst - "ub(X)" "pi_lbn(5+n)/2")
             (("1"
               (assert)
               (lemma "cos_lb_pi2_pos")
               (inst - "5+n")
               (assert)
               (case "NOT pi_lb_est(5+n) <= pi_lbn(5+n)")
               (("1"
                 (assert)
                 (expand "pi_lb_est" 1)
                 (assert)
                 (lift-if)
                 (assert)
                 (ground))
                ("2" (assert))))
              ("2" (lemma "pi_bounds") (inst - "5+n") (ground))))))))
        ("2" (flatten) (hide-all-but -1) (grind))))
      ("2" (hide 2) (hide -2) (grind :exclude "pi_lb_est"))))
    ("2"
     (case "NOT FORALL (X, Y: Interval, n: nat):
                                              Proper?(X) AND
                                               Proper?(Tan(n)(Y)) AND
                                                X << Y AND (Y << [| 0, pi_lb_est(5 + n) / 2 |] OR Y << [| -pi_lb_est(5 + n) / 2,0 |])
                                               IMPLIES Tan(n)(X) << Tan(n)(Y)")
     (("1"
       (hide 2)
       (skeep)
       (inst-cp - "X" "Y" "n")
       (assert)
       (expand "Tan" -2)
       (ground)
       (case "Y = [|0,0|]")
       (("1"
         (assert)
         (case "X = [|0,0|]")
         (("1"
           (replace -1)
           (replace -2)
           (hide-all-but 1)
           (expand "<<")
           (propax))
          ("2"
           (expand "<<")
           (flatten)
           (assert)
           (expand "Proper?")
           (assert)
           (expand "[||]")
           (decompose-equality))))
        ("2"
         (inst - "Neg(X)" "Neg(Y)" "n")
         (assert)
         (case "Neg(Y) << [| 0, pi_lb_est(5 + n) / 2 |]")
         (("1"
           (assert)
           (case "Neg(X) << [| 0, pi_lb_est(5 + n) / 2 |]")
           (("1"
             (assert)
             (split -)
             (("1"
               (expand "Tan")
               (assert)
               (lift-if)
               (split +)
               (("1"
                 (flatten)
                 (case "X = [| 0, 0 |]")
                 (("1"
                   (replace -1)
                   (expand "tan_0_pi2" 1 1)
                   (expand "[||]" +)
                   (rewrite "cos_ub_a0")
                   (assert)
                   (rewrite "cos_lb_a0")
                   (assert)
                   (rewrite "sin_ub_a0")
                   (rewrite "sin_lb_a0")
                   (expand "tan_0_pi2" 1)
                   (lift-if)
                   (ground)
                   (("1"
                     (expand "Neg" +)
                     (expand "[||]" +)
                     (hide 3)
                     (expand "<<" 1)
                     (split)
                     (("1"
                       (mult-by 1 "cos_lb(-lb(Y),5+n)")
                       (("1"
                         (assert)
                         (case "sin_ub(-lb(Y),5+n)>=0")
                         (("1" (assert))
                          ("2"
                           (hide 2)
                           (lemma "sin_ub_increasing")
                           (inst - "5+n")
                           (expand "strict_increasing?")
                           (inst - "0" "-lb(Y)")
                           (("1"
                             (assert)
                             (rewrite "sin_ub_a0")
                             (assert)
                             (expand "Neg")
                             (expand "[||]")
                             (assert)
                             (case "lb(Y) = 0")
                             (("1"
                               (replace -1)
                               (rewrite "sin_ub_a0")
                               (assert))
                              ("2" (assert) (expand "<<") (propax))))
                            ("2"
                             (expand "<<")
                             (expand "[||]")
                             (ground))))))
                        ("2"
                         (invoke (case "%1 > 0") (! 1 2 1))
                         (("1" (assert))
                          ("2"
                           (hide (2 3))
                           (expand "Neg" (-1 -2))
                           (expand "[||]" (-1 -2))
                           (propax))))))
                      ("2"
                       (case "ub(Y) = 0")
                       (("1"
                         (replaces -1)
                         (assert)
                         (rewrite "cos_ub_a0")
                         (rewrite "sin_lb_a0")
                         (assert))
                        ("2" (expand "<<") (expand "[||]") (ground))))))
                    ("2"
                     (expand "Neg" 1)
                     (expand "[||]" 1)
                     (case "ub(Y) = 0")
                     (("1" (replaces -1) (rewrite "cos_ub_a0") (assert))
                      ("2" (expand "<<") (expand "[||]") (ground))))
                    ("3"
                     (expand "Neg" 1)
                     (expand "[||]" 1)
                     (lemma "cos_lb_nn_strict_decreasing")
                     (inst - "5+n")
                     (expand "strict_decreasing?")
                     (inst - "-lb(Y)" "pi_lbn(5 + n) / 2")
                     (("1"
                       (invoke (case "%1 > 0") (! -1 2 1))
                       (("1"
                         (assert)
                         (expand "<<" -7)
                         (expand "[||]")
                         (ground)
                         (case "pi_lb_est(5+n)<=pi_lbn(5+n)")
                         (("1" (assert))
                          ("2"
                           (assert)
                           (hide-all-but 1)
                           (expand "pi_lb_est")
                           (lift-if)
                           (ground))))
                        ("2"
                         (lemma "cos_lb_pi2_pos")
                         (inst - "5+n")
                         (assert))))
                      ("2"
                       (assert)
                       (lemma "pi_bounds")
                       (inst - "5+n")
                       (ground))
                      ("3"
                       (case "pi_lb_est(5+n) <= pi")
                       (("1"
                         (expand "[||]")
                         (expand "<<")
                         (flatten)
                         (assert))
                        ("2"
                         (hide-all-but 1)
                         (lemma "pi_bounds")
                         (inst - "5+n")
                         (expand "pi_lb_est")
                         (lift-if)
                         (ground))))))))
                  ("2"
                   (expand "<<")
                   (expand "[||]")
                   (flatten)
                   (expand "Proper?")
                   (decompose-equality +))))
                ("2"
                 (flatten)
                 (split +)
                 (("1" (flatten) (lemma "Neg_Incl") (inst?) (assert))
                  ("2"
                   (flatten)
                   (hide 2)
                   (expand "Proper?")
                   (expand "<<")
                   (expand "[||]")
                   (flatten)
                   (assert))))))
              ("2" (hide-all-but (-6 1)) (grind))
              ("3"
               (expand "Tan" 1)
               (hide-all-but (-5 1))
               (grind :exclude "tan_0_pi2"))
              ("4"
               (expand "<<")
               (expand "Neg")
               (expand "[||]")
               (ground))))
            ("2" (grind :exclude ("Tan" "pi_lb_est" "tan_0_pi2")))))
          ("2"
           (hide-all-but (-1 1))
           (grind :exclude ("Tan" "pi_lb_est" "tan_0_pi2")))))))
      ("2"
       (hide -2)
       (skeep)
       (case "NOT Proper?(Tan(n)(Y))")
       (("1"
         (lemma "Tan_inclusion")
         (inst - "Y" "n" "lb(X)")
         (assert)
         (split -)
         (("1"
           (hide-all-but (-1 1))
           (expand "Proper?")
           (expand "##")
           (ground))
          ("2" (expand "Proper?") (expand "<<") (expand "##") (ground))))
        ("2"
         (hide -4)
         (copy -3)
         (hide -4)
         (copy -3)
         (hide -4)
         (inst-cp - "X" "Y" "n")
         (assert)
         (flatten)
         (expand "Tan" -3)
         (ground)
         (("1"
           (lemma "tan_npi2_pi2_union")
           (inst - "Y" "n+5")
           (assert)
           (split -)
           (("1"
             (expand "Tan" + 2)
             (label "TanY" -1)
             (replace "TanY" +)
             (assert)
             (expand "Tan" +)
             (lift-if)
             (ground)
             (("1"
               (inst - "Intersection(X,[|0,pi_lb_est(5+n)/2|])"
                "Intersection(Y,[|0,pi_lb_est(5+n)/2|])" "n")
               (case "Intersection(X, [| 0, pi_lb_est(5+n) / 2 |]) = X")
               (("1"
                 (replace -1)
                 (assert)
                 (split -)
                 (("1"
                   (expand "Tan" -1)
                   (invoke (case "%1") (! -1 2 1))
                   (("1"
                     (assert)
                     (lemma "Incl_trans")
                     (invoke (inst - "%1" "%2" "%3") (! -3 1) (! -3 2)
                      (! 1 2))
                     (assert)
                     (lemma "Union_Incl_right")
                     (inst?))
                    ("2"
                     (assert)
                     (hide-all-but 1)
                     (grind :exclude "pi_lb_est"))))
                  ("2"
                   (lemma "Tan_proper")
                   (inst?)
                   (assert)
                   (hide (-3 3))
                   (grind :exclude
                    ("tan_0_pi2" "pi_lb_est" "tan_npi2_pi2" "Tan")))
                  ("3"
                   (hide (-3 2))
                   (grind :exclude
                    ("tan_0_pi2" "pi_lb_est" "tan_npi2_pi2" "Tan")))
                  ("4"
                   (flatten)
                   (hide (-3 3))
                   (grind :exclude
                    ("tan_0_pi2" "pi_lb_est" "tan_npi2_pi2" "Tan")))))
                ("2"
                 (hide-all-but (-1 -6 1))
                 (grind :exclude
                  ("tan_0_pi2" "pi_lb_est" "tan_npi2_pi2" "Tan"))
                 (decompose-equality))))
              ("2"
               (invoke (case "%1 << %2") (! 1 1) (! 1 2 1))
               (("1"
                 (hide-all-but (-1 1))
                 (grind :exclude
                  ("tan_0_pi2" "Intersection" "pi_lb_est" "Neg")))
                ("2"
                 (hide 2)
                 (lemma "Neg_Incl")
                 (inst?)
                 (assert)
                 (hide 2)
                 (invoke (inst - "%1" "%2" "n") (! 1 1 1) (! 1 2 1))
                 (split -)
                 (("1"
                   (expand "Tan" -1 1)
                   (invoke (case "%1") (! -1 1 1))
                   (("1"
                     (assert)
                     (expand "Tan" -2)
                     (invoke (case "%1") (! -2 2 1))
                     (("1" (assert))
                      ("2"
                       (hide-all-but 1)
                       (grind :exclude ("tan_0_pi2" "pi_lb_est")))))
                    ("2"
                     (hide-all-but (-2 1))
                     (grind :exclude ("tan_0_pi2" "pi_lb_est")))))
                  ("2"
                   (expand "Neg")
                   (expand "Proper?")
                   (expand "[||]")
                   (assert))
                  ("3"
                   (lemma "Tan_proper")
                   (inst?)
                   (assert)
                   (hide (-2 2 3))
                   (grind :exclude
                    ("tan_0_pi2" "pi_lb_est" "tan_npi2_pi2")))
                  ("4"
                   (hide (-2 2))
                   (grind :exclude
                    ("tan_0_pi2" "pi_lb_est" "tan_npi2_pi2")))
                  ("5"
                   (hide (-2 2))
                   (grind :exclude
                    ("tan_0_pi2" "pi_lb_est" "tan_npi2_pi2")))))))
              ("3"
               (rewrite "tan_npi2_pi2_union")
               (("1"
                 (case "FORALL (XX,YY,WW,ZZ:Interval): XX<<WW AND YY<<ZZ IMPLIES Union(XX,YY) << Union(WW,ZZ)")
                 (("1"
                   (rewrite -1)
                   (("1"
                     (hide 2)
                     (hide -3)
                     (lemma "Neg_Incl")
                     (rewrite -1)
                     (hide 2)
                     (invoke (inst-cp - "%1" "%2" "n") (! 1 1 1)
                      (! 1 2 1))
                     (split -)
                     (("1"
                       (expand "Tan" -1 1)
                       (invoke (case "%1") (! -1 1 1))
                       (("1"
                         (assert)
                         (expand "Tan" -2)
                         (invoke (case "%1") (! -2 2 1))
                         (("1" (assert))
                          ("2"
                           (hide-all-but 1)
                           (grind :exclude
                            ("tan_0_pi2" "pi_lb_est" "tan_npi2_pi2")))))
                        ("2"
                         (hide-all-but 1)
                         (grind :exclude
                          ("tan_0_pi2" "pi_lb_est" "tan_npi2_pi2")))))
                      ("2"
                       (hide (-1 -2 -6 2))
                       (grind :exclude
                        ("tan_0_pi2" "pi_lb_est" "tan_npi2_pi2")))
                      ("3"
                       (hide 2)
                       (lemma "Tan_proper")
                       (rewrite -1)
                       (("1"
                         (hide (-1 -2 -3 -7 2))
                         (grind :exclude
                          ("tan_0_pi2" "pi_lb_est" "tan_npi2_pi2")))
                        ("2"
                         (hide-all-but 1)
                         (grind :exclude
                          ("tan_0_pi2" "pi_lb_est" "tan_npi2_pi2")))))
                      ("4"
                       (hide-all-but (-7 -8 1))
                       (grind :exclude
                        ("tan_0_pi2" "pi_lb_est" "tan_npi2_pi2")))
                      ("5"
                       (hide-all-but 1)
                       (grind :exclude
                        ("tan_0_pi2" "pi_lb_est" "tan_npi2_pi2")))))
                    ("2"
                     (invoke (inst - "%1" "%2" "n") (! 1 1 1) (! 1 2 1))
                     (split -)
                     (("1"
                       (expand "Tan" -1 1)
                       (invoke (case "%1") (! -1 1 1))
                       (("1"
                         (assert)
                         (expand "Tan" -2 1)
                         (invoke (case "%1") (! -2 2 1))
                         (("1" (assert))
                          ("2"
                           (hide-all-but 1)
                           (grind :exclude
                            ("tan_0_pi2" "pi_lb_est" "tan_npi2_pi2")))))
                        ("2"
                         (hide-all-but 1)
                         (grind :exclude
                          ("tan_0_pi2" "pi_lb_est" "tan_npi2_pi2")))))
                      ("2"
                       (hide (-1 -3 2 3))
                       (grind :exclude
                        ("tan_0_pi2" "pi_lb_est" "tan_npi2_pi2")))
                      ("3"
                       (rewrite "Tan_proper")
                       (("1"
                         (hide (-1 -3 2 3 4))
                         (grind :exclude
                          ("tan_0_pi2" "pi_lb_est" "tan_npi2_pi2")))
                        ("2"
                         (hide-all-but 1)
                         (grind :exclude
                          ("tan_0_pi2" "pi_lb_est" "tan_npi2_pi2")))))
                      ("4"
                       (hide (-1 -2 -3 2 3))
                       (grind :exclude
                        ("tan_0_pi2" "pi_lb_est" "tan_npi2_pi2")))
                      ("5"
                       (hide-all-but 1)
                       (grind :exclude
                        ("tan_0_pi2" "pi_lb_est" "tan_npi2_pi2")))))))
                  ("2" (hide-all-but 1) (grind))))
                ("2"
                 (hide (-2 -5 2))
                 (grind :exclude
                  ("tan_0_pi2" "pi_lb_est" "tan_npi2_pi2")))))
              ("4"
               (hide (-1 -4 2))
               (grind :exclude
                ("tan_0_pi2" "pi_lb_est" "tan_npi2_pi2")))))
            ("2"
             (hide -3)
             (grind :exclude ("tan_0_pi2" "pi_lb_est" "tan_npi2_pi2")))))
          ("2"
           (expand "Proper?")
           (expand "EmptyInterval")
           (expand "[||]")
           (assert))))))))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_trig
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (expand "##")
   (expand* "atan" "Atan")
   (flatten)
   (assert)
   (lemma "atan_bounds")
   (split)
   (("1"
     (inst -1 "n" "lb(X)")
     (flatten)
     (lemma "atan_strict_increasing")
     (expand "strict_increasing?")
     (inst -1 "lb(X)" "x")
     (assert)
     (expand "atan")
     (assert))
    ("2"
     (inst -1 "n" "ub(X)")
     (flatten)
     (lemma "atan_strict_increasing")
     (expand "strict_increasing?")
     (inst -1 "x" "ub(X)")
     (expand "atan")
     (assert))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_trig
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (case "Proper?(X)")
   (("1"
     (case "ub(X) ## X")
     (("1"
       (case "lb(X) ## X")
       (("1"
         (case "tan(lb(X)) < tan(ub(X))")
         (("1"
           (case "tan(lb(X)) ## Tan(n)(X)")
           (("1"
             (case "tan(ub(X)) ## Tan(n)(X)")
             (("1"
               (lemma "Strict_Lt")
               (inst -1 "Tan(n)(X)" _ _)
               (inst?)
               (assert))
              ("2" (rewrite "Tan_inclusion"))))
            ("2" (rewrite "Tan_inclusion"))))
          ("2"
           (expand "TAN?")
           (expand "StrictInterval?" -5)
           (lemma "tan_increasing")
           (inst -1 "ub(X)" "lb(X)")
           (assert)
           (expand "<<")
           (assert)
           (flatten)
           (lemma "pi_bounds")
           (inst?)
           (("1" (flatten) (assert))
            ("2"
             (lemma "Tan_pi2_def")
             (inst -1 "X" "n+Cos_pos_n" "ub(X)")
             (assert))))
          ("3"
           (lemma "Tan_pi2_def")
           (inst -1 "X" "n+Cos_pos_n" "ub(X)")
           (assert)
           (lemma "pi_lb_est_le")
           (hide (2 3))
           (inst?)
           (grind :exclude ("pi_lb_est" "pi_lbn")))
          ("4"
           (lemma "Tan_pi2_def")
           (inst -1 "X" "n+Cos_pos_n" "lb(X)")
           (assert)
           (hide (2 3))
           (lemma "pi_lb_est_le")
           (inst?)
           (grind :exclude ("pi_lb_est" "pi_lbn")))))
        ("2" (rewrite "lb_inclusion"))))
      ("2" (rewrite "ub_inclusion"))))
    ("2" (rewrite "Strict_Proper"))))


proof_type: t_proof
decl_type: tcc
library: interval_arith
theory: interval_trig
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (expand "Pos?")
   (expand "Gt")
   (expand "[||]")
   (split)
   (("1" (assert)) ("2" (assert))))


proof_type: t_proof
decl_type: tcc
library: interval_arith
theory: interval_trig
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (lemma "Tan_pi2_def")
   (inst?)
   (inst?)
   (expand "<<")
   (assert)
   (flatten)
   (assert))


proof_type: j_proof
decl_type: tcc
library: interval_arith
theory: interval_trig
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep :preds? t)
   (lemma "Proper_Member")
   (inst?)
   (assert)
   (skeep)
   (lemma "Member_Proper")
   (inst? -1 :where 1)
   (inst -1 "sin(x)")
   (assert)
   (rewrite "Sin_inclusion"))


proof_type: j_proof
decl_type: tcc
library: interval_arith
theory: interval_trig
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep :preds? t)
   (lemma "Proper_Member")
   (inst?)
   (assert)
   (skeep)
   (lemma "Member_Proper")
   (inst? -1 :where 1)
   (inst -1 "cos(x)")
   (assert)
   (rewrite "Cos_inclusion"))


proof_type: j_proof
decl_type: tcc
library: interval_arith
theory: interval_trig
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep :preds? t)
   (lemma "Proper_Member")
   (inst?)
   (assert)
   (skeep)
   (lemma "Member_Proper")
   (inst? -1 :where 1)
   (inst -1 "tan(x)")
   (("1" (assert) (rewrite "Tan_inclusion"))
    ("2" (lemma "TAN_Tan") (inst?) (inst?) (assert))))


proof_type: j_proof
decl_type: tcc
library: interval_arith
theory: interval_trig
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep :preds? t)
   (lemma "Proper_Member")
   (inst?)
   (assert)
   (skeep)
   (lemma "Member_Proper")
   (inst? -1 :where 1)
   (inst -1 "atan(x)")
   (assert)
   (rewrite "Atan_inclusion"))


proof_type: j_proof
decl_type: tcc
library: interval_arith
theory: interval_expr_trig
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (expand "Inclusion?")
   (skeep :preds? t)
   (expand "tan_safe")
   (case-replace "Tan?(x)")
   (("1" (rewrite "Tan_inclusion"))
    ("2" (hide 2) (lemma "TAN_Tan") (inst?) (inst?) (assert))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_sqrt
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "NonNeg?")
   (expand "Sqrt")
   (assert)
   (expand* "##" "Ge")
   (assert)
   (flatten)
   (split 1)
   (("1"
     (case "sqrt(lb(X))<= sqrt(x)")
     (("1" (lemma "sqrt_bounds") (inst? -1) (assert))
      ("2" (hide 2) (lemma "sqrt_le") (inst?) (assert)) ("3" (propax))))
    ("2"
     (case "sqrt(x)<=sqrt(ub(X))")
     (("1" (lemma "sqrt_bounds") (inst? -1) (assert))
      ("2" (hide 2) (lemma "sqrt_le") (inst?) (assert)) ("3" (propax))))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_sqrt
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "Sqrt")
   (assert)
   (case "Ge(Y,0)")
   (("1"
     (case "Ge(X,0)")
     (("1"
       (assert)
       (expand "[||]")
       (expand "<<")
       (flatten)
       (expand "sqrt_ub")
       (expand "sqrt_lb")
       (lemma "sqrt_approx_fast_increasing")
       (inst-cp - "2*n" "lb(Y)" "lb(X)")
       (("1"
         (inst - "2*n" "ub(X)" "ub(Y)")
         (("1"
           (assert)
           (expand "max")
           (lift-if)
           (lift-if)
           (lift-if)
           (ground))
          ("2" (assert) (expand "Ge") (propax))
          ("3" (expand "Ge") (ground))))
        ("2" (expand "Ge") (ground)) ("3" (expand "Ge") (ground))))
      ("2" (hide 2) (grind))))
    ("2" (hide 2) (grind))))


proof_type: t_proof
decl_type: tcc
library: interval_arith
theory: interval_sqrt
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (expand "NonNeg?")
   (expand "[||]")
   (expand "Ge")
   (flatten)
   (assert)
   (assert)
   (assert))


proof_type: j_proof
decl_type: tcc
library: interval_arith
theory: interval_sqrt
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep :preds? t)
   (lemma "Proper_Member")
   (inst? -)
   (assert)
   (skeep)
   (lemma "Member_Proper")
   (inst? -1 :where 1)
   (inst -1 "sqrt(x)")
   (("1" (assert) (rewrite "Sqrt_inclusion"))
    ("2" (hide-all-but (-1 -3 1)) (grind))))


proof_type: j_proof
decl_type: tcc
library: interval_arith
theory: interval_expr_sqrt
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "Inclusion?")
   (skeep :preds? t)
   (expand "sqrt_safe")
   (case-replace "max(x,0) = x")
   (("1" (rewrite "Sqrt_inclusion")) ("2" (hide 2) (grind))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_bexpr
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (induct "bexpr")
   (("1" (assert)) ("2" (typepred "bexpr!1") (assert)) ("3" (assert))
    ("4" (assert)) ("5" (assert)) ("6" (assert)) ("7" (assert))
    ("8" (assert)) ("9" (assert)) ("10" (assert)) ("11" (assert))
    ("12" (assert)) ("13" (assert)) ("14" (assert))
    ("15" (skeep) (hide -1) (expand* "BEval" "beval"))
    ("16"
     (skolem 1 "be" :skolem-typepreds? t)
     (replaces -)
     (flatten)
     (skeep)
     (insteep -)
     (expand "beval" 1)
     (expand "BEval" (-2 1))
     (lift-if)
     (ground))
    ("17"
     (skolem 1 ("be1" "be2") :skolem-typepreds? t)
     (replaces -)
     (flatten)
     (skeep)
     (insteep -)
     (insteep -)
     (expand "beval" 1)
     (expand "BEval" (-3 1))
     (lift-if)
     (ground))
    ("18"
     (skolem 1 ("be1" "be2") :skolem-typepreds? t)
     (replaces -)
     (flatten)
     (skeep)
     (insteep -)
     (insteep -)
     (expand "beval" 1)
     (expand "BEval" (-3 1))
     (lift-if)
     (ground))
    ("19"
     (skolem 1 ("be1" "be2") :skolem-typepreds? t)
     (replaces -)
     (flatten)
     (skeep)
     (insteep -)
     (insteep -)
     (expand "beval" 1)
     (expand "BEval" (-3 1))
     (lift-if)
     (ground))
    ("20"
     (skolem 1 ("rel" "r1" "r2"))
     (flatten)
     (hide (-1 -2 -3))
     (skeep)
     (expand "beval")
     (expand "BEval")
     (case "Proper?(Eval(r1,box)) AND  Proper?(Eval(r2,box))")
     (("1"
       (flatten)
       (assert)
       (lemma "Eval_inclusion_Proper")
       (copy -1)
       (inst? -1 :where -3)
       (inst? -1)
       (inst? -2 :where -4)
       (inst? -2)
       (assert)
       (typepred "rel")
       (case "rel(0,1)")
       (("1"
         (assert)
         (lift-if 1)
         (split)
         (("1" (flatten) (assert) (grind :exclude ("Eval" "eval")))
          ("2"
           (flatten)
           (assert)
           (split 2)
           (("1" (flatten) (assert) (grind :exclude ("Eval" "eval")))
            ("2" (flatten) (assert))))))
        ("2"
         (assert)
         (lift-if 2)
         (split)
         (("1" (flatten) (assert) (grind :exclude ("Eval" "eval")))
          ("2"
           (flatten)
           (assert)
           (split)
           (("1" (flatten) (assert) (grind :exclude ("Eval" "eval")))
            ("2" (flatten) (assert))))))))
      ("2" (hide 2) (ground))))
    ("21"
     (skolem 1 ("r" "R"))
     (flatten)
     (hide -1 -2)
     (skeep)
     (expand "beval")
     (expand "BEval")
     (case "Proper?(Eval(r,box)) AND Proper?(R)")
     (("1"
       (flatten)
       (assert)
       (lemma "Eval_inclusion_Proper")
       (inst? -1)
       (assert)
       (case "Eval(r, box) << R")
       (("1" (assert) (grind :exclude ("Eval" "eval")))
        ("2"
         (assert)
         (lift-if 2)
         (split 2)
         (("1"
           (flatten)
           (assert)
           (replace -1)
           (grind :exclude ("Eval" "eval")))
          ("2" (flatten) (assert))))))
      ("2" (hide 2) (ground))))
    ("22"
     (skolem 1 ("be1" "be2" "b3") :skolem-typepreds? t)
     (replaces -)
     (flatten)
     (skeep)
     (insteep -)
     (insteep -)
     (insteep -)
     (expand "beval" 1)
     (expand "BEval" (-4 1))
     (case-replace "some?(BEval(be1, box))")
     (("1" (lift-if) (ground))
      ("2" (replace 1) (lift-if) (ground) (assert) (lift-if) (ground))))
    ("23"
     (skolem 1 ("blet" "bin") :skolem-typepreds? t)
     (replaces -)
     (flatten)
     (skeep)
     (case "realexpr?(blet)")
     (("1"
       (hide -2)
       (expand "beval" 1)
       (expand "BEval" (-3 1))
       (replace -1)
       (lift-if)
       (case-replace "Proper?(Eval(blet, box))")
       (("1"
         (inst? -)
         (case "length(append(box, (: Eval(blet, box) :))) = length(box) + 1")
         (("1"
           (inst -4
            "vs WITH [(length(box)) := eval(blet, vs,length(box))]")
           (("1" (assert))
            ("2"
             (hide -4 2)
             (typepred "vs")
             (expand "vars_in_box?")
             (skeep :preds? t)
             (replace -3)
             (case-replace "i=length(box)")
             (("1"
               (assert)
               (rewrite "nth_append")
               (expand "nth" 1)
               (lemma "Eval_inclusion_Proper")
               (inst? -1)
               (assert))
              ("2" (assert) (inst? -2) (rewrite "nth_append"))))))
          ("2" (hide-all-but 1) (rewrite "length_append") (assert))))
        ("2" (assert)) ("3" (expand "realexpr?") (propax))))
      ("2"
       (lemma "real_bool_expr")
       (inst?)
       (assert)
       (expand "boolexpr?")
       (replace -1)
       (expand "beval" 2)
       (expand "BEval" (-4 2))
       (name-replace "nbox"
        "append(box,
                                                 (: IF none?(BEval(blet, box)) THEN [|-1, 1|]
                                                    ELSIF val(BEval(blet, box)) THEN [|1/2, 1|]
                                                    ELSE [|-1, -1 / 2|]
                                                    ENDIF :))"
        :hide? nil)
       (("1"
         (case "length(nbox) = 1+length(box)")
         (("1"
           (inst? -5)
           (inst -5
            "vs WITH [(length(box))
                                                               := IF beval(blet, vs, length(box)) THEN 1
                                                                  ELSE -1
                                                                  ENDIF]")
           (("1" (assert) (replace -1) (propax))
            ("2"
             (hide 3)
             (typepred "vs")
             (expand "vars_in_box?")
             (skeep :preds? t)
             (replace -3)
             (case-replace "i=length(box)")
             (("1"
               (assert)
               (replaces -5 :dir rl)
               (rewrite "nth_append")
               (("1"
                 (expand "nth" 1)
                 (insteep -6)
                 (case-replace "some?(BEval(blet, box))")
                 (("1"
                   (assert)
                   (replaces -7)
                   (hide-all-but 1)
                   (grind :exclude "beval"))
                  ("2"
                   (assert)
                   (hide-all-but 2)
                   (grind :exclude "beval"))))
                ("2" (flatten) (assert)) ("3" (flatten) (assert))))
              ("2"
               (assert)
               (inst? -2)
               (replaces -4 :dir rl)
               (rewrite "nth_append")
               (("1" (flatten) (assert)) ("2" (flatten) (assert))))))))
          ("2"
           (replaces -1 :dir rl)
           (rewrite "length_append")
           (("1" (flatten) (assert)) ("2" (flatten) (assert))))))
        ("2" (flatten) (assert)) ("3" (flatten) (assert))))))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_bexpr
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (beta)
   (flatten)
   (iff)
   (lemma "BEval_inclusion")
   (inst -1 "pox" _ "bexpr")
   (split)
   (("1" (flatten) (skeep) (inst? -) (assert))
    ("2"
     (flatten)
     (assert)
     (inst -1 "midvars(pox)")
     (inst -2 "midvars(pox)"))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_bexpr
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (induct "bexpr")
   (("1" (assert)) ("2" (typepred "bexpr!1") (assert)) ("3" (assert))
    ("4" (assert)) ("5" (assert)) ("6" (assert)) ("7" (assert))
    ("8" (assert)) ("9" (assert)) ("10" (assert)) ("11" (assert))
    ("12" (assert)) ("13" (assert)) ("14" (assert))
    ("15" (skeep) (hide -1) (skeep) (expand "BEval") (propax))
    ("16"
     (skolem 1 "be" :skolem-typepreds? t)
     (replaces -1)
     (flatten)
     (skeep)
     (insteep -)
     (assert)
     (expand "BEval" (-3 1))
     (lift-if)
     (ground))
    ("17"
     (skolem 1 ("be1" "be2") :skolem-typepreds? t)
     (replaces (-1 -2))
     (flatten)
     (skeep)
     (insteep -)
     (insteep -)
     (assert)
     (expand "BEval" (-4 1))
     (lift-if)
     (ground))
    ("18"
     (skolem 1 ("be1" "be2") :skolem-typepreds? t)
     (replaces (-1 -2))
     (flatten)
     (skeep)
     (insteep -)
     (insteep -)
     (expand "BEval" (-4 1))
     (lift-if)
     (ground))
    ("19"
     (skolem 1 ("be1" "be2") :skolem-typepreds? t)
     (replaces (-1 -2))
     (flatten)
     (skeep)
     (insteep -)
     (insteep -)
     (assert)
     (expand "BEval" (-4 1))
     (lift-if)
     (ground))
    ("20"
     (skolem 1 ("rel" "r1" "r2"))
     (flatten)
     (hide -)
     (skeep)
     (name-replace "beb" "BEval(BREL(rel, r1, r2), box)" :hide? nil)
     (name-replace "bep" "BEval(BREL(rel, r1, r2), pox)" :hide? nil)
     (lemma "Proper_Inclusion")
     (inst?)
     (assert)
     (expand "BEval")
     (case "Proper?(Eval(r1,box))")
     (("1"
       (assert)
       (copy -2)
       (inst? -)
       (assert)
       (case "Proper?(Eval(r2,box))")
       (("1"
         (assert)
         (inst? - :where -1)
         (assert)
         (typepred "rel")
         (lemma "Eval_fundamental_proper")
         (inst?)
         (assert)
         (copy -1)
         (inst? -1 :where -6)
         (inst? -2 :where -4)
         (assert)
         (hide -11)
         (grind :exclude "Eval"))
        ("2" (assert))))
      ("2" (assert))))
    ("21"
     (skolem 1 ("r" "R"))
     (flatten)
     (hide -)
     (skeep)
     (name-replace "bep" "BEval(BINCLUDES(r, R), pox)" :hide? nil)
     (name-replace "beb" "BEval(BINCLUDES(r, R), box)" :hide? nil)
     (lemma "Proper_Inclusion")
     (inst?)
     (assert)
     (inst?)
     (expand "BEval")
     (case "Proper?(Eval(r, box))")
     (("1"
       (assert)
       (case "Proper?(R)")
       (("1"
         (assert)
         (lemma "Eval_fundamental_proper")
         (inst?)
         (assert)
         (inst?)
         (assert)
         (hide -8)
         (grind :exclude "Eval"))
        ("2" (assert))))
      ("2" (assert))))
    ("22"
     (skolem 1 ("be1" "be2" "be3") :skolem-typepreds? t)
     (replaces (-1 -2 -3))
     (flatten)
     (skeep)
     (insteep -)
     (insteep -)
     (insteep -)
     (assert)
     (case "some?(BEval(be1, box))")
     (("1" (assert) (flatten) (expand "BEval" (-7 1)) (lift-if) (ground))
      ("2"
       (expand "BEval" (-5 2))
       (assert)
       (case "NOT some?(BEval(be1,pox))")
       (("1" (assert) (lift-if) (ground))
        ("2" (assert) (lift-if) (ground))))))
    ("23"
     (skolem 1 ("blet" "bin") :skolem-typepreds? t)
     (replaces -1)
     (flatten)
     (skeep)
     (lemma "real_bool_expr")
     (inst?)
     (case "realexpr?(blet)")
     (("1"
       (hide -2 -3)
       (expand "BEval" (-4 1))
       (assert)
       (case-replace "Proper?(Eval(blet, box))")
       (("1"
         (lemma "Proper_Inclusion")
         (inst? -)
         (assert)
         (inst?)
         (assert)
         (inst -4 "append(box, (: Eval(blet, box) :))"
          "append(pox, (: Eval(blet, pox) :))")
         (("1"
           (replace -6)
           (replace 1)
           (hide 2)
           (expand "Inclusion?")
           (flatten)
           (case "length(append(pox, (: Eval(blet, pox) :))) = length(pox) + 1")
           (("1"
             (case "length(append(box, (: Eval(blet, box) :))) = length(box) + 1")
             (("1"
               (assert)
               (skeep :preds? t)
               (replace -3)
               (case-replace "i=length(pox)")
               (("1"
                 (rewrite "nth_append")
                 (expand "nth" 1 1)
                 (replace -8)
                 (rewrite "nth_append")
                 (expand "nth" 1)
                 (lemma "Eval_fundamental_proper")
                 (insteep -)
                 (assert)
                 (inst? -)
                 (assert))
                ("2"
                 (rewrite "nth_append")
                 (assert)
                 (rewrite "nth_append")
                 (insteep -8))))
              ("2" (hide-all-but 1) (rewrite "length_append") (assert))))
            ("2" (hide-all-but 1) (rewrite "length_append") (assert))))
          ("2"
           (hide -5 2)
           (rewrite "proper_append")
           (hide 2)
           (expand "ProperBox?")
           (expand "every")
           (expand "every")
           (propax))))
        ("2" (assert)) ("3" (hide 2) (expand "realexpr?") (propax))))
      ("2"
       (assert)
       (expand "boolexpr?")
       (replace -1)
       (expand "BEval" (-5 2))
       (name-replace "nbox"
        "append(box,
                                       cons(IF none?(BEval(blet, box)) THEN [|-1, 1|]
                                            ELSIF val(BEval(blet, box)) THEN [|1/2, 1|]
                                            ELSE [|-1, -1 / 2|]
                                            ENDIF,
                                            null))"
        :hide? nil)
       (("1"
         (name-replace "npox"
          "append(pox,
                                           cons(IF none?(BEval(blet, pox)) THEN [|-1, 1|]
                                                ELSIF val(BEval(blet, pox)) THEN [|1/2, 1|]
                                                ELSE [|-1, -1 / 2|]
                                                ENDIF,
                                                null))"
          :hide? nil)
         (("1"
           (case "length(npox) = 1+length(pox)")
           (("1"
             (case "length(nbox) = 1+length(box)")
             (("1"
               (insteep -6)
               (assert)
               (inst -7 "nbox" "npox")
               (("1"
                 (replace -9)
                 (replace 2)
                 (hide 3)
                 (expand "Inclusion?")
                 (flatten)
                 (assert)
                 (skeep :preds? t)
                 (case-replace "i=length(pox)")
                 (("1"
                   (replaces (-5 -6) 2 :dir rl :hide? nil)
                   (rewrite "nth_append")
                   (("1"
                     (expand "nth" 2 1)
                     (rewrite "nth_append")
                     (("1"
                       (expand "nth" 2 1)
                       (hide -5 -6)
                       (case "some?(BEval(blet, box))")
                       (("1"
                         (assert)
                         (flatten)
                         (assert)
                         (replaces -8)
                         (hide-all-but 2)
                         (grind :exclude "BEval"))
                        ("2"
                         (assert)
                         (hide-all-but 3)
                         (grind :exclude "BEval"))
                        ("3" (propax))))
                      ("2" (flatten) (assert)) ("3" (flatten) (assert))))
                    ("2" (flatten) (assert)) ("3" (flatten) (assert))))
                  ("2"
                   (replaces (-4 -5) 3 :dir rl :hide? nil)
                   (rewrite "nth_append")
                   (("1"
                     (assert)
                     (rewrite "nth_append")
                     (("1" (inst? -9)) ("2" (flatten) (assert))
                      ("3" (flatten) (assert))))
                    ("2" (flatten) (assert)) ("3" (flatten) (assert))))))
                ("2"
                 (replaces -3 1 :dir rl)
                 (rewrite "proper_append")
                 (("1"
                   (hide 2)
                   (expand "ProperBox?")
                   (expand "every")
                   (hide-all-but 1)
                   (expand "every")
                   (grind :exclude "BEval"))
                  ("2" (flatten) (assert)) ("3" (flatten) (assert))))))
              ("2"
               (hide-all-but (-3 -4 1))
               (replaces -1 :dir rl)
               (rewrite "length_append")
               (("1" (flatten) (assert)) ("2" (flatten) (assert))))))
            ("2"
             (hide-all-but (-1 -3 1))
             (replaces -1 :dir rl)
             (rewrite "length_append")
             (("1" (flatten) (assert)) ("2" (flatten) (assert))))))
          ("2" (flatten) (assert)) ("3" (flatten) (assert))))
        ("2" (flatten) (assert)) ("3" (flatten) (assert))))))))


proof_type: t_proof
decl_type: tcc
library: interval_arith
theory: interval_bexpr
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (lemma "well_founded_restrict[IntervalExpr,BoolExpr]")
   (inst?)
   (expand "well_founded?")
   (propax))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_bandb
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (lemma "b_and_b_id_sound")
   (expand "interval")
   (inst?)
   (assert)
   (hide 2)
   (split)
   (("1"
     (expand "accomodates?")
     (skeep)
     (expand "sound?")
     (flatten)
     (name-replace "ev" "evaluate(dom, obj)" :hide? nil)
     (copy -1)
     (expand "evaluate" -1 :assert? none)
     (skoletin* -1)
     (decompose-equality -1)
     (lemma "BEval_inclusion_Proper")
     (case "some?(bet)")
     (("1"
       (assert)
       (replaces -5)
       (inst? -)
       (assert)
       (flatten)
       (typepred "ev`counterex")
       (hide -1)
       (assert)
       (assert)
       (case-replace "list2array(0)(counterex(ev)) = midvars(dom)")
       (("1"
         (assert)
         (skeep)
         (lemma "BEval_inclusion")
         (inst -1 "dom" "midvars(dom)" "obj")
         (beta)
         (assert))
        ("2"
         (hide-all-but (-3 1))
         (lemma "map_length[Interval,real]")
         (inst?)
         (decompose-equality 1)
         (lemma "list2array_sound")
         (inst?)
         (expand "midvars")
         (case-replace "x!1 < length(counterex(ev))")
         (("1"
           (assert)
           (replaces -2)
           (replaces -3 :dir rl)
           (rewrite "map_nth_rw"))
          ("2" (assert))))))
      ("2"
       (assert)
       (case-replace
        "some?(BEval(obj, Midbox(dom))) AND NOT val(BEval(obj, Midbox(dom)))")
       (("1"
         (flatten)
         (assert)
         (inst?)
         (assert)
         (case-replace
          "FORALL (vs: (vars_in_box?(dom))): beval(obj, vs, length(dom))")
         (("1"
           (skeep)
           (rewrite "length_Midbox")
           (inst? -1)
           (lemma "Midbox_Inclusion")
           (inst?)
           (lemma "vars_in_box_Inclusion")
           (inst? -)
           (inst?)
           (assert))
          ("2"
           (replace 1)
           (flatten)
           (lemma "BEval_inclusion")
           (inst? - :where -5)
           (inst? -)
           (("1"
             (beta)
             (assert)
             (case-replace "list2array(0)(counterex(ev)) = midvars(dom)")
             (("1" (assert))
              ("2"
               (hide-all-but (-3 1))
               (lemma "map_length[Interval,real]")
               (inst?)
               (decompose-equality 1)
               (lemma "list2array_sound")
               (inst?)
               (expand "midvars")
               (case-replace "x!1 < length(counterex(ev))")
               (("1"
                 (assert)
                 (replaces -2)
                 (replaces -3 :dir rl)
                 (rewrite "map_nth_rw"))
                ("2" (assert))))))
            ("2"
             (expand "vars_in_box?" 1)
             (skeep)
             (expand "Midbox" 1)
             (rewrite "map_nth_rw")
             (replaces -3 1 :dir rl)
             (lemma "list2array_sound")
             (inst?)
             (rewrite "map_length")
             (replaces -1)
             (assert)
             (rewrite "map_nth_rw")
             (rewrite "r2i_inclusion"))))))
        ("2" (replace 1) (assert))))))
    ("2"
     (expand "subdiv_presound?")
     (skeep)
     (expand "denorm")
     (expand "branch")
     (expand "subdivide")
     (expand "sound?")
     (flatten)
     (name-replace "COMB" "combine(v,ans1,ans)" :hide? nil)
     (expand "combine" -1)
     (case-replace
      "(some?(ans1`answer) AND NOT val(ans1`answer)) OR
                                            (some?(ans`answer) AND NOT val(ans`answer))")
     (("1"
       (replaces -2 :dir rl)
       (assert)
       (lemma "split_Inclusion")
       (inst? -1)
       (beta)
       (flatten)
       (case-replace "some?(ans1`answer) AND NOT val(ans1`answer)")
       (("1"
         (flatten)
         (expand "sound_dir")
         (assert)
         (split -5)
         (("1"
           (flatten)
           (case "FORALL (vs: (vars_in_box?(dom))): beval(obj, vs, length(dom))")
           (("1"
             (replace -1)
             (case-replace "length(split(v, dom)`1) = length(dom)")
             (("1"
               (skeep)
               (inst? -)
               (lemma "vars_in_box_Inclusion")
               (inst?)
               (inst?)
               (assert))
              ("2" (hide-all-but 1) (subtype-tcc))))
            ("2"
             (replace 1)
             (flatten)
             (case-replace "cons?(ans1`counterex)")
             (("1"
               (flatten)
               (assert)
               (hide -6)
               (lemma "vars_in_box_Inclusion")
               (inst? :where 5)
               (inst?)
               (assert))
              ("2"
               (replace 1)
               (typepred "ans`counterex")
               (hide -1)
               (assert)
               (flatten)
               (assert))))))
          ("2"
           (flatten)
           (case "FORALL (vs: (vars_in_box?(dom))): beval(obj, vs, length(dom))")
           (("1"
             (replace -1)
             (case-replace "length(split(v, dom)`2) = length(dom)")
             (("1"
               (skeep)
               (inst?)
               (hide -4)
               (lemma "vars_in_box_Inclusion")
               (inst?)
               (inst?)
               (assert))
              ("2" (hide-all-but 1) (subtype-tcc))))
            ("2"
             (replace 1)
             (flatten)
             (case-replace "cons?(ans1`counterex)")
             (("1"
               (flatten)
               (assert)
               (hide -4)
               (lemma "vars_in_box_Inclusion")
               (inst? :where 6)
               (inst?)
               (assert))
              ("2"
               (replace 1)
               (typepred "ans`counterex")
               (hide -1)
               (assert)
               (flatten)
               (assert))))))))
        ("2"
         (replace 1)
         (flatten)
         (assert)
         (hide -5)
         (flatten)
         (replace 3)
         (typepred "ans1`counterex")
         (hide -1)
         (replace 1)
         (assert))))
      ("2"
       (replace 1)
       (case-replace "some?(ans1`answer) AND some?(ans`answer)")
       (("1"
         (flatten)
         (assert)
         (replaces -5 :dir rl)
         (beta)
         (assert)
         (typepred "ans1`counterex")
         (hide -1)
         (assert))
        ("2" (replace 1) (replaces -1 :dir rl) (beta) (propax))))))
    ("3"
     (expand "subdiv_sound?")
     (skeep)
     (expand "denorm")
     (expand "branch")
     (expand "subdivide")
     (expand "sound?")
     (flatten)
     (name-replace "COMB" "combine(v,ans1,ans2)" :hide? nil)
     (expand "combine" -1)
     (lemma "split_Inclusion")
     (inst?)
     (beta)
     (flatten)
     (case-replace
      "(some?(ans1`answer) AND NOT val(ans1`answer)) OR
                                            (some?(ans2`answer) AND NOT val(ans2`answer))")
     (("1"
       (case-replace "some?(ans1`answer) AND NOT val(ans1`answer)")
       (("1"
         (flatten)
         (assert)
         (replaces -4 :dir rl)
         (assert)
         (flatten)
         (case-replace
          "FORALL (vs: (vars_in_box?(dom))): beval(obj, vs, length(dom))")
         (("1"
           (hide -4)
           (case-replace "length(split(v, dom)`1) = length(dom)")
           (("1"
             (skeep)
             (inst?)
             (lemma "vars_in_box_Inclusion")
             (inst?)
             (inst?)
             (assert))
            ("2" (hide-all-but 1) (subtype-tcc))))
          ("2"
           (replace 1)
           (flatten)
           (case "cons?(ans1`counterex)")
           (("1"
             (assert)
             (flatten)
             (assert)
             (lemma "vars_in_box_Inclusion")
             (inst? :where 5)
             (inst?)
             (assert))
            ("2"
             (assert)
             (hide -4)
             (typepred "ans2`counterex")
             (hide -1)
             (assert)
             (flatten)
             (assert)
             (flatten)
             (assert)
             (lemma "vars_in_box_Inclusion")
             (inst? :where 8)
             (hide -4)
             (inst?)
             (assert))))))
        ("2"
         (replace 1)
         (flatten)
         (assert)
         (replaces -4 :dir rl)
         (assert)
         (flatten)
         (case-replace
          "FORALL (vs: (vars_in_box?(dom))): beval(obj, vs, length(dom))")
         (("1"
           (hide -3)
           (case-replace "length(split(v, dom)`2) = length(dom)")
           (("1"
             (skeep)
             (inst? :where 3)
             (lemma "vars_in_box_Inclusion")
             (inst?)
             (inst?)
             (assert))
            ("2" (hide-all-but 1) (subtype-tcc))))
          ("2"
           (replace 1)
           (flatten)
           (case "cons?(ans1`counterex)")
           (("1" (assert) (typepred "ans1`counterex") (hide -1) (assert))
            ("2"
             (assert)
             (assert)
             (flatten)
             (assert)
             (lemma "vars_in_box_Inclusion")
             (inst? :where 7)
             (hide -3)
             (inst?)
             (assert))))))))
      ("2"
       (replace 1)
       (case-replace "some?(ans1`answer) AND some?(ans2`answer)")
       (("1"
         (flatten)
         (assert)
         (replaces -7 :dir rl)
         (assert)
         (typepred "ans1`counterex")
         (hide -1)
         (assert)
         (typepred "ans2`counterex")
         (hide -1)
         (assert)
         (skeep)
         (lemma "split_vars_in_box")
         (inst? -1)
         (inst?)
         (beta)
         (case-replace "length(split(v, dom)`1) = length(dom)")
         (("1"
           (case-replace "length(split(v, dom)`2) = length(dom)")
           (("1"
             (hide -7 -9)
             (hide (-1 -2))
             (split -1)
             (("1" (hide -7) (inst?) (assert))
              ("2" (hide -6) (inst?) (assert))))
            ("2" (hide-all-but 1) (subtype-tcc))))
          ("2" (hide-all-but 1) (subtype-tcc))))
        ("2" (replace 1) (replaces -3 :dir rl) (beta) (propax))))))))


proof_type: t_proof
decl_type: tcc
library: interval_arith
theory: interval_bandb
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep :preds? t)
   (typepred "M1`counterex")
   (hide -1)
   (typepred "M2`counterex")
   (hide -1)
   (ground))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: numerical_bandb
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (lemma "b_and_b_id_sound")
   (expand "interval_minmax")
   (inst?)
   (assert)
   (hide 2)
   (split)
   (("1"
     (expand "accomodates?")
     (skeep)
     (expand "sound?")
     (flatten)
     (name-replace "ev" "evaluate(dom, obj)" :hide? nil)
     (copy -1)
     (expand "evaluate" -1 :assert? none)
     (skoletin* -1 :old? t)
     (decompose-equality -3)
     (case "Inclusion?(ev`lb_box, dom) AND Inclusion?(ev`ub_box, dom)")
     (("1"
       (flatten)
       (assert)
       (split 1)
       (("1" (skeep) (lemma "Eval_inclusion_Proper") (inst?) (assert))
        ("2"
         (skeep :preds? t)
         (replaces -18)
         (hide (-3 -7 -8 -9 -10))
         (case-replace "ub(P1) < ub(P2)")
         (("1"
           (lemma "Eval_inclusion_Proper")
           (inst -1 "Lb" "vs" "obj")
           (("1"
             (beta)
             (assert)
             (expand "##")
             (lemma "Proper_Inclusion")
             (inst?)
             (assert)
             (inst?)
             (assert))
            ("2" (assert))))
          ("2"
           (assert)
           (lemma "Eval_inclusion_Proper")
           (inst -1 "Ub" "vs" "obj")
           (beta)
           (expand "##")
           (lemma "Proper_Inclusion")
           (inst?)
           (assert)
           (inst?)
           (assert))))
        ("3"
         (skeep :preds? t)
         (replaces -18)
         (hide (-2 -4 -5 -11 -12))
         (case-replace "lb(P1) > lb(P2)")
         (("1"
           (lemma "Eval_inclusion_Proper")
           (inst -1 "Lb" "vs" "obj")
           (("1"
             (beta)
             (expand "##")
             (assert)
             (lemma "Proper_Inclusion")
             (inst?)
             (assert)
             (inst?)
             (assert))
            ("2" (assert))))
          ("2"
           (assert)
           (lemma "Eval_inclusion_Proper")
           (inst -1 "Ub" "vs" "obj")
           (expand "##")
           (lemma "Proper_Inclusion")
           (inst?)
           (assert)
           (inst?)
           (assert))))))
      ("2"
       (hide 2)
       (split 1)
       (("1"
         (hide (-4 -5 -6 -7))
         (case "ub(P1) < ub(P2)")
         (("1" (assert) (lemma "Lbbox_Inclusion") (inst?) (assert))
          ("2" (assert) (lemma "Ubbox_Inclusion") (inst?) (assert))))
        ("2"
         (hide (-1 -2 -8 -9))
         (case "lb(P1) > lb(P2)")
         (("1" (assert) (lemma "Lbbox_Inclusion") (inst?) (assert))
          ("2"
           (assert)
           (lemma "Ubbox_Inclusion")
           (inst? -1)
           (assert))))))))
    ("2"
     (expand "subdiv_presound?")
     (skeep)
     (expand "denorm")
     (expand "branch")
     (expand "subdivide")
     (expand "sound?")
     (flatten)
     (expand "combine" -3)
     (use "Proper_Safe2")
     (assert)
     (flatten)
     (expand "combine" 1 1)
     (replaces -3)
     (assert)
     (flatten)
     (expand "combine")
     (expand "sound_dir")
     (lemma "split_Inclusion")
     (inst? -1)
     (skoletin* -1 :old? t)
     (lemma "split_Proper")
     (inst? -1)
     (flatten)
     (replace -3 :dir rl)
     (replace -4 :dir rl)
     (split 1)
     (("1" (skeep :preds? t) (inst - "vs") (rewrite "Union_inclusion"))
      ("2"
       (lift-if)
       (assert)
       (split 1)
       (("1"
         (flatten)
         (split -)
         (("1"
           (flatten)
           (lemma "Inclusion_trans")
           (inst -1 "ans1`lb_box" "bl" "dom")
           (assert))
          ("2"
           (flatten)
           (lemma "Inclusion_trans")
           (inst -1 "ans1`lb_box" "br" "dom")
           (assert))))
        ("2" (propax))))
      ("3"
       (lift-if)
       (assert)
       (split 1)
       (("1"
         (flatten)
         (split -)
         (("1"
           (flatten)
           (lemma "Inclusion_trans")
           (inst -1 "ans1`ub_box" "bl" "dom")
           (assert))
          ("2"
           (flatten)
           (lemma "Inclusion_trans")
           (inst -1 "ans1`ub_box" "br" "dom")
           (assert))))
        ("2" (propax))))
      ("4"
       (skeep :preds? t)
       (expand "combine")
       (case "ans1`lb_max < ans`lb_max")
       (("1"
         (assert)
         (split -)
         (("1"
           (flatten)
           (inst -5 "vs")
           (lemma "length_split_1")
           (inst?)
           (assert))
          ("2"
           (flatten)
           (inst -4 "vs")
           (lemma "length_split_1")
           (inst?)
           (assert))))
        ("2" (assert) (hide -15) (inst -13 "vs"))))
      ("5"
       (skeep :preds? t)
       (expand "combine")
       (case "ans1`ub_min > ans`ub_min")
       (("1"
         (assert)
         (split -)
         (("1"
           (flatten)
           (inst -6 "vs")
           (lemma "length_split_1")
           (inst?)
           (assert))
          ("2"
           (flatten)
           (inst -5 "vs")
           (lemma "length_split_1")
           (inst?)
           (assert))))
        ("2" (assert) (hide -15) (inst -14 "vs"))))))
    ("3"
     (expand "subdiv_sound?")
     (skeep)
     (expand "denorm")
     (expand "branch")
     (expand "subdivide")
     (expand "sound?")
     (flatten)
     (expand "combine" -3)
     (use "Proper_Safe2")
     (assert)
     (flatten)
     (expand "combine" 1 1)
     (replaces -3)
     (assert)
     (lemma "split_Inclusion")
     (inst? -1)
     (skoletin* -1 :old? t)
     (lemma "split_Proper")
     (inst? -1)
     (flatten)
     (replace -3 :dir rl)
     (replace -4 :dir rl)
     (expand "combine")
     (split 1)
     (("1"
       (skeep :preds? t)
       (lemma "split_vars_in_box")
       (inst? -1)
       (inst?)
       (beta)
       (split -1)
       (("1"
         (inst? -11)
         (("1" (rewrite "Union_inclusion")) ("2" (assert))))
        ("2"
         (inst? -16)
         (("1" (rewrite "Union_inclusion")) ("2" (assert))))))
      ("2"
       (lift-if)
       (split 1)
       (("1"
         (flatten)
         (lemma "Inclusion_trans")
         (inst -1 "ans1`lb_box" "bl" "dom")
         (assert))
        ("2"
         (flatten)
         (lemma "Inclusion_trans")
         (inst -1 "ans2`lb_box" "br" "dom")
         (assert))))
      ("3"
       (lift-if)
       (split 1)
       (("1"
         (flatten)
         (lemma "Inclusion_trans")
         (inst -1 "ans1`ub_box" "bl" "dom")
         (assert))
        ("2"
         (flatten)
         (lemma "Inclusion_trans")
         (inst -1 "ans2`ub_box" "br" "dom")
         (assert))))
      ("4"
       (skeep :preds? t)
       (expand "combine")
       (case "ans1`lb_max < ans2`lb_max")
       (("1"
         (assert)
         (inst -14 "vs")
         (lemma "length_split_1")
         (inst?)
         (assert))
        ("2"
         (assert)
         (inst -18 "vs")
         (lemma "length_split_1")
         (inst?)
         (assert))))
      ("5"
       (skeep :preds? t)
       (expand "combine")
       (case "ans1`ub_min > ans2`ub_min")
       (("1"
         (assert)
         (inst -15 "vs")
         (lemma "length_split_1")
         (inst?)
         (assert))
        ("2"
         (assert)
         (inst -19 "vs")
         (lemma "length_split_1")
         (inst?)
         (assert))))))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: simple_bandb
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (lemma "b_and_b_id_sound")
   (expand "simple_interval")
   (inst?)
   (assert)
   (hide 2)
   (split)
   (("1"
     (expand "accomodates?")
     (skeep)
     (expand "sound?")
     (flatten)
     (expand "evaluate")
     (skeep)
     (lemma "Eval_inclusion_Proper")
     (inst?)
     (beta)
     (assert))
    ("2"
     (expand "subdiv_presound?")
     (skeep)
     (expand "denorm")
     (expand "branch")
     (expand "subdivide")
     (expand "sound?")
     (flatten)
     (expand "combine")
     (use "Proper_Safe2")
     (assert)
     (flatten)
     (replaces -3)
     (assert)
     (skeep :preds? t)
     (inst - "vs")
     (rewrite "Union_inclusion"))
    ("3"
     (expand "subdiv_sound?")
     (skeep)
     (expand "denorm")
     (expand "branch")
     (expand "subdivide")
     (expand "sound?")
     (flatten)
     (expand "combine")
     (use "Proper_Safe2")
     (assert)
     (flatten)
     (replaces -3)
     (assert)
     (skeep :preds? t)
     (lemma "split_vars_in_box")
     (inst? -1)
     (inst?)
     (beta)
     (split -1)
     (("1" (inst? -5) (("1" (rewrite "Union_inclusion")) ("2" (assert))))
      ("2"
       (inst? -6)
       (("1" (rewrite "Union_inclusion")) ("2" (assert))))))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: simple_bandb
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (name-label "sia" "MULT(X(0),SUB(r2E(1),X(0)))" :hide? t)
   (eval-expr "simple_interval(9,sia,(: [|0,1|] :))" :safe? nil)
   (lemma "simple_interval_soundness")
   (inst? -1)
   (replaces -2)
   (beta -1)
   (expand "sound?" -1)
   (split -1)
   (("1"
     (inst -1 "list2array(0)((:x:))")
     (("1"
       (invoke (case "%1 = %2") (! -1 1) "(x * (1 - x))")
       (("1" (replaces -1) (decimalize -1 3))
        ("2" (interval-eq__ "sia" 1))))
      ("2" (vars-in-box__))))
    ("2" (eval-formula))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_deriv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (typepred "X")
   (expand "StrictInterval?")
   (lemma "deriv_domain_closed")
   (inst - "lb(X)" "ub(X)")
   (assert)
   (expand "deriv_domain?")
   (skosimp*)
   (inst - "e!1" "x!1")
   (("1" (skosimp*) (inst + "y!1") (grind))
    ("2" (assert) (hide 2) (typepred "x!1") (expand "##") (propax))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_deriv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (induct "n")
   (("1" (grind))
    ("2"
     (skeep)
     (skeep)
     (expand "Diffn?" 1)
     (expand "derivable_n_times?" 1)
     (expand "Diff?")
     (inst -1 "D(f)")
     (("1" (expand "D" -1 2) (replaces -1))
      ("2" (expand "Diff?") (assert))))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_deriv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (induct "n")
   (("1" (grind))
    ("2"
     (skeep)
     (skeep :preds? t)
     (expand "Dn" 1)
     (expand "nderiv" 1)
     (expand "Diffn?" -1)
     (flatten)
     (inst -3 "D(f)")
     (expand "D" -3 2)
     (propax))
    ("3" (hide 2) (skeep :preds? t) (rewrite "Diffn_derivn"))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_deriv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (expand "Diff?")
   (lemma "derivable_const")
   (inst?)
   (expand "const_fun")
   (propax))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_deriv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp :preds? t)
   (expand "Diff?")
   (lemma "derivable_sum")
   (inst -1 "f!1" "g!1")
   (expand "+")
   (propax))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_deriv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp :preds? t)
   (expand* "Diff?" "D")
   (lemma "deriv_sum_fun")
   (inst -1 "f!1" "g!1")
   (expand "+")
   (propax))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_deriv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp :preds? t)
   (expand "Diff?")
   (lemma "derivable_prod")
   (inst -1 "f!1" "g!1")
   (expand "*")
   (propax))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_deriv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp :preds? t)
   (expand* "Diff?" "D")
   (lemma "deriv_prod_fun")
   (inst -1 "f!1" "g!1")
   (expand "*")
   (expand "+")
   (propax))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_deriv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (case "n=0")
   (("1" (replaces) (expand "^") (expand "expt") (rewrite "Diff_const"))
    ("2"
     (expand "Diff?")
     (lemma "deriv_x_to_n")
     (inst -1 "n" "1")
     (("1" (beta) (flatten) (assert)) ("2" (assert))))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_deriv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp :preds? t)
   (expand "Diff?")
   (lemma "derivable_scal")
   (inst -1 "a!1" "f!1")
   (expand "*")
   (propax))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_deriv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp :preds? t)
   (expand* "Diff?" "D")
   (lemma "deriv_scal_fun")
   (inst -1 "a!1" "f!1")
   (expand "*")
   (propax))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_deriv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp :preds? t)
   (expand "Diff?")
   (lemma "derivable_neg")
   (inst -1 "g!1")
   (expand "-")
   (propax))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_deriv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp :preds? t)
   (expand* "Diff?" "D")
   (lemma "deriv_neg_fun")
   (inst -1 "g!1")
   (expand "-")
   (propax))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_deriv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp :preds? t)
   (expand "Diff?")
   (lemma "derivable_diff")
   (inst -1 "f!1" "g!1")
   (expand "-")
   (propax))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_deriv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp :preds? t)
   (expand* "Diff?" "D")
   (lemma "deriv_diff_fun")
   (inst -1 "f!1" "g!1")
   (expand "-")
   (propax))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_deriv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (expand "sq")
   (rewrite "D_mult")
   (("1" (rewrite "D_id") (assert)) ("2" (rewrite "Diff_id"))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_deriv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp :preds? t)
   (expand "Diff?")
   (lemma "derivable_div")
   (inst -1 "f!1" "k!1")
   (("1" (expand "/") (propax)) ("2" (assert))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_deriv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp :preds? t)
   (expand* "Diff?" "D")
   (lemma "deriv_div_fun")
   (inst -1 "f!1" "k!1")
   (("1"
     (expand "/")
     (expand "sq")
     (expand "*")
     (assert)
     (expand "-")
     (propax))
    ("2" (assert))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_deriv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp :preds? t)
   (expand "Diff?")
   (lemma "derivable_div")
   (inst -1 "LAMBDA(t):a!1" "k!1")
   (("1" (expand "/") (propax)) ("2" (assert))
    ("3"
     (hide 2)
     (lemma "derivable_const")
     (expand "const_fun")
     (inst?))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_deriv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp :preds? t)
   (expand* "Diff?" "D")
   (lemma "deriv_scaldiv_fun")
   (inst -1 "a!1" "k!1")
   (("1" (expand "/") (expand "-") (expand "*") (expand "sq") (assert))
    ("2" (assert))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_deriv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (expand "Diff?")
   (lemma "sin_derivable_fun")
   (lemma "IMP_derivatives_TCC1")
   (lemma "IMP_derivatives_TCC2")
   (lemma "restrict2_derivable[Xt,real]")
   (("1" (hide -2 -3) (inst -1 "sin") (expand "restrict2") (propax))
    ("2" (hide-all-but 1) (skeep) (inst 1 "x"))
    ("3"
     (hide-all-but 1)
     (assert)
     (expand "not_one_element?")
     (skeep)
     (inst + "x+1")
     (assert))
    ("4" (propax)) ("5" (lemma "deriv_domain_real") (propax))
    ("6" (propax))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_deriv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (expand "D")
   (lemma "deriv_sin_fun")
   (lemma "IMP_derivatives_TCC1")
   (lemma "IMP_derivatives_TCC2")
   (lemma "restrict2_deriv[Xt,real]")
   (("1"
     (hide -2 -3)
     (decompose-equality 1)
     (("1"
       (inst -1 "x!1" "sin")
       (expand "restrict2")
       (replaces -2)
       (assert))
      ("2" (lemma "Diff_sin") (expand "Diff?") (propax))))
    ("2" (hide-all-but 1) (skeep) (inst 1 "x"))
    ("3"
     (expand "not_one_element?")
     (skosimp*)
     (inst + "x!1+1")
     (assert))
    ("4" (propax)) ("5" (lemma "deriv_domain_real") (propax))
    ("6" (propax))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_deriv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (expand "Diff?")
   (lemma "cos_derivable_fun")
   (lemma "IMP_derivatives_TCC1")
   (lemma "IMP_derivatives_TCC2")
   (lemma "restrict2_derivable[Xt,real]")
   (("1" (hide -2 -3) (inst -1 "cos") (expand "restrict2") (propax))
    ("2" (hide-all-but 1) (skeep) (inst 1 "x"))
    ("3"
     (hide-all-but 1)
     (assert)
     (expand "not_one_element?")
     (skosimp*)
     (inst + "x!1+1")
     (assert))
    ("4" (propax)) ("5" (lemma "deriv_domain_real") (propax))
    ("6" (propax))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_deriv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
script:
  (""
   (expand "D")
   (lemma "deriv_cos_fun")
   (lemma "restrict2_deriv[Xt,real]")
   (("1"
     (decompose-equality 1)
     (("1"
       (inst -1 "x!1" "cos")
       (expand "restrict2")
       (replaces -2)
       (expand "-")
       (assert))
      ("2" (lemma "Diff_cos") (expand "Diff?") (propax))))
    ("2" (hide-all-but 1) (skeep) (inst 1 "x"))
    ("3"
     (hide-all-but 1)
     (assert)
     (expand "not_one_element?")
     (skosimp*)
     (typepred "x!1")
     (typepred "X")
     (expand "StrictInterval?")
     (inst-cp + "lb(X)")
     (("1" (inst-cp + "ub(X)") (("1" (flatten) (assert)) ("2" (grind))))
      ("2" (grind))))
    ("4" (lemma "deriv_domain_Xt") (propax))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_deriv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (expand "tan")
   (rewrite "Diff_div")
   (("1"
     (split)
     (("1" (hide 2) (rewrite "Diff_cos"))
      ("2"
       (hide 2)
       (skeep :preds? t)
       (lemma "Tan_pi2_def")
       (inst -1 "X" "5+n" "t_1")
       (expand "Tan?")
       (assert))))
    ("2" (rewrite "Diff_sin"))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_deriv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (expand "tan")
   (rewrite "D_div")
   (("1"
     (rewrite "D_sin")
     (rewrite "D_cos")
     (beta)
     (decompose-equality 1)
     (("1" (lemma "sin2_cos2") (inst -1 "x!1") (expand "sq") (assert))
      ("2"
       (skeep :preds? t)
       (lemma "Tan_pi2_def")
       (inst -1 "X" _ "t_1")
       (inst?)
       (expand "Tan?")
       (rewrite "sq_eq_0")
       (expand "##")
       (assert))))
    ("2"
     (hide 2)
     (split)
     (("1" (rewrite "Diff_cos"))
      ("2"
       (skeep :preds? t)
       (lemma "Tan_pi2_def")
       (inst -1 "X" _ "t_1")
       (inst?)
       (expand "Tan?")
       (expand "##")
       (assert))))
    ("3" (hide 2) (rewrite "Diff_sin"))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_deriv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (expand "Diff?")
   (lemma "deriv_atan_fun")
   (flatten)
   (hide -2)
   (lemma "IMP_derivatives_TCC1")
   (lemma "IMP_derivatives_TCC2")
   (lemma "restrict2_derivable[Xt,real]")
   (("1" (hide -2 -3) (inst -1 "atan") (expand "restrict2") (propax))
    ("2" (hide-all-but 1) (skeep) (inst 1 "x"))
    ("3"
     (hide-all-but 1)
     (assert)
     (expand "not_one_element?")
     (skeep)
     (inst 1 "x+1")
     (assert))
    ("4" (propax)) ("5" (lemma "deriv_domain_real") (propax))
    ("6" (propax))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_deriv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (expand "D")
   (lemma "deriv_atan_fun")
   (flatten)
   (lemma "IMP_derivatives_TCC1")
   (lemma "IMP_derivatives_TCC2")
   (lemma "restrict2_deriv[Xt,real]")
   (("1"
     (hide -2 -3)
     (decompose-equality 1)
     (("1"
       (inst -1 "x!1" "atan")
       (expand "restrict2")
       (expand "sq")
       (replaces -3)
       (assert))
      ("2" (lemma "Diff_atan") (expand "Diff?") (propax))))
    ("2" (hide-all-but 1) (skeep) (inst 1 "x"))
    ("3"
     (hide-all-but 1)
     (assert)
     (expand "not_one_element?")
     (skeep)
     (inst + "x+1")
     (assert))
    ("4" (propax)) ("5" (lemma "deriv_domain_real") (propax))
    ("6" (propax))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_deriv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (expand "Diff?")
   (flatten)
   (lemma "sqrt_derivable_fun")
   (lemma "IMP_derivatives_TCC2")
   (lemma "restrict2_derivable[Xt,posreal]")
   (("1"
     (inst -1 "sqrt")
     (expand "restrict2")
     (expand "restrict")
     (propax))
    ("2" (skeep :preds? t) (inst 1 "x") (hide-all-but (-1 -4 1)) (grind))
    ("3" (propax))
    ("4" (hide-all-but 1) (lemma "deriv_domain_Xt") (propax))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_deriv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (expand "D")
   (flatten)
   (lemma "IMP_derivatives_TCC2")
   (lemma "deriv_sqrt")
   (flatten)
   (lemma "restrict2_deriv[Xt,posreal]")
   (("1"
     (decompose-equality 1)
     (("1"
       (inst -1 "x!1" "sqrt")
       (expand "restrict2")
       (expand "restrict")
       (replaces -1 :dir rl)
       (replaces -2)
       (beta)
       (propax))
      ("2" (skeep :preds? t) (hide-all-but (-1 -2 -7)) (grind))
      ("3" (lemma "Diff_sqrt") (expand "Diff?") (propax))
      ("4" (skeep :preds? t) (hide-all-but (-1 -6 1)) (grind))))
    ("2" (skeep :preds? t) (inst 1 "x") (hide-all-but (-1 -5 1)) (grind))
    ("3" (propax)) ("4" (lemma "deriv_domain_Xt") (propax))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_deriv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (expand "Diff?")
   (lemma "IMP_derivatives_TCC1")
   (lemma "IMP_derivatives_TCC2")
   (lemma "restrict2_derivable[Xt,real]")
   (("1"
     (hide -2 -3)
     (inst -1 "exp")
     (("1" (expand "restrict2") (propax))
      ("2" (lemma "exp_deriv") (assert))))
    ("2" (hide-all-but 1) (skeep) (inst 1 "x"))
    ("3"
     (hide-all-but 1)
     (assert)
     (expand "not_one_element?")
     (skeep)
     (inst 1 "x+1")
     (assert))
    ("4" (propax)) ("5" (lemma "deriv_domain_real") (propax))
    ("6" (propax))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_deriv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (expand "D")
   (lemma "exp_deriv")
   (lemma "IMP_derivatives_TCC1")
   (lemma "IMP_derivatives_TCC2")
   (lemma "restrict2_deriv[Xt,real]")
   (("1"
     (hide -2 -3)
     (decompose-equality 1)
     (("1"
       (flatten)
       (inst -1 "x!1" "exp")
       (expand "restrict2")
       (replaces -1 :dir rl)
       (assert))
      ("2" (lemma "Diff_exp") (expand "Diff?") (propax))))
    ("2" (skeep) (inst 1 "x"))
    ("3"
     (assert)
     (hide-all-but 1)
     (expand "not_one_element?")
     (skeep)
     (inst + "x+1")
     (assert))
    ("4" (propax)) ("5" (lemma "deriv_domain_real") (propax))
    ("6" (propax))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_deriv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: Fixed, and shorter proof w.r.t. Diff_ln-3.
script:
  (""
   (expand "Diff?")
   (lemma "IMP_derivatives_TCC1")
   (lemma "IMP_derivatives_TCC2")
   (lemma "restrict2_derivable[Xt,posreal]")
   (("1"
     (hide -2 -3)
     (inst -1 "ln")
     (("1" (expand "restrict2") (flatten))
      ("2" (lemma "ln_derivable") (assert))))
    ("2"
     (flatten)
     (skeep)
     (inst 1 "x")
     (typepred "x")
     (hide-all-but (-1 -4 1))
     (grind))
    ("3" (propax)) ("4" (propax))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_deriv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (expand "D")
   (flatten)
   (lemma "IMP_derivatives_TCC2")
   (lemma "ln_derivable")
   (flatten)
   (lemma "restrict2_deriv[Xt,posreal]")
   (("1"
     (decompose-equality 1)
     (("1"
       (inst -1 "x!1" "ln")
       (expand "restrict2")
       (replaces -1 :dir rl)
       (replaces -2)
       (beta)
       (propax))
      ("2" (skeep :preds? t) (hide-all-but (-1 -2 -7)) (grind))
      ("3" (lemma "Diff_ln") (expand "Diff?") (propax))
      ("4" (skeep :preds? t) (hide-all-but (-1 -6 1)) (grind))))
    ("2" (skeep :preds? t) (inst 1 "x") (hide-all-but (-1 -5 1)) (grind))
    ("3" (propax)) ("4" (lemma "deriv_domain_Xt") (propax))))


proof_type: t_proof
decl_type: tcc
library: interval_arith
theory: interval_deriv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (expand "not_one_element?")
   (skeep)
   (typepred "x")
   (typepred "X")
   (inst 1 "if x=lb(X) then ub(X) else lb(X) endif")
   (("1" (grind)) ("2" (grind)) ("3" (grind))))


proof_type: t_proof
decl_type: tcc
library: interval_arith
theory: interval_deriv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (skeep :preds? t)
   (lemma "Tan_pi2_def")
   (inst -1 "X" _ "t")
   (inst?)
   (assert)
   (expand "Tan?")
   (rewrite "sq_eq_0")
   (expand "##")
   (flatten))


proof_type: t_proof
decl_type: tcc
library: interval_arith
theory: interval_deriv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp :preds? t)
   (expand "id")
   (case "f!1 = LAMBDA(t):f!1(t)")
   (("1" (assert)) ("2" (decompose-equality))))


proof_type: t_proof
decl_type: tcc
library: interval_arith
theory: interval_deriv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp :preds? t)
   (case "f!1 = LAMBDA(t):f!1(t)")
   (("1" (assert)) ("2" (decompose-equality))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_taylor
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep :preds? t)
   (case "n=0")
   (("1"
     (replaces -1)
     (expand "Sigma")
     (expand "Sigma")
     (assert)
     (inst -6 "x")
     (expand "Dn" -6)
     (propax))
    ("2"
     (lemma "Taylors[Xt]")
     (inst -1 "a" "x" "f" "n-1")
     (("1"
       (rewrite "Diffn_derivn" :dir rl)
       (assert)
       (skeep -1)
       (expand "Sigma" 2)
       (rewrite "Add_comm")
       (replaces -1)
       (rewrite "Add_inclusion")
       (("1"
         (hide 3)
         (rewrite "Sigma_inclusion")
         (("1"
           (hide 2)
           (skeep :preds? t)
           (lift-if)
           (split 1)
           (("1"
             (flatten)
             (replaces -1)
             (inst -7 "0")
             (expand "Dn" -7)
             (assert))
            ("2"
             (flatten)
             (rewrite "Div_inclusion")
             (("1"
               (rewrite "Mult_inclusion")
               (("1"
                 (rewrite "Dn_nderiv" :dir rl)
                 (("1" (inst -7 "k_1"))
                  ("2"
                   (rewrite "Diffn_derivn")
                   (rewrite "Diffn_derivn")
                   (lemma "derivable_n_times_lem[Xt]")
                   (inst -1 "f" "k_1" "n")
                   (assert))))
                ("2"
                 (rewrite "Pow_inclusion")
                 (rewrite "Sub_inclusion")
                 (rewrite "r2i_inclusion"))))
              ("2" (rewrite "r2i_inclusion"))
              ("3" (rewrite "Pos_Zeroless"))))))
          ("2"
           (hide 2)
           (skeep)
           (rewrite "Diffn_derivn")
           (lemma "derivable_n_times_lem[Xt]")
           (inst -1 "f" "nn" "n")
           (assert))))
        ("2"
         (hide 3)
         (rewrite "Div_inclusion")
         (("1"
           (hide 2)
           (rewrite "Mult_inclusion")
           (("1" (rewrite "Dn_nderiv" :dir rl) (inst -6 "c"))
            ("2"
             (rewrite "Pow_inclusion")
             (rewrite "Sub_inclusion")
             (rewrite "r2i_inclusion"))))
          ("2" (rewrite "r2i_inclusion"))
          ("3" (rewrite "Pos_Zeroless"))))
        ("3"
         (hide 3)
         (skeep)
         (rewrite "Diffn_derivn")
         (lemma "derivable_n_times_lem[Xt]")
         (inst -1 "f" "nn" "n")
         (assert))))
      ("2" (hide 3) (assert))))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_taylor
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (lemma "Taylor")
   (inst -1 "midpoint(X)" "1" "x" "f"
    "LAMBDA(n:nat):IF n=0 THEN F(Midpoint) ELSE DF(X) ENDIF")
   (("1"
     (expand "Sigma")
     (expand "Sigma")
     (expand "Sigma")
     (assert)
     (split -1)
     (("1" (expand "Taylor1") (propax))
      ("2"
       (skeep :preds? t)
       (case "k=0")
       (("1" (replaces -1) (expand "Dn") (propax)) ("2" (assert))))
      ("3" (hide 2) (expand "Dn") (expand "Dn") (propax))))
    ("2" (hide 2) (expand "Diffn?") (expand "Diffn?") (propax))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_taylor
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (lemma "Taylor")
   (inst -1 "midpoint(X)" "2" "x" "f2"
    "LAMBDA(n:nat):IF n=0 THEN F(Midpoint) ELSIF n=1 THEN DF(Midpoint) ELSE D2F(X) ENDIF")
   (expand "Sigma")
   (expand "Sigma")
   (expand "Sigma")
   (expand "Sigma")
   (assert)
   (split -1)
   (("1"
     (rewrite "Pow2_Sq")
     (expand "factorial")
     (expand "factorial")
     (expand "factorial")
     (expand "Taylor2")
     (expand "Taylor1")
     (propax))
    ("2"
     (skeep :preds? t)
     (case "k=0")
     (("1" (replaces -1) (expand "Dn") (propax))
      ("2"
       (case "k=1")
       (("1" (replaces -1) (expand "Dn") (expand "Dn") (propax))
        ("2" (assert))))))
    ("3" (hide 2) (expand "Dn") (expand "Dn") (expand "Dn") (propax))))


proof_type: t_proof
decl_type: tcc
library: interval_arith
theory: interval_taylor
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (expand "not_one_element?")
   (skeep :preds? t)
   (typepred "X")
   (expand "StrictInterval?")
   (inst 1 "if x=lb(X) then ub(X) else lb(X) endif")
   (("1" (grind)) ("2" (grind)) ("3" (grind))))


proof_type: t_proof
decl_type: tcc
library: interval_arith
theory: interval_taylor
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep :preds? t)
   (rewrite "Diffn_derivn")
   (rewrite "Diffn_derivn")
   (lemma "derivable_n_times_lem[Xt]")
   (inst -1 "f" "k" "n")
   (assert))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_chain
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp :preds? t)
   (expand "Diff?")
   (lemma "composition_derivable_fun")
   (inst -1 "f!1" "g!1")
   (assert)
   (expand "o")
   (propax))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_chain
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp :preds? t)
   (expand* "Diff?" "D")
   (lemma "deriv_comp_fun")
   (inst -1 "f!1" "g!1")
   (("1" (expand "o") (assert) (expand "*") (propax)) ("2" (assert))))


proof_type: t_proof
decl_type: tcc
library: interval_arith
theory: interval_chain
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (expand "not_one_element?")
   (skeep)
   (typepred "x")
   (typepred "X")
   (expand "StrictlyProper?")
   (inst 1 "if x=lb(X) then ub(X) else lb(X) endif")
   (("1" (grind)) ("2" (grind)) ("3" (grind))))


proof_type: t_proof
decl_type: tcc
library: interval_arith
theory: interval_chain
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (expand "not_one_element?")
   (skeep)
   (typepred "x")
   (typepred "Y")
   (expand "StrictlyProper?")
   (inst 1 "if x=lb(Y) then ub(Y) else lb(Y) endif")
   (("1" (grind)) ("2" (grind)) ("3" (grind))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: subinterval_deriv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (typepred "X!1")
   (expand "StrictInterval?")
   (lemma "deriv_domain_closed")
   (inst - "lb(X!1)" "ub(X!1)")
   (assert)
   (expand "deriv_domain?")
   (skosimp*)
   (inst - "e!1" "x!1")
   (("1" (skosimp*) (inst + "y!1") (grind))
    ("2" (assert) (hide 2) (typepred "x!1") (expand "##") (propax))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: subinterval_deriv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep :preds? t)
   (lemma "restrict2_derivable[Xt[Y],Xt[X]]")
   (("1"
     (inst -1 "f")
     (("1"
       (expand "restrict2")
       (expand "Diff?" 1)
       (assert)
       (lemma "restrict2_deriv[Xt[Y],Xt[X]]")
       (decompose-equality 1)
       (("1"
         (inst -1 "x!1" f)
         (("1" (expand "restrict2") (expand "D") (replaces -1 :dir rl))
          ("2" (expand "Diff?") (propax))))
        ("2" (expand "Diff?") (propax))
        ("3" (hide-all-but (-5 1)) (grind))))
      ("2" (expand "Diff?" -4) (propax))))
    ("2"
     (skeep)
     (inst 1 "x")
     (typepred "x")
     (hide-all-but (-1 -4 1))
     (grind))
    ("3"
     (hide -4 2)
     (expand "not_one_element?")
     (skeep)
     (case "x=lb(X)")
     (("1" (inst 1 "ub(X)") (("1" (grind)) ("2" (grind))))
      ("2" (grind))))
    ("4"
     (hide -4 2)
     (expand "not_one_element?")
     (skeep)
     (case "x=lb(Y)")
     (("1" (inst 1 "ub(Y)") (("1" (grind)) ("2" (grind))))
      ("2" (grind))))
    ("5" (hide -4 2) (rewrite "deriv_domain_Xt"))
    ("6" (hide -4 2) (rewrite "deriv_domain_Xt"))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: subinterval_deriv
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (induct "n")
   (("1" (skeep) (expand "Diffn?") (expand "Dn") (propax))
    ("2"
     (skeep)
     (skeep)
     (expand "Diffn?" 1)
     (expand "Dn" 1)
     (expand "Diffn?" -3)
     (flatten)
     (inst -1 "X" "Y" "D(f)")
     (assert)
     (flatten)
     (lemma "subinterval_deriv")
     (inst -1 "X" "Y" "f")
     (assert)
     (flatten)
     (assert))
    ("3" (hide 2) (skeep) (hide -1 -3) (grind))
    ("4" (hide 2) (skeep) (match "Diffn?" step (hide $1n)) (grind))))


proof_type: f_proof
decl_type: formula
library: interval_arith
theory: interval_bolzano
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (typepred "sqrt_bisect(x, eps)")
   (expand "sqrt_bisect")
   (typepred "bolzano_bisect(SqrtProp?(x), [| 0, max(1, x) |], eps)")
   (name-replace "AA"
    "bolzano_bisect(SqrtProp?(x), [| 0, max(1, x) |], eps)")
   (expand* "NonNeg?" "SqrtProp?" "Member?" "Ge")
   (flatten)
   (both-sides-f -3 "sqrt")
   (("1"
     (rewrite "sqrt_sq")
     (both-sides-f -4 "sqrt")
     (("1" (rewrite "sqrt_sq") (expand "##") (assert))
      ("2" (rewrite "sqrt_le"))))
    ("2" (rewrite "sqrt_le"))))


proof_type: t_proof
decl_type: tcc
library: interval_arith
theory: interval_bolzano
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp* :preds? t)
   (lift-if)
   (lift-if)
   (assert)
   (split)
   (("1" (flatten) (assert))
    ("2"
     (flatten)
     (lemma "log_nat_incr")
     (inst -1 "2" "size(Y1!1) / eps!1" "size(X!1) / eps!1")
     (assert)
     (hide 3)
     (lemma "Halves")
     (inst?)
     (assert))))


proof_type: t_proof
decl_type: tcc
library: interval_arith
theory: interval_bolzano
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp* :preds? t)
   (lemma "Halves_Incl")
   (inst?)
   (assert)
   (flatten)
   (typepred "v!1(Prop?!1, Y1!1, eps!1)")
   (("1" (lemma "Incl_trans") (inst? -1 :where 2) (inst?) (assert))
    ("2"
     (lemma "bolzano_bisect_TCC4")
     (inst?)
     (assert)
     (inst?)
     (assert)
     (inst -1 "Y2!1")
     (assert))))


proof_type: t_proof
decl_type: tcc
library: interval_arith
theory: interval_bolzano
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp* :preds? t)
   (lift-if)
   (lift-if)
   (assert)
   (split)
   (("1" (flatten) (assert))
    ("2"
     (flatten)
     (lemma "log_nat_incr")
     (inst -1 "2" "size(Y2!1) / eps!1" "size(X!1) / eps!1")
     (assert)
     (hide 3)
     (lemma "Halves")
     (inst?)
     (assert))))


proof_type: t_proof
decl_type: tcc
library: interval_arith
theory: interval_bolzano
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp* :preds? t)
   (lemma "Halves_Incl")
   (inst?)
   (assert)
   (flatten)
   (typepred "v!1(Prop?!1, Y2!1, eps!1)")
   (("1"
     (lemma "Incl_trans")
     (inst? -1 :where 3)
     (("1" (inst?) (assert))
      ("2" (expand "Continuous?") (inst?) (assert))))
    ("2"
     (lemma "bolzano_bisect_TCC7")
     (inst?)
     (assert)
     (inst -1 "Y1!1")
     (assert)
     (inst -1 "Y2!1")
     (assert))
    ("3" (expand "Continuous?") (inst?) (assert))))


proof_type: t_proof
decl_type: tcc
library: interval_arith
theory: interval_bolzano
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (expand "NonNeg?")
   (skeep)
   (typepred "bolzano_bisect(SqrtProp?(x), [| 0, max(1, x) |], eps)")
   (expand* "Proper?" "<<" "Ge")
   (flatten)
   (assert))


proof_type: f_proof
decl_type: formula
library: lebesgue
theory: restriction_integral
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (auto-rewrite "xis_lem")
   (case "FORALL (a, b: T1, f: [T2 -> real]): a<b=>
                        (integrable?[T2](a, b, f) <=>
                         integrable?[T1](a, b, restrict[T2, T1, real](f)))")
   (("1"
     (skosimp)
     (expand "Integrable?")
     (case-replace "a!1=b!1")
     (("1" (assert))
      ("2"
       (case-replace "a!1<b!1")
       (("1" (inst - "a!1" "b!1" "f!1") (assert))
        ("2" (inst - "b!1" "a!1" "f!1") (assert))))))
    ("2"
     (hide 2)
     (skosimp)
     (split)
     (("1"
       (flatten)
       (expand "integrable?")
       (skosimp)
       (inst + "S!1")
       (expand "integral?")
       (skosimp)
       (inst - "epsi!1")
       (skosimp)
       (inst + "delta!1")
       (skosimp)
       (inst - "P!1")
       (("1"
         (split)
         (("1"
           (skosimp)
           (inst - "R!1")
           (typepred "R!1")
           (hide -2 2)
           (expand "Riemann_sum?")
           (skosimp)
           (inst + "xis!1")
           (("1"
             (replace -1)
             (hide -1)
             (expand "Rie_sum")
             (expand "finseq_appl")
             (expand "restrict")
             (propax))
            ("2"
             (hide -1)
             (split)
             (("1"
               (skosimp)
               (typepred "xis!1(x1!1)")
               (assert)
               (lemma "sub_domain" ("x" "xis!1(x1!1)"))
               (skosimp)
               (assert))
              ("2"
               (typepred "xis!1")
               (expand "xis?")
               (expand "finseq_appl")
               (propax))))))
          ("2" (hide 2) (expand "width") (propax))))
        ("2"
         (hide 2)
         (split)
         (("1"
           (skosimp)
           (typepred "P!1`seq(x1!1)")
           (assert)
           (lemma "sub_domain" ("x" "P!1`seq(x1!1)"))
           (skosimp)
           (assert))
          ("2" (skosimp) (typepred "P!1") (inst - "ii!1"))))))
      ("2"
       (flatten)
       (expand "integrable?")
       (skosimp)
       (inst + "S!1")
       (expand "integral?")
       (skosimp)
       (inst - "epsi!1")
       (skosimp)
       (inst + "delta!1")
       (skosimp)
       (inst - "P!1")
       (("1"
         (split)
         (("1"
           (skosimp)
           (inst - "R!1")
           (hide -1 2)
           (typepred "R!1")
           (expand "Riemann_sum?")
           (skosimp)
           (inst + "xis!1")
           (("1"
             (replace -1)
             (hide -1)
             (expand "Rie_sum")
             (expand "restrict")
             (expand "finseq_appl")
             (propax))
            ("2"
             (split)
             (("1"
               (skosimp)
               (typepred "xis!1(x1!1)")
               (assert)
               (lemma "connected_domain_T1"
                ("x" "a!1" "y" "b!1" "z" "xis!1(x1!1)"))
               (assert))
              ("2"
               (typepred "xis!1")
               (expand "xis?")
               (expand "finseq_appl")
               (propax))))))
          ("2" (hide 2) (expand "width") (propax))))
        ("2"
         (hide 2 -1)
         (split)
         (("1"
           (skosimp)
           (typepred "P!1`seq(x1!1)")
           (assert)
           (lemma "connected_domain_T1"
            ("x" "a!1" "y" "b!1" "z" "P!1`seq(x1!1)"))
           (assert))
          ("2" (skosimp) (typepred "P!1") (inst - "ii!1"))))))))
    ("3"
     (hide 2)
     (skosimp*)
     (lemma "sub_domain" ("x" "x!1"))
     (skolem!)
     (assert))
    ("4" (skosimp) (lemma "sub_domain" ("x" "b!1")) (skolem!) (assert))
    ("5"
     (hide 2)
     (skosimp)
     (lemma "sub_domain" ("x" "a!1"))
     (skolem!)
     (assert))))


proof_type: f_proof
decl_type: formula
library: lebesgue
theory: restriction_integral
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (case "forall a,b,f: a<b&integrable?[T2](a, b, f) & integrable?[T1](a,b,restrict[T2,T1,real](f))=>
                  integral[T2](a, b, f) =
                   integral[T1](a, b, restrict[T2, T1, real](f))")
   (("1"
     (skosimp)
     (lemma "restrict_Integrable" ("a" "a!1" "b" "b!1" "f" "f!1"))
     (assert)
     (expand "Integrable?")
     (expand "Integral")
     (case-replace "a!1=b!1")
     (assert)
     (case-replace "a!1<b!1")
     (("1" (assert) (inst - "a!1" "b!1" "f!1") (assert))
      ("2" (assert) (inst - "b!1" "a!1" "f!1") (assert))))
    ("2"
     (hide 2)
     (skosimp*)
     (typepred "integral[T2](a!1, b!1, f!1)")
     (typepred "integral[T1](a!1, b!1, restrict[T2, T1, real](f!1))")
     (("1"
       (expand "integral?")
       (name-replace "LHS" "integral[T2](a!1, b!1, f!1)")
       (name-replace "RHS"
        "integral[T1](a!1, b!1, restrict[T2, T1, real](f!1))")
       (typepred "abs(LHS-RHS)")
       (hide -2 -3)
       (expand ">=" -1)
       (expand "<=" -1)
       (split -1)
       (("1"
         (name "EPS" "abs(LHS-RHS)")
         (replace -1)
         (inst - "EPS/2")
         (("1"
           (inst - "EPS/2")
           (("1"
             (skosimp*)
             (name "DELTA" "min(delta!1,delta!2)")
             (name "N" "floor((b!1-a!1)/DELTA)+2")
             (lemma "width_eq_part[T1]" ("a" "a!1" "b" "b!1" "N" "N"))
             (("1"
               (lemma "width_eq_part[T2]" ("a" "a!1" "b" "b!1" "N" "N"))
               (assert)
               (case "(b!1-a!1)/(N-1)<DELTA")
               (("1"
                 (case "DELTA <= delta!1 & DELTA<=delta!2")
                 (("1"
                   (flatten)
                   (inst - "eq_partition[T1](a!1, b!1, N)")
                   (inst - "eq_partition[T2](a!1, b!1, N)")
                   (replace -4)
                   (replace -5)
                   (assert)
                   (hide -4 -5)
                   (split -8)
                   (("1"
                     (split -9)
                     (("1"
                       (lemma "Riemann?_Rie[T2]"
                        ("a" "a!1" "b" "b!1" "f" "f!1"))
                       (lemma "Riemann?_Rie[T1]"
                        ("a"
                         "a!1"
                         "b"
                         "b!1"
                         "f"
                         "restrict[T2, T1, real](f!1)"))
                       (assert)
                       (inst - "eq_partition[T1](a!1, b!1, N)"
                        "gen_xis[T1](a!1,b!1,eq_partition[T1](a!1, b!1, N))")
                       (("1"
                         (inst - "eq_partition[T1](a!1, b!1, N)" "_")
                         (("1"
                           (case "N>=1")
                           (("1"
                             (name "R1"
                                   "Rie_sum(a!1, b!1, eq_partition[T1](a!1, b!1, N),
                                                              gen_xis[T1]
                                                                  (a!1, b!1, eq_partition[T1](a!1, b!1, N)),
                                                              restrict[T2, T1, real](f!1))")
                             (replace -1)
                             (inst -6 "R1")
                             (inst -4
                              "gen_xis[T1](a!1, b!1, eq_partition[T1](a!1, b!1, N))")
                             (("1"
                               (name "R2"
                                     "Rie_sum[T2](a!1, b!1, eq_partition[T1](a!1, b!1, N),
                                                                gen_xis[T1]
                                                                    (a!1, b!1, eq_partition[T1](a!1, b!1, N)),
                                                                f!1)")
                               (replace -1)
                               (case "eq_partition[T1](a!1, b!1, N)=eq_partition[T2](a!1, b!1, N)")
                               (("1"
                                 (inst -7 "R2")
                                 (("1"
                                   (case-replace "R1=R2")
                                   (("1"
                                     (hide-all-but (-8 -9 -15))
                                     (grind))
                                    ("2"
                                     (hide
                                      -3
                                      -5
                                      2
                                      -17
                                      -18
                                      -7
                                      -8
                                      -9
                                      -10
                                      -11
                                      -12
                                      -13
                                      -14
                                      -15)
                                     (hide -2 -4)
                                     (expand "R1")
                                     (expand "R2")
                                     (name-replace
                                      "FF"
                                      "gen_xis[T1](a!1, b!1, eq_partition[T1](a!1, b!1, N))")
                                     (expand "Rie_sum")
                                     (expand "finseq_appl")
                                     (expand "restrict")
                                     (propax))))
                                  ("2" (assert))))
                                ("2" (expand "eq_partition") (propax))))
                              ("2"
                               (hide -1 -3 -4 2)
                               (typepred
                                "gen_xis[T1](a!1, b!1, eq_partition[T1](a!1, b!1, N))")
                               (expand "xis?")
                               (split)
                               (("1"
                                 (skosimp)
                                 (expand "finseq_appl")
                                 (inst - "x1!1")
                                 (flatten)
                                 (lemma
                                  "parts_order_le[T1]"
                                  ("P"
                                   "eq_partition[T1](a!1, b!1, N)"
                                   "a"
                                   "a!1"
                                   "b"
                                   "b!1"))
                                 (inst-cp - "0" "x1!1")
                                 (assert)
                                 (hide -1 -2 -3 -4)
                                 (lemma
                                  "sub_domain"
                                  ("x"
                                   "gen_xis[T1](a!1, b!1, eq_partition[T1](a!1, b!1, N))(x1!1)"))
                                 (skosimp)
                                 (assert))
                                ("2"
                                 (skosimp)
                                 (expand "finseq_appl")
                                 (inst - "ii!1"))))))
                            ("2"
                             (hide-all-but (1 -12 -8 -7 -9))
                             (lemma "posreal_div_posreal_is_posreal"
                              ("px" "b!1-a!1" "py" "DELTA"))
                             (lemma "nonneg_floor_is_nat")
                             (inst - "(b!1 - a!1) / DELTA")
                             (("1" (assert)) ("2" (assert))))))
                          ("2"
                           (hide -1 -2 -3 2)
                           (split)
                           (("1"
                             (skosimp)
                             (typepred
                              "eq_partition[T1](a!1, b!1, N)`seq(x1!1)")
                             (assert)
                             (lemma "sub_domain"
                              ("x"
                               "eq_partition[T1](a!1, b!1, N)`seq(x1!1)"))
                             (skosimp)
                             (assert))
                            ("2"
                             (typepred "eq_partition[T1](a!1, b!1, N)")
                             (propax))))))
                        ("2"
                         (lemma "not_one_element_T1")
                         (hide-all-but (1 -12 -8 -9))
                         (lemma "posreal_div_posreal_is_posreal"
                          ("px" "b!1-a!1" "py" "DELTA"))
                         (lemma "nonneg_floor_is_nat"
                          ("x" "(b!1 - a!1) / DELTA"))
                         (("1" (assert)) ("2" (assert))))))
                      ("2" (assert))))
                    ("2" (assert))))
                  ("2" (hide-all-but (-5 1)) (grind))))
                ("2"
                 (hide-all-but (-3 -4 -9 1))
                 (lemma "posreal_div_posreal_is_posreal"
                  ("px" "b!1-a!1" "py" "DELTA"))
                 (typepred "floor((b!1 - a!1) / DELTA)")
                 (rewrite "div_mult_pos_lt1" 1)
                 (rewrite "div_mult_pos_lt1" -2)
                 (rewrite "div_mult_pos_le2" -1)
                 (assert))))
              ("2"
               (assert)
               (typepred "floor((b!1 - a!1) / DELTA)")
               (lemma "posreal_div_posreal_is_posreal"
                ("px" "b!1-a!1" "py" "DELTA"))
               (assert))))
            ("2" (assert))))
          ("2" (assert))))
        ("2" (expand "abs") (hide-all-but (-1 1)) (grind))))
      ("2"
       (lemma "not_one_element_T1")
       (skosimp)
       (lemma "sub_domain" ("x" "x!1"))
       (skosimp)
       (assert))))
    ("3"
     (skosimp)
     (lemma "not_one_element_T1")
     (skosimp)
     (lemma "sub_domain" ("x" "x!1"))
     (skolem!)
     (assert))
    ("4"
     (skosimp)
     (lemma "connected_domain_T1")
     (lemma "sub_domain" ("x" "b!1"))
     (skolem!)
     (assert))
    ("5"
     (skosimp)
     (hide-all-but 1)
     (lemma "sub_domain" ("x" "a!1"))
     (skosimp)
     (assert))
    ("6"
     (skosimp)
     (lemma "sub_domain" ("x" "b!1"))
     (skosimp)
     (assert)
     (skosimp*)
     (lemma "sub_domain" ("x" "x!1"))
     (skolem!)
     (assert))
    ("7"
     (skosimp)
     (lemma "sub_domain" ("x" "a!1"))
     (skosimp)
     (assert)
     (lemma "sub_domain" ("x" "b!1"))
     (skolem!)
     (assert))
    ("8"
     (skosimp)
     (lemma "not_one_element_T1")
     (lemma "sub_domain" ("x" "a!1"))
     (skolem!)
     (assert))))


proof_type: f_proof
decl_type: formula
library: lebesgue
theory: restriction_integral
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (auto-rewrite "xis_lem")
   (skosimp)
   (lemma "restrict_Integrable"
    ("a" "a!1" "b" "b!1" "f" "extend[T2, T1, real, c!1](g!1)"))
   (("1"
     (replace -1)
     (hide -1)
     (case-replace
      "restrict[T2, T1, real](extend[T2, T1, real, c!1](g!1))=g!1")
     (("1" (assert))
      ("2"
       (hide 2)
       (apply-extensionality :hide? t)
       (("1" (expand "extend") (expand "restrict") (propax))
        ("2"
         (skosimp)
         (lemma "sub_domain" ("x" "x!1"))
         (skosimp)
         (assert))))))
    ("2"
     (hide 2)
     (skosimp)
     (lemma "sub_domain" ("x" "x!1"))
     (skosimp)
     (assert))))


proof_type: f_proof
decl_type: formula
library: lebesgue
theory: restriction_integral
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (lemma "extend_Integrable" ("a" "a!1" "b" "b!1" "c" "c!1" "g" "g!1"))
   (assert)
   (lemma "restrict_Integral"
    ("a" "a!1" "b" "b!1" "f" "extend[T2, T1, real, c!1](g!1)"))
   (("1"
     (assert)
     (case-replace
      "restrict[T2, T1, real](extend[T2, T1, real, c!1](g!1))=g!1")
     (("1" (assert))
      ("2"
       (hide-all-but 1)
       (apply-extensionality :hide? t)
       (("1" (grind))
        ("2"
         (skosimp)
         (lemma "sub_domain" ("x" "x!1"))
         (skolem!)
         (assert))))))
    ("2" (skosimp) (lemma "sub_domain" ("x" "x!1")) (skolem!) (assert))))


proof_type: t_proof
decl_type: tcc
library: lebesgue
theory: restriction_integral
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (expand "connected?")
   (skosimp)
   (lemma "connected_domain_T2" ("x" "x!1" "y" "y!1"))
   (inst - "z!1")
   (assert))


proof_type: t_proof
decl_type: tcc
library: lebesgue
theory: restriction_integral
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (hide -1)
   (typepred "b!1")
   (lemma "sub_domain" ("x" "b!1"))
   (skosimp)
   (assert))


proof_type: f_proof
decl_type: formula
library: lebesgue
theory: real_intervals_aux
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (split)
   (("1"
     (flatten)
     (expand "bounded_open_interval?")
     (expand "bounded_interval?")
     (expand "bounded?")
     (flatten)
     (split -2)
     (("1" (propax))
      ("2"
       (flatten)
       (expand "empty?")
       (skosimp)
       (expand "member")
       (name "LO" "inf(A!1)")
       (("1"
         (name "HI" "sup(A!1)")
         (("1"
           (typepred "sup(A!1)")
           (typepred "inf(A!1)")
           (replace -3)
           (replace -4)
           (expand "least_upper_bound")
           (expand "greatest_lower_bound")
           (flatten)
           (expand "lower_bound")
           (expand "upper_bound")
           (hide -5 -6 -7 -8 -9)
           (case "LO<HI")
           (("1"
             (inst + "(HI+LO)/2" "(HI-LO)/2")
             (("1"
               (apply-extensionality :hide? t)
               (case-replace "A!1(x!2)")
               (("1"
                 (hide -9)
                 (expand "metric_open?")
                 (inst -8 "x!2")
                 (assert)
                 (skosimp)
                 (expand "subset?")
                 (inst-cp -8 "x!2-r!1/2")
                 (inst -8 "x!2+r!1/2")
                 (assert)
                 (split -8)
                 (("1"
                   (split -9)
                   (("1"
                     (inst -5 "x!2 - r!1 / 2")
                     (inst -7 "r!1 / 2 + x!2")
                     (hide -6 -8 -9)
                     (grind))
                    ("2" (hide-all-but 1) (grind))))
                  ("2" (hide-all-but 1) (grind))))
                ("2"
                 (assert)
                 (expand "ball")
                 (case "LO<x!2 & x!2<HI")
                 (("1"
                   (flatten)
                   (hide -3)
                   (inst -5 "x!2")
                   (assert)
                   (skosimp)
                   (typepred "z!1")
                   (case "z!1<x!2")
                   (("1"
                     (hide 2)
                     (inst -8 "x!2")
                     (assert)
                     (skosimp)
                     (case "x!2<z!2")
                     (("1"
                       (hide 2)
                       (typepred "z!2")
                       (expand "interval?")
                       (inst -10 "z!1" "z!2" "x!2")
                       (assert))
                      ("2" (assert))))
                    ("2" (assert))))
                  ("2" (hide-all-but (-1 -2 1)) (grind))))))
              ("2" (assert))))
            ("2"
             (hide 2)
             (expand "metric_open?")
             (inst -6 "x!1")
             (assert)
             (skosimp)
             (expand "subset?")
             (inst -6 "x!1+r!1/2")
             (assert)
             (split -6)
             (("1" (inst -2 "x!1") (inst -4 "x!1+r!1/2") (assert))
              ("2" (hide-all-but 1) (grind))))))
          ("2" (propax))))
        ("2" (assert))))))
    ("2"
     (flatten)
     (expand "bounded_open_interval?")
     (expand "bounded_interval?")
     (expand "bounded?")
     (split -1)
     (("1"
       (assert)
       (rewrite "emptyset_is_empty?")
       (replace -1)
       (hide -1)
       (split)
       (("1" (grind))
        ("2"
         (expand "metric_open?")
         (expand "emptyset")
         (expand "subset?")
         (expand "member")
         (skosimp)
         (skosimp)
         (inst - "x!1")
         (grind))))
      ("2"
       (skosimp)
       (split)
       (("1" (replace -1) (hide -1) (grind))
        ("2"
         (replace -1)
         (hide -1)
         (flatten)
         (expand "nonempty?")
         (assert)
         (split)
         (("1" (expand "above_bounded") (inst + "x!1+r!1") (grind))
          ("2" (expand "below_bounded") (inst + "x!1-r!1") (grind))))
        ("3"
         (replace -1)
         (hide -1)
         (lemma "metric_open_ball" ("x" "x!1" "r" "r!1"))
         (propax))))))))


proof_type: f_proof
decl_type: formula
library: lebesgue
theory: real_intervals_aux
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (expand "unbounded?")
   (split)
   (("1"
     (flatten)
     (expand "bounded?")
     (flatten)
     (expand "nonempty?")
     (assert)
     (case-replace "above_bounded[real](A!1)")
     (("1"
       (hide 4 3)
       (typepred "sup(A!1)")
       (("1"
         (name-replace "HI" "sup(A!1)")
         (expand "least_upper_bound")
         (flatten)
         (expand "upper_bound")
         (inst + "HI")
         (apply-extensionality 3 :hide? t)
         (expand "inf_open")
         (case-replace "A!1(x!1)")
         (("1"
           (expand "open_interval?")
           (flatten)
           (expand "metric_open?")
           (inst -6 "x!1")
           (assert)
           (skosimp)
           (expand "subset?")
           (inst -6 "x!1+r!1/2")
           (split -6)
           (("1" (assert) (inst -3 "r!1 / 2 + x!1") (assert))
            ("2" (hide-all-but 1) (grind))))
          ("2"
           (assert)
           (inst -3 "x!1")
           (assert)
           (skosimp)
           (case "x!1<z!1")
           (("1"
             (typepred "z!1")
             (hide 2)
             (expand "below_bounded")
             (inst + "x!1")
             (expand "lower_bound")
             (skosimp)
             (case "z!2<x!1")
             (("1"
               (hide 3)
               (expand "open_interval?")
               (flatten)
               (expand "interval?")
               (inst -7 "z!2" "z!1" "x!1")
               (assert))
              ("2" (assert))))
            ("2" (assert))))))
        ("2" (expand "nonempty?") (propax))))
      ("2"
       (case-replace "below_bounded[real](A!1)")
       (("1"
         (hide 3 6 4)
         (typepred "inf(A!1)")
         (("1"
           (name-replace "LO" "inf(A!1)")
           (inst + "LO")
           (expand "open_inf")
           (expand "greatest_lower_bound")
           (expand "lower_bound")
           (apply-extensionality 3 :hide? t)
           (case-replace "A!1(x!1)")
           (("1"
             (flatten)
             (expand "open_interval?")
             (flatten)
             (expand "metric_open?")
             (inst -6 "x!1")
             (assert)
             (skosimp)
             (expand "subset?")
             (inst -6 "x!1-r!1/2")
             (split -6)
             (("1"
               (expand "member")
               (inst -3 "x!1 - r!1 / 2")
               (assert)
               (hide-all-but (-3 1))
               (typepred "r!1")
               (expand "<=" -3)
               (split)
               (("1"
                 (assert)
                 (typepred "reals.<")
                 (expand "strict_total_order?")
                 (expand "strict_order?")
                 (flatten)
                 (expand "transitive?")
                 (inst - "LO" "x!1 - r!1 / 2" "x!1")
                 (split -2)
                 (("1" (propax)) ("2" (propax)) ("3" (assert))))
                ("2" (assert))))
              ("2" (hide-all-but 1) (grind))))
            ("2"
             (assert)
             (flatten)
             (inst -3 "x!1")
             (assert)
             (skosimp)
             (typepred "z!1")
             (case "z!1<x!1")
             (("1"
               (hide 2)
               (expand "above_bounded")
               (inst + "x!1")
               (expand "upper_bound")
               (skosimp)
               (case "x!1<z!2")
               (("1"
                 (typepred "z!2")
                 (expand "open_interval?")
                 (flatten)
                 (expand "interval?")
                 (inst -8 "z!1" "z!2" "x!1")
                 (assert))
                ("2" (assert))))
              ("2" (assert))))))
          ("2" (expand "nonempty?") (propax))))
        ("2"
         (hide 4 6 7)
         (apply-extensionality 4 :hide? t)
         (expand "fullset")
         (expand "open_interval?")
         (flatten)
         (expand "below_bounded")
         (inst + "x!1")
         (expand "above_bounded")
         (inst + "x!1")
         (expand "upper_bound")
         (expand "lower_bound")
         (skosimp*)
         (case "z!1<x!1")
         (("1"
           (case "x!1<z!2")
           (("1"
             (expand "interval?")
             (inst - "z!1" "z!2" "x!1")
             (assert))
            ("2" (assert))))
          ("2" (assert))))))))
    ("2"
     (flatten)
     (split)
     (("1"
       (replace -1)
       (hide -1)
       (split)
       (("1"
         (expand "bounded?")
         (split)
         (("1" (grind))
          ("2"
           (flatten)
           (expand "above_bounded")
           (skosimp)
           (expand "upper_bound")
           (inst - "n!1+1")
           (("1" (assert)) ("2" (expand "fullset") (propax))))))
        ("2"
         (expand "open_interval?")
         (split)
         (("1" (grind))
          ("2"
           (expand "metric_open?")
           (expand "fullset")
           (expand "subset?")
           (expand "member")
           (propax))))))
      ("2"
       (skosimp)
       (replace -1)
       (hide -1)
       (split)
       (("1"
         (expand "bounded?")
         (split)
         (("1"
           (expand "open_inf")
           (expand "empty?")
           (expand "member")
           (inst - "a!1+1")
           (assert))
          ("2"
           (flatten)
           (expand "open_inf")
           (expand "above_bounded")
           (skosimp)
           (expand "upper_bound")
           (inst - "max(a!1+1,n!1+1)")
           (("1" (grind)) ("2" (assert))))))
        ("2"
         (expand "open_inf")
         (expand "open_interval?")
         (split)
         (("1" (grind))
          ("2"
           (expand "metric_open?")
           (skosimp)
           (expand "subset?")
           (expand "member")
           (case-replace "a!1<x!1")
           (("1" (assert) (inst + "x!1-a!1") (skosimp) (grind))
            ("2" (assert) (skosimp) (inst - "x!1") (grind))))))))
      ("3"
       (skosimp)
       (replace -1)
       (hide -1)
       (assert)
       (split)
       (("1"
         (expand "inf_open")
         (expand "bounded?")
         (split)
         (("1"
           (expand "empty?")
           (expand "member")
           (inst - "a!1-1")
           (assert))
          ("2"
           (flatten)
           (expand "below_bounded")
           (skosimp)
           (expand "lower_bound")
           (inst - "min(n!1-1,a!1-1)")
           (("1" (grind)) ("2" (grind))))))
        ("2"
         (expand "open_interval?")
         (split)
         (("1" (grind))
          ("2"
           (expand "inf_open")
           (expand "metric_open?")
           (skosimp)
           (case-replace "x!1 < a!1")
           (("1"
             (assert)
             (expand "subset?")
             (expand "member")
             (inst + "a!1-x!1")
             (skosimp)
             (grind))
            ("2"
             (assert)
             (skosimp)
             (expand "subset?")
             (expand "member")
             (inst - "x!1")
             (grind))))))))))))


proof_type: f_proof
decl_type: formula
library: lebesgue
theory: real_intervals_aux
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (expand "length" 1 1)
   (copy -1)
   (expand "nonempty?" -1)
   (replace 1)
   (typepred "b!1")
   (expand "bounded_interval?")
   (flatten)
   (expand "bounded?")
   (replace 1)
   (flatten)
   (hide -5)
   (typepred "inf(b!1)")
   (name-replace "INF" "inf(b!1)")
   (typepred "sup(b!1)")
   (name-replace "SUP" "sup(b!1)")
   (expand "length")
   (case-replace "empty?[real]({x | INF <= x AND x <= SUP})")
   (("1"
     (expand "empty?")
     (inst - "INF")
     (expand "member")
     (expand "least_upper_bound")
     (expand "greatest_lower_bound")
     (flatten)
     (expand "lower_bound")
     (expand "upper_bound")
     (skosimp)
     (inst -1 "x!1")
     (inst -3 "x!1")
     (assert))
    ("2"
     (replace 1)
     (typepred "sup({x | INF <= x AND x <= SUP})")
     (("1"
       (name-replace "SUP2" "sup({x | INF <= x AND x <= SUP})")
       (typepred "inf({x | INF <= x AND x <= SUP})")
       (("1"
         (name-replace "INF2" "inf({x | INF <= x AND x <= SUP})")
         (hide -5 -6 -7 -8)
         (expand "greatest_lower_bound")
         (expand "least_upper_bound")
         (flatten)
         (expand "lower_bound")
         (expand "upper_bound")
         (case-replace "INF2=INF")
         (("1"
           (case-replace "SUP2=SUP")
           (inst -4 "SUP")
           (("1" (inst -5 "SUP") (assert))
            ("2"
             (expand "empty?" 3)
             (skosimp)
             (expand "member")
             (flatten)
             (assert))))
          ("2"
           (inst - "INF")
           (("1" (inst - "INF") (assert))
            ("2"
             (expand "empty?" 3)
             (skosimp)
             (expand "member")
             (flatten)
             (assert))))))
        ("2"
         (expand "nonempty?")
         (assert)
         (expand "below_bounded")
         (inst + "INF")
         (expand "lower_bound")
         (propax))))
      ("2"
       (expand "nonempty?")
       (assert)
       (expand "above_bounded")
       (inst + "SUP")
       (expand "upper_bound")
       (propax))))))


proof_type: f_proof
decl_type: formula
library: lebesgue
theory: real_intervals_aux
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (expand "length")
   (typepred "b!1")
   (expand "bounded_interval?")
   (expand "bounded?")
   (flatten)
   (replace -3)
   (split -2)
   (("1" (expand "nonempty?") (propax))
    ("2"
     (flatten)
     (case-replace "empty?[real](b!1)")
     (("1" (expand "nonempty?") (propax))
      ("2"
       (replace 1)
       (hide 1)
       (typepred "sup(b!1)")
       (name-replace "BB" "sup(b!1)")
       (typepred "inf(b!1)")
       (name-replace "AA" "inf(b!1)")
       (case "AA<=BB")
       (("1"
         (expand "<=" -1)
         (split)
         (("1"
           (case "nonempty?[real]({x | AA < x AND x < BB})")
           (("1"
             (copy -1)
             (expand "nonempty?" -1)
             (replace 1)
             (hide 1)
             (case "below_bounded[real]({x | AA < x AND x < BB})")
             (("1"
               (case "above_bounded[real]({x | AA < x AND x < BB})")
               (("1"
                 (typepred "inf({x | AA < x AND x < BB})")
                 (("1"
                   (name-replace "INF" "inf({x | AA < x AND x < BB})")
                   (case-replace "INF=AA")
                   (("1"
                     (hide -1 -2 -4 -7 -8 -9 -10 -11 -12)
                     (typepred "sup({x | AA < x AND x < BB})")
                     (("1"
                       (name-replace "SUP"
                        "sup({x | AA < x AND x < BB})")
                       (expand "least_upper_bound")
                       (expand "upper_bound")
                       (flatten)
                       (case-replace "SUP=BB")
                       (hide 2)
                       (inst -2 "BB")
                       (split)
                       (("1"
                         (expand "<=" -1)
                         (split)
                         (("1"
                           (inst-cp - "(AA+BB)/2")
                           (("1"
                             (inst - "(SUP+BB)/2")
                             (("1" (assert)) ("2" (assert))))
                            ("2" (assert))))
                          ("2" (propax))))
                        ("2" (propax))
                        ("3" (skosimp) (inst - "z!1") (assert))))
                      ("2" (assert))))
                    ("2"
                     (hide-all-but (-1 -5 -4 1))
                     (expand "greatest_lower_bound")
                     (expand "lower_bound")
                     (flatten)
                     (inst-cp -1 "(AA+BB)/2")
                     (("1"
                       (inst -3 "AA")
                       (split)
                       (("1"
                         (expand "<=" -1)
                         (split)
                         (("1"
                           (inst - "(INF+AA)/2")
                           (("1" (assert)) ("2" (assert))))
                          ("2" (assert))))
                        ("2" (propax))
                        ("3" (skosimp) (inst - "z!1") (assert))))
                      ("2" (assert))))))
                  ("2" (assert))))
                ("2"
                 (expand "above_bounded")
                 (inst + "BB")
                 (expand "upper_bound")
                 (propax))))
              ("2"
               (expand "below_bounded")
               (inst + "AA")
               (expand "lower_bound")
               (propax))))
            ("2"
             (expand "nonempty?")
             (replace -1)
             (expand "empty?")
             (inst - "(AA+BB)/2")
             (assert)
             (assert))))
          ("2"
           (case-replace "empty?[real]({x | AA < x AND x < BB})")
           (("1" (assert))
            ("2"
             (replace 1)
             (hide 2)
             (expand "empty?")
             (skosimp)
             (expand "member")
             (flatten)
             (assert))))))
        ("2"
         (hide 2)
         (expand "nonempty?")
         (expand "empty?")
         (skosimp)
         (expand "member")
         (expand "greatest_lower_bound")
         (expand "least_upper_bound")
         (expand "lower_bound")
         (expand "upper_bound")
         (flatten)
         (inst -1 "x!1")
         (inst -3 "x!1")
         (assert))))))))


proof_type: f_proof
decl_type: formula
library: lebesgue
theory: real_intervals_aux
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (typepred "b!1")
   (expand "length")
   (case "nonempty?[real]({x | a!1 <= x AND x <= b!1})")
   (("1"
     (copy -1)
     (expand "nonempty?" -1)
     (replace 1 2)
     (case "above_bounded[real]({x | a!1 <= x AND x <= b!1})")
     (("1"
       (case "below_bounded[real]({x | a!1 <= x AND x <= b!1})")
       (("1"
         (typepred "inf({x | a!1 <= x AND x <= b!1})")
         (("1"
           (name-replace "INF" "inf({x | a!1 <= x AND x <= b!1})")
           (case-replace "INF=a!1")
           (("1"
             (typepred "sup({x | a!1 <= x AND x <= b!1})")
             (("1"
               (name-replace "SUP" "sup({x | a!1 <= x AND x <= b!1})")
               (case-replace "SUP=b!1")
               (expand "least_upper_bound")
               (hide-all-but (-1 1 2 -7))
               (expand "upper_bound")
               (flatten)
               (inst - "b!1")
               (inst - "b!1")
               (assert))
              ("2" (assert))))
            ("2"
             (hide-all-but (-1 -5 2 1))
             (expand "greatest_lower_bound")
             (expand "lower_bound")
             (flatten)
             (inst - "a!1")
             (inst - "a!1")
             (assert))))
          ("2" (assert))))
        ("2"
         (expand "below_bounded")
         (inst + "a!1")
         (expand "lower_bound")
         (propax))))
      ("2"
       (expand "above_bounded")
       (inst + "b!1")
       (expand "upper_bound")
       (propax))))
    ("2" (expand "nonempty?") (expand "empty?") (inst - "a!1") (assert))))


proof_type: f_proof
decl_type: formula
library: lebesgue
theory: real_intervals_aux
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (typepred "b!1")
   (expand "<=" -1)
   (split)
   (("1"
     (expand "length")
     (case "nonempty?[real]({x | a!1 < x AND x < b!1})")
     (("1"
       (copy -1)
       (expand "nonempty?" -1)
       (replace 1 2)
       (case "above_bounded({x | a!1 < x AND x < b!1})")
       (("1"
         (case "below_bounded({x | a!1 < x AND x < b!1})")
         (("1"
           (typepred "inf({x | a!1 < x AND x < b!1})")
           (("1"
             (name-replace "INF" "inf({x | a!1 < x AND x < b!1})")
             (case-replace "INF=a!1")
             (("1"
               (hide -1 -2 -3)
               (typepred "sup({x | a!1 < x AND x < b!1})")
               (("1"
                 (name-replace "SUP" "sup({x | a!1 < x AND x < b!1})")
                 (case-replace "SUP=b!1")
                 (hide -2 -3 3)
                 (expand "least_upper_bound")
                 (flatten)
                 (expand "upper_bound")
                 (inst -2 "b!1")
                 (split -2)
                 (("1"
                   (expand "<=" -1)
                   (split)
                   (("1"
                     (inst-cp - "(a!1+b!1)/2")
                     (("1"
                       (inst - "(SUP+b!1)/2")
                       (("1" (assert)) ("2" (assert))))
                      ("2" (assert))))
                    ("2" (propax))))
                  ("2" (propax))
                  ("3"
                   (skosimp)
                   (typepred "z!1")
                   (inst - "z!1")
                   (assert))))
                ("2" (assert))))
              ("2"
               (expand "greatest_lower_bound")
               (flatten)
               (expand "lower_bound")
               (inst -2 "a!1")
               (replace 1 -2)
               (split -2)
               (("1"
                 (expand "<=" -1)
                 (split)
                 (("1"
                   (inst - "(min(INF,b!1)+a!1)/2")
                   (("1" (assert))
                    ("2" (assert) (expand "min") (lift-if 1) (assert))))
                  ("2" (assert))))
                ("2" (skosimp) (typepred "z!1") (assert))))))
            ("2" (assert))))
          ("2"
           (expand "below_bounded")
           (inst + "a!1")
           (expand "lower_bound")
           (propax))))
        ("2"
         (expand "above_bounded")
         (inst + "b!1")
         (expand "upper_bound")
         (propax))))
      ("2"
       (hide 2)
       (expand "nonempty?")
       (expand "empty?")
       (inst - "(a!1+b!1)/2")
       (grind))))
    ("2"
     (expand "length")
     (case-replace "empty?[real]({x | a!1 < x AND x < b!1})")
     (("1" (assert))
      ("2"
       (hide 2)
       (expand "empty?")
       (skosimp)
       (expand "member")
       (flatten)
       (assert))))))


proof_type: t_proof
decl_type: tcc
library: lebesgue
theory: real_intervals_aux
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (typepred "b!1")
   (expand "bounded_interval?")
   (flatten)
   (expand "bounded?")
   (replace 1 -2)
   (flatten)
   (expand "empty?")
   (skosimp)
   (expand "member")
   (typepred "inf[real](b!1)")
   (typepred "sup[real](b!1)")
   (name-replace "INF" "inf[real](b!1)")
   (name-replace "SUP" "sup[real](b!1)")
   (expand "least_upper_bound")
   (expand "greatest_lower_bound")
   (expand "upper_bound")
   (expand "lower_bound")
   (flatten)
   (inst - "x!1")
   (inst -3 "x!1")
   (hide -2 -4)
   (assert))


proof_type: t_proof
decl_type: tcc
library: lebesgue
theory: real_intervals_aux
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (expand "bounded_interval?")
   (expand "bounded?")
   (split)
   (("1" (grind))
    ("2"
     (flatten)
     (expand "nonempty?")
     (typepred "b!1")
     (expand "bounded_interval?")
     (expand "bounded?")
     (replace 3)
     (flatten)
     (replace 1)
     (hide 1 3)
     (split)
     (("1"
       (typepred "sup(b!1)")
       (("1"
         (expand "least_upper_bound")
         (flatten)
         (expand "above_bounded")
         (inst + "sup(b!1)")
         (expand "upper_bound")
         (propax))
        ("2" (assert))))
      ("2"
       (typepred "inf(b!1)")
       (("1"
         (expand "greatest_lower_bound")
         (flatten)
         (expand "below_bounded")
         (inst + "inf(b!1)")
         (expand "lower_bound")
         (propax))
        ("2" (assert))))))))


proof_type: t_proof
decl_type: tcc
library: lebesgue
theory: real_intervals_aux
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (typepred "b!1")
   (expand "bounded_interval?")
   (flatten)
   (split)
   (("1"
     (expand "interval?")
     (skosimp)
     (typepred "x!1")
     (typepred "y!1")
     (assert))
    ("2"
     (expand "bounded?")
     (flatten)
     (expand "nonempty?" 2)
     (assert)
     (expand "empty?" 1)
     (skosimp)
     (expand "member")
     (flatten)
     (split -4)
     (("1" (expand "nonempty?") (propax))
      ("2"
       (flatten)
       (typepred "inf[real](b!1)")
       (typepred "sup[real](b!1)")
       (name-replace "INF" "inf[real](b!1)")
       (name-replace "SUP" "sup[real](b!1)")
       (expand "least_upper_bound")
       (expand "greatest_lower_bound")
       (flatten)
       (expand "upper_bound")
       (expand "lower_bound")
       (inst -4 "x!1")
       (assert)
       (skosimp)
       (case "z!1<x!1")
       (("1"
         (hide 1)
         (typepred "z!1")
         (inst -4 "x!1")
         (assert)
         (skosimp)
         (case "x!1<z!2")
         (("1"
           (typepred "z!2")
           (hide 1)
           (hide -7 -8)
           (split)
           (("1"
             (expand "above_bounded")
             (inst + "SUP")
             (expand "upper_bound")
             (propax))
            ("2"
             (expand "below_bounded")
             (inst + "INF")
             (expand "lower_bound")
             (propax))))
          ("2" (assert))))
        ("2" (assert))))))))


proof_type: t_proof
decl_type: tcc
library: lebesgue
theory: real_intervals_aux
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (expand "bounded_interval?")
   (split)
   (("1" (grind))
    ("2"
     (expand "bounded?")
     (flatten)
     (expand "nonempty?")
     (assert)
     (hide 1)
     (split)
     (("1" (expand "above_bounded") (inst + "b!1") (grind))
      ("2" (expand "below_bounded") (inst + "a!1") (grind))))))


proof_type: t_proof
decl_type: tcc
library: lebesgue
theory: real_intervals_aux
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp)
   (expand "bounded_interval?")
   (split)
   (("1" (grind))
    ("2"
     (expand "bounded?")
     (expand "nonempty?")
     (flatten)
     (assert)
     (hide 1)
     (split)
     (("1"
       (expand "above_bounded")
       (inst + "b!1")
       (expand "upper_bound")
       (propax))
      ("2" (expand "below_bounded") (inst + "a!1") (grind))))))


proof_type: t_proof
decl_type: tcc
library: lebesgue
theory: real_intervals_aux
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (expand "left_closed_right_open_interval?")
   (expand "fullset")
   (split)
   (("1" (expand "nonempty?") (expand "empty?") (inst - "0") (assert))
    ("2" (expand "interval?") (propax))
    ("3"
     (expand "above_bounded")
     (skosimp)
     (expand "upper_bound")
     (inst - "n!1+1")
     (assert))))


proof_type: t_proof
decl_type: tcc
library: lebesgue
theory: real_intervals_aux
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (expand "fullset")
   (expand "nonempty_interval?")
   (split)
   (("1" (expand "nonempty?") (expand "empty?") (inst - "0") (assert))
    ("2" (expand "interval?") (propax))))


proof_type: t_proof
decl_type: tcc
library: lebesgue
theory: real_intervals
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (lemma "Union_is_borel"
    ("A"
     "image[rational,set[real]](lambda (q:rational): singleton[real](q),fullset[rational])"))
   (("1"
     (case-replace
      "(Union(extend
                           [setof[real], borel[real, metric_induced_topology],
                            bool, FALSE]
                           (restrict
                                [set[real],
                                 borel
                                     [real,
                                      metric_induced_topology
                                          ],
                                 boolean]
                                (image[rational, set[real]]
                                     (LAMBDA (q: rational): singleton[real](q),
                                      fullset[rational])))))={x:real | rational_pred(x)}")
     (hide -1 2)
     (apply-extensionality :hide? t)
     (expand "fullset")
     (expand "image")
     (expand "restrict")
     (expand "extend")
     (case-replace "rational_pred(x!1)")
     (("1"
       (expand "Union")
       (inst + "singleton[real](x!1)")
       (("1" (expand "singleton") (propax))
        ("2"
         (prop)
         (("1" (inst + "x!1")) ("2" (rewrite "singleton_is_borel"))))))
      ("2"
       (assert)
       (expand "Union")
       (skosimp)
       (typepred "a!1")
       (assert)
       (skosimp)
       (replace -1)
       (typepred "x!2")
       (expand "singleton")
       (assert))))
    ("2"
     (hide 2)
     (lemma "countable_image[rational, set[real]]"
      ("f"
       "LAMBDA (q: rational): singleton[real](q)"
       "S"
       "fullset[rational]"))
     (split -1)
     (("1"
       (expand "image" -1)
       (assert)
       (name-replace "XX"
        "(image[rational, set[real]]
                            (LAMBDA (q: rational): singleton[real](q),
                             fullset[rational]))")
       (expand "restrict")
       (expand "is_countable")
       (skosimp)
       (typepred "f!1")
       (inst + "lambda (b:borel): if XX(b) then f!1(b) else 0 endif")
       (expand "restrict")
       (expand "injective?")
       (skosimp)
       (typepred "x1!1")
       (typepred "x2!1")
       (inst - "x1!1" "x2!1")
       (assert))
      ("2"
       (hide 2)
       (lemma "is_countable_cross[int,posnat]")
       (inst - "fullset[int]" "fullset[posnat]")
       (split)
       (("1"
         (expand "fullset")
         (expand "cross_product")
         (expand "is_countable")
         (skosimp)
         (typepred "f!1")
         (inst + "lambda (q:rational): f!1(numerator(q),denominator(q))")
         (expand "injective?")
         (skosimp)
         (inst - "(numerator(x1!1), denominator(x1!1))"
          "(numerator(x2!1), denominator(x2!1))")
         (assert)
         (hide -1)
         (flatten)
         (case "numerator(x1!1)/denominator(x1!1)=numerator(x2!1)/denominator(x2!1)")
         (("1" (rewrite "rational_def" -1) (rewrite "rational_def" -1))
          ("2" (assert) (replace -1) (replace -2) (propax))))
        ("2"
         (hide 2)
         (expand "fullset")
         (expand "is_countable")
         (inst +
          "lambda (i:int): 2*abs(i) + if i <0 then 1 else 0 endif")
         (expand "injective?")
         (skosimp)
         (case "x1!1>=0")
         (("1" (case "x2!1>=0") (("1" (grind)) ("2" (grind))))
          ("2" (case "x2!1>=0") (("1" (grind)) ("2" (grind))))))
        ("3"
         (hide 2)
         (expand "fullset")
         (expand "is_countable")
         (inst + "lambda (pn:posnat): pn-1")
         (expand "injective?")
         (skosimp))))))))


proof_type: f_proof
decl_type: formula
library: lebesgue
theory: real_lebesgue_scaf
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (expand "x_eq")
   (expand "lebesgue_outer_measure")
   (name "ZZ"
         "{z |
                           EXISTS I:
                             x_le(x_sum(x_length o I), z) AND
                              subset?[real](singleton[real](x!1), IUnion(I))}")
   (("1"
     (replace -1)
     (expand "x_inf")
     (hide -1)
     (case "forall (r:posreal): ZZ(TRUE,r)")
     (("1"
       (case-replace "FORALL (x: (ZZ)): NOT x`1")
       (("1" (inst -2 "1") (inst - "(TRUE, 1)"))
        ("2"
         (replace 1 2)
         (hide 1)
         (case "nonempty?({x | EXISTS z: ZZ(z) AND z`1 AND z`2 = x})")
         (("1"
           (case "bounded_below?({x | EXISTS z: ZZ(z) AND z`1 AND z`2 = x})")
           (("1"
             (typepred "glb({x | EXISTS z: ZZ(z) AND z`1 AND z`2 = x})")
             (("1"
               (name-replace "GLB"
                "glb({x | EXISTS z: ZZ(z) AND z`1 AND z`2 = x})")
               (hide -2 -3)
               (expand "greatest_lower_bound?")
               (flatten)
               (expand "lower_bound?")
               (expand "<=" -2 2)
               (inst -2 "0")
               (assert)
               (split -2)
               (("1"
                 (hide 1)
                 (inst -3 "GLB/2")
                 (("1"
                   (inst - "GLB/2")
                   (("1" (assert))
                    ("2" (inst + "(TRUE, GLB / 2)") (assert))))
                  ("2" (assert))))
                ("2" (skosimp) (typepred "s!1") (skosimp) (assert))))
              ("2" (assert))))
            ("2"
             (hide 2)
             (expand "bounded_below?")
             (inst + "0")
             (expand "lower_bound?")
             (skosimp)
             (typepred "s!1")
             (skosimp)
             (assert))
            ("3" (propax))))
          ("2"
           (hide 2)
           (expand "nonempty?")
           (expand "empty?")
           (expand "member")
           (inst - "1")
           (inst - "1")
           (inst + "(TRUE, 1)"))))))
      ("2"
       (hide 2)
       (skosimp)
       (expand "ZZ")
       (inst +
        "lambda n: if n=0 then {x | x!1-r!1/2<x&x<x!1+r!1/2} else emptyset[real] endif")
       (("1"
         (split)
         (("1"
           (expand "o")
           (case-replace "x_length(emptyset[real])=(TRUE,0)")
           (("1"
             (hide -1)
             (case-replace
              "x_length({x
                                                  |
                                                  x!1 - r!1 / 2 < x & x < r!1 / 2 + x!1})=(TRUE,r!1)")
             (("1"
               (hide -1)
               (expand "x_le")
               (expand "x_sum")
               (case-replace
                "FORALL (i:nat): IF i = 0 THEN TRUE ELSE TRUE ENDIF")
               (("1"
                 (lemma "zero_tail_series_conv"
                  ("a"
                   "LAMBDA (i:nat): IF i = 0 THEN r!1 ELSE 0 ENDIF"
                   "n"
                   "0"))
                 (lemma "zero_tail_series_limit"
                  ("a"
                   "LAMBDA (i:nat): IF i = 0 THEN r!1 ELSE 0 ENDIF"
                   "n"
                   "0"))
                 (case-replace
                  "FORALL (m:nat):
                           0 < m => (LAMBDA (i: nat): IF i = 0 THEN r!1 ELSE 0 ENDIF)(m) = 0")
                 (("1"
                   (replace -3)
                   (replace -2)
                   (expand "series")
                   (expand "sigma")
                   (expand "sigma")
                   (assert))
                  ("2" (hide-all-but 1) (skosimp) (assert))))
                ("2" (skosimp))))
              ("2"
               (hide 2)
               (expand "x_length")
               (lift-if)
               (assert)
               (prop)
               (("1"
                 (hide -1)
                 (expand "length")
                 (lift-if)
                 (assert)
                 (prop)
                 (("1" (expand "empty?") (inst - "x!1") (grind))
                  ("2"
                   (typepred
                    "sup({x | x!1 - r!1 / 2 < x & x < r!1 / 2 + x!1}) ")
                   (("1"
                     (name-replace "SUP"
                      "sup({x | x!1 - r!1 / 2 < x & x < r!1 / 2 + x!1})")
                     (case-replace "SUP=x!1+r!1/2")
                     (("1"
                       (hide -2)
                       (hide -1)
                       (typepred
                        "inf({x | x!1 - r!1 / 2 < x & x < r!1 / 2 + x!1})")
                       (("1"
                         (case-replace
                          "inf({x | x!1 - r!1 / 2 < x & x < r!1 / 2 + x!1})=x!1-r!1/2")
                         (("1" (assert))
                          ("2"
                           (hide 2 3)
                           (name-replace "INF"
                            "inf({x | x!1 - r!1 / 2 < x & x < r!1 / 2 + x!1})")
                           (expand "greatest_lower_bound")
                           (expand "lower_bound")
                           (flatten)
                           (inst -2 "x!1 - r!1 / 2")
                           (expand "<=" -2 2)
                           (replace 1 -2)
                           (split -2)
                           (("1"
                             (hide 1)
                             (case "exists x: x<=x!1 & x<INF & x!1 - r!1 / 2 < x")
                             (("1"
                               (skosimp)
                               (inst - "x!2")
                               (("1" (assert)) ("2" (assert))))
                              ("2"
                               (name "EPS" "INF+r!1/2-x!1")
                               (case "EPS>0")
                               (("1"
                                 (inst + "min(x!1,INF-EPS/2)")
                                 (grind))
                                ("2" (assert))))))
                            ("2" (assert))))))
                        ("2"
                         (expand "nonempty?")
                         (assert)
                         (expand "below_bounded")
                         (inst + "x!1 - r!1 / 2")
                         (expand "lower_bound")
                         (propax))))
                      ("2"
                       (hide 2 3)
                       (expand "least_upper_bound")
                       (flatten)
                       (expand "upper_bound")
                       (inst -2 "x!1+r!1/2")
                       (expand "<=" -2 2)
                       (replace 1 -2)
                       (case "EXISTS x: x > SUP & x < r!1 / 2 + x!1 & x!1 <= x")
                       (("1"
                         (skosimp)
                         (inst - "x!2")
                         (("1" (assert)) ("2" (assert))))
                        ("2"
                         (hide -1 2)
                         (name "EPS" "x!1+r!1/2-SUP")
                         (case "EPS>0")
                         (("1" (inst + "max(x!1,SUP+EPS/2)") (grind))
                          ("2" (assert))))))))
                    ("2"
                     (expand "nonempty?")
                     (assert)
                     (expand "above_bounded")
                     (inst + "x!1+r!1/2")
                     (expand "upper_bound")
                     (propax))))))
                ("2"
                 (expand "bounded_interval?")
                 (expand "bounded?")
                 (expand "nonempty?")
                 (split)
                 (("1" (grind))
                  ("2"
                   (flatten)
                   (assert)
                   (split)
                   (("1"
                     (expand "above_bounded")
                     (inst + "x!1+r!1/2")
                     (expand "upper_bound")
                     (propax))
                    ("2"
                     (expand "below_bounded")
                     (inst + "x!1-r!1/2")
                     (expand "lower_bound")
                     (propax))))))))
              ("3" (hide 2) (grind))))
            ("2"
             (hide 2)
             (expand "x_length")
             (expand "bounded_interval?")
             (lift-if)
             (assert)
             (expand "length")
             (case-replace "empty?[real](emptyset[real])")
             (("1" (prop) (("1" (grind)) ("2" (ground) (grind))))
              ("2" (hide 2) (grind))))
            ("3" (hide 2) (grind))))
          ("2"
           (expand "emptyset")
           (expand "IUnion")
           (expand "singleton")
           (expand "subset?")
           (expand "member")
           (skosimp)
           (replace -1)
           (inst + "0")
           (assert))))
        ("2"
         (skosimp)
         (expand "bounded_open_interval?")
         (rewrite "metric_open_def")
         (rewrite "emptyset_is_open")
         (expand "bounded_interval?")
         (split)
         (("1" (expand "interval?") (grind))
          ("2" (expand "bounded?") (grind))))
        ("3"
         (skosimp)
         (expand "bounded_open_interval?")
         (split)
         (("1"
           (expand "bounded_interval?")
           (split)
           (("1" (grind))
            ("2"
             (expand "bounded?")
             (flatten)
             (expand "nonempty?")
             (replace 1 2)
             (split)
             (("1"
               (expand "above_bounded")
               (inst + "x!1+r!1/2")
               (expand "upper_bound")
               (propax))
              ("2"
               (expand "below_bounded")
               (inst + "x!1-r!1/2")
               (expand "lower_bound")
               (propax))))))
          ("2"
           (lemma "metric_open_ball" ("x" "x!1" "r" "r!1/2"))
           (expand "ball")
           (case-replace
            "{y: real | abs(x!1 - y) < r!1 / 2}={x | x!1 - r!1 / 2 < x & x < r!1 / 2 + x!1}")
           (apply-extensionality 1 :hide? t)
           (hide-all-but 1)
           (grind))))))))
    ("2"
     (hide 2)
     (skosimp)
     (skosimp)
     (typepred "I!1(x1!1)")
     (expand "bounded_open_interval?")
     (expand "bounded_interval?")
     (flatten))))


proof_type: f_proof
decl_type: formula
library: lebesgue
theory: real_lebesgue_scaf
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp)
   (typepred "lebesgue_outer_measure")
   (typepred "b!1")
   (expand "bounded_interval?")
   (flatten)
   (expand "bounded?")
   (assert)
   (split -2)
   (("1" (expand "nonempty?") (propax))
    ("2"
     (flatten)
     (lemma "x_le_antisymmetric"
      ("x"
       "lebesgue_outer_measure({x | inf(b!1) <= x AND x <= sup(b!1)})"
       "y"
       "lebesgue_outer_measure({x | inf(b!1) < x AND x < sup(b!1)})"))
     (("1"
       (assert)
       (hide 2)
       (split)
       (("1"
         (lemma "pairwise_subadditive"
          ("y"
           "{x | inf(b!1) <= x AND x <= sup(b!1)}"
           "x"
           "union[real](singleton[real](inf(b!1)),singleton[real](sup(b!1)))"))
         (case-replace
          "intersection
                                                  ({x
                                                    |
                                                    inf(b!1) <= x AND x <= sup(b!1)},
                                                   complement
                                                   (union[real]
                                                    (singleton[real](inf(b!1)),
                                                     singleton[real](sup(b!1)))))= {x | inf(b!1) < x AND x < sup(b!1)}")
         (("1"
           (hide -1)
           (name-replace "LHS"
            "lebesgue_outer_measure({x | inf(b!1) <= x AND x <= sup(b!1)})")
           (name-replace "RHS"
            "lebesgue_outer_measure({x | inf(b!1) < x AND x < sup(b!1)})")
           (case-replace
            "intersection
                                                    ({x
                                                      |
                                                      inf(b!1) <= x AND x <= sup(b!1)},
                                                     union[real]
                                                     (singleton[real](inf(b!1)),
                                                      singleton[real](sup(b!1))))=union[real]
                                                     (singleton[real](inf(b!1)),
                                                      singleton[real](sup(b!1)))")
           (("1"
             (hide -1)
             (lemma "lebesgue_outer_measure_singleton" ("x" "inf(b!1)"))
             (lemma "lebesgue_outer_measure_singleton" ("x" "sup(b!1)"))
             (lemma "outer_negligible_union"
              ("n1"
               "singleton[real](inf(b!1))"
               "n2"
               "singleton[real](sup(b!1))"))
             (("1"
               (expand "outer_negligible?")
               (replace -1)
               (hide-all-but (-4 1))
               (expand "x_add")
               (expand "x_le")
               (flatten)
               (replace -2)
               (propax))
              ("2"
               (expand "outer_negligible?")
               (hide-all-but (-1 1))
               (expand "x_eq")
               (flatten)
               (assert)
               (decompose-equality))
              ("3"
               (hide-all-but (-2 1))
               (expand "outer_negligible?")
               (expand "x_eq")
               (flatten)
               (assert)
               (decompose-equality))))
            ("2"
             (hide -1 2)
             (apply-extensionality :hide? t)
             (expand "intersection")
             (expand "member")
             (case-replace
              "union[real]
                         (singleton[real](inf(b!1)), singleton[real](sup(b!1)))(x!1)")
             (("1"
               (expand "singleton")
               (expand "union")
               (expand "member")
               (split -1)
               (("1"
                 (assert)
                 (typepred "sup(b!1)")
                 (expand "least_upper_bound")
                 (expand "upper_bound")
                 (flatten)
                 (expand "nonempty?")
                 (expand "empty?")
                 (skosimp)
                 (expand "member")
                 (inst - "x!2")
                 (typepred "inf(b!1)")
                 (expand "greatest_lower_bound")
                 (flatten)
                 (expand "lower_bound")
                 (inst - "x!2")
                 (assert))
                ("2"
                 (assert)
                 (expand "nonempty?")
                 (expand "empty?")
                 (skosimp)
                 (expand "member")
                 (typepred "inf(b!1)")
                 (expand "greatest_lower_bound")
                 (expand "lower_bound")
                 (flatten)
                 (inst - "x!2")
                 (typepred "sup(b!1)")
                 (expand "least_upper_bound")
                 (flatten)
                 (expand "upper_bound")
                 (inst - "x!2")
                 (assert))))
              ("2" (replace 1 2) (propax))))))
          ("2"
           (hide -1 2)
           (apply-extensionality :hide? t)
           (expand "singleton")
           (expand "union")
           (expand "complement")
           (expand "intersection")
           (expand "member")
           (assert)
           (case-replace "inf(b!1) < x!1 AND x!1 < sup(b!1)")
           (("1" (flatten) (assert))
            ("2" (replace 1 2) (assert) (flatten) (assert))))))
        ("2"
         (expand "outer_measure?")
         (flatten)
         (assert)
         (expand "om_increasing?")
         (inst - "{x | inf(b!1) < x AND x < sup(b!1)}"
          "{x | inf(b!1) <= x AND x <= sup(b!1)}")
         (assert)
         (hide-all-but (-1 -2 -6 2))
         (expand "subset?")
         (skosimp)
         (expand "member")
         (flatten)
         (assert))))
      ("2" (skosimp)) ("3" (skosimp)) ("4" (propax))))))


