# Proofs

proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: bands_3D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (name "vsbb" "vs_bands_3D(s, vo, vi)")
   (replace -1)
   (assert)
   (skeep)
   (name "mmax"
         "finite_sets@finite_sets_minmax[naturalnumbers.nat,restrict[[real, real], [nat, nat], boolean].restrict(reals.<=)].max")
   (name "ii" "mmax({ij: nat | ij<=vsbb`length-1 AND vsbb`seq(ij) < x})")
   (("1"
     (case "ii <= vsbb`length-2")
     (("1"
       (case "vsbb`seq(ii) < x AND y < vsbb`seq(ii+1)")
       (("1"
         (flatten)
         (case "(conflict_3D?(s, Vs(vo, vi)(x)) OR
                                                                                                       conflict_3D?(s, Vs(vo, vi)(y)))")
         (("1"
           (case "red_vs_band_3D?(s,vo,vi,vsbb)(ii)")
           (("1"
             (lemma "vs_red_bands_3D")
             (inst - "s" "vi" "vo")
             (replace -9)
             (assert)
             (inst - "ii")
             (assert)
             (split -3)
             (("1" (assert) (inst - "y")) ("2" (assert) (inst - "x"))))
            ("2"
             (hide 2)
             (lemma "vs_green_bands_3D")
             (inst?)
             (assert)
             (inst - "ii")
             (assert)
             (split -)
             (("1" (inst - "x")) ("2" (inst - "y"))))
            ("3"
             (hide 2)
             (hide -1)
             (lemma "vs_bands_last")
             (inst?)
             (assert))))
          ("2" (hide -) (ground))))
        ("2"
         (hide 2)
         (typepred "ii")
         (inst - "ii+1")
         (inst - "ii+1")
         (("1" (assert) (grind)) ("2" (assert))))))
      ("2" (lemma "vs_bands_last") (inst?) (assert))))
    ("2"
     (split +)
     (("1"
       (expand "is_finite")
       (inst + "vsbb`length"
        "LAMBDA (iz: ({ij: subrange(0, vsbb`length - 1) |
                                                     vsbb`seq(ij) < x})): iz")
       (("1" (expand "injective?") (skosimp*))
        ("2"
         (inst - "0")
         (("1"
           (lemma "vs_bands_first")
           (inst?)
           (assert)
           (replace -3)
           (replace -1)
           (lemma "vs_bands_3D_not_empty")
           (inst?)
           (assert)
           (skosimp*)
           (ground))
          ("2" (lemma "vs_bands_3D_not_empty") (inst?) (assert))))))
      ("2"
       (expand "empty?")
       (inst - "0")
       (expand "member")
       (lemma "vs_bands_3D_not_empty")
       (inst?)
       (assert)
       (inst - "0")
       (assert)
       (lemma "vs_bands_first")
       (inst?)
       (assert))))))


proof_type: t_proof
decl_type: tcc
library: ACCoRD
theory: bands_3D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (skosimp*)
   (expand "add")
   (expand "insert")
   (expand "empty_seq")
   (split 4)
   (("1"
     (expand "trk_fseq?")
     (skosimp*)
     (lift-if)
     (split +)
     (("1" (flatten) (assert) (assert)) ("2" (flatten) (assert))))
    ("2"
     (expand "increasing?")
     (skosimp*)
     (case "i!1 = 0 AND j!1 = 1")
     (("1" (flatten) (assert))
      ("2" (typepred "i!1") (typepred "j!1") (assert))))))


proof_type: t_proof
decl_type: tcc
library: ACCoRD
theory: bands_3D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
script:
  (""
   (skeep)
   (expand "add")
   (expand "insert")
   (expand "empty_seq")
   (split 2)
   (("1"
     (expand "trk_fseq?")
     (skosimp*)
     (lift-if)
     (ground)
     (("1" (lift-if) (ground)) ("2" (lift-if) (ground))))
    ("2"
     (expand "increasing?")
     (skosimp*)
     (case "i!1 = 0 AND j!1 = 1")
     (("1" (flatten) (assert)) ("2" (typepred "i!1") (assert))))))


proof_type: t_proof
decl_type: tcc
library: ACCoRD
theory: bands_3D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
script:
  (""
   (skeep)
   (skosimp*)
   (expand "add")
   (expand "insert")
   (expand "empty_seq")
   (split 3)
   (("1"
     (expand "vs_fseq?")
     (skosimp*)
     (lift-if)
     (ground)
     (("1" (lift-if) (ground)) ("2" (lift-if) (ground))
      ("3" (lift-if) (ground)) ("4" (lift-if) (ground))))
    ("2" (expand "increasing?") (skosimp*) (typepred "i!1") (assert))))


proof_type: t_proof
decl_type: tcc
library: ACCoRD
theory: bands_3D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
script:
  (""
   (skeep)
   (expand "add")
   (expand "insert")
   (expand "empty_seq")
   (split 3)
   (("1"
     (expand "vs_fseq?")
     (skosimp*)
     (lift-if)
     (ground)
     (("1" (lift-if) (ground)) ("2" (lift-if) (ground))
      ("3" (lift-if) (ground)) ("4" (lift-if) (ground))))
    ("2" (expand "increasing?") (skosimp*) (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: flightplan
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (case "FORALL (jj: nat): (k + jj+1) < N IMPLIES (flp(k)`time < flp(k+jj+1)`time)")
   (("1" (inst - "(i-k)-1") (("1" (assert)) ("2" (assert))))
    ("2"
     (hide 2)
     (induct "jj")
     (("1" (assert) (typepred "flp") (inst - "1+k") (assert))
      ("2"
       (skosimp*)
       (assert)
       (typepred "flp")
       (inst - "2+j!1+k")
       (assert))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: flightplan
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (assert)
   (prop)
   (("1"
     (assert)
     (lemma flight_plan_ascending_time[N])
     (inst - flp i k)
     (assert)
     (lemma flight_plan_ascending_time[N])
     (inst - flp k i)
     (assert))
    ("2" (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: flightplan
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "velocity")
   (assert)
   (expand "+ ")
   (assert)
   (expand "-")
   (assert)
   (apply-extensionality :hide? t))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: flightplan
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (split)
   (("1"
     (expand "segment")
     (typepred
      "segment_max(extend[nat, below[N], bool, FALSE]
                                    ({j: below[N] | tt >= flp(j)`time}))")
     (expand "extend")
     (assert))
    ("2"
     (flatten)
     (expand "segment")
     (typepred
      "segment_max(extend[nat, below[N], bool, FALSE]
                                    ({j: below[N] | tt >= flp(j)`time}))")
     (inst -
      "1+segment_max(extend[nat, below[N], bool, FALSE]
                                    ({j: below[N] | tt >= flp(j)`time}))")
     (assert)
     (expand "extend")
     (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: flightplan
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (name seg "segment(flp)(tt)")
   (replace -1)
   (lemma segment_def)
   (inst - flp tt)
   (assert)
   (flatten)
   (replace -3)
   (case "seg=N-1")
   (("1"
     (assert)
     (hide -3)
     (flatten)
     (typepred j)
     (lemma flight_plan_ascending_time)
     (inst - flp seg "j+1")
     (assert))
    ("2"
     (assert)
     (prop)
     (("1"
       (assert)
       (case "seg < j")
       (("1"
         (lemma flight_plan_ascending_time)
         (inst - flp j "seg+1")
         (assert))
        ("2"
         (case "seg > j")
         (("1"
           (lemma flight_plan_ascending_time)
           (inst - flp seg "j+1")
           (assert))
          ("2" (assert))))))
      ("2" (assert)) ("3" (assert))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: flightplan
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (typepred tt)
   (expand "start_time")
   (expand "end_time")
   (lemma segment_def)
   (inst?)
   (assert)
   (flatten)
   (lemma segment_index)
   (inst?)
   (("1"
     (flatten)
     (assert)
     (ground)
     (typepred flp)
     (inst - "N-1")
     (assert)
     (case "segment(flp)(tt) < N-1")
     (("1"
       (assert)
       (name seg "segment(flp)(tt)")
       (replace -1)
       (case "seg = N-2")
       (("1" (assert))
        ("2"
         (assert)
         (lemma "flight_plan_ascending_time[N]")
         (inst - flp "N-1" "seg+1")
         (assert))))
      ("2" (assert))))
    ("2" (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: flightplan
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (lemma segment_index)
   (inst?)
   (("1"
     (assert)
     (typepred flp)
     (inst - "1 + segment(flp)(tt)")
     (assert))
    ("2" (lemma segment_max) (inst?) (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: flightplan
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (expand "location_at")
   (lift-if)
   (ground)
   (("1"
     (case "k = N-1")
     (("1" (assert))
      ("2"
       (hide 2)
       (name "segg" "segment(flp)(flp(k)`time)")
       (replace -1)
       (copy -1)
       (expand "segment" -2)
       (typepred
        "segment_max(extend[nat, below[N], bool, FALSE]
                                    ({j: below[N] | flp(k)`time >= flp(j)`time}))")
       (expand "segment")
       (replace -4)
       (expand "extend")
       (assert)
       (lemma "flight_plan_ascending_time")
       (inst - "flp" "N-1" "k")
       (assert))))
    ("2"
     (name "segg" "segment(flp)(flp(k)`time)")
     (replace -1)
     (copy -1)
     (expand "segment" -2)
     (typepred
      "segment_max(extend[nat, below[N], bool, FALSE]
                                ({j: below[N] | flp(k)`time >= flp(j)`time}))")
     (expand "segment")
     (replace -4)
     (expand "extend")
     (assert)
     (case "segg = k")
     (("1" (replace -1) (assert))
      ("2"
       (hide 3)
       (inst - "k")
       (assert)
       (lemma "flight_plan_ascending_time")
       (inst - "flp" "segg" "k")
       (assert))))))


proof_type: t_proof
decl_type: tcc
library: ACCoRD
theory: flightplan
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (inst + "(start_time(flp) + end_time(flp))/2")
   (expand "start_time")
   (expand "end_time")
   (lemma "flight_plan_ascending_time")
   (inst - "flp" "N-1" "0")
   (("1" (ground)) ("2" (assert)) ("3" (assert))))


proof_type: t_proof
decl_type: tcc
library: ACCoRD
theory: flightplan
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (inst +
    "lambda (jj: below[N]): (# time:= jj,position:= (# x:=jj, y:=jj, z:=jj #) #)")
   (skeep)
   (expand "velocity")
   (expand "vect2")
   (expand "zero")
   (expand "-")
   (assert))


proof_type: t_proof
decl_type: tcc
library: ACCoRD
theory: flightplan
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skolem 1 x)
   (assert)
   (skolem 1 y)
   (typepred
    "finite_sets@finite_sets_minmax
                [naturalnumbers.nat,
                 restrict[[real, real], [nat, nat], boolean].restrict
                     (reals.<=)].max
                (x)")
   (inst - y)
   (flatten)
   (assert)
   (expand "restrict")
   (propax))


proof_type: t_proof
decl_type: tcc
library: ACCoRD
theory: flightplan
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (split)
   (("1"
     (expand "is_finite")
     (inst + "N"
      "(lambda (ii: ({j: below[N] | tt!1 >= flp!1(j)`time})): ii)")
     (("1" (expand "injective?") (skosimp*))
      ("2" (skosimp*) (expand "extend") (lift-if) (ground))))
    ("2"
     (expand "empty?")
     (inst - "0")
     (expand "member")
     (expand "extend")
     (ground)
     (typepred "tt!1")
     (expand "start_time")
     (assert))))


proof_type: t_proof
decl_type: tcc
library: ACCoRD
theory: flightplan
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (name "iii"
         "max[nat, restrict[[real, real], [nat, nat], boolean](<=)]
                                 (extend[nat, below[N], bool, FALSE]
                                      ({j: below[N] | tt >= flp(j)`time}))")
   (typepred "iii")
   (expand "extend")
   (assert))


proof_type: t_proof
decl_type: tcc
library: ACCoRD
theory: flightplan
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (expand "start_time")
   (expand "end_time")
   (typepred tt)
   (expand "end_time")
   (expand "start_time")
   (lemma segment_def)
   (inst?)
   (assert)
   (flatten)
   (assert)
   (lemma segment_max)
   (inst?)
   (assert)
   (case "segment(flp)(tt) = 0")
   (("1" (assert))
    ("2"
     (lemma flight_plan_ascending_time[N])
     (inst - flp "segment(flp)(tt)" 0)
     (assert))))


proof_type: t_proof
decl_type: tcc
library: ACCoRD
theory: flightplan
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (lemma "flight_plan_ascending_time")
   (inst-cp - "flp" "k" "0")
   (inst - "flp" "N-1" "k")
   (expand "start_time")
   (expand "end_time")
   (typepred "k")
   (ground))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: cd3d_si
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (typepred "flpl")
   (expand "seg_lh_top")
   (expand "seg_lh_bottom")
   (case "k = N-1")
   (("1"
     (replace -1)
     (hide 1)
     (assert)
     (expand "min")
     (expand "max")
     (lift-if)
     (ground)
     (inst - "N-1")
     (assert))
    ("2"
     (case "k = 0")
     (("1"
       (replace -1)
       (hide 3)
       (assert)
       (expand "max")
       (expand "min")
       (lift-if)
       (ground)
       (inst - "1")
       (assert))
      ("2"
       (assert)
       (expand "max" 3)
       (expand "min" 4)
       (case "flpl(k)`time = to+T")
       (("1" (inst - "k") (expand "max") (lift-if) (ground))
        ("2" (inst - "k+1") (expand "min") (lift-if) (ground))))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: cd3d_si
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (ground)
   (("1"
     (expand "conflict_3D?")
     (skosimp*)
     (typepred "tt!1")
     (expand "end_time")
     (expand "start_time")
     (case "EXISTS (kk: below[N]): tt!1 = flpl(kk)`time")
     (("1"
       (skosimp*)
       (lemma "nontrivial_lookahead")
       (inst - "kk!1" "to" "flpl")
       (assert)
       (split -1)
       (("1"
         (flatten)
         (inst + "kk!1")
         (assert)
         (inst + "seg_lh_bottom(flpl, to)(kk!1)")
         (lemma "location_at_check")
         (inst - "flpl" "kk!1")
         (replace -4 :dir rl)
         (replace -1)
         (case "seg_lh_bottom(flpl,to)(kk!1) = 0")
         (("1"
           (replace -1)
           (assert)
           (rewrite "vz_distr_sub")
           (rewrite "vz_distr_add")
           (rewrite "vz_scal")
           (assert))
          ("2" (expand "seg_lh_bottom") (expand "max") (propax))))
        ("2"
         (flatten)
         (inst + "kk!1-1")
         (("1"
           (assert)
           (inst + "seg_lh_top(flpl, to)(kk!1 - 1)")
           (lemma "location_at_check")
           (inst - "flpl" "kk!1")
           (replace -4 :dir rl)
           (replace -1)
           (hide -1)
           (name "cv1"
                 "(so + (flpl(kk!1 - 1)`time - to) * vo) -
                                                                   flpl(kk!1 - 1)`position
                                                             +
                                                             seg_lh_top(flpl, to)(kk!1 - 1) *
                                                              (vo - velocity(flpl)(kk!1 - 1))")
           (name "cv2" "(so + (tt!1 - to) * vo) - flpl(kk!1)`position")
           (case "cv1 = cv2")
           (("1"
             (case "vect2(cv1) = vect2(cv2) AND cv1`z = cv2`z")
             (("1"
               (flatten)
               (replace -4 :dir rl)
               (replace -5 :dir rl)
               (rewrite "vect2_sub")
               (rewrite "vect2_add")
               (rewrite "vect2_sub")
               (rewrite "vect2_scal")
               (rewrite "vect2_add")
               (rewrite "vect2_sub")
               (rewrite "vect2_scal")
               (rewrite "vect2_add")
               (rewrite "vect2_scal")
               (assert)
               (rewrite "vz_distr_sub")
               (rewrite "vz_distr_add")
               (rewrite "vz_distr_sub")
               (rewrite "vz_scal")
               (rewrite "vz_distr_add")
               (rewrite "vz_distr_sub")
               (rewrite "vz_scal")
               (rewrite "vz_distr_add")
               (rewrite "vz_scal")
               (assert))
              ("2" (assert))))
            ("2"
             (replace -1 :dir rl)
             (replace -2 :dir rl)
             (hide 2)
             (lemma "velocity_def")
             (inst - "flpl" "kk!1-1")
             (assert)
             (expand "seg_lh_top")
             (expand "min")
             (hide-all-but (-1 1))
             (grind :exclude "velocity"))))
          ("2" (assert))))))
      ("2"
       (name "jj" "segment(flpl)(tt!1)")
       (label "jjname" -1)
       (inst 2 "jj")
       (("1"
         (lemma "segment_def")
         (inst - "flpl" "tt!1")
         (flatten)
         (case "jj < N-1")
         (("1"
           (assert)
           (case "flpl(jj)`time < tt!1")
           (("1"
             (case "seg_lh_bottom(flpl,to)(jj) < seg_lh_top(flpl,to)(jj)")
             (("1"
               (assert)
               (name "newt" "tt!1-flpl(jj)`time")
               (inst 2 "newt")
               (("1"
                 (name "cv1"
                       "(so + (flpl(jj)`time - to) * vo) - flpl(jj)`position +
                                                                             newt * (vo - velocity(flpl)(jj))")
                 (name "cv2"
                       "(so + (tt!1 - to) * vo) - location_at(flpl)(tt!1)")
                 (case "cv1 = cv2")
                 (("1"
                   (case "vect2(cv1) = vect2(cv2) AND cv1`z = cv2`z")
                   (("1"
                     (flatten)
                     (replace -4 :dir rl)
                     (replace -5 :dir rl)
                     (rewrite "vect2_sub")
                     (rewrite "vect2_add")
                     (rewrite "vect2_sub")
                     (rewrite "vect2_scal")
                     (rewrite "vect2_add")
                     (rewrite "vect2_sub")
                     (rewrite "vect2_scal")
                     (rewrite "vect2_add")
                     (rewrite "vect2_scal")
                     (assert)
                     (rewrite "vz_distr_sub")
                     (rewrite "vz_distr_add")
                     (rewrite "vz_distr_sub")
                     (rewrite "vz_scal")
                     (rewrite "vz_distr_add")
                     (rewrite "vz_distr_sub")
                     (rewrite "vz_scal")
                     (rewrite "vz_distr_add")
                     (rewrite "vz_scal")
                     (assert))
                    ("2" (assert))))
                  ("2"
                   (hide 3)
                   (replace -1 :dir rl)
                   (replace -2 :dir rl)
                   (expand "location_at")
                   (replace "jjname")
                   (hide "jjname")
                   (hide -13)
                   (hide -13)
                   (hide 2)
                   (hide -1)
                   (hide -1)
                   (grind))))
                ("2"
                 (assert)
                 (expand "seg_lh_bottom")
                 (expand "max")
                 (lift-if)
                 (assert)
                 (expand "seg_lh_top")
                 (expand "min")
                 (lift-if)
                 (ground))))
              ("2"
               (hide 3)
               (expand "seg_lh_bottom")
               (expand "seg_lh_top")
               (expand "max")
               (expand "min")
               (lift-if)
               (lift-if)
               (assert)
               (ground)
               (lift-if)
               (assert))))
            ("2" (inst 2 "jj") (assert))))
          ("2"
           (case "jj = N-1")
           (("1"
             (replace -1)
             (hide -3)
             (hide 1)
             (inst + "N-1")
             (("1" (assert)) ("2" (assert))))
            ("2" (assert))))))
        ("2"
         (inst + "N-1")
         (("1"
           (expand "segment")
           (typepred
            "segment_max(extend[nat, below[N], bool, FALSE]
                                                      ({j: below[N] | tt!1 >= flpl(j)`time}))")
           (replace "jjname")
           (expand "extend")
           (assert))
          ("2" (assert))))))))
    ("2"
     (skosimp*)
     (rewrite "conflict_3D_on_open_interval")
     (skosimp*)
     (name "t!1" "topen!1")
     (replace -1)
     (hide -1)
     (name "newt" "flpl(j!1)`time+t!1")
     (name "cv1" "(so + (newt - to) * vo) - location_at(flpl)(newt)")
     (("1"
       (name "cv2"
             "(so + (flpl(j!1)`time - to) * vo) - flpl(j!1)`position +
                                                t!1 * (vo - velocity(flpl)(j!1))")
       (case "NOT cv1 = cv2")
       (("1"
         (hide 2)
         (replace -1 :dir rl)
         (replace -2 :dir rl)
         (hide -1)
         (hide -1)
         (case "segment(flpl)(newt) = j!1")
         (("1"
           (replace -2 :dir rl)
           (expand "location_at")
           (assert)
           (replace -1)
           (hide-all-but 1)
           (grind))
          ("2"
           (hide 2)
           (name "pj" "segment(flpl)(newt)")
           (replace -1)
           (case "newt >= flpl(j!1)`time AND newt < flpl(j!1+1)`time")
           (("1"
             (flatten)
             (copy -3)
             (expand "segment" -1)
             (typepred
              "segment_max(extend[nat, below[N], bool, FALSE]
                                                              ({j: below[N] | newt >= flpl(j)`time}))")
             (replace -3)
             (expand "extend")
             (assert)
             (case "pj < 1+j!1")
             (("1" (inst - "j!1") (lift-if) (assert))
              ("2"
               (lemma "flight_plan_ascending_time")
               (inst - "flpl" "pj" "1+j!1")
               (assert))))
            ("2"
             (expand "seg_lh_bottom")
             (expand "seg_lh_top")
             (expand "min")
             (expand "max")
             (lift-if)
             (lift-if)
             (assert))))))
        ("2"
         (expand "conflict_3D?")
         (inst + "newt")
         (("1"
           (case "vect2(cv1) = vect2(cv2) AND cv1`z = cv2`z")
           (("1"
             (flatten)
             (replace -4 :dir rl)
             (replace -5 :dir rl)
             (rewrite "vect2_sub")
             (rewrite "vect2_add")
             (rewrite "vect2_sub")
             (rewrite "vect2_scal")
             (rewrite "vect2_add")
             (rewrite "vect2_sub")
             (rewrite "vect2_scal")
             (rewrite "vect2_add")
             (rewrite "vect2_sub")
             (rewrite "vect2_scal")
             (assert)
             (rewrite "vz_distr_sub")
             (rewrite "vz_distr_add")
             (rewrite "vz_distr_sub")
             (rewrite "vz_scal")
             (rewrite "vz_distr_add")
             (rewrite "vz_distr_sub")
             (rewrite "vz_scal")
             (rewrite "vz_distr_add")
             (rewrite "vz_distr_sub")
             (rewrite "vz_scal")
             (assert))
            ("2" (assert))))
          ("2"
           (expand "seg_lh_bottom")
           (expand "seg_lh_top")
           (assert))))))
      ("2"
       (expand "start_time")
       (expand "end_time")
       (expand "seg_lh_bottom")
       (expand "seg_lh_top")
       (lemma "flight_plan_ascending_time")
       (inst-cp - "flpl" "j!1" "0")
       (inst - "flpl" "N-1" "j!1+1")
       (assert)
       (split -1)
       (("1" (assert) (split -2) (("1" (assert)) ("2" (assert))))
        ("2" (assert) (expand "min") (lift-if) (assert))))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: cd3d_si
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (split)
   (("1"
     (flatten)
     (lemma "conflict_3D_rew")
     (inst?)
     (assert)
     (skosimp*)
     (name "lhb" "seg_lh_bottom(flpl, to)(j!1)")
     (replace -1)
     (name "lht" "seg_lh_top(flpl, to)(j!1)")
     (replace -1)
     (lemma
      "conflict_3D_on_open_interval[D, H, seg_lh_bottom(flpl, to)(j!1), seg_lh_top(flpl, to)(j!1)]")
     (("1"
       (inst?)
       (assert)
       (replace -2)
       (replace -3)
       (skosimp*)
       (name "ttp" "topen!1 + flpl(j!1)`time")
       (case "NOT (start_time[N](flpl) <= flpl(j!1)`time + topen!1 AND
                    flpl(j!1)`time + topen!1 <= end_time[N](flpl))")
       (("1"
         (hide 2)
         (case "topen!1 > 0")
         (("1"
           (expand "start_time")
           (lemma "flight_plan_ascending_time")
           (inst - "flpl" "j!1" "0")
           (assert)
           (case "j!1 /= 0")
           (("1"
             (assert)
             (expand "end_time")
             (case "flpl(j!1)`time + topen!1 < flpl(j!1+1)`time")
             (("1"
               (lemma "flight_plan_ascending_time")
               (inst - "flpl" "N-1" "j!1+1")
               (assert))
              ("2"
               (hide 2)
               (expand "lht" -6)
               (expand "seg_lh_top" -6)
               (expand "min")
               (lift-if)
               (ground))))
            ("2"
             (flatten)
             (assert)
             (expand "end_time")
             (case "flpl(j!1)`time + topen!1 < flpl(j!1+1)`time")
             (("1"
               (case "j!1+1 = N-1")
               (("1" (assert))
                ("2"
                 (lemma "flight_plan_ascending_time")
                 (inst - "flpl" "N-1" "j!1+1")
                 (assert))))
              ("2"
               (hide 2)
               (expand "lht" -6)
               (expand "seg_lh_top" -6)
               (expand "min")
               (lift-if)
               (ground))))))
          ("2"
           (hide 2)
           (expand "lhb" -2)
           (expand "seg_lh_bottom" -2)
           (expand "max")
           (lift-if)
           (ground))))
        ("2"
         (flatten)
         (inst + "ttp")
         (("1"
           (case "NOT B+to<ttp")
           (("1"
             (hide 2)
             (hide (-1 -2))
             (replace -1 1 :dir rl)
             (hide -1)
             (expand "lht" -2)
             (expand "lhb" -1)
             (expand "seg_lh_bottom" -1)
             (expand "max" -1)
             (lift-if)
             (ground))
            ("2"
             (assert)
             (case "NOT ttp < T+to")
             (("1"
               (hide (-2 -3))
               (hide 2)
               (expand "lht" -4)
               (expand "seg_lh_top" -4)
               (expand "min")
               (lift-if)
               (ground))
              ("2"
               (assert)
               (case "(so + (flpl(j!1)`time - to) * vo) - flpl(j!1)`position +
                                                                  topen!1 * (vo - velocity(flpl)(j!1)) = (so + (ttp - to) * vo) - location_at(flpl)(ttp)")
               (("1"
                 (case "vect2((so + (flpl(j!1)`time - to) * vo) - flpl(j!1)`position) +
                                                                        topen!1 * vect2(vo - velocity(flpl)(j!1)) = vect2((so + (ttp - to) * vo) - location_at(flpl)(ttp)) AND ((so + (flpl(j!1)`time - to) * vo) - flpl(j!1)`position)`z +
                                                                        topen!1 * (vo - velocity(flpl)(j!1))`z = so`z - location_at(flpl)(ttp)`z - vo`z * to + ttp * vo`z")
                 (("1"
                   (flatten)
                   (assert)
                   (hide -1 -2 -3 -11 -12 -16 -17)
                   (expand "end_time")
                   (expand "start_time")
                   (assert)
                   (case "flpl(j!1)`time + lht <= flpl(j!1+1)`time")
                   (("1"
                     (lemma flight_plan_ascending_time[N])
                     (inst - flpl "N-1" "j!1+1")
                     (assert))
                    ("2"
                     (expand "seg_lh_top")
                     (expand "seg_lh_bottom")
                     (expand "min")
                     (expand "max")
                     (lift-if)
                     (assert))))
                  ("2"
                   (hide 2)
                   (hide (-4 -5))
                   (replace -4 :dir rl)
                   (hide-all-but (-1 1))
                   (grind :exclude
                    ("flpl"
                     "position"
                     "velocity"
                     "location_at"
                     "ttp")))))
                ("2"
                 (hide 2)
                 (replace -5 :dir rl)
                 (expand "location_at")
                 (case "segment(flpl)(flpl(j!1)`time + topen!1) = j!1")
                 (("1"
                   (replace -1)
                   (case "j!1 < N-1")
                   (("1"
                     (assert)
                     (hide-all-but 1)
                     (grind :exclude "velocity"))
                    ("2" (assert))))
                  ("2"
                   (hide 2)
                   (lemma "segment_index")
                   (inst - "flpl" "j!1" "flpl(j!1)`time + topen!1")
                   (assert)
                   (hide 2)
                   (expand "lht" -7)
                   (expand "seg_lh_top" -7)
                   (expand "min")
                   (assert))))))))))
          ("2"
           (assert)
           (replace -3 + :dir rl)
           (expand "lhb" -4)
           (expand "lht" -5)
           (expand "seg_lh_bottom" -4)
           (expand "seg_lh_top" -5)
           (expand "max")
           (expand "min")
           (lift-if)
           (ground))))))
      ("2" (hide 2) (assert))))
    ("2" (skosimp*) (expand "conflict_3D?") (inst + "tt!1") (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: cd3d_si
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (lemma "conflict_3D_rew")
   (inst?)
   (replace -1)
   (hide -1)
   (ground)
   (("1"
     (skeep -1)
     (inst?)
     (assert)
     (expand conflict_3D?)
     (skeep -2)
     (inst + "t+flpl(j)`time-to")
     (("1"
       (assert)
       (case "NOT vect2(so -
                               (flpl(j)`position -
                                 (flpl(j)`time - to) * velocity(flpl)(j)))
                         + (flpl(j)`time - to + t) * vect2(vo - velocity(flpl)(j)) = vect2((so + (flpl(j)`time - to) * vo) - flpl(j)`position) +
                        t * vect2(vo - velocity(flpl)(j))")
       (("1" (hide-all-but 1) (grind :exclude ("velocity")))
        ("2"
         (assert)
         (case "NOT (so -
                           (flpl(j)`position - (flpl(j)`time - to) * velocity(flpl)(j)))`z
                          + flpl(j)`time * (vo - velocity(flpl)(j))`z
                          + (vo - velocity(flpl)(j))`z * t
                          - (vo - velocity(flpl)(j))`z * to=((so + (flpl(j)`time - to) * vo) - flpl(j)`position)`z +
                          t * (vo - velocity(flpl)(j))`z")
         (("1" (hide-all-but 1) (grind :exclude ("velocity")))
          ("2" (assert))))))
      ("2"
       (assert)
       (typepred t)
       (assert)
       (expand "seg_lh_bottom")
       (assert))))
    ("2"
     (skeep -1)
     (inst?)
     (assert)
     (expand "conflict_3D?")
     (skeep -2)
     (inst + "t+to-flpl(j)`time")
     (assert)
     (hide -1)
     (grind :exclude ("velocity" "abs" "sqv" "sq")))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: cd3d_si
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (induct "i")
   (("1"
     (flatten)
     (inst + "0")
     (assert)
     (expand "cd3d_ind?")
     (flatten)
     (assert)
     (rewrite "cd3d"))
    ("2"
     (skeep)
     (expand "cd3d_ind?" -3)
     (split -3)
     (("1" (flatten) (inst + "1+jb") (assert) (rewrite "cd3d"))
      ("2" (assert) (skosimp*) (inst + "j!1") (assert))))
    ("3" (hide 2) (skeep) (skosimp*) (assert)) ("4" (assert))
    ("5" (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: cd3d_si
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (induct "i")
   (("1"
     (ground)
     (skolem -2 "jjj")
     (ground)
     (expand "cd3d_ind?")
     (rewrite "cd3d" :dir rl)
     (expand "conflict_3D?")
     (skosimp*)
     (inst + "t!1")
     (assert))
    ("2"
     (skeep)
     (skosimp*)
     (expand "cd3d_ind?" 1)
     (flatten)
     (assert)
     (inst + "j!1")
     (assert)
     (case "j!1 = 1+jb")
     (("1"
       (replace -1)
       (rewrite "cd3d" :dir rl)
       (expand "conflict_3D?")
       (skosimp*)
       (inst + "t!1")
       (assert))
      ("2" (assert))))
    ("3" (skosimp*) (assert)) ("4" (assert)) ("5" (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: cd3d_si
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (expand "cd3d_si?")
   (lemma "cd3d_ind_correct")
   (inst - "so" "vo" "to" "flpl" "N-2")
   (("1"
     (assert)
     (lemma "conflict_3D_rew")
     (inst - "so" "vo" "to" "flpl")
     (assert))
    ("2" (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: cd3d_si
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (expand "cd3d_si?")
   (lemma "cd3d_ind_complete")
   (inst - "so" "vo" "to" "flpl" "N-2")
   (("1"
     (assert)
     (lemma "conflict_3D_rew")
     (inst - "so" "vo" "to" "flpl")
     (assert))
    ("2" (assert))))


proof_type: t_proof
decl_type: tcc
library: ACCoRD
theory: cd3d_si
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (inst +
    "lambda (jj: below[N]): (# time:=(to+B) + (T-B)/2 + jj,position:=zero #)")
   (split)
   (("1" (assert)) ("2" (assert))))


proof_type: t_proof
decl_type: tcc
library: ACCoRD
theory: cd3d_si
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (assert)
   (inst +
    "lambda (jj: below[N]): (# time:=(to+B) + (T-B)/2 + jj,position:=zero #)")
   (assert)
   (split)
   (("1" (assert)) ("2" (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: bands_si
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skolem 1 (fp so to vo _ x))
   (induct i)
   (("1" (flatten) (inst 1 0) (expand "trk_bands_si") (propax))
    ("2"
     (flatten)
     (assert)
     (skeep -1 (0))
     (expand "trk_bands_si")
     (assert))
    ("3"
     (skeep)
     (assert)
     (assert)
     (prop)
     (("1" (assert) (skosimp*) (inst 1 "j!1"))
      ("2"
       (assert)
       (skosimp*)
       (typepred "j!1")
       (typepred "j!2")
       (assert)
       (expand trk_bands_si 1)
       (lemma member_sort)
       (inst -
        "trk_bands_si_i(so, vo, to, fp)(1 + k) o
                           trk_bands_si(so, vo, to, fp)(k)"
        x)
       (assert)
       (lemma member_composition)
       (inst - "trk_bands_si_i(so, vo, to, fp)(1 + k)"
        "trk_bands_si(so, vo, to, fp)(k)" x)
       (assert))
      ("3"
       (assert)
       (expand trk_bands_si -1)
       (assert)
       (inst 1 "1+k")
       (assert)
       (lemma member_sort)
       (inst -
        "trk_bands_si_i(so, vo, to, fp)(1 + k) o
                           trk_bands_si(so, vo, to, fp)(k)"
        x)
       (assert)
       (lemma member_composition)
       (inst - "trk_bands_si_i(so, vo, to, fp)(1 + k)"
        "trk_bands_si(so, vo, to, fp)(k)" x)
       (assert))
      ("4"
       (assert)
       (skosimp*)
       (typepred "j!1")
       (assert)
       (expand "trk_bands_si")
       (assert)
       (lemma member_sort)
       (inst -
        "trk_bands_si_i(so, vo, to, fp)(1 + k) o
                           trk_bands_si(so, vo, to, fp)(k)"
        x)
       (assert)
       (lemma member_composition)
       (inst - "trk_bands_si_i(so, vo, to, fp)(1 + k)"
        "trk_bands_si(so, vo, to, fp)(k)" x)
       (assert)
       (case "j!1 = k+1")
       (("1" (assert)) ("2" (assert) (inst 5 "j!1"))))))
    ("4" (expand "trk_bands_si") (lift-if) (assert))
    ("5" (expand "trk_bands_si") (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: bands_si
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "member")
   (skosimp)
   (typepred "i!1")
   (assert)
   (expand "empty_seq")
   (assert))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: bands_si
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (lemma trk_bands_si_combines)
   (skeep)
   (inst?)
   (assert)
   (expand "trk_bands_si_i")
   (replace -1)
   (hide -1)
   (prop)
   (("1"
     (skeep -1)
     (inst 1 j)
     (lift-if)
     (ground)
     (("1"
       (expand "member")
       (skolem -2 ii)
       (typepred ii)
       (expand "empty_seq")
       (assert))
      ("2"
       (expand member)
       (skolem -2 ii)
       (typepred ii)
       (expand "empty_seq")
       (assert))
      ("3"
       (expand member)
       (skolem -2 ii)
       (typepred ii)
       (expand "empty_seq")
       (assert))
      ("4"
       (expand member)
       (skolem -2 ii)
       (typepred ii)
       (expand "empty_seq")
       (assert))
      ("5"
       (expand member)
       (skolem -2 ii)
       (typepred ii)
       (expand "empty_seq")
       (assert))
      ("6"
       (expand member)
       (skolem -2 ii)
       (typepred ii)
       (expand "empty_seq")
       (assert))))
    ("2" (skeep -1) (inst 1 j) (lift-if) (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: bands_si
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skolem 1 (fp so to vo _ _))
   (induct i)
   (("1"
     (skeep)
     (case "not j=0")
     (("1" (assert))
      ("2" (replace -1) (expand "trk_bands_si") (assert))))
    ("2"
     (skeep)
     (induct j)
     (("1"
       (inst -2 0)
       (expand trk_bands_si 1)
       (assert)
       (expand "o")
       (assert))
      ("2"
       (skolem 1 m)
       (flatten)
       (expand trk_bands_si 1)
       (assert)
       (expand "o")
       (case "m <k")
       (("1" (assert) (inst -5 "m+1") (assert)) ("2" (assert))))
      ("3" (expand trk_bands_si 2) (assert))
      ("4" (typepred "j!1") (assert)) ("5" (assert)) ("6" (assert))))
    ("3" (typepred N) (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: bands_si
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (prop)
   (("1"
     (expand "trk_bands_si_i")
     (assert)
     (expand "empty_seq")
     (assert))
    ("2"
     (expand "trk_bands_si_i")
     (assert)
     (expand "empty_seq")
     (assert))
    ("3"
     (expand "trk_bands_si_i")
     (assert)
     (lemma
      "trk_bands_3D_not_empty[D, H, max(fp(i)`time, B + to) - to,
                     min(fp(1 + i)`time, T + to) - to, gsmin, gsmax, vsmin, vsmax]")
     (("1" (inst?) (assert))
      ("2"
       (assert)
       (expand "min")
       (expand "max")
       (lift-if)
       (assert)
       (typepred fp)
       (inst - "i+1")
       (assert)
       (lift-if)
       (ground)
       (lift-if)
       (assert))
      ("3" (assert))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: bands_si
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (prop)
   (("1"
     (assert)
     (expand "trk_bands_si_i")
     (lift-if)
     (lemma trk_bands_si_i_relevant)
     (inst - fp so to vo i)
     (ground)
     (lemma
      "trk_bands_3D_not_empty[D, H, max(fp(i)`time, B + to) - to,
                     min(fp(1 + i)`time, T + to) - to, gsmin, gsmax, vsmin, vsmax]")
     (("1" (inst?))
      ("2"
       (assert)
       (expand "max")
       (expand "min")
       (lift-if)
       (assert)
       (typepred fp)
       (inst - "i+1")
       (assert)
       (ground)
       (("1" (lift-if) (assert)) ("2" (lift-if) (assert))))
      ("3" (assert))))
    ("2" (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: bands_si
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skolem 1 (fp so to vo _))
   (induct i)
   (("1"
     (flatten)
     (expand "trk_bands_si")
     (expand "trk_bands_si_i")
     (assert)
     (lift-if)
     (split 1)
     (("1" (assert) (expand "empty_seq") (assert))
      ("2"
       (assert)
       (case "N=2")
       (("1" (assert) (expand "empty_seq") (assert))
        ("2"
         (assert)
         (lemma "flight_plan_ascending_time")
         (inst - fp "N-1" 1)
         (assert)
         (expand "empty_seq")
         (assert))))))
    ("2"
     (flatten)
     (expand "trk_bands_si")
     (lemma trk_bands_si_i_relevant)
     (inst?)
     (("1" (assert)) ("2" (assert))))
    ("3"
     (assert)
     (skeep)
     (assert)
     (typepred fp)
     (inst - "k+2")
     (assert)
     (typepred fp)
     (inst - "k+1")
     (assert)
     (assert)
     (ground)
     (("1" (expand trk_bands_si 1) (assert) (expand "o") (assert))
      ("2"
       (expand trk_bands_si -1)
       (assert)
       (expand "o")
       (lemma trk_bands_si_i_relevant)
       (inst - fp so to vo "1+k")
       (assert)
       (flatten)
       (assert)
       (lemma flight_plan_ascending_time)
       (inst - fp "1+k" 0)
       (assert))
      ("3"
       (expand trk_bands_si -1)
       (assert)
       (lemma trk_bands_si_i_relevant)
       (inst - fp so to vo "1+k")
       (assert)
       (expand "o")
       (assert))
      ("4"
       (lemma trk_bands_si_i_relevant)
       (inst - fp so to vo "1+k")
       (assert)
       (expand trk_bands_si -2)
       (assert)
       (expand "o")
       (assert)
       (lemma flight_plan_ascending_time)
       (inst - fp "1+k" 0)
       (assert))
      ("5"
       (expand trk_bands_si -1)
       (assert)
       (lemma trk_bands_si_i_relevant)
       (inst - fp so to vo "k+1")
       (assert)
       (expand "o")
       (assert))
      ("6"
       (expand trk_bands_si 1)
       (assert)
       (lemma trk_bands_si_i_relevant)
       (inst - fp so to vo "k+1")
       (assert)
       (expand "o")
       (assert))))
    ("4" (assert)) ("5" (expand "trk_bands_si") (assert))
    ("6" (expand "trk_bands_si") (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: bands_si
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skolem 1 (fp so to vo _))
   (lemma trk_bands_si_relevant)
   (inst -1 fp so to vo _)
   (induct i)
   (("1"
     (assert)
     (flatten)
     (assert)
     (inst -2 0)
     (("1"
       (assert)
       (flatten)
       (assert)
       (expand "trk_bands_si")
       (assert)
       (lemma trk_bands_si_i_relevant_has_2)
       (inst?)
       (("1" (assert)) ("2" (assert))))
      ("2" (assert))))
    ("2" (flatten) (assert))
    ("3"
     (skeep)
     (inst - k)
     (assert)
     (flatten)
     (assert)
     (split 1)
     (("1"
       (flatten)
       (assert)
       (lemma trk_bands_si_relevant)
       (inst?)
       (assert)
       (flatten)
       (assert)
       (lemma trk_bands_si_i_relevant_has_2)
       (inst - fp so to vo "k+1")
       (assert)
       (assert)
       (expand trk_bands_si 1)
       (assert)
       (lemma trk_bands_si_i_relevant)
       (inst?)
       (assert)
       (case "fp(1 + k)`time < T + to")
       (("1" (assert) (expand "o") (assert))
        ("2"
         (assert)
         (hide -1)
         (expand "trk_bands_si_i")
         (assert)
         (lemma concat_left_emptyseq)
         (inst?)
         (replace -1)
         (propax))))
      ("2" (flatten) (assert))))
    ("4" (assert)) ("5" (assert)) ("6" (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: bands_si
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (assert)
   (skeep)
   (lemma conflict_3D_rew_absolute_time)
   (inst?)
   (replace -1)
   (hide -1)
   (lemma conflict_3D_rew_absolute_time)
   (inst?)
   (replace -1)
   (hide -1)
   (prop)
   (("1"
     (skeep -1)
     (inst + j)
     (name LB "seg_lh_bottom(fpr, to)(j) + fpr(j)`time - to")
     (replace -1)
     (name UB "seg_lh_top(fpr, to)(j) + fpr(j)`time - to")
     (replace -1)
     (assert)
     (flatten)
     (assert)
     (lemma "trk_bands_equivalence[D,H,LB,UB,gsmin,gsmax,vsmin,vsmax]")
     (("1"
       (inst -
        "so - (fpr(j)`position - (fpr(j)`time - to) * velocity(fpr)(j))"
        " velocity(fpr)(j)" vo)
       (("1"
         (assert)
         (inst - x y)
         (assert)
         (split -)
         (("1" (expand "Vtrk_3D") (propax))
          ("2"
           (hide 2)
           (hide -4)
           (skeep)
           (lemma trk_bands_si_component)
           (inst?)
           (name fred
                 "trk_bands_3D[D,H,LB,UB,gsmin,gsmax,vsmin,vsmax](so -
                                                    (fpr(j)`position -
                                                      (fpr(j)`time - to) * velocity(fpr)(j)),
                                                   vo, velocity(fpr)(j))`seq
                                          (i)")
           (("1"
             (inst - fred)
             (flatten)
             (hide -2)
             (split -2)
             (("1"
               (expand "member")
               (skolem -1 sheep)
               (inst - sheep)
               (ground))
              ("2"
               (inst + j)
               (expand "seg_lh_top")
               (expand "seg_lh_bottom")
               (replace -2)
               (replace -3)
               (assert)
               (expand "min")
               (expand "max")
               (lift-if)
               (assert)
               (expand "member")
               (inst + i)
               (assert))))
            ("2"
             (expand "seg_lh_top")
             (expand "seg_lh_bottom")
             (expand "min")
             (expand "max")
             (lift-if)
             (assert)
             (typepred fpr)
             (hide -5)
             (inst - "j+1")
             (assert)
             (split -6)
             (("1" (flatten) (assert)) ("2" (flatten) (assert))))))))
        ("2" (typepred fpr) (inst -4 j))))
      ("2"
       (expand "seg_lh_top")
       (expand "min")
       (expand "seg_lh_bottom")
       (expand "max")
       (lift-if)
       (assert)
       (typepred fpr)
       (inst - "j+1")
       (assert)
       (split -6)
       (("1" (flatten) (assert)) ("2" (flatten) (assert))))
      ("3"
       (expand "seg_lh_bottom")
       (expand "seg_lh_top")
       (expand "min")
       (expand "max")
       (lift-if)
       (typepred fpr)
       (inst - "j+1")
       (ground))))
    ("2"
     (skeep -1)
     (inst + j)
     (name LB "seg_lh_bottom(fpr, to)(j) + fpr(j)`time - to")
     (replace -1)
     (name UB "seg_lh_top(fpr, to)(j) + fpr(j)`time - to")
     (replace -1)
     (assert)
     (flatten)
     (assert)
     (lemma "trk_bands_equivalence[D,H,LB,UB,gsmin,gsmax,vsmin,vsmax]")
     (("1"
       (inst -
        "so - (fpr(j)`position - (fpr(j)`time - to) * velocity(fpr)(j))"
        " velocity(fpr)(j)" vo)
       (("1"
         (assert)
         (inst - x y)
         (assert)
         (split -)
         (("1" (expand "Vtrk_3D") (propax))
          ("2"
           (hide 2)
           (hide -4)
           (skeep)
           (lemma trk_bands_si_component)
           (inst?)
           (name fred
                 "trk_bands_3D[D,H,LB,UB,gsmin,gsmax,vsmin,vsmax](so -
                                                    (fpr(j)`position -
                                                      (fpr(j)`time - to) * velocity(fpr)(j)),
                                                   vo, velocity(fpr)(j))`seq
                                          (i)")
           (("1"
             (inst - fred)
             (flatten)
             (hide -2)
             (split -2)
             (("1"
               (expand "member")
               (skolem -1 sheep)
               (inst - sheep)
               (ground))
              ("2"
               (inst + j)
               (expand "seg_lh_top")
               (expand "seg_lh_bottom")
               (replace -2)
               (replace -3)
               (assert)
               (expand "min")
               (expand "max")
               (lift-if)
               (assert)
               (expand "member")
               (inst + i)
               (assert))))
            ("2"
             (expand "seg_lh_top")
             (expand "seg_lh_bottom")
             (expand "min")
             (expand "max")
             (lift-if)
             (assert)
             (typepred fpr)
             (hide -5)
             (inst - "j+1")
             (assert)
             (split -6)
             (("1" (flatten) (assert)) ("2" (flatten) (assert))))))))
        ("2" (typepred fpr) (inst -4 j))))
      ("2"
       (expand "seg_lh_top")
       (expand "min")
       (expand "seg_lh_bottom")
       (expand "max")
       (lift-if)
       (assert)
       (typepred fpr)
       (inst - "j+1")
       (assert)
       (split -6)
       (("1" (flatten) (assert)) ("2" (flatten) (assert))))
      ("3"
       (expand "seg_lh_bottom")
       (expand "seg_lh_top")
       (expand "min")
       (expand "max")
       (lift-if)
       (typepred fpr)
       (inst - "j+1")
       (ground))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: bands_si
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (assert)
   (skeep)
   (expand "red_trk_band_fp?")
   (name mid
         "(trk_bands_si(so, vo, to, fpr)(N - 2)`seq(1 + i)
                                     + trk_bands_si(so, vo, to, fpr)(N - 2)`seq(i))
                                    / 2")
   (replace -1)
   (lemma trk_bands_si_equivalence)
   (inst?)
   (assert)
   (prop)
   (("1"
     (skolem 1 xxx)
     (case "xxx<=mid")
     (("1"
       (inst - xxx mid)
       (ground)
       (("1"
         (typepred xxx)
         (typepred "trk_bands_si(so, vo, to, fpr)(N - 2)")
         (expand "trk_fseq?")
         (inst - i)
         (assert))
        ("2"
         (typepred "trk_bands_si(so, vo, to, fpr)(N - 2)")
         (expand "trk_fseq?")
         (inst - "i+1")
         (assert))
        ("3"
         (skolem 1 ii)
         (flatten)
         (typepred xxx)
         (typepred "trk_bands_si(so, vo, to, fpr)(N - 2)")
         (expand "increasing?")
         (inst-cp - ii i)
         (assert)
         (inst-cp - "i+1" ii)
         (assert))))
      ("2"
       (inst - mid xxx)
       (ground)
       (("1"
         (typepred "trk_bands_si(so, vo, to, fpr)(N - 2)")
         (expand "trk_fseq?")
         (inst - i)
         (assert))
        ("2"
         (typepred "trk_bands_si(so, vo, to, fpr)(N - 2)")
         (expand "trk_fseq?")
         (inst - "i+1")
         (assert))
        ("3"
         (skolem 1 ii)
         (flatten)
         (typepred "trk_bands_si(so, vo, to, fpr)(N - 2)")
         (expand "increasing?")
         (inst-cp - ii i)
         (inst-cp - "i+1" ii)
         (assert))))))
    ("2"
     (assert)
     (inst - mid)
     (assert)
     (typepred "trk_bands_si(so, vo, to, fpr)(N - 2)")
     (expand "increasing?")
     (inst - i "i+1")
     (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: bands_si
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (assert)
   (skeep)
   (expand "red_trk_band_fp?")
   (name mid
         "(trk_bands_si(so, vo, to, fpr)(N - 2)`seq
                                            (1 + i)
                                         +
                                         trk_bands_si(so, vo, to, fpr)(N - 2)`seq
                                             (i))
                                        / 2")
   (replace -1)
   (lemma trk_bands_si_equivalence)
   (inst?)
   (assert)
   (prop)
   (("1"
     (skolem 2 xxx)
     (assert)
     (case "xxx <= mid")
     (("1"
       (inst - xxx mid)
       (ground)
       (("1"
         (typepred "trk_bands_si(so, vo, to, fpr)(N - 2)")
         (expand "trk_fseq?")
         (inst - i)
         (assert))
        ("2"
         (typepred "trk_bands_si(so, vo, to, fpr)(N - 2)")
         (expand "trk_fseq?")
         (inst - "i+1")
         (assert))
        ("3"
         (skolem 1 ii)
         (flatten)
         (typepred "trk_bands_si(so, vo, to, fpr)(N - 2)")
         (expand "increasing?")
         (inst-cp - ii i)
         (inst-cp - "i+1" ii)
         (assert))))
      ("2"
       (inst - mid xxx)
       (ground)
       (("1"
         (typepred xxx)
         (typepred "trk_bands_si(so, vo, to, fpr)(N - 2)")
         (expand "trk_fseq?")
         (inst - i)
         (assert))
        ("2"
         (typepred "trk_bands_si(so, vo, to, fpr)(N - 2)")
         (expand "trk_fseq?")
         (inst - "i+1")
         (assert))
        ("3"
         (skolem 1 ii)
         (flatten)
         (typepred xxx)
         (typepred "trk_bands_si(so, vo, to, fpr)(N - 2)")
         (expand "increasing?")
         (inst-cp - ii i)
         (inst-cp - "i+1" ii)
         (assert))))))
    ("2"
     (inst - mid)
     (typepred "trk_bands_si(so, vo, to, fpr)(N - 2)")
     (expand "increasing?")
     (inst - i "i+1")
     (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: bands_si
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skolem 1 (fp so to vo _ x))
   (induct i)
   (("1" (flatten) (inst 1 0) (expand "gs_bands_si") (propax))
    ("2"
     (flatten)
     (assert)
     (skeep -1 (0))
     (expand "gs_bands_si")
     (assert))
    ("3"
     (skeep)
     (assert)
     (assert)
     (prop)
     (("1" (assert) (skosimp*) (inst 1 "j!1"))
      ("2"
       (assert)
       (skosimp*)
       (typepred "j!1")
       (typepred "j!2")
       (assert)
       (expand gs_bands_si 1)
       (lemma member_sort)
       (inst -
        "gs_bands_si_i(so, vo, to, fp)(1 + k) o
                                             gs_bands_si(so, vo, to, fp)(k)"
        x)
       (assert)
       (lemma member_composition)
       (inst - "gs_bands_si_i(so, vo, to, fp)(1 + k)"
        "gs_bands_si(so, vo, to, fp)(k)" x)
       (assert))
      ("3"
       (assert)
       (expand gs_bands_si -1)
       (assert)
       (inst 1 "1+k")
       (assert)
       (lemma member_sort)
       (inst -
        "gs_bands_si_i(so, vo, to, fp)(1 + k) o
                                             gs_bands_si(so, vo, to, fp)(k)"
        x)
       (assert)
       (lemma member_composition)
       (inst - "gs_bands_si_i(so, vo, to, fp)(1 + k)"
        "gs_bands_si(so, vo, to, fp)(k)" x)
       (assert))
      ("4"
       (assert)
       (skosimp*)
       (typepred "j!1")
       (assert)
       (expand "gs_bands_si")
       (assert)
       (lemma member_sort)
       (inst -
        "gs_bands_si_i(so, vo, to, fp)(1 + k) o
                                             gs_bands_si(so, vo, to, fp)(k)"
        x)
       (assert)
       (lemma member_composition)
       (inst - "gs_bands_si_i(so, vo, to, fp)(1 + k)"
        "gs_bands_si(so, vo, to, fp)(k)" x)
       (assert)
       (case "j!1 = k+1")
       (("1" (assert)) ("2" (assert) (inst 5 "j!1"))))))
    ("4" (expand "gs_bands_si") (lift-if) (assert))
    ("5" (expand "gs_bands_si") (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: bands_si
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (lemma gs_bands_si_combines)
   (skeep)
   (inst?)
   (assert)
   (expand "gs_bands_si_i")
   (replace -1)
   (hide -1)
   (prop)
   (("1"
     (skeep -1)
     (inst 1 j)
     (lift-if)
     (ground)
     (("1"
       (expand "member")
       (skolem -2 ii)
       (typepred ii)
       (expand "empty_seq")
       (assert))
      ("2"
       (expand member)
       (skolem -2 ii)
       (typepred ii)
       (expand "empty_seq")
       (assert))
      ("3"
       (expand member)
       (skolem -2 ii)
       (typepred ii)
       (expand "empty_seq")
       (assert))
      ("4"
       (expand member)
       (skolem -2 ii)
       (typepred ii)
       (expand "empty_seq")
       (assert))
      ("5"
       (expand member)
       (skolem -2 ii)
       (typepred ii)
       (expand "empty_seq")
       (assert))
      ("6"
       (expand member)
       (skolem -2 ii)
       (typepred ii)
       (expand "empty_seq")
       (assert))))
    ("2" (skeep -1) (inst 1 j) (lift-if) (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: bands_si
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (assert)
   (skeep)
   (lemma conflict_3D_rew_absolute_time)
   (inst?)
   (replace -1)
   (hide -1)
   (lemma conflict_3D_rew_absolute_time)
   (inst?)
   (replace -1)
   (hide -1)
   (prop)
   (("1"
     (skeep -1)
     (inst + j)
     (name LB "seg_lh_bottom(fpr, to)(j) + fpr(j)`time - to")
     (replace -1)
     (name UB "seg_lh_top(fpr, to)(j) + fpr(j)`time - to")
     (replace -1)
     (assert)
     (flatten)
     (assert)
     (lemma "gs_bands_equivalence[D,H,LB,UB,gsmin,gsmax,vsmin,vsmax]")
     (("1"
       (inst -
        "so - (fpr(j)`position - (fpr(j)`time - to) * velocity(fpr)(j))"
        " velocity(fpr)(j)" vo)
       (("1"
         (assert)
         (inst - x y)
         (assert)
         (split -)
         (("1" (expand "Vgs_3D") (propax))
          ("2"
           (hide 2)
           (hide -4)
           (skeep)
           (lemma gs_bands_si_component)
           (inst?)
           (name fred
                 "gs_bands_3D[D,H,LB,UB,gsmin,gsmax,vsmin,vsmax](so -
                                                                                  (fpr(j)`position -
                                                                                    (fpr(j)`time - to) * velocity(fpr)(j)),
                                                                                 vo, velocity(fpr)(j))`seq
                                                                        (i)")
           (("1"
             (inst - fred)
             (flatten)
             (hide -2)
             (split -2)
             (("1"
               (expand "member")
               (skolem -1 sheep)
               (inst - sheep)
               (ground))
              ("2"
               (inst + j)
               (expand "seg_lh_top")
               (expand "seg_lh_bottom")
               (replace -2)
               (replace -3)
               (assert)
               (expand "min")
               (expand "max")
               (lift-if)
               (assert)
               (expand "member")
               (inst + i)
               (assert))))
            ("2"
             (expand "seg_lh_top")
             (expand "seg_lh_bottom")
             (expand "min")
             (expand "max")
             (lift-if)
             (assert)
             (typepred fpr)
             (hide -5)
             (inst - "j+1")
             (assert)
             (split -6)
             (("1" (flatten) (assert)) ("2" (flatten) (assert))))))))
        ("2" (typepred fpr) (inst -4 j))))
      ("2"
       (expand "seg_lh_top")
       (expand "min")
       (expand "seg_lh_bottom")
       (expand "max")
       (lift-if)
       (assert)
       (typepred fpr)
       (inst - "j+1")
       (assert)
       (split -6)
       (("1" (flatten) (assert)) ("2" (flatten) (assert))))
      ("3"
       (expand "seg_lh_bottom")
       (expand "seg_lh_top")
       (expand "min")
       (expand "max")
       (lift-if)
       (typepred fpr)
       (inst - "j+1")
       (ground))))
    ("2"
     (skeep -1)
     (inst + j)
     (name LB "seg_lh_bottom(fpr, to)(j) + fpr(j)`time - to")
     (replace -1)
     (name UB "seg_lh_top(fpr, to)(j) + fpr(j)`time - to")
     (replace -1)
     (assert)
     (flatten)
     (assert)
     (lemma "gs_bands_equivalence[D,H,LB,UB,gsmin,gsmax,vsmin,vsmax]")
     (("1"
       (inst -
        "so - (fpr(j)`position - (fpr(j)`time - to) * velocity(fpr)(j))"
        " velocity(fpr)(j)" vo)
       (("1"
         (assert)
         (inst - x y)
         (assert)
         (split -)
         (("1" (expand "Vgs_3D") (propax))
          ("2"
           (hide 2)
           (hide -4)
           (skeep)
           (lemma gs_bands_si_component)
           (inst?)
           (name fred
                 "gs_bands_3D[D,H,LB,UB,gsmin,gsmax,vsmin,vsmax](so -
                                                                                  (fpr(j)`position -
                                                                                    (fpr(j)`time - to) * velocity(fpr)(j)),
                                                                                 vo, velocity(fpr)(j))`seq
                                                                        (i)")
           (("1"
             (inst - fred)
             (flatten)
             (hide -2)
             (split -2)
             (("1"
               (expand "member")
               (skolem -1 sheep)
               (inst - sheep)
               (ground))
              ("2"
               (inst + j)
               (expand "seg_lh_top")
               (expand "seg_lh_bottom")
               (replace -2)
               (replace -3)
               (assert)
               (expand "min")
               (expand "max")
               (lift-if)
               (assert)
               (expand "member")
               (inst + i)
               (assert))))
            ("2"
             (expand "seg_lh_top")
             (expand "seg_lh_bottom")
             (expand "min")
             (expand "max")
             (lift-if)
             (assert)
             (typepred fpr)
             (hide -5)
             (inst - "j+1")
             (assert)
             (split -6)
             (("1" (flatten) (assert)) ("2" (flatten) (assert))))))))
        ("2" (typepred fpr) (inst -4 j))))
      ("2"
       (expand "seg_lh_top")
       (expand "min")
       (expand "seg_lh_bottom")
       (expand "max")
       (lift-if)
       (assert)
       (typepred fpr)
       (inst - "j+1")
       (assert)
       (split -6)
       (("1" (flatten) (assert)) ("2" (flatten) (assert))))
      ("3"
       (expand "seg_lh_bottom")
       (expand "seg_lh_top")
       (expand "min")
       (expand "max")
       (lift-if)
       (typepred fpr)
       (inst - "j+1")
       (ground))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: bands_si
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (assert)
   (skeep)
   (expand "red_gs_band_fp?")
   (name mid
         "(gs_bands_si(so, vo, to, fpr)(N - 2)`seq(1 + i)
                                            + gs_bands_si(so, vo, to, fpr)(N - 2)`seq(i))
                                           / 2")
   (replace -1)
   (lemma gs_bands_si_equivalence)
   (inst?)
   (assert)
   (prop)
   (("1"
     (skolem 1 xxx)
     (case "xxx<=mid")
     (("1"
       (inst - xxx mid)
       (ground)
       (("1"
         (typepred xxx)
         (typepred "gs_bands_si(so, vo, to, fpr)(N - 2)")
         (expand "gs_fseq?")
         (inst - i)
         (assert))
        ("2"
         (typepred "gs_bands_si(so, vo, to, fpr)(N - 2)")
         (expand "gs_fseq?")
         (inst - "i+1")
         (assert))
        ("3"
         (skolem 1 ii)
         (flatten)
         (typepred xxx)
         (typepred "gs_bands_si(so, vo, to, fpr)(N - 2)")
         (expand "increasing?")
         (inst-cp - ii i)
         (assert)
         (inst-cp - "i+1" ii)
         (assert))))
      ("2"
       (inst - mid xxx)
       (ground)
       (("1"
         (typepred "gs_bands_si(so, vo, to, fpr)(N - 2)")
         (expand "gs_fseq?")
         (inst - i)
         (assert))
        ("2"
         (typepred "gs_bands_si(so, vo, to, fpr)(N - 2)")
         (expand "gs_fseq?")
         (inst - "i+1")
         (assert))
        ("3"
         (skolem 1 ii)
         (flatten)
         (typepred "gs_bands_si(so, vo, to, fpr)(N - 2)")
         (expand "increasing?")
         (inst-cp - ii i)
         (inst-cp - "i+1" ii)
         (assert))))))
    ("2"
     (assert)
     (inst - mid)
     (assert)
     (typepred "gs_bands_si(so, vo, to, fpr)(N - 2)")
     (expand "increasing?")
     (inst - i "i+1")
     (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: bands_si
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (assert)
   (skeep)
   (expand "red_gs_band_fp?")
   (name mid
         "(gs_bands_si(so, vo, to, fpr)(N - 2)`seq
                                                   (1 + i)
                                                +
                                                gs_bands_si(so, vo, to, fpr)(N - 2)`seq
                                                    (i))
                                               / 2")
   (replace -1)
   (lemma gs_bands_si_equivalence)
   (inst?)
   (assert)
   (prop)
   (("1"
     (skolem 2 xxx)
     (assert)
     (case "xxx <= mid")
     (("1"
       (inst - xxx mid)
       (ground)
       (("1"
         (typepred "gs_bands_si(so, vo, to, fpr)(N - 2)")
         (expand "gs_fseq?")
         (inst - i)
         (assert))
        ("2"
         (typepred "gs_bands_si(so, vo, to, fpr)(N - 2)")
         (expand "gs_fseq?")
         (inst - "i+1")
         (assert))
        ("3"
         (skolem 1 ii)
         (flatten)
         (typepred "gs_bands_si(so, vo, to, fpr)(N - 2)")
         (expand "increasing?")
         (inst-cp - ii i)
         (inst-cp - "i+1" ii)
         (assert))))
      ("2"
       (inst - mid xxx)
       (ground)
       (("1"
         (typepred xxx)
         (typepred "gs_bands_si(so, vo, to, fpr)(N - 2)")
         (expand "gs_fseq?")
         (inst - i)
         (assert))
        ("2"
         (typepred "gs_bands_si(so, vo, to, fpr)(N - 2)")
         (expand "gs_fseq?")
         (inst - "i+1")
         (assert))
        ("3"
         (skolem 1 ii)
         (flatten)
         (typepred xxx)
         (typepred "gs_bands_si(so, vo, to, fpr)(N - 2)")
         (expand "increasing?")
         (inst-cp - ii i)
         (inst-cp - "i+1" ii)
         (assert))))))
    ("2"
     (inst - mid)
     (typepred "gs_bands_si(so, vo, to, fpr)(N - 2)")
     (expand "increasing?")
     (inst - i "i+1")
     (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: bands_si
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skolem 1 (fp so to vo _ x))
   (induct i)
   (("1" (flatten) (inst 1 0) (expand "vs_bands_si") (propax))
    ("2"
     (flatten)
     (assert)
     (skeep -1 (0))
     (expand "vs_bands_si")
     (assert))
    ("3"
     (skeep)
     (assert)
     (assert)
     (prop)
     (("1" (assert) (skosimp*) (inst 1 "j!1"))
      ("2"
       (assert)
       (skosimp*)
       (typepred "j!1")
       (typepred "j!2")
       (assert)
       (expand vs_bands_si 1)
       (lemma member_sort)
       (inst -
        "vs_bands_si_i(so, vo, to, fp)(1 + k) o
                                             vs_bands_si(so, vo, to, fp)(k)"
        x)
       (assert)
       (lemma member_composition)
       (inst - "vs_bands_si_i(so, vo, to, fp)(1 + k)"
        "vs_bands_si(so, vo, to, fp)(k)" x)
       (assert))
      ("3"
       (assert)
       (expand vs_bands_si -1)
       (assert)
       (inst 1 "1+k")
       (assert)
       (lemma member_sort)
       (inst -
        "vs_bands_si_i(so, vo, to, fp)(1 + k) o
                                             vs_bands_si(so, vo, to, fp)(k)"
        x)
       (assert)
       (lemma member_composition)
       (inst - "vs_bands_si_i(so, vo, to, fp)(1 + k)"
        "vs_bands_si(so, vo, to, fp)(k)" x)
       (assert))
      ("4"
       (assert)
       (skosimp*)
       (typepred "j!1")
       (assert)
       (expand "vs_bands_si")
       (assert)
       (lemma member_sort)
       (inst -
        "vs_bands_si_i(so, vo, to, fp)(1 + k) o
                                             vs_bands_si(so, vo, to, fp)(k)"
        x)
       (assert)
       (lemma member_composition)
       (inst - "vs_bands_si_i(so, vo, to, fp)(1 + k)"
        "vs_bands_si(so, vo, to, fp)(k)" x)
       (assert)
       (case "j!1 = k+1")
       (("1" (assert)) ("2" (assert) (inst 5 "j!1"))))))
    ("4" (expand "vs_bands_si") (lift-if) (assert))
    ("5" (expand "vs_bands_si") (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: bands_si
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (lemma vs_bands_si_combines)
   (skeep)
   (inst?)
   (assert)
   (expand "vs_bands_si_i")
   (replace -1)
   (hide -1)
   (prop)
   (("1"
     (skeep -1)
     (inst 1 j)
     (lift-if)
     (ground)
     (("1"
       (expand "member")
       (skolem -2 ii)
       (typepred ii)
       (expand "empty_seq")
       (assert))
      ("2"
       (expand member)
       (skolem -2 ii)
       (typepred ii)
       (expand "empty_seq")
       (assert))
      ("3"
       (expand member)
       (skolem -2 ii)
       (typepred ii)
       (expand "empty_seq")
       (assert))
      ("4"
       (expand member)
       (skolem -2 ii)
       (typepred ii)
       (expand "empty_seq")
       (assert))
      ("5"
       (expand member)
       (skolem -2 ii)
       (typepred ii)
       (expand "empty_seq")
       (assert))
      ("6"
       (expand member)
       (skolem -2 ii)
       (typepred ii)
       (expand "empty_seq")
       (assert))))
    ("2" (skeep -1) (inst 1 j) (lift-if) (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: bands_si
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (assert)
   (skeep)
   (lemma conflict_3D_rew_absolute_time)
   (inst?)
   (replace -1)
   (hide -1)
   (lemma conflict_3D_rew_absolute_time)
   (inst?)
   (replace -1)
   (hide -1)
   (prop)
   (("1"
     (skeep -1)
     (inst + j)
     (name LB "seg_lh_bottom(fpr, to)(j) + fpr(j)`time - to")
     (replace -1)
     (name UB "seg_lh_top(fpr, to)(j) + fpr(j)`time - to")
     (replace -1)
     (assert)
     (flatten)
     (assert)
     (lemma "vs_bands_equivalence[D,H,LB,UB,gsmin,gsmax,vsmin,vsmax]")
     (("1"
       (inst -
        "so - (fpr(j)`position - (fpr(j)`time - to) * velocity(fpr)(j))"
        " velocity(fpr)(j)" vo)
       (("1"
         (assert)
         (inst - x y)
         (assert)
         (split -)
         (("1" (expand "Vs") (propax))
          ("2"
           (hide 2)
           (hide -4)
           (skeep)
           (lemma vs_bands_si_component)
           (inst?)
           (name fred
                 "vs_bands_3D[D,H,LB,UB,gsmin,gsmax,vsmin,vsmax](so -
                                                                                                                (fpr(j)`position -
                                                                                                                  (fpr(j)`time - to) * velocity(fpr)(j)),
                                                                                                               vo, velocity(fpr)(j))`seq
                                                                                                      (i)")
           (("1"
             (inst - fred)
             (flatten)
             (hide -2)
             (split -2)
             (("1"
               (expand "member")
               (skolem -1 sheep)
               (inst - sheep)
               (ground))
              ("2"
               (inst + j)
               (expand "seg_lh_top")
               (expand "seg_lh_bottom")
               (replace -2)
               (replace -3)
               (assert)
               (expand "min")
               (expand "max")
               (lift-if)
               (assert)
               (expand "member")
               (inst + i)
               (assert))))
            ("2"
             (expand "seg_lh_top")
             (expand "seg_lh_bottom")
             (expand "min")
             (expand "max")
             (lift-if)
             (assert)
             (typepred fpr)
             (hide -5)
             (inst - "j+1")
             (assert)
             (split -6)
             (("1" (flatten) (assert)) ("2" (flatten) (assert))))))))
        ("2" (typepred fpr) (inst -4 j))))
      ("2"
       (expand "seg_lh_top")
       (expand "min")
       (expand "seg_lh_bottom")
       (expand "max")
       (lift-if)
       (assert)
       (typepred fpr)
       (inst - "j+1")
       (assert)
       (split -6)
       (("1" (flatten) (assert)) ("2" (flatten) (assert))))
      ("3"
       (expand "seg_lh_bottom")
       (expand "seg_lh_top")
       (expand "min")
       (expand "max")
       (lift-if)
       (typepred fpr)
       (inst - "j+1")
       (ground))))
    ("2"
     (skeep -1)
     (inst + j)
     (name LB "seg_lh_bottom(fpr, to)(j) + fpr(j)`time - to")
     (replace -1)
     (name UB "seg_lh_top(fpr, to)(j) + fpr(j)`time - to")
     (replace -1)
     (assert)
     (flatten)
     (assert)
     (lemma "vs_bands_equivalence[D,H,LB,UB,gsmin,gsmax,vsmin,vsmax]")
     (("1"
       (inst -
        "so - (fpr(j)`position - (fpr(j)`time - to) * velocity(fpr)(j))"
        " velocity(fpr)(j)" vo)
       (("1"
         (assert)
         (inst - x y)
         (assert)
         (split -)
         (("1" (expand "Vs") (propax))
          ("2"
           (hide 2)
           (hide -4)
           (skeep)
           (lemma vs_bands_si_component)
           (inst?)
           (name fred
                 "vs_bands_3D[D,H,LB,UB,gsmin,gsmax,vsmin,vsmax](so -
                                                                                                                (fpr(j)`position -
                                                                                                                  (fpr(j)`time - to) * velocity(fpr)(j)),
                                                                                                               vo, velocity(fpr)(j))`seq
                                                                                                      (i)")
           (("1"
             (inst - fred)
             (flatten)
             (hide -2)
             (split -2)
             (("1"
               (expand "member")
               (skolem -1 sheep)
               (inst - sheep)
               (ground))
              ("2"
               (inst + j)
               (expand "seg_lh_top")
               (expand "seg_lh_bottom")
               (replace -2)
               (replace -3)
               (assert)
               (expand "min")
               (expand "max")
               (lift-if)
               (assert)
               (expand "member")
               (inst + i)
               (assert))))
            ("2"
             (expand "seg_lh_top")
             (expand "seg_lh_bottom")
             (expand "min")
             (expand "max")
             (lift-if)
             (assert)
             (typepred fpr)
             (hide -5)
             (inst - "j+1")
             (assert)
             (split -6)
             (("1" (flatten) (assert)) ("2" (flatten) (assert))))))))
        ("2" (typepred fpr) (inst -4 j))))
      ("2"
       (expand "seg_lh_top")
       (expand "min")
       (expand "seg_lh_bottom")
       (expand "max")
       (lift-if)
       (assert)
       (typepred fpr)
       (inst - "j+1")
       (assert)
       (split -6)
       (("1" (flatten) (assert)) ("2" (flatten) (assert))))
      ("3"
       (expand "seg_lh_bottom")
       (expand "seg_lh_top")
       (expand "min")
       (expand "max")
       (lift-if)
       (typepred fpr)
       (inst - "j+1")
       (ground))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: bands_si
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (assert)
   (skeep)
   (expand "red_vs_band_fp?")
   (name mid
         "(vs_bands_si(so, vo, to, fpr)(N - 2)`seq(1 + i)
                                                   + vs_bands_si(so, vo, to, fpr)(N - 2)`seq(i))
                                                  / 2")
   (replace -1)
   (lemma vs_bands_si_equivalence)
   (inst?)
   (assert)
   (prop)
   (("1"
     (skolem 1 xxx)
     (case "xxx<=mid")
     (("1"
       (inst - xxx mid)
       (ground)
       (("1"
         (typepred xxx)
         (typepred "vs_bands_si(so, vo, to, fpr)(N - 2)")
         (expand "vs_fseq?")
         (inst - i)
         (assert))
        ("2"
         (typepred "vs_bands_si(so, vo, to, fpr)(N - 2)")
         (expand "vs_fseq?")
         (inst - "i+1")
         (assert))
        ("3"
         (skolem 1 ii)
         (flatten)
         (typepred xxx)
         (typepred "vs_bands_si(so, vo, to, fpr)(N - 2)")
         (expand "increasing?")
         (inst-cp - ii i)
         (assert)
         (inst-cp - "i+1" ii)
         (assert))))
      ("2"
       (inst - mid xxx)
       (ground)
       (("1"
         (typepred "vs_bands_si(so, vo, to, fpr)(N - 2)")
         (expand "vs_fseq?")
         (inst - i)
         (assert))
        ("2"
         (typepred "vs_bands_si(so, vo, to, fpr)(N - 2)")
         (expand "vs_fseq?")
         (inst - "i+1")
         (assert))
        ("3"
         (skolem 1 ii)
         (flatten)
         (typepred "vs_bands_si(so, vo, to, fpr)(N - 2)")
         (expand "increasing?")
         (inst-cp - ii i)
         (inst-cp - "i+1" ii)
         (assert))))))
    ("2"
     (assert)
     (inst - mid)
     (assert)
     (typepred "vs_bands_si(so, vo, to, fpr)(N - 2)")
     (expand "increasing?")
     (inst - i "i+1")
     (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: bands_si
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (assert)
   (skeep)
   (expand "red_vs_band_fp?")
   (name mid
         "(vs_bands_si(so, vo, to, fpr)(N - 2)`seq
                                                          (1 + i)
                                                       +
                                                       vs_bands_si(so, vo, to, fpr)(N - 2)`seq
                                                           (i))
                                                      / 2")
   (replace -1)
   (lemma vs_bands_si_equivalence)
   (inst?)
   (assert)
   (prop)
   (("1"
     (skolem 2 xxx)
     (assert)
     (case "xxx <= mid")
     (("1"
       (inst - xxx mid)
       (ground)
       (("1"
         (typepred "vs_bands_si(so, vo, to, fpr)(N - 2)")
         (expand "vs_fseq?")
         (inst - i)
         (assert))
        ("2"
         (typepred "vs_bands_si(so, vo, to, fpr)(N - 2)")
         (expand "vs_fseq?")
         (inst - "i+1")
         (assert))
        ("3"
         (skolem 1 ii)
         (flatten)
         (typepred "vs_bands_si(so, vo, to, fpr)(N - 2)")
         (expand "increasing?")
         (inst-cp - ii i)
         (inst-cp - "i+1" ii)
         (assert))))
      ("2"
       (inst - mid xxx)
       (ground)
       (("1"
         (typepred xxx)
         (typepred "vs_bands_si(so, vo, to, fpr)(N - 2)")
         (expand "vs_fseq?")
         (inst - i)
         (assert))
        ("2"
         (typepred "vs_bands_si(so, vo, to, fpr)(N - 2)")
         (expand "vs_fseq?")
         (inst - "i+1")
         (assert))
        ("3"
         (skolem 1 ii)
         (flatten)
         (typepred xxx)
         (typepred "vs_bands_si(so, vo, to, fpr)(N - 2)")
         (expand "increasing?")
         (inst-cp - ii i)
         (inst-cp - "i+1" ii)
         (assert))))))
    ("2"
     (inst - mid)
     (typepred "vs_bands_si(so, vo, to, fpr)(N - 2)")
     (expand "increasing?")
     (inst - i "i+1")
     (assert))))


proof_type: t_proof
decl_type: tcc
library: ACCoRD
theory: bands_si
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (inst +
    "lambda (jj: below[N]): (# time:= B+to+jj,position:= (# x:=jj, y:=jj, z:=jj #) #)")
   (assert)
   (grind)
   (expand "zero")
   (propax))


proof_type: t_proof
decl_type: tcc
library: ACCoRD
theory: bands_si
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (inst +
    "lambda (jj: below[N]): (# time:= B+to+jj,position:= (# x:=jj, y:=jj, z:=jj #) #)")
   (assert)
   (assert)
   (skeep)
   (expand "velocity")
   (expand "vect2")
   (assert)
   (expand "zero")
   (assert)
   (expand "-")
   (propax))


proof_type: t_proof
decl_type: tcc
library: ACCoRD
theory: bands_si
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (skeep)
   (skeep)
   (skeep)
   (skeep)
   (skeep 3)
   (skeep 3)
   (skeep 3)
   (skeep 3)
   (skeep 3)
   (skeep 3)
   (skeep 3)
   (replace -1)
   (replace -2)
   (replace -4)
   (replace -5)
   (typepred fp)
   (inst - "i+1")
   (assert)
   (hide -3 -4 -6 -7)
   (replace -3)
   (hide -3)
   (replace -3)
   (hide -3)
   (replace -3)
   (hide -3)
   (replace -3)
   (hide -3)
   (replace -3)
   (hide -3)
   (hide -3)
   (replace -3)
   (hide -3)
   (replace -3)
   (hide -3)
   (expand "min")
   (expand "max")
   (lift-if)
   (ground)
   (("1" (lift-if) (assert)) ("2" (lift-if) (assert))))


proof_type: t_proof
decl_type: tcc
library: ACCoRD
theory: bands_si
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (skeep)
   (skeep)
   (replace -3)
   (replace -4)
   (expand "max")
   (expand "min")
   (lift-if)
   (assert)
   (typepred fp)
   (ground)
   (inst - "i+1")
   (assert))


proof_type: t_proof
decl_type: tcc
library: ACCoRD
theory: bands_si
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (assert)
   (typepred " v(so, vo, to, fp)(i - 1)")
   (typepred "trk_bands_si_i(so, vo, to, fp)(i)")
   (auto-rewrite "sort_trk_fseq")
   (auto-rewrite "comp_trk_fseq")
   (assert))


proof_type: t_proof
decl_type: tcc
library: ACCoRD
theory: bands_si
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (typepred " v(so, vo, to, fp)(i-1)")
   (("1"
     (auto-rewrite "sort_gs_fseq")
     (auto-rewrite "comp_gs_fseq")
     (assert))
    ("2" (assert))))


proof_type: t_proof
decl_type: tcc
library: ACCoRD
theory: bands_si
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (typepred " v(so, vo, to, fp)(i - 1)")
   (("1"
     (assert)
     (auto-rewrite sort_vs_fseq)
     (auto-rewrite comp_vs_fseq)
     (assert))
    ("2" (assert))))


proof_type: t_proof
decl_type: tcc
library: ACCoRD
theory: bands_si
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (skeep)
   (replace -1)
   (hide -1)
   (replace -3)
   (hide -3)
   (expand "max")
   (expand "min")
   (lift-if)
   (assert)
   (lift-if)
   (assert)
   (ground)
   (typepred fp)
   (inst - "j+1")
   (assert)
   (lift-if)
   (ground))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: cd3d_ii
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (typepred t1)
   (expand "start_time")
   (expand "end_time")
   (skolem - jj)
   (flatten)
   (lemma segment_index[N])
   (inst - fp jj t1)
   (flatten)
   (assert)
   (lemma segment_index[N])
   (inst - fp j t1)
   (("1"
     (assert)
     (flatten)
     (assert)
     (typepred fp)
     (inst - "jj+1")
     (assert)
     (hide -5)
     (typepred jj)
     (expand "min")
     (lift-if)
     (assert))
    ("2" (assert) (lemma segment_def[N]) (inst - fp t1) (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: cd3d_ii
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nooooo!
script:
  (""
   (skeep)
   (assert)
   (skeep)
   (typepred t1)
   (typepred t2)
   (typepred fp)
   (skeep -8)
   (name jj "segment(fp)(t1)")
   (replace -1)
   (name segend
         "min(fp(1 + jj)`time - fp(jj)`time, fp(0)`time - fp(jj)`time + T)")
   (replace -1)
   (case "segend <= fp(1 + jj)`time - fp(jj)`time")
   (("1"
     (expand "min")
     (lift-if)
     (assert)
     (assert)
     (lemma flight_plan_ascending_time[N])
     (assert)
     (inst - fp jj 0)
     (split +)
     (("1" (assert))
      ("2"
       (assert)
       (lemma segment_def[N])
       (inst - fp t1)
       (assert)
       (flatten)
       (assert)
       (replace -6)
       (case "jj<j")
       (("1"
         (assert)
         (case "j=jj+1")
         (("1" (assert))
          ("2"
           (assert)
           (case "jj < j-1")
           (("1"
             (assert)
             (lemma flight_plan_ascending_time[N])
             (inst - fp "j-1" jj)
             (assert)
             (replace -17)
             (assert)
             (case "fp(j)`time < fp(jj+1)`time")
             (("1"
               (assert)
               (typepred j)
               (typepred jj)
               (case "j-1 < jj+1")
               (("1" (assert))
                ("2"
                 (assert)
                 (lemma flight_plan_ascending_time[N])
                 (inst - fp j jj)
                 (case "jj <= j-2")
                 (("1"
                   (assert)
                   (hide -2)
                   (hide -6 -7)
                   (replace -19 :dir rl)
                   (lemma flight_plan_ascending_time[N])
                   (inst - fp j "jj+1")
                   (assert))
                  ("2" (assert))))))
              ("2" (assert))))
            ("2" (assert))))))
        ("2"
         (assert)
         (lemma flight_plan_ascending_time[N])
         (inst - fp jj j)
         (assert))))))
    ("2" (expand "min") (lift-if) (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: cd3d_ii
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (typepred jt)
   (skolem - jj)
   (flatten)
   (lemma seg_allowable)
   (inst - fp fp2 jt j)
   (assert)
   (flatten)
   (expand "min")
   (lift-if)
   (case "jj=j")
   (("1"
     (replace -1)
     (hide -1)
     (case "fp(j+1)`time>fp(0)`time+T")
     (("1" (assert)) ("2" (assert)) ("3" (assert))))
    ("2"
     (assert)
     (lemma segment_def[N])
     (inst - fp jt)
     (assert)
     (flatten)
     (assert)
     (lemma segment_index[N])
     (inst - fp jj jt)
     (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: cd3d_ii
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (lemma seg_allowable)
   (inst?)
   (inst - j)
   (assert)
   (flatten)
   (assert)
   (expand "min")
   (lift-if)
   (assert)
   (typepred jt)
   (expand "start_time")
   (expand "end_time")
   (assert)
   (skolem - jj)
   (flatten)
   (assert)
   (case "jj=j")
   (("1" (assert))
    ("2"
     (lemma segment_def[N])
     (inst?)
     (assert)
     (lemma segment_index[N])
     (inst - fp jj jt)
     (assert)
     (typepred fp)
     (inst - "jj+1")
     (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: cd3d_ii
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (prop)
   (("1"
     (expand "conflict_3D_ii?")
     (skeep -1)
     (inst + "fp(segment(fp)(tt))`time")
     (("1"
       (assert)
       (expand "conflict_3D?")
       (inst + tt)
       (("1"
         (name loc1 "location_at[N](fp)(tt)")
         (lemma "segment_ident[N]")
         (inst?)
         (replace -1)
         (name j "segment(fp)(tt)")
         (replace -1)
         (expand location_at -4 1)
         (expand location_at -5 1)
         (assert)
         (lemma segment_max[N])
         (inst?)
         (assert)
         (replace -1)
         (assert)
         (hide -4)
         (expand "*")
         (expand "+")
         (assert))
        ("2"
         (typepred tt)
         (assert)
         (lemma segment_index[N])
         (name j "segment(fp)(tt)")
         (replace -1)
         (inst - fp j tt)
         (("1"
           (assert)
           (flatten)
           (assert)
           (expand "min")
           (lemma segment_ident[N])
           (inst - fp tt)
           (replace -2 :dir rl)
           (replace -1)
           (replace -2)
           (assert)
           (lift-if)
           (assert))
          ("2" (assert) (lemma segment_max[N]) (inst?) (assert))))))
      ("2"
       (typepred tt)
       (name j "segment(fp)(tt)")
       (replace -1)
       (assert)
       (expand "start_time")
       (expand "end_time")
       (hide -7 -8)
       (typepred fp2)
       (inst - 1)
       (assert)
       (lemma segment_index[N])
       (assert)
       (inst - fp j tt)
       (("1"
         (assert)
         (flatten)
         (assert)
         (lemma "flight_plan_ascending_time[N]")
         (inst - fp j 0)
         (split +)
         (("1" (assert)) ("2" (typepred tt) (inst + j) (assert))))
        ("2" (lemma segment_max[N]) (inst?) (assert))))))
    ("2"
     (skolem -1 jt)
     (name j "segment(fp)(jt)")
     (replace -1)
     (assert)
     (expand "conflict_3D_ii?")
     (lemma
      "conflict_3D_flightplan_open_interval[D, H, 0, min(fp(1 + j)`time - fp(j)`time, fp(0)`time - fp(j)`time + T), M]")
     (("1"
       (assert)
       (inst?)
       (("1"
         (replace -1)
         (hide -1)
         (skolem - tt)
         (flatten)
         (typepred jt)
         (skolem - jj)
         (flatten)
         (assert)
         (expand "start_time")
         (expand "end_time")
         (case "jj=j")
         (("1"
           (lemma time_in_range)
           (inst?)
           (replace -10)
           (assert)
           (inst - tt)
           (flatten)
           (assert)
           (case "tt < fp(N-1)`time AND fp2(0)`time <= tt")
           (("1"
             (flatten)
             (assert)
             (inst + tt)
             (expand location_at 1 1)
             (expand location_at 1 2)
             (assert)
             (lift-if)
             (lemma segment_max[N])
             (inst - fp tt)
             (("1"
               (assert)
               (case "(fp(j)`position + (tt - jt) * velocity[N](fp)(j))=fp(segment(fp)(tt))`position +
                                      (tt - fp(segment(fp)(tt))`time) *
                                       velocity(fp)(segment(fp)(tt))")
               (("1"
                 (replace -1)
                 (assert)
                 (expand "+")
                 (expand "*")
                 (expand "-")
                 (assert))
                ("2"
                 (hide -17 -18 3)
                 (assert)
                 (lemma segment_def[N])
                 (inst?)
                 (assert)
                 (flatten)
                 (assert)
                 (name k "segment(fp)(tt)")
                 (replace -1)
                 (case "j=k")
                 (("1" (replace -1) (replace -9) (replace -12) (propax))
                  ("2"
                   (hide 2)
                   (lemma segment_index[N])
                   (inst - fp j tt)
                   (assert))))))
              ("2" (assert) (expand "end_time") (assert))))
            ("2"
             (typepred tt)
             (expand "start_time")
             (expand "end_time")
             (assert)
             (case "tt < fp(j+1)`time")
             (("1"
               (assert)
               (lemma flight_plan_ascending_time[N])
               (inst - fp "N-1" "j+1")
               (assert))
              ("2" (assert))))))
          ("2"
           (lemma segment_def[N])
           (inst?)
           (lemma segment_index[N])
           (inst - fp jj jt)
           (assert)
           (flatten)
           (assert)
           (typepred fp)
           (inst - "jj+1")
           (assert))))
        ("2"
         (hide -2 2)
         (typepred jt)
         (skolem - jj)
         (flatten)
         (assert)
         (expand "end_time")
         (expand "start_time")
         (expand "min")
         (lift-if)
         (assert)
         (lemma segment_def[N])
         (inst - fp jt)
         (assert)
         (flatten)
         (assert)
         (replace -10)
         (lemma segment_index[N])
         (inst - fp jj jt)
         (assert)
         (ground))))
      ("2"
       (hide -2 2)
       (expand "min")
       (lift-if)
       (typepred jt)
       (expand "start_time")
       (expand "end_time")
       (skolem - jj)
       (flatten)
       (assert)
       (lemma segment_def[N])
       (inst?)
       (flatten)
       (assert))
      ("3"
       (typepred jt)
       (skolem -3 jj)
       (flatten)
       (assert)
       (expand "end_time")
       (expand "start_time")
       (typepred jj)
       (assert)
       (lemma segment_max[N])
       (inst - fp jt)
       (assert))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: cd3d_ii
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (induct i)
   (("1"
     (assert)
     (flatten)
     (skeep)
     (split)
     (("1" (prop) (inst?) (assert)) ("2" (flatten) (skeep -1) (assert))))
    ("2"
     (skeep)
     (skeep)
     (assert)
     (inst?)
     (prop)
     (("1" (skeep -3) (inst?) (assert))
      ("2" (skosimp*) (assert) (expand cd3d_ii_ind? 1) (propax))
      ("3" (inst?) (assert)) ("4" (skeep -1) (inst?) (assert))))
    ("3"
     (skeep 2)
     (split)
     (("1" (flatten) (inst?) (assert))
      ("2" (flatten) (skeep -1) (assert))))
    ("4" (skeep 2) (prop) (("1" (inst?) (assert)) ("2" (assert))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: cd3d_ii
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (induct i)
   (("1" (skeep -1) (assert) (inst?) (assert))
    ("2"
     (assert)
     (flatten)
     (assert)
     (expand "cd3d_ii_ind?")
     (assert)
     (split)
     (("1"
       (assert)
       (flatten)
       (assert)
       (inst 1 0)
       (assert)
       (lemma
        "cd3d_si_correct[D, H, 0, min(fp(1)`time - fp(0)`time, T), M]")
       (("1" (inst?) (assert))
        ("2"
         (assert)
         (expand "min")
         (lift-if)
         (typepred fp)
         (inst - 1)
         (assert))))
      ("2" (propax))))
    ("3"
     (skeep)
     (prop)
     (("1" (skeep -1) (inst + j) (assert))
      ("2"
       (assert)
       (expand cd3d_ii_ind? -2)
       (prop)
       (lemma
        "cd3d_si_correct[D, H, 0,
                   min(fp(2 + jb)`time - fp(1 + jb)`time,
                       fp(0)`time - fp(1 + jb)`time + T),
                   M]")
       (("1" (inst?) (assert) (inst?) (assert))
        ("2"
         (expand "min")
         (lift-if)
         (assert)
         (typepred fp)
         (inst - "jb+2")
         (assert))))))
    ("4"
     (skeep)
     (skeep)
     (skeep)
     (skeep)
     (skeep)
     (skeep)
     (hide 2)
     (replace -2)
     (hide -2)
     (replace -2)
     (hide -2)
     (hide -1 -2 -3 -5 -6 -8 -9)
     (expand "min")
     (typepred fp)
     (inst - "j+1")
     (assert)
     (lift-if)
     (assert))
    ("5"
     (skeep)
     (skeep)
     (skeep)
     (skeep)
     (skeep)
     (skeep)
     (typepred M)
     (assert))
    ("6"
     (skeep)
     (skeep)
     (skeep)
     (skeep)
     (skeep)
     (skeep)
     (typepred M)
     (assert))
    ("7" (assert)) ("8" (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: cd3d_ii
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (induct i)
   (("1" (skeep -1) (inst?) (assert))
    ("2"
     (flatten)
     (inst 1 0)
     (("1"
       (flatten)
       (assert)
       (lemma
        "cd3d_si_complete[D, H, 0,
                              min(fp(1)`time - fp(0)`time,
                                  fp(0)`time - fp(0)`time + T),
                              M]")
       (("1"
         (prop)
         (inst?)
         (("1" (ground) (expand "cd3d_ii_ind?") (propax))
          ("2" (assert) (expand "min") (assert) (lift-if) (assert))))
        ("2"
         (expand "min")
         (lift-if)
         (assert)
         (typepred fp)
         (inst - 1)
         (assert))))
      ("2" (assert))))
    ("3"
     (skeep)
     (skeep -2)
     (assert)
     (lift-if)
     (assert)
     (case "fp(0)`time - fp(j)`time + T > 0 AND
                     fp2(0)`time < min(fp(1 + j)`time, fp(0)`time + T) AND
                      fp2(M - 1)`time > fp(j)`time AND j <= jb")
     (("1"
       (flatten)
       (assert)
       (inst?)
       (prop)
       (expand "cd3d_ii_ind?" 1)
       (flatten))
      ("2"
       (hide -2)
       (inst?)
       (prop)
       (case "j=jb+1")
       (("1"
         (assert)
         (replace -1 :dir rl)
         (typepred j)
         (hide -2 -8 1)
         (hide -3 -4)
         (expand "cd3d_ii_ind?")
         (prop)
         (assert)
         (lemma
          "cd3d_si_complete[D, H, 0,
                     min(fp(1 + j)`time - fp(j)`time, fp(0)`time - fp(j)`time + T), M]")
         (("1" (inst?) (assert))
          ("2"
           (expand "min")
           (lift-if)
           (assert)
           (typepred fp)
           (inst - "j+1")
           (assert))))
        ("2" (assert))))))
    ("4"
     (skeep)
     (skeep)
     (skeep)
     (skeep)
     (skeep)
     (replace -1)
     (hide -1)
     (hide 2)
     (assert)
     (replace -1)
     (hide -1)
     (expand "min")
     (lift-if)
     (assert)
     (typepred fp)
     (inst - "j+1")
     (assert))
    ("5" (skeep) (hide 2) (skeep) (skeep) (skeep) (skeep) (assert))
    ("6" (skeep) (skeep) (skeep) (skeep) (skeep) (assert)) ("7" (assert))
    ("8" (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: cd3d_ii
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (lemma cd3d_ii_ind_correct)
   (expand "cd3d_ii?")
   (inst?)
   (("1"
     (assert)
     (hide -2)
     (skeep -1)
     (assert)
     (ground)
     (lemma cd3d_ii_rew)
     (inst - fp fp2)
     (replace -1)
     (hide -1)
     (name jt "fp(j)`time")
     (inst 1 jt)
     (("1"
       (case "segment(fp)(jt) = j")
       (("1" (replace -1) (assert))
        ("2"
         (lemma segment_def[N])
         (inst - fp jt)
         (flatten)
         (assert)
         (lemma segment_index[N])
         (inst - fp j jt)
         (assert)
         (typepred fp)
         (inst - "j+1")
         (assert))))
      ("2"
       (hide -5)
       (expand "start_time")
       (expand "end_time")
       (lemma flight_plan_ascending_time[N])
       (inst - fp j 0)
       (lemma flight_plan_ascending_time[N])
       (inst - fp "N-1" j)
       (assert)
       (ground)
       (("1" (inst + j) (assert)) ("2" (inst + j) (assert))))))
    ("2" (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: cd3d_ii
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
script:
  (""
   (skeep)
   (lemma cd3d_ii_ind_complete)
   (copy 1)
   (hide 1)
   (expand "cd3d_ii?")
   (inst?)
   (("1"
     (lemma cd3d_ii_rew)
     (inst - fp fp2)
     (replace -1)
     (hide -1)
     (skeep -1)
     (name relT "T - (fp(j)`time - fp(0)`time)")
     (replace -1)
     (name t "min(fp(j + 1)`time - fp(j)`time, relT)")
     (typepred j)
     (assert)
     (skolem - tt)
     (typepred tt)
     (skolem - jj)
     (assert)
     (flatten)
     (hide 2)
     (expand "start_time")
     (expand "end_time")
     (case "jj=j")
     (("1"
       (replace -1)
       (assert)
       (ground)
       (("1"
         (expand "conflict_3D?")
         (assert)
         (skolem - jt)
         (inst + jt)
         (("1"
           (replace -5)
           (case "segment(fp)(fp(j)`time)=j")
           (("1" (replace -1) (propax))
            ("2"
             (replace -5 :dir rl)
             (lemma segment_def[N])
             (inst - fp tt)
             (assert)
             (flatten)
             (assert)
             (lemma segment_index[N])
             (inst - fp j tt)
             (assert)
             (typepred fp)
             (inst - "j+1")
             (assert))))
          ("2"
           (typepred jt)
           (expand "start_time")
           (expand "end_time")
           (lemma segment_index[N])
           (inst - fp j tt)
           (assert)
           (typepred fp)
           (inst - "j+1")
           (assert))))
        ("2" (expand "min") (lift-if) (hide -10) (ground))))
      ("2"
       (reveal 2)
       (lemma segment_index[N])
       (inst - fp jj tt)
       (assert)
       (typepred fp)
       (inst - "jj+1")
       (assert)
       (replace -2)
       (lemma cd3d_si_complete_parameters)
       (inst - "fp(jj)`position" "velocity[N](fp)(jj)" tt
        "min(fp(1 + segment(fp)(tt))`time - fp(segment(fp)(tt))`time,
                             fp(0)`time - fp(segment(fp)(tt))`time + T)"
        fp fp2)
       (("1"
         (case "min(fp(1 + segment(fp)(tt))`time - fp(segment(fp)(tt))`time,
                                            fp(0)`time - fp(segment(fp)(tt))`time + T) = min(fp(1 + jj)`time - fp(jj)`time,
                                            fp(0)`time - fp(jj)`time + T)")
         (("1"
           (replace -1)
           (assert)
           (hide -1)
           (hide -14 3)
           (expand "cd3d_ii?")
           (lemma some_cd3d_ii)
           (inst - fp fp2 N-2)
           (assert)
           (inst 1 jj)
           (hide 2)
           (expand "cd3d_ii_ind?")
           (flatten)
           (assert)
           (case "fp2(0)`time < min(fp(1 + jj)`time, fp(0)`time + T)")
           (("1" (assert) (expand "min") (assert) (lift-if) (assert))
            ("2" (assert) (expand "min") (lift-if) (assert))))
          ("2" (hide 2 3 4) (hide -1 -14) (replace -2) (propax))))
        ("2" (hide -13 2 3 4) (expand "min") (lift-if) (assert))))))
    ("2" (assert))))


proof_type: t_proof
decl_type: tcc
library: ACCoRD
theory: cd3d_ii
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (inst +
    "lambda (j: below[M]): (# time:= IF j < N THEN fp(j)`time ELSE j+fp(N-1)`time ENDIF,position:=zero #)")
   (("1"
     (ground)
     (("1"
       (skeep)
       (lift-if)
       (lift-if)
       (ground)
       (("1" (typepred fp) (inst?) (assert)) ("2" (lift-if) (ground))))
      ("2"
       (assert)
       (lemma "flight_plan_ascending_time[N]")
       (inst?)
       (assert))
      ("3"
       (lift-if)
       (ground)
       (("1" (lemma "flight_plan_ascending_time[N]") (inst?) (assert))
        ("2"
         (lemma "flight_plan_ascending_time[N]")
         (inst - fp "N-1" 0)
         (assert))))
      ("4" (lift-if) (assert))))
    ("2" (skeep) (assert))))


proof_type: t_proof
decl_type: tcc
library: ACCoRD
theory: cd3d_ii
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (assert)
   (typepred t1)
   (expand "start_time")
   (expand "end_time")
   (skolem -3 jj)
   (flatten)
   (assert)
   (lemma segment_max[N])
   (inst - fp t1)
   (assert))


proof_type: t_proof
decl_type: tcc
library: ACCoRD
theory: cd3d_ii
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (expand "min")
   (lift-if)
   (typepred fp)
   (inst - "j+1")
   (("1"
     (assert)
     (typepred t1)
     (expand "start_time")
     (expand "end_time")
     (skolem -3 jj)
     (assert)
     (flatten)
     (assert)
     (lemma segment_max[N])
     (inst - fp t1)
     (assert)
     (lemma flight_plan_ascending_time[N])
     (inst - fp j 0)
     (lemma segment_def[N])
     (inst - fp t1)
     (assert)
     (flatten)
     (assert))
    ("2"
     (assert)
     (typepred t1)
     (expand "start_time")
     (expand "end_time")
     (skolem -3 jj)
     (assert)
     (flatten)
     (assert)
     (typepred j)
     (lemma segment_max[N])
     (inst - fp t1)
     (assert))))


proof_type: t_proof
decl_type: tcc
library: ACCoRD
theory: cd3d_ii
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (skeep)
   (typepred t1)
   (expand "start_time")
   (expand "end_time")
   (lemma segment_max[N])
   (inst - fp t1)
   (assert)
   (skolem -4 jj)
   (flatten)
   (assert))


proof_type: t_proof
decl_type: tcc
library: ACCoRD
theory: cd3d_ii
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (typepred jt)
   (skolem - jj)
   (assert)
   (expand "end_time")
   (expand "start_time")
   (assert)
   (flatten)
   (assert)
   (lemma segment_def[N])
   (inst?)
   (assert))


proof_type: t_proof
decl_type: tcc
library: ACCoRD
theory: cd3d_ii
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (typepred jt)
   (skolem - jj)
   (assert)
   (flatten)
   (assert)
   (expand "start_time")
   (expand "end_time")
   (assert)
   (case "jj=j")
   (("1" (assert))
    ("2" (lemma segment_def[N]) (inst?) (flatten) (assert))))


proof_type: t_proof
decl_type: tcc
library: ACCoRD
theory: cd3d_ii
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (skeep)
   (typepred tt)
   (lemma segment_index[N])
   (inst - fp j tt)
   (("1" (assert) (assert) (skolem -4 jj) (flatten) (assert))
    ("2"
     (assert)
     (lemma segment_max[N])
     (inst?)
     (assert)
     (skolem -4 jj)
     (assert))))


proof_type: t_proof
decl_type: tcc
library: ACCoRD
theory: cd3d_ii
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (skeep)
   (skeep)
   (skeep)
   (skeep)
   (typepred tt)
   (lemma segment_max[N])
   (inst?)
   (assert)
   (skolem -4 jj)
   (assert))


proof_type: t_proof
decl_type: tcc
library: ACCoRD
theory: cd3d_ii
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (skeep)
   (skeep)
   (skeep)
   (skeep)
   (hide -4 -5)
   (replace -1)
   (replace -2)
   (replace -3)
   (hide -2 -3)
   (expand "min")
   (lift-if)
   (lemma segment_ident[N])
   (inst?)
   (replace -2 :dir rl)
   (hide -1)
   (typepred tt)
   (expand "start_time")
   (expand "end_time")
   (skolem - jj)
   (flatten)
   (assert)
   (typepred fp)
   (inst - "j+1")
   (("1"
     (assert)
     (lemma segment_def[N])
     (inst?)
     (assert)
     (flatten)
     (assert))
    ("2" (lemma segment_max[N]) (inst?) (assert))))


proof_type: t_proof
decl_type: tcc
library: ACCoRD
theory: cd3d_ii
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (skeep)
   (skeep)
   (skeep)
   (skeep)
   (replace -1)
   (hide -1)
   (replace -1)
   (hide -1)
   (assert)
   (expand "min")
   (lift-if)
   (ground))


proof_type: t_proof
decl_type: tcc
library: ACCoRD
theory: cd3d_ii
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (skeep)
   (skeep)
   (skeep)
   (skeep)
   (replace -1)
   (hide -1)
   (replace -1)
   (hide -1)
   (expand "min")
   (lift-if)
   (assert)
   (typepred fp)
   (inst - "j+1")
   (assert))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: repulsive
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (case "s*v<0")
   (("1"
     (hide 2)
     (assert)
     (case "tca(s,v) > 0")
     (("1"
       (assert)
       (skeep)
       (expand "repulsive?")
       (split -)
       (("1"
         (case "s*nv>=0")
         (("1"
           (lemma "closest_approach_2D.dot_nneg_divergent")
           (inst - "s" "zero" "nv" "zero")
           (assert)
           (case "norm(s)>=norm(s+tca(s,v)*v)")
           (("1"
             (assert)
             (split -)
             (("1"
               (expand "divergent?")
               (case "t = 0")
               (("1" (replaces -1) (assert))
                ("2"
                 (inst - "t")
                 (("1"
                   (assert)
                   (rewrite "dist_norm")
                   (rewrite "dist_norm")
                   (assert))
                  ("2" (assert))))))
              ("2" (flatten) (replaces -1) (assert))))
            ("2"
             (hide 2)
             (lemma "horizontal_tca_min")
             (inst - "v" "s" "0")
             (("1"
               (assert)
               (rewrite "horizontal_sq_dtca_eq")
               (rewrite "sqrt_le" -1 :dir rl)
               (rewrite "sqrt_sqv_norm")
               (rewrite "sqrt_sqv_norm")
               (expand "tca" +)
               (lift-if)
               (split +)
               (("1" (flatten) (assert)) ("2" (flatten) (assert))))
              ("2" (flatten) (replaces -1) (assert))))))
          ("2"
           (expand "tca" -1)
           (lift-if)
           (split -)
           (("1" (flatten) (replaces -1) (assert))
            ("2"
             (flatten)
             (expand "horizontal_tca" -1)
             (cross-mult -1)
             (ground)
             (lemma "sqv_eq_0")
             (inst?)
             (assert))))))
        ("2"
         (case "nv = zero OR v = zero")
         (("1"
           (split -)
           (("1" (replaces -1) (assert)) ("2" (replaces -1) (assert))))
          ("2"
           (flatten)
           (expand "tca")
           (assert)
           (lemma "horizontal_tca_min")
           (inst - "nv" "s" "t")
           (rewrite "horizontal_sq_dtca_eq")
           (rewrite "sqrt_le" -1 :dir rl)
           (rewrite "sqrt_sqv_norm")
           (rewrite "sqrt_sqv_norm")
           (assert))))))
      ("2"
       (hide 2)
       (expand "tca" 1)
       (lift-if)
       (ground)
       (("1" (replaces -1) (assert))
        ("2"
         (expand "horizontal_tca")
         (cross-mult 2)
         (ground)
         (lemma "sqv_eq_0")
         (inst?)
         (assert))))))
    ("2"
     (assert)
     (hide 2)
     (skeep 2)
     (expand "repulsive?")
     (flatten)
     (case "NOT s*nv>=0")
     (("1" (assert))
      ("2"
       (hide (-2 -3))
       (lemma "closest_approach_2D.dot_nneg_divergent")
       (inst - "s" "zero" "nv" "zero")
       (assert)
       (case "nv = zero")
       (("1" (replaces -1) (assert))
        ("2"
         (assert)
         (expand "divergent?")
         (inst - "t")
         (("1"
           (assert)
           (rewrite "dist_norm")
           (rewrite "dist_norm")
           (assert))
          ("2"
           (assert)
           (case "t = 0")
           (("1" (replaces -1) (assert)) ("2" (assert))))))))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: repulsive
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "repulsive?")
   (flatten)
   (assert)
   (case "v = zero")
   (("1" (assert) (replace -1) (assert) (grind))
    ("2"
     (assert)
     (case "s*v < 0")
     (("1"
       (assert)
       (flatten)
       (hide 4)
       (ground)
       (("1"
         (expand "tca" -3)
         (assert)
         (lift-if)
         (ground)
         (("1" (replaces -1) (assert))
          ("2"
           (expand "horizontal_tca")
           (cross-mult -1)
           (ground)
           (lemma "sqv_eq_0")
           (inst?)
           (ground))))
        ("2"
         (expand "tca" 2)
         (assert)
         (lift-if)
         (ground)
         (expand "horizontal_tca")
         (cross-mult 2)
         (ground)
         (lemma "sqv_eq_0")
         (inst?)
         (assert))
        ("3"
         (expand "tca")
         (expand "horizontal_tca")
         (cross-mult 2)
         (ground)
         (lemma "sqv_eq_0")
         (inst?)
         (assert))
        ("4"
         (expand "tca")
         (lift-if 3)
         (ground)
         (expand "horizontal_tca")
         (cross-mult 2)
         (ground)
         (lemma "sqv_eq_0")
         (inst?)
         (assert))
        ("5"
         (expand "tca" 2)
         (lift-if)
         (ground)
         (expand "horizontal_tca")
         (cross-mult 2)
         (ground)
         (lemma "sqv_eq_0")
         (inst?)
         (assert))
        ("6"
         (expand "tca" 2)
         (assert)
         (expand "horizontal_tca")
         (ground)
         (cross-mult 2)
         (ground)
         (lemma "sqv_eq_0")
         (inst?)
         (assert))
        ("7"
         (expand "tca" 3)
         (assert)
         (lift-if)
         (ground)
         (expand "horizontal_tca")
         (ground)
         (cross-mult 2)
         (ground)
         (lemma "sqv_eq_0")
         (inst?)
         (assert))))
      ("2" (assert) (hide 3) (grind))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: repulsive
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (expand "sum_closed_2D?")
   (skosimp*)
   (ground)
   (expand "repulsive?")
   (case "tca(s!1,nv!1)>=0 AND tca(s!1,nw!1)>=0")
   (("1"
     (flatten)
     (assert)
     (split -)
     (("1"
       (hide-all-but (-1 1 3))
       (expand "tca")
       (lift-if)
       (ground)
       (("1"
         (case "nv!1 = -nw!1")
         (("1"
           (replace -1)
           (expand "horizontal_tca")
           (rewrite "sqv_neg")
           (case "sqv(nw!1)>0")
           (("1"
             (cross-mult 2)
             (cross-mult 4)
             (hide-all-but (2 4))
             (grind))
            ("2" (lemma "sqv_eq_0") (inst - "nw!1") (assert))))
          ("2"
           (hide-all-but (-1 1))
           (expand "zero")
           (decompose-equality)
           (("1" (grind)) ("2" (grind))))))
        ("2"
         (case "sqv(nv!1+nw!1)>0 AND sqv(nv!1)>0 AND sqv(nw!1)>0")
         (("1"
           (flatten)
           (expand "horizontal_tca")
           (cross-mult -4)
           (cross-mult 2)
           (cross-mult 4)
           (hide-all-but (-4 2 4))
           (grind))
          ("2"
           (lemma "sqv_eq_0")
           (inst-cp - "nv!1+nw!1")
           (inst-cp - "nv!1")
           (inst - "nw!1")
           (ground))))))
      ("2"
       (case "FORALL (epsilon: posreal): norm(s!1 + tca(s!1, nv!1 + nw!1) * (nv!1 + nw!1)) <=norm(s!1 + tca(s!1, v!1) * v!1) + epsilon")
       (("1"
         (case "FORALL (epsilon: posreal): norm(s!1 + tca(s!1, nv!1 + nw!1) * (nv!1 + nw!1)) <
                                                           norm(s!1 + tca(s!1, v!1) * v!1) + epsilon")
         (("1"
           (inst -
            "norm(s!1 + tca(s!1, nv!1 + nw!1) * (nv!1 + nw!1)) - norm(s!1 + tca(s!1, v!1) * v!1)")
           (("1" (assert)) ("2" (assert))))
          ("2"
           (hide-all-but (-1 1))
           (skosimp*)
           (inst - "epsilon!1/2")
           (assert))))
        ("2"
         (hide -1)
         (skosimp*)
         (name "A" "norm(s!1 + tca(s!1, v!1) * v!1) + epsilon!1")
         (replace -1)
         (case "NOT (norm(s!1 + tca(s!1, v!1) * v!1) + epsilon!1 > norm(s!1 + tca(s!1, nw!1) * nw!1) AND norm(s!1 + tca(s!1, v!1) * v!1) + epsilon!1 > norm(s!1 + tca(s!1, nv!1) * nv!1))")
         (("1" (ground))
          ("2"
           (flatten)
           (label "Aname" -3)
           (hide "Aname")
           (lemma "horizontal_conflict_sum_closed[A]")
           (inst - "s!1" "nv!1" "nw!1")
           (split -)
           (("1"
             (expand "horizontal_conflict?")
             (skosimp*)
             (lemma "horizontal_tca_los[A]")
             (inst - "nv!1 + nw!1" "s!1")
             (("1"
               (split -)
               (("1"
                 (rewrite "sqrt_sqv_norm" :dir rl)
                 (rewrite "sqrt_sqv_norm" :dir rl)
                 (lemma "sq_le")
                 (inst?)
                 (assert)
                 (expand "tca" 1)
                 (lift-if)
                 (ground)
                 (("1"
                   (case "nv!1=-nw!1")
                   (("1"
                     (replace -1)
                     (hide-all-but (3 5))
                     (expand "tca")
                     (lift-if)
                     (ground)
                     (expand "horizontal_tca")
                     (rewrite "sqv_neg")
                     (case "sqv(nw!1)>0")
                     (("1" (cross-mult 2) (cross-mult 3) (grind))
                      ("2" (lemma "sqv_eq_0") (inst?) (assert))))
                    ("2"
                     (hide-all-but (-1 1))
                     (expand "zero")
                     (decompose-equality)
                     (("1" (grind)) ("2" (grind))))))
                  ("2"
                   (case "FORALL (vvk: Vect2): sq(norm(vvk)) = sqv(vvk)")
                   (("1"
                     (inst -
                      "s!1 + horizontal_tca(s!1, nv!1 + nw!1) * (nv!1 + nw!1)")
                     (assert))
                    ("2"
                     (hide-all-but 1)
                     (skeep)
                     (lemma "sqrt_eq")
                     (inst?)
                     (assert)
                     (rewrite "sqrt_sqv_norm"))))))
                ("2"
                 (lemma "Delta_gt_0[A]")
                 (inst - "s!1" "nv!1+nw!1")
                 (assert)
                 (case "nv!1+nw!1 = zero")
                 (("1"
                   (hide-all-but (-1 4 6))
                   (case "nv!1=-nw!1")
                   (("1"
                     (replace -1)
                     (expand "tca")
                     (lift-if)
                     (ground)
                     (expand "horizontal_tca")
                     (rewrite "sqv_neg")
                     (case "sqv(nw!1)>0")
                     (("1" (cross-mult 2) (cross-mult 4) (grind))
                      ("2" (lemma "sqv_eq_0") (inst?) (assert))))
                    ("2"
                     (hide-all-but (-1 1))
                     (expand "zero")
                     (decompose-equality)
                     (("1" (grind)) ("2" (grind))))))
                  ("2"
                   (assert)
                   (expand "horizontal_conflict_ever?")
                   (inst + "nnt!1"))))))
              ("2"
               (flatten)
               (hide-all-but (-1 2 4))
               (case "nv!1=-nw!1")
               (("1"
                 (replace -1)
                 (case "sqv(nw!1)>0")
                 (("1"
                   (expand "tca")
                   (lift-if)
                   (ground)
                   (expand "horizontal_tca")
                   (cross-mult 2)
                   (cross-mult 4)
                   (grind))
                  ("2"
                   (lemma "sqv_eq_0")
                   (inst?)
                   (assert)
                   (expand "tca")
                   (lift-if)
                   (assert))))
                ("2"
                 (hide-all-but (-1 1))
                 (expand "zero")
                 (decompose-equality)
                 (("1" (grind)) ("2" (grind))))))))
            ("2"
             (expand "horizontal_conflict?")
             (inst + "tca(s!1,nv!1)")
             (case "norm(s!1 + tca(s!1, nv!1) * nv!1) < A")
             (("1"
               (assert)
               (lemma "sqrt_lt")
               (inst - "sqv(s!1 + tca(s!1, nv!1) * nv!1)" "sq(A)")
               (assert)
               (rewrite "sqrt_sqv_norm"))
              ("2" (reveal "Aname") (assert))))
            ("3"
             (assert)
             (expand "horizontal_conflict?")
             (inst + "tca(s!1,nw!1)")
             (case "norm(s!1 + tca(s!1, nw!1) * nw!1) < A")
             (("1"
               (lemma "sqrt_lt")
               (inst - "sqv(s!1 + tca(s!1, nw!1) * nw!1)" "sq(A)")
               (assert)
               (rewrite "sqrt_sqv_norm"))
              ("2" (reveal "Aname") (assert))))))))))))
    ("2" (assert) (flatten) (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: repulsive
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (case "FORALL (cc: posreal, eps: Sign, nv, s, v: Vect2):
                                             repulsive_criteria(s, v, eps)(nv) IMPLIES
                                              repulsive_criteria(cc * s, v, eps)(nv)")
   (("1"
     (skeep)
     (ground)
     (("1" (inst?) (assert))
      ("2" (inst - "1/cc" "eps" "nv" "cc*s" "v") (assert))))
    ("2"
     (hide 2)
     (skeep)
     (expand "repulsive_criteria")
     (assert)
     (flatten)
     (assert)
     (split +)
     (("1"
       (flatten)
       (lemma "scal_zero")
       (inst - "1/cc")
       (replace -2 -1 :dir rl)
       (assert))
      ("2" (hide 2) (mult-by -1 "cc") (hide-all-but (-1 1)) (grind))
      ("3" (mult-by -2 "cc") (assert) (hide-all-but (-2 1)) (grind))
      ("4"
       (flatten)
       (split -)
       (("1" (flatten) (hide 2) (assert) (mult-by -1 "cc") (assert))
        ("2"
         (hide 1)
         (assert)
         (flatten)
         (assert)
         (copy -1)
         (mult-by -1 "cc")
         (assert)
         (ground)
         (("1" (replace -1) (mult-by -2 "cc") (assert))
          ("2" (mult-by -1 "cc") (assert))
          ("3" (replace -1) (assert) (mult-by -2 "cc") (assert))
          ("4" (mult-by -1 "cc") (assert))))))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: repulsive
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (case "FORALL (cc: posreal, eps: Sign, nv, s, v: Vect2): s*v<0 AND
                                             repulsive_criteria(s, v, eps)(nv) IMPLIES
                                              repulsive_criteria(s, v, eps)(cc*nv)")
   (("1"
     (skeep)
     (case "s*v<0")
     (("1"
       (assert)
       (hide 2)
       (split)
       (("1" (flatten) (inst - "1/cc" "eps" "cc*nv" "s" "v") (assert))
        ("2" (flatten) (inst?) (assert))))
      ("2"
       (assert)
       (case "FORALL (cc: posreal, eps: Sign, nv, s, v: Vect2): s*v>=0 AND
                                                         repulsive_criteria(s, (1/cc)*v, eps)(nv) IMPLIES
                                                          repulsive_criteria(s, v, eps)(cc*nv)")
       (("1"
         (hide 2)
         (hide -2)
         (split)
         (("1"
           (flatten)
           (inst - "1/cc" "eps" "cc*nv" "s" "(1/cc)*v")
           (assert)
           (cross-mult 2))
          ("2" (flatten) (inst?) (assert))))
        ("2"
         (hide (2 3 4))
         (hide -1)
         (skosimp*)
         (expand "repulsive_criteria")
         (flatten)
         (assert)
         (copy -1)
         (mult-by -1 "1/cc!1")
         (assert)
         (case "v!1=zero")
         (("1"
           (replace -1)
           (assert)
           (mult-by -5 "cc!1")
           (assert)
           (split +)
           (("1"
             (flatten)
             (case "(1/cc!1)*(cc!1*nv!1)=zero")
             (("1" (assert)) ("2" (replace -1) (assert))))
            ("2" (grind)) ("3" (flatten) (mult-by -6 "cc!1") (grind))
            ("4" (assert) (flatten) (assert) (grind))))
          ("2"
           (assert)
           (flatten)
           (case "cc!1*v!1=zero")
           (("1"
             (case "(1/cc!1)*(cc!1*v!1)=zero")
             (("1" (assert)) ("2" (replace -1) (assert))))
            ("2"
             (assert)
             (split +)
             (("1"
               (flatten)
               (case "(1/cc!1)*(cc!1*nv!1)=zero")
               (("1" (assert)) ("2" (replace -1) (assert))))
              ("2" (mult-by 1 "1/cc!1") (grind))
              ("3" (mult-by -4 "cc!1") (grind))
              ("4"
               (assert)
               (case "(1/cc!1)*v!1=zero")
               (("1"
                 (case "cc!1*((1/cc!1)*v!1)=zero")
                 (("1" (assert)) ("2" (replace -1) (assert))))
                ("2" (assert) (cross-mult -6))))
              ("5" (mult-by -7 "cc!1^2") (grind))))))))))))
    ("2"
     (hide 2)
     (skeep)
     (expand "repulsive_criteria")
     (flatten)
     (assert)
     (split)
     (("1"
       (flatten)
       (case "(1/cc)*(cc*nv)=zero")
       (("1" (assert)) ("2" (replace -1) (assert))))
      ("2" (mult-by -3 "cc") (grind)) ("3" (mult-by -4 "cc") (grind))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: repulsive
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: supposing first that g = (0,1)
script:
  (""
   (skeep)
   (case "det(f,g) = 0")
   (("1"
     (lemma "parallel_det_0")
     (inst - "f" "g")
     (assert)
     (expand "parallel?")
     (skeep -1)
     (case "nzk < 0")
     (("1"
       (replaces -2)
       (mult-by -5 "-nzk")
       (hide-all-but (-4 -5))
       (grind))
      ("2"
       (replaces -1)
       (mult-by 2 "nzk")
       (hide-all-but (-6 1))
       (grind))))
    ("2"
     (assert)
     (case "det(e,g) = 0")
     (("1" (assert))
      ("2"
       (assert)
       (case "det(e,g) > 0")
       (("1"
         (assert)
         (hide 4)
         (case "EXISTS (ce:nnreal,cf:posreal): g = ce*e + cf*f")
         (("1" (skeep -1) (mult-by -6 "ce") (mult-by -7 "cf") (grind))
          ("2"
           (case "NOT FORALL (gg,ff,ee:Vect2): det(ff,ee)*gg = det(gg,ee)*ff - det(gg,ff)*ee")
           (("1" (hide-all-but 1) (grind))
            ("2"
             (case "det(f,e) = 0")
             (("1"
               (lemma "parallel_det_0")
               (inst - "f" "e")
               (assert)
               (expand "parallel?")
               (skeep -1)
               (case "nzk > 0")
               (("1"
                 (replaces -2)
                 (mult-by -4 "nzk")
                 (hide-all-but (-4 4))
                 (grind))
                ("2"
                 (replaces -1)
                 (mult-by -4 "-nzk")
                 (hide-all-but (-1 -5))
                 (grind))))
              ("2"
               (assert)
               (case "det(e,f) = 0")
               (("1" (hide-all-but (-1 1)) (grind))
                ("2"
                 (assert)
                 (name "ce" "-det(g,f)/det(f,e)")
                 (name "cf" "det(g,e)/det(f,e)")
                 (case "NOT g = ce*e + cf*f")
                 (("1"
                   (expand "ce")
                   (expand "cf")
                   (inst - "g" "f" "e")
                   (decompose-equality 1)
                   (("1" (div-by -3 "det(f,e)") (grind))
                    ("2" (div-by -3 "det(f,e)") (grind))))
                  ("2"
                   (case "ce>=0 AND cf>0")
                   (("1" (flatten) (inst + "ce" "cf") (assert))
                    ("2"
                     (assert)
                     (case "NOT det(f,e) < 0")
                     (("1"
                       (inst - "g" "f" "e")
                       (case "det(g,e) < 0 AND det(g,f)>0")
                       (("1"
                         (flatten)
                         (mult-by -8 "det(g,f)")
                         (mult-by -9 "-det(g,e)")
                         (mult-by -10 "det(f,e)")
                         (hide +)
                         (grind))
                        ("2"
                         (split 1)
                         (("1" (hide-all-but (-5 1)) (grind))
                          ("2" (hide -) (grind))))))
                      ("2"
                       (split +)
                       (("1"
                         (expand "ce" 1)
                         (cross-mult 1)
                         (hide -)
                         (grind))
                        ("2"
                         (expand "cf" 1)
                         (cross-mult 1)
                         (hide-all-but (-6 1))
                         (grind))))))))))))))))))
        ("2"
         (case "det(e,g) < 0")
         (("1"
           (hide 1)
           (assert)
           (hide 3)
           (case "EXISTS (ce:nnreal,cf:posreal): g = ce*e + cf*f")
           (("1" (skeep -1) (mult-by -6 "ce") (mult-by -7 "cf") (grind))
            ("2"
             (case "NOT FORALL (gg,ff,ee:Vect2): det(ff,ee)*gg = det(gg,ee)*ff - det(gg,ff)*ee")
             (("1" (hide-all-but 1) (grind))
              ("2"
               (case "det(f,e) = 0")
               (("1"
                 (lemma "parallel_det_0")
                 (inst - "f" "e")
                 (assert)
                 (expand "parallel?")
                 (skeep -1)
                 (case "nzk > 0")
                 (("1"
                   (replaces -2)
                   (mult-by -4 "nzk")
                   (hide-all-but (-4 4))
                   (grind))
                  ("2"
                   (replaces -1)
                   (mult-by -4 "-nzk")
                   (hide-all-but (-1 -5))
                   (grind))))
                ("2"
                 (assert)
                 (case "det(e,f) = 0")
                 (("1" (hide-all-but (-1 1)) (grind))
                  ("2"
                   (assert)
                   (name "ce" "-det(g,f)/det(f,e)")
                   (name "cf" "det(g,e)/det(f,e)")
                   (case "NOT g = ce*e + cf*f")
                   (("1"
                     (expand "ce")
                     (expand "cf")
                     (inst - "g" "f" "e")
                     (decompose-equality 1)
                     (("1" (div-by -3 "det(f,e)") (grind))
                      ("2" (div-by -3 "det(f,e)") (grind))))
                    ("2"
                     (case "ce>=0 AND cf>0")
                     (("1" (flatten) (inst + "ce" "cf") (assert))
                      ("2"
                       (assert)
                       (case "NOT det(f,e) > 0")
                       (("1"
                         (inst - "g" "f" "e")
                         (case "det(g,e) > 0 AND det(g,f)<0")
                         (("1"
                           (flatten)
                           (mult-by -8 "-det(g,f)")
                           (mult-by -9 "det(g,e)")
                           (mult-by -10 "-det(f,e)")
                           (hide +)
                           (grind))
                          ("2"
                           (split 1)
                           (("1" (hide-all-but (-5 1)) (grind))
                            ("2" (hide -) (grind))))))
                        ("2"
                         (split +)
                         (("1"
                           (expand "ce" 1)
                           (cross-mult 1)
                           (hide -)
                           (grind))
                          ("2"
                           (expand "cf" 1)
                           (cross-mult 1)
                           (hide-all-but (-6 1))
                           (grind))))))))))))))))))
          ("2" (assert))))))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: repulsive
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "repulsive_criteria")
   (flatten)
   (assert)
   (flatten)
   (assert)
   (split -)
   (("1"
     (flatten)
     (assert)
     (hide 6)
     (split -)
     (("1"
       (flatten)
       (assert)
       (lemma "wedge_containment")
       (inst - "-eps*perpR(v)" "s" "nv" "nw" "eps*perpR(s)")
       (("1"
         (split -)
         (("1" (hide-all-but (-1 5)) (grind))
          ("2" (hide-all-but 1) (grind)) ("3" (grind)) ("4" (grind))
          ("5"
           (flatten)
           (typepred "eps")
           (split -)
           (("1" (replaces -1) (hide -1) (assert))
            ("2" (replaces -1) (assert) (hide-all-but (-3 -5)) (grind))))
          ("6"
           (flatten)
           (typepred "eps")
           (split -)
           (("1" (replaces -1) (hide -1) (grind))
            ("2" (replaces -1) (hide -1) (assert))))
          ("7" (grind)) ("8" (grind))))
        ("2"
         (flatten)
         (case "s+zero = -eps*perpR(eps*perpR(s))")
         (("1" (replaces -2) (assert))
          ("2" (hide-all-but 1) (typepred "eps") (grind))))))
      ("2"
       (flatten)
       (lemma "wedge_containment")
       (inst - "-eps*perpR(v)" "s" "eps*perpR(s)" "nw" "eps*perpR(s)")
       (("1"
         (assert)
         (split -1)
         (("1" (grind)) ("2" (hide-all-but 1) (grind))
          ("3"
           (typepred "sqv(perpR(s))")
           (lemma "sqv_eq_0")
           (inst?)
           (assert)
           (flatten)
           (hide -2)
           (split -1)
           (("1"
             (case "s +zero = -perpR(perpR(s))")
             (("1" (replace -2) (assert))
              ("2" (hide-all-but 1) (grind))))
            ("2" (typepred "eps") (grind))))
          ("4" (grind)) ("5" (flatten) (typepred "eps") (grind))
          ("6" (flatten) (typepred "eps") (grind)) ("7" (grind))
          ("8" (typepred "eps") (grind))))
        ("2"
         (flatten)
         (case "s+zero = -eps*(perpR(eps*perpR(s)))")
         (("1" (replace -2) (assert))
          ("2" (hide-all-but 1) (typepred "eps") (grind))))))))
    ("2"
     (flatten)
     (assert)
     (hide 5)
     (assert)
     (case "NOT s*nv>=0")
     (("1" (ground))
      ("2"
       (assert)
       (flatten)
       (assert)
       (split +)
       (("1" (flatten) (assert))
        ("2"
         (lemma "wedge_containment")
         (inst - "-eps*perpR(v)" "s" "nv" "nw" "eps*perpR(s)")
         (("1"
           (split -)
           (("1" (hide-all-but (-1 1)) (grind))
            ("2" (hide-all-but 1) (grind)) ("3" (grind)) ("4" (grind))
            ("5"
             (flatten)
             (typepred "eps")
             (split -)
             (("1" (replaces -1) (hide -1) (assert))
              ("2"
               (replaces -1)
               (assert)
               (hide-all-but (-3 -13))
               (grind))))
            ("6"
             (flatten)
             (typepred "eps")
             (split -)
             (("1" (replaces -1) (hide -1) (grind))
              ("2" (replaces -1) (hide -1) (assert))))
            ("7" (grind))
            ("8"
             (case "NOT det(nv,v) = 0")
             (("1" (mult-by 1 "eps") (grind))
              ("2"
               (lemma "parallel_det_0")
               (inst?)
               (("1"
                 (assert)
                 (expand "parallel?")
                 (skeep -1)
                 (case "nzk > 0")
                 (("1" (replaces -2) (mult-by 2 "nzk") (grind))
                  ("2"
                   (replaces -1)
                   (assert)
                   (mult-by -6 "-nzk")
                   (grind))))
                ("2" (flatten) (replaces -1) (hide -) (grind))))))))
          ("2"
           (flatten)
           (case "s+zero = -eps*perpR(eps*perpR(s))")
           (("1" (replaces -2) (assert))
            ("2" (hide-all-but 1) (typepred "eps") (grind))))))))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: repulsive
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (label "thislem" -2)
   (hide "thislem")
   (case "NOT (s+pt*nv+px*nw)-s = pt*nv + px*nw")
   (("1" (hide-all-but 1) (grind))
    ("2"
     (replaces -1)
     (expand "repulsive_criteria")
     (flatten)
     (assert)
     (case "pt*nv=(-px)*nw")
     (("1"
       (replace -1)
       (assert)
       (hide-all-but (-1 -4 -7))
       (mult-by -2 "pt")
       (case "NOT eps*det(s,pt*nv)<0")
       (("1" (grind))
        ("2" (hide -3) (replaces -2) (mult-by -2 "px") (grind))))
      ("2"
       (assert)
       (case "pt*nv+px*nw = zero")
       (("1"
         (case "pt*nv - zero = (-px)*nw + (nw-nw)")
         (("1" (assert))
          ("2" (replaces -1 1 :dir rl) (hide-all-but 1) (grind))))
        ("2"
         (assert)
         (split -)
         (("1"
           (assert)
           (flatten)
           (assert)
           (case "NOT eps*det(s,nw)<0")
           (("1" (mult-by -2 "pt") (grind))
            ("2"
             (case "NOT eps * det(s, pt * nv + px * nw) < 0")
             (("1"
               (hide-all-but (-1 -8 1))
               (mult-by -1 "px")
               (mult-by -2 "pt")
               (grind))
              ("2"
               (assert)
               (lemma "wedge_containment")
               (inst - "-eps*perpR(v)" "s" "nv" "nw" "eps*perpR(s)")
               (("1"
                 (split -)
                 (("1" (mult-by -1 "px") (mult-by -9 "pt") (grind))
                  ("2" (hide-all-but (-7 1)) (grind)) ("3" (grind))
                  ("4" (grind))
                  ("5"
                   (flatten)
                   (typepred "eps")
                   (ground)
                   (replaces -1)
                   (assert)
                   (grind))
                  ("6" (typepred "eps") (grind)) ("7" (grind))
                  ("8" (grind))))
                ("2"
                 (flatten)
                 (case "s+zero = -eps*perpR(eps*perpR(s))")
                 (("1" (replace -2) (assert))
                  ("2" (hide-all-but 1) (typepred "eps") (grind))))))))))
          ("2" (reveal "thislem") (assert))))))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: repulsive
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (typepred "eps")
   (hide -1)
   (split -1)
   (("1" (replaces -1) (assert) (metit *))
    ("2" (replaces -1) (assert) (metit *))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: repulsive
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (label "thislem" -2)
   (hide "thislem")
   (case "NOT (s+pt*nv+px*nw)-s = pt*nv + px*nw")
   (("1" (hide-all-but 1) (grind))
    ("2"
     (replaces -1)
     (expand "repulsive_criteria")
     (flatten)
     (assert)
     (case "pt*nv=(-px)*nw")
     (("1"
       (replace -1)
       (assert)
       (hide-all-but (-1 -4 -7))
       (mult-by -2 "pt")
       (case "NOT eps*det(s,pt*nv)<0")
       (("1" (grind))
        ("2" (hide -3) (replaces -2) (mult-by -2 "px") (grind))))
      ("2"
       (assert)
       (case "pt*nv+px*nw = zero")
       (("1"
         (case "pt*nv - zero = (-px)*nw + (nw-nw)")
         (("1" (assert))
          ("2" (replaces -1 1 :dir rl) (hide-all-but 1) (grind))))
        ("2"
         (assert)
         (reveal "thislem")
         (assert)
         (case "NOT eps * det(pt * nv + px * nw, v) < 0")
         (("1" (hide 8) (mult-by -5 "pt") (mult-by -9 "px") (grind))
          ("2"
           (assert)
           (lemma "wedge_containment")
           (hide -1)
           (lemma "rep_crit_odd2_ax")
           (inst - "s`x" "s`y" "v`x" "v`y" "nv`x" "nv`y" "nw`x" "nw`y"
            "pt" "px" "eps")
           (assert)
           (grind))))))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: repulsive
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "repulsive_criteria")
   (assert)
   (case "FORALL (vv:Vect2): vv=zero IFF (vv`x = 0 AND vv`y = 0)")
   (("1"
     (case "FORALL (vv:Vect2): vv/=zero IFF (vv`x /= 0 OR vv`y /= 0)")
     (("1"
       (rewrite -1)
       (rewrite -1)
       (rewrite -1)
       (rewrite -2)
       (rewrite -2)
       (expand "*")
       (expand "det")
       (expand "+")
       (rewrite "vx_distr_sub")
       (rewrite "vy_distr_sub")
       (rewrite -1)
       (rewrite -1)
       (rewrite -1)
       (rewrite "vx_distr_sub")
       (rewrite "vy_distr_sub")
       (flatten)
       (hide (-1 -2))
       (typepred "px")
       (hide -1)
       (typepred "eps")
       (split -)
       (("1"
         (replaces -1)
         (assert)
         (hide -1)
         (assert)
         (split +)
         (("1" (propax)) ("2" (flatten) (assert) (metit *))
          ("3" (assert) (metit *))
          ("4" (flatten) (assert) (hide -11) (metit *))
          ("5" (flatten) (assert) (metit *)) ("6" (assert) (metit *))))
        ("2"
         (replaces -1)
         (assert)
         (split +)
         (("1" (propax)) ("2" (flatten) (assert) (metit *))
          ("3" (flatten) (assert) (metit *))
          ("4" (flatten) (assert) (hide -11) (assert) (metit *))
          ("5" (flatten) (assert) (metit *))
          ("6" (flatten) (metit *))))))
      ("2"
       (hide-all-but 1)
       (expand "zero")
       (grind)
       (decompose-equality +))))
    ("2"
     (hide-all-but 1)
     (expand "zero")
     (grind)
     (decompose-equality +))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: repulsive
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "repulsive_criteria")
   (flatten)
   (assert)
   (label "snz" (1 3))
   (hide "snz")
   (split +)
   (("1"
     (flatten)
     (case "NOT nw = -nv")
     (("1"
       (hide-all-but (-1 1))
       (lemma "add_zero_right")
       (inst - "-nv")
       (replace -1 :dir rl)
       (replace -2 :dir rl)
       (assert)
       (hide-all-but 1)
       (decompose-equality)
       (("1" (grind)) ("2" (grind))))
      ("2"
       (replaces -1)
       (assert)
       (case "NOT det(s,nv) = 0")
       (("1" (grind))
        ("2"
         (replace -1)
         (assert)
         (case "s*v < 0")
         (("1" (assert) (grind))
          ("2"
           (assert)
           (case "NOT s*nv = 0")
           (("1" (grind))
            ("2"
             (lemma "orthogonal_basis")
             (reveal "snz")
             (inst - "s" "perpR(s)" "nv")
             (assert)
             (split -)
             (("1"
               (case "nv*perpR(s) = 0")
               (("1"
                 (replace -1)
                 (case "nv*s=0")
                 (("1" (replace -1) (assert)) ("2" (grind))))
                ("2" (hide -1) (grind))))
              ("2"
               (flatten)
               (lemma "perpR_perpR")
               (inst - "s")
               (replace -2)
               (assert)
               (case "-(-s) = zero")
               (("1" (assert)) ("2" (replace -1 :dir rl) (assert))))
              ("3" (hide-all-but 1) (grind))))))))))))
    ("2" (hide (-3 -6)) (grind))
    ("3"
     (flatten)
     (case "s*v < 0")
     (("1" (assert) (hide 2) (grind)) ("2" (assert) (hide 2) (grind))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: repulsive
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (case "FORALL (eps: Sign, nv, s, v: Vect2, c: posreal): s*v<0 AND
                                                                         repulsive_criteria(s, v, eps)(nv) IMPLIES
                                                                          repulsive_criteria(s, v, eps)(c * nv)")
   (("1"
     (skeep)
     (skeep)
     (split)
     (("1" (flatten) (inst?) (assert))
      ("2" (flatten) (inst - "eps" "c*nv" "s" "v" "1/c") (assert))))
    ("2"
     (hide 2)
     (skeep)
     (expand "repulsive_criteria")
     (flatten)
     (assert)
     (ground)
     (("1"
       (lemma "scal_zero")
       (inst - "1/c")
       (replace -2 :dir rl)
       (assert))
      ("2" (mult-by -3 "c") (grind)) ("3" (mult-by -4 "c") (grind))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: repulsive
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (case "s*v < 0")
   (("1"
     (expand "repulsive_criteria")
     (assert)
     (flatten)
     (hide -3)
     (expand "repulsive?")
     (case "tca(s,v) > 0")
     (("1"
       (assert)
       (flatten)
       (name "tauv" "tca(s,v)")
       (replace -1)
       (label "tauvname" -1)
       (name "taunv" "tca(s,nv)")
       (replace -1)
       (label "taunvname" -1)
       (hide 1)
       (name "stau" "s + tauv*v")
       (replace -1)
       (label "stauname" -1)
       (case "NOT orthogonal?(v,stau)")
       (("1"
         (expand "orthogonal?")
         (replace "stauname" :dir rl)
         (rewrite "dot_add_right")
         (case "v*s = s*v")
         (("1"
           (replace -1 1)
           (hide -1)
           (expand "tauv" 1)
           (expand "tca" 1)
           (lift-if)
           (split)
           (("1" (flatten) (replace -1) (assert))
            ("2"
             (flatten)
             (expand "horizontal_tca")
             (expand "sqv")
             (assert))))
          ("2" (hide-all-but 1) (grind))))
        ("2"
         (lemma "orthogonal_basis")
         (inst - "v" "stau" "nv")
         (assert)
         (case "v /= zero")
         (("1"
           (assert)
           (label "vnz" -1)
           (case "norm(stau) = -(1/norm(v))*(eps*det(s,v)) AND norm(eps*(s + taunv*nv)) >= (1/norm(v))*(-eps*(det(s,v) + taunv*(det(nv,v))))")
           (("1"
             (flatten)
             (case "norm(eps*(s + taunv*nv)) = norm(s+taunv*nv)")
             (("1"
               (case "(1 / norm(v)) * (-eps * (det(s, v) + taunv * (det(nv, v)))) > (1 / norm(v)) * (-eps * det(s, v))")
               (("1" (assert))
                ("2"
                 (assert)
                 (case "taunv/norm(v) > 0")
                 (("1"
                   (assert)
                   (mult-by -13 "(1/norm(v))*taunv")
                   (assert))
                  ("2"
                   (hide 2)
                   (cross-mult 1)
                   (ground)
                   (("1" (lemma "norm_eq_0") (inst?) (assert))
                    ("2"
                     (rewrite "norm_scal")
                     (lemma "norm_eq_0")
                     (inst?)
                     (assert))))))))
              ("2"
               (rewrite "norm_scal" 1)
               (case "abs(eps) = 1")
               (("1" (assert))
                ("2"
                 (hide-all-but 1)
                 (typepred "eps")
                 (expand "abs")
                 (lift-if)
                 (ground))))))
            ("2"
             (split +)
             (("1"
               (lemma "orthogonal_basis")
               (inst - "v" "perpR(v)" "stau")
               (assert)
               (case "perpR(v) /= zero AND orthogonal?(v, perpR(v))")
               (("1"
                 (flatten)
                 (assert)
                 (case "stau*v = 0")
                 (("1"
                   (replace -1)
                   (assert)
                   (case "stau*perpR(v) = det(s,v)")
                   (("1"
                     (replace -1)
                     (replace -4 2)
                     (rewrite "norm_scal")
                     (rewrite "abs_div")
                     (case "abs(sqv(perpR(v))) = sqv(perpR(v))")
                     (("1"
                       (replace -1)
                       (hide -1)
                       (case "-eps*det(s,v) = abs(det(s,v))")
                       (("1"
                         (case "norm(perpR(v))/sqv(perpR(v)) = 1/norm(v)")
                         (("1" (mult-by -1 "abs(det(s,v))") (assert))
                          ("2"
                           (cross-mult 1)
                           (case "norm(perpR(v)) = norm(v)")
                           (("1"
                             (replace -1)
                             (case "sqv(perpR(v)) = sqv(v)")
                             (("1"
                               (replace -1)
                               (lemma "sqrt_sqv_norm")
                               (inst - "v")
                               (lemma "sq_eq")
                               (inst - "sqrt(sqv(v))" "norm(v)")
                               (assert))
                              ("2" (hide-all-but 1) (grind))))
                            ("2" (hide-all-but 1) (grind))))))
                        ("2"
                         (hide-all-but (-12 1))
                         (typepred "eps")
                         (grind))))
                      ("2" (expand "abs" 1) (propax))))
                    ("2"
                     (expand "stau" 1)
                     (rewrite "dot_add_left")
                     (hide-all-but 1)
                     (grind :exclude "tauv"))))
                  ("2"
                   (expand "stau" 1)
                   (expand "tauv" 1)
                   (expand "tca" 1)
                   (expand "horizontal_tca" 1)
                   (rewrite "dot_add_left")
                   (expand "sqv")
                   (assert))))
                ("2"
                 (split +)
                 (("1"
                   (hide-all-but ("vnz" 1))
                   (flatten)
                   (case "v = -perpR(perpR(v))")
                   (("1" (replace -1 +) (replace -2) (assert))
                    ("2"
                     (hide-all-but 1)
                     (decompose-equality)
                     (("1" (grind)) ("2" (grind))))))
                  ("2" (hide-all-but 1) (grind))))))
              ("2"
               (rewrite "norm_scal")
               (case "abs(eps) = 1")
               (("1"
                 (replace -1)
                 (hide -1)
                 (lemma "sq_ge")
                 (inst?)
                 (("1"
                   (assert)
                   (hide 2)
                   (case "sq(det(s, v) * (1 / norm(v)) * -eps +
                                                                                                                                                                                                                                         (det(nv, v)) * (1 / norm(v)) * -eps * taunv) = sq(det(s, v) * (1 / norm(v)) +
                                                                                                                                                                                                                                         (det(nv, v)) * (1 / norm(v)) * taunv)")
                   (("1"
                     (replace -1)
                     (hide -1)
                     (case "sq(det(s, v) * (1 / norm(v)) + (det(nv, v)) * (1 / norm(v)) * taunv) = (1/sqv(v))*sq(det(s + taunv*nv,v))")
                     (("1"
                       (case "sq(det(s, v) * (1 / norm(v)) + (det(nv, v)) * (1 / norm(v)) * taunv) = (1/sqv(v))*sq(det(s + taunv*nv,v))")
                       (("1"
                         (replace -1)
                         (hide -1)
                         (case "sq(1 * norm((s + taunv * nv))) = sqv(s+taunv*nv)")
                         (("1"
                           (replace -1)
                           (hide -1)
                           (lemma "orthogonal_basis")
                           (inst - "perpR(v)" "v" "s + taunv*nv")
                           (assert)
                           (case "perpR(v) /= zero AND orthogonal?(perpR(v), v)")
                           (("1"
                             (flatten)
                             (assert)
                             (lemma "orthogonal_basis_sqv")
                             (inst -
                              "(((s + taunv * nv) * perpR(v)) / sqv(perpR(v)))"
                              "(((s + taunv * nv) * v) / sqv(v))"
                              "perpR(v)" "v" "s + taunv*nv")
                             (assert)
                             (replace -1 +)
                             (case "sq((((s + taunv * nv) * perpR(v)) / sqv(perpR(v)))) * sqv(perpR(v))
                                                                                                                                                                                                                                                                                                                                     >= (1 / sqv(v)) * sq(det(s + taunv * nv, v))")
                             (("1" (assert))
                              ("2"
                               (hide 3)
                               (case "(s + taunv * nv) * perpR(v) = det(s + taunv*nv,v)")
                               (("1"
                                 (replace -1)
                                 (case "sqv(perpR(v)) = sqv(v)")
                                 (("1"
                                   (replace -1)
                                   (hide -1)
                                   (rewrite "sq_div")
                                   (("1" (expand "sq") (assert))
                                    ("2"
                                     (lemma "sqv_eq_0")
                                     (inst?)
                                     (assert))))
                                  ("2" (hide-all-but 1) (grind))))
                                ("2"
                                 (hide-all-but 1)
                                 (grind :exclude ("taunv")))))))
                            ("2"
                             (split +)
                             (("1"
                               (flatten)
                               (hide-all-but (-1 "vnz"))
                               (expand "zero")
                               (decompose-equality)
                               (decompose-equality)
                               (("1" (grind)) ("2" (grind))))
                              ("2" (hide-all-but 1) (grind))))))
                          ("2"
                           (lemma "sqrt_sqv_norm")
                           (inst?)
                           (replace -1 :dir rl)
                           (assert))))
                        ("2" (propax))))
                      ("2"
                       (case "sqv(v) = sq(norm(v))")
                       (("1"
                         (replace -1 1)
                         (cross-mult 1)
                         (hide 2)
                         (rewrite "sq_times" :dir rl)
                         (name "const1" "norm(v)")
                         (replace -1)
                         (hide-all-but 1)
                         (grind))
                        ("2"
                         (lemma "sqrt_sqv_norm")
                         (inst - "v")
                         (replace -1 :dir rl)
                         (assert))))
                      ("3"
                       (hide-all-but (-1 1))
                       (lemma "sqv_eq_0")
                       (inst?)
                       (assert))))
                    ("2"
                     (hide-all-but 1)
                     (typepred "eps")
                     (expand "sq")
                     (ground))))
                  ("2" (mult-by -9 "eps/norm(v)") (assert))))
                ("2" (hide-all-but 1) (typepred "eps") (grind))))))
            ("3" (flatten) (lemma "norm_eq_0") (inst - "v") (assert))
            ("4" (lemma "norm_eq_0") (inst?) (assert))))
          ("2" (flatten) (replace -1) (hide-all-but -10) (grind))))))
      ("2"
       (assert)
       (expand "tca" 1)
       (case "v /= zero")
       (("1"
         (assert)
         (expand "horizontal_tca")
         (cross-mult 1)
         (ground)
         (lemma "sqv_eq_0")
         (inst?)
         (assert))
        ("2"
         (lemma "sqv_eq_0")
         (inst?)
         (assert)
         (flatten)
         (replace -2)
         (assert))))))
    ("2"
     (expand "repulsive?")
     (assert)
     (expand "repulsive_criteria")
     (ground))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: repulsive
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (case "FORALL (eps: Sign, nv, s, v: Vect2): norm(nv)=1 AND norm(s)=1 AND norm(v)=1 AND s*v<0 AND
                                              repulsive?(s, v)(nv) AND
                                               eps * det(s, v) <= 0 AND eps * det(s, nv) < 0 AND nv /= zero
          				     AND (s * v >= 0 IMPLIES eps * det(nv, v) <= 0)
                                               IMPLIES repulsive_criteria(s, v, eps)(nv)")
   (("1"
     (skeep)
     (case "s*v<0")
     (("1"
       (case "s = zero OR v = zero")
       (("1"
         (split -1)
         (("1" (replaces -1) (assert)) ("2" (replaces -1) (assert))))
        ("2"
         (flatten)
         (assert)
         (hide -6)
         (name "ss" "^(s)")
         (name "vv" "^(v)")
         (name "nvv" "^(nv)")
         (lemma "norm_eq_0")
         (inst-cp - "s")
         (inst-cp - "v")
         (inst - "nv")
         (assert)
         (inst - "eps" "nvv" "ss" "vv")
         (assert)
         (split -)
         (("1"
           (expand "repulsive_criteria")
           (flatten)
           (assert)
           (split -)
           (("1"
             (flatten)
             (hide-all-but (-2 9))
             (mult-by 1 "(1/norm(nv))*(1/norm(v))")
             (("1" (expand "nvv") (expand "vv") (grind))
              ("2" (cross-mult 1))))
            ("2"
             (flatten)
             (hide-all-but (-1 -10))
             (mult-by -2 "(1/norm(s))*(1/norm(v))")
             (("1" (expand "vv") (expand "ss") (grind :exclude "norm"))
              ("2"
               (case "FORALL (aa:real): aa>0 IMPLIES (aa>=0 AND aa>0)")
               (("1" (rewrite -1) (cross-mult 1)) ("2" (grind))))))))
          ("2"
           (hide-all-but (-4 1))
           (expand "ss")
           (expand "vv")
           (mult-by -1 "(1/norm(s))*(1/norm(v))")
           (("1" (grind :exclude "norm"))
            ("2"
             (case "FORALL (aa:real): aa>0 IMPLIES (aa>=0 AND aa>0)")
             (("1" (rewrite -1) (cross-mult 1))
              ("2" (grind :exclude "norm"))))))
          ("3"
           (expand "repulsive?")
           (flatten)
           (hide 2)
           (case "NOT ss*vv<0")
           (("1"
             (hide-all-but (-4 1))
             (mult-by -1 "(1/norm(s))*(1/norm(v))")
             (("1" (expand "ss") (expand "vv") (grind :exclude "norm"))
              ("2"
               (split +)
               (("1" (cross-mult 1)) ("2" (cross-mult 1))))))
            ("2"
             (assert)
             (flatten)
             (split -)
             (("1"
               (expand "tca")
               (assert)
               (case "nvv = zero")
               (("1" (assert))
                ("2"
                 (assert)
                 (hide 3)
                 (expand "horizontal_tca")
                 (cross-mult -1)
                 (split -)
                 (("1"
                   (flatten)
                   (cross-mult 2)
                   (hide-all-but (-2 2))
                   (expand "ss")
                   (expand "nvv")
                   (mult-by -1 "(1/norm(s))*(1/norm(nv))")
                   (("1" (grind :exclude "norm")) ("2" (cross-mult 1))))
                  ("2" (flatten) (lemma "sqv_eq_0") (inst?) (assert))))))
              ("2"
               (lemma "sq_lt")
               (inst?)
               (assert)
               (rewrite "sq_norm")
               (rewrite "sq_norm")
               (lemma "sq_lt")
               (inst - "norm(ss + tca(ss, vv) * vv)"
                "norm(ss + tca(ss, nvv) * nvv)")
               (assert)
               (rewrite "sq_norm")
               (rewrite "sq_norm")
               (hide 3)
               (hide -2)
               (expand "tca")
               (case "vv = zero")
               (("1" (assert) (replaces -1) (assert))
                ("2"
                 (case "nvv = zero")
                 (("1" (replaces -1) (assert))
                  ("2"
                   (assert)
                   (rewrite "horizontal_sq_dtca_eq" :dir rl)
                   (rewrite "horizontal_sq_dtca_eq" :dir rl)
                   (rewrite "horizontal_sq_dtca_eq" :dir rl)
                   (rewrite "horizontal_sq_dtca_eq" :dir rl)
                   (expand "horizontal_sq_dtca")
                   (expand "ss")
                   (expand "vv")
                   (expand "nvv")
                   (expand "^" 3)
                   (rewrite "det_scal_left")
                   (rewrite "det_scal_left")
                   (rewrite "det_scal_right")
                   (rewrite "det_scal_right")
                   (assert)
                   (rewrite "sqv_scal")
                   (rewrite "sqv_scal")
                   (rewrite "sq_times")
                   (rewrite "sq_times")
                   (rewrite "sq_times")
                   (rewrite "sq_times")
                   (assert)
                   (mult-by -1 "sq(1/norm(s))")
                   (assert))))))))))
          ("4"
           (expand "ss")
           (expand "vv")
           (mult-by -6 "(1/norm(s))*(1/norm(v))")
           (("1" (grind :exclude "norm")) ("2" (cross-mult 1))))
          ("5"
           (expand "nvv")
           (expand "ss")
           (mult-by -7 "(1/norm(s))*(1/norm(nv))")
           (("1" (grind :exclude "norm"))
            ("2" (split +) (("1" (cross-mult 1)) ("2" (cross-mult 1))))))
          ("6"
           (flatten)
           (replace -1)
           (assert)
           (typepred "^(nv)")
           (replace -3)
           (assert))
          ("7"
           (hide -1)
           (flatten)
           (hide-all-but (-1 -4))
           (expand "vv")
           (expand "ss")
           (mult-by -2 "(1/norm(s))*(1/norm(v))")
           (("1" (grind :exclude "norm"))
            ("2"
             (split +)
             (("1" (cross-mult 1)) ("2" (cross-mult 1))))))))))
      ("2"
       (hide -1)
       (expand "repulsive?")
       (assert)
       (expand "repulsive_criteria")
       (case "s = zero")
       (("1" (replaces -1) (assert) (grind)) ("2" (assert))))))
    ("2"
     (hide 2)
     (skeep)
     (expand "repulsive_criteria")
     (assert)
     (case "s = zero")
     (("1" (replace -1) (assert))
      ("2"
       (assert)
       (case "v = zero")
       (("1" (replace -1) (assert))
        ("2"
         (hide -8)
         (assert)
         (expand "repulsive?")
         (case "tca(s,v) > 0")
         (("1"
           (assert)
           (case "s*nv>=0")
           (("1"
             (hide -7)
             (lemma "wedge_containment")
             (inst - "-eps*perpR(v)" "s" "eps*perpR(s)" "nv"
              "eps*perpR(s)")
             (("1"
               (assert)
               (split -1)
               (("1" (grind)) ("2" (grind))
                ("3"
                 (case "sqv(perpR(s))>0")
                 (("1" (hide-all-but (-1 1)) (typepred "eps") (grind))
                  ("2"
                   (lemma "sqv_eq_0")
                   (inst?)
                   (assert)
                   (case "s+zero = -perpR(perpR(s))")
                   (("1" (replaces -2) (assert))
                    ("2" (hide-all-but 1) (grind))))))
                ("4" (grind)) ("5" (flatten) (typepred "eps") (grind))
                ("6" (typepred "eps") (grind)) ("7" (grind))
                ("8" (typepred "eps") (grind))))
              ("2"
               (flatten)
               (case "s+zero = -eps*(perpR(eps*perpR(s)))")
               (("1" (replace -2) (assert))
                ("2" (hide-all-but 1) (typepred "eps") (grind))))))
            ("2"
             (lemma "sqv_eq_0")
             (inst?)
             (assert)
             (case "tca(s, nv) <= 0")
             (("1"
               (expand "tca" -1)
               (expand "horizontal_tca")
               (cross-mult -1)
               (ground)
               (("1" (lemma "sqv_eq_0") (inst - "nv") (assert))
                ("2" (lemma "sqv_eq_0") (inst - "nv") (assert))))
              ("2"
               (assert)
               (expand "tca")
               (assert)
               (lemma "sq_lt")
               (inst - "norm(s + horizontal_tca(s, v) * v)"
                "       norm(s + horizontal_tca(s, nv) * nv)")
               (assert)
               (rewrite "sq_norm")
               (rewrite "sq_norm")
               (rewrite "horizontal_sq_dtca_eq" :dir rl)
               (rewrite "horizontal_sq_dtca_eq" :dir rl)
               (expand "horizontal_sq_dtca")
               (lemma "sq_norm")
               (inst-cp - "v")
               (inst - "nv")
               (replace -5)
               (replace -7)
               (assert)
               (replace -2 :dir rl)
               (replace -1 :dir rl)
               (assert)
               (case "NOT FORALL (aaaaa:real):aaaaa/1 = aaaaa")
               (("1" (assert))
                ("2"
                 (rewrite -1)
                 (rewrite -1)
                 (hide -1)
                 (case "NOT norm(perpR(s)) = 1")
                 (("1" (grind))
                  ("2"
                   (lemma "orthonormal_basis")
                   (case "perpR(s) = zero")
                   (("1" (replace -1) (assert))
                    ("2"
                     (name "sw" "perpR(s)")
                     (inst - "s" "sw" _)
                     (case "NOT orthonormal?(s,sw)")
                     (("1"
                       (expand "orthonormal?")
                       (assert)
                       (hide-all-but 1)
                       (expand "sw")
                       (grind))
                      ("2"
                       (assert)
                       (inst-cp - "v")
                       (inst - "nv")
                       (lemma "basis_sqv")
                       (inst-cp - "s" "sw" "v*s" "v*sw" "v")
                       (inst - "s" "sw" "nv*s" "nv*sw" "nv")
                       (assert)
                       (replace -8 :dir rl)
                       (replace -9 :dir rl)
                       (case "NOT sq(s*v)>sq(s*nv)")
                       (("1"
                         (hide-all-but (-1 -2 -10 1))
                         (expand "sw")
                         (grind))
                        ("2"
                         (lemma "orthonormal_basis")
                         (inst - "s" "sw" _)
                         (assert)
                         (inst - "perpR(nv)")
                         (lemma "basis_dot")
                         (inst - "s" "sw" "v*s" "v*sw" "perpR(nv)*s"
                          "perpR(nv)*sw")
                         (assert)
                         (replace -9 :dir rl)
                         (replace -2 :dir rl)
                         (rewrite "det_perpR" :dir rl)
                         (mult-by -1 "-eps")
                         (rewrite "det_asym")
                         (assert)
                         (replace -1)
                         (case "NOT perpR(nv)*sw = (s*nv)")
                         (("1" (hide-all-but 1) (expand "sw") (grind))
                          ("2"
                           (replaces -1)
                           (assert)
                           (case "NOT (v*sw)*-eps = eps*det(s,v)")
                           (("1" (hide-all-but 1) (expand "sw") (grind))
                            ("2"
                             (mult-by -1 "s*nv")
                             (replaces -1)
                             (case "NOT perpR(nv)*s = det(s,nv)")
                             (("1" (hide-all-but 1) (grind))
                              ("2"
                               (replaces -1)
                               (case "FORALL (an1:negreal,an2:npreal,ap1,ap2:posreal): an1<an2 AND ap1>ap2 IMPLIES an1*ap1<an2*ap2")
                               (("1"
                                 (inst
                                  -
                                  "eps*det(s,nv)"
                                  "eps*det(s,v)"
                                  "-(v*s)"
                                  "-(s*nv)")
                                 (("1"
                                   (assert)
                                   (hide (-1 -2))
                                   (split +)
                                   (("1"
                                     (lemma "sqrt_lt")
                                     (inst
                                      -
                                      "sq(det(s,v))"
                                      "sq(det(s,nv))")
                                     (assert)
                                     (lemma "sqrt_sq_abs")
                                     (rewrite -1)
                                     (rewrite -1)
                                     (hide -1)
                                     (typepred "eps")
                                     (expand "abs")
                                     (lift-if)
                                     (lift-if)
                                     (ground))
                                    ("2"
                                     (lemma "sqrt_lt")
                                     (inst - "sq(s*nv)" "sq(s*v)")
                                     (assert)
                                     (hide-all-but (-1 1))
                                     (grind))))
                                  ("2"
                                   (assert)
                                   (lemma "dot_comm")
                                   (rewrite -1 1)
                                   (assert))))
                                ("2"
                                 (hide-all-but 1)
                                 (skeep)
                                 (typepred "ap1")
                                 (hide -1)
                                 (typepred "ap2")
                                 (hide -1)
                                 (typepred "an1")
                                 (hide -1)
                                 (typepred "an2")
                                 (neg-formula -5)
                                 (mult-ineq -5 -6)
                                 (assert))))))))))))))))))))))))
          ("2"
           (expand "tca" 1)
           (expand "horizontal_tca")
           (cross-mult 1)
           (ground)
           (("1" (lemma "sqv_eq_0") (inst?) (assert))
            ("2" (lemma "sqv_eq_0") (inst?) (assert))))))))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: repulsive
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (case "FORALL (eps: Sign, nv, s, v: Vect2):
                                                    repulsive_criteria(s, v, eps)(nv) IMPLIES
                                                     repulsive_criteria(-s, -v, eps)(-nv)")
   (("1"
     (skeep)
     (inst-cp - "eps" "nv" "s" "v")
     (inst - "eps" "-nv" "-s" "-v")
     (ground))
    ("2"
     (hide 2)
     (skeep)
     (expand "repulsive_criteria")
     (flatten)
     (case "s*v >= 0")
     (("1"
       (assert)
       (assert)
       (flatten)
       (case "v = zero")
       (("1"
         (replace -1)
         (assert)
         (ground)
         (("1"
           (case "-(-s) = zero")
           (("1" (assert)) ("2" (replace -1) (assert))))
          ("2"
           (case "-(-nv) = zero")
           (("1" (assert)) ("2" (replace -1) (assert))))
          ("3" (grind)) ("4" (grind)) ("5" (grind))
          ("6" (hide-all-but 1) (grind))
          ("7"
           (case "-(-s) = zero")
           (("1" (assert)) ("2" (replace -1) (assert))))
          ("8"
           (case "-(-nv) = zero")
           (("1" (assert)) ("2" (replace -1) (assert))))
          ("9" (hide-all-but 1) (grind)) ("10" (grind)) ("11" (grind))
          ("12" (grind))))
        ("2"
         (assert)
         (hide -4)
         (case "-s*-v>=0")
         (("1"
           (assert)
           (case "-v/=zero")
           (("1"
             (assert)
             (ground)
             (("1"
               (case "-(-s) = zero")
               (("1" (assert)) ("2" (replace -1) (assert))))
              ("2"
               (case "-(-nv) = zero")
               (("1" (assert)) ("2" (replace -1) (assert))))
              ("3" (grind)) ("4" (grind)) ("5" (grind)) ("6" (grind))))
            ("2"
             (flatten)
             (case "-(-v) = zero")
             (("1" (assert)) ("2" (replace -1) (assert))))))
          ("2" (hide 5) (grind))))))
      ("2"
       (assert)
       (case "-s*-v < 0")
       (("1"
         (assert)
         (ground)
         (("1"
           (case "-(-s) = zero")
           (("1" (assert)) ("2" (replace -1) (assert))))
          ("2"
           (case "-(-nv) = zero")
           (("1" (assert)) ("2" (replace -1) (assert))))
          ("3" (grind)) ("4" (grind)) ("5" (grind))))
        ("2" (hide 5) (grind))))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: repulsive
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
script:
  (""
   (skeep)
   (case "vo-vi = zero")
   (("1"
     (replace -1)
     (expand "repulsive_criteria" -2)
     (assert)
     (expand "repulsive?" +)
     (assert)
     (case "vi-vo = zero")
     (("1"
       (replace -1)
       (expand "repulsive_criteria")
       (assert)
       (case "vo = vi")
       (("1" (replace -1) (hide (-1 -2 -3)) (grind))
        ("2"
         (case "vo+zero = vi + (vo-vi)")
         (("1" (replace -3) (assert)) ("2" (hide-all-but 1) (grind))))))
      ("2"
       (case "-zero = zero")
       (("1"
         (replace -1 1 :dir rl)
         (replace -2 + :dir rl)
         (hide-all-but 1)
         (grind))
        ("2" (assert))))))
    ("2"
     (label "vovinz" 1)
     (name "crit"
           "LAMBDA (sss: Vect2,v:Vect2): (LAMBDA (nv:Vect2): sss*v<0 AND repulsive_criteria(sss,v,eps)(nv))")
     (name "conf"
           "LAMBDA (sss:Vect2,v:Vect2): (LAMBDA (nv:Vect2): sss*v<0 AND NOT repulsive?(sss,v)(nv))")
     (case "s*(vo-vi)<0")
     (("1"
       (lemma "sum_indep_coordinated_2D")
       (inst - "conf" "crit")
       (split -)
       (("1"
         (expand "coordinated_2D?")
         (inst - "vo" "vi" "nvo" "nvi" "s")
         (split -)
         (("1" (expand "conf" +) (assert))
          ("2"
           (expand "conf" +)
           (assert)
           (expand "repulsive?" -1)
           (hide-all-but (-1 -2 1))
           (expand "tca")
           (expand "horizontal_tca")
           (cross-mult -1)
           (ground)
           (lemma "sqv_eq_0")
           (inst?)
           (assert))
          ("3" (expand "crit" +) (assert))
          ("4"
           (expand "crit" +)
           (assert)
           (hide-all-but (-1 1))
           (grind))))
        ("2"
         (expand "crit_symmetric_2D?")
         (hide-all-but 1)
         (skosimp*)
         (expand "crit")
         (lemma "repulsive_criteria_symmetric")
         (inst - "eps" "nv!1" "s!1" "v!1")
         (replace -1 :dir rl)
         (hide -1)
         (assert)
         (ground)
         (("1" (hide -2) (grind)) ("2" (hide -2) (grind))))
        ("3"
         (hide-all-but 1)
         (expand "sum_independent_2D?")
         (skosimp*)
         (expand "crit")
         (flatten)
         (lemma "repulsive_criteria_sum_closed")
         (inst - "eps" "nv!1" "nw!1" "s!1" "v!1")
         (assert)
         (expand "conf" -7)
         (lemma "repulsive_criteria_repulsive")
         (inst?)
         (assert))
        ("4"
         (hide-all-but 1)
         (expand "sum_closed_2D?")
         (skosimp*)
         (expand "conf")
         (flatten)
         (assert)
         (lemma "not_repulsive_sum_closed")
         (expand "sum_closed_2D?")
         (inst - "s!1" "v!1" "nv!1" "nw!1")
         (assert))))
      ("2"
       (hide (-1 -2))
       (expand "repulsive_criteria")
       (assert)
       (flatten)
       (assert)
       (split -)
       (("1" (flatten) (hide-all-but (-1 1)) (grind))
        ("2"
         (flatten)
         (expand "repulsive?")
         (assert)
         (case "NOT vi-vo=zero")
         (("1" (assert) (hide -2) (grind))
          ("2"
           (case "-(vo-vi) = zero")
           (("1"
             (assert)
             (case "-(-(vo-vi)) = zero")
             (("1" (assert)) ("2" (replace -1) (assert))))
            ("2" (hide-all-but (-1 1)) (grind))))))))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: repulsive
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (case "vo-vi = zero")
   (("1"
     (replace -1)
     (expand "repulsive_criteria" -2)
     (assert)
     (expand "repulsive?" +)
     (assert)
     (case "vi-vo = zero")
     (("1"
       (replace -1)
       (expand "repulsive_criteria")
       (assert)
       (case "vo = vi")
       (("1" (replace -1) (hide (-1 -2 -3)) (grind))
        ("2"
         (case "vo+zero = vi + (vo-vi)")
         (("1" (replace -3) (assert)) ("2" (hide-all-but 1) (grind))))))
      ("2"
       (case "-zero = zero")
       (("1"
         (replace -1 1 :dir rl)
         (replace -2 + :dir rl)
         (hide-all-but 1)
         (grind))
        ("2" (assert))))))
    ("2"
     (label "vovinz" 1)
     (expand "repulsive?")
     (flatten)
     (case "NOT ((s * (vo - vi) < 0 AND
                   (tca(s, nvo - nvi) <= 0 OR
                     norm(s + tca(s, vo - vi) * (vo - vi)) <
                      norm(s + tca(s, nvo - nvi) * (nvo - nvi)))) IFF (s * (vo - vi) < 0 AND
                   (s*(nvo-nvi)>=0 OR
                     sq(det(s,vo-vi))*sqv(nvo-nvi) <sq(det(s,nvo-nvi))*sqv(vo-vi)
                      )))")
     (("1"
       (hide (3 4))
       (expand "tca" 1)
       (assert)
       (case "nvo - nvi = zero")
       (("1" (assert) (replaces -1) (ground))
        ("2"
         (assert)
         (hide -)
         (case "norm(s + horizontal_tca(s, vo - vi) * (vo - vi)) <
                           norm(s + horizontal_tca(s, nvo - nvi) * (nvo - nvi)) IFF sqv(s + horizontal_tca(s, vo - vi) * (vo - vi)) <
                           sqv(s + horizontal_tca(s, nvo - nvi) * (nvo - nvi))")
         (("1"
           (replaces -1)
           (rewrite "horizontal_sq_dtca_eq" :dir rl)
           (rewrite "horizontal_sq_dtca_eq" :dir rl)
           (expand "horizontal_sq_dtca")
           (expand "horizontal_tca")
           (ground)
           (("1"
             (cross-mult -1)
             (ground)
             (lemma "sqv_eq_0")
             (inst?)
             (assert))
            ("2"
             (cross-mult -1)
             (("1"
               (ground)
               (("1" (cross-mult -2))
                ("2" (lemma "sqv_eq_0") (inst?) (assert))))
              ("2" (ground) (lemma "sqv_eq_0") (inst?) (assert))))
            ("3"
             (cross-mult 1)
             (ground)
             (lemma "sqv_eq_0")
             (inst?)
             (assert))
            ("4"
             (cross-mult 2)
             (ground)
             (lemma "sqv_eq_0")
             (inst?)
             (assert))))
          ("2"
           (hide 3)
           (ground)
           (("1"
             (rewrite "sqrt_lt" 1 :dir rl)
             (rewrite "sqrt_sqv_norm")
             (rewrite "sqrt_sqv_norm"))
            ("2"
             (rewrite "sqrt_lt" -1 :dir rl)
             (rewrite "sqrt_sqv_norm")
             (rewrite "sqrt_sqv_norm"))))))))
      ("2"
       (replaces -1)
       (case "FORALL (vv:Vect2): vv=zero IFF (vv`x = 0 AND vv`y=0)")
       (("1"
         (case "FORALL (vv:Vect2): vv/=zero IFF (vv`x /= 0 OR vv`y/=0)")
         (("1"
           (rewrite -1)
           (rewrite -2)
           (expand "-")
           (expand "*")
           (expand "sq")
           (expand "repulsive_criteria")
           (flatten)
           (rewrite -2)
           (rewrite -2)
           (rewrite -2)
           (rewrite -2)
           (rewrite -2)
           (rewrite -2)
           (rewrite -1)
           (rewrite -1)
           (hide (-1 -2))
           (expand "*")
           (expand "det")
           (expand "sqv")
           (assert)
           (expand "*")
           (assert)
           (typepred "eps")
           (hide -1)
           (split -1)
           (("1" (replace -1) (hide -1) (assert) (metit *))
            ("2" (replaces -1) (assert) (metit *))))
          ("2"
           (hide-all-but 1)
           (skeep)
           (ground)
           (("1" (expand "zero") (decompose-equality 1)) ("2" (grind))
            ("3" (grind))))))
        ("2"
         (hide-all-but 1)
         (expand "zero")
         (skeep)
         (grind)
         (decompose-equality 1))))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: repulsive
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (case "v = zero")
   (("1"
     (replace -1)
     (assert)
     (expand "repulsive?")
     (assert)
     (lemma "definitions.dot_nneg_divergent")
     (inst?)
     (("1"
       (assert)
       (expand "divergent?")
       (skeep 3)
       (case "nnt = 0")
       (("1" (replaces -1) (assert))
        ("2"
         (inst - "nnt")
         (("1" (rewrite "dist_norm") (rewrite "dist_norm") (assert))
          ("2" (assert))))))
      ("2" (flatten) (replaces -1) (assert))))
    ("2"
     (case "s*v<0")
     (("1"
       (assert)
       (hide (3 4))
       (case "NOT horizontal_tca(s,v)>0")
       (("1"
         (hide 3)
         (expand "horizontal_tca")
         (cross-mult 1)
         (ground)
         (lemma "sqv_eq_0")
         (inst?)
         (assert))
        ("2"
         (assert)
         (skeep 2)
         (case "nnt = 0")
         (("1"
           (replaces -1)
           (assert)
           (lemma "sqv_decreasing_before_horizontal_tca")
           (inst - "v" "s")
           (assert)
           (inst - "0" "horizontal_tca(s,v)")
           (assert)
           (rewrite "sqrt_gt" -1 :dir rl)
           (rewrite "sqrt_sqv_norm")
           (rewrite "sqrt_sqv_norm"))
          ("2"
           (expand "repulsive?")
           (split -)
           (("1"
             (case "NOT s*nv>=0")
             (("1"
               (expand "tca")
               (lift-if)
               (split -)
               (("1" (flatten) (replaces -1) (assert))
                ("2"
                 (flatten)
                 (expand "horizontal_tca")
                 (cross-mult -1)
                 (split -)
                 (("1" (flatten) (assert))
                  ("2" (flatten) (lemma "sqv_eq_0") (inst?) (assert))))))
              ("2"
               (lemma "definitions.dot_nneg_divergent")
               (inst - "nv" "s")
               (("1"
                 (assert)
                 (expand "divergent?")
                 (inst - "nnt")
                 (rewrite "dist_norm")
                 (rewrite "dist_norm")
                 (lemma "sqv_decreasing_before_horizontal_tca")
                 (inst - "v" "s")
                 (assert)
                 (inst - "0" "horizontal_tca(s,v)")
                 (assert)
                 (rewrite "sqrt_gt" -1 :dir rl)
                 (rewrite "sqrt_sqv_norm")
                 (rewrite "sqrt_sqv_norm")
                 (assert))
                ("2"
                 (flatten)
                 (replaces -1)
                 (assert)
                 (lemma "sqv_decreasing_before_horizontal_tca")
                 (inst - "v" "s")
                 (assert)
                 (inst - "0" "horizontal_tca(s,v)")
                 (assert)
                 (rewrite "sqrt_gt" -1 :dir rl)
                 (rewrite "sqrt_sqv_norm")
                 (rewrite "sqrt_sqv_norm"))))))
            ("2"
             (assert)
             (lemma "horizontal_tca_min")
             (case "nv = zero")
             (("1" (replaces -1) (assert) (expand "tca") (assert))
              ("2"
               (inst - "nv" "s" "nnt")
               (("1"
                 (rewrite "horizontal_sq_dtca_eq")
                 (assert)
                 (rewrite "sqrt_le" -1 :dir rl)
                 (rewrite "sqrt_sqv_norm")
                 (rewrite "sqrt_sqv_norm")
                 (assert)
                 (expand "tca")
                 (assert))
                ("2" (assert))))))))))))
      ("2"
       (assert)
       (hide (3 5))
       (case "NOT horizontal_tca(s,v)<=0")
       (("1"
         (hide 4)
         (expand "repulsive?")
         (expand "horizontal_tca")
         (cross-mult 1)
         (ground)
         (lemma "sqv_eq_0")
         (inst?)
         (assert))
        ("2"
         (assert)
         (skeep 3)
         (expand "repulsive?")
         (lemma "definitions.dot_nneg_divergent")
         (inst - "nv" "s")
         (("1"
           (assert)
           (expand "divergent?")
           (inst - "pt")
           (assert)
           (rewrite "dist_norm")
           (rewrite "dist_norm")
           (assert))
          ("2" (flatten) (replaces -1) (assert))))))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: kb
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (case "x-y < pi AND y-x < pi")
   (("1"
     (flatten)
     (expand "angle_from_to")
     (expand "to2pi")
     (case "floor((pi-x+y)/(2*pi)) = 0")
     (("1" (assert))
      ("2"
       (hide 2)
       (hide -3)
       (grind :exclude "pi")
       (name "zzz" "(pi-x+y)/(2*pi)")
       (case "zzz < 1 AND zzz > 0")
       (("1" (flatten) (grind))
        ("2"
         (hide 2)
         (split +)
         (("1" (replace -1 :dir rl) (cross-mult 1) (assert))
          ("2" (replace -1 :dir rl) (cross-mult 1) (assert))))))))
    ("2" (hide 2) (grind :exclude "pi"))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: kb
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (lemma "angle_from_to_lt_pi")
   (inst - "track(v)" "(track(-s) - eps * asin(D / norm(s)))")
   (assert)
   (expand "chirel_star")
   (replace -1)
   (assert))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: kb
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (case "NOT horizontal_conflict?(s,vo-vi)")
   (("1"
     (hide 2)
     (expand "horizontal_conflict?")
     (inst + "10")
     (replace -3)
     (replace -4)
     (replace -2)
     (expand "-")
     (expand "+")
     (grind)
     (case "-10/sqrt(3)*(-10/sqrt(3)) = 100/3")
     (("1"
       (replace -1)
       (hide-all-but 1)
       (case "20*10/sqrt(3)>100+100/3-25")
       (("1" (assert))
        ("2" (hide 2) (cross-mult 1) (lemma "sq_gt") (inst?) (assert))))
      ("2" (hide-all-but 1) (cross-mult 1))))
    ("2"
     (assert)
     (case "NOT track(vo) = pi/2")
     (("1"
       (hide 2)
       (replace -4)
       (expand "track")
       (expand "atan2")
       (propax))
      ("2"
       (assert)
       (assert)
       (case "NOT track(vi) = pi/2")
       (("1"
         (hide 2)
         (replace -6)
         (expand "track")
         (expand "atan2")
         (propax))
        ("2"
         (assert)
         (case "NOT track(vo-vi) = pi/2")
         (("1" (hide 2) (replace -6) (replace -7) (expand "-") (propax))
          ("2"
           (assert)
           (case "NOT track(-s) = pi/2")
           (("1"
             (hide 2)
             (replace -6)
             (expand "-" +)
             (expand "track" +)
             (expand "atan2")
             (lift-if)
             (ground)
             (hide-all-but 1)
             (lemma "posreal_div_posreal_is_posreal")
             (inst - "10" "sqrt(3)")
             (assert))
            ("2"
             (assert)
             (case "NOT norm(s) = 10/sqrt(3)")
             (("1"
               (hide 2)
               (replace -7)
               (hide-all-but 1)
               (lemma "sqrt_sqv_norm")
               (inst?)
               (replace -1 :dir rl)
               (hide -)
               (lemma "sq_eq")
               (inst?)
               (assert)
               (hide 2)
               (grind))
              ("2"
               (assert)
               (case "NOT chirel_star(s, vo - vi, 1 / 2, -1) = 2 * pi / 3")
               (("1"
                 (hide 2)
                 (lemma "chirel_star_equiv")
                 (inst?)
                 (assert)
                 (replace -2)
                 (replace -3)
                 (replace -4)
                 (replace -8)
                 (case "NOT asin(sqrt(3)/2) = pi/3")
                 (("1"
                   (hide-all-but 1)
                   (lemma "sin_pi3")
                   (replace -1 :dir rl)
                   (hide -)
                   (rewrite "asin_sin"))
                  ("2"
                   (replace -1)
                   (assert)
                   (split -)
                   (("1"
                     (replace -1)
                     (hide -1)
                     (rewrite "to2pi_id")
                     (assert))
                    ("2" (expand "abs") (assert))))
                  ("3"
                   (hide 2)
                   (cross-mult 1)
                   (lemma "sq_le")
                   (inst?)
                   (assert)
                   (expand "sq" 1)
                   (assert))))
                ("2"
                 (assert)
                 (case "NOT chirel_star(s, vo - vi, 1, -1) = 5 * pi / 6")
                 (("1"
                   (hide 2)
                   (lemma "chirel_star_equiv")
                   (inst?)
                   (assert)
                   (replace -3)
                   (replace -4)
                   (replace -9)
                   (case "NOT asin(sqrt(3)/2) = pi/3")
                   (("1"
                     (hide-all-but 1)
                     (lemma "sin_pi3")
                     (replace -1 :dir rl)
                     (rewrite "asin_sin"))
                    ("2"
                     (replace -1)
                     (assert)
                     (replace -6)
                     (assert)
                     (split -)
                     (("1" (replace -1) (rewrite "to2pi_id") (assert))
                      ("2" (expand "abs") (assert))))
                    ("3"
                     (cross-mult 1)
                     (lemma "sq_le")
                     (inst?)
                     (assert)
                     (expand "sq")
                     (assert))))
                  ("2"
                   (assert)
                   (case "NOT chirel_star(s, vo - vi, 0, -1) = pi / 2")
                   (("1"
                     (hide 2)
                     (lemma "chirel_star_equiv")
                     (inst?)
                     (replace -4)
                     (replace -6)
                     (replace -5)
                     (assert)
                     (case "NOT asin(sqrt(3)/2) = pi/3")
                     (("1"
                       (hide-all-but 1)
                       (lemma "sin_pi3")
                       (replace -1 :dir rl)
                       (rewrite "asin_sin"))
                      ("2"
                       (replace -11)
                       (replace -1)
                       (split -)
                       (("1" (replace -1) (rewrite "to2pi_id"))
                        ("2" (expand "abs") (assert))))
                      ("3"
                       (cross-mult 1)
                       (lemma "sq_le")
                       (inst?)
                       (assert)
                       (expand "sq")
                       (assert))))
                    ("2" (propax))))))))))
            ("3"
             (hide 2)
             (replace -6)
             (flatten)
             (expand "zero")
             (expand "-")
             (propax))))
          ("3"
           (hide 2)
           (replace -6)
           (replace -7)
           (expand "-")
           (hide-all-but -1)
           (expand "zero")
           (propax))))))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: kb
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (expand "chirel_star")
   (expand "angle_from_to")
   (assert)
   (grind :exclude ("asin" "norm" "pi" "track")))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: kb
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (case "FORALL (xy:real): cos(xy) < 0 IFF to2pi(xy) > pi/2 AND to2pi(xy) < 3*pi/2")
   (("1"
     (label "coslem" -1)
     (hide "coslem")
     (case "FORALL (f: nnreal, phi, r: real):
                                                                                                                                             phi <= pi AND phi > 0 AND cos(r) < 0 AND cos(r + phi) < 0 AND f >= 0
                                                                                                                                         AND f <= 1
                                                                                                                                         IMPLIES cos(r + f * phi) < 0")
     (("1"
       (skeep)
       (case "phi <= 0")
       (("1" (inst - "f" "-phi" "r") (assert))
        ("2"
         (inst - "1-f" "phi" "r-phi")
         (("1" (assert)) ("2" (assert))))))
      ("2"
       (hide 2)
       (skeep)
       (reveal "coslem")
       (inst-cp - "r+f*phi")
       (inst-cp - "r")
       (inst - "r+phi")
       (assert)
       (hide 2)
       (hide -5)
       (hide -5)
       (flatten)
       (name "zzz" "r+phi")
       (case "NOT r+f*phi = (1-f)*r + f*zzz")
       (("1" (assert))
        ("2"
         (replace -1)
         (replace -2)
         (hide -1)
         (case "to2pi((1-f)*r + f*zzz) = (1-f)*to2pi(r)+f*to2pi(zzz)")
         (("1"
           (replace -1)
           (hide -1)
           (name "rt" "to2pi(r)")
           (replace -1)
           (name "zt" "to2pi(zzz)")
           (replace -1)
           (hide-all-but (-4 -5 -6 -7 -10 -11 1))
           (mult-by -1 "f")
           (mult-by -3 "(1-f)")
           (add-formulas -1 -3)
           (assert)
           (mult-by -2 "f")
           (mult-by -3 "(1-f)")
           (assert))
          ("2"
           (hide 2)
           (name "n" "floor(r/(2*pi))")
           (name "n1" "floor(zzz/(2*pi))")
           (case "NOT n = n1")
           (("1"
             (name "kk" "n1-n")
             (case "kk > 0")
             (("1"
               (case "n1 = n+kk")
               (("1"
                 (replace -1)
                 (hide -3)
                 (hide 1)
                 (expand "to2pi" -)
                 (replace -3)
                 (replace -4)
                 (assert)
                 (case "kk >= 1")
                 (("1" (assert) (mult-by -1 "2*pi") (assert))
                  ("2" (assert))))
                ("2" (assert))))
              ("2"
               (case "n1 > n")
               (("1" (assert))
                ("2"
                 (hide 2)
                 (hide -1)
                 (typepred "n1")
                 (typepred "n")
                 (case "zzz > r")
                 (("1" (mult-by -1 "1/(2*pi)") (assert))
                  ("2" (assert))))))))
            ("2"
             (name "zf" "(1-f)*r + f*zzz")
             (replace -1)
             (name "n3" "floor(zf/(2*pi))")
             (case "NOT n = n3")
             (("1"
               (hide 2)
               (case "n3 >=n")
               (("1"
                 (case "n3<=n1")
                 (("1" (assert))
                  ("2"
                   (hide 2)
                   (hide -1)
                   (typepred "n1")
                   (typepred "n3")
                   (case "zf <= zzz")
                   (("1" (mult-by -1 "1/(2*pi)") (assert))
                    ("2"
                     (hide 2)
                     (expand "zf" 1)
                     (case "r < zzz AND zzz<=zzz")
                     (("1"
                       (flatten)
                       (mult-by -2 "f")
                       (mult-by -2 "(1-f)")
                       (assert))
                      ("2" (assert))))))))
                ("2"
                 (hide 2)
                 (case "zf >= r")
                 (("1" (mult-by -1 "1/(2*pi)") (assert))
                  ("2"
                   (hide 2)
                   (expand "zf" +)
                   (case "zzz > r AND r >= r")
                   (("1"
                     (flatten)
                     (mult-by -1 "f")
                     (mult-by -2 "(1-f)")
                     (assert))
                    ("2" (assert))))))))
              ("2"
               (expand "to2pi" +)
               (replace -6)
               (replace -5)
               (replace -2)
               (assert))))))))))))
    ("2"
     (hide 2)
     (skeep)
     (name "xyz" "to2pi(xy+pi)-pi")
     (case "cos(xy) = cos(xyz)")
     (("1"
       (case "to2pi(xy) = to2pi(xyz)")
       (("1"
         (replace -1)
         (label "to2pieq" -1)
         (hide -1)
         (replace -1)
         (label "coseq" -1)
         (hide -1)
         (label "xyzname" -1)
         (hide "xyzname")
         (split)
         (("1"
           (flatten)
           (lemma "cos_ge_0")
           (inst - "xyz")
           (assert)
           (case "(-pi / 2 <= xyz AND xyz <= pi / 2) IFF (to2pi(xy) <= pi/2 OR to2pi(xy) >= 3*pi/2)")
           (("1"
             (replace -1)
             (hide -1)
             (reveal "to2pieq")
             (replace -1)
             (hide -1)
             (ground))
            ("2"
             (hide 2)
             (hide 2)
             (hide -1)
             (reveal "to2pieq")
             (replace -1)
             (hide -)
             (case "xyz >=-pi AND xyz < pi")
             (("1"
               (ground)
               (("1"
                 (case "xyz >= 0")
                 (("1"
                   (case "to2pi(xyz) = xyz")
                   (("1" (replace -1) (propax))
                    ("2"
                     (hide 2)
                     (hide 2)
                     (expand "to2pi")
                     (case "floor(xyz/(2*pi)) = 0")
                     (("1" (assert))
                      ("2"
                       (hide 2)
                       (typepred "floor(xyz/(2*pi))")
                       (case "xyz/(2*pi) < 1 AND xyz/(2*pi)>=0")
                       (("1" (flatten) (assert))
                        ("2"
                         (hide 2)
                         (split)
                         (("1" (cross-mult 1) (assert))
                          ("2" (cross-mult 1) (assert))))))))))
                  ("2"
                   (case "xyz < 0")
                   (("1"
                     (case "floor(xyz/(2*pi)) = -1")
                     (("1" (expand "to2pi") (replace -1) (assert))
                      ("2"
                       (hide 2)
                       (hide 2)
                       (hide 2)
                       (typepred "floor(xyz/(2*pi))")
                       (case "xyz/(2*pi) < 0 AND xyz/(2*pi)>=-1")
                       (("1" (flatten) (assert))
                        ("2"
                         (hide 2)
                         (split)
                         (("1" (cross-mult 1) (assert))
                          ("2" (cross-mult 1) (assert))))))))
                    ("2" (assert))))))
                ("2"
                 (case "to2pi(xyz) = xyz")
                 (("1" (assert))
                  ("2"
                   (hide 2)
                   (case "xyz >= 0")
                   (("1"
                     (case "floor(xyz/(2*pi)) = 0")
                     (("1" (expand "to2pi") (assert))
                      ("2"
                       (hide 2)
                       (case "xyz/(2*pi) >= 0 AND xyz/(2*pi)<1")
                       (("1" (flatten) (assert))
                        ("2"
                         (hide 2)
                         (split)
                         (("1" (cross-mult 1) (assert))
                          ("2" (cross-mult 1) (assert))))))))
                    ("2"
                     (case "floor(xyz/(2*pi)) = -1")
                     (("1" (expand "to2pi" -) (replace -1) (assert))
                      ("2"
                       (hide 3)
                       (case "xyz/(2*pi) < 0 AND xyz/(2*pi)>=-1")
                       (("1" (flatten) (assert))
                        ("2"
                         (hide 2)
                         (split)
                         (("1" (cross-mult 1) (assert))
                          ("2" (cross-mult 1) (assert))))))))))))
                ("3"
                 (case "to2pi(xyz) = xyz")
                 (("1" (assert))
                  ("2"
                   (hide 2)
                   (case "xyz >= 0")
                   (("1"
                     (case "floor(xyz/(2*pi)) = 0")
                     (("1" (expand "to2pi" +) (replace -1) (assert))
                      ("2"
                       (hide 2)
                       (case "xyz/(2*pi) >=0 AND xyz/(2*pi)<1")
                       (("1" (flatten) (assert))
                        ("2"
                         (hide 2)
                         (split)
                         (("1" (cross-mult 1) (assert))
                          ("2" (cross-mult 1) (assert))))))))
                    ("2"
                     (case "xyz < 0")
                     (("1"
                       (case "floor(xyz/(2*pi)) = -1")
                       (("1" (expand "to2pi" -) (replace -1) (assert))
                        ("2"
                         (case "xyz/(2*pi) <0 AND xyz/(2*pi)>=-1")
                         (("1" (assert))
                          ("2"
                           (split)
                           (("1" (cross-mult 1) (assert))
                            ("2" (cross-mult 1) (assert))))))))
                      ("2" (assert))))))))
                ("4"
                 (case "xyz >=0")
                 (("1" (assert))
                  ("2"
                   (case "xyz < 0")
                   (("1"
                     (case "floor(xyz/(2*pi)) = -1")
                     (("1" (expand "to2pi" -) (replace -1) (assert))
                      ("2"
                       (case "xyz/(2*pi) <0 AND xyz/(2*pi)>=-1")
                       (("1" (flatten) (assert))
                        ("2"
                         (split)
                         (("1" (cross-mult 1) (assert))
                          ("2" (cross-mult 1) (assert))))))))
                    ("2" (assert))))))
                ("5"
                 (case "xyz >= 0")
                 (("1"
                   (case "floor(xyz/(2*pi)) = 0")
                   (("1" (expand "to2pi" -) (replace -1) (assert))
                    ("2"
                     (case "xyz/(2*pi) >=0 AND xyz/(2*pi)<1")
                     (("1" (flatten) (assert))
                      ("2"
                       (split)
                       (("1" (cross-mult 1) (assert))
                        ("2" (cross-mult 1) (assert))))))))
                  ("2"
                   (case "xyz < 0")
                   (("1" (assert)) ("2" (assert))))))))
              ("2"
               (hide 2)
               (expand "xyz")
               (assert)
               (split)
               (("1" (assert)) ("2" (assert))))))))
          ("2"
           (lemma "cos_lt_0")
           (inst - "to2pi(xyz)")
           (assert)
           (flatten)
           (assert)
           (rewrite "cos_id_to2pi"))))
        ("2"
         (replace -2 :dir rl)
         (hide-all-but 1)
         (grind :exclude "pi"))))
      ("2"
       (case "to2pi(xyz) = to2pi(xy)")
       (("1"
         (lemma "cos_id_to2pi")
         (inst-cp - "xyz")
         (inst - "xy")
         (assert))
        ("2"
         (replace -1 + :dir rl)
         (hide-all-but 1)
         (grind :exclude "pi"))))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: kb
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (lemma "line_solution_det")
   (inst?)
   (assert)
   (hide 2)
   (lemma "chirel_star_1_id")
   (inst?)
   (replace -1)
   (hide -1)
   (case "trkgs2vect(to2pi(track(-s) - eps * asin(D / norm(s))), p) = trkgs2vect(track(-s) - eps * asin(D / norm(s)), p)")
   (("1"
     (replace -1)
     (hide -)
     (split +)
     (("1"
       (rewrite "norm_id")
       (case "-eps * det(s, trkgs2vect(track(-s) - eps * asin(D / norm(s)), 1)) =
                                                                                                                    D")
       (("1"
         (mult-by -1 "p")
         (expand "trkgs2vect")
         (grind :exclude ("sin" "cos" "track" "asin" "norm")))
        ("2"
         (hide 2)
         (expand "trkgs2vect")
         (lemma "cos_minus")
         (inst?)
         (replace -1)
         (hide -1)
         (lemma "sin_minus")
         (inst?)
         (replace -1)
         (hide -1)
         (rewrite "cos_track")
         (rewrite "sin_track")
         (case "cos(eps * asin(D / norm(s))) = cos(asin(D / norm(s)))")
         (("1"
           (replace -1)
           (hide -1)
           (case "sin(eps * asin(D / norm(s))) = eps*sin(asin(D / norm(s)))")
           (("1"
             (replace -1)
             (hide -1)
             (assert)
             (lemma "sin_asin")
             (inst?)
             (replace -1)
             (hide -1)
             (expand "det")
             (lemma "sqrt_sqv_norm")
             (inst?)
             (lemma "sq_eq")
             (inst?)
             (assert)
             (rewrite "vx_neg")
             (rewrite "vy_neg")
             (assert)
             (assert)
             (name "Xs" "norm(s)")
             (replace -1)
             (case "Xs > 0")
             (("1"
               (hide -4)
               (name "pz" "cos(asin(D/Xs))")
               (replace -1)
               (hide -1)
               (hide -2)
               (typepred "eps")
               (mult-by -4 "D*-eps*eps/(sq(Xs))")
               (grind-reals)
               (("1" (grind)) ("2" (grind))))
              ("2" (lemma "norm_eq_0") (inst?) (assert))))
            ("2"
             (hide 2)
             (typepred "eps")
             (ground)
             (replace -1)
             (assert)
             (lemma "sin_neg")
             (inst - "asin(D/norm(s))")
             (assert))))
          ("2"
           (hide 2)
           (typepred "eps")
           (ground)
           (replace -1)
           (lemma "cos_neg")
           (inst - "asin(D/norm(s))")
           (assert))))))
      ("2"
       (case "-1 * (s * trkgs2vect(track(-s) - eps * asin(D / norm(s)), 1)) >= 0")
       (("1"
         (mult-by -1 "p")
         (expand "trkgs2vect")
         (grind :exclude ("sin" "cos" "track" "asin" "norm")))
        ("2"
         (hide 2)
         (expand "trkgs2vect")
         (lemma "sin_minus")
         (inst?)
         (replace -1)
         (hide -1)
         (lemma "cos_minus")
         (inst?)
         (replace -1)
         (hide -1)
         (rewrite "sin_track")
         (rewrite "cos_track")
         (case "sin(eps * asin(D / norm(s))) = eps*sin(asin(D / norm(s)))")
         (("1"
           (replace -1)
           (case "cos(eps * asin(D / norm(s))) = cos(asin(D / norm(s)))")
           (("1"
             (replace -1)
             (hide -1)
             (hide -1)
             (rewrite "sin_asin")
             (name "rq" "cos(asin(D/norm(s)))")
             (case "rq >= 0")
             (("1"
               (replace -2)
               (hide -2)
               (lemma "sqrt_sqv_norm")
               (inst?)
               (lemma "sq_eq")
               (inst?)
               (assert)
               (hide -2)
               (typepred "eps")
               (expand "*")
               (rewrite "vx_neg")
               (rewrite "vy_neg")
               (real-props)
               (name "Xs" "norm(s)")
               (case "Xs > 0")
               (("1" (replace -2) (cancel-by 1 "Xs*Xs*Xs*Xs*rq"))
                ("2" (lemma "norm_eq_0") (inst?) (assert))))
              ("2"
               (hide 2)
               (typepred "asin(D/norm(s))")
               (name "ang" "asin(D/norm(s))")
               (replace -1)
               (hide -1)
               (lemma "cos_ge_0")
               (inst?)
               (assert))))
            ("2"
             (hide-all-but 1)
             (typepred "eps")
             (ground)
             (replace -1)
             (lemma "cos_neg")
             (inst - "asin(D/norm(s))")
             (assert))))
          ("2"
           (hide 2)
           (typepred "eps")
           (ground)
           (replace -1)
           (lemma "sin_neg")
           (inst - "asin(D/norm(s))")
           (assert))))))))
    ("2"
     (hide 2)
     (name "vvvv" "track(-s) - eps * asin(D / norm(s))")
     (replace -1)
     (hide -1)
     (expand "trkgs2vect")
     (rewrite "cos_id_to2pi")
     (rewrite "sin_id_to2pi"))
    ("3"
     (hide 2)
     (case "norm(s) > 0")
     (("1"
       (split +)
       (("1" (cross-mult 1))
        ("2"
         (cross-mult 1)
         (lemma "sqrt_sqv_norm")
         (inst - "s")
         (replace -1 :dir rl)
         (lemma "sq_le")
         (inst - "D" "sqrt(sqv(s))")
         (assert))))
      ("2" (hide 2) (assert))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: kb
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
script:
  (""
   (skeep)
   (name "vf"
         "LAMBDA (ff:nnreal): (sin(track(s)),cos(track(s))) * trkgs2vect(chirel_star(s, v, ff, eps), 1)")
   (case "vf(0) < 0 AND vf(1) < 0 IMPLIES vf(f) < 0")
   (("1"
     (split -1)
     (("1"
       (hide-all-but (-1 1))
       (expand "vf")
       (name "nnv" "trkgs2vect(chirel_star(s, v, f, eps), p)")
       (replace -1)
       (lemma "trkgs2vect_id")
       (inst - "s")
       (replace -1 1 :dir rl)
       (hide -1)
       (replace -1 :dir rl)
       (hide -1)
       (expand "trkgs2vect")
       (mult-by -1 "norm(s)*p")
       (assert)
       (name-replace "dd"
        "(# x := sin(track(s)), y := cos(track(s)) #) *
               (# x := sin(chirel_star(s, v, f, eps)),
                  y := cos(chirel_star(s, v, f, eps)) #)"
        :hide? t)
       (assert))
      ("2"
       (hide 2)
       (expand "vf" +)
       (lemma "trkgs2vect_id")
       (inst - "s")
       (replace -1 -4 :dir rl)
       (rewrite "chirel_star_0_id")
       (lemma "trkgs2vect_id")
       (inst - "v")
       (replace -1 -5 :dir rl)
       (expand "trkgs2vect")
       (mult-by 1 "norm(s)*norm(v)")
       (("1"
         (assert)
         (name-replace "dd"
          "((# x := sin(track(s)), y := cos(track(s)) #) *
                   (# x := sin(track(v)), y := cos(track(v)) #))"
          :hide? t)
         (assert))
        ("2"
         (name-replace "dd"
          "((# x := sin(track(s)), y := cos(track(s)) #) *
                   (# x := sin(track(v)), y := cos(track(v)) #))"
          :hide? t)
         (assert))))
      ("3"
       (hide 2)
       (lemma "line_solution_sep_dot_negative")
       (inst - "eps" "s" "trkgs2vect(chirel_star(s, v, 1, eps), 1)")
       (assert)
       (split -)
       (("1"
         (expand "vf" +)
         (name "nnnv" "trkgs2vect(chirel_star(s, v, 1, eps), 1)")
         (replace -1)
         (lemma "trkgs2vect_id")
         (inst - "s")
         (replace -1 -3 :dir rl)
         (hide-all-but (-3 1))
         (expand "trkgs2vect")
         (mult-by 1 "norm(s)")
         (("1"
           (assert)
           (name-replace "dd"
            "(# x := sin(track(s)), y := cos(track(s)) #)" :hide? t)
           (assert))
          ("2"
           (name-replace "dd"
            "(# x := sin(track(s)), y := cos(track(s)) #)" :hide? t)
           (assert))))
        ("2" (lemma "norm_id") (inst?) (assert))
        ("3" (lemma "chirel_star_tangent") (inst?))))))
    ("2"
     (name "theta" "track(v)")
     (name "phi1"
           "angle_from_to(theta,
                                                                                           track(-s)
                                                                                           -
                                                                                           eps * asin(D / norm(s)))")
     (("1"
       (case "NOT (vf = (LAMBDA (ff:nnreal): cos((track(s)-theta)-ff*phi1)))")
       (("1"
         (hide 2)
         (decompose-equality 1)
         (expand "vf" 1)
         (expand "trkgs2vect" 1)
         (expand "*" 1)
         (expand "chirel_star" 1)
         (replace -2)
         (replace -1)
         (lemma "cos_minus")
         (inst - "track(s)" "theta+x!1*phi1")
         (rewrite "cos_id_to2pi")
         (rewrite "sin_id_to2pi")
         (assert))
        ("2"
         (replace -1 +)
         (hide-all-but (-5 1))
         (typepred "f")
         (typepred "phi1")
         (assert)
         (flatten)
         (lemma "chirel_star_f_entry_scaf")
         (inst - "f" "phi1" "track(s)-theta")
         (assert)
         (hide-all-but (-1 -2 1))
         (grind))))
      ("2"
       (hide-all-but 1)
       (case "norm(s) > D")
       (("1"
         (split +)
         (("1" (cross-mult 1)) ("2" (cross-mult 1) (assert))))
        ("2"
         (hide 2)
         (lemma "sqrt_sqv_norm")
         (inst?)
         (replace -1 :dir rl)
         (lemma "sq_gt")
         (inst?)
         (assert))))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: kb
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (lemma "sin_minus")
   (inst?)
   (replace -1)
   (hide -1)
   (lemma "sin_minus")
   (inst?)
   (replace -1)
   (hide -1)
   (rewrite "cos_track")
   (rewrite "cos_track")
   (rewrite "cos_track")
   (rewrite "sin_track")
   (rewrite "sin_track")
   (rewrite "sin_track")
   (rewrite "vx_distr_sub")
   (rewrite "vy_distr_sub")
   (grind))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: kb
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (skoletin 1 :postfix "a")
   (skoletin 1 :postfix "a")
   (flatten)
   (label "NVOA" -2)
   (hide "NVOA")
   (reveal "NVOA")
   (delabel "NVOA")
   (copy -2)
   (label "twotrue" -1)
   (hide "twotrue")
   (expand "cha" -2)
   (expand "chi_hc" -)
   (lift-if)
   (ground)
   (name "chirelstar" "chirel_star(s,vo-vi,f,eps)")
   (replace -1)
   (name "expr" "(norm(vi)/norm(vo))*sin(chirelstar-track(vi))")
   (replace -1)
   (name "asinex" "asin(expr)")
   (replace -1)
   (name "exsign" "sign(asinex)")
   (replace -1)
   (name "expidiff" "exsign*(pi/2)-asinex")
   (mult-by -1 "irt")
   (name "arcsindir" "exsign*(pi/2)+irt*expidiff")
   (replace -2 :dir rl)
   (neg-formula -1)
   (assert)
   (case "NOT (-1 * ((exsign * pi) / 2) - (exsign * pi) / 2 * irt + asinex * irt) = (-1 * ((pi / 2) * exsign * irt) - exsign * (pi / 2) +
                                                                                                                asinex * irt)")
   (("1" (assert))
    ("2"
     (replace -2)
     (replace -8 +)
     (rewrite "track_id")
     (case "to2pi(cha`1) = cha`1")
     (("1"
       (replace -1)
       (hide -1)
       (case "expr = sin(chirelstar-cha`1)")
       (("1" (assert))
        ("2"
         (hide 6)
         (hide 2)
         (hide 2)
         (replace -7 +)
         (assert)
         (case "sin(chirelstar - to2pi(-arcsindir + chirelstar)) = sin(arcsindir)")
         (("1"
           (replace -1)
           (hide -1)
           (expand "arcsindir" +)
           (replace -2 + :dir rl)
           (replace -4 1 :dir rl)
           (assert)
           (name "theta" "exsign * (pi / 2) + (pi / 2) * exsign * irt")
           (case "(pi / 2) * exsign * irt - asin(expr) * irt + exsign * (pi / 2) = theta-asinex*irt")
           (("1"
             (replace -1)
             (hide -1)
             (lemma "sin_minus")
             (inst?)
             (replace -1)
             (hide -1)
             (case "sin(theta) = 0")
             (("1"
               (replace -1)
               (assert)
               (case "sin(asinex*irt) = irt*sin(asinex)")
               (("1"
                 (replace -1)
                 (hide -1)
                 (expand "asinex" 1)
                 (rewrite "sin_asin")
                 (case "cos(theta) = -irt")
                 (("1"
                   (case "sq(irt) = 1")
                   (("1" (expand "sq") (assert))
                    ("2"
                     (hide-all-but 1)
                     (typepred "irt")
                     (expand "sq")
                     (ground))))
                  ("2"
                   (replace -2 1 :dir rl)
                   (hide-all-but 1)
                   (typepred "exsign")
                   (typepred "irt")
                   (split -)
                   (("1"
                     (case "(pi / 2) * exsign * irt + exsign * (pi / 2) = exsign*pi")
                     (("1"
                       (replace -1)
                       (split -)
                       (("1" (replace -1) (lemma "cos_pi") (assert))
                        ("2"
                         (replace -1)
                         (lemma "cos_neg")
                         (inst - "pi")
                         (lemma "cos_pi")
                         (assert))))
                      ("2" (assert))))
                    ("2" (lemma "cos_0") (assert))))))
                ("2"
                 (hide-all-but 1)
                 (typepred "irt")
                 (ground)
                 (lemma "sin_neg")
                 (inst - "asinex")
                 (assert))))
              ("2"
               (replace -1 + :dir rl)
               (hide-all-but 1)
               (typepred "exsign")
               (typepred "irt")
               (split -)
               (("1"
                 (case "exsign * (pi / 2) + (pi / 2) * exsign * irt = exsign*pi")
                 (("1"
                   (replace -1)
                   (split -)
                   (("1" (lemma "sin_pi") (assert))
                    ("2"
                     (lemma "sin_neg")
                     (inst - "pi")
                     (lemma "sin_pi")
                     (assert))))
                  ("2" (assert))))
                ("2"
                 (case "exsign * (pi / 2) + (pi / 2) * exsign * irt = 0")
                 (("1" (lemma "sin_0") (assert)) ("2" (assert))))))))
            ("2" (assert))))
          ("2"
           (lemma "sin_minus")
           (inst?)
           (replace -1)
           (hide -1)
           (hide 2)
           (rewrite "cos_id_to2pi")
           (rewrite "sin_id_to2pi")
           (lemma "cos_minus")
           (inst - "chirelstar" "arcsindir")
           (replace -1)
           (hide -1)
           (lemma "sin_minus")
           (inst - "chirelstar" "arcsindir")
           (assert)
           (replace -1)
           (assert)
           (name "rvo" "trkgs2vect(chirelstar,1)")
           (case "not track(rvo) = to2pi(chirelstar)")
           (("1" (replace -1 1 :dir rl) (rewrite "track_id"))
            ("2"
             (lemma "cos_id_to2pi")
             (inst - "chirelstar")
             (replace -1 :dir rl)
             (hide -1)
             (lemma "sin_id_to2pi")
             (inst - "chirelstar")
             (replace -1 :dir rl)
             (hide -1)
             (replace -1 :dir rl)
             (hide -1)
             (case "sq(cos(track(rvo))) + sq(sin(track(rvo))) = 1")
             (("1" (expand "sq") (assert))
              ("2"
               (hide-all-but 1)
               (rewrite "cos_track")
               (rewrite "sin_track")
               (case "sq(norm(rvo)) = sqv(rvo)")
               (("1" (expand "sq") (cross-mult 1) (grind))
                ("2"
                 (lemma "sqrt_sqv_norm")
                 (inst?)
                 (lemma "sq_eq")
                 (inst - "sqrt(sqv(rvo))" "norm(rvo)")
                 (rewrite "sq_sqrt")
                 (("1" (ground))
                  ("2"
                   (hide -1)
                   (typepred "sqv(rvo)")
                   (propax))))))))))))))
      ("2"
       (expand "cha" 1)
       (typepred "chi_hc(1, eps, irt)(s, vo, vi)`1")
       (rewrite "to2pi_id"))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: kb
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (case "v`y > 0")
   (("1"
     (case "w`y > 0")
     (("1"
       (case "v`x = 0")
       (("1"
         (case "w`x = 0")
         (("1"
           (expand "track")
           (replace -1)
           (replace -2)
           (expand "atan2")
           (lift-if)
           (lift-if)
           (assert))
          ("2" (assert))))
        ("2"
         (case "v`x > 0")
         (("1"
           (case "w`x > 0")
           (("1"
             (expand "track")
             (expand "atan2")
             (lift-if)
             (lift-if)
             (assert))
            ("2"
             (lemma "posreal_div_posreal_is_posreal")
             (inst - "v`x" "v`y")
             (("1"
               (lemma "nnreal_div_posreal_is_nnreal")
               (inst - "-w`x" "w`y")
               (("1" (assert)) ("2" (assert)) ("3" (assert))))
              ("2" (assert)) ("3" (assert))))))
          ("2"
           (case "w`x < 0")
           (("1"
             (expand "track")
             (expand "atan2")
             (lift-if)
             (lift-if)
             (assert))
            ("2"
             (case "w`x = 0")
             (("1" (replace -1) (assert))
              ("2"
               (lemma "nnreal_div_posreal_is_nnreal")
               (inst - "-v`x" "v`y")
               (("1"
                 (lemma "posreal_div_posreal_is_posreal")
                 (inst - "w`x" "w`y")
                 (("1" (assert)) ("2" (assert)) ("3" (assert))))
                ("2" (assert)) ("3" (assert))))))))))))
      ("2"
       (name "cv" "v`x/v`y")
       (replace -1)
       (name "cw" "w`x/w`y")
       (replace -1)
       (case "w`x = 0")
       (("1"
         (case "v`x = 0")
         (("1"
           (expand "*")
           (replace -1)
           (replace -2)
           (assert)
           (case "s`y > 0")
           (("1" (div-by -8 "s`y") (assert))
            ("2"
             (hide-all-but (-8 1 2))
             (lemma "nnreal_times_nnreal_is_nnreal")
             (inst - "-s`y" "-w`y")
             (("1" (assert)) ("2" (assert))))))
          ("2" (replace -1) (assert))))
        ("2"
         (case "v`x = 0")
         (("1" (assert))
          ("2"
           (case "v`x > 0")
           (("1"
             (case "w`x < 0")
             (("1"
               (case "EXISTS (cc:negreal): w = cc*v")
               (("1"
                 (skosimp*)
                 (replace -1)
                 (assert)
                 (lemma "nnreal_times_nnreal_is_nnreal")
                 (inst - "-cc!1" "-(s*v)")
                 (assert))
                ("2"
                 (case "w`x/v`x = w`y/v`y")
                 (("1"
                   (inst + "w`x/v`x")
                   (("1"
                     (decompose-equality)
                     (("1" (rewrite "vx_scal") (assert))
                      ("2" (rewrite "vy_scal") (assert))))
                    ("2" (real-props))))
                  ("2"
                   (cross-mult 1)
                   (expand "cv")
                   (expand "cw")
                   (cross-mult -6)
                   (assert))
                  ("3" (assert))))))
              ("2"
               (lemma "posreal_div_posreal_is_posreal")
               (inst - "v`x" "v`y")
               (("1"
                 (lemma "posreal_div_posreal_is_posreal")
                 (inst - "w`x" "-w`y")
                 (("1" (assert)) ("2" (assert)) ("3" (assert))))
                ("2" (assert)) ("3" (assert))))))
            ("2"
             (case "w`x > 0")
             (("1"
               (case "EXISTS (cc:negreal): w = cc*v")
               (("1"
                 (skosimp*)
                 (replace -1)
                 (assert)
                 (lemma "nnreal_times_nnreal_is_nnreal")
                 (inst - "-cc!1" "-(s*v)")
                 (assert))
                ("2"
                 (case "w`x/v`x = w`y/v`y")
                 (("1"
                   (inst + "w`x/v`x")
                   (("1"
                     (decompose-equality)
                     (("1" (rewrite "vx_scal") (assert))
                      ("2" (rewrite "vy_scal") (assert))))
                    ("2"
                     (lemma "posreal_div_posreal_is_posreal")
                     (inst - "w`x" "-v`x")
                     (("1" (assert)) ("2" (assert)) ("3" (assert))))))
                  ("2"
                   (expand "cv")
                   (expand "cw")
                   (cross-mult -5)
                   (cross-mult 1)
                   (assert))
                  ("3" (assert))))))
              ("2"
               (lemma "posreal_div_posreal_is_posreal")
               (inst - "-v`x" "v`y")
               (("1"
                 (lemma "posreal_div_posreal_is_posreal")
                 (inst - "-w`x" "-w`y")
                 (("1" (assert)) ("2" (assert)) ("3" (assert))))
                ("2" (assert)) ("3" (assert))))))))))))))
    ("2"
     (case "v`y < 0")
     (("1"
       (hide 1)
       (case "w`y > 0")
       (("1"
         (case "w`x = 0 OR v`x = 0")
         (("1"
           (case "w`x = 0 AND v`x = 0")
           (("1"
             (hide -2)
             (flatten)
             (expand "*")
             (replace -1)
             (replace -2)
             (assert)
             (case "s`y < 0")
             (("1" (div-by -7 "-s`y") (assert))
              ("2"
               (lemma "posreal_times_posreal_is_posreal")
               (inst - "s`y" "w`y")
               (("1" (assert)) ("2" (assert))))))
            ("2" (split -) (("1" (assert)) ("2" (assert))))))
          ("2"
           (flatten)
           (case "EXISTS (cc:negreal): w = cc*v")
           (("1"
             (skosimp*)
             (replace -1)
             (assert)
             (lemma "nnreal_times_nnreal_is_nnreal")
             (inst - "-cc!1" "-(s*v)")
             (assert))
            ("2"
             (case "w`x/v`x = w`y/v`y")
             (("1"
               (inst + "w`x/v`x")
               (("1"
                 (decompose-equality)
                 (("1" (rewrite "vx_scal") (assert))
                  ("2" (rewrite "vy_scal") (assert))))
                ("2"
                 (assert)
                 (case "w`x/v`x < 0")
                 (("1" (assert))
                  ("2"
                   (hide 2)
                   (case "v`x > 0")
                   (("1"
                     (lemma "posreal_div_posreal_is_posreal")
                     (inst - "v`x" "-v`y")
                     (("1"
                       (case "w`x < 0")
                       (("1"
                         (lemma "posreal_div_posreal_is_posreal")
                         (inst - "-w`x" "v`x")
                         (("1" (assert)) ("2" (assert)) ("3" (assert))))
                        ("2"
                         (lemma "posreal_div_posreal_is_posreal")
                         (inst - "w`x" "w`y")
                         (("1" (assert)) ("2" (assert))))))
                      ("2" (assert))))
                    ("2"
                     (case "w`x > 0")
                     (("1"
                       (case "EXISTS (cc:negreal): w = cc*v")
                       (("1"
                         (skosimp*)
                         (replace -1)
                         (assert)
                         (lemma "nnreal_times_nnreal_is_nnreal")
                         (inst - "-cc!1" "-(s*v)")
                         (assert))
                        ("2"
                         (case "w`x/v`x = w`y/v`y")
                         (("1"
                           (inst + "w`x/v`x")
                           (("1"
                             (decompose-equality)
                             (("1" (rewrite "vx_scal") (assert))
                              ("2" (rewrite "vy_scal") (assert))))
                            ("2"
                             (lemma "posreal_div_posreal_is_posreal")
                             (inst - "w`x" "-v`x")
                             (("1" (assert)) ("2" (assert))
                              ("3" (assert))))))
                          ("2" (propax))))))
                      ("2"
                       (lemma "posreal_div_posreal_is_posreal")
                       (inst - "-v`x" "-v`y")
                       (("1"
                         (lemma "posreal_div_posreal_is_posreal")
                         (inst - "-w`x" "w`y")
                         (("1" (assert)) ("2" (assert))))
                        ("2" (assert))))))))))))
              ("2" (cross-mult 1) (cross-mult -3) (assert))
              ("3" (assert))))))))
        ("2"
         (case "v`x = 0 OR w`x = 0")
         (("1"
           (case "v`x = 0 AND w`x = 0")
           (("1"
             (hide -2)
             (flatten)
             (replace -1)
             (replace -2)
             (expand "*")
             (replace -1)
             (replace -2)
             (assert)
             (expand "track")
             (replace -1)
             (replace -2)
             (expand "atan2")
             (assert))
            ("2" (split -) (("1" (assert)) ("2" (assert))))))
          ("2"
           (flatten)
           (case "v`x > 0")
           (("1"
             (case "w`x > 0")
             (("1"
               (expand "track")
               (expand "atan2")
               (lift-if)
               (lift-if)
               (assert))
              ("2"
               (lemma "posreal_div_posreal_is_posreal")
               (inst - "v`x" "-v`y")
               (("1"
                 (lemma "posreal_div_posreal_is_posreal")
                 (inst - "-w`x" "-w`y")
                 (("1" (assert)) ("2" (assert)) ("3" (assert))))
                ("2" (assert)) ("3" (assert))))))
            ("2"
             (case "w`x < 0")
             (("1"
               (expand "track")
               (expand "atan2")
               (lift-if)
               (lift-if)
               (assert))
              ("2"
               (lemma "posreal_div_posreal_is_posreal")
               (inst - "-v`x" "-v`y")
               (("1"
                 (lemma "posreal_div_posreal_is_posreal")
                 (inst - "w`x" "-w`y")
                 (("1" (assert)) ("2" (assert)) ("3" (assert))))
                ("2" (assert)) ("3" (assert))))))))))))
      ("2" (assert))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: kb
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (name "ch" "chi_hc(1,eps,irt)(s,vo,vi)")
   (replace -1)
   (lemma "chi_hc_sin_equivalence_2")
   (inst?)
   (replace -2)
   (assert)
   (assert)
   (name "chirela" "chirel_star(s,vo-vi,1,eps)")
   (replace -1)
   (name "nvoa" "trkgs2vect(ch`1, norm(vo))")
   (replace -1)
   (rewrite "sin_minus")
   (rewrite "sin_minus")
   (name "XA" "track(nvoa)")
   (replace -1)
   (name "XB" "track(vi)")
   (replace -1)
   (case "cos(chirela) /= 0")
   (("1"
     (label "chirelanz" -1)
     (case "norm(vo)*cos(XA)-norm(vi)*cos(XB) /= 0")
     (("1"
       (label "Xnz" -1)
       (case "nvoa-vi /= zero")
       (("1"
         (label "relnz" -1)
         (case "norm(nvoa-vi) > 0")
         (("1"
           (label "relnorm" -1)
           (hide "relnorm")
           (hide "relnz")
           (case "NOT tan(chirela) = (norm(vo)*sin(XA) - norm(vi)*sin(XB))/(norm(vo)*cos(XA)-norm(vi)*cos(XB))")
           (("1" (hide 2) (expand "tan" 1) (cross-mult 1) (assert))
            ("2"
             (case "NOT (norm(vo) * sin(XA) - norm(vi) * sin(XB)) = (nvoa-vi)`x")
             (("1"
               (expand "XA" +)
               (expand "XB" +)
               (rewrite "sin_track" +)
               (rewrite "sin_track" +)
               (rewrite "vx_distr_sub")
               (case "norm(nvoa) = norm(vo)")
               (("1" (replace -1 1) (assert))
                ("2" (expand "nvoa" 1) (rewrite "norm_id"))))
              ("2"
               (case "NOT (norm(vo) * cos(XA) - norm(vi) * cos(XB)) = (nvoa-vi)`y")
               (("1"
                 (expand "XA" +)
                 (expand "XB" +)
                 (rewrite "cos_track" 1)
                 (rewrite "cos_track" 1)
                 (case "norm(nvoa) = norm(vo)")
                 (("1" (rewrite "vy_distr_sub") (assert))
                  ("2" (expand "nvoa" 1) (rewrite "norm_id"))))
                ("2"
                 (replace -1)
                 (replace -2)
                 (hide -1)
                 (hide -1)
                 (expand "tan" -1)
                 (name "chiv" "trkgs2vect(chirela,norm(nvoa-vi))")
                 (("1"
                   (lemma "chi_hc_track_eq")
                   (inst - "s" "nvoa-vi" "chiv")
                   (assert)
                   (split -)
                   (("1"
                     (replace -1 +)
                     (expand "chiv" +)
                     (rewrite "track_id")
                     (typepred "chirela")
                     (rewrite "to2pi_id"))
                    ("2"
                     (expand "chiv" +)
                     (expand "trkgs2vect" +)
                     (expand "*" +)
                     (reveal "relnorm")
                     (lemma "nzreal_times_nzreal_is_nzreal")
                     (inst - "norm(nvoa-vi)" "cos(chirela)")
                     (("1" (assert)) ("2" (assert))))
                    ("3"
                     (replace -2 + :dir rl)
                     (expand "chiv" +)
                     (expand "trkgs2vect" +)
                     (expand "*")
                     (assert))
                    ("4"
                     (expand "ch" -11)
                     (hide-all-but (-11 -7 1))
                     (expand "ch")
                     (expand "chi_hc")
                     (lift-if)
                     (ground))
                    ("5"
                     (lemma "line_solution_sep_dot_negative")
                     (inst - "eps" "s" "chiv")
                     (assert)
                     (lemma "chirel_star_tangent")
                     (expand "chiv" +)
                     (inst - "eps" "norm(nvoa-vi)" "s" "vo-vi")
                     (assert))))
                  ("2" (reveal "relnorm") (propax))))))))
            ("3" (propax)) ("4" (expand "Tan?") (propax))))
          ("2" (lemma "norm_eq_0") (inst?) (assert))))
        ("2"
         (hide-all-but (-9 -5 1))
         (expand "ch")
         (expand "chi_hc" -2)
         (ground)
         (expand "chi_hc" -)
         (replace -2)
         (replace -1)
         (assert))))
      ("2"
       (case "NOT norm(vi)*sin(XB) = norm(vo)*sin(XA)")
       (("1"
         (flatten)
         (case "NOT cos(chirela)*norm(vi)*sin(XB) = cos(chirela)*norm(vo)*sin(XA)")
         (("1" (assert)) ("2" (div-by -1 "cos(chirela)") (assert))))
        ("2"
         (flatten)
         (case "nvoa=vi")
         (("1"
           (hide-all-but (-1 -10 -6))
           (expand "ch")
           (expand "chi_hc")
           (lift-if)
           (ground)
           (replace -1)
           (replace -2)
           (assert))
          ("2"
           (lemma "trkgs2vect_id")
           (inst - "vi")
           (lemma "trkgs2vect_id")
           (inst - "nvoa")
           (case "norm(nvoa) = norm(vo)")
           (("1"
             (replace -1)
             (hide -1)
             (replace -1 1 :dir rl)
             (replace -2 1 :dir rl)
             (expand "trkgs2vect" 1)
             (expand "*" +)
             (assert))
            ("2" (expand "nvoa" 1) (rewrite "norm_id"))))))))))
    ("2"
     (flatten)
     (replace -1)
     (assert)
     (case "sin(chirela) /= 0")
     (("1"
       (flatten)
       (case "NOT norm(vi)*cos(XB) = norm(vo)*cos(XA)")
       (("1" (mult-by 1 "sin(chirela)") (assert))
        ("2"
         (case "NOT (nvoa - vi)`y = 0")
         (("1"
           (lemma "trkgs2vect_id")
           (inst-cp - "nvoa")
           (inst - "vi")
           (replace -1 1 :dir rl)
           (case "norm(nvoa) = norm(vo)")
           (("1"
             (replace -1)
             (replace -3 1 :dir rl)
             (rewrite "vy_distr_sub")
             (expand "trkgs2vect" 1)
             (expand "*" +)
             (assert))
            ("2" (expand "nvoa" +) (rewrite "norm_id"))))
          ("2"
           (name "chiv" "trkgs2vect(chirela,norm(nvoa-vi))")
           (("1"
             (case "s*chiv < 0")
             (("1"
               (case "s*(nvoa-vi) < 0")
               (("1"
                 (case "chiv`y = 0")
                 (("1"
                   (case "(nvoa-vi)`x /= 0")
                   (("1"
                     (case "chiv`x /= 0")
                     (("1"
                       (case "sign((nvoa-vi)`x) = sign(chiv`x)")
                       (("1"
                         (case "chirela = track(chiv)")
                         (("1"
                           (replace -1 2)
                           (hide -1)
                           (hide-all-but (-1 -2 -3 -4 -5 -6 -17 2 -8))
                           (name "w" "nvoa-vi")
                           (replace -1)
                           (case "w /= zero")
                           (("1"
                             (expand "track")
                             (expand "atan2")
                             (lift-if)
                             (lift-if)
                             (assert)
                             (expand "sign")
                             (lift-if)
                             (lift-if)
                             (ground))
                            ("2"
                             (expand "w" +)
                             (expand "ch")
                             (hide-all-but (-9 1))
                             (expand "chi_hc")
                             (ground)
                             (expand "nvoa" -1)
                             (expand "ch" -1)
                             (expand "chi_hc")
                             (assert)
                             (replace -1)
                             (assert))))
                          ("2"
                           (expand "chiv" +)
                           (rewrite "track_id")
                           (rewrite "to2pi_id"))))
                        ("2"
                         (hide-all-but (-1 -2 -3 -4 -5 -7 1))
                         (name "w" "nvoa-vi")
                         (replace -1)
                         (hide -1)
                         (expand "*")
                         (replace -6)
                         (replace -3)
                         (assert)
                         (expand "sign" 1 1)
                         (lift-if)
                         (ground)
                         (("1"
                           (case "s`x < 0")
                           (("1"
                             (div-by -5 "-s`x")
                             (assert)
                             (expand "sign")
                             (propax))
                            ("2"
                             (lemma "nnreal_times_nnreal_is_nnreal")
                             (inst - "s`x" "w`x")
                             (("1" (assert)) ("2" (assert))))))
                          ("2"
                           (case "s`x > 0")
                           (("1"
                             (div-by -4 "s`x")
                             (expand "sign")
                             (assert))
                            ("2"
                             (lemma "nnreal_times_nnreal_is_nnreal")
                             (inst - "-s`x" "-w`x")
                             (("1" (assert)) ("2" (assert))))))))))
                      ("2"
                       (flatten)
                       (case "chiv = zero")
                       (("1"
                         (case "norm(chiv) = norm(nvoa-vi)")
                         (("1" (replace -2) (assert))
                          ("2" (expand "chiv" 1) (rewrite "norm_id"))))
                        ("2" (decompose-equality))))))
                    ("2"
                     (flatten)
                     (case "nvoa-vi = zero")
                     (("1"
                       (hide-all-but (-1 -16))
                       (expand "ch")
                       (expand "chi_hc")
                       (ground)
                       (expand "nvoa" -1)
                       (expand "ch" -1)
                       (expand "chi_hc" -1)
                       (assert)
                       (replace -1)
                       (assert))
                      ("2"
                       (name "w" "nvoa-vi")
                       (replace -1)
                       (decompose-equality 1))))))
                  ("2"
                   (expand "chiv" 1)
                   (expand "trkgs2vect" 1)
                   (expand "*" 1)
                   (assert))))
                ("2"
                 (hide-all-but (-12 1))
                 (expand "ch")
                 (expand "chi_hc" -1)
                 (ground)
                 (expand "nvoa")
                 (expand "ch")
                 (expand "chi_hc")
                 (assert))))
              ("2"
               (lemma "chirel_star_tangent")
               (lemma "line_solution_sep_dot_negative")
               (inst - "eps" "s" "chiv")
               (assert)
               (inst - "eps" "norm(nvoa-vi)" "s" "vo-vi")
               (assert))))
            ("2"
             (lemma "norm_eq_0")
             (inst - "nvoa-vi")
             (assert)
             (hide-all-but (-11 -1))
             (expand "ch")
             (expand "chi_hc")
             (ground)
             (expand "nvoa")
             (expand "ch")
             (expand "chi_hc")
             (replace -1)
             (assert))))))))
      ("2"
       (name "chiv" "trkgs2vect(chirela,norm(nvoa-vi))")
       (("1"
         (flatten)
         (case "track(chiv) = chirela")
         (("1"
           (lemma "norm_id")
           (inst - "norm(nvoa-vi)" "chirela")
           (case "norm(nvoa-vi) > 0")
           (("1"
             (case "chiv /= zero")
             (("1"
               (expand "trkgs2vect" -5)
               (expand "*")
               (replace -6)
               (replace -7)
               (assert)
               (expand "zero")
               (assert))
              ("2" (lemma "norm_eq_0") (inst - "chiv") (assert))))
            ("2" (lemma "norm_eq_0") (inst - "nvoa-vi") (assert))))
          ("2"
           (expand "chiv" +)
           (rewrite "track_id")
           (rewrite "to2pi_id"))))
        ("2"
         (lemma "norm_eq_0")
         (inst?)
         (assert)
         (hide-all-but (-1 -9))
         (expand "ch")
         (expand "chi_hc")
         (ground)
         (expand "nvoa")
         (expand "ch")
         (expand "chi_hc")
         (replace -1)
         (assert))))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: kb
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (label "dotneg" -1)
   (hide "dotneg")
   (name "ch" "chi_hc(f,eps,irt)(s,vo,vi)")
   (replace -1)
   (lemma "chi_hc_sin_equivalence_2")
   (inst?)
   (replace -2)
   (assert)
   (assert)
   (name "chirela" "chirel_star(s,vo-vi,f,eps)")
   (replace -1)
   (name "nvoa" "trkgs2vect(ch`1, norm(vo))")
   (replace -1)
   (rewrite "sin_minus")
   (rewrite "sin_minus")
   (name "XA" "track(nvoa)")
   (replace -1)
   (name "XB" "track(vi)")
   (replace -1)
   (case "cos(chirela) /= 0")
   (("1"
     (label "chirelanz" -1)
     (case "norm(vo)*cos(XA)-norm(vi)*cos(XB) /= 0")
     (("1"
       (label "Xnz" -1)
       (case "nvoa-vi /= zero")
       (("1"
         (label "relnz" -1)
         (case "norm(nvoa-vi) > 0")
         (("1"
           (label "relnorm" -1)
           (hide "relnorm")
           (hide "relnz")
           (case "NOT tan(chirela) = (norm(vo)*sin(XA) - norm(vi)*sin(XB))/(norm(vo)*cos(XA)-norm(vi)*cos(XB))")
           (("1" (hide 2) (expand "tan" 1) (cross-mult 1) (assert))
            ("2"
             (case "NOT (norm(vo) * sin(XA) - norm(vi) * sin(XB)) = (nvoa-vi)`x")
             (("1"
               (expand "XA" +)
               (expand "XB" +)
               (rewrite "sin_track" +)
               (rewrite "sin_track" +)
               (rewrite "vx_distr_sub")
               (case "norm(nvoa) = norm(vo)")
               (("1" (replace -1 1) (assert))
                ("2" (expand "nvoa" 1) (rewrite "norm_id"))))
              ("2"
               (case "NOT (norm(vo) * cos(XA) - norm(vi) * cos(XB)) = (nvoa-vi)`y")
               (("1"
                 (expand "XA" +)
                 (expand "XB" +)
                 (rewrite "cos_track" 1)
                 (rewrite "cos_track" 1)
                 (case "norm(nvoa) = norm(vo)")
                 (("1" (rewrite "vy_distr_sub") (assert))
                  ("2" (expand "nvoa" 1) (rewrite "norm_id"))))
                ("2"
                 (replace -1)
                 (replace -2)
                 (hide -1)
                 (hide -1)
                 (expand "tan" -1)
                 (name "chiv" "trkgs2vect(chirela,norm(nvoa-vi))")
                 (("1"
                   (lemma "chi_hc_track_eq")
                   (inst - "s" "nvoa-vi" "chiv")
                   (assert)
                   (split -)
                   (("1"
                     (replace -1 +)
                     (expand "chiv" +)
                     (rewrite "track_id")
                     (typepred "chirela")
                     (rewrite "to2pi_id"))
                    ("2"
                     (expand "chiv" +)
                     (expand "trkgs2vect" +)
                     (expand "*" +)
                     (reveal "relnorm")
                     (lemma "nzreal_times_nzreal_is_nzreal")
                     (inst - "norm(nvoa-vi)" "cos(chirela)")
                     (("1" (assert)) ("2" (assert))))
                    ("3"
                     (replace -2 + :dir rl)
                     (expand "chiv" +)
                     (expand "trkgs2vect" +)
                     (expand "*")
                     (assert))
                    ("4"
                     (expand "ch" -11)
                     (hide-all-but (-11 -7 1))
                     (expand "ch")
                     (expand "chi_hc")
                     (lift-if)
                     (ground))
                    ("5"
                     (lemma "chirel_star_f_entry")
                     (inst?)
                     (inst - "norm(nvoa-vi)")
                     (assert)
                     (reveal "dotneg")
                     (propax))))
                  ("2" (reveal "relnorm") (propax))))))))
            ("3" (propax)) ("4" (expand "Tan?") (propax))))
          ("2" (lemma "norm_eq_0") (inst?) (assert))))
        ("2"
         (hide-all-but (-9 -5 1))
         (expand "ch")
         (expand "chi_hc" -2)
         (ground)
         (expand "chi_hc" -)
         (replace -2)
         (replace -1)
         (assert))))
      ("2"
       (case "NOT norm(vi)*sin(XB) = norm(vo)*sin(XA)")
       (("1"
         (flatten)
         (case "NOT cos(chirela)*norm(vi)*sin(XB) = cos(chirela)*norm(vo)*sin(XA)")
         (("1" (assert)) ("2" (div-by -1 "cos(chirela)") (assert))))
        ("2"
         (flatten)
         (case "nvoa=vi")
         (("1"
           (hide-all-but (-1 -10 -6))
           (expand "ch")
           (expand "chi_hc")
           (lift-if)
           (ground)
           (replace -1)
           (replace -2)
           (assert))
          ("2"
           (lemma "trkgs2vect_id")
           (inst - "vi")
           (lemma "trkgs2vect_id")
           (inst - "nvoa")
           (case "norm(nvoa) = norm(vo)")
           (("1"
             (replace -1)
             (hide -1)
             (replace -1 1 :dir rl)
             (replace -2 1 :dir rl)
             (expand "trkgs2vect" 1)
             (expand "*" +)
             (assert))
            ("2" (expand "nvoa" 1) (rewrite "norm_id"))))))))))
    ("2"
     (flatten)
     (replace -1)
     (assert)
     (case "sin(chirela) /= 0")
     (("1"
       (flatten)
       (case "NOT norm(vi)*cos(XB) = norm(vo)*cos(XA)")
       (("1" (mult-by 1 "sin(chirela)") (assert))
        ("2"
         (case "NOT (nvoa - vi)`y = 0")
         (("1"
           (lemma "trkgs2vect_id")
           (inst-cp - "nvoa")
           (inst - "vi")
           (replace -1 1 :dir rl)
           (case "norm(nvoa) = norm(vo)")
           (("1"
             (replace -1)
             (replace -3 1 :dir rl)
             (rewrite "vy_distr_sub")
             (expand "trkgs2vect" 1)
             (expand "*" +)
             (assert))
            ("2" (expand "nvoa" +) (rewrite "norm_id"))))
          ("2"
           (name "chiv" "trkgs2vect(chirela,norm(nvoa-vi))")
           (("1"
             (case "s*chiv < 0")
             (("1"
               (case "s*(nvoa-vi) < 0")
               (("1"
                 (case "chiv`y = 0")
                 (("1"
                   (case "(nvoa-vi)`x /= 0")
                   (("1"
                     (case "chiv`x /= 0")
                     (("1"
                       (case "sign((nvoa-vi)`x) = sign(chiv`x)")
                       (("1"
                         (case "chirela = track(chiv)")
                         (("1"
                           (replace -1 2)
                           (hide -1)
                           (hide-all-but (-1 -2 -3 -4 -5 -6 -17 2 -8))
                           (name "w" "nvoa-vi")
                           (replace -1)
                           (case "w /= zero")
                           (("1"
                             (expand "track")
                             (expand "atan2")
                             (lift-if)
                             (lift-if)
                             (assert)
                             (expand "sign")
                             (lift-if)
                             (lift-if)
                             (ground))
                            ("2"
                             (expand "w" +)
                             (expand "ch")
                             (hide-all-but (-9 1))
                             (expand "chi_hc")
                             (ground)
                             (expand "nvoa" -1)
                             (expand "ch" -1)
                             (expand "chi_hc")
                             (assert)
                             (replace -1)
                             (assert))))
                          ("2"
                           (expand "chiv" +)
                           (rewrite "track_id")
                           (rewrite "to2pi_id"))))
                        ("2"
                         (hide-all-but (-1 -2 -3 -4 -5 -7 1))
                         (name "w" "nvoa-vi")
                         (replace -1)
                         (hide -1)
                         (expand "*")
                         (replace -6)
                         (replace -3)
                         (assert)
                         (expand "sign" 1 1)
                         (lift-if)
                         (ground)
                         (("1"
                           (case "s`x < 0")
                           (("1"
                             (div-by -5 "-s`x")
                             (assert)
                             (expand "sign")
                             (propax))
                            ("2"
                             (lemma "nnreal_times_nnreal_is_nnreal")
                             (inst - "s`x" "w`x")
                             (("1" (assert)) ("2" (assert))))))
                          ("2"
                           (case "s`x > 0")
                           (("1"
                             (div-by -4 "s`x")
                             (expand "sign")
                             (assert))
                            ("2"
                             (lemma "nnreal_times_nnreal_is_nnreal")
                             (inst - "-s`x" "-w`x")
                             (("1" (assert)) ("2" (assert))))))))))
                      ("2"
                       (flatten)
                       (case "chiv = zero")
                       (("1"
                         (case "norm(chiv) = norm(nvoa-vi)")
                         (("1" (replace -2) (assert))
                          ("2" (expand "chiv" 1) (rewrite "norm_id"))))
                        ("2" (decompose-equality))))))
                    ("2"
                     (flatten)
                     (case "nvoa-vi = zero")
                     (("1"
                       (hide-all-but (-1 -16))
                       (expand "ch")
                       (expand "chi_hc")
                       (ground)
                       (expand "nvoa" -1)
                       (expand "ch" -1)
                       (expand "chi_hc" -1)
                       (assert)
                       (replace -1)
                       (assert))
                      ("2"
                       (name "w" "nvoa-vi")
                       (replace -1)
                       (decompose-equality 1))))))
                  ("2"
                   (expand "chiv" 1)
                   (expand "trkgs2vect" 1)
                   (expand "*" 1)
                   (assert))))
                ("2"
                 (hide-all-but (-12 1))
                 (expand "ch")
                 (expand "chi_hc" -1)
                 (ground)
                 (expand "nvoa")
                 (expand "ch")
                 (expand "chi_hc")
                 (assert))))
              ("2"
               (lemma "chirel_star_f_entry")
               (inst?)
               (inst - "norm(nvoa-vi)")
               (assert)
               (reveal "dotneg")
               (propax))))
            ("2"
             (lemma "norm_eq_0")
             (inst - "nvoa-vi")
             (assert)
             (hide-all-but (-11 -1))
             (expand "ch")
             (expand "chi_hc")
             (ground)
             (expand "nvoa")
             (expand "ch")
             (expand "chi_hc")
             (replace -1)
             (assert))))))))
      ("2"
       (name "chiv" "trkgs2vect(chirela,norm(nvoa-vi))")
       (("1"
         (flatten)
         (case "track(chiv) = chirela")
         (("1"
           (lemma "norm_id")
           (inst - "norm(nvoa-vi)" "chirela")
           (case "norm(nvoa-vi) > 0")
           (("1"
             (case "chiv /= zero")
             (("1"
               (expand "trkgs2vect" -5)
               (expand "*")
               (replace -6)
               (replace -7)
               (assert)
               (expand "zero")
               (assert))
              ("2" (lemma "norm_eq_0") (inst - "chiv") (assert))))
            ("2" (lemma "norm_eq_0") (inst - "nvoa-vi") (assert))))
          ("2"
           (expand "chiv" +)
           (rewrite "track_id")
           (rewrite "to2pi_id"))))
        ("2"
         (lemma "norm_eq_0")
         (inst?)
         (assert)
         (hide-all-but (-1 -9))
         (expand "ch")
         (expand "chi_hc")
         (ground)
         (expand "nvoa")
         (expand "ch")
         (expand "chi_hc")
         (replace -1)
         (assert))))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: kb
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (name "chh" "chi_hc(0, eps,-1)(s, vo, vi)")
   (replace -1)
   (assert)
   (expand "chh" -2)
   (expand "chi_hc" -2)
   (lift-if)
   (ground)
   (expand "chh" +)
   (expand "chi_hc" +)
   (rewrite "chirel_star_0_id")
   (lemma "sin_track_minus")
   (inst - "vi" "vo")
   (assert)
   (case "sin(track(vo-vi)-track(vo)) = (norm(vi) / norm(vo)) * sin(track(vo - vi) - track(vi))")
   (("1"
     (lemma "asin_sin")
     (inst - "track(vo - vi) - track(vo)")
     (replace -2)
     (replace -1)
     (assert)
     (rewrite "to2pi_id")
     (assert))
    ("2" (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: kb
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
script:
  (""
   (skeep)
   (name "chh" "chi_hc(0, eps,irt)(s, vo, vi)")
   (replace -1)
   (assert)
   (lemma "chi_hc_sin_equivalence_2")
   (inst?)
   (assert)
   (replace -2)
   (name "nvoa" "trkgs2vect(chh`1, norm(vo))")
   (replace -1)
   (rewrite "chirel_star_0_id")
   (case "s*(nvoa-vi) < 0")
   (("1"
     (case "vo-vi /= zero")
     (("1"
       (flatten)
       (case "nvoa-vi /= zero")
       (("1"
         (flatten)
         (hide -4)
         (hide -4)
         (hide -4)
         (hide -4)
         (rewrite "sin_minus")
         (rewrite "sin_minus")
         (case "EXISTS (cc:posreal): nvoa-vi = cc*(vo-vi)")
         (("1"
           (skosimp*)
           (replace -1 3)
           (name "vv" "vo-vi")
           (replace -1)
           (hide-all-but (2 3))
           (expand "track")
           (expand "atan2")
           (rewrite "vx_scal")
           (rewrite "vy_scal")
           (lift-if)
           (lift-if)
           (assert)
           (ground)
           (("1" (mult-by 1 "cc!1") (assert))
            ("2" (mult-by 1 "cc!1") (assert))
            ("3"
             (lift-if)
             (ground)
             (("1" (mult-by -1 "cc!1") (assert))
              ("2" (mult-by 1 "cc!1") (assert))))
            ("4"
             (lift-if)
             (ground)
             (("1" (mult-by -2 "cc!1") (assert))
              ("2" (mult-by 1 "cc!1") (assert))
              ("3" (mult-by 1 "cc!1") (assert))
              ("4" (mult-by 1 "cc!1") (assert))))
            ("5"
             (lift-if)
             (ground)
             (("1" (mult-by -2 "cc!1") (assert))
              ("2" (mult-by -1 "cc!1") (assert))
              ("3" (mult-by -1 "cc!1") (assert))
              ("4" (mult-by 1 "cc!1") (assert))))
            ("6"
             (lift-if)
             (ground)
             (("1" (mult-by -2 "cc!1") (assert))
              ("2" (mult-by -1 "cc!1") (assert))))))
          ("2"
           (case "(vo-vi)`x /= 0 AND (vo-vi)`y /= 0")
           (("1"
             (flatten)
             (case "(nvoa-vi)`x/(vo-vi)`x = (nvoa-vi)`y/(vo-vi)`y")
             (("1"
               (name "cc1" "(nvoa-vi)`x/(vo-vi)`x")
               (case "cc1 > 0")
               (("1"
                 (inst + "cc1")
                 (("1"
                   (decompose-equality 3)
                   (("1" (expand "cc1" 1) (rewrite "vx_scal") (assert))
                    ("2"
                     (replace -2)
                     (replace -3 1)
                     (rewrite "vy_scal")
                     (assert))))
                  ("2" (assert))))
                ("2"
                 (case "nvoa-vi = cc1*(vo-vi)")
                 (("1"
                   (replace -1 -4)
                   (assert)
                   (lemma "posreal_times_posreal_is_posreal")
                   (inst - "-cc1" "-(s*(vo-vi))")
                   (assert))
                  ("2"
                   (replace -1 1 :dir rl)
                   (decompose-equality 1)
                   (("1" (rewrite "vx_scal") (assert))
                    ("2" (rewrite "vy_scal") (assert))))))))
              ("2"
               (cross-mult 1)
               (rewrite "vx_distr_sub")
               (rewrite "vy_distr_sub")
               (rewrite "vx_distr_sub")
               (rewrite "vy_distr_sub")
               (rewrite "sin_track")
               (rewrite "sin_track")
               (rewrite "sin_track")
               (rewrite "cos_track")
               (rewrite "cos_track")
               (rewrite "cos_track")
               (rewrite "vx_distr_sub")
               (rewrite "vy_distr_sub")
               (assert)
               (case "norm(nvoa) = norm(vo)")
               (("1" (assert))
                ("2" (replace -2 1 :dir rl) (rewrite "norm_id"))))
              ("3" (assert)) ("4" (assert))))
            ("2"
             (split +)
             (("1"
               (flatten)
               (rewrite "sin_track")
               (replace -1)
               (assert)
               (real-props)
               (case "(nvoa-vi)`x = 0")
               (("1"
                 (expand "*" -)
                 (replace -1)
                 (replace -2)
                 (assert)
                 (name "cc1" "(nvoa-vi)`y/(vo-vi)`y")
                 (inst + "cc1")
                 (("1"
                   (decompose-equality 1)
                   (("1"
                     (rewrite "vx_scal")
                     (replace -2)
                     (replace -3)
                     (assert))
                    ("2" (rewrite "vy_scal") (expand "cc1" 1) (assert))))
                  ("2"
                   (case "cc1 > 0")
                   (("1" (assert))
                    ("2"
                     (hide 2)
                     (case "s`y > 0")
                     (("1"
                       (div-by -5 "s`y")
                       (div-by -8 "s`y")
                       (lemma "posreal_div_posreal_is_posreal")
                       (inst - "-(nvoa-vi)`y" "-(vo-vi)`y")
                       (("1" (assert)) ("2" (assert)) ("3" (assert))))
                      ("2"
                       (div-by -4 "-s`y")
                       (div-by -7 "-s`y")
                       (lemma "posreal_div_posreal_is_posreal")
                       (inst - "(nvoa-vi)`y" "(vo-vi)`y")
                       (("1" (assert)) ("2" (assert))
                        ("3" (assert))))))))))
                ("2"
                 (name "const1" "cos(track(vo-vi))")
                 (replace -1)
                 (case "const1 /= 0")
                 (("1"
                   (flatten)
                   (rewrite "sin_track")
                   (rewrite "sin_track")
                   (case "norm(nvoa) = norm(vo)")
                   (("1"
                     (replace -1)
                     (mult-by 2 "const1")
                     (rewrite "vx_distr_sub")
                     (rewrite "vx_distr_sub")
                     (assert))
                    ("2" (replace -4 1 :dir rl) (rewrite "norm_id"))))
                  ("2"
                   (rewrite "cos_track")
                   (lemma "nzreal_div_nzreal_is_nzreal")
                   (inst - "(vo-vi)`y" "norm(vo-vi)")
                   (("1" (assert))
                    ("2"
                     (flatten)
                     (hide-all-but (-1 -4 4))
                     (expand "zero")
                     (grind))))))))
              ("2"
               (flatten)
               (lemma "cos_track")
               (inst - "vo-vi")
               (replace -2 -1)
               (assert)
               (replace -1)
               (assert)
               (real-props)
               (case "(nvoa-vi)`y = 0")
               (("1"
                 (case "(vo-vi)`x /= 0")
                 (("1"
                   (flatten)
                   (name "cc1" "(nvoa-vi)`x/(vo-vi)`x")
                   (("1"
                     (case "nvoa-vi = cc1*(vo-vi)")
                     (("1"
                       (case "cc1 > 0")
                       (("1" (inst + "cc1") (assert))
                        ("2"
                         (replace -1 -6)
                         (lemma "posreal_times_posreal_is_posreal")
                         (inst - "-cc1" "-(s*(vo-vi))")
                         (("1" (assert)) ("2" (assert))))))
                      ("2"
                       (expand "cc1" 1)
                       (decompose-equality 1)
                       (("1" (rewrite "vx_scal") (assert))
                        ("2"
                         (replace -2)
                         (rewrite "vy_scal")
                         (replace -4)
                         (assert))))))
                    ("2" (assert))))
                  ("2"
                   (flatten)
                   (hide-all-but (-1 -4 3))
                   (expand "zero")
                   (grind))))
                ("2"
                 (name "const1" "sin(track(vo-vi))")
                 (case "const1 /= 0")
                 (("1"
                   (rewrite "vy_distr_sub")
                   (replace -2)
                   (rewrite "cos_track")
                   (rewrite "cos_track")
                   (rewrite "cos_track")
                   (case "norm(nvoa) = norm(vo)")
                   (("1" (replace -1) (mult-by 1 "const1") (assert))
                    ("2" (replace -6 1 :dir rl) (rewrite "norm_id"))))
                  ("2"
                   (flatten)
                   (replace -2 -1 :dir rl)
                   (rewrite "sin_track" -1)
                   (case "(vo-vi)`x = 0")
                   (("1"
                     (hide-all-but (-1 -5 4))
                     (expand "zero")
                     (grind))
                    ("2" (cross-mult -1) (assert))))))))))))))
        ("2"
         (expand "chh" -5)
         (expand "chi_hc" -5)
         (ground)
         (expand "chh" -3)
         (expand "chi_hc" -3)
         (replace -3)
         (replace -1)
         (assert))))
      ("2" (expand "chh" -5) (expand "chi_hc" -5) (ground))))
    ("2"
     (expand "chh" -4)
     (expand "chi_hc" -4)
     (ground)
     (expand "chh" -1)
     (expand "chi_hc" -1)
     (replace -1)
     (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: kb
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (expand "kb")
   (assert)
   (lemma "chi_hc_0_id")
   (inst?)
   (assert)
   (replace -1)
   (rewrite "trkgs2vect_id"))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: kb
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (assert)
   (expand "kb")
   (assert)
   (lemma "chi_hc_1_chirel")
   (inst?)
   (assert)
   (name "vp"
         "trkgs2vect(chi_hc(1, eps, irt)(s, vo, vi)`1, norm(vo))
                               - vi")
   (replace -1)
   (lemma "chirel_star_tangent")
   (inst - "eps" "norm(vp)" "s" "vo-vi")
   (("1" (replace -3 :dir rl) (rewrite "trkgs2vect_id"))
    ("2"
     (lemma "norm_eq_0")
     (inst?)
     (assert)
     (replace -1)
     (expand "chi_hc")
     (lift-if)
     (lift-if)
     (lift-if)
     (ground)
     (("1" (replace -1) (assert)) ("2" (replace -1) (assert))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: kb
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (expand "kb")
   (lift-if)
   (ground)
   (expand "chi_hc" -2)
   (lift-if)
   (ground)
   (("1"
     (expand "chi_hc" -5)
     (lift-if)
     (ground)
     (("1" (postpone)) ("2" (postpone)) ("3" (postpone))))
    ("2" (postpone)) ("3" (postpone))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: kb
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (case "NOT FORALL (x:real): sq(cos(x)) + sq(sin(x)) = 1")
   (("1"
     (hide 2)
     (skeep)
     (name "vv" "trkgs2vect(x,1)")
     (lemma "norm_id")
     (inst - "1" "x")
     (replace -2)
     (lemma "sqrt_sqv_norm")
     (inst - "vv")
     (replace -1 :dir rl)
     (hide -1)
     (lemma "sq_eq")
     (inst - "sqrt(sqv(vv))" "1")
     (flatten)
     (hide -1)
     (split -1)
     (("1"
       (hide -2)
       (assert)
       (rewrite "sq_sqrt")
       (replace -2 -1 :dir rl)
       (expand "trkgs2vect" -1)
       (expand "*")
       (expand "sqv")
       (expand "*")
       (expand "sq")
       (propax))
      ("2" (propax))))
    ("2"
     (label "pyth" -1)
     (hide "pyth")
     (case "sin(pi/12) = (1/4)*(sqrt(6)-sqrt(2))")
     (("1"
       (label "sin_pi12" -1)
       (hide "sin_pi12")
       (case "cos(pi/12) = (1/4)*(sqrt(6)+sqrt(2))")
       (("1"
         (label "cos_pi12" -1)
         (hide "cos_pi12")
         (skeep)
         (label "Dname" -1)
         (label "sname" -2)
         (label "voname" -3)
         (label "viname" -4)
         (label "nvoname" -5)
         (label "nviname" -6)
         (case "NOT norm(vo) = 2")
         (("1"
           (replace "voname" 1)
           (hide-all-but 1)
           (lemma "sqrt_sqv_norm")
           (inst?)
           (replace -1 :dir rl)
           (hide -1)
           (lemma "sq_eq")
           (inst?)
           (assert)
           (hide 2)
           (grind))
          ("2"
           (label "normvo" -1)
           (case "NOT norm(vi) = 1")
           (("1"
             (replace "viname" 1)
             (hide-all-but 1)
             (lemma "sqrt_sqv_norm")
             (inst?)
             (replace -1 :dir rl)
             (hide -1)
             (lemma "sq_eq")
             (inst?)
             (assert)
             (hide 2)
             (grind))
            ("2"
             (label "normvi" -1)
             (case "NOT track(vo) = pi/2")
             (("1"
               (replace "voname" +)
               (expand "track" +)
               (expand "atan2")
               (propax))
              ("2"
               (label "trackvo" -1)
               (case "NOT track(vi) = pi/2")
               (("1"
                 (hide 2)
                 (replace "viname" +)
                 (expand "track")
                 (expand "atan2" +)
                 (propax))
                ("2"
                 (label "trackvi" -1)
                 (case "NOT track(vo-vi) = pi/2")
                 (("1"
                   (hide 2)
                   (replace "voname" +)
                   (replace "viname" +)
                   (expand "-" +)
                   (expand "track" +)
                   (expand "atan2" +)
                   (propax))
                  ("2"
                   (label "trackvovi" -1)
                   (case "NOT track(vi-vo) = 3*pi/2")
                   (("1"
                     (hide 2)
                     (replace "voname" +)
                     (replace "viname" +)
                     (expand "-" +)
                     (expand "track" +)
                     (expand "atan2" +)
                     (propax))
                    ("2"
                     (label "trackvivo" -1)
                     (case "NOT norm(s) = 10/sqrt(3)")
                     (("1"
                       (hide 2)
                       (replace "sname" +)
                       (hide-all-but 1)
                       (lemma "sqrt_sqv_norm")
                       (inst?)
                       (replace -1 :dir rl)
                       (hide -1)
                       (lemma "sq_eq")
                       (inst?)
                       (assert)
                       (hide 2)
                       (grind))
                      ("2"
                       (label "norms" -1)
                       (case "NOT track(s) = 3*pi/2")
                       (("1"
                         (hide 2)
                         (replace "sname" +)
                         (expand "track" +)
                         (expand "atan2" +)
                         (assert))
                        ("2"
                         (label "tracks" -1)
                         (case "NOT track(-s) = pi/2")
                         (("1"
                           (hide 2)
                           (replace "sname" +)
                           (expand "track" +)
                           (assert)
                           (expand "-")
                           (expand "atan2" +)
                           (propax))
                          ("2"
                           (label "tracknegs" -1)
                           (case "NOT chirel_star(s,vo-vi,1/2,-1) = 2*pi/3")
                           (("1"
                             (rewrite "chirel_star_equiv" 1)
                             (("1"
                               (hide 2)
                               (replace "trackvovi")
                               (assert)
                               (replace "norms" 1)
                               (replace "Dname")
                               (replace "tracknegs")
                               (assert)
                               (case "NOT asin(sqrt(3)/2) = pi/3")
                               (("1"
                                 (hide-all-but 1)
                                 (lemma "sin_pi3")
                                 (replace -1 :dir rl)
                                 (rewrite "asin_sin"))
                                ("2"
                                 (replace -1)
                                 (assert)
                                 (rewrite "to2pi_id")
                                 (assert))
                                ("3"
                                 (hide-all-but 1)
                                 (cross-mult 1)
                                 (lemma "sq_le")
                                 (inst - "sqrt(3)" "2")
                                 (assert)
                                 (expand "sq" 1)
                                 (assert))))
                              ("2"
                               (hide 2)
                               (hide 2)
                               (replace "trackvovi")
                               (assert)
                               (replace "norms" 1)
                               (replace "Dname")
                               (replace "tracknegs")
                               (assert)
                               (case "NOT asin(sqrt(3)/2) = pi/3")
                               (("1"
                                 (hide-all-but 1)
                                 (lemma "sin_pi3")
                                 (replace -1 :dir rl)
                                 (rewrite "asin_sin"))
                                ("2"
                                 (replace -1)
                                 (expand "abs")
                                 (assert))
                                ("3"
                                 (hide-all-but 1)
                                 (cross-mult 1)
                                 (lemma "sq_le")
                                 (inst - "sqrt(3)" "2")
                                 (assert)
                                 (expand "sq" 1)
                                 (assert))))))
                            ("2"
                             (label "chirelstarid" -1)
                             (case "NOT chirel_star(-s,vi-vo,1/2,-1) = 5*pi/3")
                             (("1"
                               (hide 2)
                               (rewrite "chirel_star_equiv" 1)
                               (("1"
                                 (replace "trackvivo")
                                 (assert)
                                 (replace "norms" 1)
                                 (replace "Dname")
                                 (assert)
                                 (replace "tracks")
                                 (assert)
                                 (case "NOT asin(sqrt(3)/2) = pi/3")
                                 (("1"
                                   (hide-all-but 1)
                                   (lemma "sin_pi3")
                                   (replace -1 :dir rl)
                                   (hide -)
                                   (rewrite "asin_sin"))
                                  ("2"
                                   (rewrite "to2pi_id")
                                   (replace -1)
                                   (assert))
                                  ("3"
                                   (cross-mult 1)
                                   (lemma "sq_le")
                                   (inst - "sqrt(3)" "2")
                                   (assert)
                                   (expand "sq" 1)
                                   (assert))))
                                ("2"
                                 (replace "trackvivo")
                                 (assert)
                                 (hide 2)
                                 (replace "norms" 1)
                                 (replace "Dname")
                                 (assert)
                                 (replace "tracks")
                                 (assert)
                                 (case "NOT asin(sqrt(3)/2) = pi/3")
                                 (("1"
                                   (hide-all-but 1)
                                   (lemma "sin_pi3")
                                   (replace -1 :dir rl)
                                   (hide -)
                                   (rewrite "asin_sin"))
                                  ("2"
                                   (replace -1)
                                   (expand "abs")
                                   (assert))
                                  ("3"
                                   (cross-mult 1)
                                   (lemma "sq_le")
                                   (inst - "sqrt(3)" "2")
                                   (assert)
                                   (expand "sq" 1)
                                   (assert))))))
                              ("2"
                               (label "chirelstarnegid" -1)
                               (case "NOT sin(7*pi/6) = -1/2")
                               (("1"
                                 (hide-all-but 1)
                                 (lemma "sin_plus")
                                 (inst - "pi" "pi/6")
                                 (replace -1)
                                 (hide -1)
                                 (rewrite "sin_pi")
                                 (rewrite "cos_pi")
                                 (rewrite "sin_pi6")
                                 (assert))
                                ("2"
                                 (case "vo-vi /= zero")
                                 (("1"
                                   (case "vi-vo/=zero")
                                   (("1"
                                     (label "vivonz" -1)
                                     (label "vovinz" -2)
                                     (label "sin_7pi6" -3)
                                     (name "arcs" "asin(1/4)")
                                     (label "arcsname" -1)
                                     (case "asin(-1) = -pi/2")
                                     (("1"
                                       (hide -1)
                                       (case "arcs > 0")
                                       (("1"
                                         (assert)
                                         (case
                                          "NOT cos(asin(1/4)) = sqrt(1-sq(1/4))")
                                         (("1"
                                           (hide-all-but 1)
                                           (reveal "pyth")
                                           (inst?)
                                           (lemma "sqrt_eq")
                                           (inst
                                            -
                                            "sq(cos(asin(1/4)))"
                                            "1-sq(1/4)")
                                           (("1"
                                             (assert)
                                             (rewrite "sqrt_sq")
                                             (("1"
                                               (assert)
                                               (hide 2)
                                               (rewrite "sin_asin")
                                               (assert))
                                              ("2"
                                               (hide 2)
                                               (typepred "asin(1/4)")
                                               (rewrite "cos_ge_0"))))
                                            ("2"
                                             (expand "sq" 1)
                                             (assert))))
                                          ("2"
                                           (label "arcspos" -2)
                                           (label "cosasin" -1)
                                           (case
                                            "NOT cos(2*pi/3 - asin(1/4)) = (1/8)*sqrt(3)*(1-sqrt(5))")
                                           (("1"
                                             (hide-all-but (-1 1))
                                             (rewrite "cos_minus")
                                             (rewrite "cos_2pi3")
                                             (rewrite "sin_asin")
                                             (rewrite "sin_2pi3")
                                             (replace -1)
                                             (hide -1)
                                             (expand "sq")
                                             (lemma "sqrt_div")
                                             (inst - "15" "16")
                                             (assert)
                                             (replace -1)
                                             (hide -1)
                                             (lemma "sqrt_times")
                                             (inst - "3" "5")
                                             (replace -1)
                                             (hide -1)
                                             (assert))
                                            ("2"
                                             (label "cosdiffasin" -1)
                                             (case
                                              "NOT sin(2*pi/3-asin(1/4)) = (1/8)*(3*sqrt(5) + 1)")
                                             (("1"
                                               (hide-all-but (-2 1))
                                               (rewrite "sin_minus")
                                               (rewrite "sin_asin")
                                               (rewrite "cos_2pi3")
                                               (rewrite "sin_2pi3")
                                               (replace -1)
                                               (hide -1)
                                               (expand "sq")
                                               (lemma "sqrt_div")
                                               (inst - "15" "16")
                                               (assert)
                                               (replace -1)
                                               (hide -1)
                                               (lemma "sqrt_times")
                                               (inst - "3" "5")
                                               (replace -1)
                                               (hide -1)
                                               (grind))
                                              ("2"
                                               (label "sindiffasin" -1)
                                               (case
                                                "NOT -s *
                                                                                                                                                                                                                                                                                                              (trkgs2vect(to2pi(5 * pi / 3 + (pi / 2)
                                                                                                                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                                                                                                                (pi / 2) * -1
                                                                                                                                                                                                                                                                                                                                -
                                                                                                                                                                                                                                                                                                                                -pi / 2),
                                                                                                                                                                                                                                                                                                                          1)
                                                                                                                                                                                                                                                                                                                - vo)
                                                                                                                                                                                                                                                                                                              < 0")
                                               (("1"
                                                 (hide 2)
                                                 (replace "sname" +)
                                                 (replace "voname")
                                                 (case
                                                  "to2pi(5 * pi / 3 + (pi / 2) + (pi / 2) * -1 -
                                                                                                                                                                                                                                                                                                                                                                                                                                        -pi / 2) = pi/6")
                                                 (("1"
                                                   (replace -1)
                                                   (hide -1)
                                                   (hide -)
                                                   (expand "-")
                                                   (expand "*")
                                                   (expand "trkgs2vect")
                                                   (rewrite "sin_pi6")
                                                   (rewrite "cos_pi6")
                                                   (grind))
                                                  ("2"
                                                   (hide-all-but 1)
                                                   (expand "to2pi")
                                                   (assert))))
                                                ("2"
                                                 (assert)
                                                 (case
                                                  "NOT s * (trkgs2vect(to2pi(2 * pi / 3 - arcs), 2) - vi) < 0")
                                                 (("1"
                                                   (hide 2)
                                                   (replace "sname")
                                                   (replace "viname")
                                                   (expand "arcs" +)
                                                   (expand "-" +)
                                                   (expand "*" +)
                                                   (rewrite "to2pi_id")
                                                   (expand "trkgs2vect")
                                                   (replace -2)
                                                   (replace -3)
                                                   (hide-all-but 1)
                                                   (grind)
                                                   (real-props)
                                                   (mult-by 1 "sqrt(3)")
                                                   (assert)
                                                   (real-props)
                                                   (field)
                                                   (case "sqrt(5) > 1")
                                                   (("1" (assert))
                                                    ("2"
                                                     (lemma "sq_gt")
                                                     (inst?)
                                                     (assert))))
                                                  ("2"
                                                   (assert)
                                                   (label
                                                    "sdottgsneg"
                                                    -1)
                                                   (label
                                                    "minsdottgsneg"
                                                    -2)
                                                   (case
                                                    "NOT (trkgs2vect(chi_hc(1 / 2, -1, -1)(-s, vi, vo)`1, norm(vi)) = (1/2,sqrt(3)/2) AND trkgs2vect(chi_hc(1 / 2, -1, -1)(s, vo, vi)`1, norm(vo)) = ((1 / 4) + 3 * (sqrt(5) * (1 / 4)),
                                                                                                                                                                                                                                                                                                                                       sqrt(3) * (1 / 4) - sqrt(3) * sqrt(5) * (1 / 4)))")
                                                   (("1"
                                                     (hide 2)
                                                     (expand "chi_hc" +)
                                                     (replace
                                                      "chirelstarid")
                                                     (replace
                                                      "chirelstarnegid")
                                                     (replace "normvo")
                                                     (replace "normvi")
                                                     (replace "trackvi")
                                                     (rewrite "sin_pi6")
                                                     (replace "trackvo")
                                                     (rewrite "sin_7pi6")
                                                     (case
                                                      "asin(-1) = -pi/2")
                                                     (("1"
                                                       (replace -1)
                                                       (expand "sign")
                                                       (assert)
                                                       (expand "abs")
                                                       (case
                                                        "to2pi(5 * pi / 3 + (pi / 2) + (pi / 2) * -1 -
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        -pi / 2) = pi/6")
                                                       (("1"
                                                         (replace -1)
                                                         (case
                                                          "to2pi(2*pi/3-asin(1/4)) = 2*pi/3-asin(1/4)")
                                                         (("1"
                                                           (replace -1)
                                                           (expand
                                                            "trkgs2vect"
                                                            +)
                                                           (replace
                                                            "cosdiffasin")
                                                           (replace
                                                            "sindiffasin")
                                                           (rewrite
                                                            "sin_pi6")
                                                           (rewrite
                                                            "cos_pi6")
                                                           (hide -)
                                                           (grind))
                                                          ("2"
                                                           (hide-all-but
                                                            1)
                                                           (typepred
                                                            "asin(1/4)")
                                                           (rewrite
                                                            "to2pi_id"))))
                                                        ("2"
                                                         (hide-all-but 1)
                                                         (expand "to2pi")
                                                         (assert))))
                                                      ("2"
                                                       (hide-all-but 1)
                                                       (lemma "sin_neg")
                                                       (inst - "pi/2")
                                                       (rewrite
                                                        "sin_pi2")
                                                       (replace
                                                        -1
                                                        1
                                                        :dir
                                                        rl)
                                                       (rewrite
                                                        "asin_sin")
                                                       (assert))))
                                                    ("2"
                                                     (name
                                                      "nvin"
                                                      "trkgs2vect(chi_hc(1 / 2, -1, -1)(-s, vi, vo)`1, norm(vi))")
                                                     (replace -1)
                                                     (name
                                                      "nvon"
                                                      "trkgs2vect(chi_hc(1 / 2, -1, -1)(s, vo, vi)`1, norm(vo))")
                                                     (replace -1)
                                                     (flatten)
                                                     (case
                                                      "NOT s*(nvon-nvin) < 0")
                                                     (("1"
                                                       (hide 2)
                                                       (replace -3 +)
                                                       (replace -4 +)
                                                       (replace
                                                        "sname"
                                                        +)
                                                       (hide-all-but 1)
                                                       (grind)
                                                       (field)
                                                       (lemma "sq_lt")
                                                       (inst
                                                        -
                                                        "5"
                                                        "15*sqrt(5)")
                                                       (assert))
                                                      ("2"
                                                       (label
                                                        "nvinname"
                                                        -4)
                                                       (label
                                                        "nvonname"
                                                        -5)
                                                       (label
                                                        "nvontg"
                                                        -2)
                                                       (label
                                                        "nvintg"
                                                        -3)
                                                       (label
                                                        "sdotnvonnvinneg"
                                                        -1)
                                                       (case
                                                        "NOT s*(nvon-vi) < 0")
                                                       (("1"
                                                         (hide 4)
                                                         (replace
                                                          "nvonname"
                                                          +)
                                                         (replace
                                                          "viname"
                                                          +)
                                                         (replace
                                                          "sname"
                                                          +)
                                                         (hide-all-but 1)
                                                         (grind)
                                                         (real-props)
                                                         (field)
                                                         (case
                                                          "sqrt(5) > 1")
                                                         (("1" (assert))
                                                          ("2"
                                                           (lemma
                                                            "sq_gt")
                                                           (inst
                                                            -
                                                            "sqrt(5)"
                                                            "1")
                                                           (assert))))
                                                        ("2"
                                                         (label
                                                          "sdotnvonvineg"
                                                          -1)
                                                         (case
                                                          "NOT s*(vo-nvin) < 0")
                                                         (("1"
                                                           (hide 4)
                                                           (replace
                                                            "nvinname"
                                                            +)
                                                           (replace
                                                            "voname"
                                                            +)
                                                           (replace
                                                            "sname"
                                                            +)
                                                           (hide-all-but
                                                            1)
                                                           (grind))
                                                          ("2"
                                                           (label
                                                            "sdotvonvinneg"
                                                            -1)
                                                           (case
                                                            "NOT -s*(nvin-vo) < 0")
                                                           (("1"
                                                             (hide-all-but
                                                              (-1 1))
                                                             (grind))
                                                            ("2"
                                                             (label
                                                              "negsdotnvinvoneg"
                                                              -1)
                                                             (case
                                                              "NOT (nvi = nvin AND nvo = nvon)")
                                                             (("1"
                                                               (hide 4)
                                                               (replace
                                                                "nvoname"
                                                                +)
                                                               (replace
                                                                "nviname"
                                                                +)
                                                               (expand
                                                                "kb"
                                                                +)
                                                               (lift-if)
                                                               (assert)
                                                               (lift-if)
                                                               (assert)
                                                               (split +)
                                                               (("1"
                                                                 (expand
                                                                  "chi_hc"
                                                                  +)
                                                                 (replace
                                                                  "chirelstarid")
                                                                 (replace
                                                                  "trackvi")
                                                                 (replace
                                                                  "normvi")
                                                                 (replace
                                                                  "normvo")
                                                                 (rewrite
                                                                  "sin_pi6")
                                                                 (expand
                                                                  "abs"
                                                                  +)
                                                                 (propax))
                                                                ("2"
                                                                 (ground)
                                                                 (expand
                                                                  "chi_hc"
                                                                  +)
                                                                 (replace
                                                                  "chirelstarnegid")
                                                                 (replace
                                                                  "normvo")
                                                                 (replace
                                                                  "normvi")
                                                                 (replace
                                                                  "trackvo")
                                                                 (rewrite
                                                                  "sin_7pi6")
                                                                 (expand
                                                                  "abs"
                                                                  +)
                                                                 (assert)
                                                                 (case
                                                                  "NOT asin(-1) = -pi/2")
                                                                 (("1"
                                                                   (hide-all-but
                                                                    1)
                                                                   (lemma
                                                                    "sin_neg")
                                                                   (inst
                                                                    -
                                                                    "pi/2")
                                                                   (lemma
                                                                    "sin_pi2")
                                                                   (replace
                                                                    -1)
                                                                   (replace
                                                                    -2
                                                                    +
                                                                    :dir
                                                                    rl)
                                                                   (rewrite
                                                                    "asin_sin")
                                                                   (assert))
                                                                  ("2"
                                                                   (replace
                                                                    -1)
                                                                   (expand
                                                                    "sign"
                                                                    +)
                                                                   (propax))))))
                                                              ("2"
                                                               (flatten)
                                                               (label
                                                                "nvinvin"
                                                                -1)
                                                               (label
                                                                "nvonvon"
                                                                -2)
                                                               (replace
                                                                -1
                                                                +)
                                                               (replace
                                                                -2
                                                                +)
                                                               (replace
                                                                "nvonname"
                                                                +)
                                                               (replace
                                                                "nvinname"
                                                                +)
                                                               (assert)
                                                               (case
                                                                "NOT horizontal_conflict?(s,vo-vi)")
                                                               (("1"
                                                                 (hide 4)
                                                                 (replace
                                                                  "sname"
                                                                  +)
                                                                 (replace
                                                                  "voname"
                                                                  +)
                                                                 (replace
                                                                  "viname"
                                                                  +)
                                                                 (expand
                                                                  "horizontal_conflict?")
                                                                 (replace
                                                                  "Dname")
                                                                 (hide-all-but
                                                                  1)
                                                                 (inst
                                                                  +
                                                                  "10")
                                                                 (grind)
                                                                 (field)
                                                                 (typepred
                                                                  "sqrt(3)")
                                                                 (replace
                                                                  -2)
                                                                 (assert)
                                                                 (lemma
                                                                  "sq_lt")
                                                                 (inst
                                                                  -
                                                                  "400-75"
                                                                  "200*sqrt(3)")
                                                                 (assert))
                                                                ("2"
                                                                 (label
                                                                  "hcorig"
                                                                  -1)
                                                                 (assert)
                                                                 (replace
                                                                  "sname"
                                                                  +)
                                                                 (expand
                                                                  "horizontal_conflict?"
                                                                  +)
                                                                 (replace
                                                                  "Dname")
                                                                 (hide-all-but
                                                                  3)
                                                                 (inst
                                                                  +
                                                                  "3")
                                                                 (grind)
                                                                 (field)
                                                                 (typepred
                                                                  "sqrt(3)")
                                                                 (replace
                                                                  -2)
                                                                 (typepred
                                                                  "sqrt(5)")
                                                                 (case
                                                                  "3*sqrt(3)*sqrt(3) = 9")
                                                                 (("1"
                                                                   (replace
                                                                    -1)
                                                                   (case
                                                                    "3*sqrt(5)*sqrt(5) = 15")
                                                                   (("1"
                                                                     (replace
                                                                      -1)
                                                                     (case
                                                                      "9*sqrt(5)*sqrt(5) = 45")
                                                                     (("1"
                                                                       (replace
                                                                        -1)
                                                                       (hide
                                                                        -)
                                                                       (assert)
                                                                       (case
                                                                        "240*sqrt(3) < 480")
                                                                       (("1"
                                                                         (case
                                                                          "720*sqrt(5)*sqrt(3) > 2700")
                                                                         (("1"
                                                                           (assert))
                                                                          ("2"
                                                                           (hide
                                                                            2)
                                                                           (lemma
                                                                            "sq_gt")
                                                                           (inst
                                                                            -
                                                                            "720*sqrt(5)*sqrt(3)"
                                                                            "2700")
                                                                           (assert))))
                                                                        ("2"
                                                                         (hide
                                                                          2)
                                                                         (case
                                                                          "sqrt(3) < 2")
                                                                         (("1"
                                                                           (assert))
                                                                          ("2"
                                                                           (lemma
                                                                            "sqrt_lt")
                                                                           (inst
                                                                            -
                                                                            "3"
                                                                            "4")
                                                                           (assert))))))
                                                                      ("2"
                                                                       (hide
                                                                        2)
                                                                       (assert))))
                                                                    ("2"
                                                                     (assert))))
                                                                  ("2"
                                                                   (assert))))))))))))))))))))))))))
                                          ("3"
                                           (expand "sq" 1)
                                           (assert))))
                                        ("2"
                                         (expand "arcs" +)
                                         (hide-all-but 1)
                                         (lemma "asin_pos_bnds")
                                         (inst - "1/4")
                                         (assert))))
                                      ("2"
                                       (hide-all-but 1)
                                       (lemma "sin_neg")
                                       (inst - "pi/2")
                                       (lemma "sin_pi2")
                                       (replace -1)
                                       (replace -2 :dir rl)
                                       (rewrite "asin_sin")
                                       (assert))))
                                    ("2"
                                     (hide 2)
                                     (replace "voname" +)
                                     (replace "viname" +)
                                     (expand "zero")
                                     (expand "-")
                                     (propax))))
                                  ("2"
                                   (hide 2)
                                   (replace "voname" +)
                                   (replace "viname" +)
                                   (expand "zero")
                                   (expand "-")
                                   (propax))))))))))))))))
                    ("3"
                     (hide 2)
                     (replace "voname" +)
                     (replace "viname" +)
                     (expand "zero")
                     (expand "-")
                     (propax))))
                  ("3"
                   (hide 2)
                   (replace "voname" +)
                   (replace "viname" +)
                   (expand "zero")
                   (expand "-")
                   (propax))))))))))))
        ("2"
         (hide 2)
         (lemma "cos_minus")
         (inst - "pi/3" "pi/4")
         (replace -1)
         (hide -1)
         (rewrite "cos_pi4")
         (rewrite "cos_pi3")
         (rewrite "sin_pi4")
         (rewrite "sin_pi3")
         (grind)
         (real-props)
         (lemma "sqrt_times")
         (inst - "2" "3")
         (replace -1)
         (hide -)
         (assert))))
      ("2"
       (hide 2)
       (lemma "sin_minus")
       (inst - "pi/3" "pi/4")
       (replace -1)
       (hide -1)
       (rewrite "sin_pi3")
       (rewrite "sin_pi4")
       (rewrite "cos_pi3")
       (rewrite "cos_pi4")
       (lemma "sqrt_times")
       (inst - "2" "3")
       (replace -1)
       (hide -)
       (real-props))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: kb
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (case "NOT FORALL (x:real): sq(cos(x)) + sq(sin(x)) = 1")
   (("1"
     (hide 2)
     (skeep)
     (name "vv" "trkgs2vect(x,1)")
     (lemma "norm_id")
     (inst - "1" "x")
     (replace -2)
     (lemma "sqrt_sqv_norm")
     (inst - "vv")
     (replace -1 :dir rl)
     (hide -1)
     (lemma "sq_eq")
     (inst - "sqrt(sqv(vv))" "1")
     (flatten)
     (hide -1)
     (split -1)
     (("1"
       (hide -2)
       (assert)
       (rewrite "sq_sqrt")
       (replace -2 -1 :dir rl)
       (expand "trkgs2vect" -1)
       (expand "*")
       (expand "sqv")
       (expand "*")
       (expand "sq")
       (propax))
      ("2" (propax))))
    ("2"
     (label "pyth" -1)
     (hide "pyth")
     (case "sin(pi/12) = (1/4)*(sqrt(6)-sqrt(2))")
     (("1"
       (label "sin_pi12" -1)
       (hide "sin_pi12")
       (case "cos(pi/12) = (1/4)*(sqrt(6)+sqrt(2))")
       (("1"
         (label "cos_pi12" -1)
         (hide "cos_pi12")
         (skeep)
         (label "Dname" -1)
         (label "sname" -2)
         (label "voname" -3)
         (label "viname" -4)
         (label "nvoname" -5)
         (label "nviname" -6)
         (case "NOT norm(vo) = 500")
         (("1"
           (replace "voname" 1)
           (hide-all-but 1)
           (lemma "sqrt_sqv_norm")
           (inst?)
           (replace -1 :dir rl)
           (hide -1)
           (lemma "sq_eq")
           (inst?)
           (assert)
           (hide 2)
           (grind))
          ("2"
           (label "normvo" -1)
           (case "NOT norm(vi) = 250")
           (("1"
             (replace "viname" 1)
             (hide-all-but 1)
             (lemma "sqrt_sqv_norm")
             (inst?)
             (replace -1 :dir rl)
             (hide -1)
             (lemma "sq_eq")
             (inst?)
             (assert)
             (hide 2)
             (grind))
            ("2"
             (label "normvi" -1)
             (case "NOT track(vo) = pi/2")
             (("1"
               (replace "voname" +)
               (expand "track" +)
               (expand "atan2")
               (propax))
              ("2"
               (label "trackvo" -1)
               (case "NOT track(vi) = pi/2")
               (("1"
                 (hide 2)
                 (replace "viname" +)
                 (expand "track")
                 (expand "atan2" +)
                 (propax))
                ("2"
                 (label "trackvi" -1)
                 (case "NOT track(vo-vi) = pi/2")
                 (("1"
                   (hide 2)
                   (replace "voname" +)
                   (replace "viname" +)
                   (expand "-" +)
                   (expand "track" +)
                   (expand "atan2" +)
                   (propax))
                  ("2"
                   (label "trackvovi" -1)
                   (case "NOT track(vi-vo) = 3*pi/2")
                   (("1"
                     (hide 2)
                     (replace "voname" +)
                     (replace "viname" +)
                     (expand "-" +)
                     (expand "track" +)
                     (expand "atan2" +)
                     (propax))
                    ("2"
                     (label "trackvivo" -1)
                     (case "NOT norm(s) = 10/sqrt(3)")
                     (("1"
                       (hide 2)
                       (replace "sname" +)
                       (hide-all-but 1)
                       (lemma "sqrt_sqv_norm")
                       (inst?)
                       (replace -1 :dir rl)
                       (hide -1)
                       (lemma "sq_eq")
                       (inst?)
                       (assert)
                       (hide 2)
                       (grind))
                      ("2"
                       (label "norms" -1)
                       (case "NOT track(s) = 3*pi/2")
                       (("1"
                         (hide 2)
                         (replace "sname" +)
                         (expand "track" +)
                         (expand "atan2" +)
                         (assert))
                        ("2"
                         (label "tracks" -1)
                         (case "NOT track(-s) = pi/2")
                         (("1"
                           (hide 2)
                           (replace "sname" +)
                           (expand "track" +)
                           (assert)
                           (expand "-")
                           (expand "atan2" +)
                           (propax))
                          ("2"
                           (label "tracknegs" -1)
                           (case "NOT chirel_star(s,vo-vi,1/2,-1) = 2*pi/3")
                           (("1"
                             (rewrite "chirel_star_equiv" 1)
                             (("1"
                               (hide 2)
                               (replace "trackvovi")
                               (assert)
                               (replace "norms" 1)
                               (replace "Dname")
                               (replace "tracknegs")
                               (assert)
                               (case "NOT asin(sqrt(3)/2) = pi/3")
                               (("1"
                                 (hide-all-but 1)
                                 (lemma "sin_pi3")
                                 (replace -1 :dir rl)
                                 (rewrite "asin_sin"))
                                ("2"
                                 (replace -1)
                                 (assert)
                                 (rewrite "to2pi_id")
                                 (assert))
                                ("3"
                                 (hide-all-but 1)
                                 (cross-mult 1)
                                 (lemma "sq_le")
                                 (inst - "sqrt(3)" "2")
                                 (assert)
                                 (expand "sq" 1)
                                 (assert))))
                              ("2"
                               (hide 2)
                               (hide 2)
                               (replace "trackvovi")
                               (assert)
                               (replace "norms" 1)
                               (replace "Dname")
                               (replace "tracknegs")
                               (assert)
                               (case "NOT asin(sqrt(3)/2) = pi/3")
                               (("1"
                                 (hide-all-but 1)
                                 (lemma "sin_pi3")
                                 (replace -1 :dir rl)
                                 (rewrite "asin_sin"))
                                ("2"
                                 (replace -1)
                                 (expand "abs")
                                 (assert))
                                ("3"
                                 (hide-all-but 1)
                                 (cross-mult 1)
                                 (lemma "sq_le")
                                 (inst - "sqrt(3)" "2")
                                 (assert)
                                 (expand "sq" 1)
                                 (assert))))))
                            ("2"
                             (label "chirelstarid" -1)
                             (case "NOT chirel_star(-s,vi-vo,1/2,-1) = 5*pi/3")
                             (("1"
                               (hide 2)
                               (rewrite "chirel_star_equiv" 1)
                               (("1"
                                 (replace "trackvivo")
                                 (assert)
                                 (replace "norms" 1)
                                 (replace "Dname")
                                 (assert)
                                 (replace "tracks")
                                 (assert)
                                 (case "NOT asin(sqrt(3)/2) = pi/3")
                                 (("1"
                                   (hide-all-but 1)
                                   (lemma "sin_pi3")
                                   (replace -1 :dir rl)
                                   (hide -)
                                   (rewrite "asin_sin"))
                                  ("2"
                                   (rewrite "to2pi_id")
                                   (replace -1)
                                   (assert))
                                  ("3"
                                   (cross-mult 1)
                                   (lemma "sq_le")
                                   (inst - "sqrt(3)" "2")
                                   (assert)
                                   (expand "sq" 1)
                                   (assert))))
                                ("2"
                                 (replace "trackvivo")
                                 (assert)
                                 (hide 2)
                                 (replace "norms" 1)
                                 (replace "Dname")
                                 (assert)
                                 (replace "tracks")
                                 (assert)
                                 (case "NOT asin(sqrt(3)/2) = pi/3")
                                 (("1"
                                   (hide-all-but 1)
                                   (lemma "sin_pi3")
                                   (replace -1 :dir rl)
                                   (hide -)
                                   (rewrite "asin_sin"))
                                  ("2"
                                   (replace -1)
                                   (expand "abs")
                                   (assert))
                                  ("3"
                                   (cross-mult 1)
                                   (lemma "sq_le")
                                   (inst - "sqrt(3)" "2")
                                   (assert)
                                   (expand "sq" 1)
                                   (assert))))))
                              ("2"
                               (label "chirelstarnegid" -1)
                               (case "NOT sin(7*pi/6) = -1/2")
                               (("1"
                                 (hide-all-but 1)
                                 (lemma "sin_plus")
                                 (inst - "pi" "pi/6")
                                 (replace -1)
                                 (hide -1)
                                 (rewrite "sin_pi")
                                 (rewrite "cos_pi")
                                 (rewrite "sin_pi6")
                                 (assert))
                                ("2"
                                 (case "vo-vi /= zero")
                                 (("1"
                                   (case "vi-vo/=zero")
                                   (("1"
                                     (label "vivonz" -1)
                                     (label "vovinz" -2)
                                     (label "sin_7pi6" -3)
                                     (name "arcs" "asin(1/4)")
                                     (label "arcsname" -1)
                                     (case "asin(-1) = -pi/2")
                                     (("1"
                                       (hide -1)
                                       (case "arcs > 0")
                                       (("1"
                                         (assert)
                                         (case
                                          "NOT cos(asin(1/4)) = sqrt(1-sq(1/4))")
                                         (("1"
                                           (hide-all-but 1)
                                           (reveal "pyth")
                                           (inst?)
                                           (lemma "sqrt_eq")
                                           (inst
                                            -
                                            "sq(cos(asin(1/4)))"
                                            "1-sq(1/4)")
                                           (("1"
                                             (assert)
                                             (rewrite "sqrt_sq")
                                             (("1"
                                               (assert)
                                               (hide 2)
                                               (rewrite "sin_asin")
                                               (assert))
                                              ("2"
                                               (hide 2)
                                               (typepred "asin(1/4)")
                                               (rewrite "cos_ge_0"))))
                                            ("2"
                                             (expand "sq" 1)
                                             (assert))))
                                          ("2"
                                           (label "arcspos" -2)
                                           (label "cosasin" -1)
                                           (case
                                            "NOT cos(2*pi/3 - asin(1/4)) = (1/8)*sqrt(3)*(1-sqrt(5))")
                                           (("1"
                                             (hide-all-but (-1 1))
                                             (rewrite "cos_minus")
                                             (rewrite "cos_2pi3")
                                             (rewrite "sin_asin")
                                             (rewrite "sin_2pi3")
                                             (replace -1)
                                             (hide -1)
                                             (expand "sq")
                                             (lemma "sqrt_div")
                                             (inst - "15" "16")
                                             (assert)
                                             (replace -1)
                                             (hide -1)
                                             (lemma "sqrt_times")
                                             (inst - "3" "5")
                                             (replace -1)
                                             (hide -1)
                                             (assert))
                                            ("2"
                                             (label "cosdiffasin" -1)
                                             (case
                                              "NOT sin(2*pi/3-asin(1/4)) = (1/8)*(3*sqrt(5) + 1)")
                                             (("1"
                                               (hide-all-but (-2 1))
                                               (rewrite "sin_minus")
                                               (rewrite "sin_asin")
                                               (rewrite "cos_2pi3")
                                               (rewrite "sin_2pi3")
                                               (replace -1)
                                               (hide -1)
                                               (expand "sq")
                                               (lemma "sqrt_div")
                                               (inst - "15" "16")
                                               (assert)
                                               (replace -1)
                                               (hide -1)
                                               (lemma "sqrt_times")
                                               (inst - "3" "5")
                                               (replace -1)
                                               (hide -1)
                                               (grind))
                                              ("2"
                                               (label "sindiffasin" -1)
                                               (case
                                                "NOT -s *
                                                                                                                                                                                                                                                                                                                                                                                                          (trkgs2vect(to2pi(5 * pi / 3 + (pi / 2)
                                                                                                                                                                                                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                                                                                                                                                                                                            (pi / 2) * -1
                                                                                                                                                                                                                                                                                                                                                                                                                            -
                                                                                                                                                                                                                                                                                                                                                                                                                            -pi / 2),
                                                                                                                                                                                                                                                                                                                                                                                                                      250)
                                                                                                                                                                                                                                                                                                                                                                                                            - vo)
                                                                                                                                                                                                                                                                                                                                                                                                          < 0")
                                               (("1"
                                                 (hide 2)
                                                 (replace "sname" +)
                                                 (replace "voname")
                                                 (case
                                                  "to2pi(5 * pi / 3 + (pi / 2) + (pi / 2) * -1 -
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        -pi / 2) = pi/6")
                                                 (("1"
                                                   (replace -1)
                                                   (hide -1)
                                                   (hide -)
                                                   (expand "-")
                                                   (expand "*")
                                                   (expand "trkgs2vect")
                                                   (rewrite "sin_pi6")
                                                   (rewrite "cos_pi6")
                                                   (grind))
                                                  ("2"
                                                   (hide-all-but 1)
                                                   (expand "to2pi")
                                                   (assert))))
                                                ("2"
                                                 (assert)
                                                 (case
                                                  "NOT s * (trkgs2vect(to2pi(2 * pi / 3 - arcs), 500) - vi) < 0")
                                                 (("1"
                                                   (hide 2)
                                                   (replace "sname")
                                                   (replace "viname")
                                                   (expand "arcs" +)
                                                   (expand "-" +)
                                                   (expand "*" +)
                                                   (rewrite "to2pi_id")
                                                   (expand "trkgs2vect")
                                                   (replace -2)
                                                   (replace -3)
                                                   (hide-all-but 1)
                                                   (grind)
                                                   (real-props)
                                                   (mult-by 1 "sqrt(3)")
                                                   (assert)
                                                   (real-props)
                                                   (field)
                                                   (case "sqrt(5) > 1")
                                                   (("1" (assert))
                                                    ("2"
                                                     (lemma "sq_gt")
                                                     (inst?)
                                                     (assert))))
                                                  ("2"
                                                   (assert)
                                                   (label
                                                    "sdottgsneg"
                                                    -1)
                                                   (label
                                                    "minsdottgsneg"
                                                    -2)
                                                   (case
                                                    "NOT (trkgs2vect(chi_hc(1 / 2, -1, -1)(-s, vi, vo)`1, norm(vi)) = (125,sqrt(3)*125) AND trkgs2vect(chi_hc(1 / 2, -1, -1)(s, vo, vi)`1, norm(vo)) = (125/2 + 3 * (sqrt(5) * (125/2)),
                                                                                                                                                                                                                                                                                                                                                                                                                                           sqrt(3) * (125/2) - sqrt(3) * sqrt(5) * (125/2)))")
                                                   (("1"
                                                     (hide 2)
                                                     (expand "chi_hc" +)
                                                     (replace
                                                      "chirelstarid")
                                                     (replace
                                                      "chirelstarnegid")
                                                     (replace "normvo")
                                                     (replace "normvi")
                                                     (replace "trackvi")
                                                     (rewrite "sin_pi6")
                                                     (replace "trackvo")
                                                     (rewrite "sin_7pi6")
                                                     (case
                                                      "asin(-1) = -pi/2")
                                                     (("1"
                                                       (replace -1)
                                                       (expand "sign")
                                                       (assert)
                                                       (expand "abs")
                                                       (case
                                                        "to2pi(5 * pi / 3 + (pi / 2) + (pi / 2) * -1 -
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    -pi / 2) = pi/6")
                                                       (("1"
                                                         (replace -1)
                                                         (case
                                                          "to2pi(2*pi/3-asin(1/4)) = 2*pi/3-asin(1/4)")
                                                         (("1"
                                                           (replace -1)
                                                           (expand
                                                            "trkgs2vect"
                                                            +)
                                                           (replace
                                                            "cosdiffasin")
                                                           (replace
                                                            "sindiffasin")
                                                           (rewrite
                                                            "sin_pi6")
                                                           (rewrite
                                                            "cos_pi6")
                                                           (hide -)
                                                           (grind))
                                                          ("2"
                                                           (hide-all-but
                                                            1)
                                                           (typepred
                                                            "asin(1/4)")
                                                           (rewrite
                                                            "to2pi_id"))))
                                                        ("2"
                                                         (hide-all-but 1)
                                                         (expand "to2pi")
                                                         (assert))))
                                                      ("2"
                                                       (hide-all-but 1)
                                                       (lemma "sin_neg")
                                                       (inst - "pi/2")
                                                       (rewrite
                                                        "sin_pi2")
                                                       (replace
                                                        -1
                                                        1
                                                        :dir
                                                        rl)
                                                       (rewrite
                                                        "asin_sin")
                                                       (assert))))
                                                    ("2"
                                                     (name
                                                      "nvin"
                                                      "trkgs2vect(chi_hc(1 / 2, -1, -1)(-s, vi, vo)`1, norm(vi))")
                                                     (replace -1)
                                                     (name
                                                      "nvon"
                                                      "trkgs2vect(chi_hc(1 / 2, -1, -1)(s, vo, vi)`1, norm(vo))")
                                                     (replace -1)
                                                     (flatten)
                                                     (case
                                                      "NOT s*(nvon-nvin) < 0")
                                                     (("1"
                                                       (hide 2)
                                                       (replace -3 +)
                                                       (replace -4 +)
                                                       (replace
                                                        "sname"
                                                        +)
                                                       (hide-all-but 1)
                                                       (grind)
                                                       (field)
                                                       (lemma "sq_lt")
                                                       (inst
                                                        -
                                                        "625"
                                                        "1875*sqrt(5)")
                                                       (assert))
                                                      ("2"
                                                       (label
                                                        "nvinname"
                                                        -4)
                                                       (label
                                                        "nvonname"
                                                        -5)
                                                       (label
                                                        "nvontg"
                                                        -2)
                                                       (label
                                                        "nvintg"
                                                        -3)
                                                       (label
                                                        "sdotnvonnvinneg"
                                                        -1)
                                                       (case
                                                        "NOT s*(nvon-vi) < 0")
                                                       (("1"
                                                         (hide 4)
                                                         (replace
                                                          "nvonname"
                                                          +)
                                                         (replace
                                                          "viname"
                                                          +)
                                                         (replace
                                                          "sname"
                                                          +)
                                                         (hide-all-but 1)
                                                         (grind)
                                                         (real-props)
                                                         (field)
                                                         (case
                                                          "sqrt(5) > 1")
                                                         (("1" (assert))
                                                          ("2"
                                                           (lemma
                                                            "sq_gt")
                                                           (inst
                                                            -
                                                            "sqrt(5)"
                                                            "1")
                                                           (assert))))
                                                        ("2"
                                                         (label
                                                          "sdotnvonvineg"
                                                          -1)
                                                         (case
                                                          "NOT s*(vo-nvin) < 0")
                                                         (("1"
                                                           (hide 4)
                                                           (replace
                                                            "nvinname"
                                                            +)
                                                           (replace
                                                            "voname"
                                                            +)
                                                           (replace
                                                            "sname"
                                                            +)
                                                           (hide-all-but
                                                            1)
                                                           (grind))
                                                          ("2"
                                                           (label
                                                            "sdotvonvinneg"
                                                            -1)
                                                           (case
                                                            "NOT -s*(nvin-vo) < 0")
                                                           (("1"
                                                             (hide-all-but
                                                              (-1 1))
                                                             (grind))
                                                            ("2"
                                                             (label
                                                              "negsdotnvinvoneg"
                                                              -1)
                                                             (case
                                                              "NOT (nvi = nvin AND nvo = nvon)")
                                                             (("1"
                                                               (hide 4)
                                                               (replace
                                                                "nvoname"
                                                                +)
                                                               (replace
                                                                "nviname"
                                                                +)
                                                               (expand
                                                                "kb"
                                                                +)
                                                               (lift-if)
                                                               (assert)
                                                               (assert)
                                                               (lift-if)
                                                               (assert)
                                                               (split +)
                                                               (("1"
                                                                 (expand
                                                                  "chi_hc"
                                                                  +)
                                                                 (replace
                                                                  "chirelstarid")
                                                                 (replace
                                                                  "trackvi")
                                                                 (replace
                                                                  "normvi")
                                                                 (replace
                                                                  "normvo")
                                                                 (rewrite
                                                                  "sin_pi6")
                                                                 (expand
                                                                  "abs"
                                                                  +)
                                                                 (propax))
                                                                ("2"
                                                                 (expand
                                                                  "chi_hc"
                                                                  +)
                                                                 (replace
                                                                  "chirelstarnegid")
                                                                 (replace
                                                                  "normvo")
                                                                 (replace
                                                                  "normvi")
                                                                 (replace
                                                                  "trackvo")
                                                                 (rewrite
                                                                  "sin_7pi6")
                                                                 (expand
                                                                  "abs"
                                                                  +)
                                                                 (case
                                                                  "NOT asin(-1) = -pi/2")
                                                                 (("1"
                                                                   (hide-all-but
                                                                    1)
                                                                   (lemma
                                                                    "sin_neg")
                                                                   (inst
                                                                    -
                                                                    "pi/2")
                                                                   (lemma
                                                                    "sin_pi2")
                                                                   (replace
                                                                    -1)
                                                                   (replace
                                                                    -2
                                                                    +
                                                                    :dir
                                                                    rl)
                                                                   (rewrite
                                                                    "asin_sin")
                                                                   (assert))
                                                                  ("2"
                                                                   (replace
                                                                    -1)
                                                                   (expand
                                                                    "sign"
                                                                    +)
                                                                   (propax))))))
                                                              ("2"
                                                               (flatten)
                                                               (label
                                                                "nvinvin"
                                                                -1)
                                                               (label
                                                                "nvonvon"
                                                                -2)
                                                               (replace
                                                                -1
                                                                +)
                                                               (replace
                                                                -2
                                                                +)
                                                               (replace
                                                                "nvonname"
                                                                +)
                                                               (replace
                                                                "nvinname"
                                                                +)
                                                               (assert)
                                                               (case
                                                                "NOT horizontal_conflict?(s,vo-vi)")
                                                               (("1"
                                                                 (hide 4)
                                                                 (replace
                                                                  "sname"
                                                                  +)
                                                                 (replace
                                                                  "voname"
                                                                  +)
                                                                 (replace
                                                                  "viname"
                                                                  +)
                                                                 (expand
                                                                  "horizontal_conflict?")
                                                                 (replace
                                                                  "Dname")
                                                                 (hide-all-but
                                                                  1)
                                                                 (inst
                                                                  +
                                                                  "10/250")
                                                                 (grind)
                                                                 (field)
                                                                 (typepred
                                                                  "sqrt(3)")
                                                                 (replace
                                                                  -2)
                                                                 (assert)
                                                                 (lemma
                                                                  "sq_lt")
                                                                 (inst
                                                                  -
                                                                  "400-75"
                                                                  "200*sqrt(3)")
                                                                 (assert))
                                                                ("2"
                                                                 (label
                                                                  "hcorig"
                                                                  -1)
                                                                 (assert)
                                                                 (replace
                                                                  "sname"
                                                                  +)
                                                                 (expand
                                                                  "horizontal_conflict?"
                                                                  +)
                                                                 (replace
                                                                  "Dname")
                                                                 (hide-all-but
                                                                  3)
                                                                 (inst
                                                                  +
                                                                  "3/250")
                                                                 (grind)
                                                                 (field)
                                                                 (typepred
                                                                  "sqrt(3)")
                                                                 (replace
                                                                  -2)
                                                                 (typepred
                                                                  "sqrt(5)")
                                                                 (case
                                                                  "3*sqrt(3)*sqrt(3) = 9")
                                                                 (("1"
                                                                   (replace
                                                                    -1)
                                                                   (case
                                                                    "3*sqrt(5)*sqrt(5) = 15")
                                                                   (("1"
                                                                     (replace
                                                                      -1)
                                                                     (case
                                                                      "9*sqrt(5)*sqrt(5) = 45")
                                                                     (("1"
                                                                       (replace
                                                                        -1)
                                                                       (hide
                                                                        -)
                                                                       (assert)
                                                                       (case
                                                                        "240*sqrt(3) < 480")
                                                                       (("1"
                                                                         (case
                                                                          "720*sqrt(5)*sqrt(3) > 2700")
                                                                         (("1"
                                                                           (assert))
                                                                          ("2"
                                                                           (hide
                                                                            2)
                                                                           (lemma
                                                                            "sq_gt")
                                                                           (inst
                                                                            -
                                                                            "720*sqrt(5)*sqrt(3)"
                                                                            "2700")
                                                                           (assert))))
                                                                        ("2"
                                                                         (hide
                                                                          2)
                                                                         (case
                                                                          "sqrt(3) < 2")
                                                                         (("1"
                                                                           (assert))
                                                                          ("2"
                                                                           (lemma
                                                                            "sqrt_lt")
                                                                           (inst
                                                                            -
                                                                            "3"
                                                                            "4")
                                                                           (assert))))))
                                                                      ("2"
                                                                       (hide
                                                                        2)
                                                                       (assert))))
                                                                    ("2"
                                                                     (assert))))
                                                                  ("2"
                                                                   (assert))))))))))))))))))))))))))
                                          ("3"
                                           (expand "sq" 1)
                                           (assert))))
                                        ("2"
                                         (expand "arcs" +)
                                         (hide-all-but 1)
                                         (lemma "asin_pos_bnds")
                                         (inst - "1/4")
                                         (assert))))
                                      ("2"
                                       (hide-all-but 1)
                                       (lemma "sin_neg")
                                       (inst - "pi/2")
                                       (lemma "sin_pi2")
                                       (replace -1)
                                       (replace -2 :dir rl)
                                       (rewrite "asin_sin")
                                       (assert))))
                                    ("2"
                                     (hide-all-but (-1 1))
                                     (expand "zero")
                                     (grind))))
                                  ("2"
                                   (hide 2)
                                   (replace "voname" +)
                                   (replace "viname" +)
                                   (expand "zero")
                                   (expand "-")
                                   (propax))))))))))))))))
                    ("3"
                     (hide 2)
                     (assert)
                     (replace voname)
                     (replace viname)
                     (hide-all-but 1)
                     (expand "-")
                     (expand "zero")
                     (propax))))
                  ("3"
                   (replace voname)
                   (replace viname)
                   (hide-all-but 1)
                   (expand "-")
                   (expand "zero")
                   (propax))))))))))))
        ("2"
         (hide 2)
         (lemma "cos_minus")
         (inst - "pi/3" "pi/4")
         (replace -1)
         (hide -1)
         (rewrite "cos_pi4")
         (rewrite "cos_pi3")
         (rewrite "sin_pi4")
         (rewrite "sin_pi3")
         (grind)
         (real-props)
         (lemma "sqrt_times")
         (inst - "2" "3")
         (replace -1)
         (hide -)
         (assert))))
      ("2"
       (hide 2)
       (lemma "sin_minus")
       (inst - "pi/3" "pi/4")
       (replace -1)
       (hide -1)
       (rewrite "sin_pi3")
       (rewrite "sin_pi4")
       (rewrite "cos_pi3")
       (rewrite "cos_pi4")
       (lemma "sqrt_times")
       (inst - "2" "3")
       (replace -1)
       (hide -)
       (real-props))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: kb
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (case "NOT FORALL (x:real): sq(cos(x)) + sq(sin(x)) = 1")
   (("1"
     (hide 2)
     (skeep)
     (name "vv" "trkgs2vect(x,1)")
     (lemma "norm_id")
     (inst - "1" "x")
     (replace -2)
     (lemma "sqrt_sqv_norm")
     (inst - "vv")
     (replace -1 :dir rl)
     (hide -1)
     (lemma "sq_eq")
     (inst - "sqrt(sqv(vv))" "1")
     (flatten)
     (hide -1)
     (split -1)
     (("1"
       (hide -2)
       (assert)
       (rewrite "sq_sqrt")
       (replace -2 -1 :dir rl)
       (expand "trkgs2vect" -1)
       (expand "*")
       (expand "sqv")
       (expand "*")
       (expand "sq")
       (propax))
      ("2" (propax))))
    ("2"
     (label "pyth" -1)
     (hide "pyth")
     (case "sin(pi/12) = (1/4)*(sqrt(6)-sqrt(2))")
     (("1"
       (label "sin_pi12" -1)
       (hide "sin_pi12")
       (case "cos(pi/12) = (1/4)*(sqrt(6)+sqrt(2))")
       (("1"
         (label "cos_pi12" -1)
         (hide "cos_pi12")
         (skeep)
         (label "Dname" -1)
         (label "sname" -2)
         (label "voname" -3)
         (label "viname" -4)
         (label "nvoname" -5)
         (label "nviname" -6)
         (case "NOT norm(vo) = 500")
         (("1"
           (replace "voname" 1)
           (hide-all-but 1)
           (lemma "sqrt_sqv_norm")
           (inst?)
           (replace -1 :dir rl)
           (hide -1)
           (lemma "sq_eq")
           (inst?)
           (assert)
           (hide 2)
           (grind))
          ("2"
           (label "normvo" -1)
           (case "NOT norm(vi) = 250")
           (("1"
             (replace "viname" 1)
             (hide-all-but 1)
             (lemma "sqrt_sqv_norm")
             (inst?)
             (replace -1 :dir rl)
             (hide -1)
             (lemma "sq_eq")
             (inst?)
             (assert)
             (hide 2)
             (grind))
            ("2"
             (label "normvi" -1)
             (case "NOT track(vo) = pi/2")
             (("1"
               (replace "voname" +)
               (expand "track" +)
               (expand "atan2")
               (propax))
              ("2"
               (label "trackvo" -1)
               (case "NOT track(vi) = pi/2")
               (("1"
                 (hide 2)
                 (replace "viname" +)
                 (expand "track")
                 (expand "atan2" +)
                 (propax))
                ("2"
                 (label "trackvi" -1)
                 (case "NOT track(vo-vi) = pi/2")
                 (("1"
                   (hide 2)
                   (replace "voname" +)
                   (replace "viname" +)
                   (expand "-" +)
                   (expand "track" +)
                   (expand "atan2" +)
                   (propax))
                  ("2"
                   (label "trackvovi" -1)
                   (case "NOT track(vi-vo) = 3*pi/2")
                   (("1"
                     (hide 2)
                     (replace "voname" +)
                     (replace "viname" +)
                     (expand "-" +)
                     (expand "track" +)
                     (expand "atan2" +)
                     (propax))
                    ("2"
                     (label "trackvivo" -1)
                     (case "NOT norm(s) = 10/sqrt(3)")
                     (("1"
                       (hide 2)
                       (replace "sname" +)
                       (hide-all-but 1)
                       (lemma "sqrt_sqv_norm")
                       (inst?)
                       (replace -1 :dir rl)
                       (hide -1)
                       (lemma "sq_eq")
                       (inst?)
                       (assert)
                       (hide 2)
                       (grind))
                      ("2"
                       (label "norms" -1)
                       (case "NOT track(s) = 3*pi/2")
                       (("1"
                         (hide 2)
                         (replace "sname" +)
                         (expand "track" +)
                         (expand "atan2" +)
                         (assert))
                        ("2"
                         (label "tracks" -1)
                         (case "NOT track(-s) = pi/2")
                         (("1"
                           (hide 2)
                           (replace "sname" +)
                           (expand "track" +)
                           (assert)
                           (expand "-")
                           (expand "atan2" +)
                           (propax))
                          ("2"
                           (label "tracknegs" -1)
                           (case "NOT chirel_star(s,vo-vi,1/2,-1) = 2*pi/3")
                           (("1"
                             (rewrite "chirel_star_equiv" 1)
                             (("1"
                               (hide 2)
                               (replace "trackvovi")
                               (assert)
                               (replace "norms" 1)
                               (replace "Dname")
                               (replace "tracknegs")
                               (assert)
                               (case "NOT asin(sqrt(3)/2) = pi/3")
                               (("1"
                                 (hide-all-but 1)
                                 (lemma "sin_pi3")
                                 (replace -1 :dir rl)
                                 (rewrite "asin_sin"))
                                ("2"
                                 (replace -1)
                                 (assert)
                                 (rewrite "to2pi_id")
                                 (assert))
                                ("3"
                                 (hide-all-but 1)
                                 (cross-mult 1)
                                 (lemma "sq_le")
                                 (inst - "sqrt(3)" "2")
                                 (assert)
                                 (expand "sq" 1)
                                 (assert))))
                              ("2"
                               (hide 2)
                               (hide 2)
                               (replace "trackvovi")
                               (assert)
                               (replace "norms" 1)
                               (replace "Dname")
                               (replace "tracknegs")
                               (assert)
                               (case "NOT asin(sqrt(3)/2) = pi/3")
                               (("1"
                                 (hide-all-but 1)
                                 (lemma "sin_pi3")
                                 (replace -1 :dir rl)
                                 (rewrite "asin_sin"))
                                ("2"
                                 (replace -1)
                                 (expand "abs")
                                 (assert))
                                ("3"
                                 (hide-all-but 1)
                                 (cross-mult 1)
                                 (lemma "sq_le")
                                 (inst - "sqrt(3)" "2")
                                 (assert)
                                 (expand "sq" 1)
                                 (assert))))))
                            ("2"
                             (label "chirelstarid" -1)
                             (case "NOT chirel_star(-s,vi-vo,1/2,-1) = 5*pi/3")
                             (("1"
                               (hide 2)
                               (rewrite "chirel_star_equiv" 1)
                               (("1"
                                 (replace "trackvivo")
                                 (assert)
                                 (replace "norms" 1)
                                 (replace "Dname")
                                 (assert)
                                 (replace "tracks")
                                 (assert)
                                 (case "NOT asin(sqrt(3)/2) = pi/3")
                                 (("1"
                                   (hide-all-but 1)
                                   (lemma "sin_pi3")
                                   (replace -1 :dir rl)
                                   (hide -)
                                   (rewrite "asin_sin"))
                                  ("2"
                                   (rewrite "to2pi_id")
                                   (replace -1)
                                   (assert))
                                  ("3"
                                   (cross-mult 1)
                                   (lemma "sq_le")
                                   (inst - "sqrt(3)" "2")
                                   (assert)
                                   (expand "sq" 1)
                                   (assert))))
                                ("2"
                                 (replace "trackvivo")
                                 (assert)
                                 (hide 2)
                                 (replace "norms" 1)
                                 (replace "Dname")
                                 (assert)
                                 (replace "tracks")
                                 (assert)
                                 (case "NOT asin(sqrt(3)/2) = pi/3")
                                 (("1"
                                   (hide-all-but 1)
                                   (lemma "sin_pi3")
                                   (replace -1 :dir rl)
                                   (hide -)
                                   (rewrite "asin_sin"))
                                  ("2"
                                   (replace -1)
                                   (expand "abs")
                                   (assert))
                                  ("3"
                                   (cross-mult 1)
                                   (lemma "sq_le")
                                   (inst - "sqrt(3)" "2")
                                   (assert)
                                   (expand "sq" 1)
                                   (assert))))))
                              ("2"
                               (label "chirelstarnegid" -1)
                               (case "NOT sin(7*pi/6) = -1/2")
                               (("1"
                                 (hide-all-but 1)
                                 (lemma "sin_plus")
                                 (inst - "pi" "pi/6")
                                 (replace -1)
                                 (hide -1)
                                 (rewrite "sin_pi")
                                 (rewrite "cos_pi")
                                 (rewrite "sin_pi6")
                                 (assert))
                                ("2"
                                 (case "vo-vi /= zero")
                                 (("1"
                                   (case "vi-vo/=zero")
                                   (("1"
                                     (label "vivonz" -1)
                                     (label "vovinz" -2)
                                     (label "sin_7pi6" -3)
                                     (name "arcs" "asin(1/4)")
                                     (label "arcsname" -1)
                                     (case "asin(-1) = -pi/2")
                                     (("1"
                                       (hide -1)
                                       (case "arcs > 0")
                                       (("1"
                                         (assert)
                                         (case
                                          "NOT cos(asin(1/4)) = sqrt(1-sq(1/4))")
                                         (("1"
                                           (hide-all-but 1)
                                           (reveal "pyth")
                                           (inst?)
                                           (lemma "sqrt_eq")
                                           (inst
                                            -
                                            "sq(cos(asin(1/4)))"
                                            "1-sq(1/4)")
                                           (("1"
                                             (assert)
                                             (rewrite "sqrt_sq")
                                             (("1"
                                               (assert)
                                               (hide 2)
                                               (rewrite "sin_asin")
                                               (assert))
                                              ("2"
                                               (hide 2)
                                               (typepred "asin(1/4)")
                                               (rewrite "cos_ge_0"))))
                                            ("2"
                                             (expand "sq" 1)
                                             (assert))))
                                          ("2"
                                           (label "arcspos" -2)
                                           (label "cosasin" -1)
                                           (case
                                            "NOT cos(2*pi/3 - asin(1/4)) = (1/8)*sqrt(3)*(1-sqrt(5))")
                                           (("1"
                                             (hide-all-but (-1 1))
                                             (rewrite "cos_minus")
                                             (rewrite "cos_2pi3")
                                             (rewrite "sin_asin")
                                             (rewrite "sin_2pi3")
                                             (replace -1)
                                             (hide -1)
                                             (expand "sq")
                                             (lemma "sqrt_div")
                                             (inst - "15" "16")
                                             (assert)
                                             (replace -1)
                                             (hide -1)
                                             (lemma "sqrt_times")
                                             (inst - "3" "5")
                                             (replace -1)
                                             (hide -1)
                                             (assert))
                                            ("2"
                                             (label "cosdiffasin" -1)
                                             (case
                                              "NOT sin(2*pi/3-asin(1/4)) = (1/8)*(3*sqrt(5) + 1)")
                                             (("1"
                                               (hide-all-but (-2 1))
                                               (rewrite "sin_minus")
                                               (rewrite "sin_asin")
                                               (rewrite "cos_2pi3")
                                               (rewrite "sin_2pi3")
                                               (replace -1)
                                               (hide -1)
                                               (expand "sq")
                                               (lemma "sqrt_div")
                                               (inst - "15" "16")
                                               (assert)
                                               (replace -1)
                                               (hide -1)
                                               (lemma "sqrt_times")
                                               (inst - "3" "5")
                                               (replace -1)
                                               (hide -1)
                                               (grind))
                                              ("2"
                                               (label "sindiffasin" -1)
                                               (case
                                                "NOT -s *
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    (trkgs2vect(to2pi(5 * pi / 3 + (pi / 2)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      (pi / 2) * -1
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      -
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      -pi / 2),
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                250)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      - vo)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    < 0")
                                               (("1"
                                                 (hide 2)
                                                 (replace "sname" +)
                                                 (replace "voname")
                                                 (case
                                                  "to2pi(5 * pi / 3 + (pi / 2) + (pi / 2) * -1 -
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        -pi / 2) = pi/6")
                                                 (("1"
                                                   (replace -1)
                                                   (hide -1)
                                                   (hide -)
                                                   (expand "-")
                                                   (expand "*")
                                                   (expand "trkgs2vect")
                                                   (rewrite "sin_pi6")
                                                   (rewrite "cos_pi6")
                                                   (grind))
                                                  ("2"
                                                   (hide-all-but 1)
                                                   (expand "to2pi")
                                                   (assert))))
                                                ("2"
                                                 (assert)
                                                 (case
                                                  "NOT s * (trkgs2vect(to2pi(2 * pi / 3 - arcs), 500) - vi) < 0")
                                                 (("1"
                                                   (hide 2)
                                                   (replace "sname")
                                                   (replace "viname")
                                                   (expand "arcs" +)
                                                   (expand "-" +)
                                                   (expand "*" +)
                                                   (rewrite "to2pi_id")
                                                   (expand "trkgs2vect")
                                                   (replace -2)
                                                   (replace -3)
                                                   (hide-all-but 1)
                                                   (grind)
                                                   (real-props)
                                                   (mult-by 1 "sqrt(3)")
                                                   (assert)
                                                   (real-props)
                                                   (field)
                                                   (case "sqrt(5) > 1")
                                                   (("1" (assert))
                                                    ("2"
                                                     (lemma "sq_gt")
                                                     (inst?)
                                                     (assert))))
                                                  ("2"
                                                   (assert)
                                                   (label
                                                    "sdottgsneg"
                                                    -1)
                                                   (label
                                                    "minsdottgsneg"
                                                    -2)
                                                   (case
                                                    "NOT (trkgs2vect(chi_hc(1 / 2, -1, -1)(-s, vi, vo)`1, norm(vi)) = (125,sqrt(3)*125) AND trkgs2vect(chi_hc(1 / 2, -1, -1)(s, vo, vi)`1, norm(vo)) = (125/2 + 3 * (sqrt(5) * (125/2)),
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 sqrt(3) * (125/2) - sqrt(3) * sqrt(5) * (125/2)))")
                                                   (("1"
                                                     (hide 2)
                                                     (expand "chi_hc" +)
                                                     (replace
                                                      "chirelstarid")
                                                     (replace
                                                      "chirelstarnegid")
                                                     (replace "normvo")
                                                     (replace "normvi")
                                                     (replace "trackvi")
                                                     (rewrite "sin_pi6")
                                                     (replace "trackvo")
                                                     (rewrite "sin_7pi6")
                                                     (case
                                                      "asin(-1) = -pi/2")
                                                     (("1"
                                                       (replace -1)
                                                       (expand "sign")
                                                       (assert)
                                                       (expand "abs")
                                                       (case
                                                        "to2pi(5 * pi / 3 + (pi / 2) + (pi / 2) * -1 -
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      -pi / 2) = pi/6")
                                                       (("1"
                                                         (replace -1)
                                                         (case
                                                          "to2pi(2*pi/3-asin(1/4)) = 2*pi/3-asin(1/4)")
                                                         (("1"
                                                           (replace -1)
                                                           (expand
                                                            "trkgs2vect"
                                                            +)
                                                           (replace
                                                            "cosdiffasin")
                                                           (replace
                                                            "sindiffasin")
                                                           (rewrite
                                                            "sin_pi6")
                                                           (rewrite
                                                            "cos_pi6")
                                                           (hide -)
                                                           (grind))
                                                          ("2"
                                                           (hide-all-but
                                                            1)
                                                           (typepred
                                                            "asin(1/4)")
                                                           (rewrite
                                                            "to2pi_id"))))
                                                        ("2"
                                                         (hide-all-but 1)
                                                         (expand "to2pi")
                                                         (assert))))
                                                      ("2"
                                                       (hide-all-but 1)
                                                       (lemma "sin_neg")
                                                       (inst - "pi/2")
                                                       (rewrite
                                                        "sin_pi2")
                                                       (replace
                                                        -1
                                                        1
                                                        :dir
                                                        rl)
                                                       (rewrite
                                                        "asin_sin")
                                                       (assert))))
                                                    ("2"
                                                     (name
                                                      "nvin"
                                                      "trkgs2vect(chi_hc(1 / 2, -1, -1)(-s, vi, vo)`1, norm(vi))")
                                                     (replace -1)
                                                     (name
                                                      "nvon"
                                                      "trkgs2vect(chi_hc(1 / 2, -1, -1)(s, vo, vi)`1, norm(vo))")
                                                     (replace -1)
                                                     (flatten)
                                                     (case
                                                      "NOT s*(nvon-nvin) < 0")
                                                     (("1"
                                                       (hide 2)
                                                       (replace -3 +)
                                                       (replace -4 +)
                                                       (replace
                                                        "sname"
                                                        +)
                                                       (hide-all-but 1)
                                                       (grind)
                                                       (field)
                                                       (lemma "sq_lt")
                                                       (inst
                                                        -
                                                        "625"
                                                        "1875*sqrt(5)")
                                                       (assert))
                                                      ("2"
                                                       (label
                                                        "nvinname"
                                                        -4)
                                                       (label
                                                        "nvonname"
                                                        -5)
                                                       (label
                                                        "nvontg"
                                                        -2)
                                                       (label
                                                        "nvintg"
                                                        -3)
                                                       (label
                                                        "sdotnvonnvinneg"
                                                        -1)
                                                       (case
                                                        "NOT s*(nvon-vi) < 0")
                                                       (("1"
                                                         (hide 4)
                                                         (replace
                                                          "nvonname"
                                                          +)
                                                         (replace
                                                          "viname"
                                                          +)
                                                         (replace
                                                          "sname"
                                                          +)
                                                         (hide-all-but 1)
                                                         (grind)
                                                         (real-props)
                                                         (field)
                                                         (case
                                                          "sqrt(5) > 1")
                                                         (("1" (assert))
                                                          ("2"
                                                           (lemma
                                                            "sq_gt")
                                                           (inst
                                                            -
                                                            "sqrt(5)"
                                                            "1")
                                                           (assert))))
                                                        ("2"
                                                         (label
                                                          "sdotnvonvineg"
                                                          -1)
                                                         (case
                                                          "NOT s*(vo-nvin) < 0")
                                                         (("1"
                                                           (hide 4)
                                                           (replace
                                                            "nvinname"
                                                            +)
                                                           (replace
                                                            "voname"
                                                            +)
                                                           (replace
                                                            "sname"
                                                            +)
                                                           (hide-all-but
                                                            1)
                                                           (grind))
                                                          ("2"
                                                           (case
                                                            "NOT -s*(nvin-vo) < 0")
                                                           (("1"
                                                             (hide-all-but
                                                              (-1 1))
                                                             (grind))
                                                            ("2"
                                                             (label
                                                              "negsdotnvinvoneg"
                                                              -1)
                                                             (case
                                                              "NOT (nvi = nvin AND nvo = nvon)")
                                                             (("1"
                                                               (hide 4)
                                                               (replace
                                                                "nvoname"
                                                                +)
                                                               (replace
                                                                "nviname"
                                                                +)
                                                               (expand
                                                                "kb"
                                                                +)
                                                               (assert)
                                                               (assert)
                                                               (lift-if)
                                                               (assert)
                                                               (lift-if)
                                                               (assert)
                                                               (split +)
                                                               (("1"
                                                                 (expand
                                                                  "chi_hc"
                                                                  +)
                                                                 (replace
                                                                  "chirelstarid")
                                                                 (replace
                                                                  "trackvi")
                                                                 (replace
                                                                  "normvi")
                                                                 (replace
                                                                  "normvo")
                                                                 (rewrite
                                                                  "sin_pi6")
                                                                 (expand
                                                                  "abs"
                                                                  +)
                                                                 (propax))
                                                                ("2"
                                                                 (ground)
                                                                 (expand
                                                                  "chi_hc"
                                                                  +)
                                                                 (replace
                                                                  "chirelstarnegid")
                                                                 (replace
                                                                  "normvo")
                                                                 (replace
                                                                  "normvi")
                                                                 (replace
                                                                  "trackvo")
                                                                 (rewrite
                                                                  "sin_7pi6")
                                                                 (expand
                                                                  "abs"
                                                                  +)
                                                                 (case
                                                                  "NOT asin(-1) = -pi/2")
                                                                 (("1"
                                                                   (hide-all-but
                                                                    1)
                                                                   (lemma
                                                                    "sin_neg")
                                                                   (inst
                                                                    -
                                                                    "pi/2")
                                                                   (lemma
                                                                    "sin_pi2")
                                                                   (replace
                                                                    -1)
                                                                   (replace
                                                                    -2
                                                                    +
                                                                    :dir
                                                                    rl)
                                                                   (rewrite
                                                                    "asin_sin")
                                                                   (assert))
                                                                  ("2"
                                                                   (replace
                                                                    -1)
                                                                   (expand
                                                                    "sign"
                                                                    +)
                                                                   (propax))))))
                                                              ("2"
                                                               (flatten)
                                                               (label
                                                                "nvinvin"
                                                                -1)
                                                               (label
                                                                "nvonvon"
                                                                -2)
                                                               (replace
                                                                -1
                                                                +)
                                                               (replace
                                                                -2
                                                                +)
                                                               (assert)
                                                               (case
                                                                "NOT horizontal_conflict?(s,vo-vi)")
                                                               (("1"
                                                                 (hide 4)
                                                                 (replace
                                                                  "sname"
                                                                  +)
                                                                 (replace
                                                                  "voname"
                                                                  +)
                                                                 (replace
                                                                  "viname"
                                                                  +)
                                                                 (expand
                                                                  "horizontal_conflict?")
                                                                 (replace
                                                                  "Dname")
                                                                 (hide-all-but
                                                                  1)
                                                                 (inst
                                                                  +
                                                                  "10/250")
                                                                 (grind)
                                                                 (field)
                                                                 (typepred
                                                                  "sqrt(3)")
                                                                 (replace
                                                                  -2)
                                                                 (assert)
                                                                 (lemma
                                                                  "sq_lt")
                                                                 (inst
                                                                  -
                                                                  "400-75"
                                                                  "200*sqrt(3)")
                                                                 (assert))
                                                                ("2"
                                                                 (label
                                                                  "hcorig"
                                                                  -1)
                                                                 (assert)
                                                                 (name
                                                                  "newt"
                                                                  "horizontal_tca(s,nvon-nvin)")
                                                                 (("1"
                                                                   (expand
                                                                    "horizontal_conflict?"
                                                                    +)
                                                                   (inst
                                                                    +
                                                                    "newt")
                                                                   (("1"
                                                                     (name
                                                                      "aa"
                                                                      "sqv(nvon-nvin)")
                                                                     (name
                                                                      "bb"
                                                                      "2*(s*(nvon-nvin))")
                                                                     (name
                                                                      "cc"
                                                                      "sqv(s)")
                                                                     (name
                                                                      "ff"
                                                                      "quadratic(aa,bb,cc)")
                                                                     (case
                                                                      "NOT sqv(s + newt * (nvon - nvin)) = ff(newt)")
                                                                     (("1"
                                                                       (hide-all-but
                                                                        1)
                                                                       (expand
                                                                        "ff")
                                                                       (expand
                                                                        "aa")
                                                                       (expand
                                                                        "bb")
                                                                       (expand
                                                                        "cc")
                                                                       (grind
                                                                        :exclude
                                                                        "newt"))
                                                                      ("2"
                                                                       (replace
                                                                        -1)
                                                                       (case
                                                                        "newt = -bb/(2*aa)")
                                                                       (("1"
                                                                         (replace
                                                                          -1)
                                                                         (case
                                                                          "ff(0.0082391) < sq(4.1)")
                                                                         (("1"
                                                                           (case
                                                                            "ff(-bb/(2*aa)) <= ff(0.0082391)")
                                                                           (("1"
                                                                             (assert)
                                                                             (expand
                                                                              "sq")
                                                                             (assert))
                                                                            ("2"
                                                                             (lemma
                                                                              "quad_min")
                                                                             (inst
                                                                              -
                                                                              "aa"
                                                                              "bb"
                                                                              "cc")
                                                                             (("1"
                                                                               (assert)
                                                                               (split
                                                                                -)
                                                                               (("1"
                                                                                 (replace
                                                                                  -5)
                                                                                 (expand
                                                                                  "is_minimum?")
                                                                                 (inst
                                                                                  -
                                                                                  "0.0082391"))
                                                                                ("2"
                                                                                 (expand
                                                                                  "aa"
                                                                                  +)
                                                                                 (lemma
                                                                                  "sqv_eq_0")
                                                                                 (inst?)
                                                                                 (assert)
                                                                                 (case
                                                                                  "nvon=nvin")
                                                                                 (("1"
                                                                                   (assert)
                                                                                   (replace
                                                                                    "nvonname"
                                                                                    -1)
                                                                                   (replace
                                                                                    "nvinname"
                                                                                    -1)
                                                                                   (hide-all-but
                                                                                    -1)
                                                                                   (grind))
                                                                                  ("2"
                                                                                   (hide-all-but
                                                                                    (-1
                                                                                     1))
                                                                                   (expand
                                                                                    "zero")
                                                                                   (grind))))))
                                                                              ("2"
                                                                               (expand
                                                                                "aa"
                                                                                +)
                                                                               (lemma
                                                                                "sqv_eq_0")
                                                                               (inst?)
                                                                               (assert)
                                                                               (replace
                                                                                "nvonname"
                                                                                -1)
                                                                               (replace
                                                                                "nvinname"
                                                                                -1)
                                                                               (hide-all-but
                                                                                -1)
                                                                               (expand
                                                                                "zero")
                                                                               (grind))))))
                                                                          ("2"
                                                                           (expand
                                                                            "ff"
                                                                            1)
                                                                           (expand
                                                                            "quadratic"
                                                                            1)
                                                                           (expand
                                                                            "aa"
                                                                            1)
                                                                           (expand
                                                                            "bb"
                                                                            1)
                                                                           (expand
                                                                            "cc"
                                                                            1)
                                                                           (replace
                                                                            "nvonname"
                                                                            1)
                                                                           (replace
                                                                            "nvinname"
                                                                            1)
                                                                           (replace
                                                                            "sname")
                                                                           (hide-all-but
                                                                            1)
                                                                           (grind)
                                                                           (typepred
                                                                            "sqrt(5)")
                                                                           (replace
                                                                            -2)
                                                                           (hide
                                                                            -)
                                                                           (typepred
                                                                            "sqrt(3)")
                                                                           (replace
                                                                            -2)
                                                                           (hide
                                                                            -)
                                                                           (case
                                                                            "-10 / sqrt(3) * (-10 / sqrt(3)) = 100/3")
                                                                           (("1"
                                                                             (replace
                                                                              -1)
                                                                             (hide
                                                                              -)
                                                                             (case
                                                                              "3 * sqrt(5) * sqrt(5) = 15")
                                                                             (("1"
                                                                               (replace
                                                                                -1)
                                                                               (hide
                                                                                -)
                                                                               (assert)
                                                                               (grind-reals)
                                                                               (typepred
                                                                                "sqrt(3)")
                                                                               (replace
                                                                                -2)
                                                                               (hide
                                                                                -)
                                                                               (assert)
                                                                               (real-props)
                                                                               (mult-by
                                                                                1
                                                                                "sqrt(3)")
                                                                               (grind-reals)
                                                                               (typepred
                                                                                "sqrt(3)")
                                                                               (replace
                                                                                -2)
                                                                               (hide
                                                                                -)
                                                                               (grind-reals)
                                                                               (field)
                                                                               (case
                                                                                "sqrt(5) > 2.236")
                                                                               (("1"
                                                                                 (case
                                                                                  "sqrt(3) < 1.733")
                                                                                 (("1"
                                                                                   (assert))
                                                                                  ("2"
                                                                                   (lemma
                                                                                    "sq_lt")
                                                                                   (inst?)
                                                                                   (assert))))
                                                                                ("2"
                                                                                 (lemma
                                                                                  "sq_gt")
                                                                                 (inst?)
                                                                                 (assert))))
                                                                              ("2"
                                                                               (assert))))
                                                                            ("2"
                                                                             (assert))))))
                                                                        ("2"
                                                                         (expand
                                                                          "newt"
                                                                          +)
                                                                         (hide-all-but
                                                                          1)
                                                                         (expand
                                                                          "bb")
                                                                         (expand
                                                                          "aa")
                                                                         (expand
                                                                          "horizontal_tca")
                                                                         (assert))
                                                                        ("3"
                                                                         (assert)
                                                                         (case
                                                                          "aa /= 0")
                                                                         (("1"
                                                                           (assert))
                                                                          ("2"
                                                                           (expand
                                                                            "aa"
                                                                            1)
                                                                           (lemma
                                                                            "sqv_eq_0")
                                                                           (inst?)
                                                                           (assert)
                                                                           (replace
                                                                            "nvonname"
                                                                            -1)
                                                                           (replace
                                                                            "nvinname"
                                                                            -1)
                                                                           (hide-all-but
                                                                            -1)
                                                                           (expand
                                                                            "zero")
                                                                           (grind))))))))
                                                                    ("2"
                                                                     (expand
                                                                      "newt"
                                                                      +)
                                                                     (replace
                                                                      "sname"
                                                                      +)
                                                                     (replace
                                                                      "nvonname"
                                                                      1)
                                                                     (replace
                                                                      "nvinname"
                                                                      1)
                                                                     (hide-all-but
                                                                      1)
                                                                     (grind)
                                                                     (typepred
                                                                      "sqrt(3)")
                                                                     (replace
                                                                      -2)
                                                                     (typepred
                                                                      "sqrt(5)")
                                                                     (replace
                                                                      -2)
                                                                     (assert)
                                                                     (replace
                                                                      -2)
                                                                     (assert)
                                                                     (hide
                                                                      -)
                                                                     (grind-reals)
                                                                     (real-props)
                                                                     (field)
                                                                     (case
                                                                      "sqrt(5) > 1")
                                                                     (("1"
                                                                       (assert))
                                                                      ("2"
                                                                       (lemma
                                                                        "sq_gt")
                                                                       (inst?)
                                                                       (assert))))))
                                                                  ("2"
                                                                   (replace
                                                                    "nvonname")
                                                                   (replace
                                                                    "nvinname")
                                                                   (hide-all-but
                                                                    1)
                                                                   (flatten)
                                                                   (expand
                                                                    "zero")
                                                                   (grind))))))))))))))))))))))))))
                                          ("3" (expand "sq") (assert))))
                                        ("2"
                                         (expand "arcs" 1)
                                         (lemma "asin_pos_bnds")
                                         (inst - "1/4")
                                         (assert))))
                                      ("2"
                                       (hide-all-but 1)
                                       (lemma "sin_neg")
                                       (inst - "pi/2")
                                       (lemma "sin_pi2")
                                       (replace -1)
                                       (replace -2 :dir rl)
                                       (rewrite "asin_sin")
                                       (assert))))
                                    ("2"
                                     (hide-all-but (-1 1))
                                     (expand "zero")
                                     (grind))))
                                  ("2"
                                   (hide 2)
                                   (replace "voname" +)
                                   (replace "viname" +)
                                   (expand "zero")
                                   (hide-all-but 1)
                                   (grind))))))))))))))))
                    ("3"
                     (replace "sname" +)
                     (replace voname)
                     (replace viname)
                     (hide-all-but 1)
                     (expand "zero")
                     (grind))))
                  ("3"
                   (replace viname)
                   (replace voname)
                   (hide-all-but 1)
                   (grind)
                   (expand "zero")
                   (propax))))))))))))
        ("2"
         (hide 2)
         (lemma "cos_minus")
         (inst - "pi/3" "pi/4")
         (replace -1)
         (hide -)
         (rewrite "cos_pi4")
         (rewrite "cos_pi3")
         (rewrite "sin_pi4")
         (rewrite "sin_pi3")
         (grind)
         (real-props)
         (lemma "sqrt_times")
         (inst - "2" "3")
         (replace -1)
         (hide -)
         (assert))))
      ("2"
       (hide 2)
       (lemma "sin_minus")
       (inst - "pi/3" "pi/4")
       (replace -1)
       (hide -)
       (rewrite "cos_pi4")
       (rewrite "cos_pi3")
       (rewrite "sin_pi4")
       (rewrite "sin_pi3")
       (lemma "sqrt_times")
       (inst - "2" "3")
       (replace -1)
       (hide -)
       (real-props))))))


