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

Isabelle中如何为函数定义下标形式的可读性缩写?

Isabelle带下标函数缩写的正确实现

要把myf n a替换成fₙ a这种可读性更强的下标形式,你需要修正两个问题:Isabelle不支持用HTML的<sub>标签定义语法,且定义体的函数名必须和声明的myf保持一致。正确写法如下:

  • 定义带语法缩写的函数
    使用Isabelle内置的下标命令\<^sub>来指定缩写格式,定义体仍用原函数名myf:

    definition myf :: "nat => nat => nat" ("f\<^sub>_ _" [90]) where
      "myf n a = n * a"
    
  • 使用缩写
    之后就能用f\<^sub>n a替代myf n a,Isabelle会自动将\<^sub>n渲染为下标样式的fₙ a。

  • 备选方案:直接用Unicode下标
    如果你习惯输入Unicode下标字符(如ₙ),也可以这样定义:

    definition myf :: "nat => nat => nat" ("fₙ _" [90]) where
      "myf n a = n * a"
    

    不过这种方式的占位符灵活性稍差,更推荐用\<^sub>_的形式适配任意下标参数。

你之前报错的原因是:定义体里误用了f<sub>n</sub> a作为函数名,但Isabelle要求定义的头部必须是声明的myf——带下标的形式只是语法层面的缩写,并非函数的实际标识符。

内容的提问来源于stack exchange,提问作者Alicia M.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 00:55:35