Advertisement
Guest User

Seminarska naloga P - Testi

a guest
Dec 7th, 2013
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
F# 3.47 KB | None | 0 0
  1. (* DISPLAY TESTI *)
  2. val displayTest = AND(NEG(VAR("p")),OR(VAR("q"),VAR("r")));
  3. val displayTest2 = AND(OR(NEG(VAR("p")), VAR "q"),OR(VAR("q"),VAR("r")));
  4. val displayTest3 = AND(VAR("p"), AND(OR(VAR("q"),VAR("r")), OR(VAR ("n"), VAR ("y"))));
  5. val displayTest4 = AND(VAR("p"), AND(VAR("q"),NEG (VAR("r"))));
  6. val displayTest5 = NEG(NEG(VAR("p")));
  7. val displayTest6 = AND(NEG(VAR("p")),OR(VAR("q"),VAR("r")));
  8. val displayTest7 = OR(AND(NEG(VAR("p")),VAR("q")),VAR("r"));
  9. val displayTest8 = AND(VAR("p"), AND(VAR("q"), VAR("r")));
  10. val displayTest9 = NEG(NEG((AND(VAR("a"),NEG(OR(VAR("b"), VAR("c")))))));
  11. val displayTest10 = AND(NEG(VAR("a")), NEG(VAR("b")));
  12.  
  13. "~ p & (q | r)" = display(displayTest);
  14. "(~ p | q) & (q | r)" = display(displayTest2);
  15. "p & (q | r) & (n | y)" = display(displayTest3);
  16. "p & q & ~ r" = display(displayTest4);
  17. "~ (~ p)" = display(displayTest5);
  18. "~ p & (q | r)" = display(displayTest6);
  19. "~ p & q | r" = display(displayTest7);
  20. "p & q & r" = display(displayTest8);
  21. "~ (~ (a & ~ (b | c)))" = display(displayTest9);
  22. "~ a & ~ b" = display(displayTest10);
  23.  
  24. (* NNF TESTI *)
  25. val nnfTest = nnf(NEG(AND(OR(NEG(VAR("p")),VAR("q")),VAR("r"))));
  26. val nnfTest2 = nnf( NEG(OR(NEG(AND(NEG(VAR("a")),VAR("b"))),AND(NEG(VAR("b")),NEG(AND(VAR("a"),VAR("b")))))) );
  27. val nnfTest3 = nnf(NEG(AND(VAR("a"), NEG(VAR("b")))));
  28. val nnfTest4 = nnf(NEG(NEG(NEG(NEG(VAR("b"))))));
  29. val nnfTest5 = nnf((NEG(NEG(NEG(VAR("b"))))));
  30.  
  31. OR (AND (VAR "p",NEG (VAR "q")),NEG (VAR "r")) = nnf(nnfTest);
  32. AND (AND (NEG (VAR "a"),VAR "b"),OR (VAR "b",AND (VAR "a",VAR "b"))) = nnf(nnfTest2);
  33. OR(NEG(VAR("a")), VAR("b")) = nnf(nnfTest3);
  34. VAR("b") = nnf(nnfTest4);
  35. NEG(VAR("b")) = nnf(nnfTest5);
  36.  
  37. (* CNF TEST *)
  38. val cnfTest = OR(NEG(VAR("p")),AND(VAR("q"),VAR("r")));
  39. val cnfTest2 = OR(OR(AND(VAR("p1"), VAR("q1")), AND(VAR("p2"), VAR("q2"))),AND(VAR("p3"), VAR("q3")));
  40.  
  41. [[NEG (VAR "p"),VAR "q"],[NEG (VAR "p"),VAR "r"]] = cnf(cnfTest);
  42. [[VAR "p1",VAR "p2",VAR "p3"],[VAR "p1",VAR "p2",VAR "q3"],
  43. [VAR "p1",VAR "q2",VAR "p3"],[VAR "p1",VAR "q2",VAR "q3"],
  44. [VAR "q1",VAR "p2",VAR "p3"],[VAR "q1",VAR "p2",VAR "q3"],
  45. [VAR "q1",VAR "q2",VAR "p3"],[VAR "q1",VAR "q2",VAR "q3"]] = cnf(cnfTest2);
  46.  
  47. (* ISTAUT TEST *)
  48. isTaut(OR(VAR("p"),NEG(VAR("p"))));
  49. isTaut(OR(AND(VAR("p"),VAR("q")),OR(NEG(VAR("p")),NEG(VAR("q")))));
  50. false = isTaut(OR(VAR("p"),NEG(VAR("q"))));
  51. false = isTaut(AND(VAR("p"), NEG(VAR("p"))));
  52.  
  53. (* ISUNSAT *)
  54. false = isUnsat(OR(VAR("p"),NEG(VAR("p"))));
  55. isUnsat(AND(VAR("p"),NEG(VAR("p"))));
  56. false = isUnsat(AND(VAR("p"), VAR("p")));
  57. isUnsat(AND(OR(VAR("p"),VAR("q")),AND(NEG(VAR("p")),NEG(VAR("q")))));
  58.  
  59. (* CHECK *)
  60. check(OR(VAR("p"),VAR("q"))) [VAR("q")];
  61. false = check(AND(VAR("p"),VAR("q"))) [VAR("p")];
  62. check(AND(VAR("p"),VAR("q"))) [OR(NEG(VAR("r")),VAR("p")),VAR("r"),VAR("q")];
  63. check(VAR("z")) [VAR("q"), VAR("p"), OR(NEG(VAR("r")), VAR("q")), AND(VAR("z"),VAR("r"))];
  64.  
  65. (* SAT *)
  66. val satTest = sat(OR(VAR("p"),VAR("q")));
  67. val satTest2 = sat(AND(VAR("p"),VAR("q")));
  68. [[("p",true)]] = sat(OR(VAR("p"),OR(VAR("p"),VAR("p"))));
  69. [[("p",true)]] = sat(VAR("p"));
  70. [[("q",false)]] = sat(NEG(VAR("q")));
  71. [] = sat (AND(VAR("p"), NEG(VAR("p"))));
  72.  
  73. (* SATEX *)
  74.  
  75. val testSatEx = satEx (AND_EX(VAR_EX("p"),USER_EX(VAR_EX("p"), VAR_EX("q")))) evalUser;
  76.  
  77. fun evalUser (x,y) =
  78.     case (x,y) of
  79.         (false,false) => true
  80.       | (false,true) => false
  81.       | (true,false) => false
  82.       | (true,true) => false
  83.       ;
  84. []= (satEx (USER_EX(VAR_EX("p"), NEG_EX(VAR_EX("p")))) evalUser);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement