Thm* a,b: , f:({a..b }![](FONT/dash.png) ![](FONT/then_med.png) ), x:{a..b }. complete_intseg_mset(a; b; f)(x) = f(x) | [complete_intseg_mset_isext] |
Thm* a,b: , f:({a..b }![](FONT/dash.png) ![](FONT/then_med.png) ), x: .
Thm* a x < b ![](FONT/eq.png) complete_intseg_mset(a; b; f)(x) = 0 | [complete_intseg_mset_ismin] |
Thm* a,b: , f:({a..b }![](FONT/dash.png) ![](FONT/then_med.png) ). complete_intseg_mset(a; b; f) ![](FONT/int.png) ![](FONT/dash.png) ![](FONT/then_med.png) ![](FONT/nat.png) | [complete_intseg_mset_wf] |
Thm* n:{1...}.
Thm* h:({2..(n+1) }![](FONT/dash.png) ![](FONT/then_med.png) ).
Thm* n = ![](FONT/pi_big.png) {2..n+1 }(h) & is_prime_factorization(2; (n+1); h) | [prime_factorization_exists] |
Thm* k:{2...}, n: , g:({2..k }![](FONT/dash.png) ![](FONT/then_med.png) ).
Thm* 2 n < k+1
Thm* ![](FONT/eq.png)
Thm* ( i:{2..k }. n i ![](FONT/eq.png) 0<g(i) ![](FONT/eq.png) prime(i))
Thm* ![](FONT/eq.png)
Thm* ( h:({2..k }![](FONT/dash.png) ![](FONT/then_med.png) ).
Thm* (![](FONT/pi_big.png) {2..k }(g) = ![](FONT/pi_big.png) {2..k }(h) & is_prime_factorization(2; k; h)) | [prime_factorization_existsLEMMA] |
Thm* k:{2...}, g:({2..k }![](FONT/dash.png) ![](FONT/then_med.png) ), z:{2..k }.
Thm* prime(z)
Thm* ![](FONT/eq.png)
Thm* ( g':({2..k }![](FONT/dash.png) ![](FONT/then_med.png) ).
Thm* (![](FONT/pi_big.png) {2..k }(g) = ![](FONT/pi_big.png) {2..k }(g')
Thm* (& g'(z) = 0
Thm* (& ( u:{2..k }. z<u ![](FONT/eq.png) g'(u) = g(u))) | [can_reduce_composite_factor2] |
Thm* k:{2...}, g:({2..k }![](FONT/dash.png) ![](FONT/then_med.png) ), x,y:{2..k }.
Thm* x y<k
Thm* ![](FONT/eq.png)
Thm* ( h:({2..k }![](FONT/dash.png) ![](FONT/then_med.png) ).
Thm* (![](FONT/pi_big.png) {2..k }(g) = ![](FONT/pi_big.png) {2..k }(h)
Thm* (& h(x y) = 0
Thm* (& ( u:{2..k }. x y<u ![](FONT/eq.png) h(u) = g(u))) | [can_reduce_composite_factor] |
Thm* k:{2...}, g:({2..k }![](FONT/dash.png) ![](FONT/then_med.png) ), x:{2..k }.
Thm* x x<k
Thm* ![](FONT/eq.png)
Thm* ![](FONT/pi_big.png) {2..k }(g) = ![](FONT/pi_big.png) {2..k }(split_factor1(g; x))
Thm* & split_factor1(g; x)(x x) = 0
Thm* & ( u:{2..k }. x x<u ![](FONT/eq.png) split_factor1(g; x)(u) = g(u)) | [split_factor1_char] |
Thm* k:{2...}, g:({2..k }![](FONT/dash.png) ![](FONT/then_med.png) ), x:{2..k }.
Thm* x x<k ![](FONT/eq.png) split_factor1(g; x) {2..k }![](FONT/dash.png) ![](FONT/then_med.png) ![](FONT/nat.png) | [split_factor1_wf] |
Thm* k:{2...}, g:({2..k }![](FONT/dash.png) ![](FONT/then_med.png) ), x,y:{2..k }.
Thm* x y<k
Thm* ![](FONT/eq.png)
Thm* x<y
Thm* ![](FONT/eq.png)
Thm* ![](FONT/pi_big.png) {2..k }(g) = ![](FONT/pi_big.png) {2..k }(split_factor2(g; x; y))
Thm* & split_factor2(g; x; y)(x y) = 0
Thm* & ( u:{2..k }. x y<u ![](FONT/eq.png) split_factor2(g; x; y)(u) = g(u)) | [split_factor2_char] |
Thm* k:{2...}, g:({2..k }![](FONT/dash.png) ![](FONT/then_med.png) ), x,y:{2..k }.
Thm* x y<k ![](FONT/eq.png) split_factor2(g; x; y) {2..k }![](FONT/dash.png) ![](FONT/then_med.png) ![](FONT/nat.png) | [split_factor2_wf] |
Thm* a:{2...}, b: , g,h:({a..b }![](FONT/dash.png) ![](FONT/then_med.png) ).
Thm* is_prime_factorization(a; b; g)
Thm* ![](FONT/eq.png)
Thm* is_prime_factorization(a; b; h) ![](FONT/eq.png) ![](FONT/pi_big.png) {a..b }(g) = ![](FONT/pi_big.png) {a..b }(h) ![](FONT/eq.png) g = h | [prime_factorization_unique] |
Thm* a: , b: , f:({a..b }![](FONT/dash.png) ![](FONT/then_med.png) ), p: .
Thm* is_prime_factorization(a; b; f)
Thm* ![](FONT/eq.png)
Thm* prime(p)
Thm* ![](FONT/eq.png)
Thm* p | ![](FONT/pi_big.png) {a..b }(f) ![](FONT/eq.png) ![](FONT/pi_big.png) {a..b }(f) = p![](FONT/dot.png) ![](FONT/pi_big.png) {a..b }(reduce_factorization(f; p)) | [remove_prime_factor] |
Thm* a: , b: , f:({a..b }![](FONT/dash.png) ![](FONT/then_med.png) ), p: .
Thm* is_prime_factorization(a; b; f)
Thm* ![](FONT/eq.png)
Thm* prime(p) ![](FONT/eq.png) p | ![](FONT/pi_big.png) {a..b }(f) ![](FONT/eq.png) p {a..b } & 0<f(p) | [prime_factorization_includes_prime_divisors] |
Thm* p: .
Thm* prime(p)
Thm* ![](FONT/eq.png)
Thm* ( a,b: , e:({a..b }![](FONT/dash.png) ![](FONT/then_med.png) ).
Thm* (a<b ![](FONT/eq.png) p | ( i:{a..b }. e(i)) ![](FONT/eq.png) ( i:{a..b }. p | e(i))) | [prime_divs_mul_via_intseg] |
Thm* a,b: , f:({a..b }![](FONT/dash.png) ![](FONT/then_med.png) ), j:{a..b }. 0<f(j) ![](FONT/eq.png) j | ![](FONT/pi_big.png) {a..b }(f) | [factor_divides_evalfactorization] |
Thm* a,b: , f:({a..b }![](FONT/dash.png) ![](FONT/then_med.png) ), j:{a..b }.
Thm* 0<f(j)
Thm* ![](FONT/eq.png)
Thm* is_prime_factorization(a; b; f)
Thm* ![](FONT/eq.png)
Thm* is_prime_factorization(a; b; reduce_factorization(f; j)) | [reduce_fac_pres_isprimefac] |
Thm* a,b: , f:({a..b }![](FONT/dash.png) ![](FONT/then_med.png) ). SqStable(is_prime_factorization(a; b; f)) | [sq_stable__is_prime_factorization] |
Thm* a,b: , f:({a..b }![](FONT/dash.png) ![](FONT/then_med.png) ). is_prime_factorization(a; b; f) Prop | [is_prime_factorization_wf] |
Thm* a,b: , f:({a..b }![](FONT/dash.png) ![](FONT/then_med.png) ). b a ![](FONT/eq.png) ![](FONT/pi_big.png) {a..b }(f) = ![](FONT/pi_big.png) {a..a }(f) | [eval_factorization_nullnorm] |
Thm* a,b: , f:({a..b }![](FONT/dash.png) ![](FONT/then_med.png) ). b a ![](FONT/eq.png) ![](FONT/pi_big.png) {a..b }(f) = 1 | [eval_factorization_intseg_null] |
Thm* a:![](FONT/nat.png) , b: , f:({a..b }![](FONT/dash.png) ![](FONT/then_med.png) ), j:{a..b }.
Thm* 2 j ![](FONT/eq.png) 0<f(j) ![](FONT/eq.png) ![](FONT/pi_big.png) {a..b }(reduce_factorization(f; j))<![](FONT/pi_big.png) {a..b }(f) | [eval_reduce_factorization_less] |
Thm* a,b: , f:({a..b }![](FONT/dash.png) ![](FONT/then_med.png) ), z:{a..b }.
Thm* 0<f(z) ![](FONT/eq.png) ![](FONT/pi_big.png) {a..b }(f) = z![](FONT/dot.png) ![](FONT/pi_big.png) {a..b }(reduce_factorization(f; z)) | [eval_factorization_pluck] |
Thm* a,b: , f,g:({a..b }![](FONT/dash.png) ![](FONT/then_med.png) ).
Thm* ![](FONT/pi_big.png) {a..b }(f)![](FONT/dot.png) ![](FONT/pi_big.png) {a..b }(g) = ![](FONT/pi_big.png) {a..b }( i.f(i)+g(i)) | [eval_factorization_prod] |
Thm* a:{2...}, b: , f:({a..b }![](FONT/dash.png) ![](FONT/then_med.png) ).
Thm* ![](FONT/not.png) ![](FONT/pi_big.png) {a..b }(f) = 1 ![](FONT/if_big.png) ( i:{a..b }. f(i) = 0) | [eval_factorization_not_one] |
Thm* a:{2...}, b: , f:({a..b }![](FONT/dash.png) ![](FONT/then_med.png) ). ![](FONT/pi_big.png) {a..b }(f) = 1 ![](FONT/if_big.png) f = ( x.0) | [eval_factorization_one_c] |
Thm* a:{2...}, b: , f:({a..b }![](FONT/dash.png) ![](FONT/then_med.png) ). ![](FONT/pi_big.png) {a..b }(f) = 1 ![](FONT/if_big.png) ( i:{a..b }. 0<f(i)) | [eval_factorization_one_b] |
Thm* a:{2...}, b: , f:({a..b }![](FONT/dash.png) ![](FONT/then_med.png) ). ![](FONT/pi_big.png) {a..b }(f) = 1 ![](FONT/if_big.png) ( i:{a..b }. f(i) = 0) | [eval_factorization_one] |
Thm* a:![](FONT/nat.png) , b: , f:({a..b }![](FONT/dash.png) ![](FONT/then_med.png) ). ![](FONT/pi_big.png) {a..b }(f) ![](FONT/nat.png) ![](FONT/plus.png) | [eval_factorization_nat_plus] |
Thm* a,b: , f:({a..b }![](FONT/dash.png) ![](FONT/then_med.png) ), j:{a..b }.
Thm* 0<f(j) ![](FONT/eq.png) ( i:{a..b }. reduce_factorization(f; j)(i) f(i)) | [reduce_factorization_bound] |
Thm* a,b: , f,g:({a..b }![](FONT/dash.png) ![](FONT/then_med.png) ), j:{a..b }.
Thm* 0<f(j)
Thm* ![](FONT/eq.png)
Thm* 0<g(j) ![](FONT/eq.png) reduce_factorization(f; j) = reduce_factorization(g; j) ![](FONT/eq.png) f = g | [reduce_factorization_cancel] |
Thm* a,b: , f:({a..b }![](FONT/dash.png) ![](FONT/then_med.png) ), j:{a..b }.
Thm* 0<f(j) ![](FONT/eq.png) reduce_factorization(f; j) {a..b }![](FONT/dash.png) ![](FONT/then_med.png) ![](FONT/nat.png) | [reduce_factorization_wf] |
Thm* a,b: , j:{a..b }. ![](FONT/pi_big.png) {a..b }(trivial_factorization(j)) = j | [eval_trivial_factorization] |
Thm* a,b: , z:{a..b }. trivial_factorization(z) {a..b }![](FONT/dash.png) ![](FONT/then_med.png) ![](FONT/nat.png) | [trivial_factorization_wf] |
Thm* a,c,b: , f:({a..b }![](FONT/dash.png) ![](FONT/then_med.png) ).
Thm* a c ![](FONT/eq.png) c<b ![](FONT/eq.png) ![](FONT/pi_big.png) {a..b }(f) = ![](FONT/pi_big.png) {a..c }(f) c f(c)![](FONT/dot.png) ![](FONT/pi_big.png) {c+1..b }(f) | [eval_factorization_split_pluck] |
Thm* n: , f,g:(Prime![](FONT/nat.png) ![](FONT/dash.png) ![](FONT/then_med.png) ).
Thm* f is a factorization of n
Thm* ![](FONT/eq.png)
Thm* g is a factorization of n
Thm* ![](FONT/eq.png)
Thm* ( x:{2..(n+1) }. prime_mset_complete(f)(x) = prime_mset_complete(g)(x))
Thm* ![](FONT/eq.png)
Thm* f = g | [prime_factorization_limit] |
Thm* a,c,b: , f:({a..b }![](FONT/dash.png) ![](FONT/then_med.png) ).
Thm* a c ![](FONT/eq.png) c b ![](FONT/eq.png) ![](FONT/pi_big.png) {a..b }(f) = ![](FONT/pi_big.png) {a..c }(f)![](FONT/dot.png) ![](FONT/pi_big.png) {c..b }(f) | [eval_factorization_split_mid] |
Thm* a,b: , f:({a..b }![](FONT/dash.png) ![](FONT/then_med.png) ). ![](FONT/pi_big.png) {a..b }(f) ![](FONT/int.png) | [eval_factorization_wf] |
Thm* a,b: , P:({a..b }![](FONT/dash.png) Prop), n:{(a+1)..(b+1) }.
Thm* P(n-1) ![](FONT/eq.png) ( i:{a..b }. n i ![](FONT/eq.png) P(i)) ![](FONT/eq.png) ( i:{a..b }. n-1 i ![](FONT/eq.png) P(i)) | [extend_intseg_upperpart_down] |
Def is_prime_factorization(a; b; f) == i:{a..b }. 0<f(i) ![](FONT/eq.png) prime(i) | [is_prime_factorization] |