This commit is contained in:
Vítor Santos Costa
2013-07-16 08:00:16 -05:00
parent bc992f552f
commit 5e80c3ca86
5 changed files with 53 additions and 20 deletions

View File

@@ -167,16 +167,24 @@ process_arg(Sk, Id, _I) -->
},
[Sk].
%
% redefinition
%
new_skolem(Sk, D) :-
copy_term(Sk, Sk1),
skolem(Sk1, D1),
functor(Sk1, N, A),
functor(Sk , N, A),
!,
functor(Sk , N, A), !,
( D1 = D -> true ; throw(pfl(permission_error(redefining_domain(Sk),D:D1)))).
%
%
% create interface and skolem descriptor
%
new_skolem(Sk, D) :-
functor(Sk, N, A),
functor(NSk, N, A),
% [f,t] is special for evidence
( D = [f,t] -> assert((evidence(NSk, 1) :- call(user:NSk))) ; true ),
interface_predicate(NSk),
assert(skolem(NSk, D)).