我在研究半环,为了证明某些结构是实际的半环,我必须证明它们尊重某些性质,比如结合性。
对于半环(Bool, \/, /\, False, True),我可以证明以下语句吗?
forall a b c : Prop, (a \/ b \/ c) = ((a \/ b) \/ c)
我的问题是表达的两个成员之间的平等。我更喜欢使用<->而不是=,但是我对半环的定义只使用=。
还可以证明吗?还是我必须将我的半环的定义修改为“基于命题逻辑的”半环的特殊情况?
在Lean中,我们可以这样定义一个函数 def f (n : ℕ) : ℕ := n + 1 然而,在证明中,这不再是可能的。以下代码无效: theorem exmpl (x : ℕ) : false :=
begin
def f (n : ℕ) : ℕ := n + 1,
end 我假设使用have是可能的,但是尝试像这样 theorem exmpl (x : ℕ) : false :=
begin
have f (n : ℕ) : n := n + 1,
have f : ℕ → ℕ := --some definition,
end 对我不起作用。在lean中定义证明中的函
我刚看了一下精益的文档,试着做,
还没有全部完成,但以下是前四项练习(没有经典推理):
变量p q r:支柱
-∧和∨的交换性
例:p∧q↔q∧p p对不起
例:p∨q↔q∨p p对不起
-∧和∨的结合性
例:(p∧q)∧r↔p∧(q∧r)
例:(p∨q)∨r↔p∨(q∨r)
以下是我在前四个练习中所做的工作:
variables p q r : Prop
-- commutativity of ∧ and ∨
example : p ∧ q ↔ q ∧ p :=
iff.intro
(assume h : p ∧ q,
show q ∧ p, from and.int
我是一个绝对的初学者,而不是一个程序员,试图学习与的正式验证。我不能用精益进口任何东西。
我将二进制文件解压缩为/tmp,然后执行
/tmp/lean-3.4.1-linux/bin/./lean /tmp/test.lean
它起作用了,除非我要进口任何东西。所以如果我的文件test.lean说
open classical
example (P : Prop) : P ∨ ¬ P := em P
没有错误。但是如果同一个文件说
import data.set
我得到了错误信息
/tmp/test.lean:1:0: error: file 'data/set' not fo
我在学习咖喱-霍华德函授。
给定命题逻辑语句:(¬p -> q) -> ((¬p -> ¬q) -> p)。
我需要在OCaml中定义一个类型(作为命题)和一个函数(作为证明)。
我想出了下一个代码,然后卡住:
type empty = | ;;
let ex58: (('p->empty) -> 'q) -> (('p->empty) -> ('q->empty)) -> 'p = fun f g -> g(f)
错误:
This expression has type (
底线:用VS2012构建,在我的项目中定义了一个宏(WIN32_LEAN_AND_MEAN),我在任何地方都找不到# defined -ed:不在C/C++ ->预处理器中,不是从父或项目依赖项(microsoft.cpp.props)继承的,也不是在命令行中。在vcxproj中没有提到它。
在编译项目中的单个源/头时,我发现它已经在标题的第一行中定义了。把这个放在我的头上:
#pragma once
#ifndef WIN32_LEAN_AND_MEAN
#pragma message ("WIN32_LEAN_AND_MEAN not defined")
#els
我正在努力学习精益,并试图弄清楚如何从理想的I和R-模块M创建一个新的R-模块I*M = {i*m | i in I, m in M}。
所以我的尝试是首先定义一个映射ideal_mult,它将创建一个新的R-模块,然后找出如何为它分配一个很好的符号。
import ring_theory.ideals
import algebra.module
universes u v
variables {R : Type u} {M : Type v}
variables [comm_ring R] [add_comm_group M] [module R M]
variables (I: idea
我得到了以下错误,我不知道如何解决这个问题。
m0nst3r@m0nst3r-G3:~/logical_verification_2019$ leanpkg configure
leanpkg: command not found
m0nst3r@m0nst3r-G3:~/logical_verification_2019$
请帮个忙。我试着从Github库中提取我的主题,并遵循了git中的以下说明。
我试图在Isabelle中手动做一些证明,但我正在努力解决以下证明:lemma "(A ∩ B) ∪ C ⊆ A ∪ C " 我试着把它转化成命题逻辑,然后证明它。 所以这是我尝试过的: lemma "(A ∩ B) ∪ C ⊆ A ∪ C "
apply (subst subset_iff)+
apply(rule allI)
apply (rule impI)
(*here normally we should try to get rid of Union and Inter*)
apply(subst Un_iff)+
a
我想用lean做一些拓扑方面的工作。
作为一个良好的开端,我想证明几个关于的简单引理。
例如
def inter_to_union (H : a ∈ set.inter A B) : a ∈ set.union A B :=
sorry
或
def set_deMorgan : a ∈ set.inter A B → a ∈ set.compl (set.union (set.compl A) (set.compl B)) :=
sorry
或者,更有趣的是
def set_deMorgan2 : set.inter A B = set.compl (set.union (set.co
这就是问题,我承认这是一个家庭作业问题,我不是在寻找答案,而是我只想知道我是否在朝着正确的方向前进,如果我没有正确的方向,请告诉我正确的方向。
问:证明了如果加权图中没有两条边具有相同的权重,则每个最小生成树(MST)中都包含与顶点v关联的权重最小的边。
我的回答是:给定一个顶点( V )和一个加权图(G),我们注意到∃(存在)和与V相关的边(E)是最小权重的边。请注意,我们将有两个不同的顶点,它们将具有相同的最小权重边。这对我们来说不是问题,如果其中一个顶点包含在最小生成树中,另一个顶点将是。如果我们开始构建MST,在一个实例中必须将权重最小的边包括在MST中,因为必须包括具有最小边的顶点中
我得到了这个SP:
ALTER PROCEDURE [dbo].[SP_LEAN_GetAllActivityTest] @SearchParam NVARCHAR(50)
,@StatusID INT
AS
BEGIN
SET NOCOUNT ON;
SELECT DISTINCT LEAN_Activity.ID
,LEAN_Activity.Activity
,SUBSTRING(LEAN_Activity.Description, 1, 80) + '...' AS [Description]
,
我试图使用vscode作为在macos上为python设置精益引擎。
当我试图运行容器时,我得到了docker: Error response from daemon: Ports are not available: listen tcp 0.0.0.0:55555: bind: address already in use.
这是日志输出
A Lean container is halted and will be removed. Continue? [y/n]: y
LeanEngine
Pulling Docker image: quantconnect/lean:latest
la
我研究过一个5值命题逻辑,其中存在五个而不是两个真值,我想使用Z3对这个逻辑进行推理。
为了简单起见,假设真值是集合{0,...,4}的元素(这实际上是一个简化,但应该足以说明我的问题),它具有这些元素的自然顺序。由于这个逻辑不再是二进制逻辑,显然需要对运算符进行不同的定义。营办商的例子如下:
a and b = min{a, b}
a or b = max{a, b}
not a = 4 - a
现在,我想使用Z3来解释这个逻辑中关于(无量词)公式的原因,比如a or (not b)。但是,我不知道(a)最简单,(b)最有效的方法是教Z3这个。
我想一个简单的解决方案是使
知道这段代码只在3D对撞机上工作,所以我如何改变它,以便我可以在2D对撞机上使用它?
下面是c#代码。
使用UnityEngine;
//此脚本允许您使用任何手指拖动此GameObject,只要它有一个对撞机公共类SimpleDrag : MonoBehaviour { //此存储希望光线投射击中的层(确保包含这个GameObject层!)公共LayerMask LayerMask = UnityEngine.Physics.DefaultRaycastLayers;
// This stores the finger that's currently dragging this Ga