Jestem nowy w Mathematica (v8) i używam go do programowania logiki zdaniowej.Mathematica If-then vs. Implies
Zastanawiam się, jaka jest różnica między operatorami If
i Implies
. Na przykład:
zarówno If[p,q]
, jak i Implies[p,q]
dla dla (zgodnie z oczekiwaniami).
Ale gdy próbuję uzyskać SatisfiabilityInstances, mam następujące:
SatisfiabilityInstances[If[p, q], {p, q}]
(*
{{True, True}}
*)
chyba poprosić go o więcej instancji:
SatisfiabilityInstances[If[p, q], {p, q}, All]
SatisfiabilityInstances :: boolv: „Jeśli [p , q] nie jest wartością boolowską ma wartość {Fałsz, prawda}.
Jednak:
SatisfiabilityInstances[Implies[p, q], {p, q}, All]
zwraca oczekiwane z:
(* {{True, True}, {False, True}, {False, False}} *)
Co jest przyczyną tej różnicy wyjść?
Czy mnie skierować do dobrego tutoriala? Czytałem dokumentację Mathematica, ale nie zdawałem sobie sprawy, że możliwe jest nadanie "Jeśli" czterech wartości (tylko trzy w przypadku, gdy-else). "Jeśli [a, b, c, d]" zwraca "d" bez przypisanych wartości prawdy - dlaczego tak jest? @Dims – QuietThud
@QuietThud 'Jeśli [warunek, klauzula true, klauzula false, klauzula nieważna lub fałszywa]' –
Dziękuję @belisarius. =) Byłbym wdzięczny za rekomendację, jeśli chodzi o matematykę. programowanie to źródło nauki - Dokumentacja działa lepiej jako odniesienie. – QuietThud