(number_sign_changes
(number_sign_changes_TCC1 0
(number_sign_changes_TCC1-1 nil 3583752897 ("" (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 )
(int_minus_int_is_int application-judgement "int" integers nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil ))
nil ))
(number_sign_changes_TCC2 0
(number_sign_changes_TCC2-1 nil 3583752897
("" (termination-tcc) nil nil ) nil nil ))
(sign_changes_TCC1 0
(sign_changes_TCC1-1 nil 3623871525 ("" (subtype-tcc) nil nil ) nil
nil ))
(sign_changes_TCC2 0
(sign_changes_TCC2-1 nil 3623871525 ("" (subtype-tcc) nil nil )
((posint_plus_nnint_is_posint application-judgement "posint"
integers nil ))
nil ))
(sign_changes_TCC3 0
(sign_changes_TCC3-1 nil 3623871525 ("" (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 "bool" reals nil )
(AND const-decl "[bool, bool -> bool]" booleans nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(+ const-decl "[numfield, numfield -> numfield]" number_fields nil )
(subrange type-eq-decl nil integers nil )
(posint_plus_nnint_is_posint application-judgement "posint"
integers 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 )
(int_minus_int_is_int application-judgement "int" integers nil ))
nil ))
(sign_changes_TCC4 0
(sign_changes_TCC4-1 nil 3623871525 ("" (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 "bool" reals nil )
(AND const-decl "[bool, bool -> bool]" booleans nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(+ const-decl "[numfield, numfield -> numfield]" number_fields nil )
(subrange type-eq-decl nil integers 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 )
(posint_plus_nnint_is_posint application-judgement "posint"
integers nil )
(/= const-decl "boolean" notequal nil )
(sign_ext const-decl
"{sig: real | (sig = -1 OR sig = 1 OR sig = 0) AND sig * x = abs(x)}"
sign "reals/" ))
nil ))
(sign_changes_TCC5 0
(sign_changes_TCC5-1 nil 3623871525
("" (skeep) (("" (assert ) nil nil )) nil )
((int_minus_int_is_int application-judgement "int" integers nil )
(int_plus_int_is_int application-judgement "int" integers nil )
(posint_plus_nnint_is_posint application-judgement "posint"
integers nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(nnint_plus_posint_is_posint application-judgement "posint"
integers nil ))
nil ))
(sign_changes_TCC6 0
(sign_changes_TCC6-1 nil 3623871525
("" (skeep)
(("" (typepred "v(a, n, i + 1, num + 1, a(i))" )
(("1" (assert )
(("1" (hide 6)
(("1" (expand "number_sign_changes" +)
(("1" (propax) nil nil )) nil ))
nil ))
nil )
("2" (assert ) nil nil ))
nil ))
nil )
((- const-decl "[numfield, numfield -> numfield]" number_fields nil )
(< const-decl "bool" reals nil )
(subrange type-eq-decl nil integers nil )
(<= const-decl "bool" reals nil )
(number_sign_changes def-decl "NSC" number_sign_changes nil )
(NSC type-eq-decl nil number_sign_changes 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 )
(+ const-decl "[numfield, numfield -> numfield]" number_fields nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(number_field_pred const-decl "[number -> boolean]" number_fields
nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(number nonempty-type-decl nil numbers nil )
(AND const-decl "[bool, bool -> bool]" booleans nil )
(IMPLIES const-decl "[bool, bool -> bool]" booleans nil )
(NOT const-decl "[bool -> bool]" booleans nil )
(bool nonempty-type-eq-decl nil booleans nil )
(boolean nonempty-type-decl nil booleans nil )
(nnint_plus_posint_is_posint application-judgement "posint"
integers nil )
(real_le_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 ))
(sign_changes_TCC7 0
(sign_changes_TCC7-1 nil 3623871525 ("" (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 "bool" reals nil )
(AND const-decl "[bool, bool -> bool]" booleans nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(+ const-decl "[numfield, numfield -> numfield]" number_fields nil )
(subrange type-eq-decl nil integers nil )
(int_minus_int_is_int application-judgement "int" integers nil )
(posint_plus_nnint_is_posint application-judgement "posint"
integers nil )
(odd_minus_odd_is_even application-judgement "even_int" integers
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 )
(/= const-decl "boolean" notequal nil )
(sign_ext const-decl
"{sig: real | (sig = -1 OR sig = 1 OR sig = 0) AND sig * x = abs(x)}"
sign "reals/" ))
nil ))
(sign_changes_TCC8 0
(sign_changes_TCC8-1 nil 3623871525 ("" (subtype-tcc) nil nil )
((/= const-decl "boolean" notequal nil )
(posint_plus_nnint_is_posint application-judgement "posint"
integers nil ))
nil ))
(sign_changes_TCC9 0
(sign_changes_TCC9-1 nil 3623871525
("" (skeep)
(("" (typepred "v(a, n, i + 1, num, a(i))" )
(("1" (assert )
(("1" (hide 5)
(("1" (expand "number_sign_changes" +)
(("1" (assert )
(("1" (lift-if)
(("1" (assert )
(("1" (split)
(("1" (flatten) (("1" (assert ) nil nil )) nil )
("2" (propax) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (assert ) nil nil ))
nil ))
nil )
((- const-decl "[numfield, numfield -> numfield]" number_fields nil )
(< const-decl "bool" reals nil )
(subrange type-eq-decl nil integers nil )
(+ const-decl "[numfield, numfield -> numfield]" number_fields nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(<= const-decl "bool" reals nil )
(number_sign_changes def-decl "NSC" number_sign_changes nil )
(NSC type-eq-decl nil number_sign_changes 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 "[T, T -> boolean]" equalities nil )
(number nonempty-type-decl nil numbers nil )
(AND const-decl "[bool, bool -> bool]" booleans nil )
(IMPLIES const-decl "[bool, bool -> bool]" booleans nil )
(NOT const-decl "[bool -> bool]" booleans nil )
(bool nonempty-type-eq-decl nil booleans nil )
(boolean nonempty-type-decl nil booleans nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(nnint_plus_posint_is_posint application-judgement "posint"
integers nil )
(posint_plus_nnint_is_posint application-judgement "posint"
integers nil )
(int_minus_int_is_int application-judgement "int" integers nil ))
nil ))
(sign_changes_TCC10 0
(sign_changes_TCC10-1 nil 3623871525 ("" (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 "bool" reals nil )
(AND const-decl "[bool, bool -> bool]" booleans nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(+ const-decl "[numfield, numfield -> numfield]" number_fields nil )
(subrange type-eq-decl nil integers nil )
(int_minus_int_is_int application-judgement "int" integers nil )
(posint_plus_nnint_is_posint application-judgement "posint"
integers nil )
(odd_minus_odd_is_even application-judgement "even_int" integers
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 )
(/= const-decl "boolean" notequal nil )
(sign_ext const-decl
"{sig: real | (sig = -1 OR sig = 1 OR sig = 0) AND sig * x = abs(x)}"
sign "reals/" ))
nil ))
(sign_changes_TCC11 0
(sign_changes_TCC11-1 nil 3623871525 ("" (subtype-tcc) nil nil )
((/= const-decl "boolean" notequal nil )
(posint_plus_nnint_is_posint application-judgement "posint"
integers nil ))
nil ))
(sign_changes_TCC12 0
(sign_changes_TCC12-1 nil 3623872259
("" (skeep)
(("" (typepred "v(a, n, i + 1, num,lastnz)" )
(("1" (assert )
(("1" (hide 4)
(("1" (expand "number_sign_changes" +)
(("1" (propax) nil nil )) nil ))
nil ))
nil )
("2" (assert ) nil nil ))
nil ))
nil )
((- const-decl "[numfield, numfield -> numfield]" number_fields nil )
(< const-decl "bool" reals nil )
(subrange type-eq-decl nil integers nil )
(+ const-decl "[numfield, numfield -> numfield]" number_fields nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(<= const-decl "bool" reals nil )
(number_sign_changes def-decl "NSC" number_sign_changes nil )
(NSC type-eq-decl nil number_sign_changes 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 "[T, T -> boolean]" equalities nil )
(number nonempty-type-decl nil numbers nil )
(AND const-decl "[bool, bool -> bool]" booleans nil )
(IMPLIES const-decl "[bool, bool -> bool]" booleans nil )
(NOT const-decl "[bool -> bool]" booleans nil )
(bool nonempty-type-eq-decl nil booleans nil )
(boolean nonempty-type-decl nil booleans nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(nnint_plus_posint_is_posint application-judgement "posint"
integers nil )
(posint_plus_nnint_is_posint application-judgement "posint"
integers nil )
(int_minus_int_is_int application-judgement "int" integers nil ))
nil ))
(num_sign_changes_def_TCC1 0
(num_sign_changes_def_TCC1-1 nil 3623929782
("" (subtype-tcc) nil nil ) nil nil ))
(num_sign_changes_def 0
(num_sign_changes_def-1 nil 3623929808
("" (skeep)
(("" (typepred "sign_changes(a, i, 1, 0, a(0))" )
(("" (assert )
(("" (hide 2)
(("" (expand "number_sign_changes" ) (("" (propax) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((sign_changes def-decl "{m: nat |
LET nsci = number_sign_changes(a, i - 1),
nscn = number_sign_changes(a, n)
IN num = nsci`num AND lastnz = nsci`lastnz IMPLIES m = nscn`num}"
number_sign_changes nil )
(- const-decl "[numfield, numfield -> numfield]" number_fields nil )
(subrange type-eq-decl nil integers nil )
(+ const-decl "[numfield, numfield -> numfield]" number_fields nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(<= const-decl "bool" reals nil )
(number_sign_changes def-decl "NSC" number_sign_changes nil )
(NSC type-eq-decl nil number_sign_changes 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 "[T, T -> boolean]" equalities nil )
(number nonempty-type-decl nil numbers nil )
(AND const-decl "[bool, bool -> bool]" booleans nil )
(IMPLIES const-decl "[bool, bool -> bool]" booleans nil )
(NOT const-decl "[bool -> bool]" booleans nil )
(bool nonempty-type-eq-decl nil booleans nil )
(boolean nonempty-type-decl nil booleans nil ))
shostak))
(number_sign_changes_lastnz_nonzero 0
(number_sign_changes_lastnz_nonzero-1 nil 3587474296
("" (induct "i" )
(("1" (skeep) (("1" (grind) nil nil )) nil )
("2" (skolem 1 "jj" )
(("2" (flatten)
(("2" (skeep)
(("2" (inst - "a" )
(("2" (flatten)
(("2" (assert )
(("2" (split +)
(("1" (flatten)
(("1" (expand "number_sign_changes" -1)
(("1" (lift-if)
(("1" (assert )
(("1" (split -)
(("1" (propax) nil nil )
("2" (flatten)
(("2"
(skeep)
(("2"
(split -)
(("1" (propax) nil nil )
("2"
(flatten)
(("2"
(assert )
(("2"
(inst - "j" )
(("2" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (flatten)
(("2" (expand "number_sign_changes" 1)
(("2" (lift-if)
(("2" (lift-if)
(("2" (assert )
(("2" (split +)
(("1"
(flatten)
(("1"
(assert )
(("1"
(skeep)
(("1"
(inst - "j" )
(("1" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil )
("2"
(flatten)
(("2"
(inst-cp - "1+jj" )
(("2"
(assert )
(("2"
(assert )
(("2"
(skeep)
(("2"
(inst - "j" )
(("2" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((posint_plus_nnint_is_posint application-judgement "posint"
integers nil )
(+ const-decl "[numfield, numfield -> numfield]" number_fields nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(nnint_plus_posint_is_posint application-judgement "posint"
integers 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 )
(NOT const-decl "[bool -> bool]" booleans nil )
(nat_induction formula-decl nil naturalnumbers nil )
(<= const-decl "bool" reals nil )
(IMPLIES const-decl "[bool, bool -> bool]" booleans nil )
(number_sign_changes def-decl "NSC" number_sign_changes nil )
(NSC type-eq-decl nil number_sign_changes nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(IFF const-decl "[bool, bool -> bool]" booleans nil )
(pred type-eq-decl nil defined_types nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(>= const-decl "bool" reals nil )
(bool nonempty-type-eq-decl nil 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 )
(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))
(number_sign_changes_lastnz 0
(number_sign_changes_lastnz-1 nil 3617963493
("" (skeep)
(("" (expand "number_sign_changes" )
(("" (lift-if) (("" (lift-if) (("" (ground) nil nil )) nil )) nil ))
nil ))
nil )
((number_sign_changes def-decl "NSC" number_sign_changes nil ))
shostak))
(number_sign_changes_eq 0
(number_sign_changes_eq-1 nil 3618670663
("" (induct "i" )
(("1" (assert ) nil nil ) ("2" (grind) nil nil )
("3" (skolem 1 "jj" )
(("3" (flatten)
(("3" (skeep)
(("3" (inst - "a" "b" )
(("3" (assert )
(("3" (split -)
(("1" (flatten)
(("1" (case "a(1+jj) /= 0 IFF b(1+jj) /= 0" )
(("1" (expand "number_sign_changes" +)
(("1" (replace -1)
(("1" (lift-if)
(("1" (assert )
(("1" (lift-if)
(("1"
(assert )
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(assert )
(("1"
(lift-if)
(("1"
(assert )
(("1"
(replace -3)
(("1"
(inst-cp -4 "1+jj" )
(("1"
(assert )
(("1"
(ground)
(("1"
(expand
"sign_ext"
-3)
(("1"
(lift-if)
(("1"
(ground)
nil
nil ))
nil ))
nil )
("2"
(expand
"sign_ext"
-4)
(("2"
(lift-if)
(("2"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (inst - "1+jj" )
(("2" (expand "sign_ext" -3)
(("2" (lift-if)
(("2" (assert )
(("2" (lift-if)
(("2"
(assert )
(("2"
(lift-if)
(("2"
(assert )
(("2"
(lift-if)
(("2"
(assert )
(("2" (ground) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (skeep) (("2" (inst - "j" ) nil nil )) nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((nnint_plus_posint_is_posint application-judgement "posint"
integers nil )
(+ const-decl "[numfield, numfield -> numfield]" number_fields nil )
(/= const-decl "boolean" notequal nil )
(IFF const-decl "[bool, bool -> bool]" booleans nil )
(posint_plus_nnint_is_posint application-judgement "posint"
integers nil )
(real_lt_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 )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(minus_odd_is_odd application-judgement "odd_int" integers nil )
(nat_induction formula-decl nil naturalnumbers nil )
(number_sign_changes def-decl "NSC" number_sign_changes nil )
(NSC type-eq-decl nil number_sign_changes nil )
(sign_ext const-decl
"{sig: real | (sig = -1 OR sig = 1 OR sig = 0) AND sig * x = abs(x)}"
sign "reals/" )
(abs const-decl "{n: nonneg_real | n >= m AND n >= -m}" real_defs
nil )
(nonneg_real nonempty-type-eq-decl nil real_types nil )
(* const-decl "[numfield, numfield -> numfield]" number_fields nil )
(- const-decl "[numfield -> numfield]" number_fields nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(OR const-decl "[bool, bool -> bool]" booleans nil )
(AND const-decl "[bool, bool -> bool]" booleans nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(upto nonempty-type-eq-decl nil naturalnumbers nil )
(<= const-decl "bool" reals nil )
(IMPLIES const-decl "[bool, bool -> bool]" booleans nil )
(pred type-eq-decl nil defined_types nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(>= const-decl "bool" reals nil )
(bool nonempty-type-eq-decl nil 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 )
(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 ))
nil ))
(number_sign_changes_easy 0
(number_sign_changes_easy-1 nil 3609153569 ("" (grind) nil nil )
((minus_odd_is_odd application-judgement "odd_int" integers nil )
(int_exp application-judgement "int" exponentiation nil )
(nzreal_exp application-judgement "nzreal" exponentiation nil )
(nzreal_expt application-judgement "nzreal" exponentiation nil )
(int_expt application-judgement "int" exponentiation nil )
(nzrat_div_nzrat_is_nzrat application-judgement "nzrat" rationals
nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(nzint_times_nzint_is_nzint application-judgement "nzint" integers
nil )
(mult_divides1 application-judgement "(divides(n))" divides nil )
(mult_divides2 application-judgement "(divides(m))" divides nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(nnint_plus_posint_is_posint application-judgement "posint"
integers nil )
(sign_ext const-decl
"{sig: real | (sig = -1 OR sig = 1 OR sig = 0) AND sig * x = abs(x)}"
sign "reals/" )
(number_sign_changes def-decl "NSC" number_sign_changes nil )
(testseqaa1 const-decl "real" number_sign_changes nil )
(^ const-decl "real" exponentiation nil )
(expt def-decl "real" exponentiation nil )
(testseqaa2 const-decl "sequence[real]" number_sign_changes nil ))
shostak))
(number_sign_changes_test1 0
(number_sign_changes_test1-1 nil 3583753506
("" (induct "i" )
(("1" (grind) nil nil )
("2" (skeep)
(("2" (assert )
(("2" (expand "number_sign_changes" +)
(("2" (assert )
(("2" (lift-if)
(("2" (split +)
(("1" (flatten)
(("1" (replace -1)
(("1" (assert )
(("1" (expand "testseqaa1" )
(("1" (propax) nil nil )) nil ))
nil ))
nil ))
nil )
("2" (flatten)
(("2" (replaces -1)
(("2" (hide-all-but 1)
(("2" (split)
(("1" (grind) nil nil )
("2" (expand "testseqaa1" )
(("2" (expand "^" )
(("2" (expand "expt" - 1)
(("2" (grind :exclude "expt" ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(sign_ext const-decl
"{sig: real | (sig = -1 OR sig = 1 OR sig = 0) AND sig * x = abs(x)}"
sign "reals/" )
(int_minus_int_is_int application-judgement "int" integers nil )
(mult_divides2 application-judgement "(divides(m))" divides nil )
(mult_divides1 application-judgement "(divides(n))" divides nil )
(nzint_times_nzint_is_nzint application-judgement "nzint" integers
nil )
(posint_plus_nnint_is_posint application-judgement "posint"
integers nil )
(nnint_plus_posint_is_posint application-judgement "posint"
integers nil )
(expt def-decl "real" exponentiation nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(nzrat_div_nzrat_is_nzrat application-judgement "nzrat" rationals
nil )
(int_expt application-judgement "int" exponentiation nil )
(nzreal_expt application-judgement "nzreal" exponentiation nil )
(nzreal_exp application-judgement "nzreal" exponentiation nil )
(int_exp application-judgement "int" exponentiation nil )
(nat_induction formula-decl nil naturalnumbers nil )
(- const-decl "[numfield -> numfield]" number_fields nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(^ const-decl "real" exponentiation nil )
(/= const-decl "boolean" notequal nil )
(OR const-decl "[bool, bool -> bool]" booleans nil )
(testseqaa1 const-decl "real" number_sign_changes nil )
(number_sign_changes def-decl "NSC" number_sign_changes nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(NSC type-eq-decl nil number_sign_changes nil )
(pred type-eq-decl nil defined_types nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(>= const-decl "bool" reals nil )
(bool nonempty-type-eq-decl nil 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 )
(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 )
(minus_odd_is_odd application-judgement "odd_int" integers nil ))
shostak))
(number_sign_changes_test2 0
(number_sign_changes_test2-1 nil 3583754297 ("" (grind) nil nil )
((minus_odd_is_odd application-judgement "odd_int" integers nil )
(int_exp application-judgement "int" exponentiation nil )
(nzreal_exp application-judgement "nzreal" exponentiation nil )
(nzreal_expt application-judgement "nzreal" exponentiation nil )
(int_expt application-judgement "int" exponentiation nil )
(nzrat_div_nzrat_is_nzrat application-judgement "nzrat" rationals
nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(nzint_times_nzint_is_nzint application-judgement "nzint" integers
nil )
(mult_divides1 application-judgement "(divides(n))" divides nil )
(mult_divides2 application-judgement "(divides(m))" divides nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(nnint_plus_posint_is_posint application-judgement "posint"
integers nil )
(sign_ext const-decl
"{sig: real | (sig = -1 OR sig = 1 OR sig = 0) AND sig * x = abs(x)}"
sign "reals/" )
(number_sign_changes def-decl "NSC" number_sign_changes nil )
(testseqaa1 const-decl "real" number_sign_changes nil )
(^ const-decl "real" exponentiation nil )
(expt def-decl "real" exponentiation nil )
(testseqaa2 const-decl "sequence[real]" number_sign_changes nil ))
shostak))
(number_sign_changes_test3 0
(number_sign_changes_test3-1 nil 3583754329 ("" (grind) nil nil )
((minus_odd_is_odd application-judgement "odd_int" integers nil )
(int_exp application-judgement "int" exponentiation nil )
(nzreal_exp application-judgement "nzreal" exponentiation nil )
(nzreal_expt application-judgement "nzreal" exponentiation nil )
(int_expt application-judgement "int" exponentiation nil )
(nzrat_div_nzrat_is_nzrat application-judgement "nzrat" rationals
nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(nzint_times_nzint_is_nzint application-judgement "nzint" integers
nil )
(mult_divides1 application-judgement "(divides(n))" divides nil )
(mult_divides2 application-judgement "(divides(m))" divides nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(nnint_plus_posint_is_posint application-judgement "posint"
integers nil )
(sign_ext const-decl
"{sig: real | (sig = -1 OR sig = 1 OR sig = 0) AND sig * x = abs(x)}"
sign "reals/" )
(number_sign_changes def-decl "NSC" number_sign_changes nil )
(testseqaa1 const-decl "real" number_sign_changes nil )
(^ const-decl "real" exponentiation nil )
(expt def-decl "real" exponentiation nil )
(testseqaa2 const-decl "sequence[real]" number_sign_changes nil ))
shostak))
(number_sign_changes_test4 0
(number_sign_changes_test4-1 nil 3583754381 ("" (grind) nil nil )
((minus_odd_is_odd application-judgement "odd_int" integers nil )
(int_exp application-judgement "int" exponentiation nil )
(nzreal_exp application-judgement "nzreal" exponentiation nil )
(nzreal_expt application-judgement "nzreal" exponentiation nil )
(int_expt application-judgement "int" exponentiation nil )
(nzrat_div_nzrat_is_nzrat application-judgement "nzrat" rationals
nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(nzint_times_nzint_is_nzint application-judgement "nzint" integers
nil )
(mult_divides1 application-judgement "(divides(n))" divides nil )
(mult_divides2 application-judgement "(divides(m))" divides nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(nnint_plus_posint_is_posint application-judgement "posint"
integers nil )
(sign_ext const-decl
"{sig: real | (sig = -1 OR sig = 1 OR sig = 0) AND sig * x = abs(x)}"
sign "reals/" )
(number_sign_changes def-decl "NSC" number_sign_changes nil )
(testseqaa1 const-decl "real" number_sign_changes nil )
(^ const-decl "real" exponentiation nil )
(expt def-decl "real" exponentiation nil )
(testseqaa3 const-decl "sequence[real]" number_sign_changes nil )
(testseqaa2 const-decl "sequence[real]" number_sign_changes nil ))
shostak))
(number_sign_changes_test5 0
(number_sign_changes_test5-1 nil 3583754416 ("" (grind) nil nil )
((minus_odd_is_odd application-judgement "odd_int" integers nil )
(int_exp application-judgement "int" exponentiation nil )
(nzreal_exp application-judgement "nzreal" exponentiation nil )
(nzreal_expt application-judgement "nzreal" exponentiation nil )
(int_expt application-judgement "int" exponentiation nil )
(nzrat_div_nzrat_is_nzrat application-judgement "nzrat" rationals
nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(nzint_times_nzint_is_nzint application-judgement "nzint" integers
nil )
(mult_divides1 application-judgement "(divides(n))" divides nil )
(mult_divides2 application-judgement "(divides(m))" divides nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(nnint_plus_posint_is_posint application-judgement "posint"
integers nil )
(sign_ext const-decl
"{sig: real | (sig = -1 OR sig = 1 OR sig = 0) AND sig * x = abs(x)}"
sign "reals/" )
(number_sign_changes def-decl "NSC" number_sign_changes nil )
(testseqaa1 const-decl "real" number_sign_changes nil )
(^ const-decl "real" exponentiation nil )
(expt def-decl "real" exponentiation nil )
(testseqaa3 const-decl "sequence[real]" number_sign_changes nil )
(testseqaa2 const-decl "sequence[real]" number_sign_changes nil ))
shostak))
(number_sign_changes_test6 0
(number_sign_changes_test6-1 nil 3583754487 ("" (grind) nil nil )
((int_exp application-judgement "int" exponentiation nil )
(nzreal_exp application-judgement "nzreal" exponentiation nil )
(minus_odd_is_odd application-judgement "odd_int" integers nil )
(nzreal_expt application-judgement "nzreal" exponentiation nil )
(int_expt application-judgement "int" exponentiation nil )
(nzrat_div_nzrat_is_nzrat application-judgement "nzrat" rationals
nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(nzint_times_nzint_is_nzint application-judgement "nzint" integers
nil )
(mult_divides1 application-judgement "(divides(n))" divides nil )
(mult_divides2 application-judgement "(divides(m))" divides nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(nnint_plus_posint_is_posint application-judgement "posint"
integers nil )
(sign_ext const-decl
"{sig: real | (sig = -1 OR sig = 1 OR sig = 0) AND sig * x = abs(x)}"
sign "reals/" )
(number_sign_changes def-decl "NSC" number_sign_changes nil )
(testseqaa1 const-decl "real" number_sign_changes nil )
(^ const-decl "real" exponentiation nil )
(expt def-decl "real" exponentiation nil )
(testseqaa4 const-decl "sequence[real]" number_sign_changes nil ))
shostak))
(number_sign_changes_test7 0
(number_sign_changes_test7-1 nil 3583754626 ("" (grind) nil nil )
((int_exp application-judgement "int" exponentiation nil )
(nzreal_exp application-judgement "nzreal" exponentiation nil )
(minus_odd_is_odd application-judgement "odd_int" integers nil )
(nzreal_expt application-judgement "nzreal" exponentiation nil )
(int_expt application-judgement "int" exponentiation nil )
(nzrat_div_nzrat_is_nzrat application-judgement "nzrat" rationals
nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(nzint_times_nzint_is_nzint application-judgement "nzint" integers
nil )
(mult_divides1 application-judgement "(divides(n))" divides nil )
(mult_divides2 application-judgement "(divides(m))" divides nil )
(minus_nzint_is_nzint application-judgement "nzint" integers nil )
(minus_even_is_even application-judgement "even_int" integers nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(nnint_plus_posint_is_posint application-judgement "posint"
integers nil )
(sign_ext const-decl
"{sig: real | (sig = -1 OR sig = 1 OR sig = 0) AND sig * x = abs(x)}"
sign "reals/" )
(number_sign_changes def-decl "NSC" number_sign_changes nil )
(testseqaa5 const-decl "real" number_sign_changes nil )
(^ const-decl "real" exponentiation nil )
(expt def-decl "real" exponentiation nil ))
shostak))
(nsc_regular_swap_TCC1 0
(nsc_regular_swap_TCC1-1 nil 3589123618 ("" (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 )
(int_minus_int_is_int application-judgement "int" integers nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(posint_plus_nnint_is_posint application-judgement "posint"
integers 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 )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(/= const-decl "boolean" notequal nil ))
nil ))
(nsc_regular_swap 0
(nsc_regular_swap-2 nil 3589189259
("" (induct "d" )
(("1" (assert ) nil nil )
("2" (skeep)
(("2" (assert )
(("2" (case "NOT k = 0" )
(("1" (assert ) nil nil )
("2" (replaces -1)
(("2" (expand "number_sign_changes" +)
(("2" (propax) nil nil )) nil ))
nil ))
nil ))
nil ))
nil )
("3" (skolem 1 "dd" )
(("3" (flatten)
(("3" (skeep)
(("3" (case "NOT k = dd+1" )
(("1" (inst - "a" "b" "k" )
(("1" (assert )
(("1" (replace -3)
(("1" (replace -5) (("1" (propax) nil nil )) nil ))
nil ))
nil ))
nil )
("2" (assert )
(("2" (replace -1)
(("2" (assert )
(("2" (label "abnz" -6)
(("2" (label "abeq" -5)
(("2" (hide -3)
(("2" (invoke (case "NOT %1" ) (! 1 1))
(("1" (hide 2)
(("1" (expand "number_sign_changes" +)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(assert )
(("1"
(ground)
(("1"
(expand
"sign_ext"
"abeq" )
(("1"
(lift-if)
(("1"
(ground)
nil
nil ))
nil ))
nil )
("2"
(expand
"sign_ext"
"abeq" )
(("2"
(lift-if)
(("2"
(ground)
nil
nil ))
nil ))
nil )
("3"
(copy "abnz" )
(("3"
(inst - "dd" )
(("3"
(assert )
(("3"
(flatten)
(("3"
(assert )
(("3"
(expand
"number_sign_changes"
+)
(("3"
(lift-if)
(("3"
(case
"sign_ext(a(dd)) = sign_ext(b(dd))" )
(("1"
(assert )
nil
nil )
("2"
(hide
4)
(("2"
(assert )
(("2"
(inst
-7
"dd" )
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("4"
(expand
"sign_ext"
"abeq" )
(("4"
(lift-if)
(("4"
(ground)
nil
nil ))
nil ))
nil )
("5"
(copy "abnz" )
(("5"
(inst - "dd" )
(("5"
(assert )
(("5"
(flatten)
(("5"
(expand
"number_sign_changes"
-2)
(("5"
(assert )
(("5"
(lift-if)
(("5"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("6"
(expand
"sign_ext"
"abeq" )
(("6"
(lift-if)
(("6"
(ground)
nil
nil ))
nil ))
nil )
("7"
(replace -1)
(("7"
(expand
"sign_ext"
-2
1)
(("7"
(copy
"abnz" )
(("7"
(inst
-
"dd" )
(("7"
(assert )
(("7"
(flatten)
(("7"
(expand
"number_sign_changes"
-2)
(("7"
(assert )
(("7"
(lift-if)
(("7"
(expand
"sign_ext"
-2)
(("7"
(lift-if)
(("7"
(lift-if)
(("7"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("8"
(expand
"sign_ext"
"abeq" )
(("8"
(lift-if)
(("8"
(ground)
nil
nil ))
nil ))
nil )
("9"
(copy "abnz" )
(("9"
(inst - "dd" )
(("9"
(assert )
(("9"
(flatten)
(("9"
(expand
"number_sign_changes"
-4)
(("9"
(assert )
(("9"
(lift-if)
(("9"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("10"
(expand
"sign_ext"
"abeq" )
(("10"
(lift-if)
(("10"
(ground)
nil
nil ))
nil ))
nil )
("11"
(copy "abnz" )
(("11"
(inst - "dd" )
(("11"
(assert )
(("11"
(flatten)
(("11"
(assert )
(("11"
(replace
-3)
(("11"
(expand
"sign_ext"
-4)
(("11"
(lift-if)
(("11"
(assert )
(("11"
(ground)
(("11"
(expand
"number_sign_changes"
(1
2))
(("11"
(assert )
(("11"
(lift-if)
(("11"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (assert )
(("2"
(invoke (name "SQUAB" "%1" ) (! 1 2 2))
(("2"
(replace -1)
(("2"
(copy "abnz" )
(("2"
(inst - "dd" )
(("2"
(assert )
(("2"
(flatten)
(("2"
(label "SQUABname" -1)
(("2"
(hide "SQUABname" )
(("2"
(case
"a(1+dd)=0 OR b(1+dd)=0 OR sign_ext(a(1+dd))=0 OR sign_ext(b(1+dd))=0" )
(("1"
(case
"NOT (a(1+dd)=0 AND b(1+dd)=0 AND sign_ext(a(1+dd))=0 AND sign_ext(b(1+dd))=0)" )
(("1"
(hide-all-but
(-1 "abeq" 1))
(("1"
(expand "sign_ext" )
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide -2)
(("2"
(flatten)
(("2"
(assert )
(("2"
(case
"sign_ext(a(dd))/=sign_ext(b(dd))" )
(("1"
(flatten)
(("1"
(copy -8)
(("1"
(inst
-
"dd" )
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil )
("2"
(flatten)
(("2"
(assert )
(("2"
(expand
"number_sign_changes"
+)
(("2"
(inst
-
"a"
"b"
"dd" )
(("2"
(assert )
(("2"
(case
"dd = 0" )
(("1"
(expand
"number_sign_changes"
+)
(("1"
(assert )
(("1"
(expand
"SQUAB"
+)
(("1"
(lift-if)
(("1"
(assert )
(("1"
(expand
"sign_ext"
(-2
+))
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(case
"sign_ext(a(dd))=-sign_ext(b(dd))" )
(("1"
(expand
"sign_ext"
(-1
-2))
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(assert )
(("2"
(split
-8)
(("1"
(flatten)
(("1"
(expand
"SQUAB"
+)
(("1"
(propax)
nil
nil ))
nil ))
nil )
("2"
(skeep)
(("2"
(inst
-9
"j" )
(("2"
(assert )
nil
nil ))
nil ))
nil )
("3"
(skeep)
(("3"
(inst
"abnz"
"j" )
(("3"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(flatten)
(("2"
(assert )
(("2"
(copy -4)
(("2"
(inst - "dd" )
(("2"
(case "dd = 0" )
(("1"
(replace -1)
(("1"
(assert )
(("1"
(split -)
(("1"
(expand
"number_sign_changes"
+)
(("1"
(assert )
(("1"
(expand
"number_sign_changes"
+)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(assert )
(("1"
(expand
"SQUAB"
+)
(("1"
(expand
"sign_ext"
(-1
+))
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(flatten)
(("2"
(assert )
(("2"
(expand
"SQUAB"
+)
(("2"
(assert )
(("2"
(case
"sign_ext(a(0)) = -sign_ext(b(0))" )
(("1"
(assert )
(("1"
(expand
"number_sign_changes"
+)
(("1"
(expand
"number_sign_changes"
+)
(("1"
(propax)
nil
nil ))
nil ))
nil ))
nil )
("2"
(assert )
(("2"
(expand
"sign_ext"
(1
2))
(("2"
(lift-if)
(("2"
(lift-if)
(("2"
(lift-if)
(("2"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(assert )
(("2"
(split -)
(("1"
(case
"number_sign_changes(a, dd)`num =
number_sign_changes(b, dd)`num + SQUAB")
(("1"
(expand
"number_sign_changes"
+)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(assert )
(("1"
(ground)
(("1"
(expand
"number_sign_changes"
-1)
(("1"
(lift-if)
(("1"
(propax)
nil
nil ))
nil ))
nil )
("2"
(replace
"abeq" )
(("2"
(replace
-1
+)
(("2"
(expand
"number_sign_changes"
2)
(("2"
(lift-if)
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil )
("3"
(expand
"number_sign_changes"
-1)
(("3"
(lift-if)
(("3"
(propax)
nil
nil ))
nil ))
nil )
("4"
(replace
"abeq" )
(("4"
(replace
-1
+)
(("4"
(expand
"number_sign_changes"
2)
(("4"
(lift-if)
(("4"
(propax)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(inst
-
"a"
"b"
"dd" )
(("2"
(assert )
(("2"
(split
-)
(("1"
(flatten)
(("1"
(expand
"SQUAB" )
(("1"
(propax)
nil
nil ))
nil ))
nil )
("2"
(skeep)
(("2"
(inst
-
"j" )
(("2"
(assert )
nil
nil ))
nil ))
nil )
("3"
(skeep)
(("3"
(inst
"abnz"
"j" )
(("3"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(flatten)
(("2"
(copy
"abnz" )
(("2"
(inst-cp
-
"dd-1" )
(("2"
(assert )
(("2"
(flatten)
(("2"
(assert )
(("2"
(case
"NOT sign_ext(a(dd)) = -sign_ext(b(dd))" )
(("1"
(hide
-)
(("1"
(expand
"sign_ext" )
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(assert )
(("2"
(case
"number_sign_changes(a, 1 + dd)`num=number_sign_changes(a, dd-1)`num+1" )
(("1"
(case
"number_sign_changes(b, 1 + dd)`num=number_sign_changes(b, dd-1)`num+1" )
(("1"
(inst
-
"a"
"b"
"dd-1" )
(("1"
(assert )
(("1"
(split
-)
(("1"
(flatten)
(("1"
(reveal
"SQUABname" )
(("1"
(assert )
(("1"
(invoke
(case
"SQUAB = %1" )
(!
-3
2
2))
(("1"
(replace
-1
:dir
rl)
(("1"
(assert )
nil
nil ))
nil )
("2"
(case
"NOT dd = 1" )
(("1"
(assert )
(("1"
(replace
-1)
(("1"
(propax)
nil
nil ))
nil ))
nil )
("2"
(replaces
-1)
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(skeep)
(("2"
(inst
-
"j" )
(("2"
(inst
-
"j" )
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil )
("3"
(skeep)
(("3"
(inst
"abnz"
"j" )
(("3"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide
-8)
(("2"
(invoke
(name
"DIBBLE"
"%1" )
(!
1
2))
(("2"
(replace
-1)
(("2"
(expand
"number_sign_changes"
1)
(("2"
(expand
"number_sign_changes"
1)
(("2"
(assert )
(("2"
(case
"NOT number_sign_changes(b, dd - 1)`lastnz = b(dd-1)" )
(("1"
(hide
2)
(("1"
(expand
"number_sign_changes"
1)
(("1"
(assert )
(("1"
(lift-if)
(("1"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(replace
-1)
(("2"
(assert )
(("2"
(assert )
(("2"
(lift-if)
(("2"
(assert )
(("2"
(ground)
(("2"
(expand
"sign_ext"
(1
2
-7))
(("2"
(lift-if)
(("2"
(lift-if)
(("2"
(lift-if)
(("2"
(assert )
(("2"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(invoke
(name
"DIBBLE"
"%1" )
(!
1
2))
(("2"
(replace
-1)
(("2"
(expand
"number_sign_changes"
1)
(("2"
(expand
"number_sign_changes"
1)
(("2"
(case
"NOT number_sign_changes(a, dd - 1)`lastnz = a(dd-1)" )
(("1"
(hide
2)
(("1"
(expand
"number_sign_changes"
1)
(("1"
(lift-if)
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil )
("2"
(replace
-1)
(("2"
(assert )
(("2"
(assert )
(("2"
(lift-if)
(("2"
(ground)
(("2"
(expand
"sign_ext"
(1
2
3
-5))
(("2"
(lift-if)
(("2"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("4" (hide 2) (("4" (skosimp*) (("4" (assert ) nil nil )) nil )) nil )
("5" (hide 2) (("5" (skosimp*) (("5" (assert ) nil nil )) nil ))
nil ))
nil )
((posint_plus_nnint_is_posint application-judgement "posint"
integers nil )
(minus_odd_is_odd application-judgement "odd_int" integers nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(even_minus_odd_is_odd application-judgement "odd_int" integers
nil )
(odd_minus_odd_is_even application-judgement "even_int" integers
nil )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(naturalnumber type-eq-decl nil naturalnumbers nil )
(minus_real_is_real application-judgement "real" reals nil )
(nnint_plus_nnint_is_nnint application-judgement "nonneg_int"
integers nil )
(SQUAB skolem-const-decl "naturalnumber" number_sign_changes nil )
(real_minus_real_is_real application-judgement "real" reals nil )
(nonneg_int nonempty-type-eq-decl nil integers nil )
(posint nonempty-type-eq-decl nil integers nil )
(odd_plus_odd_is_even application-judgement "even_int" integers
nil )
(odd_plus_even_is_odd application-judgement "odd_int" integers 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 )
(nat_induction formula-decl nil naturalnumbers nil )
(number_sign_changes def-decl "NSC" number_sign_changes nil )
(IF const-decl "[boolean, T, T -> T]" if_def nil )
(NSC type-eq-decl nil number_sign_changes nil )
(< const-decl "bool" reals nil )
(pred type-eq-decl nil defined_types nil )
(number nonempty-type-decl nil numbers nil )
(boolean nonempty-type-decl nil booleans nil )
(number_field_pred const-decl "[number -> boolean]" number_fields
nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(real nonempty-type-from-decl nil reals nil )
(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 )
(IMPLIES const-decl "[bool, bool -> bool]" booleans nil )
(<= const-decl "bool" reals nil )
(AND const-decl "[bool, bool -> bool]" booleans nil )
(> const-decl "bool" reals nil )
(NOT const-decl "[bool -> bool]" booleans nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(+ const-decl "[numfield, numfield -> numfield]" number_fields nil )
(/= const-decl "boolean" notequal nil )
(OR const-decl "[bool, bool -> bool]" booleans nil )
(- const-decl "[numfield -> numfield]" number_fields nil )
(* const-decl "[numfield, numfield -> numfield]" number_fields nil )
(nonneg_real nonempty-type-eq-decl nil real_types nil )
(abs const-decl "{n: nonneg_real | n >= m AND n >= -m}" real_defs
nil )
(sign_ext const-decl
"{sig: real | (sig = -1 OR sig = 1 OR sig = 0) AND sig * x = abs(x)}"
sign "reals/" )
(- const-decl "[numfield, numfield -> numfield]" number_fields nil )
(nnint_plus_posint_is_posint application-judgement "posint"
integers nil )
(int_minus_int_is_int application-judgement "int" integers nil ))
nil )
(nsc_regular_swap-1 nil 3589108872
("" (induct "d" )
(("1" (assert ) nil nil )
("2" (skeep)
(("2" (assert )
(("2" (case "NOT k = 0" )
(("1" (assert ) nil nil )
("2" (replaces -1)
(("2" (expand "number_sign_changes" +)
(("2" (propax) nil nil )) nil ))
nil ))
nil ))
nil ))
nil )
("3" (skolem 1 "dd" )
(("3" (flatten)
(("3" (skeep)
(("3" (case "NOT k = dd+1" )
(("1" (inst - "a" "b" "k" )
(("1" (assert )
(("1" (replace -3)
(("1" (replace -5) (("1" (propax) nil nil )) nil ))
nil ))
nil ))
nil )
("2" (assert )
(("2" (replace -1)
(("2" (assert )
(("2" (label "abeq" -5)
(("2" (hide -3)
(("2" (invoke (case "NOT %1" ) (! 1 1))
(("1" (hide 2)
(("1" (expand "number_sign_changes" +)
(("1" (lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(assert )
(("1"
(ground)
(("1"
(expand
"sign_ext"
"abeq" )
(("1"
(lift-if)
(("1"
(ground)
nil
nil ))
nil ))
nil )
("2"
(expand
"sign_ext"
"abeq" )
(("2"
(lift-if)
(("2"
(ground)
nil
nil ))
nil ))
nil )
("3"
(postpone)
nil
nil )
("4"
(postpone)
nil
nil )
("5"
(postpone)
nil
nil )
("6"
(postpone)
nil
nil )
("7"
(postpone)
nil
nil )
("8"
(postpone)
nil
nil )
("9"
(postpone)
nil
nil )
("10"
(postpone)
nil
nil )
("11"
(postpone)
nil
nil ))
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 )
("4" (postpone) nil nil ) ("5" (postpone) nil nil ))
nil )
nil shostak))
(nsc_edge_diff_TCC1 0
(nsc_edge_diff_TCC1-1 nil 3589275200 ("" (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 )
(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_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(int_minus_int_is_int application-judgement "int" integers nil ))
nil ))
(nsc_edge_diff_TCC2 0
(nsc_edge_diff_TCC2-1 nil 3589280898 ("" (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 )
(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_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(int_minus_int_is_int application-judgement "int" integers nil )
(/= const-decl "boolean" notequal nil ))
nil ))
(nsc_edge_diff 0
(nsc_edge_diff-1 nil 3589274999
("" (induct "d" )
(("1" (assert ) nil nil )
("2" (skeep)
(("2" (assert )
(("2" (case "NOT k = 0" )
(("1" (assert ) nil nil )
("2" (replaces -1)
(("2" (expand "number_sign_changes" +)
(("2" (propax) nil nil )) nil ))
nil ))
nil ))
nil ))
nil )
("3" (skolem 1 "dd" )
(("3" (flatten)
(("3" (skeep)
(("3" (case "NOT k = dd+1" )
(("1" (assert )
(("1" (inst - "a" "b" "k" "sig" )
(("1" (assert )
(("1" (label "sigdef" -2)
(("1" (hide "sigdef" )
(("1" (replace -3)
(("1" (replace -4)
(("1" (replace -6)
(("1" (replace -7)
(("1"
(replace -8)
(("1"
(reveal "sigdef" )
(("1"
(replace -1)
(("1" (propax) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (label "sigdef" -3)
(("2" (hide "sigdef" )
(("2" (assert )
(("2" (replace -1)
(("2" (assert )
(("2" (label "spat" -9)
(("2" (hide "spat" )
(("2" (label "izzy" -8)
(("2" (hide "izzy" )
(("2"
(label "abnz" -7)
(("2"
(label "abeq" -6)
(("2"
(label "bnz" -5)
(("2"
(label "beezy" -4)
(("2"
(hide -3)
(("2"
(invoke
(case "NOT %1" )
(! 1 1))
(("1"
(hide 2)
(("1"
(expand
"number_sign_changes"
+)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(assert )
(("1"
(ground)
(("1"
(expand
"sign_ext"
"abeq" )
(("1"
(lift-if)
(("1"
(ground)
nil
nil ))
nil ))
nil )
("2"
(expand
"sign_ext"
"abeq" )
(("2"
(lift-if)
(("2"
(ground)
nil
nil ))
nil ))
nil )
("3"
(inst
"bnz"
"1+dd" )
(("3"
(assert )
(("3"
(inst
"beezy"
"dd" )
(("3"
(assert )
(("3"
(case
"a(dd)=0" )
(("1"
(expand
"sign_ext"
"beezy" )
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(expand
"number_sign_changes"
+)
(("2"
(assert )
(("2"
(lift-if)
(("2"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("4"
(expand
"sign_ext"
"abeq" )
(("4"
(lift-if)
(("4"
(ground)
nil
nil ))
nil ))
nil )
("5"
(inst
"bnz"
"1+dd" )
(("5"
(assert )
(("5"
(expand
"number_sign_changes"
-2)
(("5"
(lift-if)
(("5"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil )
("6"
(expand
"sign_ext"
"abeq" )
(("6"
(lift-if)
(("6"
(ground)
nil
nil ))
nil ))
nil )
("7"
(replaces
-1)
(("7"
(expand
"sign_ext"
-1)
(("7"
(lift-if)
(("7"
(assert )
(("7"
(ground)
(("7"
(inst
"beezy"
"dd" )
(("7"
(assert )
(("7"
(inst
"bnz"
"1+dd" )
(("7"
(assert )
(("7"
(expand
"number_sign_changes"
(1
2))
(("7"
(lift-if)
(("7"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("8"
(expand
"sign_ext"
"abeq" )
(("8"
(lift-if)
(("8"
(ground)
nil
nil ))
nil ))
nil )
("9"
(inst
"abnz"
"dd" )
(("9"
(expand
"number_sign_changes"
-4)
(("9"
(lift-if)
(("9"
(lift-if)
(("9"
(assert )
(("9"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("10"
(expand
"sign_ext"
"abeq" )
(("10"
(lift-if)
(("10"
(ground)
nil
nil ))
nil ))
nil )
("11"
(replace
-3)
(("11"
(expand
"sign_ext"
-4
1)
(("11"
(inst
"abnz"
"dd" )
(("11"
(assert )
(("11"
(expand
"number_sign_changes"
-4)
(("11"
(lift-if)
(("11"
(expand
"sign_ext"
-4)
(("11"
(lift-if)
(("11"
(lift-if)
(("11"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(assert )
(("2"
(assert )
(("2"
(invoke
(name "SQUAB" "%1" )
(! 1 2 2))
(("2"
(replace -1)
(("2"
(copy "abnz" )
(("2"
(inst - "dd" )
(("2"
(assert )
(("2"
(flatten)
(("2"
(label
"SQUABname"
-1)
(("2"
(hide
"SQUABname" )
(("2"
(case
"a(1+dd)=0 OR b(1+dd)=0 OR sign_ext(a(1+dd))=0 OR sign_ext(b(1+dd))=0" )
(("1"
(case
"NOT (a(1+dd)=0 AND b(1+dd)=0 AND sign_ext(a(1+dd))=0 AND sign_ext(b(1+dd))=0)" )
(("1"
(hide-all-but
(-1
"abeq"
1))
(("1"
(expand
"sign_ext" )
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide
-2)
(("2"
(flatten)
(("2"
(assert )
(("2"
(copy
"bnz" )
(("2"
(inst
-
"dd+1" )
(("2"
(assert )
(("2"
(expand
"number_sign_changes"
+)
(("2"
(inst
-
"a"
"b"
"dd"
"sig" )
(("2"
(assert )
(("2"
(split
-)
(("1"
(flatten)
(("1"
(assert )
(("1"
(case
"dd = 0" )
(("1"
(assert )
(("1"
(hide
-2)
(("1"
(replace
-1)
(("1"
(assert )
(("1"
(expand
"SQUAB"
+)
(("1"
(propax)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(assert )
(("2"
(replace
-2)
(("2"
(expand
"SQUAB"
+)
(("2"
(propax)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(reveal
"sigdef" )
(("2"
(propax)
nil
nil ))
nil )
("3"
(skeep)
(("3"
(inst
"beezy"
"j" )
(("3"
(assert )
nil
nil ))
nil ))
nil )
("4"
(inst
"beezy"
"dd" )
(("4"
(assert )
(("4"
(skeep)
(("4"
(inst
"bnz"
"j" )
(("4"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil )
("5"
(inst
"beezy"
"dd" )
(("5"
(assert )
nil
nil ))
nil )
("6"
(skeep)
(("6"
(inst
"abnz"
"j" )
(("6"
(assert )
nil
nil ))
nil ))
nil )
("7"
(reveal
"izzy" )
(("7"
(propax)
nil
nil ))
nil )
("8"
(reveal
"spat" )
(("8"
(skeep)
(("8"
(inst
-
"j" )
(("8"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(flatten)
(("2"
(assert )
(("2"
(case
"b(dd)/=0" )
(("1"
(flatten)
(("1"
(inst-cp
"beezy"
"dd" )
(("1"
(assert )
(("1"
(case
"sign_ext(a(dd))=-sign_ext(b(dd))" )
(("1"
(expand
"sign_ext"
(-1
"beezy" ))
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(ground)
(("1"
(lift-if)
(("1"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(inst
-
"a"
"b"
"dd"
"sig" )
(("2"
(assert )
(("2"
(split
-)
(("1"
(flatten)
(("1"
(assert )
(("1"
(case
"dd = 0" )
(("1"
(replaces
-1)
(("1"
(assert )
(("1"
(expand
"SQUAB"
+)
(("1"
(expand
"number_sign_changes"
+)
(("1"
(expand
"number_sign_changes"
+)
(("1"
(hide
-1)
(("1"
(expand
"sign_ext" )
(("1"
(lift-if)
(("1"
(assert )
(("1"
(lift-if)
(("1"
(assert )
(("1"
(lift-if)
(("1"
(assert )
(("1"
(lift-if)
(("1"
(assert )
(("1"
(lift-if)
(("1"
(assert )
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(assert )
(("1"
(lift-if)
(("1"
(assert )
(("1"
(lift-if)
(("1"
(assert )
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(assert )
(("1"
(lift-if)
(("1"
(assert )
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(assert )
(("1"
(lift-if)
(("1"
(assert )
(("1"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(assert )
(("2"
(expand
"number_sign_changes"
+)
(("2"
(case
"number_sign_changes(a, dd)`lastnz = 0" )
(("1"
(expand
"number_sign_changes"
-1)
(("1"
(lift-if)
(("1"
(propax)
nil
nil ))
nil ))
nil )
("2"
(assert )
(("2"
(case
"number_sign_changes(b, dd)`lastnz = 0" )
(("1"
(expand
"number_sign_changes"
-1)
(("1"
(lift-if)
(("1"
(propax)
nil
nil ))
nil ))
nil )
("2"
(assert )
(("2"
(replace
-1)
(("2"
(replace
"abeq" )
(("2"
(assert )
(("2"
(lift-if)
(("2"
(expand
"SQUAB" )
(("2"
(lift-if)
(("2"
(propax)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(reveal
"sigdef" )
(("2"
(propax)
nil
nil ))
nil )
("3"
(skeep)
(("3"
(inst
"beezy"
"j" )
(("3"
(assert )
nil
nil ))
nil ))
nil )
("4"
(skeep)
(("4"
(inst
"bnz"
"j" )
(("4"
(assert )
nil
nil ))
nil ))
nil )
("5"
(skeep)
(("5"
(inst
"abnz"
"j" )
(("5"
(assert )
nil
nil ))
nil ))
nil )
("6"
(reveal
"izzy" )
(("6"
(propax)
nil
nil ))
nil )
("7"
(reveal
"spat" )
(("7"
(skeep)
(("7"
(inst
-
"j" )
(("7"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(flatten)
(("2"
(assert )
(("2"
(case
"dd = 0" )
(("1"
(replace
-1)
(("1"
(assert )
(("1"
(expand
"SQUAB"
+)
(("1"
(case
"NOT number_sign_changes(b, 1)`num=0" )
(("1"
(expand
"number_sign_changes"
1)
(("1"
(expand
"number_sign_changes"
1)
(("1"
(propax)
nil
nil ))
nil ))
nil )
("2"
(replace
-1)
(("2"
(assert )
(("2"
(reveal
"izzy" )
(("2"
(assert )
(("2"
(expand
"number_sign_changes"
+)
(("2"
(expand
"number_sign_changes"
+)
(("2"
(reveal
"sigdef" )
(("2"
(lift-if)
(("2"
(lift-if)
(("2"
(lift-if)
(("2"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(case
"dd = 1" )
(("1"
(replaces
-1)
(("1"
(inst
"bnz"
"1" )
(("1"
(assert )
(("1"
(expand
"SQUAB"
+)
(("1"
(case
"NOT number_sign_changes(b,2)`num=1" )
(("1"
(reveal
"spat" )
(("1"
(inst
-
"1" )
(("1"
(assert )
(("1"
(hide
-5)
(("1"
(hide
-3)
(("1"
(hide
("beezy"
"abeq"
"abnz" ))
(("1"
(expand
"number_sign_changes"
1)
(("1"
(expand
"number_sign_changes"
1)
(("1"
(expand
"number_sign_changes"
1)
(("1"
(propax)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(replaces
-1)
(("2"
(hide
-4)
(("2"
(reveal
"spat" )
(("2"
(inst
-
"1" )
(("2"
(assert )
(("2"
(inst
"beezy"
"0" )
(("2"
(assert )
(("2"
(expand
"number_sign_changes"
+)
(("2"
(expand
"number_sign_changes"
+)
(("2"
(expand
"number_sign_changes"
+)
(("2"
(lift-if)
(("2"
(assert )
(("2"
(expand
"sign_ext" )
(("2"
(lift-if)
(("2"
(lift-if)
(("2"
(lift-if)
(("2"
(lift-if)
(("2"
(assert )
(("2"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(case
"number_sign_changes(a, 1 + dd)`num = number_sign_changes(a, dd-1)`num+1 AND number_sign_changes(b, 1 + dd)`num = number_sign_changes(b, dd-1)`num+1" )
(("1"
(flatten)
(("1"
(assert )
(("1"
(inst
-
"a"
"b"
"dd-1"
"sig" )
(("1"
(assert )
(("1"
(split
-)
(("1"
(flatten)
(("1"
(expand
"SQUAB" )
(("1"
(assert )
(("1"
(lift-if)
(("1"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(reveal
"sigdef" )
(("2"
(propax)
nil
nil ))
nil )
("3"
(skeep)
(("3"
(inst
"beezy"
"j" )
(("3"
(assert )
nil
nil ))
nil ))
nil )
("4"
(skeep)
(("4"
(inst
"bnz"
"j" )
(("4"
(assert )
nil
nil ))
nil ))
nil )
("5"
(inst
"beezy"
"dd-1" )
(("5"
(assert )
(("5"
(inst
"bnz"
"dd" )
(("5"
(assert )
nil
nil ))
nil ))
nil ))
nil )
("6"
(skeep)
(("6"
(inst
"abnz"
"j" )
(("6"
(assert )
nil
nil ))
nil ))
nil )
("7"
(reveal
"izzy" )
(("7"
(propax)
nil
nil ))
nil )
("8"
(reveal
"spat" )
(("8"
(skeep)
(("8"
(inst
-
"j" )
(("8"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide
-4)
(("2"
(split
+)
(("1"
(invoke
(name
"IGGY"
"%1" )
(!
1
2))
(("1"
(replace
-1)
(("1"
(inst
"bnz"
"dd" )
(("1"
(assert )
(("1"
(flatten)
(("1"
(reveal
"spat" )
(("1"
(inst
-
"dd" )
(("1"
(assert )
(("1"
(inst
"beezy"
"dd-1" )
(("1"
(assert )
(("1"
(case
"a(dd-1)=0" )
(("1"
(replace
-1)
(("1"
(expand
"sign_ext"
"beezy" )
(("1"
(lift-if)
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil )
("2"
(assert )
(("2"
(expand
"number_sign_changes"
2)
(("2"
(expand
"number_sign_changes"
2)
(("2"
(assert )
(("2"
(lift-if)
(("2"
(assert )
(("2"
(case
"NOT number_sign_changes(a, dd - 1)`lastnz = a(dd-1)" )
(("1"
(hide
3)
(("1"
(expand
"number_sign_changes"
1)
(("1"
(lift-if)
(("1"
(propax)
nil
nil ))
nil ))
nil ))
nil )
("2"
(replace
-1)
(("2"
(assert )
(("2"
(ground)
(("2"
(expand
"sign_ext" )
(("2"
(lift-if)
(("2"
(lift-if)
(("2"
(lift-if)
(("2"
(lift-if)
(("2"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(invoke
(name
"IGGY"
"%1" )
(!
1
2))
(("2"
(replace
-1)
(("2"
(inst
"bnz"
"dd" )
(("2"
(assert )
(("2"
(flatten)
(("2"
(reveal
"spat" )
(("2"
(inst
-
"dd" )
(("2"
(assert )
(("2"
(inst
"beezy"
"dd-1" )
(("2"
(assert )
(("2"
(case
"a(dd-1)=0" )
(("1"
(replace
-1)
(("1"
(expand
"sign_ext"
"beezy" )
(("1"
(lift-if)
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil )
("2"
(assert )
(("2"
(expand
"number_sign_changes"
2)
(("2"
(expand
"number_sign_changes"
2)
(("2"
(assert )
(("2"
(lift-if)
(("2"
(assert )
(("2"
(case
"NOT number_sign_changes(b, dd - 1)`lastnz = b(dd-1)" )
(("1"
(hide
3)
(("1"
(expand
"number_sign_changes"
1)
(("1"
(lift-if)
(("1"
(propax)
nil
nil ))
nil ))
nil ))
nil )
("2"
(replace
-1)
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("3"
(ground)
nil
nil )
("4"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("4" (hide 2) (("4" (skosimp*) (("4" (assert ) nil nil )) nil )) nil )
("5" (hide 2) (("5" (skosimp*) (("5" (assert ) nil nil )) nil ))
nil ))
nil )
((real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(nnint_plus_nnint_is_nnint application-judgement "nonneg_int"
integers nil )
(odd_plus_odd_is_even application-judgement "even_int" integers
nil )
(posint nonempty-type-eq-decl nil integers nil )
(> const-decl "bool" reals nil )
(nonneg_int nonempty-type-eq-decl nil integers nil )
(real_minus_real_is_real application-judgement "real" reals nil )
(SQUAB skolem-const-decl "naturalnumber" number_sign_changes nil )
(odd_plus_even_is_odd application-judgement "odd_int" integers nil )
(minus_real_is_real application-judgement "real" reals nil )
(naturalnumber type-eq-decl nil naturalnumbers nil )
(real_times_real_is_real application-judgement "real" reals nil )
(posint_plus_nnint_is_posint application-judgement "posint"
integers nil )
(NOT const-decl "[bool -> bool]" booleans nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(minus_odd_is_odd application-judgement "odd_int" integers nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(nat_induction formula-decl nil naturalnumbers nil )
(number_sign_changes def-decl "NSC" number_sign_changes nil )
(IF const-decl "[boolean, T, T -> T]" if_def nil )
(NSC type-eq-decl nil number_sign_changes nil )
(+ const-decl "[numfield, numfield -> numfield]" number_fields nil )
(pred type-eq-decl nil defined_types nil )
(/= const-decl "boolean" notequal 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 )
(IMPLIES const-decl "[bool, bool -> bool]" booleans nil )
(AND const-decl "[bool, bool -> bool]" booleans nil )
(<= const-decl "bool" reals nil )
(OR const-decl "[bool, bool -> bool]" booleans nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(- const-decl "[numfield -> numfield]" number_fields nil )
(* const-decl "[numfield, numfield -> numfield]" number_fields nil )
(nonneg_real nonempty-type-eq-decl nil real_types nil )
(abs const-decl "{n: nonneg_real | n >= m AND n >= -m}" real_defs
nil )
(sign_ext const-decl
"{sig: real | (sig = -1 OR sig = 1 OR sig = 0) AND sig * x = abs(x)}"
sign "reals/" )
(< const-decl "bool" reals nil )
(- const-decl "[numfield, numfield -> numfield]" number_fields nil )
(int_minus_int_is_int application-judgement "int" integers nil )
(nnint_plus_posint_is_posint application-judgement "posint"
integers nil ))
nil ))
(nsc_multiroot 0
(nsc_multiroot-1 nil 3589281824
("" (induct "d" )
(("1" (assert ) nil nil )
("2" (skeep)
(("2" (case "NOT k = 0" )
(("1" (assert ) nil nil )
("2" (replaces -1)
(("2" (assert )
(("2" (expand "number_sign_changes" +)
(("2" (propax) nil nil )) nil ))
nil ))
nil ))
nil ))
nil )
("3" (skolem 1 "dd" )
(("3" (flatten)
(("3" (skeep)
(("3" (case "NOT k = dd+1" )
(("1" (inst - "a" "b" "k" "sig" )
(("1" (assert )
(("1" (replace -2)
(("1" (replace -4)
(("1" (replace -8) (("1" (propax) nil nil )) nil ))
nil ))
nil ))
nil ))
nil )
("2" (replace -1)
(("2" (hide -4)
(("2" (assert )
(("2" (case "dd = 0" )
(("1" (replace -1)
(("1" (assert )
(("1" (inst - "1" )
(("1" (assert )
(("1" (hide -3)
(("1"
(expand "number_sign_changes" )
(("1"
(expand "number_sign_changes" )
(("1"
(expand "sign_ext" )
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(assert )
(("1"
(inst - "0" )
(("1"
(assert )
(("1"
(flatten)
(("1"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (inst - "a" "b" "dd" "sig" )
(("2" (replace -3)
(("2" (assert )
(("2" (split -)
(("1" (copy -8)
(("1"
(inst - "dd" )
(("1"
(assert )
(("1"
(flatten)
(("1"
(expand "number_sign_changes" +)
(("1"
(case
"NOT number_sign_changes(b, dd)`lastnz = b(dd)" )
(("1"
(expand
"number_sign_changes"
1)
(("1" (assert ) nil nil ))
nil )
("2"
(case
"NOT number_sign_changes(a, dd)`lastnz = a(dd)" )
(("1"
(expand
"number_sign_changes"
1)
(("1" (assert ) nil nil ))
nil )
("2"
(replace -1)
(("2"
(replace -2)
(("2"
(assert )
(("2"
(replace -3)
(("2"
(assert )
(("2"
(lift-if)
(("2"
(lift-if)
(("2"
(lift-if)
(("2"
(assert )
(("2"
(ground)
(("1"
(inst
-
"1+dd" )
(("1"
(expand
"sign_ext" )
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(inst-cp
-
"dd" )
(("2"
(inst-cp
-
"1+dd" )
(("2"
(assert )
nil
nil ))
nil ))
nil )
("3"
(inst
-
"1+dd" )
(("3"
(expand
"sign_ext" )
(("3"
(lift-if)
(("3"
(lift-if)
(("3"
(lift-if)
(("3"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("4"
(inst-cp
-
"dd" )
(("4"
(inst-cp
-
"1+dd" )
(("4"
(assert )
nil
nil ))
nil ))
nil )
("5"
(inst
-
"1+dd" )
(("5"
(expand
"sign_ext" )
(("5"
(lift-if)
(("5"
(lift-if)
(("5"
(lift-if)
(("5"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("6"
(inst-cp
-
"dd" )
(("6"
(inst-cp
-
"1+dd" )
(("6"
(assert )
nil
nil ))
nil ))
nil )
("7"
(inst
-
"1+dd" )
(("7"
(expand
"sign_ext" )
(("7"
(lift-if)
(("7"
(lift-if)
(("7"
(lift-if)
(("7"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("8"
(inst-cp
-
"dd" )
(("8"
(inst-cp
-
"1+dd" )
(("8"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (skeep)
(("2"
(inst - "j" )
(("2" (assert ) nil nil ))
nil ))
nil )
("3" (skeep)
(("3"
(inst - "j" )
(("3"
(inst - "j" )
(("3" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((int_minus_int_is_int application-judgement "int" integers 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 )
(posint_plus_nnint_is_posint application-judgement "posint"
integers nil )
(odd_plus_even_is_odd application-judgement "odd_int" integers nil )
(nnint_plus_posint_is_posint application-judgement "posint"
integers nil )
(real_times_real_is_real application-judgement "real" reals nil )
(minus_odd_is_odd application-judgement "odd_int" integers nil )
(nnint_plus_nnint_is_nnint application-judgement "nonneg_int"
integers 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 )
(NOT const-decl "[bool -> bool]" booleans nil )
(minus_real_is_real application-judgement "real" reals nil )
(nat_induction formula-decl nil naturalnumbers nil )
(number_sign_changes def-decl "NSC" number_sign_changes nil )
(NSC type-eq-decl nil number_sign_changes nil )
(IF const-decl "[boolean, T, T -> T]" if_def nil )
(+ const-decl "[numfield, numfield -> numfield]" number_fields nil )
(/= const-decl "boolean" notequal nil )
(sign_ext const-decl
"{sig: real | (sig = -1 OR sig = 1 OR sig = 0) AND sig * x = abs(x)}"
sign "reals/" )
(abs const-decl "{n: nonneg_real | n >= m AND n >= -m}" real_defs
nil )
(nonneg_real nonempty-type-eq-decl nil real_types nil )
(* const-decl "[numfield, numfield -> numfield]" number_fields nil )
(< const-decl "bool" reals nil ) (<= const-decl "bool" reals nil )
(- const-decl "[numfield -> numfield]" number_fields nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(OR const-decl "[bool, bool -> bool]" booleans nil )
(AND const-decl "[bool, bool -> bool]" booleans nil )
(IMPLIES const-decl "[bool, bool -> bool]" booleans nil )
(pred type-eq-decl nil defined_types nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(>= const-decl "bool" reals nil )
(bool nonempty-type-eq-decl nil 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 )
(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))
(nsc_multiroot_full_TCC1 0
(nsc_multiroot_full_TCC1-1 nil 3591373347 ("" (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 )
(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_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(int_minus_int_is_int application-judgement "int" integers nil )
(/= const-decl "boolean" notequal nil ))
nil ))
(nsc_multiroot_full 0
(nsc_multiroot_full-2 nil 3591437931
("" (induct "d" )
(("1" (assert ) nil nil )
("2" (skeep)
(("2" (assert )
(("2" (case "NOT k = 0" )
(("1" (assert ) nil nil )
("2" (replaces -1)
(("2" (expand "number_sign_changes" +)
(("2" (propax) nil nil )) nil ))
nil ))
nil ))
nil ))
nil )
("3" (skolem 1 "dd" )
(("3" (flatten)
(("3" (skeep)
(("3" (label "stp" -2)
(("3" (label "azing" -8)
(("3" (label "sigtp" -3)
(("3" (label "sigfundef" -5)
(("3" (label "sigsigfun" -6)
(("3" (label "abnz" -10)
(("3" (case "NOT k = dd+1" )
(("1" (inst - "a" "b" "k" "sig" "sigfun" )
(("1" (replace "stp" )
(("1" (replace "sigtp" )
(("1"
(replace "sigfundef" )
(("1"
(replace "abnz" )
(("1"
(assert )
(("1"
(replace "sigsigfun" )
(("1" (propax) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (assert )
(("2" (replace -1)
(("2" (assert )
(("2"
(case "NOT sigfun(1+dd) = sig" )
(("1"
(inst "sigsigfun" "1+dd" )
(("1" (assert ) nil nil ))
nil )
("2"
(case "sigfun(dd) = sig" )
(("1"
(inst
-
"a"
"b"
"dd"
"sig"
"sigfun" )
(("1"
(assert )
(("1"
(replace "stp" )
(("1"
(replace "sigtp" )
(("1"
(split -)
(("1"
(assert )
(("1"
(case "dd = 0" )
(("1"
(assert )
(("1"
(replace -1)
(("1"
(assert )
(("1"
(expand
"number_sign_changes"
+)
(("1"
(assert )
(("1"
(copy
"abnz" )
(("1"
(inst-cp
-
"0" )
(("1"
(inst
-
"1" )
(("1"
(assert )
(("1"
(expand
"number_sign_changes"
+)
(("1"
(assert )
(("1"
(lift-if)
(("1"
(assert )
(("1"
(expand
"sign_ext" )
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(assert )
(("2"
(copy "abnz" )
(("2"
(inst-cp
-
"1+dd" )
(("2"
(inst - "dd" )
(("2"
(assert )
(("2"
(flatten)
(("2"
(assert )
(("2"
(expand
"number_sign_changes"
+)
(("2"
(case
"NOT number_sign_changes(a, dd)`lastnz = a(dd)" )
(("1"
(expand
"number_sign_changes"
1)
(("1"
(lift-if)
(("1"
(propax)
nil
nil ))
nil ))
nil )
("2"
(assert )
(("2"
(case
"NOT number_sign_changes(b, dd)`lastnz = b(dd)" )
(("1"
(expand
"number_sign_changes"
1)
(("1"
(lift-if)
(("1"
(propax)
nil
nil ))
nil ))
nil )
("2"
(assert )
(("2"
(replace
-1)
(("2"
(replace
-2)
(("2"
(assert )
(("2"
(replace
-3)
(("2"
(assert )
(("2"
(lift-if)
(("2"
(lift-if)
(("2"
(lift-if)
(("2"
(assert )
(("2"
(split
+)
(("1"
(flatten)
(("1"
(split
+)
(("1"
(propax)
nil
nil )
("2"
(assert )
(("2"
(copy
"sigfundef" )
(("2"
(inst-cp
-
"dd" )
(("2"
(inst
-
"1+dd" )
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(flatten)
(("2"
(assert )
(("2"
(split
+)
(("1"
(copy
"sigfundef" )
(("1"
(inst-cp
-
"dd" )
(("1"
(inst
-
"1+dd" )
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil )
("2"
(propax)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(copy "sigfundef" )
(("2"
(skeep)
(("2"
(inst - "j" )
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil )
("3"
(copy "sigsigfun" )
(("3"
(skeep)
(("3"
(inst - "j" )
(("3"
(assert )
nil
nil ))
nil ))
nil ))
nil )
("4"
(copy "abnz" )
(("4"
(skeep)
(("4"
(inst - "j" )
(("4"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(case "NOT sigfun(dd) = -sig" )
(("1"
(inst "sigtp" "dd" )
(("1" (ground) nil nil ))
nil )
("2"
(assert )
(("2"
(copy "sigsigfun" )
(("2"
(inst - "dd" )
(("2"
(assert )
(("2"
(case "dd = 0" )
(("1"
(replace -1)
(("1"
(assert )
(("1"
(copy "abnz" )
(("1"
(inst-cp - "0" )
(("1"
(inst - "1" )
(("1"
(assert )
(("1"
(flatten)
(("1"
(expand
"number_sign_changes"
+)
(("1"
(expand
"number_sign_changes"
+)
(("1"
(assert )
(("1"
(lift-if)
(("1"
(assert )
(("1"
(hide
-2)
(("1"
(expand
"sign_ext"
("azing"
+))
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(assert )
(("2"
(flatten)
(("2"
(copy "abnz" )
(("2"
(inst-cp
-
"dd-1" )
(("2"
(inst-cp
-
"dd" )
(("2"
(inst
-
"1+dd" )
(("2"
(assert )
(("2"
(flatten)
(("2"
(expand
"number_sign_changes"
+)
(("2"
(assert )
(("2"
(expand
"number_sign_changes"
+)
(("2"
(assert )
(("2"
(case
"NOT number_sign_changes(a, dd - 1)`lastnz = a(dd-1)" )
(("1"
(expand
"number_sign_changes"
1)
(("1"
(assert )
nil
nil ))
nil )
("2"
(replace
-1)
(("2"
(case
"NOT number_sign_changes(b, dd - 1)`lastnz = b(dd-1)" )
(("1"
(expand
"number_sign_changes"
1)
(("1"
(assert )
nil
nil ))
nil )
("2"
(replace
-1)
(("2"
(assert )
(("2"
(inst
-
"a"
"b"
"dd-1"
"sig"
"sigfun" )
(("2"
(assert )
(("2"
(split
-)
(("1"
(replace
-1)
(("1"
(assert )
(("1"
(hide
"stp" )
(("1"
(assert )
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(assert )
(("1"
(expand
"sign_ext" )
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(assert )
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(assert )
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(assert )
(("1"
(ground)
(("1"
(lift-if)
(("1"
(ground)
nil
nil ))
nil )
("2"
(lift-if)
(("2"
(ground)
nil
nil ))
nil )
("3"
(lift-if)
(("3"
(ground)
nil
nil ))
nil )
("4"
(lift-if)
(("4"
(ground)
nil
nil ))
nil )
("5"
(lift-if)
(("5"
(ground)
nil
nil ))
nil )
("6"
(lift-if)
(("6"
(ground)
nil
nil ))
nil )
("7"
(lift-if)
(("7"
(ground)
nil
nil ))
nil )
("8"
(lift-if)
(("8"
(ground)
nil
nil ))
nil )
("9"
(lift-if)
(("9"
(ground)
nil
nil ))
nil )
("10"
(lift-if)
(("10"
(ground)
nil
nil ))
nil )
("11"
(lift-if)
(("11"
(ground)
nil
nil ))
nil )
("12"
(lift-if)
(("12"
(ground)
nil
nil ))
nil )
("13"
(lift-if)
(("13"
(ground)
nil
nil ))
nil )
("14"
(lift-if)
(("14"
(ground)
nil
nil ))
nil )
("15"
(lift-if)
(("15"
(ground)
nil
nil ))
nil )
("16"
(lift-if)
(("16"
(ground)
nil
nil ))
nil )
("17"
(lift-if)
(("17"
(ground)
nil
nil ))
nil )
("18"
(lift-if)
(("18"
(ground)
nil
nil ))
nil )
("19"
(lift-if)
(("19"
(ground)
nil
nil ))
nil )
("20"
(lift-if)
(("20"
(ground)
nil
nil ))
nil )
("21"
(lift-if)
(("21"
(ground)
nil
nil ))
nil )
("22"
(lift-if)
(("22"
(ground)
nil
nil ))
nil )
("23"
(lift-if)
(("23"
(ground)
nil
nil ))
nil )
("24"
(lift-if)
(("24"
(ground)
nil
nil ))
nil )
("25"
(lift-if)
(("25"
(ground)
nil
nil ))
nil )
("26"
(lift-if)
(("26"
(ground)
nil
nil ))
nil )
("27"
(lift-if)
(("27"
(ground)
nil
nil ))
nil )
("28"
(lift-if)
(("28"
(ground)
nil
nil ))
nil )
("29"
(lift-if)
(("29"
(ground)
nil
nil ))
nil )
("30"
(lift-if)
(("30"
(ground)
nil
nil ))
nil )
("31"
(lift-if)
(("31"
(ground)
nil
nil ))
nil )
("32"
(lift-if)
(("32"
(ground)
nil
nil ))
nil )
("33"
(lift-if)
(("33"
(ground)
nil
nil ))
nil )
("34"
(lift-if)
(("34"
(ground)
nil
nil ))
nil )
("35"
(lift-if)
(("35"
(ground)
nil
nil ))
nil )
("36"
(lift-if)
(("36"
(ground)
nil
nil ))
nil )
("37"
(lift-if)
(("37"
(ground)
nil
nil ))
nil )
("38"
(lift-if)
(("38"
(ground)
nil
nil ))
nil )
("39"
(lift-if)
(("39"
(ground)
nil
nil ))
nil )
("40"
(lift-if)
(("40"
(ground)
nil
nil ))
nil )
("41"
(lift-if)
(("41"
(ground)
nil
nil ))
nil )
("42"
(lift-if)
(("42"
(ground)
nil
nil ))
nil )
("43"
(lift-if)
(("43"
(ground)
nil
nil ))
nil )
("44"
(lift-if)
(("44"
(ground)
nil
nil ))
nil )
("45"
(lift-if)
(("45"
(ground)
nil
nil ))
nil )
("46"
(lift-if)
(("46"
(ground)
nil
nil ))
nil )
("47"
(lift-if)
(("47"
(ground)
nil
nil ))
nil )
("48"
(lift-if)
(("48"
(ground)
nil
nil ))
nil )
("49"
(lift-if)
(("49"
(ground)
nil
nil ))
nil )
("50"
(lift-if)
(("50"
(ground)
nil
nil ))
nil )
("51"
(lift-if)
(("51"
(ground)
nil
nil ))
nil )
("52"
(lift-if)
(("52"
(ground)
nil
nil ))
nil )
("53"
(lift-if)
(("53"
(ground)
nil
nil ))
nil )
("54"
(lift-if)
(("54"
(ground)
nil
nil ))
nil )
("55"
(lift-if)
(("55"
(ground)
nil
nil ))
nil )
("56"
(lift-if)
(("56"
(ground)
nil
nil ))
nil )
("57"
(lift-if)
(("57"
(ground)
nil
nil ))
nil )
("58"
(lift-if)
(("58"
(ground)
nil
nil ))
nil )
("59"
(lift-if)
(("59"
(ground)
nil
nil ))
nil )
("60"
(lift-if)
(("60"
(ground)
nil
nil ))
nil )
("61"
(lift-if)
(("61"
(ground)
nil
nil ))
nil )
("62"
(lift-if)
(("62"
(ground)
nil
nil ))
nil )
("63"
(lift-if)
(("63"
(ground)
nil
nil ))
nil )
("64"
(lift-if)
(("64"
(ground)
nil
nil ))
nil )
("65"
(lift-if)
(("65"
(ground)
nil
nil ))
nil )
("66"
(lift-if)
(("66"
(ground)
nil
nil ))
nil )
("67"
(lift-if)
(("67"
(ground)
nil
nil ))
nil )
("68"
(lift-if)
(("68"
(ground)
nil
nil ))
nil )
("69"
(lift-if)
(("69"
(ground)
nil
nil ))
nil )
("70"
(lift-if)
(("70"
(ground)
nil
nil ))
nil )
("71"
(lift-if)
(("71"
(ground)
nil
nil ))
nil )
("72"
(lift-if)
(("72"
(ground)
nil
nil ))
nil )
("73"
(lift-if)
(("73"
(ground)
nil
nil ))
nil )
("74"
(lift-if)
(("74"
(ground)
nil
nil ))
nil )
("75"
(lift-if)
(("75"
(ground)
nil
nil ))
nil )
("76"
(lift-if)
(("76"
(ground)
nil
nil ))
nil )
("77"
(lift-if)
(("77"
(ground)
nil
nil ))
nil )
("78"
(lift-if)
(("78"
(ground)
nil
nil ))
nil )
("79"
(lift-if)
(("79"
(ground)
nil
nil ))
nil )
("80"
(lift-if)
(("80"
(ground)
nil
nil ))
nil )
("81"
(lift-if)
(("81"
(ground)
nil
nil ))
nil )
("82"
(lift-if)
(("82"
(ground)
nil
nil ))
nil )
("83"
(lift-if)
(("83"
(ground)
nil
nil ))
nil )
("84"
(lift-if)
(("84"
(ground)
nil
nil ))
nil )
("85"
(lift-if)
(("85"
(ground)
nil
nil ))
nil )
("86"
(lift-if)
(("86"
(ground)
nil
nil ))
nil )
("87"
(lift-if)
(("87"
(ground)
nil
nil ))
nil )
("88"
(lift-if)
(("88"
(ground)
nil
nil ))
nil )
("89"
(lift-if)
(("89"
(ground)
nil
nil ))
nil )
("90"
(lift-if)
(("90"
(ground)
nil
nil ))
nil )
("91"
(lift-if)
(("91"
(ground)
nil
nil ))
nil )
("92"
(lift-if)
(("92"
(ground)
nil
nil ))
nil )
("93"
(lift-if)
(("93"
(ground)
nil
nil ))
nil )
("94"
(lift-if)
(("94"
(ground)
nil
nil ))
nil )
("95"
(lift-if)
(("95"
(ground)
nil
nil ))
nil )
("96"
(lift-if)
(("96"
(ground)
nil
nil ))
nil )
("97"
(lift-if)
(("97"
(ground)
nil
nil ))
nil )
("98"
(lift-if)
(("98"
(ground)
nil
nil ))
nil )
("99"
(lift-if)
(("99"
(ground)
nil
nil ))
nil )
("100"
(lift-if)
(("100"
(ground)
nil
nil ))
nil )
("101"
(lift-if)
(("101"
(ground)
nil
nil ))
nil )
("102"
(lift-if)
(("102"
(ground)
nil
nil ))
nil )
("103"
(lift-if)
(("103"
(ground)
nil
nil ))
nil )
("104"
(lift-if)
(("104"
(ground)
nil
nil ))
nil )
("105"
(lift-if)
(("105"
(ground)
nil
nil ))
nil )
("106"
(lift-if)
(("106"
(ground)
nil
nil ))
nil )
("107"
(lift-if)
(("107"
(ground)
nil
nil ))
nil )
("108"
(lift-if)
(("108"
(ground)
nil
nil ))
nil )
("109"
(lift-if)
(("109"
(ground)
nil
nil ))
nil )
("110"
(lift-if)
(("110"
(ground)
nil
nil ))
nil )
("111"
(lift-if)
(("111"
(ground)
nil
nil ))
nil )
("112"
(lift-if)
(("112"
(ground)
nil
nil ))
nil )
("113"
(lift-if)
(("113"
(ground)
nil
nil ))
nil )
("114"
(lift-if)
(("114"
(ground)
nil
nil ))
nil )
("115"
(lift-if)
(("115"
(ground)
nil
nil ))
nil )
("116"
(lift-if)
(("116"
(ground)
nil
nil ))
nil )
("117"
(lift-if)
(("117"
(ground)
nil
nil ))
nil )
("118"
(lift-if)
(("118"
(ground)
nil
nil ))
nil )
("119"
(lift-if)
(("119"
(ground)
nil
nil ))
nil )
("120"
(lift-if)
(("120"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
--> --------------------
--> maximum size reached
--> --------------------
Messung V0.5 in Prozent C=100 H=100 G=100
¤ Dauer der Verarbeitung: 0.605 Sekunden
(vorverarbeitet am 2026-05-01)
¤
*© Formatika GbR, Deutschland