(product_nat
(IMP_product_TCC1 0
(IMP_product_TCC1-1 nil 3351946780 ("" (assuming-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)
(integer nonempty-type-from-decl nil 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))
nil))
(int_is_T_high 0
(int_is_T_high-1 nil 3352138082
("" (skosimp*)
(("" (inst-cp + 0)
(("" (inst + "x!1")
(("1" (assert) nil nil) ("2" (assert) nil nil)) nil))
nil))
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)
(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))
nil))
(nat_is_T_low 0
(nat_is_T_low-1 nil 3352138082 ("" (judgement-tcc) nil nil) nil nil))
(product_shift_TCC1 0
(product_shift_TCC1-1 nil 3403006081
("" (skosimp*) (("" (assert) nil nil)) nil)
((int_plus_int_is_int application-judgement "int" integers nil)
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil))
nil))
(product_shift 0
(product_shift-1 nil 3308675684
("" (skosimp*) (("" (rewrite "product_shift_T") nil nil)) nil)
((nnint_plus_nnint_is_nnint application-judgement "nonneg_int"
integers nil)
(int_plus_int_is_int application-judgement "int" integers nil)
(product_shift_T formula-decl nil product nil)
(OR const-decl "[bool, bool -> bool]" booleans nil)
(<= const-decl "bool" reals nil)
(T_high type-eq-decl nil product nil)
(T_low type-eq-decl nil product 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))
nil))
(product_shift_neg_TCC1 0
(product_shift_neg_TCC1-1 nil 3308675684
("" (skosimp*) (("" (inst + 0) (("" (assert) nil nil)) nil)) nil)
nil nil))
(product_shift_neg_TCC2 0
(product_shift_neg_TCC2-1 nil 3352138082 ("" (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)
(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)
(>= const-decl "bool" reals 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))
(product_shift_neg_TCC3 0
(product_shift_neg_TCC3-1 nil 3403006081
("" (skosimp*) (("" (assert) nil nil)) 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)
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil))
nil))
(product_shift_neg 0
(product_shift_neg-1 nil 3308675684
("" (skosimp*)
(("" (lemma "product_shift_T2")
(("" (inst?)
(("" (inst - "high!1" "low!1" "0 - m!1")
(("" (assert)
(("" (prop)
(("1" (replace -1 :hide? t)
(("1" (rewrite "product_eq")
(("1" (skosimp*) (("1" (assert) nil nil)) nil)) nil))
nil)
("2" (case "high!1)
(("1" (expand "product") (("1" (assert) nil nil)) nil)
("2" (assert) nil nil))
nil))
nil))
nil))
nil))
nil))
nil))
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)
(product_shift_T2 formula-decl nil product nil)
(int_minus_int_is_int application-judgement "int" integers nil)
(OR const-decl "[bool, bool -> bool]" booleans nil)
(<= const-decl "bool" reals nil)
(T_high type-eq-decl nil product nil)
(T_low type-eq-decl nil product nil)
(numfield nonempty-type-eq-decl nil number_fields nil)
(- const-decl "[numfield, numfield -> numfield]" number_fields nil)
(IMPLIES const-decl "[bool, bool -> bool]" booleans nil)
(NOT const-decl "[bool -> bool]" booleans nil)
(< const-decl "bool" reals nil)
(IF const-decl "[boolean, T, T -> T]" if_def nil)
(product_eq formula-decl nil product nil)
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil)
(minus_odd_is_odd application-judgement "odd_int" integers nil)
(product def-decl "real" product 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)
(int_plus_int_is_int application-judgement "int" integers nil))
nil))
(product_shift_ng2 0
(product_shift_ng2-1 nil 3308675684
("" (skosimp*)
(("" (lemma "product_shift_T2")
(("" (inst?)
(("" (inst - "high!1" "low!1" "0-m!1")
(("" (assert)
(("" (prop)
(("1" (replace -1 :hide? t)
(("1" (rewrite "product_eq")
(("1" (expand "~")
(("1" (assert)
(("1" (skosimp*)
(("1" (assert)
(("1" (lift-if) (("1" (assert) nil nil))
nil))
nil))
nil))
nil))
nil))
nil))
nil)
("2" (case "high!1)
(("1" (expand "product") (("1" (assert) nil nil)) nil)
("2" (assert) nil nil))
nil))
nil))
nil))
nil))
nil))
nil))
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)
(product_shift_T2 formula-decl nil product nil)
(int_minus_int_is_int application-judgement "int" integers nil)
(OR const-decl "[bool, bool -> bool]" booleans nil)
(<= const-decl "bool" reals nil)
(T_high type-eq-decl nil product nil)
(T_low type-eq-decl nil product nil)
(numfield nonempty-type-eq-decl nil number_fields nil)
(- const-decl "[numfield, numfield -> numfield]" number_fields nil)
(~ const-decl "nat" naturalnumbers nil)
(IF const-decl "[boolean, T, T -> T]" if_def nil)
(product_eq formula-decl nil product 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)
(product def-decl "real" product nil)
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil)
(< const-decl "bool" reals nil)
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil)
(int_plus_int_is_int application-judgement "int" integers nil))
nil))
(product_shift_i_TCC1 0
(product_shift_i_TCC1-1 nil 3411831032 ("" (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)
(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)
(>= const-decl "bool" reals nil)
(nat nonempty-type-eq-decl nil naturalnumbers 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_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil))
nil))
(product_shift_i_TCC2 0
(product_shift_i_TCC2-1 nil 3411831032 ("" (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)
(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)
(>= const-decl "bool" reals nil)
(nat nonempty-type-eq-decl nil naturalnumbers 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_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil))
nil))
(product_shift_i_TCC3 0
(product_shift_i_TCC3-1 nil 3411831032 ("" (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)
(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)
(>= const-decl "bool" reals 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)
(int_plus_int_is_int application-judgement "int" integers nil)
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil))
nil))
(product_shift_i 0
(product_shift_i-1 nil 3411831064
("" (skosimp*)
(("" (rewrite "product_shift_T2")
(("1" (rewrite "product_restrict_eq")
(("1" (hide 2)
(("1" (expand "restrict") (("1" (propax) nil nil)) nil)) nil)
("2" (skosimp*) (("2" (assert) nil nil)) nil))
nil)
("2" (case "low!1 <= high!1")
(("1" (assert) nil nil) ("2" (grind) nil nil)) nil))
nil))
nil)
((product_shift_T2 formula-decl nil product nil)
(OR const-decl "[bool, bool -> bool]" booleans nil)
(<= const-decl "bool" reals nil)
(T_high type-eq-decl nil product nil)
(T_low type-eq-decl nil product 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)
(int_plus_int_is_int application-judgement "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)
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil)
(restrict const-decl "[T -> real]" product nil)
(< const-decl "bool" reals nil)
(+ const-decl "[numfield, numfield -> numfield]" number_fields nil)
(numfield nonempty-type-eq-decl nil number_fields nil)
(IF const-decl "[boolean, T, T -> T]" if_def nil)
(product_restrict_eq formula-decl nil product nil)
(NOT const-decl "[bool -> bool]" booleans nil)
(IMPLIES const-decl "[bool, bool -> bool]" booleans nil)
(product def-decl "real" product nil)
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil))
nil))
(product_first_ge 0
(product_first_ge-1 nil 3308675684
("" (skosimp*) (("" (rewrite "product_first") nil nil)) nil)
((product_first formula-decl nil product nil)
(OR const-decl "[bool, bool -> bool]" booleans nil)
(<= const-decl "bool" reals nil)
(T_high type-eq-decl nil product nil)
(T_low type-eq-decl nil product 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))
nil))
(product_split_ge_TCC1 0
(product_split_ge_TCC1-1 nil 3352162210
("" (skosimp*) (("" (inst + 0) (("" (assert) nil nil)) nil)) 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)
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props 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))
(product_split_ge_TCC2 0
(product_split_ge_TCC2-1 nil 3403006081
("" (skosimp*) (("" (assert) nil nil)) nil)
((int_plus_int_is_int application-judgement "int" integers nil)
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil)
(int_minus_int_is_int application-judgement "int" integers nil)
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil))
nil))
(product_split_ge 0
(product_split_ge-1 nil 3308675684
("" (skosimp*) (("" (rewrite "product_split") nil nil)) nil)
((product_split formula-decl nil product nil)
(OR const-decl "[bool, bool -> bool]" booleans nil)
(<= const-decl "bool" reals nil)
(T_high type-eq-decl nil product nil)
(T_low type-eq-decl nil product 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))
nil))
(product_reverse_TCC1 0
(product_reverse_TCC1-1 nil 3620035296 ("" (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)
(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)
(>= const-decl "bool" reals 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)
(int_plus_int_is_int application-judgement "int" integers nil))
nil))
(product_reverse 0
(product_reverse-1 nil 3620035321
(""
(case "FORALL (n:nat, F:[nat->real], high:int, low:nat):
(low <= high AND n = high-low) IMPLIES
product(low, high, F) =
product(low, high,
LAMBDA (j: nat):
IF high + low - j < 0 THEN 0
ELSE F(high + low - j)
ENDIF)")
(("1" (skeep)
(("1" (inst?)
(("1" (inst -1 "high-low")
(("1" (ground) nil nil) ("2" (ground) nil nil)) nil))
nil))
nil)
("2" (hide 2)
(("2" (induct "n")
(("1" (skeep)
(("1" (both-sides "+" "low" -2)
(("1" (simplify -2)
(("1" (replace -2)
(("1" (lemma "product_eq_arg")
(("1" (inst-cp -1 "F" "high")
(("1"
(inst-cp -1 "LAMBDA (j: nat):
IF high + high - j < 0 THEN 0
ELSE F(high + high - j)
ENDIF" "high")
(("1" (hide -1)
(("1" (replace -1)
(("1" (replace -2)
(("1" (lift-if 1)
(("1"
(split 1)
(("1"
(flatten)
(("1" (ground) nil nil))
nil)
("2"
(flatten)
(("2" (ground) nil nil))
nil))
nil))
nil))
nil))
nil))
nil)
("2" (ground) nil nil)
("3" (skeep) (("3" (ground) nil nil)) nil))
nil)
("2" (ground) nil nil))
nil))
nil))
nil))
nil))
nil))
nil)
("2" (skeep)
(("2" (skeep)
(("2" (lemma "product_first_ge")
(("2" (inst -1 "F" "high" "low")
(("2" (split -1)
(("1" (replace -1)
(("1" (lemma "product_split_ge")
(("1"
(inst -1 "LAMBDA (j: nat):
IF high + low - j < 0 THEN 0 ELSE F(high + low - j) ENDIF"
"high" "high-1" "low")
(("1" (split -1)
(("1" (replace -1)
(("1" (hide (-1 -2))
(("1"
(simplify 1)
(("1"
(rewrite "product_eq_arg")
(("1"
(case-replace "F(low) = 0")
(("1" (ground) nil nil)
("2"
(cancel-by 2 "F(low)")
(("2"
(hide (1 2))
(("2"
(lemma "product_shift")
(("2"
(inst
-1
"F"
"high-1"
"low"
"1")
(("2"
(simplify -1)
(("2"
(replace -1)
(("2"
(name-replace
"G"
"LAMBDA (n: nat): F(1 + n)")
(("2"
(inst
-2
"G"
"high-1"
"low")
(("2"
(split -2)
(("1"
(replace -1)
(("1"
(lemma
"product_eq")
(("1"
(inst
-1
"LAMBDA (j: nat):
IF high - 1 + low - j < 0 THEN 0
ELSE G(high - 1 + low - j)
ENDIF"
"LAMBDA (j: nat):
IF high - j + low < 0 THEN 0
ELSE F(high - j + low)
ENDIF"
"high-1"
"low")
(("1"
(hide
(-2 -3))
(("1"
(split
-1)
(("1"
(propax)
nil
nil)
("2"
(hide
2)
(("2"
(skeep)
(("2"
(lift-if
1)
(("2"
(lift-if
1)
(("2"
(lift-if
1)
(("2"
(split
1)
(("1"
(flatten)
(("1"
(split
1)
(("1"
(propax)
nil
nil)
("2"
(flatten)
(("2"
(ground)
nil
nil))
nil))
nil))
nil)
("2"
(flatten)
(("2"
(split)
(("1"
(flatten)
(("1"
(ground)
nil
nil))
nil)
("2"
(flatten)
(("2"
(ground)
(("2"
(expand
"G")
(("2"
(propax)
nil
nil))
nil))
nil))
nil))
nil))
nil))
nil))
nil))
nil))
nil))
nil))
nil))
nil))
nil)
("2"
(skeep)
(("2"
(ground)
nil
nil))
nil)
("3"
(skeep)
(("3"
(ground)
nil
nil))
nil))
nil))
nil))
nil)
("2"
(ground)
nil
nil)
("3"
(ground)
nil
nil))
nil))
nil))
nil))
nil))
nil))
nil))
nil))
nil))
nil))
nil)
("2"
(skeep)
(("2" (ground) nil nil))
nil))
nil))
nil))
nil))
nil)
("2" (ground) nil nil)
("3" (ground) nil nil))
nil)
("2" (skeep) (("2" (ground) nil nil)) nil))
nil))
nil))
nil)
("2" (ground) nil nil))
nil))
nil))
nil))
nil))
nil)
("3" (hide 2)
(("3" (skeep) (("3" (skeep) (("3" (ground) nil nil)) nil))
nil))
nil)
("4" (hide 2) (("4" (skeep) (("4" (assert) nil nil)) nil))
nil))
nil))
nil)
("3" (hide 2)
(("3" (skeep) (("3" (skeep) (("3" (ground) nil nil)) nil)) nil))
nil)
("4" (hide 2) (("4" (skeep) (("4" (grind) nil nil)) nil)) nil))
nil)
((product_first_ge formula-decl nil product_nat nil)
(product_split_ge formula-decl nil product_nat nil)
(posint_plus_nnint_is_posint application-judgement "posint"
integers nil)
(bijective? const-decl "bool" functions nil)
(id const-decl "(bijective?[T, T])" identity nil)
(TRUE const-decl "bool" booleans nil)
(/= const-decl "boolean" notequal nil)
(CBD_91 skolem-const-decl "real" product_nat nil)
(/ const-decl "[numfield, nznum -> numfield]" number_fields nil)
(nznum nonempty-type-eq-decl nil number_fields nil)
(nonzero_real nonempty-type-eq-decl nil reals nil)
(both_sides_times1 formula-decl nil real_props nil)
(nzreal_div_nzreal_is_nzreal application-judgement "nzreal"
real_types nil)
(product_shift formula-decl nil product_nat nil)
(product_eq formula-decl nil product nil)
(G skolem-const-decl "[nat -> real]" product_nat nil)
(nnint_plus_posint_is_posint application-judgement "posint"
integers nil)
(real_times_real_is_real application-judgement "real" reals nil)
(low skolem-const-decl "nat" product_nat nil)
(high skolem-const-decl "int" product_nat nil)
(product_eq_arg formula-decl nil product nil)
(mult_divides2 application-judgement "(divides(m))" divides nil)
(mult_divides1 application-judgement "(divides(n))" divides nil)
(even_times_int_is_even application-judgement "even_int" integers
nil)
(* const-decl "[numfield, numfield -> numfield]" number_fields nil)
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil)
(high skolem-const-decl "int" product_nat nil)
(minus_odd_is_odd application-judgement "odd_int" integers nil)
(nnint_plus_nnint_is_nnint application-judgement "nonneg_int"
integers nil)
(nat_induction formula-decl nil naturalnumbers nil)
(pred type-eq-decl nil defined_types nil)
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil)
(high skolem-const-decl "int" product_nat nil)
(low skolem-const-decl "nat" product_nat nil)
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil)
(NOT const-decl "[bool -> bool]" booleans nil)
(int_plus_int_is_int application-judgement "int" integers nil)
(int_minus_int_is_int application-judgement "int" integers 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)
(= const-decl "[T, T -> boolean]" equalities nil)
(numfield nonempty-type-eq-decl nil number_fields nil)
(- const-decl "[numfield, numfield -> numfield]" number_fields nil)
(OR const-decl "[bool, bool -> bool]" booleans nil)
(T_low type-eq-decl nil product nil)
(T_high type-eq-decl nil product nil)
(product def-decl "real" product nil)
(IF const-decl "[boolean, T, T -> T]" if_def nil)
(< const-decl "bool" reals nil)
(+ const-decl "[numfield, numfield -> numfield]" number_fields
nil))
shostak))
(product_0_neg_TCC1 0
(product_0_neg_TCC1-1 nil 3403521637
("" (skosimp*) (("" (inst + "0") (("" (assert) nil nil)) nil)) 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)
(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))
nil))
(product_0_neg 0
(product_0_neg-1 nil 3403521650
("" (skosimp*)
(("" (expand "product") (("" (postpone) nil nil)) nil)) nil)
((product def-decl "real" product nil)) shostak)))
¤ Dauer der Verarbeitung: 0.36 Sekunden
(vorverarbeitet)
¤
|
Haftungshinweis
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.
|