builtin.pl::- discontiguous plus/3.      %% added djd
builtin.pl:plus(X, Y, Z) :-
builtin.pl:plus(X, Y, Z) :-
builtin.pl:plus(X, Y, Z) :-
builtin.pl:plus(X, Y, Z) :-
builtin.pl:		plus(X, Y, Z) ).
builtin.pl:   plus(Z, Y, X).
constraint.pl:	Goal = Module:plus(BuiltExpr1, BuiltExpr2, BuiltVar)
constraint.pl:     ;  Goal = ( Goals, Module:plus(BuiltExpr1, BuiltExpr2, BuiltVar) ),
constraint.pl:        Goal2 = ( Module:plus(set([BuiltExpr1|BuiltExpr2]), BuiltTailVar,
integers.pl:plus(X, Y, Z) :-
integers.pl:plus(X, Y, Z) :-
integers.pl:plus(X, Y, Z) :-
integers.pl:plus(X, Y, Z) :-
integers.pl:                        'Integers':plus(X, Y, Z)).
lists_g.pl:        'Integers':plus(C, 1, B),
lists_g.pl:        'Integers':plus(C, 1, B),
programs.pl:constraint_goal_conversion('Integers', plus, '"+', 2):- !.
programs.pl:constraint_goal_conversion('Rationals', plus, '"+', 2):- !.
rationals.pl::- discontiguous plus/3.     %% added djd
rationals.pl:plus(A//B, C//D, X) :-
rationals.pl:plus(A//B, X, C//D) :-
rationals.pl:plus(X, A//B, C//D) :-
rationals.pl:plus(X, Y, Z) :-
rationals.pl:			'Rationals':plus(X, Y, Z)).
sets.pl:plus(set(X), set(Y), set(Z)) :-
sets_sup.pl:plus(set(X), set(Y), set(Z)) :-
sharedSyntax.pl:        'Integers':plus(C, 1, B),
sharedSyntax.pl:        'Integers':plus(C, 1, B),
sharedSyntax.pl:        'Integers':plus(C, 1, B),
sharedSyntax.pl:        'Integers':plus(C, 1, B),
substs.pl:        'Integers':plus(W, R, Z),
substs.pl:        'Integers':plus(D1, R, B1),
substs.pl:        'Integers':plus(G1, R, E1),
substs.pl:        'Integers':plus(J1, R, H1),
substs.pl:        'Integers':plus(M1, R, K1),
substs.pl:        'Integers':plus(P1, R, N1),
substs.pl:        'Integers':plus(S1, R, Q1),
substs.pl:        'Integers':plus(V1, R, T1),
substs.pl:        'Integers':plus(Y1, R, W1),
substs.pl:        'Integers':plus(B2, R, Z1),
substs.pl:        'Integers':plus(E2, R, C2),
substs.pl:        'Integers':plus(H2, R, F2),
substs.pl:        'Integers':plus(K2, R, I2),
substs.pl:        'Integers':plus(N2, R, L2),
substs.pl:        'Integers':plus(P2, R, O2),
substs.pl:        'Integers':plus(W, R, Z),
substs.pl:        'Integers':plus(D1, R, B1),
substs.pl:        'Integers':plus(G1, R, E1),
substs.pl:        'Integers':plus(J1, R, H1),
substs.pl:        'Integers':plus(M1, R, K1),
substs.pl:        'Integers':plus(P1, R, N1),
substs.pl:        'Integers':plus(S1, R, Q1),
substs.pl:        'Integers':plus(V1, R, T1),
substs.pl:        'Integers':plus(Y1, R, W1),
substs.pl:        'Integers':plus(B2, R, Z1),
substs.pl:        'Integers':plus(E2, R, C2),
substs.pl:        'Integers':plus(H2, R, F2),
substs.pl:        'Integers':plus(K2, R, I2),
substs.pl:        'Integers':plus(N2, R, L2),
substs.pl:        'Integers':plus(P2, R, O2),
substs.pl:        'Integers':plus(X, R, A1),
substs.pl:        'Integers':plus(E1, R, C1),
substs.pl:        'Integers':plus(H1, R, F1),
substs.pl:        'Integers':plus(K1, R, I1),
substs.pl:        'Integers':plus(N1, R, L1),
substs.pl:        'Integers':plus(Q1, R, O1),
substs.pl:        'Integers':plus(T1, R, R1),
substs.pl:        'Integers':plus(W1, R, U1),
substs.pl:        'Integers':plus(Z1, R, X1),
substs.pl:        'Integers':plus(C2, R, A2),
substs.pl:        'Integers':plus(F2, R, D2),
substs.pl:        'Integers':plus(I2, R, G2),
substs.pl:        'Integers':plus(L2, R, J2),
substs.pl:        'Integers':plus(O2, R, M2),
substs.pl:        'Integers':plus(Q2, R, P2),
substs.pl:        'Integers':plus(X, R, A1),
substs.pl:        'Integers':plus(E1, R, C1),
substs.pl:        'Integers':plus(H1, R, F1),
substs.pl:        'Integers':plus(K1, R, I1),
substs.pl:        'Integers':plus(N1, R, L1),
substs.pl:        'Integers':plus(Q1, R, O1),
substs.pl:        'Integers':plus(T1, R, R1),
substs.pl:        'Integers':plus(W1, R, U1),
substs.pl:        'Integers':plus(Z1, R, X1),
substs.pl:        'Integers':plus(C2, R, A2),
substs.pl:        'Integers':plus(F2, R, D2),
substs.pl:        'Integers':plus(I2, R, G2),
substs.pl:        'Integers':plus(L2, R, J2),
substs.pl:        'Integers':plus(O2, R, M2),
substs.pl:        'Integers':plus(Q2, R, P2),
substs.pl:        'Integers':plus(X, R, A1),
substs.pl:        'Integers':plus(E1, R, C1),
substs.pl:        'Integers':plus(H1, R, F1),
substs.pl:        'Integers':plus(K1, R, I1),
substs.pl:        'Integers':plus(N1, R, L1),
substs.pl:        'Integers':plus(Q1, R, O1),
substs.pl:        'Integers':plus(T1, R, R1),
substs.pl:        'Integers':plus(W1, R, U1),
substs.pl:        'Integers':plus(Z1, R, X1),
substs.pl:        'Integers':plus(C2, R, A2),
substs.pl:        'Integers':plus(F2, R, D2),
substs.pl:        'Integers':plus(I2, R, G2),
substs.pl:        'Integers':plus(L2, R, J2),
substs.pl:        'Integers':plus(O2, R, M2),
substs.pl:        'Integers':plus(Q2, R, P2),
substs.pl:        'Integers':plus(X, R, A1),
substs.pl:        'Integers':plus(E1, R, C1),
substs.pl:        'Integers':plus(H1, R, F1),
substs.pl:        'Integers':plus(K1, R, I1),
substs.pl:        'Integers':plus(N1, R, L1),
substs.pl:        'Integers':plus(Q1, R, O1),
substs.pl:        'Integers':plus(T1, R, R1),
substs.pl:        'Integers':plus(W1, R, U1),
substs.pl:        'Integers':plus(Z1, R, X1),
substs.pl:        'Integers':plus(C2, R, A2),
substs.pl:        'Integers':plus(F2, R, D2),
substs.pl:        'Integers':plus(I2, R, G2),
substs.pl:        'Integers':plus(L2, R, J2),
substs.pl:        'Integers':plus(O2, R, M2),
substs.pl:        'Integers':plus(Q2, R, P2),
substs.pl:        'Integers':plus(A, 1, B),
substs.pl:        'Integers':plus(A, 1, B),
syntax.pl:        user:goedel_freeze(ground([A,D]), if(('Lists':'~Lists.MemberCheck.P2'('MetaDefs.!.F2'('MetaDefs.Var.F1'(A),I),D),true),(C=B,G=F,H=I),user:goedel_freeze(ground([A,F]),if(('Lists':'~Lists.MemberCheck.P2'('MetaDefs.!.F2'('MetaDefs.Var.F1'(A),J),F),true),(C=B,G=F,H=J),user:goedel_freeze(ground([A,E]),if(('Lists':'~Lists.MemberCheck.P2'('MetaDefs.!.F2'('MetaDefs.Var.F1'(A),K),E),true),(C=B,G=F,H=K),(('Integers':plus(B,1,L),C=L),G=['MetaDefs.!.F2'('MetaDefs.Var.F1'(A),H)|F],H='MetaDefs.Var.F1'(B)))))))).
syntax.pl:        user:goedel_freeze(ground([A,D]), if(('Lists':'~Lists.MemberCheck.P2'('MetaDefs.!.F2'('MetaDefs.Var.F1'(A),I),D),true),(C=B,G=F,H=I),user:goedel_freeze(ground([A,F]),if(('Lists':'~Lists.MemberCheck.P2'('MetaDefs.!.F2'('MetaDefs.Var.F1'(A),J),F),true),(C=B,G=F,H=J),user:goedel_freeze(ground([A,E]),if(('Lists':'~Lists.MemberCheck.P2'('MetaDefs.!.F2'('MetaDefs.Var.F1'(A),K),E),true),(C=B,G=F,H=K),(('Integers':plus(B,1,L),C=L),G=['MetaDefs.!.F2'('MetaDefs.Var.F1'(A),H)|F],H='MetaDefs.Var.F1'(B)))))))).
syntax.pl:        user:goedel_freeze(ground([B,E,A]), if(('Lists':'~Lists.MemberCheck.P2'('MetaDefs.!.F2'('MetaDefs.Var.F2'(A,B),J),E),true),(D=C,H=G,I=J),user:goedel_freeze(ground([B,G,A]),if(('Lists':'~Lists.MemberCheck.P2'('MetaDefs.!.F2'('MetaDefs.Var.F2'(A,B),K),G),true),(D=C,H=G,I=K),user:goedel_freeze(ground([B,F,A]),if(('Lists':'~Lists.MemberCheck.P2'('MetaDefs.!.F2'('MetaDefs.Var.F2'(A,B),L),F),true),(D=C,H=G,I=L),(('Integers':plus(C,1,M),D=M),H=['MetaDefs.!.F2'('MetaDefs.Var.F2'(A,B),I)|G],I='MetaDefs.Var.F1'(C)))))))).
syntax.pl:        user:goedel_freeze(ground([B,E,A]), if(('Lists':'~Lists.MemberCheck.P2'('MetaDefs.!.F2'('MetaDefs.Var.F2'(A,B),J),E),true),(D=C,H=G,I=J),user:goedel_freeze(ground([B,G,A]),if(('Lists':'~Lists.MemberCheck.P2'('MetaDefs.!.F2'('MetaDefs.Var.F2'(A,B),K),G),true),(D=C,H=G,I=K),user:goedel_freeze(ground([B,F,A]),if(('Lists':'~Lists.MemberCheck.P2'('MetaDefs.!.F2'('MetaDefs.Var.F2'(A,B),L),F),true),(D=C,H=G,I=L),(('Integers':plus(C,1,M),D=M),H=['MetaDefs.!.F2'('MetaDefs.Var.F2'(A,B),I)|G],I='MetaDefs.Var.F1'(C)))))))).
syntax.pl:        user:goedel_freeze(ground([A,D]), ('Lists':'~Lists.MemberCheck.P2'('Syntax.LabelPair.F2'(A,_),D),true->C=B,E=D;user:goedel_freeze(ground([B]),('Integers':'~Integers.>=.P2'(B,0),true->E=['Syntax.LabelPair.F2'(A,B)|D],'Integers':plus(B,1,F),C=F;E=['Syntax.LabelPair.F2'(A,A)|D],C=B)))).
syntax.pl:        user:goedel_freeze(ground([A,D]), ('Lists':'~Lists.MemberCheck.P2'('Syntax.LabelPair.F2'(A,_),D),true->C=B,E=D;user:goedel_freeze(ground([B]),('Integers':'~Integers.>=.P2'(B,0),true->E=['Syntax.LabelPair.F2'(A,B)|D],'Integers':plus(B,1,F),C=F;E=['Syntax.LabelPair.F2'(A,A)|D],C=B)))).
syntax.pl:        user:goedel_freeze(ground([B,A,E]), if(('Lists':'~Lists.MemberCheck.P2'('MetaDefs.!.F2'('MetaDefs.Par.F2'(A,B),'MetaDefs.Par.F1'(H)),E),true),(G=H,F=E,D=C),(G=C,F=['MetaDefs.!.F2'('MetaDefs.Par.F2'(A,B),'MetaDefs.Par.F1'(C))|E],'Integers':plus(C,1,I),D=I))).
syntax.pl:        user:goedel_freeze(ground([B,A,E]), if(('Lists':'~Lists.MemberCheck.P2'('MetaDefs.!.F2'('MetaDefs.Par.F2'(A,B),'MetaDefs.Par.F1'(H)),E),true),(G=H,F=E,D=C),(G=C,F=['MetaDefs.!.F2'('MetaDefs.Par.F2'(A,B),'MetaDefs.Par.F1'(C))|E],'Integers':plus(C,1,I),D=I))).
syntax.pl:        user:goedel_freeze(ground([A,D]), if(('Lists':'~Lists.MemberCheck.P2'('MetaDefs.!.F2'('MetaDefs.Par.F1'(A),'MetaDefs.Par.F1'(G)),D),true),(F=G,E=D,C=B),(F=B,E=['MetaDefs.!.F2'('MetaDefs.Par.F1'(A),'MetaDefs.Par.F1'(B))|D],'Integers':plus(B,1,H),C=H))).
syntax.pl:        user:goedel_freeze(ground([A,D]), if(('Lists':'~Lists.MemberCheck.P2'('MetaDefs.!.F2'('MetaDefs.Par.F1'(A),'MetaDefs.Par.F1'(G)),D),true),(F=G,E=D,C=B),(F=B,E=['MetaDefs.!.F2'('MetaDefs.Par.F1'(A),'MetaDefs.Par.F1'(B))|D],'Integers':plus(B,1,H),C=H))).
syntax.pl:        user:goedel_freeze(ground([B,A,E]), if(('Lists':'~Lists.MemberCheck.P2'('MetaDefs.!.F2'('MetaDefs.Var.F2'(A,B),'MetaDefs.Var.F1'(H)),E),true),(G=H,F=E,D=C),(G=C,F=['MetaDefs.!.F2'('MetaDefs.Var.F2'(A,B),'MetaDefs.Var.F1'(C))|E],'Integers':plus(C,1,I),D=I))).
syntax.pl:        user:goedel_freeze(ground([B,A,E]), if(('Lists':'~Lists.MemberCheck.P2'('MetaDefs.!.F2'('MetaDefs.Var.F2'(A,B),'MetaDefs.Var.F1'(H)),E),true),(G=H,F=E,D=C),(G=C,F=['MetaDefs.!.F2'('MetaDefs.Var.F2'(A,B),'MetaDefs.Var.F1'(C))|E],'Integers':plus(C,1,I),D=I))).
syntax.pl:        user:goedel_freeze(ground([A,D]), if(('Lists':'~Lists.MemberCheck.P2'('MetaDefs.!.F2'('MetaDefs.Var.F1'(A),'MetaDefs.Var.F1'(G)),D),true),(F=G,E=D,C=B),(F=B,E=['MetaDefs.!.F2'('MetaDefs.Var.F1'(A),'MetaDefs.Var.F1'(B))|D],'Integers':plus(B,1,H),C=H))).
syntax.pl:        user:goedel_freeze(ground([A,D]), if(('Lists':'~Lists.MemberCheck.P2'('MetaDefs.!.F2'('MetaDefs.Var.F1'(A),'MetaDefs.Var.F1'(G)),D),true),(F=G,E=D,C=B),(F=B,E=['MetaDefs.!.F2'('MetaDefs.Var.F1'(A),'MetaDefs.Var.F1'(B))|D],'Integers':plus(B,1,H),C=H))).
syntax.pl:        'Integers':plus(D, 1, H),
syntax.pl:        'Integers':plus(D, 1, H),
system.pl:        plus(C, 1, B),
system.pl:        plus(C, 1, B),
system.pl:        plus(W, R, Z),
system.pl:        plus(D1, R, B1),
system.pl:        plus(G1, R, E1),
system.pl:        plus(J1, R, H1),
system.pl:        plus(M1, R, K1),
system.pl:        plus(P1, R, N1),
system.pl:        plus(S1, R, Q1),
system.pl:        plus(V1, R, T1),
system.pl:        plus(Y1, R, W1),
system.pl:        plus(B2, R, Z1),
system.pl:        plus(E2, R, C2),
system.pl:        plus(H2, R, F2),
system.pl:        plus(K2, R, I2),
system.pl:        plus(N2, R, L2),
system.pl:        plus(P2, R, O2),
system.pl:        plus(X, R, A1),
system.pl:        plus(E1, R, C1),
system.pl:        plus(H1, R, F1),
system.pl:        plus(K1, R, I1),
system.pl:        plus(N1, R, L1),
system.pl:        plus(Q1, R, O1),
system.pl:        plus(T1, R, R1),
system.pl:        plus(W1, R, U1),
system.pl:        plus(Z1, R, X1),
system.pl:        plus(C2, R, A2),
system.pl:        plus(F2, R, D2),
system.pl:        plus(I2, R, G2),
system.pl:        plus(L2, R, J2),
system.pl:        plus(O2, R, M2),
system.pl:        plus(Q2, R, P2),
system.pl:        plus(X, R, A1),
system.pl:        plus(E1, R, C1),
system.pl:        plus(H1, R, F1),
system.pl:        plus(K1, R, I1),
system.pl:        plus(N1, R, L1),
system.pl:        plus(Q1, R, O1),
system.pl:        plus(T1, R, R1),
system.pl:        plus(W1, R, U1),
system.pl:        plus(Z1, R, X1),
system.pl:        plus(C2, R, A2),
system.pl:        plus(F2, R, D2),
system.pl:        plus(I2, R, G2),
system.pl:        plus(L2, R, J2),
system.pl:        plus(O2, R, M2),
system.pl:        plus(Q2, R, P2),
system.pl:        plus(A, 1, B),
toplev.pl:constraint_goal_conversion(plus, _, '+', 2).
