小编sav*_*ava的帖子

在coq中逐步简化?

有没有办法一次简化一步?

假设您f1 (f2 x)可以通过单一依次简化这两者simpl,是否可以简化f2 x作为第一步,检查中间结果然后简化f1

以例如定理为例:

Theorem pred_length : forall n : nat, forall l : list nat,
  pred (length (n :: l)) = length l.
Proof.
  intros.
  simpl.
  reflexivity.
Qed.
Run Code Online (Sandbox Code Playgroud)

simpl战术简化Nat.pred (length (n :: l))length l.有没有办法将其分解为两步简化,即:

Nat.pred (length (n :: l)) --> Nat.pred (S (length l)) --> length l
Run Code Online (Sandbox Code Playgroud)

coq

10
推荐指数
2
解决办法
676
查看次数

从远程HDFS检索文件

我的本地计算机没有安装hdfs.我想从远程hdfs集群中检索文件.实现这一目标的最佳方法是什么?我需要get从hdfs到其中一个集群机器fs的文件,然后使用ssh来检索它们吗?我希望能够通过说bash脚本以编程方式执行此操作.

hadoop hdfs

8
推荐指数
1
解决办法
8780
查看次数

如何为具有特殊情况的枚举实现“Hash”?

我有这个枚举:

enum MyEnum {
    Var1,
    Var2(u32),
    Var3(u32, u32),
}
Run Code Online (Sandbox Code Playgroud)

我想实现以下行为:

let mut set = HashSet::new();
set.insert(MyEnum::Var1);
set.insert(MyEnum::Var1);
set.insert(MyEnum::Var2(1));
set.insert(MyEnum::Var2(2));
set.insert(MyEnum::Var3(1, 1));
set.insert(MyEnum::Var3(1, 1));
set.insert(MyEnum::Var3(2, 1));
set.insert(MyEnum::Var3(2, 2));

println!("set = {:?}", set);
// set = {Var1, Var2(1), Var2(2), Var3(1, 1), Var3(2, 1)}
Run Code Online (Sandbox Code Playgroud)

也就是说,我想专门Hash更改变体的行为,使其仅依赖于它的第一个。Var3 u32

重要的是,我不想详尽地介绍match每个枚举变体,因为我想保留所有其他枚举变体的默认行为。因此,据我所知,这些 答案不足以满足我的需求。

我想出的解决方案是这样的:

#[derive(Debug, Eq)]
enum MyEnum {
    Var1,
    Var2(u32),
    Var3(u32, u32),
}

impl PartialEq for MyEnum {
    fn eq(&self, other: &Self) -> bool {
        match (self, other) { …
Run Code Online (Sandbox Code Playgroud)

rust

8
推荐指数
2
解决办法
3623
查看次数

Apache Spark 的非确定性来源

我试图找出 Spark 中非确定性的所有来源。我知道不确定性可能来自用户提供的函数,例如在 map(f) 中,f 涉及随机。相反,我正在寻找可能导致非确定性的操作,无论是在较低级别的转换/操作方面,例如改组。

non-deterministic apache-spark

5
推荐指数
1
解决办法
1448
查看次数

英特尔SGX线程和vs TCS

我试图理解由TCS启用的SGX线程与SDK提供的不受信任的线程之间的区别.

如果我理解正确,TCS允许多个逻辑处理器进入同一个飞地.每个逻辑处理器都有自己的TCS,因此也有自己的入口点(OENTRYTCS中的字段).每个线程都会运行,直到AEX发生或到达线程结束.但是,由TCS启用的这些线程无法相互同步.至少,没有用于同步的SGX指令.

然后,另一方面,SGX SDK提供了一组线程同步基元,主要是互斥和条件变量.这些原语不受信任,因为它们最终由OS提供服务.

我的问题是,这些线程同步基元是否意味着由TCS线程使用?如果是这样,这不会恶化安全吗?操作系统可以按照自己的意愿进行调度.

intel trusted-computing sgx

5
推荐指数
1
解决办法
1135
查看次数

使用什么工具来可视化逻辑和物理查询计划?

我很熟悉explain()(还有WebUI)。我很好奇是否有任何工具可以生成优化前后逻辑/物理计划的树结构图像。explain()这是作为图像返回的信息。

apache-spark apache-spark-sql

5
推荐指数
1
解决办法
2360
查看次数

如何提取给定字符之前的字符串前缀?

有没有一种方法可以提取由字符定义的前缀而不使用split?例如,给定“some-text|more-text”,如何提取“some-text”,即“|”之前的字符串?

rust

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

`#[cfg(test)]` 和 `#[cfg(feature = "test")]` 有什么区别?

我想了解#[cfg(test)]和之间的区别#[cfg(feature = "test")],最好通过示例来演示。

rust

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

是否可以使用 classTag 来匹配元组类型?

如果 A 是 TypeTag,则以下条件也将尝试匹配 Tuple2 的内部类型,即 String 和 Int。

if (typeOf[A] == typeOf[Int])
    ...
else if (typeOf[A] == typeOf[Tuple2[String, Int]])
    ...
Run Code Online (Sandbox Code Playgroud)

如果 A 是 ClassTag,则以下条件将匹配 Tuple2,但不匹配内部类型。

if (classTag[A] == classTag[Int])
    ...
else if (classTag[A] == classTag[Tuple2[String, Int]])
    ...
Run Code Online (Sandbox Code Playgroud)

有没有办法使用 ClassTag 来匹配元组的内部类型?

reflection scala

3
推荐指数
1
解决办法
581
查看次数

何时需要在helib中引导?

我的印象是,有些同态加密方案允许您执行任意数量的加法,然后进行单次乘法,之后噪声变得太大.但是,当我尝试以下它似乎工作:

publicKey.Encrypt(ctx1, to_ZZX(2));
publicKey.Encrypt(ctx2, to_ZZX(3));
publicKey.Encrypt(ctx3, to_ZZX(10));

Ctxt ctRes = ctx1;
ctRes += ctx2;
ctRes *= ctx3;
ctRes *= ctx3;

ZZX ptRes;
secretKey.Decrypt(ptRes, ctRes);
std::cout << "(2 + 3) * 10 * 10= " << ptRes[0] << std::endl;
Run Code Online (Sandbox Code Playgroud)

再执行一次乘法会产生错误的结果.

是否需要在引导之前允许的操作数量和/或类型是可预测的?它取决于什么?底层值或任何初始化参数?

c++ cryptography

2
推荐指数
1
解决办法
200
查看次数

`assert_eq!(a, b)` 和 `assert_eq!(a, b, )` 之间有区别吗?

assert_eq!(a, b, )在几个地方看到过,我不太习惯使用宏来assert_eq!(a, b)通过查看代码来区分它们。有人可以解释一下两者之间是否有区别吗?

rust

2
推荐指数
1
解决办法
79
查看次数

在LHS中的下划线声明中的下划线

这段代码片段做了什么?

var i int
_ = i
Run Code Online (Sandbox Code Playgroud)

我理解使用"_"作为空白标识符,但上面的第二行是什么实现的?

以下是来自etcd GitHub存储库的示例:etcd

go

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

如何使用 cpuid 找出 CPU 核心数?

我对物理核心感兴趣,而不是逻辑核心。

我知道https://crates.io/crates/num_cpus,但我想使用 cpuid 获取核心数量。我最感兴趣的是适用于 Ubuntu 的解决方案,但跨平台解决方案也是受欢迎的。

multicore cpuid rust

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