You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Coq中证明`A =~ Star re -> B =~ Star re -> A ++ B =~ Star re`?

证明正则表达式Star的连接封闭性

我需要证明以下命题:

A =~ Star re ->
  B =~ Star re ->
  A ++ B =~ Star re.

该命题是正则表达式泵引理证明的前置引理。

以下是定义正则表达式匹配关系的归纳类型:

Inductive exp_match {T} : list T -> reg_exp T -> Prop :=
  | MEmpty : [] =~ EmptyStr
  | MChar x : [x] =~ (Char x)
  | MApp s1 re1 s2 re2
             (H1 : s1 =~ re1)
             (H2 : s2 =~ re2)
           : (s1 ++ s2) =~ (App re1 re2)
  | MUnionL s1 re1 re2
                (H1 : s1 =~ re1)
              : s1 =~ (Union re1 re2)
  | MUnionR re1 s2 re2
                (H2 : s2 =~ re2)
              : s2 =~ (Union re1 re2)
  | MStar0 re : [] =~ (Star re)
  | MStarApp s1 s2 re
                 (H1 : s1 =~ re)
                 (H2 : s2 =~ (Star re))
               : (s1 ++ s2) =~ (Star re)

  where "s =~ re" := (exp_match s re).

我尝试对假设A =~ Star re使用inversion策略,但递归过程中发现必须调用当前待证的这个命题才能完成证明,不知道该怎么处理,求指导。

内容的提问来源于stack exchange,提问作者Mohammad Teimori Pabandi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 03:47:03