让我们说以下是不正确的
input_shape = (28,28,1)
inputs = Input(shape=input_shape)
image_size = 28
image_resize = image_size // 4
x = Dense(image_resize * image_resize * 128)(inputs)
x = Reshape((image_resize, image_resize, 128))(x)
存在一些满足Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/venv/lib/python3.7/site-packages/keras/engine/base_layer.py", line 474, in __call__
output_shape = self.compute_output_shape(input_shape)
File "/Users/venv/lib/python3.7/site-packages/keras/layers/core.py", line 398, in compute_output_shape
input_shape[1:], self.target_shape)
File "/Users/venv/lib/python3.7/site-packages/keras/layers/core.py", line 386, in _fix_unknown_dimension
raise ValueError(msg)
ValueError: total size of new array must be unchanged
且未显示THEOREM Spec => []P \* Not correct!
的行为。如何在TLA +中表达这一点?
如果我使用简单的否定,我最终会得到
Spec
但是,这个定理也有可能是不正确的!特别是,即使有些满足[]P
的行为没有表现出THEOREM Spec /\ <>~P \* Also not correct!
,也可能存在某些行为,并且这种行为将反驳这个新定理。
是否存在某种表达“该定理对某些行为不正确”的想法,即对行为进行量化?
答案 0 :(得分:0)
我们处于经典逻辑中,因此[]P \/ ~[]P
是有效的。您重申了第二部分,以便我们有[]P \/ <>~P
。因此,对于任何P
,两者之一都是正确的。
答案 1 :(得分:0)
通常的做法是编写THEOREM ~(Spec => []P)
,使[]P
成为临时属性,并告诉人们规范是否正确,如果该属性失败。
答案 2 :(得分:0)
提供了将属性参数化为带有参数的运算符的方法,是的,可以表示存在满足Spec(x)
但违反[]P(x)
的行为。使用现存的时间量化(\EE
),可表示如下
Spec(x) == ... (* a suitable definition here *)
P(x) == ... (* a suitable definition here *)
THEOREM \EE x: Spec(x) /\ ~ []P(x)
我们假设在运算符Spec(x)
和P(x)
的定义中没有变量。
我们还可以表示,既存在满足Spec(x) /\ []P(x)
的行为,也存在满足Spec(x) /\ ~ []P(x)
的行为,如下所示
THEOREM /\ \EE x: Spec(x) /\ []P(x)
/\ \EE x: Spec(x) /\ ~ []P(x)