标签: equivalence

如何在Isabelle中显示2个公式在语义上等效

我想(怀念)使用Isabelle来说明两个给定的公式在语法上是等效的。例如A ? B = B ? A

我不想对公式背后的逻辑进行任何详细说明。我不想A ? B在A和B都为真时也是如此。我只想在结构上比较这两个公式,并说由于可交换性,它们是等效的。

基本上,我希望能够编写将2个公式与某些相等函数进行比较的引理,并使用给定的引理,但是要指定它们,公理。

到目前为止,我认为可以并且应该使用来完成此操作axiomatization,但是这里的每个人都告诉我axiomatzation不好。

这使我想到了应该如何完成此任务的问题。2,说命题公式,如何在伊莎贝尔语中就其句法等效性进行比较。举一个具体的例子:

formula ? formula | formula ? formula
Run Code Online (Sandbox Code Playgroud)

以运算符的形式给出,如果可能的话,以数据类型的形式给出

distributive and commutative property作为规则给出。 A ? B = B ? A,如果在定理中陈述,则应该是可证明的。

那就是我想要做的,我希望这个主意很明确,并且有人可以向我解释如何在Isabelle中正确地做到这一点。提前致谢。

equivalence isabelle

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

C++语言中的FORTRAN EQUIVALENCE

我正在将FORTRAN 77代码的一部分转换为C++

DIMENSION ARRAY(513),JRRAY(2,513)
EQUIVALENCE (ARRAY(1),JRRAY(1,1))
Run Code Online (Sandbox Code Playgroud)

这是隐式代码,其中以I,J,K,L,M,N,O,P开头的每个变量名称被隐式地视为整数类型.因此,这里我们有一个名为ARRAY的双精度数组和一个名为JRRAY的整数数组.

等价语句将两个数组的开头指向相同的内存位置.然而,不知何故,当调用ARRAY(I)时,字节被不同地解释为double;当调用JRRAY(I,J)时,字节被解释为整数(至少这就是我认为会发生什么).

在C++中是否有类似的方式可以将相同的内存位置解释为不同的类型?

或者与FORTRAN中的EQUIVALENCE相同的东西,但是在C++中.

c++ fortran equivalence

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

Guava JavaDocs基于不同的"等价关系"集合意味着什么?

番石榴的JavaDocSets.SetView.union()(以及intersection(),difference()symmetricDifference())提及"对等关系":

结果是不确定的,如果set1set2是基于不同的等价关系集(如HashSet,TreeSetMap.keySet()一个的IdentityHashMap都是).

我很难理解那句话的意思.

术语表将"等价关系"定义反身(" a.relation(a)总是true"),对称(a1.relation(a2) == a2.relation(a1))和传递(a1.relation(a2) && a2.relation(a3)暗示a1.relation(a3)) - 并且指Object.equals()'docs'.(不幸的是,番石榴维基没有详细说明......

但是Set在这方面不同类型的不同(即等价关系)如何?他们似乎都继承equals()AbstractSet?它与集合所持有的对象类型(例如Set<Cow>vs. Set<Chicken>)无关,是吗?

java collections set equivalence guava

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

Haskell:了解if-else语句的表示法

我有以下用于操纵机器人的API的代码:

data Direction = Left | Right
forward    :: IO ()
blocked :: IO Bool
turn       :: Direction -> IO ()
Run Code Online (Sandbox Code Playgroud)

我正在尝试理解两个程序,它们将使机器人向前移动,除非它被障碍物挡住,在这种情况下,机器人应向正确的方向旋转。

但是,我不确定以下两个程序之间有什么区别:

-- program 1
robot = do
  detected <- blocked
  if detected 
    then turn Right
    else forward
  robot

-- program 2
robot = do
  detected <- blocked
  if detected
    then turn Right
         robot
    else forward
         robot
Run Code Online (Sandbox Code Playgroud)

该行将detected <- blocked布尔值从IO中取出。如果条件if detected为真,则机器人向右转,否则机器人向前移动。在程序1中,向右或向前移动机器人后,将再次调用功能机器人。在程序2中,在右转或前进后直接调用功能机器人。

我不确定在if-else语句之后(在程序1中)调用机器人与在程序2 中的thenand else案例中调用机器人之间有什么区别?我是否正确地说这两个程序是等效的?任何见解都表示赞赏。

monads haskell functional-programming equivalence do-notation

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

使用substring()看似不相等的字符串

可能重复:
Java String.equals与==

我是java的新手,所以不要指望事情变得容易,但这让我感到震惊.为什么地球上没有if语句正确评估:

import javax.swing.JFrame;
import javax.swing.JTextArea;

public class StringMystery extends JFrame {

    JTextArea txt = new JTextArea();
    String string1 = "abcde";
    String string2 = string1.substring(0,4);

    public StringMystery() {

        setLayout(null);

        txt.setBounds(20, 20, 100, 100);
        add(txt);

        txt.setText(string2);

        //string 2 is definitely equal to "abcd" but this doesn't evaluate:
        if (string2 == "abcd"){     
            txt.setText("string2 = abcd");          
        }

    }


    public static void main(String[] args) {

        StringMystery jtxt = new StringMystery();
        jtxt.setSize(200,200);
        jtxt.setTitle("String Mystery");

        jtxt.setVisible(true);

    }
}
Run Code Online (Sandbox Code Playgroud)

java substring equivalence

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

使用==运算符编译错误

我已将错误隔离到此行:string.getClass()== jojo.getClass()此行不应该创建两个Class对象,然后检查它们(如在两个引用中)是否指向同一个对象?代码不会返回false值,而是不会运行.

public class Tester 
{
    public static void main(String[] args) 
    {
        OreoJar jojo = new OreoJar(0);
        OreoJar momo = new OreoJar(1);
        String string = "Hello";

        if (momo.getClass() == jojo.getClass())
        {
            System.out.println("Momo and jojo are of the same class");
        }

        if (string.getClass() == jojo.getClass())
        {
            System.out.println("String and jojo are of the same class");
        }
    }
}

public class OreoJar 
{
    int oreos;

    public OreoJar(int oreos)
    {
        this.oreos = oreos;
    }

    public void count()
    {
        System.out.println(oreos + " oreos in this …
Run Code Online (Sandbox Code Playgroud)

java equivalence

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

if else if else子句序列的逻辑等价

我严重睡眠不足,我需要帮助重写这个小的Python逻辑

for _ in range(100):
    if a:
        continue
    elif b:
        continue
    elif c and d:
        continue
    else:
        e()
Run Code Online (Sandbox Code Playgroud)

我希望有类似的东西

if (some_exprt of a,b,c,d):
    e()
Run Code Online (Sandbox Code Playgroud)

我得到的是:

if not a and  not b and (not c or not d):
   e()
Run Code Online (Sandbox Code Playgroud)

但是我真的不知道这是否正确,我是对的吗?

python logic equivalence control-flow

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

相当于PHP中的javascript代码

我想知道PHP中下面的javascript代码的等价物:

setTimeout ( "doSomething()", 5000 );
function doSomething ( )
{
    document.write('hello');
    setTimeout ( "doSomething()", 5000 );
}
Run Code Online (Sandbox Code Playgroud)

有没有人有任何想法?

javascript php equivalence

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

确定.net中值类型,引用类型和IList的对象等效性

我有一个名为'Value'的属性的类,它是Object类型.值可以是任何类型,结构,类,数组,IList等.

我的问题在于设置器并确定值是否已更改.对于值类型来说这很简单,但引用类型和列表存在问题.

对于一个类,您会假设Equals方法已正确实现,或者只是假设每次调用setter时值都已更改?如果我确实认为它已经改变了,那么也许我应该将其视为值类型,以便行为是一致的.

对于列表,我可以检查大小,然后检查集合中的每个项目,看看它们是否已更改.

你们怎么处理这个问题?

.net c# vb.net equivalence

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

如何将基于图形的图形转换为ggplot2?

附加的脚本对样本变量x,y和z执行等效性测试.

equivalence.xyplot()虽然基本的格子图形很难用,但它确实很方便.如何使用ggplot2绘制这些数据而不是基本点阵图形?

编辑:

例如,using ggplot(plot1)返回以下错误:

错误:ggplot2不知道如何处理类格子的数据

我不知道从哪里开始将格子类数据转换为ggplot2格式.关于将基于格子的图形转换为ggplot2的任何具体建议都将受到赞赏.

require(equivalence)
require(gridExtra)
require(lattice)

x = c(1,4,3,5,3,7,8,6,7,8,9)
y = c(1,5,4,5,3,6,7,6,7,2,8)
z = c(2,4,3,5,4,7,8,5,6,6,9)
mydata = data.frame(x,y,z)

plot1 = equivalence.xyplot(mydata$x~mydata$y,alpha=0.05, b0.ii=0.25, b1.ii=0.25)
plot2 = equivalence.xyplot(mydata$x~mydata$z,alpha=0.05, b0.ii=0.25, b1.ii=0.25)
plot3 = equivalence.xyplot(mydata$y~mydata$z,alpha=0.05, b0.ii=0.25, b1.ii=0.25)

# Combine plots into one figure
grid.arrange(plot1, plot2, plot3, ncol=2)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

graphics r equivalence ggplot2 lattice

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