let PTN be PT_net_Str ; :: thesis: for Sd being non empty Subset of the Places of PTN holds
( Sd is Deadlock-like iff for M0 being Boolean_marking of PTN st M0 .: Sd = {FALSE } holds
for Q being FinSequence of the Transitions of PTN st Q is_firable_on M0 holds
(Firing Q,M0) .: Sd = {FALSE } )

let Sd be non empty Subset of the Places of PTN; :: thesis: ( Sd is Deadlock-like iff for M0 being Boolean_marking of PTN st M0 .: Sd = {FALSE } holds
for Q being FinSequence of the Transitions of PTN st Q is_firable_on M0 holds
(Firing Q,M0) .: Sd = {FALSE } )

thus ( Sd is Deadlock-like implies for M0 being Boolean_marking of PTN st M0 .: Sd = {FALSE } holds
for Q being FinSequence of the Transitions of PTN st Q is_firable_on M0 holds
(Firing Q,M0) .: Sd = {FALSE } ) :: thesis: ( ( for M0 being Boolean_marking of PTN st M0 .: Sd = {FALSE } holds
for Q being FinSequence of the Transitions of PTN st Q is_firable_on M0 holds
(Firing Q,M0) .: Sd = {FALSE } ) implies Sd is Deadlock-like )
proof
assume Sd is Deadlock-like ; :: thesis: for M0 being Boolean_marking of PTN st M0 .: Sd = {FALSE } holds
for Q being FinSequence of the Transitions of PTN st Q is_firable_on M0 holds
(Firing Q,M0) .: Sd = {FALSE }

then A1: *' Sd is Subset of (Sd *' ) by PETRI:def 5;
let M0 be Boolean_marking of PTN; :: thesis: ( M0 .: Sd = {FALSE } implies for Q being FinSequence of the Transitions of PTN st Q is_firable_on M0 holds
(Firing Q,M0) .: Sd = {FALSE } )

assume A2: M0 .: Sd = {FALSE } ; :: thesis: for Q being FinSequence of the Transitions of PTN st Q is_firable_on M0 holds
(Firing Q,M0) .: Sd = {FALSE }

defpred S1[ FinSequence of the Transitions of PTN] means ( $1 is_firable_on M0 implies (Firing $1,M0) .: Sd = {FALSE } );
A3: S1[ <*> the Transitions of PTN] by A2, Def5;
A4: now
let Q be FinSequence of the Transitions of PTN; :: thesis: for x being transition of PTN st S1[Q] holds
S1[Q ^ <*x*>]

let x be transition of PTN; :: thesis: ( S1[Q] implies S1[Q ^ <*x*>] )
assume A5: S1[Q] ; :: thesis: S1[Q ^ <*x*>]
thus S1[Q ^ <*x*>] :: thesis: verum
proof
assume A6: Q ^ <*x*> is_firable_on M0 ; :: thesis: (Firing (Q ^ <*x*>),M0) .: Sd = {FALSE }
then A7: <*x*> is_firable_on Firing Q,M0 by Th11;
Firing (Q ^ <*x*>),M0 = Firing <*x*>,(Firing Q,M0) by Th10;
then consider M being FinSequence of Bool_marks_of PTN such that
A8: len <*x*> = len M and
A9: Firing (Q ^ <*x*>),M0 = M /. (len M) and
A10: M /. 1 = Firing (<*x*> /. 1),(Firing Q,M0) and
for i being Element of NAT st i < len <*x*> & i > 0 holds
M /. (i + 1) = Firing (<*x*> /. (i + 1)),(M /. i) by Def5;
<*x*> /. 1 = x by FINSEQ_4:25;
then A11: Firing (Q ^ <*x*>),M0 = ((Firing Q,M0) +* ((*' {x}) --> FALSE )) +* (({x} *' ) --> TRUE ) by A8, A9, A10, FINSEQ_1:56;
x is_firable_on Firing Q,M0 by A7, Th12;
then (Firing Q,M0) .: (*' {x}) c= {TRUE } by Def2;
then (Firing Q,M0) .: (*' {x}) misses {FALSE } by XBOOLE_1:63, ZFMISC_1:17;
then A12: *' {x} misses Sd by A5, A6, Th2, Th11;
then not x in *' Sd by A1, PETRI:19;
then {x} *' misses Sd by PETRI:20;
hence (Firing (Q ^ <*x*>),M0) .: Sd = ((Firing Q,M0) +* ((*' {x}) --> FALSE )) .: Sd by A11, Th3
.= {FALSE } by A5, A6, A12, Th3, Th11 ;
:: thesis: verum
end;
end;
thus for Q0 being FinSequence of the Transitions of PTN holds S1[Q0] from FINSEQ_2:sch 2(A3, A4); :: thesis: verum
end;
assume A13: for M0 being Boolean_marking of PTN st M0 .: Sd = {FALSE } holds
for Q being FinSequence of the Transitions of PTN st Q is_firable_on M0 holds
(Firing Q,M0) .: Sd = {FALSE } ; :: thesis: Sd is Deadlock-like
assume *' Sd is not Subset of (Sd *' ) ; :: according to PETRI:def 5 :: thesis: contradiction
then consider t being transition of PTN such that
A14: t in *' Sd and
A15: not t in Sd *' by SUBSET_1:7;
set M0 = (the Places of PTN --> TRUE ) +* (Sd --> FALSE );
A16: [#] the Places of PTN = the Places of PTN ;
( dom (the Places of PTN --> TRUE ) = the Places of PTN & dom (Sd --> FALSE ) = Sd ) by FUNCOP_1:19;
then A17: dom ((the Places of PTN --> TRUE ) +* (Sd --> FALSE )) = the Places of PTN \/ Sd by FUNCT_4:def 1
.= the Places of PTN by A16, SUBSET_1:28 ;
( rng (the Places of PTN --> TRUE ) c= {TRUE } & rng (Sd --> FALSE ) c= {FALSE } ) by FUNCOP_1:19;
then ( rng (the Places of PTN --> TRUE ) c= BOOLEAN & rng (Sd --> FALSE ) c= BOOLEAN ) by XBOOLE_1:1;
then A18: (rng (the Places of PTN --> TRUE )) \/ (rng (Sd --> FALSE )) c= BOOLEAN by XBOOLE_1:8;
rng ((the Places of PTN --> TRUE ) +* (Sd --> FALSE )) c= (rng (the Places of PTN --> TRUE )) \/ (rng (Sd --> FALSE )) by FUNCT_4:18;
then rng ((the Places of PTN --> TRUE ) +* (Sd --> FALSE )) c= BOOLEAN by A18, XBOOLE_1:1;
then reconsider M0 = (the Places of PTN --> TRUE ) +* (Sd --> FALSE ) as Boolean_marking of PTN by A17, FUNCT_2:def 2;
A19: M0 .: Sd = {FALSE } by Th5;
reconsider Q = <*t*> as FinSequence of the Transitions of PTN ;
Sd misses *' {t} by A15, PETRI:19;
then A20: (the Places of PTN --> TRUE ) .: (*' {t}) = M0 .: (*' {t}) by Th3;
A21: rng (the Places of PTN --> TRUE ) c= {TRUE } by FUNCOP_1:19;
(the Places of PTN --> TRUE ) .: (*' {t}) c= rng (the Places of PTN --> TRUE ) by RELAT_1:144;
then M0 .: (*' {t}) c= {TRUE } by A20, A21, XBOOLE_1:1;
then t is_firable_on M0 by Def2;
then A22: Q is_firable_on M0 by Th12;
{t} *' meets Sd by A14, PETRI:20;
then consider s being set such that
A23: s in ({t} *' ) /\ Sd by XBOOLE_0:4;
A24: ( s in {t} *' & s in Sd ) by A23, XBOOLE_0:def 4;
then (Firing t,M0) . s = TRUE by Th6;
then TRUE in (Firing t,M0) .: Sd by A24, FUNCT_2:43;
then (Firing t,M0) .: Sd <> {FALSE } by TARSKI:def 1;
then (Firing Q,M0) .: Sd <> {FALSE } by Th13;
hence contradiction by A13, A19, A22; :: thesis: verum