dawrehxyz

000/001

Dec 11th, 2016
5,665
0
Never
2
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Prolog 0.61 KB | None | 0 0
  1. verify(Input) :-
  2.   see(Input), read(T), read(L), read(S), read(F), seen,
  3.   check(T, L, S, [], F, false).
  4.  
  5. check(T, L, S, U, F, Neg) :-
  6.   verifyState(F, S, L, Neg) ;
  7.   (
  8.     (
  9.       ef(NewF) = F ;
  10.       ax(NewF) = F ;
  11.       (neg(NewF) = F, NewNeg = true) ;
  12.  
  13.     ),
  14.     (
  15.       nextState(S, T, NextS),
  16.       (
  17.         (NewNeg = true ; 1=:=1),
  18.         check(T, L, NextS, U, NewF, NewNeg)
  19.       )
  20.     )
  21.   ), !.
  22.  
  23. verifyState(F, S, L, Neg) :-
  24.   member([S, A], L),
  25.   (
  26.     (Neg = false, member(F, A)) ;
  27.     not(member(F, A))
  28.   ).
  29.  
  30. nextState(S, T, NextS) :-
  31.   member([S, A], T),
  32.   member(NextS, A).
Advertisement