我在Coq.Sets.Ensemble中对集合使用Ensemble类型。这个库定义了Union和Intersection,但我找不到任何笛卡尔乘积的结构。 具体地说,我正在寻找一个构造函数,它接受一个Ensemble U和一个Ensemble V,并返回一个包含所有有序对(u, v) u ∈ U和v ∈ V的集合的Ensemble (U * V)。 明确命名为Cartesian的东西会很棒。或者,也许有一些方法可以在普通产品类型中嵌入相同的想法? 我试着像这样构造一个引理: Lemma cartesian_inclusion : forall A B C D : Ensemble U,
Coq的Finite_sets库具有归纳类型,指定某些集合是有限的:
Inductive Finite : Ensemble U -> Prop :=
| Empty_is_finite : Finite (Empty_set U)
| Union_is_finite :
forall A:Ensemble U,
Finite A -> forall x:U, ~ In U A x -> Finite (Add U A x).
我试图证明有限集合中的成员是可决定的,如下所示:
Lemma Finite_dec (A:Type) : forall f:Ensembl
我有以下证明:
1 subgoals
U : Type
X : Ensemble U
Y : Ensemble U
f : U -> U
g : U -> U
pF : proof_dom_cod U X Y f
pG : proof_dom_cod U X Y g
fg : f = g
H : proof_dom_cod U X Y g = proof_dom_cod U X Y f
______________________________________(1/1)
createarrow U X Y f pF = createarrow U X Y g pG
所以我想
as
如CPDT所述,我有一个异构的列表:
Section hlist.
Variable A : Type.
Variable B : A -> Type.
Inductive hlist : list A -> Type :=
| HNil : hlist nil
| HCons : forall (x : A) (ls : list A), B x -> hlist ls -> hlist (x :: ls)
.
End hlist.
我试图在Ensemble的列表和元素的列表之间定义一个‘点态成员’谓词:
Definition hlist_in
我想定义一个类型为PowersetTower : Type -> nat -> Type的家族,以便:
PowersetTower A 0 = APowersetTower A (n+1) = Ensemble (PowersetTower A n) (即PowersetTower A n -> Prop) )
这有可能吗?一种想法是
Inductive PowersetTower : Type -> nat -> Type :=
| base : forall (A : Type), PowersetTower A 0
| step : forall (A :
是否有一种方法可以将类型变量作为参数传递给Coq中的一个模块,这样我就不必一直重复类型变量了吗?
我的意思是:我想证明一些关于集合论的基本事实。让我们从德摩根法律的一部分开始。使用标准库中的Ensemble,我有:
Require Import Ensembles.
Variable U : Type.
Lemma demorgan1: forall A B: Ensemble U,
Included U
(Intersection U (Complement U A) (Complement U B))
(Complement U (Unio
我正在挣扎于代码第一实体和数据注释的概念。
我正试图创建一个数据库,其中包括一个人员表和一个集合表,该表由一个人与多个关系连接,因为在每个组合中都可能有许多人。
如何设置这些类来模拟一对多的关系,更重要的是如何向每个表中添加数据。
我尝试了以下几点:
//Ensemble entity class
public class Ensemble
{
[Key]
public int ensembleID { get; set; }
public string ensembleName { get; set; }
public virtual List<Peo
我正在使用:
$ coqtop -v
The Coq Proof Assistant, version 8.4pl5 (February 2015)
compiled on Feb 06 2015 17:44:41 with OCaml 4.02.1
我定义了以下CoInductive类型,stream
$ coqtop
Welcome to Coq 8.4pl5 (February 2015)
Coq < CoInductive stream (A : Type) : Type :=
Coq < | Cons : A -> stream A -> stream A
考虑以下大小列表的类型定义:
Inductive listn: nat -> Type -> Type :=
| nil: forall {A: Set}, listn 0 A
| cons: forall {n: nat} {A: Set}, A -> listn n A -> listn (S n) A.
这本质上是Idris中的类型。
我试图为init定义listn函数,它删除了最后一个元素。
我尝试的实现实际上与Idris中init的定义完全相同。这是在伊德里斯:
init : Vect (S len) elem -> Vect len elem
init
我想在coq中声明一个结构,它表示一个着色良好的有向图。如果我没有条件的话,我声明了一个coq接受的寄存器。但是,我尝试了许多方法,用coq编写条件wellColored,而没有退出。每次我收到一条新的错误消息:
The condition wellColored is the following:
for every pair of vertices $v1$, $v2$ and every edge $e$, if the source of $e$ is $v1$,
the target of $e$ is $v2$ and the color of $v1$ is $a$ then
假设我想在Coq中定义一种类型的单体。这些将是从一些有序变量集到nat的有限映射,其中,比如说,x平方y由发送x到2,y到3的映射表示,而其他所有的东西都得到默认值0。
基本定义似乎并不难:
Require Import
Coq.FSets.FMapFacts
Coq.FSets.FMapList
Coq.Structures.OrderedType.
Module Monomial (K : OrderedType).
Module M := FMapList.Make(K).
Module P := WProperties_fun K M.
Module F :
很抱歉,这不是一个SSCCE,但是我试图充分描述这个问题中的对象。
数据结构
内部嵌套的所有内容都是一个成员变量。
PerformanceData (Object)
|- process (String): The name of the process this PerformanceData has data for (ie: firefox.exe)
|- metrics (Map<String, List<DataValue>>): The keys are metrics whose usage we are monitoring ("cpu"
你如何解释归纳谓词?它们是用来干什么的?他们背后的理论是什么?它们只存在于依赖型系统中,还是在其他系统中?它们在某种程度上与GADT有关吗?在Coq中,为什么默认情况下它们是真的?
这是Coq的一个例子:
Inductive even : nat -> Prop :=
| even0 : even 0
| evens : forall p:nat, even p -> even (S (S P))
你将如何使用这个定义?这是一种数据类型还是一个命题?
我如何在coq中写一个类似于这个开关状态的开关状态(在铁锈中)?特别是,我很好奇如何合并coq中的分支以产生相同的输出,并通过一些默认实现耗尽其余的分支。
type Voltages = u32; // in coq is similar to Definition Voltages := R.
type Timestamp = u32; // in coq is similar to Definition Timestamp := R.
const TD: Timestamp = 2; // dummy value cuz rust, in coq would be Variable TD
我有个公理
Parameter set : Type.
Parameter IN : set->set->Prop.
Axiom AXIOM_OF_SUBSETS :
forall prop x, exists y, forall u,
IN u y <-> IN u x /\ (prop u)
.
现在我想用它来构建一个空的集合,就像
Definition EMPTYSET : set.
Check (AXIOM_OF_SUBSETS (fun _ : set => False) x).
检查结果如下:
AXIOM_OF_SUBSETS (f
在我的ensemble.mli文件中
type 'a t;;
val ajouter : 'a -> 'a t -> 'a t
在ensemble.ml文件中:
type 'a t='a list
let rec ajouter =function a -> function
[] ->[a]
|h::t -> if h=a then h::t else h::(ajouter a t)
汇编后:
ocamlc ensemble.mli ensemble.ml
#load "ens
我正在尝试显示位于不同子目录中的图像。
我正在尝试这段代码:
files = glob.glob('Ensemble/*/*', recursive = True)
for file in files:
print(file) #This print the path of all the images
for j in file.glob("*.jpg"):
image = cv2.imread(str(j))
plt.imshow(image)
plt.show()
输出:
Ensemble\C
我正在尝试建立一个3种模型的集合viz.....Deeplearning,RandomForest和梯度增强。我已经将模型i作为列表传递给集成函数,但是我得到了以下错误:
java.lang.NullPointerException
java.lang.NullPointerException
at hex.StackedEnsembleModel.checkAndInheritModelProperties(StackedEnsembleModel.java:258)
at hex.ensemble.StackedEnsemble$StackedEnsembleDri
Coq正在使用类似于OCaml的模块系统。在OCaml中,我们可以应用像Module_A.Module_B.Func这样的函数,并使用Module_A.Module_B来查找到Func的路径。
然而,我不能在Coq中做类似的事情。例如,如果我只运行Print Coq.Arith.Minus.minus_n_O.,Coq报告Coq.Arith.Minus.minus_n_O is not a defined object.
我必须先加载库,然后才能打印对象。在下面的例子中,它是成功的。
From Coq Require Export Arith.Minus.
Print Coq.Arith.Mi
我有点搞不懂Coq 中关于自然数定义的后继函数的内射性是否是公理?,根据,它是公理(7)。当我查看手册页面时,我会看到以下内容:
定义eq_add_S n m (H: S=S):n=m := f_equal pred H.
提示立即eq_add_S: core。
它看起来像一个公理(?)但令我困惑的是,在这一页的顶部写着:
它描述了关于自然数的各种引理和定理,包括Peano的算术公理(在Coq中,这些定理是可证明的)。
这句话有点模棱两可不是吗?