Page 22 - 《软件学报》2025年第9期
P. 22

徐学政 等: RISC-V  内存一致性模型的同地址顺序一致性定理证明                                             3933


                    (1.3.5.3.2) 由  (1.3.5.3.1) 以及引理  11  可得: co(x,b). 由  co  定义进而得到: gmo(x,b).
                    (1.3.5.3.3) 由  (1.3.5.1)、(1.3.5.3.2) 以及  gmo  的传递性可得: gmo(c,b).
                    (1.3.5.3.4) 因  (1.3.2) 以及  gmo  的非对称性与  (1.3.5.3.3) 推出矛盾.
                    (1.3.5.4) 若  rfe(x,a) 成立:
                    (1.3.5.4.1) 由  rfe(x,a) 以及引理  8  可得: gmo(x,a).
                    (1.3.5.4.2) 根据  (1.3.5.4.1)、(1.3.1)、(1.3.2) 以及  gmo  的传递性可得: gmo(x,c).
                    (1.3.5.4.3) 根据  (1.3.5.4.2) 以及  gmo  的非对称性与  (1.3.5.1) 推出矛盾.
                    (1.3.6) 由  (1.3.3)、(1.3.5) 以及  co  定义可得: rf(x,a)∧co(x,c). 又由  fr 定义可得: fr(a,c). perloc(a,c) 得证.
                    (2) 若  fr(a,b) 成立:
                    (2.1) 由  fr 定义可得: ∃ x∈E, rf(x,a)∧co(x,b).
                    (2.2) 由假设中  co(b,c)、(2.1) 中  co(x,b) 以及  co  的传递性可得: co(x,c).
                    (2.3) 由  (2.1) 中  rf(x,a)、(2.2) 以及  fr 定义可得: fr(a,c). perloc(a,c) 得证.
                    定理  12 (RrW  转换). ∀a,b∈R, ∀c∈W, perloc(a,b,c)→perloc(a,c).
                    证明: 根据表    3, 将目标替换为: 已知    poloc(a,b), poloc(b,c)∨fr(b,c), 求证  perloc(a,c). 分两种情况证明.
                    (1) 若  poloc(b,c) 成立, 由  poloc 的传递性可证.
                    (2) 若  fr(b,c) 成立:
                    (2.1) 由  fr 的定义可知: ∃ x∈E, rf(x,b)∧co(x,c).
                    (2.2) 由公理  1  可知: ∃y∈W, rf(y,a).
                    (2.3) 由  rf(y,a)、rf(x,b)、poloc(a,b) 以及引理  13  可得: x=y∨co(y,x). 分两种情况证明.
                    (2.4) 若  x=y 成立, 由  rf(x,a)、co(x,c) 以及  fr 的定义可得: fr(a,c). 由  perloc 的定义, perloc(a,c) 得证.
                    (2.5) 若  co(y,x) 成立, 将  a、x、c 分别代入定理  11  的  a、b、c, 可得: perloc(a,c).
                    定理  13 (WrW  转换). ∀a,c∈W, ∀b∈R, perloc(a,b,c)→perloc(a,c).
                    证明: 已知   a∈W, b∈R, c∈W, perloc(a,b), perloc(b,c), 求证  perloc(a,c).
                    (1) 证明  a≠c. 由反证法可证: 若   a=c 成立, 可得: perloc(a,b), perloc(b,a), 由推论  2  可推出矛盾.
                    (2) 由  (1) 以及  co  定义可得: co(a,c)∨co(c,a).
                    为了证明    perloc(a,c), 只需证明¬co(c,a). 反证法. 假设  co(c,a) 成立, 由推论  4  推出矛盾.
                    定理  14 (WwW  转换). ∀a,b,c∈W, perloc(a,b,c)→perloc(a,c).
                    证明: 根据表    3  及引理  11, 将目标替换为: 已知   co(a,b)∧co(b,c), 求证  co(a,c). 由  co  的传递性可证.
                    推论  6 (RwrW  转换). ∀a,c∈R, ∀b,d∈W, perloc(a,b,c,d)→perloc(a,d).
                    证明: 已知   a∈R, b∈W, c∈R, d∈W, perloc(a,b), perloc(b,c), perloc(c,d), 求证  perloc(a,d).
                    (1) 将  b、c、d  分别代入定理   13  的  a、b、c, 可得: perloc(b,d).
                    (2) 将  a、b、d  分别代入定理   11  的  a、b、c, 可得: perloc(a,d).
                    推论  7 (RWRrR  转换). ∀a,c,d,e∈R, ∀b∈W, perloc(a,b,c,d,e)→perloc(a,b,c,e).
                    证明: 已知   a∈R, b∈W, c∈R, d∈R, e∈R, perloc(a,b,c,d,e), 求证  perloc(a,b,c,e). 只需证明  perloc(c,e). 可由将  c、d、
                 e 分别代入定理    10  的  a、b、c 证明.
                    推论  8 (WrrW  转换). ∀a,d∈W, ∀b,c∈R, perloc(a,b,c,d)→perloc(a,d).
                    证明: 已知   a∈W, b∈R, c∈R, d∈W, perloc(a,b,c,d), 求证  perloc(a,d).
                    (1) 将  b、c、d  分别代入定理   12  的  a、b、c, 可得: perloc(b,d).
                    (2) 将  a、b、d  分别代入定理   13  的  a、b、c, 可得: perloc(a,d).
                    推论  9 (RwrrW  转换). ∀a,c,d∈R, ∀b,e∈W, perloc(a,b,c,d,e)→perloc(a,e).
                    证明: 已知   a∈R, b∈W, c∈R, d∈R, e∈W, perloc(a,b,c,d,e), 求证  perloc(a,e).
                    (1) 将  b、c、d、e 分别代入推论     8  的  a、b、c、d, 可得: perloc(b,e).
   17   18   19   20   21   22   23   24   25   26   27