什么样的类型定义在本地环境中是合法的?

2023-11-24

在伊莎贝尔的NEWS文件,我发现

命令“typedef”现在可以在本地理论上下文中工作——无需 引入对参数或假设的依赖,这不是 可以在 Isabelle/Pure/HOL 中实现。请注意,逻辑环境可能 包含本地 typedef 的多种解释(具有不同的 非空性证明),即使在全球理论背景下也是如此。

(可以追溯到 Isabelle2009-2)。这是有关的最新消息吗typedef和当地的理论背景?此外,“不引入对参数或假设的依赖”的限制实际上意味着什么?

如果这意味着我不能在定义集中使用语言环境参数typedef,那么我就不会考虑typedef完全本地化(因为唯一允许的实例可以轻松地移动到本地上下文之外,或者我错过了什么?)。

是否(或者应该,或者是否可能)可以沿着线做一些事情(其中集合用于typedef取决于语言环境参数V):

datatype ('a, 'b) "term" = Var 'b | Fun 'a "('a, 'b) term list"

locale term_algebra =
  fixes F :: "'a set"
    and V :: "'b set"
begin

definition "domain α = {x : V. α x ~= Var x}"

typedef ('a, 'b) subst =
  "{α :: 'b => ('a, 'b) term. finite (domain α)}"

end

我目前获得的:

Locally fixed type arguments "'a", "'b" in type declaration "subst"

对此还有一些注意事项:

  • 本地理论基础设施仅仅组织现有的模块概念(locale, class等)使得定义机制(definition, theorem, inductive, function等)可以在各种环境下统一工作。这不会改变逻辑基础,因此规范元素不能依赖于术语参数(fixes)或处所(assumes)不会从根本上变得更好。它们只是被改装成更大的框架,这已经是一个超逻辑的好处。

  • 典型的局部理论目标是locale及其衍生品如class。这些在根据上面概述的原理的逻辑中工作:通过某些上下文进行 lambda 提升fixes and assumes。其他更雄心勃勃的目标是可以想象的,但需要一些勇敢的英雄人物来实现。例如,可以将AWE理论解释机制作为另一个本地理论目标,然后获得类型/常量/公理的参数化——通常的代价是通过显式证明项以在 LCF 证明者中实现可接受的推论(或者以放弃 LCF 为代价) ness 并通过一些预言机来完成)。

  • Plain typedef如上所示(及其衍生物,如本地化codatatype and datatype最近的 HOL-BNF)的依赖类型参数可能会略有改善,但这意味着一些实现工作并不能证明目前的微薄结果是合理的。它只允许使用隐式参数编写多态类型构造,如下所示:

    context fixes type 'a
    begin
    datatype list = Nil | Cons 'a list
    end
    

    导出后你会得到'a list照常。

    进一步的复杂化:fixes type 'a不存在。 Isabelle/Pure 通过 Hindley-Milner 隐式处理类型参数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

什么样的类型定义在本地环境中是合法的? 的相关文章

  • 什么样的类型定义在本地环境中是合法的?

    在伊莎贝尔的NEWS文件 我发现 命令 typedef 现在可以在本地理论上下文中工作 无需 引入对参数或假设的依赖 这不是 可以在 Isabelle Pure HOL 中实现 请注意 逻辑环境可能 包含本地 typedef 的多种解释 具
  • Isabelle/HOL 验证器核心

    Question Isabelle HOL验证器的核心算法是什么 我正在寻找方案元循环评估器级别的东西 澄清 我只对Verifier 而不是自动定理证明的策略 Context 我想从头开始实现一个简单的证明验证器 纯粹出于教育原因 而不是用
  • 使用单射函数的反值

    我试图证明这个引理 lemma assumes x inv f y and inj f and x undefined shows y range f using assms try 但 Nitpick 告诉我这个说法并不正确 Trying
  • 简化自然色的漂亮印刷

    假设我编写了一个用于反转列表的函数 我想用value命令 只是为了向自己保证我可能做对了 但输出看起来很糟糕 value reverse 1 8 3 gt 1 1 1 1 1 1 1 1 1 1 1 1 a list 如果我告诉伊莎贝尔将这
  • 在 Isabelle 等中定义不同类型的不相交并集

    我问了一系列问题 直到我可以在 Isabelle 中定义以下简单模型 但我仍然坚持得到我想要的东西 我尝试用一 个例子来非常简短地描述这个问题 Example 假设我有两节课Person and Car Person owns汽车还有dri
  • Isabelle/HOL 中的对象级含义

    我发现 Isabelle HOL 中的许多定理更喜欢元级蕴涵 gt 代替 gt 对象逻辑级别 即高阶逻辑含义 伊莎贝尔维基说粗略地说 应该使用元级别含义将规则语句中的假设与结论分开 除此之外 关于对象和元级别含义的使用我应该了解什么 我发现
  • 尝试像集合和子集一样对待类型类和子类型

    这个问题与我之前的SO问题有关类型类 我问这个问题是为了设置一个有关语言环境的未来问题 我不认为类型类适合我想要做的事情 但是类型类的工作方式让我了解了我想要从语言环境中得到什么 下面 当我使用大括号表示法时 0 0 它不代表普通的 HOL
  • 使用不同大小的函数进行自动终止证明

    我写了一个自定义尺寸的函数size2对于我的数据类型 使用此函数 我可以手动证明函数的终止 termination apply relation measure a b c size2 c apply auto done 有没有办法制作fu
  • 如何在 Isabelle 的 ML 级别轻松编写简单的策略?

    在 Isabelle 理论文件中 我可以编写简单的一行策略 如下所示 apply clarsimp simp split def split prod splits 然而 我发现 当我开始编写 ML 代码来自动化证明 生成 MLtactic
  • 伊莎贝尔语中的“arith”和“presburger”有什么区别?

    到目前为止 我在伊莎贝尔遇到的每一个目标都可以通过使用来解决arith也可以通过以下方式解决presburger反之亦然 例如 lemma odd n nat Suc 2 n div 2 n by presburger or arith 这
  • 伊莎贝尔和斯卡拉[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在考虑创建 Eclipse PDE 并且需要与 Isabelle 进行通信 我确实发现一些出版物声
  • Isabelle 返回数字而不是 Suc(Suc( ... 0 ))

    当我使用value为了找出返回自然数的函数的某个值 我总是以 0 的迭代后继函数的形式获得答案 即Suc Suc 0 有时可能很难阅读 有没有办法直接输出Isabelle返回的数字 这是我不久前想修复的问题 但显然我忘记了 卡西吉奈特的猜测
  • 伊莎贝尔的文件准备

    我想获得与相关的 LaTeX 代码这个理论 https github com rjraya Isabelle blob master curves Hales thy 以前的答案仅提供文档的链接 让我描述一下我做了什么 我去了目录Hales
  • 伊莎贝尔中的“real_of_int”和“real”?

    什么是real of int real and int在伊莎贝尔 它们听起来有点像类型 但通常类型的写法类似于x real这些写法就像real x 我无法证明以下陈述 S n x x S n x C x C n x S x 我注意到伊莎贝尔
  • 法新社的“find_theorems”

    我怎样才能使用find theorems搜索整个正式证据档案馆 AFP 的机制 我已将存档下载到我的计算机上 并且可以从中导入理论 例如 如果我写imports Kleene Algebra Kleene Algebra Models那么该
  • 伊莎贝尔语中“case _ of _”是什么意思

    在读的时候这个关于商类型的答案 https stackoverflow com a 67237629 14656198 我偶然发现了这个结构 case of 经检查手册 https isabelle in tum de doc isar r
  • 修复区域设置扩展中的类型变量

    鉴于此代码 locale A fixes foo a locale B A fixes bar a a locale C A fixes baz a begin sublocale B foo foo baz end I get Type
  • 添加后收集所有非未定义值

    我对伊莎贝尔有以下补充 function proj add real real bit real real bit real real bit where proj add x1 y1 l x2 y2 j add x1 y1 x2 y2 l
  • Subst refl 关闭重复的子目标。这是怎么回事?

    In this https stackoverflow com questions 15608399 how do i remove duplicate subgoals in isabelle线程马蒂厄证明了subst refl关闭重复的
  • 类型类实例化中的现有常量(例如构造函数)

    考虑这个伊莎贝尔代码 theory Scratch imports Main begin datatype Expr Const nat Plus Expr Expr 实例化是相当合理的plus输入 class 以获得良好的语法Plus构造

随机推荐

  • 以编程方式启用高精度或省电定位模式,无需用户访问“设置”

    为什么我问这个 也是在应用程序中尝试它的原因 它发生了当我们使用谷歌地图棒棒糖 即使位置被禁用 用户从地图应用程序输入后 它也会以高精度模式打开 而无需访问 设置 启用蓝牙可以实现类似的功能 该操作是在我的应用程序中启动的 用户需要做出选择
  • HTML5 本地存储与会话存储

    除了非持久性和仅限于当前窗口之外 会话存储相对于本地存储还有什么好处 性能 数据访问等 吗 本地存储 and 会话存储两者都延伸Storage 除了预期的 非持久性 之外 它们之间没有任何区别sessionStorage 也就是说 数据存储
  • 接收远程服务器返回错误:(403) 禁止消息

    我在下面的代码块上收到 远程服务器返回错误 403 Forbidden 错误消息 具体来说 这一行失败了 var 响应 HttpWebResponse request GetResponse 该代码在我的开发机器上完美运行 但在生产中却无法
  • 将 DBRef 解析为 Json

    我在 MongoDB 的规范化数据模型结构中收到以下错误 org bson codecs configuration CodecConfigurationException Can t find a codec for class com
  • 从任何函数中提取函数参数和默认值

    有没有办法从任何给定函数中提取参数及其各自的默认值outside功能 例如 给定 myfunc lt function a b 1 print c a b 我正在寻找一些会返回的函数 list a NULL b 1 或其一些变体 您正在寻找
  • 指定分页页面 - Laravel 4

    我试图 记住 用户浏览记录时所在的页面 以便当他返回列表时 他会返回到他离开的页面 如何更改分页器的 当前页面 值 我尝试过 Input set page x 但没有这样的功能 GET 页面 x 也不起作用 这是代码 list Public
  • 将独立图例合并到 ggpairs 中(采取 2)

    tl dr无法获得独立的图例 描述整个绘图中的常见颜色 ggpairs令我满意 抱歉长度 我正在尝试使用绘制 下三角 对图GGally ggpairs 用于绘制各种绘图矩阵的扩展包ggplot2 这本质上是同一个问题如何向 ggpairs
  • Django Rest Framework:使用令牌身份验证时重定向到 Amazon S3 失败

    我在 DRF 中使用令牌身份验证 并且对于某个 API 调用 想要重定向到 S3 使用类似的 URLhttps my bucket s3 amazonaws com my file path my file jpg Signature MY
  • AttributeError:“池”对象没有属性“__exit__”

    我正在使用一些多处理Python脚本multiprocessing Pool 这些脚本如下所示 from multiprocessing import Pool def f x return x x if name main with Po
  • 我什么时候应该在菜单项中使用省略号

    我什么时候应该把 放在菜单项的末尾 我似乎记得读过一些规则 但我一辈子都找不到它们 对于上下文 我正在向右键单击菜单添加属性选项 并且想知道添加它们是否合适 据我了解 这表明该选项在实际执行任何操作之前会询问您其他问题 这 3 个点实际上称
  • Sql Server 2005 - 如果不存在则插入

    互联网上有很多关于这个常见 问题 的信息 解决方案如 IF NOT EXISTS BEGIN INSERT INTO END 在我看来 它们不是线程安全的 您可能会同意 但是你能确认将exists放入单选的where子句中就可以解决sql引
  • 如何从 App Store 上提供的 ipa 文件获取 dSYM 文件

    有没有办法从 App Store 中提供的 ipa 文件获取 dSYM 文件 我丢失了特别包含 dSYM 的档案 我可以这样做吗 我需要将 dSYM 上传到 Crittercism 提前致谢 假设您仍然可以访问 iTunes Connect
  • C# SIP 堆栈/库 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我正在寻找一个好的 SIP 库 要么用 C 编写 要么提供 C 包装器 不一定需要免费 有人用过什么好东西吗 为了澄清起见 我说的是 VoIP 协议
  • 创建具有动态属性名称的对象[重复]

    这个问题在这里已经有答案了 我正在尝试这样做 var KEYS KEYS PHONE TYPE phone type KEYS AGENT TYPE agent type var myAppConfig iconMap KEYS PHONE
  • SQLAlchemy with_for_update 行锁定不起作用?

    有一个学生 他的type属性为 4 最小值为type属性可以是1 在 postgres 中 在会话 1 中 我独占锁定并更新学生表中的一行 BEGIN LOCK TABLE students IN ROW EXCLUSIVE MODE SE
  • 直接在SQLite中计算两点之间的距离

    在我的 web MySQL 应用程序中 我有类似的方法来获取两点之间的距离 6371 acos cos radians 19 83996 cos radians lat cos radians 43 94910 radians lng si
  • 如何从 preg_split 结果中删除空数组? [复制]

    这个问题在这里已经有答案了 举个例子 我有大量的正则表达式 就像我写的一样简单 php gt var dump preg split reg s reg a zA Z array 3 0 gt string 0 1 gt string 13
  • 裤子包括 OS X 特定的 Python 轮子

    TLDR Pants 获取 OS X 特定的轮子 因为我正在 Mac 上开发 我怎样才能避免这种情况 或者指定我将部署到 Ubuntu 完整故事 尝试用 Pants 打包 Python 应用程序 到目前为止进展顺利 但遇到了一个困扰我一段时
  • 以编程方式设置或查看“高级 Wifi”设置

    我需要一种以编程方式打开 高级 wifi 设置的方法 以让用户更改某些设置 或者最好以编程方式更改这些高级无线设置 到目前为止 我只能通过 startActivity new Intent Settings ACTION WIFI SETT
  • 什么样的类型定义在本地环境中是合法的?

    在伊莎贝尔的NEWS文件 我发现 命令 typedef 现在可以在本地理论上下文中工作 无需 引入对参数或假设的依赖 这不是 可以在 Isabelle Pure HOL 中实现 请注意 逻辑环境可能 包含本地 typedef 的多种解释 具