标签: isabelle

Isabelle 服务器在另一台机器上?

我想在较弱的笔记本电脑上使用 Isabelle,并将繁重的定理搜索/证明委托给网络上的服务器。我猜想这之前已经完成了,但我找不到此任务的教程或报告。

Isabelle系统手册描述了如何自行运行 Isabelle 后端。但是,我从手册中不明白如何将现有前端之一(例如Isabelle/jEdit)连接到这样的进程。理想情况下,该设置应该适用于多个用户(并且理论文件位于用户系统上)。

到目前为止,我能实现的最好结果是在服务器上运行所有 Isabelle/jEdit,并通过 SSH/X11 转发从 Linux 笔记本电脑访问它。这很酷,但不完全是我的想法。还有其他方法吗?

isabelle

5
推荐指数
0
解决办法
224
查看次数

Isabelle/Isar 中的编码风格约定

TL;DR:Isar 语言有编码约定吗?是否有必要尊重jEdit的折叠策略?


我的团队正在研究数学的形式化,因此我们的主要目的之一是获得可读的证明。考虑到这一点,我们尝试以中间事实(和标签,如果有的话)脱颖而出的方式编写证明:

from fact1 have
  1: "Foo"
  using Thm1 Thm2 by auto
then have
  2: "Bar = FooBar"
  by simp
also from 1 have
  " ... = BarFoo"
  by blast 
Run Code Online (Sandbox Code Playgroud)

除了有时这会产生大量“短线”(顺便说一句,我不知道这是否真的是一个问题)之外,它在某种程度上与 jEdit 折叠策略不兼容;折叠后,之前的代码块将如下所示:

from fact1 have
then have
also from 1 have
Run Code Online (Sandbox Code Playgroud)

完全掩盖了论点。下面的格式也许更好:

from fact1
have 1: "Foo"
  using Thm1 Thm2 by auto
then 
have 2: "Bar = FooBar"
  by simp
also from 1 
have " ... = BarFoo"
  by blast 
Run Code Online (Sandbox Code Playgroud)

并且,折叠之后,

from fact1
have 1: "Foo"
then …
Run Code Online (Sandbox Code Playgroud)

jedit isabelle isar

5
推荐指数
0
解决办法
143
查看次数

如何在Isabelle/jEdit中围绕假设显示括号?

当Isabelle在ProofGeneral中显示目标时,假设会围绕它们呈现括号,如下所示:

ProofGeneral渲染假设

然而,在Isabelle/jEdit中,这似乎已经改为meta-implication箭头:

jEdit呈现假设

虽然我理解前者有点不标准,但我觉得它更容易阅读.有没有办法修改Isabelle/jEdit的行为以打印旧ProofGeneral风格的目标?

jedit proof-general isabelle

4
推荐指数
1
解决办法
450
查看次数

如何隐藏已定义的常量

当我导入带有定义常量(用于递归函数或定义)f的理论文件时,如何在当前理论文件中隐藏这样的常量?换句话说,我想确保它f是一个自由变量.我不想更改导入的文件.

isabelle

4
推荐指数
1
解决办法
123
查看次数

在Isabelle中证明A ==> B ==> C ==> B.

我很困惑证明

A ==> B ==> C ==> B 
Run Code Online (Sandbox Code Playgroud)

在伊莎贝尔.显然你可以

apply simp
Run Code Online (Sandbox Code Playgroud)

但我怎么能用规则证明这一点呢?

或者,有没有办法转储使用的规则simp?谢谢.

isabelle

4
推荐指数
1
解决办法
242
查看次数

伊莎贝尔的名字装订不好

输入以下定义时

datatype env = "nat => 'a option"
Run Code Online (Sandbox Code Playgroud)

Isabelle/jedit表示感叹号并说

Legacy feature! Bad name binding: "nat => 'a option" 
Run Code Online (Sandbox Code Playgroud)

有什么问题,我该如何修复这种类型的同义词?

更新:甚至

datatype 'a env = "nat => 'a option"
Run Code Online (Sandbox Code Playgroud)

哪个更好,理论上的定义并没有解决问题.

isabelle

4
推荐指数
1
解决办法
345
查看次数

颜色代码在Isabelle/jEdit中意味着什么?

Isabelle/jEdit中的颜色代码是什么意思?我在Isabelle/jEdit手册中找不到他们的描述.它写的唯一的东西是

证明反馈通过颜色,框,波浪下划线,超链接,弹出窗口,图标,可点击输出工作 - 所有这些都基于Isabelle在后台制作的语义标记.

颜色用作校样脚本背景和滚动条旁边的垂直条.

你能指点一些文件或在这里解释一下吗?

jedit isabelle

4
推荐指数
1
解决办法
626
查看次数

Isabelle中具有类型参数的归纳谓词

我开始学习伊莎贝尔,并想尝试在伊莎贝尔中定义一个幺半群,但不知道如何.

在Coq中,我会做这样的事情:

Inductive monoid (? : Type) (op: ? -> ? -> ?) (i: ?): Prop :=
| axioms: (forall (e: ?), op e i = e) ->
          (forall (e: ?), op i e = e) ->
          monoid ? op i.
Run Code Online (Sandbox Code Playgroud)

我不知道如何在伊莎贝尔做同样的事情.从概念上讲,我想到了这样的事情:

inductive 'a monoid "('a ? 'a ? 'a) ? 'a ? bool" for f i where
  axioms: "?f e i = e; f i e = e? ? monoid f i"
Run Code Online (Sandbox Code Playgroud)

但是,这在Isabelle中无效.

如何在Isabelle中使用类型参数定义归纳谓词?

coq type-parameter isabelle

4
推荐指数
1
解决办法
244
查看次数

伊莎贝尔的理论输入不好

以下给出 bad theory import "Multivariate_Analysis"

imports Multivariate_Analysis
Run Code Online (Sandbox Code Playgroud)

导入Main工作正常,如何导入模块?

isabelle

4
推荐指数
1
解决办法
1352
查看次数

从命令行验证Isabelle证明

如何从命令行验证* .thy文件是有效的Isabelle证明?我猜想在GUI中进行操作就等于看到没有问题/错误/警告等。但是有没有办法从命令行执行此操作?

command-line isabelle

4
推荐指数
1
解决办法
225
查看次数

标签 统计

isabelle ×10

jedit ×3

command-line ×1

coq ×1

isar ×1

proof-general ×1

type-parameter ×1