Isabelle 如何对伊莎贝尔理论进行多行评论?

Isabelle 如何对伊莎贝尔理论进行多行评论?,isabelle,Isabelle,Rosetta仅为Isabelle的单行注释提供文档 我阅读了第2.2.4节,其中建议多行注释使用文本{*..}或--{…*},但它们在我的理论中不起作用: theory Max_Of_Two_Integers imports Main begin function two_integer_max :: "nat ⇒ nat ⇒ nat" where "two_integer_max first second = (if (first >

Rosetta仅为Isabelle的单行注释提供文档

我阅读了第2.2.4节,其中建议多行注释使用文本{*..}或--{…*},但它们在我的理论中不起作用:

theory Max_Of_Two_Integers
  imports Main
begin

function two_integer_max :: "nat ⇒ nat ⇒ nat"
  where
 "two_integer_max first second =
     (if (first > second)  then
        return ()
      else
        return ())
--{* "two_integer_max first second =
     (if (first > second)  then
        return first
      else
        return second)"
*}
text{* "two_integer_max first second =
     (if (first > second)  then
        return first
      else
        return second)"
*}

end
给予


对于最终注释的两个代码块。

Isabelle中有两种注释:

  • 来源评论。它们将从源代码中删除:

    (* "two_integer_max first second =
          (if (first > second) then
            return first
          else
            return second)"
    *)
    
  • 记录评论。当使用Isabelle文档准备机制时,它们将成为文档的一部分。以最简单的形式,它们看起来像:

    ― ‹ "two_integer_max first second =
         (if (first > second) then
            return first
          else
            return second)"
    ›
    
    请注意,前导符号是一个长破折号(可以插入为
    \
    ),尖括号也是特殊的,不仅仅是
    (可以插入为
    \
    \

  • 带有
    text{*..*}
    的变量不是注释,而是文档文本的一部分,用于根据理论生成文档:

    text {* "two_integer_max first second =
         (if (first > second)  then
            return first
          else
            return second)"
    *}
    
    Isabelle 2021对语法提出警告,并建议使用cartouche(上面提到的括号<代码>中…›):


    注意。最初的示例在最后的
    返回()之后遗漏了一个结束双引号。

    Isabelle中有两种注释:

  • 来源评论。它们将从源代码中删除:

    (* "two_integer_max first second =
          (if (first > second) then
            return first
          else
            return second)"
    *)
    
  • 记录评论。当使用Isabelle文档准备机制时,它们将成为文档的一部分。以最简单的形式,它们看起来像:

    ― ‹ "two_integer_max first second =
         (if (first > second) then
            return first
          else
            return second)"
    ›
    
    请注意,前导符号是一个长破折号(可以插入为
    \
    ),尖括号也是特殊的,不仅仅是
    (可以插入为
    \
    \

  • 带有
    text{*..*}
    的变量不是注释,而是文档文本的一部分,用于根据理论生成文档:

    text {* "two_integer_max first second =
         (if (first > second)  then
            return first
          else
            return second)"
    *}
    
    Isabelle 2021对语法提出警告,并建议使用cartouche(上面提到的括号<代码>中…›):

    注意。原始示例在最后的
    return())
    之后遗漏了一个结束双引号