Article PETRI, MML version 4.99.1005
:: PETRI:modenot 1 => PETRI:mode 1
definition
let a1, a2 be non empty set;
let a3 be non empty Relation of a1,a2;
redefine mode Element of a3 -> Element of [:a1,a2:];
end;
:: PETRI:structnot 1 => PETRI:struct 1
definition
struct() PT_net_Str(#
Places -> non empty set,
Transitions -> non empty set,
S-T_Arcs -> non empty Relation of the Places of it,the Transitions of it,
T-S_Arcs -> non empty Relation of the Transitions of it,the Places of it
#);
end;
:: PETRI:attrnot 1 => PETRI:attr 1
definition
let a1 be PT_net_Str;
attr a1 is strict;
end;
:: PETRI:exreg 1
registration
cluster strict PT_net_Str;
end;
:: PETRI:aggrnot 1 => PETRI:aggr 1
definition
let a1, a2 be non empty set;
let a3 be non empty Relation of a1,a2;
let a4 be non empty Relation of a2,a1;
aggr PT_net_Str(#a1,a2,a3,a4#) -> strict PT_net_Str;
end;
:: PETRI:selnot 1 => PETRI:sel 1
definition
let a1 be PT_net_Str;
sel the Places of a1 -> non empty set;
end;
:: PETRI:selnot 2 => PETRI:sel 2
definition
let a1 be PT_net_Str;
sel the Transitions of a1 -> non empty set;
end;
:: PETRI:selnot 3 => PETRI:sel 3
definition
let a1 be PT_net_Str;
sel the S-T_Arcs of a1 -> non empty Relation of the Places of a1,the Transitions of a1;
end;
:: PETRI:selnot 4 => PETRI:sel 4
definition
let a1 be PT_net_Str;
sel the T-S_Arcs of a1 -> non empty Relation of the Transitions of a1,the Places of a1;
end;
:: PETRI:modenot 2
definition
let a1 be PT_net_Str;
mode place of a1 is Element of the Places of a1;
end;
:: PETRI:modenot 3
definition
let a1 be PT_net_Str;
mode places of a1 is Element of the Places of a1;
end;
:: PETRI:modenot 4
definition
let a1 be PT_net_Str;
mode transition of a1 is Element of the Transitions of a1;
end;
:: PETRI:modenot 5
definition
let a1 be PT_net_Str;
mode transitions of a1 is Element of the Transitions of a1;
end;
:: PETRI:modenot 6
definition
let a1 be PT_net_Str;
mode S-T_arc of a1 is Element of the S-T_Arcs of a1;
end;
:: PETRI:modenot 7
definition
let a1 be PT_net_Str;
mode T-S_arc of a1 is Element of the T-S_Arcs of a1;
end;
:: PETRI:funcnot 1 => PETRI:func 1
definition
let a1 be PT_net_Str;
let a2 be Element of the S-T_Arcs of a1;
redefine func a2 `1 -> Element of the Places of a1;
end;
:: PETRI:funcnot 2 => PETRI:func 2
definition
let a1 be PT_net_Str;
let a2 be Element of the S-T_Arcs of a1;
redefine func a2 `2 -> Element of the Transitions of a1;
end;
:: PETRI:funcnot 3 => PETRI:func 3
definition
let a1 be PT_net_Str;
let a2 be Element of the T-S_Arcs of a1;
redefine func a2 `1 -> Element of the Transitions of a1;
end;
:: PETRI:funcnot 4 => PETRI:func 4
definition
let a1 be PT_net_Str;
let a2 be Element of the T-S_Arcs of a1;
redefine func a2 `2 -> Element of the Places of a1;
end;
:: PETRI:funcnot 5 => PETRI:func 5
definition
let a1 be PT_net_Str;
let a2 be Element of bool the Places of a1;
func *' A2 -> Element of bool the Transitions of a1 equals
{b1 where b1 is Element of the Transitions of a1: ex b2 being Element of the T-S_Arcs of a1 st
ex b3 being Element of the Places of a1 st
b3 in a2 & b2 = [b1,b3]};
end;
:: PETRI:def 1
theorem
for b1 being PT_net_Str
for b2 being Element of bool the Places of b1 holds
*' b2 = {b3 where b3 is Element of the Transitions of b1: ex b4 being Element of the T-S_Arcs of b1 st
ex b5 being Element of the Places of b1 st
b5 in b2 & b4 = [b3,b5]};
:: PETRI:funcnot 6 => PETRI:func 6
definition
let a1 be PT_net_Str;
let a2 be Element of bool the Places of a1;
func A2 *' -> Element of bool the Transitions of a1 equals
{b1 where b1 is Element of the Transitions of a1: ex b2 being Element of the S-T_Arcs of a1 st
ex b3 being Element of the Places of a1 st
b3 in a2 & b2 = [b3,b1]};
end;
:: PETRI:def 2
theorem
for b1 being PT_net_Str
for b2 being Element of bool the Places of b1 holds
b2 *' = {b3 where b3 is Element of the Transitions of b1: ex b4 being Element of the S-T_Arcs of b1 st
ex b5 being Element of the Places of b1 st
b5 in b2 & b4 = [b5,b3]};
:: PETRI:th 1
theorem
for b1 being PT_net_Str
for b2 being Element of bool the Places of b1 holds
*' b2 = {b3 `1 where b3 is Element of the T-S_Arcs of b1: b3 `2 in b2};
:: PETRI:th 2
theorem
for b1 being PT_net_Str
for b2 being Element of bool the Places of b1
for b3 being set holds
b3 in *' b2
iff
ex b4 being Element of the T-S_Arcs of b1 st
ex b5 being Element of the Places of b1 st
b5 in b2 & b4 = [b3,b5];
:: PETRI:th 3
theorem
for b1 being PT_net_Str
for b2 being Element of bool the Places of b1 holds
b2 *' = {b3 `2 where b3 is Element of the S-T_Arcs of b1: b3 `1 in b2};
:: PETRI:th 4
theorem
for b1 being PT_net_Str
for b2 being Element of bool the Places of b1
for b3 being set holds
b3 in b2 *'
iff
ex b4 being Element of the S-T_Arcs of b1 st
ex b5 being Element of the Places of b1 st
b5 in b2 & b4 = [b5,b3];
:: PETRI:funcnot 7 => PETRI:func 7
definition
let a1 be PT_net_Str;
let a2 be Element of bool the Transitions of a1;
func *' A2 -> Element of bool the Places of a1 equals
{b1 where b1 is Element of the Places of a1: ex b2 being Element of the S-T_Arcs of a1 st
ex b3 being Element of the Transitions of a1 st
b3 in a2 & b2 = [b1,b3]};
end;
:: PETRI:def 3
theorem
for b1 being PT_net_Str
for b2 being Element of bool the Transitions of b1 holds
*' b2 = {b3 where b3 is Element of the Places of b1: ex b4 being Element of the S-T_Arcs of b1 st
ex b5 being Element of the Transitions of b1 st
b5 in b2 & b4 = [b3,b5]};
:: PETRI:funcnot 8 => PETRI:func 8
definition
let a1 be PT_net_Str;
let a2 be Element of bool the Transitions of a1;
func A2 *' -> Element of bool the Places of a1 equals
{b1 where b1 is Element of the Places of a1: ex b2 being Element of the T-S_Arcs of a1 st
ex b3 being Element of the Transitions of a1 st
b3 in a2 & b2 = [b3,b1]};
end;
:: PETRI:def 4
theorem
for b1 being PT_net_Str
for b2 being Element of bool the Transitions of b1 holds
b2 *' = {b3 where b3 is Element of the Places of b1: ex b4 being Element of the T-S_Arcs of b1 st
ex b5 being Element of the Transitions of b1 st
b5 in b2 & b4 = [b5,b3]};
:: PETRI:th 5
theorem
for b1 being PT_net_Str
for b2 being Element of bool the Transitions of b1 holds
*' b2 = {b3 `1 where b3 is Element of the S-T_Arcs of b1: b3 `2 in b2};
:: PETRI:th 6
theorem
for b1 being PT_net_Str
for b2 being Element of bool the Transitions of b1
for b3 being set holds
b3 in *' b2
iff
ex b4 being Element of the S-T_Arcs of b1 st
ex b5 being Element of the Transitions of b1 st
b5 in b2 & b4 = [b3,b5];
:: PETRI:th 7
theorem
for b1 being PT_net_Str
for b2 being Element of bool the Transitions of b1 holds
b2 *' = {b3 `2 where b3 is Element of the T-S_Arcs of b1: b3 `1 in b2};
:: PETRI:th 8
theorem
for b1 being PT_net_Str
for b2 being Element of bool the Transitions of b1
for b3 being set holds
b3 in b2 *'
iff
ex b4 being Element of the T-S_Arcs of b1 st
ex b5 being Element of the Transitions of b1 st
b5 in b2 & b4 = [b5,b3];
:: PETRI:th 9
theorem
for b1 being PT_net_Str holds
*' {} the Places of b1 = {};
:: PETRI:th 10
theorem
for b1 being PT_net_Str holds
({} the Places of b1) *' = {};
:: PETRI:th 11
theorem
for b1 being PT_net_Str holds
*' {} the Transitions of b1 = {};
:: PETRI:th 12
theorem
for b1 being PT_net_Str holds
({} the Transitions of b1) *' = {};
:: PETRI:attrnot 2 => PETRI:attr 2
definition
let a1 be PT_net_Str;
let a2 be Element of bool the Places of a1;
attr a2 is Deadlock-like means
*' a2 is Element of bool (a2 *');
end;
:: PETRI:dfs 5
definiens
let a1 be PT_net_Str;
let a2 be Element of bool the Places of a1;
To prove
a2 is Deadlock-like
it is sufficient to prove
thus *' a2 is Element of bool (a2 *');
:: PETRI:def 5
theorem
for b1 being PT_net_Str
for b2 being Element of bool the Places of b1 holds
b2 is Deadlock-like(b1)
iff
*' b2 is Element of bool (b2 *');
:: PETRI:attrnot 3 => PETRI:attr 3
definition
let a1 be PT_net_Str;
attr a1 is With_Deadlocks means
ex b1 being Element of bool the Places of a1 st
b1 is Deadlock-like(a1);
end;
:: PETRI:dfs 6
definiens
let a1 be PT_net_Str;
To prove
a1 is With_Deadlocks
it is sufficient to prove
thus ex b1 being Element of bool the Places of a1 st
b1 is Deadlock-like(a1);
:: PETRI:def 6
theorem
for b1 being PT_net_Str holds
b1 is With_Deadlocks
iff
ex b2 being Element of bool the Places of b1 st
b2 is Deadlock-like(b1);
:: PETRI:exreg 2
registration
cluster With_Deadlocks PT_net_Str;
end;
:: PETRI:attrnot 4 => PETRI:attr 4
definition
let a1 be PT_net_Str;
let a2 be Element of bool the Places of a1;
attr a2 is Trap-like means
a2 *' is Element of bool *' a2;
end;
:: PETRI:dfs 7
definiens
let a1 be PT_net_Str;
let a2 be Element of bool the Places of a1;
To prove
a2 is Trap-like
it is sufficient to prove
thus a2 *' is Element of bool *' a2;
:: PETRI:def 7
theorem
for b1 being PT_net_Str
for b2 being Element of bool the Places of b1 holds
b2 is Trap-like(b1)
iff
b2 *' is Element of bool *' b2;
:: PETRI:attrnot 5 => PETRI:attr 5
definition
let a1 be PT_net_Str;
attr a1 is With_Traps means
ex b1 being Element of bool the Places of a1 st
b1 is Trap-like(a1);
end;
:: PETRI:dfs 8
definiens
let a1 be PT_net_Str;
To prove
a1 is With_Traps
it is sufficient to prove
thus ex b1 being Element of bool the Places of a1 st
b1 is Trap-like(a1);
:: PETRI:def 8
theorem
for b1 being PT_net_Str holds
b1 is With_Traps
iff
ex b2 being Element of bool the Places of b1 st
b2 is Trap-like(b1);
:: PETRI:exreg 3
registration
cluster With_Traps PT_net_Str;
end;
:: PETRI:funcnot 9 => PETRI:func 9
definition
let a1, a2 be non empty set;
let a3 be non empty Relation of a1,a2;
redefine func a3 ~ -> non empty Relation of a2,a1;
involutiveness;
:: for a1, a2 being non empty set
:: for a3 being non empty Relation of a1,a2 holds
:: a3 ~ ~ = a3;
end;
:: PETRI:funcnot 10 => PETRI:func 10
definition
let a1 be PT_net_Str;
func A1 .: -> strict PT_net_Str equals
PT_net_Str(#the Places of a1,the Transitions of a1,(the T-S_Arcs of a1) ~,(the S-T_Arcs of a1) ~#);
end;
:: PETRI:def 9
theorem
for b1 being PT_net_Str holds
b1 .: = PT_net_Str(#the Places of b1,the Transitions of b1,(the T-S_Arcs of b1) ~,(the S-T_Arcs of b1) ~#);
:: PETRI:th 13
theorem
for b1 being PT_net_Str holds
b1 .: .: = PT_net_Str(#the Places of b1,the Transitions of b1,the S-T_Arcs of b1,the T-S_Arcs of b1#);
:: PETRI:th 14
theorem
for b1 being PT_net_Str holds
the Places of b1 = the Places of b1 .: & the Transitions of b1 = the Transitions of b1 .: & (the S-T_Arcs of b1) ~ = the T-S_Arcs of b1 .: & (the T-S_Arcs of b1) ~ = the S-T_Arcs of b1 .:;
:: PETRI:funcnot 11 => PETRI:func 11
definition
let a1 be PT_net_Str;
let a2 be Element of bool the Places of a1;
func A2 .: -> Element of bool the Places of a1 .: equals
a2;
end;
:: PETRI:def 10
theorem
for b1 being PT_net_Str
for b2 being Element of bool the Places of b1 holds
b2 .: = b2;
:: PETRI:funcnot 12 => PETRI:func 12
definition
let a1 be PT_net_Str;
let a2 be Element of the Places of a1;
func A2 .: -> Element of the Places of a1 .: equals
a2;
end;
:: PETRI:def 11
theorem
for b1 being PT_net_Str
for b2 being Element of the Places of b1 holds
b2 .: = b2;
:: PETRI:funcnot 13 => PETRI:func 13
definition
let a1 be PT_net_Str;
let a2 be Element of bool the Places of a1 .:;
func .: A2 -> Element of bool the Places of a1 equals
a2;
end;
:: PETRI:def 12
theorem
for b1 being PT_net_Str
for b2 being Element of bool the Places of b1 .: holds
.: b2 = b2;
:: PETRI:funcnot 14 => PETRI:func 14
definition
let a1 be PT_net_Str;
let a2 be Element of the Places of a1 .:;
func .: A2 -> Element of the Places of a1 equals
a2;
end;
:: PETRI:def 13
theorem
for b1 being PT_net_Str
for b2 being Element of the Places of b1 .: holds
.: b2 = b2;
:: PETRI:funcnot 15 => PETRI:func 15
definition
let a1 be PT_net_Str;
let a2 be Element of bool the Transitions of a1;
func A2 .: -> Element of bool the Transitions of a1 .: equals
a2;
end;
:: PETRI:def 14
theorem
for b1 being PT_net_Str
for b2 being Element of bool the Transitions of b1 holds
b2 .: = b2;
:: PETRI:funcnot 16 => PETRI:func 16
definition
let a1 be PT_net_Str;
let a2 be Element of the Transitions of a1;
func A2 .: -> Element of the Transitions of a1 .: equals
a2;
end;
:: PETRI:def 15
theorem
for b1 being PT_net_Str
for b2 being Element of the Transitions of b1 holds
b2 .: = b2;
:: PETRI:funcnot 17 => PETRI:func 17
definition
let a1 be PT_net_Str;
let a2 be Element of bool the Transitions of a1 .:;
func .: A2 -> Element of bool the Transitions of a1 equals
a2;
end;
:: PETRI:def 16
theorem
for b1 being PT_net_Str
for b2 being Element of bool the Transitions of b1 .: holds
.: b2 = b2;
:: PETRI:funcnot 18 => PETRI:func 18
definition
let a1 be PT_net_Str;
let a2 be Element of the Transitions of a1 .:;
func .: A2 -> Element of the Transitions of a1 equals
a2;
end;
:: PETRI:def 17
theorem
for b1 being PT_net_Str
for b2 being Element of the Transitions of b1 .: holds
.: b2 = b2;
:: PETRI:th 15
theorem
for b1 being PT_net_Str
for b2 being Element of bool the Places of b1 holds
b2 .: *' = *' b2;
:: PETRI:th 16
theorem
for b1 being PT_net_Str
for b2 being Element of bool the Places of b1 holds
*' (b2 .:) = b2 *';
:: PETRI:th 17
theorem
for b1 being PT_net_Str
for b2 being Element of bool the Places of b1 holds
b2 is Deadlock-like(b1)
iff
b2 .: is Trap-like(b1 .:);
:: PETRI:th 18
theorem
for b1 being PT_net_Str
for b2 being Element of bool the Places of b1 holds
b2 is Trap-like(b1)
iff
b2 .: is Deadlock-like(b1 .:);
:: PETRI:th 19
theorem
for b1 being PT_net_Str
for b2 being Element of the Transitions of b1
for b3 being Element of bool the Places of b1 holds
b2 in b3 *'
iff
*' {b2} meets b3;
:: PETRI:th 20
theorem
for b1 being PT_net_Str
for b2 being Element of the Transitions of b1
for b3 being Element of bool the Places of b1 holds
b2 in *' b3
iff
{b2} *' meets b3;