Article PNPROC_1, MML version 4.99.1005
:: PNPROC_1:th 1
theorem
for b1 being Element of NAT
for b2 being set
st 0 < b1
holds {[b1,b2]} is Relation-like Function-like FinSubsequence-like set;
:: PNPROC_1:th 2
theorem
for b1 being Relation-like Function-like FinSubsequence-like set holds
b1 = {}
iff
Seq b1 = {};
:: PNPROC_1:th 3
theorem
for b1 being Element of NAT
for b2 being set
for b3 being Relation-like Function-like FinSubsequence-like set
st b3 = {[b1,b2]}
holds Seq b3 = <*b2*>;
:: PNPROC_1:condreg 1
registration
cluster Relation-like Function-like FinSubsequence-like -> finite (set);
end;
:: PNPROC_1:th 4
theorem
for b1 being set
for b2 being Relation-like Function-like FinSubsequence-like set
st Seq b2 = <*b1*>
holds ex b3 being Element of NAT st
b2 = {[b3,b1]};
:: PNPROC_1:th 5
theorem
for b1, b2, b3, b4 being set
st {[b1,b2],[b3,b4]} is Relation-like Function-like FinSequence-like set &
(b1 = 1 & b3 = 1 implies b2 <> b4) &
(b1 = 1 implies b3 <> 2)
holds b1 = 2 & b3 = 1;
:: PNPROC_1:th 6
theorem
for b1, b2 being set holds
<*b1,b2*> = {[1,b1],[2,b2]};
:: PNPROC_1:th 7
theorem
for b1 being Relation-like Function-like FinSubsequence-like set holds
Card b1 = len Seq b1;
:: PNPROC_1:th 8
theorem
for b1, b2 being Relation-like set
st proj1 b1 misses proj1 b2
holds b1 misses b2;
:: PNPROC_1:th 9
theorem
for b1, b2 being set
for b3, b4 being Relation-like set
st b1 misses b2
holds b3 | b1 misses b4 | b2;
:: PNPROC_1:th 10
theorem
for b1, b2, b3 being Relation-like Function-like set
st b1 c= b3 & b2 c= b3 & b1 misses b2
holds proj1 b1 misses proj1 b2;
:: PNPROC_1:th 11
theorem
for b1 being set
for b2 being Relation-like set holds
b1 | b2 c= b2 | (b2 " b1);
:: PNPROC_1:th 12
theorem
for b1 being set
for b2 being Relation-like Function-like set holds
b1 | b2 = b2 | (b2 " b1);
:: PNPROC_1:modenot 1 => PNPROC_1:mode 1
definition
let a1 be set;
mode marking of A1 -> Relation-like Function-like set means
proj1 it = a1 & proj2 it c= NAT;
end;
:: PNPROC_1:dfs 1
definiens
let a1 be set;
let a2 be Relation-like Function-like set;
To prove
a2 is marking of a1
it is sufficient to prove
thus proj1 a2 = a1 & proj2 a2 c= NAT;
:: PNPROC_1:def 1
theorem
for b1 being set
for b2 being Relation-like Function-like set holds
b2 is marking of b1
iff
proj1 b2 = b1 & proj2 b2 c= NAT;
:: PNPROC_1:modenot 2 => PNPROC_1:mode 2
definition
let a1 be set;
redefine mode marking of a1 -> Function-like quasi_total Relation of a1,NAT;
end;
:: PNPROC_1:funcnot 1 => FUNCT_1:func 1
notation
let a1 be set;
let a2 be marking of a1;
let a3 be set;
synonym a2 multitude_of a3 for a1 . a2;
end;
:: PNPROC_1:sch 1
scheme PNPROC_1:sch 1
{F1 -> set,
F2 -> Element of NAT}:
ex b1 being marking of F1() st
for b2 being set
st b2 in F1()
holds b1 . b2 = F2(b2)
:: PNPROC_1:prednot 1 => PNPROC_1:pred 1
definition
let a1 be set;
let a2, a3 be marking of a1;
redefine pred A2 = A3 means
for b1 being set
st b1 in a1
holds a2 . b1 = a3 . b1;
symmetry;
:: for a1 being set
:: for a2, a3 being marking of a1
:: st a2 = a3
:: holds a3 = a2;
reflexivity;
:: for a1 being set
:: for a2 being marking of a1 holds
:: a2 = a2;
end;
:: PNPROC_1:dfs 2
definiens
let a1 be set;
let a2, a3 be marking of a1;
To prove
a2 = a3
it is sufficient to prove
thus for b1 being set
st b1 in a1
holds a2 . b1 = a3 . b1;
:: PNPROC_1:def 2
theorem
for b1 being set
for b2, b3 being marking of b1 holds
b2 = b3
iff
for b4 being set
st b4 in b1
holds b2 . b4 = b3 . b4;
:: PNPROC_1:funcnot 2 => PNPROC_1:func 1
definition
let a1 be set;
func {$} A1 -> marking of a1 equals
a1 --> 0;
end;
:: PNPROC_1:def 3
theorem
for b1 being set holds
{$} b1 = b1 --> 0;
:: PNPROC_1:prednot 2 => PNPROC_1:pred 2
definition
let a1 be set;
let a2, a3 be marking of a1;
pred A2 c= A3 means
for b1 being set
st b1 in a1
holds a2 . b1 <= a3 . b1;
reflexivity;
:: for a1 being set
:: for a2 being marking of a1 holds
:: a2 c= a2;
end;
:: PNPROC_1:dfs 4
definiens
let a1 be set;
let a2, a3 be marking of a1;
To prove
a2 c= a3
it is sufficient to prove
thus for b1 being set
st b1 in a1
holds a2 . b1 <= a3 . b1;
:: PNPROC_1:def 4
theorem
for b1 being set
for b2, b3 being marking of b1 holds
b2 c= b3
iff
for b4 being set
st b4 in b1
holds b2 . b4 <= b3 . b4;
:: PNPROC_1:th 13
theorem
for b1 being set
for b2 being marking of b1 holds
{$} b1 c= b2;
:: PNPROC_1:th 14
theorem
for b1 being set
for b2, b3, b4 being marking of b1
st b2 c= b3 & b3 c= b4
holds b2 c= b4;
:: PNPROC_1:funcnot 3 => PNPROC_1:func 2
definition
let a1 be set;
let a2, a3 be marking of a1;
redefine func A2 + A3 -> marking of a1 means
for b1 being set
st b1 in a1
holds it . b1 = (a2 . b1) + (a3 . b1);
commutativity;
:: for a1 being set
:: for a2, a3 being marking of a1 holds
:: a2 + a3 = a3 + a2;
end;
:: PNPROC_1:def 5
theorem
for b1 being set
for b2, b3, b4 being marking of b1 holds
b4 = b2 + b3
iff
for b5 being set
st b5 in b1
holds b4 . b5 = (b2 . b5) + (b3 . b5);
:: PNPROC_1:th 15
theorem
for b1 being set
for b2 being marking of b1 holds
b2 + {$} b1 = b2;
:: PNPROC_1:funcnot 4 => PNPROC_1:func 3
definition
let a1 be set;
let a2, a3 be marking of a1;
assume a3 c= a2;
func A2 - A3 -> marking of a1 means
for b1 being set
st b1 in a1
holds it . b1 = (a2 . b1) - (a3 . b1);
end;
:: PNPROC_1:def 6
theorem
for b1 being set
for b2, b3 being marking of b1
st b3 c= b2
for b4 being marking of b1 holds
b4 = b2 - b3
iff
for b5 being set
st b5 in b1
holds b4 . b5 = (b2 . b5) - (b3 . b5);
:: PNPROC_1:th 16
theorem
for b1 being set
for b2, b3 being marking of b1 holds
b2 c= b2 + b3;
:: PNPROC_1:th 17
theorem
for b1 being set
for b2 being marking of b1 holds
b2 - {$} b1 = b2;
:: PNPROC_1:th 18
theorem
for b1 being set
for b2, b3, b4 being marking of b1
st b2 c= b3 & b3 c= b4
holds b4 - b3 c= b4 - b2;
:: PNPROC_1:th 19
theorem
for b1 being set
for b2, b3 being marking of b1 holds
(b2 + b3) - b3 = b2;
:: PNPROC_1:th 20
theorem
for b1 being set
for b2, b3, b4 being marking of b1
st b2 c= b3 & b3 c= b4
holds b3 - b2 c= b4 - b2;
:: PNPROC_1:th 21
theorem
for b1 being set
for b2, b3, b4 being marking of b1
st b2 c= b3
holds (b3 + b4) - b2 = (b3 - b2) + b4;
:: PNPROC_1:th 22
theorem
for b1 being set
for b2, b3 being marking of b1
st b2 c= b3 & b3 c= b2
holds b2 = b3;
:: PNPROC_1:th 23
theorem
for b1 being set
for b2, b3, b4 being marking of b1 holds
(b2 + b3) + b4 = b2 + (b3 + b4);
:: PNPROC_1:th 24
theorem
for b1 being set
for b2, b3, b4, b5 being marking of b1
st b2 c= b3 & b4 c= b5
holds b2 + b4 c= b3 + b5;
:: PNPROC_1:th 25
theorem
for b1 being set
for b2, b3 being marking of b1
st b2 c= b3
holds b3 - b2 c= b3;
:: PNPROC_1:th 26
theorem
for b1 being set
for b2, b3, b4, b5 being marking of b1
st b2 c= b3 & b4 c= b5 & b5 c= b2
holds b2 - b5 c= b3 - b4;
:: PNPROC_1:th 27
theorem
for b1 being set
for b2, b3 being marking of b1
st b2 c= b3
holds b3 = (b3 - b2) + b2;
:: PNPROC_1:th 28
theorem
for b1 being set
for b2, b3 being marking of b1 holds
(b2 + b3) - b2 = b3;
:: PNPROC_1:th 29
theorem
for b1 being set
for b2, b3, b4 being marking of b1
st b2 + b3 c= b4
holds (b4 - b2) - b3 = b4 - (b2 + b3);
:: PNPROC_1:th 30
theorem
for b1 being set
for b2, b3, b4 being marking of b1
st b2 c= b3 & b3 c= b4
holds b4 - (b3 - b2) = (b4 - b3) + b2;
:: PNPROC_1:th 31
theorem
for b1 being set
for b2 being marking of b1 holds
b2 in Funcs(b1,NAT);
:: PNPROC_1:th 32
theorem
for b1, b2 being set
st b1 in Funcs(b2,NAT)
holds b1 is marking of b2;
:: PNPROC_1:modenot 3 => PNPROC_1:mode 3
definition
let a1 be set;
mode transition of A1 means
ex b1, b2 being marking of a1 st
it = [b1,b2];
end;
:: PNPROC_1:dfs 7
definiens
let a1, a2 be set;
To prove
a2 is transition of a1
it is sufficient to prove
thus ex b1, b2 being marking of a1 st
a2 = [b1,b2];
:: PNPROC_1:def 7
theorem
for b1, b2 being set holds
b2 is transition of b1
iff
ex b3, b4 being marking of b1 st
b2 = [b3,b4];
:: PNPROC_1:funcnot 5 => MCART_1:func 1
notation
let a1 be set;
let a2 be transition of a1;
synonym Pre a2 for a1 `1;
end;
:: PNPROC_1:funcnot 6 => MCART_1:func 2
notation
let a1 be set;
let a2 be transition of a1;
synonym Post a2 for a1 `2;
end;
:: PNPROC_1:funcnot 7 => PNPROC_1:func 4
definition
let a1 be set;
let a2 be transition of a1;
redefine func Pre a2 -> marking of a1;
end;
:: PNPROC_1:funcnot 8 => PNPROC_1:func 5
definition
let a1 be set;
let a2 be transition of a1;
redefine func Post a2 -> marking of a1;
end;
:: PNPROC_1:funcnot 9 => PNPROC_1:func 6
definition
let a1 be set;
let a2 be marking of a1;
let a3 be transition of a1;
func fire(A3,A2) -> marking of a1 equals
(a2 - Pre a3) + Post a3
if Pre a3 c= a2
otherwise a2;
end;
:: PNPROC_1:def 8
theorem
for b1 being set
for b2 being marking of b1
for b3 being transition of b1 holds
(Pre b3 c= b2 implies fire(b3,b2) = (b2 - Pre b3) + Post b3) &
(Pre b3 c= b2 or fire(b3,b2) = b2);
:: PNPROC_1:th 33
theorem
for b1 being set
for b2 being marking of b1
for b3, b4 being transition of b1
st (Pre b3) + Pre b4 c= b2
holds fire(b4,fire(b3,b2)) = (((b2 - Pre b3) - Pre b4) + Post b3) + Post b4;
:: PNPROC_1:funcnot 10 => PNPROC_1:func 7
definition
let a1 be set;
let a2 be transition of a1;
func fire A2 -> Relation-like Function-like set means
proj1 it = Funcs(a1,NAT) &
(for b1 being marking of a1 holds
it . b1 = fire(a2,b1));
end;
:: PNPROC_1:def 9
theorem
for b1 being set
for b2 being transition of b1
for b3 being Relation-like Function-like set holds
b3 = fire b2
iff
proj1 b3 = Funcs(b1,NAT) &
(for b4 being marking of b1 holds
b3 . b4 = fire(b2,b4));
:: PNPROC_1:th 34
theorem
for b1 being set
for b2 being transition of b1 holds
proj2 fire b2 c= Funcs(b1,NAT);
:: PNPROC_1:th 35
theorem
for b1 being set
for b2 being marking of b1
for b3, b4 being transition of b1 holds
fire(b3,fire(b4,b2)) = ((fire b4) * fire b3) . b2;
:: PNPROC_1:modenot 4 => PNPROC_1:mode 4
definition
let a1 be set;
mode Petri_net of A1 -> non empty set means
for b1 being set
st b1 in it
holds b1 is transition of a1;
end;
:: PNPROC_1:dfs 10
definiens
let a1 be set;
let a2 be non empty set;
To prove
a2 is Petri_net of a1
it is sufficient to prove
thus for b1 being set
st b1 in a2
holds b1 is transition of a1;
:: PNPROC_1:def 10
theorem
for b1 being set
for b2 being non empty set holds
b2 is Petri_net of b1
iff
for b3 being set
st b3 in b2
holds b3 is transition of b1;
:: PNPROC_1:modenot 5 => PNPROC_1:mode 5
definition
let a1 be set;
let a2 be Petri_net of a1;
redefine mode Element of a2 -> transition of a1;
end;
:: PNPROC_1:modenot 6
definition
let a1 be set;
let a2 be Petri_net of a1;
mode firing-sequence of a2 is Element of a2 *;
end;
:: PNPROC_1:funcnot 11 => PNPROC_1:func 8
definition
let a1 be set;
let a2 be Petri_net of a1;
let a3 be Element of a2 *;
func fire A3 -> Relation-like Function-like set means
ex b1 being Relation-like Function-like Function-yielding FinSequence-like set st
it = compose(b1,Funcs(a1,NAT)) &
len b1 = len a3 &
(for b2 being Element of NAT
st b2 in dom a3
holds b1 . b2 = fire (a3 /. b2));
end;
:: PNPROC_1:def 11
theorem
for b1 being set
for b2 being Petri_net of b1
for b3 being Element of b2 *
for b4 being Relation-like Function-like set holds
b4 = fire b3
iff
ex b5 being Relation-like Function-like Function-yielding FinSequence-like set st
b4 = compose(b5,Funcs(b1,NAT)) &
len b5 = len b3 &
(for b6 being Element of NAT
st b6 in dom b3
holds b5 . b6 = fire (b3 /. b6));
:: PNPROC_1:th 36
theorem
for b1 being set
for b2 being Petri_net of b1 holds
fire <*> b2 = id Funcs(b1,NAT);
:: PNPROC_1:th 37
theorem
for b1 being set
for b2 being Petri_net of b1
for b3 being Element of b2 holds
fire <*b3*> = fire b3;
:: PNPROC_1:th 38
theorem
for b1 being set
for b2 being Petri_net of b1
for b3 being Element of b2 holds
(id Funcs(b1,NAT)) * fire b3 = fire b3;
:: PNPROC_1:th 39
theorem
for b1 being set
for b2 being Petri_net of b1
for b3, b4 being Element of b2 holds
fire <*b3,b4*> = (fire b3) * fire b4;
:: PNPROC_1:th 40
theorem
for b1 being set
for b2 being Petri_net of b1
for b3 being Element of b2 * holds
proj1 fire b3 = Funcs(b1,NAT) & proj2 fire b3 c= Funcs(b1,NAT);
:: PNPROC_1:th 41
theorem
for b1 being set
for b2 being Petri_net of b1
for b3, b4 being Element of b2 * holds
fire (b3 ^ b4) = (fire b3) * fire b4;
:: PNPROC_1:th 42
theorem
for b1 being set
for b2 being Petri_net of b1
for b3 being Element of b2
for b4 being Element of b2 * holds
fire (b4 ^ <*b3*>) = (fire b4) * fire b3;
:: PNPROC_1:funcnot 12 => PNPROC_1:func 9
definition
let a1 be set;
let a2 be Petri_net of a1;
let a3 be Element of a2 *;
let a4 be marking of a1;
func fire(A3,A4) -> marking of a1 equals
(fire a3) . a4;
end;
:: PNPROC_1:def 12
theorem
for b1 being set
for b2 being Petri_net of b1
for b3 being Element of b2 *
for b4 being marking of b1 holds
fire(b3,b4) = (fire b3) . b4;
:: PNPROC_1:modenot 7
definition
let a1 be set;
let a2 be Petri_net of a1;
mode process of a2 is Element of bool (a2 *);
end;
:: PNPROC_1:condreg 2
registration
cluster Relation-like Function-like FinSequence-like -> FinSubsequence-like (set);
end;
:: PNPROC_1:funcnot 13 => PNPROC_1:func 10
definition
let a1 be set;
let a2 be Petri_net of a1;
let a3, a4 be Element of bool (a2 *);
func A3 before A4 -> Element of bool (a2 *) equals
{b1 ^ b2 where b1 is Element of a2 *, b2 is Element of a2 *: b1 in a3 & b2 in a4};
end;
:: PNPROC_1:def 13
theorem
for b1 being set
for b2 being Petri_net of b1
for b3, b4 being Element of bool (b2 *) holds
b3 before b4 = {b5 ^ b6 where b5 is Element of b2 *, b6 is Element of b2 *: b5 in b3 & b6 in b4};
:: PNPROC_1:funcreg 1
registration
let a1 be set;
let a2 be Petri_net of a1;
let a3, a4 be non empty Element of bool (a2 *);
cluster a3 before a4 -> non empty;
end;
:: PNPROC_1:th 43
theorem
for b1 being set
for b2 being Petri_net of b1
for b3, b4, b5 being Element of bool (b2 *) holds
(b3 \/ b4) before b5 = (b3 before b5) \/ (b4 before b5);
:: PNPROC_1:th 44
theorem
for b1 being set
for b2 being Petri_net of b1
for b3, b4, b5 being Element of bool (b2 *) holds
b3 before (b4 \/ b5) = (b3 before b4) \/ (b3 before b5);
:: PNPROC_1:th 45
theorem
for b1 being set
for b2 being Petri_net of b1
for b3, b4 being Element of b2 * holds
{b3} before {b4} = {b3 ^ b4};
:: PNPROC_1:th 46
theorem
for b1 being set
for b2 being Petri_net of b1
for b3, b4, b5 being Element of b2 * holds
{b3,b4} before {b5} = {b3 ^ b5,b4 ^ b5};
:: PNPROC_1:th 47
theorem
for b1 being set
for b2 being Petri_net of b1
for b3, b4, b5 being Element of b2 * holds
{b3} before {b4,b5} = {b3 ^ b4,b3 ^ b5};
:: PNPROC_1:funcnot 14 => PNPROC_1:func 11
definition
let a1 be set;
let a2 be Petri_net of a1;
let a3, a4 be Element of bool (a2 *);
func A3 concur A4 -> Element of bool (a2 *) equals
{b1 where b1 is Element of a2 *: ex b2, b3 being Relation-like Function-like FinSubsequence-like set st
b1 = b2 \/ b3 & b2 misses b3 & Seq b2 in a3 & Seq b3 in a4};
commutativity;
:: for a1 being set
:: for a2 being Petri_net of a1
:: for a3, a4 being Element of bool (a2 *) holds
:: a3 concur a4 = a4 concur a3;
end;
:: PNPROC_1:def 14
theorem
for b1 being set
for b2 being Petri_net of b1
for b3, b4 being Element of bool (b2 *) holds
b3 concur b4 = {b5 where b5 is Element of b2 *: ex b6, b7 being Relation-like Function-like FinSubsequence-like set st
b5 = b6 \/ b7 & b6 misses b7 & Seq b6 in b3 & Seq b7 in b4};
:: PNPROC_1:th 48
theorem
for b1 being set
for b2 being Petri_net of b1
for b3, b4, b5 being Element of bool (b2 *) holds
(b3 \/ b4) concur b5 = (b3 concur b5) \/ (b4 concur b5);
:: PNPROC_1:th 49
theorem
for b1 being set
for b2 being Petri_net of b1
for b3, b4 being Element of b2 holds
{<*b3*>} concur {<*b4*>} = {<*b3,b4*>,<*b4,b3*>};
:: PNPROC_1:th 50
theorem
for b1 being set
for b2 being Petri_net of b1
for b3, b4, b5 being Element of b2 holds
{<*b3*>,<*b4*>} concur {<*b5*>} = {<*b3,b5*>,<*b4,b5*>,<*b5,b3*>,<*b5,b4*>};
:: PNPROC_1:th 51
theorem
for b1 being set
for b2 being Petri_net of b1
for b3, b4, b5 being Element of bool (b2 *) holds
(b3 before b4) before b5 = b3 before (b4 before b5);
:: PNPROC_1:funcnot 15 => PNPROC_1:func 12
definition
let a1 be Relation-like Function-like FinSubsequence-like set;
let a2 be Element of NAT;
func A2 Shift A1 -> Relation-like Function-like FinSubsequence-like set means
proj1 it = {a2 + b1 where b1 is Element of NAT: b1 in proj1 a1} &
(for b1 being natural set
st b1 in proj1 a1
holds it . (a2 + b1) = a1 . b1);
end;
:: PNPROC_1:def 15
theorem
for b1 being Relation-like Function-like FinSubsequence-like set
for b2 being Element of NAT
for b3 being Relation-like Function-like FinSubsequence-like set holds
b3 = b2 Shift b1
iff
proj1 b3 = {b2 + b4 where b4 is Element of NAT: b4 in proj1 b1} &
(for b4 being natural set
st b4 in proj1 b1
holds b3 . (b2 + b4) = b1 . b4);
:: PNPROC_1:th 52
theorem
for b1 being Relation-like Function-like FinSubsequence-like set holds
0 Shift b1 = b1;
:: PNPROC_1:th 53
theorem
for b1, b2 being Element of NAT
for b3 being Relation-like Function-like FinSubsequence-like set holds
(b1 + b2) Shift b3 = b1 Shift (b2 Shift b3);
:: PNPROC_1:th 54
theorem
for b1 being Element of NAT
for b2 being Relation-like Function-like FinSequence-like set
st b2 <> {}
holds proj1 (b1 Shift b2) = {b3 where b3 is Element of NAT: b1 + 1 <= b3 & b3 <= b1 + len b2};
:: PNPROC_1:th 55
theorem
for b1 being Element of NAT
for b2 being Relation-like Function-like FinSubsequence-like set holds
b2 = {}
iff
b1 Shift b2 = {};
:: PNPROC_1:th 56
theorem
for b1 being Element of NAT
for b2 being Relation-like Function-like FinSubsequence-like set holds
ex b3 being Relation-like Function-like FinSubsequence-like set st
proj1 b3 = proj1 b2 &
proj2 b3 = proj1 (b1 Shift b2) &
(for b4 being Element of NAT
st b4 in proj1 b2
holds b3 . b4 = b1 + b4) &
b3 is one-to-one;
:: PNPROC_1:th 57
theorem
for b1 being Element of NAT
for b2 being Relation-like Function-like FinSubsequence-like set holds
Card b2 = Card (b1 Shift b2);
:: PNPROC_1:th 58
theorem
for b1 being Element of NAT
for b2 being Relation-like Function-like FinSequence-like set holds
dom b2 = dom Seq (b1 Shift b2);
:: PNPROC_1:th 59
theorem
for b1, b2 being Element of NAT
for b3 being Relation-like Function-like FinSequence-like set
st b1 in dom b3
holds (Sgm proj1 (b2 Shift b3)) . b1 = b2 + b1;
:: PNPROC_1:th 60
theorem
for b1, b2 being Element of NAT
for b3 being Relation-like Function-like FinSequence-like set
st b1 in dom b3
holds (Seq (b2 Shift b3)) . b1 = b3 . b1;
:: PNPROC_1:th 61
theorem
for b1 being Element of NAT
for b2 being Relation-like Function-like FinSequence-like set holds
Seq (b1 Shift b2) = b2;
:: PNPROC_1:th 62
theorem
for b1, b2 being Relation-like Function-like FinSequence-like set holds
proj1 (b1 \/ ((len b1) Shift b2)) = Seg ((len b1) + len b2);
:: PNPROC_1:th 63
theorem
for b1 being Element of NAT
for b2 being Relation-like Function-like FinSequence-like set
for b3 being Relation-like Function-like FinSubsequence-like set
st len b2 <= b1
holds dom b2 misses proj1 (b1 Shift b3);
:: PNPROC_1:th 64
theorem
for b1, b2 being Relation-like Function-like FinSequence-like set holds
b1 ^ b2 = b1 \/ ((len b1) Shift b2);
:: PNPROC_1:th 65
theorem
for b1 being Element of NAT
for b2 being Relation-like Function-like FinSequence-like set
for b3 being Relation-like Function-like FinSubsequence-like set
st len b2 <= b1
holds b2 misses b1 Shift b3;
:: PNPROC_1:th 66
theorem
for b1 being set
for b2 being Petri_net of b1
for b3, b4, b5 being Element of bool (b2 *) holds
(b3 concur b4) concur b5 = b3 concur (b4 concur b5);
:: PNPROC_1:th 67
theorem
for b1 being set
for b2 being Petri_net of b1
for b3, b4 being Element of bool (b2 *) holds
b3 before b4 c= b3 concur b4;
:: PNPROC_1:th 68
theorem
for b1 being set
for b2 being Petri_net of b1
for b3, b4, b5, b6 being Element of bool (b2 *)
st b3 c= b4 & b5 c= b6
holds b3 before b5 c= b4 before b6;
:: PNPROC_1:th 69
theorem
for b1 being set
for b2 being Petri_net of b1
for b3, b4, b5, b6 being Element of bool (b2 *)
st b3 c= b4 & b5 c= b6
holds b3 concur b5 c= b4 concur b6;
:: PNPROC_1:th 70
theorem
for b1 being Element of NAT
for b2, b3 being Relation-like Function-like FinSubsequence-like set
st b3 c= b2
holds b1 Shift b3 c= b1 Shift b2;
:: PNPROC_1:th 71
theorem
for b1, b2 being Relation-like Function-like FinSequence-like set holds
(len b1) Shift b2 c= b1 ^ b2;
:: PNPROC_1:th 72
theorem
for b1 being Element of NAT
for b2, b3 being Relation-like Function-like FinSubsequence-like set
st proj1 b2 misses proj1 b3
holds proj1 (b1 Shift b2) misses proj1 (b1 Shift b3);
:: PNPROC_1:th 73
theorem
for b1 being Element of NAT
for b2, b3, b4 being Relation-like Function-like FinSubsequence-like set
st b2 = b3 \/ b4 & b3 misses b4
holds (b1 Shift b3) \/ (b1 Shift b4) = b1 Shift b2;
:: PNPROC_1:th 74
theorem
for b1 being Element of NAT
for b2 being Relation-like Function-like FinSubsequence-like set holds
dom Seq b2 = dom Seq (b1 Shift b2);
:: PNPROC_1:th 75
theorem
for b1, b2 being Element of NAT
for b3 being Relation-like Function-like FinSubsequence-like set
st b1 in dom Seq b3
holds ex b4 being Element of NAT st
b4 = (Sgm proj1 b3) . b1 &
(Sgm proj1 (b2 Shift b3)) . b1 = b2 + b4;
:: PNPROC_1:th 76
theorem
for b1, b2 being Element of NAT
for b3 being Relation-like Function-like FinSubsequence-like set
st b1 in dom Seq b3
holds (Seq (b2 Shift b3)) . b1 = (Seq b3) . b1;
:: PNPROC_1:th 77
theorem
for b1 being Element of NAT
for b2 being Relation-like Function-like FinSubsequence-like set holds
Seq b2 = Seq (b1 Shift b2);
:: PNPROC_1:th 78
theorem
for b1, b2 being Element of NAT
for b3 being Relation-like Function-like FinSubsequence-like set
st proj1 b3 c= Seg b1
holds proj1 (b2 Shift b3) c= Seg (b2 + b1);
:: PNPROC_1:th 79
theorem
for b1 being Relation-like Function-like FinSequence-like set
for b2, b3 being Relation-like Function-like FinSubsequence-like set
st b2 c= b1
holds ex b4 being Relation-like Function-like FinSubsequence-like set st
b4 = b2 \/ ((len b1) Shift b3);
:: PNPROC_1:th 80
theorem
for b1, b2 being Relation-like Function-like FinSequence-like set
for b3, b4 being Relation-like Function-like FinSubsequence-like set
st b3 c= b1 & b4 c= b2
holds ex b5 being Relation-like Function-like FinSubsequence-like set st
b5 = b3 \/ ((len b1) Shift b4) &
dom Seq b5 = Seg ((len Seq b3) + len Seq b4);
:: PNPROC_1:th 81
theorem
for b1, b2 being Relation-like Function-like FinSequence-like set
for b3, b4 being Relation-like Function-like FinSubsequence-like set
st b3 c= b1 & b4 c= b2
holds ex b5 being Relation-like Function-like FinSubsequence-like set st
b5 = b3 \/ ((len b1) Shift b4) &
dom Seq b5 = Seg ((len Seq b3) + len Seq b4) &
Seq b5 = (Seq b3) \/ ((len Seq b3) Shift Seq b4);
:: PNPROC_1:th 82
theorem
for b1, b2 being Relation-like Function-like FinSequence-like set
for b3, b4 being Relation-like Function-like FinSubsequence-like set
st b3 c= b1 & b4 c= b2
holds ex b5 being Relation-like Function-like FinSubsequence-like set st
b5 = b3 \/ ((len b1) Shift b4) & (Seq b3) ^ Seq b4 = Seq b5;
:: PNPROC_1:th 83
theorem
for b1 being set
for b2 being Petri_net of b1
for b3, b4, b5, b6 being Element of bool (b2 *) holds
(b3 concur b4) before (b5 concur b6) c= (b3 before b5) concur (b4 before b6);
:: PNPROC_1:funcreg 2
registration
let a1 be set;
let a2 be Petri_net of a1;
let a3, a4 be non empty Element of bool (a2 *);
cluster a3 concur a4 -> non empty;
end;
:: PNPROC_1:funcnot 16 => PNPROC_1:func 13
definition
let a1 be set;
let a2 be Petri_net of a1;
func NeutralProcess A2 -> non empty Element of bool (a2 *) equals
{<*> a2};
end;
:: PNPROC_1:def 16
theorem
for b1 being set
for b2 being Petri_net of b1 holds
NeutralProcess b2 = {<*> b2};
:: PNPROC_1:funcnot 17 => PNPROC_1:func 14
definition
let a1 be set;
let a2 be Petri_net of a1;
let a3 be Element of a2;
func ElementaryProcess A3 -> non empty Element of bool (a2 *) equals
{<*a3*>};
end;
:: PNPROC_1:def 17
theorem
for b1 being set
for b2 being Petri_net of b1
for b3 being Element of b2 holds
ElementaryProcess b3 = {<*b3*>};
:: PNPROC_1:th 84
theorem
for b1 being set
for b2 being Petri_net of b1
for b3 being Element of bool (b2 *) holds
(NeutralProcess b2) before b3 = b3;
:: PNPROC_1:th 85
theorem
for b1 being set
for b2 being Petri_net of b1
for b3 being Element of bool (b2 *) holds
b3 before NeutralProcess b2 = b3;
:: PNPROC_1:th 86
theorem
for b1 being set
for b2 being Petri_net of b1
for b3 being Element of bool (b2 *) holds
(NeutralProcess b2) concur b3 = b3;