Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/PVS/trig_fnd/   (Beweissystem der NASA Version 6.0.9©)  Datei vom 28.9.2014 mit Größe 188 kB image not shown  

Impressum law_cosines.prf

  Interaktion und
PortierbarkeitLisp
 

(law_cosines
 (distance_refl 0
  (distance_refl-1 nil 3269434431
   ("" (skosimp*)
    (("" (expand "dist")
      (("" (expand "sq_dist")
        (("" (assert)
          (("" (expand "sq") (("" (rewrite "sqrt_0"nil nil)) nil))
          nil))
        nil))
      nil))
    nil)
   ((dist const-decl "nonneg_real" law_cosines nil)
    (sq_0 formula-decl nil sq "reals/")
    (sqrt_0 formula-decl nil sqrt "reals/")
    (nnreal_times_nnreal_is_nnreal application-judgement "nnreal"
     real_types nil)
    (sq_dist const-decl "nonneg_real" law_cosines nil))
   nil))
 (distance_symm 0
  (distance_symm-1 nil 3269434431
   ("" (skolem 1 ("x0" "y0" "x1" "y1"))
    (("" (expand "dist")
      (("" (expand "sq_dist") (("" (grind) nil nil)) nil)) nil))
    nil)
   ((dist const-decl "nonneg_real" law_cosines nil)
    (sq const-decl "nonneg_real" sq "reals/")
    (real_plus_real_is_real application-judgement "real" reals nil)
    (real_times_real_is_real application-judgement "real" reals nil)
    (real_minus_real_is_real application-judgement "real" reals nil)
    (nnreal_plus_nnreal_is_nnreal application-judgement "nnreal"
     real_types nil)
    (sq_dist const-decl "nonneg_real" law_cosines nil))
   nil))
 (distance_trans 0
  (distance_trans-1 nil 3269668543
   ("" (skosimp*)
    (("" (expand "dist")
      (("" (expand "sq_dist") (("" (propax) nil nil)) nil)) nil))
    nil)
   ((dist const-decl "nonneg_real" law_cosines nil)
    (sq_dist const-decl "nonneg_real" law_cosines nil))
   shostak))
 (distance_scale 0
  (distance_scale-1 nil 3269668008
   ("" (skosimp*)
    (("" (expand "dist")
      (("" (expand "sq_dist")
        (("" (lemma "sq_times")
          (("" (inst-cp - "pz!1" "x0!1-x1!1")
            (("" (inst - "pz!1" "y0!1-y1!1")
              (("" (lemma "sqrt_times")
                ((""
                  (inst - "sq(pz!1)"
                   "sq(x0!1 - x1!1) + sq(y0!1 - y1!1)")
                  (("" (rewrite "sqrt_sq") (("" (assertnil nil))
                    nil))
                  nil))
                nil))
              nil))
            nil))
          nil))
        nil))
      nil))
    nil)
   ((dist const-decl "nonneg_real" law_cosines nil)
    (sq_times formula-decl nil sq "reals/")
    (nnreal_times_nnreal_is_nnreal application-judgement "nnreal"
     real_types nil)
    (sq_nz_pos application-judgement "posreal" sq "reals/")
    (nnreal_plus_nnreal_is_nnreal application-judgement "nnreal"
     real_types nil)
    (+ const-decl "[numfield, numfield -> numfield]" number_fields nil)
    (sq const-decl "nonneg_real" sq "reals/")
    (real_ge_is_total_order name-judgement "(total_order?[real])"
     real_props nil)
    (sqrt_pos application-judgement "posreal" sqrt "reals/")
    (sqrt_sq formula-decl nil sqrt "reals/")
    (sqrt_times formula-decl nil sqrt "reals/")
    (- const-decl "[numfield, numfield -> numfield]" number_fields nil)
    (numfield nonempty-type-eq-decl nil number_fields 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)
    (real_minus_real_is_real application-judgement "real" reals nil)
    (sq_dist const-decl "nonneg_real" law_cosines nil)
    (real_times_real_is_real application-judgement "real" reals nil))
   shostak))
 (distance_rot 0
  (distance_rot-1 nil 3269668867
   ("" (skosimp*)
    (("" (expand "dist")
      (("" (expand "sq_dist")
        (("" (name "KX" "x0!1 - x1!1")
          (("" (name "KY" "y0!1 - y1!1")
            ((""
              (case "(cos(ac!1) * x0!1 + sin(ac!1) * y1!1 - cos(ac!1) * x1!1 -
                sin(ac!1) * y0!1) = cos(ac!1)*KX - sin(ac!1)*KY")
              (("1" (replace -1)
                (("1"
                  (case "(cos(ac!1) * y0!1 + sin(ac!1) * x0!1 - cos(ac!1) * y1!1 -
                 sin(ac!1) * x1!1) = sin(ac!1)*KX +cos(ac!1)*KY")
                  (("1" (replace -1)
                    (("1" (replace -3)
                      (("1" (replace -4)
                        (("1" (hide-all-but 1)
                          (("1" (lemma "sin2_cos2" ("a" "ac!1"))
                            (("1" (name-replace "SIN" "sin(ac!1)")
                              (("1"
                                (name-replace "COS" "cos(ac!1)")
                                (("1"
                                  (expand "sq")
                                  (("1" (assertnil nil))
                                  nil))
                                nil))
                              nil))
                            nil))
                          nil))
                        nil))
                      nil))
                    nil)
                   ("2" (hide 2 -1)
                    (("2" (expand "KX")
                      (("2" (expand "KY") (("2" (propax) nil nil))
                        nil))
                      nil))
                    nil))
                  nil))
                nil)
               ("2" (expand "KY")
                (("2" (expand "KX") (("2" (propax) nil nil)) nil))
                nil))
              nil))
            nil))
          nil))
        nil))
      nil))
    nil)
   ((sin_range application-judgement "trig_range" sincos_def nil)
    (real_times_real_is_real application-judgement "real" reals nil)
    (cos_range application-judgement "trig_range" sincos_def nil)
    (dist const-decl "nonneg_real" law_cosines 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)
    (- const-decl "[numfield, numfield -> numfield]" number_fields nil)
    (numfield nonempty-type-eq-decl nil number_fields nil)
    (number_field_pred const-decl "[number -> boolean]" number_fields
     nil)
    (= const-decl "[T, T -> boolean]" equalities nil)
    (boolean nonempty-type-decl nil booleans nil)
    (number nonempty-type-decl nil numbers nil)
    (+ const-decl "[numfield, numfield -> numfield]" number_fields nil)
    (* const-decl "[numfield, numfield -> numfield]" number_fields nil)
    (cos const-decl "real" sincos_def nil)
    (sin const-decl "real" sincos_def nil)
    (minus_odd_is_odd application-judgement "odd_int" integers nil)
    (trig_range type-eq-decl nil sincos_def nil)
    (- const-decl "[numfield -> numfield]" number_fields nil)
    (<= const-decl "bool" reals nil)
    (AND const-decl "[bool, bool -> bool]" booleans nil)
    (bool nonempty-type-eq-decl nil booleans nil)
    (sq const-decl "nonneg_real" sq "reals/")
    (sin2_cos2 formula-decl nil trig_basic nil)
    (KX skolem-const-decl "real" law_cosines nil)
    (KY skolem-const-decl "real" law_cosines nil)
    (sq_dist const-decl "nonneg_real" law_cosines nil)
    (real_minus_real_is_real application-judgement "real" reals nil)
    (real_plus_real_is_real application-judgement "real" reals nil))
   shostak))
 (dot_product 0
  (dot_product-2 nil 3286013993
   ("" (stop-rewrite "sq_sqrt")
    (("" (skosimp*)
      (("" (lemma "distance_trans" ("x2" "-x1!1" "y2" "-y1!1"))
        (("" (inst-cp - "x1!1" "x0!1" "y1!1" "y0!1")
          (("" (replace -2)
            (("" (inst-cp - "x2!1" "x0!1" "y2!1" "y0!1")
              (("" (replace -2)
                (("" (inst - "x2!1" "x1!1" "y2!1" "y1!1")
                  (("" (replace -1)
                    (("" (hide-all-but 1)
                      (("" (name-replace "X0" "x0!1 - x1!1")
                        (("" (name-replace "Y0" "y0!1 - y1!1")
                          (("" (name-replace "X2" "x2!1 - x1!1")
                            (("" (name-replace "Y2" "y2!1 - y1!1")
                              ((""
                                (assert)
                                ((""
                                  (expand "dist")
                                  ((""
                                    (expand "sq_dist")
                                    ((""
                                      (lemma "sq_neg")
                                      ((""
                                        (inst-cp - "X0")
                                        ((""
                                          (inst-cp - "Y0")
                                          ((""
                                            (replace -2)
                                            ((""
                                              (replace -3)
                                              ((""
                                                (lemma "sqrt_times")
                                                ((""
                                                  (inst
                                                   -
                                                   "sq(X0) + sq(Y0)"
                                                   "sq(X2) + sq(Y2)")
                                                  ((""
                                                    (case
                                                     "-1 * -x1!1 - x1!1 = 0")
                                                    (("1"
                                                      (simplify -2)
                                                      (("1"
                                                        (case
                                                         "abs(X0 * X2 + Y0 * Y2) <= sqrt(sq(X0) + sq(Y0)) * sqrt(sq(X2) + sq(Y2))")
                                                        (("1"
                                                          (typepred
                                                           "sqrt(sq(X0) * sq(X2) + sq(X0) * sq(Y2) +
                  (sq(X2) * sq(Y0) + sq(Y0) * sq(Y2)))")
                                                          (("1"
                                                            (expand
                                                             ">="
                                                             -1)
                                                            (("1"
                                                              (expand
                                                               "<="
                                                               -1)
                                                              (("1"
                                                                (split
                                                                 -1)
                                                                (("1"
                                                                  (case
                                                                   "-1<= (X0 * X2 + Y0 * Y2)/sqrt(sq(X0) * sq(X2) + sq(X0) * sq(Y2) + sq(X2) * sq(Y0) +
                          sq(Y0) * sq(Y2))")
                                                                  (("1"
                                                                    (case
                                                                     "(X0 * X2 + Y0 * Y2) /
                       sqrt(sq(X0) * sq(X2) + sq(X0) * sq(Y2) + sq(X2) * sq(Y0) +
                             sq(Y0) * sq(Y2)) <= 1")
                                                                    (("1"
                                                                      (name-replace
                                                                       "DEN"
                                                                       "sqrt(sq(X0) * sq(X2) + sq(X0) * sq(Y2) + sq(X2) * sq(Y0) +
                          sq(Y0) * sq(Y2))")
                                                                      (("1"
                                                                        (name-replace
                                                                         "NUM"
                                                                         "X0 * X2 + Y0 * Y2")
                                                                        (("1"
                                                                          (inst
                                                                           +
                                                                           "acos(NUM/DEN)")
                                                                          (("1"
                                                                            (lemma
                                                                             "div_cancel4"
                                                                             ("y"
                                                                              "cos(acos(NUM / DEN))"
                                                                              "n0z"
                                                                              "sqrt(sq(X0) + sq(Y0)) * sqrt(sq(X2) + sq(Y2))"
                                                                              "x"
                                                                              "NUM"))
                                                                            (("1"
                                                                              (hide-all-but
                                                                               (-2
                                                                                -3
                                                                                -4
                                                                                1))
                                                                              (("1"
                                                                                (name-replace
                                                                                 "K10"
                                                                                 "NUM / DEN")
                                                                                (("1"
                                                                                  (hide
                                                                                   -3)
                                                                                  (("1"
                                                                                    (typepred
                                                                                     "acos(K10)")
                                                                                    (("1"
                                                                                      (expand
                                                                                       "cos")
                                                                                      (("1"
                                                                                        (case
                                                                                         "floor(acos(K10) / (2 * pi))=0")
                                                                                        (("1"
                                                                                          (replace
                                                                                           -1)
                                                                                          (("1"
                                                                                            (simplify
                                                                                             1)
                                                                                            (("1"
                                                                                              (expand
                                                                                               "<="
                                                                                               -3)
                                                                                              (("1"
                                                                                                (split
                                                                                                 -3)
                                                                                                (("1"
                                                                                                  (hide
                                                                                                   -2)
                                                                                                  (("1"
                                                                                                    (lemma
                                                                                                     "phase_cos_q1"
                                                                                                     ("x"
                                                                                                      "acos(K10)"))
                                                                                                    (("1"
                                                                                                      (expand
                                                                                                       "cos_phase")
                                                                                                      (("1"
                                                                                                        (expand
                                                                                                         ">=")
                                                                                                        (("1"
                                                                                                          (replace
                                                                                                           -2)
                                                                                                          (("1"
                                                                                                            (replace
                                                                                                             -3)
                                                                                                            (("1"
                                                                                                              (flatten
                                                                                                               -1)
                                                                                                              (("1"
                                                                                                                (replace
                                                                                                                 -1)
                                                                                                                (("1"
                                                                                                                  (lemma
                                                                                                                   "cos_value_acos"
                                                                                                                   ("xa"
                                                                                                                    "K10"))
                                                                                                                  (("1"
                                                                                                                    (replaces
                                                                                                                     -1)
                                                                                                                    (("1"
                                                                                                                      (expand
                                                                                                                       "K10")
                                                                                                                      (("1"
                                                                                                                        (cross-mult
                                                                                                                         1)
                                                                                                                        (("1"
                                                                                                                          (cancel-by
                                                                                                                           1
                                                                                                                           "NUM")
                                                                                                                          (("1"
                                                                                                                            (expand
                                                                                                                             "DEN"
                                                                                                                             2)
                                                                                                                            (("1"
                                                                                                                              (both-sides-f
                                                                                                                               2
                                                                                                                               "sq")
                                                                                                                              (("1"
                                                                                                                                (grind)
                                                                                                                                nil
                                                                                                                                nil)
                                                                                                                               ("2"
                                                                                                                                (rewrite
                                                                                                                                 "sq_eq")
                                                                                                                                nil
                                                                                                                                nil))
                                                                                                                              nil))
                                                                                                                            nil))
                                                                                                                          nil))
                                                                                                                        nil))
                                                                                                                      nil))
                                                                                                                    nil))
                                                                                                                  nil))
                                                                                                                nil))
                                                                                                              nil))
                                                                                                            nil))
                                                                                                          nil))
                                                                                                        nil))
                                                                                                      nil))
                                                                                                    nil))
                                                                                                  nil)
                                                                                                 ("2"
                                                                                                  (replace
                                                                                                   -1)
                                                                                                  (("2"
                                                                                                    (rewrite
                                                                                                     "cos_phase_pi")
                                                                                                    (("2"
                                                                                                      (lemma
                                                                                                       "acos_bij")
                                                                                                      (("2"
                                                                                                        (lemma
                                                                                                         "acos_minus1")
                                                                                                        (("2"
                                                                                                          (expand
                                                                                                           "bijective?")
                                                                                                          (("2"
                                                                                                            (expand
                                                                                                             "injective?")
                                                                                                            (("2"
                                                                                                              (flatten
                                                                                                               -2)
                                                                                                              (("2"
                                                                                                                (inst
                                                                                                                 -
                                                                                                                 "K10"
                                                                                                                 "-1")
                                                                                                                (("2"
                                                                                                                  (assert)
                                                                                                                  (("2"
                                                                                                                    (expand
                                                                                                                     "K10")
                                                                                                                    (("2"
                                                                                                                      (cross-mult
                                                                                                                       -2)
                                                                                                                      (("2"
                                                                                                                        (replaces
                                                                                                                         -2)
                                                                                                                        (("2"
                                                                                                                          (neg-formula
                                                                                                                           1)
                                                                                                                          (("2"
                                                                                                                            (expand
                                                                                                                             "DEN"
                                                                                                                             1)
                                                                                                                            (("2"
                                                                                                                              (both-sides-f
                                                                                                                               1
                                                                                                                               "sq")
                                                                                                                              (("1"
                                                                                                                                (grind)
                                                                                                                                nil
                                                                                                                                nil)
                                                                                                                               ("2"
                                                                                                                                (rewrite
                                                                                                                                 "sq_eq")
                                                                                                                                nil
                                                                                                                                nil))
                                                                                                                              nil))
                                                                                                                            nil))
                                                                                                                          nil))
                                                                                                                        nil))
                                                                                                                      nil))
                                                                                                                    nil))
                                                                                                                  nil))
                                                                                                                nil))
                                                                                                              nil))
                                                                                                            nil))
                                                                                                          nil))
                                                                                                        nil))
                                                                                                      nil))
                                                                                                    nil))
                                                                                                  nil))
                                                                                                nil))
                                                                                              nil))
                                                                                            nil))
                                                                                          nil)
                                                                                         ("2"
                                                                                          (name-replace
                                                                                           "K11"
                                                                                           "acos(K10)")
                                                                                          (("2"
                                                                                            (hide
                                                                                             -3
                                                                                             -4
                                                                                             2)
                                                                                            (("2"
                                                                                              (lemma
                                                                                               "floor_def"
                                                                                               ("x"
                                                                                                "K11 / (2 * pi)"))
                                                                                              (("2"
                                                                                                (rewrite
                                                                                                 "div_mult_pos_lt1")
                                                                                                (("2"
                                                                                                  (rewrite
                                                                                                   "div_mult_pos_le2")
                                                                                                  (("2"
                                                                                                    (flatten
                                                                                                     -1)
                                                                                                    (("2"
                                                                                                      (name-replace
                                                                                                       "K12"
                                                                                                       "floor(K11 / (2 * pi))")
                                                                                                      (("2"
                                                                                                        (case
                                                                                                         "K12>=1")
                                                                                                        (("1"
                                                                                                          (lemma
                                                                                                           "both_sides_times_pos_ge1"
                                                                                                           ("x"
                                                                                                            "K12"
                                                                                                            "y"
                                                                                                            "1"
                                                                                                            "pz"
                                                                                                            "2*pi"))
                                                                                                          (("1"
                                                                                                            (assert)
                                                                                                            nil
                                                                                                            nil))
                                                                                                          nil)
                                                                                                         ("2"
                                                                                                          (case
                                                                                                           "K12<=-1")
                                                                                                          (("1"
                                                                                                            (lemma
                                                                                                             "both_sides_times_pos_le1"
                                                                                                             ("x"
                                                                                                              "K12"
                                                                                                              "y"
                                                                                                              "-1"
                                                                                                              "pz"
                                                                                                              "2*pi"))
                                                                                                            (("1"
                                                                                                              (assert)
                                                                                                              nil
                                                                                                              nil))
                                                                                                            nil)
                                                                                                           ("2"
                                                                                                            (assert)
                                                                                                            nil
                                                                                                            nil))
                                                                                                          nil))
                                                                                                        nil))
                                                                                                      nil))
                                                                                                    nil))
                                                                                                  nil))
                                                                                                nil))
                                                                                              nil))
                                                                                            nil))
                                                                                          nil))
                                                                                        nil))
                                                                                      nil))
                                                                                    nil))
                                                                                  nil))
                                                                                nil))
                                                                              nil)
                                                                             ("2"
                                                                              (case
                                                                               "NUM / DEN < 0")
                                                                              (("1"
                                                                                (assert)
                                                                                nil
                                                                                nil)
                                                                               ("2"
                                                                                (assert)
                                                                                nil
                                                                                nil))
                                                                              nil))
                                                                            nil)
                                                                           ("2"
                                                                            (expand
                                                                             "abs")
                                                                            (("2"
                                                                              (case
                                                                               "NUM / DEN < 0")
                                                                              (("1"
                                                                                (assert)
                                                                                nil
                                                                                nil)
                                                                               ("2"
                                                                                (assert)
                                                                                nil
                                                                                nil))
                                                                              nil))
                                                                            nil))
                                                                          nil))
                                                                        nil))
                                                                      nil)
                                                                     ("2"
                                                                      (hide
                                                                       -1
                                                                       2)
                                                                      (("2"
                                                                        (rewrite
                                                                         "div_mult_pos_le1"
                                                                         1)
                                                                        (("2"
                                                                          (expand
                                                                           "abs"
                                                                           -3)
                                                                          (("2"
                                                                            (case
                                                                             "X0 * X2 + Y0 * Y2 < 0")
                                                                            (("1"
                                                                              (assert)
                                                                              nil
                                                                              nil)
                                                                             ("2"
                                                                              (assert)
                                                                              nil
                                                                              nil))
                                                                            nil))
                                                                          nil))
                                                                        nil))
                                                                      nil))
                                                                    nil)
                                                                   ("2"
                                                                    (hide
                                                                     2)
                                                                    (("2"
                                                                      (replace
                                                                       -5
                                                                       -3
                                                                       rl)
                                                                      (("2"
                                                                        (rewrite
                                                                         "div_mult_pos_le2"
                                                                         1)
                                                                        (("2"
                                                                          (expand
                                                                           "abs"
                                                                           -3)
                                                                          (("2"
                                                                            (case
                                                                             "X0 * X2 + Y0 * Y2 < 0")
                                                                            (("1"
                                                                              (assert)
                                                                              nil
                                                                              nil)
                                                                             ("2"
                                                                              (assert)
                                                                              nil
                                                                              nil))
                                                                            nil))
                                                                          nil))
                                                                        nil))
                                                                      nil))
                                                                    nil)
                                                                   ("3"
                                                                    (assert)
                                                                    nil
                                                                    nil))
                                                                  nil)
                                                                 ("2"
                                                                  (replace
                                                                   -1
                                                                   *
                                                                   rl)
                                                                  (("2"
                                                                    (inst
                                                                     +
                                                                     "0")
                                                                    (("2"
                                                                      (rewrite
                                                                       "cos_0")
                                                                      (("2"
                                                                        (replace
                                                                         -5
                                                                         1
                                                                         rl)
                                                                        (("2"
                                                                          (hide-all-but
                                                                           (-5
                                                                            1))
                                                                          (("2"
                                                                            (lemma
                                                                             "zero_times3"
                                                                             ("x"
                                                                              "sqrt(sq(X0) + sq(Y0))"
                                                                              "y"
                                                                              "sqrt(sq(X2) + sq(Y2))"))
                                                                            (("2"
                                                                              (replace
                                                                               -2
                                                                               -1
                                                                               rl)
                                                                              (("2"
                                                                                (flatten
                                                                                 -1)
                                                                                (("2"
                                                                                  (hide
                                                                                   -2)
                                                                                  (("2"
                                                                                    (split
                                                                                     -1)
                                                                                    (("1"
                                                                                      (lemma
                                                                                       "sqrt_eq"
                                                                                       ("nny"
                                                                                        "sq(X0) + sq(Y0)"
                                                                                        "nnz"
                                                                                        "0"))
                                                                                      (("1"
                                                                                        (rewrite
                                                                                         "sqrt_0")
                                                                                        (("1"
                                                                                          (replace
                                                                                           -2)
                                                                                          (("1"
                                                                                            (flatten)
                                                                                            (("1"
                                                                                              (hide
                                                                                               -2)
                                                                                              (("1"
                                                                                                (lemma
                                                                                                 "sq_plus_eq_0"
                                                                                                 ("a"
                                                                                                  "X0"
                                                                                                  "b"
                                                                                                  "Y0"))
                                                                                                (("1"
                                                                                                  (assert)
                                                                                                  (("1"
                                                                                                    (flatten
                                                                                                     -1)
                                                                                                    (("1"
                                                                                                      (assert)
                                                                                                      nil
                                                                                                      nil))
                                                                                                    nil))
                                                                                                  nil))
                                                                                                nil))
                                                                                              nil))
                                                                                            nil))
                                                                                          nil))
                                                                                        nil))
                                                                                      nil)
                                                                                     ("2"
                                                                                      (lemma
                                                                                       "sq_plus_eq_0"
                                                                                       ("a"
                                                                                        "X2"
                                                                                        "b"
                                                                                        "Y2"))
                                                                                      (("2"
                                                                                        (lemma
                                                                                         "sqrt_eq"
                                                                                         ("nny"
                                                                                          "sq(X2) + sq(Y2)"
                                                                                          "nnz"
                                                                                          "0"))
                                                                                        (("2"
                                                                                          (rewrite
                                                                                           "sqrt_0")
                                                                                          (("2"
                                                                                            (replace
                                                                                             -3)
                                                                                            (("2"
                                                                                              (replace
                                                                                               -1
                                                                                               -2
                                                                                               rl)
                                                                                              (("2"
                                                                                                (flatten
                                                                                                 -2)
                                                                                                (("2"
                                                                                                  (assert)
                                                                                                  nil
                                                                                                  nil))
                                                                                                nil))
                                                                                              nil))
                                                                                            nil))
                                                                                          nil))
                                                                                        nil))
                                                                                      nil))
                                                                                    nil))
                                                                                  nil))
                                                                                nil))
                                                                              nil))
                                                                            nil))
                                                                          nil))
                                                                        nil))
                                                                      nil))
                                                                    nil))
                                                                  nil))
                                                                nil))
                                                              nil))
                                                            nil))
                                                          nil)
                                                         ("2"
                                                          (hide 2)
                                                          (("2"
                                                            (rewrite
                                                             "sq_le"
                                                             :dir
                                                             rl)
                                                            (("2"
                                                              (replace
                                                               -2
                                                               1
                                                               rl)
                                                              (("2"
                                                                (rewrite
                                                                 "sq_sqrt")
                                                                (("2"
                                                                  (case
                                                                   "FORALL (x:real): sq(abs(x)) = sq(x)")
                                                                  (("1"
                                                                    (inst
                                                                     -
                                                                     "X0 * X2 + Y0 * Y2")
                                                                    (("1"
                                                                      (rewrite
                                                                       "sq_plus")
                                                                      (("1"
                                                                        (rewrite
                                                                         "sq_times")
                                                                        (("1"
                                                                          (rewrite
                                                                           "sq_times")
                                                                          (("1"
                                                                            (simplify
                                                                             1)
                                                                            (("1"
                                                                              (case
                                                                               "2*(X0 * X2 * Y0 * Y2) <= sq(X2) * sq(Y0) + sq(X0) * sq(Y2)")
                                                                              (("1"
                                                                                (assert)
                                                                                nil
                                                                                nil)
                                                                               ("2"
                                                                                (hide
                                                                                 2)
                                                                                (("2"
                                                                                  (rewrite
                                                                                   "sq_times"
                                                                                   :dir
                                                                                   rl)
                                                                                  (("2"
                                                                                    (rewrite
                                                                                     "sq_times"
                                                                                     :dir
                                                                                     rl)
                                                                                    (("2"
                                                                                      (lemma
                                                                                       "sq_minus"
                                                                                       ("a"
                                                                                        "X2 * Y0"
                                                                                        "b"
                                                                                        "X0 * Y2"))
                                                                                      (("2"
                                                                                        (assert)
                                                                                        nil
                                                                                        nil))
                                                                                      nil))
                                                                                    nil))
                                                                                  nil))
                                                                                nil))
                                                                              nil))
                                                                            nil))
                                                                          nil))
                                                                        nil))
                                                                      nil))
                                                                    nil)
                                                                   ("2"
                                                                    (hide-all-but
                                                                     1)
                                                                    (("2"
                                                                      (expand
                                                                       "abs")
                                                                      (("2"
                                                                        (skosimp*)
                                                                        (("2"
                                                                          (rewrite
                                                                           "sq_neg")
                                                                          (("2"
                                                                            (case
                                                                             "x!1<0")
                                                                            (("1"
                                                                              (assert)
                                                                              nil
                                                                              nil)
                                                                             ("2"
                                                                              (assert)
                                                                              nil
                                                                              nil))
                                                                            nil))
                                                                          nil))
                                                                        nil))
                                                                      nil))
                                                                    nil))
                                                                  nil))
                                                                nil))
                                                              nil))
                                                            nil))
                                                          nil))
                                                        nil))
                                                      nil)
                                                     ("2"
                                                      (assert)
                                                      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)
   ((dist const-decl "nonneg_real" law_cosines nil)
    (sq_neg formula-decl nil sq "reals/")
    (nnreal_plus_nnreal_is_nnreal application-judgement "nnreal"
     real_types nil)
    (sq const-decl "nonneg_real" sq "reals/")
    (+ const-decl "[numfield, numfield -> numfield]" number_fields nil)
    (nonneg_real nonempty-type-eq-decl nil real_types nil)
    (>= const-decl "bool" reals nil)
    (bool nonempty-type-eq-decl nil booleans nil)
    (sq_plus formula-decl nil sq "reals/")
    (sq_minus formula-decl nil sq "reals/")
    (sq_times formula-decl nil sq "reals/")
    (sq_sqrt formula-decl nil sqrt "reals/")
    (sq_abs formula-decl nil sq "reals/")
    (sq_le formula-decl nil sq "reals/")
    (NOT const-decl "[bool -> bool]" booleans nil)
    (cos_0 formula-decl nil trig_basic nil)
    (sqrt_eq formula-decl nil sqrt "reals/")
    (sq_plus_eq_0 formula-decl nil sq "reals/")
    (sqrt_0 formula-decl nil sqrt "reals/")
    (zero_times3 formula-decl nil real_props nil)
    (minus_odd_is_odd application-judgement "odd_int" integers nil)
    (real_div_nzreal_is_real application-judgement "real" reals nil)
    (/= const-decl "boolean" notequal nil)
    (nznum nonempty-type-eq-decl nil number_fields nil)
    (/ const-decl "[numfield, nznum -> numfield]" number_fields nil)
    (div_mult_pos_le1 formula-decl nil 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)
    (NUM skolem-const-decl "real" law_cosines nil)
    (X0 skolem-const-decl "real" law_cosines nil)
    (X2 skolem-const-decl "real" law_cosines nil)
    (Y2 skolem-const-decl "real" law_cosines nil)
    (Y0 skolem-const-decl "real" law_cosines nil)
    (DEN skolem-const-decl "{nnz: nnreal |
         nnz * nnz =
          sq(X0) * sq(X2) + sq(X0) * sq(Y2) + sq(X2) * sq(Y0) +
           sq(Y0) * sq(Y2)}" law_cosines nil)
    (acos const-decl "nnreal_le_pi" acos nil)
    (nnreal_le_pi nonempty-type-eq-decl nil acos nil)
    (pi const-decl "posreal" atan nil)
    (posreal nonempty-type-eq-decl nil real_types nil)
    (> const-decl "bool" reals nil)
    (real_abs_le1 nonempty-type-eq-decl nil asin nil)
    (pi_bound name-judgement "{r: posreal | pi_lb < r AND r < pi_ub}"
     atan_approx nil)
    (posreal_times_posreal_is_posreal application-judgement "posreal"
     real_types nil)
    (nonneg_floor_is_nat application-judgement "nat" floor_ceil nil)
    (minus_even_is_even application-judgement "even_int" integers nil)
    (minus_nzint_is_nzint application-judgement "nzint" integers nil)
    (floor_def formula-decl nil floor_ceil nil)
    (div_mult_pos_le2 formula-decl nil real_props nil)
    (both_sides_times_pos_le1 formula-decl nil real_props nil)
    (both_sides_times_pos_ge1 formula-decl nil real_props nil)
    (nnreal_plus_posreal_is_posreal application-judgement "posreal"
     real_types nil)
    (real_lt_is_strict_total_order name-judgement
     "(strict_total_order?[real])" real_props nil)
    (nnint_plus_posint_is_posint application-judgement "posint"
     integers nil)
    (div_mult_pos_lt1 formula-decl nil real_props nil)
    (acos_bij formula-decl nil acos nil)
    (real_ge_is_total_order name-judgement "(total_order?[real])"
     real_props nil)
    (posreal_div_posreal_is_posreal application-judgement "posreal"
     real_types nil)
    (mult_neg formula-decl nil extra_tegies nil)
    (injective? const-decl "bool" functions nil)
    (acos_minus1 formula-decl nil acos nil)
    (cos_phase_pi formula-decl nil sincos_phase nil)
    (cos_phase const-decl "real_abs_le1" sincos_phase nil)
    (cos_value_acos formula-decl nil sincos_quad nil)
    (K10 skolem-const-decl "real" law_cosines nil)
    (TRUE const-decl "bool" booleans nil)
    (id const-decl "(bijective?[T, T])" identity nil)
    (bijective? const-decl "bool" functions nil)
    (CBD_12 skolem-const-decl "real" law_cosines nil)
    (both_sides_times1 formula-decl nil real_props nil)
    (nzreal_div_nzreal_is_nzreal application-judgement "nzreal"
     real_types nil)
    (neg_neg formula-decl nil extra_tegies nil)
    (neg_one_times formula-decl nil extra_tegies nil)
    (sq_eq formula-decl nil sq "reals/")
    (div_cancel3 formula-decl nil real_props nil)
    (times_div1 formula-decl nil real_props nil)
    (trig_phase nonempty-type-eq-decl nil sincos_phase nil)
    (phase_cos_q1 formula-decl nil sincos_phase nil)
    (floor const-decl "{i | i <= x & x < i + 1}" floor_ceil nil)
    (< const-decl "bool" reals nil)
    (integer nonempty-type-from-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)
    (nnreal_div_posreal_is_nnreal application-judgement "nnreal"
     real_types nil)
    (cos const-decl "real" sincos_def nil)
    (nonzero_real nonempty-type-eq-decl nil reals nil)
    (div_cancel4 formula-decl nil real_props nil)
    (sqrt const-decl "{nnz: nnreal | nnz * nnz = nnx}" sqrt "reals/")
    (nnreal type-eq-decl nil real_types nil)
    (abs const-decl "{n: nonneg_real | n >= m AND n >= -m}" real_defs
         nil)
    (AND const-decl "[bool, bool -> bool]" booleans nil)
    (<= const-decl "bool" reals nil)
    (* const-decl "[numfield, numfield -> numfield]" number_fields nil)
    (sqrt_times formula-decl nil sqrt "reals/")
    (sq_dist const-decl "nonneg_real" law_cosines nil)
    (real_plus_real_is_real application-judgement "real" reals nil)
    (= const-decl "[T, T -> boolean]" equalities nil)
    (- const-decl "[numfield, numfield -> numfield]" number_fields nil)
    (real_times_real_is_real application-judgement "real" reals nil)
    (real_minus_real_is_real application-judgement "real" reals nil)
    (cos_range application-judgement "trig_range" sincos_def nil)
    (nnreal_times_nnreal_is_nnreal application-judgement "nnreal"
     real_types nil)
    (minus_real_is_real application-judgement "real" reals nil)
    (distance_trans formula-decl nil law_cosines 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)
    (numfield nonempty-type-eq-decl nil number_fields nil)
    (- const-decl "[numfield -> numfield]" number_fields nil))
   nil)
  (dot_product-1 nil 3269670013
   ("" (skosimp*)
    (("" (lemma "distance_trans" ("x2" "-x1!1" "y2" "-y1!1"))
      (("" (inst-cp - "x1!1" "x0!1" "y1!1" "y0!1")
        (("" (replace -2)
          (("" (inst-cp - "x2!1" "x0!1" "y2!1" "y0!1")
            (("" (replace -2)
              (("" (inst - "x2!1" "x1!1" "y2!1" "y1!1")
                (("" (replace -1)
                  (("" (hide-all-but 1)
                    (("" (name-replace "X0" "x0!1 - x1!1")
                      (("" (name-replace "Y0" "y0!1 - y1!1")
                        (("" (name-replace "X2" "x2!1 - x1!1")
                          (("" (name-replace "Y2" "y2!1 - y1!1")
                            (("" (assert)
                              ((""
                                (expand "dist")
                                ((""
                                  (expand "sq_dist")
                                  ((""
                                    (lemma "sq_neg")
                                    ((""
                                      (inst-cp - "X0")
                                      ((""
                                        (inst-cp - "Y0")
                                        ((""
                                          (replace -2)
                                          ((""
                                            (replace -3)
                                            ((""
                                              (lemma "sqrt_times")
                                              ((""
                                                (inst
                                                 -
                                                 "sq(X0) + sq(Y0)"
                                                 "sq(X2) + sq(Y2)")
                                                ((""
                                                  (case
                                                   "-1 * -x1!1 - x1!1 = 0")
                                                  (("1"
                                                    (replace -1)
                                                    (("1"
                                                      (simplify 1)
                                                      (("1"
                                                        (simplify -2)
                                                        (("1"
                                                          (case
                                                           "abs(X0 * X2 + Y0 * Y2) <= sqrt(sq(X0) + sq(Y0)) * sqrt(sq(X2) + sq(Y2))")
                                                          (("1"
                                                            (typepred
                                                             "sqrt(sq(X0) * sq(X2) + sq(X0) * sq(Y2) +
            (sq(X2) * sq(Y0) + sq(Y0) * sq(Y2)))")
                                                            (("1"
                                                              (expand
                                                               ">="
                                                               -1)
                                                              (("1"
                                                                (expand
                                                                 "<="
                                                                 -1)
                                                                (("1"
                                                                  (split
                                                                   -1)
                                                                  (("1"
                                                                    (case
                                                                     "-1<= (X0 * X2 + Y0 * Y2)/sqrt(sq(X0) * sq(X2) + sq(X0) * sq(Y2) + sq(X2) * sq(Y0) +
             sq(Y0) * sq(Y2))")
                                                                    (("1"
                                                                      (case
                                                                       "(X0 * X2 + Y0 * Y2) /
        sqrt(sq(X0) * sq(X2) + sq(X0) * sq(Y2) + sq(X2) * sq(Y0) +
              sq(Y0) * sq(Y2)) <= 1")
                                                                      (("1"
                                                                        (name-replace
                                                                         "DEN"
                                                                         "sqrt(sq(X0) * sq(X2) + sq(X0) * sq(Y2) + sq(X2) * sq(Y0) +
              sq(Y0) * sq(Y2))")
                                                                        (("1"
                                                                          (name-replace
                                                                           "NUM"
                                                                           "X0 * X2 + Y0 * Y2")
                                                                          (("1"
                                                                            (inst
                                                                             +
                                                                             "acos(NUM/DEN)")
                                                                            (("1"
                                                                              (lemma
                                                                               "div_cancel4"
                                                                               ("y"
                                                                                "cos(acos(NUM / DEN))"
                                                                                "n0z"
                                                                                "sqrt(sq(X0) + sq(Y0)) * sqrt(sq(X2) + sq(Y2))"
                                                                                "x"
                                                                                "NUM"))
                                                                              (("1"
                                                                                (hide-all-but
                                                                                 (-2
                                                                                  -3
                                                                                  -4
                                                                                  1))
                                                                                (("1"
                                                                                  (name-replace
                                                                                   "K10"
                                                                                   "NUM / DEN")
                                                                                  (("1"
                                                                                    (hide
                                                                                     -3)
                                                                                    (("1"
                                                                                      (typepred
                                                                                       "acos(K10)")
                                                                                      (("1"
                                                                                        (expand
                                                                                         "cos")
                                                                                        (("1"
                                                                                          (case
                                                                                           "floor(acos(K10) / (2 * pi))=0")
                                                                                          (("1"
                                                                                            (replace
                                                                                             -1)
                                                                                            (("1"
                                                                                              (simplify
                                                                                               1)
                                                                                              (("1"
                                                                                                (expand
                                                                                                 "<="
                                                                                                 -3)
                                                                                                (("1"
                                                                                                  (split
                                                                                                   -3)
                                                                                                  (("1"
                                                                                                    (hide
                                                                                                     -2)
                                                                                                    (("1"
                                                                                                      (lemma
                                                                                                       "phase_cos_q1"
                                                                                                       ("x"
                                                                                                        "acos(K10)"))
                                                                                                      (("1"
                                                                                                        (expand
                                                                                                         "cos_phase")
                                                                                                        (("1"
                                                                                                          (expand
                                                                                                           ">=")
                                                                                                          (("1"
                                                                                                            (replace
                                                                                                             -2)
                                                                                                            (("1"
                                                                                                              (replace
                                                                                                               -3)
                                                                                                              (("1"
                                                                                                                (flatten
                                                                                                                 -1)
                                                                                                                (("1"
                                                                                                                  (replace
                                                                                                                   -1)
                                                                                                                  (("1"
                                                                                                                    (lemma
                                                                                                                     "cos_value_acos"
                                                                                                                     ("xa"
                                                                                                                      "K10"))
                                                                                                                    (("1"
                                                                                                                      (replaces
                                                                                                                       -1)
                                                                                                                      (("1"
                                                                                                                        (expand
                                                                                                                         "K10")
                                                                                                                        (("1"
                                                                                                                          (cross-mult
                                                                                                                           1)
                                                                                                                          (("1"
                                                                                                                            (cancel-by
                                                                                                                             1
                                                                                                                             "NUM")
                                                                                                                            (("1"
                                                                                                                              (expand
                                                                                                                               "DEN"
                                                                                                                               2)
                                                                                                                              (("1"
                                                                                                                                (wrap-formula
                                                                                                                                 2
                                                                                                                                 "sq")
                                                                                                                                (("1"
                                                                                                                                  (grind)
                                                                                                                                  nil
                                                                                                                                  nil)
                                                                                                                                 ("2"
                                                                                                                                  (rewrite
                                                                                                                                   "sq_eq")
                                                                                                                                  nil
                                                                                                                                  nil))
                                                                                                                                nil))
                                                                                                                              nil))
                                                                                                                            nil))
                                                                                                                          nil))
                                                                                                                        nil))
                                                                                                                      nil))
                                                                                                                    nil))
                                                                                                                  nil))
                                                                                                                nil))
                                                                                                              nil))
                                                                                                            nil))
                                                                                                          nil))
                                                                                                        nil))
                                                                                                      nil))
                                                                                                    nil)
                                                                                                   ("2"
                                                                                                    (replace
                                                                                                     -1)
                                                                                                    (("2"
                                                                                                      (rewrite
                                                                                                       "cos_phase_pi")
                                                                                                      (("2"
                                                                                                        (lemma
                                                                                                         "acos_bij")
                                                                                                        (("2"
                                                                                                          (lemma
                                                                                                           "acos_minus1")
                                                                                                          (("2"
                                                                                                            (expand
                                                                                                             "bijective?")
                                                                                                            (("2"
                                                                                                              (expand
                                                                                                               "injective?")
                                                                                                              (("2"
                                                                                                                (flatten
                                                                                                                 -2)
                                                                                                                (("2"
                                                                                                                  (inst
                                                                                                                   -
                                                                                                                   "K10"
                                                                                                                   "-1")
                                                                                                                  (("1"
                                                                                                                    (assert)
                                                                                                                    (("1"
                                                                                                                      (replaces
                                                                                                                       -2
                                                                                                                       :dir
                                                                                                                       rl)
                                                                                                                      (("1"
                                                                                                                        (expand
                                                                                                                         "K10")
                                                                                                                        (("1"
                                                                                                                          (cross-mult
                                                                                                                           1)
                                                                                                                          (("1"
                                                                                                                            (cancel-by
                                                                                                                             1
                                                                                                                             "NUM")
                                                                                                                            (("1"
                                                                                                                              (expand
                                                                                                                               "DEN"
                                                                                                                               2)
                                                                                                                              (("1"
                                                                                                                                (wrap-formula
                                                                                                                                 2
                                                                                                                                 "sq")
                                                                                                                                (("1"
                                                                                                                                  (grind)
                                                                                                                                  nil
                                                                                                                                  nil)
                                                                                                                                 ("2"
                                                                                                                                  (rewrite
                                                                                                                                   "sq_eq")
                                                                                                                                  nil
                                                                                                                                  nil))
                                                                                                                                nil))
                                                                                                                              nil))
                                                                                                                            nil))
                                                                                                                          nil))
                                                                                                                        nil))
                                                                                                                      nil))
                                                                                                                    nil)
                                                                                                                   ("2"
                                                                                                                    (expand
                                                                                                                     "abs")
                                                                                                                    (("2"
                                                                                                                      (assert)
                                                                                                                      nil
                                                                                                                      nil))
                                                                                                                    nil)
                                                                                                                   ("3"
                                                                                                                    (expand
                                                                                                                     "abs"
                                                                                                                     1)
                                                                                                                    (("3"
                                                                                                                      (case
                                                                                                                       "K10<0")
                                                                                                                      (("1"
                                                                                                                        (assert)
                                                                                                                        nil
                                                                                                                        nil)
                                                                                                                       ("2"
                                                                                                                        (assert)
                                                                                                                        nil
                                                                                                                        nil))
                                                                                                                      nil))
                                                                                                                    nil))
                                                                                                                  nil))
                                                                                                                nil))
                                                                                                              nil))
                                                                                                            nil))
                                                                                                          nil))
                                                                                                        nil))
                                                                                                      nil))
                                                                                                    nil))
                                                                                                  nil))
                                                                                                nil))
                                                                                              nil))
                                                                                            nil)
                                                                                           ("2"
                                                                                            (name-replace
                                                                                             "K11"
                                                                                             "acos(K10)")
                                                                                            (("2"
                                                                                              (hide
                                                                                               -3
                                                                                               -4
                                                                                               2)
                                                                                              (("2"
                                                                                                (lemma
                                                                                                 "floor_def"
                                                                                                 ("x"
                                                                                                  "K11 / (2 * pi)"))
                                                                                                (("2"
                                                                                                  (rewrite
                                                                                                   "div_mult_pos_lt1")
                                                                                                  (("2"
                                                                                                    (rewrite
                                                                                                     "div_mult_pos_le2")
                                                                                                    (("2"
                                                                                                      (flatten
                                                                                                       -1)
                                                                                                      (("2"
                                                                                                        (name-replace
                                                                                                         "K12"
                                                                                                         "floor(K11 / (2 * pi))")
                                                                                                        (("2"
                                                                                                          (case
                                                                                                           "K12>=1")
                                                                                                          (("1"
                                                                                                            (lemma
                                                                                                             "both_sides_times_pos_ge1"
                                                                                                             ("x"
                                                                                                              "K12"
                                                                                                              "y"
                                                                                                              "1"
                                                                                                              "pz"
                                                                                                              "2*pi"))
                                                                                                            (("1"
                                                                                                              (assert)
                                                                                                              nil
                                                                                                              nil))
                                                                                                            nil)
                                                                                                           ("2"
                                                                                                            (case
                                                                                                             "K12<=-1")
                                                                                                            (("1"
                                                                                                              (lemma
                                                                                                               "both_sides_times_pos_le1"
                                                                                                               ("x"
                                                                                                                "K12"
                                                                                                                "y"
                                                                                                                "-1"
                                                                                                                "pz"
                                                                                                                "2*pi"))
                                                                                                              (("1"
                                                                                                                (assert)
                                                                                                                nil
                                                                                                                nil))
                                                                                                              nil)
                                                                                                             ("2"
                                                                                                              (assert)
                                                                                                              nil
                                                                                                              nil))
                                                                                                            nil))
                                                                                                          nil))
                                                                                                        nil))
                                                                                                      nil))
                                                                                                    nil))
                                                                                                  nil))
                                                                                                nil))
                                                                                              nil))
                                                                                            nil))
                                                                                          nil))
                                                                                        nil)
                                                                                       ("2"
                                                                                        (expand
                                                                                         "abs")
                                                                                        (("2"
                                                                                          (case
                                                                                           "K10<0")
                                                                                          (("1"
                                                                                            (assert)
                                                                                            nil
                                                                                            nil)
                                                                                           ("2"
                                                                                            (assert)
                                                                                            nil
                                                                                            nil))
                                                                                          nil))
                                                                                        nil))
                                                                                      nil))
                                                                                    nil))
                                                                                  nil))
                                                                                nil)
                                                                               ("2"
                                                                                (expand
                                                                                 "abs"
                                                                                 1)
                                                                                (("2"
                                                                                  (case
                                                                                   "NUM / DEN < 0")
                                                                                  (("1"
                                                                                    (assert)
                                                                                    nil
                                                                                    nil)
                                                                                   ("2"
                                                                                    (assert)
                                                                                    nil
                                                                                    nil)
                                                                                   ("3"
                                                                                    (assert)
                                                                                    nil
                                                                                    nil))
                                                                                  nil))
                                                                                nil)
                                                                               ("3"
                                                                                (assert)
                                                                                nil
                                                                                nil)
                                                                               ("4"
                                                                                (assert)
                                                                                nil
                                                                                nil))
                                                                              nil)
                                                                             ("2"
                                                                              (expand
                                                                               "abs")
                                                                              (("2"
                                                                                (case
                                                                                 "NUM / DEN < 0")
                                                                                (("1"
                                                                                  (assert)
                                                                                  nil
                                                                                  nil)
                                                                                 ("2"
                                                                                  (assert)
                                                                                  nil
                                                                                  nil)
                                                                                 ("3"
                                                                                  (assert)
                                                                                  nil
                                                                                  nil))
                                                                                nil))
                                                                              nil)
                                                                             ("3"
                                                                              (assert)
                                                                              nil
                                                                              nil))
                                                                            nil))
                                                                          nil))
                                                                        nil)
                                                                       ("2"
                                                                        (hide
                                                                         -1
                                                                         2)
                                                                        (("2"
                                                                          (rewrite
                                                                           "div_mult_pos_le1"
                                                                           1)
                                                                          (("2"
                                                                            (expand
                                                                             "abs"
                                                                             -3)
                                                                            (("2"
                                                                              (case
                                                                               "X0 * X2 + Y0 * Y2 < 0")
                                                                              (("1"
                                                                                (assert)
                                                                                nil
                                                                                nil)
                                                                               ("2"
                                                                                (assert)
                                                                                nil
                                                                                nil))
                                                                              nil))
                                                                            nil))
                                                                          nil))
                                                                        nil))
                                                                      nil)
                                                                     ("2"
                                                                      (hide
                                                                       2)
                                                                      (("2"
                                                                        (replace
                                                                         -5
                                                                         -3
                                                                         rl)
                                                                        (("2"
                                                                          (rewrite
                                                                           "div_mult_pos_le2"
                                                                           1)
                                                                          (("2"
                                                                            (expand
                                                                             "abs"
                                                                             -3)
                                                                            (("2"
                                                                              (case
                                                                               "X0 * X2 + Y0 * Y2 < 0")
                                                                              (("1"
                                                                                (assert)
                                                                                nil
                                                                                nil)
                                                                               ("2"
                                                                                (assert)
                                                                                nil
                                                                                nil))
                                                                              nil))
                                                                            nil))
                                                                          nil))
                                                                        nil))
                                                                      nil)
                                                                     ("3"
                                                                      (assert)
                                                                      nil
                                                                      nil))
                                                                    nil)
                                                                   ("2"
                                                                    (replace
                                                                     -1
                                                                     *
                                                                     rl)
                                                                    (("2"
                                                                      (inst
                                                                       +
                                                                       "0")
                                                                      (("2"
                                                                        (rewrite
                                                                         "cos_0")
                                                                        (("2"
                                                                          (replace
                                                                           -5
                                                                           1
                                                                           rl)
                                                                          (("2"
                                                                            (hide-all-but
                                                                             (-5
                                                                              1))
                                                                            (("2"
                                                                              (lemma
                                                                               "zero_times3"
                                                                               ("x"
                                                                                "sqrt(sq(X0) + sq(Y0))"
                                                                                "y"
                                                                                "sqrt(sq(X2) + sq(Y2))"))
                                                                              (("2"
                                                                                (replace
                                                                                 -2
                                                                                 -1
                                                                                 rl)
                                                                                (("2"
                                                                                  (flatten
                                                                                   -1)
                                                                                  (("2"
                                                                                    (hide
                                                                                     -2)
                                                                                    (("2"
                                                                                      (split
                                                                                       -1)
                                                                                      (("1"
                                                                                        (lemma
                                                                                         "sqrt_eq"
                                                                                         ("nny"
                                                                                          "sq(X0) + sq(Y0)"
                                                                                          "nnz"
                                                                                          "0"))
                                                                                        (("1"
                                                                                          (rewrite
                                                                                           "sqrt_0")
                                                                                          (("1"
                                                                                            (replace
                                                                                             -2)
                                                                                            (("1"
                                                                                              (flatten)
                                                                                              (("1"
                                                                                                (hide
                                                                                                 -2)
                                                                                                (("1"
                                                                                                  (lemma
                                                                                                   "sq_plus_eq_0"
                                                                                                   ("a"
                                                                                                    "X0"
                                                                                                    "b"
                                                                                                    "Y0"))
                                                                                                  (("1"
                                                                                                    (assert)
                                                                                                    (("1"
                                                                                                      (flatten
                                                                                                       -1)
                                                                                                      (("1"
                                                                                                        (assert)
                                                                                                        nil
                                                                                                        nil))
                                                                                                      nil))
                                                                                                    nil))
                                                                                                  nil))
                                                                                                nil))
                                                                                              nil))
                                                                                            nil))
                                                                                          nil))
                                                                                        nil)
                                                                                       ("2"
                                                                                        (lemma
                                                                                         "sq_plus_eq_0"
                                                                                         ("a"
                                                                                          "X2"
                                                                                          "b"
                                                                                          "Y2"))
                                                                                        (("2"
                                                                                          (lemma
                                                                                           "sqrt_eq"
                                                                                           ("nny"
                                                                                            "sq(X2) + sq(Y2)"
                                                                                            "nnz"
                                                                                            "0"))
                                                                                          (("2"
                                                                                            (rewrite
                                                                                             "sqrt_0")
                                                                                            (("2"
                                                                                              (replace
                                                                                               -3)
                                                                                              (("2"
                                                                                                (replace
                                                                                                 -1
                                                                                                 -2
                                                                                                 rl)
                                                                                                (("2"
                                                                                                  (flatten
                                                                                                   -2)
                                                                                                  (("2"
                                                                                                    (assert)
                                                                                                    nil
                                                                                                    nil))
                                                                                                  nil))
                                                                                                nil))
                                                                                              nil))
                                                                                            nil))
                                                                                          nil))
                                                                                        nil))
                                                                                      nil))
                                                                                    nil))
                                                                                  nil))
                                                                                nil))
                                                                              nil))
                                                                            nil))
                                                                          nil))
                                                                        nil))
                                                                      nil))
                                                                    nil))
                                                                  nil))
                                                                nil))
                                                              nil))
                                                            nil)
                                                           ("2"
                                                            (hide 2)
                                                            (("2"
                                                              (rewrite
                                                               "sq_le"
                                                               :dir
                                                               rl)
                                                              (("2"
                                                                (replace
                                                                 -2
                                                                 1
                                                                 rl)
                                                                (("2"
                                                                  (rewrite
                                                                   "sq_sqrt")
                                                                  (("2"
                                                                    (case
                                                                     "FORALL (x:real): sq(abs(x)) = sq(x)")
                                                                    (("1"
                                                                      (inst
                                                                       -
                                                                       "X0 * X2 + Y0 * Y2")
                                                                      (("1"
                                                                        (replace
                                                                         -1)
                                                                        (("1"
                                                                          (rewrite
                                                                           "sq_plus")
                                                                          (("1"
                                                                            (rewrite
                                                                             "sq_times")
                                                                            (("1"
                                                                              (rewrite
                                                                               "sq_times")
                                                                              (("1"
                                                                                (simplify
                                                                                 1)
                                                                                (("1"
                                                                                  (case
                                                                                   "2*(X0 * X2 * Y0 * Y2) <= sq(X2) * sq(Y0) + sq(X0) * sq(Y2)")
                                                                                  (("1"
                                                                                    (assert)
                                                                                    nil
                                                                                    nil)
                                                                                   ("2"
                                                                                    (hide
                                                                                     2)
                                                                                    (("2"
                                                                                      (rewrite
                                                                                       "sq_times"
                                                                                       :dir
                                                                                       rl)
                                                                                      (("2"
                                                                                        (rewrite
                                                                                         "sq_times"
                                                                                         :dir
                                                                                         rl)
                                                                                        (("2"
                                                                                          (lemma
                                                                                           "sq_minus"
                                                                                           ("a"
                                                                                            "X2 * Y0"
                                                                                            "b"
                                                                                            "X0 * Y2"))
                                                                                          (("2"
                                                                                            (assert)
                                                                                            nil
                                                                                            nil))
                                                                                          nil))
                                                                                        nil))
                                                                                      nil))
                                                                                    nil))
                                                                                  nil))
                                                                                nil))
                                                                              nil))
                                                                            nil))
                                                                          nil))
                                                                        nil))
                                                                      nil)
                                                                     ("2"
                                                                      (hide-all-but
                                                                       1)
                                                                      (("2"
                                                                        (expand
                                                                         "abs")
                                                                        (("2"
                                                                          (skosimp*)
                                                                          (("2"
                                                                            (rewrite
                                                                             "sq_neg")
                                                                            (("2"
                                                                              (case
                                                                               "x!1<0")
                                                                              (("1"
                                                                                (assert)
                                                                                nil
                                                                                nil)
                                                                               ("2"
                                                                                (assert)
                                                                                nil
                                                                                nil))
                                                                              nil))
                                                                            nil))
                                                                          nil))
                                                                        nil))
                                                                      nil))
                                                                    nil))
                                                                  nil))
                                                                nil))
                                                              nil))
                                                            nil))
                                                          nil))
                                                        nil))
                                                      nil))
                                                    nil)
                                                   ("2"
                                                    (assert)
                                                    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)
   ((sq_neg formula-decl nil sq "reals/")
    (sq const-decl "nonneg_real" sq "reals/")
    (sq_times formula-decl nil sq "reals/")
    (sq_minus formula-decl nil sq "reals/")
    (sq_plus formula-decl nil sq "reals/")
    (sq_sqrt formula-decl nil sqrt "reals/")
    (sq_le formula-decl nil sq "reals/")
    (cos_0 formula-decl nil trig_basic nil)
    (sqrt_eq formula-decl nil sqrt "reals/")
    (sq_plus_eq_0 formula-decl nil sq "reals/")
    (sqrt_0 formula-decl nil sqrt "reals/")
    (acos const-decl "nnreal_le_pi" acos nil)
    (nnreal_le_pi nonempty-type-eq-decl nil acos nil)
    (pi const-decl "posreal" atan nil)
    (real_abs_le1 nonempty-type-eq-decl nil asin nil)
    (acos_bij formula-decl nil acos nil)
    (acos_minus1 formula-decl nil acos nil)
    (cos_phase_pi formula-decl nil sincos_phase nil)
    (cos_phase const-decl "real_abs_le1" sincos_phase nil)
    (cos_value_acos formula-decl nil sincos_quad nil)
    (sq_eq formula-decl nil sq "reals/")
    (trig_phase nonempty-type-eq-decl nil sincos_phase nil)
    (phase_cos_q1 formula-decl nil sincos_phase nil)
    (sqrt const-decl "{nnz: nnreal | nnz * nnz = nnx}" sqrt "reals/")
    (sqrt_times formula-decl nil sqrt "reals/"))
   shostak))
 (Law_Cosines 0
  (Law_Cosines-1 nil 3269434431
   ("" (expand "dist")
    (("" (expand "sq_dist")
      (("" (ground)
        (("" (expand "sq")
          (("" (ground) (("" (skosimp*) (("" (assertnil nil)) nil))
            nil))
          nil))
        nil))
      nil))
    nil)
   ((sq_dist const-decl "nonneg_real" law_cosines nil)
    (nnreal_times_nnreal_is_nnreal application-judgement "nnreal"
     real_types nil)
    (sq const-decl "nonneg_real" sq "reals/")
    (dist const-decl "nonneg_real" law_cosines nil)
    (nnreal_plus_nnreal_is_nnreal application-judgement "nnreal"
     real_types nil)
    (real_minus_real_is_real application-judgement "real" reals nil)
    (real_plus_real_is_real application-judgement "real" reals nil)
    (cos_range application-judgement "trig_range" sincos_def nil)
    (real_times_real_is_real application-judgement "real" reals nil))
   nil))
 (triangle 0
  (triangle-1 nil 3269434431
   (""
    (case "FORALL (x,y:real): dist(0,0,0,1) <= dist(x,y,0,1) + dist(x,y,0,0)")
    (("1"
      (case "FORALL (x,y:real,pz:posreal): dist(0, 0, 0, pz) <= dist(x, y, 0, pz) + dist(x, y, 0, 0)")
      (("1" (hide -2)
        (("1"
          (case "FORALL (x,y,a,b:real): dist(0, 0, a,b) <= dist(x, y, a,b) + dist(x, y, 0, 0)")
          (("1" (hide -2)
            (("1" (skosimp*)
              (("1"
                (lemma "distance_trans" ("x2" "-x0!1" "y2" "-y0!1"))
                (("1" (inst-cp - "x0!1" "x1!1" "y0!1" "y1!1")
                  (("1" (inst-cp - "x2!1" "x1!1" "y2!1" "y1!1")
                    (("1" (inst - "x2!1" "x0!1" "y2!1" "y0!1")
                      (("1"
                        (inst - "x2!1-x0!1" "y2!1-y0!1" "x1!1-x0!1"
                         "y1!1-y0!1")
                        (("1" (assertnil nil)) nil))
                      nil))
                    nil))
                  nil))
                nil))
              nil))
            nil)
           ("2" (hide 2)
            (("2" (skosimp*)
              (("2" (case "a!1=0")
                (("1" (replace -1)
                  (("1" (lemma "trichotomy" ("x" "b!1"))
                    (("1" (split -1)
                      (("1" (inst - "x!1" "y!1" "b!1")
                        (("1" (assertnil nil)) nil)
                       ("2" (replace -1)
                        (("2" (expand "dist")
                          (("2" (expand "sq_dist")
                            (("2" (rewrite "sq_0")
                              (("2"
                                (rewrite "sqrt_0")
                                (("2" (assertnil nil))
                                nil))
                              nil))
                            nil))
                          nil))
                        nil)
                       ("3" (inst - "x!1" "-y!1" "-b!1")
                        (("1" (expand "dist")
                          (("1" (expand "sq_dist")
                            (("1" (sq-simp) nil nil)) nil))
                          nil)
                         ("2" (assertnil nil))
                        nil))
                      nil))
                    nil))
                  nil)
                 ("2" (name "theta" "atan2(b!1,a!1)")
                  (("1" (lemma "distance_rot" ("ac" "theta"))
                    (("1" (lemma "sin_atan2" ("x" "b!1" "y" "a!1"))
                      (("1" (lemma "cos_atan2" ("x" "b!1" "y" "a!1"))
                        (("1" (assert)
                          (("1" (replace -4)
                            (("1" (inst-cp - "0" "a!1" "0" "b!1")
                              (("1"
                                (simplify -4)
                                (("1"
                                  (case
                                   "cos(theta) * a!1 - sin(theta) * b!1 = 0")
                                  (("1"
                                    (case
                                     "cos(theta) * b!1 + sin(theta) * a!1 = sqrt(sq(a!1)+sq(b!1))")
                                    (("1"
                                      (inst-cp - "x!1" "0" "y!1" "0")
                                      (("1"
                                        (inst
                                         -
                                         "x!1"
                                         "a!1"
                                         "y!1"
                                         "b!1")
                                        (("1"
                                          (replace -1)
                                          (("1"
                                            (replace -2)
                                            (("1"
                                              (replace -5)
                                              (("1"
                                                (replace -6)
                                                (("1"
                                                  (replace -7)
                                                  (("1"
                                                    (simplify 2)
                                                    (("1"
                                                      (inst
                                                       -
                                                       "cos(theta) * x!1 - sin(theta) * y!1"
                                                       "cos(theta) * y!1 + sin(theta) * x!1"
                                                       "sqrt(sq(a!1) + sq(b!1))")
                                                      (("1"
                                                        (hide
                                                         -3
                                                         -4
                                                         -5
                                                         -6
                                                         -7
                                                         -8
                                                         3)
                                                        (("1"
                                                          (lemma
                                                           "sqrt_pos"
                                                           ("px"
                                                            "sq(a!1) + sq(b!1)"))
                                                          (("1"
                                                            (propax)
                                                            nil
                                                            nil)
                                                           ("2"
                                                            (hide
                                                             -1
                                                             -2
                                                             2)
                                                            (("2"
                                                              (lemma
                                                               "sq_nz_pos"
                                                               ("nz"
                                                                "a!1"))
                                                              (("2"
                                                                (assert)
                                                                nil
                                                                nil))
                                                              nil))
                                                            nil))
                                                          nil))
                                                        nil))
                                                      nil))
                                                    nil))
                                                  nil))
                                                nil))
                                              nil))
                                            nil))
                                          nil))
                                        nil))
                                      nil)
                                     ("2"
                                      (hide -1 -4 -5 -6 -7 3)
                                      (("2"
                                        (case "b!1=0")
                                        (("1"
                                          (replace -1)
                                          (("1"
                                            (rewrite "sq_0")
                                            (("1"
                                              (simplify 1)
                                              (("1"
                                                (case "a!1>0")
                                                (("1"
                                                  (rewrite "sqrt_sq")
                                                  (("1"
                                                    (assert)
                                                    nil
                                                    nil))
                                                  nil)
                                                 ("2"
                                                  (lemma
                                                   "sq_neg"
                                                   ("a" "a!1"))
                                                  (("2"
                                                    (replace -1 2 rl)
                                                    (("2"
                                                      (rewrite
                                                       "sqrt_sq")
                                                      (("2"
                                                        (assert)
                                                        nil
                                                        nil))
                                                      nil))
                                                    nil))
                                                  nil))
                                                nil))
                                              nil))
                                            nil))
                                          nil)
                                         ("2"
                                          (assert)
                                          (("2"
                                            (case
                                             "1 + sq(a!1 / b!1) = (sq(a!1)+sq(b!1))/sq(b!1)")
                                            (("1"
                                              (replace -1)
                                              (("1"
                                                (rewrite "sqrt_div")
                                                (("1"
                                                  (case "b!1>0")
                                                  (("1"
                                                    (assert)
                                                    (("1"
                                                      (rewrite
                                                       "div_div1")
                                                      (("1"
                                                        (rewrite
                                                         "div_div1")
                                                        (("1"
                                                          (lemma
                                                           "div_cancel2"
                                                           ("x"
                                                            "a!1"
                                                            "n0z"
                                                            "b!1"))
                                                          (("1"
                                                            (replace
                                                             -1
                                                             -5)
                                                            (("1"
                                                              (replace
                                                               -4)
                                                              (("1"
                                                                (replace
                                                                 -5)
                                                                (("1"
                                                                  (lemma
                                                                   "div_cancel3"
                                                                   ("x"
                                                                    "b!1*b!1+a!1*a!1"
                                                                    "n0z"
                                                                    "sqrt(sq(a!1) + sq(b!1))"
                                                                    "y"
                                                                    "sqrt(sq(a!1) + sq(b!1))"))
                                                                  (("1"
                                                                    (replace
                                                                     -1
                                                                     2)
                                                                    (("1"
                                                                      (rewrite
                                                                       "sq_rew"
                                                                       2)
                                                                      (("1"
                                                                        (rewrite
                                                                         "sq_rew"
                                                                         2)
                                                                        (("1"
                                                                          (rewrite
                                                                           "sq_rew"
                                                                           2)
                                                                          (("1"
                                                                            (assert)
                                                                            nil
                                                                            nil))
                                                                          nil))
                                                                        nil))
                                                                      nil))
                                                                    nil))
                                                                  nil))
                                                                nil))
                                                              nil))
                                                            nil))
                                                          nil))
                                                        nil))
                                                      nil))
                                                    nil)
                                                   ("2"
                                                    (assert)
                                                    (("2"
                                                      (rewrite
                                                       "div_div1")
                                                      (("2"
                                                        (rewrite
                                                         "div_div1")
                                                        (("2"
                                                          (lemma
                                                           "sq_neg"
                                                           ("a" "b!1"))
                                                          (("2"
                                                            (replace
                                                             -1
                                                             *
                                                             rl)
                                                            (("2"
                                                              (case
                                                               "-((a!1 / b!1 * -b!1) / sqrt((sq(a!1) + sq(-b!1)))) = a!1/ sqrt((sq(a!1) + sq(-b!1)))")
                                                              (("1"
                                                                (replace
                                                                 -1)
                                                                (("1"
                                                                  (case
                                                                   "-1*-b!1=b!1")
                                                                  (("1"
                                                                    (replace
                                                                     -1)
                                                                    (("1"
                                                                      (hide
                                                                       -1
                                                                       -2
                                                                       -4)
                                                                      (("1"
                                                                        (replace
                                                                         -2)
                                                                        (("1"
                                                                          (replace
                                                                           -3)
                                                                          (("1"
                                                                            (replace
                                                                             -1)
                                                                            (("1"
                                                                              (hide
                                                                               (-1
                                                                                -2
                                                                                -3))
                                                                              (("1"
                                                                                (lemma
                                                                                 "div_cancel3")
                                                                                (("1"
                                                                                  (inst
                                                                                   -
                                                                                   "sqrt(sq(a!1) + sq(b!1))"
                                                                                   "b!1*b!1+a!1*a!1"
                                                                                   "sqrt(sq(a!1) + sq(b!1))")
                                                                                  (("1"
                                                                                    (replace
                                                                                     -1
                                                                                     3)
                                                                                    (("1"
                                                                                      (rewrite
                                                                                       "sq_rew")
                                                                                      (("1"
                                                                                        (rewrite
                                                                                         "sq_rew")
                                                                                        (("1"
                                                                                          (rewrite
                                                                                           "sq_rew")
                                                                                          (("1"
                                                                                            (assert)
                                                                                            nil
                                                                                            nil))
                                                                                          nil))
                                                                                        nil))
                                                                                      nil))
                                                                                    nil))
                                                                                  nil))
                                                                                nil))
                                                                              nil))
                                                                            nil))
                                                                          nil))
                                                                        nil))
                                                                      nil))
                                                                    nil)
                                                                   ("2"
                                                                    (assert)
                                                                    nil
                                                                    nil))
                                                                  nil))
                                                                nil)
                                                               ("2"
                                                                (hide
                                                                 4
                                                                 -3
                                                                 -4)
                                                                (("2"
                                                                  (assert)
                                                                  nil
                                                                  nil))
                                                                nil))
                                                              nil))
                                                            nil))
                                                          nil))
                                                        nil))
                                                      nil))
                                                    nil))
                                                  nil)
                                                 ("2"
                                                  (lemma
                                                   "sq_nz_pos"
                                                   ("nz" "b!1"))
                                                  (("2"
                                                    (assert)
                                                    nil
                                                    nil))
                                                  nil))
                                                nil))
                                              nil)
                                             ("2"
                                              (rewrite "sq_div")
                                              (("2" (assertnil nil))
                                              nil)
                                             ("3"
                                              (lemma
                                               "sq_nz_pos"
                                               ("nz" "b!1"))
                                              (("3" (assertnil nil))
                                              nil))
                                            nil))
                                          nil))
                                        nil))
                                      nil))
                                    nil)
                                   ("2"
                                    (hide -3 -4 -5 -6 3)
                                    (("2"
                                      (case "b!1=0")
                                      (("1" (assertnil nil)
                                       ("2"
                                        (case "b!1>0")
                                        (("1" (assertnil nil)
                                         ("2" (assertnil nil))
                                        nil))
                                      nil))
                                    nil))
                                  nil))
                                nil))
                              nil))
                            nil))
                          nil))
                        nil))
                      nil))
                    nil)
                   ("2" (case "b!1=0")
                    (("1" (assertnil nil) ("2" (assertnil nil))
                    nil))
                  nil))
                nil))
              nil))
            nil))
          nil))
        nil)
       ("2" (hide 2)
        (("2" (skosimp*)
          (("2" (lemma "distance_scale" ("pz" "pz!1"))
            (("2" (inst-cp - "0" "0" "0" "1")
              (("2" (inst-cp - "x!1/pz!1" "0" "y!1/pz!1" "1")
                (("2" (inst - "x!1/pz!1" "0" "y!1/pz!1" "0")
                  (("2" (inst - "x!1/pz!1" "y!1/pz!1")
                    (("2"
                      (lemma "both_sides_times_pos_le1"
                       ("x" "dist(0, 0, 0, 1)" "y"
                        "dist(x!1/pz!1, y!1/pz!1, 0, 1) + dist(x!1/pz!1, y!1/pz!1, 0, 0)"
                        "pz" "pz!1"))
                      (("2" (assertnil nil)) nil))
                    nil))
                  nil))
                nil))
              nil))
            nil))
          nil))
        nil))
      nil)
     ("2" (hide 2)
      (("2" (skosimp*)
        (("2" (expand "dist")
          (("2" (expand "sq_dist")
            (("2" (rewrite "sq_0")
              (("2" (name-replace "K1" "sq(x!1)")
                (("2" (rewrite "sq_le" :dir rl)
                  (("2" (rewrite "sq_plus")
                    (("2" (rewrite "sq_minus")
                      (("2" (lemma "trichotomy" ("x" "y!1"))
                        (("2" (split -1)
                          (("1"
                            (case "sq(y!1) - 2 * y!1 + K1 + (sq(y!1) + K1) >=0")
                            (("1" (assertnil nil)
                             ("2"
                              (case "y!1-sq(y!1)-K1 <= (sqrt(1 + sq(y!1) - 2 * y!1 + K1) * sqrt(sq(y!1) + K1))")
                              (("1" (assertnil nil)
                               ("2"
                                (hide 3)
                                (("2"
                                  (rewrite "sqrt_times" :dir rl)
                                  (("2"
                                    (rewrite "sq_le" :dir rl)
                                    (("2"
                                      (expand "sq" 1)
                                      (("2" (assertnil nil))
                                      nil))
                                    nil))
                                  nil))
                                nil)
                               ("3" (assertnil nil))
                              nil))
                            nil)
                           ("2" (replace -1)
                            (("2" (rewrite "sq_0")
                              (("2" (assertnil nil)) nil))
                            nil)
                           ("3" (assertnil nil))
                          nil))
                        nil))
                      nil))
                    nil))
                  nil))
                nil))
              nil))
            nil))
          nil))
        nil))
      nil))
    nil)
   ((sq_le formula-decl nil sq "reals/")
    (nnreal_plus_posreal_is_posreal application-judgement "posreal"
     real_types nil)
    (sq_1 formula-decl nil sq "reals/")
    (nnint_times_nnint_is_nnint application-judgement "nonneg_int"
     integers nil)
    (even_times_int_is_even application-judgement "even_int" integers
     nil)
    (mult_divides1 application-judgement "(divides(n))" divides nil)
    (mult_divides2 application-judgement "(divides(m))" divides nil)
    (odd_plus_even_is_odd application-judgement "odd_int" integers nil)
    (odd_minus_even_is_odd application-judgement "odd_int" integers
     nil)
    (posint_plus_nnint_is_posint application-judgement "posint"
     integers nil)
    (sq_plus formula-decl nil sq "reals/")
    (posreal nonempty-type-eq-decl nil real_types nil)
    (> const-decl "bool" reals nil)
    (real_le_is_total_order name-judgement "(total_order?[real])"
     real_props nil)
    (real_plus_real_is_real application-judgement "real" reals nil)
    (- const-decl "[numfield, numfield -> numfield]" number_fields nil)
    (real_minus_real_is_real application-judgement "real" reals nil)
    (- const-decl "[numfield -> numfield]" number_fields nil)
    (distance_trans formula-decl nil law_cosines nil)
    (minus_real_is_real application-judgement "real" reals nil)
    (nnreal_lt_2pi nonempty-type-eq-decl nil atan2 nil)
    (pi const-decl "posreal" atan nil)
    (* const-decl "[numfield, numfield -> numfield]" number_fields nil)
    (< const-decl "bool" reals nil)
    (nnreal type-eq-decl nil real_types nil)
    (atan2 const-decl "real" atan2 nil)
    (/= const-decl "boolean" notequal nil)
    (IMPLIES const-decl "[bool, bool -> bool]" booleans nil)
    (nil application-judgement "nnreal_lt_2pi" atan2 nil)
    (sin_atan2 formula-decl nil atan2 nil)
    (cos_range application-judgement "trig_range" sincos_def nil)
    (sin_range application-judgement "trig_range" sincos_def nil)
    (pi_bound name-judgement "{r: posreal | pi_lb < r AND r < pi_ub}"
     atan_approx nil)
    (cos const-decl "real" sincos_def nil)
    (sin const-decl "real" sincos_def nil)
    (sq_div formula-decl nil sq "reals/")
    (posreal_div_posreal_is_posreal application-judgement "posreal"
     real_types nil)
    (nzreal_div_nzreal_is_nzreal application-judgement "nzreal"
     real_types nil)
    (npreal_div_posreal_is_npreal application-judgement "npreal"
     real_types nil)
    (odd_minus_odd_is_even application-judgement "even_int" integers
     nil)
    (nonzero_real nonempty-type-eq-decl nil reals nil)
    (div_div1 formula-decl nil real_props nil)
    (div_cancel2 formula-decl nil real_props nil)
    (div_cancel3 formula-decl nil real_props nil)
    (sq_rew formula-decl nil sq "reals/")
    (sq_sqrt formula-decl nil sqrt "reals/")
    (sqrt_div formula-decl nil sqrt "reals/")
    (/ const-decl "[numfield, nznum -> numfield]" number_fields nil)
    (nznum nonempty-type-eq-decl nil number_fields nil)
    (posreal_plus_nnreal_is_posreal application-judgement "posreal"
     real_types nil)
    (sqrt_sq formula-decl nil sqrt "reals/")
    (a!1 skolem-const-decl "real" law_cosines nil)
    (sqrt_pos judgement-tcc nil sqrt "reals/")
    (sq_nz_pos judgement-tcc nil sq "reals/")
    (nzreal nonempty-type-eq-decl nil reals nil)
    (sqrt const-decl "{nnz: nnreal | nnz * nnz = nnx}" sqrt "reals/")
    (real_div_nzreal_is_real application-judgement "real" reals nil)
    (cos_atan2 formula-decl nil atan2 nil)
    (distance_rot formula-decl nil law_cosines nil)
    (b!1 skolem-const-decl "real" law_cosines nil)
    (AND const-decl "[bool, bool -> bool]" booleans 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)
    (sq_0 formula-decl nil sq "reals/")
    (nnreal_times_nnreal_is_nnreal application-judgement "nnreal"
     real_types nil)
    (sqrt_0 formula-decl nil sqrt "reals/")
    (sq_dist const-decl "nonneg_real" law_cosines nil)
    (sq_nz_pos application-judgement "posreal" sq "reals/")
    (sqrt_sq_abs formula-decl nil sqrt "reals/")
    (minus_nzint_is_nzint application-judgement "nzint" integers nil)
    (minus_even_is_even application-judgement "even_int" integers nil)
    (sq const-decl "nonneg_real" sq "reals/")
    (sqrt_times formula-decl nil sqrt "reals/")
    (real_lt_is_strict_total_order name-judgement
     "(strict_total_order?[real])" real_props nil)
    (sqrt_pos application-judgement "posreal" sqrt "reals/")
    (sqrt_sq_neg formula-decl nil sqrt "reals/")
    (sq_minus formula-decl nil sq "reals/")
    (real_times_real_is_real application-judgement "real" reals nil)
    (sq_times formula-decl nil sq "reals/")
    (sq_neg formula-decl nil sq "reals/")
    (minus_odd_is_odd application-judgement "odd_int" integers nil)
    (trichotomy formula-decl nil real_axioms nil)
    (= const-decl "[T, T -> boolean]" equalities nil)
    (both_sides_times_pos_le1 formula-decl nil real_props nil)
    (posreal_times_posreal_is_posreal application-judgement "posreal"
     real_types nil)
    (distance_scale formula-decl nil law_cosines nil)
    (nnreal_plus_nnreal_is_nnreal application-judgement "nnreal"
     real_types 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) (>= const-decl "bool" reals nil)
    (nonneg_real nonempty-type-eq-decl nil real_types nil)
    (dist const-decl "nonneg_real" law_cosines nil)
    (numfield nonempty-type-eq-decl nil number_fields nil)
    (+ const-decl "[numfield, numfield -> numfield]" number_fields
       nil))
   nil)))


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

¤ Diese beiden folgenden Angebotsgruppen bietet das Unternehmen0.125Angebot  (Wie Sie bei der Firma Beratungs- und Dienstleistungen beauftragen können 2026-05-05) ¤

*Eine klare Vorstellung vom Zielzustand






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.