(polynomial_division
(poly_divide_TCC1 0
(poly_divide_TCC1-1 nil 3582383554 ("" (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 )
(>= const-decl "bool" reals nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(rational nonempty-type-from-decl nil rationals nil )
(integer_pred const-decl "[rational -> boolean]" integers nil )
(int nonempty-type-eq-decl nil integers nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(/= const-decl "boolean" notequal nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(rat_max application-judgement "{s: rat | s >= q AND s >= r}"
real_defs nil )
(int_max application-judgement "{k: int | i <= k AND j <= k}"
real_defs nil )
(int_plus_int_is_int application-judgement "int" integers nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(posint_plus_nnint_is_posint application-judgement "posint"
integers nil )
(int_minus_int_is_int application-judgement "int" integers nil ))
nil ))
(poly_divide_TCC2 0
(poly_divide_TCC2-1 nil 3582383554 ("" (subtype-tcc) nil nil ) nil
nil ))
(poly_divide_TCC3 0
(poly_divide_TCC3-1 nil 3582383554 ("" (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 )
(>= const-decl "bool" reals nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(rational nonempty-type-from-decl nil rationals nil )
(integer_pred const-decl "[rational -> boolean]" integers nil )
(int nonempty-type-eq-decl nil integers nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(/= const-decl "boolean" notequal nil )
(minus_odd_is_odd application-judgement "odd_int" integers nil ))
nil ))
(poly_divide_TCC4 0
(poly_divide_TCC4-1 nil 3582383554 ("" (subtype-tcc) nil nil )
((make_divtype const-decl "DivType" polynomial_division nil )) nil ))
(poly_divide_TCC5 0
(poly_divide_TCC5-1 nil 3582383554
("" (skosimp*) (("" (assert ) (("" (postpone) nil nil )) nil )) nil )
((real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(real_div_nzreal_is_real application-judgement "real" reals nil )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(int_minus_int_is_int application-judgement "int" integers nil ))
nil ))
(poly_divide_TCC6 0
(poly_divide_TCC6-1 nil 3582383554 ("" (termination-tcc) nil nil )
((int_minus_int_is_int application-judgement "int" integers 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 )
(>= const-decl "bool" reals nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(rational nonempty-type-from-decl nil rationals nil )
(integer_pred const-decl "[rational -> boolean]" integers nil )
(int nonempty-type-eq-decl nil integers nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(/= const-decl "boolean" notequal nil )
(minus_odd_is_odd application-judgement "odd_int" integers nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(real_div_nzreal_is_real application-judgement "real" reals nil )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(nnint_plus_nnint_is_nnint application-judgement "nonneg_int"
integers nil )
(make_divtype const-decl "DivType" polynomial_division nil ))
nil ))
(poly_divide_TCC7 0
(poly_divide_TCC7-1 nil 3582383609 ("" (termination-tcc) nil nil )
((int_minus_int_is_int application-judgement "int" integers 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 )
(>= const-decl "bool" reals nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(rational nonempty-type-from-decl nil rationals nil )
(integer_pred const-decl "[rational -> boolean]" integers nil )
(int nonempty-type-eq-decl nil integers nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(/= const-decl "boolean" notequal nil )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(real_div_nzreal_is_real application-judgement "real" reals nil )
(make_divtype const-decl "DivType" polynomial_division nil )
(nnint_plus_nnint_is_nnint application-judgement "nonneg_int"
integers nil ))
nil ))
(poly_divide_TCC8 0
(poly_divide_TCC8-1 nil 3582544163 ("" (termination-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 )
(>= const-decl "bool" reals nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(rational nonempty-type-from-decl nil rationals nil )
(integer_pred const-decl "[rational -> boolean]" integers nil )
(int nonempty-type-eq-decl nil integers nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(/= const-decl "boolean" notequal nil )
(minus_odd_is_odd application-judgement "odd_int" integers nil ))
nil ))
(poly_divide_TCC9 0
(poly_divide_TCC9-1 nil 3582555120 ("" (termination-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 )
(>= const-decl "bool" reals nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(rational nonempty-type-from-decl nil rationals nil )
(integer_pred const-decl "[rational -> boolean]" integers nil )
(int nonempty-type-eq-decl nil integers nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(/= const-decl "boolean" notequal nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(mult_divides1 application-judgement "(divides(n))" divides nil )
(mult_divides2 application-judgement "(divides(m))" divides nil )
(max const-decl "{p: real | p >= m AND p >= n}" real_defs nil )
(int_minus_int_is_int application-judgement "int" integers nil )
(posint_plus_nnint_is_posint application-judgement "posint"
integers nil ))
nil ))
(poly_divide_def 0
(poly_divide_def-1 nil 3582385231
(""
(case "FORALL (g, h: sequence[real], i, m, n: nat):
h(m) /= 0 AND i<=n-m AND (n-m-i) <= n - m IMPLIES
LET pd = poly_divide(g, n)(h, m)((n-m-i)) IN
FORALL (x: real):
polynomial(g, n)(x) =
polynomial(pd`quot, pd`qdeg)(x) * polynomial(h, m)(x) +
polynomial(pd`rem, pd`rdeg)(x)")
(("1" (skeep)
(("1" (inst - "g" "h" "n-m-i" "m" "n" )
(("1" (assert )
(("1" (split -)
(("1" (propax) nil nil )
("2" (skeep)
(("2" (assert )
(("2" (expand "poly_divide" )
(("2" (expand "make_divtype" )
(("2" (expand "polynomial" + 1)
(("2" (expand "sigma" )
(("2" (expand "sigma" ) (("2" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (assert )
(("2" (skeep)
(("2" (expand "poly_divide" )
(("2" (expand "make_divtype" )
(("2" (expand "polynomial" + 1)
(("2" (expand "sigma" )
(("2" (expand "sigma" ) (("2" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (hide 2)
(("2"
(case "NOT FORALL (g, h: sequence[real], i, m, n: nat):
h(m) /= 0 AND i = n - m IMPLIES
LET pd = poly_divide(g, n)(h, m)(i) IN
FORALL (x: real):
polynomial(g, n)(x) =
polynomial(pd`quot, pd`qdeg)(x) * polynomial(h, m)(x) +
polynomial(pd`rem, pd`rdeg)(x)")
(("1" (hide 2)
(("1" (skeep)
(("1" (replaces -1)
(("1" (assert )
(("1" (skeep 2)
(("1" (assert )
(("1" (name "pd" "poly_divide(g, n)(h, m)(n - m)" )
(("1" (replace -1)
(("1" (expand "poly_divide" :assert ? none)
(("1" (lift-if)
(("1" (split -)
(("1"
(flatten)
(("1"
(assert )
(("1"
(expand "make_divtype" )
(("1"
(replaces -2 :dir rl)
(("1"
(assert )
(("1"
(invoke
(case "%1=0" )
(! 2 2 1))
(("1" (assert ) nil nil )
("2"
(hide-all-but 1)
(("2" (grind) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(flatten)
(("2"
(split -)
(("1"
(flatten)
(("1"
(replaces -1)
(("1"
(assert )
(("1"
(expand "*" )
(("1"
(expand "make_divtype" )
(("1"
(replace -1 :dir rl)
(("1"
(assert )
(("1"
(rewrite
"polynomial_n0" )
(("1"
(rewrite
"polynomial_n0" )
(("1"
(assert )
(("1"
(lemma
"scal_polynomial" )
(("1"
(inst
-
"(1/h(0))*g"
"n"
"h(0)" )
(("1"
(expand
"*" )
(("1"
(decompose-equality
-1)
(("1"
(inst
-
"x" )
(("1"
(expand
"const_fun" )
(("1"
(replaces
-1)
(("1"
(rewrite
"poly_eq_le_degree" )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(flatten)
(("2"
(label "mz" 1)
(("2"
(hide "mz" )
(("2"
(skoletin -1)
(("2"
(skoletin -1)
(("2"
(assert )
(("2"
(expand "make_divtype" )
(("2"
(assert )
(("2"
(case
"NOT polynomial(pd`quot, pd`qdeg)(x) = (g(n)/h(m))*x^(n-m)" )
(("1"
(hide 5)
(("1"
(replaces
-1
+
:dir
rl)
(("1"
(assert )
(("1"
(replace
-2
+)
(("1"
(assert )
(("1"
(expand
"polynomial" )
(("1"
(lemma
"sigma_eq_one_arg" )
(("1"
(inst?)
(("1"
(inst
-
"n-m" )
(("1"
(assert )
(("1"
(split
-)
(("1"
(replaces
-1)
(("1"
(assert )
(("1"
(replaces
-1)
(("1"
(replaces
-1)
(("1"
(assert )
(("1"
(lift-if)
(("1"
(ground)
(("1"
(replaces
-1)
(("1"
(grind)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(skosimp*)
(("2"
(lift-if)
(("2"
(ground)
nil
nil ))
nil ))
nil )
("3"
(skosimp*)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(ground)
(("2"
(replaces -1)
(("2"
(lemma
"mul_x_to_n_polynomial" )
(("2"
(case
"n = m" )
(("1"
(assert )
(("1"
(replaces
-1)
(("1"
(assert )
(("1"
(hide
-1)
(("1"
(replaces
-3)
(("1"
(assert )
(("1"
(replace
-1
+
:dir
rl)
(("1"
(assert )
(("1"
(expand
"polynomial"
+
3)
(("1"
(rewrite
"sigma_scal"
:dir
rl)
(("1"
(rewrite
"sigma_scal_right"
:dir
rl)
(("1"
(expand
"polynomial" )
(("1"
(expand
"sigma"
+
1)
(("1"
(expand
"sigma"
+
3)
(("1"
(case
"x^0 = 1" )
(("1"
(replaces
-1)
(("1"
(assert )
(("1"
(case
"NOT g(m)*x^m = h(m) * x ^ m * (g(m) / h(m))" )
(("1"
(assert )
nil
nil )
("2"
(replaces
-1)
(("2"
(assert )
(("2"
(rewrite
"sigma_sum" )
(("2"
(rewrite
"sigma_eq" )
(("2"
(skosimp*)
(("2"
(lift-if)
(("2"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide-all-but
1)
(("2"
(grind)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(inst
-
"h"
"m"
"n-m" )
(("1"
(assert )
(("1"
(decompose-equality
-1)
(("1"
(inst
-
"x" )
(("1"
(assert )
(("1"
(expand
"*" )
(("1"
(replace
-1)
(("1"
(lemma
"scal_polynomial" )
(("1"
(invoke
(inst
-
"%1"
"n"
"g(n)/h(m)" )
(!
5
2
2
1
0
1))
(("1"
(expand
"const_fun" )
(("1"
(expand
"*" )
(("1"
(decompose-equality
-1)
(("1"
(inst
-
"x" )
(("1"
(replace
-1)
(("1"
(replace
-3
+
:dir
rl)
(("1"
(assert )
(("1"
(hide
(-1
-2))
(("1"
(assert )
(("1"
(rewrite
"polynomial_rec"
+)
(("1"
(lemma
"polynomial_rec" )
(("1"
(invoke
(inst
-
"%1"
"n"
"x" )
(!
5
2
1
0
1))
(("1"
(assert )
(("1"
(replaces
-1)
(("1"
(case
"NOT g(n)*x^n=h(m) * x ^ n * (g(n) / h(m))" )
(("1"
(assert )
nil
nil )
("2"
(replaces
-1
:dir
rl)
(("2"
(assert )
(("2"
(rewrite
"sum_polynomial_eq_degree_eval" )
(("1"
(assert )
(("1"
(rewrite
"poly_eq_le_degree" )
(("1"
(hide
6)
(("1"
(skosimp*)
(("1"
(replaces
-4)
(("1"
(assert )
(("1"
(expand
"+" )
(("1"
(lift-if)
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(skosimp*)
(("2"
(assert )
nil
nil ))
nil )
("3"
(skosimp*)
(("3"
(assert )
nil
nil ))
nil ))
nil ))
nil )
("2"
(skosimp*)
(("2"
(assert )
nil
nil ))
nil )
("3"
(skosimp*)
(("3"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(skosimp*)
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(assert )
(("2"
(skosimp*)
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (assert )
(("2" (expand "poly_divide" )
(("2" (assert )
(("2" (expand "make_divtype" )
(("2"
(invoke (case "%1 = 0" ) (! 3 2 1))
(("1" (assert ) nil nil )
("2"
(expand "polynomial" 1)
(("2"
(rewrite "sigma_restrict_eq_0" )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (induct "i" )
(("1" (assert ) nil nil )
("2" (assert )
(("2" (skeep)
(("2" (inst?)
(("1" (assert ) nil nil ) ("2" (assert ) nil nil )) nil ))
nil ))
nil )
("3" (skeep)
(("3" (assert )
(("3" (skeep)
(("3" (inst - "g" "h" "m" "n" )
(("3" (inst - "g" "h" "n-m" "m" "n" )
(("1" (assert )
(("1" (skeep)
(("1" (inst - "x" )
(("1" (inst - "x" )
(("1" (assert )
(("1"
(name "ii" "n-m-j" )
(("1"
(case "NOT n-m-j-1=ii-1" )
(("1" (assert ) nil nil )
("2"
(case "ii = 0" )
(("1" (assert ) nil nil )
("2"
(replaces -1)
(("2"
(replaces -1)
(("2"
(case "ii<=0" )
(("1"
(expand "ii" -1)
(("1" (assert ) nil nil ))
nil )
("2"
(hide 2)
(("2"
(name
"pd"
"poly_divide(g,n)(h,m)(ii-1)" )
(("1"
(replace -1)
(("1"
(copy -1)
(("1"
(expand
"poly_divide"
-1
:assert ?
none)
(("1"
(lift-if)
(("1"
(split -)
(("1"
(flatten)
(("1"
(assert )
(("1"
(expand
"poly_divide" )
(("1"
(replaces
-2)
nil
nil ))
nil ))
nil ))
nil )
("2"
(flatten)
(("2"
(split -)
(("1"
(flatten)
(("1"
(assert )
(("1"
(replaces
-1)
(("1"
(assert )
(("1"
(expand
"make_divtype" )
(("1"
(replaces
-1
:dir
rl)
(("1"
(assert )
(("1"
(rewrite
"polynomial_n0" )
(("1"
(rewrite
"polynomial_n0" )
(("1"
(assert )
(("1"
(lemma
"scal_polynomial" )
(("1"
(inst
-
"(1/h(0))*g"
"n"
"h(0)" )
(("1"
(decompose-equality
-1)
(("1"
(inst
-
"x" )
(("1"
(expand
"const_fun" )
(("1"
(expand
"*" )
(("1"
(replaces
-1)
(("1"
(rewrite
"poly_eq_le_degree" )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(flatten)
(("2"
(label
"mz"
1)
(("2"
(hide
"mz" )
(("2"
(split
-)
(("1"
(flatten)
(("1"
(assert )
nil
nil ))
nil )
("2"
(flatten)
(("2"
(skoletin
-1)
(("2"
(skoletin
-1)
(("2"
(assert )
(("2"
(replaces
-3
:dir
rl)
(("2"
(hide
(-5
-6))
(("2"
(invoke
(name
"AA"
"%1" )
(!
-1
1
3))
(("1"
(replace
-1)
(("1"
(expand
"make_divtype"
-2)
(("1"
(replace
-2
:dir
rl)
(("1"
(assert )
(("1"
(case
"NOT polynomial(AA,ii-2+m)(x) = polynomial(ldt`rem,ldt`rdeg)(x)+polynomial(LAMBDA (jj:nat): IF jj<ii-1 THEN 0 ELSE (-thisterm)*h(jj+1-ii) ENDIF,m+ii-1)(x)" )
(("1"
(case
"NOT ldt`rdeg = m+ii-1" )
(("1"
(expand
"ldt"
1)
(("1"
(expand
"poly_divide"
1)
(("1"
(expand
"make_divtype"
1)
(("1"
(reveal
"mz" )
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(replace
-1)
(("2"
(rewrite
"sum_polynomial_eq_degree_eval" )
(("1"
(lemma
"polynomial_rec" )
(("1"
(invoke
(inst
-
"%1"
"ii-1+m"
"x" )
(!
1
2
0
1))
(("1"
(assert )
(("1"
(replace
-1)
(("1"
(hide
-1)
(("1"
(expand
"+" )
(("1"
(case
"NOT ldt`rem(ii - 1 + m) * x ^ (ii - 1 + m) = -(h(m) * x ^ (ii - 1 + m)) * (-thisterm)" )
(("1"
(hide
2)
(("1"
(assert )
nil
nil ))
nil )
("2"
(replaces
-1)
(("2"
(assert )
(("2"
(case
"FORALL (bb,aa:real): bb+-aa+aa = bb" )
(("1"
(invoke
(inst
-
"%1"
"%2" )
(!
1
2
1)
(!
1
2
3))
(("1"
(replaces
-1)
(("1"
(rewrite
"poly_eq_le_degree" )
(("1"
(hide
2)
(("1"
(skosimp*)
(("1"
(expand
"AA"
1)
(("1"
(typepred
"ii!1" )
(("1"
(assert )
(("1"
(lift-if)
(("1"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(skosimp*)
(("2"
(assert )
nil
nil ))
nil ))
nil )
("2"
(skosimp*)
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(skosimp*)
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil )
("2"
(skosimp*)
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(replace
-6
+)
(("2"
(replace
-1
+)
(("2"
(assert )
(("2"
(invoke
(name
"BB"
"%1" )
(!
6
2
1
0
1))
(("2"
(replace
-1)
(("2"
(case
"NOT FORALL (jj:nat): polynomial(BB,ii-1+jj)(x) = (-thisterm)*x^(ii-1)*polynomial(h,jj)(x)" )
(("1"
(induct
"jj" )
(("1"
(assert )
(("1"
(rewrite
"polynomial_n0" )
(("1"
(assert )
(("1"
(rewrite
"polynomial_rec"
1)
(("1"
(invoke
(case
"NOT %1 = %2" )
(!
1
1
2)
(!
1
2))
(("1"
(expand
"BB"
1)
(("1"
(propax)
nil
nil ))
nil )
("2"
(replaces
-1)
(("2"
(assert )
(("2"
(expand
"polynomial"
1)
(("2"
(rewrite
"sigma_restrict_eq_0" )
(("2"
(skosimp*)
(("2"
(expand
"BB"
1)
(("2"
(lift-if)
(("2"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(case
"ii = 1" )
(("1"
(replaces
-1)
(("1"
(assert )
(("1"
(rewrite
"polynomial_n0" )
(("1"
(assert )
(("1"
(expand
"BB"
2)
(("1"
(case
"x^0 = 1" )
(("1"
(assert )
nil
nil )
("2"
(hide-all-but
1)
(("2"
(grind)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(skosimp*)
(("2"
(assert )
(("2"
(rewrite
"polynomial_rec"
1)
(("2"
(replace
-1)
(("2"
(lemma
"polynomial_rec" )
(("2"
(inst
-
"h"
"1+j!1"
"x" )
(("2"
(assert )
(("2"
(replaces
-1)
(("2"
(assert )
(("2"
(lemma
"expt_plus" )
(("2"
(case
"NOT x ^ (ii - 1) * x ^ (1 + j!1) = x^(ii+j!1)" )
(("1"
(case
"x/=0" )
(("1"
(inst
-
"ii-1"
"1+j!1"
"x" )
(("1"
(assert )
nil
nil ))
nil )
("2"
(flatten)
(("2"
(replaces
-1)
(("2"
(hide-all-but
1)
(("2"
(grind)
nil
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(assert )
(("2"
(expand
"BB"
1)
(("2"
(assert )
(("2"
(hide-all-but
(-1
1))
(("2"
(mult-by
-1
"h(1+j!1)*(-thisterm)" )
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(inst
-
"m" )
(("2"
(replaces
-1)
(("2"
(case
"NOT polynomial(ldt`quot WITH [(ii - 1) := thisterm], n - m)(x) + (-thisterm)*x^(ii-1) = polynomial(ldt`quot,n-m)(x)" )
(("1"
(name
"RD"
"LAMBDA (k:nat): IF k=ii-1 THEN -thisterm ELSE 0 endif" )
(("1"
(case
"NOT polynomial(RD,n-m)(x) = (-thisterm)*x^(ii-1)" )
(("1"
(case
"NOT n-m >=ii-1" )
(("1"
(assert )
nil
nil )
("2"
(hide-all-but
(-1
1))
(("2"
(expand
"polynomial" )
(("2"
(lemma
"sigma_eq_one_arg" )
(("2"
(inst?)
(("2"
(inst
-
"ii-1" )
(("2"
(assert )
(("2"
(split
-)
(("1"
(replaces
-1)
(("1"
(expand
"RD" )
(("1"
(grind)
nil
nil ))
nil ))
nil )
("2"
(hide
2)
(("2"
(skosimp*)
(("2"
(expand
"RD" )
(("2"
(lift-if)
(("2"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil )
("3"
(hide
2)
(("3"
(skosimp*)
(("3"
(expand
"RD" )
(("3"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(replaces
-1
:dir
rl)
(("2"
(rewrite
"sum_polynomial_eq_degree_eval" )
(("2"
(rewrite
"poly_eq_le_degree" )
(("2"
(hide-all-but
(-1
1))
(("2"
(skosimp*)
(("2"
(expand
"+" )
(("2"
(expand
"RD"
+)
(("2"
(lift-if)
(("2"
(ground)
(("2"
(case-replace
"-thisterm+thisterm=0" )
(("1"
(hide
-1)
(("1"
(expand
"ldt"
+)
(("1"
(replaces
-1)
(("1"
(case
"FORALL (kk:nat): kk<=n-m AND n-m-kk > ii-1 IMPLIES poly_divide(g,n)(h,m)(n-m-kk)`quot(ii-1)=0" )
(("1"
(inst
-
"(n-m)-ii" )
(("1"
(assert )
nil
nil ))
nil )
("2"
(hide
2)
(("2"
(induct
"kk" )
(("1"
(assert )
(("1"
(expand
"poly_divide"
+)
(("1"
(expand
"make_divtype"
+)
(("1"
(reveal
"mz" )
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(skeep)
(("2"
(assert )
(("2"
(expand
"poly_divide"
+)
(("2"
(expand
"make_divtype"
+)
(("2"
(reveal
"mz" )
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("3"
(skosimp*)
(("3"
(assert )
nil
nil ))
nil ))
nil ))
nil )
("3"
(skosimp*)
(("3"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(case
"NOT ldt`qdeg = n-m" )
(("1"
(expand
"ldt"
1)
(("1"
(expand
"poly_divide"
+)
(("1"
(expand
"make_divtype"
+)
(("1"
(propax)
nil
nil ))
nil ))
nil ))
nil )
("2"
(reveal
"mz" )
(("2"
(assert )
(("2"
(replaces
-1)
(("2"
(replaces
-1
:dir
rl)
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("3"
(skosimp*)
(("3"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(skosimp*)
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("4" (skosimp*) (("4" (assert ) nil nil )) nil ))
nil ))
nil ))
nil )
("3" (skosimp*) (("3" (assert ) nil nil )) nil ))
nil )
((pred type-eq-decl nil defined_types nil )
(nat_induction formula-decl nil naturalnumbers nil )
(m skolem-const-decl "nat" polynomial_division nil )
(n skolem-const-decl "nat" polynomial_division nil )
(posint_plus_nnint_is_posint application-judgement "posint"
integers nil )
(ii skolem-const-decl "int" polynomial_division nil )
(RD skolem-const-decl "[nat -> real]" polynomial_division nil )
(BB skolem-const-decl "[nat -> real]" polynomial_division nil )
(odd_minus_even_is_odd application-judgement "odd_int" integers
nil )
(expt_plus formula-decl nil exponentiation nil )
(both_sides_times1_imp formula-decl nil extra_real_props nil )
(nzreal nonempty-type-eq-decl nil reals nil )
(x skolem-const-decl "real" polynomial_division nil )
(nzreal_exp application-judgement "nzreal" exponentiation nil )
(nzrat_div_nzrat_is_nzrat application-judgement "nzrat" rationals
nil )
(nat_expt application-judgement "nat" exponentiation nil )
(nat_exp application-judgement "nat" exponentiation nil )
(ldt skolem-const-decl "DivType" polynomial_division nil )
(AA skolem-const-decl "[nat -> real]" polynomial_division nil )
(minus_real_is_real application-judgement "real" reals nil )
(nnint_plus_posint_is_posint application-judgement "posint"
integers nil )
(- const-decl "[numfield -> numfield]" number_fields nil )
(odd_minus_odd_is_even application-judgement "even_int" integers
nil )
(m skolem-const-decl "nat" polynomial_division nil )
(n skolem-const-decl "nat" polynomial_division nil )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(expt def-decl "real" exponentiation nil )
(^ const-decl "real" exponentiation nil )
(* const-decl "[T -> real]" real_fun_ops "reals/" )
(polynomial_n0 formula-decl nil polynomials "reals/" )
(/ const-decl "[numfield, nznum -> numfield]" number_fields nil )
(nznum nonempty-type-eq-decl nil number_fields nil )
(const_fun const-decl "[T -> real]" real_fun_ops "reals/" )
(poly_eq_le_degree formula-decl nil polynomials "reals/" )
(* const-decl "[T -> real]" real_fun_ops "reals/" )
(scal_polynomial formula-decl nil polynomials "reals/" )
(nzreal_div_nzreal_is_nzreal application-judgement "nzreal"
real_types nil )
(real_minus_real_is_real application-judgement "real" reals nil )
(real_div_nzreal_is_real application-judgement "real" reals nil )
(TRUE const-decl "bool" booleans nil )
(id const-decl "(bijective?[T, T])" identity nil )
(bijective? const-decl "bool" functions nil )
(> const-decl "bool" reals nil ) (< const-decl "bool" reals nil )
(IFF const-decl "[bool, bool -> bool]" booleans nil )
(IF const-decl "[boolean, T, T -> T]" if_def nil )
(mul_x_to_n_polynomial formula-decl nil polynomials "reals/" )
(n skolem-const-decl "nat" polynomial_division nil )
(m skolem-const-decl "nat" polynomial_division nil )
(posnat nonempty-type-eq-decl nil integers nil )
(nonneg_int nonempty-type-eq-decl nil integers nil )
(polynomial_rec formula-decl nil polynomials "reals/" )
(sum_polynomial_eq_degree_eval formula-decl nil polynomials
"reals/" )
(+ const-decl "[T -> real]" real_fun_ops "reals/" )
(sigma_scal_right formula-decl nil sigma "reals/" )
(sigma_sum formula-decl nil sigma "reals/" )
(sigma_eq formula-decl nil sigma "reals/" )
(sigma_scal formula-decl nil sigma "reals/" )
(sigma_eq_one_arg formula-decl nil sigma "reals/" )
(minus_odd_is_odd application-judgement "odd_int" integers nil )
(even_times_int_is_even application-judgement "even_int" integers
nil )
(nnint_times_nnint_is_nnint application-judgement "nonneg_int"
integers nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(T_high type-eq-decl nil sigma "reals/" )
(T_low type-eq-decl nil sigma "reals/" )
(OR const-decl "[bool, bool -> bool]" booleans nil )
(sigma_restrict_eq_0 formula-decl nil sigma "reals/" )
(NOT const-decl "[bool -> bool]" booleans nil )
(int_plus_int_is_int application-judgement "int" integers nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(real_times_real_is_real application-judgement "real" reals nil )
(sigma def-decl "real" sigma "reals/" )
(make_divtype const-decl "DivType" polynomial_division nil )
(n skolem-const-decl "nat" polynomial_division nil )
(m skolem-const-decl "nat" polynomial_division nil )
(i skolem-const-decl "nat" polynomial_division nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(mult_divides1 application-judgement "(divides(n))" divides nil )
(mult_divides2 application-judgement "(divides(m))" divides nil )
(int_minus_int_is_int application-judgement "int" integers nil )
(real_plus_real_is_real application-judgement "real" reals nil )
(number nonempty-type-decl nil numbers nil )
(boolean nonempty-type-decl nil booleans nil )
(number_field_pred const-decl "[number -> boolean]" number_fields
nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(real nonempty-type-from-decl nil reals nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(rational nonempty-type-from-decl nil rationals nil )
(integer_pred const-decl "[rational -> boolean]" integers nil )
(int nonempty-type-eq-decl nil integers nil )
(bool nonempty-type-eq-decl nil booleans nil )
(>= const-decl "bool" reals nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(sequence type-eq-decl nil sequences nil )
(IMPLIES const-decl "[bool, bool -> bool]" booleans nil )
(AND const-decl "[bool, bool -> bool]" booleans nil )
(/= const-decl "boolean" notequal nil )
(<= const-decl "bool" reals nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(- const-decl "[numfield, numfield -> numfield]" number_fields nil )
(DivType type-eq-decl nil polynomial_division nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(polynomial const-decl "[real -> real]" polynomials "reals/" )
(+ const-decl "[numfield, numfield -> numfield]" number_fields nil )
(* const-decl "[numfield, numfield -> numfield]" number_fields nil )
(poly_divide def-decl "DivType" polynomial_division nil ))
shostak))
(poly_divide_struct 0
(poly_divide_struct-1 nil 3582556619
("" (skeep)
(("" (skoletin 2)
(("" (flatten)
(("" (case "m = 0" )
(("1" (assert )
(("1" (hide 2)
(("1" (expand "poly_divide" )
(("1" (assert )
(("1" (replaces -1)
(("1" (assert )
(("1" (expand "make_divtype" )
(("1" (replaces -1) (("1" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (hide 2)
(("2" (assert )
(("2" (case "m<=n" )
(("1" (expand "poly_divide" )
(("1" (expand "make_divtype" )
(("1" (replaces -2) (("1" (assert ) nil nil )) nil ))
nil ))
nil )
("2" (assert )
(("2" (expand "poly_divide" )
(("2" (expand "make_divtype" )
(("2" (replaces -1) (("2" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((nat nonempty-type-eq-decl nil naturalnumbers nil )
(>= const-decl "bool" reals nil )
(int nonempty-type-eq-decl nil integers nil )
(integer_pred const-decl "[rational -> boolean]" integers nil )
(rational nonempty-type-from-decl nil rationals nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(real nonempty-type-from-decl nil reals nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(number_field_pred const-decl "[number -> boolean]" number_fields
nil )
(/= const-decl "boolean" notequal nil )
(number nonempty-type-decl nil numbers nil )
(NOT const-decl "[bool -> bool]" booleans nil )
(bool nonempty-type-eq-decl nil booleans nil )
(boolean nonempty-type-decl nil booleans nil )
(IFF const-decl "[bool, bool -> bool]" booleans nil )
(DivType type-eq-decl nil polynomial_division nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(poly_divide def-decl "DivType" polynomial_division nil )
(< const-decl "bool" reals nil ) (> const-decl "bool" reals nil )
(AND const-decl "[bool, bool -> bool]" booleans nil )
(OR const-decl "[bool, bool -> bool]" booleans nil )
(int_minus_int_is_int application-judgement "int" integers nil )
(nzreal_div_nzreal_is_nzreal application-judgement "nzreal"
real_types nil )
(make_divtype const-decl "DivType" polynomial_division nil )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(real_div_nzreal_is_real application-judgement "real" reals nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(<= const-decl "bool" reals nil ))
shostak))
(poly_divide_lengths 0
(poly_divide_lengths-1 nil 3583064979
("" (skeep)
(("" (skoletin 2)
(("" (expand "poly_divide" :assert ? none)
(("" (expand "make_divtype" )
(("" (lift-if)
(("" (assert )
(("" (split -)
(("1" (ground) nil nil )
("2" (flatten)
(("2" (split -)
(("1" (flatten)
(("1" (replace -1) (("1" (assert ) nil nil )) nil ))
nil )
("2" (flatten)
(("2" (replaces -1)
(("2" (assert )
(("2" (split -)
(("1" (flatten)
(("1"
(replaces -1)
(("1" (assert ) nil nil ))
nil ))
nil )
("2" (flatten) (("2" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((nat nonempty-type-eq-decl nil naturalnumbers nil )
(>= const-decl "bool" reals nil )
(int nonempty-type-eq-decl nil integers nil )
(integer_pred const-decl "[rational -> boolean]" integers nil )
(rational nonempty-type-from-decl nil rationals nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(real nonempty-type-from-decl nil reals nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(number_field_pred const-decl "[number -> boolean]" number_fields
nil )
(/= const-decl "boolean" notequal nil )
(number nonempty-type-decl nil numbers nil )
(NOT const-decl "[bool -> bool]" booleans nil )
(bool nonempty-type-eq-decl nil booleans nil )
(boolean nonempty-type-decl nil booleans nil )
(int_minus_int_is_int application-judgement "int" integers nil )
(IFF const-decl "[bool, bool -> bool]" booleans nil )
(DivType type-eq-decl nil polynomial_division nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(poly_divide def-decl "DivType" polynomial_division nil )
(+ const-decl "[numfield, numfield -> numfield]" number_fields nil )
(> const-decl "bool" reals nil )
(- const-decl "[numfield, numfield -> numfield]" number_fields nil )
(<= const-decl "bool" reals nil )
(IF const-decl "[boolean, T, T -> T]" if_def nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(AND const-decl "[bool, bool -> bool]" booleans nil )
(real_div_nzreal_is_real application-judgement "real" reals nil )
(make_divtype const-decl "DivType" polynomial_division nil )
(real_times_real_is_real application-judgement "real" reals nil )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(int_plus_int_is_int application-judgement "int" integers nil )
(posint_plus_nnint_is_posint application-judgement "posint"
integers nil )
(nzreal_div_nzreal_is_nzreal application-judgement "nzreal"
real_types nil ))
shostak)))
Messung V0.5 in Prozent C=100 H=100 G=100
¤ Dauer der Verarbeitung: 0.105 Sekunden
(vorverarbeitet am 2026-04-29)
¤
*© Formatika GbR, Deutschland