:- module(avlTrees, ['avlTrees.avlIsEmpty.p1'/1,'avlTrees.avlInsert.p4'/4,'avlTrees.avlAmend.p6'/6,'avlTrees.avlSearch.p3'/3,'avlTrees.avlUpdate.p5'/5,'avlTrees.avlInsert.p4.0'/4]).  %% converted djd
:- style_check(-singleton). % added djd
%% :- module('avlTrees', []).

:- discontiguous 'avlTrees.adjustment.p4'/4. %% added djd
:- discontiguous '~avlTrees.adjustment.p4'/4. %% added djd
:- discontiguous 'avlTrees.avlSearch.p3.0'/3. %% added djd
:- discontiguous '~avlTrees.avlSearch.p3.0'/3. %% added djd
:- discontiguous 'avlTrees.avlMember.p3.0'/3. %% added djd
:- discontiguous '~avlTrees.avlMember.p3.0'/3. %% added djd
:- discontiguous 'avlTrees.avlJoinAux.p3'/3. %% added djd
:- discontiguous '~avlTrees.avlJoinAux.p3'/3. %% added djd
:- discontiguous 'avlTrees.avlUpdate.p5.0'/5. %% added djd
:- discontiguous '~avlTrees.avlUpdate.p5.0'/5. %% added djd
:- discontiguous 'avlTrees.avlToBinary.p2.0'/2. %% added djd
:- discontiguous '~avlTrees.avlToBinary.p2.0'/2. %% added djd
:- discontiguous 'avlTrees.adjust.p6'/6. %% added djd
:- discontiguous '~avlTrees.adjust.p6'/6. %% added djd
:- discontiguous 'avlTrees.deleteKey.p4'/4. %% added djd
:- discontiguous '~avlTrees.deleteKey.p4'/4. %% added djd
:- discontiguous 'avlTrees.balanceTable2.p3'/3. %% added djd
:- discontiguous '~avlTrees.balanceTable2.p3'/3. %% added djd
:- discontiguous 'avlTrees.balanceTable1.p3'/3. %% added djd
:- discontiguous '~avlTrees.balanceTable1.p3'/3. %% added djd
:- discontiguous 'avlTrees.amend.p7'/7. %% added djd
:- discontiguous '~avlTrees.amend.p7'/7. %% added djd
:- discontiguous 'avlTrees.combine.p5'/5. %% added djd
:- discontiguous '~avlTrees.combine.p5'/5. %% added djd
:- discontiguous 'avlTrees.insert.p5'/5. %% added djd
:- discontiguous '~avlTrees.insert.p5'/5. %% added djd
:- discontiguous 'avlTrees.heightIncreased.p3'/3. %% added djd
:- discontiguous '~avlTrees.heightIncreased.p3'/3. %% added djd
:- discontiguous 'avlTrees.heightDecreased.p3'/3. %% added djd
:- discontiguous '~avlTrees.heightDecreased.p3'/3. %% added djd
:- discontiguous 'avlTrees.removeRightmost.p5'/5. %% added djd
:- discontiguous '~avlTrees.removeRightmost.p5'/5. %% added djd
:- discontiguous 'avlTrees.rebalance.p4'/4. %% added djd
:- discontiguous '~avlTrees.rebalance.p4'/4. %% added djd
:- discontiguous 'avlTrees.restructure.p3'/3. %% added djd
:- discontiguous '~avlTrees.restructure.p3'/3. %% added djd



:- op(500, yfx, and).
:- op(400, yfx, or).

'avlTrees.adjustment.p4'('avlTrees.eQ.c0', 'avlTrees.left.c0', 'avlTrees.lH.c0', 'avlTrees.no.c0') :- !.
'~avlTrees.adjustment.p4'('avlTrees.eQ.c0', 'avlTrees.left.c0', 'avlTrees.lH.c0', 'avlTrees.no.c0').
'avlTrees.adjustment.p4'('avlTrees.eQ.c0', 'avlTrees.right.c0', 'avlTrees.rH.c0', 'avlTrees.no.c0') :- !.
'~avlTrees.adjustment.p4'('avlTrees.eQ.c0', 'avlTrees.right.c0', 'avlTrees.rH.c0', 'avlTrees.no.c0').
'avlTrees.adjustment.p4'('avlTrees.lH.c0', 'avlTrees.left.c0', _, 'avlTrees.yes.c0') :- !.
'~avlTrees.adjustment.p4'('avlTrees.lH.c0', 'avlTrees.left.c0', _, 'avlTrees.yes.c0').
'avlTrees.adjustment.p4'('avlTrees.lH.c0', 'avlTrees.right.c0', 'avlTrees.eQ.c0', 'avlTrees.no.c0') :- !.
'~avlTrees.adjustment.p4'('avlTrees.lH.c0', 'avlTrees.right.c0', 'avlTrees.eQ.c0', 'avlTrees.no.c0').
'avlTrees.adjustment.p4'('avlTrees.rH.c0', 'avlTrees.left.c0', 'avlTrees.eQ.c0', 'avlTrees.no.c0') :- !.
'~avlTrees.adjustment.p4'('avlTrees.rH.c0', 'avlTrees.left.c0', 'avlTrees.eQ.c0', 'avlTrees.no.c0').
'avlTrees.adjustment.p4'('avlTrees.rH.c0', 'avlTrees.right.c0', _, 'avlTrees.yes.c0') :- !.
'~avlTrees.adjustment.p4'('avlTrees.rH.c0', 'avlTrees.right.c0', _, 'avlTrees.yes.c0').
'avlTrees.avlJoin.p3'(A, B, C) :-
        user:goedel_freeze(nonvar(A)and nonvar(B), 'avlTrees':'avlTrees.avlJoin.p3.0'(A,B,C)).
'~avlTrees.avlJoin.p3'(A, B, C) :-
        user:goedel_freeze(nonvar(A)and nonvar(B), 'avlTrees':'~avlTrees.avlJoin.p3.0'(A,B,C)).
'avlTrees.avlJoin.p3.0'(A, B, C) :-
        'avlTrees.avlJoinAux.p3'(B, A, C).
'~avlTrees.avlJoin.p3.0'(A, B, C) :-
        '~avlTrees.avlJoinAux.p3'(B, A, C).
'avlTrees.avlInsert.p4'(A, B, C, D) :-
        user:goedel_freeze(nonvar(A)and ground([B]), 'avlTrees':'avlTrees.avlInsert.p4.0'(A,B,C,D)).
'~avlTrees.avlInsert.p4'(A, B, C, D) :-
        user:goedel_freeze(nonvar(A)and ground([B]), 'avlTrees':'~avlTrees.avlInsert.p4.0'(A,B,C,D)).
'avlTrees.avlInsert.p4.0'(A, B, C, D) :-
        'avlTrees.insert.p5'(A, B, C, D, _).
'~avlTrees.avlInsert.p4.0'(A, B, C, D) :-
        '~avlTrees.insert.p5'(A, B, C, D, _).
'avlTrees.avlAmend.p6'(A, B, C, D, E, F) :-
        user:goedel_freeze(nonvar(A)and ground([B]), 'avlTrees':'avlTrees.avlAmend.p6.0'(A,B,C,D,E,F)).
'~avlTrees.avlAmend.p6'(A, B, C, D, E, F) :-
        user:goedel_freeze(nonvar(A)and ground([B]), 'avlTrees':'~avlTrees.avlAmend.p6.0'(A,B,C,D,E,F)).
'avlTrees.avlAmend.p6.0'(A, B, C, D, E, F) :-
        'avlTrees.amend.p7'(A, B, C, D, E, F, _).
'~avlTrees.avlAmend.p6.0'(A, B, C, D, E, F) :-
        '~avlTrees.amend.p7'(A, B, C, D, E, F, _).
'avlTrees.avlDelete.p3'(A, B, C) :-
        user:goedel_freeze(nonvar(A)and ground([B]), 'avlTrees':'avlTrees.avlDelete.p3.0'(A,B,C)).
'~avlTrees.avlDelete.p3'(A, B, C) :-
        user:goedel_freeze(nonvar(A)and ground([B]), 'avlTrees':'~avlTrees.avlDelete.p3.0'(A,B,C)).
'avlTrees.avlDelete.p3.0'(A, B, C) :-
        'avlTrees.deleteKey.p4'(A, B, C, _).
'~avlTrees.avlDelete.p3.0'(A, B, C) :-
        '~avlTrees.deleteKey.p4'(A, B, C, _).
'avlTrees.avlIsEmpty.p1'('avlTrees.null.c0').
'~avlTrees.avlIsEmpty.p1'('avlTrees.null.c0').
'avlTrees.avlSearch.p3'(A, B, C) :-
        user:goedel_freeze(nonvar(A)and ground([B]), 'avlTrees':'avlTrees.avlSearch.p3.0'(A,B,C)).
'~avlTrees.avlSearch.p3'(A, B, C) :-
        user:goedel_freeze(nonvar(A)and ground([B]), 'avlTrees':'~avlTrees.avlSearch.p3.0'(A,B,C)).
'avlTrees.avlSearch.p3.0'('avlTrees.node.f5'(_,A,B,_,_), C, D) :-
        call_residue_vars(C=A, E),
        (   E=[] ->
            !
        ;   user:release_suspended(E)
        ),
        D=B.
'~avlTrees.avlSearch.p3.0'('avlTrees.node.f5'(_,A,B,_,_), C, D) :-
        C=A,
        D=B.
'avlTrees.avlSearch.p3.0'('avlTrees.node.f5'(A,B,_,_,_), C, D) :-
        call_residue_vars('strings':'strings.<.p2'(C,B), E),
        (   E=[] ->
            !
        ;   user:release_suspended(E)
        ),
        'avlTrees.avlSearch.p3'(A, C, D).
'~avlTrees.avlSearch.p3.0'('avlTrees.node.f5'(A,B,_,_,_), C, D) :-
        'strings':'~strings.<.p2'(C, B),
        '~avlTrees.avlSearch.p3'(A, C, D).
'avlTrees.avlSearch.p3.0'('avlTrees.node.f5'(_,A,_,_,B), C, D) :-
        call_residue_vars('strings':'strings.>.p2'(C,A), E),
        (   E=[] ->
            !
        ;   user:release_suspended(E)
        ),
        'avlTrees.avlSearch.p3'(B, C, D).
'~avlTrees.avlSearch.p3.0'('avlTrees.node.f5'(_,A,_,_,B), C, D) :-
        'strings':'~strings.>.p2'(C, A),
        '~avlTrees.avlSearch.p3'(B, C, D).
'avlTrees.avlMember.p3'(A, B, C) :-
        user:goedel_freeze(nonvar(A), 'avlTrees':'avlTrees.avlMember.p3.0'(A,B,C)).
'~avlTrees.avlMember.p3'(A, B, C) :-
        user:goedel_freeze(nonvar(A), 'avlTrees':'~avlTrees.avlMember.p3.0'(A,B,C)).
'avlTrees.avlMember.p3.0'('avlTrees.node.f5'(_,A,B,_,_), A, B).
'~avlTrees.avlMember.p3.0'('avlTrees.node.f5'(_,A,B,_,_), A, B).
'avlTrees.avlMember.p3.0'('avlTrees.node.f5'(A,_,_,_,_), B, C) :-
        'avlTrees.avlMember.p3'(A, B, C).
'~avlTrees.avlMember.p3.0'('avlTrees.node.f5'(A,_,_,_,_), B, C) :-
        '~avlTrees.avlMember.p3'(A, B, C).
'avlTrees.avlMember.p3.0'('avlTrees.node.f5'(_,_,_,_,A), B, C) :-
        'avlTrees.avlMember.p3'(A, B, C).
'~avlTrees.avlMember.p3.0'('avlTrees.node.f5'(_,_,_,_,A), B, C) :-
        '~avlTrees.avlMember.p3'(A, B, C).
'avlTrees.avlJoinAux.p3'('avlTrees.null.c0', A, A).
'~avlTrees.avlJoinAux.p3'('avlTrees.null.c0', A, A).
'avlTrees.avlJoinAux.p3'('avlTrees.node.f5'(A,B,C,_,D), E, F) :-
        'avlTrees.amend.p7'(E, B, C, _, G, _, _),
        'avlTrees.avlJoinAux.p3'(A, G, H),
        'avlTrees.avlJoinAux.p3'(D, H, F).
'~avlTrees.avlJoinAux.p3'('avlTrees.node.f5'(A,B,C,_,D), E, F) :-
        '~avlTrees.amend.p7'(E, B, C, _, G, _, _),
        '~avlTrees.avlJoinAux.p3'(A, G, H),
        '~avlTrees.avlJoinAux.p3'(D, H, F).
'avlTrees.avlUpdate.p5'(A, B, C, D, E) :-
        user:goedel_freeze(nonvar(A)and ground([B]), 'avlTrees':'avlTrees.avlUpdate.p5.0'(A,B,C,D,E)).
'~avlTrees.avlUpdate.p5'(A, B, C, D, E) :-
        user:goedel_freeze(nonvar(A)and ground([B]), 'avlTrees':'~avlTrees.avlUpdate.p5.0'(A,B,C,D,E)).
'avlTrees.avlUpdate.p5.0'('avlTrees.node.f5'(A,B,C,D,E), F, G, H, I) :-
        call_residue_vars(F=B, J),
        (   J=[] ->
            !
        ;   user:release_suspended(J)
        ),
        H='avlTrees.node.f5'(A,B,G,D,E),
        I=C.
'~avlTrees.avlUpdate.p5.0'('avlTrees.node.f5'(A,B,C,D,E), F, G, H, I) :-
        F=B,
        H='avlTrees.node.f5'(A,B,G,D,E),
        I=C.
'avlTrees.avlUpdate.p5.0'('avlTrees.node.f5'(A,B,C,D,E), F, G, H, I) :-
        call_residue_vars('strings':'strings.<.p2'(F,B), J),
        (   J=[] ->
            !
        ;   user:release_suspended(J)
        ),
        'avlTrees.avlUpdate.p5'(A, F, G, K, I),
        H='avlTrees.node.f5'(K,B,C,D,E).
'~avlTrees.avlUpdate.p5.0'('avlTrees.node.f5'(A,B,C,D,E), F, G, H, I) :-
        'strings':'~strings.<.p2'(F, B),
        '~avlTrees.avlUpdate.p5'(A, F, G, J, I),
        H='avlTrees.node.f5'(J,B,C,D,E).
'avlTrees.avlUpdate.p5.0'('avlTrees.node.f5'(A,B,C,D,E), F, G, H, I) :-
        call_residue_vars('strings':'strings.>.p2'(F,B), J),
        (   J=[] ->
            !
        ;   user:release_suspended(J)
        ),
        'avlTrees.avlUpdate.p5'(E, F, G, K, I),
        H='avlTrees.node.f5'(A,B,C,D,K).
'~avlTrees.avlUpdate.p5.0'('avlTrees.node.f5'(A,B,C,D,E), F, G, H, I) :-
        'strings':'~strings.>.p2'(F, B),
        '~avlTrees.avlUpdate.p5'(E, F, G, J, I),
        H='avlTrees.node.f5'(A,B,C,D,J).
'avlTrees.avlToBinary.p2'(A, B) :-
        user:goedel_freeze(nonvar(A), 'avlTrees':'avlTrees.avlToBinary.p2.0'(A,B)).
'~avlTrees.avlToBinary.p2'(A, B) :-
        user:goedel_freeze(nonvar(A), 'avlTrees':'~avlTrees.avlToBinary.p2.0'(A,B)).
'avlTrees.avlToBinary.p2.0'('avlTrees.null.c0', 'avlTrees.empty.c0').
'~avlTrees.avlToBinary.p2.0'('avlTrees.null.c0', 'avlTrees.empty.c0').
'avlTrees.avlToBinary.p2.0'('avlTrees.node.f5'(A,B,C,_,D), 'avlTrees.tree.f4'(E,B,C,F)) :-
        'avlTrees.avlToBinary.p2'(A, E),
        'avlTrees.avlToBinary.p2'(D, F).
'~avlTrees.avlToBinary.p2.0'('avlTrees.node.f5'(A,B,C,_,D), 'avlTrees.tree.f4'(E,B,C,F)) :-
        '~avlTrees.avlToBinary.p2'(A, E),
        '~avlTrees.avlToBinary.p2'(D, F).
'avlTrees.adjust.p6'('avlTrees.no.c0', A, B, _, B, A).
'~avlTrees.adjust.p6'('avlTrees.no.c0', A, B, _, B, A).
'avlTrees.adjust.p6'('avlTrees.yes.c0', A, B, C, D, E) :-
        'avlTrees.adjustment.p4'(B, C, D, F),
        'avlTrees.rebalance.p4'(F, A, D, E).
'~avlTrees.adjust.p6'('avlTrees.yes.c0', A, B, C, D, E) :-
        '~avlTrees.adjustment.p4'(B, C, D, F),
        '~avlTrees.rebalance.p4'(F, A, D, E).
'avlTrees.deleteKey.p4'('avlTrees.node.f5'(A,B,C,D,E), F, G, H) :-
        call_residue_vars('strings':'strings.<.p2'(F,B), I),
        (   I=[] ->
            !
        ;   user:release_suspended(I)
        ),
        'avlTrees.deleteKey.p4'(A, F, J, K),
        'avlTrees.adjust.p6'(K, 'avlTrees.node.f5'(J,B,C,D,E), D, 'avlTrees.right.c0', L, G),
        'avlTrees.heightDecreased.p3'(D, L, H).
'~avlTrees.deleteKey.p4'('avlTrees.node.f5'(A,B,C,D,E), F, G, H) :-
        'strings':'~strings.<.p2'(F, B),
        '~avlTrees.deleteKey.p4'(A, F, I, J),
        '~avlTrees.adjust.p6'(J, 'avlTrees.node.f5'(I,B,C,D,E), D, 'avlTrees.right.c0', K, G),
        '~avlTrees.heightDecreased.p3'(D, K, H).
'avlTrees.deleteKey.p4'('avlTrees.node.f5'(A,B,C,D,E), F, G, H) :-
        call_residue_vars('strings':'strings.>.p2'(F,B), I),
        (   I=[] ->
            !
        ;   user:release_suspended(I)
        ),
        'avlTrees.deleteKey.p4'(E, F, J, K),
        'avlTrees.adjust.p6'(K, 'avlTrees.node.f5'(A,B,C,D,J), D, 'avlTrees.left.c0', L, G),
        'avlTrees.heightDecreased.p3'(D, L, H).
'~avlTrees.deleteKey.p4'('avlTrees.node.f5'(A,B,C,D,E), F, G, H) :-
        'strings':'~strings.>.p2'(F, B),
        '~avlTrees.deleteKey.p4'(E, F, I, J),
        '~avlTrees.adjust.p6'(J, 'avlTrees.node.f5'(A,B,C,D,I), D, 'avlTrees.left.c0', K, G),
        '~avlTrees.heightDecreased.p3'(D, K, H).
'avlTrees.deleteKey.p4'('avlTrees.node.f5'(A,B,_,C,D), E, F, G) :-
        call_residue_vars(E=B, H),
        (   H=[] ->
            !
        ;   user:release_suspended(H)
        ),
        'avlTrees.combine.p5'(A, C, D, F, G).
'~avlTrees.deleteKey.p4'('avlTrees.node.f5'(A,B,_,C,D), E, F, G) :-
        E=B,
        '~avlTrees.combine.p5'(A, C, D, F, G).
'avlTrees.balanceTable2.p3'('avlTrees.lH.c0', 'avlTrees.eQ.c0', 'avlTrees.rH.c0').
'~avlTrees.balanceTable2.p3'('avlTrees.lH.c0', 'avlTrees.eQ.c0', 'avlTrees.rH.c0').
'avlTrees.balanceTable2.p3'('avlTrees.rH.c0', 'avlTrees.lH.c0', 'avlTrees.eQ.c0').
'~avlTrees.balanceTable2.p3'('avlTrees.rH.c0', 'avlTrees.lH.c0', 'avlTrees.eQ.c0').
'avlTrees.balanceTable2.p3'('avlTrees.eQ.c0', 'avlTrees.eQ.c0', 'avlTrees.eQ.c0').
'~avlTrees.balanceTable2.p3'('avlTrees.eQ.c0', 'avlTrees.eQ.c0', 'avlTrees.eQ.c0').
'avlTrees.balanceTable1.p3'('avlTrees.eQ.c0', 'avlTrees.rH.c0', 'avlTrees.lH.c0').
'~avlTrees.balanceTable1.p3'('avlTrees.eQ.c0', 'avlTrees.rH.c0', 'avlTrees.lH.c0').
'avlTrees.balanceTable1.p3'('avlTrees.lH.c0', 'avlTrees.eQ.c0', 'avlTrees.eQ.c0').
'~avlTrees.balanceTable1.p3'('avlTrees.lH.c0', 'avlTrees.eQ.c0', 'avlTrees.eQ.c0').
'avlTrees.balanceTable1.p3'('avlTrees.rH.c0', 'avlTrees.eQ.c0', 'avlTrees.eQ.c0').
'~avlTrees.balanceTable1.p3'('avlTrees.rH.c0', 'avlTrees.eQ.c0', 'avlTrees.eQ.c0').
'avlTrees.amend.p7'('avlTrees.null.c0', A, B, C, 'avlTrees.node.f5'('avlTrees.null.c0',A,B,'avlTrees.eQ.c0','avlTrees.null.c0'), C, 'avlTrees.yes.c0').
'~avlTrees.amend.p7'('avlTrees.null.c0', A, B, C, 'avlTrees.node.f5'('avlTrees.null.c0',A,B,'avlTrees.eQ.c0','avlTrees.null.c0'), C, 'avlTrees.yes.c0').
'avlTrees.amend.p7'('avlTrees.node.f5'(A,B,C,D,E), F, G, H, I, J, K) :-
        call_residue_vars('strings':'strings.<.p2'(F,B), L),
        (   L=[] ->
            !
        ;   user:release_suspended(L)
        ),
        'avlTrees.amend.p7'(A, F, G, H, M, J, N),
        'avlTrees.adjust.p6'(N, 'avlTrees.node.f5'(M,B,C,D,E), D, 'avlTrees.left.c0', O, I),
        'avlTrees.heightIncreased.p3'(D, O, K).
'~avlTrees.amend.p7'('avlTrees.node.f5'(A,B,C,D,E), F, G, H, I, J, K) :-
        'strings':'~strings.<.p2'(F, B),
        '~avlTrees.amend.p7'(A, F, G, H, L, J, M),
        '~avlTrees.adjust.p6'(M, 'avlTrees.node.f5'(L,B,C,D,E), D, 'avlTrees.left.c0', N, I),
        '~avlTrees.heightIncreased.p3'(D, N, K).
'avlTrees.amend.p7'('avlTrees.node.f5'(A,B,C,D,E), F, G, H, I, J, K) :-
        call_residue_vars('strings':'strings.>.p2'(F,B), L),
        (   L=[] ->
            !
        ;   user:release_suspended(L)
        ),
        'avlTrees.amend.p7'(E, F, G, H, M, J, N),
        'avlTrees.adjust.p6'(N, 'avlTrees.node.f5'(A,B,C,D,M), D, 'avlTrees.right.c0', O, I),
        'avlTrees.heightIncreased.p3'(D, O, K).
'~avlTrees.amend.p7'('avlTrees.node.f5'(A,B,C,D,E), F, G, H, I, J, K) :-
        'strings':'~strings.>.p2'(F, B),
        '~avlTrees.amend.p7'(E, F, G, H, L, J, M),
        '~avlTrees.adjust.p6'(M, 'avlTrees.node.f5'(A,B,C,D,L), D, 'avlTrees.right.c0', N, I),
        '~avlTrees.heightIncreased.p3'(D, N, K).
'avlTrees.amend.p7'('avlTrees.node.f5'(A,B,C,D,E), F, G, _, H, I, J) :-
        call_residue_vars(F=B, K),
        (   K=[] ->
            !
        ;   user:release_suspended(K)
        ),
        H='avlTrees.node.f5'(A,F,G,D,E),
        I=C,
        J='avlTrees.no.c0'.
'~avlTrees.amend.p7'('avlTrees.node.f5'(A,B,C,D,E), F, G, _, H, I, J) :-
        F=B,
        H='avlTrees.node.f5'(A,F,G,D,E),
        I=C,
        J='avlTrees.no.c0'.
'avlTrees.combine.p5'('avlTrees.null.c0', _, A, A, 'avlTrees.yes.c0') :- !.
'~avlTrees.combine.p5'('avlTrees.null.c0', _, A, A, 'avlTrees.yes.c0').
'avlTrees.combine.p5'(A, _, 'avlTrees.null.c0', A, 'avlTrees.yes.c0') :- !.
'~avlTrees.combine.p5'(A, _, 'avlTrees.null.c0', A, 'avlTrees.yes.c0').
'avlTrees.combine.p5'(A, B, C, D, E) :-
        call_residue_vars((user:not_equal([],[A],A,'avlTrees.null.c0'),user:not_equal([],[C],C,'avlTrees.null.c0')), F),
        (   F=[] ->
            !
        ;   user:release_suspended(F)
        ),
        'avlTrees.removeRightmost.p5'(A, G, H, I, J),
        'avlTrees.adjust.p6'(J, 'avlTrees.node.f5'(I,G,H,B,C), B, 'avlTrees.right.c0', K, D),
        'avlTrees.heightDecreased.p3'(B, K, E).
'~avlTrees.combine.p5'(A, B, C, D, E) :-
        user:not_equal([], [A], A, 'avlTrees.null.c0'),
        user:not_equal([], [C], C, 'avlTrees.null.c0'),
        '~avlTrees.removeRightmost.p5'(A, F, G, H, I),
        '~avlTrees.adjust.p6'(I, 'avlTrees.node.f5'(H,F,G,B,C), B, 'avlTrees.right.c0', J, D),
        '~avlTrees.heightDecreased.p3'(B, J, E).
'avlTrees.insert.p5'('avlTrees.null.c0', A, B, 'avlTrees.node.f5'('avlTrees.null.c0',A,B,'avlTrees.eQ.c0','avlTrees.null.c0'), 'avlTrees.yes.c0').
'~avlTrees.insert.p5'('avlTrees.null.c0', A, B, 'avlTrees.node.f5'('avlTrees.null.c0',A,B,'avlTrees.eQ.c0','avlTrees.null.c0'), 'avlTrees.yes.c0').
'avlTrees.insert.p5'('avlTrees.node.f5'(A,B,C,D,E), F, G, H, I) :-
        call_residue_vars('strings':'strings.<.p2'(F,B), J),
        (   J=[] ->
            !
        ;   user:release_suspended(J)
        ),
        'avlTrees.insert.p5'(A, F, G, K, L),
        'avlTrees.adjust.p6'(L, 'avlTrees.node.f5'(K,B,C,D,E), D, 'avlTrees.left.c0', M, H),
        'avlTrees.heightIncreased.p3'(D, M, I).
'~avlTrees.insert.p5'('avlTrees.node.f5'(A,B,C,D,E), F, G, H, I) :-
        'strings':'~strings.<.p2'(F, B),
        '~avlTrees.insert.p5'(A, F, G, J, K),
        '~avlTrees.adjust.p6'(K, 'avlTrees.node.f5'(J,B,C,D,E), D, 'avlTrees.left.c0', L, H),
        '~avlTrees.heightIncreased.p3'(D, L, I).
'avlTrees.insert.p5'('avlTrees.node.f5'(A,B,C,D,E), F, G, H, I) :-
        call_residue_vars('strings':'strings.>.p2'(F,B), J),
        (   J=[] ->
            !
        ;   user:release_suspended(J)
        ),
        'avlTrees.insert.p5'(E, F, G, K, L),
        'avlTrees.adjust.p6'(L, 'avlTrees.node.f5'(A,B,C,D,K), D, 'avlTrees.right.c0', M, H),
        'avlTrees.heightIncreased.p3'(D, M, I).
'~avlTrees.insert.p5'('avlTrees.node.f5'(A,B,C,D,E), F, G, H, I) :-
        'strings':'~strings.>.p2'(F, B),
        '~avlTrees.insert.p5'(E, F, G, J, K),
        '~avlTrees.adjust.p6'(K, 'avlTrees.node.f5'(A,B,C,D,J), D, 'avlTrees.right.c0', L, H),
        '~avlTrees.heightIncreased.p3'(D, L, I).
'avlTrees.insert.p5'('avlTrees.node.f5'(A,B,C,D,E), F, G, H, I) :-
        call_residue_vars(F=B, J),
        (   J=[] ->
            !
        ;   user:release_suspended(J)
        ),
        G=C,
        H='avlTrees.node.f5'(A,B,C,D,E),
        I='avlTrees.no.c0'.
'~avlTrees.insert.p5'('avlTrees.node.f5'(A,B,C,D,E), F, G, H, I) :-
        F=B,
        G=C,
        H='avlTrees.node.f5'(A,B,C,D,E),
        I='avlTrees.no.c0'.
'avlTrees.heightIncreased.p3'('avlTrees.rH.c0', 'avlTrees.eQ.c0', 'avlTrees.no.c0') :- !.
'~avlTrees.heightIncreased.p3'('avlTrees.rH.c0', 'avlTrees.eQ.c0', 'avlTrees.no.c0').
'avlTrees.heightIncreased.p3'('avlTrees.lH.c0', 'avlTrees.eQ.c0', 'avlTrees.no.c0') :- !.
'~avlTrees.heightIncreased.p3'('avlTrees.lH.c0', 'avlTrees.eQ.c0', 'avlTrees.no.c0').
'avlTrees.heightIncreased.p3'('avlTrees.eQ.c0', 'avlTrees.lH.c0', 'avlTrees.yes.c0') :- !.
'~avlTrees.heightIncreased.p3'('avlTrees.eQ.c0', 'avlTrees.lH.c0', 'avlTrees.yes.c0').
'avlTrees.heightIncreased.p3'('avlTrees.eQ.c0', 'avlTrees.rH.c0', 'avlTrees.yes.c0') :- !.
'~avlTrees.heightIncreased.p3'('avlTrees.eQ.c0', 'avlTrees.rH.c0', 'avlTrees.yes.c0').
'avlTrees.heightIncreased.p3'(A, A, 'avlTrees.no.c0') :- !.
'~avlTrees.heightIncreased.p3'(A, A, 'avlTrees.no.c0').
'avlTrees.heightDecreased.p3'('avlTrees.lH.c0', 'avlTrees.rH.c0', 'avlTrees.no.c0') :- !.
'~avlTrees.heightDecreased.p3'('avlTrees.lH.c0', 'avlTrees.rH.c0', 'avlTrees.no.c0').
'avlTrees.heightDecreased.p3'('avlTrees.rH.c0', 'avlTrees.lH.c0', 'avlTrees.no.c0') :- !.
'~avlTrees.heightDecreased.p3'('avlTrees.rH.c0', 'avlTrees.lH.c0', 'avlTrees.no.c0').
'avlTrees.heightDecreased.p3'('avlTrees.lH.c0', 'avlTrees.eQ.c0', 'avlTrees.yes.c0') :- !.
'~avlTrees.heightDecreased.p3'('avlTrees.lH.c0', 'avlTrees.eQ.c0', 'avlTrees.yes.c0').
'avlTrees.heightDecreased.p3'('avlTrees.rH.c0', 'avlTrees.eQ.c0', 'avlTrees.yes.c0') :- !.
'~avlTrees.heightDecreased.p3'('avlTrees.rH.c0', 'avlTrees.eQ.c0', 'avlTrees.yes.c0').
'avlTrees.heightDecreased.p3'('avlTrees.eQ.c0', _, 'avlTrees.no.c0') :- !.
'~avlTrees.heightDecreased.p3'('avlTrees.eQ.c0', _, 'avlTrees.no.c0').
'avlTrees.heightDecreased.p3'(A, A, 'avlTrees.no.c0') :- !.
'~avlTrees.heightDecreased.p3'(A, A, 'avlTrees.no.c0').
'avlTrees.removeRightmost.p5'('avlTrees.node.f5'(A,B,C,D,E), F, G, H, I) :-
        call_residue_vars(user:not_equal([],[E],E,'avlTrees.null.c0'), J),
        (   J=[] ->
            !
        ;   user:release_suspended(J)
        ),
        'avlTrees.removeRightmost.p5'(E, F, G, K, L),
        'avlTrees.adjust.p6'(L, 'avlTrees.node.f5'(A,B,C,D,K), D, 'avlTrees.left.c0', M, H),
        'avlTrees.heightDecreased.p3'(D, M, I).
'~avlTrees.removeRightmost.p5'('avlTrees.node.f5'(A,B,C,D,E), F, G, H, I) :-
        user:not_equal([], [E], E, 'avlTrees.null.c0'),
        '~avlTrees.removeRightmost.p5'(E, F, G, J, K),
        '~avlTrees.adjust.p6'(K, 'avlTrees.node.f5'(A,B,C,D,J), D, 'avlTrees.left.c0', L, H),
        '~avlTrees.heightDecreased.p3'(D, L, I).
'avlTrees.removeRightmost.p5'('avlTrees.node.f5'(A,B,C,_,'avlTrees.null.c0'), B, C, A, 'avlTrees.yes.c0') :- !.
'~avlTrees.removeRightmost.p5'('avlTrees.node.f5'(A,B,C,_,'avlTrees.null.c0'), B, C, A, 'avlTrees.yes.c0').
'avlTrees.rebalance.p4'('avlTrees.no.c0', 'avlTrees.node.f5'(A,B,C,_,D), E, 'avlTrees.node.f5'(A,B,C,E,D)).
'~avlTrees.rebalance.p4'('avlTrees.no.c0', 'avlTrees.node.f5'(A,B,C,_,D), E, 'avlTrees.node.f5'(A,B,C,E,D)).
'avlTrees.rebalance.p4'('avlTrees.yes.c0', A, B, C) :-
        'avlTrees.restructure.p3'(A, B, C).
'~avlTrees.rebalance.p4'('avlTrees.yes.c0', A, B, C) :-
        '~avlTrees.restructure.p3'(A, B, C).
'avlTrees.restructure.p3'('avlTrees.node.f5'(A,B,C,'avlTrees.rH.c0','avlTrees.node.f5'(D,E,F,G,H)), I, J) :-
        call_residue_vars(user:not_equal([],[G],G,'avlTrees.lH.c0'), K),
        (   K=[] ->
            !
        ;   user:release_suspended(K)
        ),
        J='avlTrees.node.f5'('avlTrees.node.f5'(A,B,C,L,D),E,F,I,H),
        'avlTrees.balanceTable1.p3'(G, L, I).
'~avlTrees.restructure.p3'('avlTrees.node.f5'(A,B,C,'avlTrees.rH.c0','avlTrees.node.f5'(D,E,F,G,H)), I, J) :-
        user:not_equal([], [G], G, 'avlTrees.lH.c0'),
        J='avlTrees.node.f5'('avlTrees.node.f5'(A,B,C,K,D),E,F,I,H),
        '~avlTrees.balanceTable1.p3'(G, K, I).
'avlTrees.restructure.p3'('avlTrees.node.f5'('avlTrees.node.f5'(A,B,C,D,E),F,G,'avlTrees.lH.c0',H), I, J) :-
        call_residue_vars(user:not_equal([],[D],D,'avlTrees.rH.c0'), K),
        (   K=[] ->
            !
        ;   user:release_suspended(K)
        ),
        J='avlTrees.node.f5'(A,B,C,I,'avlTrees.node.f5'(E,F,G,L,H)),
        'avlTrees.balanceTable1.p3'(D, I, L).
'~avlTrees.restructure.p3'('avlTrees.node.f5'('avlTrees.node.f5'(A,B,C,D,E),F,G,'avlTrees.lH.c0',H), I, J) :-
        user:not_equal([], [D], D, 'avlTrees.rH.c0'),
        J='avlTrees.node.f5'(A,B,C,I,'avlTrees.node.f5'(E,F,G,K,H)),
        '~avlTrees.balanceTable1.p3'(D, I, K).
'avlTrees.restructure.p3'('avlTrees.node.f5'(A,B,C,'avlTrees.rH.c0','avlTrees.node.f5'('avlTrees.node.f5'(D,E,F,G,H),I,J,'avlTrees.lH.c0',K)), 'avlTrees.eQ.c0', 'avlTrees.node.f5'('avlTrees.node.f5'(A,B,C,L,D),E,F,'avlTrees.eQ.c0','avlTrees.node.f5'(H,I,J,M,K))) :- !,
        'avlTrees.balanceTable2.p3'(G, L, M).
'~avlTrees.restructure.p3'('avlTrees.node.f5'(A,B,C,'avlTrees.rH.c0','avlTrees.node.f5'('avlTrees.node.f5'(D,E,F,G,H),I,J,'avlTrees.lH.c0',K)), 'avlTrees.eQ.c0', 'avlTrees.node.f5'('avlTrees.node.f5'(A,B,C,L,D),E,F,'avlTrees.eQ.c0','avlTrees.node.f5'(H,I,J,M,K))) :-
        true,
        '~avlTrees.balanceTable2.p3'(G, L, M).
'avlTrees.restructure.p3'('avlTrees.node.f5'('avlTrees.node.f5'(A,B,C,'avlTrees.rH.c0','avlTrees.node.f5'(D,E,F,G,H)),I,J,'avlTrees.lH.c0',K), 'avlTrees.eQ.c0', 'avlTrees.node.f5'('avlTrees.node.f5'(A,B,C,L,D),E,F,'avlTrees.eQ.c0','avlTrees.node.f5'(H,I,J,M,K))) :- !,
        'avlTrees.balanceTable2.p3'(G, L, M).
'~avlTrees.restructure.p3'('avlTrees.node.f5'('avlTrees.node.f5'(A,B,C,'avlTrees.rH.c0','avlTrees.node.f5'(D,E,F,G,H)),I,J,'avlTrees.lH.c0',K), 'avlTrees.eQ.c0', 'avlTrees.node.f5'('avlTrees.node.f5'(A,B,C,L,D),E,F,'avlTrees.eQ.c0','avlTrees.node.f5'(H,I,J,M,K))) :-
        true,
        '~avlTrees.balanceTable2.p3'(G, L, M).
