verify(Input) :- see(Input), read(T), read(L), read(S), read(F), seen, check(T, L, S, [], F, false). check(T, L, S, U, F, Neg) :- verifyState(F, S, L, Neg) ; ( (neg(_) = F, neg(T, L, S, U, F, Neg)) ; (or(_) = F , or(T, L, S, U, F, Neg)) ; (and(_) = F , and(T, L, S, U, F, Neg)) ; (ax(_) = F , ax(T, L, S, U, F, Neg)) ; (ag(_) = F , ag(T, L, S, U, F, Neg)) ; (af(_) = F , af(T, L, S, U, F, Neg)) ; (ex(_) = F , ex(T, L, S, U, F, Neg)) ; (eg(_) = F , eg(T, L, S, U, F, Neg)) ; (ef(_) = F , ef(T, L, S, U, F, Neg)) ), !. neg(T, L, S, U, F, Neg) :- check(T, L, S, U, F, true). and(T, L, S, U, F, Neg) :- !. or(T, L, S, U, F, Neg) :- !. verifyState(F, S, L, Neg) :- member([S, A], L), ( (Neg = false, member(F, A)) ; not(member(F, A)) ). nextState(S, T, NextS) :- member([S, A], T), member(NextS, A).
Comments
0 B
|👍
/👎
0 B
|👍
/👎