:- use_module(library(clpfd)).
:- use_module(library(clpq)).

plati(Name, Args) :-
    append([Nazev], Args, L), %% vytvoření dvojičky
    Pred =.. L, %% vybalení predikátu
    Pred. %% check, že platí

vyhodnot(H, H) :- number(H).
vyhodnot((L, OP, R), H) :-
    vyhodnot(L, HL),
    vyhodnot(R, HR),
    T =.. [OP, HL, HR],
    H #= T.

vyhodnotVyraz((L, OP, R), H) :-
    T =..[OP, L, R],
    H #= T.