标签: implication

python中有一个蕴涵逻辑运算符吗?

我想在python中写一个带有逻辑含义的语句.就像是:

if x => y:
  do_sth()
Run Code Online (Sandbox Code Playgroud)

当然,我知道我可以使用:

if (x and y) or not x:
  do_sth()
Run Code Online (Sandbox Code Playgroud)

但是在python中有这个逻辑运算符吗?

python math implication logical-operators

14
推荐指数
4
解决办法
9725
查看次数

Prolog意味着否定的谓词

如何在PROLOG中编写以下规则:如果P则不是Q.

我明白你可以很容易地写,如果P然后Q谓词喜欢q(X) :- p(X),但你怎么能否定q/1谓词?我不想用其他语义来定义新的谓词non_q/1.

prolog negate implication

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

P暗示Q,如何用英语阅读

如何读取P意味着经典逻辑中的Q?

例如:

Distributivity:  

Ka(X->Y) -> (KaX -> KaY)
Run Code Online (Sandbox Code Playgroud)

这是使用经典逻辑规则的模态逻辑.
KaX:知道X是真的.

我很好奇如何阅读英文含义?如果那么呢?

编辑:在模态逻辑中,Ka变为Box,它是盒装形状标志,象征着必要性规则,规则N,意味着,盒子P,如果你在世界三角洲有P,那么所有难以接受的世界也应该有P.

这也是钻石P,这意味着存在一个世界,其中有一个世界可以从钻石P所拥有的世界进入.

logic computer-science boolean-logic implication modal-logic

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

在Coq /直觉逻辑中,这种关系是否可以证明?

以下定理在Coq中可证明吗?如果没有,有没有办法证明它不可证明?

Theorem not_for_all_is_exists:
    forall (X : Set) (P : X -> Prop), ~(forall x : X, ~ P x) -> (exists x: X, P x).
Run Code Online (Sandbox Code Playgroud)

我知道这种相关关系是真的:

Theorem forall_is_not_exists : (forall (X : Set) (P : X -> Prop), (forall x, ~(P x)) -> ~(exists x, P x)).
Proof.
  (* This could probably be shortened, but I'm just starting out. *)
  intros X P.
  intros forall_x_not_Px.
  unfold not.
  intros exists_x_Px.
  destruct exists_x_Px as [ witness proof_of_Pwitness].
  pose (not_Pwitness := forall_x_not_Px witness). …
Run Code Online (Sandbox Code Playgroud)

logic implication coq

6
推荐指数
2
解决办法
530
查看次数

Prolog if-then-else结构: - > vs* - > vs. if_/3

正如另一个我似乎无法找到的StackOverflow答案所述,这种模式在实际的Prolog代码中经常出现:

pred(X) :-
    guard(X),
    ...
pred(X) :-
    \+ guard(X),
    ...
Run Code Online (Sandbox Code Playgroud)

许多人试图将其浓缩

pred(X) :-
    (guard(X) ->
    ...
    ;
    ...).
Run Code Online (Sandbox Code Playgroud)

但是众所周知,箭头结构会破坏选择点并且不符合逻辑.

在Ulrich Neumerkel和Stefan Kral的Indexing dif/2中,if_/3提出了一个单调且合乎逻辑的谓词,然而在论文中他们提到了另一个引起我注意的结构:*->.

*->构造的功能与上面的unsugared guard子句完全相同,因此它似乎非常适合我的用途,因为我不希望有一个必需的具体条件,if_/3而且我不太关心额外的选择点.如果我没有弄错(编辑:我),它提供了相同的语义,if_/3但没有要求在条件谓词中添加"具体化".

然而,在它的SWI文档中,它声称"这种构造很少使用",这对我来说似乎很奇怪.*->在我看来,它比->你在尝试进行纯逻辑编程时更好.有没有理由避免这种结构,或者是否有更好的替代整个保护条款/否定保护条款模式?

if-statement prolog control-structure implication logical-purity

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

SystemVerilog:隐含运算符与|->

最近出现了一个问题,通常的隐含运算符(|->)和impliesSystemVerilog中的运算符之间有什么区别。不幸的是我找不到一个明确的答案。但是,我收集了以下信息:

SystemVerilog LRM 1800-2012

  • 第16.12.7节隐含和iff属性

    property_expr1 implies property_expr2
    仅当property_expr1的值为false或property_expr2的值为true时,此形式的属性的值为true。

  • §F.3.4.3.2 派生布尔运算符

    p1 implies p2 ≡ (not p1 or p2)

  • §F.3.4.3.4 派生的条件运算符

    (if(b) P) ≡ (b |-> P)

但是,LRM并未真正指出实际的区别是什么。我假设在错误的先行情况下(成功与空前成功),它们的评估有所不同,但是我无法找到此假设的任何来源或证据。此外,我知道implies操作员与OneSpin等正式验证工具结合使用非常普遍。

有人可以帮我吗?

PS:似乎在下一本书中对此问题有一个答案:SystemVerilog断言手册,第三版。但是155美元对我来说太过分了,只是为了得到这个问题的答案:)

implication system-verilog system-verilog-assertions

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

->在Coq中的传递性

我试图证明->Coq命题的可传递性:

Theorem implies_trans : forall P Q R : Prop,
  (P -> Q) -> (Q -> R) -> (P -> R).
Proof.
Run Code Online (Sandbox Code Playgroud)

我想破坏所有主张,并以反思性来处理所有8种可能性。显然不是那么简单。这是我尝试过的:

Theorem implies_trans : forall P Q R : Prop,
  (P -> Q) -> (Q -> R) -> (P -> R).
Proof.
  intros P Q R H1 H2.
  destruct P. (** Hmmm ... this doesn't work *)
Admitted.
Run Code Online (Sandbox Code Playgroud)

这就是我得到的:

1 subgoal
P, Q, R : Prop
H1 : P -> Q
H2 : Q …
Run Code Online (Sandbox Code Playgroud)

implication coq

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