Article FILEREC1, MML version 4.99.1005
:: FILEREC1:th 1
theorem
for b1 being non empty set
for b2, b3, b4, b5 being FinSequence of b1 holds
((b2 ^ b3) ^ b4) ^ b5 = (b2 ^ (b3 ^ b4)) ^ b5 &
((b2 ^ b3) ^ b4) ^ b5 = (b2 ^ b3) ^ (b4 ^ b5) &
(b2 ^ (b3 ^ b4)) ^ b5 = (b2 ^ b3) ^ (b4 ^ b5);
:: FILEREC1:th 2
theorem
for b1 being set
for b2 being FinSequence of b1 holds
b2 | len b2 = b2;
:: FILEREC1:th 3
theorem
for b1 being non empty set
for b2, b3 being FinSequence of b1
st len b2 = 0
holds b3 = b2 ^ b3;
:: FILEREC1:th 4
theorem
for b1 being non empty set
for b2 being FinSequence of b1
for b3, b4 being Element of NAT
st b3 <= b4
holds len (b2 /^ b4) <= len (b2 /^ b3);
:: FILEREC1:th 5
theorem
for b1 being non empty set
for b2, b3 being FinSequence of b1
st 1 <= len b3
holds mid(b2 ^ b3,(len b2) + 1,(len b2) + len b3) = b3;
:: FILEREC1:th 6
theorem
for b1 being non empty set
for b2, b3 being FinSequence of b1
for b4, b5 being Element of NAT
st 1 <= b4 & b4 <= b5 & b5 <= len b2
holds mid(b2 ^ b3,b4,b5) = mid(b2,b4,b5);
:: FILEREC1:th 7
theorem
for b1 being non empty set
for b2 being FinSequence of b1
for b3, b4, b5 being Element of NAT
st 1 <= b3 & b3 <= b4 & b3 <= len (b2 | b5) & b4 <= len (b2 | b5)
holds mid(b2,b3,b4) = mid(b2 | b5,b3,b4);
:: FILEREC1:th 8
theorem
for b1 being set
for b2 being non empty set
for b3 being FinSequence of b2
st b3 = <*b1*>
holds b1 in b2;
:: FILEREC1:th 9
theorem
for b1, b2 being set
for b3 being non empty set
for b4 being FinSequence of b3
st b4 = <*b1,b2*>
holds b1 in b3 & b2 in b3;
:: FILEREC1:th 10
theorem
for b1, b2, b3 being set
for b4 being non empty set
for b5 being FinSequence of b4
st b5 = <*b1,b2,b3*>
holds b1 in b4 & b2 in b4 & b3 in b4;
:: FILEREC1:th 11
theorem
for b1 being set
for b2 being non empty set
for b3 being FinSequence of b2
st b3 = <*b1*>
holds b3 | 1 = <*b1*>;
:: FILEREC1:th 12
theorem
for b1, b2 being set
for b3 being non empty set
for b4 being FinSequence of b3
st b4 = <*b1,b2*>
holds b4 /^ 1 = <*b2*>;
:: FILEREC1:th 13
theorem
for b1, b2, b3 being set
for b4 being non empty set
for b5 being FinSequence of b4
st b5 = <*b1,b2,b3*>
holds b5 | 1 = <*b1*>;
:: FILEREC1:th 14
theorem
for b1, b2, b3 being set
for b4 being non empty set
for b5 being FinSequence of b4
st b5 = <*b1,b2,b3*>
holds b5 | 2 = <*b1,b2*>;
:: FILEREC1:th 15
theorem
for b1, b2, b3 being set
for b4 being non empty set
for b5 being FinSequence of b4
st b5 = <*b1,b2,b3*>
holds b5 /^ 1 = <*b2,b3*>;
:: FILEREC1:th 16
theorem
for b1, b2, b3 being set
for b4 being non empty set
for b5 being FinSequence of b4
st b5 = <*b1,b2,b3*>
holds b5 /^ 2 = <*b3*>;
:: FILEREC1:th 17
theorem
for b1 being non empty set
for b2 being FinSequence of b1
st len b2 = 0
holds Rev b2 = b2;
:: FILEREC1:th 18
theorem
for b1 being non empty set
for b2 being FinSequence of b1
for b3 being Element of NAT
st b3 <= len b2
holds Rev (b2 /^ b3) = (Rev b2) | ((len b2) -' b3);
:: FILEREC1:th 19
theorem
for b1 being non empty set
for b2, b3 being FinSequence of b1
st not b3 is_substring_of b2,1 & b3 separates_uniquely
holds instr(1,b2 ^ b3,b3) = (len b2) + 1;
:: FILEREC1:th 21
theorem
for b1 being non empty set
for b2, b3 being FinSequence of b1
st not b3 is_substring_of b2,1 & b3 separates_uniquely
holds b2 ^ b3 is_terminated_by b3;
:: FILEREC1:modenot 1 => FINSEQ_1:mode 1
notation
let a1 be set;
synonym File of a1 for FinSequence of a1;
end;
:: FILEREC1:prednot 1 => FILEREC1:pred 1
definition
let a1 be non empty set;
let a2, a3, a4 be FinSequence of a1;
pred A2 is_a_record_of A3,A4 means
(a4 ^ a2 is_substring_of addcr(a3,a4),1 or a2 c= addcr(a3,a4)) &
a2 is_terminated_by a4;
end;
:: FILEREC1:dfs 1
definiens
let a1 be non empty set;
let a2, a3, a4 be FinSequence of a1;
To prove
a2 is_a_record_of a3,a4
it is sufficient to prove
thus (a4 ^ a2 is_substring_of addcr(a3,a4),1 or a2 c= addcr(a3,a4)) &
a2 is_terminated_by a4;
:: FILEREC1:def 1
theorem
for b1 being non empty set
for b2, b3, b4 being FinSequence of b1 holds
b2 is_a_record_of b3,b4
iff
(b4 ^ b2 is_substring_of addcr(b3,b4),1 or b2 c= addcr(b3,b4)) &
b2 is_terminated_by b4;
:: FILEREC1:th 22
theorem
for b1 being non empty set
for b2 being FinSequence of b1 holds
ovlpart(<*> b1,b2) = <*> b1 & ovlpart(b2,<*> b1) = <*> b1;
:: FILEREC1:th 23
theorem
for b1 being non empty set
for b2 being FinSequence of b1 holds
b2 is_a_record_of <*> b1,b2;
:: FILEREC1:th 24
theorem
for b1 being non empty set
for b2, b3 being set
for b4, b5, b6 being FinSequence of b1
st b2 <> b3 & b1 = {b2,b3} & b6 = <*b3*> & b4 = <*b3,b2,b3*> & b5 = <*b2,b3*>
holds b6 is_a_record_of b4,b6 & b5 is_a_record_of b4,b6;
:: FILEREC1:th 25
theorem
for b1 being non empty set
for b2, b3 being FinSequence of b1 holds
b2 c= b2 ^ b3;
:: FILEREC1:th 26
theorem
for b1 being non empty set
for b2, b3 being FinSequence of b1 holds
b2 c= addcr(b2,b3);
:: FILEREC1:th 27
theorem
for b1 being non empty set
for b2, b3 being FinSequence of b1
st b3 is_postposition_of b2
holds 0 <= (len b2) - len b3;
:: FILEREC1:th 28
theorem
for b1 being non empty set
for b2, b3 being FinSequence of b1
st b2 is_postposition_of b3
holds b3 = addcr(b3,b2);
:: FILEREC1:th 29
theorem
for b1 being non empty set
for b2, b3 being FinSequence of b1
st b3 is_terminated_by b2
holds b3 = addcr(b3,b2);
:: FILEREC1:th 30
theorem
for b1 being non empty set
for b2, b3 being FinSequence of b1
st b2 is_terminated_by b3
holds len b3 <= len b2;
:: FILEREC1:th 31
theorem
for b1 being non empty set
for b2, b3 being FinSequence of b1 holds
len b2 <= len addcr(b2,b3) & len b3 <= len addcr(b2,b3);
:: FILEREC1:th 32
theorem
for b1 being non empty set
for b2, b3 being FinSequence of b1 holds
b3 = (ovlpart(b2,b3)) ^ ovlrdiff(b2,b3);
:: FILEREC1:th 33
theorem
for b1 being non empty set
for b2, b3 being FinSequence of b1 holds
ovlcon(b2,b3) = (ovlldiff(b2,b3)) ^ b3;
:: FILEREC1:th 34
theorem
for b1 being non empty set
for b2, b3 being FinSequence of b1 holds
addcr(b3,b2) = (ovlldiff(b3,b2)) ^ b2;
:: FILEREC1:th 35
theorem
for b1 being non empty set
for b2, b3, b4 being FinSequence of b1
st b4 = b2 ^ b3
holds b2 is_substring_of b4,1 & b3 is_substring_of b4,1;
:: FILEREC1:th 36
theorem
for b1 being non empty set
for b2, b3, b4, b5 being FinSequence of b1
st b5 = (b2 ^ b3) ^ b4
holds b2 is_substring_of b5,1 & b3 is_substring_of b5,1 & b4 is_substring_of b5,1;
:: FILEREC1:th 37
theorem
for b1 being non empty set
for b2, b3, b4 being FinSequence of b1
st b3 is_terminated_by b2 & b4 is_terminated_by b2
holds b2 ^ b4 is_substring_of addcr(b3 ^ b4,b2),1;
:: FILEREC1:th 38
theorem
for b1 being non empty set
for b2, b3 being FinSequence of b1
for b4 being Element of NAT
st 0 < b4 & b3 = {}
holds instr(b4,b2,b3) = b4;
:: FILEREC1:th 39
theorem
for b1 being non empty set
for b2, b3 being FinSequence of b1
for b4 being Element of NAT
st 0 < b4 & b4 <= len b2
holds instr(b4,b2,b3) <= len b2;
:: FILEREC1:th 40
theorem
for b1 being non empty set
for b2, b3 being FinSequence of b1 holds
b3 is_substring_of ovlcon(b2,b3),1;
:: FILEREC1:th 41
theorem
for b1 being non empty set
for b2, b3 being FinSequence of b1 holds
b3 is_substring_of addcr(b2,b3),1;
:: FILEREC1:th 42
theorem
for b1 being non empty set
for b2, b3 being FinSequence of b1
for b4 being Element of NAT
st b3 is_substring_of b2 | b4,1 & 0 < len b3 & len b3 <= b4
holds b3 is_substring_of b2,1;
:: FILEREC1:th 43
theorem
for b1 being non empty set
for b2, b3 being FinSequence of b1 holds
ex b4 being FinSequence of b1 st
b4 is_a_record_of b2,b3;
:: FILEREC1:th 44
theorem
for b1 being non empty set
for b2, b3, b4 being FinSequence of b1
st b4 is_a_record_of b2,b3
holds b4 is_a_record_of b4,b3;
:: FILEREC1:th 45
theorem
for b1 being non empty set
for b2, b3, b4, b5 being FinSequence of b1
st b3 is_terminated_by b2 & b4 is_terminated_by b2 & b5 = b3 ^ b4
holds b3 is_a_record_of b5,b2 & b4 is_a_record_of b5,b2;