首页
学习
活动
专区
圈层
工具
发布

用了一段时间Agda的感想

在证明方面,Agda和Coq有本质的不同。虽然都以有类型λ演算为理论基础(Agda是UTT,Coq是归纳构造演算),但是表现在证明上,两者就有很大的不同了。...在Agda中,命题的证明就是给出一个类型的一个项。可以说,在Agda中证明一个命题能充分体现Curry-Horwad同构的实质。...Agda的证明并没有用Function.Equality的_⇔_,因为我个人觉得那个东西非常复杂。 证明过程中,Agda实际上是在辅助使用者获得某类型的项。...而针对这个目标,Agda提供了比如Case和Refine之类的工具来根据类型生成目标代码,这一点是十分方便的。但是缺点也显而易见,就是证明过程并不按照一般的证明顺序进行的,毕竟只是项的构造。...综上,如果是数学的证明,我大概会选择Coq。如果是用来实现论文里的Type System,我会更青睐于使用Agda。

1.9K10

用于数学的 10 个优秀编程语言

Prolog的根源是一阶逻辑——一种形式逻辑,且与许多其他编程语言不同的是,Prolog是声明式的。 程序逻辑用关系来表达,用事实和规则来表现。通过对这些关系运行查询来启动计算。...6.Haskell Haskell是一个标准化的,通用的纯函数式编程语言,具有非严格的语义和强大的静态类型。Haskell具有类型推断和惰性计算的类型系统。...IDRIS Idris是一种具有相关类型的通用纯函数编程语言。类型系统类似于Agda使用的类型系统。 语言支持可与Coq媲美的交互式定理证明,包括策略,即使在定理证明之前,重点仍然放在通用编程上。...Python支持多种编程范例,包括面向对象,命令式和函数式编程或过程式样式。它具有动态类型系统和自动内存管理,并有一个大而全面的标准库。...与原来的FP / FL语言一样,J通过它的隐性编程功能支持函数级编程(与函数式编程不同)。 我的看法 J,和APL和K一样,是一种离奇古怪令人费解的语言。起初简洁难以阅读,但非常强大。

4.1K100
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    湖南大学团队提出APN模型,通过属性引导的原型网络实现分子性质预测

    APN首先引入了一种分子属性提取器,该提取器不仅可以综合提取不同类型的指纹属性,还可以通过自监督学习方法自动提取深度属性。...对于指纹属性,首先使用RDKit库生成14种类型的指纹。由于大多数分子指纹具有高维特征,采用主成分分析(PCA)技术将维数降至100维。...对于属性导向的全局注意力模块,首先得到分子的均值池化表示形式,此外,还使用全连通层和sigmoid函数来获得全局注意力。 APN是基于原型网络的,这意味着需要为每一个类别计算一个原型。...在元测试过程中,使用目标任务的预测标签来确定分子的活性。 作者将APN与一些具有代表性的方法进行了比较,如表1所示。...不同于一般的方法仅仅依赖于分子的结构信息,APN利用不同类型的分子指纹和深度指纹来获取分子属性,这些属性封装了专家定义的高级的分子知识和自监督学习方法,来指导深度神经网络学习分子表示。

    63310

    陶哲轩:感谢Lean,我又重写了20年前经典教材!

    该书侧重于基础问题,例如自然数、整数、有理数和实数的构造,并提供足够的集合论和逻辑知识,使学生能够进行高度严谨的证明。...虽然在本书撰写时,Coq 或 Agda 等一些证明助手已经相当成熟,但形式化验证当时还不在陶哲轩的考虑范围内。...随着现在具备了一些这方面的经验,他意识到这本书的内容实际上与这些证明助手非常兼容;特别地,之前用来构建标准数系等的「朴素类型理论」,与 Lean 的依赖类型理论(其中 Lean 对商类型的支持非常出色)...读者不用担心原书籍和形式化后的内容对应不上,所有章节都遵循原始书籍,根据章节序号就能找到。 需要特别说明的是,本次形式化未对运行效率进行优化,因为某些情况下转译可能不符合 Lean 的惯用规范。...这种先独立构建再逐步迁移的模式将贯穿全书 —— 随着章节推进,读者将越来越依赖 Mathlib 的定义与函数,而非直接引用前期章节的对应内容。

    22610

    麻麻,证明题太难了!!!

    2013年,张益唐证明了有无穷多对素数相差7000万(或者更小),这震惊了数学世界。得益于后来一个公开的“博学者”项目,我们现在知道有无穷多对质数相差不超过246。...用这种方法建模直线为我们进行实验提供了一种方便的方法。这个模型让我们通过选择一对随机数m和b来创建一条随机线,因此,我们可以选择一对随机线并测试它们:它们相交吗?它们指向同一个方向吗?...但是证据就和模型一样,有可能是危险的。让我们看看我们给自己制造了什么危险。 有一个问题是,某些类型的线似乎比其他类型的线更容易被选择。这幅图显示了50条直线,其中b = 0,且0≤m≤1。 ?...然后就涉及到我们模型中最严重问题的核心。任何习惯三维思维的人都可能马上注意到我们的猜想是错误的。直线不仅有相交或者平行两种情况。想象一下,在一栋建筑的不同楼层,两条走廊是沿着不同的方向。...这种情况就是不相交也不平行的“斜交线”。 ? 关于斜线的一个重要事实是它们很多情况下是位于不同的平面上的。

    83310

    理论|来聊聊最近很火的WGAN

    本期推送介绍WGAN两篇论文的每个引理、定理、推论都讲了些什么,以及WGAN与general GAN有什么不同,不涉及具体证明。...GAN存在的问题:初探 Goodfellow证明了,当G固定时,D的loss具有上界 ? 其中 ?...定理2.2承接Lemma 3,它证明了在Pr和Pg的支撑集有交集,且横截相交的情况下,最优的discriminator是存在的。...为一个可微函数,由它导出分布Pg,再设Pr为真实数据的分布,D是一个可微的discriminator。若定理2.1和定理2.2的条件能被满足,且 ? 则 ?...说实话,定理的证明我也还没有全部弄懂...下期我们来聊聊轻松的话题,主题是GAN的应用,先前没有推送的text to image会在下期中一并推送。当然,GAN的应用不止于此,详情敬请期待下期推送。

    2.6K20

    用Nodejs爬取Matrix67的博客

    贴着另一枚硬币旋转一周则自身转了两周:不同的解释方法 IMO2012趣题:带有说谎的猜数游戏 几个精彩的数论问题 趣题:构造多边形使得过边界上某一点的任意直线均能等分面积 经典证明:几乎所有有理数都是无理数的无理数次方...公平分割问题:均衡分割与免嫉妒分割 趣题:平均要取到第几个随机数才会让序列第一次下降 趣题:最“悬”的悬挂方式 神一般的定理,以及神一般的证明 不用编程也能制作分形图形 你正在函数图像的最大值上 可能是数学公式最多的图了...(二):直观的图论证明 (召集)你喜欢什么类型的数字?...单位根 又一个牛B函数:阴阳图极坐标函数 (愚人节笑话)Stetson大学教授发现Fermat大定理反例 另类思维训练:你能想出这样的词吗?.../MO必备:巨牛无比的公式、定理速查表 神奇的分形艺术(三):Sierpinski三角形 花了我五秒钟才反应过来,笑死我了~~~ 十个利用矩阵乘法解决的经典题目 趣题:非常具有启发性的概率问题 Puzzleup

    1.7K20

    拼多多和酷家乐面试总结(已拿offer)

    面试的部门是工具组,是酷家乐最核心的部门,四面面试官跟我说我面的组是工具团队中的最核心组,会涉及到一些图像相关的技术,比如 Tree.js、WebGL 等,所以这个组其实也挺好的,感觉能学到不少技术。...闭包由于在规范里没有定义,所以很多人下的定义不一样,理解的角度也不同,但是自己要有一套正确的理解方式,如果按照我的理解 JavaScript 里面所有的函数都是闭包,因为有全局环境,所有的函数都可以访问全局变量...注意的点:class 是有重载功能的,怎么在子类的构造函数里面调用 super 二面(现场面) react 的基本原理 UI = f(state) ,虚拟 DOM、diff 策略、setState react...很多种方法,我当时说的是最后一个节点如果相同,那么就代表相交。 算法题,怎么找到第一个相交的节点。 同时遍历两个链表到尾部,同时记录两个链表的长度。若两个链表最后的一个节点相同,则两个链表相交。...没用过 node 熟悉吗? 写得少 二面 class 组件与函数式组件的区别 生命周期、设计理念,感觉这道题比较开发,可以看看 dan 的这篇:函数式组件与类组件有何不同?

    1.9K61

    中值定理-当头一棒(咚!)

    中值定理通常要求函数在某个区间上连续且可导,这使得我们可以利用函数的这些性质来推导其他结论。 基本上把中值定理都总结完了,然后细节还是要看书,我自己补了拉格朗日的辅助函数的证明。...直观上面是都的意思,OK就这么多。 还记得函数极限是怎么定义的吗?...可以沿着整个曲线都是不刺破的 这个就是定义 连续是说明不了一直连续的,反过来可以 就算放大这个范围都没有用 无论给定多么小的ϵ,只要自变量取值的距离小于δ,那么函数值之间的差小于ϵ 一致连续保证了函数的整体平滑性...至少之外的事情,很多 旁边就是拉格朗日 这段看不清是吗?没事 终于开始写了!!!! 我们证明是用着已经有的结论证明的,我们现在就是有罗尔中值定理。...就是最后一句话 书上面写了这个,你看很多人都说什么中值定理证明好用,但是我以前觉得,这个东西平平无奇,而且重要的是我感觉限制很多,就是在一段函数里面只有一点满足,为什么会有用。

    69410

    在DMN中集合操作

    虽然从技术上讲,这个列表是一个有序集合,可能包含重复项,但如果我们确保列表中不包含重复值且顺序不重要,那么它实际上可以被视为一个集合。...因此,它是setA和setB交集的有序版本。 为了测试两个集合是否相交,我们可以将count()函数应用于上面的列表,或者我们可以使用some..in..satisfiesoperator。...它略有不同,因为listA和listB的数据类型不同,并且附件可能包含具有相同类型组件的多个项目。...现在输入数据“附件”是“附件”的集合,决策交叉点查找其类型组件位于集合“所需附件类型”中的附件集。在这里,我们可以省略distinctvalues()函数,因为所有附件都有不同的id值。...当时我看不出它有什么用处,但事实证明它非常有用。(当然,要求它的供应商仍然没有采用DMN。) 在下面的决策表中,?在条件单元格中,代表列标题“所需附件类型”。

    12300

    数学系的概率论和我们的不太一样。。。

    因为我只是颗骰子, 不是量子, 比如你现在并不是拿它玩麻将或者游戏,而是每次出门前让它给你算一卦。什么,骰子也能算卦吗?可以的,比如你的幸运数字是 。...我们不直接从集合的测度是多少来定义,而是从测度应该具有的性质来入手。实际上,我们只有三个要求, 测度应该是正的; 空集的测度应为 0; 两个不相交的集合的测度之和,应该等于它们并集的测度。...例如,我们有 这是因为 和 不相交,并且它们的并集是 。 〄 集合的差运算。 另一个重要特性是测度的连续性,即 1、 如果 ,则有 2、 如果 ,则有 该属性与实值函数的连续性定义类似。...总而言之,如果你给我一个概率测度,我将给你一个描述概率测度的分布函数。然而,这并不是分布函数的最佳妙处。从数学的角度来看,如果你给出的函数满足上面 4 条,那么我也可以从中构造出概率测度。...在这里, 基本上意味着,如果分布函数是可微的,则其导数就是密度函数。然而对于某些概率分布,只有密度函数能以封闭形式表示。(具有封闭形式意味着可以用有限个标准运算和基本函数表示它。)

    1.4K30

    经典算法

    1 支持向量机 知识点:SVM模型推导、核函数、SMO算法 问题:在空间上线性可分的两类点,分别向SVM分类的超平面做投影,这些点在超平面上的投影仍然是线性可分的吗?...这是SVM拥有极高运行效率的关键之一。 (2)凸优化理论 此问题也可以通过凸优化理论中的超平面分离定理(SHT)更加轻巧地解决。 该定理描述的是,不相交的两个凸集,存在一个超平面,将两个凸集分离。...首先,如果一个样本只对应一个标签,可以假设每个样本属于不同标签的概率服从于几何分布,使用多项式逻辑回归来进行分类。一般来说,多现实逻辑回归具有参数冗余的特点。...从样本类型的角度,ID3只能处理离散型变量,而C4.5和CART都可以处理连续性变量。...预剪枝具有思想直接、算法简单、效率高等特点,适合解决大规模问题。但如何准确地估计何时停止树的生长,针对不同问题会有很大差别,需要一定经验判断。

    97130

    您的函数是连续的吗?在Wolfram语言中处理新函数的属性

    这可能会导致您定义出复杂得令人困惑的表达式,如以下: 然后您可能会问,"f是连续的吗?"或者 "f可以写成一个增函数g与另一个函数的组合吗?"...这里有一个函数图: 如下图所示,在x坐标轴上方画出的水平线与第一个图形相交于一对点,而任何水平线与第二个图形相交于恰好一个点: 因此,s不是单射(一对一),但c是单射。...(一对一以上),而不那么简单的立方体函数则具有这一特性: 另一方面,平方函数在任何地方都是非负值,而立方函数则同时具有正值和负值。...在这种函数的不同部分拼接在一起的边界处可能会出现不连续的情况。FunctionDiscontinuities给出了这些不连续的位置。...作为证明的第一步,请注意: 根据中间值定理,要证明h达到所有实值,只需证明它是连续的,这可以用FunctionContinuous来完成: 另外,h是单调的: 因此f的全局最小值是唯一的。

    1.5K20

    译 | 你到底有多精通 C# ?

    事实证明,是的。 与算术运算符不同,按位逻辑运算符的优先级低于相等运算符。幸运的是,由于类型检查,没有括号的代码将无法编译。...,上面的代码应该捕获静态构造函数引发的异常,更改配置以避免在以后的调用中引发异常,最后成功地创建类的实例,对吗?...当调用它们时,它们在中定义的类的构造函数可能尚未调用,因此它们可能会出现意外行为。 多态性 多态性是不同类以不同的方式实现相同接口的能力。...话虽如此,但当我们在调用该方法之前向下转换实例时,你能想出一种方法来调用不同的方法吗?...但是,如果我们希望在单个类中具有两个不同的方法实现,它的效果也一样好。不过,很难想出做这件事的好理由。 迭代器 迭代器是用于单步执行构造集合的结构,通常使用 foreach 语句。

    1.2K40

    概率论的数学基础

    我的定义是,它是一门将事物抽象出来,直到只剩下核心的科学,为任何事物的推理提供了最终的框架。 你想过概率到底是多少吗?你肯定用它来推理数据,做统计分析,甚至通过统计学习为你建立推理算法。...但从数学上讲,目前还不清楚什么是事件和度量。在我们能恰当地讨论概率之前,我们需要先打下坚实的基础。所以,让我们从事件开始。 事件 “我用这个骰子掷奇数的概率是多少?”...举一个简单的例子,测量三维物体的体积似乎很简单,但即使在这里,我们也有严重的问题。你能想出一个你无法测量面积的物体吗? 也许你不能马上,但绝对不是这样。...从数学的角度来看,如果你给一个函数满足上述1–4的性质,我也可以用它构造一个概率测度。此外,如果两个分布函数处处相等,则其相应的概率测度也相同。...(具有闭合形式意味着它可以用有限个标准运算和初等函数来表示)最著名的分布之一是这样的:高斯分布。它的定义是 ? 其中μ和σ是参数。 密度函数 ? 分布函数 ?

    81230

    如何设计一个C++的类?

    反正我每次定义一个类的时候都会明确把构造函数和析构函数写出来,即便它是空实现,即便我不写编译器也会视情况默认生成一个,自动生成的称为默认构造函数。...一种方法是为类设置一个无参的默认构造函数(像下面代码这样),另一种方法是自己提供一个对应的构造函数。我倾向于后一种方式,前一种方式只能解决编译上的问题,但还有可能存在潜在的bug。...一个类具有移动构造函数才具备移动语义,如果追求资源管理的效率,move资源效率一般会比拷贝一个资源高一些。...(int等):传值 参数在函数内不会更改,参数类型如果为class类型:传const引用 类的声明和实现要分开写到不同文件中吗?...因为vector接收的单参数类型时int类型,表示vector的容量,如果希望int型隐式自动转换成vector,那这个int是表示容量还是表示vector中的内容呢,有点牵强,所以vector中的单参数构造函数是

    1.9K20

    比物理学不存在更恐怖的,是圆周率|Happy Pi Day

    《三体》中,杨冬在自杀前,恐惧地自问: “大自然,真是自然的吗?” 你,觉得呢? 再思考一遍 这个问题 你 恐惧了吗 ... 1 举派求婚日 这是我见过,最独特的求婚。...后来,在大学微积分课上,我才知道,这个是约翰·沃利斯在1655年发现的沃利斯乘积,是欧洲第二个发现的无穷项圆周率公式: 沃利斯乘积简易证明过程 难怪当年我们都答不上来了!...不过,每一个无理数都可以用连续分数的形式来表示,π也不例外,比如: 在任意一点截断,都能得到一个π的近似值,如果我在第二行截断,那就能得到22/7;如果我在第四行截断,就能得到355/113。...,于是通过计算多边形的周长,就能得到具有一定精度的π值上下限。...牙签与直线MN相交的角度θ变化范围是0~π,s的变化范围是0~a/2,简单画出示意图如下: 示意图中的曲线是s= lsinθ/2,则阴影部分代表着牙签与直线相交的情况,这个矩形面积代表着投掷总次数,所以相交概率可以这样计算

    49120

    50年来的谜题被解开了

    机器之心编译 编辑:Rome Rome 自己动手做过莫比乌斯带吗? 莫比乌斯带是一种奇特的数学结构。要构造一个这样美丽的单面曲面其实非常简单,即使是小孩子也可以轻松完成。...布朗大学 Richard Evan Schwartz 谈到,对于莫比乌斯带来说,这个问题没有解决,因为它们是「嵌入的」而不是「浸入的」,这意味着它们不会相互渗透或自我相交。...他证明了用纸制成的「嵌入的」莫比乌斯带只能以大于 的纵横比构造出来。例如,如果带子长度为 1 厘米,它的宽必须要大于 厘米。 解决这个难题需要数学创造力。...论文中的 T 型图 在本次证明中,T 型图引理是关键。这个引理基于一个基本的想法:莫比乌斯带上有些直线被称为直纹曲面。...今年夏天,Schwartz 决定尝试不同的策略。他开始尝试把莫比乌斯带压扁。如果能够证明可以将它们压成平面,这个复杂的问题将简化为一个更容易处理的平面问题。

    40920

    空间复杂度与链表刷题

    "一切的一切都是你自己在感应." 前言: 本文主要探究空间复杂度与链表题目讲解 更多文章点击主页: 酷酷学!!! 如果此文对您有帮助, 您的点赞与关注是我最大的动力 !...那么, 判断链表相交 ,我们可以遍历链表, 如果两个链表最后一个节点相等的话, 那么就一定相交, 但是如何返回第一个相交节点呢, 通过分别比较吗, 大可不必, 在我们遍历链表的时候, 我们可以顺便计算出链表的相对差值...请证明 slow一次走一步, fast走3步 4步 5步 一定能追上吗?...请证明 首先证明问题1, 一次走一步, 假设slow进环时, fast和slow的距离是N, 那么fast追击slow过程中变化距离如下, 每次追击一次, 距离就缩小1, 距离为0就追上了....空间复杂度的计算通常是以算法需要的额外空间大小来衡量的。链表是一种常见的数据结构,用于存储和操作一系列具有关联关系的数据元素。

    23410

    万物皆数 数学的本质在于它的自由 --- 康托尔

    不难证明,这样的平面几何,只比非阿基米德几何少满足了公理III6III6(请自行证明两点确定一线),然而它却不满足笛沙格定理(以下右图),所以不“可空间化”。...对于线段a,ba,b,把它们放到不同的轴上(本段论述与教材不同),分别引出两轴的平行线并交于点AA(以上右图)。从AA作单位直线的平行线,截两轴得到的线段定义为a+ba+b,加法天然是满足交换律的。...建立坐标系的意义在于,以数系建立方程,并将之对应成"点线面”的定义,反过来用解析函数验证公理的成立,使得论证代数化、流程化。   ...现在要证明的是,当V∗1V1∗成立时,乘法交换律(帕斯卡定理)也成立。首先容易证明对整数nn,乘法交换律是成立的(转化为加法)。...帕斯卡几何的数域兼容有理数域,由此能表示所有仅包含点线面关系的几何问题,其中任何问题的证明,都可以由一系列帕斯卡定理完成!这个结论称为交点定理。

    95200
    领券