CN117908992A - 一种基于自动化定理证明器的c代码程序验证方法及系统 - Google Patents

一种基于自动化定理证明器的c代码程序验证方法及系统 Download PDF

Info

Publication number
CN117908992A
CN117908992A CN202410303822.0A CN202410303822A CN117908992A CN 117908992 A CN117908992 A CN 117908992A CN 202410303822 A CN202410303822 A CN 202410303822A CN 117908992 A CN117908992 A CN 117908992A
Authority
CN
China
Prior art keywords
proving
code
test case
isabelle
theorem
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202410303822.0A
Other languages
English (en)
Other versions
CN117908992B (zh
Inventor
赵永望
章喆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Wangan Technology Co ltd
Original Assignee
Zhejiang Wangan Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhejiang Wangan Technology Co ltd filed Critical Zhejiang Wangan Technology Co ltd
Priority to CN202410303822.0A priority Critical patent/CN117908992B/zh
Publication of CN117908992A publication Critical patent/CN117908992A/zh
Application granted granted Critical
Publication of CN117908992B publication Critical patent/CN117908992B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44589Program code verification, e.g. Java bytecode verification, proof-carrying code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供一种基于自动化定理证明器的C代码程序验证方法及系统,包括C代码编译器、语义解析器、自动定理证明器、测试用例生成器、Isabelle交互式定理证明器、证明目标桥接器、向量数据库。本方案利用所述语义解析器,将项目代码转化为等效Isabelle/HOL代码,并基于深度学习算法的自动定理证明器,结合形式规约对描述的命题进行自动证明,同时在这个过程中利用基于属性的测试用例生成器,对证明子目标进行验证和结果反馈,优化自动证明目标搜索算法,提高自动化定理证明在C代码程序验证领域的能力和效率。

Description

一种基于自动化定理证明器的C代码程序验证方法及系统
技术领域
本发明涉及程序验证技术领域,具体为一种基于自动化定理证明器的C代码程序验证方法及系统。
背景技术
随着定理证明技术的发展和相关工具链的成熟,交互式定理证明器在高安全行业(如航空航天、医疗设备、汽车和金融服务)的C代码验证变得越来越普遍。主流的交互式定理证明器,例如Isabelle/HOL,可以通过由用户手动提交证明目标和证明代码的方式,形式化地验证数学定理和计算机程序的正确性。尽管Isabelle/HOL本身提供了少量自动证明的功能,但当前的自动化工具往往仍需要专家级用户来操作,因为它们需要复杂的用户指导和定理证明知识,这大大增加了定理证明在程序验证领域的使用成本。
另一方面,自动化定理证明技术在数学和程序证明领域近年来逐步取得进展。通过实例化的思想对证明目标进行替换并引导证明目标搜索算法这一思想在自动数学证明领域已取得成效,而通过工程方法强化自动化定理证明在程序验证领域的应用还尚未成熟。
发明内容
(一)解决的技术问题
针对现有技术的不足,本发明提供了一种基于自动化定理证明器的C代码程序验证方法及系统,解决了上述背景技术中提出的问题。
(二)技术方案
为实现以上目的,本发明通过以下技术方案予以实现:一种基于自动化定理证明器的C代码程序验证方法及系统,包括C代码编译器、语义解析器、自动定理证明器、测试用例生成器、Isabelle交互式定理证明器、证明目标桥接器、向量数据库,所述C代码编译器将项目C代码编译为目标平台的二进制文件,所述语义解析器读取经过预编译的C代码,解析代码中的结构体、函数全局与局部变量、函数语义,转换成等效的 Isabelle/HOL代码,所述自动定理证明器根据Isabelle代码命题并通过所述向量数据库进行近邻最近邻ANN查询搜索,启发定理证明器对命题的证明代码进行自动生成并验证,所述测试用例生成器根据Isabelle/HOL规约代码文件,解析测试约束条件并基于属性生成测试用例,并运行编译后的二进制文件运行测试用例,所述Isabelle交互式定理证明器用于自动检查自动定理证明器生成证明的正确性并将结果反馈至自动定理证明器,所述证明目标桥接器实时获取自动定理证明器和测试用例生成器的运行结果并使用接口进行异步通信,所述向量数据库记录自动定理证明器的模型参数,在证明代码生成时提供向量化搜索和近邻匹配,同时记录测试用例即结果,用于对模型进行后续优化迭代。
优选的,所述语义解析器读取C代码文件后将C代码中的结构体创建Isabelle 类型,将局部和全局变量表示为Isabelle中的record类型,解析器通过状态单子描述C函数模型,并通过单子浅嵌入,将C代码转换成等效的Isabelle代码,同时解析器可配置内存模型相关的编译环境,在解析时根据内存模型参数分配基本算术类型(如 int)的字节大小和堆内存模型,进而理解C语言的复杂语义,如指针运算、结构体、并发控制等,并相应地生成形式化语言的描述。特性包括高度的准确性、对各种C语言构造的支持,以及能够配置不同内存模型的能力。优选的,所述自动定理证明器通过的命题和证明代码进行特征工程,在矢量化处理后通过向量数据库存储归档,并结合已有的定理证明代码数据,通过深度学习,对自动定理生成模型的参数进行优化和调整,所述自动定理证明器实时读取所属向量数据库中生成的测试用例的结果并将迭代应用到后续的持续集成和验证的过程中。
优选的,所述用例生成器根据 Isabelle/HOL规约描述代码,解析出测试用例所需满足的约束条件,并对用例的边界值进行解析,同时生成器读取原始C代码文件,根据前述解析信息,对测试用例进行自动生成。
优选的,所述证明目标桥接器用于实时接收自动定理证明器中根据近邻算法搜索得到的优先级高的证明子目标,发送给测试用例生成器生成并检查相关用例;同时接收测试用例运行结果,发送给自动定理证明器,对搜索树优先级进行调整,同时所述证明目标桥接器将生成证明目标、证明代码和结果进行记录,用于迭代优化自动定理证明器模型参数。
一种基于自动化定理证明器的C代码程序验证方法,其特征在于,包括以下步骤:
S1、提交项目C代码文件、验证参数配置文件、Isabelle/HOL规约文件。所述验证参数配置文件中包含待验证函数的函数列表、 函数性质描述的Isabelle定理文件路径和编译目标机器的平台信息;
S2、将C代码文件进行预编译,并通过语义解析器,根据配置将项目C代码待验函数代码转化为等效的 Isabelle/HOL代码;
S3、根据上述生成的代码等效 Isabelle/HOL代码和提交的 Isabelle/HOL规约代码,通过特征工程分别矢量化,并在向量数据库中利用相似性搜索,启发定理自动推理和生成,将生成的证明代码提交至Isabelle交互式定理证明器进行检验。与此同时,生成将规约代码提交至测试用例生成器,根据Isabelle 规约文件,生成测试用例,并进行用例的编译运行检查;
S4、对自动定理证明器在生成证明中计算得到的优先子目标队列,通过证明目标桥接器发送给测试用例生成器生成并检查相关用例;同时接收测试用例运行结果,发送给自动定理证明器,对搜索树优先级进行调整优化;
S5、对通过交互式定理证明器的子目标、证明代码和证明结果,记录在向量数据库中,用于迭代优化自动定理证明器模型参数。
(三)有益效果
本发明提供了一种基于自动化定理证明器的C代码程序验证方法及系统。具备以下有益效果:
1、本方案利用基于深度学习算法的自动定理证明器,对代码及形式规约描述的命题进行自动证明,同时在这个过程中利用基于属性的测试用例生成器,对证明子目标进行验证和结果反馈,优化自动证明目标搜索算法,提高自动化定理证明在C代码程序验证领域的能力和效率。
附图说明
图1为本发明的验证方案流程图;
图2为本发明的证明目标桥接器的两个通讯场景描述图。
具体实施方式
本发明实施例提供一种基于自动化定理证明器的C代码程序验证方法及系统,如图1-图2所示,包括C代码编译器、语义解析器、自动定理证明器、测试用例生成器、Isabelle交互式定理证明器、证明目标桥接器、向量数据库,C代码编译器将项目C代码编译为目标平台的二进制文件,语义解析器读取经过预编译的C代码,解析代码中的结构体、函数全局与局部变量、函数语义,转换成等效的 Isabelle/HOL代码,自动定理证明器根据Isabelle代码命题并通过向量数据库进行近邻最近邻ANN查询搜索,启发定理证明器对命题的证明代码进行自动生成并验证,测试用例生成器根据Isabelle/HOL规约代码文件,解析测试约束条件并基于属性生成测试用例,并运行编译后的二进制文件运行测试用例,Isabelle交互式定理证明器用于自动检查自动定理证明器生成证明的正确性并将结果反馈至自动定理证明器,证明目标桥接器实时获取自动定理证明器和测试用例生成器的运行结果并使用接口进行异步通信,向量数据库记录自动定理证明器的模型参数,在证明代码生成时提供向量化搜索和近邻匹配,同时记录测试用例即结果,用于对模型进行后续优化迭代。
语义解析器读取C代码文件后将C代码中的结构体创建Isabelle类型,将局部和全局变量表示为Isabelle中的record类型,解析器通过状态单子描述C函数模型,并通过单子浅嵌入,将C代码转换成等效的Isabelle代码,同时解析器可配置内存模型相关的编译环境,在解析时根据内存模型参数分配基本算术类型(如 int)的字节大小和堆内存模型,进而理解C语言的复杂语义,如指针运算、结构体、并发控制等,并相应地生成形式化语言的描述。特性包括高度的准确性、对各种C语言构造的支持,以及能够配置不同内存模型的能力。
自动定理证明器通过的命题和证明代码进行特征工程,在矢量化处理后通过向量数据库存储归档,并结合已有的定理证明代码数据,通过深度学习,对自动定理生成模型的参数进行优化和调整,自动定理证明器实时读取所属向量数据库中生成的测试用例的结果并将迭代应用到后续的持续集成和验证的过程中。
用例生成器根据Isabelle/HOL规约描述代码,解析出测试用例所需满足的约束条件,并对用例的边界值进行解析,同时生成器读取原始C代码文件,根据前述解析信息,对测试用例进行自动生成。
证明目标桥接器用于实时接收自动定理证明器中根据近邻算法搜索得到的优先级高的证明子目标,发送给测试用例生成器生成并检查相关用例;同时接收测试用例运行结果,发送给自动定理证明器,对搜索树优先级进行调整,同时证明目标桥接器将生成证明目标、证明代码和结果进行记录,用于迭代优化自动定理证明器模型参数,测试用例生成器基于属性的测试用例生成器根据 Isabelle/HOL规约自动生成测试用例。测试用例生成器能够识别关键的测试边界,生成有针对性的测试。
当生成反例时,测试用例生成器会缩减用例,寻找简单的用例,帮助开发和测试人员更好理解反例。
一种基于自动化定理证明器的C代码程序验证方法,其特征在于,包括以下步骤:
S1、提交项目C代码文件、验证参数配置文件、Isabelle/HOL规约文件。验证参数配置文件中包含待验证函数的函数列表、函数性质描述的 Isabelle定理文件路径和编译目标机器的平台信息;
S2、将C代码文件进行预编译,并通过语义解析器,根据配置将项目C代码待验函数代码转化为等效的Isabelle/HOL代码;
S3、根据上述生成的代码等效Isabelle/HOL代码和提交的Isabelle/HOL规约代码,通过特征工程分别矢量化,并在向量数据库中利用相似性搜索,启发定理自动推理和生成,将生成的证明代码提交至Isabelle交互式定理证明器进行检验。与此同时,生成将规约代码提交至测试用例生成器,根据Isabelle规约文件,生成测试用例,并进行用例的编译运行检查;
S4、对自动定理证明器在生成证明中计算得到的优先子目标队列,通过证明目标桥接器发送给测试用例生成器生成并检查相关用例;同时接收测试用例运行结果,发送给自动定理证明器,对搜索树优先级进行调整优化;
S5、对通过交互式定理证明器的子目标、证明代码和证明结果,记录在向量数据库中,用于迭代优化自动定理证明器模型参数。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

Claims (6)

1.一种基于自动化定理证明器的C代码程序验证系统,其特征在于:包括C代码编译器、语义解析器、自动定理证明器、测试用例生成器、Isabelle交互式定理证明器、证明目标桥接器、向量数据库,所述C代码编译器将项目C代码编译为目标平台的二进制文件,所述语义解析器读取经过预编译的C代码,解析代码中的结构体、函数全局与局部变量、函数语义,转换成等效的Isabelle/HOL代码,所述自动定理证明器根据Isabelle代码命题并通过所述向量数据库进行近邻最近邻ANN查询搜索,启发定理证明器对命题的证明代码进行自动生成并验证,所述测试用例生成器根据Isabelle/HOL规约代码文件,解析测试约束条件并基于属性生成测试用例,并运行编译后的二进制文件运行测试用例,所述Isabelle交互式定理证明器用于自动检查自动定理证明器生成证明的正确性并将结果反馈至自动定理证明器,所述证明目标桥接器实时获取自动定理证明器和测试用例生成器的运行结果并使用接口进行异步通信,所述向量数据库记录自动定理证明器的模型参数,在证明代码生成时提供向量化搜索和近邻匹配,同时记录测试用例即结果,用于对模型进行后续优化迭代。
2.根据权利要求1所述的一种基于自动化定理证明器的C代码程序验证系统,其特征在于:所述语义解析器读取C代码文件后将C代码中的结构体创建Isabelle类型,将局部和全局变量表示为Isabelle中的record类型,解析器通过状态单子描述C函数模型,并通过单子浅嵌入,将C代码转换成等效的Isabelle代码,同时解析器可配置内存模型相关的编译环境,在解析时根据内存模型参数分配基本算术类型的字节大小和堆内存模型。
3.根据权利要求1所述的一种基于自动化定理证明器的C代码程序验证系统,其特征在于:所述自动定理证明器通过的命题和证明代码进行特征工程,在矢量化处理后通过向量数据库存储归档,并结合已有的定理证明代码数据,通过深度学习,对自动定理生成模型的参数进行优化和调整,所述自动定理证明器实时读取所属向量数据库中生成的测试用例的结果并将迭代应用到后续的持续集成和验证的过程中。
4.根据权利要求1所述的一种基于自动化定理证明器的C代码程序验证系统,其特征在于:所述用例生成器根据Isabelle/HOL规约描述代码,解析出测试用例所需满足的约束条件,并对用例的边界值进行解析,同时生成器读取原始C代码文件,根据解析信息,对测试用例进行自动生成。
5.根据权利要求1所述的一种基于自动化定理证明器的C代码程序验证系统,其特征在于:所述证明目标桥接器用于实时接收自动定理证明器中根据近邻算法搜索得到的优先级高的证明子目标,发送给测试用例生成器生成并检查相关用例;同时接收测试用例运行结果,发送给自动定理证明器,对搜索树优先级进行调整,同时所述证明目标桥接器将生成证明目标、证明代码和结果进行记录,用于迭代优化自动定理证明器模型参数。
6.根据权利要求1所述的一种基于自动化定理证明器的C代码程序验证系统的验证方法,其特征在于,包括以下步骤:
S1、提交项目C代码文件、验证参数配置文件、Isabelle/HOL规约文件,所述验证参数配置文件中包含待验证函数的函数列表、函数性质描述的Isabelle定理文件路径和编译目标机器的平台信息;
S2、将C代码文件进行预编译,并通过语义解析器,根据配置将项目C代码待验函数代码转化为等效的Isabelle/HOL代码;
S3、根据上述生成的代码等效Isabelle/HOL代码和提交的Isabelle/HOL规约代码,通过特征工程分别矢量化,并在向量数据库中利用相似性搜索,启发定理自动推理和生成,将生成的证明代码提交至Isabelle交互式定理证明器进行检验,与此同时,生成将规约代码提交至测试用例生成器,根据Isabelle规约文件,生成测试用例,并进行用例的编译运行检查;
S4、对自动定理证明器在生成证明中计算得到的优先子目标队列,通过证明目标桥接器发送给测试用例生成器生成并检查相关用例;同时接收测试用例运行结果,发送给自动定理证明器,对搜索树优先级进行调整优化;
S5、对通过交互式定理证明器的子目标、证明代码和证明结果,记录在向量数据库中,用于迭代优化自动定理证明器模型参数。
CN202410303822.0A 2024-03-18 2024-03-18 一种基于自动化定理证明器的c代码程序验证方法及系统 Active CN117908992B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410303822.0A CN117908992B (zh) 2024-03-18 2024-03-18 一种基于自动化定理证明器的c代码程序验证方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410303822.0A CN117908992B (zh) 2024-03-18 2024-03-18 一种基于自动化定理证明器的c代码程序验证方法及系统

Publications (2)

Publication Number Publication Date
CN117908992A true CN117908992A (zh) 2024-04-19
CN117908992B CN117908992B (zh) 2024-05-24

Family

ID=90697512

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410303822.0A Active CN117908992B (zh) 2024-03-18 2024-03-18 一种基于自动化定理证明器的c代码程序验证方法及系统

Country Status (1)

Country Link
CN (1) CN117908992B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020124239A1 (en) * 2001-01-08 2002-09-05 Nelson Charles Gregory Code generation by matching and satisfiability search
CN106708525A (zh) * 2016-12-27 2017-05-24 西安电子科技大学 一种基于Coq的MSVL程序验证方法
CN108985073A (zh) * 2018-07-18 2018-12-11 成都链安科技有限公司 一种高度自动化的智能合约形式化验证系统及方法
US20200073783A1 (en) * 2018-09-05 2020-03-05 Amazon Technologies, Inc. Automated software verification service
CN116756000A (zh) * 2023-05-24 2023-09-15 浙江望安科技有限公司 一种对结合形式化验证持续集成的方法
CN116842496A (zh) * 2023-03-06 2023-10-03 首都师范大学 语言无关智能合约验证方法、装置、电子设备及存储介质
US20240045791A1 (en) * 2022-08-08 2024-02-08 Rolos AG System and method for generating failing tests from failed proofs
CN117687924A (zh) * 2023-12-18 2024-03-12 中国人民解放军军事科学院系统工程研究院 一种源代码形式化验证方法及系统

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020124239A1 (en) * 2001-01-08 2002-09-05 Nelson Charles Gregory Code generation by matching and satisfiability search
CN106708525A (zh) * 2016-12-27 2017-05-24 西安电子科技大学 一种基于Coq的MSVL程序验证方法
CN108985073A (zh) * 2018-07-18 2018-12-11 成都链安科技有限公司 一种高度自动化的智能合约形式化验证系统及方法
US20200073783A1 (en) * 2018-09-05 2020-03-05 Amazon Technologies, Inc. Automated software verification service
US20240045791A1 (en) * 2022-08-08 2024-02-08 Rolos AG System and method for generating failing tests from failed proofs
CN116842496A (zh) * 2023-03-06 2023-10-03 首都师范大学 语言无关智能合约验证方法、装置、电子设备及存储介质
CN116756000A (zh) * 2023-05-24 2023-09-15 浙江望安科技有限公司 一种对结合形式化验证持续集成的方法
CN117687924A (zh) * 2023-12-18 2024-03-12 中国人民解放军军事科学院系统工程研究院 一种源代码形式化验证方法及系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
杨思敏;李兆鹏;庄重;张臻婷;: "出具证明编译器中线性整数命题证明的自动生成", 小型微型计算机系统, no. 06, 15 June 2011 (2011-06-15) *
游珍;薛锦云;: "基于Isabelle定理证明器算法程序的形式化验证", 计算机工程与科学, no. 10, 15 October 2009 (2009-10-15) *
齐蕾蕾;杨庆红;游颖;: "算法的形式化推导与基于Isabelle的自动化验证", 江西师范大学学报(自然科学版), no. 04, 15 July 2018 (2018-07-15) *

Also Published As

Publication number Publication date
CN117908992B (zh) 2024-05-24

Similar Documents

Publication Publication Date Title
US20210357307A1 (en) Automated program repair tool
Xia et al. Collective personalized change classification with multiobjective search
Gyimóthy et al. Empirical validation of object-oriented metrics on open source software for fault prediction
Dutta et al. Flex: fixing flaky tests in machine learning projects by updating assertion bounds
CN109857641A (zh) 对程序源文件进行缺陷检测的方法及装置
KR102147097B1 (ko) 머신러닝을 위한 학습데이터 세트의 구성 방법 및 장치
Emam et al. Inferring extended probabilistic finite-state automaton models from software executions
Shin et al. Uncertainty-aware specification and analysis for hardware-in-the-loop testing of cyber-physical systems
WO2022134001A1 (zh) 基于容器化技术的机器学习模型框架的开发方法与系统
Chowdhury et al. CyFuzz: A differential testing framework for cyber-physical systems development environments
CN113849162A (zh) 一种利用模型驱动和深度神经网络相结合的代码生成方法
CN115543781A (zh) 汽车软件模型自动化验证的方法及交互系统
CN112380112A (zh) 一种Java自动形式化建模检测验证方法及系统
CN118113271A (zh) 基于大模型的代码生成方法、系统、终端及介质
CN117908992B (zh) 一种基于自动化定理证明器的c代码程序验证方法及系统
US7543274B2 (en) System and method for deriving a process-based specification
CN112131587A (zh) 一种智能合约伪随机数安全检验方法、系统、介质和装置
CN114153447B (zh) 一种自动化生成ai训练代码的方法
Wang et al. Fault localization by analyzing failure propagation with samples in cloud computing environment
Tiwari et al. Combining Model-Based Testing and Automated Analysis of Behavioural Models using GraphWalker and UPPAAL
Akinsola et al. Qualitative comparative analysis of software integration testing techniques
Omari et al. Investigating large language models capabilities for automatic code repair in Python
US20240176722A1 (en) Automated public certification of specifications and software
Chen et al. Building very small test suites (with SNAP)
CN111240652A (zh) 数据处理方法及装置、计算机存储介质、电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant