Page 55 - 《软件学报》2021年第6期
P. 55

郝宗寅  等:Petri 网的反向展开及其在程序数据竞争检测的应用                                                1629


             定理 1. ≺ r 是 adequate order.
             证明:易得≺ r 满足 adequate order 的条件(1)、条件(2).只需证明≺ r 满足条件(3)即可.即证明:当 Mark(Cfg 1 )≤
         Mark(Cfg 2 )∧Cfg 1 ≺ r Cfg 2 时,对 Cfg 2 的任意前缀 E 2 ,有 E 1 满足 Mark(Cfg 1 ⊕E 1 )≤Mark(Cfg 2 ⊕E 2 ),且 Cfg 1 ⊕E 1 ≺ r Cfg 2 ⊕
         E 2 .
                                                 k
                                                       k
             定义 Ek 为配置 Cfg 的一个大小为 k 前缀,Cfg =Cfg⊕E .接下来按|E 2 |的大小进行归纳证明.|E 2 |=0 时,结论显
                                                            k
                                                                  k
         然成立.|E 2 |=k 时,由归纳假设有 Mark   (Cfg 1 k )≤ Mark (Cfg k 2 ) ,且 Cfg ≺ r  Cfg .|E 2 |=k+1 时,对任意变迁 t.
                                                                  2
                                                            1
                                 i
             •   设 e 2 =(t,C 2 ), (Cμ  2 ) ⊆  t ∧ C ⊆  2  Cut (Cfg 2 k  ) ,有 Cfg k + 1  =  Cfg ∪  2 k  {}e ;
                                                               2
                                                     2
                                 i
             •   设 e 1 =(t,C 1 ), ()Cμ  1  ⊆  t ∧  C ⊆  1  Cut (Cfg 1 k ) ,有 Cfg 1 k + 1  =  Cfg ∪  1 k  {}e .要求μ(C 1 )≤μ(C 2 )且 C 1 尽可能大(C 1 可
                                                               1
                以为∅).
             接下来只需证明 Mark     (Cfg 1 k +  1 )≤ Mark (Cfg 2 k +  1 ) ,且 Cfg 1 k + 1  ≺  r  Cfg 2 k + 1 ,有以下两种情况.
                         k
             (1)  C 1 =∅:  Cfg =  Cfg 1 k + 1  .由于要求了 C 1 尽可能大,可知:∀p∈μ(C 2 ), p∉  Mark (Cfg 1 k  ) ,易得 Mark (Cfg 1 k + 1 ) =
                         1
                  Mark (Cfg 1 k  )≤  Mark (Cfg 2 k  ) μ−  (C +  2 )  i t =  Mark (Cfg 2 k + 1 ) . 又因为 | Cfg 2 k  | | Cfg<  2 k + 1  | , 由 ≺ r 的定义 (1), 有
                    k
                 Cfg ≺  Cfg k + 1  ,进而有 Cfg k + 1  =  Cfg ≺  k  Cfg ≺  k  Cfg k + 1 .C 1 =∅时结论成立;
                    2     2          1     1  r   2  r  2
             (2)  C 1 ≠∅:由于要求了 C 1 尽可能大,且μ(C 1 )≤μ(C 2 ),可知:∀p∈μ(C 2 ), p μ∈  ()C ∨  1  p∉  Mark (Cfg 1 k  ) ,易得
                  Mark (Cfg 1 k + 1 ) =  Mark (Cfg 1 k ) μ  −  ( )C +  1  i  t ≤ Mark (Cfg 2 k ) μ  −  (C +  2 )  i  t =  Mark (Cfg 2 k + 1 ) . 当 | Cfg 1 k  | | Cfg<  k 2  | 时 ,
                 有 | Cfg k +  1  | | Cfg=  k  | 1 | Cfg+  <  k  | 1 | Cfg+  =  k +  1  |,Cfg k +  1  Cfg≺  k +  1  . 当 | Cfg k  | | Cfg=  k  | , 且 Lex ((Cfgμ  k  )) <
                        1     1        2       2     1   r  2          1     2               1
                  Lex ((Cfgμ  k 2 )) 时,有 | Cfg 1 k + 1  | | Cfg=  1 k  | 1 | Cfg+  <  k 2  | 1 | Cfg+  =  2 k + 1  | .两个长度相同的有序串添加一个相同元素
                 并重新排序后,二者间的字典序大小关系不会发生改变,因此 Lex                    ( (Cfgμ  1 k +  1 )) <  Lex ( (Cfgμ  k +  2  1 )),Cfg 1 k +  1  ≺
                                                                                                r
                 Cfg k + 1  .C 1 ≠∅时结论成立.
                    2
             综上,有 Mark(Cfg 1 ⊕E 1 )≤Mark(Cfg 2 ⊕E 2 ),且 Cfg 1 ⊕E 1 ≺ r Cfg 2 ⊕E 2 .因此,≺ r 是 adequate order.     □
             定理 2.  反向截断事件不会破坏 RUnf 的完备性.
             证明:对于满足 M M f 的任意可达标识 M,应存在配置 Cfg 满足 Mark(Cfg)⊆M.假设 Cfg 不存在于 RUnf 中,
         则 Cfg 中一定包含反向截断事件 e,且 RUnf 中存在事件 e′,使得 Mark([e′])≤Mark([e])∧[e′]≺[e].
             由 adequate order 的条件(3)可知:对于 Cfg=[e]⊕E,存在 Cfg′=[e′]⊕E′,使得 Mark(Cfg′)≤Mark(Cfg)≤M∧Cfg′≺
         Cfg.由于≺是良基的,上述过程最终会找到一个存在于 RUnf 中的极小配置,这与假设不符.故反向截断事件不会
         破坏 RUnf 的完备性.                                                                        □
             定理 3. RUnf 是有限的.
             证明:对于 RUnf 内的任意事件 e,可以得到一条最长链 e 1 <e 2 <…<e,设其长度为 d(e),有以下 3 个结论.
                                                              •
                                   •
                              •
                                                         •
             (1)  对于任意条件 c, c 与 c 是有限的;对于任意事件 e, e 与 e 是有限的;
             (2)  设安全 Petri 网的可达标识总数为 n,有 d(e)≤n+1.长度为 n+1 的链 e 1 <e 2 <…<e n+1 必然存在两个事件
                 e i ,e j ,i<j,使得 Mark([e i ])≤Mark([e j ]).又因为[e i ]⊂[e j ],由 adequate order 的条件(2)可知[e i ]≺[e j ],e j 为反向
                 截断事件.由此可知,链中不存在 e 使得 e j <e,即链长不可能大于 n+1;
             (3)  对于任意 k(k≥0),RUnf 中仅包含有限多的事件 e,使得 d(e)≤k.
             可以进行归纳证明:k=0 时,结论显然成立.设 E k 为 d(e)≤k 的事件集合,由归纳假设可知,E k 是有限的.E k+1 为
                                  •
                                 •
         d(e)≤k+1 的事件集合.由 E k+1 ⊆ E k ∪CM f 以及结论(1)可知,E k+1 是有限的.
             由结论(2)、结论(3)可知,RUnf 包含有限多的事件;再由结论(1)可知,RUnf 包含有限多的条件,故 RUnf 是有
         限的.                                                                                   □
         附录 B

             首先回顾一下 RExt 的两个条件.
   50   51   52   53   54   55   56   57   58   59   60