begin
Lm45:
for Y being set
for g being Function st g is Y -valued & g is FinSequence-like holds
g is FinSequence of Y
Lm28:
for Y, A, B being set st Y c= Funcs (A,B) holds
union Y c= [:A,B:]
LmOneOne:
for X being set
for f being Function holds
( f is X -one-to-one iff for x, y being set st x in (dom f) /\ X & y in (dom f) /\ X & f . x = f . y holds
x = y )
Lm12:
for D being non empty set
for A, B being set
for f being BinOp of D st A c= B & f is B -one-to-one holds
f is A -one-to-one
Lm18:
for A, B being set
for m, n being Nat st m -tuples_on A meets n -tuples_on B holds
m = n
Lm21:
for i being Nat
for Y being set holds i -tuples_on Y = Funcs ((Seg i),Y)
Lm11:
for A, B being set
for m being Nat holds (m -tuples_on A) /\ (B *) c= m -tuples_on B
Lm20:
for A, B, C being set holds (Funcs (A,B)) /\ (Funcs (A,C)) = Funcs (A,(B /\ C))
ThConcatenation:
for D being non empty set
for x, y being FinSequence of D holds (D -concatenation) . (x,y) = x ^ y
Lm13:
for D being non empty set
for B, A being set
for f being BinOp of D st B is f -unambiguous & A c= B holds
A is f -unambiguous
Lm14:
for D being non empty set
for f being BinOp of D holds {} is f -unambiguous
Lm27:
for f, g being FinSequence holds dom <:f,g:> = Seg (min ((len f),(len g)))
Lm1:
for D being non empty set
for f being BinOp of D
for x being FinSequence of D
for m being Nat holds
( ( m + 1 <= len x implies (MultPlace (f,x)) . m in D ) & ( for n being Nat st n >= m + 1 holds
(MultPlace (f,(x | n))) . m = (MultPlace (f,x)) . m ) )
LmMultPlace:
for D being non empty set
for f being BinOp of D
for x being non empty FinSequence of D
for y being Element of D holds
( (MultPlace f) . <*y*> = y & (MultPlace f) . (x ^ <*y*>) = f . (((MultPlace f) . x),y) )
Lm3:
for D being non empty set
for f being BinOp of D
for X being set holds
( f is [:X,D:] -one-to-one iff for x, y, d1, d2 being set st x in X /\ D & y in X /\ D & d1 in D & d2 in D & f . (x,d1) = f . (y,d2) holds
( x = y & d1 = d2 ) )
definition
let D be non
empty set ;
let f be
BinOp of
D;
let X be
set ;
redefine attr X is
f -unambiguous means :
DefUnambiguous2:
for
x,
y,
d1,
d2 being
set st
x in X /\ D &
y in X /\ D &
d1 in D &
d2 in D &
f . (
x,
d1)
= f . (
y,
d2) holds
(
x = y &
d1 = d2 );
compatibility
( X is f -unambiguous iff for x, y, d1, d2 being set st x in X /\ D & y in X /\ D & d1 in D & d2 in D & f . (x,d1) = f . (y,d2) holds
( x = y & d1 = d2 ) )
end;
Lm19:
for D being non empty set
for f being BinOp of D st f is associative holds
for d being Element of D
for m being Nat
for x being Element of (m + 1) -tuples_on D holds (MultPlace f) . (<*d*> ^ x) = f . (d,((MultPlace f) . x))
Lm5:
for D being non empty set
for X being non empty Subset of D
for f being BinOp of D
for m being Nat st f is associative & X is f -unambiguous holds
(MultPlace f) .: ((m + 1) -tuples_on X) is f -unambiguous
Lm15:
for D being non empty set
for Y being set
for f being BinOp of D
for m being Nat st f is associative & Y is f -unambiguous holds
(MultPlace f) .: ((m + 1) -tuples_on Y) is f -unambiguous
Lm17:
for D being non empty set
for X being non empty Subset of D
for f being BinOp of D
for m being Nat st f is associative & X is f -unambiguous holds
MultPlace f is (m + 1) -tuples_on X -one-to-one
Lm26:
for D being non empty set
for Y being set
for f being BinOp of D
for m being Nat st f is associative & Y is f -unambiguous holds
MultPlace f is (m + 1) -tuples_on Y -one-to-one
Th2:
for D being non empty set
for w being non empty FinSequence of D holds (D -firstChar) . w = w . 1
Lm6:
for D being non empty set holds (D -multiCat) | (((D *) *) \ {{}}) = MultPlace (D -concatenation)
Lm16:
for D being non empty set
for Y being set holds (D -multiCat) | (Y \ {{}}) = (MultPlace (D -concatenation)) | Y
Lm9:
for D being non empty set holds {} .--> {} tolerates MultPlace (D -concatenation)
Lm59:
for D being non empty set
for B, A being set st B is D -prefix & A c= B holds
A is D -prefix
Lm43:
for m being Nat
for g, f being Function st f c= g holds
iter (f,m) c= iter (g,m)
Lm31:
for R being Relation holds R [*] is_transitive_in field R
Lm32:
for R being Relation holds field (R [*]) c= field R
Lm37:
for R being Relation holds R [*] is_reflexive_in field R
Lm34:
for R being Relation holds field (R [*]) = field R
Lm38:
for f being Function holds iter (f,0) c= f [*]
Lm39:
for m being Nat
for f being Function holds iter (f,(m + 1)) c= f [*]
Lm40:
for m being Nat
for f being Function holds iter (f,m) c= f [*]
Lm35:
for x being set
for m being Nat
for g, f being Function st rng f c= dom f & x in dom f & g . 0 = x & ( for i being Nat st i < m holds
g . (i + 1) = f . (g . i) ) holds
g . m = (iter (f,m)) . x
Lm36:
for x being set
for m being Nat
for f being Function
for p being FinSequence st rng f c= dom f & x in dom f & p . 1 = x & ( for i being Nat st i >= 1 & i < m + 1 holds
p . (i + 1) = f . (p . i) ) holds
p . (m + 1) = (iter (f,m)) . x
Lm41:
for z being set
for f being Function st z in f [*] & rng f c= dom f holds
ex n being Nat st z in iter (f,n)
Lm42:
for f being Function st rng f c= dom f holds
f [*] = union { (iter (f,mm)) where mm is Element of NAT : verum }
Lm4:
for A, B being set holds chi (A,B) = (B --> 0) +* ((A /\ B) --> 1)
Lm10:
for A, B being set holds chi (A,B) = ((B \ A) --> 0) +* ((A /\ B) --> 1)
Lm29:
for A, B being set holds chi (A,B) = ((B \ A) --> 0) \/ ((A /\ B) --> 1)
Lm46:
for Y being set
for R being b1 -defined total Relation ex f being Function of Y,(rng R) st
( f c= R & dom f = Y )
Lm47:
for R being Relation
for f being Function st dom f c= dom R & R c= f holds
R = f
Lm48:
for Y being set
for R, P being Relation
for Q being b1 -defined Relation st Q is total & R is Y -defined & ((P * Q) * (Q ~)) * R is Function-like & rng P c= dom R holds
((P * Q) * (Q ~)) * R = P * R
theorem Th29:
for
Y,
X being
set holds
(
X \+\ Y = {} iff
X = Y )
Lm53:
for x2 being set
for U being non empty set
for u, u1 being Element of U holds
( ( u = u1 implies (u1,x2) -SymbolSubstIn <*u*> = <*x2*> ) & ( u <> u1 implies (u1,x2) -SymbolSubstIn <*u*> = <*u*> ) )
Lm50:
for x being set
for U being non empty set
for u being Element of U
for q1, q2 being b2 -valued FinSequence holds (x,u) -SymbolSubstIn (q1 ^ q2) = ((x,u) -SymbolSubstIn q1) ^ ((x,u) -SymbolSubstIn q2)
Lm54:
for U being non empty set
for u, u1, u2 being Element of U holds
( ( u = u1 implies (u1 SubstWith u2) . <*u*> = <*u2*> ) & ( u <> u1 implies (u1 SubstWith u2) . <*u*> = <*u*> ) )
Lm55:
for x being set
for U being non empty set
for u being Element of U
for q1, q2 being b2 -valued FinSequence holds (x SubstWith u) . (q1 ^ q2) = ((x SubstWith u) . q1) ^ ((x SubstWith u) . q2)
Lm51:
for R being Relation holds
( R is {{}} -valued iff R is empty-yielding )
Lm52:
for x being set
for U being non empty set
for u being Element of U
for p being FinSequence st p is U * -valued holds
(x SubstWith u) . ((U -multiCat) . p) = (U -multiCat) . ((x SubstWith u) * p)
Lm56:
for m being Nat
for p1, p2, q1, q2 being FinSequence st p1 is m -element & q1 is m -element & p1 ^ p2 = q1 ^ q2 holds
( p1 = q1 & p2 = q2 )
Lm58:
for X being functional set st X is finite & X is finite-membered holds
SymbolsOf X is finite
Lm57:
for B being functional set
for A being Subset of B holds { (rng x) where x is Element of A : x in A } c= { (rng x) where x is Element of B : x in B }
theorem Th48:
for
X,
Y being
set holds
X = (X \ Y) \/ (X /\ Y)
Lm60:
for Y being set
for U being non empty set
for p being FinSequence st p <> {} & p is Y -valued & Y c= U * & Y is with_non-empty_elements holds
(U -multiCat) . p <> {}
::#######################################################################