Quelle wedge_optimum_2D.prf
Sprache: Lisp
(wedge_optimum_2D
(intersects_segment_fun?_TCC1 0
(intersects_segment_fun?_TCC1-1 nil 3530552207
("" (subtype-tcc) nil nil )
((boolean nonempty-type-decl nil booleans nil )
(bool nonempty-type-eq-decl nil booleans nil )
(NOT const-decl "[bool -> bool]" booleans nil )
(real nonempty-type-from-decl nil reals nil )
(Vector type-eq-decl nil vectors_2D "vectors/" )
(/= const-decl "boolean" notequal nil )
(zero const-decl "Vector" vectors_2D "vectors/" )
(Nz_vect2 type-eq-decl nil vectors_2D "vectors/" )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(* const-decl "real" vectors_2D "vectors/" )
(real_times_real_is_real application-judgement "real" reals nil ))
nil ))
(intersects_segment_fun?_TCC2 0
(intersects_segment_fun?_TCC2-1 nil 3530552207
("" (subtype-tcc) nil nil )
((boolean nonempty-type-decl nil booleans nil )
(bool nonempty-type-eq-decl nil booleans nil )
(NOT const-decl "[bool -> bool]" booleans nil )
(number nonempty-type-decl nil numbers nil )
(number_field_pred const-decl "[number -> boolean]" number_fields
nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(real nonempty-type-from-decl nil reals nil )
(Vector type-eq-decl nil vectors_2D "vectors/" )
(/= const-decl "boolean" notequal nil )
(zero const-decl "Vector" vectors_2D "vectors/" )
(Nz_vect2 type-eq-decl nil vectors_2D "vectors/" )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(- const-decl "Vector" vectors_2D "vectors/" )
(* const-decl "real" vectors_2D "vectors/" )
(real_times_real_is_real application-judgement "real" reals nil )
(real_plus_real_is_real application-judgement "real" reals nil )
(real_minus_real_is_real application-judgement "real" reals nil ))
nil ))
(intersects_segment_fun?_TCC3 0
(intersects_segment_fun?_TCC3-1 nil 3530552207
("" (subtype-tcc) nil nil )
((boolean nonempty-type-decl nil booleans nil )
(bool nonempty-type-eq-decl nil booleans nil )
(NOT const-decl "[bool -> bool]" booleans nil )
(number nonempty-type-decl nil numbers nil )
(number_field_pred const-decl "[number -> boolean]" number_fields
nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(real nonempty-type-from-decl nil reals nil )
(Vector type-eq-decl nil vectors_2D "vectors/" )
(/= const-decl "boolean" notequal nil )
(zero const-decl "Vector" vectors_2D "vectors/" )
(Nz_vect2 type-eq-decl nil vectors_2D "vectors/" )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(- const-decl "Vector" vectors_2D "vectors/" )
(* const-decl "real" vectors_2D "vectors/" )
(real_times_real_is_real application-judgement "real" reals nil )
(real_plus_real_is_real application-judgement "real" reals nil )
(real_minus_real_is_real application-judgement "real" reals nil ))
nil ))
(intersects_segment_fun?_TCC4 0
(intersects_segment_fun?_TCC4-1 nil 3530552207
("" (subtype-tcc) nil nil )
((boolean nonempty-type-decl nil booleans nil )
(bool nonempty-type-eq-decl nil booleans nil )
(NOT const-decl "[bool -> bool]" booleans nil )
(number nonempty-type-decl nil numbers nil )
(number_field_pred const-decl "[number -> boolean]" number_fields
nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(real nonempty-type-from-decl nil reals nil )
(Vector type-eq-decl nil vectors_2D "vectors/" )
(/= const-decl "boolean" notequal nil )
(zero const-decl "Vector" vectors_2D "vectors/" )
(Nz_vect2 type-eq-decl nil vectors_2D "vectors/" )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(- const-decl "Vector" vectors_2D "vectors/" )
(* const-decl "real" vectors_2D "vectors/" )
(real_times_real_is_real application-judgement "real" reals nil )
(real_plus_real_is_real application-judgement "real" reals nil )
(real_minus_real_is_real application-judgement "real" reals nil ))
nil ))
(intersects_segment_fun_def 0
(intersects_segment_fun_def-3 nil 3530552296
(""
(case "FORALL (p,w,v,a,b,e1,e2): intersects_segment_fun?(p,w,v,a,b,e1,e2) = intersects_segment?(p,w,v,a,b,e1,e2)" )
(("1" (decompose-equality) nil nil )
("2" (hide 2)
(("2" (skeep)
(("2" (expand "intersects_segment_fun?" )
(("2"
(name "tlow1" "IF v * e1 > 0 THEN ((p - w) * e1) / (v * e1)
ELSIF v * e1 = 0 AND (w - p) * e1 < 0 THEN 1 + b
ELSE a
ENDIF")
(("1" (replace -1)
(("1"
(name "thigh1"
"IF v * e1 < 0 THEN ((p - w) * e1) / (v * e1)
ELSIF v * e1 = 0 AND (w - p) * e1 < 0 THEN a - 1
ELSE b
ENDIF")
(("1" (replace -1)
(("1"
(name "tlow2"
"IF v * e2 > 0 THEN ((p - w) * e2) / (v * e2)
ELSIF v * e2 = 0 AND (w - p) * e2 < 0 THEN 2 + b
ELSE a
ENDIF")
(("1" (replace -1)
(("1"
(name "thigh2"
"IF v * e2 < 0 THEN ((p - w) * e2) / (v * e2)
ELSIF v * e2 = 0 AND (w - p) * e2 < 0 THEN a - 2
ELSE b
ENDIF")
(("1" (replace -1)
(("1" (name "tlow" "max(max(tlow1,tlow2),a)" )
(("1" (replace -1)
(("1"
(name
"thigh"
"min(min(thigh1,thigh2),b)" )
(("1"
(replace -1)
(("1"
(case
"NOT (FORALL (t:real): (a<=t AND t<=b AND (w+t*v-p)*e1>=0 AND (w+t*v-p)*e2>=0) IFF (tlow <= t AND t<=thigh))" )
(("1"
(hide-all-but 1)
(("1"
(skeep)
(("1"
(ground)
(("1"
(expand "tlow" )
(("1"
(case
"t>=tlow1 AND t>=tlow2" )
(("1"
(flatten)
(("1"
(expand "max" )
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide 2)
(("2"
(split +)
(("1"
(expand "tlow1" )
(("1"
(lift-if)
(("1"
(assert )
(("1"
(ground)
(("1"
(cross-mult
1)
(("1"
(hide-all-but
(-4 1))
(("1"
(grind)
nil
nil ))
nil ))
nil )
("2"
(hide-all-but
(-1
-2
-5))
(("2"
(grind)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(expand "tlow2" )
(("2"
(lift-if)
(("2"
(assert )
(("2"
(ground)
(("1"
(cross-mult
1)
(("1"
(hide-all-but
(-5 1))
(("1"
(grind)
nil
nil ))
nil ))
nil )
("2"
(hide-all-but
(-1
-2
-6))
(("2"
(grind)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("3"
(assert )
(("3"
(flatten)
(("3"
(expand "tlow2" 1)
(("3"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(expand "thigh" )
(("2"
(case
"t<=thigh1 AND t<=thigh2" )
(("1"
(flatten)
(("1"
(expand "min" )
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide 2)
(("2"
(split +)
(("1"
(expand "thigh1" )
(("1"
(lift-if)
(("1"
(assert )
(("1"
(ground)
(("1"
(cross-mult
1)
(("1"
(hide-all-but
(-4 1))
(("1"
(grind)
nil
nil ))
nil ))
nil )
("2"
(hide-all-but
(-1
-2
-5))
(("2"
(grind)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(expand "thigh2" )
(("2"
(lift-if)
(("2"
(assert )
(("2"
(ground)
(("1"
(cross-mult
1)
(("1"
(hide-all-but
(-5 1))
(("1"
(grind)
nil
nil ))
nil ))
nil )
("2"
(hide-all-but
(-1
-2
-6))
(("2"
(grind)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("3"
(flatten)
(("3"
(hide 2)
(("3"
(expand "thigh2" 1)
(("3"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("3"
(expand "tlow" )
(("3"
(expand "thigh" )
(("3"
(case
"t>=tlow1 AND t<=thigh1" )
(("1"
(hide (-2 -3))
(("1"
(flatten)
(("1"
(expand "thigh1" )
(("1"
(expand
"tlow1" )
(("1"
(lift-if)
(("1"
(split -)
(("1"
(flatten)
(("1"
(cross-mult
-2)
(("1"
(hide-all-but
(-2
1))
(("1"
(grind)
nil
nil ))
nil ))
nil ))
nil )
("2"
(flatten)
(("2"
(split
-)
(("1"
(flatten)
(("1"
(assert )
nil
nil ))
nil )
("2"
(flatten)
(("2"
(assert )
(("2"
(split
-)
(("1"
(flatten)
(("1"
(cross-mult
-2)
(("1"
(hide-all-but
(-2
3))
(("1"
(grind)
nil
nil ))
nil ))
nil ))
nil )
("2"
(flatten)
(("2"
(assert )
(("2"
(split
-)
(("1"
(propax)
nil
nil )
("2"
(case
"v*e1 = 0" )
(("1"
(mult-by
-1
"t" )
(("1"
(hide-all-but
(-1
1
5))
(("1"
(grind)
nil
nil ))
nil ))
nil )
("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(expand "min" )
(("2"
(expand "max" )
(("2"
(lift-if)
(("2"
(lift-if)
(("2"
(lift-if)
(("2"
(assert )
(("2"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("3"
(flatten)
(("3"
(expand "thigh1" +)
(("3"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("4"
(expand "thigh" )
(("4"
(expand "tlow" )
(("4"
(case
"tlow2 <= t AND t<=thigh2" )
(("1"
(hide (-2 -3))
(("1"
(flatten)
(("1"
(expand "thigh2" )
(("1"
(expand
"tlow2" )
(("1"
(lift-if)
(("1"
(split -)
(("1"
(flatten)
(("1"
(cross-mult
-2)
(("1"
(hide-all-but
(-2
1))
(("1"
(grind)
nil
nil ))
nil ))
nil ))
nil )
("2"
(flatten)
(("2"
(split
-)
(("1"
(flatten)
(("1"
(assert )
nil
nil ))
nil )
("2"
(flatten)
(("2"
(assert )
(("2"
(split
-)
(("1"
(flatten)
(("1"
(cross-mult
-2)
(("1"
(hide-all-but
(-2
3))
(("1"
(grind)
nil
nil ))
nil ))
nil ))
nil )
("2"
(flatten)
(("2"
(ground)
(("2"
(case
"v*e2 = 0" )
(("1"
(mult-by
-1
"t" )
(("1"
(hide-all-but
(-1
1
5))
(("1"
(grind)
nil
nil ))
nil ))
nil )
("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(expand "min" )
(("2"
(expand "max" )
(("2"
(lift-if)
(("2"
(lift-if)
(("2"
(lift-if)
(("2"
(assert )
(("2"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("3"
(flatten)
(("3"
(expand "thigh2" +)
(("3"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide-all-but (-1 1))
(("2"
(iff)
(("2"
(ground)
(("1"
(inst - "tlow" )
(("1"
(expand
"intersects_segment?" )
(("1"
(assert )
(("1"
(flatten)
(("1"
(inst + "tlow" )
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(expand
"intersects_segment?" )
(("2"
(skeep -1)
(("2"
(inst - "t" )
(("2"
(assert )
(("2"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide-all-but 1)
(("2"
(expand "thigh2" )
(("2" (ground) nil nil ))
nil ))
nil )
("3"
(hide-all-but 1)
(("3"
(expand "thigh1" )
(("3" (ground) nil nil ))
nil ))
nil ))
nil ))
nil )
("2" (hide-all-but 1)
(("2"
(expand "tlow2" )
(("2" (ground) nil nil ))
nil ))
nil )
("3" (hide-all-but 1)
(("3"
(expand "tlow1" )
(("3" (ground) nil nil ))
nil ))
nil ))
nil ))
nil )
("2" (hide-all-but 1) (("2" (ground) nil nil ))
nil ))
nil ))
nil )
("2" (hide-all-but 1) (("2" (ground) nil nil ))
nil ))
nil ))
nil )
("2" (hide-all-but 1) (("2" (ground) nil nil )) nil ))
nil ))
nil )
("2" (hide-all-but 1) (("2" (ground) nil nil )) nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(real_times_real_is_real application-judgement "real" reals nil )
(posreal nonempty-type-eq-decl nil real_types nil )
(nonneg_real nonempty-type-eq-decl nil real_types nil )
(div_mult_pos_ge2 formula-decl nil real_props nil )
(tlow1 skolem-const-decl "numfield" wedge_optimum_2D nil )
(tlow2 skolem-const-decl "numfield" wedge_optimum_2D nil )
(tlow skolem-const-decl
"{p: real | p >= max(tlow1, tlow2) AND p >= a}" wedge_optimum_2D
nil )
(negreal nonempty-type-eq-decl nil real_types nil )
(nonpos_real nonempty-type-eq-decl nil real_types nil )
(div_mult_neg_le2 formula-decl nil real_props nil )
(thigh1 skolem-const-decl "numfield" wedge_optimum_2D nil )
(thigh2 skolem-const-decl "numfield" wedge_optimum_2D nil )
(thigh skolem-const-decl
"{p: real | p <= min(thigh1, thigh2) AND p <= b}" wedge_optimum_2D
nil )
(both_sides_times1_imp formula-decl nil extra_real_props nil )
(v skolem-const-decl "Vect2" wedge_optimum_2D nil )
(e1 skolem-const-decl "Nz_vect2" wedge_optimum_2D nil )
(e2 skolem-const-decl "Nz_vect2" wedge_optimum_2D nil )
(div_mult_pos_le1 formula-decl nil real_props nil )
(* const-decl "Vector" vectors_2D "vectors/" )
(+ const-decl "Vector" vectors_2D "vectors/" )
(IFF const-decl "[bool, bool -> bool]" booleans nil )
(NOT const-decl "[bool -> bool]" booleans nil )
(min const-decl "{p: real | p <= m AND p <= n}" real_defs nil )
(<= const-decl "bool" reals nil )
(max const-decl "{p: real | p >= m AND p >= n}" real_defs nil )
(>= const-decl "bool" reals nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(- const-decl "[numfield, numfield -> numfield]" number_fields nil )
(real_minus_real_is_real application-judgement "real" reals nil )
(IMPLIES const-decl "[bool, bool -> bool]" booleans nil )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(real_plus_real_is_real application-judgement "real" reals nil )
(real_div_nzreal_is_real application-judgement "real" reals nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(IF const-decl "[boolean, T, T -> T]" if_def nil )
(> const-decl "bool" reals nil )
(* const-decl "real" vectors_2D "vectors/" )
(nznum nonempty-type-eq-decl nil number_fields nil )
(/ const-decl "[numfield, nznum -> numfield]" number_fields nil )
(- const-decl "Vector" vectors_2D "vectors/" )
(AND const-decl "[bool, bool -> bool]" booleans nil )
(< const-decl "bool" reals nil )
(+ const-decl "[numfield, numfield -> numfield]" number_fields nil )
(real nonempty-type-from-decl nil reals nil )
(Vect2 type-eq-decl nil vectors_2D_def "vectors/" )
(number nonempty-type-decl nil numbers nil )
(boolean nonempty-type-decl nil booleans nil )
(number_field_pred const-decl "[number -> boolean]" number_fields
nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(Vector type-eq-decl nil vectors_2D "vectors/" )
(/= const-decl "boolean" notequal nil )
(zero const-decl "Vector" vectors_2D "vectors/" )
(Nz_vect2 type-eq-decl nil vectors_2D "vectors/" )
(bool nonempty-type-eq-decl nil booleans nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(intersects_segment_fun? const-decl "bool" wedge_optimum_2D nil )
(intersects_segment? const-decl "bool" wedge_optimum_2D nil ))
nil )
(intersects_segment_fun_def-2 nil 3530552265
("" (skeep)
((""
(name "mspis"
"max_segment_point_in_slice(p, w, v, a, b, e1, e2)" )
(("" (label "mspisdef" -1)
(("" (replace -1)
(("" (assert )
(("" (expand "max_segment_point_in_slice" )
((""
(name "tlow1"
"IF v * e1 > 0 THEN ((p - w) * e1) / (v * e1)
ELSIF v * e1 = 0 AND (w - p) * e1 < 0 THEN 1 + b
ELSE a
ENDIF")
(("1" (replace -1)
(("1"
(name "thigh1"
"IF v * e1 < 0 THEN ((p - w) * e1) / (v * e1)
ELSIF v * e1 = 0 AND (w - p) * e1 < 0 THEN a - 1
ELSE b
ENDIF")
(("1" (replace -1)
(("1"
(name "tlow2"
"IF v * e2 > 0 THEN ((p - w) * e2) / (v * e2)
ELSIF v * e2 = 0 AND (w - p) * e2 < 0 THEN 2 + b
ELSE a
ENDIF")
(("1" (replace -1)
(("1"
(name "thigh2"
"IF v * e2 < 0 THEN ((p - w) * e2) / (v * e2)
ELSIF v * e2 = 0 AND (w - p) * e2 < 0 THEN a - 2
ELSE b
ENDIF")
(("1" (replace -1)
(("1"
(case "v = zero" )
(("1"
(replace -1)
(("1"
(assert )
(("1"
(replace "mspisdef" :dir rl)
(("1"
(split +)
(("1"
(flatten)
(("1"
(expand
"on_segment_in_wedge?" )
(("1"
(assert )
(("1"
(expand
"intersects_segment?" )
(("1"
(skeep -1)
(("1"
(assert )
(("1"
(inst + "t" )
(("1"
(assert )
nil )))))))))))))))
("2"
(skeep)
(("2"
(expand
"on_segment_in_wedge?" )
(("2"
(skeep -1)
(("2"
(assert )
nil )))))))))))))))
("2"
(label "vnz" 1)
(("2"
(hide "vnz" )
(("2"
(name
"tlow"
"max(max(tlow1,tlow2),a)" )
(("1"
(replace -1)
(("1"
(name
"thigh"
"min(min(thigh1,thigh2),b)" )
(("1"
(replace -1)
(("1"
(name "aa" "sqv(v)" )
(("1"
(replace -1)
(("1"
(name
"bb"
"2*(v*(w-p))" )
(("1"
(copy -1)
(("1"
(mult-by
-1
"tlow" )
(("1"
(replace -1)
(("1"
(copy -2)
(("1"
(mult-by
-1
"thigh" )
(("1"
(replace
-1)
(("1"
(hide
(-1
-2))
(("1"
(name
"cc"
"sqv(w-p)" )
(("1"
(case
"NOT (FORALL (t:real): (a<=t AND t<=b AND (w+t*v-p)*e1>=0 AND (w+t*v-p)*e2>=0) IFF (tlow <= t AND t<=thigh))" )
(("1"
(hide-all-but
1)
(("1"
(skeep)
(("1"
(ground)
(("1"
(expand
"tlow" )
(("1"
(case
"t>=tlow1 AND t>=tlow2" )
(("1"
(flatten)
(("1"
(expand
"max" )
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(assert )
nil )))))))))))
("2"
(hide
2)
(("2"
(split
+)
(("1"
(expand
"tlow1" )
(("1"
(lift-if)
(("1"
(assert )
(("1"
(ground)
(("1"
(cross-mult
1)
(("1"
(hide-all-but
(-4
1))
(("1"
(grind)
nil )))))
("2"
(hide-all-but
(-1
-2
-5))
(("2"
(grind)
nil )))))))))))
("2"
(expand
"tlow2" )
(("2"
(lift-if)
(("2"
(assert )
(("2"
(ground)
(("1"
(cross-mult
1)
(("1"
(hide-all-but
(-5
1))
(("1"
(grind)
nil )))))
("2"
(hide-all-but
(-1
-2
-6))
(("2"
(grind)
nil )))))))))))))))
("3"
(assert )
(("3"
(flatten)
(("3"
(expand
"tlow2"
1)
(("3"
(ground)
nil )))))))))))
("2"
(expand
"thigh" )
(("2"
(case
"t<=thigh1 AND t<=thigh2" )
(("1"
(flatten)
(("1"
(expand
"min" )
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(assert )
nil )))))))))))
("2"
(hide
2)
(("2"
(split
+)
(("1"
(expand
"thigh1" )
(("1"
(lift-if)
(("1"
(assert )
(("1"
(ground)
(("1"
(cross-mult
1)
(("1"
(hide-all-but
(-4
1))
(("1"
(grind)
nil )))))
("2"
(hide-all-but
(-1
-2
-5))
(("2"
(grind)
nil )))))))))))
("2"
(expand
"thigh2" )
(("2"
(lift-if)
(("2"
(assert )
(("2"
(ground)
(("1"
(cross-mult
1)
(("1"
(hide-all-but
(-5
1))
(("1"
(grind)
nil )))))
("2"
(hide-all-but
(-1
-2
-6))
(("2"
(grind)
nil )))))))))))))))
("3"
(flatten)
(("3"
(hide
2)
(("3"
(expand
"thigh2"
1)
(("3"
(ground)
nil )))))))))))
("3"
(expand
"tlow" )
(("3"
(expand
"thigh" )
(("3"
(case
"t>=tlow1 AND t<=thigh1" )
(("1"
(hide
(-2
-3))
(("1"
(flatten)
(("1"
(expand
"thigh1" )
(("1"
(expand
"tlow1" )
(("1"
(lift-if)
(("1"
(split
-)
(("1"
(flatten)
(("1"
(cross-mult
-2)
(("1"
(hide-all-but
(-2
1))
(("1"
(grind)
nil )))))))
("2"
(flatten)
(("2"
(split
-)
(("1"
(flatten)
(("1"
(assert )
nil )))
("2"
(flatten)
(("2"
(assert )
(("2"
(split
-)
(("1"
(flatten)
(("1"
(cross-mult
-2)
(("1"
(hide-all-but
(-2
3))
(("1"
(grind)
nil )))))))
("2"
(flatten)
(("2"
(assert )
(("2"
(split
-)
(("1"
(propax)
nil )
("2"
(case
"v*e1 = 0" )
(("1"
(mult-by
-1
"t" )
(("1"
(hide-all-but
(-1
1
5))
(("1"
(grind)
nil )))))
("2"
(assert )
nil )))))))))))))))))))))))))))))))
("2"
(expand
"min" )
(("2"
(expand
"max" )
(("2"
(lift-if)
(("2"
(lift-if)
(("2"
(lift-if)
(("2"
(assert )
(("2"
(ground)
nil )))))))))))))
("3"
(flatten)
(("3"
(expand
"thigh1"
+)
(("3"
(ground)
nil )))))))))))
("4"
(expand
"thigh" )
(("4"
(expand
"tlow" )
(("4"
(case
"tlow2 <= t AND t<=thigh2" )
(("1"
(hide
(-2
-3))
(("1"
(flatten)
(("1"
(expand
"thigh2" )
(("1"
(expand
"tlow2" )
(("1"
(lift-if)
(("1"
(split
-)
(("1"
(flatten)
(("1"
(cross-mult
-2)
(("1"
(hide-all-but
(-2
1))
(("1"
(grind)
nil )))))))
("2"
(flatten)
(("2"
(split
-)
(("1"
(flatten)
(("1"
(assert )
nil )))
("2"
(flatten)
(("2"
(assert )
(("2"
(split
-)
(("1"
(flatten)
(("1"
(cross-mult
-2)
(("1"
(hide-all-but
(-2
3))
(("1"
(grind)
nil )))))))
("2"
(flatten)
(("2"
(ground)
(("2"
(case
"v*e2 = 0" )
(("1"
(mult-by
-1
"t" )
(("1"
(hide-all-but
(-1
1
5))
(("1"
(grind)
nil )))))
("2"
(assert )
nil )))))))))))))))))))))))))))))
("2"
(expand
"min" )
(("2"
(expand
"max" )
(("2"
(lift-if)
(("2"
(lift-if)
(("2"
(lift-if)
(("2"
(assert )
(("2"
(ground)
nil )))))))))))))
("3"
(flatten)
(("3"
(expand
"thigh2"
+)
(("3"
(ground)
nil )))))))))))))))))
("2"
(label
"intdef"
-1)
(("2"
(name
"ff"
"quadratic(aa,bb,cc)" )
(("2"
(label
"ffdef"
-1)
(("2"
(case
"aa * tlow ^ 2 + bb * tlow <= aa * thigh ^ 2 + bb * thigh IFF ff(tlow)<=ff(thigh)" )
(("1"
(replace
-1)
(("1"
(name
"maxt"
"IF ff(tlow) <= ff(thigh) THEN thigh ELSE tlow ENDIF" )
(("1"
(label
"maxtname"
-1)
(("1"
(replace
-1)
(("1"
(split
+)
(("1"
(flatten)
(("1"
(expand
"intersects_segment?" )
(("1"
(skeep
-1)
(("1"
(copy
"intdef" )
(("1"
(inst
-
"t" )
(("1"
(assert )
(("1"
(flatten)
(("1"
(expand
"on_segment_in_wedge?" )
(("1"
(inst
+
"maxt" )
(("1"
(inst
-
"maxt" )
(("1"
(assert )
(("1"
(case
"tlow <= maxt AND maxt <= thigh" )
(("1"
(replace
-1)
(("1"
(assert )
(("1"
(flatten)
(("1"
(ground)
nil )))))))
("2"
(hide
2)
(("2"
(hide
(-8
-9))
(("2"
(expand
"maxt"
+)
(("2"
(lift-if
+)
(("2"
(ground)
nil )))))))))))))))))))))))))))))))))
("2"
(skeep)
(("2"
(expand
"on_segment_in_wedge?" )
(("2"
(skeep
-1)
(("2"
(copy
"intdef" )
(("2"
(inst
-
"t" )
(("2"
(assert )
(("2"
(flatten)
(("2"
(case
"ff(t)<=ff(maxt)" )
(("1"
(rewrite
"sq_le"
1
:dir
rl)
(("1"
(rewrite
"sq_norm" )
(("1"
(rewrite
"sq_norm" )
(("1"
(replace
-6
+)
(("1"
(replace
"mspisdef"
1
:dir
rl)
(("1"
(hide-all-but
(-1
1))
(("1"
(expand
"ff" )
(("1"
(expand
"aa" )
(("1"
(expand
"bb" )
(("1"
(expand
"cc" )
(("1"
(grind)
nil )))))))))))))))))))))
("2"
(hide-all-but
(-1
-2
"maxtname"
1))
(("2"
(case
"tlow <= maxt AND maxt <= thigh" )
(("1"
(lemma
"quad_intv_max_at_endpoint" )
(("1"
(inst
-
"aa"
"bb"
"cc"
"tlow"
"thigh" )
(("1"
(assert )
(("1"
(case
"aa > 0" )
(("1"
(assert )
(("1"
(flatten)
(("1"
(split
-)
(("1"
(inst
-
"t" )
(("1"
(assert )
(("1"
(expand
"ff" )
(("1"
(lift-if)
(("1"
(ground)
nil )))))))))
("2"
(inst
-
"t" )
(("2"
(assert )
(("2"
(expand
"ff" )
(("2"
(lift-if)
(("2"
(ground)
nil )))))))))))))))
("2"
(reveal
"vnz" )
(("2"
(expand
"aa"
+)
(("2"
(lemma
"sqv_eq_0" )
(("2"
(inst?)
(("2"
(assert )
nil )))))))))))))
("2"
(reveal
"vnz" )
(("2"
(expand
"aa"
+)
(("2"
(lemma
"sqv_eq_0" )
(("2"
(inst?)
(("2"
(assert )
nil )))))))))))))
("2"
(lift-if)
(("2"
(ground)
nil )))))))))))))))))))))))))))))))))
("2"
(hide-all-but
1)
(("2"
(expand
"ff" )
(("2"
(grind)
nil )))))))))))))))))))))))))))))))))))))))
("2"
(hide 2)
(("2"
(hide "mspisdef" )
(("2"
(expand "thigh2" +)
(("2"
(ground)
nil )))))))
("3"
(hide 2)
(("3"
(expand "thigh1" +)
(("3"
(ground)
nil )))))))))
("2"
(hide 2)
(("2"
(expand "tlow2" +)
(("2" (ground) nil )))))
("3"
(hide 2)
(("3"
(expand "tlow1" +)
(("3"
(ground)
nil )))))))))))))))
("2" (hide-all-but 1)
(("2" (ground) nil )))))))
("2" (hide-all-but 1)
(("2" (ground) nil )))))))
("2" (hide-all-but 1) (("2" (ground) nil )))))))
("2" (hide-all-but 1)
(("2" (ground) nil ))))))))))))))))
nil )
nil nil )
(intersects_segment_fun_def-1 nil 3530552209
(""
(case "FORALL (p,w,v,a,b,e1,e2): intersects_segment_fun?(p,w,v,a,b,e1,e2) = intersects_segment?(p,w,v,a,b,e1,e2)" )
(("1" (decompose-equality) nil nil )
("2" (hide 2) (("2" (postpone) nil nil )) nil ))
nil )
nil shostak))
(intersects_segment_sym 0
(intersects_segment_sym-1 nil 3530541790
("" (skeep)
(("" (ground)
(("1" (expand "intersects_segment?" )
(("1" (skeep -1)
(("1" (inst + "t" ) (("1" (assert ) nil nil )) nil )) nil ))
nil )
("2" (expand "intersects_segment?" )
(("2" (skeep -1)
(("2" (inst + "t" ) (("2" (assert ) nil nil )) nil )) nil ))
nil ))
nil ))
nil )
((real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(real nonempty-type-from-decl nil reals nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(number_field_pred const-decl "[number -> boolean]" number_fields
nil )
(boolean nonempty-type-decl nil booleans nil )
(number nonempty-type-decl nil numbers nil )
(intersects_segment? const-decl "bool" wedge_optimum_2D nil ))
shostak))
(on_segment_in_wedge_sym 0
(on_segment_in_wedge_sym-1 nil 3530541841
("" (skeep)
(("" (decompose-equality)
(("" (iff)
(("" (ground)
(("1" (expand "on_segment_in_wedge?" )
(("1" (skeep -1)
(("1" (inst + "t" ) (("1" (assert ) nil nil )) nil )) nil ))
nil )
("2" (expand "on_segment_in_wedge?" )
(("2" (skeep -1)
(("2" (inst + "t" ) (("2" (assert ) nil nil )) nil )) nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((number nonempty-type-decl nil numbers nil )
(number_field_pred const-decl "[number -> boolean]" number_fields
nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(Vector type-eq-decl nil vectors_2D "vectors/" )
(/= const-decl "boolean" notequal nil )
(zero const-decl "Vector" vectors_2D "vectors/" )
(Nz_vect2 type-eq-decl nil vectors_2D "vectors/" )
(bool nonempty-type-eq-decl nil booleans nil )
(on_segment_in_wedge? const-decl "bool" wedge_optimum_2D nil )
(boolean nonempty-type-decl nil booleans nil )
(Vect2 type-eq-decl nil vectors_2D_def "vectors/" )
(real nonempty-type-from-decl nil reals nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil ))
shostak))
(max_segment_point_in_slice_TCC1 0
(max_segment_point_in_slice_TCC1-1 nil 3530522510
("" (skosimp*)
(("" (lemma "sqv_eq_0" ) (("" (inst?) (("" (assert ) nil nil )) nil ))
nil ))
nil )
((sqv_eq_0 formula-decl nil vectors_2D "vectors/" )
(nnreal_times_nnreal_is_nnreal application-judgement "nnreal"
real_types nil )
(real_times_real_is_real application-judgement "real" reals nil )
(Vect2 type-eq-decl nil vectors_2D_def "vectors/" )
(Vector type-eq-decl nil vectors_2D "vectors/" )
(real nonempty-type-from-decl nil reals nil ))
nil ))
(max_segment_point_in_slice_TCC2 0
(max_segment_point_in_slice_TCC2-1 nil 3530522510
("" (subtype-tcc) nil nil )
((* const-decl "real" vectors_2D "vectors/" )
(- const-decl "Vector" vectors_2D "vectors/" )
(sqv const-decl "nnreal" vectors_2D "vectors/" )
(/= const-decl "boolean" notequal nil )
(real_minus_real_is_real application-judgement "real" reals nil )
(real_plus_real_is_real application-judgement "real" reals nil )
(real_times_real_is_real application-judgement "real" reals nil ))
nil ))
(max_segment_point_in_slice_TCC3 0
(max_segment_point_in_slice_TCC3-1 nil 3530522510
("" (subtype-tcc) nil nil )
((* const-decl "real" vectors_2D "vectors/" )
(- const-decl "Vector" vectors_2D "vectors/" )
(sqv const-decl "nnreal" vectors_2D "vectors/" )
(/= const-decl "boolean" notequal nil )
(real_minus_real_is_real application-judgement "real" reals nil )
(real_plus_real_is_real application-judgement "real" reals nil )
(real_times_real_is_real application-judgement "real" reals nil ))
nil ))
(max_segment_point_in_slice_def 0
(max_segment_point_in_slice_def-4 nil 3530525223
("" (skeep)
((""
(name "mspis"
"max_segment_point_in_slice(p, w, v, a, b, e1, e2)" )
(("" (label "mspisdef" -1)
(("" (replace -1)
(("" (assert )
(("" (expand "max_segment_point_in_slice" )
((""
(name "tlow1"
"IF v * e1 > 0 THEN ((p - w) * e1) / (v * e1)
ELSIF v * e1 = 0 AND (w - p) * e1 < 0 THEN 1 + b
ELSE a
ENDIF")
(("1" (replace -1)
(("1"
(name "thigh1"
"IF v * e1 < 0 THEN ((p - w) * e1) / (v * e1)
ELSIF v * e1 = 0 AND (w - p) * e1 < 0 THEN a - 1
ELSE b
ENDIF")
(("1" (replace -1)
(("1"
(name "tlow2"
"IF v * e2 > 0 THEN ((p - w) * e2) / (v * e2)
ELSIF v * e2 = 0 AND (w - p) * e2 < 0 THEN 2 + b
ELSE a
ENDIF")
(("1" (replace -1)
(("1"
(name "thigh2"
"IF v * e2 < 0 THEN ((p - w) * e2) / (v * e2)
ELSIF v * e2 = 0 AND (w - p) * e2 < 0 THEN a - 2
ELSE b
ENDIF")
(("1" (replace -1)
(("1"
(case "v = zero" )
(("1"
(replace -1)
(("1"
(assert )
(("1"
(replace "mspisdef" :dir rl)
(("1"
(split +)
(("1"
(flatten)
(("1"
(expand
"on_segment_in_wedge?" )
(("1"
(assert )
(("1"
(expand
"intersects_segment?" )
(("1"
(skeep -1)
(("1"
(assert )
(("1"
(inst + "t" )
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(skeep)
(("2"
(expand
"on_segment_in_wedge?" )
(("2"
(skeep -1)
(("2" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(label "vnz" 1)
(("2"
(hide "vnz" )
(("2"
(name
"tlow"
"max(max(tlow1,tlow2),a)" )
(("1"
(replace -1)
(("1"
(name
"thigh"
"min(min(thigh1,thigh2),b)" )
(("1"
(replace -1)
(("1"
(name "aa" "sqv(v)" )
(("1"
(replace -1)
(("1"
(name
"bb"
"2*(v*(w-p))" )
(("1"
(copy -1)
(("1"
(mult-by
-1
"tlow" )
(("1"
(replace -1)
(("1"
(copy -2)
(("1"
(mult-by
-1
"thigh" )
(("1"
(replace
-1)
(("1"
(hide
(-1
-2))
(("1"
(name
"cc"
"sqv(w-p)" )
(("1"
(case
"NOT (FORALL (t:real): (a<=t AND t<=b AND (w+t*v-p)*e1>=0 AND (w+t*v-p)*e2>=0) IFF (tlow <= t AND t<=thigh))" )
(("1"
(hide-all-but
1)
(("1"
(skeep)
(("1"
(ground)
(("1"
(expand
"tlow" )
(("1"
(case
"t>=tlow1 AND t>=tlow2" )
(("1"
(flatten)
(("1"
(expand
"max" )
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide
2)
(("2"
(split
+)
(("1"
(expand
"tlow1" )
(("1"
(lift-if)
(("1"
(assert )
(("1"
(ground)
(("1"
(cross-mult
1)
(("1"
(hide-all-but
(-4
1))
(("1"
(grind)
nil
nil ))
nil ))
nil )
("2"
(hide-all-but
(-1
-2
-5))
(("2"
(grind)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(expand
"tlow2" )
(("2"
(lift-if)
(("2"
(assert )
(("2"
(ground)
(("1"
(cross-mult
1)
(("1"
(hide-all-but
(-5
1))
(("1"
(grind)
nil
nil ))
nil ))
nil )
("2"
(hide-all-but
(-1
-2
-6))
(("2"
(grind)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("3"
(assert )
(("3"
(flatten)
(("3"
(expand
"tlow2"
1)
(("3"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(expand
"thigh" )
(("2"
(case
"t<=thigh1 AND t<=thigh2" )
(("1"
(flatten)
(("1"
(expand
"min" )
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide
2)
(("2"
(split
+)
(("1"
(expand
"thigh1" )
(("1"
(lift-if)
(("1"
(assert )
(("1"
(ground)
(("1"
(cross-mult
1)
(("1"
(hide-all-but
(-4
1))
(("1"
(grind)
nil
nil ))
nil ))
nil )
("2"
(hide-all-but
(-1
-2
-5))
(("2"
(grind)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(expand
"thigh2" )
(("2"
(lift-if)
(("2"
(assert )
(("2"
(ground)
(("1"
(cross-mult
1)
(("1"
(hide-all-but
(-5
1))
(("1"
(grind)
nil
nil ))
nil ))
nil )
("2"
(hide-all-but
(-1
-2
-6))
(("2"
(grind)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("3"
(flatten)
(("3"
(hide
2)
(("3"
(expand
"thigh2"
1)
(("3"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("3"
(expand
"tlow" )
(("3"
(expand
"thigh" )
(("3"
(case
"t>=tlow1 AND t<=thigh1" )
(("1"
(hide
(-2
-3))
(("1"
(flatten)
(("1"
(expand
"thigh1" )
(("1"
(expand
"tlow1" )
(("1"
(lift-if)
(("1"
(split
-)
(("1"
(flatten)
(("1"
(cross-mult
-2)
(("1"
(hide-all-but
(-2
1))
(("1"
(grind)
nil
nil ))
nil ))
nil ))
nil )
("2"
(flatten)
(("2"
(split
-)
(("1"
(flatten)
(("1"
(assert )
nil
nil ))
nil )
("2"
(flatten)
(("2"
(assert )
(("2"
(split
-)
(("1"
(flatten)
(("1"
(cross-mult
-2)
(("1"
(hide-all-but
(-2
3))
(("1"
(grind)
nil
nil ))
nil ))
nil ))
nil )
("2"
(flatten)
(("2"
(assert )
(("2"
(split
-)
(("1"
(propax)
nil
nil )
("2"
(case
"v*e1 = 0" )
(("1"
(mult-by
-1
"t" )
(("1"
(hide-all-but
(-1
1
5))
(("1"
(grind)
nil
nil ))
nil ))
nil )
("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(expand
"min" )
(("2"
(expand
"max" )
(("2"
(lift-if)
(("2"
(lift-if)
(("2"
(lift-if)
(("2"
(assert )
(("2"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("3"
(flatten)
(("3"
(expand
"thigh1"
+)
(("3"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("4"
(expand
"thigh" )
(("4"
(expand
"tlow" )
(("4"
(case
"tlow2 <= t AND t<=thigh2" )
(("1"
(hide
(-2
-3))
(("1"
(flatten)
(("1"
(expand
"thigh2" )
(("1"
(expand
"tlow2" )
(("1"
(lift-if)
(("1"
(split
-)
(("1"
(flatten)
(("1"
(cross-mult
-2)
(("1"
(hide-all-but
(-2
1))
(("1"
(grind)
nil
nil ))
nil ))
nil ))
nil )
("2"
(flatten)
(("2"
(split
-)
(("1"
(flatten)
(("1"
(assert )
nil
nil ))
nil )
("2"
(flatten)
(("2"
(assert )
(("2"
(split
-)
(("1"
(flatten)
(("1"
(cross-mult
-2)
(("1"
(hide-all-but
(-2
3))
(("1"
(grind)
nil
nil ))
nil ))
nil ))
nil )
("2"
(flatten)
(("2"
(ground)
(("2"
(case
"v*e2 = 0" )
(("1"
(mult-by
-1
"t" )
(("1"
(hide-all-but
(-1
1
5))
(("1"
(grind)
nil
nil ))
nil ))
nil )
("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(expand
"min" )
(("2"
(expand
"max" )
(("2"
(lift-if)
(("2"
(lift-if)
(("2"
(lift-if)
(("2"
(assert )
(("2"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("3"
(flatten)
(("3"
(expand
"thigh2"
+)
(("3"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(label
"intdef"
-1)
(("2"
(name
"ff"
"quadratic(aa,bb,cc)" )
(("2"
(label
"ffdef"
-1)
(("2"
(case
"aa * tlow ^ 2 + bb * tlow <= aa * thigh ^ 2 + bb * thigh IFF ff(tlow)<=ff(thigh)" )
(("1"
(replace
-1)
(("1"
(name
"maxt"
"IF ff(tlow) <= ff(thigh) THEN thigh ELSE tlow ENDIF" )
(("1"
(label
"maxtname"
-1)
(("1"
(replace
-1)
(("1"
(split
+)
(("1"
(flatten)
(("1"
(expand
"intersects_segment?" )
(("1"
(skeep
-1)
(("1"
(copy
"intdef" )
(("1"
(inst
-
"t" )
(("1"
(assert )
(("1"
(flatten)
(("1"
(expand
"on_segment_in_wedge?" )
(("1"
(inst
+
"maxt" )
(("1"
(inst
-
"maxt" )
(("1"
(assert )
(("1"
(case
"tlow <= maxt AND maxt <= thigh" )
(("1"
(replace
-1)
(("1"
(assert )
(("1"
(flatten)
(("1"
(ground)
nil
nil ))
nil ))
nil ))
nil )
("2"
(hide
2)
(("2"
(hide
(-8
-9))
(("2"
(expand
"maxt"
+)
(("2"
(lift-if
+)
(("2"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(skeep)
(("2"
(expand
"on_segment_in_wedge?" )
(("2"
(skeep
-1)
(("2"
(copy
"intdef" )
(("2"
(inst
-
"t" )
(("2"
(assert )
(("2"
(flatten)
(("2"
(case
"ff(t)<=ff(maxt)" )
(("1"
(rewrite
"sq_le"
1
:dir
rl)
(("1"
(rewrite
"sq_norm" )
(("1"
(rewrite
"sq_norm" )
(("1"
(replace
-6
+)
(("1"
(replace
"mspisdef"
1
:dir
rl)
(("1"
(hide-all-but
(-1
1))
(("1"
(expand
"ff" )
(("1"
(expand
"aa" )
(("1"
(expand
"bb" )
(("1"
(expand
"cc" )
(("1"
(grind)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide-all-but
(-1
-2
"maxtname"
1))
(("2"
(case
"tlow <= maxt AND maxt <= thigh" )
(("1"
(lemma
"quad_intv_max_at_endpoint" )
(("1"
(inst
-
"aa"
"bb"
"cc"
"tlow"
"thigh" )
(("1"
(assert )
(("1"
(case
"aa > 0" )
(("1"
(assert )
(("1"
(flatten)
(("1"
(split
-)
(("1"
(inst
-
"t" )
(("1"
(assert )
(("1"
(expand
"ff" )
(("1"
(lift-if)
(("1"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(inst
-
"t" )
(("2"
(assert )
(("2"
(expand
"ff" )
(("2"
(lift-if)
(("2"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(reveal
"vnz" )
(("2"
(expand
"aa"
+)
(("2"
(lemma
"sqv_eq_0" )
(("2"
(inst?)
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(reveal
"vnz" )
(("2"
(expand
"aa"
+)
(("2"
(lemma
"sqv_eq_0" )
(("2"
(inst?)
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(lift-if)
(("2"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide-all-but
1)
(("2"
(expand
"ff" )
(("2"
(grind)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide 2)
(("2"
(hide "mspisdef" )
(("2"
(expand "thigh2" +)
(("2"
(ground)
nil
nil ))
nil ))
nil ))
nil )
("3"
(hide 2)
(("3"
(expand "thigh1" +)
(("3" (ground) nil nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide 2)
(("2"
(expand "tlow2" +)
(("2" (ground) nil nil ))
nil ))
nil )
("3"
(hide 2)
(("3"
(expand "tlow1" +)
(("3" (ground) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (hide-all-but 1)
(("2" (ground) nil nil )) nil ))
nil ))
nil )
("2" (hide-all-but 1) (("2" (ground) nil nil ))
nil ))
nil ))
nil )
("2" (hide-all-but 1) (("2" (ground) nil nil ))
nil ))
nil ))
nil )
("2" (hide-all-but 1) (("2" (ground) nil nil )) nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((max_segment_point_in_slice const-decl "Vect2" wedge_optimum_2D
nil )
(Nz_vect2 type-eq-decl nil vectors_2D "vectors/" )
(zero const-decl "Vector" vectors_2D "vectors/" )
(/= const-decl "boolean" notequal nil )
(Vector type-eq-decl nil vectors_2D "vectors/" )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(number_field_pred const-decl "[number -> boolean]" number_fields
nil )
(number nonempty-type-decl nil numbers nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(boolean nonempty-type-decl nil booleans nil )
(Vect2 type-eq-decl nil vectors_2D_def "vectors/" )
(real nonempty-type-from-decl nil reals nil )
(>= const-decl "bool" reals nil )
(max const-decl "{p: real | p >= m AND p >= n}" real_defs nil )
(<= const-decl "bool" reals nil )
(min const-decl "{p: real | p <= m AND p <= n}" real_defs nil )
(nnreal type-eq-decl nil real_types nil )
(sqv const-decl "nnreal" vectors_2D "vectors/" )
(* const-decl "[numfield, numfield -> numfield]" number_fields nil )
(both_sides_times1_imp formula-decl nil extra_real_props nil )
(nnreal_times_nnreal_is_nnreal application-judgement "nnreal"
real_types nil )
(expt def-decl "real" exponentiation nil )
(maxt skolem-const-decl "real" wedge_optimum_2D nil )
(sq_norm formula-decl nil vectors_2D "vectors/" )
(aa skolem-const-decl "nnreal" wedge_optimum_2D nil )
(cc skolem-const-decl "nnreal" wedge_optimum_2D nil )
(sq const-decl "nonneg_real" sq "reals/" )
(bb skolem-const-decl "real" wedge_optimum_2D nil )
(ff skolem-const-decl "[real -> real]" wedge_optimum_2D nil )
(sq_le formula-decl nil sq "reals/" )
(norm const-decl "nnreal" vectors_2D "vectors/" )
(nonzero_real nonempty-type-eq-decl nil reals nil )
(sqv_eq_0 formula-decl nil vectors_2D "vectors/" )
(quad_intv_max_at_endpoint formula-decl nil quad_minmax "reals/" )
(^ const-decl "real" exponentiation nil )
(OR const-decl "[bool, bool -> bool]" booleans nil )
(int nonempty-type-eq-decl nil integers nil )
(integer_pred const-decl "[rational -> boolean]" integers nil )
(rational nonempty-type-from-decl nil rationals nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(quadratic const-decl "real" quadratic "reals/" )
(posreal nonempty-type-eq-decl nil real_types nil )
(nonneg_real nonempty-type-eq-decl nil real_types nil )
(div_mult_pos_ge2 formula-decl nil real_props nil )
(tlow1 skolem-const-decl "numfield" wedge_optimum_2D nil )
(tlow2 skolem-const-decl "numfield" wedge_optimum_2D nil )
(tlow skolem-const-decl
"{p: real | p >= max(tlow1, tlow2) AND p >= a}" wedge_optimum_2D
nil )
(negreal nonempty-type-eq-decl nil real_types nil )
(nonpos_real nonempty-type-eq-decl nil real_types nil )
(div_mult_neg_le2 formula-decl nil real_props nil )
(thigh1 skolem-const-decl "numfield" wedge_optimum_2D nil )
(thigh2 skolem-const-decl "numfield" wedge_optimum_2D nil )
(thigh skolem-const-decl
"{p: real | p <= min(thigh1, thigh2) AND p <= b}" wedge_optimum_2D
nil )
(v skolem-const-decl "Vect2" wedge_optimum_2D nil )
(e1 skolem-const-decl "Nz_vect2" wedge_optimum_2D nil )
(e2 skolem-const-decl "Nz_vect2" wedge_optimum_2D nil )
(div_mult_pos_le1 formula-decl nil real_props nil )
(* const-decl "Vector" vectors_2D "vectors/" )
(+ const-decl "Vector" vectors_2D "vectors/" )
(IFF const-decl "[bool, bool -> bool]" booleans nil )
(NOT const-decl "[bool -> bool]" booleans nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(intersects_segment? const-decl "bool" wedge_optimum_2D nil )
(on_segment_in_wedge? const-decl "bool" wedge_optimum_2D nil )
(add_zero_right formula-decl nil vectors_2D "vectors/" )
(scal_zero formula-decl nil vectors_2D "vectors/" )
(sqv_zero formula-decl nil vectors_2D "vectors/" )
(dot_zero_left formula-decl nil vectors_2D "vectors/" )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(real_times_real_is_real application-judgement "real" reals nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(- const-decl "[numfield, numfield -> numfield]" number_fields nil )
(real_minus_real_is_real application-judgement "real" reals nil )
(IMPLIES const-decl "[bool, bool -> bool]" booleans nil )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(real_plus_real_is_real application-judgement "real" reals nil )
(real_div_nzreal_is_real application-judgement "real" reals nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(IF const-decl "[boolean, T, T -> T]" if_def nil )
(bool nonempty-type-eq-decl nil booleans nil )
(> const-decl "bool" reals nil )
(* const-decl "real" vectors_2D "vectors/" )
(nznum nonempty-type-eq-decl nil number_fields nil )
(/ const-decl "[numfield, nznum -> numfield]" number_fields nil )
(- const-decl "Vector" vectors_2D "vectors/" )
(AND const-decl "[bool, bool -> bool]" booleans nil )
(< const-decl "bool" reals nil )
(+ const-decl "[numfield, numfield -> numfield]" number_fields
nil ))
nil )
(max_segment_point_in_slice_def-3 nil 3530525066
("" (skeep)
((""
(name "mspis"
"max_segment_point_in_slice(p, w, v, a, b, e1, e2)" )
(("" (label "mspisdef" -1)
(("" (replace -1)
(("" (assert )
(("" (expand "max_segment_point_in_slice" )
(("" (case "NOT (v*e1 = 0 OR v*e2=0)" )
(("1" (label "vdotnz" 1)
(("1" (hide "vdotnz" )
(("1"
(name "tlow1"
"IF v * e1 > 0 THEN ((p - w) * e1) / (v * e1)
ELSE a
ENDIF")
(("1" (replace -1)
(("1"
(name "thigh1"
"IF v*e1<0 THEN ((p-w)*e1)/(v*e1) ELSE b ENDIF" )
(("1" (replace -1)
(("1"
(name "tlow2"
"IF v*e2>0 THEN ((p-w)*e2)/(v*e2) ELSE a ENDIF" )
(("1"
(replace -1)
(("1"
(name
"thigh2"
"IF v * e2 < 0 THEN ((p - w) * e2) / (v * e2)
ELSE b
ENDIF")
(("1"
(replace -1)
(("1"
(name
"tlow"
"max(max(tlow1,tlow2),a)" )
(("1"
(replace -1)
(("1"
(name
"thigh"
"min(min(thigh1,thigh2),b)" )
(("1"
(replace -1)
(("1"
(name "aa" "sqv(v)" )
(("1"
(replace -1)
(("1"
(name
"bb"
"2*(v*(w-p))" )
(("1"
(copy -1)
(("1"
(mult-by
-1
"tlow" )
(("1"
(replace -1)
(("1"
(copy -2)
(("1"
(mult-by
-1
"thigh" )
(("1"
(replace
-1)
(("1"
(hide
(-1
-2))
(("1"
(name
"cc"
"sqv(w-p)" )
(("1"
(case
"NOT (FORALL (t:real): (a<=t AND t<=b AND (w+t*v-p)*e1>=0 AND (w+t*v-p)*e2>=0) IFF (tlow <= t AND t<=thigh))" )
(("1"
(hide-all-but
1)
(("1"
(skeep)
(("1"
(ground)
(("1"
(expand
"tlow" )
(("1"
(case
"t>=tlow1 AND t>=tlow2" )
(("1"
(flatten)
(("1"
(expand
"max" )
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide
2)
(("2"
(split
+)
(("1"
(expand
"tlow1" )
(("1"
(lift-if)
(("1"
(assert )
(("1"
(ground)
(("1"
(cross-mult
1)
(("1"
(hide-all-but
(-4
1))
(("1"
(grind)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(expand
"tlow2" )
(("2"
(lift-if)
(("2"
(assert )
(("2"
(ground)
(("2"
(cross-mult
1)
(("2"
(hide-all-but
(-5
1))
(("2"
(grind)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("3"
(assert )
(("3"
(flatten)
(("3"
(expand
"tlow2"
1)
(("3"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(expand
"thigh" )
(("2"
(case
"t<=thigh1 AND t<=thigh2" )
(("1"
(flatten)
(("1"
(expand
"min" )
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide
2)
(("2"
(split
+)
(("1"
(expand
"thigh1" )
(("1"
(lift-if)
(("1"
(assert )
(("1"
(ground)
(("1"
(cross-mult
1)
(("1"
(hide-all-but
(-4
1))
(("1"
(grind)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(expand
"thigh2" )
(("2"
(lift-if)
(("2"
(assert )
(("2"
(ground)
(("2"
(cross-mult
1)
(("2"
(hide-all-but
(-5
1))
(("2"
(grind)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("3"
(flatten)
(("3"
(hide
2)
(("3"
(expand
"thigh2"
1)
(("3"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("3"
(expand
"tlow" )
(("3"
(expand
"thigh" )
(("3"
(case
"t>=tlow1 AND t<=thigh1" )
(("1"
(hide
(-2
-3))
(("1"
(flatten)
(("1"
(expand
"thigh1" )
(("1"
(expand
"tlow1" )
(("1"
(lift-if)
(("1"
(split
-)
(("1"
(flatten)
(("1"
(cross-mult
-2)
(("1"
(hide-all-but
(-2
1))
(("1"
(grind)
nil
nil ))
nil ))
nil ))
nil )
("2"
(flatten)
(("2"
(split
-)
(("1"
(flatten)
(("1"
(cross-mult
-2)
(("1"
(hide-all-but
(-2
2))
(("1"
(grind)
nil
nil ))
nil ))
nil ))
nil )
("2"
(flatten)
(("2"
(reveal
"vdotnz" )
(("2"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(expand
"min" )
(("2"
(expand
"max" )
(("2"
(lift-if)
(("2"
(lift-if)
(("2"
(lift-if)
(("2"
(assert )
(("2"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("3"
(flatten)
(("3"
(expand
"thigh1"
+)
(("3"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("4"
(expand
"thigh" )
(("4"
(expand
"tlow" )
(("4"
(case
"tlow2 <= t AND t<=thigh2" )
(("1"
(hide
(-2
-3))
(("1"
(flatten)
(("1"
(expand
"thigh2" )
(("1"
(expand
"tlow2" )
(("1"
(lift-if)
(("1"
(split
-)
(("1"
(flatten)
(("1"
(cross-mult
-2)
(("1"
(hide-all-but
(-2
1))
(("1"
(grind)
nil
nil ))
nil ))
nil ))
nil )
("2"
(flatten)
(("2"
(split
-)
(("1"
(flatten)
(("1"
(cross-mult
-2)
(("1"
(hide-all-but
(-2
2))
(("1"
(grind)
nil
nil ))
nil ))
nil ))
nil )
("2"
(flatten)
(("2"
(reveal
"vdotnz" )
(("2"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(expand
"min" )
(("2"
(expand
"max" )
(("2"
(lift-if)
(("2"
(lift-if)
(("2"
(lift-if)
(("2"
(assert )
(("2"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("3"
(flatten)
(("3"
(expand
"thigh2"
+)
(("3"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(label
"intdef"
-1)
(("2"
(name
"ff"
"quadratic(aa,bb,cc)" )
(("2"
(label
"ffdef"
-1)
(("2"
(case
"aa * tlow ^ 2 + bb * tlow <= aa * thigh ^ 2 + bb * thigh IFF ff(tlow)<=ff(thigh)" )
(("1"
(replace
-1)
(("1"
(name
"maxt"
"IF ff(tlow) <= ff(thigh) THEN thigh ELSE tlow ENDIF" )
(("1"
(replace
-1)
(("1"
(split
+)
(("1"
(flatten)
(("1"
(expand
"intersects_segment?" )
(("1"
(skeep
-1)
(("1"
(copy
"intdef" )
(("1"
(inst
-
"t" )
(("1"
(assert )
(("1"
(flatten)
(("1"
(expand
"on_segment_in_wedge?" )
(("1"
(inst
+
"maxt" )
(("1"
(inst
-
"maxt" )
(("1"
(assert )
(("1"
(case
"tlow <= maxt AND maxt <= thigh" )
(("1"
(replace
-1)
(("1"
(assert )
(("1"
(flatten)
(("1"
(ground)
nil
nil ))
nil ))
nil ))
nil )
("2"
(hide
2)
(("2"
(hide
(-8
-9))
(("2"
(expand
"maxt"
+)
(("2"
(lift-if
+)
(("2"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(skeep)
(("2"
(expand
"on_segment_in_wedge?" )
(("2"
(skeep
-1)
(("2"
(copy
"intdef" )
(("2"
(inst
-
"t" )
(("2"
(assert )
(("2"
(flatten)
(("2"
(case
"ff(t)<=ff(maxt)" )
(("1"
(rewrite
"sq_le"
1
:dir
rl)
(("1"
(rewrite
"sq_norm" )
(("1"
(rewrite
"sq_norm" )
(("1"
(replace
-6
+)
(("1"
(replace
"mspisdef"
1
:dir
rl)
(("1"
(hide-all-but
(-1
1))
(("1"
(expand
"ff" )
(("1"
(expand
"aa" )
(("1"
(expand
"bb" )
(("1"
(expand
"cc" )
(("1"
(grind)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(postpone)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(postpone)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (postpone) nil nil )
("3" (postpone) nil nil ))
nil ))
nil )
("2" (postpone) nil nil )
("3" (postpone) nil nil ))
nil ))
nil )
("2" (postpone) nil nil ))
nil ))
nil )
("2" (postpone) nil nil ))
nil ))
nil )
("2" (postpone) nil nil ))
nil ))
nil )
("2" (postpone) nil nil ))
nil ))
nil ))
nil )
("2" (postpone) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
nil nil )
(max_segment_point_in_slice_def-2 nil 3530524985
("" (skeep)
((""
(name "mspis"
"max_segment_point_in_slice(p, w, v, a, b, e1, e2)" )
(("" (replace -1)
(("" (assert )
(("" (expand "max_segment_point_in_slice" )
(("" (case "NOT (v*e1 = 0 OR v*e2=0)" )
(("1" (label "vdotnz" 1)
(("1" (hide "vdotnz" )
(("1"
(name "tlow1"
"IF v * e1 > 0 THEN ((p - w) * e1) / (v * e1)
ELSE a
ENDIF")
(("1" (replace -1)
(("1"
(name "thigh1"
"IF v*e1<0 THEN ((p-w)*e1)/(v*e1) ELSE b ENDIF" )
(("1" (replace -1)
(("1"
(name "tlow2"
"IF v*e2>0 THEN ((p-w)*e2)/(v*e2) ELSE a ENDIF" )
(("1" (replace -1)
(("1"
(name
"thigh2"
"IF v * e2 < 0 THEN ((p - w) * e2) / (v * e2)
ELSE b
ENDIF")
(("1"
(replace -1)
(("1"
(name
"tlow"
"max(max(tlow1,tlow2),a)" )
(("1"
(replace -1)
(("1"
(name
"thigh"
"min(min(thigh1,thigh2),b)" )
(("1"
(replace -1)
(("1"
(name "aa" "sqv(v)" )
(("1"
(replace -1)
(("1"
(name
"bb"
"2*(v*(w-p))" )
(("1"
(copy -1)
(("1"
(mult-by -1 "tlow" )
(("1"
(replace -1)
(("1"
(copy -2)
(("1"
(mult-by
-1
"thigh" )
(("1"
(replace
-1)
(("1"
(hide
(-1 -2))
(("1"
(name
"cc"
"sqv(w-p)" )
(("1"
(case
"NOT (FORALL (t:real): (a<=t AND t<=b AND (w+t*v-p)*e1>=0 AND (w+t*v-p)*e2>=0) IFF (tlow <= t AND t<=thigh))" )
(("1"
(hide-all-but
1)
(("1"
(skeep)
(("1"
(ground)
(("1"
(expand
"tlow" )
(("1"
(case
"t>=tlow1 AND t>=tlow2" )
(("1"
(flatten)
(("1"
(expand
"max" )
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide
2)
(("2"
(split
+)
(("1"
(expand
"tlow1" )
(("1"
(lift-if)
(("1"
(assert )
(("1"
(ground)
(("1"
(cross-mult
1)
(("1"
(hide-all-but
(-4
1))
(("1"
(grind)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(expand
"tlow2" )
(("2"
(lift-if)
(("2"
(assert )
(("2"
(ground)
(("2"
(cross-mult
1)
(("2"
(hide-all-but
(-5
1))
(("2"
(grind)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("3"
(assert )
(("3"
(flatten)
(("3"
(expand
"tlow2"
1)
(("3"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(expand
"thigh" )
(("2"
(case
"t<=thigh1 AND t<=thigh2" )
(("1"
(flatten)
(("1"
(expand
"min" )
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide
2)
(("2"
(split
+)
(("1"
(expand
"thigh1" )
(("1"
(lift-if)
(("1"
(assert )
(("1"
(ground)
(("1"
(cross-mult
1)
(("1"
(hide-all-but
(-4
1))
(("1"
(grind)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(expand
"thigh2" )
(("2"
(lift-if)
(("2"
(assert )
(("2"
(ground)
(("2"
(cross-mult
1)
(("2"
(hide-all-but
(-5
1))
(("2"
(grind)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("3"
(flatten)
(("3"
(hide
2)
(("3"
(expand
"thigh2"
1)
(("3"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("3"
(expand
"tlow" )
(("3"
(expand
"thigh" )
(("3"
(case
"t>=tlow1 AND t<=thigh1" )
(("1"
(hide
(-2
-3))
(("1"
(flatten)
(("1"
(expand
"thigh1" )
(("1"
(expand
"tlow1" )
(("1"
(lift-if)
(("1"
(split
-)
(("1"
(flatten)
(("1"
(cross-mult
-2)
(("1"
(hide-all-but
(-2
1))
(("1"
(grind)
nil
nil ))
nil ))
nil ))
nil )
("2"
(flatten)
(("2"
(split
-)
(("1"
(flatten)
(("1"
(cross-mult
-2)
(("1"
(hide-all-but
(-2
2))
(("1"
(grind)
nil
nil ))
nil ))
nil ))
nil )
("2"
(flatten)
(("2"
(reveal
"vdotnz" )
(("2"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(expand
"min" )
(("2"
(expand
"max" )
(("2"
(lift-if)
(("2"
(lift-if)
(("2"
(lift-if)
(("2"
(assert )
(("2"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("3"
(flatten)
(("3"
(expand
"thigh1"
+)
(("3"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("4"
(expand
"thigh" )
(("4"
(expand
"tlow" )
(("4"
(case
"tlow2 <= t AND t<=thigh2" )
(("1"
(hide
(-2
-3))
(("1"
(flatten)
(("1"
(expand
"thigh2" )
(("1"
(expand
"tlow2" )
(("1"
(lift-if)
(("1"
(split
-)
(("1"
(flatten)
(("1"
(cross-mult
-2)
(("1"
(hide-all-but
(-2
1))
(("1"
(grind)
nil
nil ))
nil ))
nil ))
nil )
("2"
(flatten)
(("2"
(split
-)
(("1"
(flatten)
(("1"
(cross-mult
-2)
(("1"
(hide-all-but
(-2
2))
(("1"
(grind)
nil
nil ))
nil ))
nil ))
nil )
("2"
(flatten)
(("2"
(reveal
"vdotnz" )
(("2"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(expand
"min" )
(("2"
(expand
"max" )
(("2"
(lift-if)
(("2"
(lift-if)
(("2"
(lift-if)
(("2"
(assert )
(("2"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("3"
(flatten)
(("3"
(expand
"thigh2"
+)
(("3"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(label
"intdef"
-1)
(("2"
(name
"ff"
"quadratic(aa,bb,cc)" )
(("2"
(label
"ffdef"
-1)
(("2"
(case
"aa * tlow ^ 2 + bb * tlow <= aa * thigh ^ 2 + bb * thigh IFF ff(tlow)<=ff(thigh)" )
(("1"
(replace
-1)
(("1"
(name
"maxt"
"IF ff(tlow) <= ff(thigh) THEN thigh ELSE tlow ENDIF" )
(("1"
(replace
-1)
(("1"
(split
+)
(("1"
(flatten)
(("1"
(expand
"intersects_segment?" )
(("1"
(skeep
-1)
(("1"
(copy
"intdef" )
(("1"
(inst
-
"t" )
(("1"
(assert )
(("1"
(flatten)
(("1"
(expand
"on_segment_in_wedge?" )
(("1"
(inst
+
"maxt" )
(("1"
(inst
-
"maxt" )
(("1"
(assert )
(("1"
(case
"tlow <= maxt AND maxt <= thigh" )
(("1"
(replace
-1)
(("1"
(assert )
(("1"
(flatten)
(("1"
(ground)
nil
nil ))
nil ))
nil ))
nil )
("2"
(hide
2)
(("2"
(hide
(-8
-9))
(("2"
(expand
"maxt"
+)
(("2"
(lift-if
+)
(("2"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(skeep)
(("2"
(expand
"on_segment_in_wedge?" )
(("2"
(skeep
-1)
(("2"
(copy
"intdef" )
(("2"
(inst
-
"t" )
(("2"
(assert )
(("2"
(flatten)
(("2"
(case
"ff(t)<=ff(maxt)" )
(("1"
(postpone)
nil
nil )
("2"
(postpone)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(postpone)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (postpone) nil nil )
("3" (postpone) nil nil ))
nil ))
nil )
("2" (postpone) nil nil )
("3" (postpone) nil nil ))
nil ))
nil )
("2" (postpone) nil nil ))
nil ))
nil )
("2" (postpone) nil nil ))
nil ))
nil )
("2" (postpone) nil nil ))
nil ))
nil )
("2" (postpone) nil nil ))
nil ))
nil ))
nil )
("2" (postpone) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
nil nil )
(max_segment_point_in_slice_def-1 nil 3530522984
("" (skeep)
((""
(name "mspis"
"max_segment_point_in_slice(p, w1, v, a, b, e1, e2)" )
(("" (replace -1)
(("" (assert )
(("" (expand "max_segment_point_in_slice" )
(("" (case "NOT (v*e1 = 0 OR v*e2=0)" )
(("1" (label "vdotnz" 1)
(("1" (hide "vdotnz" )
(("1"
(name "tlow1"
"IF v * e1 > 0 THEN ((p - w1) * e1) / (v * e1)
ELSE a
ENDIF")
(("1" (replace -1)
(("1"
(name "thigh1"
"IF v*e1<0 THEN ((p-w1)*e1)/(v*e1) ELSE b ENDIF" )
(("1" (replace -1)
(("1"
(name "tlow2"
"IF v*e2>0 THEN ((p-w1)*e2)/(v*e2) ELSE a ENDIF" )
(("1" (replace -1)
(("1"
(name
"thigh2"
"IF v * e2 < 0 THEN ((p - w1) * e2) / (v * e2)
ELSE b
ENDIF")
(("1"
(replace -1)
(("1"
(name
"tlow"
"max(max(tlow1,tlow2),a)" )
(("1"
(replace -1)
(("1"
(name
"thigh"
"min(min(thigh1,thigh2),b)" )
(("1"
(replace -1)
(("1"
(name "aa" "sqv(v)" )
(("1"
(replace -1)
(("1"
(name
"bb"
"2*(v*(w1-p))" )
(("1"
(copy -1)
(("1"
(mult-by -1 "tlow" )
(("1"
(replace -1)
(("1"
(copy -2)
(("1"
(mult-by
-1
"thigh" )
(("1"
(replace
-1)
(("1"
(hide
(-1 -2))
(("1"
(name
"cc"
"sqv(w1-p)" )
(("1"
(case
"NOT (FORALL (t:real): (a<=t AND t<=b AND (w1+t*v-p)*e1>=0 AND (w1+t*v-p)*e2>=0) IFF (tlow <= t AND t<=thigh))" )
(("1"
(hide-all-but
1)
(("1"
(skeep)
(("1"
(ground)
(("1"
(expand
"tlow" )
(("1"
(case
"t>=tlow1 AND t>=tlow2" )
(("1"
(flatten)
(("1"
(expand
"max" )
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide
2)
(("2"
(split
+)
(("1"
(expand
"tlow1" )
(("1"
(lift-if)
(("1"
(assert )
(("1"
(ground)
(("1"
(cross-mult
1)
(("1"
(hide-all-but
(-4
1))
(("1"
(grind)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(expand
"tlow2" )
(("2"
(lift-if)
(("2"
(assert )
(("2"
(ground)
(("2"
(cross-mult
1)
(("2"
(hide-all-but
(-5
1))
(("2"
(grind)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("3"
(assert )
(("3"
(flatten)
(("3"
(expand
"tlow2"
1)
(("3"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(expand
"thigh" )
(("2"
(case
"t<=thigh1 AND t<=thigh2" )
(("1"
(flatten)
(("1"
(expand
"min" )
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide
2)
(("2"
(split
+)
(("1"
(expand
"thigh1" )
(("1"
(lift-if)
(("1"
(assert )
(("1"
(ground)
(("1"
(cross-mult
1)
(("1"
(hide-all-but
(-4
1))
(("1"
(grind)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(expand
"thigh2" )
(("2"
(lift-if)
(("2"
(assert )
(("2"
(ground)
(("2"
(cross-mult
1)
(("2"
(hide-all-but
(-5
1))
(("2"
(grind)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("3"
(flatten)
(("3"
(hide
2)
(("3"
(expand
"thigh2"
1)
(("3"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("3"
(expand
"tlow" )
(("3"
(expand
"thigh" )
(("3"
(case
"t>=tlow1 AND t<=thigh1" )
(("1"
(hide
(-2
-3))
(("1"
(flatten)
(("1"
(expand
"thigh1" )
(("1"
(expand
"tlow1" )
(("1"
(lift-if)
(("1"
(split
-)
(("1"
(flatten)
(("1"
(cross-mult
-2)
(("1"
(hide-all-but
(-2
1))
(("1"
(grind)
nil
nil ))
nil ))
nil ))
nil )
("2"
(flatten)
(("2"
(split
-)
(("1"
(flatten)
(("1"
(cross-mult
-2)
(("1"
(hide-all-but
(-2
2))
(("1"
(grind)
nil
nil ))
nil ))
nil ))
nil )
("2"
(flatten)
(("2"
(reveal
"vdotnz" )
(("2"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(expand
"min" )
(("2"
(expand
"max" )
(("2"
(lift-if)
(("2"
(lift-if)
(("2"
(lift-if)
(("2"
(assert )
(("2"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("3"
(flatten)
(("3"
(expand
"thigh1"
+)
(("3"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("4"
(expand
"thigh" )
(("4"
(expand
"tlow" )
(("4"
(case
"tlow2 <= t AND t<=thigh2" )
(("1"
(hide
(-2
-3))
(("1"
(flatten)
(("1"
(expand
"thigh2" )
(("1"
(expand
"tlow2" )
(("1"
(lift-if)
(("1"
(split
-)
(("1"
(flatten)
(("1"
(cross-mult
-2)
(("1"
(hide-all-but
(-2
1))
(("1"
(grind)
nil
nil ))
nil ))
nil ))
nil )
("2"
(flatten)
(("2"
(split
-)
(("1"
(flatten)
(("1"
(cross-mult
-2)
(("1"
(hide-all-but
(-2
2))
(("1"
(grind)
nil
nil ))
nil ))
nil ))
nil )
("2"
(flatten)
(("2"
(reveal
"vdotnz" )
(("2"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(expand
"min" )
(("2"
(expand
"max" )
(("2"
(lift-if)
(("2"
(lift-if)
(("2"
(lift-if)
(("2"
(assert )
(("2"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("3"
(flatten)
(("3"
(expand
"thigh2"
+)
(("3"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(label
"intdef"
-1)
(("2"
(name
"ff"
"quadratic(aa,bb,cc)" )
(("2"
(label
"ffdef"
-1)
(("2"
(case
"aa * tlow ^ 2 + bb * tlow <= aa * thigh ^ 2 + bb * thigh IFF ff(tlow)<=ff(thigh)" )
(("1"
(replace
-1)
(("1"
(name
"maxt"
"IF ff(tlow) <= ff(thigh) THEN thigh ELSE tlow ENDIF" )
(("1"
(replace
-1)
(("1"
(split
+)
(("1"
(flatten)
(("1"
(expand
"intersects_segment?" )
(("1"
(skeep
-1)
(("1"
(copy
"intdef" )
(("1"
(inst
-
"t" )
(("1"
(assert )
(("1"
(flatten)
(("1"
(expand
"on_segment_in_wedge?" )
(("1"
(inst
+
"maxt" )
(("1"
(inst
-
"maxt" )
(("1"
(assert )
(("1"
(case
"tlow <= maxt AND maxt <= thigh" )
(("1"
(replace
-1)
(("1"
(assert )
(("1"
(flatten)
(("1"
(ground)
nil
nil ))
nil ))
nil ))
nil )
("2"
(hide
2)
(("2"
(hide
(-8
-9))
(("2"
(expand
"maxt"
+)
(("2"
(lift-if
+)
(("2"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(skeep)
(("2"
(expand
"on_segment_in_wedge?" )
(("2"
(skeep
-1)
(("2"
(copy
"intdef" )
(("2"
(inst
-
"t" )
(("2"
(assert )
(("2"
(postpone)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(postpone)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (postpone) nil nil )
("3" (postpone) nil nil ))
nil ))
nil )
("2" (postpone) nil nil )
("3" (postpone) nil nil ))
nil ))
nil )
("2" (postpone) nil nil ))
nil ))
nil )
("2" (postpone) nil nil ))
nil ))
nil )
("2" (postpone) nil nil ))
nil ))
nil )
("2" (postpone) nil nil ))
nil ))
nil ))
nil )
("2" (postpone) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
nil shostak))
(max_segment_point_in_slice_complete 0
(max_segment_point_in_slice_complete-1 nil 3530539881
("" (skeep)
(("" (lemma "max_segment_point_in_slice_def" )
(("" (inst?)
(("" (assert )
(("" (flatten)
(("" (skeep)
(("" (split -)
(("1" (propax) nil nil )
("2" (hide (-1 2))
(("2" (expand "intersects_segment?" )
(("2" (expand "on_segment_in_wedge?" )
(("2" (skeep -1)
(("2" (inst + "t" ) (("2" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((max_segment_point_in_slice_def formula-decl nil wedge_optimum_2D
nil )
(on_segment_in_wedge? const-decl "bool" wedge_optimum_2D nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(intersects_segment? const-decl "bool" wedge_optimum_2D nil )
(Vect2 type-eq-decl nil vectors_2D_def "vectors/" )
(Nz_vect2 type-eq-decl nil vectors_2D "vectors/" )
(zero const-decl "Vector" vectors_2D "vectors/" )
(/= const-decl "boolean" notequal nil )
(Vector type-eq-decl nil vectors_2D "vectors/" )
(real nonempty-type-from-decl nil reals nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(number_field_pred const-decl "[number -> boolean]" number_fields
nil )
(boolean nonempty-type-decl nil booleans nil )
(number nonempty-type-decl nil numbers nil ))
shostak)))
Messung V0.5 C=100 H=100 G=100
¤ Dauer der Verarbeitung: 0.871 Sekunden
¤
*© Formatika GbR, Deutschland
2026-04-08