shed module names from arguments of the (->)/2, (,)/2, (;)/2 predicates

This commit is contained in:
Mark Thom
2021-02-05 22:50:57 -07:00
parent 700778e574
commit bdb5df104a
2 changed files with 58 additions and 4 deletions

View File

@@ -243,15 +243,26 @@ call_or_cut(G, B, ErrorPI) :-
call_or_cut(!, B) :- call_or_cut(!, B) :-
'$set_cp_by_default'(B). '$set_cp_by_default'(B).
call_or_cut(_:!, B) :-
'$set_cp_by_default'(B).
call_or_cut((G1, G2), B) :- call_or_cut((G1, G2), B) :-
!, !,
'$call_with_default_policy'(','(G1, G2, B)). '$call_with_default_policy'(','(G1, G2, B)).
call_or_cut(_:(G1, G2), B) :-
!,
'$call_with_default_policy'(','(G1, G2, B)).
call_or_cut((G1 ; G2), B) :- call_or_cut((G1 ; G2), B) :-
!, !,
'$call_with_default_policy'(';'(G1, G2, B)). '$call_with_default_policy'(';'(G1, G2, B)).
call_or_cut(_:(G1 ; G2), B) :-
!,
'$call_with_default_policy'(';'(G1, G2, B)).
call_or_cut((G1 -> G2), B) :- call_or_cut((G1 -> G2), B) :-
!, !,
'$call_with_default_policy'(->(G1, G2, B)). '$call_with_default_policy'(->(G1, G2, B)).
call_or_cut(_:(G1 -> G2), B) :-
!,
'$call_with_default_policy'(->(G1, G2, B)).
call_or_cut(G, _) :- call_or_cut(G, _) :-
'$call_with_default_policy'(G). '$call_with_default_policy'(G).
@@ -261,14 +272,26 @@ call_or_cut(G, _) :-
!, !,
'$call_with_default_policy'(','(G1, G2, B)), '$call_with_default_policy'(','(G1, G2, B)),
'$call_with_default_policy'(call_or_cut(G3, B, (',')/2)). '$call_with_default_policy'(call_or_cut(G3, B, (',')/2)).
','(_:(G1, G2), G3, B) :-
!,
'$call_with_default_policy'(','(G1, G2, B)),
'$call_with_default_policy'(call_or_cut(G3, B, (',')/2)).
','((G1; G2), G3, B) :- ','((G1; G2), G3, B) :-
!, !,
'$call_with_default_policy'(';'(G1, G2, B)), '$call_with_default_policy'(';'(G1, G2, B)),
'$call_with_default_policy'(call_or_cut(G3, B, (',')/2)). '$call_with_default_policy'(call_or_cut(G3, B, (',')/2)).
','(_:(G1; G2), G3, B) :-
!,
'$call_with_default_policy'(';'(G1, G2, B)),
'$call_with_default_policy'(call_or_cut(G3, B, (',')/2)).
','((G1 -> G2), G3, B) :- ','((G1 -> G2), G3, B) :-
!, !,
'$call_with_default_policy'(->(G1, G2, B)), '$call_with_default_policy'(->(G1, G2, B)),
'$call_with_default_policy'(call_or_cut(G3, B, (',')/2)). '$call_with_default_policy'(call_or_cut(G3, B, (',')/2)).
','(_:(G1 -> G2), G3, B) :-
!,
'$call_with_default_policy'(->(G1, G2, B)),
'$call_with_default_policy'(call_or_cut(G3, B, (',')/2)).
','(G1, G2, B) :- ','(G1, G2, B) :-
'$call_with_default_policy'(call_or_cut(G1, B, (',')/2)), '$call_with_default_policy'(call_or_cut(G1, B, (',')/2)),
'$call_with_default_policy'(call_or_cut(G2, B, (',')/2)). '$call_with_default_policy'(call_or_cut(G2, B, (',')/2)).
@@ -280,17 +303,33 @@ call_or_cut(G, _) :-
( '$call_with_default_policy'(','(G1, G2, B)) ( '$call_with_default_policy'(','(G1, G2, B))
; '$call_with_default_policy'(call_or_cut(G3, B, (;)/2)) ; '$call_with_default_policy'(call_or_cut(G3, B, (;)/2))
). ).
';'(_:(G1, G2), G3, B) :-
!,
( '$call_with_default_policy'(','(G1, G2, B))
; '$call_with_default_policy'(call_or_cut(G3, B, (;)/2))
).
';'((G1; G2), G3, B) :- ';'((G1; G2), G3, B) :-
!, !,
( '$call_with_default_policy'(';'(G1, G2, B)) ( '$call_with_default_policy'(';'(G1, G2, B))
; '$call_with_default_policy'(call_or_cut(G3, B, (;)/2)) ; '$call_with_default_policy'(call_or_cut(G3, B, (;)/2))
). ).
';'(_:(G1; G2), G3, B) :-
!,
( '$call_with_default_policy'(';'(G1, G2, B))
; '$call_with_default_policy'(call_or_cut(G3, B, (;)/2))
).
';'((G1 -> G2), G3, B) :- ';'((G1 -> G2), G3, B) :-
!, !,
( '$call_with_default_policy'(call_or_cut(G1, B, (->)/2)) -> ( '$call_with_default_policy'(call_or_cut(G1, B, (->)/2)) ->
'$call_with_default_policy'(call_or_cut(G2, B, (->)/2)) '$call_with_default_policy'(call_or_cut(G2, B, (->)/2))
; '$call_with_default_policy'(call_or_cut(G3, B, (;)/2)) ; '$call_with_default_policy'(call_or_cut(G3, B, (;)/2))
). ).
';'(_:(G1 -> G2), G3, B) :-
!,
( '$call_with_default_policy'(call_or_cut(G1, B, (->)/2)) ->
'$call_with_default_policy'(call_or_cut(G2, B, (->)/2))
; '$call_with_default_policy'(call_or_cut(G3, B, (;)/2))
).
';'(G1, G2, B) :- ';'(G1, G2, B) :-
( '$call_with_default_policy'(call_or_cut(G1, B, (;)/2)) ( '$call_with_default_policy'(call_or_cut(G1, B, (;)/2))
; '$call_with_default_policy'(call_or_cut(G2, B, (;)/2)) ; '$call_with_default_policy'(call_or_cut(G2, B, (;)/2))
@@ -303,16 +342,31 @@ call_or_cut(G, _) :-
( '$call_with_default_policy'(','(G1, G2, B)) -> ( '$call_with_default_policy'(','(G1, G2, B)) ->
'$call_with_default_policy'(call_or_cut(G3, B, (->)/2)) '$call_with_default_policy'(call_or_cut(G3, B, (->)/2))
). ).
->(_:(G1, G2), G3, B) :-
!,
( '$call_with_default_policy'(','(G1, G2, B)) ->
'$call_with_default_policy'(call_or_cut(G3, B, (->)/2))
).
->((G1 ; G2), G3, B) :- ->((G1 ; G2), G3, B) :-
!, !,
( '$call_with_default_policy'(';'(G1, G2, B)) -> ( '$call_with_default_policy'(';'(G1, G2, B)) ->
'$call_with_default_policy'(call_or_cut(G3, B, (->)/2)) '$call_with_default_policy'(call_or_cut(G3, B, (->)/2))
). ).
->(_:(G1 ; G2), G3, B) :-
!,
( '$call_with_default_policy'(';'(G1, G2, B)) ->
'$call_with_default_policy'(call_or_cut(G3, B, (->)/2))
).
->((G1 -> G2), G3, B) :- ->((G1 -> G2), G3, B) :-
!, !,
( '$call_with_default_policy'(->(G1, G2, B)) -> ( '$call_with_default_policy'(->(G1, G2, B)) ->
'$call_with_default_policy'(call_or_cut(G3, B, (->)/2)) '$call_with_default_policy'(call_or_cut(G3, B, (->)/2))
). ).
->(_:(G1 -> G2), G3, B) :-
!,
( '$call_with_default_policy'(->(G1, G2, B)) ->
'$call_with_default_policy'(call_or_cut(G3, B, (->)/2))
).
->(G1, G2, B) :- ->(G1, G2, B) :-
( '$call_with_default_policy'(call_or_cut(G1, B, (->)/2)) ( '$call_with_default_policy'(call_or_cut(G1, B, (->)/2))
-> '$call_with_default_policy'(call_or_cut(G2, B, (->)/2)) -> '$call_with_default_policy'(call_or_cut(G2, B, (->)/2))

View File

@@ -398,16 +398,16 @@ predicate_property(Callable, Property) :-
). ).
strip_module_(M0, G0, M1, G1) :- strip_module(M0, G0, M1, G1) :-
( nonvar(G0), ( nonvar(G0),
G0 = (MG1:G2) -> G0 = (MG1:G2) ->
strip_module_(MG1, G2, M1, G1) strip_module(MG1, G2, M1, G1)
; M0 = M1, ; M0 = M1,
G0 = G1 G0 = G1
). ).
strip_module(Goal, M, G) :-
strip_module_(_, Goal, M, G).
strip_module(Goal, M, G) :-
strip_module(_, Goal, M, G).
expand_subgoal(UnexpandedGoals, MS, Module, ExpandedGoals, HeadVars) :- expand_subgoal(UnexpandedGoals, MS, Module, ExpandedGoals, HeadVars) :-