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

麻莹莹  等:基于 Coq 的分块矩阵运算的形式化                                                        1905


             对于子目标(8)中的 dlist_i′ A Zero One n (S n) 1 部分,我们需要利用 link1 函数进行化简,其化简引理如下:
                   Lemma dlist i′  1:  forall m n i ,
                             _ _link
                                                                                              (9)
                        ′
                                                                     ′
                   dlist  _    i A Zero  One    (  ) (  )m S n  S i =  link 1 (list _    o A Zero   ) (m  dlist  _    i A Zero  One       ).m n i
             利用该性质将子目标(8)进行化简,得到:
                                                                 ′
                                                                                0)) ma =
                         _
                   dl  _ mul dl    A Zero  add    mul  (link 1 (list  _    o A Zero   ) (n  dlist  _    i A Zero  One n n
                                                                                             (10)
                                               ′
                                             _    Zero
                   dl  _ mul dl A   add    mul  (dlist i A   One n n     ma )
                         _
                               Zero
                                                              0) (tailcolumn A
             观察该子目标,需要证明 dl_mul_dl 函数与 link1(list_o A Zero n)函数之间的关系,其原理如图 28 所示.






                           Fig.28   Relationship between dl_mul_dl function and link1 function
                                    图 28   dl_mul_dl 函数与 link1 函数的关系
             为了使该引理更易证明,将其泛化成以下形式:
                            _
                                _
                                                               )
                                                   ,
                                     _ :
                   Lemma dlist mul unit l  forall m n i ma width ma  (S n →
                                                                   ′
                     dl
                                                  _    Zero m
                                                                                  )) ma
                        _ mul dl A   add    mul  (link 1 (list o A    ) (dlist i A   One m n i  (11)
                                                                 _    Zero
                                Zero
                           _
                                              _ ′
                   =  dl  _ mul dl A Zero add mul  (dlist i A Zero One m n i )  (tailcolumn   A ma )
                          _
             完成该引理的证明后,加上一些辅助引理的证明即可完成单位矩阵左乘性质的证明.
             整体的证明框架如图 29 所示.








                     Fig.29    A proof framework for the property of left multiplication of identity matrix
                                       图 29   单位矩阵左乘性质证明框架
             由图 29 可知:该单位矩阵左乘性质的证明依赖于 17 个引理的证明,并且每个引理都需要有策略地对多个
         变量按一定顺序进行归纳证明,部分引理依赖于其他引理.一个矩阵函数性质的证明过程较为复杂以及繁琐,对
         如第 2.4 节中分析的乘法右分配律性质,可以在证明过程中产生较为清晰的证明思路;但对于一些证明思路并
         不明显的性质,如本节例子的单位矩阵左乘性质,证明过程中产生的一些引理主要是根据其归纳证明过程中子
   326   327   328   329   330   331   332   333   334   335   336