Article FINSEQ_5, MML version 4.99.1005
:: FINSEQ_5:th 1
theorem
for b1, b2 being natural set
st b1 <= b2
holds (b2 - b1) + 1 is Element of NAT;
:: FINSEQ_5:th 2
theorem
for b1 being Element of NAT
for b2 being natural set
st b2 in Seg b1
holds (b1 - b2) + 1 in Seg b1;
:: FINSEQ_5:th 3
theorem
for b1 being Relation-like Function-like set
for b2, b3 being set
st b1 " {b3} = {b2}
holds b2 in proj1 b1 & b3 in proj2 b1 & b1 . b2 = b3;
:: FINSEQ_5:th 4
theorem
for b1 being Relation-like Function-like set holds
b1 is one-to-one
iff
for b2 being set
st b2 in proj1 b1
holds b1 " {b1 . b2} = {b2};
:: FINSEQ_5:th 5
theorem
for b1 being Relation-like Function-like set
for b2, b3 being set
st b1 is one-to-one &
b2 in proj2 b1 &
b3 in proj2 b1 &
b1 " {b2} = b1 " {b3}
holds b2 = b3;
:: FINSEQ_5:funcreg 1
registration
let a1 be set;
cluster <*a1*> -> trivial;
end;
:: FINSEQ_5:funcreg 2
registration
let a1, a2 be set;
cluster <*a1,a2*> -> non trivial;
end;
:: FINSEQ_5:exreg 1
registration
cluster Relation-like Function-like one-to-one non empty finite FinSequence-like set;
end;
:: FINSEQ_5:th 6
theorem
for b1 being Relation-like Function-like non empty FinSequence-like set holds
1 in dom b1 & len b1 in dom b1;
:: FINSEQ_5:th 7
theorem
for b1 being Relation-like Function-like non empty FinSequence-like set holds
ex b2 being natural set st
b2 + 1 = len b1;
:: FINSEQ_5:th 8
theorem
for b1 being set
for b2 being Relation-like Function-like FinSequence-like set holds
len (<*b1*> ^ b2) = 1 + len b2;
:: FINSEQ_5:th 10
theorem
for b1 being Relation-like Function-like FinSequence-like set
for b2, b3 being set
st b2 in proj2 b1 & b3 in proj2 b1 & b2 .. b1 = b3 .. b1
holds b2 = b3;
:: FINSEQ_5:th 11
theorem
for b1 being Element of NAT
for b2, b3 being Relation-like Function-like FinSequence-like set
st b1 + 1 in dom b2 & b3 = b2 | Seg b1
holds b2 | Seg (b1 + 1) = b3 ^ <*b2 . (b1 + 1)*>;
:: FINSEQ_5:th 12
theorem
for b1 being Element of NAT
for b2 being Relation-like Function-like one-to-one FinSequence-like set
st b1 in dom b2
holds (b2 . b1) .. b2 = b1;
:: FINSEQ_5:exreg 2
registration
let a1 be non empty set;
cluster Relation-like Function-like one-to-one non empty finite FinSequence-like FinSequence of a1;
end;
:: FINSEQ_5:th 13
theorem
for b1 being non empty set
for b2, b3 being FinSequence of b1
st dom b2 = dom b3 &
(for b4 being Element of NAT
st b4 in dom b2
holds b2 /. b4 = b3 /. b4)
holds b2 = b3;
:: FINSEQ_5:th 14
theorem
for b1 being non empty set
for b2, b3 being FinSequence of b1
st len b2 = len b3 &
(for b4 being Element of NAT
st 1 <= b4 & b4 <= len b2
holds b2 /. b4 = b3 /. b4)
holds b2 = b3;
:: FINSEQ_5:th 15
theorem
for b1 being non empty set
for b2 being FinSequence of b1
st len b2 = 1
holds b2 = <*b2 /. 1*>;
:: FINSEQ_5:th 16
theorem
for b1 being non empty set
for b2 being Element of b1
for b3 being FinSequence of b1 holds
(<*b2*> ^ b3) /. 1 = b2;
:: FINSEQ_5:th 18
theorem
for b1 being Relation-like Function-like FinSequence-like set
for b2 being natural set holds
len (b1 | b2) <= len b1;
:: FINSEQ_5:th 19
theorem
for b1 being Relation-like Function-like FinSequence-like set
for b2 being natural set holds
len (b1 | b2) <= b2;
:: FINSEQ_5:th 20
theorem
for b1 being Relation-like Function-like FinSequence-like set
for b2 being natural set holds
dom (b1 | b2) c= dom b1;
:: FINSEQ_5:th 21
theorem
for b1 being Relation-like Function-like FinSequence-like set
for b2 being natural set holds
proj2 (b1 | b2) c= proj2 b1;
:: FINSEQ_5:th 23
theorem
for b1 being set
for b2 being FinSequence of b1
st b2 is not empty
holds b2 | 1 = <*b2 /. 1*>;
:: FINSEQ_5:th 24
theorem
for b1 being Element of NAT
for b2 being non empty set
for b3 being FinSequence of b2
st b1 + 1 = len b3
holds b3 = (b3 | b1) ^ <*b3 /. len b3*>;
:: FINSEQ_5:funcreg 3
registration
let a1 be Element of NAT;
let a2 be non empty set;
let a3 be one-to-one FinSequence of a2;
cluster a3 | a1 -> Relation-like Function-like one-to-one FinSequence-like;
end;
:: FINSEQ_5:th 25
theorem
for b1 being Element of NAT
for b2 being set
for b3, b4 being FinSequence of b2
st b1 <= len b3
holds (b3 ^ b4) | b1 = b3 | b1;
:: FINSEQ_5:th 26
theorem
for b1 being set
for b2, b3 being FinSequence of b1 holds
(b2 ^ b3) | len b2 = b2;
:: FINSEQ_5:th 27
theorem
for b1 being non empty set
for b2 being Element of b1
for b3 being set
for b4 being FinSequence of b3
st b2 in proj2 b4
holds (b4 -| b2) ^ <*b2*> = b4 | (b2 .. b4);
:: FINSEQ_5:th 28
theorem
for b1 being Element of NAT
for b2 being non empty set
for b3 being FinSequence of b2 holds
len (b3 /^ b1) <= len b3;
:: FINSEQ_5:th 29
theorem
for b1, b2 being Element of NAT
for b3 being set
for b4 being FinSequence of b3
st b1 in dom (b4 /^ b2)
holds b2 + b1 in dom b4;
:: FINSEQ_5:th 30
theorem
for b1, b2 being Element of NAT
for b3 being set
for b4 being FinSequence of b3
st b1 in dom (b4 /^ b2)
holds (b4 /^ b2) /. b1 = b4 /. (b2 + b1);
:: FINSEQ_5:th 31
theorem
for b1 being set
for b2 being FinSequence of b1 holds
b2 /^ 0 = b2;
:: FINSEQ_5:th 32
theorem
for b1 being non empty set
for b2 being FinSequence of b1
st b2 is not empty
holds b2 = <*b2 /. 1*> ^ (b2 /^ 1);
:: FINSEQ_5:th 33
theorem
for b1 being Element of NAT
for b2 being non empty set
for b3 being FinSequence of b2
st b1 + 1 = len b3
holds b3 /^ b1 = <*b3 /. len b3*>;
:: FINSEQ_5:th 34
theorem
for b1, b2 being Element of NAT
for b3 being non empty set
for b4 being FinSequence of b3
st b1 + 1 = b2 & b2 in dom b4
holds <*b4 /. b2*> ^ (b4 /^ b2) = b4 /^ b1;
:: FINSEQ_5:th 35
theorem
for b1 being Element of NAT
for b2 being set
for b3 being FinSequence of b2
st len b3 <= b1
holds b3 /^ b1 is empty;
:: FINSEQ_5:th 36
theorem
for b1 being Element of NAT
for b2 being non empty set
for b3 being FinSequence of b2 holds
proj2 (b3 /^ b1) c= proj2 b3;
:: FINSEQ_5:funcreg 4
registration
let a1 be Element of NAT;
let a2 be non empty set;
let a3 be one-to-one FinSequence of a2;
cluster a3 /^ a1 -> Relation-like Function-like one-to-one FinSequence-like;
end;
:: FINSEQ_5:th 37
theorem
for b1 being Element of NAT
for b2 being non empty set
for b3 being FinSequence of b2
st b3 is one-to-one
holds proj2 (b3 | b1) misses proj2 (b3 /^ b1);
:: FINSEQ_5:th 38
theorem
for b1 being non empty set
for b2 being Element of b1
for b3 being FinSequence of b1
st b2 in proj2 b3
holds b3 |-- b2 = b3 /^ (b2 .. b3);
:: FINSEQ_5:th 39
theorem
for b1 being Element of NAT
for b2 being non empty set
for b3, b4 being FinSequence of b2 holds
(b3 ^ b4) /^ ((len b3) + b1) = b4 /^ b1;
:: FINSEQ_5:th 40
theorem
for b1 being non empty set
for b2, b3 being FinSequence of b1 holds
(b2 ^ b3) /^ len b2 = b3;
:: FINSEQ_5:th 41
theorem
for b1 being non empty set
for b2 being Element of b1
for b3 being FinSequence of b1
st b2 in proj2 b3
holds b3 /. (b2 .. b3) = b2;
:: FINSEQ_5:th 42
theorem
for b1 being Element of NAT
for b2 being non empty set
for b3 being FinSequence of b2
st b1 in dom b3
holds (b3 /. b1) .. b3 <= b1;
:: FINSEQ_5:th 43
theorem
for b1 being Element of NAT
for b2 being non empty set
for b3 being Element of b2
for b4 being FinSequence of b2
st b3 in proj2 (b4 | b1)
holds b3 .. (b4 | b1) = b3 .. b4;
:: FINSEQ_5:th 44
theorem
for b1 being Element of NAT
for b2 being non empty set
for b3 being FinSequence of b2
st b1 in dom b3 & b3 is one-to-one
holds (b3 /. b1) .. b3 = b1;
:: FINSEQ_5:funcnot 1 => FINSEQ_5:func 1
definition
let a1 be non empty set;
let a2 be FinSequence of a1;
let a3 be set;
func A2 -: A3 -> FinSequence of a1 equals
a2 | (a3 .. a2);
end;
:: FINSEQ_5:def 1
theorem
for b1 being non empty set
for b2 being FinSequence of b1
for b3 being set holds
b2 -: b3 = b2 | (b3 .. b2);
:: FINSEQ_5:th 45
theorem
for b1 being non empty set
for b2 being Element of b1
for b3 being FinSequence of b1
st b2 in proj2 b3
holds len (b3 -: b2) = b2 .. b3;
:: FINSEQ_5:th 46
theorem
for b1 being Element of NAT
for b2 being non empty set
for b3 being Element of b2
for b4 being FinSequence of b2
st b3 in proj2 b4 & b1 in Seg (b3 .. b4)
holds (b4 -: b3) /. b1 = b4 /. b1;
:: FINSEQ_5:th 47
theorem
for b1 being non empty set
for b2 being Element of b1
for b3 being FinSequence of b1
st b2 in proj2 b3
holds (b3 -: b2) /. 1 = b3 /. 1;
:: FINSEQ_5:th 48
theorem
for b1 being non empty set
for b2 being Element of b1
for b3 being FinSequence of b1
st b2 in proj2 b3
holds (b3 -: b2) /. (b2 .. b3) = b2;
:: FINSEQ_5:th 49
theorem
for b1 being non empty set
for b2 being Element of b1
for b3 being FinSequence of b1
for b4 being set
st b4 in proj2 b3 & b2 in proj2 b3 & b4 .. b3 <= b2 .. b3
holds b4 in proj2 (b3 -: b2);
:: FINSEQ_5:th 50
theorem
for b1 being non empty set
for b2 being Element of b1
for b3 being FinSequence of b1
st b2 in proj2 b3
holds b3 -: b2 is not empty;
:: FINSEQ_5:th 51
theorem
for b1 being non empty set
for b2 being Element of b1
for b3 being FinSequence of b1 holds
proj2 (b3 -: b2) c= proj2 b3;
:: FINSEQ_5:funcreg 5
registration
let a1 be non empty set;
let a2 be Element of a1;
let a3 be one-to-one FinSequence of a1;
cluster a3 -: a2 -> one-to-one;
end;
:: FINSEQ_5:funcnot 2 => FINSEQ_5:func 2
definition
let a1 be non empty set;
let a2 be FinSequence of a1;
let a3 be Element of a1;
func A2 :- A3 -> FinSequence of a1 equals
<*a3*> ^ (a2 /^ (a3 .. a2));
end;
:: FINSEQ_5:def 2
theorem
for b1 being non empty set
for b2 being FinSequence of b1
for b3 being Element of b1 holds
b2 :- b3 = <*b3*> ^ (b2 /^ (b3 .. b2));
:: FINSEQ_5:th 52
theorem
for b1 being non empty set
for b2 being Element of b1
for b3 being FinSequence of b1
st b2 in proj2 b3
holds ex b4 being Element of NAT st
b4 + 1 = b2 .. b3 & b3 :- b2 = b3 /^ b4;
:: FINSEQ_5:th 53
theorem
for b1 being non empty set
for b2 being Element of b1
for b3 being FinSequence of b1
st b2 in proj2 b3
holds len (b3 :- b2) = ((len b3) - (b2 .. b3)) + 1;
:: FINSEQ_5:th 54
theorem
for b1 being Element of NAT
for b2 being non empty set
for b3 being Element of b2
for b4 being FinSequence of b2
st b3 in proj2 b4 & b1 + 1 in dom (b4 :- b3)
holds b1 + (b3 .. b4) in dom b4;
:: FINSEQ_5:funcreg 6
registration
let a1 be non empty set;
let a2 be Element of a1;
let a3 be FinSequence of a1;
cluster a3 :- a2 -> non empty;
end;
:: FINSEQ_5:th 55
theorem
for b1 being Element of NAT
for b2 being non empty set
for b3 being Element of b2
for b4 being FinSequence of b2
st b3 in proj2 b4 & b1 + 1 in dom (b4 :- b3)
holds (b4 :- b3) /. (b1 + 1) = b4 /. (b1 + (b3 .. b4));
:: FINSEQ_5:th 56
theorem
for b1 being non empty set
for b2 being Element of b1
for b3 being FinSequence of b1 holds
(b3 :- b2) /. 1 = b2;
:: FINSEQ_5:th 57
theorem
for b1 being non empty set
for b2 being Element of b1
for b3 being FinSequence of b1
st b2 in proj2 b3
holds (b3 :- b2) /. len (b3 :- b2) = b3 /. len b3;
:: FINSEQ_5:th 58
theorem
for b1 being non empty set
for b2 being Element of b1
for b3 being FinSequence of b1
st b2 in proj2 b3
holds proj2 (b3 :- b2) c= proj2 b3;
:: FINSEQ_5:th 59
theorem
for b1 being non empty set
for b2 being Element of b1
for b3 being FinSequence of b1
st b2 in proj2 b3 & b3 is one-to-one
holds b3 :- b2 is one-to-one;
:: FINSEQ_5:funcnot 3 => FINSEQ_5:func 3
definition
let a1 be Relation-like Function-like FinSequence-like set;
func Rev A1 -> Relation-like Function-like FinSequence-like set means
len it = len a1 &
(for b1 being natural set
st b1 in dom it
holds it . b1 = a1 . (((len a1) - b1) + 1));
end;
:: FINSEQ_5:def 3
theorem
for b1, b2 being Relation-like Function-like FinSequence-like set holds
b2 = Rev b1
iff
len b2 = len b1 &
(for b3 being natural set
st b3 in dom b2
holds b2 . b3 = b1 . (((len b1) - b3) + 1));
:: FINSEQ_5:th 60
theorem
for b1 being Relation-like Function-like FinSequence-like set holds
dom b1 = dom Rev b1 & proj2 b1 = proj2 Rev b1;
:: FINSEQ_5:th 61
theorem
for b1 being natural set
for b2 being Relation-like Function-like FinSequence-like set
st b1 in dom b2
holds (Rev b2) . b1 = b2 . (((len b2) - b1) + 1);
:: FINSEQ_5:th 62
theorem
for b1 being Relation-like Function-like FinSequence-like set
for b2, b3 being Element of NAT
st b2 in dom b1 & b2 + b3 = (len b1) + 1
holds b3 in dom Rev b1;
:: FINSEQ_5:funcreg 7
registration
let a1 be Relation-like Function-like empty FinSequence-like set;
cluster Rev a1 -> Relation-like Function-like empty FinSequence-like;
end;
:: FINSEQ_5:th 63
theorem
for b1 being set holds
Rev <*b1*> = <*b1*>;
:: FINSEQ_5:th 64
theorem
for b1, b2 being set holds
Rev <*b1,b2*> = <*b2,b1*>;
:: FINSEQ_5:th 65
theorem
for b1 being Relation-like Function-like FinSequence-like set holds
b1 . 1 = (Rev b1) . len b1 &
b1 . len b1 = (Rev b1) . 1;
:: FINSEQ_5:funcreg 8
registration
let a1 be Relation-like Function-like one-to-one FinSequence-like set;
cluster Rev a1 -> Relation-like Function-like one-to-one FinSequence-like;
end;
:: FINSEQ_5:th 66
theorem
for b1 being Relation-like Function-like FinSequence-like set
for b2 being set holds
Rev (b1 ^ <*b2*>) = <*b2*> ^ Rev b1;
:: FINSEQ_5:th 67
theorem
for b1, b2 being Relation-like Function-like FinSequence-like set holds
Rev (b1 ^ b2) = (Rev b2) ^ Rev b1;
:: FINSEQ_5:funcnot 4 => FINSEQ_5:func 4
definition
let a1 be set;
let a2 be FinSequence of a1;
redefine func Rev a2 -> FinSequence of a1;
end;
:: FINSEQ_5:th 68
theorem
for b1 being non empty set
for b2 being FinSequence of b1
st b2 is not empty
holds b2 /. 1 = (Rev b2) /. len b2 &
b2 /. len b2 = (Rev b2) /. 1;
:: FINSEQ_5:th 69
theorem
for b1 being Element of NAT
for b2 being non empty set
for b3 being FinSequence of b2
for b4 being natural set
st b4 in dom b3 & b4 + b1 = (len b3) + 1
holds b3 /. b4 = (Rev b3) /. b1;
:: FINSEQ_5:funcnot 5 => FINSEQ_5:func 5
definition
let a1 be non empty set;
let a2 be FinSequence of a1;
let a3 be Element of a1;
let a4 be natural set;
func Ins(A2,A4,A3) -> FinSequence of a1 equals
((a2 | a4) ^ <*a3*>) ^ (a2 /^ a4);
end;
:: FINSEQ_5:def 4
theorem
for b1 being non empty set
for b2 being FinSequence of b1
for b3 being Element of b1
for b4 being natural set holds
Ins(b2,b4,b3) = ((b2 | b4) ^ <*b3*>) ^ (b2 /^ b4);
:: FINSEQ_5:th 70
theorem
for b1 being non empty set
for b2 being Element of b1
for b3 being FinSequence of b1 holds
Ins(b3,0,b2) = <*b2*> ^ b3;
:: FINSEQ_5:th 71
theorem
for b1 being Element of NAT
for b2 being non empty set
for b3 being Element of b2
for b4 being FinSequence of b2
st len b4 <= b1
holds Ins(b4,b1,b3) = b4 ^ <*b3*>;
:: FINSEQ_5:th 72
theorem
for b1 being Element of NAT
for b2 being non empty set
for b3 being Element of b2
for b4 being FinSequence of b2 holds
len Ins(b4,b1,b3) = (len b4) + 1;
:: FINSEQ_5:th 73
theorem
for b1 being Element of NAT
for b2 being non empty set
for b3 being Element of b2
for b4 being FinSequence of b2 holds
proj2 Ins(b4,b1,b3) = {b3} \/ proj2 b4;
:: FINSEQ_5:funcreg 9
registration
let a1 be non empty set;
let a2 be FinSequence of a1;
let a3 be Element of NAT;
let a4 be Element of a1;
cluster Ins(a2,a3,a4) -> non empty;
end;
:: FINSEQ_5:th 74
theorem
for b1 being Element of NAT
for b2 being non empty set
for b3 being Element of b2
for b4 being FinSequence of b2 holds
b3 in proj2 Ins(b4,b1,b3);
:: FINSEQ_5:th 75
theorem
for b1 being Element of NAT
for b2 being non empty set
for b3 being Element of b2
for b4 being FinSequence of b2
for b5 being natural set
st b5 in dom (b4 | b1)
holds (Ins(b4,b1,b3)) /. b5 = b4 /. b5;
:: FINSEQ_5:th 76
theorem
for b1 being Element of NAT
for b2 being non empty set
for b3 being Element of b2
for b4 being FinSequence of b2
st b1 <= len b4
holds (Ins(b4,b1,b3)) /. (b1 + 1) = b3;
:: FINSEQ_5:th 77
theorem
for b1 being Element of NAT
for b2 being non empty set
for b3 being Element of b2
for b4 being FinSequence of b2
for b5 being natural set
st b1 + 1 <= b5 & b5 <= len b4
holds (Ins(b4,b1,b3)) /. (b5 + 1) = b4 /. b5;
:: FINSEQ_5:th 78
theorem
for b1 being Element of NAT
for b2 being non empty set
for b3 being Element of b2
for b4 being FinSequence of b2
st 1 <= b1 & b4 is not empty
holds (Ins(b4,b1,b3)) /. 1 = b4 /. 1;
:: FINSEQ_5:th 79
theorem
for b1 being Element of NAT
for b2 being non empty set
for b3 being Element of b2
for b4 being FinSequence of b2
st b4 is one-to-one & not b3 in proj2 b4
holds Ins(b4,b1,b3) is one-to-one;
:: FINSEQ_5:th 80
theorem
for b1 being non empty set
for b2 being FinSequence of b1
for b3, b4 being natural set
st b3 <= b4
holds (b2 | b3) | b4 = b2 | b3 & (b2 | b4) | b3 = b2 | b3;
:: FINSEQ_5:th 81
theorem
for b1 being non empty set
for b2 being natural set holds
(<*> b1) | b2 = <*> b1;
:: FINSEQ_5:th 82
theorem
for b1 being non empty set holds
Rev <*> b1 = <*> b1;
:: FINSEQ_5:exreg 3
registration
cluster Relation-like Function-like finite FinSequence-like non trivial set;
end;
:: FINSEQ_5:th 83
theorem
for b1 being non empty set
for b2 being FinSequence of b1
for b3, b4 being natural set holds
(b2 /^ b3) | (b4 -' b3) = (b2 | b4) /^ b3;
:: FINSEQ_5:th 84
theorem
for b1 being set
for b2 being FinSequence of b1
st 2 <= len b2
holds b2 | 2 = <*b2 /. 1,b2 /. 2*>;
:: FINSEQ_5:th 85
theorem
for b1 being Element of NAT
for b2 being set
for b3 being FinSequence of b2
st b1 + 1 <= len b3
holds b3 | (b1 + 1) = (b3 | b1) ^ <*b3 /. (b1 + 1)*>;
:: FINSEQ_5:th 86
theorem
for b1 being set
for b2 being FinSequence of b1
for b3 being Element of NAT
st b3 < len b2
holds b2 | (b3 + 1) = (b2 | b3) ^ <*b2 . (b3 + 1)*>;
:: FINSEQ_5:th 87
theorem
for b1 being non empty set
for b2 being FinSequence of b1
for b3 being Element of NAT
st 1 <= b3 & b3 <= len b2
holds b2 = ((b2 | (b3 -' 1)) ^ <*b2 . b3*>) ^ (b2 /^ b3);