begin
begin
:: deftheorem Def14 defines FlattenSeq PRE_POLY:def 1 :
for D being set
for F being FinSequence of D *
for b3 being Element of D * holds
( b3 = FlattenSeq F iff ex g being BinOp of (D *) st
( ( for p, q being Element of D * holds g . (p,q) = p ^ q ) & b3 = g "**" F ) );
theorem Th13D:
theorem Th20D:
theorem Th21D:
theorem
theorem
theorem
begin
scheme
Regr1{
F1()
-> Nat,
P1[
set ] } :
provided
A1:
P1[
F1()]
and A2:
for
k being
Element of
NAT st
k < F1() &
P1[
k + 1] holds
P1[
k]
theorem
theorem Th3:
definition
let X be
set ;
let A be
finite Subset of
X;
let R be
Order of
X;
assume A1:
R linearly_orders A
;
func SgmX (
R,
A)
-> FinSequence of
X means :
Def2T:
(
rng it = A & ( for
n,
m being
Nat st
n in dom it &
m in dom it &
n < m holds
(
it /. n <> it /. m &
[(it /. n),(it /. m)] in R ) ) );
existence
ex b1 being FinSequence of X st
( rng b1 = A & ( for n, m being Nat st n in dom b1 & m in dom b1 & n < m holds
( b1 /. n <> b1 /. m & [(b1 /. n),(b1 /. m)] in R ) ) )
uniqueness
for b1, b2 being FinSequence of X st rng b1 = A & ( for n, m being Nat st n in dom b1 & m in dom b1 & n < m holds
( b1 /. n <> b1 /. m & [(b1 /. n),(b1 /. m)] in R ) ) & rng b2 = A & ( for n, m being Nat st n in dom b2 & m in dom b2 & n < m holds
( b2 /. n <> b2 /. m & [(b2 /. n),(b2 /. m)] in R ) ) holds
b1 = b2
end;
:: deftheorem Def2T defines SgmX PRE_POLY:def 2 :
for X being set
for A being finite Subset of X
for R being Order of X st R linearly_orders A holds
for b4 being FinSequence of X holds
( b4 = SgmX (R,A) iff ( rng b4 = A & ( for n, m being Nat st n in dom b4 & m in dom b4 & n < m holds
( b4 /. n <> b4 /. m & [(b4 /. n),(b4 /. m)] in R ) ) ) );
theorem
theorem Th8T:
theorem
begin
theorem Th3:
theorem
:: deftheorem Def1M defines FinSequence-yielding PRE_POLY:def 3 :
for IT being Function holds
( IT is FinSequence-yielding iff for x being set st x in dom IT holds
IT . x is FinSequence );
:: deftheorem Def2M defines ^^ PRE_POLY:def 4 :
for F, G, b3 being FinSequence-yielding Function holds
( b3 = F ^^ G iff ( dom b3 = (dom F) /\ (dom G) & ( for i being set st i in dom b3 holds
for f, g being FinSequence st f = F . i & g = G . i holds
b3 . i = f ^ g ) ) );
begin
theorem
theorem
theorem Th4:
theorem Th5:
begin
begin
theorem Th4:
theorem Th7:
theorem Th8:
theorem Th9:
theorem Th10:
theorem Th11:
theorem Th12:
theorem Th13:
theorem Th14:
theorem Th30:
theorem Th31:
theorem Th32:
theorem Th33:
theorem Th35:
theorem
begin
:: deftheorem Def5 defines + PRE_POLY:def 5 :
for X being set
for b1, b2 being complex-valued ManySortedSet of X
for b4 being ManySortedSet of X holds
( b4 = b1 + b2 iff for x being set holds b4 . x = (b1 . x) + (b2 . x) );
:: deftheorem Def6 defines -' PRE_POLY:def 6 :
for X being set
for b1, b2 being natural-valued ManySortedSet of X
for b4 being ManySortedSet of X holds
( b4 = b1 -' b2 iff for x being set holds b4 . x = (b1 . x) -' (b2 . x) );
theorem
theorem Th38:
theorem Th39:
theorem
begin
:: deftheorem Def7 defines support PRE_POLY:def 7 :
for f being Function
for b2 being set holds
( b2 = support f iff for x being set holds
( x in b2 iff f . x <> 0 ) );
theorem Th41:
:: deftheorem Def8 defines finite-support PRE_POLY:def 8 :
for f being Function holds
( f is finite-support iff support f is finite );
theorem Th42:
theorem Th43:
begin
theorem Th44:
:: deftheorem Def11 defines < PRE_POLY:def 9 :
for n being Ordinal
for p, q being bag of n holds
( p < q iff ex k being Ordinal st
( p . k < q . k & ( for l being Ordinal st l in k holds
p . l = q . l ) ) );
theorem Th45:
for
n being
Ordinal for
p,
q,
r being
bag of
n st
p < q &
q < r holds
p < r
:: deftheorem Def12 defines <=' PRE_POLY:def 10 :
for n being Ordinal
for p, q being bag of n holds
( p <=' q iff ( p < q or p = q ) );
theorem Th46:
theorem
for
n being
Ordinal for
p,
q,
r being
bag of
n st
p < q &
q <=' r holds
p < r
theorem
for
n being
Ordinal for
p,
q,
r being
bag of
n st
p <=' q &
q < r holds
p < r
theorem Th49:
:: deftheorem Def13 defines divides PRE_POLY:def 11 :
for X being set
for d, b being bag of X holds
( d divides b iff for k being set holds d . k <= b . k );
theorem Th50:
for
n being
set for
d,
b being
bag of
n st ( for
k being
set st
k in n holds
d . k <= b . k ) holds
d divides b
theorem Th51:
theorem Th52:
for
X being
set for
b1,
b2 being
bag of
X holds
(b2 + b1) -' b1 = b2
theorem Th53:
theorem Th54:
for
n being
set for
b,
b1,
b2 being
bag of
n st
b = b1 + b2 holds
b1 divides b
:: deftheorem Def14 defines Bags PRE_POLY:def 12 :
for X being set
for b2 being set holds
( b2 = Bags X iff for x being set holds
( x in b2 iff x is bag of X ) );
theorem
:: deftheorem defines EmptyBag PRE_POLY:def 13 :
for X being set holds EmptyBag X = X --> 0;
theorem Th56:
theorem
theorem Th58:
theorem
theorem Th60:
theorem Th61:
theorem Th62:
theorem Th63:
theorem
:: deftheorem Def16 defines BagOrder PRE_POLY:def 14 :
for n being Ordinal
for b2 being Order of (Bags n) holds
( b2 = BagOrder n iff for p, q being bag of n holds
( [p,q] in b2 iff p <=' q ) );
Lm1:
for n being Ordinal holds BagOrder n is_reflexive_in Bags n
Lm2:
for n being Ordinal holds BagOrder n is_antisymmetric_in Bags n
Lm3:
for n being Ordinal holds BagOrder n is_transitive_in Bags n
Lm4:
for n being Ordinal holds BagOrder n linearly_orders Bags n
:: deftheorem Def17 defines NatMinor PRE_POLY:def 15 :
for X being set
for f being Function of X,NAT
for b3 being Subset of (Funcs (X,NAT)) holds
( b3 = NatMinor f iff for g being natural-valued ManySortedSet of X holds
( g in b3 iff for x being set st x in X holds
g . x <= f . x ) );
theorem Th65:
theorem Th66:
theorem Th67:
:: deftheorem Def18 defines divisors PRE_POLY:def 16 :
for n being Ordinal
for b being bag of n
for b3 being FinSequence of Bags n holds
( b3 = divisors b iff ex S being non empty finite Subset of (Bags n) st
( b3 = SgmX ((BagOrder n),S) & ( for p being bag of n holds
( p in S iff p divides b ) ) ) );
theorem Th68:
theorem Th69:
theorem Th70:
theorem Th71:
:: deftheorem Def19 defines decomp PRE_POLY:def 17 :
for n being Ordinal
for b being bag of n
for b3 being FinSequence of 2 -tuples_on (Bags n) holds
( b3 = decomp b iff ( dom b3 = dom (divisors b) & ( for i being Element of NAT
for p being bag of n st i in dom b3 & p = (divisors b) /. i holds
b3 /. i = <*p,(b -' p)*> ) ) );
theorem Th72:
theorem Th73:
theorem Th74:
theorem
theorem
theorem
theorem
theorem