home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / lifeos2.zip / LIFE-1.02 / TESTS / LF / DISJ2.LF < prev    next >
Text File  |  1996-06-04  |  3KB  |  75 lines

  1.  
  2. f(A) -> A.
  3. f2(A) -> A+A.
  4. h(s(A)) -> A.
  5. g(s) -> 1.
  6.  
  7. w(A) :- nl, write(A," ").
  8. ws(A) :- write(A," ").
  9.  
  10. main :-
  11.     write("*** A"),
  12.     w(0), (A=f(s(1+2)), ws(A), fail; succeed),
  13.     w(1), (A=f(s(t(1+2))), ws(A), fail; succeed),
  14.     w(2), (A=f(s({1;2})), ws(A), fail; succeed),
  15.     w(3), (A=f(s(t({1;2}))), ws(A), fail; succeed),
  16.  
  17.     nl, w("*** B"),
  18.     w(4), (A=s(s(1+2)), ws(A), fail; succeed),
  19.     w(5), (A=[1+2,3+4], ws(A), fail; succeed),
  20.     w(6), (A=[[1+2],[3+4]], ws(A), fail; succeed),
  21.     w(7), (A=s([1+2,3+4]), ws(A), fail; succeed),
  22.     w(8), (A=s(1+2,3+4), ws(A), fail; succeed),
  23.     w(9), (A=[s(1+2),t(3+4)], ws(A), fail; succeed),
  24.  
  25.     nl, w("*** B1"),
  26.     w(0), (A=[1+2,3+4]& @(1+2,3+4), ws(A), fail; succeed),
  27.         w(1), (A=f([1+2,3+4]), ws(A), fail; succeed),
  28.     w(2), (A=f(B,B:[1+2,3+4]), write(A),ws(B), fail; succeed),
  29.  
  30.     nl, w("*** C"),
  31.     w(3), (A=s(s({1;2})), ws(A), fail; succeed),
  32.     w(4), (A=[{1;2},{3;4}], ws(A), fail; succeed),
  33.     w(5), (A=s([{1;2},{3;4}]), ws(A), fail; succeed),
  34.     w(6), (A=s({1;2},{3;4}), ws(A), fail; succeed),
  35.     w(7), (A=[s({1;2}),t({3;4})], ws(A), fail; succeed),
  36.  
  37.     nl, w("*** D"),
  38.     w(8), (A=f2(f2(1+2)), ws(A), fail; succeed),
  39.     w(9), (A=f2(f2({1;2})), ws(A), fail; succeed),
  40.  
  41.     nl, w("*** E"),
  42.     w(0), (A=h(s({1;2})), ws(A), fail; succeed),
  43.     w(1), (A=s(f({1;2})), ws(A), fail; succeed),
  44.     w(2), (A=s(f(f({1;2}))), ws(A), fail; succeed),
  45.     w(3), (A=f(f({1;2})), ws(A), fail; succeed),
  46.  
  47.     nl, w("*** F"),
  48.     w(4), (A=s(g(t,{})), ws(A), fail; succeed),
  49.     w(5), (A=s(g(s,{})), ws(A), fail; succeed),
  50.     w(6), (A=s(g(t,t({}))), ws(A), fail; succeed),
  51.     w(7), (A=s(g(s,t({}))), ws(A), fail; succeed),
  52.     w(8), (A=g(t,{}), ws(A), fail; succeed),
  53.     w(9), (A=g(s,{}), ws(A), fail; succeed),
  54.     w(0), (A=g(t,t({})), ws(A), fail; succeed),
  55.     w(1), (A=g(s,t({})), ws(A), fail; succeed),
  56.  
  57.     nl, w("*** G"),
  58.         w(2), (A={{1;2};{3;4}}, ws(A), fail; succeed),
  59.     w(3), ((A={1;2};A={3;4}), ws(A), fail; succeed),
  60.         w(4), (A={{1;2};3}, ws(A), fail; succeed),
  61.         w(5), (A={{1;2;3};4;5;6}, ws(A), fail; succeed),
  62.         w(6), (A={1;2;{3;4;{5;6}}}, ws(A), fail; succeed),
  63.         w(7), (A={{{1;2};{3;4};{5;6}};{{7;8};{9;10};11;12;13};14;15},
  64.                ws(A),fail;succeed),
  65.     succeed.
  66.  
  67.     % (A=s(g(t,inf)), write(A), fail; succeed),
  68.     % (A=s(g(t,t(inf))), write(A), fail; succeed),
  69.     % (A=g(t,inf), write(A), nl, fail; succeed),
  70.     % (A=g(t,t(inf)), write(A), nl, fail; succeed),
  71.     % (A=s(g(s,inf)), write(A), nl, fail; succeed),
  72.     % (A=s(g(s,t(inf))), write(A), nl, fail; succeed),
  73.     % (A=g(s,inf), write(A), nl, fail; succeed),
  74.  
  75.