小编Sku*_*uge的帖子

如何在Coq中使用归纳型案例

我想用这种destruct策略来证明案件的陈述.我在线阅读了几个例子,我很困惑.有人能更好地解释一下吗?

这是一个小例子(有其他方法可以解决它,但尝试使用destruct):

 Inductive three := zero 
                  | one 
                  | two.
 Lemma has2b2: forall a:three, a<>zero /\ a<>one -> a=two.
Run Code Online (Sandbox Code Playgroud)

现在一些在线示例建议执行以下操作:

intros. destruct a.
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我得到:

3 subgoals H : zero <> zero /\ zero <> one
______________________________________(1/3) 
zero = two

______________________________________(2/3) 
one = two

______________________________________(3/3) 
two = two
Run Code Online (Sandbox Code Playgroud)

所以,我想证明前两种情况是不可能的.但机器将它们列为子目标,并希望我证明它们......这是不可能的.

摘要:如何准确丢弃不可能的案例?

我看过一些使用的例子,inversion但我不明白这个程序.

最后,如果我的引理依赖于几种归纳类型并且我仍想覆盖所有情况,会发生什么?

logic coq

9
推荐指数
2
解决办法
3642
查看次数

使用Coq Proof General,Emacs可以在每个时段执行.我怎么阻止它?

我在Aquamacs上使用Emacs中的Proof General,每次写一段时间(".")都会执行一切(直到那段时间).这似乎是一种电动行为,但事实并非如此.所有其他键表现正常.

我知道这是我偶然使用一些键绑定时开始的一些模式.如果我重新启动会话,效果将停止,但我想知道键绑定使其停止(或使其启动).

你知道这种模式叫什么吗?我甚至无法在网上找到它.

emacs coq proof-general

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

在Java(或Scala)中迭代HashMaps的HashMap

我创建了一个Foo具有toArray()返回方法的类Array<Int>.

现在,我有一个HashMap映射字符串到HashMaps,它将Objects映射到Foo.那是:

HashMap<String,HashMap<Object,Foo>>
Run Code Online (Sandbox Code Playgroud)

我想创建一个类型的新对象:

HashMap<String,HashMap<Object,Array<Int>>>
Run Code Online (Sandbox Code Playgroud)

这是通过为原始HashMAp中的每个元素Foo调用函数toArray()获得的.

为此,我通常会这样做:

    public static HashMap<String,HashMap<Object,Array<Int>>> changeMap(Map mpOld) {
        Object key2;
        String key1;
        Iterator it2;
        HashMap<String,HashMap<Object,Array<Int>>> mpNew= 
            new HashMap<String,HashMap<Object,Array<Int>>>()
        Iterator it1 = mpOld.keySet().iterator();
        while (it1.hasNext()) {
            key1=it1.next();
            it2= mpOld.get(key1).keySet().iterator();
            mpNew.put(key1,new HashMap<Object,Array<Int>>())
            while (it2.hasNext()) {
                key2=it2.next();
                mpNew.get(key1).put(key2,mpOld.get(key1).get(key2).toArray());
                //TODO clear entry mpOld.get(key1).get(key2)
            }
            //TODO clear entry mpOld.get(key1)
        }
        return mpNew;
    }
Run Code Online (Sandbox Code Playgroud)

类似的代码工作正常,但HashMap的大小太大,无法在内存中保存其中两个.如你所见,我添加了两点,我想清除一些条目.问题是,如果我这样做,我会得到一个并发错误,或者迭代器循环只是终止.

我想知道是否有更好的方法来迭代地图并复制信息.

此外,我正在使用Scala项目,但在这里我必须使用Java类型来解决一些兼容性问题.虽然Java.util.HashMap不是迭代器,但也许Scala有一些隐藏的功能来处理这个问题?

谢谢,

java memory iterator scala hashmap

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

Scala中的BitSet内存使用情况

我想知道Scala中BitSet的内存使用情况.例如,如果我这样做:

  var bitArray:BitSet=new BitSet(10)
  bitArray.add(0)
  bitArray.add(2)
  bitArray.add(4)
  bitArray.add(6)
  bitArray.add(8)
Run Code Online (Sandbox Code Playgroud)

与包含偶数0,2,4,6,8的数组相比如何?

如何用二进制编写数字:

  var bitArray:BitSet=new BitSet(32)
  bitArray.add(5)
  bitArray.add(3)
  bitArray.add(2)
  bitArray.add(1)
  bitArray.add(0)
Run Code Online (Sandbox Code Playgroud)

这与47号相比如何?

我在这里问内存使用情况.但作为一个更开放的问题,如果你知道,BitSet(WR对其他常见数据类型)的优点/缺点或用途是什么.

谢谢,

memory performance scala bitsets bitset

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

如何让一个MovieClip在AS3中删除自己?

removeMovieClip()在AS3中相当于什么?

显然很多人都有同样的问题:
StackOverflow:

  1. 如何在as3中完全删除动画片段
  2. 删除影片剪辑as3
  3. 如何删除childmovieclip并添加到新的父动画片段

其他:

  1. 在AS3中删除了MoovieClip(this)?
  2. 销毁/删除Movieclip ???
  3. 删除影片剪辑

但对我来说,他们的解决方案似乎都不起作用:

我正在使用AS3处理闪存CS4:

我有一个非常简单的电影,只有一个叫做click的按钮.按下按钮,会创建一个新的硬币实例:

this.click.addEventListener(MouseEvent.CLICK,justclick);
function justclick(e:MouseEvent){
    var money=new coin
    this.addChild(money)
    money.x=e.stageX
    money.y=e.stageY
}
Run Code Online (Sandbox Code Playgroud)

它可能不是最好的代码,但它工作正常.现在,硬币MovieClip应该显示一个小动画并自行删除.在旧的AS2中我会添加:

this.removeMovieClip()
Run Code Online (Sandbox Code Playgroud)

在动画的最后一帧.但这在AS3中并不存在.
我试过了,没有成功:

this.parent.removeChild(this) // 'Cannot access a property or method of nullobject reference'...     

this.removeMovieClip() // 'removeMovieClip is not a function'      

removeMovieClip(this) //'call to possibly undefined method removeMovieClip'       

unloadMovie(this)//'call to possibly undefined method removeMovieClip'       
Run Code Online (Sandbox Code Playgroud)

解决方案?

谢谢,

actionscript-3 flash-cs4 movieclip

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

如何使scala actor'等待信号'但不丢失任何消息?

我正试图让一个演员'去睡觉'等待另一个演员的信号.我想做的事情如下:

def act(){
    loop{ //Should I use loop here too??
        if(sleepy){
            react{
                   //SLEEPING
                    case "Wake Up"=> sleepy=false; //just to breack the react
            }
        }else{
            react{
                 //React to other messages
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,当我的演员睡觉时,其他消息会发生什么?他们会被放弃吗?我不想失去他们.解决这个问题的好方法是什么?

concurrency loops scala actor

5
推荐指数
2
解决办法
1223
查看次数

如何在 Coq 中定义 Xor 并证明其性质

这应该是一个简单的问题。我是 Coq 的新手。

我想在 Coq 中定义exclusive or in Coq(据我所知,这不是预定义的)。重要的部分是允许多个命题(例如 Xor ABCD)。

我还需要两个属性:

(Xor A1 A2 ... An)/\~A1 -> Xor A2... An
(Xor A1 A2 ... An)/\A1 -> ~A2/\.../\~An
Run Code Online (Sandbox Code Playgroud)

我目前在为未定义数量的变量定义函数时遇到问题。我尝试为两个、三个、四个和五个变量手动定义它(这就是我需要的数量)。但是证明这些属性很痛苦,而且效率很低。

xor coq

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

从scala文件创建可执行jar的问题

我尝试将我的项目导出为带有IntelliJ 9.0的jar.我的项目在Intellij中编译并运行没有任何问题,但是当我将它写入.jar并打开它时,它将显示错误.

我的主要课程类似于:

package Main

//Imports

object Main{
  def main(args: Array[String]) {
    println("Main: Hello, world!")
    //do stuff
}
Run Code Online (Sandbox Code Playgroud)

现在,在工件窗口中,我创建了一个带有以下内容的.jar:

  1. 主要Clas: Main.Main
  2. 课程路径: lib/javacsv lib/scala-compiler.jar lib/scala-library.jar lib/scalatest-1.0-test.jar lib/scalatest-1.0.jar lib/tools.jar lib/jtds-1.2.2.jar lib/flex-messaging-common.jar lib/flex-messaging-core.jar lib/spring.jar lib/mysql-connector-java-5.1.7-bin.jar lib/ojdbc14.jar lib/commons-logging.jar lib/postgresql-8.4-701.jdbc3.jar lib/log4j-1.2.15.jar lib/poi-3.6-20091214.jar lib/poi-ooxml-3.6-20091214.jar lib/dom4j-1.6.1.jar lib/poi-ooxml-schemas-3.6-20091214.jar lib/geronimo-stax-api_1.0_spec-1.0.jar lib/xmlbeans-2.3.0.jar lib/rt.jar lib/ifxjdbc.jar lib/db2jcc4.jar

我已经仔细检查过所有这些类都在项目中并且是onnly类.请注意它包括lib/scala-compiler.jarlib/scala-library.jar.

建立项目:java -jar myScalaApp.jar我得到:

Exception in thread "main" java.lang.NoClassDefFoundError: scala/ScalaObject
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:675)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188) …
Run Code Online (Sandbox Code Playgroud)

executable scala jar intellij-idea executable-jar

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

Java中的无限ByteBuffer

我正在开发一个程序,我正在压缩大量信息并将其以字节存储在缓冲区中.我不能使用,ByteBuffer因为我不知道finall的大小.

实现这个更好的方法是什么?

java buffer bytebuffer

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

在Haskell中如何将构造函数作为参数传递并匹配它

我有这个代码

data Container = Box Int | Bag Int


inBox :: [Container] -> Int
inBox [] = 0
inBox (x:ls) | (Box i) <- x = i + inBox ls
             | otherwise = inBox ls


inBag :: [Container] -> Int
inBag [] = 0
inBag (x:ls) | (Bag i) <- x = i + inBag ls
             | otherwise = inBag ls
Run Code Online (Sandbox Code Playgroud)

显然InBox,InBag具有相同的结构.我想创建一个包含它们的功能.我不知道如何获取是将构造函数(Box或者Bag)作为参数传递.

理想情况下,一般功能看起来像这样:

inSome :: Constructor -> [Container] -> Int
inSome con …
Run Code Online (Sandbox Code Playgroud)

constructor haskell

3
推荐指数
2
解决办法
1820
查看次数

哈希码.如何使用它

虽然我非常了解HashCode是什么以及哈希表的作用,但我不得不承认我不知道如何使用它(超越常用词典).我想实现自己的哈希表,所以首先我想知道关于哈希的基本知识:

  • 我知道我可以在Java和Scala中使用getHashCode()/ 获取哈希码hashCode().这个数字是如何确定的.(只是出于好奇)
  • 如果我知道HashCode某个对象,我该如何访问它?也就是说,我该如何调用该内存桶?
  • 我可以更改/设置变量HashCode吗?

现在,我有一个非常大的(大约10 ^ 9)Int列表.我将访问其中一些(从无到有),我需要尽可能以最快的方式完成.哈希表是最好的方法吗?

PS:我不想讨论它,我只是想知道HashTable是否被认为是最有效的.如果存在其他好的方法,也许你可以指点我.

谢谢,

hash hashtable hashcode

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