我想用这种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但我不明白这个程序.
最后,如果我的引理依赖于几种归纳类型并且我仍想覆盖所有情况,会发生什么?
我在Aquamacs上使用Emacs中的Proof General,每次写一段时间(".")都会执行一切(直到那段时间).这似乎是一种电动行为,但事实并非如此.所有其他键表现正常.
我知道这是我偶然使用一些键绑定时开始的一些模式.如果我重新启动会话,效果将停止,但我想知道键绑定使其停止(或使其启动).
你知道这种模式叫什么吗?我甚至无法在网上找到它.
我创建了一个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有一些隐藏的功能来处理这个问题?
谢谢,
我想知道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对其他常见数据类型)的优点/缺点或用途是什么.
谢谢,
removeMovieClip()在AS3中相当于什么?
显然很多人都有同样的问题:
StackOverflow:
其他:
但对我来说,他们的解决方案似乎都不起作用:
我正在使用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)
解决方案?
谢谢,
我正试图让一个演员'去睡觉'等待另一个演员的信号.我想做的事情如下:
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)
现在,当我的演员睡觉时,其他消息会发生什么?他们会被放弃吗?我不想失去他们.解决这个问题的好方法是什么?
这应该是一个简单的问题。我是 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)
我目前在为未定义数量的变量定义函数时遇到问题。我尝试为两个、三个、四个和五个变量手动定义它(这就是我需要的数量)。但是证明这些属性很痛苦,而且效率很低。
我尝试将我的项目导出为带有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:
Main.Mainlib/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.jar和lib/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) 我正在开发一个程序,我正在压缩大量信息并将其以字节存储在缓冲区中.我不能使用,ByteBuffer因为我不知道finall的大小.
实现这个更好的方法是什么?
我有这个代码
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) 虽然我非常了解HashCode是什么以及哈希表的作用,但我不得不承认我不知道如何使用它(超越常用词典).我想实现自己的哈希表,所以首先我想知道关于哈希的基本知识:
getHashCode()/ 获取哈希码hashCode().这个数字是如何确定的.(只是出于好奇)HashCode某个对象,我该如何访问它?也就是说,我该如何调用该内存桶?HashCode吗?现在,我有一个非常大的(大约10 ^ 9)Int列表.我将访问其中一些(从无到有),我需要尽可能以最快的方式完成.哈希表是最好的方法吗?
PS:我不想讨论它,我只是想知道HashTable是否被认为是最有效的.如果存在其他好的方法,也许你可以指点我.
谢谢,