begin
theorem Th1:
Lm1:
for p being FinSubsequence st Seq p = {} holds
p = {}
theorem
theorem Th3:
theorem Th4:
theorem Th5:
for
x1,
y1,
x2,
y2 being
set holds
( not
{[x1,y1],[x2,y2]} is
FinSequence or (
x1 = 1 &
x2 = 1 &
y1 = y2 ) or (
x1 = 1 &
x2 = 2 ) or (
x1 = 2 &
x2 = 1 ) )
theorem Th6:
Lm2:
for j, k, l being Element of NAT st ( ( 1 <= j & j <= l ) or ( l + 1 <= j & j <= l + k ) ) holds
( 1 <= j & j <= l + k )
theorem Th7:
Lm3:
for X, Y being set holds
( ( for x being set st x in X holds
not x in Y ) iff X misses Y )
theorem
canceled;
Lm4:
for P, R being Relation st dom P misses dom R holds
P misses R
by RELAT_1:214;
theorem Th9:
Lm5:
for q being FinSubsequence holds dom (Seq q) = dom (Sgm (dom q))
Lm6:
for q being FinSubsequence holds rng q = rng (Seq q)
theorem Th10:
theorem
theorem Th12:
begin
:: deftheorem PNPROC_1:def 1 :
canceled;
:: deftheorem defines = PNPROC_1:def 2 :
for P being set
for m1, m2 being marking of P holds
( m1 = m2 iff for p being set st p in P holds
p multitude_of = p multitude_of );
:: deftheorem defines {$} PNPROC_1:def 3 :
for P being set holds {$} P = P --> 0;
:: deftheorem Def4 defines c= PNPROC_1:def 4 :
for P being set
for m1, m2 being marking of P holds
( m1 c= m2 iff for p being set st p in P holds
p multitude_of <= p multitude_of );
Lm7:
for p, P being set st p in P holds
({$} P) . p = 0
by FUNCOP_1:13;
theorem Th13:
theorem Th14:
for
P being
set for
m1,
m2,
m3 being
marking of
P st
m1 c= m2 &
m2 c= m3 holds
m1 c= m3
:: deftheorem Def5 defines + PNPROC_1:def 5 :
for P being set
for m1, m2, b4 being marking of P holds
( b4 = m1 + m2 iff for p being set st p in P holds
p multitude_of = (p multitude_of ) + (p multitude_of ) );
theorem
:: deftheorem Def6 defines - PNPROC_1:def 6 :
for P being set
for m1, m2 being marking of P st m2 c= m1 holds
for b4 being marking of P holds
( b4 = m1 - m2 iff for p being set st p in P holds
p multitude_of = (p multitude_of ) - (p multitude_of ) );
theorem Th16:
for
P being
set for
m1,
m2 being
marking of
P holds
m1 c= m1 + m2
theorem
theorem
for
P being
set for
m1,
m2,
m3 being
marking of
P st
m1 c= m2 &
m2 c= m3 holds
m3 - m2 c= m3 - m1
theorem Th19:
for
P being
set for
m1,
m2 being
marking of
P holds
(m1 + m2) - m2 = m1
theorem Th20:
for
P being
set for
m,
m1,
m2 being
marking of
P st
m c= m1 &
m1 c= m2 holds
m1 - m c= m2 - m
theorem Th21:
for
P being
set for
m1,
m2,
m3 being
marking of
P st
m1 c= m2 holds
(m2 + m3) - m1 = (m2 - m1) + m3
theorem
for
P being
set for
m1,
m2 being
marking of
P st
m1 c= m2 &
m2 c= m1 holds
m1 = m2
theorem Th23:
for
P being
set for
m1,
m2,
m3 being
marking of
P holds
(m1 + m2) + m3 = m1 + (m2 + m3)
theorem
for
P being
set for
m1,
m2,
m3,
m4 being
marking of
P st
m1 c= m2 &
m3 c= m4 holds
m1 + m3 c= m2 + m4
theorem
for
P being
set for
m1,
m2 being
marking of
P st
m1 c= m2 holds
m2 - m1 c= m2
theorem Th26:
for
P being
set for
m1,
m2,
m3,
m4 being
marking of
P st
m1 c= m2 &
m3 c= m4 &
m4 c= m1 holds
m1 - m4 c= m2 - m3
theorem Th27:
for
P being
set for
m1,
m2 being
marking of
P st
m1 c= m2 holds
m2 = (m2 - m1) + m1
theorem Th28:
for
P being
set for
m1,
m2 being
marking of
P holds
(m1 + m2) - m1 = m2
theorem Th29:
for
P being
set for
m2,
m3,
m1 being
marking of
P st
m2 + m3 c= m1 holds
(m1 - m2) - m3 = m1 - (m2 + m3)
theorem
for
P being
set for
m3,
m2,
m1 being
marking of
P st
m3 c= m2 &
m2 c= m1 holds
m1 - (m2 - m3) = (m1 - m2) + m3
begin
:: deftheorem Def7 defines transition PNPROC_1:def 7 :
for P being set
for b2 being set holds
( b2 is transition of P iff ex m1, m2 being marking of P st b2 = [m1,m2] );
:: deftheorem Def8 defines fire PNPROC_1:def 8 :
for P being set
for m being marking of P
for t being transition of P holds
( ( Pre t c= m implies fire (t,m) = (m - (Pre t)) + (Post t) ) & ( not Pre t c= m implies fire (t,m) = m ) );
theorem
canceled;
theorem
canceled;
theorem
:: deftheorem Def9 defines fire PNPROC_1:def 9 :
for P being set
for t being transition of P
for b3 being Function holds
( b3 = fire t iff ( dom b3 = Funcs (P,NAT) & ( for m being marking of P holds b3 . m = fire (t,m) ) ) );
theorem Th34:
theorem
:: deftheorem Def10 defines Petri_net PNPROC_1:def 10 :
for P being set
for b2 being non empty set holds
( b2 is Petri_net of P iff for x being set st x in b2 holds
x is transition of P );
begin
:: deftheorem Def11 defines fire PNPROC_1:def 11 :
for P being set
for N being Petri_net of P
for C being firing-sequence of N
for b4 being Function holds
( b4 = fire C iff ex F being Function-yielding FinSequence st
( b4 = compose (F,(Funcs (P,NAT))) & len F = len C & ( for i being Element of NAT st i in dom C holds
F . i = fire (C /. i) ) ) );
theorem
theorem Th37:
theorem Th38:
theorem
theorem Th40:
theorem Th41:
theorem
:: deftheorem defines fire PNPROC_1:def 12 :
for P being set
for N being Petri_net of P
for C being firing-sequence of N
for m being marking of P holds fire (C,m) = (fire C) . m;
begin
:: deftheorem defines before PNPROC_1:def 13 :
for P being set
for N being Petri_net of P
for R1, R2 being process of N holds R1 before R2 = { (C1 ^ C2) where C1, C2 is firing-sequence of N : ( C1 in R1 & C2 in R2 ) } ;
theorem Th43:
theorem Th44:
theorem Th45:
theorem
theorem
begin
:: deftheorem defines concur PNPROC_1:def 14 :
for P being set
for N being Petri_net of P
for R1, R2 being process of N holds R1 concur R2 = { C where C is firing-sequence of N : ex q1, q2 being FinSubsequence st
( C = q1 \/ q2 & q1 misses q2 & Seq q1 in R1 & Seq q2 in R2 ) } ;
theorem Th48:
theorem Th49:
theorem
for
P being
set for
N being
Petri_net of
P for
e1,
e2,
e being
Element of
N holds
{<*e1*>,<*e2*>} concur {<*e*>} = {<*e1,e*>,<*e2,e*>,<*e,e1*>,<*e,e2*>}
theorem
:: deftheorem Def15 defines Shift PNPROC_1:def 15 :
for p being FinSubsequence
for i being Element of NAT
for b3 being FinSubsequence holds
( b3 = i Shift p iff ( dom b3 = { (i + k) where k is Element of NAT : k in dom p } & ( for j being Nat st j in dom p holds
b3 . (i + j) = p . j ) ) );
theorem
theorem
theorem Th54:
theorem
theorem Th56:
Lm8:
for i being Element of NAT
for p being FinSequence ex fs being FinSequence st
( dom fs = dom p & rng fs = dom (i Shift p) & ( for k being Element of NAT st k in dom p holds
fs . k = i + k ) & fs is one-to-one )
theorem Th57:
theorem Th58:
theorem Th59:
theorem Th60:
theorem Th61:
theorem Th62:
theorem Th63:
theorem Th64:
theorem Th65:
theorem
theorem
theorem
theorem
Lm9:
for p1, p2 being FinSequence
for q1, q2 being FinSubsequence st q1 c= p1 & q2 c= p2 holds
dom (q1 \/ ((len p1) Shift q2)) c= dom (p1 ^ p2)
Lm10:
for p1 being FinSequence
for q1, q2 being FinSubsequence st q1 c= p1 holds
q1 misses (len p1) Shift q2
by Th65, XBOOLE_1:63;
Lm11:
for i being Element of NAT
for p, q being FinSubsequence st q c= p holds
dom (i Shift q) c= dom (i Shift p)
theorem Th70:
theorem Th71:
theorem Th72:
theorem Th73:
theorem Th74:
theorem Th75:
theorem Th76:
theorem
theorem Th78:
theorem Th79:
Lm12:
for p1, p2 being FinSequence
for q1, q2 being FinSubsequence st q1 c= p1 & q2 c= p2 holds
Sgm ((dom q1) \/ (dom ((len p1) Shift q2))) = (Sgm (dom q1)) ^ (Sgm (dom ((len p1) Shift q2)))
theorem Th80:
theorem Th81:
theorem Th82:
theorem
begin
:: deftheorem defines NeutralProcess PNPROC_1:def 16 :
for P being set
for N being Petri_net of P holds NeutralProcess N = {(<*> N)};
:: deftheorem defines ElementaryProcess PNPROC_1:def 17 :
for P being set
for N being Petri_net of P
for t being Element of N holds ElementaryProcess t = {<*t*>};
theorem
theorem
theorem