(unique_factorization
(FTL_sym_TCC1 0
(FTL_sym_TCC1-1 nil 3249308522 ("" (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 )
(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_minus_int_is_int application-judgement "int" integers nil )
(/= const-decl "boolean" notequal nil )
(divides const-decl "bool" divides nil )
(prime? const-decl "bool" primes "ints/" )
(list_of_primes? const-decl "bool" prime_factorization nil )
(non_decreasing? const-decl "bool" product_perm_lems nil )
(ordered_list_of_primes? const-decl "bool" prime_factorization
nil ))
nil ))
(FTL_sym_TCC2 0
(FTL_sym_TCC2-1 nil 3249308522 ("" (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 )
(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_minus_int_is_int application-judgement "int" integers nil )
(/= const-decl "boolean" notequal nil )
(divides const-decl "bool" divides nil )
(prime? const-decl "bool" primes "ints/" )
(list_of_primes? const-decl "bool" prime_factorization nil )
(non_decreasing? const-decl "bool" product_perm_lems nil )
(ordered_list_of_primes? const-decl "bool" prime_factorization
nil ))
nil ))
(FTL_sym 0
(FTL_sym-6 nil 3410715891
("" (skosimp*)
(("" (rewrite "product_fseq_split" )
(("" (rewrite "product_fseq_split" -3)
(("" (lemma "gcd_primes" )
((""
(inst -1 "seq(fs11!1)(length(fs11!1) - 1)"
"seq(fs21!1)(length(fs21!1) - 1)" )
(("1" (assert )
(("1" (split -1)
(("1" (lemma "gcd_factors" )
(("1" (inst?)
(("1" (assert )
(("1" (skosimp*)
(("1" (replace -2)
(("1" (hide -2)
(("1"
(name "Pr2"
"product(fs21!1 ^ (0, length(fs21!1) - 2))" )
(("1"
(replace -1)
(("1"
(case
"(ip!1 * seq(fs11!1)(length(fs11!1) - 1) + jp!1 * seq(fs21!1)(length(fs21!1) - 1)) * Pr2 = Pr2" )
(("1"
(hide -3)
(("1"
(case-replace
"(ip!1 * seq(fs11!1)(length(fs11!1)-1) + jp!1 * seq(fs21!1)(length(fs21!1)-1))
* Pr2
= ip!1 * seq(fs11!1)(length(fs11!1) - 1) * Pr2
+ jp!1 * seq(fs21!1)(length(fs21!1) - 1) * Pr2")
(("1"
(hide -1)
(("1"
(case
"divides(seq(fs11!1)(length(fs11!1) - 1),
ip!1 * seq(fs11!1)(length(fs11!1) - 1) * Pr2
+ jp!1 * seq(fs21!1)(length(fs21!1) - 1) * Pr2)")
(("1"
(inst -4 "Pr2" )
(("1"
(split -4)
(("1"
(expand "divides" )
(("1"
(skosimp*)
(("1"
(name
"P1"
"seq(fs11!1)(length(fs11!1) - 1)" )
(("1"
(replace -1)
(("1"
(name
"Q2"
"seq(fs21!1)(length(fs21!1) - 1)" )
(("1"
(replace -1)
(("1"
(lemma
"olop" )
(("1"
(inst?)
(("1"
(assert )
(("1"
(assert )
(("1"
(split
-1)
(("1"
(skosimp*)
(("1"
(replace
-8)
(("1"
(inst
-
"fs!1"
"fs21!1^ (0, length(fs21!1) - 2)" )
(("1"
(assert )
(("1"
(rewrite
"ordered_list_of_primes_caret" )
(("1"
(split
-6)
(("1"
(case
"l(fs!1) = l(fs21!1 ^ (0, length(fs21!1) - 2))" )
(("1"
(case
"seqn(fs!1)(i!1) = seqn(fs21!1 ^ (0, length(fs21!1) - 2))(i!1)" )
(("1"
(replace
-6)
(("1"
(hide
-3
-4
-5
-8
-9
-10
-11
-12
-14
1)
(("1"
(expand
"ordered_list_of_primes?"
-6)
(("1"
(flatten)
(("1"
(expand
"non_decreasing?" )
(("1"
(expand
"^" )
(("1"
(inst
-
"i!1"
"length(fs21!1)-1" )
(("1"
(assert )
(("1"
(replace
-1
*
lr)
(("1"
(hide
-1)
(("1"
(replace
-3
*
rl)
(("1"
(hide
-3)
(("1"
(hide-all-but
(-5
-9))
(("1"
(assert )
(("1"
(expand
"<" )
(("1"
(flatten)
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(expand
"<" )
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide
-10
-11)
(("2"
(assert )
nil
nil ))
nil ))
nil )
("2"
(hide
-2
-3
-4
-5
-6
-7
-8
-9
-10
-12
-13
-14)
(("2"
(lemma
"len3" )
(("2"
(inst?)
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide
-2
-3
-4
-5
-6
-7
-8
-9
-10
-12
-13
-14)
(("2"
(lemma
"len3" )
(("2"
(inst?)
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide
-1
-3
-4
-5
-6
-7
-8
-10
-11
-12
-13
-14
2)
(("2"
(expand
"ordered_list_of_primes?" )
(("2"
(flatten)
(("2"
(expand
"list_of_primes?" )
(("2"
(inst?)
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(replace
-5)
(("2"
(hide
-3
-5
-7
-8
-9
-10
-11
-12
-13
-14
2)
(("2"
(lemma
"pos_times_gt" )
(("2"
(inst?)
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil )
("3"
(assert )
(("3"
(hide
-1
-2
-3
-4
-6
-7
-2)
(("3"
(replace
-1)
(("3"
(hide
-1)
(("3"
(lemma
"both_sides_times_pos_gt1" )
(("3"
(inst
-1
"Pr2"
"seq(fs21!1)(length(fs21!1) - 1)"
"1" )
(("3"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide
-1
-2
-3
-4
-6
-7
-2)
(("2"
(replace -1)
(("2"
(hide -1)
(("2"
(lemma
"both_sides_times_pos_gt1" )
(("2"
(inst
-1
"Pr2"
"seq(fs21!1)(length(fs21!1) - 1)"
"1" )
(("2"
(assert )
(("2"
(hide
-1
-2
-3
-4
2
3)
(("2"
(reveal
-12)
(("2"
(expand
"ordered_list_of_primes?" )
(("2"
(flatten)
(("2"
(expand
"list_of_primes?" )
(("2"
(inst?)
(("2"
(lemma
"prime_gt_1" )
(("2"
(inst?)
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(case-replace
"jp!1 * seq(fs21!1)(length(fs21!1) - 1) * Pr2 = jp!1 * j!1" )
(("1"
(replace -5)
(("1"
(hide -1 -2 -4)
(("1"
(lemma
"divides_plus" )
(("1"
(inst?)
(("1"
(assert )
(("1"
(hide 2 3)
(("1"
(prop)
(("1"
(expand
"divides" )
(("1"
(inst
+
"Pr2*ip!1" )
(("1"
(assert )
nil
nil ))
nil ))
nil )
("2"
(expand
"divides" )
(("2"
(name-replace
"P1"
"product(fs11!1 ^ (0, length(fs11!1) - 2))" )
(("2"
(inst
+
"jp!1*P1" )
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (assert ) nil nil ))
nil ))
nil ))
nil )
("2" (assert ) nil nil ))
nil ))
nil )
("2" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (hide -1 -2 -3 -5 -6 -7 -8 -9 2)
(("2" (expand "ordered_list_of_primes?" )
(("2" (flatten)
(("2" (expand "list_of_primes?" )
(("2" (inst?) nil nil )) nil ))
nil ))
nil ))
nil )
("3" (hide -1 -2 -3 -4 -6 -7 -8 -9 2)
(("3" (expand "ordered_list_of_primes?" )
(("3" (flatten)
(("3" (expand "list_of_primes?" )
(("3" (inst?) nil nil )) nil ))
nil ))
nil ))
nil )
("4" (expand "<" ) (("4" (assert ) nil nil )) nil ))
nil ))
nil )
("2" (assert ) nil nil ) ("3" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((product_fseq_split formula-decl nil product_fseq_posnat "reals/" )
(nat nonempty-type-eq-decl nil naturalnumbers 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 )
(nonneg_int nonempty-type-eq-decl nil integers nil )
(> const-decl "bool" reals nil )
(posnat nonempty-type-eq-decl nil integers nil )
(barray type-eq-decl nil fseqs "structures/" )
(fseq type-eq-decl nil fseqs "structures/" )
(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 )
(posint_times_posint_is_posint application-judgement "posint"
integers nil )
(gcd_primes formula-decl nil unique_scaf 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 )
(gcd_factors formula-decl nil gcd "ints/" )
(= const-decl "[T, T -> boolean]" equalities nil )
(product const-decl "posnat" product_fseq_posnat "reals/" )
(^ const-decl "fseq" fseqs "structures/" )
(* const-decl "[numfield, numfield -> numfield]" number_fields nil )
(+ const-decl "[numfield, numfield -> numfield]" number_fields nil )
(int_plus_int_is_int application-judgement "int" integers nil )
(divides const-decl "bool" divides nil )
(AND const-decl "[bool, bool -> bool]" booleans nil )
(P1 skolem-const-decl "posnat" unique_factorization nil )
(Pr2 skolem-const-decl "posnat" unique_factorization nil )
(ip!1 skolem-const-decl "int" unique_factorization nil )
(Q2 skolem-const-decl "posnat" unique_factorization nil )
(jp!1 skolem-const-decl "int" unique_factorization nil )
(x!1 skolem-const-decl "int" unique_factorization nil )
(list_of_primes? const-decl "bool" prime_factorization nil )
(below type-eq-decl nil naturalnumbers nil )
(< const-decl "bool" reals nil )
(ordered_list_of_primes_caret formula-decl nil unique_scaf nil )
(ordered_list_of_primes? const-decl "bool" prime_factorization nil )
(non_decreasing? const-decl "bool" product_perm_lems nil )
(fs!1 skolem-const-decl "fseq[posnat]" unique_factorization nil )
(i!1 skolem-const-decl "below(length(fs!1))" unique_factorization
nil )
(len3 formula-decl nil unique_scaf nil )
(pos_times_gt formula-decl nil real_props nil )
(posreal nonempty-type-eq-decl nil real_types nil )
(nonneg_real nonempty-type-eq-decl nil real_types nil )
(both_sides_times_pos_gt1 formula-decl nil real_props nil )
(olop formula-decl nil unique_scaf nil )
(prime_gt_1 formula-decl nil primes "ints/" )
(divides_plus formula-decl nil divides_lems "ints/" )
(/= const-decl "boolean" notequal nil )
(nzint nonempty-type-eq-decl nil integers nil )
(fs21!1 skolem-const-decl "fseq[posnat]" unique_factorization nil )
(fs11!1 skolem-const-decl "fseq[posnat]" unique_factorization nil )
(- const-decl "[numfield, numfield -> numfield]" number_fields nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil ))
nil )
(FTL_sym-5 nil 3410622718
("" (skosimp*)
(("" (rewrite "product_fseq_split" )
(("" (rewrite "product_fseq_split" -3)
(("" (lemma "gcd_primes" )
((""
(inst -1 "seq(fs11!1)(length(fs11!1) - 1)"
"seq(fs21!1)(length(fs21!1) - 1)" )
(("1" (assert )
(("1" (split -1)
(("1" (lemma "gcd_factors" )
(("1" (inst?)
(("1" (assert )
(("1" (skosimp*)
(("1" (replace -2)
(("1" (hide -2)
(("1"
(name "Pr2"
"product(fs21!1 ^ (0, length(fs21!1) - 2))" )
(("1"
(replace -1)
(("1"
(case
"(ip!1 * seq(fs11!1)(length(fs11!1) - 1) + jp!1 * seq(fs21!1)(length(fs21!1) - 1)) * Pr2 = Pr2" )
(("1"
(hide -3)
(("1"
(case-replace
"(ip!1 * seq(fs11!1)(length(fs11!1)-1) + jp!1 * seq(fs21!1)(length(fs21!1)-1))
* Pr2
= ip!1 * seq(fs11!1)(length(fs11!1) - 1) * Pr2
+ jp!1 * seq(fs21!1)(length(fs21!1) - 1) * Pr2")
(("1"
(hide -1)
(("1"
(case
"divides(seq(fs11!1)(length(fs11!1) - 1),
ip!1 * seq(fs11!1)(length(fs11!1) - 1) * Pr2
+ jp!1 * seq(fs21!1)(length(fs21!1) - 1) * Pr2)")
(("1"
(inst -4 "Pr2" )
(("1"
(split -4)
(("1"
(expand "divides" )
(("1"
(skosimp*)
(("1"
(name
"P1"
"seq(fs11!1)(length(fs11!1) - 1)" )
(("1"
(replace -1)
(("1"
(name
"Q2"
"seq(fs21!1)(length(fs21!1) - 1)" )
(("1"
(replace -1)
(("1"
(lemma
"olop" )
(("1"
(inst?)
(("1"
(assert )
(("1"
(assert )
(("1"
(split
-1)
(("1"
(skosimp*)
(("1"
(replace
-8)
(("1"
(inst
-
"fs!1"
"fs21!1^ (0, length(fs21!1) - 2)" )
(("1"
(assert )
(("1"
(rewrite
"ordered_list_of_primes_caret" )
(("1"
(split
-6)
(("1"
(case
"length(fs!1) = length(fs21!1 ^ (0, length(fs21!1) - 2))" )
(("1"
(case
"seq(fs!1)(i!1) = seq(fs21!1 ^ (0, length(fs21!1) - 2))(i!1)" )
(("1"
(replace
-6)
(("1"
(hide
-3
-4
-5
-8
-9
-10
-11
-12
-14
1)
(("1"
(expand
"ordered_list_of_primes?"
-6)
(("1"
(flatten)
(("1"
(expand
"non_decreasing?" )
(("1"
(expand
"^" )
(("1"
(inst
-
"i!1"
"length(fs21!1)-1" )
(("1"
(assert )
nil
nil )
("2"
(typepred
"i!1" )
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide
-10
-11)
(("2"
(assert )
nil
nil ))
nil )
("3"
(assert )
nil
nil ))
nil )
("2"
(hide
-2
-3
-4
-5
-6
-7
-8
-9
-10
-12
-13
-14)
(("2"
(lemma
"len3" )
(("2"
(inst?)
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide
-2
-3
-4
-5
-6
-7
-8
-9
-10
-12
-13
-14)
(("2"
(lemma
"len3" )
(("2"
(inst?)
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide
-1
-3
-4
-5
-6
-7
-8
-10
-11
-12
-13
-14
2)
(("2"
(expand
"ordered_list_of_primes?" )
(("2"
(flatten)
(("2"
(expand
"list_of_primes?" )
(("2"
(inst?)
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(replace
-5)
(("2"
(hide
-3
-5
-7
-8
-9
-10
-11
-12
-13
-14
2)
(("2"
(lemma
"pos_times_gt" )
(("2"
(inst?)
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil )
("3"
(assert )
(("3"
(hide
-1
-2
-3
-4
-6
-7
-2)
(("3"
(replace
-1)
(("3"
(hide
-1)
(("3"
(lemma
"both_sides_times_pos_gt1" )
(("3"
(inst
-1
"Pr2"
"seq(fs21!1)(length(fs21!1) - 1)"
"1" )
(("3"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide
-1
-2
-3
-4
-6
-7
-2)
(("2"
(replace -1)
(("2"
(hide -1)
(("2"
(lemma
"both_sides_times_pos_gt1" )
(("2"
(inst
-1
"Pr2"
"seq(fs21!1)(length(fs21!1) - 1)"
"1" )
(("2"
(assert )
(("2"
(hide
-1
-2
-3
-4
2
3)
(("2"
(reveal
-12)
(("2"
(expand
"ordered_list_of_primes?" )
(("2"
(flatten)
(("2"
(expand
"list_of_primes?" )
(("2"
(inst?)
(("2"
(lemma
"prime_gt_1" )
(("2"
(inst?)
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(case-replace
"jp!1 * seq(fs21!1)(length(fs21!1) - 1) * Pr2 = jp!1 * j!1" )
(("1"
(replace -5)
(("1"
(hide -1 -2 -4)
(("1"
(lemma
"divides_plus" )
(("1"
(inst?)
(("1"
(assert )
(("1"
(hide 2 3)
(("1"
(prop)
(("1"
(expand
"divides" )
(("1"
(inst
+
"Pr2*ip!1" )
(("1"
(assert )
nil
nil ))
nil ))
nil )
("2"
(expand
"divides" )
(("2"
(name-replace
"P1"
"product(fs11!1 ^ (0, length(fs11!1) - 2))" )
(("2"
(inst
+
"jp!1*P1" )
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (assert ) nil nil ))
nil ))
nil ))
nil )
("2" (assert ) nil nil ))
nil ))
nil )
("2" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (hide -1 -2 -3 -5 -6 -7 -8 -9 2)
(("2" (expand "ordered_list_of_primes?" )
(("2" (flatten)
(("2" (expand "list_of_primes?" )
(("2" (inst?) nil nil )) nil ))
nil ))
nil ))
nil )
("3" (hide -1 -2 -3 -4 -6 -7 -8 -9 2)
(("3" (expand "ordered_list_of_primes?" )
(("3" (flatten)
(("3" (expand "list_of_primes?" )
(("3" (inst?) nil nil )) nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (assert ) nil nil ) ("3" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((barray type-eq-decl nil fseqs "structures/" )
(fseq type-eq-decl nil fseqs "structures/" )
(gcd_primes formula-decl nil unique_scaf nil )
(gcd_factors formula-decl nil gcd "ints/" )
(^ const-decl "fseq" fseqs "structures/" )
(list_of_primes? const-decl "bool" prime_factorization nil )
(ordered_list_of_primes_caret formula-decl nil unique_scaf nil )
(ordered_list_of_primes? const-decl "bool" prime_factorization nil )
(non_decreasing? const-decl "bool" product_perm_lems nil )
(len3 formula-decl nil unique_scaf nil )
(olop formula-decl nil unique_scaf nil )
(prime_gt_1 formula-decl nil primes "ints/" )
(divides_plus formula-decl nil divides_lems "ints/" ))
nil )
(FTL_sym-4 nil 3410545718
("" (skosimp*)
(("" (rewrite "product_split" )
(("" (rewrite "product_split" -3)
(("" (lemma "gcd_primes" )
((""
(inst -1 "seq(fs11!1)(length(fs11!1) - 1)"
"seq(fs21!1)(length(fs21!1) - 1)" )
(("1" (assert )
(("1" (split -1)
(("1" (lemma "gcd_factors" )
(("1" (inst?)
(("1" (assert )
(("1" (skosimp*)
(("1" (replace -2)
(("1" (hide -2)
(("1"
(name "Pr2"
"product(fs21!1 ^^ (0, length(fs21!1) - 2))" )
(("1"
(replace -1)
(("1"
(case
"(ip!1 * seq(fs11!1)(length(fs11!1) - 1) + jp!1 * seq(fs21!1)(length(fs21!1) - 1)) * Pr2 = Pr2" )
(("1"
(hide -3)
(("1"
(case-replace
"(ip!1 * seq(fs11!1)(length(fs11!1)-1) + jp!1 * seq(fs21!1)(length(fs21!1)-1))
* Pr2
= ip!1 * seq(fs11!1)(length(fs11!1) - 1) * Pr2
+ jp!1 * seq(fs21!1)(length(fs21!1) - 1) * Pr2")
(("1"
(hide -1)
(("1"
(case
"divides(seq(fs11!1)(length(fs11!1) - 1),
ip!1 * seq(fs11!1)(length(fs11!1) - 1) * Pr2
+ jp!1 * seq(fs21!1)(length(fs21!1) - 1) * Pr2)")
(("1"
(inst -4 "Pr2" )
(("1"
(split -4)
(("1"
(expand "divides" )
(("1"
(skosimp*)
(("1"
(name
"P1"
"seq(fs11!1)(length(fs11!1) - 1)" )
(("1"
(replace -1)
(("1"
(name
"Q2"
"seq(fs21!1)(length(fs21!1) - 1)" )
(("1"
(replace -1)
(("1"
(lemma
"olop" )
(("1"
(inst?)
(("1"
(assert )
(("1"
(split
-1)
(("1"
(skosimp*)
(("1"
(replace
-8)
(("1"
(inst
-
"fs!1"
"fs21!1^^ (0, length(fs21!1) - 2)" )
(("1"
(assert )
(("1"
(rewrite
"ordered_list_of_primes_caret" )
(("1"
(split
-6)
(("1"
(case
"length(fs!1) = length(fs21!1 ^^ (0, length(fs21!1) - 2))" )
(("1"
(case
"seq(fs!1)(i!1) = seq(fs21!1 ^^ (0, length(fs21!1) - 2))(i!1)" )
(("1"
(replace
-6)
(("1"
(hide
-3
-4
-5
-8
-9
-10
-11
-12
-14
1)
(("1"
(expand
"ordered_list_of_primes?"
-6)
(("1"
(flatten)
(("1"
(expand
"non_decreasing?" )
(("1"
(expand
"^^" )
(("1"
(inst
-
"i!1"
"length(fs21!1)-1" )
(("1"
(assert )
nil
nil )
("2"
(typepred
"i!1" )
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide
-10
-11)
(("2"
(assert )
nil
nil ))
nil ))
nil )
("2"
(assert )
nil
nil ))
nil )
("2"
(hide
-2
-3
-4
-5
-6
-7
-8
-9
-10
-12
-13
-14)
(("2"
(lemma
"len3" )
(("2"
(inst?)
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(propax)
nil
nil )
("3"
(hide
-1
-3
-4
-5
-6
-7
-8
-10
-11
-12
-13
-14
2)
(("3"
(expand
"ordered_list_of_primes?" )
(("3"
(flatten)
(("3"
(expand
"list_of_primes?" )
(("3"
(inst?)
(("3"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(replace
-5)
(("2"
(hide
-3
-5
-7
-8
-9
-10
-11
-12
-13
-14
2)
(("2"
(lemma
"pos_times_gt" )
(("2"
(inst?)
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil )
("3"
(assert )
(("3"
(hide
-1
-2
-3
-4
-6
-7
-2)
(("3"
(replace
-1)
(("3"
(hide
-1)
(("3"
(lemma
"both_sides_times_pos_gt1" )
(("3"
(inst
-1
"Pr2"
"seq(fs21!1)(length(fs21!1) - 1)"
"1" )
(("3"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide
-1
-2
-3
-4
-6
-7
-2)
(("2"
(replace -1)
(("2"
(hide -1)
(("2"
(lemma
"both_sides_times_pos_gt1" )
(("2"
(inst
-1
"Pr2"
"seq(fs21!1)(length(fs21!1) - 1)"
"1" )
(("2"
(assert )
(("2"
(hide
-1
-2
-3
-4
2
3)
(("2"
(reveal
-12)
(("2"
(expand
"ordered_list_of_primes?" )
(("2"
(flatten)
(("2"
(expand
"list_of_primes?" )
(("2"
(inst?)
(("2"
(lemma
"prime_gt_1" )
(("2"
(inst?)
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(case-replace
"jp!1 * seq(fs21!1)(length(fs21!1) - 1) * Pr2 = jp!1 * j!1" )
(("1"
(replace -5)
(("1"
(hide -1 -2 -4)
(("1"
(lemma
"divides_plus" )
(("1"
(inst?)
(("1"
(assert )
(("1"
(hide 2 3)
(("1"
(prop)
(("1"
(expand
"divides" )
(("1"
(inst
+
"Pr2*ip!1" )
(("1"
(assert )
nil
nil ))
nil ))
nil )
("2"
(expand
"divides" )
(("2"
(name-replace
"P1"
"product(fs11!1 ^^ (0, length(fs11!1) - 2))" )
(("2"
(inst
+
"jp!1*P1" )
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (assert ) nil nil ))
nil ))
nil ))
nil )
("2" (assert ) nil nil ))
nil ))
nil )
("2" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (hide -1 -2 -3 -5 -6 -7 -8 -9 2)
(("2" (expand "ordered_list_of_primes?" )
(("2" (flatten)
(("2" (expand "list_of_primes?" )
(("2" (inst?) nil nil )) nil ))
nil ))
nil ))
nil )
("3" (hide -1 -2 -3 -4 -6 -7 -8 -9 2)
(("3" (expand "ordered_list_of_primes?" )
(("3" (flatten)
(("3" (expand "list_of_primes?" )
(("3" (inst?) nil nil )) nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (assert ) nil nil ) ("3" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((divides_plus formula-decl nil divides_lems "ints/" )
(prime_gt_1 formula-decl nil primes "ints/" )
(list_of_primes? const-decl "bool" prime_factorization nil )
(ordered_list_of_primes? const-decl "bool" prime_factorization nil )
(non_decreasing? const-decl "bool" product_perm_lems nil )
(gcd_factors formula-decl nil gcd "ints/" ))
nil )
(FTL_sym-3 nil 3407848713
("" (skosimp*)
(("" (rewrite "product_split" )
(("" (rewrite "product_split" -3)
(("" (lemma "gcd_primes" )
((""
(inst -1 "seq(fs11!1)(length(fs11!1) - 1)"
"seq(fs21!1)(length(fs21!1) - 1)" )
(("1" (assert )
(("1" (split -1)
(("1" (lemma "gcd_factors" )
(("1" (inst?)
(("1" (assert )
(("1" (skosimp*)
(("1" (replace -2)
(("1" (hide -2)
(("1"
(name "Pr2"
"product(fs21!1 ^ (0, length(fs21!1) - 2))" )
(("1"
(replace -1)
(("1"
(case
"(ip!1 * seq(fs11!1)(length(fs11!1) - 1) + jp!1 * seq(fs21!1)(length(fs21!1) - 1)) * Pr2 = Pr2" )
(("1"
(hide -3)
(("1"
(case-replace
"(ip!1 * seq(fs11!1)(length(fs11!1)-1) + jp!1 * seq(fs21!1)(length(fs21!1)-1))
* Pr2
= ip!1 * seq(fs11!1)(length(fs11!1) - 1) * Pr2
+ jp!1 * seq(fs21!1)(length(fs21!1) - 1) * Pr2")
(("1"
(hide -1)
(("1"
(case
"divides(seq(fs11!1)(length(fs11!1) - 1),
ip!1 * seq(fs11!1)(length(fs11!1) - 1) * Pr2
+ jp!1 * seq(fs21!1)(length(fs21!1) - 1) * Pr2)")
(("1"
(inst -4 "Pr2" )
(("1"
(split -4)
(("1"
(expand "divides" )
(("1"
(skosimp*)
(("1"
(name
"P1"
"seq(fs11!1)(length(fs11!1) - 1)" )
(("1"
(replace -1)
(("1"
(name
"Q2"
"seq(fs21!1)(length(fs21!1) - 1)" )
(("1"
(replace -1)
(("1"
(lemma
"olop" )
(("1"
(inst?)
(("1"
(assert )
(("1"
(split
-1)
(("1"
(skosimp*)
(("1"
(replace
-8)
(("1"
(inst
-
"fs!1"
"fs21!1^ (0, length(fs21!1) - 2)" )
(("1"
(assert )
(("1"
(rewrite
"ordered_list_of_primes_caret" )
(("1"
(split
-6)
(("1"
(case
"length(fs!1) = length(fs21!1 ^ (0, length(fs21!1) - 2))" )
(("1"
(case
"seq(fs!1)(i!1) = seq(fs21!1 ^ (0, length(fs21!1) - 2))(i!1)" )
(("1"
(replace
-6)
(("1"
(hide
-3
-4
-5
-8
-9
-10
-11
-12
-14
1)
(("1"
(expand
"ordered_list_of_primes?"
-6)
(("1"
(flatten)
(("1"
(expand
"non_decreasing?" )
(("1"
(expand
"^" )
(("1"
(inst
-
"i!1"
"length(fs21!1)-1" )
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide
-10
-11)
(("2"
(assert )
nil
nil ))
nil )
("3"
(hide
-2
-10
-11)
(("3"
(expand
"^" )
(("3"
(expand
"min" )
(("3"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(assert )
nil
nil ))
nil )
("2"
(hide
-2
-3
-4
-5
-6
-7
-8
-9
-10
-12
-13
-14)
(("2"
(lemma
"len3" )
(("2"
(inst?)
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(propax)
nil
nil )
("3"
(hide
-1
-3
-4
-5
-6
-7
-8
-10
-11
-12
-13
-14
2)
(("3"
(expand
"ordered_list_of_primes?" )
(("3"
(flatten)
(("3"
(expand
"list_of_primes?" )
(("3"
(inst?)
(("3"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(replace
-5)
(("2"
(hide
-3
-5
-7
-8
-9
-10
-11
-12
-13
-14
2)
(("2"
(lemma
"pos_times_gt" )
(("2"
(inst?)
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil )
("3"
(assert )
(("3"
(hide
-1
-2
-3
-4
-6
-7
-2)
(("3"
(replace
-1)
(("3"
(hide
-1)
(("3"
(lemma
"both_sides_times_pos_gt1" )
(("3"
(inst
-1
"Pr2"
"seq(fs21!1)(length(fs21!1) - 1)"
"1" )
(("3"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide
-1
-2
-3
-4
-6
-7
-2)
(("2"
(replace -1)
(("2"
(hide -1)
(("2"
(lemma
"both_sides_times_pos_gt1" )
(("2"
(inst
-1
"Pr2"
"seq(fs21!1)(length(fs21!1) - 1)"
"1" )
(("2"
(assert )
(("2"
(hide
-1
-2
-3
-4
2
3)
(("2"
(reveal
-12)
(("2"
(expand
"ordered_list_of_primes?" )
(("2"
(flatten)
(("2"
(expand
"list_of_primes?" )
(("2"
(inst?)
(("2"
(lemma
"prime_gt_1" )
(("2"
(inst?)
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(case-replace
"jp!1 * seq(fs21!1)(length(fs21!1) - 1) * Pr2 = jp!1 * j!1" )
(("1"
(replace -5)
(("1"
(hide -1 -2 -4)
(("1"
(lemma
"divides_plus" )
(("1"
(inst?)
(("1"
(assert )
(("1"
(hide 2 3)
(("1"
(prop)
(("1"
(expand
"divides" )
(("1"
(inst
+
"Pr2*ip!1" )
(("1"
(assert )
nil
nil ))
nil ))
nil )
("2"
(expand
"divides" )
(("2"
(name-replace
"P1"
"product(fs11!1 ^ (0, length(fs11!1) - 2))" )
(("2"
(inst
+
"jp!1*P1" )
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (assert ) nil nil ))
nil ))
nil ))
nil )
("2" (assert ) nil nil ))
nil ))
nil )
("2" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (hide -1 -2 -3 -5 -6 -7 -8 -9 2)
(("2" (expand "ordered_list_of_primes?" )
(("2" (flatten)
(("2" (expand "list_of_primes?" )
(("2" (inst?) nil nil )) nil ))
nil ))
nil ))
nil )
("3" (hide -1 -2 -3 -4 -6 -7 -8 -9 2)
(("3" (expand "ordered_list_of_primes?" )
(("3" (flatten)
(("3" (expand "list_of_primes?" )
(("3" (inst?) nil nil )) nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (assert ) nil nil ) ("3" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((prime_gt_1 formula-decl nil primes "ints/" )
(list_of_primes? const-decl "bool" prime_factorization nil )
(ordered_list_of_primes? const-decl "bool" prime_factorization nil )
(non_decreasing? const-decl "bool" product_perm_lems nil )
(gcd_factors formula-decl nil gcd "ints/" ))
nil )
(FTL_sym-2 nil 3306142955
("" (skosimp*)
(("" (rewrite "product_split" )
(("" (rewrite "product_split" -3)
(("" (lemma "gcd_primes" )
((""
(inst -1 "seq(fs11!1)(length(fs11!1) - 1)"
"seq(fs21!1)(length(fs21!1) - 1)" )
(("1" (assert )
(("1" (split -1)
(("1" (lemma "gcd_factors" )
(("1" (inst?)
(("1" (assert )
(("1" (skosimp*)
(("1" (replace -2)
(("1" (hide -2)
(("1"
(name "Pr2"
"product(fs21!1 ^ (0, length(fs21!1) - 2))" )
(("1"
(replace -1)
(("1"
(case
"(ip!1 * seq(fs11!1)(length(fs11!1) - 1) + jp!1 * seq(fs21!1)(length(fs21!1) - 1)) * Pr2 = Pr2" )
(("1"
(hide -3)
(("1"
(case-replace
"(ip!1 * seq(fs11!1)(length(fs11!1)-1) + jp!1 * seq(fs21!1)(length(fs21!1)-1))
* Pr2
= ip!1 * seq(fs11!1)(length(fs11!1) - 1) * Pr2
+ jp!1 * seq(fs21!1)(length(fs21!1) - 1) * Pr2")
(("1"
(hide -1)
(("1"
(case
"divides(seq(fs11!1)(length(fs11!1) - 1),
ip!1 * seq(fs11!1)(length(fs11!1) - 1) * Pr2
+ jp!1 * seq(fs21!1)(length(fs21!1) - 1) * Pr2)")
(("1"
(inst -4 "Pr2" )
(("1"
(split -4)
(("1"
(expand "divides" )
(("1"
(skosimp*)
(("1"
(name
"P1"
"seq(fs11!1)(length(fs11!1) - 1)" )
(("1"
(replace -1)
(("1"
(name
"Q2"
"seq(fs21!1)(length(fs21!1) - 1)" )
(("1"
(replace -1)
(("1"
(lemma
"olop" )
(("1"
(inst?)
(("1"
(assert )
(("1"
(split
-1)
(("1"
(skosimp*)
(("1"
(replace
-8)
(("1"
(inst
-
"fs!1"
"fs21!1^ (0, length(fs21!1) - 2)" )
(("1"
(assert )
(("1"
(rewrite
"ordered_list_of_primes_caret" )
(("1"
(split
-6)
(("1"
(case
"length(fs!1) = length(fs21!1 ^ (0, length(fs21!1) - 2))" )
(("1"
(case
"seq(fs!1)(i!1) = seq(fs21!1 ^ (0, length(fs21!1) - 2))(i!1)" )
(("1"
(replace
-6)
(("1"
(hide
-3
-4
-5
-8
-9
-10
-11
-12
-14
1)
(("1"
(expand
"ordered_list_of_primes?"
-6)
(("1"
(flatten)
(("1"
(expand
"non_decreasing?" )
(("1"
(expand
"^" )
(("1"
(inst
-
"i!1"
"length(fs21!1)-1" )
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide
-10
-11)
(("2"
(assert )
nil
nil ))
nil )
("3"
(hide
-2
-10
-11)
(("3"
(expand
"^" )
(("3"
(expand
"min" )
(("3"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(assert )
nil
nil ))
nil )
("2"
(hide
-2
-3
-4
-5
-6
-7
-8
-9
-10
-12
-13
-14)
(("2"
(lemma
"len3" )
(("2"
(inst?)
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(propax)
nil
nil )
("3"
(hide
-1
-3
-4
-5
-6
-7
-8
-10
-11
-12
-13
-14
2)
(("3"
(expand
"ordered_list_of_primes?" )
(("3"
(flatten)
(("3"
(expand
"list_of_primes?" )
(("3"
(inst?)
(("3"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(replace
-5)
(("2"
(hide
-3
-5
-7
-8
-9
-10
-11
-12
-13
-14
2)
(("2"
(lemma
"pos_times_gt" )
(("2"
(inst?)
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil )
("3"
(assert )
(("3"
(hide
-1
-2
-3
-4
-6
-7
-2)
(("3"
(replace
-1)
(("3"
(hide
-1)
(("3"
(lemma
"both_sides_times_pos_gt1" )
(("3"
(inst
-1
"Pr2"
"seq(fs21!1)(length(fs21!1) - 1)"
"1" )
(("3"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide
-1
-2
-3
-4
-6
-7
-2)
(("2"
(replace -1)
(("2"
(hide -1)
(("2"
(lemma
"both_sides_times_pos_gt1" )
(("2"
(inst
-1
"Pr2"
"seq(fs21!1)(length(fs21!1) - 1)"
"1" )
(("2"
(assert )
(("2"
(hide
-1
-2
-3
-4
2
3)
(("2"
(reveal
-12)
(("2"
(expand
"ordered_list_of_primes?" )
(("2"
(flatten)
(("2"
(expand
"list_of_primes?" )
(("2"
(inst?)
(("2"
(lemma
"prime_gt_1" )
(("2"
(inst?)
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(case-replace
"jp!1 * seq(fs21!1)(length(fs21!1) - 1) * Pr2 = jp!1 * j!1" )
(("1"
(replace -5)
(("1"
(hide -1 -2 -4)
(("1"
(lemma
"divides_plus" )
(("1"
(inst?)
(("1"
(assert )
(("1"
(hide 2 3)
(("1"
(prop)
(("1"
(expand
"divides" )
(("1"
(inst
+
"Pr2*ip!1" )
(("1"
(assert )
nil
nil ))
nil ))
nil )
("2"
(expand
"divides" )
(("2"
(name-replace
"P1"
"product(fs11!1 ^ (0, length(fs11!1) - 2))" )
(("2"
(inst
+
"jp!1*P1" )
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (assert ) nil nil ))
nil ))
nil ))
nil )
("2" (assert ) nil nil ))
nil ))
nil )
("2" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (hide -1 -2 -3 -5 -6 -7 -8 -9 2)
(("2" (expand "ordered_list_of_primes?" )
(("2" (flatten)
(("2" (expand "list_of_primes?" )
(("2" (inst?) nil nil )) nil ))
nil ))
nil ))
nil )
("3" (hide -1 -2 -3 -4 -6 -7 -8 -9 2)
(("3" (expand "ordered_list_of_primes?" )
(("3" (flatten)
(("3" (expand "list_of_primes?" )
(("3" (inst?) nil nil )) nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (assert ) nil nil ) ("3" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((gcd_factors formula-decl nil gcd "ints/" )
(non_decreasing? const-decl "bool" product_perm_lems nil )
(ordered_list_of_primes? const-decl "bool" prime_factorization nil )
(list_of_primes? const-decl "bool" prime_factorization nil )
(prime_gt_1 formula-decl nil primes "ints/" ))
nil )
(FTL_sym-1 nil 3249308522
("" (skosimp*)
(("" (rewrite "product_split" )
(("" (rewrite "product_split" -3)
(("" (lemma "gcd_primes" )
((""
(inst -1 "seq(fs1!1)(length(fs1!1) - 1)"
"seq(fs2!1)(length(fs2!1) - 1)" )
(("1" (assert )
(("1" (split -1)
(("1" (lemma "gcd_factors" )
(("1" (inst?)
(("1" (assert )
(("1" (skosimp*)
(("1" (replace -2)
(("1" (hide -2)
(("1"
(name "Pr2"
"product(fs2!1 ^ (0, length(fs2!1) - 2))" )
(("1"
(replace -1)
(("1"
(case
"(ip!1 * seq(fs1!1)(length(fs1!1) - 1) + jp!1 * seq(fs2!1)(length(fs2!1) - 1)) * Pr2 = Pr2" )
(("1"
(hide -3)
(("1"
(case-replace
"(ip!1 * seq(fs1!1)(length(fs1!1)-1) + jp!1 * seq(fs2!1)(length(fs2!1)-1))
* Pr2
= ip!1 * seq(fs1!1)(length(fs1!1) - 1) * Pr2
+ jp!1 * seq(fs2!1)(length(fs2!1) - 1) * Pr2")
(("1"
(hide -1)
(("1"
(case
"divides(seq(fs1!1)(length(fs1!1) - 1),
ip!1 * seq(fs1!1)(length(fs1!1) - 1) * Pr2
+ jp!1 * seq(fs2!1)(length(fs2!1) - 1) * Pr2)")
(("1"
(inst -4 "Pr2" )
(("1"
(split -4)
(("1"
(expand "divides" )
(("1"
(skosimp*)
(("1"
(name
"P1"
"seq(fs1!1)(length(fs1!1) - 1)" )
(("1"
(replace -1)
(("1"
(name
"Q2"
"seq(fs2!1)(length(fs2!1) - 1)" )
(("1"
(replace -1)
(("1"
(lemma
"olop" )
(("1"
(inst?)
(("1"
(assert )
(("1"
(split
-1)
(("1"
(skosimp*)
(("1"
(replace
-8)
(("1"
(inst
-
"fs!1"
"fs2!1^ (0, length(fs2!1) - 2)" )
(("1"
(assert )
(("1"
(rewrite
"ordered_list_of_primes_caret" )
(("1"
(split
-6)
(("1"
(case
"length(fs!1) = length(fs2!1 ^ (0, length(fs2!1) - 2))" )
(("1"
(case
"seq(fs!1)(i!1) = seq(fs2!1 ^ (0, length(fs2!1) - 2))(i!1)" )
(("1"
(replace
-6)
(("1"
(hide
-3
-4
-5
-8
-9
-10
-11
-12
-14
1)
(("1"
(expand
"ordered_list_of_primes?"
-6)
(("1"
(flatten)
(("1"
(expand
"non_decreasing?" )
(("1"
(expand
"^" )
(("1"
(inst
-
"i!1"
"length(fs2!1)-1" )
(("1"
(assert )
nil
nil )
("2"
(expand
"min" )
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide
-10
-11)
(("2"
(assert )
nil
nil ))
nil )
("3"
(hide
-2
-10
-11)
(("3"
(expand
"^" )
(("3"
(expand
"min" )
(("3"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(assert )
nil
nil ))
nil )
("2"
(hide
-2
-3
-4
-5
-6
-7
-8
-9
-10
-12
-13
-14)
(("2"
(lemma
"len3" )
(("2"
(inst?)
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(propax)
nil
nil )
("3"
(hide
-1
-3
-4
-5
-6
-7
-8
-10
-11
-12
-13
-14
2)
(("3"
(expand
"ordered_list_of_primes?" )
(("3"
(flatten)
(("3"
(expand
"list_of_primes?" )
(("3"
(inst?)
(("3"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(replace
-5)
(("2"
(hide
-3
-5
-7
-8
-9
-10
-11
-12
-13
-14
2)
(("2"
(lemma
"pos_times_gt" )
(("2"
(inst?)
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil )
("3"
(assert )
(("3"
(hide
-1
-2
-3
-4
-6
-7
-2)
(("3"
(replace
-1)
(("3"
(hide
-1)
(("3"
(lemma
"both_sides_times_pos_gt1" )
(("3"
(inst
-1
"Pr2"
"seq(fs2!1)(length(fs2!1) - 1)"
"1" )
(("3"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide
-1
-2
-3
-4
-6
-7
-2)
(("2"
(replace -1)
(("2"
(hide -1)
(("2"
(lemma
"both_sides_times_pos_gt1" )
(("2"
(inst
-1
"Pr2"
"seq(fs2!1)(length(fs2!1) - 1)"
"1" )
(("2"
(assert )
(("2"
(hide
-1
-2
-3
-4
2
3)
(("2"
(reveal
-12)
(("2"
(expand
"ordered_list_of_primes?" )
(("2"
(flatten)
(("2"
(expand
"list_of_primes?" )
(("2"
(inst?)
(("2"
(lemma
"prime_gt_1" )
(("2"
(inst?)
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(case-replace
"jp!1 * seq(fs2!1)(length(fs2!1) - 1) * Pr2 = jp!1 * j!1" )
(("1"
(replace -5)
(("1"
(hide -1 -2 -4)
(("1"
(lemma
"divides_plus" )
(("1"
(inst?)
(("1"
(assert )
(("1"
(hide 2 3)
(("1"
(prop)
(("1"
(expand
"divides" )
(("1"
(inst
+
"Pr2*ip!1" )
(("1"
(assert )
nil
nil ))
nil ))
nil )
("2"
(expand
"divides" )
(("2"
(name-replace
"P1"
"product(fs1!1 ^ (0, length(fs1!1) - 2))" )
(("2"
(inst
+
"jp!1*P1" )
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (assert ) nil nil ))
nil ))
nil ))
nil )
("2" (assert ) nil nil ))
nil ))
nil )
("2"
(assert )
(("2"
(hide -3 -4 -5 -6 -7 -8 -11 2)
(("2"
(lemma "both_sides_times1" )
(("2"
(inst
-1
"Pr2"
"1"
"ip!1 * seq(fs1!1)(length(fs1!1) - 1) + jp!1 * seq(fs2!1)(length(fs2!1) - 1)" )
(("2" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (hide -1 -2 -3 -5 -6 -7 -8 -9 2)
(("2" (expand "ordered_list_of_primes?" )
(("2" (flatten)
(("2" (expand "list_of_primes?" )
(("2" (inst?) nil nil )) nil ))
nil ))
nil ))
nil )
("3" (hide -1 -2 -3 -4 -6 -7 -8 -9 2)
(("3" (expand "ordered_list_of_primes?" )
(("3" (flatten)
(("3" (expand "list_of_primes?" )
(("3" (inst?) nil nil )) nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (assert ) nil nil ) ("3" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((gcd_factors formula-decl nil gcd "ints/" )
(non_decreasing? const-decl "bool" product_perm_lems nil )
(prime_gt_1 formula-decl nil primes "ints/" ))
nil ))
(FTL_prep 0
(FTL_prep-5 nil 3410715948
("" (induct "n" 1 "NAT_induction" )
(("" (skosimp*)
(("" (lemma "len0" )
(("" (inst-cp -1 "fs2!1" )
(("" (inst -1 "fs1!1" )
(("" (assert )
(("" (case "length(fs1!1) = 1" )
(("1" (hide -2)
(("1" (case "length(fs2!1) = 1" )
(("1" (expand "product" )
(("1" (expand "product" )
(("1" (assert )
(("1" (apply-extensionality 3 :hide? t)
(("1" (apply-extensionality 1 :hide? t)
(("1"
(case "x!1 < 1" )
(("1" (assert ) nil nil )
("2"
(typepred "fs1!1`seq" )
(("2"
(inst?)
(("2"
(assert )
(("2"
(typepred "fs2!1`seq" )
(("2"
(inst?)
(("2" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (lemma "product_fseq_split" )
(("2" (inst -1 "fs2!1" )
(("2" (assert )
(("2" (replace -1)
(("2" (hide -1)
(("2"
(expand "product" -2)
(("2"
(replace -2)
(("2"
(hide -2)
(("2"
(expand
"ordered_list_of_primes?"
-3)
(("2"
(flatten)
(("2"
(expand "list_of_primes?" )
(("2"
(inst -3 "0" )
(("2"
(expand "prime?" )
(("2"
(flatten)
(("2"
(case
"product(fs2!1 ^ (0, length(fs2!1) - 2)) = 1" )
(("1"
(replace -1)
(("1"
(lemma "len1" )
(("1"
(inst
-1
"fs2!1 ^ (0, length(fs2!1) - 2)" )
(("1"
(rewrite
"ordered_list_of_primes_caret" )
(("1"
(assert )
(("1"
(hide -2)
(("1"
(expand
"^" )
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(inst
-3
"product(fs2!1 ^ (0, length(fs2!1) - 2))" )
(("2"
(assert )
(("2"
(split -3)
(("1"
(expand
"divides" )
(("1"
(inst
1
"seq(fs2!1)(length(fs2!1) - 1)" )
(("1"
(assert )
(("1"
(expand
"product"
-2
1)
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(replace -1)
(("2"
(flatten)
(("2"
(assert )
(("2"
(replace
-1)
(("2"
(lemma
"both_sides_times1" )
(("2"
(inst
-
"seq(fs1!1)(0)"
"1"
"seq(fs2!1)(length(fs2!1) - 1)" )
(("2"
(assert )
(("2"
(expand
"ordered_list_of_primes?" )
(("2"
(flatten)
(("2"
(expand
"list_of_primes?" )
(("2"
(inst?)
(("2"
(assert )
(("2"
(lemma
"prime_gt_1" )
(("2"
(inst
-
"seq(fs2!1)(length(fs2!1) - 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 ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (lemma "product_len_eq" )
(("2" (inst -1 "fs2!1" "fs1!1" )
(("2" (assert )
(("2" (rewrite "product_fseq_split" )
(("2" (rewrite "product_fseq_split" -3)
(("2"
(case-replace
"seq(fs1!1)(length(fs1!1) - 1) = seq(fs2!1)(length(fs2!1) - 1)" )
(("1" (hide -1)
(("1"
(name
"FP"
"seq(fs2!1)(length(fs2!1) - 1)" )
(("1"
(replace -1)
(("1"
(name
"P1"
"product(fs1!1 ^ (0, length(fs1!1) - 2))" )
(("1"
(replace -1)
(("1"
(inst -3 "P1" )
(("1"
(split -3)
(("1"
(inst
-1
"fs1!1^(0, length(fs1!1) - 2)"
"fs2!1^ (0, length(fs2!1) - 2)" )
(("1"
(assert )
(("1"
(rewrite
"ordered_list_of_primes_caret" )
(("1"
(rewrite
"ordered_list_of_primes_caret" )
(("1"
(split -1)
(("1"
(assert )
(("1"
(reveal -3)
(("1"
(hide
-3
-4
-5
-6
-7
-8
-9
1
2
3
4)
(("1"
(case
"length(fs1!1) = length(fs2!1)" )
(("1"
(apply-extensionality
1
:hide?
t)
(("1"
(apply-extensionality
1
:hide?
t)
(("1"
(case
"x!1 < length(fs1!1) - 1" )
(("1"
(case
"seqn(fs1!1 ^ (0, l(fs1!1) - 2))(x!1) = seqn(fs2!1 ^ (0, l(fs2!1) - 2))(x!1)" )
(("1"
(expand
"^" )
(("1"
(assert )
nil
nil ))
nil )
("2"
(assert )
nil
nil ))
nil )
("2"
(assert )
(("2"
(typepred
"fs1!1`seq" )
(("2"
(inst?)
(("2"
(assert )
(("2"
(typepred
"fs2!1`seq" )
(("2"
(inst?)
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(expand
"^" )
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(name-replace
"P2"
"product(fs2!1 ^ (0, length(fs2!1) - 2))" )
(("2"
(hide
-1
-2
-5
-6
2
3
4
5
6)
(("2"
(lemma
"both_sides_times1" )
(("2"
(inst
-1
"FP"
"P1"
"P2" )
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil )
("3"
(lemma "len1" )
(("3"
(inst
-1
"fs1!1 ^ (0, length(fs1!1) - 2)" )
(("3"
(assert )
(("3"
(split -1)
(("1"
(assert )
(("1"
(hide
-2
-3
-4
-5
-6
-7)
(("1"
(expand
"^" )
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil )
("2"
(rewrite
"ordered_list_of_primes_caret" )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide -4 -5 -6 6)
(("2"
(lemma
"both_sides_times_pos_lt1" )
(("2"
(replace -4)
(("2"
(inst
-1
"P1"
"1"
"FP" )
(("2"
(assert )
(("2"
(reveal -4)
(("2"
(expand
"ordered_list_of_primes?" )
(("2"
(flatten)
(("2"
(expand
"non_decreasing?" )
(("2"
(expand
"list_of_primes?" )
(("2"
(inst?)
(("2"
(lemma
"prime_gt_1" )
(("2"
(inst
-1
"seq(fs2!1)(length(fs2!1) - 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 )
("2"
(case "seq(fs1!1)(length(fs1!1) - 1) > seq(fs2!1)(length(fs2!1) - 1)" )
(("1"
(lemma "FTL_sym" )
(("1"
(inst -1 "fs1!1" "fs2!1" "j!1" )
(("1" (assert ) nil nil ))
nil ))
nil )
("2"
(lemma "FTL_sym" )
(("2"
(inst -1 "fs2!1" "fs1!1" "j!1" )
(("2" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(product_len_eq formula-decl nil unique_scaf nil )
(FTL_sym formula-decl nil unique_factorization nil )
(both_sides_times_pos_lt1 formula-decl nil real_props nil )
(posreal nonempty-type-eq-decl nil real_types nil )
(nonneg_real nonempty-type-eq-decl nil real_types nil )
(non_decreasing? const-decl "bool" product_perm_lems nil )
(product_fseq_split formula-decl nil product_fseq_posnat "reals/" )
(list_of_primes? const-decl "bool" prime_factorization nil )
(prime? const-decl "bool" primes "ints/" )
(^ const-decl "fseq" fseqs "structures/" )
(numfield nonempty-type-eq-decl nil number_fields nil )
(- const-decl "[numfield, numfield -> numfield]" number_fields nil )
(len1 formula-decl nil unique_scaf nil )
(ordered_list_of_primes_caret formula-decl nil unique_scaf nil )
(prod_nat application-judgement "nat" product_nat "reals/" )
(prod_pr application-judgement "posreal" product_nat "reals/" )
(prod_posnat application-judgement "posnat" product_nat "reals/" )
(odd_minus_odd_is_even application-judgement "even_int" integers
nil )
(product_eq_arg formula-decl nil product "reals/" )
(both_sides_times1 formula-decl nil real_props nil )
(prime_gt_1 formula-decl nil primes "ints/" )
(/= const-decl "boolean" notequal nil )
(nonzero_real nonempty-type-eq-decl nil reals nil )
(divides const-decl "bool" divides nil )
(below type-eq-decl nil naturalnumbers 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 )
(prod_nnr application-judgement "nnreal" product_nat "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 )
(posint_times_posint_is_posint application-judgement "posint"
integers nil )
(product_0_neg formula-decl nil product_nat "reals/" )
(NOT const-decl "[bool -> bool]" booleans nil )
(default const-decl "T" fseqs "structures/" )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(< const-decl "bool" reals nil )
(product def-decl "real" product "reals/" )
(len0 formula-decl nil product_fseq_posnat "reals/" )
(NAT_induction formula-decl nil naturalnumbers nil )
(ordered_list_of_primes? const-decl "bool" prime_factorization nil )
(product const-decl "posnat" product_fseq_posnat "reals/" )
(= const-decl "[T, T -> boolean]" equalities nil )
(AND const-decl "[bool, bool -> bool]" booleans nil )
(IMPLIES const-decl "[bool, bool -> bool]" booleans nil )
(fseq type-eq-decl nil fseqs "structures/" )
(barray type-eq-decl nil fseqs "structures/" )
(posnat nonempty-type-eq-decl nil integers nil )
(> const-decl "bool" reals nil )
(nonneg_int nonempty-type-eq-decl nil integers 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 )
(FTL_prep-4 nil 3410714316
(";;; Proof FTL_prep-3 for formula unique_factorization.FTL_prep"
(induct "n" 1 "NAT_induction" )
((";;; Proof FTL_prep-3 for formula unique_factorization.FTL_prep"
(skosimp*)
((";;; Proof FTL_prep-3 for formula unique_factorization.FTL_prep"
(lemma "len0" )
((";;; Proof FTL_prep-3 for formula unique_factorization.FTL_prep"
(inst-cp -1 "fs2!1" )
((";;; Proof FTL_prep-3 for formula unique_factorization.FTL_prep"
(inst -1 "fs1!1" )
((";;; Proof FTL_prep-3 for formula unique_factorization.FTL_prep"
(assert )
((";;; Proof FTL_prep-3 for formula unique_factorization.FTL_prep"
(case "length(fs1!1) = 1" )
(("1" (hide -2)
(("1" (case "length(fs2!1) = 1" )
(("1" (expand "product" )
(("1" (expand "product" )
(("1" (assert )
(("1" (apply-extensionality 3 :hide? t)
(("1" (apply-extensionality 1 :hide? t)
(("1"
(case "x!1 < 1" )
(("1" (assert ) nil )
("2"
(typepred "fs1!1`seq" )
(("2"
(inst?)
(("2"
(assert )
(("2"
(typepred "fs2!1`seq" )
(("2"
(inst?)
(("2"
(assert )
nil )))))))))))))))))))))))
("2" (lemma "product_fseq_split" )
(("2" (inst -1 "fs2!1" )
(("2" (assert )
(("2" (replace -1)
(("2" (hide -1)
(("2"
(expand "product" -2)
(("2"
(replace -2)
(("2"
(hide -2)
(("2"
(expand
"ordered_list_of_primes?"
-3)
(("2"
(flatten)
(("2"
(expand "list_of_primes?" )
(("2"
(inst -3 "0" )
(("2"
(expand "prime?" )
(("2"
(flatten)
(("2"
(case
"product(fs2!1 ^ (0, length(fs2!1) - 2)) = 1" )
(("1"
(replace -1)
(("1"
(lemma "len1" )
(("1"
(inst
-1
"fs2!1 ^ (0, length(fs2!1) - 2)" )
(("1"
(rewrite
"ordered_list_of_primes_caret" )
(("1"
(assert )
(("1"
(hide -2)
(("1"
(expand
"^" )
(("1"
(assert )
nil )))))))))))))))
("2"
(inst
-3
"product(fs2!1 ^ (0, length(fs2!1) - 2))" )
(("2"
(assert )
(("2"
(split -3)
(("1"
(expand
"divides" )
(("1"
(inst
1
"seq(fs2!1)(length(fs2!1) - 1)" )
(("1"
(case-replace
"product(fs2!1 ^ (0, length(fs2!1) - 2)) = seq(fs1!1)(0)" )
(("1"
(cancel-by
1
"seq(fs1!1)(0)" )
(("1"
(replace
-2)
(("1"
(assert )
(("1"
(lemma
"both_sides_times1" )
(("1"
(inst
-1
"seq(fs1!1)(0)"
"seq(fs2!1)(length(fs2!1) - 1)"
"1" )
(("1"
(assert )
nil )))))))))))
("2"
(replace
-1)
(("2"
(assert )
nil )))))))))
("2"
(flatten)
(("2"
(replace
-1)
(("2"
(replace
-2)
(("2"
(assert )
(("2"
(cancel-by
-3
"seq(fs1!1)(0)" )
(("2"
(expand
"ordered_list_of_primes?" )
(("2"
(flatten)
(("2"
(expand
"list_of_primes?" )
(("2"
(inst?)
(("2"
(assert )
(("2"
(lemma
"prime_gt_1" )
(("2"
(inst
-
"seq(fs2!1)(length(fs2!1) - 1)" )
(("2"
(assert )
nil )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
("2" (lemma "product_len_eq" )
(("2" (inst -1 "fs2!1" "fs1!1" )
(("2" (assert )
(("2" (rewrite "product_fseq_split" )
(("2" (rewrite "product_fseq_split" -3)
(("2"
(case-replace
"seq(fs1!1)(length(fs1!1) - 1) = seq(fs2!1)(length(fs2!1) - 1)" )
(("1" (hide -1)
(("1"
(name
"FP"
"seq(fs2!1)(length(fs2!1) - 1)" )
(("1"
(replace -1)
(("1"
(name
"P1"
"product(fs1!1 ^ (0, length(fs1!1) - 2))" )
(("1"
(replace -1)
(("1"
(inst -3 "P1" )
(("1"
(split -3)
(("1"
(inst
-1
"fs1!1^(0, length(fs1!1) - 2)"
"fs2!1^ (0, length(fs2!1) - 2)" )
(("1"
(assert )
(("1"
(rewrite
"ordered_list_of_primes_caret" )
(("1"
(rewrite
"ordered_list_of_primes_caret" )
(("1"
(split -1)
(("1"
(assert )
(("1"
(reveal -3)
(("1"
(hide
-3
-4
-5
-6
-7
-8
-9
1
2
3
4)
(("1"
(case
"length(fs1!1) = length(fs2!1)" )
(("1"
(apply-extensionality
1
:hide?
t)
(("1"
(apply-extensionality
1
:hide?
t)
(("1"
(case
"x!1 < length(fs1!1) - 1" )
(("1"
(case
"seq(fs1!1 ^ (0, l(fs1!1) - 2))(x!1) = seq(fs2!1 ^ (0, l(fs2!1) - 2))(x!1)" )
(("1"
(expand
"^" )
(("1"
(assert )
nil )))
("2"
(assert )
nil )))
("2"
(assert )
(("2"
(typepred
"fs1!1`seq" )
(("2"
(inst?)
(("2"
(assert )
(("2"
(typepred
"fs2!1`seq" )
(("2"
(inst?)
(("2"
(assert )
nil )))))))))))))))))))
("2"
(expand
"^" )
(("2"
(assert )
nil )))))))))))
("2"
(name-replace
"P2"
"product(fs2!1 ^ (0, length(fs2!1) - 2))" )
(("2"
(hide
-1
-2
-5
-6
2
3
4
5
6)
(("2"
(lemma
"both_sides_times1" )
(("2"
(inst
-1
"FP"
"P1"
"P2" )
(("2"
(assert )
nil )))))))))
("3"
(lemma "len1" )
(("3"
(inst
-1
"fs1!1 ^ (0, length(fs1!1) - 2)" )
(("3"
(assert )
(("3"
(split -1)
(("1"
(assert )
(("1"
(hide
-2
-3
-4
-5
-6
-7)
(("1"
(expand
"^" )
(("1"
(assert )
nil )))))))
("2"
(rewrite
"ordered_list_of_primes_caret" )
nil )))))))))))))))))))
("2"
(hide -4 -5 -6 6)
(("2"
(lemma
"both_sides_times_pos_lt1" )
(("2"
(replace -4)
(("2"
(inst
-1
"P1"
"1"
"FP" )
(("2"
(assert )
(("2"
(reveal -4)
(("2"
(expand
"ordered_list_of_primes?" )
(("2"
(flatten)
(("2"
(expand
"non_decreasing?" )
(("2"
(expand
"list_of_primes?" )
(("2"
(inst?)
(("2"
(lemma
"prime_gt_1" )
(("2"
(inst
-1
"seq(fs2!1)(length(fs2!1) - 1)" )
(("2"
(assert )
nil )))))))))))))))))))))))))))))))))))))))))
("2"
(case "seq(fs1!1)(length(fs1!1) - 1) > seq(fs2!1)(length(fs2!1) - 1)" )
(("1"
(lemma "FTL_sym" )
(("1"
(inst -1 "fs1!1" "fs2!1" "j!1" )
(("1" (assert ) nil )))))
("2"
(lemma "FTL_sym" )
(("2"
(inst -1 "fs2!1" "fs1!1" "j!1" )
(("2"
(assert )
nil ))))))))))))))))))))))))))))))))
";;; developed with shostak decision procedures")
nil nil )
(FTL_prep-3 nil 3410545755
("" (induct "n" 1 "NAT_induction" )
(("" (skosimp*)
(("" (lemma "len0" )
(("" (inst-cp -1 "fs2!1" )
(("" (inst -1 "fs1!1" )
(("" (assert )
(("" (case "length(fs1!1) = 1" )
(("1" (hide -2)
(("1" (case "length(fs2!1) = 1" )
(("1" (expand "product" )
(("1" (expand "product" )
(("1" (assert )
(("1" (apply-extensionality 3 :hide? t)
(("1" (apply-extensionality 1 :hide? t)
(("1"
(case "x!1 < 1" )
(("1" (assert ) nil nil )
("2"
(typepred "fs1!1`seq" )
(("2"
(inst?)
(("2"
(assert )
(("2"
(typepred "fs2!1`seq" )
(("2"
(inst?)
(("2" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (lemma "product_fseq_split" )
(("2" (inst -1 "fs2!1" )
(("2" (assert )
(("2" (replace -1)
(("2" (hide -1)
(("2"
(expand "product" -2)
(("2"
(replace -2)
(("2"
(hide -2)
(("2"
(expand
"ordered_list_of_primes?"
-3)
(("2"
(flatten)
(("2"
(expand "list_of_primes?" )
(("2"
(inst -3 "0" )
(("2"
(expand "prime?" )
(("2"
(flatten)
(("2"
(case
"product(fs2!1 ^ (0, length(fs2!1) - 2)) = 1" )
(("1"
(replace -1)
(("1"
(lemma "len1" )
(("1"
(inst
-1
"fs2!1 ^ (0, length(fs2!1) - 2)" )
(("1"
(rewrite
"ordered_list_of_primes_caret" )
(("1"
(assert )
(("1"
(hide -2)
(("1"
(expand
"^" )
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(inst
-3
"product(fs2!1 ^ (0, length(fs2!1) - 2))" )
(("2"
(assert )
(("2"
(split -3)
(("1"
(expand
"divides" )
(("1"
(inst
1
"seq(fs2!1)(length(fs2!1) - 1)" )
(("1"
(case-replace
"product(fs2!1 ^ (0, length(fs2!1) - 2)) = seq(fs1!1)(0)" )
(("1"
(cancel-by
1
"seq(fs1!1)(0)" )
(("1"
(replace
-2)
(("1"
(assert )
(("1"
(lemma
"both_sides_times1" )
(("1"
(inst
-1
"seq(fs1!1)(0)"
"seq(fs2!1)(length(fs2!1) - 1)"
"1" )
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(replace
-1)
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(flatten)
(("2"
(replace
-1)
(("2"
(replace
-2)
(("2"
(assert )
(("2"
(cancel-by
-3
"seq(fs1!1)(0)" )
(("2"
(expand
"ordered_list_of_primes?" )
(("2"
(flatten)
(("2"
(expand
"list_of_primes?" )
(("2"
(inst?)
(("2"
(assert )
(("2"
(lemma
"prime_gt_1" )
(("2"
(inst
-
"seq(fs2!1)(length(fs2!1) - 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 ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (lemma "product_len_eq" )
(("2" (inst -1 "fs2!1" "fs1!1" )
(("2" (assert )
(("2" (rewrite "product_fseq_split" )
(("2" (rewrite "product_fseq_split" -3)
(("2"
(case-replace
"seq(fs1!1)(length(fs1!1) - 1) = seq(fs2!1)(length(fs2!1) - 1)" )
(("1" (hide -1)
(("1"
(name
"FP"
"seq(fs2!1)(length(fs2!1) - 1)" )
(("1"
(replace -1)
(("1"
(name
"P1"
"product(fs1!1 ^ (0, length(fs1!1) - 2))" )
(("1"
(replace -1)
(("1"
(inst -3 "P1" )
(("1"
(split -3)
(("1"
(inst
-1
"fs1!1^(0, length(fs1!1) - 2)"
"fs2!1^ (0, length(fs2!1) - 2)" )
(("1"
(assert )
(("1"
(rewrite
"ordered_list_of_primes_caret" )
(("1"
(rewrite
"ordered_list_of_primes_caret" )
(("1"
(split -1)
(("1"
(assert )
(("1"
(reveal -3)
(("1"
(hide
-3
-4
-5
-6
-7
-8
-9
1
2
3
4)
(("1"
(case
"length(fs1!1) = length(fs2!1)" )
(("1"
(apply-extensionality
1
:hide?
t)
(("1"
(apply-extensionality
1
:hide?
t)
(("1"
(case
"x!1 < length(fs1!1) - 1" )
(("1"
(case
"seq(fs1!1 ^ (0, length(fs1!1) - 2))(x!1) = seq(fs2!1 ^ (0, length(fs2!1) - 2))(x!1)" )
(("1"
(expand
"^" )
(("1"
(assert )
nil
nil ))
nil )
("2"
(assert )
nil
nil ))
nil )
("2"
(assert )
(("2"
(typepred
"fs1!1`seq" )
(("2"
(inst?)
(("2"
(assert )
(("2"
(typepred
"fs2!1`seq" )
(("2"
(inst?)
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(expand
"^" )
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(name-replace
"P2"
"product(fs2!1 ^ (0, length(fs2!1) - 2))" )
(("2"
(hide
-1
-2
-5
-6
2
3
4
5
6)
(("2"
(lemma
"both_sides_times1" )
(("2"
(inst
-1
"FP"
"P1"
"P2" )
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil )
("3"
(lemma "len1" )
(("3"
(inst
-1
"fs1!1 ^ (0, length(fs1!1) - 2)" )
(("3"
(assert )
(("3"
(split -1)
(("1"
(assert )
(("1"
(hide
-2
-3
-4
-5
-6
-7)
(("1"
(expand
"^" )
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil )
("2"
(rewrite
"ordered_list_of_primes_caret" )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide -4 -5 -6 6)
(("2"
(lemma
"both_sides_times_pos_lt1" )
(("2"
(replace -4)
(("2"
(inst
-1
"P1"
"1"
"FP" )
(("2"
(assert )
(("2"
(reveal -4)
(("2"
(expand
"ordered_list_of_primes?" )
(("2"
(flatten)
(("2"
(expand
"non_decreasing?" )
(("2"
(expand
"list_of_primes?" )
(("2"
(inst?)
(("2"
(lemma
"prime_gt_1" )
(("2"
(inst
-1
"seq(fs2!1)(length(fs2!1) - 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 )
("2"
(case "seq(fs1!1)(length(fs1!1) - 1) > seq(fs2!1)(length(fs2!1) - 1)" )
(("1"
(lemma "FTL_sym" )
(("1"
(inst -1 "fs1!1" "fs2!1" "j!1" )
(("1" (assert ) nil nil ))
nil ))
nil )
("2"
(lemma "FTL_sym" )
(("2"
(inst -1 "fs2!1" "fs1!1" "j!1" )
(("2" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((product_len_eq formula-decl nil unique_scaf nil )
(non_decreasing? const-decl "bool" product_perm_lems nil )
(list_of_primes? const-decl "bool" prime_factorization nil )
(prime? const-decl "bool" primes "ints/" )
(^ const-decl "fseq" fseqs "structures/" )
(len1 formula-decl nil unique_scaf nil )
(ordered_list_of_primes_caret formula-decl nil unique_scaf nil )
(prime_gt_1 formula-decl nil primes "ints/" )
(product_eq_arg formula-decl nil product "reals/" )
(prod_posnat application-judgement "posnat" product_nat "reals/" )
(prod_nat application-judgement "nat" product_nat "reals/" )
(product_0_neg formula-decl nil product_nat "reals/" )
(default const-decl "T" fseqs "structures/" )
(product def-decl "real" product "reals/" )
(ordered_list_of_primes? const-decl "bool" prime_factorization nil )
(fseq type-eq-decl nil fseqs "structures/" )
(barray type-eq-decl nil fseqs "structures/" ))
nil )
(FTL_prep-2 nil 3407848746
("" (induct "n" 1 "NAT_induction" )
(("" (skosimp*)
(("" (lemma "len0" )
(("" (inst-cp -1 "fs2!1" )
(("" (inst -1 "fs1!1" )
(("" (assert )
(("" (case "length(fs1!1) = 1" )
(("1" (hide -2)
(("1" (case "length(fs2!1) = 1" )
(("1" (expand "product" )
(("1" (expand "product_rec" )
(("1" (assert )
(("1" (apply-extensionality 3 :hide? t)
(("1" (apply-extensionality 1 :hide? t) nil
nil ))
nil ))
nil ))
nil ))
nil )
("2" (lemma "product_split" )
(("2" (inst -1 "fs2!1" )
(("2" (assert )
(("2" (replace -1)
(("2" (hide -1)
(("2"
(expand "product" -2)
(("2"
(expand "product_rec" -2)
(("2"
(replace -2)
(("2"
(hide -2)
(("2"
(expand
"ordered_list_of_primes?"
-3)
(("2"
(flatten)
(("2"
(expand "list_of_primes?" )
(("2"
(inst -3 "0" )
(("2"
(expand "prime?" )
(("2"
(flatten)
(("2"
(case
"product(fs2!1 ^ (0, length(fs2!1) - 2)) = 1" )
(("1"
(replace -1)
(("1"
(lemma "len1" )
(("1"
(inst
-1
"fs2!1 ^ (0, length(fs2!1) - 2)" )
(("1"
(rewrite
"ordered_list_of_primes_caret" )
(("1"
(assert )
(("1"
(hide
-2)
(("1"
(expand
"^" )
(("1"
(expand
"min" )
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(inst
-3
"product(fs2!1 ^ (0, length(fs2!1) - 2))" )
(("2"
(assert )
(("2"
(split -3)
(("1"
(expand
"divides" )
(("1"
(inst
1
"seq(fs2!1)(length(fs2!1) - 1)" )
nil
nil ))
nil )
("2"
(case-replace
"product(fs2!1 ^ (0, length(fs2!1) - 2)) = seq(fs1!1)(0)" )
(("1"
(lemma
"both_sides_times1" )
(("1"
(inst
-1
"seq(fs1!1)(0)"
"seq(fs2!1)(length(fs2!1) - 1)"
"1" )
(("1"
(assert )
(("1"
(hide
-2
-3
-4
-5
1
2
6)
(("1"
(expand
"ordered_list_of_primes?" )
(("1"
(flatten)
(("1"
(expand
"list_of_primes?" )
(("1"
(inst?)
(("1"
(lemma
"prime_gt_1" )
(("1"
(inst
-1
"seq(fs2!1)(length(fs2!1) - 1)" )
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (lemma "product_len_eq" )
(("2" (inst -1 "fs2!1" "fs1!1" )
(("2" (assert )
(("2" (rewrite "product_split" )
(("2" (rewrite "product_split" -3)
(("2"
(case-replace
"seq(fs1!1)(length(fs1!1) - 1) = seq(fs2!1)(length(fs2!1) - 1)" )
(("1" (hide -1)
(("1"
(name
"FP"
"seq(fs2!1)(length(fs2!1) - 1)" )
(("1"
(replace -1)
(("1"
(name
"P1"
"product(fs1!1 ^ (0, length(fs1!1) - 2))" )
(("1"
(replace -1)
(("1"
(inst -3 "P1" )
(("1"
(split -3)
(("1"
(inst
-1
"fs1!1^(0, length(fs1!1) - 2)"
"fs2!1^ (0, length(fs2!1) - 2)" )
(("1"
(assert )
(("1"
(rewrite
"ordered_list_of_primes_caret" )
(("1"
(rewrite
"ordered_list_of_primes_caret" )
(("1"
(split -1)
(("1"
(assert )
(("1"
(reveal -3)
(("1"
(hide
-3
-4
-5
-6
-7
-8
-9
1
2
3
4)
(("1"
(case
"length(fs1!1) = length(fs2!1)" )
(("1"
(apply-extensionality
1
:hide?
t)
(("1"
(apply-extensionality
1
:hide?
t)
(("1"
(case
"seq(fs1!1 ^ (0, length(fs1!1) - 2))(x!1) = seq(fs2!1 ^ (0, length(fs2!1) - 2))(x!1)" )
(("1"
(expand
"^" )
(("1"
(propax)
nil
nil ))
nil )
("2"
(assert )
nil
nil )
("3"
(expand
"^" )
(("3"
(expand
"min" )
(("3"
(assert )
nil
nil ))
nil ))
nil )
("4"
(expand
"^" )
(("4"
(expand
"min" )
(("4"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(expand
"^" )
(("2"
(flatten)
(("2"
(expand
"min" )
(("2"
(propax)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(name-replace
"P2"
"product(fs2!1 ^ (0, length(fs2!1) - 2))" )
(("2"
(hide
-1
-2
-5
-6
2
3
4
5
6)
(("2"
(lemma
"both_sides_times1" )
(("2"
(inst
-1
"FP"
"P1"
"P2" )
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil )
("3"
(lemma "len1" )
(("3"
(inst
-1
"fs1!1 ^ (0, length(fs1!1) - 2)" )
(("3"
(assert )
(("3"
(split -1)
(("1"
(assert )
(("1"
(hide
-2
-3
-4
-5
-6
-7)
(("1"
(expand
"^" )
(("1"
(expand
"min" )
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(rewrite
"ordered_list_of_primes_caret" )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide -4 -5 -6 6)
(("2"
(lemma
"both_sides_times_pos_lt1" )
(("2"
(replace -4)
(("2"
(inst
-1
"P1"
"1"
"FP" )
(("2"
(assert )
(("2"
(reveal -4)
(("2"
(expand
"ordered_list_of_primes?" )
(("2"
(flatten)
(("2"
(expand
"non_decreasing?" )
(("2"
(expand
"list_of_primes?" )
(("2"
(inst?)
(("2"
(lemma
"prime_gt_1" )
(("2"
(inst
-1
"seq(fs2!1)(length(fs2!1) - 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 )
("2"
(case "seq(fs1!1)(length(fs1!1) - 1) > seq(fs2!1)(length(fs2!1) - 1)" )
(("1"
(lemma "FTL_sym" )
(("1"
(inst -1 "fs1!1" "fs2!1" "j!1" )
(("1" (assert ) nil nil ))
nil ))
nil )
("2"
(lemma "FTL_sym" )
(("2"
(inst -1 "fs2!1" "fs1!1" "j!1" )
(("2" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((non_decreasing? const-decl "bool" product_perm_lems nil )
(prime_gt_1 formula-decl nil primes "ints/" )
(prime? const-decl "bool" primes "ints/" )
(list_of_primes? const-decl "bool" prime_factorization nil )
(ordered_list_of_primes? const-decl "bool" prime_factorization
nil ))
nil )
(FTL_prep-1 nil 3249308522
("" (induct "n" 1 "NAT_induction" )
(("" (skosimp*)
(("" (lemma "len0" )
(("" (inst-cp -1 "fs2!1" )
(("" (inst -1 "fs1!1" )
(("" (assert )
(("" (case "length(fs1!1) = 1" )
(("1" (hide -2)
(("1" (case "length(fs2!1) = 1" )
(("1" (expand "product" )
(("1" (expand "product_rec" )
(("1" (assert )
(("1" (apply-extensionality 3 :hide? t)
(("1" (apply-extensionality 1 :hide? t)
(("1"
(skosimp*)
(("1" (ground) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (lemma "product_split" )
(("2" (inst -1 "fs2!1" )
(("2" (assert )
(("2" (replace -1)
(("2" (hide -1)
(("2"
(expand "product" -2)
(("2"
(expand "product_rec" -2)
(("2"
(replace -2)
(("2"
(hide -2)
(("2"
(expand
"ordered_list_of_primes?"
-3)
(("2"
(flatten)
(("2"
(expand "list_of_primes?" )
(("2"
(inst -3 "0" )
(("2"
(expand "prime?" )
(("2"
(flatten)
(("2"
(case
"product(fs2!1 ^ (0, length(fs2!1) - 2)) = 1" )
(("1"
(replace -1)
(("1"
(lemma "len1" )
(("1"
(inst
-1
"fs2!1 ^ (0, length(fs2!1) - 2)" )
(("1"
(rewrite
"ordered_list_of_primes_caret" )
(("1"
(assert )
(("1"
(hide
-2)
(("1"
(expand
"^" )
(("1"
(expand
"min" )
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(inst
-3
"product(fs2!1 ^ (0, length(fs2!1) - 2))" )
(("2"
(assert )
(("2"
(split -3)
(("1"
(expand
"divides" )
(("1"
(inst
1
"seq(fs2!1)(length(fs2!1) - 1)" )
nil
nil ))
nil )
("2"
(case-replace
"product(fs2!1 ^ (0, length(fs2!1) - 2)) = seq(fs1!1)(0)" )
(("1"
(lemma
"both_sides_times1" )
(("1"
(inst
-1
"seq(fs1!1)(0)"
"seq(fs2!1)(length(fs2!1) - 1)"
"1" )
(("1"
(assert )
(("1"
(hide
-2
-3
-4
-5
1
2
6)
(("1"
(expand
"ordered_list_of_primes?" )
(("1"
(flatten)
(("1"
(expand
"list_of_primes?" )
(("1"
(inst?)
(("1"
(lemma
"prime_gt_1" )
(("1"
(inst
-1
"seq(fs2!1)(length(fs2!1) - 1)" )
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (lemma "product_len_eq" )
(("2" (inst -1 "fs2!1" "fs1!1" )
(("2" (assert )
(("2" (rewrite "product_split" )
(("2" (rewrite "product_split" -3)
(("2"
(case-replace
"seq(fs1!1)(length(fs1!1) - 1) = seq(fs2!1)(length(fs2!1) - 1)" )
(("1" (hide -1)
(("1"
(name
"FP"
"seq(fs2!1)(length(fs2!1) - 1)" )
(("1"
(replace -1)
(("1"
(name
"P1"
"product(fs1!1 ^ (0, length(fs1!1) - 2))" )
(("1"
(replace -1)
(("1"
(inst -3 "P1" )
(("1"
(split -3)
(("1"
(inst
-1
"fs1!1^(0, length(fs1!1) - 2)"
"fs2!1^ (0, length(fs2!1) - 2)" )
(("1"
(assert )
(("1"
(rewrite
"ordered_list_of_primes_caret" )
(("1"
(rewrite
"ordered_list_of_primes_caret" )
(("1"
(split -1)
(("1"
(assert )
(("1"
(reveal -3)
(("1"
(hide
-3
-4
-5
-6
-7
-8
-9
1
2
3
4)
(("1"
(case
"length(fs1!1) = length(fs2!1)" )
(("1"
(apply-extensionality
1
:hide?
t)
(("1"
(apply-extensionality
1
:hide?
t)
(("1"
(case
"seq(fs1!1 ^ (0, length(fs1!1) - 2))(x!1) = seq(fs2!1 ^ (0, length(fs2!1) - 2))(x!1)" )
(("1"
(expand
"^" )
(("1"
(propax)
nil
nil ))
nil )
("2"
(assert )
nil
nil )
("3"
(expand
"^" )
(("3"
(expand
"min" )
(("3"
(assert )
nil
nil ))
nil ))
nil )
("4"
(expand
"^" )
(("4"
(expand
"min" )
(("4"
(assert )
nil
nil ))
nil ))
nil ))
nil )
("2"
(skosimp*)
(("2"
(ground)
nil
nil ))
nil ))
nil ))
nil )
("2"
(expand
"^" )
(("2"
(flatten)
(("2"
(expand
"min" )
(("2"
(propax)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(name-replace
"P2"
"product(fs2!1 ^ (0, length(fs2!1) - 2))" )
(("2"
(hide
-1
-2
-5
-6
2
3
4
5
6)
(("2"
(lemma
"both_sides_times1" )
(("2"
(inst
-1
"FP"
"P1"
"P2" )
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil )
("3"
(lemma "len1" )
(("3"
(inst
-1
"fs1!1 ^ (0, length(fs1!1) - 2)" )
(("3"
(assert )
(("3"
(split -1)
(("1"
(assert )
(("1"
(hide
-2
-3
-4
-5
-6
-7)
(("1"
(expand
"^" )
(("1"
(expand
"min" )
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(rewrite
"ordered_list_of_primes_caret" )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide -4 -5 -6 6)
(("2"
(lemma
"both_sides_times_pos_lt1" )
(("2"
(replace -4)
(("2"
(inst
-1
"P1"
"1"
"FP" )
(("2"
(assert )
(("2"
(reveal -4)
(("2"
(expand
"ordered_list_of_primes?" )
(("2"
(flatten)
(("2"
(expand
"non_decreasing?" )
(("2"
(expand
"list_of_primes?" )
(("2"
(inst?)
(("2"
(lemma
"prime_gt_1" )
(("2"
(inst
-1
"seq(fs2!1)(length(fs2!1) - 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 )
("2"
(case "seq(fs1!1)(length(fs1!1) - 1) > seq(fs2!1)(length(fs2!1) - 1)" )
(("1"
(lemma "FTL_sym" )
(("1"
(inst -1 "fs1!1" "fs2!1" "j!1" )
(("1" (assert ) nil nil ))
nil ))
nil )
("2"
(lemma "FTL_sym" )
(("2"
(inst -1 "fs2!1" "fs1!1" "j!1" )
(("2" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((non_decreasing? const-decl "bool" product_perm_lems nil )
(prime_gt_1 formula-decl nil primes "ints/" )
(prime? const-decl "bool" primes "ints/" ))
nil ))
(Fundamental_Theorem_Arithmetic 0
(Fundamental_Theorem_Arithmetic-1 nil 3249308522
("" (skosimp*)
(("" (case "n!1 = 1" )
(("1" (lemma "len1" )
(("1" (inst?)
(("1" (assert )
(("1" (lemma "len1" )
(("1" (inst -1 "fs2!1" )
(("1" (assert )
(("1" (apply-extensionality 1 :hide? t)
(("1" (apply-extensionality 1 :hide? t)
(("1" (typepred "fs1!1`seq" )
(("1" (typepred "fs2!1`seq" )
(("1" (inst?)
(("1" (inst?) (("1" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(case "seq(fs1!1)(length(fs1!1)-1) < seq(fs2!1)(length(fs2!1)-1)" )
(("1" (lemma "FTL_prep" )
(("1" (inst -1 "fs2!1" "fs1!1" "n!1" )
(("1" (assert ) nil nil )) nil ))
nil )
("2" (lemma "FTL_prep" )
(("2" (inst -1 "fs1!1" "fs2!1" "n!1" )
(("2" (assert ) nil nil )) nil ))
nil )
("3" (lemma "len0" )
(("3" (hide -2) (("3" (inst?) (("3" (assert ) nil nil )) nil ))
nil ))
nil )
("4" (lemma "len0" )
(("4" (inst?) (("4" (assert ) 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 )
(= const-decl "[T, T -> boolean]" equalities nil )
(boolean nonempty-type-decl nil booleans nil )
(number nonempty-type-decl nil numbers nil )
(nonneg_int nonempty-type-eq-decl nil integers nil )
(> const-decl "bool" reals nil )
(posnat nonempty-type-eq-decl nil integers nil )
(barray type-eq-decl nil fseqs "structures/" )
(fseq type-eq-decl nil fseqs "structures/" )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(NOT const-decl "[bool -> bool]" booleans nil )
(IMPLIES const-decl "[bool, bool -> bool]" booleans nil )
(default const-decl "T" fseqs "structures/" )
(len1 formula-decl nil unique_scaf nil )
(len0 formula-decl nil product_fseq_posnat "reals/" )
(FTL_prep formula-decl nil unique_factorization 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 )
(int_minus_int_is_int application-judgement "int" integers nil )
(< const-decl "bool" reals nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(- const-decl "[numfield, numfield -> numfield]" number_fields
nil ))
nil )))
Messung V0.5 in Prozent C=100 H=100 G=100
¤ 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.0.517Bemerkung:
(vorverarbeitet am 2026-04-30)
¤
*Bot Zugriff