:: BOOLMARK semantic presentation
theorem Th1: :: BOOLMARK:1
theorem Th2: :: BOOLMARK:2
theorem Th3: :: BOOLMARK:3
:: deftheorem Def1 defines Bool_marks_of BOOLMARK:def 1 :
:: deftheorem Def2 defines is_firable_on BOOLMARK:def 2 :
:: deftheorem Def3 defines Firing BOOLMARK:def 3 :
:: deftheorem Def4 defines is_firable_on BOOLMARK:def 4 :
definition
let c
1 be
PT_net_Str ;
let c
2 be
Boolean_marking of c
1;
let c
3 be
FinSequence of the
Transitions of c
1;
func Firing c
3,c
2 -> Boolean_marking of a
1 means :
Def5:
:: BOOLMARK:def 5
a
4 = a
2 if a
3 = {} otherwise ex b
1 being
FinSequence of
Bool_marks_of a
1 st
(
len a
3 = len b
1 & a
4 = b
1 /. (len b1) & b
1 /. 1
= Firing (a3 /. 1),a
2 & ( for b
2 being
Nat holds
( b
2 < len a
3 & b
2 > 0 implies b
1 /. (b2 + 1) = Firing (a3 /. (b2 + 1)),
(b1 /. b2) ) ) );
existence
( not ( c3 = {} & ( for b1 being Boolean_marking of c1 holds
not b1 = c2 ) ) & not ( not c3 = {} & ( for b1 being Boolean_marking of c1
for b2 being FinSequence of Bool_marks_of c1 holds
not ( len c3 = len b2 & b1 = b2 /. (len b2) & b2 /. 1 = Firing (c3 /. 1),c2 & ( for b3 being Nat holds
( b3 < len c3 & b3 > 0 implies b2 /. (b3 + 1) = Firing (c3 /. (b3 + 1)),(b2 /. b3) ) ) ) ) ) )
uniqueness
for b1, b2 being Boolean_marking of c1 holds
( ( c3 = {} & b1 = c2 & b2 = c2 implies b1 = b2 ) & ( not c3 = {} & ex b3 being FinSequence of Bool_marks_of c1 st
( len c3 = len b3 & b1 = b3 /. (len b3) & b3 /. 1 = Firing (c3 /. 1),c2 & ( for b4 being Nat holds
( b4 < len c3 & b4 > 0 implies b3 /. (b4 + 1) = Firing (c3 /. (b4 + 1)),(b3 /. b4) ) ) ) & ex b3 being FinSequence of Bool_marks_of c1 st
( len c3 = len b3 & b2 = b3 /. (len b3) & b3 /. 1 = Firing (c3 /. 1),c2 & ( for b4 being Nat holds
( b4 < len c3 & b4 > 0 implies b3 /. (b4 + 1) = Firing (c3 /. (b4 + 1)),(b3 /. b4) ) ) ) implies b1 = b2 ) )
correctness
consistency
for b1 being Boolean_marking of c1 holds
verum;
;
end;
:: deftheorem Def5 defines Firing BOOLMARK:def 5 :
theorem Th4: :: BOOLMARK:4
canceled;
theorem Th5: :: BOOLMARK:5
theorem Th6: :: BOOLMARK:6
E9:
now
let c
1 be
PT_net_Str ;
let c
2 be non
empty Subset of the
Places of c
1;
assume E10:
for b
1 being
Boolean_marking of c
1 holds
( b
1 .: c
2 = {FALSE } implies for b
2 being
transition of c
1 holds
( b
2 is_firable_on b
1 implies
(Firing b2,b1) .: c
2 = {FALSE } ) )
;
assume
not c
2 is
Deadlock-like
;
then
not
*' c
2 c= c
2 *'
by PETRI:def 5;
then consider c
3 being
transition of c
1 such that E11:
c
3 in *' c
2
and E12:
not c
3 in c
2 *'
by SUBSET_1:7;
set c
4 =
(the Places of c1 --> TRUE ) +* (c2 --> FALSE );
E13:
[#] the
Places of c
1 = the
Places of c
1
by SUBSET_1:def 4;
(
dom (the Places of c1 --> TRUE ) = the
Places of c
1 &
dom (c2 --> FALSE ) = c
2 )
by FUNCOP_1:19;
then E14:
dom ((the Places of c1 --> TRUE ) +* (c2 --> FALSE )) =
the
Places of c
1 \/ c
2
by FUNCT_4:def 1
.=
the
Places of c
1
by E13, SUBSET_1:28
;
(
rng (the Places of c1 --> TRUE ) c= {TRUE } &
rng (c2 --> FALSE ) c= {FALSE } )
by FUNCOP_1:19;
then
(
rng (the Places of c1 --> TRUE ) c= BOOLEAN &
rng (c2 --> FALSE ) c= BOOLEAN )
by XBOOLE_1:1;
then E15:
(rng (the Places of c1 --> TRUE )) \/ (rng (c2 --> FALSE )) c= BOOLEAN
by XBOOLE_1:8;
rng ((the Places of c1 --> TRUE ) +* (c2 --> FALSE )) c= (rng (the Places of c1 --> TRUE )) \/ (rng (c2 --> FALSE ))
by FUNCT_4:18;
then
rng ((the Places of c1 --> TRUE ) +* (c2 --> FALSE )) c= BOOLEAN
by E15, XBOOLE_1:1;
then
(the Places of c1 --> TRUE ) +* (c2 --> FALSE ) in Funcs the
Places of c
1,
BOOLEAN
by E14, FUNCT_2:def 2;
then reconsider c
5 =
(the Places of c1 --> TRUE ) +* (c2 --> FALSE ) as
Boolean_marking of c
1 ;
E16:
c
5 .: c
2 = {FALSE }
by Th5;
c
2 misses *' {c3}
by E12, PETRI:19;
then E17:
(the Places of c1 --> TRUE ) .: (*' {c3}) = c
5 .: (*' {c3})
by Th3;
E18:
rng (the Places of c1 --> TRUE ) c= {TRUE }
by FUNCOP_1:19;
(the Places of c1 --> TRUE ) .: (*' {c3}) c= rng (the Places of c1 --> TRUE )
by RELAT_1:144;
then
c
5 .: (*' {c3}) c= {TRUE }
by E17, E18, XBOOLE_1:1;
then E19:
c
3 is_firable_on c
5
by Def2;
{c3} *' meets c
2
by E11, PETRI:20;
then consider c
6 being
set such that E20:
c
6 in ({c3} *' ) /\ c
2
by XBOOLE_0:4;
E21:
( c
6 in {c3} *' & c
6 in c
2 )
by E20, XBOOLE_0:def 3;
then
(Firing c3,c5) . c
6 = TRUE
by Th6;
then
TRUE in (Firing c3,c5) .: c
2
by E21, FUNCT_2:43;
then
(Firing c3,c5) .: c
2 <> {FALSE }
by MARGREL1:38, TARSKI:def 1;
hence
not verum
by E10, E16, E19;
end;
theorem Th7: :: BOOLMARK:7
theorem Th8: :: BOOLMARK:8
theorem Th9: :: BOOLMARK:9
canceled;
theorem Th10: :: BOOLMARK:10
theorem Th11: :: BOOLMARK:11
theorem Th12: :: BOOLMARK:12
theorem Th13: :: BOOLMARK:13
theorem Th14: :: BOOLMARK:14