Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  horizontal_criterion_line.prf

  Sprache: Lisp
 

(horizontal_criterion_line
 (horizontal_criterion_rewrite 0
  (horizontal_criterion_rewrite-2 nil 3470043336
   ("" (skeep)
    (("" (expand "horizontal_criterion?")
      (("" (assert)
        ((""
          (case "NOT FORALL (bb1,bb2,bb3:bool): (bb1 IFF bb2) IMPLIES ((bb1 AND bb3) IFF (bb2 AND bb3))")
          (("1" (hide 2) (("1" (grind) nil nil)) nil)
           ("2" (inst?)
            (("2" (replace 1)
              (("2" (hide 2)
                (("2"
                  (name "G"
                        "(LAMBDA (vvvv: Vector): eps * det(vvvv, tangent_line(sp, eps)))")
                  (("2" (label "Gname" -1)
                    (("2"
                      (name "H"
                            "(LAMBDA (vvvv: Vector): R(sp) * det(sp, vvvv) * eps - sp * vvvv)")
                      (("2" (label "Hname" -1)
                        (("2" (name "VT" "tangent_line(sp,eps)")
                          (("2" (label "hokie" -1)
                            (("2" (replace -1)
                              (("2"
                                (name "UV" "-eps*perpR(VT)")
                                (("2"
                                  (label "UVname" -1)
                                  (("2"
                                    (lemma
                                     "linear_functional_perp_signs_unique")
                                    (("2"
                                      (inst - "H" "G" "UV" "VT")
                                      (("2"
                                        (assert)
                                        (("2"
                                          (split -1)
                                          (("1"
                                            (inst - "v")
                                            (("1"
                                              (case
                                               "H(v) /= 0 AND G(v) /= 0")
                                              (("1"
                                                (flatten)
                                                (("1"
                                                  (ground)
                                                  (("1"
                                                    (case "H(v) < 0")
                                                    (("1"
                                                      (case "G(v) < 0")
                                                      (("1"
                                                        (replace
                                                         "Gname"
                                                         -
                                                         rl)
                                                        (("1"
                                                          (assert)
                                                          nil
                                                          nil))
                                                        nil)
                                                       ("2"
                                                        (div-by
                                                         -3
                                                         "-H(v)")
                                                        (("2"
                                                          (field -3)
                                                          nil
                                                          nil))
                                                        nil))
                                                      nil)
                                                     ("2"
                                                      (replace
                                                       "Hname"
                                                       :dir
                                                       rl)
                                                      (("2"
                                                        (assert)
                                                        nil
                                                        nil))
                                                      nil))
                                                    nil)
                                                   ("2"
                                                    (case "G(v) < 0")
                                                    (("1"
                                                      (case "H(v) < 0")
                                                      (("1"
                                                        (replace
                                                         "Hname"
                                                         :dir
                                                         rl)
                                                        (("1"
                                                          (assert)
                                                          nil
                                                          nil))
                                                        nil)
                                                       ("2"
                                                        (div-by
                                                         -3
                                                         "-G(v)")
                                                        (("2"
                                                          (assert)
                                                          nil
                                                          nil))
                                                        nil))
                                                      nil)
                                                     ("2"
                                                      (replace
                                                       "Gname"
                                                       :dir
                                                       rl)
                                                      (("2"
                                                        (assert)
                                                        nil
                                                        nil))
                                                      nil))
                                                    nil))
                                                  nil))
                                                nil)
                                               ("2"
                                                (case "G(v) = 0")
                                                (("1"
                                                  (hide 1)
                                                  (("1"
                                                    (replace
                                                     "Gname"
                                                     -
                                                     rl)
                                                    (("1"
                                                      (assert)
                                                      (("1"
                                                        (lemma
                                                         "parallel_det_0")
                                                        (("1"
                                                          (inst
                                                           -
                                                           "v"
                                                           "tangent_line(sp,eps)")
                                                          (("1"
                                                            (case
                                                             "det(v,VT) = 0")
                                                            (("1"
                                                              (assert)
                                                              (("1"
                                                                (hide
                                                                 -1)
                                                                (("1"
                                                                  (expand
                                                                   "parallel?")
                                                                  (("1"
                                                                    (skosimp*)
                                                                    (("1"
                                                                      (lemma
                                                                       "line_solution_tangent_line")
                                                                      (("1"
                                                                        (inst
                                                                         -
                                                                         "eps"
                                                                         "sp")
                                                                        (("1"
                                                                          (expand
                                                                           "line_solution?")
                                                                          (("1"
                                                                            (flatten)
                                                                            (("1"
                                                                              (replace
                                                                               -3
                                                                               1)
                                                                              (("1"
                                                                                (replace
                                                                                 "hokie")
                                                                                (("1"
                                                                                  (hide-all-but
                                                                                   (-1
                                                                                    1))
                                                                                  (("1"
                                                                                    (rewrite
                                                                                     "det_scal_right")
                                                                                    (("1"
                                                                                      (assert)
                                                                                      nil
                                                                                      nil))
                                                                                    nil))
                                                                                  nil))
                                                                                nil))
                                                                              nil))
                                                                            nil))
                                                                          nil))
                                                                        nil))
                                                                      nil))
                                                                    nil))
                                                                  nil))
                                                                nil))
                                                              nil)
                                                             ("2"
                                                              (typepred
                                                               "eps")
                                                              (("2"
                                                                (assert)
                                                                nil
                                                                nil))
                                                              nil))
                                                            nil)
                                                           ("2"
                                                            (flatten)
                                                            (("2"
                                                              (replace
                                                               -1)
                                                              (("2"
                                                                (assert)
                                                                (("2"
                                                                  (expand
                                                                   "det")
                                                                  (("2"
                                                                    (assert)
                                                                    nil
                                                                    nil))
                                                                  nil))
                                                                nil))
                                                              nil))
                                                            nil))
                                                          nil))
                                                        nil))
                                                      nil))
                                                    nil))
                                                  nil)
                                                 ("2"
                                                  (case "H(v) = 0")
                                                  (("1"
                                                    (replace
                                                     "Hname"
                                                     :dir
                                                     rl)
                                                    (("1"
                                                      (assert)
                                                      (("1"
                                                        (case
                                                         "line_solution?(sp,v,eps)")
                                                        (("1"
                                                          (lemma
                                                           "tangent_line_solution")
                                                          (("1"
                                                            (inst?)
                                                            (("1"
                                                              (assert)
                                                              (("1"
                                                                (expand
                                                                 "tangent_line?")
                                                                (("1"
                                                                  (skosimp*)
                                                                  (("1"
                                                                    (replace
                                                                     "hokie")
                                                                    (("1"
                                                                      (replace
                                                                       -1)
                                                                      (("1"
                                                                        (hide-all-but
                                                                         2)
                                                                        (("1"
                                                                          (grind)
                                                                          nil
                                                                          nil))
                                                                        nil))
                                                                      nil))
                                                                    nil))
                                                                  nil))
                                                                nil))
                                                              nil))
                                                            nil))
                                                          nil)
                                                         ("2"
                                                          (expand
                                                           "line_solution?")
                                                          (("2"
                                                            (case
                                                             "line_solution?(sp,-v,eps)")
                                                            (("1"
                                                              (lemma
                                                               "tangent_line_solution")
                                                              (("1"
                                                                (inst?)
                                                                (("1"
                                                                  (assert)
                                                                  (("1"
                                                                    (expand
                                                                     "tangent_line?")
                                                                    (("1"
                                                                      (skosimp*)
                                                                      (("1"
                                                                        (case
                                                                         "v = (-nnk!1)*tangent_line(sp,eps)")
                                                                        (("1"
                                                                          (replace
                                                                           -1)
                                                                          (("1"
                                                                            (replace
                                                                             "hokie")
                                                                            (("1"
                                                                              (hide-all-but
                                                                               3)
                                                                              (("1"
                                                                                (grind)
                                                                                nil
                                                                                nil))
                                                                              nil))
                                                                            nil))
                                                                          nil)
                                                                         ("2"
                                                                          (replace
                                                                           "hokie")
                                                                          (("2"
                                                                            (hide-all-but
                                                                             (-1
                                                                              1))
                                                                            (("2"
                                                                              (expand
                                                                               "*")
                                                                              (("2"
                                                                                (expand
                                                                                 "-")
                                                                                (("2"
                                                                                  (flatten)
                                                                                  (("2"
                                                                                    (decompose-equality)
                                                                                    nil
                                                                                    nil))
                                                                                  nil))
                                                                                nil))
                                                                              nil))
                                                                            nil))
                                                                          nil))
                                                                        nil))
                                                                      nil))
                                                                    nil))
                                                                  nil))
                                                                nil))
                                                              nil)
                                                             ("2"
                                                              (expand
                                                               "line_solution?")
                                                              (("2"
                                                                (split)
                                                                (("1"
                                                                  (hide-all-but
                                                                   (-1
                                                                    1))
                                                                  (("1"
                                                                    (grind)
                                                                    nil
                                                                    nil))
                                                                  nil)
                                                                 ("2"
                                                                  (lemma
                                                                   "det_scal_right")
                                                                  (("2"
                                                                    (inst
                                                                     -
                                                                     "-1"
                                                                     "sp"
                                                                     "v")
                                                                    (("2"
                                                                      (assert)
                                                                      nil
                                                                      nil))
                                                                    nil))
                                                                  nil))
                                                                nil))
                                                              nil))
                                                            nil))
                                                          nil))
                                                        nil))
                                                      nil))
                                                    nil)
                                                   ("2"
                                                    (assert)
                                                    nil
                                                    nil))
                                                  nil))
                                                nil))
                                              nil))
                                            nil)
                                           ("2"
                                            (expand
                                             "linear_functional?")
                                            (("2"
                                              (skosimp*)
                                              (("2"
                                                (replace "Hname" + rl)
                                                (("2"
                                                  (assert)
                                                  (("2"
                                                    (hide-all-but 1)
                                                    (("2"
                                                      (grind)
                                                      nil
                                                      nil))
                                                    nil))
                                                  nil))
                                                nil))
                                              nil))
                                            nil)
                                           ("3"
                                            (replace "Gname" + rl)
                                            (("3"
                                              (hide-all-but 1)
                                              (("3" (grind) nil nil))
                                              nil))
                                            nil)
                                           ("4"
                                            (hide 2)
                                            (("4"
                                              (replace "Hname" + rl)
                                              (("4"
                                                (replace "Gname" + rl)
                                                (("4"
                                                  (assert)
                                                  (("4"
                                                    (replace
                                                     "UVname"
                                                     +
                                                     rl)
                                                    (("4"
                                                      (rewrite
                                                       "det_scal_left")
                                                      (("4"
                                                        (assert)
                                                        (("4"
                                                          (rewrite
                                                           "det_scal_right")
                                                          (("4"
                                                            (assert)
                                                            (("4"
                                                              (case
                                                               "R(sp) * det(perpR(VT), VT) * det(sp, perpR(VT)) * -eps * -eps * eps *
                         eps = R(sp) * det(perpR(VT), VT) * det(sp, perpR(VT)) AND (sp * perpR(VT)) * det(perpR(VT), VT) * -eps * -eps * eps = (sp * perpR(VT)) * det(perpR(VT), VT) * eps")
                                                              (("1"
                                                                (flatten)
                                                                (("1"
                                                                  (replace
                                                                   -1)
                                                                  (("1"
                                                                    (replace
                                                                     -2)
                                                                    (("1"
                                                                      (factor
                                                                       1)
                                                                      (("1"
                                                                        (case
                                                                         "det(perpR(VT),VT) > 0 AND (R(sp) * det(sp, perpR(VT)) - sp * perpR(VT) * eps) > 0")
                                                                        (("1"
                                                                          (flatten)
                                                                          (("1"
                                                                            (lemma
                                                                             "posreal_times_posreal_is_posreal")
                                                                            (("1"
                                                                              (inst?)
                                                                              (("1"
                                                                                (assert)
                                                                                nil
                                                                                nil)
                                                                               ("2"
                                                                                (hide
                                                                                 2)
                                                                                (("2"
                                                                                  (split)
                                                                                  (("1"
                                                                                    (rewrite
                                                                                     "det_perpR")
                                                                                    (("1"
                                                                                      (typepred
                                                                                       "sqv(perpR(VT))")
                                                                                      (("1"
                                                                                        (expand
                                                                                         "sqv")
                                                                                        (("1"
                                                                                          (propax)
                                                                                          nil
                                                                                          nil))
                                                                                        nil))
                                                                                      nil))
                                                                                    nil)
                                                                                   ("2"
                                                                                    (propax)
                                                                                    nil
                                                                                    nil))
                                                                                  nil))
                                                                                nil))
                                                                              nil))
                                                                            nil))
                                                                          nil)
                                                                         ("2"
                                                                          (split)
                                                                          (("1"
                                                                            (rewrite
                                                                             "det_perpR")
                                                                            (("1"
                                                                              (typepred
                                                                               "sqv(perpR(VT))")
                                                                              (("1"
                                                                                (expand
                                                                                 "sqv")
                                                                                (("1"
                                                                                  (propax)
                                                                                  nil
                                                                                  nil))
                                                                                nil))
                                                                              nil))
                                                                            nil)
                                                                           ("2"
                                                                            (hide
                                                                             2)
                                                                            (("2"
                                                                              (case
                                                                               "sp * perpR(VT) * eps < 0 AND R(sp) * det(sp, perpR(VT)) >= 0")
                                                                              (("1"
                                                                                (flatten)
                                                                                (("1"
                                                                                  (assert)
                                                                                  nil
                                                                                  nil))
                                                                                nil)
                                                                               ("2"
                                                                                (hide
                                                                                 2)
                                                                                (("2"
                                                                                  (split)
                                                                                  (("1"
                                                                                    (lemma
                                                                                     "line_solution_det")
                                                                                    (("1"
                                                                                      (inst
                                                                                       -
                                                                                       "eps"
                                                                                       "sp"
                                                                                       "VT")
                                                                                      (("1"
                                                                                        (assert)
                                                                                        (("1"
                                                                                          (lemma
                                                                                           "line_solution_tangent_line")
                                                                                          (("1"
                                                                                            (inst
                                                                                             -
                                                                                             "eps"
                                                                                             "sp")
                                                                                            (("1"
                                                                                              (assert)
                                                                                              (("1"
                                                                                                (flatten)
                                                                                                (("1"
                                                                                                  (rewrite
                                                                                                   "det_perpR")
                                                                                                  (("1"
                                                                                                    (assert)
                                                                                                    nil
                                                                                                    nil))
                                                                                                  nil))
                                                                                                nil))
                                                                                              nil))
                                                                                            nil))
                                                                                          nil))
                                                                                        nil))
                                                                                      nil))
                                                                                    nil)
                                                                                   ("2"
                                                                                    (lemma
                                                                                     "nnreal_times_nnreal_is_nnreal")
                                                                                    (("2"
                                                                                      (inst
                                                                                       -
                                                                                       "R(sp)"
                                                                                       "det(sp,perpR(VT))")
                                                                                      (("2"
                                                                                        (hide
                                                                                         2)
                                                                                        (("2"
                                                                                          (lemma
                                                                                           "line_solution_tangent_line")
                                                                                          (("2"
                                                                                            (inst
                                                                                             -
                                                                                             "eps"
                                                                                             "sp")
                                                                                            (("2"
                                                                                              (lemma
                                                                                               "line_solution_det")
                                                                                              (("2"
                                                                                                (inst
                                                                                                 -
                                                                                                 "eps"
                                                                                                 "sp"
                                                                                                 "VT")
                                                                                                (("2"
                                                                                                  (assert)
                                                                                                  (("2"
                                                                                                    (flatten)
                                                                                                    (("2"
                                                                                                      (rewrite
                                                                                                       "det_perpR")
                                                                                                      (("2"
                                                                                                        (rewrite
                                                                                                         "det_perpR")
                                                                                                        (("2"
                                                                                                          (rewrite
                                                                                                           "perpR_perpR")
                                                                                                          (("2"
                                                                                                            (hide-all-but
                                                                                                             (-2
                                                                                                              1))
                                                                                                            (("2"
                                                                                                              (grind)
                                                                                                              nil
                                                                                                              nil))
                                                                                                            nil))
                                                                                                          nil))
                                                                                                        nil))
                                                                                                      nil))
                                                                                                    nil))
                                                                                                  nil))
                                                                                                nil))
                                                                                              nil))
                                                                                            nil))
                                                                                          nil))
                                                                                        nil))
                                                                                      nil))
                                                                                    nil))
                                                                                  nil))
                                                                                nil))
                                                                              nil))
                                                                            nil))
                                                                          nil))
                                                                        nil))
                                                                      nil))
                                                                    nil))
                                                                  nil))
                                                                nil)
                                                               ("2"
                                                                (hide-all-but
                                                                 1)
                                                                (("2"
                                                                  (typepred
                                                                   "eps")
                                                                  (("2"
                                                                    (split)
                                                                    (("1"
                                                                      (assert)
                                                                      nil
                                                                      nil)
                                                                     ("2"
                                                                      (assert)
                                                                      nil
                                                                      nil))
                                                                    nil))
                                                                  nil))
                                                                nil))
                                                              nil))
                                                            nil))
                                                          nil))
                                                        nil))
                                                      nil))
                                                    nil))
                                                  nil))
                                                nil))
                                              nil))
                                            nil)
                                           ("5"
                                            (replace "Hname" + rl)
                                            (("5"
                                              (assert)
                                              (("5"
                                                (lemma
                                                 "line_solution_tangent_line")
                                                (("5"
                                                  (inst?)
                                                  (("5"
                                                    (expand
                                                     "line_solution?")
                                                    (("5"
                                                      (propax)
                                                      nil
                                                      nil))
                                                    nil))
                                                  nil))
                                                nil))
                                              nil))
                                            nil)
                                           ("6"
                                            (replace "Gname" + rl)
                                            (("6" (assertnil nil))
                                            nil))
                                          nil))
                                        nil))
                                      nil))
                                    nil))
                                  nil))
                                nil))
                              nil))
                            nil))
                          nil))
                        nil))
                      nil))
                    nil))
                  nil))
                nil))
              nil))
            nil))
          nil))
        nil))
      nil))
    nil)
   ((real_times_real_is_real application-judgement "real" reals nil)
    (horizontal_criterion? const-decl "bool" horizontal_criteria nil)
    (AND const-decl "[bool, bool -> bool]" booleans nil)
    (IFF const-decl "[bool, bool -> bool]" booleans nil)
    (IMPLIES const-decl "[bool, bool -> bool]" booleans nil)
    (NOT const-decl "[bool -> bool]" booleans nil)
    (bool nonempty-type-eq-decl nil booleans nil)
    (boolean nonempty-type-decl nil booleans nil)
    (sq_nz_pos application-judgement "posreal" sq "reals/")
    (nz_sqv_gt_0 application-judgement "posreal" vectors_2D "vectors/")
    (real_minus_real_is_real application-judgement "real" reals nil)
    (- const-decl "[numfield, numfield -> numfield]" number_fields nil)
    (real_lt_is_strict_total_order name-judgement
     "(strict_total_order?[real])" real_props nil)
    (div_cancel3 formula-decl nil real_props nil)
    (minus_odd_is_odd application-judgement "odd_int" integers nil)
    (/ const-decl "[numfield, nznum -> numfield]" number_fields nil)
    (nznum nonempty-type-eq-decl nil number_fields nil)
    (real_div_nzreal_is_real application-judgement "real" reals nil)
    (H skolem-const-decl "[Vector -> real]" horizontal_criterion_line
     nil)
    (v skolem-const-decl "Vect2" horizontal_criterion_line nil)
    (both_sides_div_pos_ge1 formula-decl nil real_props nil)
    (minus_real_is_real application-judgement "real" reals nil)
    (< const-decl "bool" reals nil)
    (G skolem-const-decl "[Vector -> real]" horizontal_criterion_line
     nil)
    (scal_neg_1 formula-decl nil vectors_2D "vectors/")
    (nnreal_div_posreal_is_nnreal application-judgement "nnreal"
     real_types nil)
    (posreal_times_posreal_is_posreal application-judgement "posreal"
     real_types nil)
    (- const-decl "Vector" vectors_2D "vectors/")
    (tangent_line_solution formula-decl nil tangent_line nil)
    (tangent_line? const-decl "bool" tangent_line nil)
    (parallel? const-decl "bool" vectors_2D "vectors/")
    (line_solution_tangent_line formula-decl nil tangent_line nil)
    (line_solution? const-decl "bool" line_solutions nil)
    (dot_scal_right formula-decl nil vectors_2D "vectors/")
    (det_scal_right formula-decl nil det_2D "vectors/")
    (nzreal nonempty-type-eq-decl nil reals nil)
    (real_plus_real_is_real application-judgement "real" reals nil)
    (comp_zero_y formula-decl nil vectors_2D "vectors/")
    (comp_zero_x formula-decl nil vectors_2D "vectors/")
    (dot_zero_right formula-decl nil vectors_2D "vectors/")
    (parallel_det_0 formula-decl nil parallel_2D "vectors/")
    (+ const-decl "Vector" vectors_2D "vectors/")
    (linear_functional? const-decl "bool" linear_transformations_2D
     "vectors/")
    (det_scal_left formula-decl nil det_2D "vectors/")
    (nz_norm_gt_0 application-judgement "posreal" vectors_2D
     "vectors/")
    (line_solution_det formula-decl nil line_solutions nil)
    (perpR_perpR formula-decl nil perpendicular_2D "vectors/")
    (neg_nzv application-judgement "Nz_vector" vectors_2D "vectors/")
    (nnreal_times_nnreal_is_nnreal judgement-tcc nil real_types nil)
    (VT skolem-const-decl "Nz_vect2" horizontal_criterion_line nil)
    (sp skolem-const-decl "Sp_vect2[D]" horizontal_criterion_line nil)
    (eps skolem-const-decl "Sign" horizontal_criterion_line nil)
    (det_perpR formula-decl nil det_2D "vectors/")
    (posreal_times_posreal_is_posreal judgement-tcc nil real_types nil)
    (det_eq_0 formula-decl nil det_2D "vectors/")
    (perpR_nz application-judgement "Nz_vect2" perpendicular_2D
     "vectors/")
    (real_gt_is_strict_total_order name-judgement
     "(strict_total_order?[real])" real_props nil)
    (linear_functional_perp_signs_unique formula-decl nil
     linear_transformations_2D "vectors/")
    (Nz_vector type-eq-decl nil vectors_2D "vectors/")
    (perpR const-decl "Vect2" perpendicular_2D "vectors/")
    (* const-decl "Vector" vectors_2D "vectors/")
    (nz_nzv application-judgement "Nz_vector" vectors_2D "vectors/")
    (sign_neg_clos application-judgement "Sign" sign "reals/")
    (tangent_line const-decl "Nz_vect2" tangent_line nil)
    (Nz_vect2 type-eq-decl nil vectors_2D "vectors/")
    (zero const-decl "Vector" vectors_2D "vectors/")
    (<= const-decl "bool" reals nil)
    (Sign type-eq-decl nil sign "reals/")
    (- const-decl "[numfield -> numfield]" number_fields nil)
    (= const-decl "[T, T -> boolean]" equalities nil)
    (OR const-decl "[bool, bool -> bool]" booleans nil)
    (nzint nonempty-type-eq-decl nil integers nil)
    (/= const-decl "boolean" notequal nil)
    (int nonempty-type-eq-decl nil integers nil)
    (integer_pred const-decl "[rational -> boolean]" integers nil)
    (rational nonempty-type-from-decl nil rationals nil)
    (rational_pred const-decl "[real -> boolean]" rationals nil)
    (det const-decl "real" det_2D "vectors/")
    (R const-decl "nnreal" horizontal_criteria nil)
    (* const-decl "[numfield, numfield -> numfield]" number_fields nil)
    (numfield nonempty-type-eq-decl nil number_fields nil)
    (Sp_vect2 type-eq-decl nil horizontal nil)
    (D formal-const-decl "posreal" horizontal_criterion_line nil)
    (posreal nonempty-type-eq-decl nil real_types nil)
    (> const-decl "bool" reals nil)
    (sq const-decl "nonneg_real" sq "reals/")
    (nonneg_real nonempty-type-eq-decl nil real_types nil)
    (sqv const-decl "nnreal" vectors_2D "vectors/")
    (nnreal type-eq-decl nil real_types nil)
    (Vect2 type-eq-decl nil vectors_2D_def "vectors/")
    (* const-decl "real" vectors_2D "vectors/")
    (Vector type-eq-decl nil vectors_2D "vectors/")
    (>= const-decl "bool" reals nil)
    (real nonempty-type-from-decl nil reals nil)
    (real_pred const-decl "[number_field -> boolean]" reals nil)
    (number_field nonempty-type-from-decl nil number_fields nil)
    (number_field_pred const-decl "[number -> boolean]" number_fields
     nil)
    (number nonempty-type-decl nil numbers nil)
    (real_ge_is_total_order name-judgement "(total_order?[real])"
     real_props nil)
    (real_le_is_total_order name-judgement "(total_order?[real])"
     real_props nil))
   nil)
  (horizontal_criterion_rewrite-1 nil 3469886798
   ("" (skeep)
    (("" (ground)
      (("1" (lemma "horiz_criteria_implies_half_plane")
        (("1" (expand "horizontal_half_plane?")
          (("1" (inst - "eps" "v" "sp" "zero") (("1" (assertnil nil))
            nil))
          nil))
        nil)
       ("2" (expand "horizontal_criterion?")
        (("2" (case "eps * det(v, tangent_line(sp, eps)) < 0")
          (("1" (hide -2)
            (("1"
              (name "G"
                    "(LAMBDA (vvvv: Vector): eps * det(vvvv, tangent_line(sp, eps)))")
              (("1" (label "Gname" -1)
                (("1"
                  (name "H"
                        "(LAMBDA (vvvv: Vector): R(sp) * det(sp, vvvv) * eps - sp * vvvv)")
                  (("1" (label "Hname" -1)
                    (("1" (name "VT" "tangent_line(sp,eps)")
                      (("1" (label "hokie" -1)
                        (("1" (replace -1)
                          (("1" (name "UV" "-eps*perpR(VT)")
                            (("1" (label "UVname" -1)
                              (("1"
                                (case
                                 "H(UV) < 0 AND G(UV) < 0 AND H(VT) = 0 AND G(VT) = 0")
                                (("1"
                                  (flatten)
                                  (("1"
                                    (label "HUV" -1)
                                    (("1"
                                      (label "GUV" -2)
                                      (("1"
                                        (label "HVT" -3)
                                        (("1"
                                          (label "GVT" -4)
                                          (("1"
                                            (lemma
                                             "linear_functional_perp_signs_unique")
                                            (("1"
                                              (inst
                                               -
                                               "H"
                                               "G"
                                               "UV"
                                               "VT")
                                              (("1"
                                                (assert)
                                                (("1"
                                                  (split -1)
                                                  (("1"
                                                    (inst - "v")
                                                    (("1"
                                                      (case "G(v) < 0")
                                                      (("1"
                                                        (div-by
                                                         -2
                                                         "-G(v)")
                                                        (("1"
                                                          (replace
                                                           "Hname"
                                                           -2
                                                           rl)
                                                          (("1"
                                                            (assert)
                                                            nil
                                                            nil))
                                                          nil))
                                                        nil)
                                                       ("2"
                                                        (replace
                                                         "Gname"
                                                         +
                                                         rl)
                                                        (("2"
                                                          (assert)
                                                          nil
                                                          nil))
                                                        nil))
                                                      nil))
                                                    nil)
                                                   ("2"
                                                    (expand
                                                     "linear_functional?")
                                                    (("2"
                                                      (skosimp*)
                                                      (("2"
                                                        (replace
                                                         "Hname"
                                                         +
                                                         rl)
                                                        (("2"
                                                          (assert)
                                                          (("2"
                                                            (hide-all-but
                                                             1)
                                                            (("2"
                                                              (grind)
                                                              nil
                                                              nil))
                                                            nil))
                                                          nil))
                                                        nil))
                                                      nil))
                                                    nil)
                                                   ("3"
                                                    (replace
                                                     "Gname"
                                                     +
                                                     rl)
                                                    (("3"
                                                      (hide-all-but 1)
                                                      (("3"
                                                        (grind)
                                                        nil
                                                        nil))
                                                      nil))
                                                    nil)
                                                   ("4"
                                                    (lemma
                                                     "negreal_times_negreal_is_posreal")
                                                    (("4"
                                                      (inst?)
                                                      nil
                                                      nil))
                                                    nil))
                                                  nil))
                                                nil))
                                              nil))
                                            nil))
                                          nil))
                                        nil))
                                      nil))
                                    nil))
                                  nil)
                                 ("2"
                                  (ground)
                                  (("1"
                                    (replace "Hname" + rl)
                                    (("1"
                                      (assert)
                                      (("1"
                                        (both-sides "+" "sp*UV" 1)
                                        (("1"
                                          (assert)
                                          (("1"
                                            (case
                                             "R(sp) * det(sp, UV) * eps = R(sp)*(sp*VT)")
                                            (("1"
                                              (replace -1)
                                              (("1"
                                                (hide -1)
                                                (("1"
                                                  (case
                                                   "sp*UV = D*norm(VT)")
                                                  (("1"
                                                    (replace -1)
                                                    (("1"
                                                      (hide -1)
                                                      (("1"
                                                        (case
                                                         "R(sp) * (sp*VT) <= 0 AND D*norm(VT) > 0")
                                                        (("1"
                                                          (assert)
                                                          nil
                                                          nil)
                                                         ("2"
                                                          (hide
                                                           (2 3 4 5))
                                                          (("2"
                                                            (split)
                                                            (("1"
                                                              (case
                                                               "(sp*VT) <= 0")
                                                              (("1"
                                                                (lemma
                                                                 "nnreal_times_nnreal_is_nnreal")
                                                                (("1"
                                                                  (inst
                                                                   -
                                                                   "R(sp)"
                                                                   "-(sp*VT)")
                                                                  (("1"
                                                                    (assert)
                                                                    nil
                                                                    nil)
                                                                   ("2"
                                                                    (assert)
                                                                    nil
                                                                    nil))
                                                                  nil))
                                                                nil)
                                                               ("2"
                                                                (lemma
                                                                 "line_solution_det")
                                                                (("2"
                                                                  (inst
                                                                   -
                                                                   "eps"
                                                                   "sp"
                                                                   "VT")
                                                                  (("2"
                                                                    (assert)
                                                                    (("2"
                                                                      (lemma
                                                                       "line_solution_tangent_line")
                                                                      (("2"
                                                                        (inst
                                                                         -
                                                                         "eps"
                                                                         "sp")
                                                                        (("2"
                                                                          (assert)
                                                                          nil
                                                                          nil))
                                                                        nil))
                                                                      nil))
                                                                    nil))
                                                                  nil))
                                                                nil))
                                                              nil)
                                                             ("2"
                                                              (lemma
                                                               "posreal_times_posreal_is_posreal")
                                                              (("2"
                                                                (inst
                                                                 -
                                                                 "D"
                                                                 "norm(VT)")
                                                                nil
                                                                nil))
                                                              nil))
                                                            nil))
                                                          nil))
                                                        nil))
                                                      nil))
                                                    nil)
                                                   ("2"
                                                    (lemma
                                                     "line_solution_det")
                                                    (("2"
                                                      (inst
                                                       -
                                                       "eps"
                                                       "sp"
                                                       "VT")
                                                      (("2"
                                                        (case
                                                         "sp * UV =  -eps * det(sp, VT)")
                                                        (("1"
                                                          (assert)
                                                          (("1"
                                                            (lemma
                                                             "line_solution_tangent_line")
                                                            (("1"
                                                              (inst
                                                               -
                                                               "eps"
                                                               "sp")
                                                              (("1"
                                                                (assert)
                                                                nil
                                                                nil))
                                                              nil))
                                                            nil))
                                                          nil)
                                                         ("2"
                                                          (replace
                                                           "UVname"
                                                           +
                                                           rl)
                                                          (("2"
                                                            (rewrite
                                                             "det_perpR")
                                                            (("2"
                                                              (assert)
                                                              nil
                                                              nil))
                                                            nil))
                                                          nil))
                                                        nil))
                                                      nil))
                                                    nil))
                                                  nil))
                                                nil))
                                              nil)
                                             ("2"
                                              (case
                                               "det(sp,UV)*eps = sp*VT")
                                              (("1" (assertnil nil)
                                               ("2"
                                                (replace "UVname" + rl)
                                                (("2"
                                                  (hide-all-but 1)
                                                  (("2"
                                                    (typepred "eps")
                                                    (("2"
                                                      (grind)
                                                      nil
                                                      nil))
                                                    nil))
                                                  nil))
                                                nil))
                                              nil))
                                            nil))
                                          nil))
                                        nil))
                                      nil))
                                    nil)
                                   ("2"
                                    (replace "Gname" + rl)
                                    (("2"
                                      (assert)
                                      (("2"
                                        (replace "UVname" + rl)
                                        (("2"
                                          (rewrite "det_scal_left")
                                          (("2"
                                            (case "eps*eps = 1")
                                            (("1"
                                              (case
                                               "det(perpR(VT),VT) > 0")
                                              (("1" (assertnil nil)
                                               ("2"
                                                (rewrite "det_perpR")
                                                (("2"
                                                  (hide-all-but 1)
                                                  (("2"
                                                    (typepred
                                                     "sqv(perpR(VT))")
                                                    (("2"
                                                      (expand "sqv")
                                                      (("2"
                                                        (propax)
                                                        nil
                                                        nil))
                                                      nil))
                                                    nil))
                                                  nil))
                                                nil))
                                              nil)
                                             ("2"
                                              (typepred "eps")
                                              (("2" (assertnil nil))
                                              nil))
                                            nil))
                                          nil))
                                        nil))
                                      nil))
                                    nil)
                                   ("3"
                                    (replace "Hname" + rl)
                                    (("3"
                                      (assert)
                                      (("3"
                                        (lemma
                                         "line_solution_tangent_line")
                                        (("3"
                                          (inst?)
                                          (("3"
                                            (replace "hokie" - rl)
                                            (("3"
                                              (replace "hokie")
                                              (("3"
                                                (expand
                                                 "line_solution?")
                                                (("3"
                                                  (propax)
                                                  nil
                                                  nil))
                                                nil))
                                              nil))
                                            nil))
                                          nil))
                                        nil))
                                      nil))
                                    nil)
                                   ("4"
                                    (replace "Gname" + rl)
                                    (("4" (assertnil nil))
                                    nil))
                                  nil))
                                nil))
                              nil))
                            nil))
                          nil))
                        nil))
                      nil))
                    nil))
                  nil))
                nil))
              nil))
            nil)
           ("2" (case "det(v,tangent_line(sp,eps)) = 0")
            (("1" (lemma "parallel_det_0")
              (("1" (inst - "v" "tangent_line(sp,eps)")
                (("1" (assert)
                  (("1" (expand "parallel?")
                    (("1" (skosimp*)
                      (("1" (lemma "line_solution_tangent_line")
                        (("1" (inst - "eps" "sp")
                          (("1" (expand "line_solution?")
                            (("1" (flatten)
                              (("1"
                                (replace -3 2)
                                (("1"
                                  (hide-all-but (-1 2))
                                  (("1" (grind) nil nil))
                                  nil))
                                nil))
                              nil))
                            nil))
                          nil))
                        nil))
                      nil))
                    nil))
                  nil)
                 ("2" (flatten)
                  (("2" (replace -1)
                    (("2" (hide-all-but 2) (("2" (grind) nil nil))
                      nil))
                    nil))
                  nil))
                nil))
              nil)
             ("2" (assertnil nil))
            nil))
          nil))
        nil))
      nil))
    nil)
   ((horizontal_criterion? const-decl "bool" horizontal_criteria nil)
    (parallel? const-decl "bool" vectors_2D "vectors/")
    (alpha const-decl "{x: posreal | x < 1}" tangent_line nil)
    (beta const-decl "nnreal" tangent_line nil)
    (Q const-decl "Vect2" tangent_line nil)
    (Qs const-decl "Vect2" tangent_line nil)
    (sqrt_0 formula-decl nil sqrt "reals/")
    (comp_zero_x formula-decl nil vectors_2D "vectors/")
    (comp_zero_y formula-decl nil vectors_2D "vectors/")
    (parallel_det_0 formula-decl nil parallel_2D "vectors/")
    (sign_neg_clos application-judgement "Sign" sign "reals/")
    (nz_nzv application-judgement "Nz_vector" vectors_2D "vectors/")
    (* const-decl "Vector" vectors_2D "vectors/")
    (perpR const-decl "Vect2" perpendicular_2D "vectors/")
    (Nz_vector type-eq-decl nil vectors_2D "vectors/")
    (linear_functional_perp_signs_unique formula-decl nil
     linear_transformations_2D "vectors/")
    (perpR_nz application-judgement "Nz_vect2" perpendicular_2D
     "vectors/")
    (linear_functional? const-decl "bool" linear_transformations_2D
     "vectors/")
    (+ const-decl "Vector" vectors_2D "vectors/")
    (sq_nz_pos application-judgement "posreal" sq "reals/")
    (det_eq_0 formula-decl nil det_2D "vectors/")
    (line_solution? const-decl "bool" line_solutions nil)
    (sign_mult_clos application-judgement "Sign" sign "reals/")
    (nz_sqv_gt_0 application-judgement "posreal" vectors_2D "vectors/")
    (det_scal_left formula-decl nil det_2D "vectors/")
    (det_perpR formula-decl nil det_2D "vectors/")
    (dot_scal_right formula-decl nil vectors_2D "vectors/")
    (nz_norm_gt_0 application-judgement "posreal" vectors_2D
     "vectors/")
    (line_solution_det formula-decl nil line_solutions nil)
    (line_solution_tangent_line formula-decl nil tangent_line nil)
    (norm const-decl "nnreal" vectors_2D "vectors/")
    (* const-decl "real" vectors_2D "vectors/")
    (R const-decl "nnreal" horizontal_criteria nil)
    (det const-decl "real" det_2D "vectors/")
    (Nz_vect2 type-eq-decl nil vectors_2D "vectors/")
    (tangent_line const-decl "Nz_vect2" tangent_line nil)
    (Sign type-eq-decl nil sign "reals/")
    (Vect2 type-eq-decl nil vectors_2D_def "vectors/")
    (Vector type-eq-decl nil vectors_2D "vectors/")
    (sqv const-decl "nnreal" vectors_2D "vectors/")
    (sq const-decl "nonneg_real" sq "reals/")
    (Sp_vect2 type-eq-decl nil horizontal nil)
    (zero const-decl "Vector" vectors_2D "vectors/")
    (neg_neg formula-decl nil vectors_2D "vectors/")
    (sub_zero_right formula-decl nil vectors_2D "vectors/"))
   shostak))
 (horizontal_criterion_special_coordination 0
  (horizontal_criterion_special_coordination-1 nil 3470055284
   ("" (skeep)
    (("" (lemma "horizontal_criterion_independence")
      (("" (inst?)
        (("" (assert)
          (("" (inst + "eps")
            (("" (hide -3)
              (("" (lemma "horizontal_criterion_symmetric")
                (("" (inst - "eps" "sp" "vo-nvi")
                  (("" (case-replace "-(vo-nvi) = nvi-vo")
                    (("1" (hide -1)
                      (("1" (assert)
                        (("1" (hide -2)
                          (("1" (lemma "horizontal_criterion_rewrite")
                            (("1" (inst?)
                              (("1"
                                (replace -1)
                                (("1"
                                  (hide -1)
                                  (("1"
                                    (lemma
                                     "horizontal_criterion_rewrite")
                                    (("1"
                                      (inst?)
                                      (("1"
                                        (replace -1)
                                        (("1"
                                          (hide -1)
                                          (("1"
                                            (lemma
                                             "horizontal_criterion_rewrite")
                                            (("1"
                                              (inst?)
                                              (("1"
                                                (replace -1)
                                                (("1"
                                                  (hide -1)
                                                  (("1"
                                                    (name
                                                     "VT"
                                                     "tangent_line(sp,eps)")
                                                    (("1"
                                                      (replace -1)
                                                      (("1"
                                                        (hide -1)
                                                        (("1"
                                                          (grind)
                                                          nil
                                                          nil))
                                                        nil))
                                                      nil))
                                                    nil))
                                                  nil))
                                                nil))
                                              nil))
                                            nil))
                                          nil))
                                        nil))
                                      nil))
                                    nil))
                                  nil))
                                nil))
                              nil))
                            nil))
                          nil))
                        nil))
                      nil)
                     ("2" (hide-all-but 1) (("2" (grind) nil nil))
                      nil))
                    nil))
                  nil))
                nil))
              nil))
            nil))
          nil))
        nil))
      nil))
    nil)
   ((D formal-const-decl "posreal" horizontal_criterion_line nil)
    (posreal nonempty-type-eq-decl nil real_types nil)
    (> const-decl "bool" reals nil)
    (nonneg_real nonempty-type-eq-decl nil real_types nil)
    (>= const-decl "bool" reals nil)
    (bool nonempty-type-eq-decl nil booleans nil)
    (real nonempty-type-from-decl nil reals nil)
    (real_pred const-decl "[number_field -> boolean]" reals nil)
    (number_field nonempty-type-from-decl nil number_fields nil)
    (number_field_pred const-decl "[number -> boolean]" number_fields
     nil)
    (boolean nonempty-type-decl nil booleans nil)
    (number nonempty-type-decl nil numbers nil)
    (horizontal_criterion_independence formula-decl nil
     horizontal_criteria nil)
    (neg_sp application-judgement "Sp_vect2[D]"
     horizontal_criterion_line nil)
    (minus_real_is_real application-judgement "real" reals nil)
    (nz_sqv_gt_0 application-judgement "posreal" vectors_2D "vectors/")
    (sq_nz_pos application-judgement "posreal" sq "reals/")
    (real_le_is_total_order name-judgement "(total_order?[real])"
     real_props nil)
    (real_times_real_is_real application-judgement "real" reals nil)
    (real_minus_real_is_real application-judgement "real" reals nil)
    (real_plus_real_is_real application-judgement "real" reals nil)
    (det const-decl "real" det_2D "vectors/")
    (tangent_line const-decl "Nz_vect2" tangent_line nil)
    (Nz_vect2 type-eq-decl nil vectors_2D "vectors/")
    (zero const-decl "Vector" vectors_2D "vectors/")
    (horizontal_criterion_rewrite formula-decl nil
     horizontal_criterion_line nil)
    (- const-decl "Vector" vectors_2D "vectors/")
    (horizontal_criterion_symmetric formula-decl nil
     horizontal_criteria nil)
    (rational_pred const-decl "[real -> boolean]" rationals nil)
    (rational nonempty-type-from-decl nil rationals nil)
    (integer_pred const-decl "[rational -> boolean]" integers nil)
    (int nonempty-type-eq-decl nil integers nil)
    (/= const-decl "boolean" notequal nil)
    (nzint nonempty-type-eq-decl nil integers nil)
    (OR const-decl "[bool, bool -> bool]" booleans nil)
    (= const-decl "[T, T -> boolean]" equalities nil)
    (numfield nonempty-type-eq-decl nil number_fields nil)
    (- const-decl "[numfield -> numfield]" number_fields nil)
    (Sign type-eq-decl nil sign "reals/")
    (- const-decl "Vector" vectors_2D "vectors/")
    (Sp_vect2 type-eq-decl nil horizontal nil)
    (sq const-decl "nonneg_real" sq "reals/")
    (sqv const-decl "nnreal" vectors_2D "vectors/")
    (nnreal type-eq-decl nil real_types nil)
    (Vector type-eq-decl nil vectors_2D "vectors/")
    (Vect2 type-eq-decl nil vectors_2D_def "vectors/"))
   nil))
 (horizontal_criterion_dot_equality 0
  (horizontal_criterion_dot_equality-1 nil 3470051175
   ("" (skeep)
    (("" (lemma "tangent_line_solution")
      (("" (inst-cp - "eps" "sp" "nvo-vi")
        (("" (inst - "eps" "sp" "v")
          (("" (assert)
            (("" (expand "tangent_line?")
              (("" (skosimp*)
                (("" (lemma "det_add_left")
                  (("" (inst - "vi-nvo" "nvo-nvi" "v")
                    ((""
                      (case-replace "vi - nvo + (nvo - nvi) = vi-nvi")
                      (("1" (hide -1)
                        (("1" (replace -1)
                          (("1" (assert)
                            (("1" (lemma "det_scal_left")
                              (("1"
                                (inst - "-1" "nvo-vi" "v")
                                (("1"
                                  (assert)
                                  (("1"
                                    (case-replace "-(nvo-vi) = vi-nvo")
                                    (("1"
                                      (hide -1)
                                      (("1"
                                        (replace -1)
                                        (("1"
                                          (replace -3)
                                          (("1"
                                            (replace -4)
                                            (("1"
                                              (hide-all-but 1)
                                              (("1"
                                                (rewrite
                                                 "det_scal_left")
                                                (("1"
                                                  (rewrite
                                                   "det_scal_right")
                                                  (("1"
                                                    (assert)
                                                    nil
                                                    nil))
                                                  nil))
                                                nil))
                                              nil))
                                            nil))
                                          nil))
                                        nil))
                                      nil)
                                     ("2"
                                      (hide-all-but 1)
                                      (("2" (grind) nil nil))
                                      nil))
                                    nil))
                                  nil))
                                nil))
                              nil))
                            nil))
                          nil))
                        nil)
                       ("2" (hide-all-but 1) (("2" (grind) nil nil))
                        nil))
                      nil))
                    nil))
                  nil))
                nil))
              nil))
            nil))
          nil))
        nil))
      nil))
    nil)
   ((D formal-const-decl "posreal" horizontal_criterion_line nil)
    (posreal nonempty-type-eq-decl nil real_types nil)
    (> const-decl "bool" reals nil)
    (nonneg_real nonempty-type-eq-decl nil real_types nil)
    (>= const-decl "bool" reals nil)
    (bool nonempty-type-eq-decl nil booleans nil)
    (real nonempty-type-from-decl nil reals nil)
    (real_pred const-decl "[number_field -> boolean]" reals nil)
    (number_field nonempty-type-from-decl nil number_fields nil)
    (number_field_pred const-decl "[number -> boolean]" number_fields
     nil)
    (boolean nonempty-type-decl nil booleans nil)
    (number nonempty-type-decl nil numbers nil)
    (tangent_line_solution formula-decl nil tangent_line nil)
    (tangent_line? const-decl "bool" tangent_line nil)
    (det_add_left formula-decl nil det_2D "vectors/")
    (+ const-decl "Vector" vectors_2D "vectors/")
    (det_scal_left formula-decl nil det_2D "vectors/")
    (real_times_real_is_real application-judgement "real" reals nil)
    (scal_neg_1 formula-decl nil vectors_2D "vectors/")
    (real_minus_real_is_real application-judgement "real" reals nil)
    (minus_real_is_real application-judgement "real" reals nil)
    (sq_nz_pos application-judgement "posreal" sq "reals/")
    (nz_sqv_gt_0 application-judgement "posreal" vectors_2D "vectors/")
    (det_scal_right formula-decl nil det_2D "vectors/")
    (det_eq_0 formula-decl nil det_2D "vectors/")
    (nnreal_times_nnreal_is_nnreal application-judgement "nnreal"
     real_types nil)
    (zero const-decl "Vector" vectors_2D "vectors/")
    (Nz_vect2 type-eq-decl nil vectors_2D "vectors/")
    (tangent_line const-decl "Nz_vect2" tangent_line nil)
    (* const-decl "Vector" vectors_2D "vectors/")
    (- const-decl "Vector" vectors_2D "vectors/")
    (minus_odd_is_odd application-judgement "odd_int" integers nil)
    (real_plus_real_is_real application-judgement "real" reals nil)
    (- const-decl "Vector" vectors_2D "vectors/")
    (Sp_vect2 type-eq-decl nil horizontal nil)
    (sq const-decl "nonneg_real" sq "reals/")
    (sqv const-decl "nnreal" vectors_2D "vectors/")
    (nnreal type-eq-decl nil real_types nil)
    (Vector type-eq-decl nil vectors_2D "vectors/")
    (Vect2 type-eq-decl nil vectors_2D_def "vectors/")
    (Sign type-eq-decl nil sign "reals/")
    (- const-decl "[numfield -> numfield]" number_fields nil)
    (numfield nonempty-type-eq-decl nil number_fields nil)
    (= const-decl "[T, T -> boolean]" equalities nil)
    (OR const-decl "[bool, bool -> bool]" booleans nil)
    (nzint nonempty-type-eq-decl nil integers nil)
    (/= const-decl "boolean" notequal nil)
    (int nonempty-type-eq-decl nil integers nil)
    (integer_pred const-decl "[rational -> boolean]" integers nil)
    (rational nonempty-type-from-decl nil rationals nil)
    (rational_pred const-decl "[real -> boolean]" rationals nil))
   nil))
 (horizontal_criterion_line_invariance 0
  (horizontal_criterion_line_invariance-1 nil 3470051469
   ("" (skeep)
    (("" (lemma "horizontal_criterion_dot_equality")
      (("" (inst - "eps" "nvi" "nvo" "sp" "tangent_line(sp,eps)" "vi")
        (("" (lemma "line_solution_tangent_line")
          (("" (inst?)
            (("" (assert)
              (("" (lemma "horizontal_criterion_rewrite")
                (("" (inst?)
                  (("" (replace -1)
                    (("" (hide -1)
                      (("" (lemma "horizontal_criterion_rewrite")
                        (("" (inst?)
                          (("" (replace -1)
                            (("" (replace -3)
                              ((""
                                (assert)
                                ((""
                                  (ground)
                                  ((""
                                    (expand "line_solution?")
                                    ((""
                                      (flatten)
                                      ((""
                                        (hide-all-but (-5 -7 1))
                                        (("" (grind) nil nil))
                                        nil))
                                      nil))
                                    nil))
                                  nil))
                                nil))
                              nil))
                            nil))
                          nil))
                        nil))
                      nil))
                    nil))
                  nil))
                nil))
              nil))
            nil))
          nil))
        nil))
      nil))
    nil)
   ((horizontal_criterion_dot_equality formula-decl nil
     horizontal_criterion_line nil)
    (line_solution_tangent_line formula-decl nil tangent_line nil)
    (- const-decl "Vector" vectors_2D "vectors/")
    (nz_sqv_gt_0 application-judgement "posreal" vectors_2D "vectors/")
    (sq_nz_pos application-judgement "posreal" sq "reals/")
    (det const-decl "real" det_2D "vectors/")
    (real_plus_real_is_real application-judgement "real" reals nil)
    (real_minus_real_is_real application-judgement "real" reals nil)
    (line_solution? const-decl "bool" line_solutions nil)
    (real_le_is_total_order name-judgement "(total_order?[real])"
     real_props nil)
    (real_times_real_is_real application-judgement "real" reals nil)
    (horizontal_criterion_rewrite formula-decl nil
     horizontal_criterion_line nil)
    (tangent_line const-decl "Nz_vect2" tangent_line nil)
    (Nz_vect2 type-eq-decl nil vectors_2D "vectors/")
    (zero const-decl "Vector" vectors_2D "vectors/")
    (Sp_vect2 type-eq-decl nil horizontal nil)
    (D formal-const-decl "posreal" horizontal_criterion_line nil)
    (posreal nonempty-type-eq-decl nil real_types nil)
    (> const-decl "bool" reals nil)
    (sq const-decl "nonneg_real" sq "reals/")
    (nonneg_real nonempty-type-eq-decl nil real_types nil)
    (sqv const-decl "nnreal" vectors_2D "vectors/")
    (nnreal type-eq-decl nil real_types nil)
    (Vector type-eq-decl nil vectors_2D "vectors/")
    (>= const-decl "bool" reals nil)
    (Vect2 type-eq-decl nil vectors_2D_def "vectors/")
    (Sign type-eq-decl nil sign "reals/")
    (- const-decl "[numfield -> numfield]" number_fields nil)
    (numfield nonempty-type-eq-decl nil number_fields nil)
    (= const-decl "[T, T -> boolean]" equalities nil)
    (OR const-decl "[bool, bool -> bool]" booleans nil)
    (bool nonempty-type-eq-decl nil booleans nil)
    (nzint nonempty-type-eq-decl nil integers nil)
    (/= const-decl "boolean" notequal nil)
    (int nonempty-type-eq-decl nil integers nil)
    (integer_pred const-decl "[rational -> boolean]" integers nil)
    (rational nonempty-type-from-decl nil rationals nil)
    (rational_pred const-decl "[real -> boolean]" rationals nil)
    (real nonempty-type-from-decl nil reals nil)
    (real_pred const-decl "[number_field -> boolean]" reals nil)
    (number_field nonempty-type-from-decl nil number_fields nil)
    (number_field_pred const-decl "[number -> boolean]" number_fields
     nil)
    (boolean nonempty-type-decl nil booleans nil)
    (number nonempty-type-decl nil numbers nil))
   shostak))
 (horizontal_criterion_line_coordination 0
  (horizontal_criterion_line_coordination-1 nil 3470052030
   ("" (skeep)
    (("" (lemma "line_solution_meets_horizontal_criterion")
      (("" (inst - "eps" "-sp" "nvi-vo")
        (("" (assert)
          (("" (lemma "horizontal_criterion_special_coordination")
            (("" (inst - "eps" "nvi" "nvo" "sp" "vo")
              (("" (assertnil nil)) nil))
            nil))
          nil))
        nil))
      nil))
    nil)
   ((D formal-const-decl "posreal" horizontal_criterion_line nil)
    (posreal nonempty-type-eq-decl nil real_types nil)
    (> const-decl "bool" reals nil)
    (nonneg_real nonempty-type-eq-decl nil real_types nil)
    (>= const-decl "bool" reals nil)
    (bool nonempty-type-eq-decl nil booleans nil)
    (real nonempty-type-from-decl nil reals nil)
    (real_pred const-decl "[number_field -> boolean]" reals nil)
    (number_field nonempty-type-from-decl nil number_fields nil)
    (number_field_pred const-decl "[number -> boolean]" number_fields
     nil)
    (boolean nonempty-type-decl nil booleans nil)
    (number nonempty-type-decl nil numbers nil)
    (line_solution_meets_horizontal_criterion formula-decl nil
     line_solutions nil)
    (horizontal_criterion_special_coordination formula-decl nil
     horizontal_criterion_line nil)
    (- const-decl "Vector" vectors_2D "vectors/")
    (- const-decl "Vector" vectors_2D "vectors/")
    (Sp_vect2 type-eq-decl nil horizontal nil)
    (sq const-decl "nonneg_real" sq "reals/")
    (sqv const-decl "nnreal" vectors_2D "vectors/")
    (nnreal type-eq-decl nil real_types nil)
    (Vector type-eq-decl nil vectors_2D "vectors/")
    (Vect2 type-eq-decl nil vectors_2D_def "vectors/")
    (Sign type-eq-decl nil sign "reals/")
    (- const-decl "[numfield -> numfield]" number_fields nil)
    (numfield nonempty-type-eq-decl nil number_fields nil)
    (= const-decl "[T, T -> boolean]" equalities nil)
    (OR const-decl "[bool, bool -> bool]" booleans nil)
    (nzint nonempty-type-eq-decl nil integers nil)
    (/= const-decl "boolean" notequal nil)
    (int nonempty-type-eq-decl nil integers nil)
    (integer_pred const-decl "[rational -> boolean]" integers nil)
    (rational nonempty-type-from-decl nil rationals nil)
    (rational_pred const-decl "[real -> boolean]" rationals nil)
    (neg_sp application-judgement "Sp_vect2[D]"
     horizontal_criterion_line nil))
   shostak))
 (horizontal_criterion_ext_subset 0
  (horizontal_criterion_ext_subset-1 nil 3524407913
   ("" (skeep)
    (("" (expand "horizontal_criterion_ext?")
      (("" (ground)
        (("" (lemma "horizontal_criterion_rewrite")
          (("" (inst - "eps" "sp" _)
            (("" (inst-cp - "v")
              (("" (inst-cp - "nv")
                (("" (inst - "nv-(1/2)*v")
                  (("" (assert)
                    (("" (flatten)
                      (("" (assert)
                        (("" (split +)
                          (("1" (hide-all-but (-1 -3 1))
                            (("1"
                              (grind :exclude ("perpR" "tangent_line"))
                              nil nil))
                            nil)
                           ("2" (assert)
                            (("2" (hide-all-but (-2 -4 1))
                              (("2" (grind) nil nil)) nil))
                            nil))
                          nil))
                        nil))
                      nil))
                    nil))
                  nil))
                nil))
              nil))
            nil))
          nil))
        nil))
      nil))
    nil)
   ((horizontal_criterion_ext? const-decl "bool"
     horizontal_criterion_line nil)
    (horizontal_criterion_rewrite formula-decl nil
     horizontal_criterion_line nil)
    (posrat_div_posrat_is_posrat application-judgement "posrat"
     rationals nil)
    (/ const-decl "[numfield, nznum -> numfield]" number_fields nil)
    (nznum nonempty-type-eq-decl nil number_fields nil)
    (* const-decl "Vector" vectors_2D "vectors/")
    (- const-decl "Vector" vectors_2D "vectors/")
    (nz_sqv_gt_0 application-judgement "posreal" vectors_2D "vectors/")
    (sq_nz_pos application-judgement "posreal" sq "reals/")
    (real_minus_real_is_real application-judgement "real" reals nil)
    (real_plus_real_is_real application-judgement "real" reals nil)
    (det const-decl "real" det_2D "vectors/")
    (real_le_is_total_order name-judgement "(total_order?[real])"
     real_props nil)
    (real_times_real_is_real application-judgement "real" reals nil)
    (Sp_vect2 type-eq-decl nil horizontal nil)
    (D formal-const-decl "posreal" horizontal_criterion_line nil)
    (posreal nonempty-type-eq-decl nil real_types nil)
    (> const-decl "bool" reals nil)
    (sq const-decl "nonneg_real" sq "reals/")
    (nonneg_real nonempty-type-eq-decl nil real_types nil)
    (sqv const-decl "nnreal" vectors_2D "vectors/")
    (nnreal type-eq-decl nil real_types nil)
    (Vector type-eq-decl nil vectors_2D "vectors/")
    (>= const-decl "bool" reals nil)
    (Vect2 type-eq-decl nil vectors_2D_def "vectors/")
    (Sign type-eq-decl nil sign "reals/")
    (- const-decl "[numfield -> numfield]" number_fields nil)
    (numfield nonempty-type-eq-decl nil number_fields nil)
    (= const-decl "[T, T -> boolean]" equalities nil)
    (OR const-decl "[bool, bool -> bool]" booleans nil)
    (bool nonempty-type-eq-decl nil booleans nil)
    (nzint nonempty-type-eq-decl nil integers nil)
    (/= const-decl "boolean" notequal nil)
    (int nonempty-type-eq-decl nil integers nil)
    (integer_pred const-decl "[rational -> boolean]" integers nil)
    (rational nonempty-type-from-decl nil rationals nil)
    (rational_pred const-decl "[real -> boolean]" rationals nil)
    (real nonempty-type-from-decl nil reals nil)
    (real_pred const-decl "[number_field -> boolean]" reals nil)
    (number_field nonempty-type-from-decl nil number_fields nil)
    (number_field_pred const-decl "[number -> boolean]" number_fields
     nil)
    (boolean nonempty-type-decl nil booleans nil)
    (number nonempty-type-decl nil numbers nil))
   shostak))
 (horizontal_criterion_ext_restrict 0
  (horizontal_criterion_ext_restrict-1 nil 3524407031
   ("" (skeep)
    (("" (lemma "horizontal_criterion_independence")
      (("" (inst?)
        (("" (assert)
          (("" (expand "horizontal_criterion_ext?")
            (("" (lift-if)
              (("" (assert)
                (("" (ground)
                  (("1" (inst + "eps"nil nil)
                   ("2" (inst + "eps"nil nil)
                   ("3" (inst + "-eps"nil nil))
                  nil))
                nil))
              nil))
            nil))
          nil))
        nil))
      nil))
    nil)
   ((D formal-const-decl "posreal" horizontal_criterion_line nil)
    (posreal nonempty-type-eq-decl nil real_types nil)
    (> const-decl "bool" reals nil)
    (nonneg_real nonempty-type-eq-decl nil real_types nil)
    (>= const-decl "bool" reals nil)
    (bool nonempty-type-eq-decl nil booleans nil)
    (real nonempty-type-from-decl nil reals nil)
    (real_pred const-decl "[number_field -> boolean]" reals nil)
    (number_field nonempty-type-from-decl nil number_fields nil)
    (number_field_pred const-decl "[number -> boolean]" number_fields
     nil)
    (boolean nonempty-type-decl nil booleans nil)
    (number nonempty-type-decl nil numbers nil)
    (horizontal_criterion_independence formula-decl nil
     horizontal_criteria nil)
    (sign_neg_clos application-judgement "Sign" sign "reals/")
    (rational_pred const-decl "[real -> boolean]" rationals nil)
    (rational nonempty-type-from-decl nil rationals nil)
    (integer_pred const-decl "[rational -> boolean]" integers nil)
    (int nonempty-type-eq-decl nil integers nil)
    (/= const-decl "boolean" notequal nil)
    (nzint nonempty-type-eq-decl nil integers nil)
    (OR const-decl "[bool, bool -> bool]" booleans nil)
    (= const-decl "[T, T -> boolean]" equalities nil)
    (numfield nonempty-type-eq-decl nil number_fields nil)
    (- const-decl "[numfield -> numfield]" number_fields nil)
    (Sign type-eq-decl nil sign "reals/")
    (horizontal_criterion_ext? const-decl "bool"
     horizontal_criterion_line nil)
    (Sp_vect2 type-eq-decl nil horizontal nil)
    (sq const-decl "nonneg_real" sq "reals/")
    (sqv const-decl "nnreal" vectors_2D "vectors/")
    (nnreal type-eq-decl nil real_types nil)
    (Vector type-eq-decl nil vectors_2D "vectors/")
    (Vect2 type-eq-decl nil vectors_2D_def "vectors/"))
   shostak))
 (horizontal_criterion_ext_restrict_conflict 0
  (horizontal_criterion_ext_restrict_conflict-3 nil 3529935975
   ("" (skeep)
    (("" (lemma "horizontal_criterion_independence")
      (("" (inst?)
        (("" (assert)
          (("" (expand "horizontal_criterion_ext?")
            (("" (lift-if)
              (("" (assert)
                (("" (ground)
                  (("1" (inst + "eps"nil nil)
                   ("2" (inst + "eps"nil nil)
                   ("3" (inst + "-eps"nil nil))
                  nil))
                nil))
              nil))
            nil))
          nil))
        nil))
      nil))
    nil)
   ((D formal-const-decl "posreal" horizontal_criterion_line nil)
    (posreal nonempty-type-eq-decl nil real_types nil)
    (> const-decl "bool" reals nil)
    (nonneg_real nonempty-type-eq-decl nil real_types nil)
    (>= const-decl "bool" reals nil)
    (bool nonempty-type-eq-decl nil booleans nil)
    (real nonempty-type-from-decl nil reals nil)
    (real_pred const-decl "[number_field -> boolean]" reals nil)
    (number_field nonempty-type-from-decl nil number_fields nil)
    (number_field_pred const-decl "[number -> boolean]" number_fields
     nil)
    (boolean nonempty-type-decl nil booleans nil)
    (number nonempty-type-decl nil numbers nil)
    (horizontal_criterion_independence formula-decl nil
     horizontal_criteria nil)
    (sign_neg_clos application-judgement "Sign" sign "reals/")
    (rational_pred const-decl "[real -> boolean]" rationals nil)
    (rational nonempty-type-from-decl nil rationals nil)
    (integer_pred const-decl "[rational -> boolean]" integers nil)
    (int nonempty-type-eq-decl nil integers nil)
    (/= const-decl "boolean" notequal nil)
    (nzint nonempty-type-eq-decl nil integers nil)
    (OR const-decl "[bool, bool -> bool]" booleans nil)
    (= const-decl "[T, T -> boolean]" equalities nil)
    (numfield nonempty-type-eq-decl nil number_fields nil)
    (- const-decl "[numfield -> numfield]" number_fields nil)
    (Sign type-eq-decl nil sign "reals/")
    (horizontal_criterion_ext? const-decl "bool"
     horizontal_criterion_line nil)
    (Sp_vect2 type-eq-decl nil horizontal nil)
    (sq const-decl "nonneg_real" sq "reals/")
    (sqv const-decl "nnreal" vectors_2D "vectors/")
    (nnreal type-eq-decl nil real_types nil)
    (Vector type-eq-decl nil vectors_2D "vectors/")
    (Vect2 type-eq-decl nil vectors_2D_def "vectors/"))
   nil)
  (horizontal_criterion_ext_restrict_conflict-2 nil 3529935901
   ("" (skeep)
    (("" (lemma "horizontal_criterion_independence")
      (("" (inst?)
        (("" (assert)
          (("" (expand "horizontal_criterion_ext?")
            (("" (lift-if)
              (("" (assert)
                (("" (ground)
                  (("1" (inst + "eps"nil nil)
                   ("2" (inst + "eps"nil nil)
                   ("3" (inst + "-eps"nil nil))
                  nil))
                nil))
              nil))
            nil))
          nil))
        nil))
      nil))
    nil)
   ((Vect2 type-eq-decl nil vectors_2D_def "vectors/")
    (Vector type-eq-decl nil vectors_2D "vectors/")
    (sqv const-decl "nnreal" vectors_2D "vectors/")
    (sq const-decl "nonneg_real" sq "reals/")
    (Sp_vect2 type-eq-decl nil horizontal nil)
    (Sign type-eq-decl nil sign "reals/")
    (sign_neg_clos application-judgement "Sign" sign "reals/")
    (horizontal_criterion_independence formula-decl nil
     horizontal_criteria nil))
   nil)
  (horizontal_criterion_ext_restrict_conflict-1 nil 3524407122
   ("" (skeep)
    (("" (lemma "horizontal_criterion_independence")
      (("" (inst - "sp" "v")
        (("" (flatten)
          (("" (assert)
            (("" (hide -1)
              (("" (inst + "eps")
                (("" (expand "horizontal_criterion_ext?")
                  (("" (assertnil nil)) nil))
                nil))
              nil))
            nil))
          nil))
        nil))
      nil))
    nil)
   ((horizontal_criterion_independence formula-decl nil
     horizontal_criteria nil)
    (Sign type-eq-decl nil sign "reals/")
    (Sp_vect2 type-eq-decl nil horizontal nil)
    (sq const-decl "nonneg_real" sq "reals/")
    (sqv const-decl "nnreal" vectors_2D "vectors/")
    (Vector type-eq-decl nil vectors_2D "vectors/")
    (Vect2 type-eq-decl nil vectors_2D_def "vectors/"))
   shostak))
 (horizontal_criterion_ext_independence 0
  (horizontal_criterion_ext_independence-1 nil 3524407240
   ("" (skeep)
    (("" (lemma "horizontal_criterion_independence")
      (("" (inst - "sp" "nv")
        (("" (assert)
          (("" (lemma "horizontal_criterion_ext_subset")
            (("" (inst - "eps" "nv" "sp" "v")
              (("" (assert) (("" (inst + "eps"nil nil)) nil)) nil))
            nil))
          nil))
        nil))
      nil))
    nil)
   ((D formal-const-decl "posreal" horizontal_criterion_line nil)
    (posreal nonempty-type-eq-decl nil real_types nil)
    (> const-decl "bool" reals nil)
    (nonneg_real nonempty-type-eq-decl nil real_types nil)
    (>= const-decl "bool" reals nil)
    (bool nonempty-type-eq-decl nil booleans nil)
    (real nonempty-type-from-decl nil reals nil)
    (real_pred const-decl "[number_field -> boolean]" reals nil)
    (number_field nonempty-type-from-decl nil number_fields nil)
    (number_field_pred const-decl "[number -> boolean]" number_fields
     nil)
    (boolean nonempty-type-decl nil booleans nil)
    (number nonempty-type-decl nil numbers nil)
    (horizontal_criterion_independence formula-decl nil
     horizontal_criteria nil)
    (rational_pred const-decl "[real -> boolean]" rationals nil)
    (rational nonempty-type-from-decl nil rationals nil)
    (integer_pred const-decl "[rational -> boolean]" integers nil)
    (int nonempty-type-eq-decl nil integers nil)
    (/= const-decl "boolean" notequal nil)
    (nzint nonempty-type-eq-decl nil integers nil)
    (OR const-decl "[bool, bool -> bool]" booleans nil)
    (= const-decl "[T, T -> boolean]" equalities nil)
    (numfield nonempty-type-eq-decl nil number_fields nil)
    (- const-decl "[numfield -> numfield]" number_fields nil)
    (Sign type-eq-decl nil sign "reals/")
    (horizontal_criterion_ext_subset formula-decl nil
     horizontal_criterion_line nil)
    (Sp_vect2 type-eq-decl nil horizontal nil)
    (sq const-decl "nonneg_real" sq "reals/")
    (sqv const-decl "nnreal" vectors_2D "vectors/")
    (nnreal type-eq-decl nil real_types nil)
    (Vector type-eq-decl nil vectors_2D "vectors/")
    (Vect2 type-eq-decl nil vectors_2D_def "vectors/"))
   shostak))
 (horizontal_criterion_ext_coordinated 0
  (horizontal_criterion_ext_coordinated-2 nil 3530265833
   ("" (skeep)
    (("" (lemma "horizontal_criterion_independence")
      (("" (inst - "sp" "vo-vi")
        (("" (ground)
          (("1" (expand "horizontal_criterion_ext?")
            (("1" (split -)
              (("1" (flatten)
                (("1" (lemma "horizontal_criterion_symmetric")
                  (("1" (inst-cp - "eps" "sp" "vo-vi")
                    (("1" (inst - "eps" "sp" "-(vo-vi)")
                      (("1" (assert)
                        (("1" (case "-(vo-vi) = vi-vo")
                          (("1" (replace -1)
                            (("1" (assert)
                              (("1"
                                (lemma
                                 "horizontal_criterion_independence")
                                (("1"
                                  (inst - "sp" "nvo-nvi")
                                  (("1"
                                    (hide -3)
                                    (("1"
                                      (flatten)
                                      (("1"
                                        (assert)
                                        (("1"
                                          (hide -1)
                                          (("1"
                                            (inst + "eps")
                                            (("1"
                                              (hide-all-but
                                               (-3 -4 -6 1))
                                              (("1"
                                                (rewrite
                                                 "horizontal_criterion_rewrite")
                                                (("1"
                                                  (rewrite
                                                   "horizontal_criterion_rewrite")
                                                  (("1"
                                                    (rewrite
                                                     "horizontal_criterion_rewrite")
                                                    (("1"
                                                      (rewrite
                                                       "horizontal_criterion_rewrite")
                                                      (("1"
                                                        (flatten)
                                                        (("1"
                                                          (lemma
                                                           "tangent_line_asymm")
                                                          (("1"
                                                            (inst?)
                                                            (("1"
                                                              (replace
                                                               -1)
                                                              (("1"
                                                                (hide
                                                                 -1)
                                                                (("1"
                                                                  (split
                                                                   +)
                                                                  (("1"
                                                                    (hide-all-but
                                                                     (-1
                                                                      -3
                                                                      -5
                                                                      +))
                                                                    (("1"
                                                                      (grind
                                                                       :exclude
                                                                       "tangent_line")
                                                                      nil
                                                                      nil))
                                                                    nil)
                                                                   ("2"
                                                                    (hide-all-but
                                                                     (-2
                                                                      -4
                                                                      -6
                                                                      +))
                                                                    (("2"
                                                                      (grind)
                                                                      nil
                                                                      nil))
                                                                    nil))
                                                                  nil))
                                                                nil))
                                                              nil))
                                                            nil))
                                                          nil))
                                                        nil))
                                                      nil))
                                                    nil))
                                                  nil))
                                                nil))
                                              nil))
                                            nil))
                                          nil))
                                        nil))
                                      nil))
                                    nil))
                                  nil))
                                nil))
                              nil))
                            nil)
                           ("2" (hide-all-but 1)
                            (("2" (grind) nil nil)) nil))
                          nil))
                        nil))
                      nil))
                    nil))
                  nil))
                nil)
               ("2" (flatten)
                (("2" (lemma "horizontal_criterion_symmetric")
                  (("2" (inst?)
                    (("2" (case "-(vo-vi) = vi-vo")
                      (("1" (replace -1)
                        (("1" (assert)
                          (("1" (split -)
                            (("1" (flatten)
                              (("1"
                                (assert)
                                (("1"
                                  (lemma
                                   "horizontal_criterion_symmetric")
                                  (("1"
                                    (inst - "eps" "sp" "vi-vo")
                                    (("1"
                                      (case "-(vi-vo) = vo-vi")
                                      (("1"
                                        (replace -1)
                                        (("1"
                                          (replace -2 :dir rl)
                                          (("1"
                                            (lemma
                                             "horizontal_criterion_symmetric")
                                            (("1"
                                              (inst
                                               -
                                               "-eps"
                                               "sp"
                                               "vo-vi")
                                              (("1"
                                                (case
                                                 "-(vo-vi) = vi-vo")
                                                (("1"
                                                  (replace -1)
                                                  (("1"
                                                    (replace
                                                     -2
                                                     :dir
                                                     rl)
                                                    (("1"
                                                      (assert)
                                                      (("1"
                                                        (replace -5)
                                                        (("1"
                                                          (hide
                                                           (-2 -4))
                                                          (("1"
                                                            (skosimp*)
                                                            (("1"
                                                              (case
                                                               "eps!1 = eps OR eps!1 = -eps")
                                                              (("1"
                                                                (assert)
                                                                (("1"
                                                                  (replace
                                                                   -1)
                                                                  (("1"
                                                                    (lemma
                                                                     "horizontal_criterion_symmetric")
                                                                    (("1"
                                                                      (inst
                                                                       -
                                                                       "eps"
                                                                       "sp"
                                                                       "vo-nvi")
                                                                      (("1"
                                                                        (case
                                                                         "-(vo-nvi) = nvi-vo")
                                                                        (("1"
                                                                          (replace
                                                                           -1)
                                                                          (("1"
                                                                            (replace
                                                                             -2
                                                                             :dir
                                                                             rl)
                                                                            (("1"
                                                                              (hide
                                                                               (-1
                                                                                -2))
                                                                              (("1"
                                                                                (lemma
                                                                                 "horizontal_criterion_independence")
                                                                                (("1"
                                                                                  (inst
                                                                                   -
                                                                                   "sp"
                                                                                   "nvo-nvi")
                                                                                  (("1"
                                                                                    (assert)
                                                                                    (("1"
                                                                                      (inst
                                                                                       +
                                                                                       "eps")
                                                                                      (("1"
                                                                                        (hide-all-but
                                                                                         (-4
                                                                                          -5
                                                                                          -7
                                                                                          1))
                                                                                        (("1"
                                                                                          (rewrite
                                                                                           "horizontal_criterion_rewrite")
                                                                                          (("1"
                                                                                            (rewrite
                                                                                             "horizontal_criterion_rewrite")
                                                                                            (("1"
                                                                                              (rewrite
                                                                                               "horizontal_criterion_rewrite")
                                                                                              (("1"
                                                                                                (rewrite
                                                                                                 "horizontal_criterion_rewrite")
                                                                                                (("1"
                                                                                                  (flatten)
                                                                                                  (("1"
                                                                                                    (split
                                                                                                     +)
                                                                                                    (("1"
                                                                                                      (hide-all-but
                                                                                                       (-1
                                                                                                        -3
                                                                                                        -5
                                                                                                        +))
                                                                                                      (("1"
                                                                                                        (grind
                                                                                                         :exclude
                                                                                                         "tangent_line")
                                                                                                        nil
                                                                                                        nil))
                                                                                                      nil)
                                                                                                     ("2"
                                                                                                      (hide-all-but
                                                                                                       (-2
                                                                                                        -4
                                                                                                        -6
                                                                                                        +))
                                                                                                      (("2"
                                                                                                        (grind)
                                                                                                        nil
                                                                                                        nil))
                                                                                                      nil))
                                                                                                    nil))
                                                                                                  nil))
                                                                                                nil))
                                                                                              nil))
                                                                                            nil))
                                                                                          nil))
                                                                                        nil))
                                                                                      nil))
                                                                                    nil))
                                                                                  nil))
                                                                                nil))
                                                                              nil))
                                                                            nil))
                                                                          nil)
                                                                         ("2"
                                                                          (hide-all-but
                                                                           1)
                                                                          (("2"
                                                                            (grind)
                                                                            nil
                                                                            nil))
                                                                          nil))
                                                                        nil))
                                                                      nil))
                                                                    nil))
                                                                  nil))
                                                                nil)
                                                               ("2"
                                                                (hide-all-but
                                                                 1)
                                                                (("2"
                                                                  (typepred
                                                                   "eps!1")
                                                                  (("2"
                                                                    (typepred
                                                                     "eps")
                                                                    (("2"
                                                                      (ground)
                                                                      nil
                                                                      nil))
                                                                    nil))
                                                                  nil))
                                                                nil))
                                                              nil))
                                                            nil))
                                                          nil))
                                                        nil))
                                                      nil))
                                                    nil))
                                                  nil)
                                                 ("2"
                                                  (propax)
                                                  nil
                                                  nil))
                                                nil))
                                              nil))
                                            nil))
                                          nil))
                                        nil)
                                       ("2"
                                        (hide-all-but 1)
                                        (("2" (grind) nil nil))
                                        nil))
                                      nil))
                                    nil))
                                  nil))
                                nil))
                              nil)
                             ("2" (flatten)
                              (("2"
                                (case "-(vi-vo) = vo-vi")
                                (("1"
                                  (lemma
                                   "horizontal_criterion_symmetric")
                                  (("1"
                                    (inst - "eps" "sp" "vi-vo")
                                    (("1"
                                      (replace -1 :dir rl)
                                      (("1"
                                        (assert)
                                        (("1"
                                          (lemma
                                           "horizontal_criterion_symmetric")
                                          (("1"
                                            (inst
                                             -
                                             "-eps"
                                             "sp"
                                             "vo-vi")
                                            (("1"
                                              (assert)
                                              (("1"
                                                (flatten)
                                                (("1"
                                                  (assert)
                                                  (("1"
                                                    (lemma
                                                     "horizontal_criterion_symmetric")
                                                    (("1"
                                                      (inst
                                                       -
                                                       "eps"
                                                       "-sp"
                                                       "nvi - vo - (1 / 2) * (vi - vo)")
                                                      (("1"
                                                        (assert)
                                                        (("1"
                                                          (case
                                                           "NOT -(nvi - vo - (1 / 2) * (vi - vo)) = vo-nvi - (1/2)*(vo-vi)")
                                                          (("1"
                                                            (hide-all-but
                                                             1)
                                                            (("1"
                                                              (grind)
                                                              nil
                                                              nil))
                                                            nil)
                                                           ("2"
                                                            (replace
                                                             -1)
                                                            (("2"
                                                              (name
                                                               "ww"
                                                               "vo - nvi - (1 / 2) * (vo - vi)")
                                                              (("2"
                                                                (name
                                                                 "vv"
                                                                 "nvo - vi - (1 / 2) * (vo - vi)")
                                                                (("2"
                                                                  (case
                                                                   "NOT ww+vv = nvo-nvi")
                                                                  (("1"
                                                                    (hide-all-but
                                                                     1)
                                                                    (("1"
                                                                      (expand
                                                                       "vv")
                                                                      (("1"
                                                                        (expand
                                                                         "ww")
                                                                        (("1"
                                                                          (grind)
                                                                          nil
                                                                          nil))
                                                                        nil))
                                                                      nil))
                                                                    nil)
                                                                   ("2"
                                                                    (replace
                                                                     -2)
                                                                    (("2"
                                                                      (replace
                                                                       -3)
                                                                      (("2"
                                                                        (replace
                                                                         -1
                                                                         :dir
                                                                         rl)
                                                                        (("2"
                                                                          (hide-all-but
                                                                           (-5
                                                                            -10
                                                                            -15))
                                                                          (("2"
                                                                            (lemma
                                                                             "horizontal_criterion_independence")
                                                                            (("2"
                                                                              (inst?)
                                                                              (("2"
                                                                                (assert)
                                                                                (("2"
                                                                                  (inst
                                                                                   +
                                                                                   "eps")
                                                                                  (("2"
                                                                                    (hide
                                                                                     -3)
                                                                                    (("2"
                                                                                      (rewrite
                                                                                       "horizontal_criterion_rewrite")
                                                                                      (("2"
                                                                                        (rewrite
                                                                                         "horizontal_criterion_rewrite")
                                                                                        (("2"
                                                                                          (rewrite
                                                                                           "horizontal_criterion_rewrite")
                                                                                          (("2"
                                                                                            (flatten)
                                                                                            (("2"
                                                                                              (split)
                                                                                              (("1"
                                                                                                (hide
                                                                                                 (-2
                                                                                                  -4))
                                                                                                (("1"
                                                                                                  (grind
                                                                                                   :exclude
                                                                                                   "tangent_line")
                                                                                                  nil
                                                                                                  nil))
                                                                                                nil)
                                                                                               ("2"
                                                                                                (hide
                                                                                                 (-1
                                                                                                  -3))
                                                                                                (("2"
                                                                                                  (grind)
                                                                                                  nil
                                                                                                  nil))
                                                                                                nil))
                                                                                              nil))
                                                                                            nil))
                                                                                          nil))
                                                                                        nil))
                                                                                      nil))
                                                                                    nil))
                                                                                  nil))
                                                                                nil))
                                                                              nil))
                                                                            nil))
                                                                          nil))
                                                                        nil))
                                                                      nil))
                                                                    nil))
                                                                  nil))
                                                                nil))
                                                              nil))
                                                            nil))
                                                          nil))
                                                        nil))
                                                      nil))
                                                    nil))
                                                  nil))
                                                nil))
                                              nil))
                                            nil))
                                          nil))
                                        nil))
                                      nil))
                                    nil))
                                  nil)
                                 ("2"
                                  (hide-all-but 1)
                                  (("2" (grind) nil nil))
                                  nil))
                                nil))
                              nil))
                            nil))
                          nil))
                        nil)
                       ("2" (hide-all-but 1) (("2" (grind) nil nil))
                        nil))
                      nil))
                    nil))
                  nil))
                nil))
              nil))
            nil)
           ("2" (expand "horizontal_criterion_ext?")
            (("2" (inst-cp + "eps")
              (("2" (inst-cp + "-eps")
                (("2" (assert)
                  (("2" (lemma "horizontal_criterion_symmetric")
                    (("2" (inst - "eps" "sp" "vo-vi")
                      (("2" (lemma "horizontal_criterion_symmetric")
                        (("2" (inst - "-eps" "sp" "vo-vi")
                          (("2" (case "-(vo-vi) = vi-vo")
                            (("1" (replaces -1)
                              (("1"
                                (replace -1 :dir rl)
                                (("1"
                                  (replace -2 :dir rl)
                                  (("1"
                                    (assert)
                                    (("1"
                                      (lemma
                                       "horizontal_criterion_coordination")
                                      (("1"
                                        (inst
                                         -
                                         "eps"
                                         "nvi"
                                         "nvo"
                                         "sp"
                                         "vi"
                                         "vo")
                                        (("1" (assertnil nil))
                                        nil))
                                      nil))
                                    nil))
                                  nil))
                                nil))
                              nil)
                             ("2" (hide-all-but 1)
                              (("2" (grind) nil nil)) nil))
                            nil))
                          nil))
                        nil))
                      nil))
                    nil))
                  nil))
                nil))
              nil))
            nil))
          nil))
        nil))
      nil))
    nil)
   ((D formal-const-decl "posreal" horizontal_criterion_line nil)
    (posreal nonempty-type-eq-decl nil real_types nil)
    (> const-decl "bool" reals nil)
    (nonneg_real nonempty-type-eq-decl nil real_types nil)
    (>= const-decl "bool" reals nil)
    (bool nonempty-type-eq-decl nil booleans nil)
    (real nonempty-type-from-decl nil reals nil)
    (real_pred const-decl "[number_field -> boolean]" reals nil)
    (number_field nonempty-type-from-decl nil number_fields nil)
    (number_field_pred const-decl "[number -> boolean]" number_fields
     nil)
    (boolean nonempty-type-decl nil booleans nil)
    (number nonempty-type-decl nil numbers nil)
    (horizontal_criterion_independence formula-decl nil
     horizontal_criteria nil)
    (neg_sp application-judgement "Sp_vect2[D]"
     horizontal_criterion_line nil)
    (horizontal_criterion_symmetric formula-decl nil
     horizontal_criteria nil)
    (- const-decl "Vector" vectors_2D "vectors/")
    (tangent_line_asymm formula-decl nil tangent_line nil)
    (nz_sqv_gt_0 application-judgement "posreal" vectors_2D "vectors/")
    (sq_nz_pos application-judgement "posreal" sq "reals/")
    (real_minus_real_is_real application-judgement "real" reals nil)
    (real_plus_real_is_real application-judgement "real" reals nil)
    (neg_nzv application-judgement "Nz_vector" vectors_2D "vectors/")
    (minus_real_is_real application-judgement "real" reals nil)
    (det const-decl "real" det_2D "vectors/")
    (* const-decl "Vector" vectors_2D "vectors/")
    (real_le_is_total_order name-judgement "(total_order?[real])"
     real_props nil)
    (real_times_real_is_real application-judgement "real" reals nil)
    (horizontal_criterion_rewrite formula-decl nil
     horizontal_criterion_line nil)
    (neg_neg formula-decl nil vectors_2D "vectors/")
    (Sign type-eq-decl nil sign "reals/")
    (- const-decl "[numfield -> numfield]" number_fields nil)
    (numfield nonempty-type-eq-decl nil number_fields nil)
    (= const-decl "[T, T -> boolean]" equalities nil)
    (OR const-decl "[bool, bool -> bool]" booleans nil)
    (nzint nonempty-type-eq-decl nil integers nil)
    (/= const-decl "boolean" notequal nil)
    (int nonempty-type-eq-decl nil integers nil)
    (integer_pred const-decl "[rational -> boolean]" integers nil)
    (rational nonempty-type-from-decl nil rationals nil)
    (rational_pred const-decl "[real -> boolean]" rationals nil)
    (sign_neg_clos application-judgement "Sign" sign "reals/")
    (posrat_div_posrat_is_posrat application-judgement "posrat"
     rationals nil)
    (/ const-decl "[numfield, nznum -> numfield]" number_fields nil)
    (nznum nonempty-type-eq-decl nil number_fields nil)
    (+ const-decl "Vector" vectors_2D "vectors/")
    (vv skolem-const-decl "Vector" horizontal_criterion_line nil)
    (ww skolem-const-decl "Vector" horizontal_criterion_line nil)
    (NOT const-decl "[bool -> bool]" booleans nil)
    (minus_odd_is_odd application-judgement "odd_int" integers nil)
    (horizontal_criterion_ext? const-decl "bool"
     horizontal_criterion_line nil)
    (horizontal_criterion_coordination formula-decl nil
     horizontal_criteria nil)
    (- const-decl "Vector" vectors_2D "vectors/")
    (Sp_vect2 type-eq-decl nil horizontal nil)
    (sq const-decl "nonneg_real" sq "reals/")
    (sqv const-decl "nnreal" vectors_2D "vectors/")
    (nnreal type-eq-decl nil real_types nil)
    (Vector type-eq-decl nil vectors_2D "vectors/")
    (Vect2 type-eq-decl nil vectors_2D_def "vectors/"))
   nil)
  (horizontal_criterion_ext_coordinated-1 nil 3524409185
   ("" (lemma "horizontal_criterion_ext_coordinated_criterion")
    (("" (skeep)
      (("" (inst - "eps" "nvi" "nvo" "sp" "vi" "vo")
        (("" (assert)
          (("" (lemma "horizontal_criterion_independence")
            (("" (inst - "sp" "nvo-nvi")
              (("" (assert) (("" (inst + "eps"nil nil)) nil)) nil))
            nil))
          nil))
        nil))
      nil))
    nil)
   ((horizontal_criterion_independence formula-decl nil
     horizontal_criteria nil)
    (Sp_vect2 type-eq-decl nil horizontal nil)
    (sq const-decl "nonneg_real" sq "reals/")
    (sqv const-decl "nnreal" vectors_2D "vectors/")
    (Vector type-eq-decl nil vectors_2D "vectors/")
    (Vect2 type-eq-decl nil vectors_2D_def "vectors/")
    (Sign type-eq-decl nil sign "reals/"))
   shostak))
 (horizontal_criterion_ext_sum_closed 0
  (horizontal_criterion_ext_sum_closed-1 nil 3525080681
   ("" (skeep)
    (("" (expand "horizontal_criterion_ext?")
      (("" (split +)
        (("1" (flatten)
          (("1" (assert)
            (("1" (rewrite "horizontal_criterion_rewrite")
              (("1" (rewrite "horizontal_criterion_rewrite")
                (("1" (rewrite "horizontal_criterion_rewrite")
                  (("1" (rewrite "horizontal_criterion_rewrite")
                    (("1" (flatten)
                      (("1" (split +)
                        (("1" (hide-all-but (-1 -3 -5 +))
                          (("1" (grind :exclude "tangent_line"nil
                            nil))
                          nil)
                         ("2" (hide-all-but (-2 -4 -6 +))
                          (("2" (grind) nil nil)) nil))
                        nil))
                      nil))
                    nil))
                  nil))
                nil))
              nil))
            nil))
          nil)
         ("2" (flatten)
          (("2" (assert)
            (("2" (split +)
              (("1" (flatten)
                (("1" (replace -1)
                  (("1" (hide-all-but (-2 -3 1))
                    (("1" (rewrite "horizontal_criterion_rewrite")
                      (("1" (rewrite "horizontal_criterion_rewrite")
                        (("1" (rewrite "horizontal_criterion_rewrite")
                          (("1" (flatten)
                            (("1" (split +)
                              (("1"
                                (hide-all-but (-1 -3 +))
                                (("1"
                                  (grind :exclude "tangent_line")
                                  nil
                                  nil))
                                nil)
                               ("2"
                                (hide-all-but (-2 -4 +))
                                (("2" (grind) nil nil))
                                nil))
                              nil))
                            nil))
                          nil))
                        nil))
                      nil))
                    nil))
                  nil))
                nil)
               ("2" (flatten)
                (("2" (assert)
                  (("2" (flatten)
                    (("2" (split +)
                      (("1" (hide-all-but (-2 -4 1))
                        (("1" (rewrite "horizontal_criterion_rewrite")
                          (("1"
                            (rewrite "horizontal_criterion_rewrite")
                            (("1"
                              (rewrite "horizontal_criterion_rewrite")
                              (("1"
                                (flatten)
                                (("1"
                                  (split +)
                                  (("1"
                                    (hide-all-but (-1 -3 +))
                                    (("1"
                                      (grind :exclude "tangent_line")
                                      nil
                                      nil))
                                    nil)
                                   ("2"
                                    (hide-all-but (-2 -4 +))
                                    (("2" (grind) nil nil))
                                    nil))
                                  nil))
                                nil))
                              nil))
                            nil))
                          nil))
                        nil)
                       ("2" (hide-all-but (-3 -4 1))
                        (("2" (rewrite "horizontal_criterion_rewrite")
                          (("2"
                            (rewrite "horizontal_criterion_rewrite")
                            (("2"
                              (rewrite "horizontal_criterion_rewrite")
                              (("2"
                                (flatten)
                                (("2"
                                  (split +)
                                  (("1"
                                    (hide-all-but (-1 -3 +))
                                    (("1"
                                      (grind :exclude "tangent_line")
                                      nil
                                      nil))
                                    nil)
                                   ("2"
                                    (hide-all-but (-2 -4 +))
                                    (("2" (grind) nil nil))
                                    nil))
                                  nil))
                                nil))
                              nil))
                            nil))
                          nil))
                        nil))
                      nil))
                    nil))
                  nil))
                nil))
              nil))
            nil))
          nil))
        nil))
      nil))
    nil)
   ((horizontal_criterion_ext? const-decl "bool"
     horizontal_criterion_line nil)
    (sign_neg_clos application-judgement "Sign" sign "reals/")
    (horizontal_criterion_rewrite formula-decl nil
     horizontal_criterion_line nil)
    (number nonempty-type-decl nil numbers nil)
    (boolean nonempty-type-decl nil booleans nil)
    (number_field_pred const-decl "[number -> boolean]" number_fields
     nil)
    (number_field nonempty-type-from-decl nil number_fields nil)
    (real_pred const-decl "[number_field -> boolean]" reals nil)
    (real nonempty-type-from-decl nil reals nil)
    (rational_pred const-decl "[real -> boolean]" rationals nil)
    (rational nonempty-type-from-decl nil rationals nil)
    (integer_pred const-decl "[rational -> boolean]" integers nil)
    (int nonempty-type-eq-decl nil integers nil)
    (/= const-decl "boolean" notequal nil)
    (nzint nonempty-type-eq-decl nil integers nil)
    (bool nonempty-type-eq-decl nil booleans nil)
    (OR const-decl "[bool, bool -> bool]" booleans nil)
    (= const-decl "[T, T -> boolean]" equalities nil)
    (numfield nonempty-type-eq-decl nil number_fields nil)
    (- const-decl "[numfield -> numfield]" number_fields nil)
    (Sign type-eq-decl nil sign "reals/")
    (Vect2 type-eq-decl nil vectors_2D_def "vectors/")
    (>= const-decl "bool" reals nil)
    (Vector type-eq-decl nil vectors_2D "vectors/")
    (nnreal type-eq-decl nil real_types nil)
    (sqv const-decl "nnreal" vectors_2D "vectors/")
    (nonneg_real nonempty-type-eq-decl nil real_types nil)
    (sq const-decl "nonneg_real" sq "reals/")
    (> const-decl "bool" reals nil)
    (posreal nonempty-type-eq-decl nil real_types nil)
    (D formal-const-decl "posreal" horizontal_criterion_line nil)
    (Sp_vect2 type-eq-decl nil horizontal nil)
    (real_times_real_is_real application-judgement "real" reals nil)
    (real_le_is_total_order name-judgement "(total_order?[real])"
     real_props nil)
    (det const-decl "real" det_2D "vectors/")
    (real_minus_real_is_real application-judgement "real" reals nil)
    (real_plus_real_is_real application-judgement "real" reals nil)
    (sq_nz_pos application-judgement "posreal" sq "reals/")
    (nz_sqv_gt_0 application-judgement "posreal" vectors_2D "vectors/")
    (* const-decl "Vector" vectors_2D "vectors/")
    (+ const-decl "Vector" vectors_2D "vectors/")
    (- const-decl "Vector" vectors_2D "vectors/"))
   shostak))
 (horizontal_criterion_ext_scal 0
  (horizontal_criterion_ext_scal-1 nil 3525082075
   ("" (skeep)
    (("" (expand "horizontal_criterion_ext?")
      (("" (lemma "horizontal_criterion_scal")
        (("" (inst?)
          (("1" (assert)
            (("1" (ground)
              (("1" (lemma "horizontal_criterion_sum_closed")
                (("1" (inst - "eps" "sp" "(1/2)*v" "nv - (1 / 2) * v")
                  (("1" (assert)
                    (("1"
                      (case "(1 / 2) * v + (nv - (1 / 2) * v) = nv")
                      (("1" (split -2)
                        (("1" (replace -2)
                          (("1" (lemma "horizontal_criterion_scal")
                            (("1" (inst - "eps" "sp" "nv" "c-1")
                              (("1"
                                (assert)
                                (("1"
                                  (lemma
                                   "horizontal_criterion_sum_closed")
                                  (("1"
                                    (inst
                                     -
                                     "eps"
                                     "sp"
                                     "(c-1)*nv"
                                     "nv - (1/2)*v")
                                    (("1"
                                      (assert)
                                      (("1"
                                        (hide-all-but (-1 1))
                                        (("1"
                                          (grind
                                           :exclude
                                           "horizontal_criterion?")
                                          nil
                                          nil))
                                        nil))
                                      nil))
                                    nil))
                                  nil))
                                nil))
                              nil))
                            nil))
                          nil)
                         ("2" (lemma "horizontal_criterion_scal")
                          (("2" (inst?) (("2" (assertnil nil)) nil))
                          nil))
                        nil)
                       ("2" (hide-all-but 1)
                        (("2" (decompose-equality)
                          (("1" (grind) nil nil) ("2" (grind) nil nil))
                          nil))
                        nil))
                      nil))
                    nil))
                  nil))
                nil)
               ("2" (lemma "horizontal_criterion_sum_closed")
                (("2" (inst - "eps" "sp" "(c-1)*nv" "nv - (1/2)*v")
                  (("2" (assert)
                    (("2" (split -)
                      (("1" (hide-all-but (-1 1))
                        (("1" (grind :exclude "horizontal_criterion?")
                          nil nil))
                        nil)
                       ("2" (lemma "horizontal_criterion_scal")
                        (("2" (inst?) (("2" (assertnil nil)) nil))
                        nil))
                      nil))
                    nil))
                  nil))
                nil)
               ("3" (lemma "horizontal_criterion_sum_closed")
                (("3" (inst - "eps" "sp" "(1/2)*v" "nv - (1 / 2) * v")
                  (("3" (assert)
                    (("3" (split -)
                      (("1" (hide-all-but (-1 2))
                        (("1"
                          (case "(1 / 2) * v + (nv - (1 / 2) * v) = nv")
                          (("1" (assertnil nil)
                           ("2" (hide-all-but 1)
                            (("2" (decompose-equality)
                              (("1" (grind) nil nil)
                               ("2" (grind) nil nil))
                              nil))
                            nil))
                          nil))
                        nil)
                       ("2" (lemma "horizontal_criterion_scal")
                        (("2" (inst?) (("2" (assertnil nil)) nil))
                        nil))
                      nil))
                    nil))
                  nil))
                nil))
              nil))
            nil)
           ("2" (assertnil nil))
          nil))
        nil))
      nil))
    nil)
   ((horizontal_criterion_ext? const-decl "bool"
     horizontal_criterion_line nil)
    (real_ge_is_total_order name-judgement "(total_order?[real])"
     real_props nil)
    (c skolem-const-decl "real" horizontal_criterion_line nil)
    (rational_pred const-decl "[real -> boolean]" rationals nil)
    (rational nonempty-type-from-decl nil rationals nil)
    (integer_pred const-decl "[rational -> boolean]" integers nil)
    (int nonempty-type-eq-decl nil integers nil)
    (/= const-decl "boolean" notequal nil)
    (nzint nonempty-type-eq-decl nil integers nil)
    (OR const-decl "[bool, bool -> bool]" booleans nil)
    (= const-decl "[T, T -> boolean]" equalities nil)
    (numfield nonempty-type-eq-decl nil number_fields nil)
    (- const-decl "[numfield -> numfield]" number_fields nil)
    (Sign type-eq-decl nil sign "reals/")
    (Vect2 type-eq-decl nil vectors_2D_def "vectors/")
    (Vector type-eq-decl nil vectors_2D "vectors/")
    (nnreal type-eq-decl nil real_types nil)
    (sqv const-decl "nnreal" vectors_2D "vectors/")
    (sq const-decl "nonneg_real" sq "reals/")
    (Sp_vect2 type-eq-decl nil horizontal nil)
    (sign_neg_clos application-judgement "Sign" sign "reals/")
    (posrat_div_posrat_is_posrat application-judgement "posrat"
     rationals nil)
    (- const-decl "Vector" vectors_2D "vectors/")
    (/ const-decl "[numfield, nznum -> numfield]" number_fields nil)
    (nznum nonempty-type-eq-decl nil number_fields nil)
    (* const-decl "Vector" vectors_2D "vectors/")
    (+ const-decl "Vector" vectors_2D "vectors/")
    (real_minus_real_is_real application-judgement "real" reals nil)
    (- const-decl "[numfield, numfield -> numfield]" number_fields nil)
    (sq_nz_pos application-judgement "posreal" sq "reals/")
    (real_times_real_is_real application-judgement "real" reals nil)
    (real_plus_real_is_real application-judgement "real" reals nil)
    (horizontal_criterion_sum_closed formula-decl nil
     horizontal_criteria nil)
    (horizontal_criterion_scal formula-decl nil horizontal_criteria
     nil)
    (number nonempty-type-decl nil numbers nil)
    (boolean nonempty-type-decl nil booleans nil)
    (number_field_pred const-decl "[number -> boolean]" number_fields
     nil)
    (number_field nonempty-type-from-decl nil number_fields nil)
    (real_pred const-decl "[number_field -> boolean]" reals nil)
    (real nonempty-type-from-decl nil reals nil)
    (bool nonempty-type-eq-decl nil booleans nil)
    (>= const-decl "bool" reals nil)
    (nonneg_real nonempty-type-eq-decl nil real_types nil)
    (> const-decl "bool" reals nil)
    (posreal nonempty-type-eq-decl nil real_types nil)
    (D formal-const-decl "posreal" horizontal_criterion_line nil))
   shostak))
 (horizontal_criterion_ext_seg_convex 0
  (horizontal_criterion_ext_seg_convex-1 nil 3525087134
   (""
    (case "FORALL (eps: Sign, sp: Sp_vect2[D], v, nv1, nv2: Vect2):
                                     horizontal_criterion?(sp, eps)(nv1) AND
                                      horizontal_criterion?(sp, eps)(nv2)
                                      IMPLIES
                                      (FORALL (t: real):
                                         0 <= t AND t <= 1 IMPLIES
                                          horizontal_criterion?(sp, eps)((1 - t) * nv1 + t * nv2))")
    (("1" (skeep)
      (("1" (skeep)
        (("1" (expand "horizontal_criterion_ext?")
          (("1" (assert)
            (("1" (split +)
              (("1" (flatten)
                (("1" (assert)
                  (("1"
                    (inst - "eps" "sp" "v" "nv1 - (1 / 2) * v"
                     "nv2 - (1 / 2) * v")
                    (("1" (assert)
                      (("1" (inst - "t")
                        (("1"
                          (case "(1 - t) * (nv1 - (1 / 2) * v) +
                                                                       t * (nv2 - (1 / 2) * v) = (1 - t) * nv1 + t * nv2 - (1 / 2) * v")
                          (("1" (assertnil nil)
                           ("2" (hide-all-but 1)
                            (("2" (grind) nil nil)) nil))
                          nil))
                        nil))
                      nil))
                    nil))
                  nil))
                nil)
               ("2" (flatten)
                (("2" (assert)
                  (("2" (split +)
                    (("1" (flatten)
                      (("1" (replace -1)
                        (("1" (inst - "eps" "sp" "v" "nv1" "nv2")
                          (("1" (assert)
                            (("1" (inst - "t") (("1" (assertnil nil))
                              nil))
                            nil))
                          nil))
                        nil))
                      nil)
                     ("2" (hide 2)
                      (("2" (flatten)
                        (("2" (assert)
                          (("2" (flatten)
                            (("2" (split +)
                              (("1"
                                (inst - "eps" "sp" "v" "nv1" "nv2")
                                (("1"
                                  (assert)
                                  (("1"
                                    (inst - "t")
                                    (("1" (assertnil nil))
                                    nil))
                                  nil))
                                nil)
                               ("2"
                                (inst
                                 -
                                 "eps"
                                 "sp"
                                 "v"
                                 "nv1 - (1 / 2) * v"
                                 "nv2 - (1 / 2) * v")
                                (("2"
                                  (assert)
                                  (("2"
                                    (inst - "t")
                                    (("2"
                                      (case
                                       "(1 - t) * (nv1 - (1 / 2) * v) +
                                                                       t * (nv2 - (1 / 2) * v) = (1 - t) * nv1 + t * nv2 - (1 / 2) * v")
                                      (("1" (assertnil nil)
                                       ("2"
                                        (hide-all-but 1)
                                        (("2" (grind) nil nil))
                                        nil))
                                      nil))
                                    nil))
                                  nil))
                                nil))
                              nil))
                            nil))
                          nil))
                        nil))
                      nil))
                    nil))
                  nil))
                nil))
              nil))
            nil))
          nil))
        nil))
      nil)
     ("2" (hide 2)
      (("2" (skeep)
        (("2" (skeep)
          (("2" (rewrite "horizontal_criterion_rewrite")
            (("2" (rewrite "horizontal_criterion_rewrite")
              (("2" (rewrite "horizontal_criterion_rewrite")
                (("2" (flatten)
                  (("2" (mult-by -1 "(1-t)")
                    (("2" (mult-by -2 "(1-t)")
                      (("2" (mult-by -3 "t")
                        (("2" (mult-by -4 "t")
                          (("2" (split +)
                            (("1" (hide (-1 -3))
                              (("1"
                                (grind :exclude "tangent_line")
                                nil
                                nil))
                              nil)
                             ("2" (hide (-2 -4))
                              (("2" (grind) nil nil)) nil))
                            nil))
                          nil))
                        nil))
                      nil))
                    nil))
                  nil))
                nil))
              nil))
            nil))
          nil))
        nil))
      nil))
    nil)
   ((nz_sqv_gt_0 application-judgement "posreal" vectors_2D "vectors/")
    (real_ge_is_total_order name-judgement "(total_order?[real])"
     real_props nil)
    (t skolem-const-decl "real" horizontal_criterion_line nil)
    (tangent_line const-decl "Nz_vect2" tangent_line nil)
    (Nz_vect2 type-eq-decl nil vectors_2D "vectors/")
    (zero const-decl "Vector" vectors_2D "vectors/")
    (det const-decl "real" det_2D "vectors/")
    (* const-decl "[numfield, numfield -> numfield]" number_fields nil)
    (both_sides_times_pos_le1_imp formula-decl nil extra_real_props
     nil)
    (horizontal_criterion_rewrite formula-decl nil
     horizontal_criterion_line nil)
    (horizontal_criterion_ext? const-decl "bool"
     horizontal_criterion_line nil)
    (sq_nz_pos application-judgement "posreal" sq "reals/")
    (real_plus_real_is_real application-judgement "real" reals nil)
    (real_times_real_is_real application-judgement "real" reals nil)
    (- const-decl "Vector" vectors_2D "vectors/")
    (nznum nonempty-type-eq-decl nil number_fields nil)
    (/ const-decl "[numfield, nznum -> numfield]" number_fields nil)
    (posrat_div_posrat_is_posrat application-judgement "posrat"
     rationals nil)
    (sign_neg_clos application-judgement "Sign" sign "reals/")
    (real_le_is_total_order name-judgement "(total_order?[real])"
     real_props nil)
    (real_minus_real_is_real application-judgement "real" reals nil)
    (number nonempty-type-decl nil numbers nil)
    (boolean nonempty-type-decl nil booleans nil)
    (number_field_pred const-decl "[number -> boolean]" number_fields
     nil)
    (number_field nonempty-type-from-decl nil number_fields nil)
    (real_pred const-decl "[number_field -> boolean]" reals nil)
    (real nonempty-type-from-decl nil reals nil)
    (rational_pred const-decl "[real -> boolean]" rationals nil)
    (rational nonempty-type-from-decl nil rationals nil)
    (integer_pred const-decl "[rational -> boolean]" integers nil)
    (int nonempty-type-eq-decl nil integers nil)
    (/= const-decl "boolean" notequal nil)
    (nzint nonempty-type-eq-decl nil integers nil)
    (bool nonempty-type-eq-decl nil booleans nil)
    (OR const-decl "[bool, bool -> bool]" booleans nil)
    (= const-decl "[T, T -> boolean]" equalities nil)
    (numfield nonempty-type-eq-decl nil number_fields nil)
    (- const-decl "[numfield -> numfield]" number_fields nil)
    (Sign type-eq-decl nil sign "reals/")
    (Vect2 type-eq-decl nil vectors_2D_def "vectors/")
    (>= const-decl "bool" reals nil)
    (Vector type-eq-decl nil vectors_2D "vectors/")
    (nnreal type-eq-decl nil real_types nil)
    (sqv const-decl "nnreal" vectors_2D "vectors/")
    (nonneg_real nonempty-type-eq-decl nil real_types nil)
    (sq const-decl "nonneg_real" sq "reals/")
    (> const-decl "bool" reals nil)
    (posreal nonempty-type-eq-decl nil real_types nil)
    (D formal-const-decl "posreal" horizontal_criterion_line nil)
    (Sp_vect2 type-eq-decl nil horizontal nil)
    (IMPLIES const-decl "[bool, bool -> bool]" booleans nil)
    (AND const-decl "[bool, bool -> bool]" booleans nil)
    (horizontal_criterion? const-decl "bool" horizontal_criteria nil)
    (<= const-decl "bool" reals nil)
    (+ const-decl "Vector" vectors_2D "vectors/")
    (* const-decl "Vector" vectors_2D "vectors/")
    (- const-decl "[numfield, numfield -> numfield]" number_fields
       nil))
   nil))
 (horizontal_criterion_ext_seg_independence_TCC1 0
  (horizontal_criterion_ext_seg_independence_TCC1-1 nil 3525087186
   ("" (subtype-tcc) nil nil)
   ((NOT const-decl "[bool -> bool]" booleans nil)
    (rational_pred const-decl "[real -> boolean]" rationals nil)
    (rational nonempty-type-from-decl nil rationals nil)
    (integer_pred const-decl "[rational -> boolean]" integers nil)
    (int nonempty-type-eq-decl nil integers nil)
    (nzint nonempty-type-eq-decl nil integers nil)
    (OR const-decl "[bool, bool -> bool]" booleans nil)
    (= const-decl "[T, T -> boolean]" equalities nil)
    (numfield nonempty-type-eq-decl nil number_fields nil)
    (- const-decl "[numfield -> numfield]" number_fields nil)
    (Sign type-eq-decl nil sign "reals/")
    (Vector type-eq-decl nil vectors_2D "vectors/")
    (nnreal type-eq-decl nil real_types nil)
    (Vect2 type-eq-decl nil vectors_2D_def "vectors/")
    (Sp_vect2 type-eq-decl nil horizontal nil)
    (real_ge_is_total_order name-judgement "(total_order?[real])"
     real_props nil)
    (real_lt_is_strict_total_order name-judgement
     "(strict_total_order?[real])" real_props nil)
    (real_minus_real_is_real application-judgement "real" reals nil)
    (real_le_is_total_order name-judgement "(total_order?[real])"
     real_props nil)
    (- const-decl "Vector" vectors_2D "vectors/")
    (* const-decl "real" vectors_2D "vectors/")
    (sqv const-decl "nnreal" vectors_2D "vectors/")
    (sq const-decl "nonneg_real" sq "reals/")
    (D formal-const-decl "posreal" horizontal_criterion_line nil)
    (posreal nonempty-type-eq-decl nil real_types nil)
    (> const-decl "bool" reals nil)
    (nonneg_real nonempty-type-eq-decl nil real_types nil)
    (>= const-decl "bool" reals nil)
    (bool nonempty-type-eq-decl nil booleans nil)
    (real nonempty-type-from-decl nil reals nil)
    (real_pred const-decl "[number_field -> boolean]" reals nil)
    (number_field nonempty-type-from-decl nil number_fields nil)
    (number_field_pred const-decl "[number -> boolean]" number_fields
     nil)
    (boolean nonempty-type-decl nil booleans nil)
    (number nonempty-type-decl nil numbers nil)
    (R const-decl "nnreal" horizontal_criteria nil)
    (det const-decl "real" det_2D "vectors/")
    (horizontal_criterion? const-decl "bool" horizontal_criteria nil)
    (/= const-decl "boolean" notequal nil)
    (posreal_times_posreal_is_posreal application-judgement "posreal"
     real_types nil)
    (real_times_real_is_real application-judgement "real" reals nil)
    (real_plus_real_is_real application-judgement "real" reals nil)
    (nnreal_div_posreal_is_nnreal application-judgement "nnreal"
     real_types nil)
    (sq_nz_pos application-judgement "posreal" sq "reals/"))
   nil))
 (horizontal_criterion_ext_seg_independence 0
  (horizontal_criterion_ext_seg_independence-1 nil 3525081721
   (""
    (case "FORALL (eps: Sign, sp: Sp_vect2[D], v, sp1, sp2: Vect2):
                              horizontal_criterion_ext?(sp, v, eps)(sp1 - sp) AND
                               horizontal_criterion_ext?(sp, v, eps)(sp2 - sp)
                              IMPLIES
                              (FORALL (t: real):
                                 0 <= t AND t <= 1 IMPLIES
                                  NOT sqv((1-t)*sp1 + t * sp2) < sq(D))")
    (("1" (skeep)
      (("1" (inst - "eps" "sp" "v" "sp1" "sp2")
        (("1" (assert)
          (("1" (skeep)
            (("1" (inst - "((t - t1) / (t2 - t1))")
              (("1" (split -)
                (("1" (name "tz" "(t-t1)/(t2-t1)")
                  (("1" (replace -1)
                    (("1" (hide-all-but (-7 1))
                      (("1" (grind :exclude ("sqv" "sq")) nil nil))
                      nil))
                    nil))
                  nil)
                 ("2" (cross-mult 1) (("2" (assertnil nil)) nil)
                 ("3" (cross-mult 1) (("3" (assertnil nil)) nil))
                nil))
              nil))
            nil))
          nil))
        nil))
      nil)
     ("2" (hide 2)
      (("2" (lemma "horizontal_criterion_ext_seg_convex")
        (("2" (skeep)
          (("2" (inst - "eps" "sp" "v" "sp1-sp" "sp2-sp")
            (("2" (assert)
              (("2" (skeep)
                (("2" (inst - "t")
                  (("2" (assert)
                    (("2"
                      (lemma "horizontal_criterion_ext_independence")
                      (("2"
                        (inst - "eps"
                         "(1 - t) * (sp1 - sp) + t * (sp2 - sp)" "sp"
                         "v")
                        (("2" (assert)
                          (("2" (hide-all-but (-6 1))
                            (("2" (expand "horizontal_conflict?")
                              (("2"
                                (inst + "1")
                                (("2"
                                  (grind :exclude ("sqv" "sq"))
                                  nil
                                  nil))
                                nil))
                              nil))
                            nil))
                          nil))
                        nil))
                      nil))
                    nil))
                  nil))
                nil))
              nil))
            nil))
          nil))
        nil))
      nil))
    nil)
   ((horizontal_criterion_ext_independence formula-decl nil
     horizontal_criterion_line nil)
    (horizontal_conflict? const-decl "bool" horizontal nil)
    (horizontal_criterion_ext_seg_convex formula-decl nil
     horizontal_criterion_line nil)
    (real_lt_is_strict_total_order name-judgement
     "(strict_total_order?[real])" real_props nil)
    (real_div_nzreal_is_real application-judgement "real" reals nil)
    (/ const-decl "[numfield, nznum -> numfield]" number_fields nil)
    (nznum nonempty-type-eq-decl nil number_fields nil)
    (div_mult_pos_le1 formula-decl nil real_props nil)
    (div_mult_pos_le2 formula-decl nil real_props nil)
    (real_ge_is_total_order name-judgement "(total_order?[real])"
     real_props nil)
    (real_gt_is_strict_total_order name-judgement
     "(strict_total_order?[real])" real_props nil)
    (real_le_is_total_order name-judgement "(total_order?[real])"
     real_props nil)
    (real_plus_real_is_real application-judgement "real" reals nil)
    (real_times_real_is_real application-judgement "real" reals nil)
    (sq_nz_pos application-judgement "posreal" sq "reals/")
    (real_minus_real_is_real application-judgement "real" reals nil)
    (number nonempty-type-decl nil numbers nil)
    (boolean nonempty-type-decl nil booleans nil)
    (number_field_pred const-decl "[number -> boolean]" number_fields
     nil)
    (number_field nonempty-type-from-decl nil number_fields nil)
    (real_pred const-decl "[number_field -> boolean]" reals nil)
    (real nonempty-type-from-decl nil reals nil)
    (rational_pred const-decl "[real -> boolean]" rationals nil)
    (rational nonempty-type-from-decl nil rationals nil)
    (integer_pred const-decl "[rational -> boolean]" integers nil)
    (int nonempty-type-eq-decl nil integers nil)
    (/= const-decl "boolean" notequal nil)
    (nzint nonempty-type-eq-decl nil integers nil)
    (bool nonempty-type-eq-decl nil booleans nil)
    (OR const-decl "[bool, bool -> bool]" booleans nil)
    (= const-decl "[T, T -> boolean]" equalities nil)
    (numfield nonempty-type-eq-decl nil number_fields nil)
    (- const-decl "[numfield -> numfield]" number_fields nil)
    (Sign type-eq-decl nil sign "reals/")
    (Vect2 type-eq-decl nil vectors_2D_def "vectors/")
    (>= const-decl "bool" reals nil)
    (Vector type-eq-decl nil vectors_2D "vectors/")
    (nnreal type-eq-decl nil real_types nil)
    (sqv const-decl "nnreal" vectors_2D "vectors/")
    (nonneg_real nonempty-type-eq-decl nil real_types nil)
    (sq const-decl "nonneg_real" sq "reals/")
    (> const-decl "bool" reals nil)
    (posreal nonempty-type-eq-decl nil real_types nil)
    (D formal-const-decl "posreal" horizontal_criterion_line nil)
    (Sp_vect2 type-eq-decl nil horizontal nil)
    (IMPLIES const-decl "[bool, bool -> bool]" booleans nil)
    (AND const-decl "[bool, bool -> bool]" booleans nil)
    (horizontal_criterion_ext? const-decl "bool"
     horizontal_criterion_line nil)
    (- const-decl "Vector" vectors_2D "vectors/")
    (<= const-decl "bool" reals nil)
    (NOT const-decl "[bool -> bool]" booleans nil)
    (< const-decl "bool" reals nil)
    (+ const-decl "Vector" vectors_2D "vectors/")
    (* const-decl "Vector" vectors_2D "vectors/")
    (- const-decl "[numfield, numfield -> numfield]" number_fields
       nil))
   shostak))
 (horizontal_criterion_ext_seg_coordination_TCC1 0
  (horizontal_criterion_ext_seg_coordination_TCC1-1 nil 3525084493
   ("" (subtype-tcc) nil nil)
   ((NOT const-decl "[bool -> bool]" booleans nil)
    (/= const-decl "boolean" notequal nil)
    (rational_pred const-decl "[real -> boolean]" rationals nil)
    (rational nonempty-type-from-decl nil rationals nil)
    (integer_pred const-decl "[rational -> boolean]" integers nil)
    (int nonempty-type-eq-decl nil integers nil)
    (nzint nonempty-type-eq-decl nil integers nil)
    (OR const-decl "[bool, bool -> bool]" booleans nil)
    (= const-decl "[T, T -> boolean]" equalities nil)
    (numfield nonempty-type-eq-decl nil number_fields nil)
    (- const-decl "[numfield -> numfield]" number_fields nil)
    (Sign type-eq-decl nil sign "reals/")
    (- const-decl "Vector" vectors_2D "vectors/")
    (* const-decl "real" vectors_2D "vectors/")
    (sqv const-decl "nnreal" vectors_2D "vectors/")
    (sq const-decl "nonneg_real" sq "reals/")
    (D formal-const-decl "posreal" horizontal_criterion_line nil)
    (posreal nonempty-type-eq-decl nil real_types nil)
    (> const-decl "bool" reals nil)
    (nonneg_real nonempty-type-eq-decl nil real_types nil)
    (>= const-decl "bool" reals nil)
    (bool nonempty-type-eq-decl nil booleans nil)
    (real nonempty-type-from-decl nil reals nil)
    (real_pred const-decl "[number_field -> boolean]" reals nil)
    (number_field nonempty-type-from-decl nil number_fields nil)
    (number_field_pred const-decl "[number -> boolean]" number_fields
     nil)
    (boolean nonempty-type-decl nil booleans nil)
    (number nonempty-type-decl nil numbers nil)
    (R const-decl "nnreal" horizontal_criteria nil)
    (det const-decl "real" det_2D "vectors/")
    (horizontal_criterion? const-decl "bool" horizontal_criteria nil)
    (real_times_real_is_real application-judgement "real" reals nil)
    (posreal_times_posreal_is_posreal application-judgement "posreal"
     real_types nil)
    (real_plus_real_is_real application-judgement "real" reals nil)
    (real_minus_real_is_real application-judgement "real" reals nil)
    (nnreal_div_posreal_is_nnreal application-judgement "nnreal"
     real_types nil)
    (sq_nz_pos application-judgement "posreal" sq "reals/"))
   nil))
 (horizontal_criterion_ext_seg_coordination_TCC2 0
  (horizontal_criterion_ext_seg_coordination_TCC2-1 nil 3525084493
   ("" (subtype-tcc) nil nil)
   ((real_lt_is_strict_total_order name-judgement
     "(strict_total_order?[real])" real_props nil)
    (real_ge_is_total_order name-judgement "(total_order?[real])"
     real_props nil)
    (real_le_is_total_order name-judgement "(total_order?[real])"
     real_props nil)
    (NOT const-decl "[bool -> bool]" booleans nil)
    (rational_pred const-decl "[real -> boolean]" rationals nil)
    (rational nonempty-type-from-decl nil rationals nil)
    (integer_pred const-decl "[rational -> boolean]" integers nil)
    (int nonempty-type-eq-decl nil integers nil)
    (nzint nonempty-type-eq-decl nil integers nil)
    (OR const-decl "[bool, bool -> bool]" booleans nil)
    (= const-decl "[T, T -> boolean]" equalities nil)
    (numfield nonempty-type-eq-decl nil number_fields nil)
    (- const-decl "[numfield -> numfield]" number_fields nil)
    (Sign type-eq-decl nil sign "reals/")
    (- const-decl "Vector" vectors_2D "vectors/")
    (* const-decl "real" vectors_2D "vectors/")
    (sqv const-decl "nnreal" vectors_2D "vectors/")
    (sq const-decl "nonneg_real" sq "reals/")
    (D formal-const-decl "posreal" horizontal_criterion_line nil)
    (posreal nonempty-type-eq-decl nil real_types nil)
    (> const-decl "bool" reals nil)
    (nonneg_real nonempty-type-eq-decl nil real_types nil)
    (>= const-decl "bool" reals nil)
    (bool nonempty-type-eq-decl nil booleans nil)
    (real nonempty-type-from-decl nil reals nil)
    (real_pred const-decl "[number_field -> boolean]" reals nil)
    (number_field nonempty-type-from-decl nil number_fields nil)
    (number_field_pred const-decl "[number -> boolean]" number_fields
     nil)
    (boolean nonempty-type-decl nil booleans nil)
    (number nonempty-type-decl nil numbers nil)
    (R const-decl "nnreal" horizontal_criteria nil)
    (det const-decl "real" det_2D "vectors/")
    (horizontal_criterion? const-decl "bool" horizontal_criteria nil)
    (/= const-decl "boolean" notequal nil)
    (real_times_real_is_real application-judgement "real" reals nil)
    (real_plus_real_is_real application-judgement "real" reals nil)
    (real_minus_real_is_real application-judgement "real" reals nil)
    (posreal_times_posreal_is_posreal application-judgement "posreal"
     real_types nil)
    (nnreal_div_posreal_is_nnreal application-judgement "nnreal"
     real_types nil)
    (sq_nz_pos application-judgement "posreal" sq "reals/"))
   nil))
 (horizontal_criterion_ext_seg_coordination 0
  (horizontal_criterion_ext_seg_coordination-1 nil 3525084495
   (""
    (case "FORALL (ssp:Sp_vect2,vv,nvv:Vect2,eps:Sign): horizontal_criterion_ext?(ssp,vv,eps)(nvv) IMPLIES horizontal_criterion_ext?(-ssp,-vv,eps)(-nvv)")
    (("1" (label "lem1" -1)
      (("1" (hide "lem1")
        (("1"
          (case "FORALL (eps: Sign, nso1, nso2, nsi1, nsi2: Vect2,
                                                                        t1, t2: real,sp,v):
                                                                       t1 < t2 AND
                                                                   horizontal_criterion_ext?(sp, v, eps)(nso1 - sp)
                                                                   AND horizontal_criterion_ext?(sp, v, eps)(nso2 - sp)
                                                                   AND horizontal_criterion_ext?(-sp, -v, eps)(nsi1 +sp)
                                                                   AND horizontal_criterion_ext?(-sp, -v, eps)(nsi2 +sp)
                                                                   IMPLIES
                                                                   (FORALL (t: real):
                                                                      LET time01 = (t - t1) / (t2 - t1),
                                                                          ownshippos = nso1 + time01 * (nso2 - nso1),
                                                                          intruderpos = nsi1 + time01 * (nsi2 - nsi1)
                                                                        IN
                                                                        t1 <= t AND t <= t2 IMPLIES
                                                                         horizontal_criterion_ext?(sp,v,eps)(ownshippos-intruderpos-2*sp))")
          (("1" (skeep)
            (("1"
              (inst - "eps" "nso1-si" "nso2-si" "nsi1-so" "nsi2-so"
               "t1" "t2" "so-si" "vo-vi")
              (("1" (assert)
                (("1" (split -)
                  (("1" (skeep)
                    (("1" (inst - "t")
                      (("1" (assert)
                        (("1" (name "nt" "(t-t1)/(t2-t1)")
                          (("1" (replace -1)
                            (("1" (hide -1)
                              (("1"
                                (name
                                 "vvr"
                                 "nso1 + nt * (nso2 - nso1) - (nsi1 + nt * (nsi2 - nsi1))")
                                (("1"
                                  (replace -1)
                                  (("1"
                                    (case
                                     "NOT (nso1 - si + nt * (nso2 - si - (nso1 - si))
                                                                    -
                                                                    (nsi1 - so +
                                                                      nt * (nsi2 - so - (nsi1 - so)))
                                                                    - 2 * (so - si)) = vvr - (so-si)")
                                    (("1"
                                      (hide-all-but 1)
                                      (("1"
                                        (expand "vvr")
                                        (("1" (grind) nil nil))
                                        nil))
                                      nil)
                                     ("2"
                                      (replace -1)
                                      (("2"
                                        (hide (-1 -2))
                                        (("2"
                                          (lemma
                                           "horizontal_criterion_ext_independence")
                                          (("2"
                                            (inst?)
                                            (("2"
                                              (assert)
                                              (("2"
                                                (expand
                                                 "horizontal_conflict?")
                                                (("2"
                                                  (inst + "1")
                                                  (("2"
                                                    (assert)
                                                    (("2"
                                                      (hide-all-but
                                                       (-10 1))
                                                      (("2"
                                                        (grind)
                                                        nil
                                                        nil))
                                                      nil))
                                                    nil))
                                                  nil))
                                                nil))
                                              nil))
                                            nil))
                                          nil))
                                        nil))
                                      nil))
                                    nil))
                                  nil))
                                nil))
                              nil))
                            nil))
                          nil))
                        nil))
                      nil))
                    nil)
                   ("2" (hide 2)
                    (("2"
                      (grind :exclude
                       ("sqv" "sq" "horizontal_criterion_ext?"))
                      nil nil))
                    nil)
                   ("3" (hide 2)
                    (("3"
                      (grind :exclude
                       ("sqv" "sq" "horizontal_criterion_ext?"))
                      nil nil))
                    nil)
                   ("4" (hide 2)
                    (("4"
                      (grind :exclude
                       ("sqv" "sq" "horizontal_criterion_ext?"))
                      nil nil))
                    nil)
                   ("5" (hide 2)
                    (("5"
                      (grind :exclude
                       ("sqv" "sq" "horizontal_criterion_ext?"))
                      nil nil))
                    nil))
                  nil))
                nil))
              nil))
            nil)
           ("2" (hide 2)
            (("2" (lemma "horizontal_criterion_ext_seg_convex")
              (("2" (skeep)
                (("2" (skeep)
                  (("2"
                    (inst - "eps" "sp" "v" "nso1-nsi1 - 2*sp"
                     "nso2-nsi2-2*sp")
                    (("2" (assert)
                      (("2" (split -)
                        (("1" (flatten)
                          (("1" (assert)
                            (("1" (inst - "(t-t1)/(t2-t1)")
                              (("1"
                                (split -1)
                                (("1"
                                  (name "nt" "(t-t1)/(t2-t1)")
                                  (("1"
                                    (replace -1)
                                    (("1"
                                      (hide -1)
                                      (("1"
                                        (hide-all-but (-1 1))
                                        (("1"
                                          (grind
                                           :exclude
                                           "horizontal_criterion_ext?")
                                          nil
                                          nil))
                                        nil))
                                      nil))
                                    nil))
                                  nil)
                                 ("2" (cross-mult 1) nil nil)
                                 ("3" (cross-mult 1) nil nil))
                                nil))
                              nil))
                            nil))
                          nil)
                         ("2" (hide 2)
                          (("2"
                            (lemma
                             "horizontal_criterion_ext_sum_closed")
                            (("2"
                              (inst - "eps" "nso1-sp" "-(nsi1+sp)" "sp"
                               "v")
                              (("2"
                                (assert)
                                (("2"
                                  (split -)
                                  (("1"
                                    (hide-all-but (-1 1))
                                    (("1"
                                      (grind
                                       :exclude
                                       "horizontal_criterion_ext?")
                                      nil
                                      nil))
                                    nil)
                                   ("2"
                                    (reveal "lem1")
                                    (("2"
                                      (inst
                                       -
                                       "-sp"
                                       "-v"
                                       "nsi1+sp"
                                       "eps")
                                      (("2" (assertnil nil))
                                      nil))
                                    nil))
                                  nil))
                                nil))
                              nil))
                            nil))
                          nil)
                         ("3" (hide 2)
                          (("3"
                            (lemma
                             "horizontal_criterion_ext_sum_closed")
                            (("3"
                              (inst - "eps" "nso2-sp" "-(nsi2+sp)" "sp"
                               "v")
                              (("3"
                                (assert)
                                (("3"
                                  (split -)
                                  (("1"
                                    (hide-all-but (-1 1))
                                    (("1"
                                      (grind
                                       :exclude
                                       "horizontal_criterion_ext?")
                                      nil
                                      nil))
                                    nil)
                                   ("2"
                                    (reveal "lem1")
                                    (("2"
                                      (inst
                                       -
                                       "-sp"
                                       "-v"
                                       "nsi2+sp"
                                       "eps")
                                      (("2" (assertnil nil))
                                      nil))
                                    nil))
                                  nil))
                                nil))
                              nil))
                            nil))
                          nil))
                        nil))
                      nil))
                    nil))
                  nil))
                nil))
              nil))
            nil)
           ("3" (hide 2) (("3" (skeep) (("3" (assertnil nil)) nil))
            nil))
          nil))
        nil))
      nil)
     ("2" (hide 2)
      (("2" (skeep)
        (("2" (expand "horizontal_criterion_ext?")
          (("2" (rewrite "horizontal_criterion_symmetric" :dir rl)
            (("2" (rewrite "horizontal_criterion_symmetric" :dir rl)
              (("2" (rewrite "horizontal_criterion_symmetric" :dir rl)
                (("2"
                  (rewrite "horizontal_criterion_symmetric" :dir rl)
                  (("2" (case "-nvv-(1/2)*-vv = -(nvv-(1/2)*vv)")
                    (("1" (replace -1)
                      (("1" (hide -1)
                        (("1"
                          (rewrite "horizontal_criterion_symmetric"
                           :dir rl)
                          nil nil))
                        nil))
                      nil)
                     ("2" (hide-all-but 1) (("2" (grind) nil nil))
                      nil))
                    nil))
                  nil))
                nil))
              nil))
            nil))
          nil))
        nil))
      nil))
    nil)
   ((posrat_div_posrat_is_posrat application-judgement "posrat"
     rationals nil)
    (sign_neg_clos application-judgement "Sign" sign "reals/")
    (horizontal_criterion_symmetric formula-decl nil
     horizontal_criteria nil)
    (- const-decl "[numfield, numfield -> numfield]" number_fields nil)
    (/ const-decl "[numfield, nznum -> numfield]" number_fields nil)
    (nznum nonempty-type-eq-decl nil number_fields nil)
    (* const-decl "Vector" vectors_2D "vectors/")
    (<= const-decl "bool" reals nil)
    (+ const-decl "Vector" vectors_2D "vectors/")
    (- const-decl "Vector" vectors_2D "vectors/")
    (< const-decl "bool" reals nil)
    (AND const-decl "[bool, bool -> bool]" booleans nil)
    (real_minus_real_is_real application-judgement "real" reals nil)
    (real_div_nzreal_is_real application-judgement "real" reals nil)
    (horizontal_criterion_ext_independence formula-decl nil
     horizontal_criterion_line nil)
    (posreal_times_posreal_is_posreal application-judgement "posreal"
     real_types nil)
    (* const-decl "real" vectors_2D "vectors/")
    (scal_1 formula-decl nil vectors_2D "vectors/")
    (horizontal_conflict? const-decl "bool" horizontal nil)
    (real_plus_real_is_real application-judgement "real" reals nil)
    (real_times_real_is_real application-judgement "real" reals nil)
    (vvr skolem-const-decl "Vector" horizontal_criterion_line nil)
    (NOT const-decl "[bool -> bool]" booleans nil)
    (real_le_is_total_order name-judgement "(total_order?[real])"
     real_props nil)
    (minus_real_is_real application-judgement "real" reals nil)
    (real_lt_is_strict_total_order name-judgement
     "(strict_total_order?[real])" real_props nil)
    (real_ge_is_total_order name-judgement "(total_order?[real])"
     real_props nil)
    (sq_nz_pos application-judgement "posreal" sq "reals/")
    (horizontal_criterion_ext_seg_convex formula-decl nil
     horizontal_criterion_line nil)
    (neg_neg formula-decl nil vectors_2D "vectors/")
    (add_neg_sub formula-decl nil vectors_2D "vectors/")
    (horizontal_criterion_ext_sum_closed formula-decl nil
     horizontal_criterion_line nil)
    (div_mult_pos_le1 formula-decl nil real_props nil)
    (div_mult_pos_le2 formula-decl nil real_props nil)
    (real_gt_is_strict_total_order name-judgement
     "(strict_total_order?[real])" real_props nil)
    (neg_sp application-judgement "Sp_vect2[D]"
     horizontal_criterion_line nil)
    (real nonempty-type-from-decl nil reals nil)
    (Vect2 type-eq-decl nil vectors_2D_def "vectors/")
    (number nonempty-type-decl nil numbers nil)
    (boolean nonempty-type-decl nil booleans nil)
    (number_field_pred const-decl "[number -> boolean]" number_fields
     nil)
    (number_field nonempty-type-from-decl nil number_fields nil)
    (real_pred const-decl "[number_field -> boolean]" reals nil)
    (bool nonempty-type-eq-decl nil booleans nil)
    (>= const-decl "bool" reals nil)
    (Vector type-eq-decl nil vectors_2D "vectors/")
    (nnreal type-eq-decl nil real_types nil)
    (sqv const-decl "nnreal" vectors_2D "vectors/")
    (nonneg_real nonempty-type-eq-decl nil real_types nil)
    (sq const-decl "nonneg_real" sq "reals/")
    (> const-decl "bool" reals nil)
    (posreal nonempty-type-eq-decl nil real_types nil)
    (D formal-const-decl "posreal" horizontal_criterion_line nil)
    (Sp_vect2 type-eq-decl nil horizontal nil)
    (rational_pred const-decl "[real -> boolean]" rationals nil)
    (rational nonempty-type-from-decl nil rationals nil)
    (integer_pred const-decl "[rational -> boolean]" integers nil)
    (int nonempty-type-eq-decl nil integers nil)
    (/= const-decl "boolean" notequal nil)
    (nzint nonempty-type-eq-decl nil integers nil)
    (OR const-decl "[bool, bool -> bool]" booleans nil)
    (= const-decl "[T, T -> boolean]" equalities nil)
    (numfield nonempty-type-eq-decl nil number_fields nil)
    (- const-decl "[numfield -> numfield]" number_fields nil)
    (Sign type-eq-decl nil sign "reals/")
    (IMPLIES const-decl "[bool, bool -> bool]" booleans nil)
    (horizontal_criterion_ext? const-decl "bool"
     horizontal_criterion_line nil)
    (- const-decl "Vector" vectors_2D "vectors/"))
   shostak)))


Messung V0.5 in Prozent
C=100 H=100 G=100

¤ Dauer der Verarbeitung: 0.196 Sekunden  (vorverarbeitet am  2026-04-27) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge