Article FINSEQ_1, MML version 4.99.1005
:: FINSEQ_1:funcnot 1 => FINSEQ_1:func 1
definition
let a1 be natural set;
func Seg A1 -> set equals
{b1 where b1 is Element of NAT: 1 <= b1 & b1 <= a1};
end;
:: FINSEQ_1:def 1
theorem
for b1 being natural set holds
Seg b1 = {b2 where b2 is Element of NAT: 1 <= b2 & b2 <= b1};
:: FINSEQ_1:funcnot 2 => FINSEQ_1:func 2
definition
let a1 be natural set;
redefine func Seg a1 -> Element of bool NAT;
end;
:: FINSEQ_1:th 3
theorem
for b1, b2 being natural set holds
b1 in Seg b2
iff
1 <= b1 & b1 <= b2;
:: FINSEQ_1:th 4
theorem
Seg 0 = {} & Seg 1 = {1} & Seg 2 = {1,2};
:: FINSEQ_1:th 5
theorem
for b1 being natural set
st b1 <> 0
holds b1 in Seg b1;
:: FINSEQ_1:th 6
theorem
for b1 being natural set holds
b1 + 1 in Seg (b1 + 1);
:: FINSEQ_1:th 7
theorem
for b1, b2 being natural set holds
b1 <= b2
iff
Seg b1 c= Seg b2;
:: FINSEQ_1:th 8
theorem
for b1, b2 being natural set
st Seg b1 = Seg b2
holds b1 = b2;
:: FINSEQ_1:th 9
theorem
for b1, b2 being natural set
st b1 <= b2
holds Seg b1 = (Seg b2) /\ Seg b1;
:: FINSEQ_1:th 10
theorem
for b1, b2 being natural set
st Seg b1 = (Seg b1) /\ Seg b2
holds b1 <= b2;
:: FINSEQ_1:th 11
theorem
for b1 being natural set holds
(Seg b1) \/ {b1 + 1} = Seg (b1 + 1);
:: FINSEQ_1:th 12
theorem
for b1 being natural set holds
Seg b1 = (Seg (b1 + 1)) \ {b1 + 1};
:: FINSEQ_1:attrnot 1 => FINSEQ_1:attr 1
definition
let a1 be Relation-like set;
attr a1 is FinSequence-like means
ex b1 being natural set st
proj1 a1 = Seg b1;
end;
:: FINSEQ_1:dfs 2
definiens
let a1 be Relation-like set;
To prove
a1 is FinSequence-like
it is sufficient to prove
thus ex b1 being natural set st
proj1 a1 = Seg b1;
:: FINSEQ_1:def 2
theorem
for b1 being Relation-like set holds
b1 is FinSequence-like
iff
ex b2 being natural set st
proj1 b1 = Seg b2;
:: FINSEQ_1:exreg 1
registration
cluster Relation-like Function-like FinSequence-like set;
end;
:: FINSEQ_1:modenot 1
definition
mode FinSequence is Relation-like Function-like FinSequence-like set;
end;
:: FINSEQ_1:funcreg 1
registration
let a1 be natural set;
cluster Seg a1 -> finite;
end;
:: FINSEQ_1:condreg 1
registration
cluster Relation-like Function-like FinSequence-like -> finite (set);
end;
:: FINSEQ_1:funcnot 3 => CARD_1:func 1
notation
let a1 be Relation-like Function-like FinSequence-like set;
synonym len a1 for Card a1;
end;
:: FINSEQ_1:funcnot 4 => FINSEQ_1:func 3
definition
let a1 be Relation-like Function-like FinSequence-like set;
redefine func len A1 -> Element of NAT means
Seg it = proj1 a1;
projectivity;
:: for a1 being Relation-like Function-like FinSequence-like set holds
:: len len a1 = len a1;
end;
:: FINSEQ_1:def 3
theorem
for b1 being Relation-like Function-like FinSequence-like set
for b2 being Element of NAT holds
b2 = len b1
iff
Seg b2 = proj1 b1;
:: FINSEQ_1:funcnot 5 => FINSEQ_1:func 4
definition
let a1 be Relation-like Function-like FinSequence-like set;
redefine func dom a1 -> Element of bool NAT;
end;
:: FINSEQ_1:th 14
theorem
{} is Relation-like Function-like FinSequence-like set;
:: FINSEQ_1:th 15
theorem
for b1 being Relation-like Function-like set
st ex b2 being natural set st
proj1 b1 c= Seg b2
holds ex b2 being Relation-like Function-like FinSequence-like set st
b1 c= b2;
:: FINSEQ_1:sch 1
scheme FINSEQ_1:sch 1
{F1 -> natural set}:
ex b1 being Relation-like Function-like FinSequence-like set st
dom b1 = Seg F1() &
(for b2 being natural set
st b2 in Seg F1()
holds P1[b2, b1 . b2])
provided
for b1 being natural set
for b2, b3 being set
st b1 in Seg F1() & P1[b1, b2] & P1[b1, b3]
holds b2 = b3
and
for b1 being natural set
st b1 in Seg F1()
holds ex b2 being set st
P1[b1, b2];
:: FINSEQ_1:sch 2
scheme FINSEQ_1:sch 2
{F1 -> natural set,
F2 -> set}:
ex b1 being Relation-like Function-like FinSequence-like set st
len b1 = F1() &
(for b2 being natural set
st b2 in dom b1
holds b1 . b2 = F2(b2))
:: FINSEQ_1:th 16
theorem
for b1 being set
for b2 being Relation-like Function-like FinSequence-like set
st b1 in b2
holds ex b3 being natural set st
b3 in dom b2 & b1 = [b3,b2 . b3];
:: FINSEQ_1:th 17
theorem
for b1, b2 being Relation-like Function-like FinSequence-like set
st dom b1 = dom b2 &
(for b3 being natural set
st b3 in dom b1
holds b1 . b3 = b2 . b3)
holds b1 = b2;
:: FINSEQ_1:th 18
theorem
for b1, b2 being Relation-like Function-like FinSequence-like set
st len b1 = len b2 &
(for b3 being natural set
st 1 <= b3 & b3 <= len b1
holds b1 . b3 = b2 . b3)
holds b1 = b2;
:: FINSEQ_1:th 19
theorem
for b1 being natural set
for b2 being Relation-like Function-like FinSequence-like set holds
b2 | Seg b1 is Relation-like Function-like FinSequence-like set;
:: FINSEQ_1:th 20
theorem
for b1 being Relation-like Function-like set
for b2 being Relation-like Function-like FinSequence-like set
st proj2 b2 c= proj1 b1
holds b2 * b1 is Relation-like Function-like FinSequence-like set;
:: FINSEQ_1:th 21
theorem
for b1 being natural set
for b2, b3 being Relation-like Function-like FinSequence-like set
st b1 <= len b2 & b3 = b2 | Seg b1
holds len b3 = b1 & dom b3 = Seg b1;
:: FINSEQ_1:modenot 2 => FINSEQ_1:mode 1
definition
let a1 be set;
mode FinSequence of A1 -> Relation-like Function-like FinSequence-like set means
proj2 it c= a1;
end;
:: FINSEQ_1:dfs 4
definiens
let a1 be set;
let a2 be Relation-like Function-like FinSequence-like set;
To prove
a2 is FinSequence of a1
it is sufficient to prove
thus proj2 a2 c= a1;
:: FINSEQ_1:def 4
theorem
for b1 being set
for b2 being Relation-like Function-like FinSequence-like set holds
b2 is FinSequence of b1
iff
proj2 b2 c= b1;
:: FINSEQ_1:funcreg 2
registration
cluster {} -> FinSequence-like;
end;
:: FINSEQ_1:exreg 2
registration
let a1 be set;
cluster Relation-like Function-like FinSequence-like Relation of NAT,a1;
end;
:: FINSEQ_1:modenot 3 => FINSEQ_1:mode 2
definition
let a1 be set;
redefine mode FinSequence of a1 -> Function-like FinSequence-like Relation of NAT,a1;
end;
:: FINSEQ_1:th 23
theorem
for b1 being natural set
for b2 being set
for b3 being FinSequence of b2 holds
b3 | Seg b1 is FinSequence of b2;
:: FINSEQ_1:th 24
theorem
for b1 being natural set
for b2 being non empty set holds
ex b3 being FinSequence of b2 st
len b3 = b1;
:: FINSEQ_1:exreg 3
registration
cluster Relation-like Function-like empty finite FinSequence-like set;
end;
:: FINSEQ_1:th 28
theorem
for b1 being Relation-like Function-like FinSequence-like set holds
b1 <> {}
iff
1 <= len b1;
:: FINSEQ_1:funcnot 6 => FINSEQ_1:func 5
definition
let a1 be set;
func <*A1*> -> set equals
{[1,a1]};
end;
:: FINSEQ_1:def 5
theorem
for b1 being set holds
<*b1*> = {[1,b1]};
:: FINSEQ_1:funcnot 7 => FINSEQ_1:func 6
definition
let a1 be set;
func <*> A1 -> FinSequence of a1 equals
{};
end;
:: FINSEQ_1:def 6
theorem
for b1 being set holds
<*> b1 = {};
:: FINSEQ_1:funcreg 3
registration
let a1 be set;
cluster <*> a1 -> empty;
end;
:: FINSEQ_1:exreg 4
registration
let a1 be set;
cluster Relation-like Function-like empty finite FinSequence-like FinSequence of a1;
end;
:: FINSEQ_1:th 32
theorem
for b1 being Relation-like Function-like FinSequence-like set
for b2 being set holds
b1 = <*> b2
iff
len b1 = 0;
:: FINSEQ_1:funcnot 8 => FINSEQ_1:func 7
definition
let a1, a2 be Relation-like Function-like FinSequence-like set;
func A1 ^ A2 -> Relation-like Function-like FinSequence-like set means
dom it = Seg ((len a1) + len a2) &
(for b1 being natural set
st b1 in dom a1
holds it . b1 = a1 . b1) &
(for b1 being natural set
st b1 in dom a2
holds it . ((len a1) + b1) = a2 . b1);
end;
:: FINSEQ_1:def 7
theorem
for b1, b2, b3 being Relation-like Function-like FinSequence-like set holds
b3 = b1 ^ b2
iff
dom b3 = Seg ((len b1) + len b2) &
(for b4 being natural set
st b4 in dom b1
holds b3 . b4 = b1 . b4) &
(for b4 being natural set
st b4 in dom b2
holds b3 . ((len b1) + b4) = b2 . b4);
:: FINSEQ_1:th 33
theorem
for b1, b2 being Relation-like Function-like FinSequence-like set holds
b1 = (b1 ^ b2) | dom b1;
:: FINSEQ_1:th 35
theorem
for b1, b2 being Relation-like Function-like FinSequence-like set holds
len (b1 ^ b2) = (len b1) + len b2;
:: FINSEQ_1:th 36
theorem
for b1, b2 being Relation-like Function-like FinSequence-like set
for b3 being natural set
st (len b1) + 1 <= b3 & b3 <= (len b1) + len b2
holds (b1 ^ b2) . b3 = b2 . (b3 - len b1);
:: FINSEQ_1:th 37
theorem
for b1, b2 being Relation-like Function-like FinSequence-like set
for b3 being natural set
st len b1 < b3 & b3 <= len (b1 ^ b2)
holds (b1 ^ b2) . b3 = b2 . (b3 - len b1);
:: FINSEQ_1:th 38
theorem
for b1, b2 being Relation-like Function-like FinSequence-like set
for b3 being natural set
st b3 in dom (b1 ^ b2) & not b3 in dom b1
holds ex b4 being natural set st
b4 in dom b2 & b3 = (len b1) + b4;
:: FINSEQ_1:th 39
theorem
for b1, b2 being Relation-like Function-like FinSequence-like set holds
dom b1 c= dom (b1 ^ b2);
:: FINSEQ_1:th 40
theorem
for b1 being set
for b2, b3 being Relation-like Function-like FinSequence-like set
st b1 in dom b2
holds ex b4 being natural set st
b4 = b1 & (len b3) + b4 in dom (b3 ^ b2);
:: FINSEQ_1:th 41
theorem
for b1 being natural set
for b2, b3 being Relation-like Function-like FinSequence-like set
st b1 in dom b2
holds (len b3) + b1 in dom (b3 ^ b2);
:: FINSEQ_1:th 42
theorem
for b1, b2 being Relation-like Function-like FinSequence-like set holds
proj2 b1 c= proj2 (b1 ^ b2);
:: FINSEQ_1:th 43
theorem
for b1, b2 being Relation-like Function-like FinSequence-like set holds
proj2 b1 c= proj2 (b2 ^ b1);
:: FINSEQ_1:th 44
theorem
for b1, b2 being Relation-like Function-like FinSequence-like set holds
proj2 (b1 ^ b2) = (proj2 b1) \/ proj2 b2;
:: FINSEQ_1:th 45
theorem
for b1, b2, b3 being Relation-like Function-like FinSequence-like set holds
(b1 ^ b2) ^ b3 = b1 ^ (b2 ^ b3);
:: FINSEQ_1:th 46
theorem
for b1, b2, b3 being Relation-like Function-like FinSequence-like set
st (b1 ^ b2 = b3 ^ b2 or b2 ^ b1 = b2 ^ b3)
holds b1 = b3;
:: FINSEQ_1:th 47
theorem
for b1 being Relation-like Function-like FinSequence-like set holds
b1 ^ {} = b1 & {} ^ b1 = b1;
:: FINSEQ_1:th 48
theorem
for b1, b2 being Relation-like Function-like FinSequence-like set
st b1 ^ b2 = {}
holds b1 = {} & b2 = {};
:: FINSEQ_1:funcnot 9 => FINSEQ_1:func 8
definition
let a1 be set;
let a2, a3 be FinSequence of a1;
redefine func a2 ^ a3 -> FinSequence of a1;
end;
:: FINSEQ_1:funcnot 10 => FINSEQ_1:func 9
definition
let a1 be set;
redefine func <*A1*> -> Relation-like Function-like set means
proj1 it = Seg 1 & it . 1 = a1;
end;
:: FINSEQ_1:def 8
theorem
for b1 being set
for b2 being Relation-like Function-like set holds
b2 = <*b1*>
iff
proj1 b2 = Seg 1 & b2 . 1 = b1;
:: FINSEQ_1:funcreg 4
registration
let a1 be set;
cluster <*a1*> -> Relation-like Function-like;
end;
:: FINSEQ_1:funcreg 5
registration
let a1 be set;
cluster <*a1*> -> FinSequence-like;
end;
:: FINSEQ_1:th 50
theorem
for b1, b2 being Relation-like Function-like FinSequence-like set
for b3 being set
st b1 ^ b2 is FinSequence of b3
holds b1 is FinSequence of b3 & b2 is FinSequence of b3;
:: FINSEQ_1:funcnot 11 => FINSEQ_1:func 10
definition
let a1, a2 be set;
func <*A1,A2*> -> set equals
<*a1*> ^ <*a2*>;
end;
:: FINSEQ_1:def 9
theorem
for b1, b2 being set holds
<*b1,b2*> = <*b1*> ^ <*b2*>;
:: FINSEQ_1:funcnot 12 => FINSEQ_1:func 11
definition
let a1, a2, a3 be set;
func <*A1,A2,A3*> -> set equals
(<*a1*> ^ <*a2*>) ^ <*a3*>;
end;
:: FINSEQ_1:def 10
theorem
for b1, b2, b3 being set holds
<*b1,b2,b3*> = (<*b1*> ^ <*b2*>) ^ <*b3*>;
:: FINSEQ_1:funcreg 6
registration
let a1, a2 be set;
cluster <*a1,a2*> -> Relation-like Function-like;
end;
:: FINSEQ_1:funcreg 7
registration
let a1, a2, a3 be set;
cluster <*a1,a2,a3*> -> Relation-like Function-like;
end;
:: FINSEQ_1:funcreg 8
registration
let a1, a2 be set;
cluster <*a1,a2*> -> FinSequence-like;
end;
:: FINSEQ_1:funcreg 9
registration
let a1, a2, a3 be set;
cluster <*a1,a2,a3*> -> FinSequence-like;
end;
:: FINSEQ_1:th 52
theorem
for b1 being set holds
<*b1*> = {[1,b1]};
:: FINSEQ_1:th 55
theorem
for b1 being set
for b2 being Relation-like Function-like FinSequence-like set holds
b2 = <*b1*>
iff
dom b2 = Seg 1 & proj2 b2 = {b1};
:: FINSEQ_1:th 56
theorem
for b1 being set
for b2 being Relation-like Function-like FinSequence-like set holds
b2 = <*b1*>
iff
len b2 = 1 & proj2 b2 = {b1};
:: FINSEQ_1:th 57
theorem
for b1 being set
for b2 being Relation-like Function-like FinSequence-like set holds
b2 = <*b1*>
iff
len b2 = 1 & b2 . 1 = b1;
:: FINSEQ_1:th 58
theorem
for b1 being set
for b2 being Relation-like Function-like FinSequence-like set holds
(<*b1*> ^ b2) . 1 = b1;
:: FINSEQ_1:th 59
theorem
for b1 being set
for b2 being Relation-like Function-like FinSequence-like set holds
(b2 ^ <*b1*>) . ((len b2) + 1) = b1;
:: FINSEQ_1:th 60
theorem
for b1, b2, b3 being set holds
<*b1,b2,b3*> = <*b1*> ^ <*b2,b3*> &
<*b1,b2,b3*> = <*b1,b2*> ^ <*b3*>;
:: FINSEQ_1:th 61
theorem
for b1, b2 being set
for b3 being Relation-like Function-like FinSequence-like set holds
b3 = <*b1,b2*>
iff
len b3 = 2 & b3 . 1 = b1 & b3 . 2 = b2;
:: FINSEQ_1:th 62
theorem
for b1, b2, b3 being set
for b4 being Relation-like Function-like FinSequence-like set holds
b4 = <*b1,b2,b3*>
iff
len b4 = 3 & b4 . 1 = b1 & b4 . 2 = b2 & b4 . 3 = b3;
:: FINSEQ_1:th 63
theorem
for b1 being Relation-like Function-like FinSequence-like set
st b1 <> {}
holds ex b2 being Relation-like Function-like FinSequence-like set st
ex b3 being set st
b1 = b2 ^ <*b3*>;
:: FINSEQ_1:funcnot 13 => FINSEQ_1:func 12
definition
let a1 be non empty set;
let a2 be Element of a1;
redefine func <*a2*> -> FinSequence of a1;
end;
:: FINSEQ_1:sch 3
scheme FINSEQ_1:sch 3
for b1 being Relation-like Function-like FinSequence-like set holds
P1[b1]
provided
P1[{}]
and
for b1 being Relation-like Function-like FinSequence-like set
for b2 being set
st P1[b1]
holds P1[b1 ^ <*b2*>];
:: FINSEQ_1:th 64
theorem
for b1, b2, b3, b4 being Relation-like Function-like FinSequence-like set
st b1 ^ b2 = b3 ^ b4 & len b1 <= len b3
holds ex b5 being Relation-like Function-like FinSequence-like set st
b1 ^ b5 = b3;
:: FINSEQ_1:funcnot 14 => FINSEQ_1:func 13
definition
let a1 be set;
func A1 * -> set means
for b1 being set holds
b1 in it
iff
b1 is FinSequence of a1;
end;
:: FINSEQ_1:def 11
theorem
for b1, b2 being set holds
b2 = b1 *
iff
for b3 being set holds
b3 in b2
iff
b3 is FinSequence of b1;
:: FINSEQ_1:funcreg 10
registration
let a1 be set;
cluster a1 * -> non empty;
end;
:: FINSEQ_1:th 65
theorem
for b1, b2 being Relation-like Function-like FinSequence-like set
st proj2 b1 = proj2 b2 & b1 is one-to-one & b2 is one-to-one
holds len b1 = len b2;
:: FINSEQ_1:th 66
theorem
for b1 being set holds
{} in b1 *;
:: FINSEQ_1:sch 4
scheme FINSEQ_1:sch 4
{F1 -> non empty set}:
ex b1 being set st
for b2 being set holds
b2 in b1
iff
ex b3 being Relation-like Function-like FinSequence-like set st
b3 in F1() * & P1[b3] & b2 = b3
:: FINSEQ_1:attrnot 2 => FINSEQ_1:attr 2
definition
let a1 be Relation-like Function-like set;
attr a1 is FinSubsequence-like means
ex b1 being natural set st
proj1 a1 c= Seg b1;
end;
:: FINSEQ_1:dfs 12
definiens
let a1 be Relation-like Function-like set;
To prove
a1 is FinSubsequence-like
it is sufficient to prove
thus ex b1 being natural set st
proj1 a1 c= Seg b1;
:: FINSEQ_1:def 12
theorem
for b1 being Relation-like Function-like set holds
b1 is FinSubsequence-like
iff
ex b2 being natural set st
proj1 b1 c= Seg b2;
:: FINSEQ_1:exreg 5
registration
cluster Relation-like Function-like FinSubsequence-like set;
end;
:: FINSEQ_1:modenot 4
definition
mode FinSubsequence is Relation-like Function-like FinSubsequence-like set;
end;
:: FINSEQ_1:th 68
theorem
for b1 being Relation-like Function-like FinSequence-like set holds
b1 is Relation-like Function-like FinSubsequence-like set;
:: FINSEQ_1:th 69
theorem
for b1 being set
for b2 being Relation-like Function-like FinSequence-like set holds
b2 | b1 is Relation-like Function-like FinSubsequence-like set &
b1 | b2 is Relation-like Function-like FinSubsequence-like set;
:: FINSEQ_1:funcnot 15 => FINSEQ_1:func 14
definition
let a1 be set;
assume ex b1 being natural set st
a1 c= Seg b1;
func Sgm A1 -> FinSequence of NAT means
proj2 it = a1 &
(for b1, b2, b3, b4 being natural set
st 1 <= b1 & b1 < b2 & b2 <= len it & b3 = it . b1 & b4 = it . b2
holds b3 < b4);
end;
:: FINSEQ_1:def 13
theorem
for b1 being set
st ex b2 being natural set st
b1 c= Seg b2
for b2 being FinSequence of NAT holds
b2 = Sgm b1
iff
proj2 b2 = b1 &
(for b3, b4, b5, b6 being natural set
st 1 <= b3 & b3 < b4 & b4 <= len b2 & b5 = b2 . b3 & b6 = b2 . b4
holds b5 < b6);
:: FINSEQ_1:th 71
theorem
for b1 being Relation-like Function-like FinSubsequence-like set holds
proj2 Sgm proj1 b1 = proj1 b1;
:: FINSEQ_1:funcnot 16 => FINSEQ_1:func 15
definition
let a1 be Relation-like Function-like FinSubsequence-like set;
func Seq A1 -> Relation-like Function-like set equals
(Sgm proj1 a1) * a1;
end;
:: FINSEQ_1:def 14
theorem
for b1 being Relation-like Function-like FinSubsequence-like set holds
Seq b1 = (Sgm proj1 b1) * b1;
:: FINSEQ_1:funcreg 11
registration
let a1 be Relation-like Function-like FinSubsequence-like set;
cluster Seq a1 -> Relation-like Function-like FinSequence-like;
end;
:: FINSEQ_1:th 72
theorem
for b1 being set
st ex b2 being natural set st
b1 c= Seg b2
holds Sgm b1 = {}
iff
b1 = {};
:: FINSEQ_1:th 73
theorem
for b1 being set holds
b1 is finite
iff
ex b2 being Relation-like Function-like FinSequence-like set st
b1 = proj2 b2;
:: FINSEQ_1:th 74
theorem
for b1, b2 being natural set
st Seg b1,Seg b2 are_equipotent
holds b1 = b2;
:: FINSEQ_1:th 75
theorem
for b1 being natural set holds
Seg b1,b1 are_equipotent;
:: FINSEQ_1:th 76
theorem
for b1 being natural set holds
Card Seg b1 = Card b1;
:: FINSEQ_1:th 77
theorem
for b1 being set
st b1 is finite
holds ex b2 being natural set st
b1,Seg b2 are_equipotent;
:: FINSEQ_1:th 78
theorem
for b1 being natural set holds
card Seg b1 = b1;
:: FINSEQ_1:funcreg 12
registration
let a1 be set;
cluster <*a1*> -> non empty;
end;
:: FINSEQ_1:exreg 6
registration
cluster Relation-like Function-like non empty finite FinSequence-like set;
end;
:: FINSEQ_1:funcreg 13
registration
let a1 be Relation-like Function-like FinSequence-like set;
let a2 be Relation-like Function-like non empty FinSequence-like set;
cluster a1 ^ a2 -> Relation-like Function-like non empty FinSequence-like;
end;
:: FINSEQ_1:funcreg 14
registration
let a1 be Relation-like Function-like FinSequence-like set;
let a2 be Relation-like Function-like non empty FinSequence-like set;
cluster a2 ^ a1 -> Relation-like Function-like non empty FinSequence-like;
end;
:: FINSEQ_1:sch 5
scheme FINSEQ_1:sch 5
{F1 -> non empty set,
F2 -> natural set}:
ex b1 being FinSequence of F1() st
dom b1 = Seg F2() &
(for b2 being natural set
st b2 in Seg F2()
holds P1[b2, b1 . b2])
provided
for b1 being natural set
st b1 in Seg F2()
holds ex b2 being Element of F1() st
P1[b1, b2];
:: FINSEQ_1:funcnot 17 => FINSEQ_1:func 16
definition
let a1 be Relation-like Function-like FinSequence-like set;
let a2 be natural set;
func A1 | A2 -> Relation-like Function-like FinSequence-like set equals
a1 | Seg a2;
end;
:: FINSEQ_1:def 15
theorem
for b1 being Relation-like Function-like FinSequence-like set
for b2 being natural set holds
b1 | b2 = b1 | Seg b2;
:: FINSEQ_1:funcnot 18 => FINSEQ_1:func 17
definition
let a1 be set;
let a2 be FinSequence of a1;
let a3 be natural set;
redefine func a2 | a3 -> FinSequence of a1;
end;
:: FINSEQ_1:funcreg 15
registration
let a1 be set;
let a2 be FinSequence of a1;
cluster a2 | 0 -> Relation-like Function-like empty FinSequence-like;
end;
:: FINSEQ_1:th 79
theorem
for b1 being natural set
for b2 being Relation-like Function-like FinSequence-like set
st len b2 <= b1
holds b2 | b1 = b2;
:: FINSEQ_1:th 80
theorem
for b1 being natural set
for b2 being Relation-like Function-like FinSequence-like set
st b1 <= len b2
holds len (b2 | b1) = b1;
:: FINSEQ_1:th 81
theorem
for b1, b2, b3 being natural set
st b2 in Seg b1
holds b2 + b3 in Seg (b1 + b3);
:: FINSEQ_1:th 82
theorem
for b1, b2, b3 being natural set
st 0 < b2 & b2 + b3 in Seg (b1 + b3)
holds b2 in Seg b1 & b2 in Seg (b1 + b3);
:: FINSEQ_1:funcnot 19 => FINSEQ_1:func 18
definition
let a1 be Relation-like set;
func A1 [*] -> Relation-like set means
for b1, b2 being set holds
[b1,b2] in it
iff
b1 in field a1 &
b2 in field a1 &
(ex b3 being Relation-like Function-like FinSequence-like set st
1 <= len b3 &
b3 . 1 = b1 &
b3 . len b3 = b2 &
(for b4 being natural set
st 1 <= b4 & b4 < len b3
holds [b3 . b4,b3 . (b4 + 1)] in a1));
end;
:: FINSEQ_1:def 16
theorem
for b1, b2 being Relation-like set holds
b2 = b1 [*]
iff
for b3, b4 being set holds
[b3,b4] in b2
iff
b3 in field b1 &
b4 in field b1 &
(ex b5 being Relation-like Function-like FinSequence-like set st
1 <= len b5 &
b5 . 1 = b3 &
b5 . len b5 = b4 &
(for b6 being natural set
st 1 <= b6 & b6 < len b5
holds [b5 . b6,b5 . (b6 + 1)] in b1));
:: FINSEQ_1:th 83
theorem
for b1, b2 being set
st b1 c= b2
holds b1 * c= b2 *;
:: FINSEQ_1:funcreg 16
registration
let a1 be set;
cluster a1 * -> functional;
end;
:: FINSEQ_1:funcreg 17
registration
let a1 be Relation-like Function-like finite set;
let a2 be set;
cluster a1 " a2 -> finite;
end;
:: FINSEQ_1:th 84
theorem
for b1, b2 being Relation-like Function-like FinSequence-like set
st b1 c= b2
holds len b1 <= len b2;
:: FINSEQ_1:th 85
theorem
for b1, b2 being Relation-like Function-like FinSequence-like set
for b3 being natural set
st 1 <= b3 & b3 <= len b1
holds (b1 ^ b2) . b3 = b1 . b3;
:: FINSEQ_1:th 86
theorem
for b1, b2 being Relation-like Function-like FinSequence-like set
for b3 being natural set
st 1 <= b3 & b3 <= len b2
holds (b1 ^ b2) . ((len b1) + b3) = b2 . b3;
:: FINSEQ_1:sch 6
scheme FINSEQ_1:sch 6
{F1 -> natural set,
F2 -> natural set,
F3 -> set}:
{F3(b1) where b1 is Element of NAT: F1() <= b1 & b1 <= F2() & P1[b1]} is finite
:: FINSEQ_1:th 87
theorem
for b1, b2, b3, b4 being set
for b5 being Relation-like Function-like FinSequence-like set
st b5 = ((<*b1*> ^ <*b2*>) ^ <*b3*>) ^ <*b4*>
holds len b5 = 4 & b5 . 1 = b1 & b5 . 2 = b2 & b5 . 3 = b3 & b5 . 4 = b4;
:: FINSEQ_1:th 88
theorem
for b1, b2, b3, b4, b5 being set
for b6 being Relation-like Function-like FinSequence-like set
st b6 = (((<*b1*> ^ <*b2*>) ^ <*b3*>) ^ <*b4*>) ^ <*b5*>
holds len b6 = 5 & b6 . 1 = b1 & b6 . 2 = b2 & b6 . 3 = b3 & b6 . 4 = b4 & b6 . 5 = b5;
:: FINSEQ_1:th 89
theorem
for b1, b2, b3, b4, b5, b6 being set
for b7 being Relation-like Function-like FinSequence-like set
st b7 = ((((<*b1*> ^ <*b2*>) ^ <*b3*>) ^ <*b4*>) ^ <*b5*>) ^ <*b6*>
holds len b7 = 6 & b7 . 1 = b1 & b7 . 2 = b2 & b7 . 3 = b3 & b7 . 4 = b4 & b7 . 5 = b5 & b7 . 6 = b6;
:: FINSEQ_1:th 90
theorem
for b1, b2, b3, b4, b5, b6, b7 being set
for b8 being Relation-like Function-like FinSequence-like set
st b8 = (((((<*b1*> ^ <*b2*>) ^ <*b3*>) ^ <*b4*>) ^ <*b5*>) ^ <*b6*>) ^ <*b7*>
holds len b8 = 7 & b8 . 1 = b1 & b8 . 2 = b2 & b8 . 3 = b3 & b8 . 4 = b4 & b8 . 5 = b5 & b8 . 6 = b6 & b8 . 7 = b7;
:: FINSEQ_1:th 91
theorem
for b1, b2, b3, b4, b5, b6, b7, b8 being set
for b9 being Relation-like Function-like FinSequence-like set
st b9 = ((((((<*b1*> ^ <*b2*>) ^ <*b3*>) ^ <*b4*>) ^ <*b5*>) ^ <*b6*>) ^ <*b7*>) ^ <*b8*>
holds len b9 = 8 & b9 . 1 = b1 & b9 . 2 = b2 & b9 . 3 = b3 & b9 . 4 = b4 & b9 . 5 = b5 & b9 . 6 = b6 & b9 . 7 = b7 & b9 . 8 = b8;
:: FINSEQ_1:th 92
theorem
for b1, b2, b3, b4, b5, b6, b7, b8, b9 being set
for b10 being Relation-like Function-like FinSequence-like set
st b10 = (((((((<*b1*> ^ <*b2*>) ^ <*b3*>) ^ <*b4*>) ^ <*b5*>) ^ <*b6*>) ^ <*b7*>) ^ <*b8*>) ^ <*b9*>
holds len b10 = 9 & b10 . 1 = b1 & b10 . 2 = b2 & b10 . 3 = b3 & b10 . 4 = b4 & b10 . 5 = b5 & b10 . 6 = b6 & b10 . 7 = b7 & b10 . 8 = b8 & b10 . 9 = b9;
:: FINSEQ_1:th 93
theorem
for b1 being Relation-like Function-like FinSequence-like set holds
b1 | Seg 0 = {};
:: FINSEQ_1:th 94
theorem
for b1, b2 being Relation-like Function-like FinSequence-like set holds
b1 | Seg 0 = b2 | Seg 0;
:: FINSEQ_1:th 95
theorem
for b1 being non empty set
for b2 being Element of b1 holds
<*b2*> is FinSequence of b1;
:: FINSEQ_1:th 96
theorem
for b1 being set
for b2, b3 being FinSequence of b1 holds
b2 ^ b3 is FinSequence of b1;
:: FINSEQ_1:funcreg 18
registration
let a1 be Relation-like Function-like set;
let a2 be Relation-like Function-like non empty set;
cluster a1 +* a2 -> Relation-like Function-like non empty;
end;
:: FINSEQ_1:funcreg 19
registration
let a1 be Relation-like Function-like set;
let a2 be Relation-like Function-like non empty set;
cluster a2 +* a1 -> Relation-like Function-like non empty;
end;
:: FINSEQ_1:funcreg 20
registration
let a1, a2 be Relation-like Function-like finite set;
cluster a1 +* a2 -> Relation-like Function-like finite;
end;
:: FINSEQ_1:th 97
theorem
for b1, b2 being set
st <*b1*> = <*b2*>
holds b1 = b2;
:: FINSEQ_1:th 98
theorem
for b1, b2, b3, b4 being set
st <*b1,b2*> = <*b3,b4*>
holds b1 = b3 & b2 = b4;
:: FINSEQ_1:th 99
theorem
for b1, b2, b3, b4, b5, b6 being set
st <*b1,b2,b3*> = <*b4,b5,b6*>
holds b1 = b4 & b2 = b5 & b3 = b6;
:: FINSEQ_1:exreg 7
registration
cluster Relation-like non-empty Function-like non empty finite FinSequence-like set;
end;
:: FINSEQ_1:th 100
theorem
for b1 being natural set
for b2, b3 being Relation-like Function-like FinSequence-like set
st b3 = b2 | Seg b1
holds len b3 <= len b2;
:: FINSEQ_1:th 101
theorem
for b1 being natural set
for b2, b3 being Relation-like Function-like FinSequence-like set
st b3 = b2 | Seg b1
holds ex b4 being Relation-like Function-like FinSequence-like set st
b2 = b3 ^ b4;
:: FINSEQ_1:exreg 8
registration
let a1 be non empty set;
cluster Relation-like Function-like non empty finite FinSequence-like FinSequence of a1;
end;
:: FINSEQ_1:th 102
theorem
for b1 being non empty set
for b2 being Element of b1 holds
<*b2*> is FinSequence of b1;
:: FINSEQ_1:th 103
theorem
for b1 being set
for b2, b3 being FinSequence of b1 holds
b2 ^ b3 is FinSequence of b1;
:: FINSEQ_1:prednot 1 => HIDDEN:pred 1
definition
let a1, a2 be set;
pred A1 = A2 means
len a1 = len a2 &
(for b1 being natural set
st 1 <= b1 & b1 <= len a1
holds a1 . b1 = a2 . b1);
symmetry;
:: for a1, a2 being set
:: st a1 = a2
:: holds a2 = a1;
reflexivity;
:: for a1 being set holds
:: a1 = a1;
end;
:: FINSEQ_1:dfs 17
definiens
let a1, a2 be Relation-like Function-like FinSequence-like set;
To prove
a1 = a2
it is sufficient to prove
thus len a1 = len a2 &
(for b1 being natural set
st 1 <= b1 & b1 <= len a1
holds a1 . b1 = a2 . b1);
:: FINSEQ_1:def 17
theorem
for b1, b2 being Relation-like Function-like FinSequence-like set holds
b1 = b2
iff
len b1 = len b2 &
(for b3 being natural set
st 1 <= b3 & b3 <= len b1
holds b1 . b3 = b2 . b3);
:: FINSEQ_1:th 104
theorem
for b1, b2 being set
st Card b1 = 0 & Card b2 = 0
holds b1 = b2;