# Proofs

proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: line_solutions
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "line_solution?")
   (flatten)
   (lemma "horizontal_criterion_coordination")
   (inst -1 "eps" "nvi" "nvo" "sp" "vi" "vo")
   (assert)
   (expand "horizontal_criterion?")
   (propax))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: line_solutions
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (name "tp" "((-eps) * D * norm(v2) - det(sp, v2)) / det(v1, v2)")
   (replace -1)
   (assert)
   (flatten)
   (lemma "line_solution_det")
   (inst - "eps" "sp + tp*v1" "v2")
   (assert)
   (rewrite "det_add_left")
   (rewrite "det_scal_left")
   (case "tp*det(v1,v2) = norm(v2) * D * (-eps) - det(sp, v2)")
   (("1" (replace -1) (typepred "eps") (ground))
    ("2" (cross-mult -1) (assert))))


proof_type: t_proof
decl_type: tcc
library: ACCoRD
theory: line_solutions
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (lemma "line_solution_independence")
   (inst?)
   (ground)
   (expand "horizontal_conflict_ever?")
   (inst + "t")
   (assert))


proof_type: t_proof
decl_type: tcc
library: ACCoRD
theory: line_solutions
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (name "tp" "((-eps) * D * norm(v2) - det(sp, v2)) / det(v1, v2)")
   (("1"
     (replace -1)
     (assert)
     (skosimp*)
     (replace -3)
     (hide -3)
     (case "det(sp + tp*v1,v2) = (-eps)*D*norm(v2)")
     (("1"
       (rewrite "det_perpR")
       (lemma "cauchy_schwarz")
       (inst?)
       (replace -2)
       (case "sq((-eps) * D * norm(v2)) = sq(D) * sqv(v2)")
       (("1"
         (replace -1)
         (hide -1)
         (lemma "sqv_perpR")
         (inst?)
         (replace -1)
         (hide -1)
         (case "sqv(v2) > 0")
         (("1" (mult-by 2 "sqv(v2)") (assert))
          ("2"
           (lemma "sqv_eq_0")
           (inst?)
           (assert)
           (replace -1)
           (expand "det")
           (assert))))
        ("2"
         (rewrite "sq_times")
         (rewrite "sq_times")
         (case "sq((-eps)) = 1")
         (("1" (replace -1) (rewrite "sq_norm") (assert))
          ("2" (hide-all-but 1) (typepred "eps") (grind))))))
      ("2"
       (rewrite "det_add_left")
       (rewrite "det_scal_left")
       (cross-mult -1)
       (replace -1 :dir rl)
       (assert))))
    ("2" (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: tangent_line
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "alpha")
   (expand "beta")
   (rewrite "sq_div")
   (rewrite "sq_div")
   (rewrite "sq_times")
   (rewrite "sq" :dir rl)
   (grind-reals)
   (expand "sq" 1 3)
   (assert))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: tangent_line
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "Q")
   (rewrite "sqv_add")
   (rewrite "sqv_scal")
   (rewrite "sqv_scal")
   (rewrite "sq_times")
   (case-replace "sq(eps)=1")
   (("1"
     (rewrite "dot_perpR_eq_0")
     (assert)
     (rewrite "sqv_perpR")
     (factor 1)
     (div-by 1 "sqv(ss)")
     (rewrite "alpha" :dir rl)
     (rewrite "sq_alpha_beta"))
    ("2" (hide-all-but 1) (typepred "eps") (grind))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: tangent_line
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "Q")
   (rewrite "alpha_neg")
   (rewrite "beta_neg")
   (rewrite "perpR_neg")
   (grind :exclude ("alpha" "beta" "perpR")))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: tangent_line
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "Qs")
   (expand "Q")
   (case-replace
    "alpha(ss) * ss + eps * beta(ss) * perpR(ss) - ss = (alpha(ss) - 1)*ss + (eps*beta(ss))*perpR(ss)")
   (("1"
     (hide -1)
     (rewrite "sqv_add")
     (rewrite "dot_perpR_eq_0")
     (assert)
     (rewrite "sqv_scal")
     (rewrite "sqv_scal")
     (rewrite "sqv_perpR")
     (rewrite "sq_times")
     (case-replace "sq(eps)=1")
     (("1"
       (hide -1)
       (assert)
       (rewrite "sq_minus")
       (lemma "sq_alpha_beta")
       (inst? -1)
       (move-terms -1 l 2)
       (replaces -1)
       (assert)
       (expand "alpha")
       (assert))
      ("2" (hide 2) (typepred "eps") (grind))))
    ("2" (hide 2) (grind :exclude ("alpha" "beta")))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: tangent_line
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "Qs")
   (expand "Q")
   (rewrite "dot_sub_right")
   (rewrite "dot_add_right")
   (rewrite "dot_perpR_eq_0")
   (assert)
   (rewrite "sqv" :dir rl)
   (cancel-by 1 "sqv(ss)"))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: tangent_line
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "Qs")
   (rewrite "det_sub_right")
   (expand "Q")
   (rewrite "det_add_right")
   (rewrite "det_scal_right")
   (rewrite "det_scal_right")
   (rewrite "det_perpR")
   (rewrite "perpR_perpR")
   (rewrite "dot_neg_right")
   (rewrite "sqv" :dir rl)
   (grind-reals)
   (typepred "eps")
   (hide -1)
   (expand "beta")
   (grind-reals))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: tangent_line
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "Q")
   (rewrite "det_add_left")
   (rewrite "det_scal_left")
   (assert)
   (rewrite "det_scal_left")
   (rewrite "det_asym")
   (rewrite "det_perpR")
   (rewrite "perpR_perpR")
   (rewrite "dot_neg_right")
   (rewrite "sqv" :dir rl)
   (expand "beta")
   (assert))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: tangent_line
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "Qs")
   (expand "Q")
   (rewrite "perpR_sub")
   (rewrite "perpR_add")
   (rewrite "perpR_scal")
   (rewrite "perpR_scal")
   (rewrite "perpR_perpR")
   (expand "alpha")
   (expand "beta")
   (rewrite "scal_sub_right")
   (rewrite "scal_add_right")
   (case-replace
    " (D / sqrt(sqv(ss) - sq(D))) * (D * sqrt(sqv(ss) - sq(D)) / sqv(ss)) = sq(D)/sqv(ss)")
   (("1"
     (hide -1)
     (case-replace
      "sq(D) / sqv(ss) * -eps * eps * -ss = sq(D)/sqv(ss) * ss")
     (("1"
       (hide -1)
       (name-replace "aa" "sq(D) / sqv(ss) * ss")
       (name-replace "bb" "sqrt(sqv(ss) - sq(D))" :hide? nil)
       (case-replace
        " sq(D) / sqv(ss) * (D / bb) * -eps * perpR(ss) + aa -
                      -eps * (D / bb) * perpR(ss) = aa + (eps*(D/bb*(-sq(D)/sqv(ss)+1)))*perpR(ss)")
       (("1"
         (hide -1)
         (case-replace
          "(D * bb / sqv(ss)) = (D / bb * (-sq(D) / sqv(ss) + 1))")
         (hide 2)
         (name-replace "s2" "sqv(ss)")
         (case-replace "(-sq(D) / sqv(ss) + 1) = sq(bb)/s2")
         (("1" (grind-reals))
          ("2"
           (hide 2)
           (replaces -1 :dir rl)
           (rewrite "sq_sqrt")
           (expand "s2")
           (grind-reals))))
        ("2" (hide-all-but 1) (grind))))
      ("2" (hide-all-but 1) (typepred "eps") (grind))))
    ("2" (hide-all-but 1) (grind))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: tangent_line
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "line_solution?")
   (split)
   (("1"
     (rewrite "det_s_Qs")
     (case-replace
      " R(ss) * (-eps * (beta(ss) * sqv(ss))) * eps =  R(ss) * (-beta(ss)*sqv(ss))")
     (("1"
       (hide -1)
       (lemma "beta_R")
       (inst?)
       (neg-formula 1)
       (replaces -1)
       (expand "Qs")
       (rewrite "dot_sub_right")
       (rewrite "sqv" :dir rl)
       (neg-formula 1)
       (rewrite "s_dot_Q")
       (rewrite "alpha_D"))
      ("2" (typepred "eps") (assert))))
    ("2"
     (rewrite "det_s_Qs")
     (case-replace
      "eps * (-eps * (beta(ss) * sqv(ss))) = - sq(eps) *  beta(ss) * sqv(ss)")
     (("1" (hide -1) (rewrite "sq_eps") (neg-formula 1))
      ("2" (expand "sq") (assert))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: tangent_line
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (case "parallel?(nzv,Qs(ss,eps))")
   (("1"
     (expand "parallel?")
     (skeep -1)
     (lemma "line_solution_dot_neg")
     (inst?)
     (assert)
     (replaces -2)
     (rewrite "dot_scal_right")
     (lemma "s_dot_Qs_lt_0")
     (inst?)
     (expand "dir_parallel?")
     (inst?)
     (mult-cases -2))
    ("2"
     (hide 2)
     (rewrite "parallel_det_0")
     (rewrite "det_perpL")
     (expand "Qs")
     (rewrite "dot_sub_right")
     (move-terms 1 l 2)
     (assert)
     (lemma "det_v_Q")
     (inst?)
     (inst -1 "nzv")
     (rewrite "det_perpL")
     (replaces -1)
     (lemma "beta_alpha")
     (inst?)
     (expand "line_solution?")
     (flatten)
     (name-replace "A" "alpha(ss)")
     (name-replace "B" "beta(ss)")
     (name-replace "A_1" "A-1")
     (mult-by -1 "(ss*nzv)")
     (replaces -2 :dir rl)
     (rewrite "det_asym")
     (cancel-by -1 "R(ss)*eps")
     (rewrite "det_perpL" :dir rl)
     (name-replace "DD" "det(nzv,ss)")
     (case "DD=0")
     (("1" (assert))
      ("2"
       (cancel-by -1 "DD")
       (cancel-by 4 "DD")
       (case-replace "R(ss) * B * eps * eps = R(ss)*B")
       (("1" (expand "A_1") (assert))
        ("2" (hide-all-but 1) (typepred "eps") (assert))))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: tangent_line
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (case "parallel?(nzv,eps*perpR(sp))")
   (("1"
     (expand "line_solution?")
     (flatten)
     (assert)
     (expand "parallel?")
     (skeep -1)
     (expand "dir_parallel?")
     (inst?)
     (case "nzk > 0")
     (("1" (assert))
      ("2"
       (hide 2)
       (case "eps * det(nzv,sp) >= 0")
       (("1"
         (hide -5)
         (rewrite "det_perpR")
         (replace -2 -1)
         (rewrite "dot_scal_left")
         (rewrite "sqv" :dir rl)
         (case-replace
          "eps * (nzk * (eps * sqv(perpR(sp)))) = sq(eps) * nzk * sqv(perpR(sp))")
         (("1"
           (hide -1)
           (rewrite "sq_eps")
           (assert)
           (typepred "nzk")
           (mult-cases -2)
           (lemma "sqv_eq_0")
           (inst?)
           (assert)
           (hide-all-but (-1 -4))
           (lemma "nzv_xy_neq_0")
           (inst -1 "perpR(sp)")
           (assert)
           (flatten)
           (hide -3)
           (grind))
          ("2" (hide-all-but 1) (expand "sq") (assert))))
        ("2" (hide-all-but (-4 1)) (rewrite "det_asym") (assert))))))
    ("2"
     (hide 2)
     (expand "line_solution?")
     (flatten)
     (rewrite "parallel_det_0")
     (("1" (grind))
      ("2"
       (hide-all-but (-1 1))
       (flatten)
       (lemma "nzv_xy_neq_0")
       (assert)
       (inst -1 "eps*perpR(sp)")
       (assert)
       (hide -1)
       (typepred "eps")
       (grind))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: tangent_line
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "tangent_line")
   (rewrite "sqv_neg")
   (lift-if)
   (ground)
   (("1" (grind)) ("2" (rewrite "Qs_asymm"))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: tangent_line
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "tangent_line")
   (case "sqv(sp)=sq(D)")
   (("1" (assert) (lemma "line_solution_on_D") (inst?) (assert))
    ("2" (assert) (lemma "line_solution_Qs") (inst?))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: tangent_line
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "tangent_line")
   (case "sqv(sp)=sq(D)")
   (("1" (assert) (lemma "parallel_nzv_perp") (inst?) (assert))
    ("2" (assert) (lemma "parallel_nzv_Qs") (inst?) (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: tangent_line
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (split)
   (("1"
     (flatten)
     (expand "tangent_line?")
     (skeep -1)
     (case "nnk=0")
     (("1"
       (replaces -1)
       (assert)
       (replaces -1)
       (rewrite "line_solution_zero_eps"))
      ("2"
       (lemma "line_solution_tangent_line")
       (inst?)
       (replaces -2)
       (lemma "line_solution_scal")
       (inst?)
       (("1" (assert)) ("2" (assert))))))
    ("2"
     (flatten)
     (expand "tangent_line?")
     (case "nz_vect2?(v)")
     (("1"
       (lemma "parallel_nzv_tangent_line")
       (inst?)
       (assert)
       (expand "dir_parallel?")
       (skeep -1)
       (inst 2 "pk"))
      ("2" (inst 2 "0") (assert))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: tangent_line
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (lemma "tangent_line_solution")
   (inst?)
   (assert)
   (lemma "line_solution_independence")
   (inst?)
   (assert)
   (inst? 1))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: tangent_line
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (lemma "line_solution_coordination")
   (inst - "eps" "nvi" "nvo" "sp" "vi" "vo")
   (assert)
   (lemma "tangent_line_solution")
   (inst?)
   (assert)
   (lemma "tangent_line_solution")
   (inst - "eps" "-sp" "nvi-vo")
   (assert))


proof_type: t_proof
decl_type: tcc
library: ACCoRD
theory: tangent_line
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (lemma "scal_eq_zero")
   (inst?)
   (assert)
   (hide -3)
   (lemma "nzv_xy_neq_0")
   (inst -1 "perpR(sp)")
   (assert)
   (flatten)
   (hide -3)
   (grind))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: cd2d
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (split)
   (("1"
     (flatten)
     (expand "conflict_2D?")
     (skeep -1)
     (name "tt" "t-B")
     (name "w" "s+B*v")
     (replace -1)
     (case "s+t*v = w + tt*v")
     (("1"
       (replace -1)
       (case "tt > 0 and tt <= T-B")
       (("1"
         (hide -2)
         (hide -2)
         (hide -2)
         (flatten)
         (replaces -4 :dir rl)
         (rewrite "sqv_add")
         (both-sides "-" "sqv(w)" -3)
         (assert)
         (rewrite "sqv_scal")
         (expand "sq")
         (cancel-by -3 "tt")
         (lemma "posreal_times_posreal_is_posreal")
         (inst - "tt" "sqv(v)")
         (assert))
        ("2" (assert))))
      ("2"
       (replace -1 :dir rl)
       (replace -2 :dir rl)
       (hide-all-but 1)
       (grind))))
    ("2"
     (flatten)
     (expand "conflict_2D?")
     (case-replace "v=zero")
     (("1" (assert))
      ("2"
       (replaces -2 :dir rl)
       (name "tt" "-(s*v)/sqv(v)")
       (("1"
         (case "tt > B")
         (("1"
           (case "tt < T")
           (("1"
             (inst + "tt")
             (("1"
               (lemma "quad_min_mono_dec")
               (inst - "sqv(v)" "2*(s*v)" "sqv(s)" "B" "tt")
               (assert)
               (split -1)
               (("1"
                 (expand "quadratic")
                 (rewrite "sqv_add")
                 (rewrite "sqv_add")
                 (rewrite "sqv_scal")
                 (rewrite "sqv_scal")
                 (assert))
                ("2" (lemma "sqv_eq_0") (inst?) (assert)) ("3" (assert))
                ("4" (assert))))
              ("2" (assert))))
            ("2"
             (inst 3 "T")
             (("1"
               (lemma "quad_min_mono_dec")
               (inst - "sqv(v)" "2*(s*v)" "sqv(s)" "B" "T")
               (assert)
               (split -1)
               (("1"
                 (expand "quadratic")
                 (rewrite "sqv_add")
                 (rewrite "sqv_add")
                 (rewrite "sqv_scal")
                 (rewrite "sqv_scal")
                 (assert))
                ("2" (lemma "sqv_eq_0") (inst?) (assert)) ("3" (assert))
                ("4" (assert))))
              ("2" (assert))))))
          ("2"
           (replace -1 :dir rl)
           (neg-formula 1)
           (cross-mult 1)
           (split 1)
           (("1"
             (flatten)
             (rewrite "dot_add_left")
             (expand "sqv")
             (assert))
            ("2" (flatten) (lemma "sqv_eq_0") (inst?) (assert))))))
        ("2" (lemma "sqv_eq_0") (inst?) (assert))))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: cd2d
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "tau_vv")
   (expand "tau_v2")
   (rewrite "nneg_mult_min")
   (rewrite "nneg_mult_max")
   (expand "horizontal_tca")
   (assert))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: cd2d
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "horizontal_omega")
   (expand "tau_v2")
   (case "horizontal_tca(s,nzv) <B")
   (("1"
     (expand "max")
     (assert)
     (expand "min")
     (expand "horizontal_tca")
     (lemma "quad_min_mono_inc")
     (inst -1 "sqv(nzv)" "2*s*nzv" "sqv(s)" "t" "B")
     (assert)
     (typepred "t")
     (assert)
     (expand "quadratic")
     (rewrite "sqv_add")
     (rewrite "sqv_add")
     (rewrite "sqv_scal")
     (rewrite "sqv_scal")
     (assert))
    ("2"
     (case "horizontal_tca(s,nzv) > T")
     (("1"
       (expand "max")
       (assert)
       (expand "min")
       (expand "horizontal_tca")
       (lemma "quad_min_mono_dec")
       (inst -1 "sqv(nzv)" "2*s*nzv" "sqv(s)" "t" "T")
       (assert)
       (typepred "t")
       (assert)
       (expand "quadratic")
       (rewrite "sqv_add")
       (rewrite "sqv_add")
       (rewrite "sqv_scal")
       (rewrite "sqv_scal")
       (assert))
      ("2"
       (case-replace
        "max(B,horizontal_tca(s,nzv)) = horizontal_tca(s,nzv)")
       (("1"
         (hide -1)
         (expand "min")
         (lift-if)
         (assert)
         (rewrite "horizontal_sq_dtca_eq" :dir rl)
         (rewrite "horizontal_tca_min"))
        ("2" (hide 4) (expand "max") (lift-if) (assert))))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: cd2d
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (split)
   (("1"
     (flatten)
     (expand "conflict_2D?")
     (assert)
     (skeep -1)
     (lemma "horizontal_omega_min")
     (inst -1 "nzv" "s" "t")
     (assert))
    ("2"
     (flatten)
     (expand "conflict_2D?")
     (assert)
     (expand "horizontal_omega")
     (inst?)
     (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: cd2d
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "omega_vv")
   (expand "horizontal_omega")
   (rewrite "sqv_add")
   (assert)
   (rewrite "sqv_scal")
   (rewrite "tau_vv")
   (assert)
   (rewrite "sq_times")
   (expand "sq")
   (ground))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: cd2d
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (case "on_D?(s) and B = 0")
   (("1"
     (flatten)
     (lemma "on_D_conflict")
     (inst?)
     (replace -3)
     (assert)
     (expand "omega_vv")
     (replace -1)
     (assert))
    ("2"
     (case "v=zero")
     (("1"
       (replaces -1)
       (assert)
       (expand "omega_vv")
       (assert)
       (replace 1)
       (expand "conflict_2D?")
       (assert))
      ("2"
       (assert)
       (hide -1)
       (rewrite "omega_vv")
       (lemma "horizontal_omega_conflict")
       (inst - "v" "s")
       (assert)
       (replace -1)
       (hide-all-but (1 3))
       (case "sqv(v) > 0")
       (("1"
         (ground)
         (("1" (mult-by 1 "sqv(v)") (assert))
          ("2" (mult-by -1 "sqv(v)") (assert))))
        ("2" (lemma "sqv_eq_0") (inst?) (assert))))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: cd2d
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (case "v=zero")
   (("1"
     (assert)
     (replaces -1)
     (expand "omega_vv")
     (assert)
     (expand "tau_vv")
     (assert))
    ("2"
     (rewrite "omega_vv")
     (assert)
     (split 3)
     (("1"
       (flatten)
       (mult-by 1 "sqv(v)")
       (("1" (assert)) ("2" (lemma "sqv_eq_0") (inst?) (assert))))
      ("2" (flatten) (mult-by -1 "sqv(v)") (assert))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: cd2d
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep :preds? t)
   (expand "omega_half")
   (expand "max")
   (lift-if)
   (split -)
   (("1"
     (flatten)
     (rewrite "sqv_add")
     (rewrite "sqv_scal")
     (sq-simp)
     (expand "sq" -2)
     (real-props)
     (case-replace
      "sqv(nzv) * (ss * nzv) * (ss * nzv) / (sqv(nzv) * sqv(nzv)) = ((ss * nzv) * (ss * nzv)) / sqv(nzv)")
     (("1"
       (hide -1)
       (move-terms -2 l 1)
       (case-replace
        "((ss * nzv) * (ss * nzv)) / sqv(nzv) - (2 * ((ss * nzv) * (ss * nzv))) / sqv(nzv) = -((ss * nzv) * (ss * nzv)) / sqv(nzv)")
       (("1"
         (hide -1)
         (neg-formula -2)
         (expand "line_solution?")
         (case "sq(R(ss) * det(ss, nzv)) = sq(ss*nzv)")
         (("1"
           (lemma "sq_eq_sign")
           (inst -1 "ss * nzv" "R(ss) * det(ss, nzv)")
           (assert)
           (skeep -1)
           (inst + "eps")
           (assert)
           (replaces -1)
           (cancel-by -3 "R(ss)"))
          ("2"
           (rewrite "sq" :dir rl)
           (rewrite "sq" :dir rl)
           (expand "R")
           (sq-simp)
           (rewrite "sq_det")
           (cross-mult -1)
           (field 1))))
        ("2" (hide-all-but 1) (grind-reals))))
      ("2" (hide-all-but 1) (grind-reals))))
    ("2" (flatten) (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: cd2d
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (name-replace "cd" "detection_2D(s,v)" :hide? nil)
   (skoletin 1)
   (expand "detection_2D")
   (lift-if)
   (split -3)
   (("1" (flatten) (replaces -3 :dir rl) (assert) (replaces -1) (assert))
    ("2"
     (flatten)
     (split -1)
     (("1"
       (flatten)
       (replaces -2 :dir rl)
       (assert)
       (replaces (-4 -5))
       (rewrite "min_lt")
       (rewrite "max_lt")
       (swap-rel -3)
       (rewrite "max_gt")
       (rewrite "min_gt")
       (lemma "horizontal_los_inside_Theta")
       (inst?)
       (assert))
      ("2" (flatten) (replaces -1 :dir rl) (assert))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: cd2d
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (name-replace "cd" "detection_2D(s,v)" :hide? nil)
   (skoletin 1)
   (flatten)
   (expand "detection_2D")
   (lift-if)
   (split -4)
   (("1" (flatten) (replaces -3 :dir rl) (assert))
    ("2"
     (flatten)
     (split -1)
     (("1"
       (flatten)
       (replaces -2 :dir rl)
       (assert)
       (replaces (-3 -4))
       (lemma "horizontal_los_inside_Theta")
       (inst?)
       (("1"
         (assert)
         (flatten)
         (rewrite "min_le")
         (rewrite "max_le")
         (rewrite "lt_max")
         (rewrite "le_max")
         (rewrite "le_min")
         (rewrite "min_lt")
         (rewrite "max_lt")
         (rewrite "lt_min")
         (rewrite "lt_min")
         (assert))
        ("2" (assert) (flatten) (hide 2) (replaces -1) (assert))))
      ("2"
       (flatten)
       (lemma "Delta_gt_0")
       (inst?)
       (assert)
       (split 1)
       (("1" (ground))
        ("2" (expand "horizontal_conflict_ever?") (inst?))))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: cd2d
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (name-replace "cd" "detection_2D(s,v)" :hide? nil)
   (skoletin 1)
   (split)
   (("1"
     (flatten)
     (lemma "detection_2D_complete")
     (expand "conflict_2D?")
     (skeep -2)
     (inst -1 "s" "t" "v")
     (replaces -5)
     (beta)
     (assert))
    ("2"
     (flatten)
     (lemma "detection_2D_correct")
     (inst - "s" "(tin+tout)/2" "v")
     (("1"
       (replaces -5)
       (beta)
       (split)
       (("1"
         (expand "conflict_2D?")
         (inst 1 "(tin+tout)/2")
         (grind-reals))
        ("2" (replaces -3 :dir rl) (grind-reals)) ("3" (grind-reals))))
      ("2" (grind-reals))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: cd2d
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "cd2d?")
   (case "sqv(s+B*v) < sq(D)")
   (("1"
     (assert)
     (expand "conflict_2D?")
     (inst + "B")
     (lemma "B_lt_T")
     (assert))
    ("2"
     (assert)
     (lemma "omega_vv_conflict")
     (inst - "s" "v")
     (split -1)
     (("1" (replace -1) (assert))
      ("2" (flatten) (replace -2) (assert))))))


proof_type: j_proof
decl_type: tcc
library: ACCoRD
theory: cd2d
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "tau_vv")
   (rewrite "min_cont_vr")
   (("1" (rewrite "mult_cont_vr") (rewrite "const_cont_vr"))
    ("2"
     (rewrite "max_cont_vr")
     (("1"
       (rewrite "neg_cont_vr")
       (rewrite "dot_cont_vr")
       (("1" (rewrite "id_cont_vv")) ("2" (rewrite "const_cont_vv"))))
      ("2" (rewrite "mult_cont_vr") (rewrite "const_cont_vr"))))))


proof_type: j_proof
decl_type: tcc
library: ACCoRD
theory: cd2d
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
script:
  (""
   (skeep)
   (expand "omega_vv")
   (case "sqv(s) = sq(D) AND B = 0")
   (("1"
     (flatten)
     (assert)
     (rewrite "dot_cont_vr")
     (("1" (rewrite "id_cont_vv")) ("2" (rewrite "const_cont_vv"))))
    ("2"
     (replace 1)
     (rewrite "sub_cont_vr")
     (("1" (rewrite "mult_cont_vr") (rewrite "const_cont_vr"))
      ("2"
       (rewrite "add_cont_vr")
       (("1" (rewrite "mult_cont_vr") (rewrite "const_cont_vr"))
        ("2"
         (rewrite "add_cont_vr")
         (("1"
           (rewrite "mult_cont_vr")
           (("1"
             (rewrite "mult_cont_vr")
             (("1"
               (rewrite "dot_cont_vr")
               (("1" (rewrite "id_cont_vv"))
                ("2" (rewrite "const_cont_vv"))))
              ("2"
               (case-replace "(LAMBDA (v): tau_vv(s)(v)) = tau_vv(s)")
               (("1" (assert)) ("2" (decompose-equality))))))
            ("2" (rewrite "const_cont_vr"))))
          ("2"
           (rewrite "sq_cont_vr")
           (case-replace "(LAMBDA (v): tau_vv(s)(v)) = tau_vv(s)")
           (("1" (assert)) ("2" (decompose-equality))))))))))))


proof_type: t_proof
decl_type: tcc
library: ACCoRD
theory: cd2d
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (lemma "B_lt_T")
   (skeep)
   (skeep 2)
   (skeep 2)
   (hide -2)
   (hide -2)
   (hide -2)
   (hide 1)
   (grind))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: omega_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "horiz_dist_scaf")
   (case "NOT (LAMBDA (t: real, v): sqv(s!1 + t * v) - sq(D)) = ((LAMBDA (t: real, v): sqv(s!1))+((LAMBDA (t: real, v): 2)*((LAMBDA (t: real, v): t)*(LAMBDA (t: real, v): s!1*v)))+((LAMBDA (t: real, v): sq(t))*(LAMBDA (t: real, v): sqv(v))))-(LAMBDA (t: real, v): sq(D))")
   (("1"
     (hide 2)
     (expand "+")
     (expand "-")
     (expand "*")
     (decompose-equality)
     (grind))
    ("2"
     (replace -1)
     (hide -1)
     (rewrite "diff_continuous[[real,Vect2],d]")
     (("1"
       (hide 2)
       (rewrite "sum_continuous[[real,Vect2],d]")
       (("1"
         (hide 2)
         (rewrite "sum_continuous[[real,Vect2],d]")
         (("1"
           (hide 2)
           (expand "continuous?")
           (skeep)
           (expand "continuous_at?")
           (skosimp*)
           (inst + "1")
           (skeep)
           (expand "member")
           (expand "ball")
           (expand "real_dist")
           (assert))
          ("2"
           (hide 2)
           (rewrite "prod_continuous[[real,Vect2],d]")
           (("1"
             (hide 2)
             (expand "continuous?")
             (skosimp*)
             (expand "continuous_at?")
             (skosimp*)
             (inst + "1")
             (skeep)
             (expand "member")
             (expand "ball")
             (expand "real_dist")
             (assert))
            ("2"
             (hide 2)
             (rewrite "prod_continuous[[real,Vect2],d]")
             (("1"
               (hide 2)
               (expand "continuous?")
               (skosimp*)
               (expand "continuous_at?")
               (skosimp*)
               (inst + "epsilon!1")
               (skosimp*)
               (expand "member")
               (expand "ball")
               (expand "real_dist")
               (expand "d")
               (expand "real_dist")
               (assert))
              ("2"
               (hide 2)
               (expand "continuous?")
               (skosimp*)
               (lemma "dot_cont_vr")
               (inst - "(LAMBDA (v): s!1)" "(LAMBDA (v): v)")
               (("1"
                 (expand "continuous_vr?")
                 (expand "continuous_at?")
                 (expand "continuous_vr?")
                 (inst - "x!1`2")
                 (skosimp*)
                 (inst - "epsilon!1")
                 (skosimp*)
                 (inst + "delta!1")
                 (skosimp*)
                 (inst - "y!1`2")
                 (expand "member")
                 (expand "ball")
                 (expand "real_dist")
                 (lemma "abs_neg")
                 (inst?)
                 (assert)
                 (expand "d")
                 (expand "dist")
                 (lemma "sq_dist_norm")
                 (inst?)
                 (lemma "sqrt_eq")
                 (inst?)
                 (assert)
                 (case "norm(x!1`2 - y!1`2) = norm(y!1`2 - x!1`2)")
                 (("1" (assert)) ("2" (hide-all-but 1) (grind))))
                ("2" (rewrite "id_cont_vv_fun"))
                ("3"
                 (lemma "const_cont_vv_fun")
                 (inst - "s!1")
                 (expand "const_fun")
                 (propax))))))))))
        ("2"
         (hide 2)
         (rewrite "prod_continuous[[real,Vect2],d]")
         (("1"
           (hide 2)
           (case "NOT (LAMBDA (t: real, v): sq(t)) = (LAMBDA (t: real, v): t)*(LAMBDA (t: real, v): t)")
           (("1" (hide 2) (expand "*") (expand "sq") (propax))
            ("2"
             (replace -1)
             (hide -1)
             (rewrite "prod_continuous[[real,Vect2],d]")
             (("1" (hide 2) (grind)) ("2" (hide 2) (grind))))))
          ("2"
           (hide 2)
           (lemma "sqv_cont_vr")
           (inst - "(LAMBDA (v): v)")
           (("1"
             (expand "continuous?")
             (expand "continuous_vr?")
             (skosimp*)
             (inst - "x!1`2")
             (expand "continuous_vr?")
             (expand "continuous_at?")
             (skosimp*)
             (inst - "epsilon!1")
             (skosimp*)
             (inst + "delta!1")
             (skosimp*)
             (inst - "y!1`2")
             (assert)
             (expand "ball")
             (expand "real_dist")
             (lemma "abs_neg")
             (inst?)
             (assert)
             (expand "d")
             (expand "dist")
             (lemma "sq_dist_norm")
             (inst?)
             (lemma "sqrt_eq")
             (inst?)
             (assert)
             (case "norm(x!1`2 - y!1`2) = norm(y!1`2 - x!1`2)")
             (("1" (assert)) ("2" (hide-all-but 1) (grind))))
            ("2" (rewrite "id_cont_vv"))))))))
      ("2" (hide 2) (grind))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: omega_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (split)
   (("1"
     (flatten)
     (expand "conflict_2D?")
     (skosimp*)
     (lemma "horiz_dist_cont_scaf")
     (inst - "s")
     (expand "continuous?")
     (inst - "(t!1,v)")
     (("1"
       (expand "continuous_at?")
       (inst - "sq(D) - sqv(s+t!1*v)")
       (("1"
         (skosimp*)
         (expand "member")
         (expand "ball")
         (expand "real_dist")
         (expand "horiz_dist_scaf")
         (expand "d")
         (expand "real_dist")
         (case "t!1 = B")
         (("1"
           (replace -1)
           (hide -1)
           (name "newt" "min(B+delta!1/2,(B+T)/2)")
           (case "B < newt AND newt < T")
           (("1"
             (flatten)
             (inst -4 "(newt,v)")
             (("1"
               (assert)
               (split -4)
               (("1" (inst + "newt") (assert))
                ("2" (replace -3 :dir rl) (hide-all-but 1) (grind))))
              ("2"
               (expand "extend")
               (assert)
               (expand "fullset")
               (propax))))
            ("2" (replace -1 :dir rl) (hide-all-but 1) (grind))))
          ("2"
           (case "t!1 = T")
           (("1"
             (replace -1)
             (hide -1)
             (name "newt" "max(T-delta!1/2,(B+T)/2)")
             (case "B < newt AND newt < T")
             (("1"
               (flatten)
               (inst -4 "(newt,v)")
               (("1"
                 (assert)
                 (split -4)
                 (("1" (inst + "newt") (assert))
                  ("2"
                   (replace -3 :dir rl)
                   (expand "abs")
                   (typepred "max(T - delta!1 / 2, (B + T) / 2)")
                   (name "AA" "max(T - delta!1 / 2, (B + T) / 2)")
                   (replace -1)
                   (assert))))
                ("2"
                 (expand "extend")
                 (assert)
                 (expand "fullset")
                 (propax))))
              ("2" (replace -1 :dir rl) (hide-all-but 1) (grind))))
            ("2" (inst + "t!1") (assert))))))
        ("2" (assert))))
      ("2" (expand "extend") (expand "fullset") (propax))))
    ("2"
     (flatten)
     (skosimp*)
     (expand "conflict_2D?")
     (inst + "topen!1"))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: omega_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (name "ep" "M - horiz_dist_scaf(s)(t,v)")
   (lemma "horiz_dist_cont_scaf")
   (inst - "s")
   (expand "continuous?")
   (inst - "(t,v)")
   (("1"
     (expand "continuous_at?")
     (inst - "ep")
     (("1"
       (skeep -1)
       (inst + "delta")
       (skeep)
       (inst - "(t1,v)")
       (("1"
         (expand "member")
         (expand "ball")
         (expand "d")
         (expand "real_dist")
         (assert)
         (prop)
         (("1"
           (name "A1" "horiz_dist_scaf(s)(t,v)")
           (replace -1)
           (name "B2" "horiz_dist_scaf(s)(t1,v)")
           (replace -1)
           (hide -1)
           (hide -1)
           (grind))
          ("2" (hide-all-but (-3 1)) (grind))))
        ("2" (expand "extend") (expand "fullset") (propax))))
      ("2" (assert))))
    ("2" (expand "extend") (expand "fullset") (propax))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: omega_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "bounded_below?")
   (inst + "-sq(D)")
   (skeep)
   (expand "horiz_dist_scaf")
   (assert))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: omega_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (lemma "curried_min_exists_2D")
   (inst -
    "(LAMBDA (t: real, v: Vect2): IF (B<= t AND t <= T) THEN horiz_dist_scaf(s!1)(t,v) ELSE 0 ENDIF)"
    "B" "T")
   (("1"
     (ground)
     (("1"
       (inst - "v!1")
       (ground)
       (hide-all-but (-4 1))
       (expand "nonempty?")
       (expand "empty?")
       (expand "member")
       (skosimp*)
       (inst -2 "tmin!1")
       (("1"
         (typepred "tmin!1")
         (assert)
         (expand "omega_2D")
         (expand "inf")
         (lemma "glb_lem")
         (inst -1
          "Im(LAMBDA (t: Lookahead): horiz_dist_scaf(s!1)(t, v!1))"
          "horiz_dist_scaf(s!1)(tmin!1, v!1)")
         (assert)
         (expand "greatest_lower_bound?")
         (hide 2)
         (split 1)
         (("1"
           (expand "lower_bound?")
           (skosimp*)
           (typepred "s!2")
           (expand "Im" -)
           (skosimp*)
           (inst - "x!1")
           (assert))
          ("2"
           (skosimp*)
           (expand "lower_bound?")
           (inst - "horiz_dist_scaf(s!1)(tmin!1, v!1)")
           (expand "Im")
           (inst + "tmin!1"))))
        ("2" (typepred "tmin!1") (assert))))
      ("2"
       (hide 2)
       (lemma "horiz_dist_cont_scaf")
       (inst - "s!1")
       (expand "continuous?")
       (skosimp*)
       (inst - "x!1")
       (("1"
         (expand "continuous_at?")
         (skosimp*)
         (inst - "epsilon!1")
         (skosimp*)
         (inst + "delta!1")
         (skosimp*)
         (inst - "y!1")
         (("1"
           (assert)
           (typepred "y!1")
           (expand "extend")
           (split -1)
           (("1"
             (flatten)
             (assert)
             (expand "ball")
             (expand "real_dist")
             (typepred "x!1")
             (expand "extend")
             (split -1)
             (("1"
               (flatten)
               (assert)
               (expand "horiz_dist_scaf")
               (propax))
              ("2" (propax))))
            ("2" (propax))))
          ("2"
           (hide-all-but 1)
           (typepred "y!1")
           (expand "extend")
           (ground)
           (expand "fullset")
           (propax))))
        ("2"
         (hide-all-but 1)
         (typepred "x!1")
         (expand "extend")
         (ground)
         (expand "fullset")
         (propax))))))
    ("2" (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: omega_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (name "ttau" "tau_2D(s,v)")
   (replace -1)
   (expand "tau_2D")
   (typepred
    "choose({t: Lookahead | horiz_dist_scaf(s)(t, v) = omega_2D(s)(v)})")
   (("1" (replace -5) (propax))
    ("2" (lemma "tau_2D_nonempty") (inst - "s" "v"))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: omega_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (lemma "min_def")
   (inst -
    "{r: real |
                        EXISTS (t: Lookahead):
                          horiz_dist_scaf(s)(t, v) = r}"
    "omega_2D(s)(v)")
   (("1"
     (assert)
     (hide 2)
     (expand "minimum?")
     (split)
     (("1"
       (lemma "tau_2D_nonempty")
       (inst?)
       (expand "nonempty?")
       (expand "empty?")
       (expand "member")
       (skosimp*)
       (inst + "x!1"))
      ("2"
       (expand "lower_bound")
       (skeep)
       (typepred "z")
       (skeep -1)
       (replace -1 :dir rl)
       (hide -1)
       (expand "omega_2D")
       (expand "inf")
       (lemma "glb_is_bound")
       (inst?)
       (hide 2)
       (expand "Im")
       (inst + "t"))))
    ("2"
     (hide 2)
     (lemma "curried_min_exists_2D")
     (inst - "(LAMBDA (t: real, v: Vect2): horiz_dist_scaf(s)(t,v))" "B"
      "T")
     (("1"
       (split -1)
       (("1"
         (inst - "v")
         (flatten)
         (split 1)
         (("1"
           (hide-all-but (-1 1))
           (expand "nonempty?")
           (expand "empty?")
           (skosimp*)
           (inst - "x!1")
           (expand "member")
           (skosimp*)
           (inst + "t!1")
           (("1" (assert)) ("2" (typepred "t!1") (assert))))
          ("2"
           (hide-all-but (-2 1))
           (expand "below_bounded")
           (skosimp*)
           (inst + "n!1")
           (expand "lower_bound")
           (skosimp*)
           (inst - "z!1")
           (typepred "z!1")
           (skosimp*)
           (inst + "t!1")
           (assert))
          ("3"
           (hide-all-but (-3 1))
           (expand "ext")
           (skosimp*)
           (inst + "t!1")
           (("1"
             (case "{r: real |
                                                  EXISTS (t_1: (LAMBDA (x: real): B <= x AND x <= T)):
                                                    r = horiz_dist_scaf(s)(t_1, v)} = {r: real |
                                                   EXISTS (t: Lookahead):
                                                     horiz_dist_scaf[D](s)(t, v) = r}")
             (("1" (assert))
              ("2"
               (hide-all-but 1)
               (decompose-equality)
               (iff)
               (ground)
               (("1"
                 (skosimp*)
                 (inst + "t!2")
                 (("1" (assert)) ("2" (typepred "t!2") (assert))))
                ("2" (skosimp*) (inst + "t!2") (assert))))))
            ("2" (typepred "t!1") (assert))))))
        ("2"
         (hide 2)
         (lemma "horiz_dist_cont_scaf")
         (inst - "s")
         (expand "continuous?")
         (skosimp*)
         (inst - "x!1")
         (("1"
           (expand "continuous_at?")
           (skosimp*)
           (inst - "epsilon!1")
           (skosimp*)
           (inst + "delta!1")
           (skosimp*)
           (inst - "y!1")
           (("1" (assert) (expand "horiz_dist_scaf") (propax))
            ("2"
             (hide-all-but 1)
             (typepred "y!1")
             (expand "extend")
             (ground)
             (expand "fullset")
             (propax))))
          ("2"
           (hide-all-but 1)
           (typepred "x!1")
           (expand "extend")
           (ground)
           (expand "fullset")
           (propax))))))
      ("2" (assert))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: omega_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (lemma "tau_2D_def")
   (inst?)
   (replace -1)
   (hide -1)
   (rewrite "omega_2D_min_rew")
   (lemma "min_def")
   (inst -
    "{r: real | EXISTS (t: Lookahead): horiz_dist_scaf(s)(t, v) = r}"
    "omega_2D(s)(v)")
   (("1"
     (flatten)
     (hide -2)
     (split -1)
     (("1"
       (expand "minimum?")
       (flatten)
       (expand "lower_bound")
       (inst - "horiz_dist_scaf(s)(t,v)")
       (("1" (rewrite "omega_2D_min_rew")) ("2" (inst + "t"))))
      ("2" (rewrite "omega_2D_min_rew"))))
    ("2"
     (hide 2)
     (split)
     (("1"
       (expand "nonempty?")
       (expand "empty?")
       (inst - "horiz_dist_scaf(s)(T,v)")
       (expand "member")
       (inst?))
      ("2"
       (expand "below_bounded")
       (inst + "-sq(D)")
       (expand "lower_bound")
       (skosimp*)
       (typepred "z!1")
       (skosimp*)
       (expand "horiz_dist_scaf")
       (assert))
      ("3"
       (expand "ext")
       (lemma "tau_2D_def")
       (inst - "s" "v")
       (inst + "tau_2D(s,v)")
       (lemma "inf_def")
       (inst -
        "{r: real |
                             EXISTS (t: Lookahead):
                               horiz_dist_scaf[D](s)(t, v) = r}"
        "horiz_dist_scaf[D](s)(tau_2D(s, v), v)")
       (("1"
         (assert)
         (hide 2)
         (expand "greatest_lower_bound")
         (split)
         (("1"
           (expand "lower_bound")
           (skosimp*)
           (typepred "z!1")
           (skosimp*)
           (expand "omega_2D")
           (replace -2)
           (replace -1 :dir rl)
           (expand "inf")
           (lemma "glb_is_bound")
           (inst?)
           (hide 2)
           (expand "Im")
           (inst + "t!1"))
          ("2"
           (skosimp*)
           (expand "lower_bound")
           (inst - "horiz_dist_scaf(s)(tau_2D(s,v),v)")
           (inst + "tau_2D(s,v)"))))
        ("2"
         (hide 2)
         (split)
         (("1"
           (expand "nonempty?")
           (expand "empty?")
           (expand "member")
           (inst - "horiz_dist_scaf(s)(tau_2D(s,v),v)")
           (inst + "tau_2D(s,v)"))
          ("2"
           (expand "below_bounded")
           (inst + "-sq(D)")
           (expand "lower_bound")
           (skosimp*)
           (typepred "z!1")
           (skosimp*)
           (expand "horiz_dist_scaf")
           (assert))))))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: omega_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skosimp*)
   (lemma "curried_min_is_cont_2D")
   (inst -
    "(LAMBDA (t: real, v: Vect2): IF (B <= t AND t <= T) THEN horiz_dist_scaf(s!1)(t,v) ELSE 0 ENDIF)"
    "B" "T")
   (("1"
     (ground)
     (("1"
       (expand "continuous?")
       (expand "continuous?")
       (expand "continuous_at?")
       (skosimp*)
       (inst - "x!1")
       (inst - "epsilon!1")
       (skosimp*)
       (inst + "delta!1")
       (skosimp*)
       (inst - "y!1")
       (expand "member")
       (expand "ball")
       (lemma "omega_2D_min_rew")
       (inst-cp - "s!1" "x!1")
       (inst - "s!1" "y!1")
       (assert)
       (case "{r: real |
                           EXISTS (t: Lookahead): horiz_dist_scaf(s!1)(t, y!1) = r} = {r: real |
                                    EXISTS (t_1: (LAMBDA (x: real): B <= x AND x <= T)):
                                      r = horiz_dist_scaf(s!1)(t_1, y!1)} AND {r: real |
                           EXISTS (t: Lookahead): horiz_dist_scaf(s!1)(t, x!1) = r} = {r: real |
                                    EXISTS (t_1: (LAMBDA (x: real): B <= x AND x <= T)):
                                      r = horiz_dist_scaf(s!1)(t_1, x!1)}")
       (("1" (flatten) (assert))
        ("2"
         (hide-all-but 1)
         (split)
         (("1"
           (decompose-equality)
           (iff)
           (ground)
           (("1" (skosimp*) (inst + "t!1") (assert))
            ("2"
             (skosimp*)
             (inst + "t!1")
             (("1" (assert)) ("2" (typepred "t!1") (assert))))))
          ("2"
           (decompose-equality)
           (iff)
           (ground)
           (("1" (skosimp*) (inst + "t!1") (assert))
            ("2"
             (skosimp*)
             (inst + "t!1")
             (("1" (assert)) ("2" (typepred "t!1") (assert))))))))))
      ("2"
       (hide 2)
       (lemma "horiz_dist_cont_scaf")
       (inst - "s!1")
       (expand "continuous?")
       (skosimp*)
       (inst - "x!1")
       (("1"
         (expand "continuous_at?")
         (skosimp*)
         (inst - "epsilon!1")
         (skosimp*)
         (inst + "delta!1")
         (skosimp*)
         (inst - "y!1")
         (("1"
           (expand "member")
           (expand "ball")
           (typepred "y!1")
           (expand "extend")
           (ground -1)
           (typepred "x!1")
           (expand "extend")
           (ground -1)
           (expand "horiz_dist_scaf")
           (propax))
          ("2"
           (hide-all-but 1)
           (typepred "y!1")
           (expand "extend")
           (ground)
           (expand "fullset")
           (propax))))
        ("2"
         (hide 2)
         (typepred "x!1")
         (expand "extend")
         (ground)
         (expand "fullset")
         (propax))))))
    ("2" (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: omega_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (lemma "horiz_dist_strictly_convex_scaf")
   (inst - "s" "v")
   (assert)
   (lemma "strictly_convex_btw_pt_lt")
   (case "tau_2D(s,v) < t")
   (("1"
     (inst - "tau_2D(s,v)" "t" "horiz_dist_scaf(s)(tau_2D(s,v),v)"
      "LAMBDA (ttt): horiz_dist_scaf(s)(ttt, v)"
      "(1/2)*tau_2D(s,v) + (1/2)*t")
     (assert)
     (lemma "tau_2D_min")
     (inst - "s" "(1 / 2) * tau_2D(s, v) + (1 / 2) * t" "v")
     (assert))
    ("2"
     (inst - "t" "tau_2D(s,v)" "horiz_dist_scaf(s)(tau_2D(s,v),v)"
      "LAMBDA (ttt): horiz_dist_scaf(s)(ttt, v)"
      "(1/2)*tau_2D(s,v) + (1/2)*t")
     (assert)
     (lemma "tau_2D_min")
     (inst - "s" "(1 / 2) * tau_2D(s, v) + (1 / 2) * t" "v")
     (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: omega_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (lemma "tau_2D_unique")
   (inst - "s" "t" "v")
   (assert)
   (split -1)
   (("1" (skeep) (assert))
    ("2" (flatten) (replace -1) (expand "horiz_dist_scaf") (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: omega_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (lemma "horizontal_omega_min")
   (inst - "v" "s" "tau_2D(s,v)")
   (lemma "tau_2D_min")
   (expand "horizontal_omega")
   (expand "horiz_dist_scaf")
   (inst - "s" "tau_v2(s,v)" "v")
   (lemma "tau_2D_unique")
   (inst?)
   (expand "horiz_dist_scaf")
   (assert))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: omega_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (lemma "tau_2D_v2")
   (inst - "s" "v")
   (expand "horizontal_omega")
   (lemma "tau_2D_def")
   (inst?)
   (expand "horiz_dist_scaf")
   (assert))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: omega_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (ground)
   (("1"
     (expand "conflict_2D?")
     (inst + "tau_2D(s,v)")
     (lemma "tau_2D_def")
     (inst?)
     (expand "horiz_dist_scaf")
     (assert))
    ("2"
     (expand "conflict_2D?")
     (skosimp*)
     (lemma "tau_2D_def")
     (inst?)
     (lemma "tau_2D_min")
     (inst - "s" "t!1" "v")
     (expand "horiz_dist_scaf")
     (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: omega_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (expand "circle_solution_2D?")
   (assert)
   (case "v = zero")
   (("1" (replace -1) (assert))
    ("2"
     (case "B >= -(s * v)/sqv(v)")
     (("1"
       (lemma "dot_add_left")
       (inst - "v" "s" "B*v")
       (replace -1)
       (hide -1)
       (neg-formula -1)
       (cross-mult -1)
       (split -1)
       (("1" (flatten) (hide-all-but (-2 2)) (grind))
        ("2" (flatten) (lemma "sqv_eq_0") (inst?) (assert))))
      ("2"
       (lemma "quad_min_mono_dec")
       (inst - "sqv(v)" "2*(s*v)" "sqv(s)" "B" "min(-(s*v)/sqv(v),T)")
       (assert)
       (split -1)
       (("1"
         (name "mymin" "min(-(s * v) / sqv(v), T)")
         (replace -1)
         (lemma "tau_2D_min")
         (inst - "s" "mymin" "v")
         (("1"
           (case "tau_2D(s,v) = B")
           (("1"
             (replace -1)
             (expand "quadratic")
             (expand "horiz_dist_scaf")
             (rewrite "sqv_add")
             (rewrite "sqv_add")
             (rewrite "sqv_scal")
             (rewrite "sqv_scal")
             (assert))
            ("2"
             (lemma "tau_2D_def")
             (inst - "s" "v")
             (expand "horiz_dist_scaf")
             (lemma "tau_2D_unique")
             (inst - "s" "B" "v")
             (assert)
             (expand "horiz_dist_scaf")
             (assert))))
          ("2" (expand "min") (lift-if) (ground))))
        ("2" (lemma "sqv_eq_0") (inst?) (assert))
        ("3" (expand "min") (lift-if) (ground))
        ("4" (expand "min") (lift-if) (ground))))
      ("3" (lemma "sqv_eq_0") (inst?) (assert))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: omega_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
script:
  (""
   (skeep)
   (case "not sqv(s) >= sq(D)")
   (("1"
     (lemma "tau_2D_def")
     (inst?)
     (replace -2)
     (expand "horiz_dist_scaf")
     (case "tau_2D(s,v) > B")
     (("1"
       (lemma "strictly_convex_btw_pt_lt")
       (lemma "horiz_dist_strictly_convex_scaf")
       (inst -2 "0" "tau_2D(s,v)" "0"
        "LAMBDA (trt:real): horiz_dist_scaf(s)(trt, v)" "B")
       (inst - "s" "v")
       (assert)
       (hide -1)
       (case "B = 0")
       (("1"
         (replace -1)
         (lemma "tau_2D_min")
         (inst - "s" "B" "v")
         (expand "horiz_dist_scaf")
         (replace -2)
         (assert))
        ("2"
         (assert)
         (expand "horiz_dist_scaf")
         (assert)
         (lemma "tau_2D_min")
         (inst - "s" "B" "v")
         (expand "horiz_dist_scaf")
         (assert))))
      ("2" (assert))))
    ("2"
     (assert)
     (lemma "line_solution_rewrite")
     (inst?)
     (replace -1)
     (hide -1)
     (lemma "tau_2D_def")
     (inst?)
     (inst + "tau_2D(s,v)")
     (expand "horiz_dist_scaf")
     (assert)
     (lemma "tau_2D_v2")
     (inst?)
     (assert)
     (expand "tau_v2")
     (expand "min")
     (expand "max")
     (lift-if)
     (lift-if)
     (ground)
     (("1"
       (expand "horizontal_tca")
       (real-props)
       (lemma "dot_add_left")
       (inst - "v" "s" "T*v")
       (expand "circle_solution_2D?")
       (replace -1)
       (neg-formula -2)
       (cross-mult -2)
       (split -2)
       (("1" (flatten) (hide-all-but (-2 4)) (grind))
        ("2" (flatten) (lemma "sqv_eq_0") (inst?) (assert))))
      ("2"
       (expand "horizontal_tca")
       (replace -1)
       (expand "sqv")
       (rewrite "dot_add_left")
       (rewrite "dot_add_left")
       (rewrite "dot_add_left")
       (assert))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: omega_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (case "v = zero")
   (("1" (replace -1) (expand "Delta") (assert) (expand "det") (assert))
    ("2"
     (lemma "Delta_ge_0_2")
     (inst - "v" "s")
     (("1"
       (assert)
       (inst + "tau_2D(s,v)")
       (lemma "tau_2D_def")
       (inst?)
       (expand "horiz_dist_scaf")
       (assert))
      ("2" (assert))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: omega_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (lemma "Theta_D_lt")
   (inst?)
   (lemma "omega_2D_Delta")
   (inst?)
   (assert)
   (expand "line_solution?")
   (lemma "Delta_zero_eps_line_equality")
   (inst - "v" "s")
   (assert)
   (case "v = zero")
   (("1" (replace -1) (assert))
    ("2"
     (split -1)
     (("1" (propax))
      ("2"
       (lemma "dot_nneg_divergent")
       (inst - "v" "s")
       (assert)
       (expand "divergent?")
       (inst - "tau_2D(s,v)")
       (("1"
         (assert)
         (expand "dist")
         (lemma "sq_lt")
         (inst?)
         (assert)
         (rewrite "sq_dist_norm")
         (rewrite "sq_dist_norm")
         (rewrite "sqrt_sqv_norm" :dir rl)
         (rewrite "sqrt_sqv_norm" :dir rl)
         (rewrite "sq_sqrt")
         (rewrite "sq_sqrt")
         (lemma "tau_2D_def")
         (inst?)
         (expand "horiz_dist_scaf")
         (assert))
        ("2"
         (lemma "tau_2D_def")
         (inst?)
         (expand "horiz_dist_scaf")
         (case "tau_2D(s,v) = 0")
         (("1" (replace -1) (assert)) ("2" (assert))))))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: omega_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (lemma "circle_hit_solution")
   (inst?)
   (assert)
   (split -1)
   (("1" (propax))
    ("2"
     (replace -1)
     (lemma "tau_2D_def")
     (inst - "s" "v")
     (replace -2)
     (expand "horiz_dist_scaf")
     (assert)
     (lemma "line_solution_zero")
     (inst - "s"))
    ("3" (lemma "lower_circle_hit_solution") (inst - "s" "v") (assert))))


proof_type: t_proof
decl_type: tcc
library: ACCoRD
theory: omega_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "bounded_below?")
   (inst + "-sq(D)")
   (skeep)
   (expand "horiz_dist_scaf")
   (assert))


proof_type: t_proof
decl_type: tcc
library: ACCoRD
theory: omega_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (split)
   (("1"
     (expand "nonempty?")
     (expand "empty?")
     (expand "member")
     (inst - "horiz_dist_scaf(s)(B,v)")
     (inst + "B")
     (assert))
    ("2"
     (expand "below_bounded")
     (inst + "-sq(D)")
     (expand "lower_bound")
     (skosimp*)
     (typepred "z!1")
     (skosimp*)
     (expand "horiz_dist_scaf")
     (assert))
    ("3"
     (expand "ext")
     (lemma "tau_2D_nonempty")
     (inst - "s" "v")
     (expand "nonempty?")
     (expand "empty?")
     (expand "member")
     (skosimp*)
     (inst + "x!1")
     (replace -1)
     (hide -1)
     (lemma "inf_def")
     (inst?)
     (("1"
       (inst - "omega_2D(s)(v)")
       (assert)
       (hide 2)
       (expand "greatest_lower_bound")
       (split)
       (("1"
         (expand "lower_bound")
         (skosimp*)
         (typepred "z!1")
         (skosimp*)
         (replace -1 :dir rl)
         (hide -1)
         (expand "omega_2D")
         (expand "inf")
         (lemma "glb_is_bound")
         (inst?)
         (hide 2)
         (expand "Im")
         (inst + "t!1"))
        ("2"
         (skosimp*)
         (expand "lower_bound")
         (inst?)
         (inst + "tau_2D(s,v)")
         (lemma "tau_2D_def")
         (inst?))))
      ("2"
       (hide 2)
       (split)
       (("1"
         (expand "nonempty?")
         (expand "empty?")
         (expand "member")
         (inst - "horiz_dist_scaf(s)(B,v)")
         (inst + "B"))
        ("2"
         (expand "below_bounded")
         (inst + "-sq(D)")
         (expand "lower_bound")
         (skosimp*)
         (typepred "z!1")
         (skosimp*)
         (expand "horiz_dist_scaf")
         (assert))))))))


proof_type: t_proof
decl_type: tcc
library: ACCoRD
theory: omega_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (lemma "tau_2D_def")
   (inst?)
   (expand "horiz_dist_scaf")
   (case "v = zero")
   (("1" (replace -1) (assert))
    ("2"
     (assert)
     (lemma "Delta_ge_0")
     (inst - "v" "s")
     (assert)
     (inst?)
     (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: vertical_dist_convexity
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "vert_dist_sq_scaf")
   (lemma "quad_strictly_convex")
   (inst - "sq(v`z)" "2*v`z*s`z" "sq(s`z) - sq(H)")
   (("1" (grind)) ("2" (lemma "sq_eq_0") (inst - "v`z") (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: vertical_dist_convexity
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "vert_dist_scaf")
   (prop)
   (("1"
     (both-sides "+" "H" -1)
     (assert)
     (mult-eq -1 -1)
     (rewrite "sq_rew")
     (rewrite "sq_rew"))
    ("2"
     (both-sides "+" "H" 1)
     (assert)
     (lemma "sq_eq")
     (inst - "abs(s`z + ttt*v`z)" "H")
     (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: vertical_dist_convexity
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "vert_dist_scaf")
   (prop)
   (("1"
     (both-sides "+" "H" -1)
     (assert)
     (mult-ineq -1 -1)
     (("1" (rewrite "sq_rew") (rewrite "sq_rew"))
      ("2" (hide-all-but (-1 1)) (grind))))
    ("2"
     (both-sides "+" "H" 1)
     (assert)
     (lemma "sq_ge")
     (inst - "abs(s`z + ttt*v`z)" "H")
     (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: vertical_dist_convexity
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "vert_dist_scaf")
   (prop)
   (("1"
     (both-sides "+" "H" -1)
     (assert)
     (mult-ineq -1 -1)
     (("1" (rewrite "sq_rew") (rewrite "sq_rew"))
      ("2" (hide-all-but (-1 1)) (grind))))
    ("2"
     (both-sides "+" "H" 1)
     (assert)
     (lemma "sq_gt")
     (inst - "abs(s`z + ttt*v`z)" "H")
     (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: vertical_dist_convexity
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "vert_dist_scaf")
   (prop)
   (("1"
     (both-sides "+" "H" -1)
     (assert)
     (mult-ineq -1 -1)
     (("1" (rewrite "sq_rew") (rewrite "sq_rew"))
      ("2" (hide-all-but (-1 1)) (grind))))
    ("2"
     (both-sides "+" "H" 1)
     (assert)
     (lemma "sq_le")
     (inst - "abs(s`z + ttt*v`z)" "H")
     (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: vertical_dist_convexity
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "vert_dist_scaf")
   (prop)
   (("1"
     (both-sides "+" "H" -1)
     (assert)
     (mult-ineq -1 -1)
     (("1" (rewrite "sq_rew") (rewrite "sq_rew"))
      ("2" (hide-all-but (-1 1)) (grind))))
    ("2"
     (both-sides "+" "H" 1)
     (assert)
     (lemma "sq_lt")
     (inst - "abs(s`z + ttt*v`z)" "H")
     (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: vertical
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (split)
   (("1"
     (flatten)
     (lemma "vertical_conflict_neg")
     (inst -1 "sz" "vz")
     (assert))
    ("2"
     (flatten)
     (lemma "vertical_conflict_neg")
     (inst -1 "-sz" "-vz")
     (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: vertical
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "Theta_H")
   (case "nzvz > 0")
   (("1" (rewrite "sign_eq_1") (grind-reals))
    ("2" (rewrite "sign_eq_neg1") (grind-reals))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: vertical
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "Theta_H")
   (cross-mult 1)
   (case "nzvz > 0")
   (("1" (rewrite "sign_eq_1") (grind-reals) (neg-formula -3) (grind))
    ("2"
     (rewrite "sign_eq_neg1")
     (grind-reals)
     (neg-formula -2)
     (grind))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: vertical
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep :preds? t)
   (expand "Theta_H")
   (case "nzvz > 0")
   (("1"
     (cross-mult 2)
     (rewrite "sign_eq_1")
     (grind-reals)
     (neg-formula -3)
     (grind))
    ("2" (cross-mult 3) (grind) (neg-formula -3) (grind-reals))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: vertical
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (split)
   (("1" (flatten) (inst-cp 1 "1") (inst 1 "-1") (grind))
    ("2" (flatten) (grind))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: vertical
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (grind)
   (("1" (neg-formula -2 :auto-step (grind-reals)))
    ("2" (neg-formula -2 :auto-step (grind-reals)))
    ("3" (neg-formula 3 :auto-step (grind-reals)))
    ("4" (neg-formula 3 :auto-step (grind-reals)))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: vertical
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (split)
   (("1"
     (flatten)
     (assert)
     (expand "vertical_conflict?")
     (skeep -1)
     (neg-formula 2)
     (both-sides-f -1 "sq")
     (("1"
       (both-sides-f 1 "sq")
       (("1" (sq-simp) (mult-by 2 "2*nnt") (assert))
        ("2" (rewrite "sq_lt"))))
      ("2" (rewrite "sq_lt"))))
    ("2"
     (flatten)
     (expand "vertical_conflict?")
     (split -1)
     (("1" (inst 1 "0") (assert))
      ("2"
       (name "t1" "Theta_H(sz,nzvz,-1)")
       (case "t1 >= 0")
       (("1"
         (name "t2" "Theta_H(sz,nzvz,1)")
         (lemma "Theta_H_lt")
         (inst?)
         (inst 1 "(t1+t2)/2")
         (("1" (grind)) ("2" (assert))))
        ("2"
         (inst 2 "0")
         (assert)
         (lemma "Theta_H_ge_0")
         (inst?)
         (assert))))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: vertical
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
script:
  (""
   (skeep)
   (grind)
   (("1" (lemma "div_mult_pos_gt1") (inst?) (inst?) (assert))
    ("2" (grind-reals)) ("3" (grind-reals))
    ("4" (lemma "div_mult_neg_gt1") (inst?) (inst?) (assert))
    ("5" (grind-reals)) ("6" (grind-reals)) ("7" (grind-reals))
    ("8" (grind-reals))
    ("9" (lemma "div_mult_pos_gt1") (inst?) (inst?) (assert))
    ("10" (lemma "div_mult_pos_gt1") (inst?) (inst?) (assert))
    ("11" (lemma "div_mult_neg_gt1") (inst?) (inst?) (assert))
    ("12" (lemma "div_mult_neg_gt1") (inst?) (inst?) (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: vertical
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (lemma "vertical_los_inside_Theta")
   (inst - "nzvz!1" "sz!1" "t!1")
   (lemma "Theta_H_unique")
   (inst - "nzvz!1" "sz!1" "t!1")
   (lemma "Theta_H_lt")
   (inst - "nzvz!1" "sz!1")
   (name "myabs" "abs(sz!1 + t!1 * nzvz!1)")
   (name "entryone" "Theta_H(sz!1, nzvz!1, Entry)")
   (name "exitone" "Theta_H(sz!1, nzvz!1, Exit)")
   (replace -1)
   (hide -1)
   (replace -1)
   (hide -1)
   (replace -1)
   (hide -1)
   (grind))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: vertical
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "Theta_H")
   (grind-reals)
   (("1" (grind)) ("2" (grind)) ("3" (grind)) ("4" (grind))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: vertical
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
script:
  (""
   (skeep)
   (grind)
   (("1" (grind-reals)) ("2" (grind-reals))
    ("3" (lemma "both_sides_div_pos_gt1") (inst?) (assert))
    ("4" (lemma "both_sides_div_neg_gt1") (inst?) (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: vertical
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (lemma "Theta_H_ge_0")
   (inst?)
   (assert)
   (lemma "vertical_tau_entry_exit")
   (inst?)
   (assert))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: vertical
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep :preds? t)
   (hide -3 1)
   (split +)
   (("1"
     (flatten)
     (skeep)
     (both-sides-f 1 "sq")
     (("1"
       (assert)
       (sq-simp)
       (both-sides-f -4 "sq")
       (("1" (assert) (sub-formulas 1 -1) (mult-ineq -1 -2) (assert))
        ("2" (rewrite "sq_ge"))))
      ("2" (lemma "sq_ge") (inst -1 "abs(spz + t * vz)" "H") (assert))))
    ("2"
     (flatten)
     (case "vz=0")
     (("1" (assert))
      ("2"
       (inst -1 "-spz/vz")
       (("1" (assert) (field 2)) ("2" (assert))))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: vertical
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (lemma "vertical_sep_dir")
   (inst?)
   (assert)
   (inst -1 "t")
   (assert)
   (case-replace "vz=0")
   (("1" (assert))
    ("2"
     (typepred "spz")
     (case "sign(spz+t*vz)=-sign(spz)")
     (("1"
       (hide 2)
       (rewrite "sign_abs")
       (rewrite "sign_abs")
       (replaces -1)
       (typepred "dir")
       (hide -1)
       (grind)
       (("1"
         (hide -1)
         (neg-formula -3)
         (cancel-by -4 "spz")
         (mult-by -1 "t")
         (assert))
        ("2"
         (hide -1)
         (real-props -2 :simple? t)
         (cancel-by -3 "spz")
         (mult-by -1 "t")
         (assert))
        ("3"
         (hide -1)
         (real-props -3 :simple? t)
         (cancel-by -4 "spz")
         (mult-by -1 "-t")
         (assert))
        ("4"
         (hide -1)
         (real-props -2 :simple? t)
         (cancel-by -3 "spz")
         (mult-by -1 "-t")
         (assert))))
      ("2" (hide - 2) (grind))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: vertical
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (skeep)
   (expand "vertical_solution?")
   (flatten)
   (lemma "vertical_sep_dir")
   (inst -1 "Entry" "sz+t*vz" "vz")
   (("1" (assert) (inst -1 "tt-t") (assert)) ("2" (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: vertical
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (skeep)
   (lemma "vertical_solution_vertical_sep")
   (inst?)
   (assert)
   (inst -1 "tt")
   (assert)
   (case "abs(tt * nzvz + sz) = H")
   (("1"
     (hide (-2 1))
     (expand "vertical_solution?")
     (flatten)
     (lemma "vertical_sep_at_sign")
     (inst -1 "-1" "sz+t*nzvz" "tt-t" "nzvz")
     (("1"
       (assert)
       (case-replace
        "nzvz * tt - nzvz * t + t * nzvz + sz = tt * nzvz + sz")
       (("1"
         (hide -1 -5)
         (rewrite "sign_abs")
         (rewrite "sign_abs")
         (case "tt * nzvz + sz = sign(tt * nzvz + sz)*H")
         (("1"
           (hide -3)
           (case "t * nzvz + sz = sign(t * nzvz + sz)*H")
           (("1" (hide -4) (replaces -3) (replaces -1 :dir rl) (assert))
            ("2" (hide-all-but (-3 1)) (grind))))
          ("2" (hide-all-but (-2 1)) (grind))))
        ("2" (assert))))
      ("2" (assert))))
    ("2" (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: vertical
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "vertical_solution?")
   (lemma "Theta_H_on_H")
   (inst?)
   (assert)
   (lemma "Theta_H_vertical_dir")
   (inst?)
   (assert))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: vertical
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "vertical_solution?")
   (flatten)
   (lemma "Theta_H_unique_eps")
   (inst -1 "nzvz" "sz" "t")
   (assert)
   (skeep -1)
   (case-replace "eps=dir")
   (case-replace "eps=-dir")
   (("1"
     (hide -1 1)
     (lemma "Theta_H_vertical_dir")
     (inst?)
     (replaces -2 :dir rl)
     (case "-dir * ((sz + t * nzvz) * nzvz) = 0")
     (("1" (cancel-by -1 "-dir*nzvz")) ("2" (assert))))
    ("2" (hide-all-but (1 2)) (typepred "eps" "dir") (grind))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: vertical
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "vertical_solution?")
   (flatten)
   (lemma "vertical_sep_at_sign")
   (inst -1 "-1" "sz+pt*vz" "-pt" "vz")
   (("1"
     (assert)
     (flatten)
     (case-replace "-pt * vz + pt * vz + sz = sz")
     (("1"
       (hide -1)
       (hide -1)
       (rewrite "sign_abs")
       (replaces -1)
       (lemma "vs_at_complete")
       (inst? -1)
       (assert)
       (hide-all-but (-1 1))
       (grind))
      ("2" (assert))))
    ("2" (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: vertical
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "vs_at")
   (case "vz /= 0")
   (("1"
     (flatten)
     (lemma "vertical_solution_Theta_H")
     (inst?)
     (("1"
       (assert)
       (expand "Theta_H")
       (inst + "dir*sign(vz)")
       (cross-mult 2)
       (cross-mult -1)
       (assert))
      ("2" (assert))))
    ("2"
     (flatten)
     (expand "vertical_solution?")
     (flatten)
     (expand "abs")
     (lift-if)
     (ground)
     (("1" (inst + "-1") (cross-mult 1))
      ("2" (inst + "1") (cross-mult 2))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: vertical
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (case "forall (nzz: real): abs(nzz) = sign(nzz)*nzz")
   (("1"
     (label "abslem" -1)
     (hide -1)
     (case "forall (a,b: nzreal): a*b >= 0 IFF sign(a) = sign(b)")
     (("1"
       (label "signlem" -1)
       (hide -1)
       (skeep)
       (expand "vertical_solution?")
       (flatten)
       (factor -2)
       (lemma "Theta_H_unique")
       (inst - "nzvz" "sz" "pt")
       (assert)
       (expand "Theta_H")
       (split)
       (("1"
         (cross-mult -1)
         (factor -3)
         (lemma "commutative_mult")
         (inst - "pt" "nzvz")
         (replace -1)
         (replace -2)
         (assert)
         (reveal "abslem")
         (inst - "nzvz")
         (mult-by -1 "-1")
         (assert)
         (mult-by -1 "H")
         (assert)
         (typepred "abs(nzvz)")
         (mult-by -3 "H")
         (assert)
         (neg-formula -3)
         (hide-all-but (-3 -5 -8))
         (grind))
        ("2"
         (case "sign(sz) = -sign(sz+pt*nzvz)")
         (("1" (grind))
          ("2"
           (typepred "pt")
           (hide -1)
           (replace -2 -1)
           (case "abs(sz) < H")
           (("1"
             (typepred "sign(sz + pt*nzvz)")
             (hide-all-but (-2 -3 2))
             (grind))
            ("2"
             (case "sign(nzvz)*sign(nzvz) = 1")
             (("1"
               (case "H > sign(nzvz)*sz")
               (("1"
                 (case "sign(pt*nzvz + sz) = sign(nzvz)")
                 (("1" (replace -1) (assert))
                  ("2"
                   (factor -6)
                   (reveal "signlem")
                   (inst - "nzvz*pt+sz" "nzvz")
                   (("1" (assert))
                    ("2" (hide-all-but (-5 1)) (grind))))))
                ("2"
                 (case "nzvz > 0")
                 (("1" (cross-mult -3) (expand "sign") (assert))
                  ("2"
                   (case "nzvz < 0")
                   (("1"
                     (mult-by -3 "-nzvz")
                     (field -3)
                     (expand "sign")
                     (assert))
                    ("2" (assert))))))))
              ("2" (typepred "sign(nzvz)") (ground))))))))))
      ("2"
       (hide 2)
       (grind)
       (("1" (grind-reals)) ("2" (grind-reals)) ("3" (grind-reals))
        ("4" (grind-reals))))))
    ("2" (hide 2) (grind))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: vertical
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (assert)
   (flatten)
   (expand "vs_circle_at")
   (lemma "vs_at_H")
   (inst?)
   (factor 1)
   (replace -1)
   (hide -1)
   (expand "vs_at")
   (cross-mult 1)
   (assert)
   (factor 1)
   (case "eps*eps = 1")
   (("1"
     (lemma "nnreal_times_nnreal_is_nnreal")
     (inst - "H" "dir*H-dir*eps*sz")
     (assert))
    ("2" (typepred "eps") (ground))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: vertical
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (split -)
   (("1"
     (skosimp*)
     (expand "vs_circle_at?")
     (assert)
     (flatten)
     (hide 1)
     (hide 1)
     (case "vs_circle_at(sz, viz, t, sign(sz), -1)`1")
     (("1"
       (assert)
       (expand "vs_circle_at")
       (case "sign(sz)*sz = abs(sz)")
       (("1"
         (assert)
         (lemma "vs_at_complete_vertical_solution")
         (inst - "t" "sz" "vs_at(sz, t, eps!1)")
         (assert)
         (expand "vertical_solution?")
         (lemma "vs_at_H")
         (inst?)
         (replace -1)
         (typepred "eps!1")
         (expand "abs" +)
         (lift-if)
         (ground))
        ("2"
         (expand "sign" 1)
         (expand "abs" 1)
         (lift-if)
         (lift-if)
         (assert))))
      ("2"
       (expand "vs_circle_at")
       (lemma "vertical_solution_vertical_sep")
       (inst - "sz" "t" "vs_at(sz,t,eps!1)")
       (split -1)
       (("1"
         (inst - "0")
         (assert)
         (expand "abs")
         (expand "sign")
         (lift-if)
         (ground))
        ("2"
         (expand "vertical_solution?")
         (lemma "vs_at_H")
         (inst?)
         (replace -1)
         (typepred "eps!1")
         (expand "abs" 1)
         (lift-if)
         (ground))))))
    ("2"
     (flatten)
     (skosimp*)
     (case "vs_at(sz,b,eps!1) = 0")
     (("1"
       (replace -1)
       (replace -3)
       (assert)
       (expand "vs_at")
       (cross-mult -1)
       (expand "vs_circle_at?")
       (case "abs(sz) = H")
       (("1"
         (assert)
         (flatten)
         (expand "vs_circle_at")
         (case "sign(sz)*sz = abs(sz)")
         (("1"
           (assert)
           (expand "vs_at")
           (typepred "eps!1")
           (typepred "sign(sz)")
           (ground))
          ("2" (hide-all-but 1) (grind))))
        ("2"
         (hide-all-but (-1 1))
         (typepred "eps!1")
         (expand "abs")
         (lift-if)
         (ground))))
      ("2"
       (expand "vs_circle_at?")
       (assert)
       (flatten)
       (case "abs(sz) < H")
       (("1"
         (assert)
         (flatten)
         (case "FORALL (eps222: Sign): vs_circle_at(sz,viz,b,eps222,1)`1")
         (("1"
           (inst-cp -1 "1")
           (inst -1 "-1")
           (assert)
           (expand "vs_circle_at")
           (typepred "eps!1")
           (ground))
          ("2"
           (skosimp*)
           (expand "vs_circle_at")
           (typepred "eps222!1")
           (expand "abs")
           (lift-if)
           (ground))))
        ("2"
         (assert)
         (lemma "vertical_solution_exit")
         (inst - "vs_at(sz,b,eps!1)" "b" "sz")
         (split -1)
         (("1"
           (lemma "vs_at_H")
           (inst?)
           (replace -1)
           (hide -1)
           (case "sign(eps!1*H) = eps!1")
           (("1"
             (replace -1)
             (hide -1)
             (case "eps!1 = -sign(sz)")
             (("1"
               (replace -1)
               (hide -1)
               (expand "vs_circle_at")
               (assert))
              ("2"
               (typepred "eps!1")
               (typepred "sign(sz)")
               (case "sign(sz)*sz = abs(sz)")
               (("1" (ground)) ("2" (hide-all-but 1) (grind))))))
            ("2"
             (hide-all-but 1)
             (typepred "eps!1")
             (expand "sign")
             (ground))))
          ("2"
           (expand "vertical_solution?")
           (lemma "vs_at_H")
           (inst?)
           (replace -1)
           (hide-all-but 1)
           (typepred "eps!1")
           (expand "abs")
           (ground))))))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: cd_vertical
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "cd_vertical?")
   (case "vz/=0 IMPLIES (min(max(-H - sign(vz) * sz, B * abs(vz)), T * abs(vz))>=0 AND min(max(Theta_H(sz,vz, -1), B), T)>=0)")
   (("1"
     (case "vz /= 0 IMPLIES (min(max(Theta_H(sz, vz, -1), B), T)*abs(vz) = min(max(-H - sign(vz) * sz, B * abs(vz)), T * abs(vz)) AND
                                                                       max(min(Theta_H(sz, vz, 1), T), B)*abs(vz) = max(min(H - sign(vz) * sz, T * abs(vz)), B * abs(vz)))")
     (("1"
       (split +)
       (("1"
         (flatten)
         (split -1)
         (("1" (propax))
          ("2"
           (flatten)
           (assert)
           (flatten)
           (mult-by 3 "abs(vz)")
           (assert))))
        ("2"
         (flatten)
         (split -)
         (("1" (propax))
          ("2"
           (flatten)
           (assert)
           (flatten)
           (mult-by -1 "abs(vz)")
           (assert))))))
      ("2"
       (hide-all-but 1)
       (flatten)
       (lemma "nneg_mult_min")
       (inst - "abs(vz)" "max(Theta_H(sz, vz, -1), B)" "T")
       (("1"
         (replace -1)
         (hide -1)
         (lemma "nneg_mult_max")
         (inst - "abs(vz)" "min(Theta_H(sz, vz, 1), T)" "B")
         (("1"
           (replace -1)
           (hide -1)
           (rewrite "nneg_mult_min")
           (rewrite "nneg_mult_max")
           (case "vz>0")
           (("1" (expand "abs") (expand "sign") (assert) (grind))
            ("2" (expand "abs") (expand "sign") (assert) (grind))))
          ("2" (assert))))
        ("2" (assert))))))
    ("2"
     (hide-all-but 1)
     (flatten)
     (lemma "nnreal_times_nnreal_is_nnreal")
     (inst - "B" "abs(vz)")
     (lemma "nnreal_times_nnreal_is_nnreal")
     (inst - "T" "abs(vz)")
     (grind :exclude ("Theta_H" "sign" "abs")))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: cd_vertical
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
script:
  (""
   (skeep)
   (rewrite "cd_vertical_rewrite")
   (split -)
   (("1" (expand "conflict_vertical?") (flatten) (inst + "B") (assert))
    ("2"
     (flatten)
     (expand "max")
     (expand "min")
     (lemma "Theta_H_lt")
     (inst?)
     (("1"
       (lemma "vertical_los_inside_Theta")
       (expand "conflict_vertical?")
       (lift-if)
       (case "Theta_H(sz, vz, 1) > T")
       (("1"
         (assert)
         (ground)
         (("1" (inst + "B") (inst - "vz" "sz" "B") (assert))
          ("2"
           (lift-if)
           (assert)
           (ground)
           (inst + "T")
           (inst - "vz" "sz" "T")
           (assert))))
        ("2"
         (assert)
         (lift-if)
         (assert)
         (ground)
         (("1" (inst + "B") (inst - "vz" "sz" "B") (assert))
          ("2"
           (inst + "Theta_H(sz,vz,-1)/2 + Theta_H(sz,vz,1)/2")
           (inst - "vz" "sz" "Theta_H(sz,vz,-1)/2 + Theta_H(sz,vz,1)/2")
           (assert))))))
      ("2" (assert))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: cd_vertical
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (rewrite "cd_vertical_rewrite")
   (flatten)
   (expand "conflict_vertical?")
   (skosimp*)
   (case "vz = 0")
   (("1" (replace -1) (assert))
    ("2"
     (hide 2)
     (assert)
     (lemma "vertical_los_inside_Theta")
     (inst - "vz" "sz" "t!1")
     (assert)
     (flatten)
     (typepred "t!1")
     (grind :exclude "Theta_H"))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: cd_vertical
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (split)
   (("1" (flatten) (rewrite "cd_vertical_complete"))
    ("2" (flatten) (rewrite "cd_vertical_correct"))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: cd_vertical
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (split)
   (("1"
     (flatten)
     (rewrite "cd_vertical")
     (lemma "cd_vertical_rewrite")
     (inst?)
     (replace -1)
     (hide -1)
     (split)
     (("1"
       (flatten)
       (inst + "B/2 + T/2")
       (("1" (assert) (hide -) (grind-reals))
        ("2" (assert) (split) (("1" (assert)) ("2" (assert))))))
      ("2"
       (flatten)
       (name "newt"
             "(min(max(Theta_H(sz, vz, -1), B), T) +
                                          max(min(Theta_H(sz, vz, 1), T), B))/2")
       (lemma "Theta_H_lt")
       (inst?)
       (lemma "vertical_los_inside_Theta")
       (inst - "vz" "sz" "newt")
       (inst + "newt")
       (("1" (grind :exclude "Theta_H"))
        ("2"
         (replace -3 :dir rl)
         (hide -)
         (grind :exclude "Theta_H"))))))
    ("2"
     (flatten)
     (skosimp*)
     (expand "conflict_vertical?")
     (inst + "topen!1")
     (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: vz_criteria
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "vertical_exit_criterion?")
   (lemma "vertical_sep_dir")
   (inst?)
   (replaces -1)
   (expand "vertical_conflict?")
   (ground)
   (("1" (skeep -2) (inst? -1) (assert))
    ("2" (skeep 2) (inst? 1) (("1" (assert)) ("2" (assert))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: vz_criteria
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (lemma "vertical_exit_independence")
   (inst -1 "spz" "vz")
   (assert)
   (hide -1)
   (expand "vertical_exit_criterion?")
   (assert))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: vz_criteria
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
script:
  (""
   (skeep)
   (name-replace "s" "sz+nnt*vz" :hide? nil)
   (name-replace "ns" "sz+nnt*nvz" :hide? nil)
   (beta)
   (flatten)
   (rewrite "sign_abs")
   (rewrite "sign_abs")
   (typepred "dir")
   (hide -1)
   (split)
   (("1"
     (replaces -1)
     (hide -5)
     (case "s>=0")
     (("1"
       (rewrite "sign_eq_1")
       (real-props :simple? t)
       (cancel-by -5 "s")
       (case "ns >= s")
       (("1" (rewrite "sign_eq_1" 2) (assert) (grind-reals))
        ("2" (hide 3) (replaces (-4 -5) :dir rl) (grind-reals))))
      ("2"
       (rewrite "sign_eq_neg1")
       (real-props :simple? t)
       (cancel-by -4 "s")
       (case "ns <= s")
       (("1" (rewrite "sign_eq_neg1" 4) (assert) (grind-reals))
        ("2" (hide 5) (replaces (-2 -3) :dir rl) (grind-reals))))))
    ("2"
     (replaces -1)
     (case "s>=0")
     (("1"
       (rewrite "sign_eq_1")
       (real-props :simple? t)
       (cancel-by -5 "s")
       (case "ns >= s")
       (("1"
         (rewrite "sign_eq_1" 2)
         (assert)
         (neg-formula 2)
         (grind-reals))
        ("2" (hide 3) (replaces (-4 -5) :dir rl) (grind-reals))))
      ("2"
       (rewrite "sign_eq_neg1")
       (real-props :simple? t)
       (cancel-by -4 "s")
       (case "ns <= s")
       (("1"
         (rewrite "sign_eq_neg1" 4)
         (assert)
         (neg-formula 4)
         (grind-reals))
        ("2" (hide 5) (replaces (-2 -3) :dir rl) (grind-reals))))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: trk_only
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "trk_only_line")
   (lift-if)
   (lift-if)
   (lemma "norms_eq_sqv")
   (inst?)
   (assert))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: trk_only
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "trk_only_line?")
   (case-replace "nvo=zero")
   (("1" (rewrite "trk_only_zero_right"))
    ("2"
     (assert)
     (lemma "add_move_both")
     (inst -1 "k*vnz" "nvo" "vi")
     (assert)
     (lemma "quad2b_eq_0")
     (inst -1 "sqv(vnz)" "vnz*vi" "sqv(vi)-sqv(vnzo)" "k")
     (flatten)
     (hide -2)
     (split -1)
     (("1"
       (flatten)
       (skeep -2)
       (inst 2 "eps")
       (expand "trk_only_line")
       (lift-if)
       (assert))
      ("2"
       (hide (-3 2 3))
       (replaces -1)
       (expand "trk_only?")
       (rewrite "norms_eq_sqv")
       (grind))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: trk_only
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "trk_only_line?")
   (flatten)
   (name-replace "trko1" "trk_only_line(vnz, vo, vi, -1)" :hide? nil)
   (name-replace "trko2" "trk_only_line(vnz, vo, vi, 1)" :hide? nil)
   (decompose-equality -3)
   (decompose-equality -5)
   (expand "trk_only_line")
   (lift-if)
   (split -)
   (("1"
     (flatten)
     (assert)
     (replaces (-2 -7) :dir rl)
     (beta)
     (lemma "root_le")
     (inst -1 "sqv(vnz)" "2*vnz*vi" "sqv(vi)-sqv(vo)")
     (lemma "discr2b_discr_ge_0")
     (inst?)
     (assert)
     (rewrite "root2b_root")
     (rewrite "root2b_root")
     (lemma "sign_eq_1")
     (inst?)
     (assert))
    ("2" (flatten) (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: trk_only
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (case "nvo=zero")
   (("1" (expand "trk_only?") (replaces -1) (assert))
    ("2"
     (expand "trk_only_dot")
     (lemma "dot_W")
     (inst? -1)
     (inst? -1)
     (assert)
     (skeep -1)
     (lemma "trk_only_line_complete")
     (expand "trk_only_line?")
     (inst -1 "k" "nvo" "vi+W0(u,j)" "Vdir(u,vnzo-vi)" "vnzo")
     (assert)
     (split -1)
     (("1" (skeep -1) (decompose-equality -1) (inst 2 "irt"))
      ("2" (hide-all-but (-1 1)) (grind :exclude ("W0" "Vdir")))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: trk_only
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (beta)
   (flatten)
   (expand "trk_only?")
   (rewrite "norms_eq_sqv")
   (replaces -1 :dir rl)
   (grind))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: trk_only
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "trk_special_case?")
   (flatten)
   (expand "trk_only?")
   (rewrite "norms_eq_sqv")
   (rewrite "scal_sub_right")
   (replace -1 :dir rl)
   (case-replace "s + (t*nvo - s) = t*nvo")
   (("1" (hide -1) (rewrite "sqv_scal") (rewrite "sq_div") (assert))
    ("2" (hide-all-but 1) (grind))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: trk_only
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (case-replace "vo-vi=zero")
   (("1" (rewrite "Delta_zero_eq_0") (assert))
    ("2"
     (rewrite "Delta_ge_0")
     (lemma "trk_spc_on_D")
     (inst?)
     (inst -1 "vo")
     (rewrite "trk_only_id")
     (assert)
     (inst 2 "t"))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: trk_only
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "trk_special_case?")
   (flatten)
   (rewrite "scal_sub_right")
   (replaces -1 :dir rl)
   (case-replace "s + (t*nvo-s) = t*nvo")
   (("1"
     (hide -1)
     (expand "trk_only?")
     (rewrite "norms_eq_sqv")
     (rewrite "dot_scal_left")
     (rewrite "dot_sub_right")
     (rewrite "sqv" :dir rl)
     (replaces -2 :dir rl)
     (rewrite "dot_comm")
     (assert))
    ("2" (hide-all-but 1) (grind))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: trk_only
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (case-replace "vo-vi = zero")
   (("1" (lemma "line_solution_zero") (inst?))
    ("2"
     (lemma "line_solution_rewrite")
     (inst - "vo-vi" "sp")
     (("1"
       (ground)
       (hide 4)
       (inst + "t")
       (assert)
       (lemma "trk_spc_on_D")
       (inst - "vo" "sp" "t" "vi" "vo")
       (assert)
       (expand "trk_only?")
       (propax))
      ("2" (assert))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: trk_only
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (use "trk_spc_dot")
   (assert)
   (mult-by -1 "t")
   (replaces -1 :dir rl)
   (ground)
   (("1" (mult-by -1 "t") (assert)) ("2" (mult-by 1 "t") (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: trk_only
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "trk_only_circle?")
   (flatten)
   (skeep -1)
   (expand "circle_solution_2D?")
   (expand "trk_only_circle" :assert? none)
   (skoletin* -1 :old? t)
   (lift-if)
   (split -2)
   (("1"
     (flatten)
     (skoletin -1 :postfix "p" :old? t)
     (lift-if)
     (split -2)
     (("1"
       (typepred "trk_only_dot(w, vo, vnzi, e, irt)")
       (replaces -3 :dir rl)
       (flatten)
       (replaces -3 :dir rl)
       (assert)
       (flatten)
       (lemma "trk_only_circle_eq_dot")
       (inst?)
       (inst?)
       (assert)
       (assert))
      ("2" (flatten))))
    ("2" (flatten))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: trk_only
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (case-replace "nvo=zero")
   (("1" (expand "trk_only?") (assert))
    ("2"
     (expand "circle_solution_2D?")
     (flatten)
     (expand "trk_only_circle?")
     (assert)
     (lemma "trk_only_circle_eq_dot")
     (inst -1 "nvo" "s" "t" "vnzi" "vnzo")
     (skoletin* -1 :postfix "p" :old? t)
     (assert)
     (case-replace "wp=zero")
     (("1"
       (expand "trk_special_case?")
       (lemma "sub_eq_zero")
       (inst?)
       (assert)
       (replaces -1)
       (rewrite "scal_sub_right")
       (case-replace "t * vnzi + (t * nvo - t * vnzi) = t*nvo")
       (("1"
         (hide-all-but (-7 -8 2))
         (expand "trk_only?")
         (rewrite "norms_eq_sqv")
         (rewrite "sqv_scal")
         (rewrite "sq_div")
         (assert))
        ("2" (hide-all-but 1) (grind))))
      ("2"
       (expand "trk_only_circle")
       (replaces (-1 -3 -4) :dir rl :hide? nil)
       (assert)
       (lemma "trk_only_dot_complete")
       (inst? -1)
       (inst? -1)
       (inst? -1)
       (inst? -1)
       (split -1)
       (("1" (skeep -1) (inst 4 "irt") (replaces -1 :dir rl) (assert))
        ("2" (propax)) ("3" (assert))))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: trk_only
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (beta)
   (flatten)
   (expand "trk_only_vertical?")
   (flatten)
   (skeep -1)
   (expand "trk_only_vertical")
   (lift-if)
   (split -1)
   (("1"
     (flatten)
     (assert)
     (assert)
     (typepred
      "trk_only_dot(t * (s + Theta_D(s, vo - vi, dir) * (vo - vi)), vo, vi,
                              sq(D) - s * (s + Theta_D(s, vo - vi, dir) * (vo - vi)),
                              irt)")
     (replaces -4 :dir rl)
     (assert)
     (flatten)
     (hide-all-but (-2 2))
     (grind :exclude "Theta_D"))
    ("2" (flatten))))


proof_type: t_proof
decl_type: tcc
library: ACCoRD
theory: trk_only
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (skeep)
   (skeep)
   (skeep)
   (split)
   (("1"
     (expand "trk_only?")
     (rewrite "norms_eq_sqv")
     (lemma "quad2b_eq_0")
     (inst?)
     (inst?)
     (assert)
     (expand "quadratic")
     (rewrite "sqv_add")
     (rewrite "sqv_scal")
     (assert)
     (inst 1 "irt"))
    ("2" (hide-all-but 1) (grind))))


proof_type: t_proof
decl_type: tcc
library: ACCoRD
theory: trk_only
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (name-replace "trko"
    "trk_only_line(Vdir(u, vo - vi), vo, vi + W0(u, j),
                                                      irt)")
   (typepred "trko")
   (assert)
   (flatten)
   (assert)
   (case "W0(u,j) + trko`1 * Vdir(u, vo - vi) = trko`2 - vi")
   (("1" (replaces -1 :dir rl) (rewrite "W_dot"))
    ("2" (replaces -2) (hide-all-but 1) (grind :exclude "W0"))))


proof_type: t_proof
decl_type: tcc
library: ACCoRD
theory: trk_only
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (skeep)
   (lemma "scal_eq_zero")
   (inst?)
   (assert)
   (rewrite "sqv_eq_0" :dir rl)
   (replaces -5)
   (lemma "Theta_D_on_D")
   (inst?)
   (assert)
   (assert))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: space_3D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (case "FORALL (s,v) : conflict?(s,v) IMPLIES conflict?(-s,-v)")
   (("1"
     (split)
     (("1" (flatten) (inst -2 "-s" "-v") (assert)) ("2" (inst? -1))))
    ("2"
     (hide 2)
     (skolem 1 ("sp" "vp"))
     (flatten)
     (expand "conflict?")
     (skeep -1)
     (inst 1 "nnt")
     (split 1)
     (("1" (hide -2) (grind)) ("2" (hide -1) (grind))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: space_3D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (split)
   (("1"
     (flatten)
     (expand "conflict_ever?")
     (skolem -1 "tt")
     (inst 1 "tt-t")
     (flatten)
     (split)
     (("1" (hide -2) (expand* "+" "*") (assert))
      ("2"
       (hide -1)
       (rewrite "vect2_add")
       (rewrite "vect2_scal")
       (case-replace
        "vect2(s) + tt * vect2(v) = vect2(s) + t * vect2(v) + (tt - t) * vect2(v)")
       (hide-all-but 1)
       (grind))))
    ("2"
     (flatten)
     (expand "conflict_ever?")
     (skolem -1 "tt")
     (inst 1 "tt+t")
     (flatten)
     (split)
     (("1" (hide -2) (expand* "+" "*") (assert))
      ("2"
       (hide -1)
       (case-replace
        "vect2(s + t * v) + tt * vect2(v) = vect2(s) + (tt + t) * vect2(v)")
       (hide-all-but 1)
       (rewrite "vect2_add")
       (rewrite "vect2_scal")
       (grind))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: space_3D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "conflict?")
   (skosimp*)
   (case "nnt!1 = 0 and nnt!2 = 0")
   (("1" (flatten) (inst + "0") (assert) (replace -1) (assert))
    ("2"
     (name "tt" "nnt!2/(nnt!1 + nnt!2)")
     (("1"
       (label "ttname" -1)
       (case "0<=tt AND tt<=1")
       (("1"
         (flatten)
         (name "newt" "(nnt!1*nnt!2)/(nnt!1 + nnt!2)")
         (label "newtname" -1)
         (case "tt*nnt!1 = newt AND (1-tt)*nnt!2 = newt")
         (("1"
           (flatten)
           (label "newttt" -1)
           (label "newtomtt" -2)
           (inst + "newt")
           (("1"
             (name "VV" "vect2(s) + nnt!1 * vect2(v)")
             (label "vvname" -1)
             (name "WW" "vect2(s) + nnt!2 * vect2(w)")
             (label "wwname" -1)
             (name "VVz" "s`z + nnt!1 * v`z")
             (label "vvzname" -1)
             (name "WWz" "s`z + nnt!2 * w`z")
             (label "wwzname" -1)
             (name "VVt" "s+nnt!1*v")
             (label "vvtname" -1)
             (name "WWt" "s+nnt!2*w")
             (label "wwtname" -1)
             (replace "wwzname")
             (replace "vvzname")
             (replace "wwname")
             (replace "vvname")
             (lemma "horiz_dist_convex_scaf")
             (inst - "VVt" "WWt-VVt")
             (case "s`z + newt * (v + w)`z = tt*VVz + (1-tt)*WWz AND vect2(s) + newt * vect2(v + w) = tt*VV+(1-tt)*WW")
             (("1"
               (flatten)
               (label "zfin" -1)
               (label "vectfin" -2)
               (replace "zfin")
               (replace "vectfin")
               (case "convex?(LAMBDA (t): abs(t)-H)")
               (("1"
                 (assert)
                 (lemma "convex_wtd_av_lt")
                 (inst-cp - "0" "LAMBDA (t): abs(t) - H" "VVz" "WWz")
                 (inst - "0"
                  "LAMBDA (t): horiz_dist_scaf(VVt)(t, WWt - VVt)" "0"
                  "1")
                 (assert)
                 (expand "horiz_dist_scaf" -1 1)
                 (expand "horiz_dist_scaf" -1 1)
                 (assert)
                 (case "vect2(VVt) = VV AND vect2(VVt)+vect2(WWt-VVt) = WW")
                 (("1"
                   (flatten)
                   (assert)
                   (inst - "tt")
                   (inst - "tt")
                   (assert)
                   (expand "horiz_dist_scaf")
                   (case-replace
                    "vect2(VVt) + (1 - tt) * vect2(WWt - VVt) = tt * VV + (1 - tt) * WW")
                   (("1" (assert))
                    ("2" (hide-all-but (-1 -2 1)) (grind))))
                  ("2"
                   (hide-all-but
                    ("vvtname" "vvname" "wwtname" "wwname" 1))
                   (replace "wwtname" + rl)
                   (replace "vvtname" + rl)
                   (replace "vvname" + rl)
                   (replace "wwname" + rl)
                   (rewrite "vect2_add")
                   (rewrite "vect2_sub")
                   (rewrite "vect2_add")
                   (rewrite "vect2_add")
                   (rewrite "vect2_scal")
                   (rewrite "vect2_scal")
                   (hide-all-but 1)
                   (grind))))
                ("2"
                 (lemma "abs_linear_convex")
                 (inst - "H" "0" "1")
                 (assert))))
              ("2"
               (replace "vvname" + rl)
               (replace "wwname" + rl)
               (replace "vvzname" + rl)
               (replace "wwzname" + rl)
               (assert)
               (hide (2 3 4 5))
               (split 1)
               (("1"
                 (copy "newtomtt")
                 (mult-by -1 "w`z")
                 (assert)
                 (replace -1)
                 (hide -1)
                 (replace "newttt" + rl)
                 (rewrite "vz_distr_add")
                 (assert))
                ("2" (hide-all-but ("newttt" "newtomtt" 1)) (grind))))))
            ("2"
             (lemma "nnreal_div_posreal_is_nnreal")
             (inst - "(nnt!1*nnt!2)" "nnt!1 + nnt!2")
             (("1" (hide-all-but (-1 "newtname" 1)) (grind))
              ("2" (assert))))))
          ("2"
           (replace "newtname" + rl)
           (replace "ttname" + rl)
           (hide-all-but (1 2))
           (ground)
           (field 2))))
        ("2"
         (lemma "nnreal_div_posreal_is_nnreal")
         (inst - "nnt!2" "nnt!1 + nnt!2")
         (("1"
           (replace "ttname" -)
           (assert)
           (replace "ttname" + rl)
           (cross-mult 1)
           (assert))
          ("2" (assert))))))
      ("2" (assert))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: space_3D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "conflict?" -1)
   (skosimp*)
   (label "underH" -1)
   (label "underD" -2)
   (case "nnt!1 /= 0")
   (("1"
     (flatten)
     (name "del1" "H - abs(ss`z + nnt!1 * vv`z)")
     (label "del1name" -1)
     (name "del2" "D - norm(vect2(ss) + nnt!1 * vect2(vv))")
     (label "del2name" -1)
     (case "del2 > 0")
     (("1"
       (label "del2pos" -1)
       (hide "del2pos")
       (name "delta" "min(del1,del2)")
       (label "deltaname" -1)
       (inst + "delta/(2*nnt!1)")
       (("1"
         (skeep 2)
         (case "norm(ww) >= abs(ww`z) AND norm(ww) >= norm(vect2(ww))")
         (("1"
           (label "normlem" -1)
           (hide "normlem")
           (expand "conflict?")
           (inst + "nnt!1")
           (split 2)
           (("1"
             (lemma "triangle")
             (rewrite "vz_distr_add")
             (assert)
             (inst - "ss`z + vv`z*nnt!1" "ww`z*nnt!1")
             (case "abs(ww`z*nnt!1) < del1")
             (("1" (assert))
              ("2"
               (hide 2)
               (rewrite "abs_mult")
               (case "abs(nnt!1) = nnt!1")
               (("1"
                 (replace -1)
                 (reveal "normlem")
                 (flatten)
                 (div-by 1 "nnt!1")
                 (case "del1 / nnt!1 >= delta / (2 * nnt!1)")
                 (("1" (assert))
                  ("2"
                   (hide 2)
                   (cross-mult 1)
                   (div-by 1 "nnt!1")
                   (assert))))
                ("2" (expand "abs") (propax))))))
            ("2"
             (case "norm(vect2(ss) + nnt!1 * vect2(vv + ww)) < D")
             (("1"
               (lemma "sq_lt")
               (inst?)
               (assert)
               (lemma "vectors_2D.sqrt_sqv_norm")
               (inst?)
               (replace -1 :dir rl)
               (rewrite "vect2_add")
               (assert))
              ("2"
               (hide 2)
               (rewrite "vect2_add")
               (lemma "vectors_2D.norm_add_le")
               (inst - "vect2(ss) + nnt!1*vect2(vv)" "nnt!1*vect2(ww)")
               (assert)
               (case "norm(nnt!1 * vect2(ww)) + norm(vect2(ss) + nnt!1 * vect2(vv)) < D")
               (("1"
                 (case "vect2(ss) + nnt!1 * vect2(vv) + nnt!1 * vect2(ww) = vect2(ss) + nnt!1 * (vect2(vv) + vect2(ww))")
                 (("1" (assert))
                  ("2" (hide 2) (hide-all-but 1) (grind))))
                ("2"
                 (case "norm(nnt!1*vect2(ww)) < del2")
                 (("1" (assert))
                  ("2"
                   (hide 2)
                   (hide 2)
                   (rewrite "norm_scal")
                   (case "abs(nnt!1) = nnt!1")
                   (("1"
                     (replace -1)
                     (div-by 1 "nnt!1")
                     (case "del2 / nnt!1 >= delta/(2*nnt!1)")
                     (("1" (reveal "normlem") (flatten) (assert))
                      ("2"
                       (hide 2)
                       (cross-mult 1)
                       (div-by 1 "nnt!1")
                       (case "2*del2 >= delta")
                       (("1" (assert))
                        ("2"
                         (case "del2 > 0")
                         (("1" (hide-all-but (-1 "deltaname" 1)) (grind))
                          ("2"
                           (replace "del2name" :dir rl)
                           (hide-all-but ("underD" 1))
                           (case "sqv(vect2(ss) + nnt!1 * vect2(vv)) = sq(norm(vect2(ss) + nnt!1 * vect2(vv)))")
                           (("1"
                             (replace -1)
                             (hide -1)
                             (lemma "sq_lt")
                             (inst?)
                             (assert))
                            ("2"
                             (hide-all-but 1)
                             (name "cvect1"
                                   "vect2(ss) + nnt!1 * vect2(vv)")
                             (replace -1)
                             (hide -1)
                             (expand "norm")
                             (lemma "sq_sqrt")
                             (inst?)
                             (split -1)
                             (("1" (assert)) ("2" (assert))))))))))))
                    ("2" (expand "abs") (propax))))))))))))
          ("2"
           (hide-all-but 1)
           (split)
           (("1"
             (expand "norm")
             (expand "sqv")
             (lemma "sq_ge")
             (inst?)
             (("1"
               (assert)
               (hide 2)
               (expand "*")
               (expand "sq" 1 2)
               (lemma "sqrt_ge")
               (inst - "ww`x * ww`x + ww`y * ww`y + ww`z * ww`z"
                "ww`z*ww`z")
               (assert))
              ("2" (typepred "sqv(ww)") (expand "sqv") (propax))))
            ("2"
             (expand "norm")
             (expand "sqv")
             (lemma "sqrt_ge")
             (inst?)
             (("1" (assert) (hide 2) (grind))
              ("2" (typepred "sqv(vect2(ww))") (expand "sqv") (propax))
              ("3" (typepred "sqv(ww)") (expand "sqv") (propax))))))))
        ("2"
         (case "delta /( 2*nnt!1) > 0")
         (("1" (assert))
          ("2"
           (hide 2)
           (cross-mult 1)
           (reveal "del2pos")
           (case "delta = del1 or delta = del2")
           (("1" (ground)) ("2" (hide-all-but ("deltaname" 1)) (grind))))
          ("3" (assert))))
        ("3" (assert))))
      ("2"
       (lemma "sq_lt")
       (inst - "norm(vect2(ss) + nnt!1 * vect2(vv))" "D")
       (assert)
       (name "cvect3" "vect2(ss) + nnt!1 * vect2(vv)")
       (replace -1)
       (case "sqv(cvect3) = sq(norm(cvect3))")
       (("1" (assert))
        ("2"
         (hide-all-but 1)
         (lemma "vectors_2D.sqrt_sqv_norm")
         (inst?)
         (replace -1 :dir rl)
         (hide -1)
         (lemma "sq_sqrt")
         (inst?)
         (split -1)
         (("1" (assert)) ("2" (assert))))))))
    ("2"
     (flatten)
     (replace -1)
     (assert)
     (inst + "1")
     (skeep)
     (expand "conflict?")
     (inst + "0")
     (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: space_3D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "conflict?")
   (skeep -1)
   (split)
   (("1" (expand "vertical_conflict?") (inst? 1))
    ("2" (expand "horizontal_conflict?") (inst? 1))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: space_3D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
script:
  (""
   (skeep)
   (expand "verticalCoordinationConflict")
   (rewrite "vz_neg")
   (rewrite "vect2_neg")
   (rewrite "vect2_neg")
   (rewrite "sqv_neg")
   (rewrite "sqv_neg")
   (rewrite "neg_dot_neg")
   (rewrite "vz_neg")
   (rewrite "sqv_eq_0" :dir rl)
   (rewrite "sqv_eq_0" :dir rl)
   (case "v`z = 0 OR
                         vect2(v) = zero OR
                          sq(vect2(s) * vect2(v)) + sq(D) * sqv(vect2(v)) -
                           sqv(vect2(s)) * sqv(vect2(v))
                           < 0
                           OR
                           eq(v`z,
                              sq(vect2(s) * vect2(v)) + sq(D) * sqv(vect2(v)) -
                               sqv(vect2(s)) * sqv(vect2(v)),
                              s`z * sqv(vect2(v)) - v`z * (vect2(s) * vect2(v)))")
   (("1"
     (assert)
     (replace -1)
     (case "sqv(s) = 0")
     (("1"
       (assert)
       (hide -2)
       (lemma "break_symmetry_neg")
       (inst - "v")
       (lemma "vectors_3D.sqv_eq_0")
       (inst - "s")
       (assert))
      ("2"
       (replace 1)
       (lift-if)
       (case "s /= zero")
       (("1"
         (flatten)
         (split +)
         (("1"
           (flatten)
           (lemma "break_symmetry_neg")
           (inst - "s")
           (assert))
          ("2"
           (flatten)
           (split -)
           (("1" (assert)) ("2" (replace -1) (assert)) ("3" (propax))
            ("4"
             (lemma "eq_neg")
             (inst?)
             (("1" (assert)) ("2" (assert))))))))
        ("2" (flatten) (replace -1) (assert))))))
    ("2"
     (flatten)
     (assert)
     (case "gt(v`z,
                             sq(vect2(s) * vect2(v)) + sq(D) * sqv(vect2(v)) -
                              sqv(vect2(s)) * sqv(vect2(v)),
                             s`z * sqv(vect2(v)) - v`z * (vect2(s) * vect2(v)))")
     (("1"
       (replace -1)
       (lift-if)
       (split +)
       (("1"
         (flatten)
         (case "s /= zero")
         (("1"
           (flatten)
           (lemma "vectors_3D.sqv_eq_0")
           (inst - "s")
           (assert))
          ("2"
           (flatten)
           (replace -1)
           (assert)
           (lemma "break_symmetry_neg")
           (inst - "v"))))
        ("2"
         (flatten)
         (split +)
         (("1"
           (flatten)
           (split -)
           (("1" (hide-all-but (-1 4)) (expand "zero") (grind))
            ("2" (lemma "eq_neg") (inst?) (assert))))
          ("2"
           (flatten)
           (rewrite "eq_correct_1")
           (rewrite "eq_correct_1")
           (rewrite "gt_correct_1")
           (rewrite "gt_correct_1")
           (assert))))))
      ("2"
       (replace 1)
       (case "s = zero")
       (("1"
         (replace -1)
         (assert)
         (lemma "break_symmetry_neg")
         (inst - "v"))
        ("2"
         (hide -1)
         (lemma "vectors_3D.sqv_eq_0")
         (inst - "s")
         (assert)
         (lift-if)
         (assert)
         (split +)
         (("1"
           (flatten)
           (split -)
           (("1" (hide-all-but (-1 6)) (expand "zero") (grind))
            ("2" (lemma "eq_neg") (inst?) (assert))))
          ("2"
           (flatten)
           (split +)
           (("1" (propax))
            ("2"
             (rewrite "eq_correct_1")
             (rewrite "gt_correct_1")
             (rewrite "eq_correct_1")
             (rewrite "gt_correct_1")
             (assert))))))))))
    ("3" (assert) (flatten) (lift-if) (lift-if) (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: space_3D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (skoletin 1)
   (flatten)
   (lemma "Delta_gt_0_nzv")
   (inst?)
   (assert)
   (flatten)
   (expand "verticalCoordinationConflict")
   (case-replace "v`z = 0")
   (("1" (assert) (replaces -2) (hide-all-but (2 3)) (grind))
    ("2"
     (assert)
     (lemma "Delta_discr2b")
     (inst?)
     (rewrite "sqv_eq_0" :dir rl)
     (skoletin* -1)
     (replace -4 :dir rl)
     (replace -3 :dir rl)
     (name-replace "dd" "sq(b) + sq(D) * a - sqv(vect2(nzs)) * a" :hide?
      nil)
     (case-replace "discr2b(a,b,c)=dd")
     (("1"
       (case "dd > 0")
       (("1"
         (assert)
         (rewrite "eq_correct_1")
         (rewrite "gt_correct_1")
         (lift-if)
         (expand "Theta_D")
         (replace -7 :dir rl)
         (replace -6 :dir rl)
         (replace -4 :dir rl)
         (expand "root2b")
         (assert)
         (case "nzs`z + (-b - sqrt(dd)) / a * v`z > 0")
         (("1"
           (expand "sign")
           (assert)
           (split 4)
           (("1" (isolate -2 l 2) (cross-mult -2) (assert))
            ("2" (propax))))
          ("2"
           (expand "sign")
           (assert)
           (split 5)
           (("1" (propax))
            ("2" (isolate 2 l 2) (cross-mult 2) (assert))))))
        ("2" (assert))))
      ("2" (hide 5) (expand "discr2b") (assert) (assert))))))


proof_type: t_proof
decl_type: tcc
library: ACCoRD
theory: space_3D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (inst 1 "verticalCoordinationConflict")
   (skeep)
   (rewrite "verticalCoordinationConflict_asymm"))


proof_type: j_proof
decl_type: tcc
library: ACCoRD
theory: space_3D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "vs_los_strategy" 1 1)
   (label "svnz" -1)
   (lift-if)
   (split +)
   (("1"
     (flatten)
     (case "1*(vect2(s)*vect2(v)) >= 0 OR vect2(v) = zero")
     (("1"
       (label "entryorzero" -1)
       (split +)
       (("1"
         (flatten)
         (rewrite "vz_neg")
         (expand "vs_los_strategy")
         (assert)
         (replace -1)
         (hide -)
         (grind))
        ("2"
         (flatten)
         (case "s`z = 0")
         (("1"
           (label "szzero" -1)
           (split +)
           (("1"
             (flatten)
             (rewrite "vz_neg")
             (expand "vs_los_strategy")
             (replace -3)
             (lift-if)
             (assert)
             (hide -)
             (grind))
            ("2"
             (flatten)
             (case "v`z = 0")
             (("1"
               (split +)
               (("1"
                 (flatten)
                 (expand "vs_los_strategy")
                 (lift-if)
                 (assert)
                 (replace "entryorzero")
                 (case "s /= zero")
                 (("1"
                   (assert)
                   (lemma "break_symmetry_neg")
                   (inst - "s"))
                  ("2"
                   (flatten)
                   (hide-all-but (-1 1))
                   (expand "zero")
                   (grind))))
                ("2"
                 (flatten)
                 (case "s = zero")
                 (("1"
                   (assert)
                   (case "-v /= zero")
                   (("1"
                     (assert)
                     (expand "vs_los_strategy")
                     (lift-if)
                     (replace "entryorzero")
                     (lemma "break_symmetry_neg")
                     (inst - "v"))
                    ("2"
                     (hide-all-but ("svnz" 1 -3))
                     (flatten)
                     (expand "zero")
                     (decompose-equality +)
                     (("1" (grind)) ("2" (grind))))))
                  ("2"
                   (hide-all-but (-1 1))
                   (expand "zero")
                   (decompose-equality +)
                   (("1" (grind)) ("2" (grind)) ("3" (grind))))))))
              ("2" (rewrite "vz_neg") (assert))))))
          ("2" (rewrite "vz_neg") (assert))))))
      ("2"
       (hide-all-but (-1 1))
       (flatten)
       (split -)
       (("1" (grind)) ("2" (expand "zero") (grind))))))
    ("2"
     (flatten)
     (case "NOT (1*(vect2(s)*vect2(v)) >= 0 OR vect2(v) = zero)")
     (("1"
       (flatten)
       (name "tca" "horizontal_tca(vect2(-s),vect2(-v))")
       (("1"
         (label "tcaname" -1)
         (case "tca > 0")
         (("1"
           (case "tca = horizontal_tca(s,v)")
           (("1"
             (label "tcaeq" -1)
             (replace "tcaname")
             (case "(-s+tca*-v)`z = - (s + tca*v)`z")
             (("1"
               (split +)
               (("1"
                 (flatten)
                 (replace -1)
                 (expand "vs_los_strategy")
                 (lift-if)
                 (assert)
                 (replace "tcaeq" :dir rl)
                 (hide-all-but (1 2))
                 (grind))
                ("2"
                 (flatten)
                 (split +)
                 (("1"
                   (flatten)
                   (rewrite "vz_neg")
                   (expand "vs_los_strategy")
                   (lift-if)
                   (assert)
                   (hide-all-but (1 2))
                   (grind))
                  ("2"
                   (flatten)
                   (rewrite "vz_neg")
                   (split +)
                   (("1"
                     (flatten)
                     (expand "vs_los_strategy")
                     (lift-if)
                     (assert)
                     (case "s /= zero")
                     (("1"
                       (assert)
                       (lemma "break_symmetry_neg")
                       (inst - "s"))
                      ("2"
                       (flatten)
                       (hide-all-but (-1 1))
                       (expand "zero")
                       (grind))))
                    ("2"
                     (flatten)
                     (split +)
                     (("1"
                       (flatten)
                       (case "v /= zero")
                       (("1"
                         (expand "vs_los_strategy")
                         (lift-if)
                         (assert)
                         (case "s = zero")
                         (("1"
                           (assert)
                           (lemma "break_symmetry_neg")
                           (inst - "v"))
                          ("2"
                           (hide-all-but (-2 1))
                           (expand "zero")
                           (grind)
                           (decompose-equality +))))
                        ("2"
                         (flatten)
                         (hide-all-but (-1 1))
                         (expand "zero")
                         (grind))))
                      ("2"
                       (flatten)
                       (case "v = zero")
                       (("1"
                         (assert)
                         (hide-all-but (-3 "svnz"))
                         (flatten)
                         (expand "zero")
                         (grind)
                         (decompose-equality +))
                        ("2"
                         (hide-all-but (-1 1))
                         (expand "zero")
                         (grind)
                         (decompose-equality +))))))))))))
              ("2" (hide-all-but 1) (grind))))
            ("2"
             (replace "tcaname" :dir rl)
             (expand "horizontal_tca")
             (cross-mult 1)
             (hide-all-but 1)
             (grind))
            ("3" (assert))))
          ("2"
           (replace "tcaname" :dir rl)
           (expand "horizontal_tca")
           (case "sqv(vect2(-v)) > 0")
           (("1" (cross-mult 1) (assert))
            ("2"
             (lemma "vectors_2D.sqv_eq_0")
             (inst - "-v")
             (assert))))))
        ("2" (assert))))
      ("2"
       (hide-all-but (-1 1 2))
       (split -)
       (("1" (grind)) ("2" (hide 1) (expand "zero") (grind))))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: circle_criterion
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (lemma "vertical_horizontal_conflict")
   (inst?)
   (assert)
   (flatten)
   (lemma "vertical_exit_independence")
   (inst?)
   (assert)
   (expand "vertical_exit_criterion?")
   (propax))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: circle_criterion
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep :preds? t)
   (expand "nogs_criterion?")
   (split 1)
   (("1"
     (flatten)
     (split -1)
     (("1"
       (flatten)
       (lemma "vertical_sep_independence")
       (inst?)
       (assert))
      ("2" (expand "conflict?") (replaces -3) (skeep -2) (assert))))
    ("2"
     (flatten)
     (splash 2)
     (("1"
       (lemma "vertical_exit_independence")
       (inst -1 "s`z" "vzgs`z")
       (expand "vertical_exit_criterion?")
       (assert)
       (expand* "vertical_conflict?" "conflict?")
       (replaces -3)
       (assert))
      ("2" (expand "conflict?") (inst 2 "0") (assert))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: circle_criterion
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand* "circle_criterion?" "conflict_ever?")
   (flatten)
   (skeep -5)
   (lemma "horizontal_sep_dir")
   (inst?)
   (assert)
   (lemma "vertical_sep_dir")
   (inst? -1)
   (assert)
   (inst? -1)
   (inst? -2)
   (assert))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: circle_criterion
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (lemma "circle_criterion_independence")
   (inst -1 "dir" "s+t*v" "v")
   (assert)
   (hide -1)
   (lemma "conflict_ever_shift")
   (inst?)
   (assert))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: cd3d
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (split)
   (("1"
     (flatten)
     (expand "conflict_3D?")
     (skosimp*)
     (lemma "vertical_los_inside_Theta")
     (inst - "abs(v`z)" "sign(v`z)*s`z" "t!1")
     (("1"
       (flatten)
       (hide -1)
       (split -1)
       (("1"
         (flatten)
         (expand "Theta_H")
         (case "sign(abs(v`z)) = 1")
         (("1"
           (replace -1)
           (hide -1)
           (assert)
           (cross-mult -1)
           (cross-mult -2)
           (expand "conflict_2D?")
           (inst + "t!1*abs(v`z)")
           (("1"
             (rewrite "vect2_scal")
             (case "abs(v`z) * vect2(s) + t!1 * abs(v`z) * vect2(v) = abs(v`z)*(vect2(s)+t!1*vect2(v))")
             (("1"
               (replace -1)
               (hide -1)
               (rewrite "sqv_scal")
               (rewrite "sq_times")
               (div-by 1 "sq(v`z)")
               (lemma "sq_eq_0")
               (inst?)
               (assert))
              ("2" (hide-all-but 1) (grind))))
            ("2"
             (hide -3)
             (hide -3)
             (typepred "T")
             (mult-by -3 "abs(v`z)")
             (typepred "t!1")
             (mult-by -2 "abs(v`z)")
             (mult-by -3 "abs(v`z)")
             (case "v`z>0")
             (("1" (expand "abs") (expand "sign") (assert) (grind))
              ("2" (expand "abs") (expand "sign") (assert) (grind))))))
          ("2" (expand "sign") (assert))))
        ("2" (hide-all-but (-1 1)) (grind))))
      ("2" (assert))))
    ("2"
     (flatten)
     (lemma
      "conflict_2D_on_open_interval[D *abs( v`z),
                             max(-H - sign(v`z) * s`z, B * abs(v`z)),
                             min(H - sign(v`z) * s`z, T * abs(v`z))]")
     (("1"
       (inst?)
       (replaces -1)
       (skosimp*)
       (name "t!2" "topen!1/abs(v`z)")
       (("1"
         (case "max(Theta_H[H](sign(v`z)*s`z,abs(v`z),-1),B)< t!2 AND t!2 < min(Theta_H[H](sign(v`z)*s`z,abs(v`z),1),T)")
         (("1"
           (flatten)
           (expand "conflict_3D?")
           (inst + "t!2")
           (("1"
             (split 1)
             (("1"
               (lemma "vertical_los_inside_Theta")
               (inst - "abs(v`z)" "sign(v`z)*s`z" "t!2")
               (flatten)
               (hide -2)
               (split -1)
               (("1" (hide-all-but (-1 +)) (grind))
                ("2" (hide-all-but (-1 -2 1)) (grind :exclude "Theta_H"))
                ("3"
                 (hide-all-but (-1 -2 1))
                 (grind :exclude "Theta_H"))))
              ("2"
               (rewrite "vect2_scal")
               (case "abs(v`z) * vect2(s) + topen!1 * vect2(v) = abs(v`z)*(vect2(s) + t!2*vect2(v))")
               (("1"
                 (replace -1)
                 (rewrite "sqv_scal")
                 (rewrite "sq_times")
                 (div-by -7 "sq(v`z)"))
                ("2"
                 (replace -3 :dir rl)
                 (hide-all-but (1 3))
                 (grind :exclude "abs"))))))
            ("2" (hide-all-but (-1 -2 1)) (grind :exclude "Theta_H"))))
          ("2"
           (replace -1 1 :dir rl)
           (hide-all-but (-2 -3 -6 1))
           (split)
           (("1"
             (cross-mult 1)
             (lemma "nneg_mult_max")
             (inst - "abs(v`z)"
              "Theta_H[H](sign(v`z) * s`z, abs(v`z), -1)" "B")
             (("1"
               (replace -1)
               (expand "Theta_H")
               (case "v`z>0")
               (("1" (expand "abs") (expand "sign") (assert))
                ("2"
                 (case "v`z < 0")
                 (("1" (expand "abs") (expand "sign") (assert))
                  ("2"
                   (assert)
                   (case-replace "v`z=0")
                   (("1" (assert)) ("2" (assert))))))))
              ("2" (assert) (grind))))
            ("2"
             (cross-mult 1)
             (lemma "nneg_mult_min")
             (inst - "abs(v`z)"
              "Theta_H[H](sign(v`z) * s`z, abs(v`z), 1)" "T")
             (("1"
               (replace -1)
               (hide -1)
               (expand "Theta_H")
               (case "v`z>0")
               (("1" (expand "abs") (expand "sign") (assert))
                ("2"
                 (case "v`z < 0")
                 (("1" (expand "abs") (expand "sign") (assert))
                  ("2"
                   (assert)
                   (case-replace "v`z=0")
                   (("1" (assert)) ("2" (assert))))))))
              ("2" (assert) (assert))))))))
        ("2" (assert))))
      ("2" (hide-all-but (-2 1)) (assert))
      ("3" (hide-all-but 1) (assert)) ("4" (grind-reals))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: cd3d
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (split)
   (("1"
     (flatten)
     (expand "conflict_3D?")
     (skosimp*)
     (inst + "t!1")
     (assert)
     (expand "abs")
     (lift-if)
     (ground))
    ("2"
     (flatten)
     (expand "conflict_3D?")
     (skosimp*)
     (inst + "t!1")
     (assert)
     (expand "abs")
     (lift-if)
     (ground))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: cd3d
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (split)
   (("1"
     (flatten)
     (expand "conflict_3D?")
     (skosimp*)
     (case "exists (epH:posreal): FORALL (th: real): abs(th-t!1)<epH IMPLIES abs(s`z+th*v`z)<H")
     (("1"
       (skeep -1)
       (case "exists (epD:posreal): FORALL (td: real): abs(td-t!1)<epD IMPLIES sqv(vect2(s)+td*vect2(v))<sq(D)")
       (("1"
         (skeep -1)
         (name "newt" "min((T-B)/2,min(epD/2,epH/2))")
         (case "newt > 0")
         (("1"
           (case "t!1 = B")
           (("1"
             (replace -1)
             (hide -1)
             (inst + "B+newt")
             (("1"
               (assert)
               (inst - "B+newt")
               (inst - "B+newt")
               (case "abs(newt)<epD and abs(newt)<epH")
               (("1" (flatten) (assert))
                ("2"
                 (hide 2)
                 (hide -3)
                 (hide -3)
                 (hide -3)
                 (hide -3)
                 (grind))))
              ("2" (assert))))
            ("2"
             (case "t!1 = T")
             (("1"
               (replace -1)
               (hide -1)
               (inst + "T-newt")
               (("1"
                 (assert)
                 (inst - "T-newt")
                 (inst - "T-newt")
                 (case "abs(-newt)<epD and abs(-newt)<epH")
                 (("1" (flatten) (assert))
                  ("2"
                   (hide 3)
                   (hide -3)
                   (hide -3)
                   (hide -3)
                   (hide -3)
                   (grind))))
                ("2" (assert))))
              ("2" (inst + "t!1") (assert))))))
          ("2" (hide-all-but (-1 1)) (grind))))
        ("2"
         (case "vect2(v) = zero")
         (("1" (replace -1) (assert))
          ("2"
           (hide -1)
           (hide -1)
           (hide 3)
           (lemma "sqv_cont")
           (expand "continuous_vr?")
           (inst - "vect2(s) + t!1 * vect2(v)")
           (expand "continuous_vr?")
           (inst - "sq(D) - sqv(vect2(s)+t!1*vect2(v))")
           (("1"
             (skosimp*)
             (inst + "delta!1/norm(vect2(v))")
             (("1"
               (skosimp*)
               (inst - "vect2(s) + td!1*vect2(v)")
               (split -1)
               (("1"
                 (name "const1" "sqv(vect2(s) + td!1*vect2(v))")
                 (replace -1)
                 (name "const2" "sqv(vect2(s) + t!1*vect2(v))")
                 (replace -1)
                 (hide -1)
                 (hide -1)
                 (hide -2)
                 (grind))
                ("2"
                 (case "vect2(s) + td!1 * vect2(v) - (vect2(s) + t!1 * vect2(v)) = (td!1-t!1)*vect2(v)")
                 (("1"
                   (replace -1)
                   (rewrite "norm_scal")
                   (cross-mult -2))
                  ("2" (hide-all-but 1) (grind))))))
              ("2"
               (lemma "posreal_div_posreal_is_posreal")
               (inst - "delta!1" "norm(vect2(v))")
               (("1" (assert))
                ("2" (lemma "vectors_2D.norm_eq_0") (inst?) (assert))))
              ("3" (lemma "vectors_2D.norm_eq_0") (inst?) (assert))))
            ("2" (assert))))))))
      ("2"
       (case "v`z = 0")
       (("1" (replace -1) (assert))
        ("2"
         (inst + "(H-abs(s`z+t!1*v`z))/abs(v`z)")
         (("1"
           (skosimp*)
           (cross-mult -1)
           (hide-all-but (-1 -2 2))
           (rewrite "abs_mult" :dir rl)
           (both-sides "+" "abs(s`z+t!1*v`z)" -1)
           (assert)
           (lemma "triangle")
           (inst - "v`z * th!1 - v`z * t!1" "s`z + t!1 * v`z")
           (assert))
          ("2"
           (split 1)
           (("1" (cross-mult 1) (assert)) ("2" (cross-mult 1) (assert))))
          ("3" (expand "abs" 1) (lift-if) (ground))))))))
    ("2"
     (flatten)
     (skosimp*)
     (expand "conflict_3D?")
     (inst + "topen!1")
     (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: cd3d
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (split)
   (("1"
     (flatten)
     (expand "conflict_3D?")
     (skosimp*)
     (expand "conflict_vertical?")
     (inst + "t!1")
     (lemma "horizontal_los_inside_Theta")
     (inst - "v" "s" "t!1")
     (assert)
     (flatten)
     (hide -3)
     (hide -3)
     (hide -3)
     (hide -3)
     (grind :exclude "Theta_D"))
    ("2"
     (flatten)
     (lemma
      "conflict_vertical_on_open_interval[H, max(Theta_D(vect2(s), vect2(v), -1), B),
                     min(Theta_D(vect2(s), vect2(v), 1), T)]")
     (("1"
       (inst?)
       (assert)
       (hide -2)
       (skosimp*)
       (expand "conflict_3D?")
       (inst + "topen!1")
       (assert)
       (lemma "horizontal_los_inside_Theta")
       (inst - "v" "s" "topen!1")
       (assert))
      ("2" (assert)) ("3" (assert)) ("4" (propax))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: cd3d
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (skoletin 1)
   (flatten)
   (expand "detection")
   (lift-if)
   (split -3)
   (("1"
     (flatten)
     (assert)
     (replace -1)
     (assert)
     (split -3)
     (("1"
       (flatten)
       (assert)
       (lemma "vertical_los_inside_Theta")
       (inst?)
       (assert)
       (grind :exclude "Theta_H"))
      ("2" (flatten) (assert))))
    ("2"
     (flatten)
     (split -1)
     (("1"
       (flatten)
       (assert)
       (split -2)
       (("1"
         (flatten)
         (assert)
         (split -5)
         (("1" (flatten) (assert))
          ("2"
           (flatten)
           (lemma "vertical_los_inside_Theta")
           (inst? -1)
           (assert)
           (lemma "horizontal_los_inside_Theta")
           (inst?)
           (assert)
           (grind :exclude
            ("sqv" "vect2" "Theta_D" "Theta_H" "Delta")))))
        ("2"
         (flatten)
         (split -2)
         (("1"
           (flatten)
           (assert)
           (split -7)
           (("1" (flatten) (assert))
            ("2"
             (flatten)
             (lemma "horizontal_los_inside_Theta")
             (inst? -1)
             (assert)
             (grind :exclude
              ("sqv" "vect2" "Theta_D" "Theta_H" "Delta")))))
          ("2" (propax))))))
      ("2" (assert))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: cd3d
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (skoletin 1)
   (flatten)
   (expand "detection")
   (lift-if)
   (split -3)
   (("1"
     (flatten)
     (assert)
     (split -3)
     (("1"
       (flatten)
       (assert)
       (lemma "vertical_los_inside_Theta")
       (inst? -1)
       (assert)
       (grind :exclude ("sqv" "vect2" "Theta_D" "Theta_H" "Delta")))
      ("2" (flatten) (assert) (replaces -1) (assert))))
    ("2"
     (flatten)
     (assert)
     (split -1)
     (("1"
       (flatten)
       (split -5)
       (("1" (flatten) (assert))
        ("2"
         (flatten)
         (assert)
         (split -1)
         (("1"
           (flatten)
           (assert)
           (lemma "vertical_los_inside_Theta")
           (inst?)
           (assert)
           (lemma "horizontal_los_inside_Theta")
           (inst?)
           (assert)
           (grind :exclude ("sqv" "vect2" "Theta_D" "Theta_H" "Delta")))
          ("2"
           (flatten)
           (assert)
           (lemma "horizontal_los_inside_Theta")
           (inst?)
           (assert)
           (grind :exclude
            ("sqv" "vect2" "Theta_D" "Theta_H" "Delta")))))))
      ("2"
       (flatten)
       (assert)
       (replace 2)
       (lemma "Delta_gt_0")
       (inst - "s" "v")
       (assert)
       (split 1)
       (("1" (ground))
        ("2" (expand "horizontal_conflict_ever?") (inst + "t"))))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: cd3d
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (name-replace "cd" "detection(s,v)" :hide? nil)
   (skoletin 1)
   (split)
   (("1"
     (flatten)
     (lemma "detection_complete")
     (expand "conflict_3D?")
     (skeep -2)
     (inst -1 "s" "t" "v")
     (replaces -5)
     (beta)
     (assert))
    ("2"
     (flatten)
     (lemma "detection_correct")
     (inst -1 "s" "(tin+tout)/2" "v")
     (("1"
       (replaces -5)
       (beta)
       (split)
       (("1"
         (expand "conflict_3D?")
         (inst 1 "(tin+tout)/2")
         (grind-reals))
        ("2" (replaces -3 :dir rl) (grind-reals)) ("3" (grind-reals))))
      ("2" (grind-reals))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: cd3d
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "cd3d?")
   (split)
   (("1"
     (flatten)
     (split -)
     (("1" (flatten) (assert))
      ("2"
       (flatten)
       (split -)
       (("1"
         (flatten)
         (assert)
         (hide 2)
         (split)
         (("1"
           (flatten)
           (lemma
            "cd2d[D * abs(v`z), max(-H - sign(v`z) * s`z, B * abs(v`z)),
                                                     min(H - sign(v`z) * s`z, T * abs(v`z))]")
           (("1"
             (inst?)
             (lemma
              "cd2d[D, max(Theta_H(s`z, v`z, -1), B), min(Theta_H(s`z, v`z, 1), T)]")
             (("1"
               (inst?)
               (replaces (-1 -2) :dir rl)
               (expand "conflict_2D?")
               (skosimp*)
               (inst + "t!1/abs(v`z)")
               (("1"
                 (rewrite "sqv_add")
                 (rewrite "sqv_add")
                 (rewrite "vect2_scal")
                 (rewrite "sqv_scal")
                 (rewrite "sqv_scal")
                 (rewrite "sqv_scal")
                 (rewrite "sq_div")
                 (mult-by 1 "sq(v`z)")
                 (rewrite "sq_times")
                 (expand "sq")
                 (hide-all-but (-3 1))
                 (grind))
                ("2"
                 (split 1)
                 (("1" (cross-mult 1))
                  ("2"
                   (assert)
                   (typepred "t!1")
                   (cross-mult 1)
                   (hide-all-but (-2 1))
                   (grind))
                  ("3"
                   (cross-mult 1)
                   (typepred "t!1")
                   (hide-all-but (-3 1))
                   (grind))))))
              ("2" (assert))))
            ("2"
             (lemma "posreal_times_posreal_is_posreal")
             (inst - "D" "abs(v`z)"))))
          ("2" (mult-by 1 "abs(v`z)") (hide-all-but (-1 1)) (grind))))
        ("2" (propax))))))
    ("2"
     (flatten)
     (split -1)
     (("1" (flatten) (assert))
      ("2"
       (flatten)
       (split -)
       (("1"
         (flatten)
         (assert)
         (hide 2)
         (split)
         (("1"
           (flatten)
           (lemma
            "cd2d[D, max(Theta_H(s`z, v`z, -1), B), min(Theta_H(s`z, v`z, 1), T)]")
           (inst?)
           (lemma
            "cd2d[D * abs(v`z), max(-H - sign(v`z) * s`z, B * abs(v`z)),
                                                     min(H - sign(v`z) * s`z, T * abs(v`z))]")
           (("1"
             (inst?)
             (replaces (-1 -2) :dir rl)
             (expand "conflict_2D?")
             (skosimp*)
             (inst + "t!1*abs(v`z)")
             (("1"
               (mult-by -3 "sq(v`z)")
               (("1" (hide-all-but (-3 1)) (grind))
                ("2" (lemma "sq_eq_0") (inst?) (assert))))
              ("2"
               (split 1)
               (("1"
                 (typepred "t!1")
                 (mult-by -2 "abs(v`z)")
                 (hide-all-but (-1 1))
                 (grind)
                 (("1" (cross-mult -2)) ("2" (cross-mult 1))
                  ("3" (cross-mult -1)) ("4" (cross-mult 2))))
                ("2"
                 (typepred "t!1")
                 (mult-by -3 "abs(v`z)")
                 (hide-all-but (-1 1))
                 (grind)
                 (("1" (cross-mult -2)) ("2" (cross-mult 1))
                  ("3" (cross-mult -1)) ("4" (cross-mult 2))))))))
            ("2" (assert))
            ("3"
             (lemma "posreal_times_posreal_is_posreal")
             (inst - "D" "abs(v`z)"))))
          ("2"
           (mult-by -1 "abs(v`z)")
           (hide -2)
           (lemma "nneg_mult_max")
           (inst - "abs(v`z)" "Theta_H(s`z, v`z, -1)" "B")
           (replace -1)
           (hide -1)
           (lemma "nneg_mult_min")
           (inst - "abs(v`z)" "Theta_H(s`z, v`z, 1)" "T")
           (replace -1)
           (hide -1)
           (grind))))
        ("2" (propax))))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: cd3d
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "cd3d?")
   (expand "cd2d?")
   (expand "omega_vv")
   (expand "tau_vv")
   (replace -1)
   (replace -2)
   (replace -3)
   (replace -4)
   (replace -5)
   (replace -6)
   (replace -7)
   (hide -)
   (grind))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: cd3d
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "cd3d?")
   (split -1)
   (("1"
     (flatten)
     (rewrite "cd2d" :dir rl)
     (expand "conflict_2D?")
     (skosimp*)
     (expand "conflict_3D?")
     (inst + "t!1")
     (assert))
    ("2"
     (flatten)
     (split -1)
     (("1"
       (flatten)
       (hide 2)
       (lemma "conflict_3D_2D_stable")
       (inst?)
       (assert)
       (rewrite "cd2d")
       (lemma "posreal_times_posreal_is_posreal")
       (inst - "D" "abs(v`z)"))
      ("2" (propax))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: cd3d
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "cd3d?")
   (split 1)
   (("1"
     (flatten)
     (rewrite "cd2d" :dir rl)
     (expand "conflict_3D?")
     (skosimp*)
     (expand "conflict_2D?")
     (inst + "t!1"))
    ("2"
     (flatten)
     (split 2)
     (("1"
       (flatten)
       (lemma "conflict_3D_2D_stable")
       (inst - "s" "v")
       (assert)
       (rewrite "cd2d")
       (lemma "posreal_times_posreal_is_posreal")
       (inst - "D" "abs(v`z)"))
      ("2"
       (case "v`z = 0")
       (("1" (assert) (expand "conflict_3D?") (propax))
        ("2"
         (hide 3)
         (assert)
         (lemma "conflict_3D_on_open_interval")
         (inst - "s" "v")
         (assert)
         (skosimp*)
         (lemma "vertical_los_inside_Theta")
         (inst - "abs(v`z)" "sign(v`z)*s`z" "topen!1")
         (flatten)
         (hide -1)
         (split -1)
         (("1"
           (flatten)
           (expand "Theta_H")
           (cross-mult -1)
           (case "sign(abs(v`z)) = 1")
           (("1"
             (replace -1)
             (hide -1)
             (assert)
             (cross-mult -2)
             (mult-by -3 "abs(v`z)")
             (mult-by -4 "abs(v`z)")
             (typepred "T")
             (mult-by -3 "abs(v`z)")
             (hide-all-but (-3 -4 -5 -6 +))
             (typepred "topen!1")
             (mult-by -2 "abs(v`z)")
             (mult-by -3 "abs(v`z)")
             (grind))
            ("2" (expand "sign") (propax))))
          ("2" (hide-all-but (-4 1)) (grind))))))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: cd3d
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (lemma "conflict_3D_vertical")
   (inst - "s" "v")
   (lemma "cd3d")
   (inst?)
   (split +)
   (("1"
     (flatten +)
     (assert)
     (case "vect2(v) = zero")
     (("1"
       (expand "conflict_3D?")
       (skosimp*)
       (replace -1)
       (assert)
       (lemma "cd_vertical[H,B,T]")
       (inst?)
       (assert)
       (expand "conflict_vertical?")
       (inst + "t!1"))
      ("2"
       (assert)
       (hide 2)
       (lemma "Delta_gt_0")
       (inst - "s" "v")
       (assert)
       (split -1)
       (("1"
         (assert)
         (case "max(Theta_D(vect2(s), vect2(v), -1), B) <
                                                min(Theta_D(vect2(s), vect2(v), 1), T)")
         (("1"
           (assert)
           (lemma
            "cd_vertical[H, max(Theta_D(vect2(s), vect2(v), -1), B),
                                 min(Theta_D(vect2(s), vect2(v), 1), T)]")
           (inst?)
           (assert))
          ("2"
           (lemma "conflict_3D_on_open_interval")
           (inst?)
           (assert)
           (skosimp*)
           (lemma "horizontal_los_inside_Theta")
           (inst - "v" "s" "topen!1")
           (assert)
           (flatten)
           (hide-all-but (-1 -2 -3 -4 1))
           (grind :exclude "Theta_D"))))
        ("2"
         (expand "conflict_3D?")
         (skosimp*)
         (expand "horizontal_conflict_ever?")
         (inst + "t!1"))))))
    ("2"
     (flatten +)
     (split -1)
     (("1"
       (flatten)
       (lemma "cd_vertical[H,B,T]")
       (inst?)
       (assert)
       (expand "conflict_vertical?")
       (skosimp*)
       (expand "conflict_3D?")
       (inst + "t!1")
       (assert)
       (replace -2)
       (assert))
      ("2"
       (flatten)
       (assert)
       (lemma
        "cd_vertical[H, max(Theta_D(vect2(s), vect2(v), -1), B),
                         min(Theta_D(vect2(s), vect2(v), 1), T)]")
       (inst?)
       (assert)
       (flatten)
       (lemma "Delta_gt_0_nzv")
       (inst?)
       (assert))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: cd3d
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (lemma "vertical_solution_vertical_sep")
   (inst?)
   (assert)
   (expand "conflict_3D?")
   (skeep -3)
   (inst -1 "t")
   (assert))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: cd3d
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (lemma "circle_solution_2D_horizontal_sep")
   (inst? -1)
   (assert)
   (expand "conflict_3D?")
   (skeep -3)
   (inst -1 "t")
   (assert))


proof_type: t_proof
decl_type: tcc
library: ACCoRD
theory: cd3d
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (hide -1)
   (lemma "nnreal_times_nnreal_is_nnreal")
   (inst - "B" "abs(v`z)")
   (lemma "nnreal_times_nnreal_is_nnreal")
   (inst - "T" "abs(v`z)")
   (grind))


proof_type: t_proof
decl_type: tcc
library: ACCoRD
theory: cd3d
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (case "min(max(-H - sign(v`z) * s`z, B * abs(v`z)), T * abs(v`z))>=0")
   (("1" (assert))
    ("2"
     (hide-all-but (1 2))
     (lemma "nnreal_times_nnreal_is_nnreal")
     (inst - "B" "abs(v`z)")
     (lemma "nnreal_times_nnreal_is_nnreal")
     (inst - "T" "abs(v`z)")
     (grind))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: vs_bands
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (split +)
   (("1"
     (flatten)
     (split -)
     (("1"
       (flatten)
       (replace -1)
       (hide -1)
       (replace -1)
       (hide -1)
       (expand "abs")
       (lift-if)
       (split -2)
       (("1"
         (flatten)
         (neg-formula -2)
         (replace -1)
         (case "vsp - viz < 0")
         (("1"
           (case "sz + B*(vsp-viz) > -H")
           (("1"
             (copy 2)
             (expand "conflict_vertical?")
             (inst + "B")
             (case "sz + B*(vsp-viz) >= H")
             (("1"
               (name "newt" "-sz/(vsp-viz)")
               (("1"
                 (case "B <= newt and newt <= T")
                 (("1"
                   (flatten)
                   (inst + "newt")
                   (("1"
                     (case "sz + newt*(vsp-viz) = 0")
                     (("1" (assert))
                      ("2"
                       (replace -3 :dir rl)
                       (name "const3" "vsp-viz")
                       (replace -1)
                       (both-sides "-" "sz" 1)
                       (("1" (assert) (cross-mult 1)) ("2" (assert))))))
                    ("2" (assert))))
                  ("2"
                   (replace -1 :dir rl)
                   (split 1)
                   (("1"
                     (cross-mult 1)
                     (typepred "T")
                     (mult-by -3 "viz-vsp")
                     (assert))
                    ("2"
                     (cross-mult 1)
                     (typepred "T")
                     (mult-by -3 "viz-vsp")
                     (assert))))))
                ("2" (assert))))
              ("2" (expand "abs" 2) (lift-if) (ground))))
            ("2" (mult-by -1 "T-B") (assert))))
          ("2" (mult-by 2 "H") (mult-by 1 "H") (assert))))
        ("2"
         (flatten)
         (replace -1)
         (case "vsp > viz")
         (("1"
           (case "sz + B*(vsp-viz) < H")
           (("1"
             (hide 1)
             (copy 2)
             (expand "conflict_vertical?")
             (inst + "B")
             (("1"
               (case "sz + B*(vsp-viz) <= -H")
               (("1"
                 (name "newt" "-sz/(vsp-viz)")
                 (("1"
                   (case "B <= newt and newt <= T")
                   (("1"
                     (flatten)
                     (inst + "newt")
                     (("1"
                       (case "sz + newt*(vsp-viz) = 0")
                       (("1" (assert))
                        ("2"
                         (replace -3 :dir rl)
                         (name "const3" "vsp-viz")
                         (replace -1)
                         (both-sides "-" "sz" 1)
                         (("1" (assert) (cross-mult 1))
                          ("2" (assert))))))
                      ("2" (assert))))
                    ("2"
                     (replace -1 :dir rl)
                     (split 1)
                     (("1"
                       (cross-mult 1)
                       (typepred "T")
                       (mult-by -3 "vsp-viz")
                       (assert))
                      ("2"
                       (cross-mult 1)
                       (typepred "T")
                       (mult-by -3 "vsp-viz")
                       (assert))))))
                  ("2" (assert))))
                ("2" (expand "abs" 2) (lift-if) (ground))))
              ("2" (assert))))
            ("2" (typepred "T") (mult-by -3 "vsp-viz") (assert))))
          ("2" (mult-by 1 "H") (mult-by 3 "H") (assert))))))
      ("2"
       (flatten)
       (replace -1)
       (hide -1)
       (replace -1)
       (hide -1)
       (expand "abs")
       (lift-if)
       (split -)
       (("1"
         (flatten)
         (neg-formula -2)
         (replace -1)
         (case "vsp>viz")
         (("1"
           (case "sz + T*(vsp-viz) > -H")
           (("1"
             (copy 2)
             (expand "conflict_vertical?")
             (inst + "T")
             (("1"
               (case "sz + T*(vsp-viz) >= H")
               (("1"
                 (name "newt" "-sz/(vsp-viz)")
                 (("1"
                   (case "B <= newt and newt <= T")
                   (("1"
                     (flatten)
                     (case "sz + newt*(vsp-viz) = 0")
                     (("1"
                       (inst + "newt")
                       (("1" (assert)) ("2" (assert))))
                      ("2"
                       (replace -3 :dir rl)
                       (name "const3" "vsp-viz")
                       (replace -1)
                       (both-sides "-" "sz" 1)
                       (("1" (assert) (cross-mult 1)) ("2" (assert))))))
                    ("2"
                     (replace -1 :dir rl)
                     (split +)
                     (("1"
                       (cross-mult 1)
                       (typepred "T")
                       (mult-by -2 "vsp-viz")
                       (assert))
                      ("2"
                       (cross-mult 1)
                       (typepred "T")
                       (mult-by -3 "vsp-viz")
                       (assert))))))
                  ("2" (assert))))
                ("2" (expand "abs" 2) (lift-if) (ground))))
              ("2" (assert))))
            ("2" (typepred "T") (mult-by -3 "vsp-viz") (assert))))
          ("2" (mult-by 1 "H") (mult-by 2 "H") (assert))))
        ("2"
         (flatten)
         (replace -1)
         (hide 1)
         (case "vsp < viz")
         (("1"
           (case "sz + T*(vsp-viz) < H")
           (("1"
             (copy 2)
             (expand "conflict_vertical?")
             (inst + "T")
             (("1"
               (case "sz + T*(vsp-viz) <= -H")
               (("1"
                 (name "newt" "-sz/(vsp-viz)")
                 (("1"
                   (case "B <= newt and newt <= T")
                   (("1"
                     (flatten)
                     (case "sz + newt*(vsp-viz) = 0")
                     (("1"
                       (inst + "newt")
                       (("1" (assert)) ("2" (assert))))
                      ("2"
                       (replace -3 :dir rl)
                       (name "const3" "vsp-viz")
                       (replace -1)
                       (both-sides "-" "sz" 1)
                       (("1" (assert) (cross-mult 1)) ("2" (assert))))))
                    ("2"
                     (replace -1 :dir rl)
                     (split +)
                     (("1"
                       (cross-mult 1)
                       (typepred "T")
                       (mult-by -3 "viz-vsp")
                       (assert))
                      ("2"
                       (cross-mult 1)
                       (typepred "T")
                       (mult-by -3 "viz-vsp")
                       (assert))))))
                  ("2" (assert))))
                ("2" (expand "abs") (lift-if) (ground))))
              ("2" (assert))))
            ("2" (typepred "T") (mult-by -3 "viz-vsp") (assert))))
          ("2" (mult-by 1 "H") (mult-by 2 "H") (assert))))))))
    ("2"
     (flatten)
     (case "vsp - viz = 0")
     (("1" (replace -1) (assert))
      ("2"
       (replace 1)
       (split -)
       (("1"
         (flatten)
         (replace -1)
         (hide -1)
         (replace -1)
         (hide -1)
         (expand "abs")
         (lift-if)
         (split -)
         (("1"
           (flatten)
           (expand "conflict_vertical?")
           (skosimp*)
           (neg-formula -2)
           (replace -1)
           (case "vsp < viz")
           (("1" (mult-by -1 "H") (assert))
            ("2" (mult-by 1 "T-t!1") (expand "abs") (lift-if) (ground))))
          ("2"
           (flatten)
           (replace -1)
           (case "vsp > viz")
           (("1" (mult-by -1 "H") (assert))
            ("2"
             (expand "conflict_vertical?")
             (skosimp*)
             (mult-by 1 "T-t!1")
             (expand "abs")
             (lift-if)
             (ground))))))
        ("2"
         (flatten)
         (replace -1)
         (hide -1)
         (replace -1)
         (hide -1)
         (expand "abs")
         (lift-if)
         (split -)
         (("1"
           (flatten)
           (neg-formula -2)
           (replace -1)
           (case "vsp > viz")
           (("1" (mult-by -1 "H") (assert))
            ("2"
             (expand "conflict_vertical?")
             (skosimp*)
             (mult-by 1 "t!1-B")
             (expand "abs")
             (lift-if)
             (ground))))
          ("2"
           (flatten)
           (replace -1)
           (case "vsp < viz")
           (("1" (mult-by -1 "H") (assert))
            ("2"
             (expand "conflict_vertical?")
             (skosimp*)
             (mult-by 1 "t!1-B")
             (expand "abs")
             (lift-if)
             (ground))))))))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: vs_bands
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: stop infinite loop on mult-by -1
script:
  (""
   (skeep)
   (case "B = 0")
   (("1"
     (replace -1)
     (assert)
     (hide -1)
     (expand "sign" -3)
     (case "T * vsp1 - T * viz + sz >= 0")
     (("1"
       (assert)
       (lift-if)
       (ground)
       (expand "abs" (-1 -2 -3 -4))
       (hide -1)
       (hide -1)
       (case "sz + tlh*(vsp2-viz) < H")
       (("1"
         (hide -4)
         (name "newt" "(H-sz+T*viz)/T")
         (case "sz + T*(newt-viz) = H")
         (("1"
           (inst + "newt")
           (("1"
             (expand "abs" +)
             (assert)
             (lemma "vs_bands_vertical_dir_exclusive")
             (inst - "T" "1" "sz" "viz" "newt")
             (expand "abs" -1)
             (expand "conflict_vertical?")
             (skosimp*)
             (case "newt-viz = (H-sz)/T")
             (("1"
               (mult-by -1 "t!1")
               (replace -1)
               (hide -1)
               (case "sz + ((H-sz)/T)*t!1<H")
               (("1"
                 (hide -2)
                 (mult-by -1 "T")
                 (mult-by -5 "T-t!1")
                 (assert))
                ("2" (expand "abs" -1) (lift-if) (ground))))
              ("2" (replace -3 :dir rl) (mult-by 1 "T"))))
            ("2"
             (case "vsp2 < viz")
             (("1"
               (case "sz + T*(vsp2-viz) < H")
               (("1"
                 (typepred "band")
                 (inst - "vsp2" "vsp1" "newt")
                 (assert)
                 (replace -4 :dir rl)
                 (split 1)
                 (("1" (cross-mult 1)) ("2" (cross-mult 1))))
                ("2" (mult-by -1 "T-tlh") (assert))))
              ("2" (mult-by 1 "tlh") (assert))))))
          ("2" (replace -1 :dir rl) (mult-by 1 "T") (assert))))
        ("2" (expand "abs") (lift-if) (ground))))
      ("2"
       (ground)
       (expand "abs" (-1 -2))
       (neg-formula -1)
       (neg-formula -2)
       (case "sz + tlh*(vsp2-viz) > -H")
       (("1"
         (assert)
         (case "sz >= 0")
         (("1" (assert))
          ("2"
           (assert)
           (hide -4)
           (name "newt" "(-H-sz+T*viz)/T")
           (case "sz + T*(newt-viz) = -H")
           (("1"
             (inst + "newt")
             (("1"
               (expand "abs" +)
               (assert)
               (lemma "vs_bands_vertical_dir_exclusive")
               (inst - "T" "1" "sz" "viz" "newt")
               (expand "abs" -1)
               (expand "conflict_vertical?")
               (skosimp*)
               (case "newt-viz = (-H-sz)/T")
               (("1"
                 (case "newt*t!1 - viz*t!1 = (-H - sz) / T*t!1")
                 (("1"
                   (hide -2)
                   (hide -1)
                   (case "sz + ((-H-sz)/T)*t!1>-H")
                   (("1"
                     (hide -2)
                     (case " sz*T  + ((-H - sz)) * t!1 > -H*T")
                     (("1" (hide -2) (mult-by -6 "T-t!1") (assert))
                      ("2"
                       (hide-all-but (-1 1))
                       (name-replace "div_T" "(-H - sz) / T")
                       (mult-by -1 "T")
                       (expand "div_T")
                       (assert))))
                    ("2"
                     (hide 3 4)
                     (replace -3 :dir rl :hide? t)
                     (grind-reals))))
                  ("2" (ground))))
                ("2" (hide-all-but (-1 1)) (cross-mult 1))))
              ("2"
               (case "vsp2 > viz")
               (("1"
                 (case "sz + T*(vsp2-viz) > -H")
                 (("1"
                   (typepred "band")
                   (inst - "vsp1" "vsp2" "newt")
                   (assert)
                   (replace -4 :dir rl)
                   (split 1)
                   (("1" (cross-mult 1)) ("2" (cross-mult 1))))
                  ("2" (mult-by -1 "T-tlh") (assert))))
                ("2" (mult-by 1 "tlh") (assert))))))
            ("2" (replace -1 :dir rl) (mult-by 1 "T") (assert))))))
        ("2" (expand "abs" -) (lift-if) (assert))))))
    ("2"
     (assert)
     (expand "sign" -)
     (lift-if)
     (lift-if)
     (ground)
     (("1"
       (expand "abs" (-1 -2 -3 -4))
       (hide -1)
       (hide -1)
       (case "sz + tlh*(vsp2-viz) < H")
       (("1"
         (hide -4)
         (name "newtb" "(H-sz+B*viz)/B")
         (label "newtbname" -1)
         (case "sz + B*(newtb-viz) = H")
         (("1"
           (name "newtt" "(H-sz+T*viz)/T")
           (label "newttname" -1)
           (case "sz + T*(newtt-viz) = H")
           (("1"
             (case "vsp2 >= viz")
             (("1"
               (case "sz + B*(vsp2-viz) < H")
               (("1"
                 (inst + "newtb")
                 (("1"
                   (flatten)
                   (hide 3)
                   (expand "abs" +)
                   (assert)
                   (lemma "vs_bands_vertical_dir_exclusive")
                   (inst - "B" "-1" "sz" "viz" "newtb")
                   (expand "abs" -1)
                   (expand "conflict_vertical?")
                   (skosimp*)
                   (case "sz + t!1*(newtb - viz) < H")
                   (("1"
                     (hide -2)
                     (case "newtb - viz = (H-sz)/B")
                     (("1"
                       (replace -1)
                       (hide -1)
                       (both-sides "-" "sz" -1)
                       (("1"
                         (assert)
                         (cross-mult -1)
                         (case "H < sz")
                         (("1" (mult-by -4 "B") (assert))
                          ("2" (mult-by 1 "(t!1-B)") (assert))))
                        ("2" (assert))))
                      ("2"
                       (replace "newtbname" :dir rl)
                       (mult-by 1 "B"))))
                    ("2" (expand "abs" -1) (assert))))
                  ("2"
                   (typepred "band")
                   (inst - "vsp2" "vsp1" "newtb")
                   (assert)
                   (replace "newtbname" + :dir rl)
                   (split 1)
                   (("1" (cross-mult 1)) ("2" (cross-mult 1))))))
                ("2" (mult-by -1 "tlh-B") (assert))))
              ("2"
               (case "vsp2 < viz")
               (("1"
                 (hide 1)
                 (case "H>sz")
                 (("1"
                   (case "sz + B*(vsp2-viz) < H")
                   (("1"
                     (inst + "newtb")
                     (("1"
                       (flatten)
                       (hide 3)
                       (expand "abs" +)
                       (assert)
                       (lemma "vs_bands_vertical_dir_exclusive")
                       (inst - "B" "-1" "sz" "viz" "newtb")
                       (expand "abs" -1)
                       (expand "conflict_vertical?")
                       (skosimp*)
                       (case "sz + t!1*(newtb - viz) < H")
                       (("1"
                         (hide -2)
                         (case "newtb - viz = (H-sz)/B")
                         (("1"
                           (replace -1)
                           (hide -1)
                           (both-sides "-" "sz" -1)
                           (("1"
                             (assert)
                             (cross-mult -1)
                             (mult-by -3 "t!1-B")
                             (assert))
                            ("2" (assert))))
                          ("2"
                           (replace "newtbname" :dir rl)
                           (mult-by 1 "B"))))
                        ("2" (expand "abs" -1) (assert))))
                      ("2"
                       (typepred "band")
                       (inst - "vsp2" "vsp1" "newtb")
                       (assert)
                       (replace "newtbname" + :dir rl)
                       (split 1)
                       (("1" (cross-mult 1)) ("2" (cross-mult 1))))))
                    ("2" (mult-by -2 "B") (assert))))
                  ("2"
                   (case "sz + T*(vsp2-viz) < H")
                   (("1"
                     (inst + "newtt")
                     (("1"
                       (flatten)
                       (hide 3)
                       (expand "abs" +)
                       (assert)
                       (lemma "vs_bands_vertical_dir_exclusive")
                       (inst - "T" "1" "sz" "viz" "newtt")
                       (expand "abs" -1)
                       (expand "conflict_vertical?")
                       (skosimp*)
                       (case "sz + t!1*(newtt-viz) < H")
                       (("1"
                         (hide -2)
                         (case "newtt - viz = (H-sz)/T")
                         (("1"
                           (replace -1)
                           (hide -1)
                           (assert)
                           (case "t!1 * ((H - sz) / T) + sz - sz < H - sz")
                           (("1"
                             (hide -2)
                             (assert)
                             (mult-by 1 "T-t!1")
                             (cross-mult -1)
                             (assert))
                            ("2" (assert))))
                          ("2" (assert))))
                        ("2" (expand "abs" -1) (lift-if) (assert))))
                      ("2"
                       (typepred "band")
                       (inst - "vsp2" "vsp1" "newtt")
                       (split -1)
                       (("1" (propax))
                        ("2"
                         (replace "newttname" + :dir rl)
                         (cross-mult 1)
                         (assert))
                        ("3"
                         (replace "newttname" + :dir rl)
                         (cross-mult 1)
                         (assert))))))
                    ("2" (mult-by -1 "T-tlh") (assert))))))
                ("2" (assert))))))
            ("2"
             (replace "newttname" + :dir rl)
             (mult-by 1 "T")
             (assert))))
          ("2"
           (replace "newtbname" + :dir rl)
           (mult-by 1 "B")
           (assert))))
        ("2" (expand "abs" -) (lift-if) (assert))))
      ("2"
       (lift-if)
       (ground)
       (expand "abs" (-1 -2))
       (neg-formula -1)
       (neg-formula -2)
       (hide 1)
       (hide 1)
       (case "sz + tlh*(vsp2-viz) > -H")
       (("1"
         (hide -4)
         (name "newtb" "(-H-sz+B*viz)/B")
         (label "newtbname" -1)
         (case "sz + B*(newtb-viz) = -H")
         (("1"
           (name "newtt" "(-H-sz+T*viz)/T")
           (label "newttname" -1)
           (case "sz + T*(newtt-viz) = -H")
           (("1"
             (case "vsp2 <= viz")
             (("1"
               (case "sz + B*(vsp2-viz) > -H")
               (("1"
                 (inst + "newtb")
                 (("1"
                   (flatten)
                   (hide 3)
                   (expand "abs" +)
                   (assert)
                   (lemma "vs_bands_vertical_dir_exclusive")
                   (inst - "B" "-1" "sz" "viz" "newtb")
                   (expand "abs" -1)
                   (expand "conflict_vertical?")
                   (skosimp*)
                   (case "sz + t!1*(newtb - viz) > -H")
                   (("1"
                     (hide -2)
                     (case "newtb - viz = (-H-sz)/B")
                     (("1"
                       (replace -1)
                       (hide -1)
                       (both-sides "-" "sz" -1)
                       (("1"
                         (assert)
                         (cross-mult -1)
                         (case "-H > sz")
                         (("1" (mult-by -4 "B") (assert))
                          ("2" (mult-by 1 "(t!1-B)") (assert))))
                        ("2" (assert))))
                      ("2"
                       (replace "newtbname" :dir rl)
                       (mult-by 1 "B"))))
                    ("2" (expand "abs" -1) (assert))))
                  ("2"
                   (typepred "band")
                   (inst - "vsp1" "vsp2" "newtb")
                   (assert)
                   (replace "newtbname" + :dir rl)
                   (split 1)
                   (("1" (cross-mult 1)) ("2" (cross-mult 1))))))
                ("2" (mult-by -1 "tlh-B") (assert))))
              ("2"
               (case "vsp2 > viz")
               (("1"
                 (hide 1)
                 (case "-H < sz")
                 (("1"
                   (case "sz + B*(vsp2-viz) > -H")
                   (("1"
                     (inst + "newtb")
                     (("1"
                       (flatten)
                       (hide 3)
                       (expand "abs" +)
                       (assert)
                       (lemma "vs_bands_vertical_dir_exclusive")
                       (inst - "B" "-1" "sz" "viz" "newtb")
                       (expand "abs" -1)
                       (expand "conflict_vertical?")
                       (skosimp*)
                       (case "sz + t!1*(newtb - viz) > -H")
                       (("1"
                         (hide -2)
                         (case "newtb - viz = (-H-sz)/B")
                         (("1"
                           (replace -1)
                           (hide -1)
                           (case "sz + t!1 * ((-H - sz) / B) - sz > -H - sz")
                           (("1"
                             (hide -2)
                             (assert)
                             (cross-mult -1)
                             (mult-by -3 "t!1-B")
                             (assert))
                            ("2" (assert))))
                          ("2"
                           (replace "newtbname" :dir rl)
                           (mult-by 1 "B"))))
                        ("2" (expand "abs" -1) (assert))))
                      ("2"
                       (typepred "band")
                       (inst - "vsp1" "vsp2" "newtb")
                       (assert)
                       (replace "newtbname" + :dir rl)
                       (split 1)
                       (("1" (cross-mult 1)) ("2" (cross-mult 1))))))
                    ("2" (mult-by -2 "B") (assert))))
                  ("2"
                   (case "sz + T*(vsp2-viz) > -H")
                   (("1"
                     (inst + "newtt")
                     (("1"
                       (flatten)
                       (hide 3)
                       (expand "abs" +)
                       (assert)
                       (lemma "vs_bands_vertical_dir_exclusive")
                       (inst - "T" "1" "sz" "viz" "newtt")
                       (expand "abs" -1)
                       (expand "conflict_vertical?")
                       (skosimp*)
                       (case "sz + t!1*(newtt-viz) > -H")
                       (("1"
                         (hide -2)
                         (case "newtt - viz = (-H-sz)/T")
                         (("1"
                           (replace -1)
                           (hide -1)
                           (case "sz + t!1 * ((-H - sz) / T) - sz > -H - sz")
                           (("1"
                             (hide -2)
                             (assert)
                             (mult-by 1 "T-t!1")
                             (cross-mult -1)
                             (assert))
                            ("2" (assert))))
                          ("2"
                           (replace "newttname" + :dir rl)
                           (mult-by 1 "T"))))
                        ("2" (expand "abs" -1) (lift-if) (assert))))
                      ("2"
                       (typepred "band")
                       (inst - "vsp1" "vsp2" "newtt")
                       (split -1)
                       (("1" (propax))
                        ("2"
                         (replace "newttname" + :dir rl)
                         (cross-mult 1))
                        ("3"
                         (replace "newttname" + :dir rl)
                         (cross-mult 1)
                         (assert))))))
                    ("2" (assert) (mult-by -1 "T-tlh") (assert))))))
                ("2" (assert))))))
            ("2"
             (replace "newttname" + :dir rl)
             (mult-by 1 "T")
             (assert))))
          ("2"
           (replace "newtbname" + :dir rl)
           (mult-by 1 "B")
           (assert))))
        ("2" (expand "abs" -) (lift-if) (assert))))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: vs_bands
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "sign" +)
   (lift-if)
   (split +)
   (("1"
     (flatten)
     (expand "abs")
     (assert)
     (hide -1)
     (copy -1)
     (mult-by -1 "(vsp-viz)")
     (assert)
     (replace -1)
     (case "vsp >= viz")
     (("1" (copy -1) (mult-by -1 "B") (mult-by -2 "H") (assert))
      ("2" (copy 1) (mult-by 1 "B") (mult-by 2 "H") (assert))))
    ("2"
     (flatten)
     (expand "abs")
     (assert)
     (neg-formula -1)
     (copy -1)
     (mult-by -1 "vsp-viz")
     (assert)
     (replace -1)
     (case "vsp <= viz")
     (("1" (copy -1) (mult-by -1 "B") (mult-by -2 "H") (assert))
      ("2" (copy 1) (mult-by 1 "B") (mult-by 2 "H") (assert))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: vs_bands
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "sign" 1)
   (lift-if)
   (split)
   (("1"
     (flatten)
     (expand "abs")
     (assert)
     (hide -1)
     (copy -1)
     (mult-by -1 "viz-vsp")
     (assert)
     (replace -1)
     (case "viz >= vsp")
     (("1" (copy -1) (mult-by -1 "T") (mult-by -2 "H") (assert))
      ("2" (copy 1) (mult-by 1 "T") (mult-by 2 "H") (assert))))
    ("2"
     (flatten)
     (expand "abs")
     (assert)
     (copy -1)
     (mult-by -1 "vsp-viz")
     (assert)
     (replace -1)
     (case "vsp >= viz")
     (("1" (copy -1) (mult-by -1 "T") (mult-by -2 "H") (assert))
      ("2" (copy 1) (mult-by 1 "T") (mult-by 2 "H") (assert))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: vs_bands
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "vs_band?")
   (split)
   (("1"
     (flatten)
     (expand "vs_green?")
     (skosimp*)
     (case "sign(sz!1 + B*(vsp!1-viz!1)) = sign(sz!1 + T*(vsp!1-viz!1))")
     (("1"
       (lemma "cd_vertical")
       (inst-cp - "sz!1" "vsp!1-viz!1")
       (inst - "sz!1" "vsp!2-viz!1")
       (assert)
       (copy 1)
       (copy 1)
       (expand "conflict_vertical?" 1)
       (expand "conflict_vertical?" 2)
       (inst + "B")
       (inst + "T")
       (expand "conflict_vertical?" -)
       (skosimp*)
       (lemma "band_critical_on_H")
       (inst - "band!1" "sz!1" "viz!1" "vsp!1" "vsp!2" "t!1")
       (assert)
       (skosimp*)
       (inst - "vsp!3")
       (expand "vs_critical?")
       (lemma "vs_circle_at_complete")
       (inst?)
       (assert)
       (flatten)
       (copy 1)
       (inst + "-1")
       (inst + "1")
       (lemma "vs_at_complete")
       (inst-cp -1 "-1" "T" "sz!1" "vsp!3-viz!1")
       (inst -1 "1" "T" "sz!1" "vsp!3-viz!1")
       (case "B = 0")
       (("1"
         (assert)
         (expand "abs" -4)
         (lift-if)
         (split -4)
         (("1" (flatten) (assert)) ("2" (flatten) (assert))))
        ("2"
         (lemma "vs_at_complete")
         (inst-cp -1 "-1" "B" "sz!1" "vsp!3-viz!1")
         (("1"
           (inst -1 "1" "B" "sz!1" "vsp!3-viz!1")
           (("1"
             (assert)
             (copy 4)
             (inst + "-1")
             (inst + "1")
             (expand "abs" -5)
             (split -5)
             (("1"
               (flatten)
               (lift-if)
               (split -1)
               (("1" (flatten) (assert)) ("2" (flatten) (assert))))
              ("2"
               (flatten)
               (lift-if)
               (split -1)
               (("1" (flatten) (assert)) ("2" (flatten) (assert))))))
            ("2" (assert))))
          ("2" (assert))))))
      ("2"
       (lemma "cd_vertical")
       (inst - "sz!1" "vsp!1-viz!1")
       (assert)
       (hide 3)
       (expand "conflict_vertical?" +)
       (case "vsp!1-viz!1 = 0")
       (("1" (copy -1) (mult-by -1 "B") (mult-by -2 "T") (assert))
        ("2"
         (name "newt" "-sz!1/(vsp!1-viz!1)")
         (case "sz!1 + newt*(vsp!1-viz!1) = 0")
         (("1"
           (inst + "newt")
           (("1" (assert))
            ("2"
             (case "B <= newt AND newt <= T")
             (("1" (flatten) (assert))
              ("2"
               (hide 2)
               (replace -2 + :dir rl)
               (split +)
               (("1"
                 (case "vsp!1 > viz!1")
                 (("1"
                   (cross-mult 1)
                   (expand "sign" +)
                   (lift-if)
                   (lift-if)
                   (ground)
                   (typepred "T")
                   (mult-by -3 "vsp!1-viz!1")
                   (assert))
                  ("2"
                   (cross-mult 2)
                   (expand "sign" +)
                   (lift-if)
                   (lift-if)
                   (ground)
                   (typepred "T")
                   (mult-by -3 "viz!1-vsp!1")
                   (assert))))
                ("2"
                 (case "vsp!1 > viz!1")
                 (("1"
                   (cross-mult 1)
                   (expand "sign" +)
                   (lift-if)
                   (lift-if)
                   (ground)
                   (typepred "T")
                   (mult-by -3 "vsp!1-viz!1")
                   (assert))
                  ("2"
                   (cross-mult 2)
                   (expand "sign" +)
                   (lift-if)
                   (lift-if)
                   (ground)
                   (typepred "T")
                   (mult-by -3 "viz!1-vsp!1")
                   (assert))))))))))
          ("2"
           (replace -1 :dir rl)
           (name "const1" "vsp!1-viz!1")
           (replace -1)
           (both-sides "-" "sz!1" 1)
           (("1" (assert) (cross-mult 1)) ("2" (assert))))))))))
    ("2"
     (flatten)
     (lemma "cd_vertical")
     (inst - "sz!1" "vsp!1-viz!1")
     (assert)
     (expand "vs_green?")
     (inst - "vsp!1"))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: vs_bands
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skosimp*)
   (expand "vs_band?")
   (split)
   (("1"
     (flatten)
     (expand "vs_red?")
     (skosimp*)
     (case "sign(sz!1 + B*(vsp!2-viz!1)) = sign(sz!1 + T*(vsp!2-viz!1))")
     (("1"
       (lemma "cd_vertical")
       (inst-cp - "sz!1" "vsp!1-viz!1")
       (inst - "sz!1" "vsp!2-viz!1")
       (assert)
       (hide 1)
       (hide -3)
       (copy 1)
       (copy 1)
       (expand "conflict_vertical?" 1)
       (expand "conflict_vertical?" 2)
       (inst + "B")
       (inst + "T")
       (expand "conflict_vertical?" -)
       (skosimp*)
       (lemma "band_critical_on_H")
       (inst - "band!1" "sz!1" "viz!1" "vsp!2" "vsp!1" "t!1")
       (assert)
       (skosimp*)
       (inst - "vsp!3")
       (expand "vs_critical?")
       (lemma "vs_circle_at_complete")
       (inst?)
       (assert)
       (flatten)
       (copy 1)
       (inst + "-1")
       (inst + "1")
       (lemma "vs_at_complete")
       (inst-cp -1 "-1" "T" "sz!1" "vsp!3-viz!1")
       (inst -1 "1" "T" "sz!1" "vsp!3-viz!1")
       (case "B = 0")
       (("1"
         (assert)
         (expand "abs" -4)
         (flatten)
         (lift-if)
         (split -4)
         (("1" (flatten) (assert)) ("2" (flatten) (assert))))
        ("2"
         (lemma "vs_at_complete")
         (inst-cp -1 "-1" "B" "sz!1" "vsp!3-viz!1")
         (("1"
           (inst -1 "1" "B" "sz!1" "vsp!3-viz!1")
           (("1"
             (assert)
             (copy 4)
             (inst + "-1")
             (inst + "1")
             (expand "abs" -5)
             (split -5)
             (("1"
               (flatten)
               (lift-if)
               (split -1)
               (("1" (flatten) (assert)) ("2" (flatten) (assert))))
              ("2"
               (flatten)
               (lift-if)
               (split -1)
               (("1" (flatten) (assert)) ("2" (flatten) (assert))))))
            ("2" (assert))))
          ("2" (assert))))))
      ("2"
       (lemma "cd_vertical")
       (inst - "sz!1" "vsp!2-viz!1")
       (assert)
       (hide 3)
       (case "vsp!2-viz!1 = 0")
       (("1" (copy -1) (mult-by -1 "B") (mult-by -2 "T") (assert))
        ("2"
         (name "newt" "-sz!1/(vsp!2-viz!1)")
         (case "sz!1 + newt*(vsp!2-viz!1) = 0")
         (("1"
           (lemma "cd_vertical")
           (inst - "sz!1" "vsp!2-viz!1")
           (replace -1 :dir rl)
           (hide -1)
           (expand "conflict_vertical?")
           (inst + "newt")
           (("1" (assert))
            ("2"
             (case "B <= newt AND newt <= T")
             (("1" (flatten) (assert))
              ("2"
               (hide 2)
               (replace -2 + :dir rl)
               (split +)
               (("1"
                 (case "vsp!2 > viz!1")
                 (("1"
                   (cross-mult 1)
                   (expand "sign" +)
                   (lift-if)
                   (lift-if)
                   (ground)
                   (typepred "T")
                   (mult-by -3 "vsp!2-viz!1")
                   (assert))
                  ("2"
                   (cross-mult 2)
                   (expand "sign" +)
                   (lift-if)
                   (lift-if)
                   (ground)
                   (typepred "T")
                   (mult-by -3 "viz!1-vsp!2")
                   (assert))))
                ("2"
                 (case "vsp!2 > viz!1")
                 (("1"
                   (cross-mult 1)
                   (expand "sign" +)
                   (lift-if)
                   (lift-if)
                   (ground)
                   (typepred "T")
                   (mult-by -3 "vsp!2-viz!1")
                   (assert))
                  ("2"
                   (cross-mult 2)
                   (expand "sign" +)
                   (lift-if)
                   (lift-if)
                   (ground)
                   (typepred "T")
                   (mult-by -3 "viz!1-vsp!2")
                   (assert))))))))))
          ("2"
           (replace -1 :dir rl)
           (name "const1" "vsp!2-viz!1")
           (replace -1)
           (both-sides "-" "sz!1" 1)
           (("1" (assert) (cross-mult 1)) ("2" (assert))))))))))
    ("2"
     (flatten)
     (lemma "cd_vertical")
     (inst - "sz!1" "vsp!1-viz!1")
     (assert)
     (expand "vs_red?")
     (inst - "vsp!1"))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: bands_1D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
script:
  (""
   (skeep)
   (lift-if)
   (ground)
   (("1"
     (expand "vs_critical")
     (expand "addend")
     (decompose-equality)
     (("1"
       (expand "empty_seq")
       (lemma "singleton_length")
       (inst?)
       (ground)
       (expand "singleton?")
       (inst + "voz"))
      ("2"
       (decompose-equality)
       (lift-if)
       (ground)
       (("1" (expand "empty_seq") (assert))
        ("2"
         (expand "empty_seq")
         (case "x!1 = 0")
         (("1" (replace -1) (expand "singleton") (propax))
          ("2" (assert))))
        ("3" (expand "empty_seq") (expand "singleton") (propax))))))
    ("2" (expand "vs_critical") (propax))
    ("3" (expand "vs_critical") (propax))
    ("4" (expand "vs_critical") (propax))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: bands_1D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (split)
   (("1"
     (flatten)
     (expand "member")
     (skosimp*)
     (expand "vs_critical")
     (lift-if)
     (split -)
     (("1"
       (flatten)
       (assert)
       (expand "addend")
       (expand "empty_seq")
       (lift-if)
       (ground)
       (typepred "i!1")
       (expand "vs_critical")
       (expand "addend")
       (expand "empty_seq")
       (propax))
      ("2"
       (flatten)
       (typepred "i!1")
       (expand "vs_critical")
       (expand "empty_seq")
       (lift-if)
       (split -)
       (("1" (flatten) (expand "addend") (typepred "i!1") (assert))
        ("2" (flatten) (assert))))))
    ("2"
     (flatten)
     (expand "member")
     (inst + "0")
     (("1"
       (expand "vs_critical")
       (lift-if)
       (split)
       (("1" (flatten) (expand "addend") (expand "empty_seq") (propax))
        ("2" (flatten) (assert))))
      ("2"
       (expand "vs_critical")
       (expand "addend")
       (expand "empty_seq")
       (assert))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: bands_1D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (split)
   (("1"
     (flatten)
     (expand "member")
     (skosimp*)
     (label "xeq" -1)
     (typepred "i!1")
     (name "compos" "vsfs o vs_critical(TF,voz)")
     (replace -1)
     (label "composname" -1)
     (expand "o")
     (replace "composname" -3 :dir rl)
     (assert)
     (lift-if)
     (split "xeq")
     (("1" (flatten) (inst + "i!1"))
      ("2"
       (flatten)
       (replace "composname" :dir rl)
       (assert)
       (lemma "vs_critical_rew")
       (inst - "TF" "voz")
       (replace -1 -2)
       (label "rew" -1)
       (hide "rew")
       (lift-if)
       (split -1)
       (("1"
         (flatten)
         (lemma "singleton_length")
         (inst?)
         (case "singleton?(singleton(voz))")
         (("1"
           (assert)
           (reveal "rew")
           (assert)
           (replace "rew" :dir rl)
           (replace -3)
           (case "i!1 = vsfs`length")
           (("1"
             (replace -1)
             (replace "rew" "xeq")
             (assert)
             (expand "singleton")
             (propax))
            ("2" (assert))))
          ("2" (expand "singleton?") (inst + "voz"))))
        ("2"
         (flatten)
         (expand "vs_critical")
         (lift-if)
         (replace 1)
         (expand "empty_seq")
         (propax))))))
    ("2"
     (flatten)
     (split)
     (("1"
       (flatten)
       (expand "member")
       (inst + "vsfs`length")
       (("1"
         (expand "o")
         (lemma "vs_critical_rew")
         (inst - "TF" "voz")
         (replace -1)
         (assert)
         (expand "singleton" +)
         (propax))
        ("2"
         (expand "o")
         (lemma "vs_critical_rew")
         (inst - "TF" "voz")
         (replace -1)
         (assert))))
      ("2"
       (expand "member")
       (skosimp*)
       (inst + "i!1")
       (("1" (expand "o") (propax)) ("2" (expand "o") (assert))))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: bands_1D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
script:
  (""
   (skeep)
   (expand "vs_bands")
   (lift-if)
   (lift-if)
   (ground)
   (("1" (expand "addend") (expand "o") (assert))
    ("2" (expand "o ") (expand "addend") (assert))
    ("3" (expand "addend") (expand "o ") (assert))
    ("4" (expand "addend") (expand "o") (assert))
    ("5"
     (lift-if)
     (ground)
     (("1" (expand "addend") (expand "o") (assert))
      ("2" (expand "addend") (expand "o") (assert))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: bands_1D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "vs_bands")
   (rewrite "member_sort" :dir rl)
   (rewrite "member_composition")
   (rewrite "member_composition")
   (rewrite "member_composition")
   (split)
   (("1"
     (flatten)
     (split -)
     (("1"
       (expand "vs_critical?")
       (expand "vs_circle_at?")
       (flatten)
       (split -)
       (("1"
         (flatten)
         (assert)
         (rewrite "member_composition")
         (flatten)
         (split -)
         (("1"
           (flatten)
           (lemma "member_vs_critical")
           (inst - "vs_circle_at(sz, viz, B, -1, 1)`1"
            "vs_circle_at(sz, viz, B, -1, 1)`2" "vsp")
           (assert))
          ("2"
           (flatten)
           (lemma "member_vs_critical")
           (inst - "vs_circle_at(sz, viz, B, 1, 1)`1"
            "vs_circle_at(sz, viz, B, 1, 1)`2" "vsp")
           (assert))))
        ("2"
         (flatten)
         (assert)
         (lemma "member_vs_critical")
         (inst - "vs_circle_at(sz, viz, B, -sign(sz), 1)`1"
          "vs_circle_at(sz, viz, B, -sign(sz), 1)`2" "vsp")
         (assert))
        ("3"
         (flatten)
         (assert)
         (lemma "member_vs_critical")
         (inst - "vs_circle_at(sz, viz, T, sign(sz), -1)`1"
          "vs_circle_at(sz, viz, T, sign(sz), -1)`2" "vsp")
         (assert))))
      ("2"
       (hide (1 2 4))
       (expand "member")
       (inst + "0")
       (("1" (expand "addend") (expand "empty_seq") (propax))
        ("2" (expand "addend") (expand "empty_seq") (assert))))
      ("3"
       (hide (1 2 3))
       (expand "member")
       (inst + "0")
       (("1" (expand "addend") (expand "empty_seq") (propax))
        ("2" (expand "addend") (expand "empty_seq") (assert))))))
    ("2"
     (flatten)
     (split -)
     (("1"
       (lift-if)
       (split -)
       (("1"
         (flatten)
         (expand "vs_critical?")
         (expand "vs_circle_at?")
         (assert)
         (rewrite "member_composition")
         (split -)
         (("1"
           (lemma "member_vs_critical")
           (inst - "vs_circle_at(sz, viz, B, -1, 1)`1"
            "vs_circle_at(sz, viz, B, -1, 1)`2" "vsp")
           (assert)
           (flatten)
           (assert))
          ("2"
           (lemma "member_vs_critical")
           (inst - "vs_circle_at(sz, viz, B, 1, 1)`1"
            "vs_circle_at(sz, viz, B, 1, 1)`2" "vsp")
           (assert)
           (flatten)
           (assert))))
        ("2"
         (flatten)
         (split -)
         (("1"
           (flatten)
           (expand "vs_critical?")
           (expand "vs_circle_at?")
           (assert)
           (typepred "T")
           (assert)
           (lemma "member_vs_critical")
           (inst - "vs_circle_at(sz, viz, B, -sign(sz), 1)`1"
            "vs_circle_at(sz, viz, B, -sign(sz), 1)`2" "vsp")
           (assert)
           (flatten)
           (assert))
          ("2"
           (flatten)
           (expand "member")
           (skosimp*)
           (typepred "i!1")
           (expand "empty_seq")
           (assert))))))
      ("2"
       (lift-if)
       (split -)
       (("1"
         (flatten)
         (expand "vs_critical?")
         (expand "vs_circle_at?")
         (assert)
         (flatten)
         (lemma "member_vs_critical")
         (inst - "vs_circle_at(sz, viz, T, sign(sz), -1)`1"
          "vs_circle_at(sz, viz, T, sign(sz), -1)`2" "vsp")
         (assert)
         (flatten)
         (assert))
        ("2"
         (flatten)
         (expand "member")
         (skosimp*)
         (typepred "i!1")
         (expand "empty_seq")
         (assert))))
      ("3"
       (expand "member")
       (skosimp*)
       (case "i!1 = 0")
       (("1"
         (replace -1)
         (expand "addend")
         (expand "empty_seq")
         (propax))
        ("2"
         (typepred "i!1")
         (expand "addend")
         (expand "empty_seq")
         (assert))))
      ("4"
       (expand "member")
       (skosimp*)
       (case "i!1 = 0")
       (("1"
         (replace -1)
         (expand "addend")
         (expand "empty_seq")
         (propax))
        ("2"
         (typepred "i!1")
         (expand "addend")
         (expand "empty_seq")
         (assert))))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: bands_1D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (assert)
   (skeep)
   (ground)
   (("1"
     (expand "red_vs_band?")
     (name "bband"
           "{x: real
                                      | vs_bands(sz, viz)`seq(i) < x AND
                                         x < vs_bands(sz, viz)`seq(1 + i)}")
     (lemma "vs_red_band")
     (skosimp*)
     (inst - "bband" "sz" "viz"
      "(vs_bands(sz, viz)`seq(1 + i) +
                               vs_bands(sz, viz)`seq(i))
                              / 2")
     (("1"
       (assert)
       (split -1)
       (("1"
         (expand "vs_red?")
         (inst - "x!1")
         (replace -1 :dir rl)
         (typepred "x!1")
         (assert))
        ("2"
         (expand "vs_band?")
         (skosimp*)
         (typepred "vsp!1")
         (replace -3 :dir rl)
         (assert)
         (flatten)
         (lemma "vs_bands_critical")
         (inst - "sz" "viz" "vsp!1")
         (("1"
           (assert)
           (expand "member")
           (skosimp*)
           (typepred "vs_bands(sz,viz)")
           (expand "increasing?")
           (case "i!1 < i")
           (("1" (inst - "i!1" "i") (assert))
            ("2"
             (case "i!1 > 1+i")
             (("1" (inst - "1+i" "i!1") (assert)) ("2" (assert))))))
          ("2"
           (typepred "vs_bands(sz,viz)")
           (expand "vs_fseq?")
           (inst-cp -1 "i")
           (assert)
           (flatten)
           (assert)
           (inst - "1+i")
           (flatten)
           (assert))))))
      ("2" (replace -1 :dir rl) (assert))
      ("3"
       (skosimp*)
       (typepred "a!1")
       (typepred "b!1")
       (replace -5 :dir rl)
       (assert)
       (flatten)
       (assert))))
    ("2"
     (expand "red_vs_band?")
     (inst?)
     (("1" (rewrite "cd_vertical"))
      ("2"
       (typepred "vs_bands(sz,viz)")
       (expand "increasing?")
       (inst - "i" "1+i")
       (assert))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: bands_1D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (assert)
   (skeep)
   (name "bband"
         "{x: real
                                             | vs_bands(sz, viz)`seq(i) < x AND
                                                x < vs_bands(sz, viz)`seq(1 + i)}")
   (case "vs_band?(sz,viz)(bband)")
   (("1"
     (label "bbn" -2)
     (ground)
     (("1"
       (skosimp*)
       (typepred "x!1")
       (expand "red_vs_band?")
       (lemma "vs_red_band")
       (inst-cp - "bband" "sz" "viz"
        "(vs_bands(sz, viz)`seq(1 + i) +
                             vs_bands(sz, viz)`seq(i))
                            / 2")
       (("1"
         (inst - "bband" "sz" "viz" "x!1")
         (("1" (assert) (lemma "cd_vertical") (inst?) (assert))
          ("2" (assert) (replace "bbn" :dir rl) (assert))))
        ("2" (replace "bbn" :dir rl) (assert))))
      ("2"
       (expand "red_vs_band?")
       (inst -
        "(vs_bands(sz, viz)`seq(1 + i) +
                                     vs_bands(sz, viz)`seq(i))
                                    / 2")
       (("1" (rewrite "cd_vertical"))
        ("2"
         (typepred "vs_bands(sz,viz)")
         (expand "increasing?")
         (inst - "i" "1+i")
         (assert))))))
    ("2"
     (hide 2)
     (replace -1 :dir rl)
     (expand "vs_band?")
     (skosimp*)
     (typepred "vsp!1")
     (lemma "vs_bands_critical")
     (inst - "sz" "viz" "vsp!1")
     (("1"
       (assert)
       (expand "member")
       (skosimp*)
       (typepred "vs_bands(sz,viz)")
       (expand "increasing?")
       (case "i!1 < i")
       (("1" (inst - "i!1" "i") (assert))
        ("2"
         (case "i!1 > 1+i")
         (("1" (inst - "1+i" "i!1") (assert)) ("2" (assert))))))
      ("2"
       (typepred "vs_bands(sz,viz)")
       (expand "vs_fseq?")
       (inst-cp -1 "i")
       (assert)
       (inst - "1+i")
       (flatten)
       (assert))))
    ("3"
     (skosimp*)
     (typepred "a!1")
     (typepred "b!1")
     (replace -5 :dir rl)
     (assert)
     (flatten)
     (assert))))


proof_type: t_proof
decl_type: tcc
library: ACCoRD
theory: bands_1D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (assert)
   (rewrite "sort_vs_fseq")
   (hide-all-but 1)
   (rewrite "comp_vs_fseq")
   (hide 2)
   (rewrite "comp_vs_fseq")
   (("1"
     (hide 2)
     (expand "addend")
     (expand "empty_seq")
     (expand "vs_fseq?")
     (lemma "vs_min_lt_max")
     (assert))
    ("2"
     (hide 2)
     (expand "addend")
     (expand "empty_seq")
     (expand "vs_fseq?")
     (lemma "vs_min_lt_max")
     (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: trk_line
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "trk_line_eps_irt?")
   (flatten)
   (expand "trk_line_eps_irt" :assert? none)
   (skoletin -1 :postfix "a")
   (lift-if)
   (split -)
   (("1"
     (flatten)
     (typepred "trk_only_line(tangent_line(sp, eps),vo, vi,irt)")
     (replaces (-4 -5) :dir rl)
     (assert)
     (flatten)
     (expand "tangent_line?")
     (inst?)
     (assert))
    ("2" (flatten))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: trk_line
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "trk_line_eps_irt?")
   (flatten)
   (expand "trk_line_eps_irt")
   (lift-if)
   (ground)
   (lemma "trk_only_line_lt")
   (expand "trk_only_line?")
   (inst?)
   (name-replace "trko1"
    "trk_only_line(tangent_line(ss, eps), vo, vi, -1)" :hide? nil)
   (name-replace "trko2"
    "trk_only_line(tangent_line(ss, eps), vo, vi, 1)" :hide? nil)
   (inst -3 "trko1`1" "trko2`1" "trko1`2" "trko2`2")
   (typepred " trk_only_line(tangent_line(ss, eps), vo, vi, -1)")
   (typepred " trk_only_line(tangent_line(ss, eps), vo, vi, 1)")
   (ground)
   (("1"
     (replaces (-6 -7))
     (expand "tangent_line")
     (name-replace "k1" "trko1`1")
     (name-replace "k2" "trko2`1")
     (replaces (-7 -9) :dir rl)
     (case-replace "nvo1 = k1 * Qs(ss, eps) + vi")
     (("1"
       (case-replace "nvo2 = k2 * Qs(ss, eps) + vi")
       (("1"
         (rewrite "dot_add_left")
         (rewrite "dot_add_left")
         (lemma "s_dot_Qs_lt_0")
         (inst?)
         (rewrite "dot_comm")
         (mult-by -1 "(k2-k1)")
         (ground))
        ("2"
         (hide-all-but (-6 1))
         (grind :exclude "Qs")
         (decompose-equality 1))))
      ("2"
       (hide-all-but (-3 1))
       (grind :exclude "Qs")
       (decompose-equality 1))))
    ("2" (decompose-equality 1)) ("3" (decompose-equality 1))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: trk_line
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "trk_line_eps?")
   (expand "trk_line_eps_irt?")
   (flatten)
   (expand "trk_line_eps")
   (lift-if)
   (split -1)
   (("1" (flatten) (inst? 2) (assert))
    ("2"
     (flatten)
     (split -1)
     (("1" (flatten) (inst? 3) (assert))
      ("2" (flatten) (inst? 5) (assert))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: trk_line
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (lemma "irt_trk_line_eps")
   (inst?)
   (assert)
   (skeep -1)
   (lemma "trk_line_eps_irt_tangent_line")
   (inst?)
   (assert))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: trk_line
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (lemma "trk_line_eps_tangent_line")
   (inst?)
   (assert)
   (lemma "tangent_line_solution")
   (inst?)
   (assert))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: trk_line
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (skeep -2)
   (rewrite "tangent_line_solution" :dir rl)
   (expand "tangent_line?")
   (skeep -2)
   (lemma "trk_only_line_complete")
   (inst -1 "nnk" "nvo" "vi" "tangent_line(sp,eps)" "vnzo")
   (assert)
   (expand "trk_only_line?")
   (skeep -1)
   (expand "trk_line?")
   (assert)
   (inst 2 "eps" "irt")
   (expand "trk_line_eps_irt")
   (decompose-equality -1)
   (assert))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: omega_v2
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (expand "omega_v2")
   (lift-if)
   (split)
   (("1"
     (flatten)
     (lemma "on_D_conflict")
     (inst?)
     (replace -3)
     (assert)
     (ground))
    ("2"
     (flatten)
     (lemma "omega_2D_conflict")
     (inst?)
     (expand "conflict_2D?")
     (propax))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: omega_v2
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (expand "omega_v2")
   (lift-if)
   (split)
   (("1"
     (flatten)
     (lemma "line_solution_rewrite")
     (case "v /= zero")
     (("1"
       (inst - "v" "s")
       (("1"
         (ground)
         (("1"
           (hide -2)
           (lemma "line_solution_independence")
           (inst - "s" "v")
           (replace -2)
           (expand "horizontal_conflict_ever?")
           (inst + "tau_2D(s,v)")
           (lemma "tau_2D_min")
           (inst - "s" "0" "v")
           (("1"
             (expand "horiz_dist_scaf")
             (assert)
             (lemma "tau_2D_unique")
             (inst - "s" "0" "v")
             (assert)
             (expand "horiz_dist_scaf")
             (assert)
             (lemma "tau_2D_def")
             (inst?)
             (expand "horiz_dist_scaf")
             (assert))
            ("2" (assert))))
          ("2" (inst + "0") (assert))))
        ("2" (assert))))
      ("2"
       (flatten)
       (replace -1)
       (lemma "tau_2D_def")
       (inst?)
       (expand "horiz_dist_scaf")
       (assert))))
    ("2" (flatten))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: omega_v2
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (expand "omega_v2")
   (lift-if)
   (split -1)
   (("1"
     (flatten)
     (assert)
     (lemma "line_solution_rewrite")
     (inst?)
     (("1" (replace -1) (inst + "0") (assert))
      ("2"
       (flatten)
       (lemma "line_solution_zero")
       (inst - "s")
       (assert))))
    ("2"
     (flatten)
     (lemma "omega_2D.critical_points_2D")
     (inst?)
     (assert)
     (split -1)
     (("1" (propax))
      ("2"
       (expand "circle_solution_2D?")
       (flatten)
       (case "B = 0")
       (("1" (replace -1) (assert)) ("2" (assert))))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: omega_v2
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
script:
  (""
   (skeep)
   (expand "omega_v2")
   (case "sqv(s) = sq(D) AND B = 0")
   (("1"
     (flatten)
     (assert)
     (lemma "dot_cont_vr")
     (inst - "(LAMBDA (v): s)" "(lambda (v): v)")
     (("1"
       (hide -2)
       (expand "continuous_vr?")
       (expand "continuous?")
       (expand "continuous?")
       (skosimp*)
       (inst - "x!1")
       (expand "continuous_at?")
       (expand "continuous_vr?")
       (skosimp*)
       (inst - "epsilon!1")
       (skosimp*)
       (inst + "delta!1")
       (skosimp*)
       (inst - "y!1")
       (expand "member")
       (expand "ball")
       (rewrite "dist_norm")
       (case "norm(y!1-x!1) = norm(x!1-y!1)")
       (("1" (assert) (hide -1) (expand "real_dist") (hide -2) (grind))
        ("2" (hide-all-but 1) (grind))))
      ("2" (rewrite "id_cont_vv"))
      ("3"
       (lemma "const_cont_vv_fun")
       (inst - "s")
       (expand "const_fun")
       (propax))))
    ("2"
     (assert)
     (replace 1)
     (lemma "omega_2D_continuous")
     (hide 1)
     (inst?)
     (case "omega_2D(s) = (LAMBDA (v): omega_2D(s)(v))")
     (("1" (assert)) ("2" (hide-all-but 1) (decompose-equality))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: trk_bands_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "trk_line_eps_irt")
   (expand "tangent_line")
   (lift-if)
   (split -1)
   (("1"
     (flatten)
     (name-replace "trk_line" "trk_only_line(Qs(ss,eps),vo,vi,irt)"
      :hide? nil)
     (expand "trk_only_line")
     (lift-if)
     (split -1)
     (("1"
       (flatten)
       (name-replace "rr"
        "root2b(sqv(Qs(ss, eps)), Qs(ss, eps) * vi, sqv(vi) - sqv(vo),irt)")
       (hide -1)
       (replaces -1 :dir rl)
       (assert)
       (replaces -2)
       (rewrite "det_add_left")
       (rewrite "det_scal_left")
       (assert)
       (move-terms 1 l 1)
       (case-replace "eps * det(vi, ss) - det(vi, ss) * eps = 0")
       (("1"
         (hide -1)
         (rewrite "det_asym")
         (rewrite "det_s_Qs")
         (real-props :simple? t)
         (grind-reals))
        ("2" (assert))))
      ("2" (flatten) (replaces -1 :dir rl) (assert))))
    ("2" (flatten) (typepred "nvo") (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: trk_bands_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (expand "trk_special_case?")
   (typepred "trk2v2(vo)(trk)")
   (expand "trk_only?")
   (rewrite "norms_eq_sqv")
   (replaces -1)
   (assert))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: trk_bands_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
script:
  (""
   (skeep)
   (case "sqv(s)<sq(D)")
   (("1"
     (expand "trk_special_case?")
     (expand "Omega_trk_spc")
     (mult-by -2 "sq(t)")
     (rewrite "sq_div")
     (assert)
     (real-props)
     (flatten)
     (case "sq(t) * (vi * trk2v2(vo)(trk)) = t*(s*trk2v2(vo)(trk))")
     (("1"
       (replace -1)
       (hide -1)
       (both-sides "+" "sq(D)" -1)
       (assert)
       (lemma "sq_eq")
       (inst?)
       (flatten)
       (hide -1)
       (split -1)
       (("1"
         (rewrite "sq_times")
         (lemma "vectors_2D.cauchy_schwarz")
         (inst?)
         (case "sqv(trk2v2(vo)(trk)) = sqv(vo)")
         (("1"
           (replace -1)
           (mult-by -2 "sq(t)")
           (replace -3)
           (mult-by -5 "sq(D)")
           (expand "sq")
           (assert)
           (mult-by -7 "t * t")
           (assert))
          ("2"
           (expand "trk2v2")
           (lemma "norm_id")
           (inst - "norm(vo)" "trk")
           (lemma "sq_eq")
           (inst?)
           (flatten)
           (hide -1)
           (split -1)
           (("1" (rewrite "sq_norm") (rewrite "sq_norm"))
            ("2" (propax))))))
        ("2" (propax))))
      ("2" (replace -3 +) (expand "sq") (assert))))
    ("2" (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: trk_bands_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (lemma "Omega_trk_spc_separated")
   (inst - "s" "t" "trk" "vi" "vo")
   (assert)
   (lemma "trk_spc_line_solution")
   (inst - "s" "t" "vi" "trk2v2(vo)(trk)")
   (expand "Vtrk")
   (ground)
   (("1" (lemma "trk_special_case_invariant") (inst?) (assert))
    ("2"
     (lemma "trk_spc_dot")
     (expand "Omega_trk_spc")
     (inst - "trk2v2(vo)(trk)" "s" "t" "vi" "vo")
     (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: trk_bands_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (name-replace "v" "Vtrk(vo,vi)(trk)" :hide? nil)
   (case "sqv(s+T*v)=sq(D)")
   (("1"
     (expand "trk_special_case?")
     (flatten)
     (split)
     (("1"
       (flatten)
       (expand "conflict_2D?")
       (skolem -2 "tt")
       (typepred "tt")
       (lemma "horizontal_entry_le")
       (inst -1 "s" "tt" "T" "v")
       (assert))
      ("2"
       (flatten)
       (case-replace "v=zero")
       (("1" (assert))
        ("2"
         (lemma "not_horizontal_entry_lt")
         (inst -1 "v" "s" "T")
         (("1"
           (skoletin -1)
           (assert)
           (flatten)
           (expand "conflict_2D?")
           (inst 2 "max(t1,B)")
           (("1"
             (expand "max" +)
             (lift-if)
             (ground)
             (lemma "strictly_convex_btw_pt_lt")
             (lemma "horiz_dist_strictly_convex_scaf")
             (inst - "s" "v")
             (assert)
             (inst - "t1" "T" "0"
              "LAMBDA (trt: real): horiz_dist_scaf(s)(trt, v)" "B")
             (assert)
             (expand "horiz_dist_scaf")
             (propax))
            ("2" (expand "max" +) (lift-if) (ground))))
          ("2" (assert))))))))
    ("2"
     (hide 2)
     (expand "Vtrk")
     (lemma "trk_spc_on_D")
     (inst?)
     (inst?)
     (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: trk_bands_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (name-replace "v" "Vtrk(vo,vi)(trk)" :hide? nil)
   (lemma "on_D_conflict")
   (inst?)
   (split -1)
   (("1" (replace -1) (hide-all-but 1) (ground))
    ("2"
     (expand "Vtrk")
     (lemma "trk_spc_on_D")
     (inst?)
     (inst?)
     (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: trk_bands_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (lemma "trk_special_case_conflict_T")
   (inst?)
   (assert)
   (split 1)
   (("1"
     (flatten)
     (assert)
     (hide -2)
     (expand "Omega_trk_spc")
     (expand "Vtrk")
     (expand "trk_special_case?")
     (flatten)
     (hide 1)
     (replace -4 :dir rl)
     (hide -4)
     (name "w" "trk2v2(vo)(trk)")
     (replace -1)
     (case "sqv(vo) = sqv(w)")
     (("1"
       (hide -2)
       (replace -4)
       (hide -4)
       (replace -1)
       (hide -1)
       (mult-by -1 "T")
       (grind))
      ("2"
       (typepred "trk2v2(vo)(trk)")
       (expand "trk_only?")
       (lemma "vectors_2D.sq_norm")
       (inst-cp -1 "trk2v2(vo)(trk)")
       (inst -1 "vo")
       (assert))))
    ("2"
     (flatten)
     (assert)
     (hide -2)
     (expand "trk_special_case?")
     (flatten)
     (expand "Omega_trk_spc")
     (replace -2)
     (replace -3 :dir rl)
     (name "w" "trk2v2(vo)(trk)")
     (replace -1)
     (case "sqv(vo) = sqv(w)")
     (("1"
       (replace -1)
       (expand "Vtrk")
       (replace -2)
       (hide -)
       (mult-by 1 "T")
       (grind))
      ("2"
       (typepred "trk2v2(vo)(trk)")
       (expand "trk_only?")
       (lemma "vectors_2D.sq_norm")
       (inst-cp -1 "trk2v2(vo)(trk)")
       (inst -1 "vo")
       (assert))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: trk_bands_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (lemma "trk_special_case_conflict_B")
   (inst?)
   (assert)
   (hide -2)
   (split 1)
   (("1"
     (flatten)
     (assert)
     (hide -2)
     (expand "Omega_trk_spc")
     (expand "Vtrk")
     (expand "trk_special_case?")
     (flatten)
     (hide 1)
     (replace -4 :dir rl)
     (hide -4)
     (name "w" "trk2v2(vo)(trk)")
     (replace -1)
     (case "sqv(vo) = sqv(w)")
     (("1"
       (hide -2)
       (replace -4)
       (hide -4)
       (replace -1)
       (hide -1)
       (mult-by -1 "B")
       (grind))
      ("2"
       (typepred "trk2v2(vo)(trk)")
       (expand "trk_only?")
       (lemma "vectors_2D.sq_norm")
       (inst-cp -1 "trk2v2(vo)(trk)")
       (inst -1 "vo")
       (assert))))
    ("2"
     (flatten)
     (assert)
     (hide -2)
     (expand "trk_special_case?")
     (flatten)
     (expand "Omega_trk_spc")
     (replace -2)
     (replace -3 :dir rl)
     (name "w" "trk2v2(vo)(trk)")
     (replace -1)
     (case "sqv(vo) = sqv(w)")
     (("1"
       (replace -1)
       (expand "Vtrk")
       (replace -2)
       (hide -)
       (mult-by 1 "B")
       (grind))
      ("2"
       (typepred "trk2v2(vo)(trk)")
       (expand "trk_only?")
       (lemma "vectors_2D.sq_norm")
       (inst-cp -1 "trk2v2(vo)(trk)")
       (inst -1 "vo")
       (assert))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: trk_bands_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (expand "Omega_trk")
   (expand "o")
   (expand "Vtrk")
   (lemma "omega_v2_critical_points")
   (inst?)
   (assert)
   (expand "trk_critical?")
   (flatten)
   (split -1)
   (("1"
     (flatten)
     (skeep -2)
     (assert)
     (lemma "trk_line_complete")
     (inst?)
     (assert)
     (inst 1 "eps"))
    ("2" (lemma "trk_only_circle_complete") (inst?) (assert))
    ("3"
     (flatten)
     (assert)
     (lemma "trk_only_circle_complete")
     (inst - "1" "trk2v2(vo)(trk)" "s" "B" "vi" "vo")
     (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: trk_bands_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (lemma "trk_line_eps_irt_tangent_line")
   (inst?)
   (assert)
   (expand "tangent_line?")
   (skeep -1)
   (case-replace "nnk=0")
   (("1" (assert) (rewrite "sub_eq_zero"))
    ("2"
     (case "det(nvo-vi,ss) = det(nnk * tangent_line(ss, eps),ss)")
     (("1"
       (hide -2)
       (rewrite "det_sub_left")
       (rewrite "det_scal_left")
       (mult-by -1 "eps")
       (assert)
       (case "nnk*(det(tangent_line(ss, eps), ss) * eps) > 0")
       (("1" (assert))
        ("2"
         (hide-all-but (1 2))
         (mult-cases 1)
         (expand "tangent_line")
         (rewrite "det_asym")
         (lemma "det_s_Qs_lt_0")
         (inst -1 "eps" "ss")
         (assert))))
      ("2" (assert))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: trk_bands_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (beta)
   (flatten)
   (lemma "trk_line_sort_eps")
   (inst-cp -1 "1" "irt1" "nvo1" "ss" "vi" "vo")
   (assert)
   (inst -1 "-1" "irt2" "nvo2" "ss" "vi" "vo")
   (assert)
   (expand "trk_line_eps_irt?")
   (flatten)
   (typepred "trk_line_eps_irt(ss, vo, vi, 1, irt1)")
   (assert)
   (typepred "trk_line_eps_irt(ss, vo, vi, -1, irt2)")
   (assert)
   (replaces (-6 -7) :dir rl)
   (expand "trk_only?")
   (lemma "ordered_eps_1")
   (inst -1 "nvo1" "ss" "vi")
   (assert)
   (flatten)
   (lemma "ordered_eps_neg_1")
   (inst -1 "nvo2" "ss" "vi")
   (assert))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: trk_bands_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (beta)
   (flatten)
   (lemma "trk_line_sort_eps")
   (inst-cp -1 "1" "-1" "nvo1" "ss" "vi" "vo")
   (assert)
   (inst -1 "1" "1" "nvo2" "ss" "vi" "vo")
   (assert)
   (lemma "trk_line_eps_irt_dot")
   (inst -1 "1" "nvo1" "nvo2" "ss" "vi" "vo")
   (assert)
   (mult-cases -5)
   (expand "trk_line_eps_irt?")
   (flatten)
   (typepred "trk_line_eps_irt(ss, vo, vi, 1, -1)")
   (assert)
   (typepred "trk_line_eps_irt(ss, vo, vi, 1, 1)")
   (assert)
   (expand "trk_only?")
   (replaces (-9 -10) :dir rl)
   (lemma " ordered_eps_1_dot_gt_0")
   (inst -1 "nvo1" "ss" "vi")
   (replaces -3)
   (assert)
   (flatten)
   (lemma " ordered_eps_1_dot_lt_0")
   (inst -1 "nvo2" "ss" "vi")
   (replace -4)
   (assert))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: trk_bands_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (beta)
   (flatten)
   (lemma "trk_line_sort_eps")
   (inst-cp -1 "1" "1" "nvo2" "ss" "vi" "vo")
   (inst -1 "1" "-1" "nvo1" "ss" "vi" "vo")
   (assert)
   (expand "trk_line_eps_irt?")
   (flatten)
   (typepred "trk_line_eps_irt(ss, vo, vi, 1, -1)")
   (typepred "trk_line_eps_irt(ss, vo, vi, 1, 1)")
   (replaces (-7 -8) :dir rl)
   (assert)
   (expand "trk_only?")
   (name-replace "xx1"
    "to2pi(track(nvo1) -
                             (track(ss) + asin(det(vi, ss) / (norm(vo) * norm(ss)))))"
    :hide? nil)
   (name-replace "xx2"
    "to2pi(track(nvo2) -
                              (track(ss) + asin(det(vi, ss) / (norm(vo) * norm(ss)))))"
    :hide? nil)
   (case "xx2-xx1 > -pi AND xx2-xx1 < pi")
   (("1"
     (flatten)
     (case "to2pi(xx1-xx2) = to2pi(track(nvo1)-track(nvo2))")
     (("1"
       (lemma "trkgs2vect_id")
       (inst-cp -1 "nvo1")
       (inst -1 "nvo2")
       (replace -1 5 :dir rl)
       (replace -2 5 :dir rl)
       (expand "trkgs2vect")
       (rewrite "det_scal_left")
       (rewrite "det_scal_right")
       (case-replace
        "norm(nvo1) *
                                  (norm(nvo2) *
                                    det((# x := sin(track(nvo1)), y := cos(track(nvo1)) #),
                                        (# x := sin(track(nvo2)), y := cos(track(nvo2)) #)))
                                  < 0 IFF
                                    det((# x := sin(track(nvo1)), y := cos(track(nvo1)) #),
                                        (# x := sin(track(nvo2)), y := cos(track(nvo2)) #))
                                  < 0")
       (("1"
         (hide -1)
         (expand "det" 5)
         (rewrite "sin_minus" :dir rl)
         (lemma "sin_id_to2pi")
         (inst? -1)
         (replaces -4)
         (rewrite "sin_id_to2pi")
         (replaces -1)
         (case-replace "xx1 < xx2 IFF xx1 - xx2 < 0")
         (("1"
           (hide -1)
           (neg-formula -3)
           (neg-formula -4)
           (name-replace "yy" "xx1-xx2")
           (hide-all-but (-3 -4 5))
           (split)
           (("1" (flatten) (lemma "sin_ge_0") (inst?) (assert))
            ("2"
             (flatten)
             (lemma "sin_lt_0")
             (inst -1 "yy+2*pi")
             (assert)
             (lemma "sin_period")
             (inst -1 "yy" "1")
             (assert))))
          ("2" (hide-all-but 1) (ground))))
        ("2"
         (hide-all-but (1 4 5))
         (lemma "vectors_2D.norm_eq_0")
         (inst-cp -1 "nvo1")
         (inst -1 "nvo2")
         (assert)
         (split)
         (("1" (flatten) (mult-cases -1) (mult-cases -1))
          ("2" (flatten) (mult-cases 1) (mult-cases 1))))))
      ("2"
       (hide-all-but (-3 -4 1))
       (replaces - :dir rl)
       (assert)
       (lemma "to2pi_to2pi")
       (inst -1
        "track(nvo1) - asin(det(vi, ss) / (norm(vo) * norm(ss))) -
                                             track(ss)"
        "-to2pi(track(nvo2) - asin(det(vi, ss) / (norm(vo) * norm(ss)))
                                              - track(ss))")
       (assert)
       (replaces -1)
       (lemma "to2pi_to2pi_sub")
       (inst -1
        "track(nvo2) - asin(det(vi, ss) / (norm(vo) * norm(ss)))
                                         - track(ss)"
        "track(nvo1) - asin(det(vi, ss) / (norm(vo) * norm(ss)))
                                 - track(ss)")
       (assert))))
    ("2"
     (mult-cases -8)
     (("1"
       (lemma "ordered_eps_1_dot_le_0")
       (inst-cp -1 "nvo1" "ss" "vi")
       (inst -1 "nvo2" "ss" "vi")
       (assert)
       (flatten)
       (replaces (-9 -10))
       (replaces (-7 -8))
       (assert))
      ("2"
       (lemma "ordered_eps_1_dot_ge_0")
       (inst-cp -1 "nvo1" "ss" "vi")
       (inst -1 "nvo2" "ss" "vi")
       (assert)
       (replaces (-7 -8))
       (replaces (-5 -6))
       (ground))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: trk_bands_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "trk_line_eps_irt?")
   (expand "trk_line_eps_irt")
   (lift-if)
   (assert)
   (split -1)
   (("1"
     (flatten)
     (name-replace "trko"
      "trk_only_line(tangent_line(ss, eps), vo, vi, irt)" :hide? nil)
     (expand "trk_only_line")
     (lift-if)
     (split -1)
     (("1"
       (flatten)
       (decompose-equality -2)
       (replace -1)
       (replaces -5 :dir rl)
       (name-replace "kk" "trko`1")
       (expand "tangent_line")
       (expand "root2b")
       (case "discr2b(sqv(Qs(ss, eps)), Qs(ss, eps) * vi, sqv(vi) - sqv(vo)) > 0")
       (("1"
         (name-replace "dd"
          "discr2b(sqv(Qs(ss, eps)), Qs(ss, eps) * vi, sqv(vi) - sqv(vo))")
         (hide -4 -5 -6)
         (rewrite "sqv_Qs")
         (rewrite "det_perpR" :dir rl)
         (replaces -3 :dir rl)
         (rewrite "det_add_right")
         (rewrite "det_scal_right")
         (expand "Qs" 1 1)
         (rewrite "det_sub_right")
         (rewrite "det_Q_s")
         (rewrite "Q_eq_Qs_perp")
         (rewrite "det_scal_left")
         (rewrite "det_asym")
         (rewrite "dot_perpR" :dir rl)
         (name-replace "sD2" "sqv(ss)-sq(D)")
         (replaces -2 :dir rl)
         (assert)
         (name-replace "epsirt" "pm*(eps*irt)")
         (real-props)
         (real-props :simple? t)
         (expand "epsirt")
         (rewrite "sq" :dir rl)
         (rewrite "dot_comm")
         (case-replace "(sqrt(sD2) > 0 AND sD2 > 0)")
         (("1"
           (hide -1)
           (name-replace "QQ" "Qs(ss,eps)*vi")
           (case-replace
            "(-((((QQ * D) * eps) * pm) * sD2) -
                              sqrt(dd) * sqrt(sD2) * sqrt(sD2) * D * eps * irt * pm
                              + sD2 * QQ * D * eps * pm) = -sqrt(dd) * sqrt(sD2) * sqrt(sD2) * D * eps * irt * pm")
           (("1"
             (hide -1)
             (case-replace
              "-sqrt(dd) * sqrt(sD2) * sqrt(sD2) * D * eps * irt * pm > 0 IFF (sqrt(sD2)*sqrt(sD2)*D*sqrt(dd))*(pm*(eps*irt)) < 0")
             (("1"
               (hide -1)
               (rewrite "sq" :dir rl)
               (case "(sD2 * D * sqrt(dd)) > 0")
               (("1"
                 (hide -2)
                 (name-replace "abc" "(sD2 * D * sqrt(dd))")
                 (real-props))
                ("2"
                 (hide 2)
                 (mult-cases 1)
                 (mult-cases 1)
                 (expand "sD2")
                 (assert))))
              ("2"
               (hide 2)
               (split)
               (("1" (flatten) (assert)) ("2" (flatten) (assert))))))
            ("2" (hide 2) (assert))))
          ("2" (hide 2) (expand "sD2") (propax))))
        ("2"
         (hide-all-but (-5 1))
         (expand "discr2b")
         (rewrite "sqv_Qs")
         (assert))))
      ("2" (flatten) (decompose-equality -1) (assert))))
    ("2" (propax))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: trk_bands_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (rewrite "cd2d" :dir rl)
   (expand "trk_green?")
   (split)
   (("1"
     (flatten)
     (skolem 2 "trk1")
     (case "trk_special_case?(s,vo,vi,T)")
     (("1"
       (lemma "trk_special_case_conflict_T")
       (inst-cp -1 "s" "trko" "vi" "vo")
       (inst -1 "s" "trk1" "vi" "vo")
       (assert)
       (assert)
       (hide (-3 2))
       (lemma "IntermediateValue")
       (inst -1 "band" "Omega_trk_spc(vo,vi,T)")
       (assert)
       (split -1)
       (("1"
         (inst -1 "trko" "trk1")
         (expand "Vtrk")
         (lemma "trk_spc_horizontal_dir")
         (inst-cp -1 "Entry" "trk2v2(vo)(trko)" "s" "T" "vi" "vo")
         (inst -1 "Entry" "trk2v2(vo)(trk1)" "s" "T" "vi" "vo")
         (assert)
         (hide (-3 2))
         (mult-cases -2)
         (("1" (expand "Omega_trk_spc") (assert))
          ("2" (expand "Omega_trk_spc") (assert))))
        ("2"
         (skolem 1 "x")
         (flatten)
         (lemma "Omega_trk_spc_critical")
         (inst -1 "s" "T" "x" "vi" "vo")
         (assert)
         (expand "trk_band?")
         (skeep -1)
         (inst - "x")
         (expand "trk_critical?")
         (lemma "trk_line_complete")
         (flatten)
         (inst?)
         (lemma "Omega_trk_spc_separated")
         (inst - "s" "T" "x" "vi" "vo")
         (assert)
         (assert)
         (expand "Vtrk")
         (inst + "eps"))))
      ("2"
       (case "B>0 AND trk_special_case?(s,vo,vi,B)")
       (("1"
         (flatten)
         (lemma "trk_special_case_conflict_B")
         (inst-cp -1 "s" "trko" "vi" "vo")
         (inst -1 "s" "trk1" "vi" "vo")
         (assert)
         (lemma "IntermediateValue")
         (inst -1 "band" "Omega_trk_spc(vo,vi,B)")
         (assert)
         (split -1)
         (("1"
           (inst -1 "trko" "trk1")
           (expand "Vtrk")
           (lemma "trk_spc_horizontal_dir")
           (inst-cp -1 "Exit" "trk2v2(vo)(trko)" "s" "B" "vi" "vo")
           (inst -1 "Exit" "trk2v2(vo)(trk1)" "s" "B" "vi" "vo")
           (assert)
           (mult-cases -2)
           (("1" (expand "Omega_trk_spc") (assert))
            ("2" (expand "Omega_trk_spc") (assert))))
          ("2"
           (skolem 1 "x")
           (flatten)
           (lemma "Omega_trk_spc_critical")
           (inst -1 "s" "B" "x" "vi" "vo")
           (assert)
           (expand "trk_band?")
           (skeep -1)
           (inst - "x")
           (expand "trk_critical?")
           (lemma "trk_line_complete")
           (flatten)
           (inst?)
           (assert)
           (lemma "Omega_trk_spc_separated")
           (inst - "s" "B" "x" "vi" "vo")
           (assert)
           (assert)
           (expand "Vtrk")
           (inst + "eps"))))
        ("2"
         (rewrite "omega_v2_conflict" :dir rl)
         (rewrite "omega_v2_conflict" :dir rl)
         (lemma "IntermediateValue")
         (inst -1 "band" "Omega_trk(s,vo,vi)")
         (assert)
         (split -1)
         (("1"
           (inst -1 "trko" "trk1")
           (expand "Omega_trk")
           (expand "o")
           (mult-cases -1))
          ("2"
           (skolem 1 "x")
           (lemma "Omega_trk_critical")
           (inst -1 "s" "x" "vi" "vo")
           (assert)
           (split -1)
           (("1" (expand "trk_band?") (inst -3 "x"))
            ("2" (propax))))))))))
    ("2" (flatten) (inst? -1))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: trk_bands_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (rewrite "cd2d" :dir rl)
   (expand "trk_red?")
   (split)
   (("1"
     (flatten)
     (skolem 1 "trk1")
     (case "trk_special_case?(s,vo,vi,T)")
     (("1"
       (lemma "trk_special_case_conflict_T")
       (inst-cp -1 "s" "trko" "vi" "vo")
       (inst -1 "s" "trk1" "vi" "vo")
       (assert)
       (assert)
       (hide (-3 2))
       (lemma "IntermediateValue")
       (inst -1 "band" "Omega_trk_spc(vo,vi,T)")
       (assert)
       (split -1)
       (("1"
         (inst -1 "trko" "trk1")
         (expand "Vtrk")
         (lemma "trk_spc_horizontal_dir")
         (inst-cp -1 "Entry" "trk2v2(vo)(trk1)" "s" "T" "vi" "vo")
         (inst -1 "Entry" "trk2v2(vo)(trko)" "s" "T" "vi" "vo")
         (assert)
         (hide (-3 2))
         (mult-cases -2)
         (("1" (expand "Omega_trk_spc") (assert))
          ("2" (expand "Omega_trk_spc") (assert))))
        ("2"
         (skolem 1 "x")
         (flatten)
         (lemma "Omega_trk_spc_critical")
         (inst -1 "s" "T" "x" "vi" "vo")
         (assert)
         (expand "trk_band?")
         (skeep -1)
         (inst - "x")
         (expand "trk_critical?")
         (flatten)
         (lemma "trk_line_complete")
         (inst?)
         (assert)
         (lemma "Omega_trk_spc_separated")
         (inst - "s" "T" "x" "vi" "vo")
         (assert)
         (assert)
         (expand "Vtrk")
         (inst + "eps"))))
      ("2"
       (case "B>0 AND trk_special_case?(s,vo,vi,B)")
       (("1"
         (flatten)
         (lemma "trk_special_case_conflict_B")
         (inst-cp -1 "s" "trko" "vi" "vo")
         (inst -1 "s" "trk1" "vi" "vo")
         (assert)
         (lemma "IntermediateValue")
         (inst -1 "band" "Omega_trk_spc(vo,vi,B)")
         (assert)
         (split -1)
         (("1"
           (inst -1 "trko" "trk1")
           (expand "Vtrk")
           (lemma "trk_spc_horizontal_dir")
           (inst-cp -1 "Exit" "trk2v2(vo)(trk1)" "s" "B" "vi" "vo")
           (inst -1 "Exit" "trk2v2(vo)(trko)" "s" "B" "vi" "vo")
           (assert)
           (mult-cases -2)
           (("1" (expand "Omega_trk_spc") (assert))
            ("2" (expand "Omega_trk_spc") (assert))))
          ("2"
           (skolem 1 "x")
           (flatten)
           (lemma "Omega_trk_spc_critical")
           (inst -1 "s" "B" "x" "vi" "vo")
           (assert)
           (expand "trk_band?")
           (skeep -1)
           (inst - "x")
           (expand "trk_critical?")
           (flatten)
           (lemma "trk_line_complete")
           (inst?)
           (assert)
           (lemma "Omega_trk_spc_separated")
           (inst - "s" "B" "x" "vi" "vo")
           (assert)
           (assert)
           (expand "Vtrk")
           (inst + "eps"))))
        ("2"
         (rewrite "omega_v2_conflict" :dir rl)
         (rewrite "omega_v2_conflict" :dir rl)
         (lemma "IntermediateValue")
         (inst -1 "band" "Omega_trk(s,vo,vi)")
         (assert)
         (split -1)
         (("1"
           (inst -1 "trko" "trk1")
           (expand "Omega_trk")
           (expand "o")
           (mult-cases -1))
          ("2"
           (skolem 1 "x")
           (lemma "Omega_trk_critical")
           (inst -1 "s" "x" "vi" "vo")
           (assert)
           (split -1)
           (("1" (expand "trk_band?") (inst -3 "x"))
            ("2" (propax))))))))))
    ("2" (flatten) (inst?))))


proof_type: j_proof
decl_type: tcc
library: ACCoRD
theory: trk_bands_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (expand "trk2v2")
   (expand "trkgs2vect")
   (rewrite "scal_scal_cont_rv")
   (hide 2)
   (rewrite "pair_cont_rv")
   (("1" (rewrite "cos_cont_fun")) ("2" (rewrite "sin_cont_fun"))))


proof_type: j_proof
decl_type: tcc
library: ACCoRD
theory: trk_bands_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (expand "Vtrk")
   (rewrite "sub_cont_rv")
   (("1" (hide 2) (rewrite "const_cont_rv"))
    ("2"
     (hide 2)
     (case-replace "(LAMBDA (trk: real): trk2v2(vo)(trk)) = trk2v2(vo)")
     (("1" (assert)) ("2" (decompose-equality 1))))))


proof_type: j_proof
decl_type: tcc
library: ACCoRD
theory: trk_bands_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (expand "Omega_trk_spc")
   (rewrite "sub_cont")
   (("1" (rewrite "const_cont"))
    ("2"
     (rewrite "dot_cont_rr")
     (("1"
       (case-replace "(LAMBDA(trk):trk2v2(vo)(trk))=trk2v2(vo)")
       (("1" (assert)) ("2" (decompose-equality 1))))
      ("2" (rewrite "const_cont_rv"))))))


proof_type: t_proof
decl_type: tcc
library: ACCoRD
theory: trk_bands_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (rewrite "comp_vr_rv_cont")
   (lemma "omega_v2_continuous")
   (hide 2)
   (inst?)
   (expand "continuous_vr?")
   (expand "continuous?")
   (expand "continuous?")
   (expand "continuous_at?")
   (expand "continuous_vr?")
   (skeep)
   (inst - "x0")
   (("1"
     (skosimp*)
     (inst - "epsilon!1")
     (skosimp*)
     (inst + "delta!1")
     (skosimp*)
     (inst - "x!1")
     (("1"
       (expand "member")
       (expand "ball")
       (expand "real_dist")
       (assert)
       (lemma "dist_norm")
       (inst?)
       (case "norm(x0-x!1) = norm(x!1-x0)")
       (("1" (expand "abs") (lift-if) (ground))
        ("2" (hide-all-but 1) (grind))))
      ("2" (expand "fullset") (propax))))
    ("2" (expand "fullset") (propax))))


proof_type: t_proof
decl_type: tcc
library: ACCoRD
theory: trk_bands_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (typepred "vo")
   (typepred "ss")
   (case "ss /= zero")
   (("1"
     (lemma "norm_eq_0")
     (inst-cp - "vo")
     (inst - "ss")
     (flatten)
     (replace 1)
     (replace 3)
     (assert))
    ("2" (flatten) (replace -1) (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: gs_only
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (split +)
   (("1" (grind))
    ("2"
     (rewrite "comps_eq")
     (flatten)
     (mult-by -1 "v`y")
     (mult-by -2 "v`x")
     (grind))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: gs_only
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (case-replace "vo=zero")
   (("1" (rewrite "det_zero_left") (rewrite "det_zero_right") (assert))
    ("2"
     (lemma "k_l_det")
     (inst -1 "k" "v" "vi" "vo" "l")
     (split -1)
     (("1"
       (flatten)
       (name-replace "gso" "gs_only_line_k_l(v,vo, vi)" :hide? nil)
       (expand "gs_only_line_k_l")
       (lift-if)
       (split -1)
       (("1"
         (flatten)
         (div-by -2 "det(vo,v)")
         (div-by -3 "det(vo,v)")
         (replaces (-2 -3) :dir rl)
         (case-replace "max(l,0)=l")
         (case-replace "max(l,0)=0")
         (("1" (assert)) ("2" (hide-all-but (1 2)) (grind))))
        ("2" (flatten) (assert))))
      ("2" (replaces -2) (hide-all-but 1) (assert))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: gs_only
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "gs_only_line")
   (expand "gs_only_line_k_l")
   (replaces -1)
   (rewrite "det_scal_left")
   (name-replace "dvi" "det(vi,v)")
   (name-replace "dv1" "det(v1,v)")
   (case "dv1 = 0")
   (("1" (assert))
    ("2"
     (assert)
     (copy 1)
     (mult-by 1 "l")
     (assert)
     (case-replace "dvi/(l*dv1) = (1/l)*(dvi/dv1)")
     (("1"
       (hide -1)
       (lemma "nneg_mult_max")
       (inst -1 "1/l" "dvi/dv1" "0")
       (assert))
      ("2" (assert))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: gs_only
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "gs_only_line?")
   (case "nvo=zero")
   (("1"
     (replaces -1)
     (rewrite "gs_only_zero_right")
     (replaces -1)
     (rewrite "det_zero_left")
     (rewrite "det_zero_right")
     (assert))
    ("2"
     (assert)
     (expand "gs_only?")
     (skeep -1)
     (lemma "gs_only_line_k_l_complete")
     (inst?)
     (inst?)
     (inst?)
     (assert)
     (split -1)
     (("1" (expand "gs_only_line") (replaces -1 :dir rl) (assert))
      ("2" (propax))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: gs_only
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (case "nvo=zero")
   (("1" (expand "gs_only?") (replaces -1) (skeep -1) (assert))
    ("2"
     (expand "gs_only_dot")
     (lemma "dot_W")
     (inst? -1)
     (inst? -1)
     (assert)
     (skeep -1)
     (lemma "gs_only_line_complete")
     (expand "gs_only_line?")
     (inst -1 "k" "nvo" "Vdir(u,vnzo-vi)" "vi+W0(u,j)" "vnzo")
     (assert)
     (split)
     (("1" (propax))
      ("2" (hide-all-but (-1 1)) (grind :exclude ("W0" "Vdir")))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: gs_only
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "circle_solution_2D?")
   (expand "gs_only_circle?")
   (flatten)
   (skeep -1)
   (expand "gs_only_circle" :assert? none)
   (skoletin* -1 :old? t)
   (lift-if)
   (split -2)
   (("1"
     (flatten)
     (skoletin* -2 :postfix "p" :old? t)
     (case "lp > 0")
     (("1"
       (expand "max")
       (assert)
       (lift-if)
       (split -3)
       (("1"
         (flatten)
         (assert)
         (lemma "quad2b_eq_0")
         (inst? -1)
         (inst -1 "lp")
         (flatten)
         (hide -1)
         (assert)
         (split -1)
         (("1"
           (replaces (-3 -5))
           (hide-all-but (-1 -6 -7 -8 -9 2))
           (grind))
          ("2" (inst 1 "irt"))))
        ("2" (flatten))))
      ("2"
       (case-replace "max(lp,0)=0")
       (("1"
         (assert)
         (lift-if)
         (split -3)
         (("1" (flatten) (assert)) ("2" (flatten))))
        ("2" (hide-all-but (1 2)) (grind))))))
    ("2" (flatten))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: gs_only
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "circle_solution_2D?")
   (flatten)
   (expand "gs_only_circle?")
   (case-replace "nvo=zero")
   (("1" (rewrite "gs_only_zero_right"))
    ("2"
     (assert)
     (expand "gs_only?")
     (skeep -1)
     (lemma "quad2b_eq_0")
     (name "w" "s-t*vi")
     (name "a" "sq(t)*sqv(vnzo)")
     (name "b" "t*(w*vnzo)")
     (name "c" "sqv(w)-sq(D)")
     (inst -5 "a" "b" "c" "l")
     (flatten)
     (hide -6)
     (split -5)
     (("1"
       (flatten)
       (skeep -2)
       (inst 2 "eps")
       (expand "gs_only_circle")
       (replaces :from -6 :to -3)
       (assert)
       (replaces -2 :dir rl)
       (case-replace "max(l,0)=l")
       (("1" (assert))
        ("2"
         (case "max(l,0)=0")
         (("1" (assert)) ("2" (hide-all-but (1 2)) (grind))))))
      ("2" (hide -7 2 3) (grind))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: gs_only
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (beta)
   (flatten)
   (expand "gs_only_vertical?")
   (flatten)
   (expand "gs_only_vertical")
   (lift-if)
   (split -1)
   (("1"
     (flatten)
     (assert)
     (typepred
      "gs_only_dot(t * (s + Theta_D(s, vo - vi, dir) * (vo - vi)), vo, vi,
                         sq(D) - s * (s + Theta_D(s, vo - vi, dir) * (vo - vi)))")
     (replaces -4 :dir rl)
     (assert)
     (flatten)
     (hide-all-but (-2 2))
     (grind :exclude "Theta_D"))
    ("2" (flatten))))


proof_type: t_proof
decl_type: tcc
library: ACCoRD
theory: gs_only
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (skeep 2)
   (skeep 2)
   (case-replace "max(l,0)=l")
   (("1" (hide -1) (lemma "k_l_det_nz") (inst?) (assert))
    ("2" (hide-all-but (-3 1)) (grind))))


proof_type: t_proof
decl_type: tcc
library: ACCoRD
theory: gs_only
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (case-replace "l=0")
   (("1" (assert))
    ("2"
     (rewrite "gs_only_scal")
     (typepred "gs_only_line_k_l(v,vo,vi)")
     (assert))))


proof_type: t_proof
decl_type: tcc
library: ACCoRD
theory: gs_only
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (name-replace "gso"
    "gs_only_line(Vdir(u, vo - vi), vo, vi + W0(u, j))")
   (typepred "gso")
   (assert)
   (flatten)
   (assert)
   (case "W0(u,j) + gso`1 * Vdir(u, vo - vi) = gso`2 - vi")
   (("1" (replaces -1 :dir rl) (rewrite "W_dot"))
    ("2" (replaces -2) (hide-all-but 1) (grind :exclude "W0"))))


proof_type: t_proof
decl_type: tcc
library: ACCoRD
theory: gs_only
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (skeep)
   (skeep)
   (skeep)
   (skeep)
   (skeep)
   (case "l>0")
   (("1"
     (expand "max")
     (assert)
     (hide-all-but (-1 -9 2))
     (replaces -2)
     (rewrite "gs_only_scal"))
    ("2"
     (hide-all-but (-8 1 2))
     (case-replace "max(l,0)=0")
     (("1" (assert)) ("2" (hide-all-but (1 2)) (grind))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: gs_line
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "gs_line_eps?")
   (flatten)
   (expand "gs_line_eps" :assert? none)
   (skoletin -1 :postfix "a")
   (lift-if)
   (split -)
   (("1"
     (flatten)
     (typepred "gs_only_line(tangent_line(sp, eps),vo, vi)")
     (replaces (-4 -5) :dir rl)
     (assert)
     (flatten)
     (expand "tangent_line?")
     (inst?)
     (assert))
    ("2" (flatten))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: gs_line
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (lemma "gs_line_eps_tangent_line")
   (inst?)
   (assert)
   (lemma "tangent_line_solution")
   (inst?)
   (assert))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: gs_line
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (skeep -2)
   (rewrite "tangent_line_solution" :dir rl)
   (expand "tangent_line?")
   (skeep -2)
   (lemma "gs_only_line_complete")
   (inst -1 "nnk" "nvo" "tangent_line(sp,eps)" "vi" "vo")
   (assert)
   (expand "gs_only_line?")
   (split -1)
   (("1"
     (flatten)
     (expand "gs_line?")
     (assert)
     (inst 3 "eps")
     (expand "gs_line_eps")
     (decompose-equality -1)
     (assert))
    ("2" (flatten) (expand "two_parallel?") (assert) (inst 1 "eps"))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: gs_bands_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (expand "Omega_gs")
   (expand "o")
   (expand "Vgs")
   (lemma "omega_v2_critical_points")
   (inst?)
   (assert)
   (expand "gs_critical?")
   (flatten)
   (split -1)
   (("1" (flatten) (assert) (lemma "gs_line_complete") (inst?) (assert))
    ("2"
     (lemma "gs_only_circle_complete")
     (inst - "Entry" "gs2v2(vo)(gsp)" "s" "T" "vi" "vo")
     (assert))
    ("3"
     (flatten)
     (lemma "gs_only_circle_complete")
     (inst - "Exit" "gs2v2(vo)(gsp)" "s" "B" "vi" "vo")
     (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: gs_bands_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "two_parallel?")
   (flatten)
   (skeep -2)
   (expand "gs_green?")
   (expand "Vgs")
   (expand "gs2v2")
   (skeep 1)
   (name-replace "cr" "tangent_line(sp,eps)" :hide? nil)
   (case "det(gso * ^(vo) - vi,cr)=0")
   (("1"
     (hide -3 -4)
     (rewrite "parallel_det_0" :dir rl)
     (("1"
       (expand "parallel?")
       (skolem -1 "kk")
       (lemma "tangent_line_independence")
       (inst -1 "eps" "sp" "cr")
       (split -1)
       (("1"
         (lemma "horizontal_conflict_ever_scal")
         (inst -1 "kk" "sp" "cr")
         (assert)
         (hide 2)
         (expand "conflict_2D?")
         (expand "horizontal_conflict_ever?")
         (skeep -3)
         (inst 1 "t")
         (replaces -1 :dir rl))
        ("2" (expand "tangent_line?") (inst 1 "1") (assert))))
      ("2" (flatten) (replaces -1) (expand "conflict_2D?") (assert))))
    ("2"
     (hide -1 -4)
     (rewrite "det_asym")
     (rewrite "det_sub_right")
     (expand "^")
     (rewrite "scal_assoc")
     (rewrite "det_scal_right")
     (rewrite "det_asym" 1)
     (replace -2)
     (assert)
     (rewrite "parallel_det_0" :dir rl)
     (rewrite "parallel_det_0" :dir rl)
     (lemma "vectors_2D.parallel_trans")
     (inst -1 "vi" "vo" "cr")
     (assert)
     (hide-all-but (-1 1))
     (rewrite "parallel_det_0")
     (rewrite "det_asym")
     (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: gs_bands_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "Q")
   (rewrite "dot_add_left")
   (lemma "vectors_2D.dot_comm")
   (inst -1 "perpR(ss)" "vo")
   (replaces -1)
   (rewrite "det_perpR" :dir rl)
   (lemma "det_asym")
   (inst?)
   (replaces -1)
   (case-replace
    "pm*(alpha(ss) * (ss * vo) + beta(ss) * -det(ss, vo) * eps) > 0 = pm*(alpha(ss) * (ss * vo)) > pm*(beta(ss) * det(ss, vo) * eps)")
   (("1"
     (hide -1)
     (expand "alpha")
     (expand "beta")
     (case-replace
      " pm*(sq(D) / sqv(ss) * (ss * vo)) >
                                     pm*(det(ss, vo) * (D * sqrt(sqv(ss) - sq(D)) / sqv(ss)) * eps) = pm*(sq(D)*(ss*vo)) >  pm*(det(ss, vo) * (D * sqrt(sqv(ss) - sq(D))) *eps)")
     (("1"
       (hide -1)
       (case-replace
        "pm*(sq(D) * (ss * vo)) > pm*(det(ss, vo) * (D * sqrt(sqv(ss) - sq(D))) * eps) = pm*(D* (ss * vo)) > pm*(det(ss, vo) * sqrt(sqv(ss) - sq(D)) * eps)")
       (("1"
         (hide -1)
         (lift-if)
         (split 1)
         (("1"
           (flatten)
           (split)
           (("1"
             (flatten)
             (split 1)
             (("1"
               (mult-by -2 "sqrt(sqv(ss) - sq(D))")
               (mult-by 1 "D")
               (assert))
              ("2"
               (case "pm * (det(ss, vo) * sqrt(sqv(ss) - sq(D)) * eps) > 0")
               (("1"
                 (both-sides-f -2 "sq")
                 (("1"
                   (rewrite "sq_times")
                   (rewrite "sq_times")
                   (rewrite "sq_times")
                   (rewrite "sq_times")
                   (rewrite "sq_times")
                   (lemma "sq_eps")
                   (inst-cp -1 "pm")
                   (inst -1 "eps")
                   (replaces (-1 -2))
                   (rewrite "sq_det")
                   (assert)
                   (move-terms -1 r 1)
                   (case-replace
                    "sq(D) * sq((ss * vo)) - sq(ss * vo) * sq(D) = 0")
                   (("1" (hide -1) (mult-by 1 "sqv(ss)") (assert))
                    ("2" (assert))))
                  ("2"
                   (lemma "sq_gt")
                   (inst? -1)
                   (("1" (assert)) ("2" (assert)) ("3" (assert))))))
                ("2" (mult-by -2 "sqrt(sqv(ss) - sq(D))") (assert))))))
            ("2"
             (flatten)
             (mult-by -1 "D")
             (mult-by -3 "sqrt(sqv(ss)-sq(D))")
             (both-sides-f 1 "sq")
             (("1"
               (rewrite "sq_times")
               (rewrite "sq_times")
               (rewrite "sq_times")
               (rewrite "sq_times")
               (rewrite "sq_times")
               (lemma "sq_eps")
               (inst-cp -1 "pm")
               (inst -1 "eps")
               (replaces (-1 -2))
               (mult-by -2 "sqv(ss)")
               (lemma "sq_det")
               (inst -1 "ss" "vo")
               (move-terms -1 r 2)
               (mult-by -1 "sq(D)")
               (replaces -1 :dir rl)
               (assert))
              ("2"
               (lemma "sq_gt")
               (inst?)
               (("1" (assert)) ("2" (assert)) ("3" (assert))))))))
          ("2"
           (flatten)
           (case "pm*(ss*vo) > 0")
           (("1"
             (assert)
             (case "pm*(sqrt(sqv(ss) - sq(D)) * det(ss, vo) * eps) <= 0")
             (("1" (mult-by -2 "D") (assert))
              ("2" (mult-by 2 "sqrt(sqv(ss)-sq(D))") (assert))))
            ("2"
             (split 3)
             (("1"
               (flatten)
               (assert)
               (neg-formula -1)
               (both-sides-f -1 "sq")
               (("1"
                 (rewrite "sq_neg")
                 (rewrite "sq_times")
                 (rewrite "sq_times")
                 (rewrite "sq_times")
                 (lemma "sq_eps")
                 (inst-cp -1 "pm")
                 (inst -1 "eps")
                 (rewrite "sq_neg")
                 (rewrite "sq_times")
                 (replaces (-1 -2))
                 (mult-by 2 "sqv(ss)")
                 (lemma "sq_det")
                 (inst -1 "ss" "vo")
                 (move-terms -1 r 2)
                 (mult-by -1 "sq(D)")
                 (replaces -1 :dir rl)
                 (rewrite "sq_times")
                 (assert))
                ("2"
                 (rewrite "sq_gt")
                 (("1" (mult-by 5 "D") (assert))
                  ("2" (mult-by 6 "sqrt(sqv(ss)-sq(D))") (assert))))))
              ("2"
               (flatten)
               (assert)
               (neg-formula 1)
               (mult-by 2 "D")
               (mult-by 3 "sqrt(sqv(ss)-sq(D))")
               (both-sides-f 3 "sq")
               (("1"
                 (rewrite "sq_neg")
                 (rewrite "sq_neg")
                 (rewrite "sq_times")
                 (rewrite "sq_times")
                 (rewrite "sq_times")
                 (rewrite "sq_times")
                 (rewrite "sq_times")
                 (lemma "sq_eps")
                 (inst-cp -1 "pm")
                 (inst -1 "eps")
                 (replaces (-1 -2))
                 (assert)
                 (mult-by -1 "sqv(ss)")
                 (lemma "sq_det")
                 (inst -1 "ss" "vo")
                 (move-terms -1 r 2)
                 (mult-by -1 "sq(D)")
                 (replaces -1 :dir rl)
                 (assert))
                ("2" (rewrite "sq_gt"))))))))))
        ("2"
         (hide 2)
         (expand "sq" 1 1)
         (grind-reals)
         (("1" (mult-by 1 "D") (assert))
          ("2" (mult-by -1 "D") (assert))))))
      ("2" (hide 2) (assert) (grind-reals))))
    ("2" (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: gs_bands_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (rewrite "cd2d" :dir rl)
   (split)
   (("1"
     (flatten)
     (case "sqv(s)>=sq(D) AND two_parallel?(s,vo,vi)")
     (("1" (flatten) (lemma "gs_green_two_parallel") (inst?) (assert))
      ("2"
       (expand "gs_green?")
       (skolem 3 "gs1")
       (rewrite "omega_v2_conflict" :dir rl)
       (rewrite "omega_v2_conflict" :dir rl)
       (lemma "IntermediateValue")
       (assert)
       (inst -1 "band" "Omega_gs(s,vo,vi)")
       (assert)
       (split -1)
       (("1"
         (inst -1 "gso" "gs1")
         (expand "Omega_gs")
         (expand "o")
         (mult-cases -1))
        ("2"
         (skolem 1 "x")
         (lemma "Omega_gs_critical")
         (inst -1 "x" "s" "vi" "vo")
         (assert)
         (expand "gs_band?")
         (inst -3 "x")
         (replace 2)
         (propax))))))
    ("2" (flatten) (expand "gs_green?") (inst? -1))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: gs_bands_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (rewrite "cd2d" :dir rl)
   (split)
   (("1"
     (flatten)
     (case "sqv(s)>=sq(D) AND two_parallel?(s,vo,vi)")
     (("1"
       (flatten)
       (lemma "gs_green_two_parallel")
       (inst - "band" "s" "vi" "vo")
       (assert)
       (expand "gs_green?")
       (inst -1 "gso"))
      ("2"
       (expand "gs_red?")
       (skolem 2 "gs1")
       (rewrite "omega_v2_conflict" :dir rl)
       (rewrite "omega_v2_conflict" :dir rl)
       (lemma "IntermediateValue")
       (inst -1 "band" "Omega_gs(s,vo,vi)")
       (assert)
       (split -1)
       (("1"
         (inst -1 "gso" "gs1")
         (expand "Omega_gs")
         (expand "o")
         (mult-cases -1))
        ("2"
         (skolem 1 "x")
         (lemma "Omega_gs_critical")
         (inst -1 "x" "s" "vi" "vo")
         (assert)
         (expand "gs_band?")
         (inst -3 "x")
         (replace 2)
         (propax))))))
    ("2" (flatten) (expand "gs_red?") (inst?))))


proof_type: j_proof
decl_type: tcc
library: ACCoRD
theory: gs_bands_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "gs2v2")
   (rewrite "scal_cont_rv")
   (("1" (hide 2) (rewrite "const_cont_rv"))
    ("2" (hide 2) (rewrite "id_cont"))))


proof_type: j_proof
decl_type: tcc
library: ACCoRD
theory: gs_bands_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "Vgs")
   (rewrite "sub_cont_rv")
   (("1" (hide 2) (rewrite "const_cont_rv"))
    ("2"
     (hide 2)
     (case-replace "(LAMBDA (gs:real):gs2v2(vo)(gs)) = gs2v2(vo)")
     (("1" (assert)) ("2" (decompose-equality 1))))))


proof_type: t_proof
decl_type: tcc
library: ACCoRD
theory: gs_bands_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (rewrite "comp_vr_rv_cont")
   (hide 2)
   (lemma "omega_v2_continuous")
   (inst?)
   (expand "continuous?")
   (expand "continuous?")
   (expand "continuous_vr?")
   (expand "continuous_at?")
   (expand "continuous_vr?")
   (expand "member")
   (expand "ball")
   (expand "real_dist")
   (skeep)
   (inst - "x0")
   (("1"
     (skosimp*)
     (inst - "epsilon!1")
     (skosimp*)
     (inst + "delta!1")
     (skosimp*)
     (inst - "x!1")
     (("1"
       (lemma "dist_norm")
       (inst?)
       (case "abs(omega_v2[D, B, T](s)(x0) - omega_v2[D, B, T](s)(x!1)) = abs(omega_v2[D,B, T](s)(x!1) - omega_v2[D, B, T](s)(x0)) and norm(x0-x!1) = norm(x!1-x0)")
       (("1" (flatten) (assert))
        ("2" (hide-all-but 1) (grind :exclude "omega_v2"))))
      ("2" (expand "fullset") (propax))))
    ("2" (expand "fullset") (propax))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: bands_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
script:
  (""
   (skeep)
   (lift-if)
   (ground)
   (("1"
     (expand "trk_critical")
     (expand "addend")
     (decompose-equality 2)
     (("1"
       (expand "empty_seq")
       (lemma "singleton_length")
       (inst?)
       (ground)
       (expand "singleton?")
       (inst + "track(nvo)"))
      ("2"
       (decompose-equality)
       (lift-if)
       (ground)
       (("1" (expand "empty_seq") (assert))
        ("2"
         (expand "empty_seq")
         (case "x!1 = 0")
         (("1" (replace -1) (expand "singleton") (propax))
          ("2" (assert))))
        ("3" (expand "empty_seq") (expand "singleton") (propax))))))
    ("2" (expand "trk_critical") (propax))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: bands_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (expand "member")
   (skosimp*)
   (expand "trk_critical")
   (lift-if)
   (ground)
   (("1"
     (expand "addend")
     (expand "empty_seq")
     (lift-if)
     (ground)
     (typepred "i!1")
     (expand "trk_critical")
     (expand "addend")
     (expand "empty_seq")
     (propax))
    ("2"
     (typepred "i!1")
     (expand "trk_critical")
     (expand "empty_seq")
     (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: bands_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (split)
   (("1"
     (flatten)
     (expand "member")
     (skosimp*)
     (label "xeq" -1)
     (typepred "i!1")
     (name "compos" "trkfs o trk_critical(nvo)")
     (replace -1)
     (label "composname" -1)
     (expand "o")
     (replace "composname" -3 :dir rl)
     (assert)
     (lift-if)
     (split "xeq")
     (("1" (flatten) (inst + "i!1"))
      ("2"
       (flatten)
       (replace "composname" :dir rl)
       (assert)
       (lemma "trk_critical_rew")
       (inst - "nvo")
       (replace -1 -2)
       (label "rew" -1)
       (hide "rew")
       (lift-if)
       (split -1)
       (("1"
         (flatten)
         (lemma "singleton_length")
         (inst?)
         (case "singleton?(singleton(track(nvo)))")
         (("1"
           (assert)
           (reveal "rew")
           (assert)
           (replace "rew" :dir rl)
           (replace -3)
           (case "i!1 = trkfs`length")
           (("1"
             (replace -1)
             (replace "rew" "xeq")
             (expand "singleton" "xeq")
             (propax))
            ("2" (assert))))
          ("2" (expand "singleton?") (inst + "track(nvo)"))))
        ("2"
         (flatten)
         (expand "trk_critical")
         (expand "empty_seq")
         (assert))))))
    ("2"
     (flatten)
     (split)
     (("1"
       (flatten)
       (expand "member")
       (inst + "trkfs`length")
       (("1"
         (expand "o")
         (lemma "trk_critical_rew")
         (inst - "nvo")
         (replace -1)
         (assert)
         (expand "singleton" +)
         (propax))
        ("2"
         (expand "o")
         (lemma "trk_critical_rew")
         (inst - "nvo")
         (replace -1)
         (assert))))
      ("2"
       (expand "member")
       (skosimp*)
       (inst + "i!1")
       (("1" (expand "o") (propax)) ("2" (expand "o") (assert))))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: bands_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
script:
  (""
   (skeep)
   (expand "trk_bands")
   (lift-if)
   (lift-if)
   (ground)
   (("1" (expand "o") (assert) (expand "addend") (assert))
    ("2" (expand "addend") (expand "o") (assert))
    ("3"
     (lift-if)
     (ground)
     (("1" (expand "o ") (expand "addend") (expand "empty_seq") (assert))
      ("2" (expand "addend") (expand "o") (assert))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: bands_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (expand "trk_bands")
   (rewrite "member_sort" :dir rl)
   (rewrite "member_composition")
   (rewrite "member_composition")
   (rewrite "member_composition")
   (split)
   (("1"
     (flatten)
     (case "to2pi(trk2) /= 0")
     (("1"
       (assert)
       (case "trk2 < 2*pi")
       (("1"
         (flatten)
         (lemma "to2pi_id")
         (inst - "trk2")
         (lemma "track_id")
         (inst - "norm(vo)" "trk2")
         (expand "trk_critical?")
         (split -)
         (("1"
           (flatten)
           (assert)
           (hide (3 4 5 6 7))
           (rewrite "trk_critical_composition")
           (rewrite "trk_critical_composition")
           (rewrite "trk_critical_composition")
           (rewrite "trk_critical_composition")
           (rewrite "trk_critical_composition")
           (flatten)
           (expand "trk_line?")
           (skosimp*)
           (case "(trk_line_eps_irt(s, vo, vi, -1, -1) /= zero AND
                         trk2 = track(trk_line_eps_irt(s, vo, vi, -1, -1)))")
           (("1"
             (flatten)
             (expand "member")
             (inst + "0")
             (("1"
               (expand "trk_critical")
               (expand "addend")
               (expand "empty_seq")
               (assert))
              ("2"
               (expand "trk_critical")
               (expand "empty_seq")
               (expand "addend")
               (assert))))
            ("2"
             (expand "trk2v2")
             (lemma "trkgs2vect_id")
             (inst - "trk_line_eps_irt(s, vo, vi, eps!1, irt!1)")
             (("1"
               (typepred "irt!1")
               (typepred "eps!1")
               (split -)
               (("1" (split -) (("1" (assert)) ("2" (assert))))
                ("2" (split -) (("1" (assert)) ("2" (assert))))))
              ("2" (assert))))))
          ("2"
           (case "sqv(s) >= sq(D)")
           (("1"
             (assert)
             (hide (3 4 5 6 7))
             (rewrite "trk_critical_composition")
             (rewrite "trk_critical_composition")
             (rewrite "trk_critical_composition")
             (rewrite "trk_critical_composition")
             (rewrite "trk_critical_composition")
             (flatten)
             (expand "trk_only_circle?")
             (skosimp*)
             (expand "trk2v2")
             (lemma "trkgs2vect_id")
             (inst - "trk_only_circle(s, vo, vi, T, -1, irt!1)")
             (("1"
               (typepred "irt!1")
               (split -)
               (("1" (assert)) ("2" (assert))))
              ("2" (assert))))
            ("2"
             (lemma "trk_only_circle_solution")
             (inst - "-1" "trk2v2(vo)(trk2)" "s" "T" "vi" "vo")
             (assert)
             (lemma "circle_solution_2D_horizontal_sep")
             (inst?)
             (assert)
             (inst - "0")
             (assert))))
          ("3"
           (assert)
           (hide (2 4 5 6 7))
           (flatten)
           (assert)
           (rewrite "trk_critical_composition")
           (flatten)
           (case "(trk_only_circle(s, vo, vi, B, 1, -1) /= zero AND
                         trk2 = track(trk_only_circle(s, vo, vi, B, 1, -1)))")
           (("1"
             (flatten)
             (expand "member")
             (inst + "0")
             (("1"
               (expand "trk_critical")
               (expand "addend")
               (expand "empty_seq")
               (assert))
              ("2"
               (expand "trk_critical")
               (expand "addend")
               (expand "empty_seq")
               (assert))))
            ("2"
             (expand "trk_only_circle?")
             (skosimp*)
             (lemma "trkgs2vect_id")
             (inst - "trk_only_circle(s, vo, vi, B, 1, irt!1)")
             (("1"
               (expand "trk2v2")
               (typepred "irt!1")
               (split -)
               (("1" (assert)) ("2" (assert))))
              ("2" (assert))))))))
        ("2"
         (hide-all-but (-1 1))
         (typepred "trk2")
         (case "trk2 = 2*pi")
         (("1" (replace -1) (expand "to2pi") (grind)) ("2" (assert))))))
      ("2"
       (flatten)
       (hide-all-but (-1 3 4))
       (case "trk2 = 0 or trk2 = 2*pi")
       (("1"
         (expand "member")
         (inst + "0")
         (("1"
           (inst + "0")
           (("1" (expand "addend") (expand "empty_seq") (assert))
            ("2" (expand "addend") (expand "empty_seq") (assert))))
          ("2" (expand "addend") (expand "empty_seq") (assert))))
        ("2"
         (hide 2)
         (typepred "trk2")
         (case "trk2 < 2*pi")
         (("1" (lemma "to2pi_id") (inst - "trk2") (assert))
          ("2" (assert))))))))
    ("2"
     (flatten)
     (expand "trk_critical?")
     (assert)
     (flatten)
     (expand "trk_line?")
     (assert)
     (expand "trk_only_circle?")
     (expand "trk2v2")
     (assert)
     (label "tl" 1)
     (label "toc" 2)
     (label "tocb" 3)
     (split -)
     (("1"
       (lift-if)
       (split -)
       (("1"
         (flatten)
         (assert)
         (rewrite "trk_critical_composition")
         (rewrite "trk_critical_composition")
         (rewrite "trk_critical_composition")
         (rewrite "trk_critical_composition")
         (rewrite "trk_critical_composition")
         (split -)
         (("1"
           (flatten)
           (inst + "1")
           (replace -1)
           (typepred "trk_only_circle(s, vo, vi, T, -1, 1)")
           (assert)
           (expand "trk_only?")
           (replace -1 :dir rl)
           (rewrite "trkgs2vect_id"))
          ("2"
           (flatten)
           (inst + "-1")
           (replace -1)
           (typepred "trk_only_circle(s, vo, vi, T, -1, -1)")
           (assert)
           (expand "trk_only?")
           (replace -1 :dir rl)
           (rewrite "trkgs2vect_id"))
          ("3"
           (flatten)
           (inst + "1" "1")
           (replace -1)
           (typepred "trk_line_eps_irt(s, vo, vi, 1, 1)")
           (assert)
           (expand "trk_only?")
           (replace -1 :dir rl)
           (rewrite "trkgs2vect_id"))
          ("4"
           (flatten)
           (inst + "1" "-1")
           (replace -1)
           (typepred "trk_line_eps_irt(s, vo, vi, 1, -1)")
           (assert)
           (expand "trk_only?")
           (replace -1 :dir rl)
           (rewrite "trkgs2vect_id"))
          ("5"
           (flatten)
           (inst + "-1" "1")
           (replace -1)
           (typepred "trk_line_eps_irt(s, vo, vi, -1, 1)")
           (assert)
           (expand "trk_only?")
           (replace -1 :dir rl)
           (rewrite "trkgs2vect_id"))
          ("6"
           (lemma "member_trk_critical")
           (inst?)
           (assert)
           (lemma "trkgs2vect_id")
           (inst?)
           (typepred "trk_line_eps_irt(s, vo, vi, -1, -1)")
           (split -1)
           (("1" (expand "trk_only?") (inst + "-1" "-1") (assert))
            ("2" (assert))))))
        ("2"
         (flatten)
         (expand "member")
         (skosimp*)
         (typepred "i!1")
         (expand "empty_seq")
         (assert))))
      ("2"
       (lift-if)
       (split -)
       (("1"
         (flatten)
         (rewrite "trk_critical_composition")
         (split -)
         (("1"
           (flatten)
           (assert)
           (inst + "1")
           (inst + "1")
           (replace -1)
           (typepred "trk_only_circle(s, vo, vi, B, 1, 1)")
           (assert)
           (expand "trk_only?")
           (replace -1 :dir rl)
           (rewrite "trkgs2vect_id"))
          ("2"
           (assert)
           (lemma "member_trk_critical")
           (inst?)
           (assert)
           (replace -1)
           (inst + "-1")
           (inst + "-1")
           (typepred "trk_only_circle(s, vo, vi, B, 1, -1)")
           (split -1)
           (("1"
             (expand "trk_only?")
             (replace -1 :dir rl)
             (rewrite "trkgs2vect_id"))
            ("2"
             (flatten)
             (replace -1)
             (expand "trk_critical")
             (expand "member")
             (skosimp*)
             (typepred "i!1")
             (expand "empty_seq")
             (assert))))))
        ("2"
         (flatten)
         (expand "member")
         (skosimp*)
         (typepred "i!1")
         (expand "empty_seq")
         (assert))))
      ("3"
       (expand "member")
       (skosimp*)
       (case "i!1 = 0")
       (("1"
         (replace -1)
         (expand "addend")
         (expand "empty_seq")
         (replace -2)
         (expand "to2pi")
         (assert))
        ("2"
         (typepred "i!1")
         (expand "addend")
         (expand "empty_seq")
         (assert))))
      ("4"
       (expand "member")
       (skosimp*)
       (case "i!1 = 0")
       (("1"
         (replace -1)
         (expand "addend")
         (expand "empty_seq")
         (replace -2)
         (expand "to2pi")
         (assert))
        ("2"
         (typepred "i!1")
         (expand "addend")
         (expand "empty_seq")
         (assert))))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: bands_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
script:
  (""
   (skeep)
   (lift-if)
   (ground)
   (("1"
     (expand "gs_critical")
     (expand "addend")
     (decompose-equality 2)
     (("1"
       (expand "empty_seq")
       (lemma "singleton_length")
       (inst?)
       (ground)
       (expand "singleton?")
       (inst + "gs(nvo)"))
      ("2"
       (decompose-equality)
       (lift-if)
       (ground)
       (("1" (expand "empty_seq") (assert))
        ("2"
         (expand "empty_seq")
         (case "x!1 = 0")
         (("1" (replace -1) (expand "singleton") (propax))
          ("2" (assert))))
        ("3" (expand "empty_seq") (expand "singleton") (propax))))))
    ("2" (expand "gs_critical") (propax))
    ("3" (expand "gs_critical") (propax))
    ("4" (expand "gs_critical") (propax))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: bands_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (expand "member")
   (skosimp*)
   (expand "gs_critical")
   (lift-if)
   (ground)
   (("1"
     (expand "addend")
     (expand "empty_seq")
     (lift-if)
     (ground)
     (typepred "i!1")
     (expand "gs_critical")
     (expand "addend")
     (expand "empty_seq")
     (propax))
    ("2"
     (typepred "i!1")
     (expand "gs_critical")
     (expand "empty_seq")
     (assert))
    ("3"
     (typepred "i!1")
     (expand "gs_critical")
     (expand "empty_seq")
     (assert))
    ("4"
     (typepred "i!1")
     (expand "gs_critical")
     (expand "empty_seq")
     (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: bands_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (split)
   (("1"
     (flatten)
     (expand "member")
     (skosimp*)
     (label "xeq" -1)
     (typepred "i!1")
     (name "compos" "gsfs o gs_critical(nvo)")
     (replace -1)
     (label "composname" -1)
     (expand "o")
     (replace "composname" -3 :dir rl)
     (assert)
     (lift-if)
     (split "xeq")
     (("1" (flatten) (inst + "i!1"))
      ("2"
       (flatten)
       (replace "composname" :dir rl)
       (assert)
       (lemma "gs_critical_rew")
       (inst - "nvo")
       (replace -1 -2)
       (label "rew" -1)
       (hide "rew")
       (lift-if)
       (split -1)
       (("1"
         (flatten)
         (lemma "singleton_length")
         (inst?)
         (case "singleton?(singleton(gs(nvo)))")
         (("1"
           (assert)
           (reveal "rew")
           (assert)
           (replace "rew" :dir rl)
           (replace -3)
           (case "i!1 = gsfs`length")
           (("1"
             (replace -1)
             (replace "rew" "xeq")
             (assert)
             (expand "singleton")
             (propax))
            ("2" (assert))))
          ("2" (expand "singleton?") (inst + "gs(nvo)"))))
        ("2"
         (flatten)
         (expand "gs_critical")
         (lift-if)
         (replace 1)
         (expand "empty_seq")
         (propax))))))
    ("2"
     (flatten)
     (split)
     (("1"
       (flatten)
       (expand "member")
       (inst + "gsfs`length")
       (("1"
         (expand "o")
         (lemma "gs_critical_rew")
         (inst - "nvo")
         (replace -1)
         (assert)
         (expand "singleton" +)
         (propax))
        ("2"
         (expand "o")
         (lemma "gs_critical_rew")
         (inst - "nvo")
         (replace -1)
         (assert))))
      ("2"
       (expand "member")
       (skosimp*)
       (inst + "i!1")
       (("1" (expand "o") (propax)) ("2" (expand "o") (assert))))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: bands_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
script:
  (""
   (skeep)
   (expand "gs_bands")
   (lift-if)
   (lift-if)
   (ground)
   (("1" (expand "addend") (expand "o") (assert))
    ("2" (expand "addend") (expand "o") (assert))
    ("3"
     (lift-if)
     (ground)
     (("1" (expand "addend") (expand "o") (assert))
      ("2" (expand "addend") (expand "o") (assert))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: bands_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (case "gsp = gs(gs2v2(vo)(gsp))")
   (("1"
     (case "gs2v2(vo)(gsp) /= zero")
     (("1"
       (flatten)
       (expand "gs_bands")
       (rewrite "member_sort" :dir rl)
       (rewrite "member_composition")
       (rewrite "member_composition")
       (rewrite "member_composition")
       (split)
       (("1"
         (flatten)
         (split -)
         (("1"
           (expand "gs_critical?")
           (split -)
           (("1"
             (flatten)
             (assert)
             (hide (2 3 4 4 5 6 7))
             (rewrite "gs_critical_composition")
             (rewrite "gs_critical_composition")
             (rewrite "gs_critical_composition")
             (flatten)
             (case "(gs_line_eps(s, vo, vi, -1) /= zero AND
                                                       gsp = gs(gs_line_eps(s, vo, vi, -1)) AND
                                                        gsmin <= gs(gs_line_eps(s, vo, vi, -1)) AND
                                                         gs(gs_line_eps(s, vo, vi, -1)) <= gsmax)")
             (("1"
               (flatten)
               (expand "member")
               (inst + "0")
               (("1"
                 (expand "gs_critical")
                 (expand "empty_seq")
                 (expand "addend")
                 (assert))
                ("2"
                 (expand "gs_critical")
                 (expand "empty_seq")
                 (expand "addend")
                 (assert))))
              ("2"
               (expand "gs_line?")
               (skosimp*)
               (typepred "eps!1")
               (typepred "gs_line_eps(s,vo,vi,eps!1)")
               (assert)
               (lemma "gs2v2_id")
               (inst?)
               (assert)
               (replace -6 -1 :dir rl)
               (split -)
               (("1" (assert))
                ("2"
                 (case "gsp = gs(gs2v2(vo)(gsp))")
                 (("1" (assert)) ("2" (propax))))))))
            ("2"
             (lemma "gs_only_circle_solution")
             (inst?)
             (assert)
             (lemma "circle_solution_2D_horizontal_sep")
             (inst?)
             (assert)
             (inst - "0")
             (assert)
             (hide (2 3 4 4 5 6 7))
             (rewrite "gs_critical_composition")
             (rewrite "gs_critical_composition")
             (rewrite "gs_critical_composition")
             (flatten)
             (expand "gs_only_circle?")
             (skosimp*)
             (typepred "irt!1")
             (typepred "gs_only_circle(s, vo, vi, T, -1, irt!1)")
             (assert)
             (split -)
             (("1" (assert)) ("2" (assert))))
            ("3"
             (flatten)
             (assert)
             (hide (1 3 4 5 6 7))
             (rewrite "gs_critical_composition")
             (flatten)
             (case "(gs_only_circle(s, vo, vi, B, 1, -1) /= zero AND
                                                       gsp = gs(gs_only_circle(s, vo, vi, B, 1, -1)) AND
                                                        gsmin <= gs(gs_only_circle(s, vo, vi, B, 1, -1)) AND
                                                         gs(gs_only_circle(s, vo, vi, B, 1, -1)) <= gsmax)")
             (("1"
               (flatten)
               (expand "member")
               (inst + "0")
               (("1"
                 (expand "gs_critical")
                 (expand "empty_seq")
                 (expand "addend")
                 (assert))
                ("2"
                 (expand "gs_critical")
                 (expand "empty_seq")
                 (expand "addend")
                 (assert))))
              ("2"
               (expand "gs_only_circle?")
               (skosimp*)
               (typepred "irt!1")
               (split -)
               (("1" (assert)) ("2" (assert))))))))
          ("2"
           (hide (1 2 4))
           (expand "member")
           (inst + "0")
           (("1" (expand "addend") (expand "empty_seq") (propax))
            ("2" (expand "addend") (expand "empty_seq") (assert))))
          ("3"
           (hide (1 2 3))
           (expand "member")
           (inst + "0")
           (("1" (expand "addend") (expand "empty_seq") (propax))
            ("2" (expand "addend") (expand "empty_seq") (assert))))))
        ("2"
         (flatten)
         (split -)
         (("1"
           (lift-if)
           (split -)
           (("1"
             (flatten)
             (rewrite "gs_critical_composition")
             (rewrite "gs_critical_composition")
             (rewrite "gs_critical_composition")
             (expand "gs_critical?")
             (flatten)
             (assert)
             (split -)
             (("1"
               (flatten)
               (expand "gs_only_circle?")
               (assert)
               (inst + "1")
               (lemma "gs2v2_id")
               (inst - "gs_only_circle(s, vo, vi, T, -1, 1)" "vo")
               (assert)
               (typepred "gs_only_circle(s, vo, vi, T, -1, 1)")
               (assert))
              ("2"
               (flatten)
               (expand "gs_only_circle?")
               (inst + "-1")
               (lemma "gs2v2_id")
               (inst - "gs_only_circle(s, vo, vi, T, -1, -1)" "vo")
               (("1"
                 (typepred "gs_only_circle(s, vo, vi, T, -1, -1)")
                 (assert))
                ("2" (assert))))
              ("3"
               (flatten)
               (expand "gs_line?")
               (inst + "1")
               (lemma "gs2v2_id")
               (inst - "gs_line_eps(s, vo, vi, 1)" "vo")
               (("1" (typepred "gs_line_eps(s, vo, vi, 1)") (assert))
                ("2" (assert))))
              ("4"
               (lemma "member_gs_critical")
               (inst - "gs_line_eps(s, vo, vi, -1)" "gsp")
               (assert)
               (expand "gs_line?")
               (inst + "-1")
               (lemma "gs2v2_id")
               (inst - "gs_line_eps(s, vo, vi, -1)" "vo")
               (("1"
                 (assert)
                 (typepred "gs_line_eps(s, vo, vi, -1)")
                 (assert)
                 (flatten)
                 (replace -1)
                 (expand "gs_critical")
                 (expand "member")
                 (skosimp*)
                 (typepred "i!1")
                 (expand "empty_seq")
                 (assert))
                ("2"
                 (flatten)
                 (replace -1)
                 (expand "gs_critical")
                 (expand "member")
                 (skosimp*)
                 (typepred "i!1")
                 (expand "empty_seq")
                 (assert))))))
            ("2"
             (flatten)
             (expand "member")
             (skosimp*)
             (typepred "i!1")
             (expand "empty_seq")
             (assert))))
          ("2"
           (lift-if)
           (split -)
           (("1"
             (flatten)
             (rewrite "gs_critical_composition")
             (split -)
             (("1"
               (flatten)
               (expand "gs_critical?")
               (flatten)
               (expand "gs_only_circle?")
               (assert)
               (inst + "1")
               (inst + "1")
               (lemma "gs2v2_id")
               (inst - "gs_only_circle(s, vo, vi, B, 1, 1)" "vo")
               (typepred "gs_only_circle(s, vo, vi, B, 1, 1)")
               (assert))
              ("2"
               (case "gsp = gs(gs_only_circle(s, vo, vi, B, 1, -1))")
               (("1"
                 (expand "gs_critical?")
                 (flatten)
                 (assert)
                 (expand "gs_only_circle?")
                 (inst + "-1")
                 (inst + "-1")
                 (lemma "gs2v2_id")
                 (inst - "gs_only_circle(s, vo, vi, B, 1, -1)" "vo")
                 (("1"
                   (assert)
                   (typepred "gs_only_circle(s, vo, vi, B, 1, -1)")
                   (assert)
                   (flatten)
                   (replace -1)
                   (expand "gs")
                   (assert))
                  ("2" (flatten) (replace -1) (expand "gs") (assert))))
                ("2" (rewrite "member_gs_critical"))))))
            ("2"
             (flatten)
             (expand "member")
             (skosimp*)
             (typepred "i!1")
             (expand "empty_seq")
             (assert))))
          ("3"
           (expand "member")
           (skosimp*)
           (typepred "i!1")
           (case "i!1 = 0")
           (("1"
             (replace -1)
             (expand "addend")
             (expand "empty_seq")
             (propax))
            ("2" (expand "addend") (expand "empty_seq") (assert))))
          ("4"
           (expand "member")
           (skosimp*)
           (typepred "i!1")
           (case "i!1 = 0")
           (("1"
             (replace -1)
             (expand "addend")
             (expand "empty_seq")
             (propax))
            ("2" (expand "addend") (expand "empty_seq") (assert))))))))
      ("2" (expand "gs") (flatten) (replace -1) (assert))))
    ("2"
     (hide 2)
     (expand "gs2v2")
     (expand "^")
     (expand "gs")
     (rewrite "norm_scal")
     (rewrite "norm_scal")
     (expand "abs")
     (lift-if)
     (assert)
     (typepred "gsp")
     (typepred "gsmin")
     (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: bands_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (assert)
   (skeep)
   (ground)
   (("1"
     (expand "red_trk_band?")
     (name "bband"
           "{ y: real | trk_bands(s,vo,vi)`seq(i) < y AND
                                                                                                                 y < trk_bands(s,vo,vi)`seq(1 + i)}")
     (lemma "trk_red_band")
     (skosimp*)
     (inst - "bband" "s" "vi" "vo"
      "(trk_bands(s,vo,vi)`seq(1 + i) +
                                                            trk_bands(s,vo,vi)`seq(i))
                                                           / 2")
     (("1"
       (assert)
       (split -1)
       (("1"
         (expand "trk_red?")
         (inst - "x!1")
         (replace -1 :dir rl)
         (typepred "x!1")
         (assert))
        ("2"
         (expand "trk_band?")
         (skosimp*)
         (typepred "trko!1")
         (replace -3 :dir rl)
         (assert)
         (flatten)
         (lemma "trk_bands_critical")
         (inst - "s" "trko!1" "vi" "vo")
         (("1"
           (assert)
           (expand "member")
           (skosimp*)
           (typepred "trk_bands(s,vo,vi)")
           (expand "increasing?")
           (case "i!1 < i")
           (("1" (inst - "i!1" "i") (assert))
            ("2"
             (case "i!1 > 1+i")
             (("1" (inst - "1+i" "i!1") (assert)) ("2" (assert))))))
          ("2"
           (typepred "trk_bands(s,vo,vi)")
           (expand "trk_fseq?")
           (inst-cp -1 "i")
           (inst -1 "1+i")
           (flatten)
           (assert))))))
      ("2" (replace -1 :dir rl) (assert))
      ("3"
       (split)
       (("1"
         (skosimp*)
         (typepred "a!1")
         (typepred "b!1")
         (replace -5 :dir rl)
         (assert)
         (flatten)
         (assert))
        ("2"
         (skosimp*)
         (typepred "trk_bands(s,vo,vi)")
         (expand "trk_fseq?")
         (inst-cp -1 "i")
         (inst -1 "1+i")
         (flatten)
         (typepred "z!1")
         (replace -7 :dir rl)
         (assert)
         (flatten)
         (assert))))))
    ("2"
     (expand "red_trk_band?")
     (inst -
      "(trk_bands(s,vo,vi)`seq(1 + i) +
                                                                trk_bands(s,vo,vi)`seq(i))
                                                               / 2")
     (("1" (rewrite "cd2d[D,B,T]"))
      ("2"
       (typepred "trk_bands(s,vo,vi)")
       (expand "increasing?")
       (inst - "i" "1+i")
       (assert))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: bands_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (assert)
   (skeep)
   (name "bband"
         "{ y: real | trk_bands(s,vo,vi)`seq(i) < y AND
                                                                                                                                           y < trk_bands(s,vo,vi)`seq(1 + i)}")
   (case "trk_band?(s,vo,vi)(bband)")
   (("1"
     (label "bbn" -2)
     (ground)
     (("1"
       (skosimp*)
       (typepred "x!1")
       (expand "red_trk_band?")
       (lemma "trk_red_band")
       (inst-cp - "bband" "s" "vi" "vo"
        "(trk_bands(s,vo,vi)`seq(1 + i) +
                                                                                      trk_bands(s,vo,vi)`seq(i))
                                                                                     / 2")
       (("1"
         (inst - "bband" "s" "vi" "vo" "x!1")
         (("1" (assert) (lemma "cd2d[D,B,T]") (inst?) (assert))
          ("2" (assert) (replace "bbn" :dir rl) (assert))))
        ("2" (replace "bbn" :dir rl) (assert))))
      ("2"
       (expand "red_trk_band?")
       (inst -
        "(trk_bands(s,vo,vi)`seq(1 + i) +
                                                      trk_bands(s,vo,vi)`seq(i))
                                                     / 2")
       (("1" (rewrite "cd2d[D,B,T]"))
        ("2"
         (typepred "trk_bands(s,vo,vi)")
         (expand "increasing?")
         (inst - "i" "1+i")
         (assert))))))
    ("2"
     (hide 2)
     (replace -1 :dir rl)
     (expand "trk_band?")
     (skosimp*)
     (typepred "trko!1")
     (lemma "trk_bands_critical")
     (inst - "s" "trko!1" "vi" "vo")
     (("1"
       (assert)
       (expand "member")
       (skosimp*)
       (typepred "trk_bands(s,vo,vi)")
       (expand "increasing?")
       (case "i!1 < i")
       (("1" (inst - "i!1" "i") (assert))
        ("2"
         (case "i!1 > 1+i")
         (("1" (inst - "1+i" "i!1") (assert)) ("2" (assert))))))
      ("2"
       (typepred "trk_bands(s,vo,vi)")
       (expand "trk_fseq?")
       (inst-cp -1 "i")
       (inst -1 "1+i")
       (flatten)
       (assert))))
    ("3"
     (split)
     (("1"
       (skosimp*)
       (typepred "a!1")
       (typepred "b!1")
       (replace -5 :dir rl)
       (assert)
       (flatten)
       (assert))
      ("2"
       (skosimp*)
       (typepred "trk_bands(s,vo,vi)")
       (expand "trk_fseq?")
       (inst-cp -1 "i")
       (inst -1 "1+i")
       (flatten)
       (typepred "z!1")
       (replace -7 :dir rl)
       (assert)
       (flatten)
       (assert))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: bands_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (assert)
   (skeep)
   (ground)
   (("1"
     (expand "red_gs_band?")
     (name "bband"
           "{ y: real | gs_bands(s,vo,vi)`seq(i) < y AND
                                                                                                                                   y < gs_bands(s,vo,vi)`seq(1 + i)}")
     (lemma "gs_red_band")
     (skosimp*)
     (inst - "bband" "s" "vi" "vo"
      "(gs_bands(s,vo,vi)`seq(1 + i) +
                                                                    gs_bands(s,vo,vi)`seq(i))
                                                                   / 2")
     (("1"
       (assert)
       (split -1)
       (("1"
         (expand "gs_red?")
         (inst - "x!1")
         (replace -1 :dir rl)
         (typepred "x!1")
         (assert))
        ("2"
         (expand "gs_band?")
         (skosimp*)
         (typepred "gso!1")
         (replace -3 :dir rl)
         (assert)
         (flatten)
         (lemma "gs_bands_critical")
         (inst - "gso!1" "s" "vi" "vo")
         (("1"
           (assert)
           (expand "member")
           (skosimp*)
           (typepred "gs_bands(s,vo,vi)")
           (expand "increasing?")
           (case "i!1 < i")
           (("1" (inst - "i!1" "i") (assert))
            ("2"
             (case "i!1 > 1+i")
             (("1" (inst - "1+i" "i!1") (assert)) ("2" (assert))))))
          ("2"
           (typepred "gs_bands(s,vo,vi)")
           (expand "gs_fseq?")
           (inst-cp -1 "i")
           (assert)
           (flatten)
           (assert)
           (inst - "1+i")
           (flatten)
           (assert))))))
      ("2" (replace -1 :dir rl) (assert))
      ("3"
       (split)
       (("1"
         (skosimp*)
         (typepred "a!1")
         (typepred "b!1")
         (replace -5 :dir rl)
         (assert)
         (flatten)
         (assert))
        ("2"
         (skosimp*)
         (typepred "gs_bands(s,vo,vi)")
         (expand "gs_fseq?")
         (inst-cp -1 "i")
         (inst -1 "1+i")
         (typepred "z!1")
         (replace -5 :dir rl)
         (assert)
         (flatten)
         (assert))))))
    ("2"
     (expand "red_gs_band?")
     (inst -
      "(gs_bands(s,vo,vi)`seq(1 + i) +
                                                                        gs_bands(s,vo,vi)`seq(i))
                                                                       / 2")
     (("1" (rewrite "cd2d[D,B,T]"))
      ("2"
       (typepred "gs_bands(s,vo,vi)")
       (expand "increasing?")
       (inst - "i" "1+i")
       (assert))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: bands_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (assert)
   (skeep)
   (name "bband"
         "{ y: real | gs_bands(s,vo,vi)`seq(i) < y AND
                                                                                                                                                         y < gs_bands(s,vo,vi)`seq(1 + i)}")
   (case "gs_band?(s,vo,vi)(bband)")
   (("1"
     (label "bbn" -2)
     (ground)
     (("1"
       (skosimp*)
       (typepred "x!1")
       (expand "red_gs_band?")
       (lemma "gs_red_band")
       (inst-cp - "bband" "s" "vi" "vo"
        "(gs_bands(s,vo,vi)`seq(1 + i) +
                                                                                                  gs_bands(s,vo,vi)`seq(i))
                                                                                                 / 2")
       (("1"
         (inst - "bband" "s" "vi" "vo" "x!1")
         (("1" (assert) (lemma "cd2d[D,B,T]") (inst?) (assert))
          ("2" (assert) (replace "bbn" :dir rl) (assert))))
        ("2" (replace "bbn" :dir rl) (assert))))
      ("2"
       (expand "red_gs_band?")
       (inst -
        "(gs_bands(s,vo,vi)`seq(1 + i) +
                                                                  gs_bands(s,vo,vi)`seq(i))
                                                                 / 2")
       (("1" (rewrite "cd2d[D,B,T]"))
        ("2"
         (typepred "gs_bands(s,vo,vi)")
         (expand "increasing?")
         (inst - "i" "1+i")
         (assert))))))
    ("2"
     (hide 2)
     (replace -1 :dir rl)
     (expand "gs_band?")
     (skosimp*)
     (typepred "gso!1")
     (lemma "gs_bands_critical")
     (inst - "gso!1" "s" "vi" "vo")
     (("1"
       (assert)
       (expand "member")
       (skosimp*)
       (typepred "gs_bands(s,vo,vi)")
       (expand "increasing?")
       (case "i!1 < i")
       (("1" (inst - "i!1" "i") (assert))
        ("2"
         (case "i!1 > 1+i")
         (("1" (inst - "1+i" "i!1") (assert)) ("2" (assert))))))
      ("2"
       (typepred "gs_bands(s,vo,vi)")
       (expand "gs_fseq?")
       (inst-cp -1 "i")
       (assert)
       (inst - "1+i")
       (flatten)
       (assert))))
    ("3"
     (split)
     (("1"
       (skosimp*)
       (typepred "a!1")
       (typepred "b!1")
       (replace -5 :dir rl)
       (assert)
       (flatten)
       (assert))
      ("2"
       (skosimp*)
       (typepred "gs_bands(s,vo,vi)")
       (expand "gs_fseq?")
       (inst-cp -1 "i")
       (typepred "z!1")
       (assert)
       (replace -5 :dir rl)
       (assert)
       (flatten)
       (assert))))))


proof_type: t_proof
decl_type: tcc
library: ACCoRD
theory: bands_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (expand "trk_fseq?")
   (skosimp*)
   (expand "addend")
   (expand "empty_seq")
   (lift-if)
   (ground)
   (("1"
     (typepred "i!1")
     (expand "addend")
     (expand "empty_seq")
     (propax))
    ("2"
     (typepred "i!1")
     (expand "addend")
     (expand "empty_seq")
     (propax))))


proof_type: t_proof
decl_type: tcc
library: ACCoRD
theory: bands_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (assert)
   (lemma "sort_fseq_lem")
   (inst?)
   (flatten)
   (rewrite "sort_trk_fseq")
   (hide-all-but 1)
   (rewrite "comp_trk_fseq")
   (hide 2)
   (rewrite "comp_trk_fseq")
   (("1"
     (hide 2)
     (expand "addend")
     (expand "empty_seq")
     (expand "trk_fseq?")
     (propax))
    ("2"
     (hide 2)
     (expand "addend")
     (expand "empty_seq")
     (expand "trk_fseq?")
     (propax))))


proof_type: t_proof
decl_type: tcc
library: ACCoRD
theory: bands_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (expand "gs_fseq?")
   (skosimp*)
   (expand "addend")
   (expand "empty_seq")
   (lift-if)
   (typepred "i!1")
   (expand "addend")
   (expand "empty_seq")
   (assert))


proof_type: t_proof
decl_type: tcc
library: ACCoRD
theory: bands_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (hide 1)
   (ground)
   (("1" (skosimp*) (expand "emptyseq") (expand "empty_seq") (propax))
    ("2"
     (expand "gs_fseq?")
     (skosimp*)
     (typepred "i!1")
     (expand "emptyseq")
     (expand "empty_seq")
     (assert))))


proof_type: t_proof
decl_type: tcc
library: ACCoRD
theory: bands_2D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
description: nil
script:
  (""
   (skeep)
   (assert)
   (rewrite "sort_gs_fseq")
   (hide-all-but 1)
   (rewrite "comp_gs_fseq")
   (hide 2)
   (rewrite "comp_gs_fseq")
   (("1"
     (hide 2)
     (expand "addend")
     (expand "empty_seq")
     (expand "gs_fseq?")
     (lemma "gs_min_lt_max")
     (assert))
    ("2"
     (hide 2)
     (expand "addend")
     (expand "empty_seq")
     (expand "gs_fseq?")
     (lemma "gs_min_lt_max")
     (assert))))


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)
   (expand "trk_bands_3D")
   (lift-if)
   (ground)
   (("1"
     (lemma "trk_bands_not_empty[D,B,T,gsmin,gsmax]")
     (("1" (inst?)) ("2" (assert))))
    ("2"
     (lemma
      "trk_bands_not_empty[D, max(Theta_H(s`z, vo`z - vi`z, -1), B),
                 min(Theta_H(s`z, vo`z - vi`z, 1), T), gsmin, gsmax]")
     (("1" (inst?)) ("2" (assert))))
    ("3"
     (expand "max")
     (expand "min")
     (expand "add")
     (expand "insert")
     (expand "empty_seq")
     (assert))
    ("4"
     (lemma
      "trk_bands_not_empty
                [D, max(Theta_H(s`z, vo`z - vi`z, -1), B),
                 min(Theta_H(s`z, vo`z - vi`z, 1), T), gsmin, gsmax]")
     (("1" (inst?)) ("2" (assert))))
    ("5" (expand "add") (expand "insert") (expand "empty_seq") (assert))
    ("6" (expand "add") (expand "empty_seq") (expand "insert") (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: bands_3D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
script:
  (""
   (skeep)
   (name "trkbb" "trk_bands_3D(s, vo, vi)")
   (replace -1)
   (assert)
   (case "member(2*pi,trkbb)")
   (("1"
     (expand "member")
     (skosimp*)
     (typepred "trkbb")
     (expand "increasing?")
     (inst - "i!1" "trkbb`length-1")
     (assert)
     (expand "trk_fseq?")
     (inst - "trkbb`length-1")
     (flatten)
     (assert))
    ("2"
     (hide 2)
     (hide -)
     (expand "trkbb")
     (expand "trk_bands_3D")
     (lift-if)
     (ground)
     (("1"
       (lemma "trk_bands_critical[D,B,T,gsmin,gsmax]")
       (("1"
         (inst?)
         (assert)
         (hide 2)
         (flatten)
         (hide 1)
         (expand "to2pi")
         (assert))
        ("2" (assert))))
      ("2"
       (lemma
        "trk_bands_critical[D, max(Theta_H(s`z, vo`z - vi`z, -1), B),
                                min(Theta_H(s`z, vo`z - vi`z, 1), T), gsmin, gsmax]")
       (("1" (inst?) (assert) (flatten) (expand "to2pi") (assert))
        ("2" (assert))))
      ("3"
       (expand "member")
       (inst + "1")
       (("1"
         (expand "add")
         (expand "insert")
         (assert)
         (expand "empty_seq")
         (propax))
        ("2"
         (expand "add")
         (expand "insert")
         (expand "empty_seq")
         (assert))))
      ("4"
       (lemma
        "trk_bands_critical[D, max(Theta_H(s`z, vo`z - vi`z, -1), B),
                                min(Theta_H(s`z, vo`z - vi`z, 1), T), gsmin, gsmax]")
       (("1" (inst?) (assert) (flatten) (expand "to2pi") (assert))
        ("2" (assert))))
      ("5"
       (expand "member")
       (inst + "1")
       (("1"
         (expand "add")
         (expand "insert")
         (expand "empty_seq")
         (assert))
        ("2"
         (expand "add")
         (expand "insert")
         (expand "empty_seq")
         (assert))))
      ("6"
       (expand "member")
       (inst + "1")
       (("1"
         (expand "add")
         (expand "insert")
         (expand "empty_seq")
         (assert))
        ("2"
         (expand "add")
         (expand "insert")
         (expand "empty_seq")
         (assert))))))))


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 "trkbb" "trk_bands_3D(s, vo, vi)")
   (replace -1)
   (assert)
   (case "member(0,trkbb)")
   (("1"
     (typepred "trkbb")
     (expand "increasing?")
     (expand "member")
     (skosimp*)
     (inst - "0" "i!1")
     (assert)
     (expand "trk_fseq?")
     (inst - "0")
     (assert))
    ("2"
     (hide 2)
     (hide -)
     (expand "trkbb")
     (expand "trk_bands_3D")
     (lift-if)
     (ground)
     (("1"
       (lemma "trk_bands_critical[D, B, T, gsmin, gsmax]")
       (("1"
         (inst?)
         (("1" (assert) (flatten) (expand "to2pi") (assert))
          ("2" (assert))))
        ("2" (assert))))
      ("2"
       (lemma
        "trk_bands_critical[D, max(Theta_H(s`z, vo`z - vi`z, -1), B),
                          min(Theta_H(s`z, vo`z - vi`z, 1), T), gsmin, gsmax]")
       (("1"
         (inst?)
         (("1" (assert) (flatten) (expand "to2pi") (assert))
          ("2" (assert))))
        ("2" (assert))))
      ("3"
       (expand "member")
       (inst + "0")
       (("1"
         (expand "add")
         (expand "insert")
         (expand "empty_seq")
         (propax))
        ("2"
         (expand "add")
         (expand "insert")
         (expand "empty_seq")
         (assert))))
      ("4"
       (lemma
        "trk_bands_critical[D, max(Theta_H(s`z, vo`z - vi`z, -1), B),
                          min(Theta_H(s`z, vo`z - vi`z, 1), T), gsmin, gsmax]")
       (("1"
         (inst?)
         (("1" (assert) (flatten) (expand "to2pi") (assert))
          ("2" (assert))))
        ("2" (assert))))
      ("5"
       (expand "member")
       (inst + "0")
       (("1"
         (expand "add")
         (expand "insert")
         (expand "empty_seq")
         (propax))
        ("2"
         (expand "add")
         (expand "insert")
         (expand "empty_seq")
         (assert))))
      ("6"
       (expand "member")
       (inst + "0")
       (("1"
         (expand "add")
         (expand "insert")
         (expand "empty_seq")
         (propax))
        ("2"
         (expand "add")
         (expand "insert")
         (expand "empty_seq")
         (assert))))))))


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)
   (expand "gs_bands_3D")
   (lift-if)
   (ground)
   (("1"
     (lemma "gs_bands_not_empty[D, B, T, gsmin, gsmax]")
     (("1" (inst?)) ("2" (assert))))
    ("2"
     (lemma
      "gs_bands_not_empty
                [D, max(Theta_H(s`z, vo`z - vi`z, -1), B),
                 min(Theta_H(s`z, vo`z - vi`z, 1), T), gsmin, gsmax]")
     (("1" (inst?)) ("2" (assert))))
    ("3" (expand "add") (expand "insert") (expand "empty_seq") (assert))
    ("4"
     (lemma
      "gs_bands_not_empty
                [D, max(Theta_H(s`z, vo`z - vi`z, -1), B),
                 min(Theta_H(s`z, vo`z - vi`z, 1), T), gsmin, gsmax]")
     (("1" (inst?)) ("2" (assert))))
    ("5" (expand "empty_seq") (expand "add") (expand "insert") (assert))
    ("6" (expand "empty_seq") (expand "add") (expand "insert") (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: bands_3D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
script:
  (""
   (skeep)
   (name "gsbb" "gs_bands_3D(s, vo, vi)")
   (replace -1)
   (assert)
   (case "member(gsmax,gsbb)")
   (("1"
     (expand "member")
     (skosimp*)
     (typepred "gsbb")
     (expand "increasing?")
     (inst - "i!1" "gsbb`length-1")
     (assert)
     (expand "gs_fseq?")
     (inst - "gsbb`length-1")
     (flatten)
     (assert))
    ("2"
     (hide 2)
     (hide -)
     (expand "gsbb")
     (expand "gs_bands_3D")
     (lift-if)
     (ground)
     (("1"
       (lemma "gs_bands_critical[D,B,T,gsmin,gsmax]")
       (inst?)
       (assert))
      ("2"
       (lemma
        "gs_bands_critical[D, max(Theta_H(s`z, vo`z - vi`z, -1), B),
                                            min(Theta_H(s`z, vo`z - vi`z, 1), T), gsmin, gsmax]")
       (inst?)
       (assert))
      ("3"
       (expand "member")
       (inst + "1")
       (("1"
         (expand "add")
         (expand "insert")
         (expand "empty_seq")
         (assert))
        ("2"
         (expand "add")
         (expand "insert")
         (expand "empty_seq")
         (assert))))
      ("4"
       (lemma
        "gs_bands_critical[D, max(Theta_H(s`z, vo`z - vi`z, -1), B),
                                            min(Theta_H(s`z, vo`z - vi`z, 1), T), gsmin, gsmax]")
       (inst?)
       (assert))
      ("5"
       (expand "member")
       (inst + "1")
       (("1"
         (expand "add")
         (expand "insert")
         (expand "empty_seq")
         (assert))
        ("2"
         (expand "add")
         (expand "insert")
         (expand "empty_seq")
         (assert))))
      ("6"
       (expand "member")
       (inst + "1")
       (("1"
         (expand "add")
         (expand "insert")
         (expand "empty_seq")
         (assert))
        ("2"
         (expand "add")
         (expand "insert")
         (expand "empty_seq")
         (assert))))))))


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 "gsbb" "gs_bands_3D(s, vo, vi)")
   (replace -1)
   (assert)
   (case "member(gsmin,gsbb)")
   (("1"
     (typepred "gsbb")
     (expand "increasing?")
     (expand "member")
     (skosimp*)
     (inst - "0" "i!1")
     (assert)
     (expand "gs_fseq?")
     (inst - "0")
     (assert))
    ("2"
     (hide 2)
     (hide -)
     (expand "gsbb")
     (expand "gs_bands_3D")
     (lift-if)
     (ground)
     (("1"
       (lemma "gs_bands_critical[D, B, T, gsmin, gsmax]")
       (("1" (inst?) (("1" (assert)) ("2" (assert)))) ("2" (assert))))
      ("2"
       (lemma
        "gs_bands_critical[D, max(Theta_H(s`z, vo`z - vi`z, -1), B),
                                      min(Theta_H(s`z, vo`z - vi`z, 1), T), gsmin, gsmax]")
       (("1" (inst?) (("1" (assert)) ("2" (assert)))) ("2" (assert))))
      ("3"
       (expand "member")
       (inst + "0")
       (("1"
         (expand "add")
         (expand "insert")
         (expand "empty_seq")
         (propax))
        ("2"
         (expand "add")
         (expand "insert")
         (expand "empty_seq")
         (assert))))
      ("4"
       (lemma
        "gs_bands_critical[D, max(Theta_H(s`z, vo`z - vi`z, -1), B),
                                      min(Theta_H(s`z, vo`z - vi`z, 1), T), gsmin, gsmax]")
       (("1" (inst?) (("1" (assert)) ("2" (assert)))) ("2" (assert))))
      ("5"
       (expand "member")
       (inst + "0")
       (("1"
         (expand "add")
         (expand "insert")
         (expand "empty_seq")
         (propax))
        ("2"
         (expand "add")
         (expand "insert")
         (expand "empty_seq")
         (assert))))
      ("6"
       (expand "member")
       (inst + "0")
       (("1"
         (expand "add")
         (expand "insert")
         (expand "empty_seq")
         (propax))
        ("2"
         (expand "add")
         (expand "insert")
         (expand "empty_seq")
         (assert))))))))


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)
   (expand "vs_bands_3D")
   (lift-if)
   (ground)
   (("1"
     (lemma "vs_bands_not_empty[H, B, T, vsmin, vsmax]")
     (("1" (inst?)) ("2" (assert))))
    ("2"
     (lemma
      "vs_bands_not_empty
                [H, max(Theta_D(vect2(s), vect2(vo - vi), -1), B),
                 min(Theta_D(vect2(s), vect2(vo - vi), 1), T), vsmin, vsmax]")
     (("1" (inst?)) ("2" (assert))))
    ("3" (expand "empty_seq") (expand "add") (expand "insert") (assert))
    ("4" (expand "empty_seq") (expand "add") (expand "insert") (assert))
    ("5"
     (lemma
      "vs_bands_not_empty
                [H, max(Theta_D(vect2(s), vect2(vo - vi), -1), B),
                 min(Theta_D(vect2(s), vect2(vo - vi), 1), T), vsmin, vsmax]")
     (("1" (inst?)) ("2" (assert))))
    ("6" (expand "empty_seq") (expand "add") (expand "insert") (assert))
    ("7" (expand "empty_seq") (expand "add") (expand "insert") (assert))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: bands_3D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
script:
  (""
   (skeep)
   (name "vsbb" "vs_bands_3D(s, vo, vi)")
   (replace -1)
   (assert)
   (case "member(vsmax,vsbb)")
   (("1"
     (expand "member")
     (skosimp*)
     (typepred "vsbb")
     (expand "increasing?")
     (inst - "i!1" "vsbb`length-1")
     (assert)
     (expand "vs_fseq?")
     (inst - "vsbb`length-1")
     (flatten)
     (assert))
    ("2"
     (hide 2)
     (hide -)
     (expand "vsbb")
     (expand "vs_bands_3D")
     (lift-if)
     (ground)
     (("1"
       (lemma "vs_bands_critical[H,B,T,vsmin,vsmax]")
       (inst?)
       (assert))
      ("2"
       (lemma
        "vs_bands_critical[H, max(Theta_D(vect2(s), vect2(vo - vi), -1), B),
                          min(Theta_D(vect2(s), vect2(vo - vi), 1), T), vsmin,
                          vsmax]")
       (inst?)
       (assert))
      ("3"
       (expand "member")
       (inst + "1")
       (("1"
         (expand "add")
         (expand "insert")
         (expand "empty_seq")
         (assert))
        ("2"
         (expand "add")
         (expand "insert")
         (expand "empty_seq")
         (assert))))
      ("4"
       (expand "member")
       (inst + "1")
       (("1"
         (expand "add")
         (expand "insert")
         (expand "empty_seq")
         (assert))
        ("2"
         (expand "add")
         (expand "insert")
         (expand "empty_seq")
         (assert))))
      ("5"
       (lemma
        "vs_bands_critical[H, max(Theta_D(vect2(s), vect2(vo - vi), -1), B),
                          min(Theta_D(vect2(s), vect2(vo - vi), 1), T), vsmin,
                          vsmax]")
       (inst?)
       (assert))
      ("6"
       (expand "member")
       (inst + "1")
       (("1"
         (expand "add")
         (expand "insert")
         (expand "empty_seq")
         (assert))
        ("2"
         (expand "add")
         (expand "insert")
         (expand "empty_seq")
         (assert))))
      ("7"
       (expand "member")
       (inst + "1")
       (("1"
         (expand "add")
         (expand "insert")
         (expand "empty_seq")
         (assert))
        ("2"
         (expand "add")
         (expand "insert")
         (expand "empty_seq")
         (assert))))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: bands_3D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
description: nil
script:
  (""
   (skeep)
   (name "vsbb" "vs_bands_3D(s, vo, vi)")
   (replace -1)
   (assert)
   (case "member(vsmin,vsbb)")
   (("1"
     (typepred "vsbb")
     (expand "increasing?")
     (expand "member")
     (skosimp*)
     (inst - "0" "i!1")
     (assert)
     (expand "vs_fseq?")
     (inst - "0")
     (assert))
    ("2"
     (hide 2)
     (hide -)
     (expand "vsbb")
     (expand "vs_bands_3D")
     (lift-if)
     (ground)
     (("1"
       (lemma "vs_bands_critical[H, B, T, vsmin, vsmax]")
       (("1" (inst?) (("1" (assert)) ("2" (assert)))) ("2" (assert))))
      ("2"
       (lemma
        "vs_bands_critical[H, max(Theta_D(vect2(s), vect2(vo - vi), -1), B),
                          min(Theta_D(vect2(s), vect2(vo - vi), 1), T), vsmin,
                          vsmax]")
       (("1" (inst?) (("1" (assert)) ("2" (assert)))) ("2" (assert))))
      ("3"
       (expand "member")
       (inst + "0")
       (("1"
         (expand "add")
         (expand "insert")
         (expand "empty_seq")
         (propax))
        ("2"
         (expand "add")
         (expand "insert")
         (expand "empty_seq")
         (assert))))
      ("4"
       (expand "member")
       (inst + "0")
       (("1"
         (expand "add")
         (expand "insert")
         (expand "empty_seq")
         (propax))
        ("2"
         (expand "add")
         (expand "insert")
         (expand "empty_seq")
         (assert))))
      ("5"
       (lemma
        "vs_bands_critical[H, max(Theta_D(vect2(s), vect2(vo - vi), -1), B),
                          min(Theta_D(vect2(s), vect2(vo - vi), 1), T), vsmin,
                          vsmax]")
       (("1" (inst?) (("1" (assert)) ("2" (assert)))) ("2" (assert))))
      ("6"
       (expand "member")
       (inst + "0")
       (("1"
         (expand "add")
         (expand "insert")
         (expand "empty_seq")
         (propax))
        ("2"
         (expand "add")
         (expand "insert")
         (expand "empty_seq")
         (assert))))
      ("7"
       (expand "member")
       (inst + "0")
       (("1"
         (expand "add")
         (expand "insert")
         (expand "empty_seq")
         (propax))
        ("2"
         (expand "add")
         (expand "insert")
         (expand "empty_seq")
         (assert))))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: bands_3D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
script:
  (""
   (skeep)
   (case "vo`z = vi`z and abs(s`z)<H")
   (("1"
     (flatten)
     (case "trk_bands_3D(s,vo,vi) = trk_bands[D,B,T,gsmin,gsmax](s,vo,vi)")
     (("1"
       (replace -1)
       (hide -1)
       (assert)
       (skosimp*)
       (name "mp"
             "(trk_bands[D, B, T, gsmin, gsmax]
                                                                                                        (vect2(s), vect2(vo), vect2(vi))`seq
                                                                                                        (1 + i!1)
                                                                                                     +
                                                                                                     trk_bands[D, B, T, gsmin, gsmax]
                                                                                                         (vect2(s), vect2(vo), vect2(vi))`seq
                                                                                                         (i!1))
                                                                                                    / 2")
       (case "mp >= 0")
       (("1"
         (expand "red_trk_band_3D?")
         (replace -2)
         (rewrite "cd3d_rewrite")
         (expand "Vtrk_3D" 1 1)
         (rewrite "vz_distr_sub")
         (expand "trk2v3" 1 1)
         (lemma "trk_red_bands[D,B,T,gsmin,gsmax]")
         (inst - "s" "vi" "vo")
         (assert)
         (inst - "i!1")
         (expand "red_trk_band?")
         (replace -3)
         (expand "Vtrk" -1 1)
         (expand "Vtrk_3D" 1 1)
         (rewrite "vect2_sub")
         (rewrite "vect2_trk2v3")
         (replace -1)
         (hide -1)
         (split)
         (("1"
           (flatten)
           (skosimp*)
           (case "x!1 >=0 AND x!1 < 2*pi")
           (("1"
             (flatten)
             (inst - "x!1")
             (rewrite "cd3d")
             (lemma "cd3d_rewrite")
             (inst - "s" "Vtrk_3D(vo,vi)(x!1)")
             (replace -1)
             (hide -1)
             (expand "Vtrk_3D" 1 1)
             (rewrite "vz_distr_sub")
             (expand "trk2v3" 1 1)
             (rewrite "cd2d" :dir rl)
             (expand "Vtrk")
             (expand "Vtrk_3D")
             (rewrite "vect2_sub")
             (rewrite "vect2_trk2v3"))
            ("2"
             (typepred "trk_bands[D,B,T,gsmin,gsmax](s,vo,vi)")
             (expand "trk_fseq?")
             (inst-cp -1 "i!1")
             (inst -1 "i!1+1")
             (flatten)
             (assert))))
          ("2"
           (flatten)
           (skosimp*)
           (case "x!1 >= 0 AND x!1 <2*pi")
           (("1"
             (flatten)
             (inst - "x!1")
             (expand "conflict_3D?")
             (skosimp*)
             (expand "conflict_2D?")
             (inst + "t!1")
             (expand "Vtrk_3D")
             (rewrite "vect2_sub")
             (rewrite "vect2_trk2v3")
             (expand "Vtrk")
             (propax))
            ("2"
             (typepred "trk_bands[D,B,T,gsmin,gsmax](s,vo,vi)")
             (expand "trk_fseq?")
             (inst-cp - "i!1")
             (inst - "i!1+1")
             (flatten)
             (assert))))))
        ("2"
         (hide 2)
         (typepred "trk_bands[D,B,T,gsmin,gsmax](s,vo,vi)")
         (expand "trk_fseq?")
         (inst-cp - "i!1")
         (inst - "i!1+1")
         (flatten)
         (assert))))
      ("2"
       (typepred "trk_bands[D,B,T,gsmin,gsmax](s,vo,vi)")
       (expand "trk_fseq?")
       (expand "trk_bands_3D")
       (assert))
      ("3" (assert))))
    ("2"
     (case "vo`z /= vi`z")
     (("1"
       (flatten)
       (expand "trk_bands_3D" :assert? none)
       (name "BB" "max(Theta_H(s`z,vo`z-vi`z,Entry),B)")
       (("1"
         (name "TT" "min(Theta_H(s`z,vo`z-vi`z,Exit),T)")
         (replace -1)
         (replace -2)
         (assert)
         (case "BB<TT")
         (("1"
           (assert)
           (skosimp*)
           (name "mp"
                 "(trk_bands[D, BB, TT, gsmin, gsmax]
                                                                                                                          (vect2(s), vect2(vo), vect2(vi))`seq
                                                                                                                          (1 + i!1)
                                                                                                                       +
                                                                                                                       trk_bands[D, BB, TT, gsmin, gsmax]
                                                                                                                           (vect2(s), vect2(vo), vect2(vi))`seq
                                                                                                                           (i!1))
                                                                                                                      / 2")
           (("1"
             (case "mp >= 0")
             (("1"
               (expand "red_trk_band_3D?")
               (replace -2)
               (rewrite "cd3d_rewrite")
               (expand "Vtrk_3D" 2 1)
               (rewrite "vz_distr_sub")
               (expand "trk2v3" 2 1)
               (expand "Vtrk_3D" 2 1)
               (rewrite "vz_distr_sub")
               (expand "trk2v3" 2 1)
               (case "Vtrk_3D(vo,vi)(mp)`z = vo`z-vi`z")
               (("1"
                 (assert)
                 (lemma "trk_red_bands[D,BB,TT,gsmin,gsmax]")
                 (inst - "s" "vi" "vo")
                 (assert)
                 (inst - "i!1")
                 (("1"
                   (expand "red_trk_band?")
                   (replace -4)
                   (expand "Vtrk" -1 1)
                   (expand "Vtrk_3D" 2 1)
                   (rewrite "vect2_sub")
                   (rewrite "vect2_trk2v3")
                   (expand "trk2v2" -1 1)
                   (expand "trk2v2" 2 1)
                   (expand "cd2d?")
                   (replace -2)
                   (split +)
                   (("1"
                     (flatten)
                     (split -2)
                     (("1"
                       (hide (-2 -3))
                       (skosimp*)
                       (rewrite "cd3d")
                       (rewrite "cd3d_rewrite")
                       (case "x!1 >= 0 AND x!1 <2*pi")
                       (("1"
                         (flatten)
                         (inst - "x!1")
                         (("1"
                           (rewrite "cd2d")
                           (expand "Vtrk")
                           (expand "Vtrk_3D")
                           (rewrite "vect2_sub")
                           (rewrite "vect2_trk2v3")
                           (expand "trk2v2")
                           (assert)
                           (case "Vtrk_3D(vo, vi)(x!1)`z = vo`z-vi`z")
                           (("1"
                             (expand "cd2d?")
                             (replace -1)
                             (flatten)
                             (assert)
                             (expand "omega_vv")
                             (expand "tau_vv")
                             (lift-if)
                             (ground))
                            ("2"
                             (expand "Vtrk_3D")
                             (rewrite "vz_distr_sub")
                             (expand "trk2v3")
                             (propax))))
                          ("2" (typepred "x!1") (assert))))
                        ("2"
                         (typepred "x!1")
                         (assert)
                         (typepred
                          "trk_bands[D,BB,TT,gsmin,gsmax](s,vo,vi)")
                         (expand "trk_fseq?")
                         (inst-cp - "i!1")
                         (("1"
                           (inst - "i!1+1")
                           (("1" (flatten) (assert))
                            ("2" (flatten) (typepred "i!1") (assert))))
                          ("2" (typepred "i!1") (assert))))))
                      ("2"
                       (flatten)
                       (assert)
                       (expand "omega_vv")
                       (expand "tau_vv")
                       (lift-if)
                       (ground))))
                    ("2"
                     (flatten)
                     (split -3)
                     (("1" (assert))
                      ("2"
                       (expand "omega_vv" (-1 +))
                       (expand "tau_vv")
                       (lift-if)
                       (ground))
                      ("3"
                       (hide -2)
                       (skosimp*)
                       (case "x!1 >= 0 AND x!1 <2*pi")
                       (("1"
                         (flatten)
                         (inst - "x!1")
                         (rewrite "cd3d")
                         (rewrite "cd3d_rewrite")
                         (rewrite "cd2d")
                         (case "Vtrk_3D(vo, vi)(x!1)`z = vo`z-vi`z")
                         (("1"
                           (expand "cd2d?")
                           (expand "Vtrk_3D")
                           (expand "Vtrk")
                           (rewrite "vz_distr_sub")
                           (rewrite "vect2_sub")
                           (rewrite "vect2_trk2v3")
                           (expand "trk2v3")
                           (expand "trk2v2")
                           (flatten)
                           (assert)
                           (expand "omega_vv")
                           (expand "tau_vv")
                           (lift-if)
                           (ground))
                          ("2"
                           (expand "Vtrk_3D")
                           (rewrite "vz_distr_sub")
                           (expand "trk2v3")
                           (propax))))
                        ("2"
                         (typepred "x!1")
                         (typepred
                          "trk_bands[D,BB,TT,gsmin,gsmax](s,vo,vi)")
                         (expand "trk_fseq?")
                         (inst-cp - "i!1")
                         (("1"
                           (inst - "i!1+1")
                           (("1" (flatten) (assert))
                            ("2" (typepred "i!1") (assert))))
                          ("2" (typepred "i!1") (assert))))))))))
                  ("2" (typepred "i!1") (assert))))
                ("2"
                 (expand "Vtrk_3D")
                 (rewrite "vz_distr_sub")
                 (expand "trk2v3")
                 (propax))))
              ("2"
               (typepred "i!1")
               (assert)
               (typepred "trk_bands[D,BB,TT,gsmin,gsmax](s,vo,vi)")
               (expand "trk_fseq?")
               (inst-cp - "i!1")
               (inst - "i!1+1")
               (flatten)
               (assert))))
            ("2" (assert))))
          ("2"
           (assert)
           (skosimp*)
           (hide 3)
           (split)
           (("1"
             (flatten)
             (hide 1)
             (expand "red_trk_band_3D?")
             (name "mp"
                   "(structures@add(gsmin, structures@add(gsmax, empty_seq))`seq(1 + i!1) +
                                                                           structures@add(gsmin, add(gsmax, empty_seq))`seq(i!1))
                                                                          / 2")
             (case "Vtrk_3D(vo,vi)(mp)`z = vo`z-vi`z")
             (("1" (rewrite "cd3d_rewrite") (assert))
              ("2"
               (expand "Vtrk_3D")
               (rewrite "vz_distr_sub")
               (expand "trk2v3")
               (propax))))
            ("2"
             (flatten)
             (expand "red_trk_band_3D?")
             (name "mp"
                   "(structures@add(0, structures@add(2 * pi, empty_seq))`seq(1 + i!1) +
                                                          structures@add(0, structures@add(2 * pi, empty_seq))`seq(i!1))
                                                         / 2")
             (replace -1)
             (inst - "mp")
             (("1" (rewrite "cd3d"))
              ("2"
               (expand "add")
               (expand "insert")
               (expand "empty_seq")
               (case "i!1 = 0")
               (("1" (assert) (typepred "gsmax") (assert))
                ("2"
                 (typepred "i!1")
                 (assert)
                 (expand "add")
                 (expand "insert")
                 (expand "empty_seq")
                 (assert))))))))))
        ("2" (assert))))
      ("2"
       (assert)
       (flatten)
       (skosimp*)
       (split)
       (("1"
         (flatten)
         (hide 1)
         (expand "red_trk_band_3D?")
         (rewrite "cd3d" :dir rl)
         (expand "conflict_3D?")
         (skosimp*)
         (expand "Vtrk_3D" -1)
         (rewrite "vz_distr_sub")
         (expand "trk2v3")
         (assert))
        ("2"
         (typepred "trk_bands_3D(s, vo, vi)")
         (expand "trk_fseq?")
         (inst-cp - "i!1")
         (inst - "i!1+1")
         (flatten)
         (expand "red_trk_band_3D?")
         (name "mp"
               "(trk_bands_3D(s, vo, vi)`seq(1 + i!1) +
                                                               trk_bands_3D(s, vo, vi)`seq(i!1))
                                                              / 2")
         (replace -1)
         (inst - "mp")
         (("1" (rewrite "cd3d"))
          ("2"
           (typepred "trk_bands_3D(s, vo, vi)")
           (expand "increasing?")
           (inst - "i!1" "i!1+1")
           (assert))))))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: bands_3D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
script:
  (""
   (skeep)
   (case "vo`z = vi`z and abs(s`z)<H")
   (("1"
     (flatten)
     (case "trk_bands_3D(s,vo,vi) = trk_bands[D,B,T,gsmin,gsmax](s,vo,vi)")
     (("1"
       (replace -1)
       (hide -1)
       (assert)
       (skosimp*)
       (name "mp"
             "(trk_bands[D, B, T, gsmin, gsmax]
                                                                                                                              (vect2(s), vect2(vo), vect2(vi))`seq
                                                                                                                              (1 + i!1)
                                                                                                                           +
                                                                                                                           trk_bands[D, B, T, gsmin, gsmax]
                                                                                                                               (vect2(s), vect2(vo), vect2(vi))`seq
                                                                                                                               (i!1))
                                                                                                                          / 2")
       (case "mp >= 0")
       (("1"
         (expand "red_trk_band_3D?")
         (replace -2)
         (rewrite "cd3d_rewrite")
         (expand "Vtrk_3D" 1 1)
         (rewrite "vz_distr_sub")
         (expand "trk2v3" 1 1)
         (lemma "trk_green_bands[D,B,T,gsmin,gsmax]")
         (inst - "s" "vi" "vo")
         (assert)
         (inst - "i!1")
         (expand "red_trk_band?")
         (replace -3)
         (expand "Vtrk" -1 1)
         (expand "Vtrk_3D" 1 1)
         (rewrite "vect2_sub")
         (rewrite "vect2_trk2v3")
         (replace -1)
         (hide -1)
         (split)
         (("1"
           (flatten)
           (skosimp*)
           (inst - "x!1")
           (case "x!1 >= 0 AND x!1 <2*pi")
           (("1"
             (flatten)
             (expand "conflict_3D?")
             (skosimp*)
             (expand "conflict_2D?")
             (inst + "t!1")
             (expand "Vtrk_3D")
             (rewrite "vect2_sub")
             (rewrite "vect2_trk2v3")
             (expand "Vtrk")
             (propax))
            ("2"
             (typepred "trk_bands[D,B,T,gsmin,gsmax](s,vo,vi)")
             (expand "trk_fseq?")
             (inst-cp -1 "i!1")
             (inst -1 "i!1+1")
             (flatten)
             (assert))))
          ("2"
           (flatten)
           (skosimp*)
           (case "x!1 >= 0 AND x!1 <2*pi")
           (("1"
             (flatten)
             (inst - "x!1")
             (rewrite "cd3d")
             (lemma "cd3d_rewrite")
             (inst - "s" "Vtrk_3D(vo,vi)(x!1)")
             (replace -1)
             (hide -1)
             (expand "Vtrk_3D" 1 1)
             (rewrite "vz_distr_sub")
             (expand "trk2v3" 1 1)
             (rewrite "cd2d" :dir rl)
             (expand "Vtrk")
             (expand "Vtrk_3D")
             (rewrite "vect2_sub")
             (rewrite "vect2_trk2v3"))
            ("2"
             (typepred "trk_bands[D,B,T,gsmin,gsmax](s,vo,vi)")
             (expand "trk_fseq?")
             (inst-cp -1 "i!1")
             (inst -1 "i!1+1")
             (flatten)
             (assert))))))
        ("2"
         (hide 2)
         (typepred "trk_bands[D,B,T,gsmin,gsmax](s,vo,vi)")
         (expand "trk_fseq?")
         (inst-cp - "i!1")
         (inst - "i!1+1")
         (flatten)
         (assert))))
      ("2" (expand "trk_bands_3D") (assert)) ("3" (assert))))
    ("2"
     (case "vo`z /= vi`z")
     (("1"
       (flatten)
       (expand "trk_bands_3D" :assert? none)
       (name "BB" "max(Theta_H(s`z,vo`z-vi`z,Entry),B)")
       (("1"
         (name "TT" "min(Theta_H(s`z,vo`z-vi`z,Exit),T)")
         (replace -1)
         (replace -2)
         (assert)
         (case "BB<TT")
         (("1"
           (assert)
           (skosimp*)
           (name "mp"
                 "(trk_bands[D, BB, TT, gsmin, gsmax]
                                                                                                                                                        (vect2(s), vect2(vo), vect2(vi))`seq
                                                                                                                                                        (1 + i!1)
                                                                                                                                                     +
                                                                                                                                                     trk_bands[D, BB, TT, gsmin, gsmax]
                                                                                                                                                         (vect2(s), vect2(vo), vect2(vi))`seq
                                                                                                                                                         (i!1))
                                                                                                                                                    / 2")
           (("1"
             (case "mp >= 0")
             (("1"
               (expand "red_trk_band_3D?")
               (replace -2)
               (rewrite "cd3d_rewrite")
               (expand "Vtrk_3D" 2 1)
               (rewrite "vz_distr_sub")
               (expand "trk2v3" 2 1)
               (expand "Vtrk_3D" 2 1)
               (rewrite "vz_distr_sub")
               (expand "trk2v3" 2 1)
               (case "Vtrk_3D(vo,vi)(mp)`z = vo`z-vi`z")
               (("1"
                 (assert)
                 (lemma "trk_green_bands[D,BB,TT,gsmin,gsmax]")
                 (inst - "s" "vi" "vo")
                 (assert)
                 (inst - "i!1")
                 (("1"
                   (expand "red_trk_band?")
                   (replace -4)
                   (expand "Vtrk" -1 1)
                   (expand "Vtrk_3D" 2 1)
                   (rewrite "vect2_sub")
                   (rewrite "vect2_trk2v3")
                   (expand "trk2v2" -1 1)
                   (expand "trk2v2" 2 1)
                   (expand "cd2d?")
                   (replace -2)
                   (split +)
                   (("1"
                     (flatten)
                     (split -1)
                     (("1"
                       (skosimp*)
                       (case "x!1 >= 0 AND x!1 <2*pi")
                       (("1"
                         (inst - "x!1")
                         (("1"
                           (rewrite "cd3d")
                           (rewrite "cd3d_rewrite")
                           (rewrite "cd2d")
                           (case "Vtrk_3D(vo, vi)(x!1)`z = vo`z-vi`z")
                           (("1"
                             (expand "cd2d?")
                             (expand "Vtrk_3D")
                             (expand "Vtrk")
                             (rewrite "vz_distr_sub")
                             (rewrite "vect2_sub")
                             (rewrite "vect2_trk2v3")
                             (expand "trk2v3")
                             (expand "trk2v2")
                             (flatten)
                             (assert)
                             (expand "omega_vv")
                             (expand "tau_vv")
                             (lift-if)
                             (ground))
                            ("2"
                             (hide-all-but 1)
                             (expand "Vtrk_3D")
                             (rewrite "vz_distr_sub")
                             (expand "trk2v3")
                             (propax))))
                          ("2"
                           (typepred "x!1")
                           (typepred
                            "trk_bands[D,BB,TT,gsmin,gsmax](s,vo,vi)")
                           (expand "trk_fseq?")
                           (inst-cp - "i!1")
                           (("1"
                             (inst - "i!1+1")
                             (("1" (flatten) (assert))
                              ("2" (typepred "i!1") (assert))))
                            ("2" (typepred "i!1") (assert))))))
                        ("2"
                         (typepred "x!1")
                         (typepred
                          "trk_bands[D,BB,TT,gsmin,gsmax](s,vo,vi)")
                         (expand "trk_fseq?")
                         (inst-cp - "i!1")
                         (("1"
                           (inst - "i!1+1")
                           (("1" (flatten) (assert))
                            ("2" (typepred "i!1") (assert))))
                          ("2" (typepred "i!1") (assert))))))
                      ("2"
                       (expand "omega_vv" (-1 +))
                       (expand "tau_vv")
                       (lift-if)
                       (ground))
                      ("3"
                       (expand "omega_vv" (-1 +))
                       (expand "tau_vv")
                       (lift-if)
                       (ground))))
                    ("2"
                     (skosimp*)
                     (assert)
                     (hide -3)
                     (split -3)
                     (("1"
                       (split -)
                       (("1" (flatten) (assert))
                        ("2"
                         (flatten)
                         (expand "omega_vv" (-1 +))
                         (expand "tau_vv")
                         (lift-if)
                         (ground))))
                      ("2"
                       (skosimp*)
                       (case "x!1 >= 0 AND x!1 <2*pi")
                       (("1"
                         (flatten)
                         (inst - "x!1")
                         (rewrite "cd3d")
                         (rewrite "cd3d_rewrite")
                         (rewrite "cd2d")
                         (case "Vtrk_3D(vo, vi)(x!1)`z = vo`z-vi`z")
                         (("1"
                           (expand "cd2d?")
                           (expand "Vtrk_3D")
                           (expand "Vtrk")
                           (rewrite "vz_distr_sub")
                           (rewrite "vect2_sub")
                           (rewrite "vect2_trk2v3")
                           (expand "trk2v3")
                           (expand "trk2v2")
                           (flatten)
                           (assert)
                           (expand "omega_vv")
                           (expand "tau_vv")
                           (lift-if)
                           (ground))
                          ("2"
                           (expand "Vtrk_3D")
                           (rewrite "vz_distr_sub")
                           (expand "trk2v3")
                           (propax))))
                        ("2"
                         (typepred "x!1")
                         (typepred
                          "trk_bands[D,BB,TT,gsmin,gsmax](s,vo,vi)")
                         (expand "trk_fseq?")
                         (inst-cp - "i!1")
                         (("1"
                           (inst - "i!1+1")
                           (("1" (flatten) (assert))
                            ("2" (typepred "i!1") (assert))))
                          ("2" (typepred "i!1") (assert))))))))))
                  ("2" (typepred "i!1") (assert))))
                ("2"
                 (typepred "trk_bands[D,BB,TT,gsmin,gsmax](s,vo,vi)")
                 (expand "trk_fseq?")
                 (inst-cp - "i!1")
                 (("1"
                   (inst - "i!1+1")
                   (("1"
                     (flatten)
                     (assert)
                     (expand "Vtrk_3D")
                     (rewrite "vz_distr_sub")
                     (expand "trk2v3")
                     (propax))
                    ("2"
                     (typepred "trk_bands[D,BB,TT,gsmin,gsmax](s,vo,vi)")
                     (expand "trk_fseq?")
                     (flatten)
                     (assert)
                     (typepred "i!1")
                     (assert))))
                  ("2" (typepred "i!1") (assert))))))
              ("2"
               (assert)
               (typepred "trk_bands[D,BB,TT,gsmin,gsmax](s,vo,vi)")
               (expand "trk_fseq?")
               (inst-cp - "i!1")
               (("1"
                 (flatten)
                 (inst - "i!1+1")
                 (("1" (flatten) (assert))
                  ("2" (typepred "i!1") (assert))))
                ("2" (typepred "i!1") (assert))))))
            ("2" (assert))))
          ("2"
           (skosimp*)
           (hide 3)
           (split)
           (("1"
             (flatten)
             (skosimp*)
             (rewrite "cd3d")
             (rewrite "cd3d_rewrite")
             (case "Vtrk_3D(vo, vi)(x!1)`z = vo`z-vi`z")
             (("1" (assert))
              ("2"
               (expand "Vtrk_3D")
               (rewrite "vz_distr_sub")
               (expand "trk2v3")
               (propax))))
            ("2"
             (flatten)
             (hide -1)
             (expand "red_trk_band_3D?")
             (assert)
             (name "mp"
                   "(structures@add(0, structures@add(2 * pi, empty_seq))`seq(1 + i!1) +
                                                          structures@add(0, structures@add(2 * pi, empty_seq))`seq(i!1))
                                                         / 2")
             (replace -1)
             (rewrite "cd3d_rewrite")
             (case "Vtrk_3D(vo, vi)(mp)`z = vo`z-vi`z")
             (("1" (assert))
              ("2"
               (expand "Vtrk_3D")
               (rewrite "vz_distr_sub")
               (expand "trk2v3")
               (propax))))))))
        ("2" (assert))))
      ("2"
       (assert)
       (skosimp*)
       (split)
       (("1"
         (flatten)
         (skosimp*)
         (expand "conflict_3D?")
         (skosimp*)
         (expand "Vtrk_3D")
         (rewrite "vz_distr_sub")
         (expand "trk2v3")
         (assert))
        ("2"
         (flatten)
         (expand "red_trk_band_3D?")
         (hide -1)
         (rewrite "cd3d" :dir rl)
         (expand "conflict_3D?")
         (skosimp*)
         (expand "Vtrk_3D")
         (rewrite "vz_distr_sub")
         (expand "trk2v3")
         (assert))))))))


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 "trkbb" "trk_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<=trkbb`length-1 AND trkbb`seq(ij) < x})")
   (("1"
     (case "ii <= trkbb`length-2")
     (("1"
       (case "trkbb`seq(ii) < x AND y < trkbb`seq(ii+1)")
       (("1"
         (flatten)
         (case "(conflict_3D?(s, Vtrk_3D(vo, vi)(x)) OR
                                                                             conflict_3D?(s, Vtrk_3D(vo, vi)(y)))")
         (("1"
           (case "red_trk_band_3D?(s,vo,vi,trkbb)(ii)")
           (("1"
             (lemma "trk_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 "trk_green_bands_3D")
             (inst?)
             (assert)
             (inst - "ii")
             (assert)
             (split -)
             (("1" (inst - "x")) ("2" (inst - "y"))))
            ("3"
             (hide 2)
             (hide -1)
             (lemma "trk_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 "trk_bands_last") (inst?) (assert))))
    ("2"
     (split +)
     (("1"
       (expand "is_finite")
       (inst + "trkbb`length"
        "LAMBDA (iz: ({ij: subrange(0, trkbb`length - 1) |
                                         trkbb`seq(ij) < x})): iz")
       (("1" (expand "injective?") (skosimp*))
        ("2"
         (inst - "0")
         (("1"
           (lemma "trk_bands_first")
           (inst?)
           (assert)
           (replace -3)
           (replace -1)
           (lemma "trk_bands_3D_not_empty")
           (inst?)
           (assert)
           (skosimp*)
           (ground))
          ("2" (lemma "trk_bands_3D_not_empty") (inst?) (assert))))))
      ("2"
       (expand "empty?")
       (inst - "0")
       (expand "member")
       (lemma "trk_bands_3D_not_empty")
       (inst?)
       (assert)
       (inst - "0")
       (assert)
       (lemma "trk_bands_first")
       (inst?)
       (assert))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: bands_3D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
script:
  (""
   (skeep)
   (case "vo`z = vi`z and abs(s`z)<H")
   (("1"
     (flatten)
     (case "gs_bands_3D(s,vo,vi) = gs_bands[D,B,T,gsmin,gsmax](s,vo,vi)")
     (("1"
       (replace -1)
       (hide -1)
       (assert)
       (skosimp*)
       (name "mp"
             "(gs_bands[D, B, T, gsmin, gsmax]
                                                                                                        (vect2(s), vect2(vo), vect2(vi))`seq
                                                                                                        (1 + i!1)
                                                                                                     +
                                                                                                     gs_bands[D, B, T, gsmin, gsmax]
                                                                                                         (vect2(s), vect2(vo), vect2(vi))`seq
                                                                                                         (i!1))
                                                                                                    / 2")
       (case "mp >= gsmin")
       (("1"
         (expand "red_gs_band_3D?")
         (replace -2)
         (rewrite "cd3d_rewrite")
         (expand "Vgs_3D" 1 1)
         (rewrite "vz_distr_sub")
         (expand "gs2v3" 1 1)
         (lemma "gs_red_bands[D,B,T,gsmin,gsmax]")
         (inst - "s" "vi" "vo")
         (assert)
         (inst - "i!1")
         (expand "red_gs_band?")
         (replace -3)
         (expand "Vgs" -1 1)
         (expand "Vgs_3D" 1 1)
         (rewrite "vect2_sub")
         (rewrite "vect2_gs2v3")
         (replace -1)
         (hide -1)
         (split)
         (("1"
           (flatten)
           (skosimp*)
           (case "x!1 >=gsmin AND x!1 < gsmax")
           (("1"
             (flatten)
             (inst - "x!1")
             (rewrite "cd3d")
             (lemma "cd3d_rewrite")
             (inst - "s" "Vgs_3D(vo,vi)(x!1)")
             (replace -1)
             (hide -1)
             (expand "Vgs_3D" 1 1)
             (rewrite "vz_distr_sub")
             (expand "gs2v3" 1 1)
             (rewrite "cd2d" :dir rl)
             (expand "Vgs")
             (expand "Vgs_3D")
             (rewrite "vect2_sub")
             (rewrite "vect2_gs2v3"))
            ("2"
             (typepred "gs_bands[D,B,T,gsmin,gsmax](s,vo,vi)")
             (expand "gs_fseq?")
             (inst-cp -1 "i!1")
             (inst -1 "i!1+1")
             (flatten)
             (assert))))
          ("2"
           (flatten)
           (skosimp*)
           (case "x!1 >= gsmin AND x!1 <gsmax")
           (("1"
             (flatten)
             (inst - "x!1")
             (expand "conflict_3D?")
             (skosimp*)
             (expand "conflict_2D?")
             (inst + "t!1")
             (expand "Vgs_3D")
             (rewrite "vect2_sub")
             (rewrite "vect2_gs2v3")
             (expand "Vgs")
             (propax))
            ("2"
             (typepred "gs_bands[D,B,T,gsmin,gsmax](s,vo,vi)")
             (expand "gs_fseq?")
             (inst-cp - "i!1")
             (inst - "i!1+1")
             (flatten)
             (assert))))))
        ("2"
         (typepred "gs_bands[D,B,T,gsmin,gsmax](s,vo,vi)")
         (expand "gs_fseq?")
         (inst-cp - "i!1")
         (inst - "i!1+1")
         (flatten)
         (assert))))
      ("2" (expand "gs_bands_3D") (assert)) ("3" (assert))))
    ("2"
     (case "vo`z /= vi`z")
     (("1"
       (flatten)
       (expand "gs_bands_3D" :assert? none)
       (name "BB" "max(Theta_H(s`z,vo`z-vi`z,Entry),B)")
       (("1"
         (name "TT" "min(Theta_H(s`z,vo`z-vi`z,Exit),T)")
         (replace -1)
         (replace -2)
         (assert)
         (case "BB<TT")
         (("1"
           (assert)
           (skosimp*)
           (name "mp"
                 "(gs_bands[D, BB, TT, gsmin, gsmax]
                                                                                                                          (vect2(s), vect2(vo), vect2(vi))`seq
                                                                                                                          (1 + i!1)
                                                                                                                       +
                                                                                                                       gs_bands[D, BB, TT, gsmin, gsmax]
                                                                                                                           (vect2(s), vect2(vo), vect2(vi))`seq
                                                                                                                           (i!1))
                                                                                                                      / 2")
           (("1"
             (case "mp >= gsmin")
             (("1"
               (expand "red_gs_band_3D?")
               (replace -2)
               (rewrite "cd3d_rewrite")
               (expand "Vgs_3D" 2 1)
               (rewrite "vz_distr_sub")
               (expand "gs2v3" 2 1)
               (expand "Vgs_3D" 2 1)
               (rewrite "vz_distr_sub")
               (expand "gs2v3" 2 1)
               (case "Vgs_3D(vo,vi)(mp)`z = vo`z-vi`z")
               (("1"
                 (assert)
                 (lemma "gs_red_bands[D,BB,TT,gsmin,gsmax]")
                 (inst - "s" "vi" "vo")
                 (assert)
                 (inst - "i!1")
                 (("1"
                   (expand "red_gs_band?")
                   (replace -4)
                   (expand "Vgs" -1 1)
                   (expand "Vgs_3D" 2 1)
                   (rewrite "vect2_sub")
                   (rewrite "vect2_gs2v3")
                   (expand "gs2v2" -1 1)
                   (expand "gs2v2" 2 1)
                   (expand "cd2d?")
                   (replace -2)
                   (split +)
                   (("1"
                     (flatten)
                     (split -2)
                     (("1"
                       (hide (-2 -3))
                       (skosimp*)
                       (rewrite "cd3d")
                       (rewrite "cd3d_rewrite")
                       (case "x!1 >= gsmin AND x!1 <gsmax")
                       (("1"
                         (flatten)
                         (inst - "x!1")
                         (("1"
                           (rewrite "cd2d")
                           (expand "Vgs")
                           (expand "Vgs_3D")
                           (rewrite "vect2_sub")
                           (rewrite "vect2_gs2v3")
                           (expand "gs2v2")
                           (assert)
                           (case "Vgs_3D(vo, vi)(x!1)`z = vo`z-vi`z")
                           (("1"
                             (expand "cd2d?")
                             (replace -1)
                             (flatten)
                             (assert)
                             (expand "omega_vv")
                             (expand "tau_vv")
                             (lift-if)
                             (ground))
                            ("2"
                             (expand "Vgs_3D")
                             (rewrite "vz_distr_sub")
                             (expand "gs2v3")
                             (propax))))
                          ("2" (typepred "x!1") (assert))))
                        ("2"
                         (typepred "x!1")
                         (assert)
                         (typepred
                          "gs_bands[D,BB,TT,gsmin,gsmax](s,vo,vi)")
                         (expand "gs_fseq?")
                         (inst-cp - "i!1")
                         (("1"
                           (inst - "i!1+1")
                           (("1" (flatten) (assert))
                            ("2" (flatten) (typepred "i!1") (assert))))
                          ("2" (typepred "i!1") (assert))))))
                      ("2"
                       (flatten)
                       (assert)
                       (expand "omega_vv")
                       (expand "tau_vv")
                       (lift-if)
                       (ground))))
                    ("2"
                     (flatten)
                     (split -3)
                     (("1" (assert))
                      ("2"
                       (expand "omega_vv" (-1 +))
                       (expand "tau_vv")
                       (lift-if)
                       (ground))
                      ("3"
                       (hide -2)
                       (skosimp*)
                       (case "x!1 >= gsmin AND x!1 <gsmax")
                       (("1"
                         (flatten)
                         (inst - "x!1")
                         (rewrite "cd3d")
                         (rewrite "cd3d_rewrite")
                         (rewrite "cd2d")
                         (case "Vgs_3D(vo, vi)(x!1)`z = vo`z-vi`z")
                         (("1"
                           (expand "cd2d?")
                           (expand "Vgs_3D")
                           (expand "Vgs")
                           (rewrite "vz_distr_sub")
                           (rewrite "vect2_sub")
                           (rewrite "vect2_gs2v3")
                           (expand "gs2v3")
                           (expand "gs2v2")
                           (flatten)
                           (assert)
                           (expand "omega_vv")
                           (expand "tau_vv")
                           (lift-if)
                           (ground))
                          ("2"
                           (expand "Vgs_3D")
                           (rewrite "vz_distr_sub")
                           (expand "gs2v3")
                           (propax))))
                        ("2"
                         (typepred "x!1")
                         (typepred
                          "gs_bands[D,BB,TT,gsmin,gsmax](s,vo,vi)")
                         (expand "gs_fseq?")
                         (inst-cp - "i!1")
                         (("1"
                           (inst - "i!1+1")
                           (("1" (flatten) (assert))
                            ("2" (typepred "i!1") (assert))))
                          ("2" (typepred "i!1") (assert))))))))))
                  ("2" (typepred "i!1") (assert))))
                ("2"
                 (expand "Vgs_3D")
                 (rewrite "vz_distr_sub")
                 (expand "gs2v3")
                 (propax))))
              ("2"
               (typepred "gs_bands[D,BB,TT,gsmin,gsmax](s,vo,vi)")
               (expand "gs_fseq?")
               (inst-cp - "i!1")
               (("1"
                 (inst - "i!1+1")
                 (("1" (flatten) (assert))
                  ("2" (typepred "i!1") (assert))))
                ("2" (typepred "i!1") (assert))))))
            ("2" (assert))))
          ("2"
           (assert)
           (skosimp*)
           (hide 3)
           (split)
           (("1"
             (flatten)
             (hide 1)
             (expand "red_gs_band_3D?")
             (name "mp"
                   "(structures@add(gsmin, structures@add(gsmax, empty_seq))`seq(1 + i!1) +
                                                                                            structures@add(gsmin, structures@add(gsmax, empty_seq))`seq(i!1))
                                                                                           / 2")
             (replace -1)
             (case "Vgs_3D(vo,vi)(mp)`z = vo`z-vi`z")
             (("1" (rewrite "cd3d_rewrite") (replace -1) (assert))
              ("2"
               (expand "Vgs_3D")
               (rewrite "vz_distr_sub")
               (expand "gs2v3")
               (propax))))
            ("2"
             (flatten)
             (expand "red_gs_band_3D?")
             (name "mp"
                   "(structures@add(gsmin, structures@add(gsmax, empty_seq))`seq(1 + i!1) +
                                                                                            structures@add(gsmin, structures@add(gsmax, empty_seq))`seq(i!1))
                                                                                           / 2")
             (inst - "mp")
             (("1" (replace -1) (rewrite "cd3d"))
              ("2"
               (expand "add")
               (expand "insert")
               (expand "empty_seq")
               (case "i!1 = 0")
               (("1" (assert) (typepred "gsmax") (assert))
                ("2"
                 (typepred "i!1")
                 (assert)
                 (expand "add")
                 (expand "insert")
                 (expand "empty_seq")
                 (assert))))))))))
        ("2" (assert))))
      ("2"
       (assert)
       (flatten)
       (skosimp*)
       (split)
       (("1"
         (flatten)
         (hide 1)
         (expand "red_gs_band_3D?")
         (rewrite "cd3d" :dir rl)
         (expand "conflict_3D?")
         (skosimp*)
         (expand "Vgs_3D" -1)
         (rewrite "vz_distr_sub")
         (expand "gs2v3")
         (assert))
        ("2"
         (flatten)
         (expand "red_gs_band_3D?")
         (name "mp"
               "(gs_bands_3D(s, vo, vi)`seq(1 + i!1) +
                                                               gs_bands_3D(s, vo, vi)`seq(i!1))
                                                              / 2")
         (replace -1)
         (inst - "mp")
         (("1" (rewrite "cd3d"))
          ("2"
           (typepred "gs_bands_3D(s, vo, vi)")
           (expand "increasing?")
           (inst - "i!1" "i!1+1")
           (assert))))))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: bands_3D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-incomplete
script:
  (""
   (skeep)
   (case "vo`z = vi`z and abs(s`z)<H")
   (("1"
     (flatten)
     (case "gs_bands_3D(s,vo,vi) = gs_bands[D,B,T,gsmin,gsmax](s,vo,vi)")
     (("1"
       (replace -1)
       (hide -1)
       (assert)
       (skosimp*)
       (name "mp"
             "(gs_bands[D, B, T, gsmin, gsmax]
                                                                                                                   (vect2(s), vect2(vo), vect2(vi))`seq
                                                                                                                   (1 + i!1)
                                                                                                                +
                                                                                                                gs_bands[D, B, T, gsmin, gsmax]
                                                                                                                    (vect2(s), vect2(vo), vect2(vi))`seq
                                                                                                                    (i!1))
                                                                                                               / 2")
       (case "mp >= gsmin")
       (("1"
         (expand "red_gs_band_3D?")
         (replace -2)
         (rewrite "cd3d_rewrite")
         (expand "Vgs_3D" 1 1)
         (rewrite "vz_distr_sub")
         (expand "gs2v3" 1 1)
         (lemma "gs_green_bands[D,B,T,gsmin,gsmax]")
         (inst - "s" "vi" "vo")
         (assert)
         (inst - "i!1")
         (expand "red_gs_band?")
         (replace -3)
         (expand "Vgs" -1 1)
         (expand "Vgs_3D" 1 1)
         (rewrite "vect2_sub")
         (rewrite "vect2_gs2v3")
         (replace -1)
         (hide -1)
         (split)
         (("1"
           (flatten)
           (skosimp*)
           (inst - "x!1")
           (expand "conflict_3D?")
           (skosimp*)
           (expand "conflict_2D?")
           (inst + "t!1")
           (expand "Vgs_3D")
           (rewrite "vect2_sub")
           (rewrite "vect2_gs2v3")
           (("1" (expand "Vgs") (propax))
            ("2"
             (typepred "gs_bands[D,B,T,gsmin,gsmax](s,vo,vi)")
             (expand "gs_fseq?")
             (inst-cp -1 "i!1")
             (flatten)
             (assert))))
          ("2"
           (flatten)
           (skosimp*)
           (case "x!1 >= gsmin AND x!1 <gsmax")
           (("1"
             (flatten)
             (inst - "x!1")
             (rewrite "cd3d")
             (lemma "cd3d_rewrite")
             (inst - "s" "Vgs_3D(vo,vi)(x!1)")
             (replace -1)
             (hide -1)
             (expand "Vgs_3D" 1 1)
             (rewrite "vz_distr_sub")
             (expand "gs2v3" 1 1)
             (rewrite "cd2d" :dir rl)
             (expand "Vgs")
             (expand "Vgs_3D")
             (rewrite "vect2_sub")
             (rewrite "vect2_gs2v3"))
            ("2"
             (typepred "gs_bands[D,B,T,gsmin,gsmax](s,vo,vi)")
             (expand "gs_fseq?")
             (inst-cp -1 "i!1")
             (inst -1 "i!1+1")
             (flatten)
             (assert))))))
        ("2"
         (typepred "gs_bands[D,B,T,gsmin,gsmax](s,vo,vi)")
         (expand "gs_fseq?")
         (inst-cp - "i!1")
         (inst - "i!1+1")
         (flatten)
         (assert))))
      ("2" (expand "gs_bands_3D") (assert)) ("3" (assert))))
    ("2"
     (case "vo`z /= vi`z")
     (("1"
       (flatten)
       (expand "gs_bands_3D" :assert? none)
       (name "BB" "max(Theta_H(s`z,vo`z-vi`z,Entry),B)")
       (("1"
         (name "TT" "min(Theta_H(s`z,vo`z-vi`z,Exit),T)")
         (replace -1)
         (replace -2)
         (assert)
         (case "BB<TT")
         (("1"
           (assert)
           (skosimp*)
           (name "mp"
                 "(gs_bands[D, BB, TT, gsmin, gsmax]
                                                                                                                                         (vect2(s), vect2(vo), vect2(vi))`seq
                                                                                                                                         (1 + i!1)
                                                                                                                                      +
                                                                                                                                      gs_bands[D, BB, TT, gsmin, gsmax]
                                                                                                                                          (vect2(s), vect2(vo), vect2(vi))`seq
                                                                                                                                          (i!1))
                                                                                                                                     / 2")
           (("1"
             (case "mp >= gsmin")
             (("1"
               (expand "red_gs_band_3D?")
               (replace -2)
               (rewrite "cd3d_rewrite")
               (expand "Vgs_3D" 2 1)
               (rewrite "vz_distr_sub")
               (expand "gs2v3" 2 1)
               (expand "Vgs_3D" 2 1)
               (rewrite "vz_distr_sub")
               (expand "gs2v3" 2 1)
               (case "Vgs_3D(vo,vi)(mp)`z = vo`z-vi`z")
               (("1"
                 (assert)
                 (lemma "gs_green_bands[D,BB,TT,gsmin,gsmax]")
                 (inst - "s" "vi" "vo")
                 (assert)
                 (inst - "i!1")
                 (("1"
                   (expand "red_gs_band?")
                   (replace -4)
                   (expand "Vgs" -1 1)
                   (expand "Vgs_3D" 2 1)
                   (rewrite "vect2_sub")
                   (rewrite "vect2_gs2v3")
                   (expand "gs2v2" -1 1)
                   (expand "gs2v2" 2 1)
                   (expand "cd2d?")
                   (replace -2)
                   (split +)
                   (("1"
                     (flatten)
                     (split -1)
                     (("1"
                       (skosimp*)
                       (inst - "x!1")
                       (("1"
                         (rewrite "cd3d")
                         (rewrite "cd3d_rewrite")
                         (rewrite "cd2d")
                         (case "Vgs_3D(vo, vi)(x!1)`z = vo`z-vi`z")
                         (("1"
                           (expand "cd2d?")
                           (expand "Vgs_3D")
                           (expand "Vgs")
                           (rewrite "vz_distr_sub")
                           (rewrite "vect2_sub")
                           (rewrite "vect2_gs2v3")
                           (("1"
                             (expand "gs2v3")
                             (expand "gs2v2")
                             (flatten)
                             (assert)
                             (expand "omega_vv")
                             (expand "tau_vv")
                             (lift-if)
                             (ground))
                            ("2"
                             (hide (-1 -2 -3))
                             (typepred "x!1")
                             (assert)
                             (typepred
                              "gs_bands[D,BB,TT,gsmin,gsmax](s,vo,vi)")
                             (expand "gs_fseq?")
                             (inst-cp - "i!1")
                             (("1"
                               (inst - "i!1+1")
                               (("1" (flatten) (assert))
                                ("2" (typepred "i!1") (assert))))
                              ("2" (typepred "i!1") (assert))))))
                          ("2"
                           (expand "Vgs_3D")
                           (rewrite "vz_distr_sub")
                           (expand "gs2v3")
                           (propax))))
                        ("2"
                         (typepred "i!1")
                         (assert)
                         (typepred "x!1")
                         (assert))))
                      ("2" (assert))
                      ("3"
                       (expand "omega_vv" (-1 +))
                       (expand "tau_vv")
                       (lift-if)
                       (ground))))
                    ("2"
                     (skosimp*)
                     (assert)
                     (hide -3)
                     (split -3)
                     (("1"
                       (split -)
                       (("1" (flatten) (assert))
                        ("2"
                         (flatten)
                         (expand "omega_vv" (-1 +))
                         (expand "tau_vv")
                         (lift-if)
                         (ground))))
                      ("2"
                       (skosimp*)
                       (case "x!1 >= gsmin AND x!1 <gsmax")
                       (("1"
                         (flatten)
                         (inst - "x!1")
                         (rewrite "cd3d")
                         (rewrite "cd3d_rewrite")
                         (rewrite "cd2d")
                         (case "Vgs_3D(vo, vi)(x!1)`z = vo`z-vi`z")
                         (("1"
                           (expand "cd2d?")
                           (expand "Vgs_3D")
                           (expand "Vgs")
                           (rewrite "vz_distr_sub")
                           (rewrite "vect2_sub")
                           (rewrite "vect2_gs2v3")
                           (expand "gs2v3")
                           (expand "gs2v2")
                           (flatten)
                           (assert)
                           (expand "omega_vv")
                           (expand "tau_vv")
                           (lift-if)
                           (ground))
                          ("2"
                           (expand "Vgs_3D")
                           (rewrite "vz_distr_sub")
                           (expand "gs2v3")
                           (propax))))
                        ("2"
                         (typepred "x!1")
                         (typepred
                          "gs_bands[D,BB,TT,gsmin,gsmax](s,vo,vi)")
                         (expand "gs_fseq?")
                         (inst-cp - "i!1")
                         (("1"
                           (inst - "i!1+1")
                           (("1" (flatten) (assert))
                            ("2" (typepred "i!1") (assert))))
                          ("2" (typepred "i!1") (assert))))))))))
                  ("2" (typepred "i!1") (assert))))
                ("2"
                 (expand "Vgs_3D")
                 (rewrite "vz_distr_sub")
                 (expand "gs2v3")
                 (propax))))
              ("2"
               (typepred "gs_bands[D,BB,TT,gsmin,gsmax](s,vo,vi)")
               (expand "gs_fseq?")
               (inst-cp - "i!1")
               (("1"
                 (flatten)
                 (inst - "i!1+1")
                 (("1" (flatten) (assert))
                  ("2" (typepred "i!1") (assert))))
                ("2" (typepred "i!1") (assert))))))
            ("2" (assert))))
          ("2"
           (skosimp*)
           (hide 3)
           (split)
           (("1"
             (flatten)
             (skosimp*)
             (rewrite "cd3d")
             (rewrite "cd3d_rewrite")
             (case "Vgs_3D(vo, vi)(x!1)`z = vo`z-vi`z")
             (("1" (assert))
              ("2"
               (expand "Vgs_3D")
               (rewrite "vz_distr_sub")
               (expand "gs2v3")
               (propax))))
            ("2"
             (flatten)
             (hide -1)
             (expand "red_gs_band_3D?")
             (assert)
             (name "mp"
                   "(structures@add(gsmin, structures@add(gsmax, empty_seq))`seq(1 + i!1) +
                                                                           structures@add(gsmin, structures@add(gsmax, empty_seq))`seq(i!1))
                                                                          / 2")
             (replace -1)
             (rewrite "cd3d_rewrite")
             (case "Vgs_3D(vo, vi)(mp)`z = vo`z-vi`z")
             (("1" (assert))
              ("2"
               (expand "Vgs_3D")
               (rewrite "vz_distr_sub")
               (expand "gs2v3")
               (propax))))))))
        ("2" (assert))))
      ("2"
       (assert)
       (skosimp*)
       (split)
       (("1"
         (flatten)
         (skosimp*)
         (expand "conflict_3D?")
         (skosimp*)
         (expand "Vgs_3D")
         (rewrite "vz_distr_sub")
         (expand "gs2v3")
         (assert))
        ("2"
         (flatten)
         (expand "red_gs_band_3D?")
         (hide -1)
         (rewrite "cd3d" :dir rl)
         (expand "conflict_3D?")
         (skosimp*)
         (expand "Vgs_3D")
         (rewrite "vz_distr_sub")
         (expand "gs2v3")
         (assert))))))))


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 "gsbb" "gs_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<=gsbb`length-1 AND gsbb`seq(ij) < x})")
   (("1"
     (case "ii <= gsbb`length-2")
     (("1"
       (case "gsbb`seq(ii) < x AND y < gsbb`seq(ii+1)")
       (("1"
         (flatten)
         (case "(conflict_3D?(s, Vgs_3D(vo, vi)(x)) OR
                                                                             conflict_3D?(s, Vgs_3D(vo, vi)(y)))")
         (("1"
           (case "red_gs_band_3D?(s,vo,vi,gsbb)(ii)")
           (("1"
             (lemma "gs_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 "gs_green_bands_3D")
             (inst?)
             (assert)
             (inst - "ii")
             (assert)
             (split -)
             (("1" (inst - "x")) ("2" (inst - "y"))))
            ("3"
             (hide 2)
             (hide -1)
             (lemma "gs_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 "gs_bands_last") (inst?) (assert))))
    ("2"
     (split +)
     (("1"
       (expand "is_finite")
       (inst + "gsbb`length"
        "LAMBDA (iz: ({ij: subrange(0, gsbb`length - 1) |
                                         gsbb`seq(ij) < x})): iz")
       (("1" (expand "injective?") (skosimp*))
        ("2"
         (inst - "0")
         (("1"
           (lemma "gs_bands_first")
           (inst?)
           (assert)
           (replace -3)
           (replace -1)
           (lemma "gs_bands_3D_not_empty")
           (inst?)
           (assert)
           (skosimp*)
           (ground))
          ("2" (lemma "gs_bands_3D_not_empty") (inst?) (assert))))))
      ("2"
       (expand "empty?")
       (inst - "0")
       (expand "member")
       (lemma "gs_bands_3D_not_empty")
       (inst?)
       (assert)
       (inst - "0")
       (assert)
       (lemma "gs_bands_first")
       (inst?)
       (assert))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: bands_3D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
script:
  (""
   (skeep)
   (case "vect2(vo-vi) = zero and sqv(vect2(s))<sq(D)")
   (("1"
     (flatten)
     (case "vs_bands_3D(s,vo,vi) = vs_bands[H,B,T,vsmin,vsmax](s`z,vi`z)")
     (("1"
       (replace -1)
       (hide -1)
       (assert)
       (skosimp*)
       (name "mp"
             "(vs_bands[H, B, T, vsmin, vsmax](s`z, vi`z)`seq(1 + i!1) +
                                         vs_bands[H, B, T, vsmin, vsmax](s`z, vi`z)`seq(i!1))
                                        / 2")
       (case "mp >= vsmin and mp<=vsmax")
       (("1"
         (flatten)
         (expand "red_vs_band_3D?")
         (replace -3)
         (rewrite "cd3d_rewrite_vertical")
         (expand "Vs" 1 1)
         (rewrite "vect2_sub")
         (rewrite "vect2_sub")
         (rewrite "vect2_vs2v3")
         (assert)
         (lemma "vs_red_bands[H,B,T,vsmin,vsmax]")
         (inst - "s`z" "vi`z")
         (assert)
         (inst - "i!1")
         (expand "red_vs_band?")
         (replace -4)
         (expand "Vs" 1 1)
         (rewrite "vz_distr_sub")
         (expand "vs2v3" 1 1)
         (replace -1)
         (hide -1)
         (split)
         (("1"
           (flatten)
           (skosimp*)
           (case "x!1 >=vsmin AND x!1 < vsmax")
           (("1"
             (flatten)
             (split -)
             (("1"
               (inst - "x!1")
               (rewrite "cd3d")
               (rewrite "cd3d_rewrite_vertical")
               (expand "Vs")
               (rewrite "vect2_sub")
               (rewrite "vz_distr_sub")
               (rewrite "vect2_vs2v3")
               (expand "vs2v3")
               (flatten)
               (rewrite "cd_vertical"))
              ("2"
               (flatten)
               (lemma "Delta_gt_0_nzv")
               (inst?)
               (assert)
               (expand "Vs")
               (rewrite "vect2_sub")
               (rewrite "vect2_vs2v3")
               (assert))))
            ("2"
             (typepred "vs_bands[H, B, T, vsmin, vsmax](s`z, vi`z)")
             (expand "vs_fseq?")
             (inst-cp -1 "i!1")
             (inst -1 "i!1+1")
             (flatten)
             (assert))))
          ("2"
           (flatten)
           (skosimp*)
           (case "x!1 >= vsmin AND x!1 <vsmax")
           (("1"
             (flatten)
             (inst - "x!1")
             (expand "conflict_3D?")
             (skosimp*)
             (expand "conflict_vertical?")
             (inst + "t!1")
             (expand "Vs")
             (rewrite "vz_distr_sub")
             (expand "vs2v3")
             (assert))
            ("2"
             (typepred "vs_bands[H, B, T, vsmin, vsmax](s`z, vi`z)")
             (expand "vs_fseq?")
             (inst-cp - "i!1")
             (inst - "i!1+1")
             (flatten)
             (assert))))))
        ("2"
         (hide 2)
         (typepred "vs_bands[H, B, T, vsmin, vsmax](s`z, vi`z)")
         (expand "vs_fseq?")
         (inst-cp - "i!1")
         (inst - "i!1+1")
         (flatten)
         (assert))))
      ("2" (expand "vs_bands_3D") (assert)) ("3" (assert))))
    ("2"
     (case "Delta(s,vo-vi)>0")
     (("1"
       (lemma "Delta_gt_0_nzv")
       (inst?)
       (expand "vs_bands_3D" :assert? none)
       (name "BB"
             "max
                                                             (Theta_D
                                                              (vect2(s), vect2(vo - vi), -1),
                                                              B)")
       (("1"
         (name "TT"
               "min
                                                               (Theta_D(vect2(s), vect2(vo - vi), 1),
                                                                T)")
         (("1"
           (replace -1)
           (replace -2)
           (assert)
           (flatten)
           (hide 2)
           (case "BB<TT")
           (("1"
             (assert)
             (skosimp*)
             (name "mp"
                   "(vs_bands[H, BB, TT, vsmin, vsmax](s`z, vi`z)`seq(1 + i!1) +
                                                 vs_bands[H, BB, TT, vsmin, vsmax](s`z, vi`z)`seq(i!1))
                                                / 2")
             (("1"
               (case "mp >= vsmin and mp<=vsmax")
               (("1"
                 (flatten)
                 (expand "red_vs_band_3D?")
                 (replace -3)
                 (rewrite "cd3d_rewrite_vertical")
                 (expand "Vs" 2 1)
                 (rewrite "vect2_sub")
                 (rewrite "vect2_sub")
                 (rewrite "vect2_vs2v3")
                 (assert)
                 (expand "Vs" 2 1)
                 (rewrite "vect2_sub")
                 (rewrite "vect2_vs2v3")
                 (case "vect2(Vs(vo,vi)(mp)) = vect2(vo)-vect2(vi)")
                 (("1"
                   (assert)
                   (lemma "vs_red_bands[H,BB,TT,vsmin,vsmax]")
                   (inst - "s`z" "vi`z")
                   (assert)
                   (inst - "i!1")
                   (("1"
                     (expand "red_vs_band?")
                     (replace -5)
                     (expand "Vs" 2 1)
                     (rewrite "vz_distr_sub")
                     (expand "vs2v3")
                     (expand "cd_vertical?")
                     (replace -2)
                     (replace -7)
                     (replace -8)
                     (replace -1)
                     (split +)
                     (("1"
                       (flatten)
                       (skosimp*)
                       (rewrite "cd3d")
                       (rewrite "cd3d_rewrite_vertical")
                       (case "x!1 >= vsmin AND x!1 <vsmax")
                       (("1"
                         (flatten)
                         (case "vect2(Vs(vo,vi)(x!1)) = vect2(vo)-vect2(vi)")
                         (("1"
                           (assert)
                           (expand "Vs" +)
                           (rewrite "vz_distr_sub")
                           (expand "vs2v3" +)
                           (inst - "x!1")
                           (("1"
                             (rewrite "cd_vertical")
                             (expand "cd_vertical?")
                             (split -4)
                             (("1" (flatten) (assert))
                              ("2" (flatten) (assert))))
                            ("2" (typepred "x!1") (assert))))
                          ("2"
                           (expand "Vs")
                           (rewrite "vect2_sub")
                           (rewrite "vect2_vs2v3"))))
                        ("2"
                         (typepred "x!1")
                         (typepred "x!1")
                         (assert)
                         (typepred
                          "vs_bands[H, BB, TT, vsmin, vsmax](s`z, vi`z)")
                         (expand "vs_fseq?")
                         (inst-cp - "i!1")
                         (("1"
                           (inst - "i!1+1")
                           (("1" (flatten) (assert))
                            ("2" (typepred "i!1") (assert))))
                          ("2" (typepred "i!1") (assert))))))
                      ("2"
                       (flatten)
                       (skosimp*)
                       (case "x!1 >= vsmin AND x!1 <vsmax")
                       (("1"
                         (flatten)
                         (inst - "x!1")
                         (rewrite "cd3d")
                         (rewrite "cd3d_rewrite_vertical")
                         (case "vect2(Vs(vo, vi)(x!1)) = vect2(vo)-vect2(vi)")
                         (("1"
                           (assert)
                           (expand "Vs")
                           (rewrite "vz_distr_sub")
                           (expand "vs2v3")
                           (rewrite "cd_vertical")
                           (expand "cd_vertical?")
                           (ground))
                          ("2"
                           (expand "Vs")
                           (rewrite "vect2_sub")
                           (rewrite "vect2_vs2v3"))))
                        ("2"
                         (typepred "x!1")
                         (typepred
                          "vs_bands[H, BB, TT, vsmin, vsmax](s`z, vi`z)")
                         (expand "vs_fseq?")
                         (inst-cp - "i!1")
                         (("1"
                           (inst - "i!1+1")
                           (("1" (assert))
                            ("2" (typepred "i!1") (assert))))
                          ("2" (typepred "i!1") (assert))))))))
                    ("2" (typepred "i!1") (assert))))
                  ("2"
                   (expand "Vs")
                   (rewrite "vect2_sub")
                   (rewrite "vect2_vs2v3"))))
                ("2"
                 (typepred
                  "vs_bands[H, BB, TT, vsmin, vsmax](s`z, vi`z)")
                 (expand "vs_fseq?")
                 (inst-cp - "i!1")
                 (("1"
                   (inst - "i!1+1")
                   (("1" (flatten) (assert))
                    ("2" (typepred "i!1") (assert))))
                  ("2" (typepred "i!1") (assert))))))
              ("2" (assert))))
            ("2"
             (skosimp*)
             (lift-if)
             (assert)
             (split)
             (("1"
               (flatten)
               (hide 1)
               (expand "red_vs_band_3D?")
               (name "mp"
                     "(structures@add(vsmin, structures@add(vsmax, empty_seq))`seq(1 + i!1) +
                                                         structures@add(vsmin, structures@add(vsmax, empty_seq))`seq(i!1))
                                                        / 2")
               (replace -1)
               (rewrite "cd3d_rewrite_vertical")
               (split -2)
               (("1"
                 (flatten)
                 (expand "Vs")
                 (rewrite "vect2_sub")
                 (rewrite "vect2_vs2v3")
                 (rewrite "vect2_sub"))
                ("2"
                 (flatten)
                 (case "vect2(Vs(vo,vi)(mp)) = vect2(vo)-vect2(vi)")
                 (("1" (rewrite "vect2_sub") (assert))
                  ("2"
                   (expand "Vs")
                   (rewrite "vect2_sub")
                   (rewrite "vect2_vs2v3"))))))
              ("2"
               (flatten)
               (expand "red_vs_band_3D?")
               (name "mp"
                     "(structures@add(vsmin, structures@add(vsmax, empty_seq))`seq(1 + i!1) +
                                                         structures@add(vsmin, structures@add(vsmax, empty_seq))`seq(i!1))
                                                        / 2")
               (replace -1)
               (inst - "mp")
               (("1" (rewrite "cd3d"))
                ("2"
                 (expand "add")
                 (case "i!1 = 0")
                 (("1"
                   (replace -1)
                   (expand "insert")
                   (expand "empty_seq")
                   (assert))
                  ("2"
                   (typepred "i!1")
                   (hide (1 3 -3))
                   (assert)
                   (expand "add")
                   (expand "insert")
                   (expand "empty_seq")
                   (assert))))))))))
          ("2" (assert))))
        ("2" (assert))))
      ("2"
       (assert)
       (skosimp*)
       (split 3)
       (("1"
         (flatten)
         (expand "red_vs_band_3D?")
         (name "mp"
               "(vs_bands_3D(s, vo, vi)`seq(1 + i!1) +
                                vs_bands_3D(s, vo, vi)`seq(i!1))
                               / 2")
         (replace -1)
         (rewrite "cd3d" :dir rl)
         (lemma "Delta_gt_0")
         (inst?)
         (assert)
         (split 1)
         (("1" (ground))
          ("2"
           (expand "conflict_3D?")
           (skosimp*)
           (expand "horizontal_conflict_ever?")
           (inst + "t!1")
           (expand "Vs")
           (rewrite "vect2_sub")
           (rewrite "vect2_sub")
           (rewrite "vect2_vs2v3"))))
        ("2"
         (flatten)
         (expand "red_vs_band_3D?")
         (name "mp"
               "(vs_bands_3D(s, vo, vi)`seq(1 + i!1) +
                                vs_bands_3D(s, vo, vi)`seq(i!1))
                               / 2")
         (replace -1)
         (inst - "mp")
         (("1" (rewrite "cd3d"))
          ("2"
           (typepred "vs_bands_3D(s, vo, vi)")
           (expand "increasing?")
           (inst - "i!1" "i!1+1")
           (assert))))))))))


proof_type: f_proof
decl_type: formula
library: ACCoRD
theory: bands_3D
signature: nil
run_date: Unknown date
run_time: ----
status: proved-complete
script:
  (""
   (skeep)
   (case "vect2(vo-vi) = zero and sqv(vect2(s))<sq(D)")
   (("1"
     (flatten)
     (case "vs_bands_3D(s,vo,vi) = vs_bands[H,B,T,vsmin,vsmax](s`z,vi`z)")
     (("1"
       (replace -1)
       (hide -1)
       (assert)
       (skosimp*)
       (name "mp"
             "(vs_bands[H, B, T, vsmin, vsmax](s`z, vi`z)`seq(1 + i!1) +
                                                               vs_bands[H, B, T, vsmin, vsmax](s`z, vi`z)`seq(i!1))
                                                              / 2")
       (case "mp >= vsmin and mp<=vsmax")
       (("1"
         (flatten)
         (expand "red_vs_band_3D?")
         (replace -3)
         (rewrite "cd3d_rewrite_vertical")
         (expand "Vs" 1 1)
         (rewrite "vect2_sub")
         (rewrite "vect2_sub")
         (rewrite "vect2_vs2v3")
         (assert)
         (lemma "vs_green_bands[H,B,T,vsmin,vsmax]")
         (inst - "s`z" "vi`z")
         (assert)
         (inst - "i!1")
         (expand "red_vs_band?")
         (replace -4)
         (expand "Vs" 1 1)
         (rewrite "vz_distr_sub")
         (expand "vs2v3" 1 1)
         (lemma "Delta_gt_0_nzv")
         (inst?)
         (expand "Vs" -1 2)
         (rewrite "vect2_sub" -1)
         (rewrite "vect2_vs2v3")
         (assert)
         (hide 1)
         (replace -1)
         (hide -1)
         (split)
         (("1"
           (flatten)
           (skosimp*)
           (case "x!1 >=vsmin AND x!1 < vsmax")
           (("1"
             (flatten)
             (inst - "x!1")
             (rewrite "cd3d")
             (rewrite "cd3d_rewrite_vertical")
             (expand "Vs")
             (rewrite "vect2_sub")
             (rewrite "vz_distr_sub")
             (rewrite "vect2_vs2v3")
             (rewrite "cd_vertical")
             (assert)
             (split -)
             (("1" (expand "vs2v3") (propax))
              ("2" (flatten) (lemma "Delta_gt_0_nzv") (inst?) (assert))))
            ("2"
             (typepred "vs_bands[H, B, T, vsmin, vsmax](s`z, vi`z)")
             (expand "vs_fseq?")
             (inst-cp -1 "i!1")
             (inst -1 "i!1+1")
             (flatten)
             (assert))))
          ("2"
           (flatten)
           (skosimp*)
           (case "x!1 >=vsmin AND x!1 < vsmax")
           (("1"
             (flatten)
             (inst - "x!1")
             (rewrite "cd3d")
             (rewrite "cd3d_rewrite_vertical")
             (expand "Vs")
             (rewrite "vect2_sub")
             (rewrite "vz_distr_sub")
             (rewrite "vect2_vs2v3")
             (expand "vs2v3")
             (flatten)
             (rewrite "cd_vertical"))
            ("2"
             (typepred "vs_bands[H, B, T, vsmin, vsmax](s`z, vi`z)")
             (expand "vs_fseq?")
             (inst-cp -1 "i!1")
             (inst -1 "i!1+1")
             (flatten)
             (assert))))))
        ("2"
         (typepred "vs_bands[H, B, T, vsmin, vsmax](s`z, vi`z)")
         (expand "vs_fseq?")
         (inst-cp -1 "i!1")
         (inst -1 "i!1+1")
         (flatten)
         (assert))))
      ("2" (expand "vs_bands_3D") (assert)) ("3" (assert))))
    ("2"
     (case "Delta(s,vo-vi)>0")
     (("1"
       (lemma "Delta_gt_0_nzv")
       (inst?)
       (expand "vs_bands_3D" :assert? none)
       (name "BB"
             "max
                                                                                   (Theta_D
                                                                                    (vect2(s), vect2(vo - vi), -1),
                                                                                    B)")
       (("1"
         (name "TT"
               "min
                                                                                         (Theta_D(vect2(s), vect2(vo - vi), 1),
                                                                                          T)")
         (("1"
           (replace -1)
           (replace -2)
           (assert)
           (flatten)
           (hide 2)
           (case "BB<TT")
           (("1"
             (assert)
             (skosimp*)
             (name "mp"
                   "(vs_bands[H, BB, TT, vsmin, vsmax](s`z, vi`z)`seq(1 + i!1) +
                                                                                   vs_bands[H, BB, TT, vsmin, vsmax](s`z, vi`z)`seq(i!1))
                                                                                  / 2")
             (("1"
               (case "mp >= vsmin and mp<=vsmax")
               (("1"
                 (flatten)
                 (expand "red_vs_band_3D?")
                 (replace -3)
                 (rewrite "cd3d_rewrite_vertical")
                 (expand "Vs" 2 1)
                 (rewrite "vect2_sub")
                 (rewrite "vect2_sub")
                 (rewrite "vect2_vs2v3")
                 (assert)
                 (expand "Vs" 2 1)
                 (rewrite "vect2_sub")
                 (rewrite "vect2_vs2v3")
                 (case "vect2(Vs(vo,vi)(mp)) = vect2(vo)-vect2(vi)")
                 (("1"
                   (assert)
                   (lemma "vs_green_bands[H,BB,TT,vsmin,vsmax]")
                   (inst - "s`z" "vi`z")
                   (assert)
                   (inst - "i!1")
                   (("1"
                     (expand "red_vs_band?")
                     (replace -5)
                     (expand "Vs" 2 1)
                     (rewrite "vz_distr_sub")
                     (expand "vs2v3")
                     (expand "cd_vertical?")
                     (replace -2)
                     (replace -7)
                     (replace -8)
                     (replace -1)
                     (split +)
                     (("1"
                       (flatten)
                       (skosimp*)
                       (rewrite "cd3d")
                       (rewrite "cd3d_rewrite_vertical")
                       (case "x!1 >= vsmin AND x!1 <vsmax")
                       (("1"
                         (flatten)
                         (case "vect2(Vs(vo,vi)(x!1)) = vect2(vo)-vect2(vi)")
                         (("1"
                           (assert)
                           (expand "Vs" -5)
                           (rewrite "vz_distr_sub")
                           (expand "vs2v3")
                           (inst - "x!1")
                           (("1"
                             (rewrite "cd_vertical")
                             (expand "cd_vertical?")
                             (split -4)
                             (("1" (flatten) (assert))
                              ("2" (flatten) (assert))))
                            ("2" (typepred "x!1") (assert))))
                          ("2"
                           (expand "Vs")
                           (rewrite "vect2_sub")
                           (rewrite "vect2_vs2v3"))))
                        ("2"
                         (typepred "x!1")
                         (assert)
                         (typepred
                          "vs_bands[H, BB, TT, vsmin, vsmax](s`z, vi`z)")
                         (expand "vs_fseq?")
                         (inst-cp - "i!1")
                         (("1"
                           (inst - "i!1+1")
                           (("1" (flatten) (assert))
                            ("2" (typepred "i!1") (assert))))
                          ("2" (typepred "i!1") (assert))))))
                      ("2"
                       (flatten)
                       (skosimp*)
                       (case "x!1 >= vsmin AND x!1 <vsmax")
                       (("1"
                         (flatten)
                         (inst - "x!1")
                         (rewrite "cd3d")
                         (rewrite "cd3d_rewrite_vertical")
                         (case "vect2(Vs(vo, vi)(x!1)) = vect2(vo)-vect2(vi)")
                         (("1"
                           (assert)
                           (expand "Vs")
                           (rewrite "vz_distr_sub")
                           (expand "vs2v3")
                           (rewrite "cd_vertical")
                           (expand "cd_vertical?")
                           (ground))
                          ("2"
                           (expand "Vs")
                           (rewrite "vect2_sub")
                           (rewrite "vect2_vs2v3"))))
                        ("2"
                         (typepred "x!1")
                         (typepred
                          "vs_bands[H, BB, TT, vsmin, vsmax](s`z, vi`z)")
                         (expand "vs_fseq?")
                         (inst-cp - "i!1")
                         (("1"
                           (inst - "i!1+1")
                           (("1" (assert))
                            ("2" (typepred "i!1") (assert))))
                          ("2" (typepred "i!1") (assert))))))))
                    ("2" (typepred "i!1") (assert))))
                  ("2"
                   (expand "Vs")
                   (rewrite "vect2_sub")
                   (rewrite "vect2_vs2v3"))))
                ("2"
                 (typepred
                  "vs_bands[H, BB, TT, vsmin, vsmax](s`z, vi`z)")
                 (expand "vs_fseq?")
                 (inst-cp - "i!1")
                 (("1"
                   (inst - "i!1+1")
                   (("1" (flatten) (assert))
                    ("2" (typepred "i!1") (assert))))
                  ("2" (typepred "i!1") (assert))))))
              ("2" (assert))))
            ("2"
             (skosimp*)
             (lift-if)
             (assert)
             (split)
             (("1"
               (flatten)
               (skosimp*)
               (rewrite "cd3d")
               (rewrite "cd3d_rewrite_vertical")
               (split -)
               (("1"
                 (flatten)
                 (expand "Vs")
                 (rewrite "vect2_sub")
                 (rewrite "vect2_vs2v3")
                 (rewrite "vect2_sub"))
                ("2"
                 (flatten)
                 (expand "Vs")
                 (rewrite "vect2_sub")
                 (rewrite "vect2_vs2v3")
                 (rewrite "vect2_sub")
                 (assert))))
              ("2"
               (flatten)
               (expand "red_vs_band_3D?")
               (name "mp"
                     "(structures@add(vsmin, structures@add(vsmax, empty_seq))`seq(1 + i!1) +
                                                         structures@add(vsmin, structures@add(vsmax, empty_seq))`seq(i!1))
                                                        / 2")
               (inst - "mp")
               (("1" (rewrite "cd3d") (assert))
                ("2"
                 (expand "add" +)
                 (case "mp > vsmin and mp<vsmax")
                 (("1"
                   (flatten)
                   (case "i!1 = 0")
                   (("1"
                     (replace -1)
                     (expand "insert")
                     (expand "empty_seq")
                     (assert))
                    ("2"
                     (typepred "i!1")
                     (assert)
                     (expand "add")
                     (expand "insert")
                     (expand "empty_seq")
                     (assert))))
                  ("2"
                   (typepred "i!1")
                   (assert)
                   (expand "add")
                   (expand "insert")
                   (expand "empty_seq")
                   (case "i!1 = 0")
                   (("1" (replace -1) (assert)) ("2" (assert))))))))))))
          ("2" (assert))))
        ("2" (assert))))
      ("2"
       (assert)
       (skosimp*)
       (split 3)
       (("1"
         (flatten)
         (skosimp*)
         (lemma "Delta_gt_0")
         (inst?)
         (assert)
         (split 1)
         (("1" (ground))
          ("2"
           (expand "conflict_3D?")
           (skosimp*)
           (expand "horizontal_conflict_ever?")
           (inst + "t!1")
           (expand "Vs")
           (rewrite "vect2_sub")
           (rewrite "vect2_sub")
           (rewrite "vect2_vs2v3"))))
        ("2"
         (flatten)
         (hide -1)
         (expand "red_vs_band_3D?")
         (name "mp"
               "(vs_bands_3D(s, vo, vi)`seq(1 + i!1) +
                                vs_bands_3D(s, vo, vi)`seq(i!1))
                               / 2")
         (replace -1)
         (rewrite "cd3d" :dir rl)
         (hide -1)
         (lemma "Delta_gt_0")
         (inst?)
         (assert)
         (split 1)
         (("1" (ground))
          ("2"
           (expand "conflict_3D?")
           (skosimp*)
           (expand "horizontal_conflict_ever?")
           (inst + "t!1")
           (expand "Vs")
           (rewrite "vect2_sub")
           (rewrite "vect2_sub")
           (rewrite "vect2_vs2v3"))))))))))


