1LP, - : Hypothesis = [ Clausel, Claused,... ]
( , ) , .
Clause ■ [Head, BodyLitecall, BodyLiteral2,...]/[ Varl, Var2,... ]
,
pred{X,Y):- parent (X, Y).
pred(X,z):- parent (x, Y), pred(Y,Z}.
:
[ [predJXX., YD., parent(XI,¥1) ] / [XI,YI], Ipred (X2, Z2J, parent 1X2, Y2), pred(Y2,Z2) ] / [X2,Y2,Z2] ]
, . , , .
, , Prolog , , . : prove! Goal, Hypothesis, Answer)
Goal Hypothesis Answer, , Goal Hypothesis. , Goal Hypothesis , Prolog. , 23, , . , :
[ [), (} ]
():- (), . , prove . , . Goal , prove , . , Answer prove ,
II. Prolog
Answer = yes. Goal Hypothesis .
Answer = no. , Goal Hypothesis, .
Answer = maybe. , D.
"Answer = maybe" , Goal .
|
|
1. Prolog ( ) .
2. Prolog , D.
3. Prolog - , D, . { D), , .
prove 19.2. :
raax_pEOof_length(D)
D 6, . ( prolog_predicate) Prolog . , , .
19.2. ,
%
% prove; Goal, Hypo, Answ):
* Answ = yes, Goal Hypo
% , D
% Answ = no, Goal
% Answ = maybe, D
prove(Goal, Hypo, Answer):-max_procf_len.gth; D),
prove; Goal, Hypo, D, RestD),
(RestD >= 0, Answer = yes %
RestD < 0,!, Answer - maybe % , ,
% ).
prove! Goal, _, no). % Goal
%
%prove(Goal, Hyp, MaxD, RestD):
- MaxD - , RestD - , " % " ; % , Hyp
prove [ G, , D, D):-
D < 0,!. I
19,
prove ((],_, D, D):-!.
prove! [Gl | Gs], Hypo, DO, D]: -!, prove(Gl, Hypo, DO, Dl>, prove! Gs, Hypo, Dl, D).
prove! G, _, D, D):-
prologjpredicate(G), % Prolog?
call(G), %
prove { G, Hyp, DO, D): -
DO =< 0, \r D is D0-1 h -
Dl is DO-1, %
member (Clause/Vars, Hyp), % Hyp
eopy_term< Clause, [Head | Body]), r
G - Head, %
prove (Eody, Hyp, Dl, D). % G Clause
"maybe", , "" ( ), .. , .
1. , "maybe"
, " ".
|
|
2. , "maybe"
, "
". , , .
"maybe" , . "maybe" , , .
MINIHYPER 19.3. , .