:- module(sharedPrograms,[]).  %% converted djd
%% :- module('SharedPrograms', []).

:- discontiguous 'sharedPrograms.ChainExprToIntDL.P6'/6. %% added djd
:- discontiguous '~sharedPrograms.ChainExprToIntDL.P6'/6. %% added djd
:- discontiguous 'sharedPrograms.AddOtherModulesAux.P7'/7. %% added djd
:- discontiguous '~sharedPrograms.AddOtherModulesAux.P7'/7. %% added djd
:- discontiguous 'sharedPrograms.AddImportToPart.P6'/6. %% added djd
:- discontiguous '~sharedPrograms.AddImportToPart.P6'/6. %% added djd
:- discontiguous 'sharedPrograms.Accessible.P2'/2. %% added djd
:- discontiguous '~sharedPrograms.Accessible.P2'/2. %% added djd
:- discontiguous 'sharedPrograms.AddLiftedLanguage.P4'/4. %% added djd
:- discontiguous '~sharedPrograms.AddLiftedLanguage.P4'/4. %% added djd
:- discontiguous 'sharedPrograms.BinaryConnective.P3'/3. %% added djd
:- discontiguous '~sharedPrograms.BinaryConnective.P3'/3. %% added djd
:- discontiguous 'sharedPrograms.AtomToIntDL.P8'/8. %% added djd
:- discontiguous '~sharedPrograms.AtomToIntDL.P8'/8. %% added djd
:- discontiguous 'sharedPrograms.BinConnectiveChars.P3'/3. %% added djd
:- discontiguous '~sharedPrograms.BinConnectiveChars.P3'/3. %% added djd
:- discontiguous 'sharedPrograms.CLPrec.P2'/2. %% added djd
:- discontiguous '~sharedPrograms.CLPrec.P2'/2. %% added djd
:- discontiguous 'sharedPrograms.BindsTighter.P2'/2. %% added djd
:- discontiguous '~sharedPrograms.BindsTighter.P2'/2. %% added djd
:- discontiguous 'sharedPrograms.CRPrec.P2'/2. %% added djd
:- discontiguous '~sharedPrograms.CRPrec.P2'/2. %% added djd
:- discontiguous 'sharedPrograms.CheckHeadArgs1.P4'/4. %% added djd
:- discontiguous '~sharedPrograms.CheckHeadArgs1.P4'/4. %% added djd
:- discontiguous 'sharedPrograms.CheckHeadArgs.P4'/4. %% added djd
:- discontiguous '~sharedPrograms.CheckHeadArgs.P4'/4. %% added djd
:- discontiguous 'sharedPrograms.ContainsConditional.P1'/1. %% added djd
:- discontiguous '~sharedPrograms.ContainsConditional.P1'/1. %% added djd
:- discontiguous 'sharedPrograms.DivideBindings.P4'/4. %% added djd
:- discontiguous '~sharedPrograms.DivideBindings.P4'/4. %% added djd
:- discontiguous 'sharedPrograms.DeleteUnderscores.P2'/2. %% added djd
:- discontiguous '~sharedPrograms.DeleteUnderscores.P2'/2. %% added djd
:- discontiguous 'sharedPrograms.DivideBindingsAux.P5'/5. %% added djd
:- discontiguous '~sharedPrograms.DivideBindingsAux.P5'/5. %% added djd
:- discontiguous 'sharedPrograms.ExpandStringAux.P3'/3. %% added djd
:- discontiguous '~sharedPrograms.ExpandStringAux.P3'/3. %% added djd
:- discontiguous 'sharedPrograms.FixVariableTyping.P2'/2. %% added djd
:- discontiguous '~sharedPrograms.FixVariableTyping.P2'/2. %% added djd
:- discontiguous 'sharedPrograms.FormulaToIntDL.P6'/6. %% added djd
:- discontiguous '~sharedPrograms.FormulaToIntDL.P6'/6. %% added djd
:- discontiguous 'sharedPrograms.ImportedLanguage.P6'/6. %% added djd
:- discontiguous '~sharedPrograms.ImportedLanguage.P6'/6. %% added djd
:- discontiguous 'sharedPrograms.HeadAtom.P9'/9. %% added djd
:- discontiguous '~sharedPrograms.HeadAtom.P9'/9. %% added djd
:- discontiguous 'sharedPrograms.KindHasPart.P2'/2. %% added djd
:- discontiguous '~sharedPrograms.KindHasPart.P2'/2. %% added djd
:- discontiguous 'sharedPrograms.IsVariable.P1'/1. %% added djd
:- discontiguous '~sharedPrograms.IsVariable.P1'/1. %% added djd
:- discontiguous 'sharedPrograms.LPrec.P2'/2. %% added djd
:- discontiguous '~sharedPrograms.LPrec.P2'/2. %% added djd
:- discontiguous 'sharedPrograms.ListTypesInLanguage.P2'/2. %% added djd
:- discontiguous '~sharedPrograms.ListTypesInLanguage.P2'/2. %% added djd
:- discontiguous 'sharedPrograms.LookupParDictAux.P5'/5. %% added djd
:- discontiguous '~sharedPrograms.LookupParDictAux.P5'/5. %% added djd
:- discontiguous 'sharedPrograms.LookupVarTypingAux.P5'/5. %% added djd
:- discontiguous '~sharedPrograms.LookupVarTypingAux.P5'/5. %% added djd
:- discontiguous 'sharedPrograms.MeltVariableTyping.P4'/4. %% added djd
:- discontiguous '~sharedPrograms.MeltVariableTyping.P4'/4. %% added djd
:- discontiguous 'sharedPrograms.MeltType.P4'/4. %% added djd
:- discontiguous '~sharedPrograms.MeltType.P4'/4. %% added djd
:- discontiguous 'sharedPrograms.MatchingName.P3'/3. %% added djd
:- discontiguous '~sharedPrograms.MatchingName.P3'/3. %% added djd
:- discontiguous 'sharedPrograms.MeltTypeList.P4'/4. %% added djd
:- discontiguous '~sharedPrograms.MeltTypeList.P4'/4. %% added djd
:- discontiguous 'sharedPrograms.MeltedAtomTyping.P8'/8. %% added djd
:- discontiguous '~sharedPrograms.MeltedAtomTyping.P8'/8. %% added djd
:- discontiguous 'sharedPrograms.MeltedArgumentTyping.P9'/9. %% added djd
:- discontiguous '~sharedPrograms.MeltedArgumentTyping.P9'/9. %% added djd
:- discontiguous 'sharedPrograms.MeltedTermType.P9'/9. %% added djd
:- discontiguous '~sharedPrograms.MeltedTermType.P9'/9. %% added djd
:- discontiguous 'sharedPrograms.MeltedStandardTyping.P8'/8. %% added djd
:- discontiguous '~sharedPrograms.MeltedStandardTyping.P8'/8. %% added djd
:- discontiguous 'sharedPrograms.OpenKind.P1'/1. %% added djd
:- discontiguous '~sharedPrograms.OpenKind.P1'/1. %% added djd
:- discontiguous 'sharedPrograms.MustBracketThen.P1'/1. %% added djd
:- discontiguous '~sharedPrograms.MustBracketThen.P1'/1. %% added djd
:- discontiguous 'sharedPrograms.QuantifiedFormula.P3'/3. %% added djd
:- discontiguous '~sharedPrograms.QuantifiedFormula.P3'/3. %% added djd
:- discontiguous 'sharedPrograms.RPrec.P2'/2. %% added djd
:- discontiguous '~sharedPrograms.RPrec.P2'/2. %% added djd
:- discontiguous 'sharedPrograms.QuantifierChars.P3'/3. %% added djd
:- discontiguous '~sharedPrograms.QuantifierChars.P3'/3. %% added djd
:- discontiguous 'sharedPrograms.ReformatDelays.P3'/3. %% added djd
:- discontiguous '~sharedPrograms.ReformatDelays.P3'/3. %% added djd
:- discontiguous 'sharedPrograms.RestVarListToIntDL.P6'/6. %% added djd
:- discontiguous '~sharedPrograms.RestVarListToIntDL.P6'/6. %% added djd
:- discontiguous 'sharedPrograms.SimpleCondToIntDL.P3'/3. %% added djd
:- discontiguous '~sharedPrograms.SimpleCondToIntDL.P3'/3. %% added djd
:- discontiguous 'sharedPrograms.TypeInLanguage.P2'/2. %% added djd
:- discontiguous '~sharedPrograms.TypeInLanguage.P2'/2. %% added djd
:- discontiguous 'sharedPrograms.TermToIntDL.P9'/9. %% added djd
:- discontiguous '~sharedPrograms.TermToIntDL.P9'/9. %% added djd
:- discontiguous 'sharedPrograms.TermListToIntDLAux.P6'/6. %% added djd
:- discontiguous '~sharedPrograms.TermListToIntDLAux.P6'/6. %% added djd
:- discontiguous 'sharedPrograms.TermToIntDLAux.P11'/11. %% added djd
:- discontiguous '~sharedPrograms.TermToIntDLAux.P11'/11. %% added djd
:- discontiguous 'sharedPrograms.TypeListToIntDLAux.P4'/4. %% added djd
:- discontiguous '~sharedPrograms.TypeListToIntDLAux.P4'/4. %% added djd
:- discontiguous 'sharedPrograms.TypeToIntDL.P4'/4. %% added djd
:- discontiguous '~sharedPrograms.TypeToIntDL.P4'/4. %% added djd
:- discontiguous 'sharedPrograms.UpdateDelays.P6'/6. %% added djd
:- discontiguous '~sharedPrograms.UpdateDelays.P6'/6. %% added djd


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

'sharedPrograms.ModulePartInProgram.P3'('ProgDefs.Program.F4'(_,A,_,_), B, C) :-
        'sharedPrograms.avlFind.P3'(A, B, 'ProgDefs.ModDef.F4'(D,_,_,_)),
        'sharedPrograms.KindHasPart.P2'(D, C).
'~sharedPrograms.ModulePartInProgram.P3'('ProgDefs.Program.F4'(_,A,_,_), B, C) :-
        '~sharedPrograms.avlFind.P3'(A, B, 'ProgDefs.ModDef.F4'(D,_,_,_)),
        '~sharedPrograms.KindHasPart.P2'(D, C).
'sharedPrograms.InitialiseLanguage.P2'(A, B) :-
        'sharedPrograms.InsertSymbol.P5'('MetaDefs.Name.F4'('"','"True','MetaDefs.Proposition.C0',0), A, 'ProgDefs.Exported.C0', 'ProgDefs.PropositionDecl.C0', C),
        'sharedPrograms.InsertSymbol.P5'('MetaDefs.Name.F4'('"','"False','MetaDefs.Proposition.C0',0), C, 'ProgDefs.Exported.C0', 'ProgDefs.PropositionDecl.C0', D),
        'sharedPrograms.InsertSymbol.P5'('MetaDefs.Name.F4'('"','"=','MetaDefs.Predicate.C0',2), D, 'ProgDefs.Exported.C0', 'ProgDefs.PredicateDecl.F3'(2,'Syntax.ZPZ.C0',['MetaDefs.Par.F1'(0),'MetaDefs.Par.F1'(0)]), E),
        'sharedPrograms.InsertSymbol.P5'('MetaDefs.Name.F4'('"','"~=','MetaDefs.Predicate.C0',2), E, 'ProgDefs.Exported.C0', 'ProgDefs.PredicateDecl.F3'(2,'Syntax.ZPZ.C0',['MetaDefs.Par.F1'(0),'MetaDefs.Par.F1'(0)]), B).
'~sharedPrograms.InitialiseLanguage.P2'(A, B) :-
        '~sharedPrograms.InsertSymbol.P5'('MetaDefs.Name.F4'('"','"True','MetaDefs.Proposition.C0',0), A, 'ProgDefs.Exported.C0', 'ProgDefs.PropositionDecl.C0', C),
        '~sharedPrograms.InsertSymbol.P5'('MetaDefs.Name.F4'('"','"False','MetaDefs.Proposition.C0',0), C, 'ProgDefs.Exported.C0', 'ProgDefs.PropositionDecl.C0', D),
        '~sharedPrograms.InsertSymbol.P5'('MetaDefs.Name.F4'('"','"=','MetaDefs.Predicate.C0',2), D, 'ProgDefs.Exported.C0', 'ProgDefs.PredicateDecl.F3'(2,'Syntax.ZPZ.C0',['MetaDefs.Par.F1'(0),'MetaDefs.Par.F1'(0)]), E),
        '~sharedPrograms.InsertSymbol.P5'('MetaDefs.Name.F4'('"','"~=','MetaDefs.Predicate.C0',2), E, 'ProgDefs.Exported.C0', 'ProgDefs.PredicateDecl.F3'(2,'Syntax.ZPZ.C0',['MetaDefs.Par.F1'(0),'MetaDefs.Par.F1'(0)]), B).
'sharedPrograms.ChainExprToIntDL.P6'('MetaDefs.CTerm.F1'(_), _, _, _, A, A).
'~sharedPrograms.ChainExprToIntDL.P6'('MetaDefs.CTerm.F1'(_), _, _, _, A, A).
'sharedPrograms.ChainExprToIntDL.P6'('MetaDefs.Var.F2'(A,B), C, D, E, F, G) :-
        'sharedPrograms.CharDL.P3'('"|', F, H),
        'sharedPrograms.TermToIntDL.P9'('MetaDefs.Var.F2'(A,B), C, D, E, _, _, _, H, G).
'~sharedPrograms.ChainExprToIntDL.P6'('MetaDefs.Var.F2'(A,B), C, D, E, F, G) :-
        '~sharedPrograms.CharDL.P3'('"|', F, H),
        '~sharedPrograms.TermToIntDL.P9'('MetaDefs.Var.F2'(A,B), C, D, E, _, _, _, H, G).
'sharedPrograms.ChainExprToIntDL.P6'('MetaDefs.Var.F1'(A), B, C, D, E, F) :-
        'sharedPrograms.CharDL.P3'('"|', E, G),
        'sharedPrograms.TermToIntDL.P9'('MetaDefs.Var.F1'(A), B, C, D, _, _, _, G, F).
'~sharedPrograms.ChainExprToIntDL.P6'('MetaDefs.Var.F1'(A), B, C, D, E, F) :-
        '~sharedPrograms.CharDL.P3'('"|', E, G),
        '~sharedPrograms.TermToIntDL.P9'('MetaDefs.Var.F1'(A), B, C, D, _, _, _, G, F).
'sharedPrograms.ChainExprToIntDL.P6'('MetaDefs.Term.F2'(_,[A,B]), C, D, E, F, G) :-
        'sharedPrograms.CharDL.P3'('",', F, H),
        'sharedPrograms.TermToIntDL.P9'(A, C, D, E, _, _, _, H, I),
        'sharedPrograms.ChainExprToIntDL.P6'(B, C, D, E, I, G).
'~sharedPrograms.ChainExprToIntDL.P6'('MetaDefs.Term.F2'(_,[A,B]), C, D, E, F, G) :-
        '~sharedPrograms.CharDL.P3'('",', F, H),
        '~sharedPrograms.TermToIntDL.P9'(A, C, D, E, _, _, _, H, I),
        '~sharedPrograms.ChainExprToIntDL.P6'(B, C, D, E, I, G).
'sharedPrograms.AddOtherModulesAux.P7'([], A, B, C, A, B, C).
'~sharedPrograms.AddOtherModulesAux.P7'([], A, B, C, A, B, C).
'sharedPrograms.AddOtherModulesAux.P7'([A|B], C, D, E, F, G, H) :-
        'sharedPrograms.AddModule.P7'(A, C, D, E, I, J, K),
        'sharedPrograms.AddOtherModulesAux.P7'(B, I, J, K, F, G, H).
'~sharedPrograms.AddOtherModulesAux.P7'([A|B], C, D, E, F, G, H) :-
        '~sharedPrograms.AddModule.P7'(A, C, D, E, I, J, K),
        '~sharedPrograms.AddOtherModulesAux.P7'(B, I, J, K, F, G, H).
'sharedPrograms.AddModule.P7'(A, B, C, D, E, F, G) :-
        user:goedel_freeze(ground([A]), ('SharedPrograms':'~sharedPrograms.SystemModule.P1'(A),true->'SharedPrograms':'sharedPrograms.SystemModuleRep.P4'(A,H,I,J),'avlTrees':'avlTrees.avlInsert.P4'(B,A,H,K),'avlTrees':'avlTrees.avlInsert.P4'(C,A,I,L),'avlTrees':'avlTrees.avlInsert.P4'(D,A,'ProgDefs.Code.F2'(0,J),M),'SharedPrograms':'sharedPrograms.AddOtherModules.P7'(H,K,L,M,E,F,G);'avlTrees':'avlTrees.avlInsert.P4'(B,A,'ProgDefs.ModDef.F4'('ProgDefs.NormalKind.C0',[],[],[]),E),F=C,'avlTrees':'avlTrees.avlIsEmpty.P1'(N),'SharedPrograms':'sharedPrograms.NextModuleVersion.P2'(A,O),'avlTrees':'avlTrees.avlInsert.P4'(D,A,'ProgDefs.Code.F2'(O,N),G))).
'~sharedPrograms.AddModule.P7'(A, B, C, D, E, F, G) :-
        user:goedel_freeze(ground([A]), ('SharedPrograms':'~sharedPrograms.SystemModule.P1'(A),true->'SharedPrograms':'~sharedPrograms.SystemModuleRep.P4'(A,H,I,J),'avlTrees':'~avlTrees.avlInsert.P4'(B,A,H,K),'avlTrees':'~avlTrees.avlInsert.P4'(C,A,I,L),'avlTrees':'~avlTrees.avlInsert.P4'(D,A,'ProgDefs.Code.F2'(0,J),M),'SharedPrograms':'~sharedPrograms.AddOtherModules.P7'(H,K,L,M,E,F,G);'avlTrees':'~avlTrees.avlInsert.P4'(B,A,'ProgDefs.ModDef.F4'('ProgDefs.NormalKind.C0',[],[],[]),E),F=C,'avlTrees':'~avlTrees.avlIsEmpty.P1'(N),'SharedPrograms':'~sharedPrograms.NextModuleVersion.P2'(A,O),'avlTrees':'~avlTrees.avlInsert.P4'(D,A,'ProgDefs.Code.F2'(O,N),G))).
'sharedPrograms.AddImportToPart.P6'('ProgDefs.Export.C0', A, B, C, [A|B], C).
'~sharedPrograms.AddImportToPart.P6'('ProgDefs.Export.C0', A, B, C, [A|B], C).
'sharedPrograms.AddImportToPart.P6'('ProgDefs.Closed.C0', A, B, C, [A|B], C).
'~sharedPrograms.AddImportToPart.P6'('ProgDefs.Closed.C0', A, B, C, [A|B], C).
'sharedPrograms.AddImportToPart.P6'('ProgDefs.Local.C0', A, B, C, B, [A|C]).
'~sharedPrograms.AddImportToPart.P6'('ProgDefs.Local.C0', A, B, C, B, [A|C]).
'sharedPrograms.AddImportToPart.P6'('ProgDefs.Module.C0', A, B, C, B, [A|C]).
'~sharedPrograms.AddImportToPart.P6'('ProgDefs.Module.C0', A, B, C, B, [A|C]).
'sharedPrograms.Accessible.P2'('ProgDefs.Exported.C0', 'ProgDefs.Exported.C0').
'~sharedPrograms.Accessible.P2'('ProgDefs.Exported.C0', 'ProgDefs.Exported.C0').
'sharedPrograms.Accessible.P2'('ProgDefs.Hidden.C0', _).
'~sharedPrograms.Accessible.P2'('ProgDefs.Hidden.C0', _).
'sharedPrograms.AddLiftedLanguage.P4'([], _, A, A).
'~sharedPrograms.AddLiftedLanguage.P4'([], _, A, A).
'sharedPrograms.AddLiftedLanguage.P4'(['ProgDefs.Lift.F2'(B,C)|A], D, E, F) :-
        user:goedel_freeze(ground([D,B]), ('Lists':'~Lists.Member.P2'(B,D),true->G=E;'avlTrees':'avlTrees.avlIsEmpty.P1'(H),user:goedel_freeze(ground([H,B,E]),if(('avlTrees':'~avlTrees.avlUpdate.P5'(E,B,'ProgDefs.Module.F3'('ProgDefs.Exported.C0','ProgDefs.Categories.F2'(I,H),[]),J,'ProgDefs.Module.F3'(_,'ProgDefs.Categories.F2'(K,_),_)),true),('avlTrees':'avlTrees.avlJoin.P3'(C,K,I),G=J),'avlTrees':'avlTrees.avlInsert.P4'(E,B,'ProgDefs.Module.F3'('ProgDefs.Exported.C0','ProgDefs.Categories.F2'(C,H),[]),G))))),
        'sharedPrograms.AddLiftedLanguage.P4'(A, D, G, F).
'~sharedPrograms.AddLiftedLanguage.P4'(['ProgDefs.Lift.F2'(B,C)|A], D, E, F) :-
        user:goedel_freeze(ground([D,B]), ('Lists':'~Lists.Member.P2'(B,D),true->G=E;'avlTrees':'~avlTrees.avlIsEmpty.P1'(H),user:goedel_freeze(ground([H,B,E]),if(('avlTrees':'~avlTrees.avlUpdate.P5'(E,B,'ProgDefs.Module.F3'('ProgDefs.Exported.C0','ProgDefs.Categories.F2'(I,H),[]),J,'ProgDefs.Module.F3'(_,'ProgDefs.Categories.F2'(K,_),_)),true),('avlTrees':'~avlTrees.avlJoin.P3'(C,K,I),G=J),'avlTrees':'~avlTrees.avlInsert.P4'(E,B,'ProgDefs.Module.F3'('ProgDefs.Exported.C0','ProgDefs.Categories.F2'(C,H),[]),G))))),
        '~sharedPrograms.AddLiftedLanguage.P4'(A, D, G, F).
'sharedPrograms.AddOtherModules.P7'('ProgDefs.ModDef.F4'(_,A,B,C), D, E, F, G, H, I) :-
        'Lists':'Lists.Append.P3'(C, A, J),
        'Lists':'Lists.Append.P3'(B, J, K),
        'sharedPrograms.AddOtherModulesAux.P7'(K, D, E, F, G, H, I).
'~sharedPrograms.AddOtherModules.P7'('ProgDefs.ModDef.F4'(_,A,B,C), D, E, F, G, H, I) :-
        'Lists':'~Lists.Append.P3'(C, A, J),
        'Lists':'~Lists.Append.P3'(B, J, K),
        '~sharedPrograms.AddOtherModulesAux.P7'(K, D, E, F, G, H, I).
'sharedPrograms.BinaryConnective.P3'('MetaDefs.&''.F2'(A,B), A, B).
'~sharedPrograms.BinaryConnective.P3'('MetaDefs.&''.F2'(A,B), A, B).
'sharedPrograms.BinaryConnective.P3'('MetaDefs.\\/''.F2'(A,B), A, B). % added \ djd
'~sharedPrograms.BinaryConnective.P3'('MetaDefs.\\/''.F2'(A,B), A, B). % added \ djd
'sharedPrograms.BinaryConnective.P3'('MetaDefs.->''.F2'(A,B), A, B).
'~sharedPrograms.BinaryConnective.P3'('MetaDefs.->''.F2'(A,B), A, B).
'sharedPrograms.BinaryConnective.P3'('MetaDefs.<-''.F2'(A,B), A, B).
'~sharedPrograms.BinaryConnective.P3'('MetaDefs.<-''.F2'(A,B), A, B).
'sharedPrograms.BinaryConnective.P3'('MetaDefs.<->''.F2'(A,B), A, B).
'~sharedPrograms.BinaryConnective.P3'('MetaDefs.<->''.F2'(A,B), A, B).
'sharedPrograms.BaseInLanguage.P2'(A, B) :-
        'sharedPrograms.TypeSymbolInLanguage.P3'(A, B, 'ProgDefs.BaseDecl.C0').
'~sharedPrograms.BaseInLanguage.P2'(A, B) :-
        '~sharedPrograms.TypeSymbolInLanguage.P3'(A, B, 'ProgDefs.BaseDecl.C0').
'sharedPrograms.AtomToIntDL.P8'('Syntax.NoPredInd.C0', 'MetaDefs.Name.F4'(A,B,C,D), E, F, G, H, I, J) :-
        user:goedel_freeze(ground([D,C,A,B]), ((A='"Integers',B='"Interval',C='MetaDefs.Predicate.C0',D=3),true->E=[K,L,M],'SharedPrograms':'sharedPrograms.ClassifyToken.P2'('"=<',N),'Strings':'Strings.StringInts.P2'('"=<',O),'SharedPrograms':'sharedPrograms.TermToIntDL.P9'(K,F,G,H,_,_,P,I,Q),'SharedPrograms':'sharedPrograms.SpaceIfNeeded.P4'(P,N,Q,R),'Lists':'Lists.Append.P3'(O,S,R),'SharedPrograms':'sharedPrograms.TermToIntDL.P9'(L,F,G,H,_,T,U,V,W),'SharedPrograms':'sharedPrograms.SpaceIfNeeded.P4'(N,T,S,V),'SharedPrograms':'sharedPrograms.SpaceIfNeeded.P4'(U,N,W,X),'Lists':'Lists.Append.P3'(O,Y,X),'SharedPrograms':'sharedPrograms.TermToIntDL.P9'(M,F,G,H,_,Z,_,A1,J),'SharedPrograms':'sharedPrograms.SpaceIfNeeded.P4'(N,Z,Y,A1);'Strings':'Strings.StringInts.P2'(B,B1),'Lists':'Lists.Append.P3'(B1,Q,I),'SharedPrograms':'sharedPrograms.CharDL.P3'('"(',Q,R),'SharedPrograms':'sharedPrograms.TermListToIntDL.P6'(E,F,G,H,R,S),'SharedPrograms':'sharedPrograms.CharDL.P3'('")',S,J))).
'~sharedPrograms.AtomToIntDL.P8'('Syntax.NoPredInd.C0', 'MetaDefs.Name.F4'(A,B,C,D), E, F, G, H, I, J) :-
        user:goedel_freeze(ground([D,C,A,B]), ((A='"Integers',B='"Interval',C='MetaDefs.Predicate.C0',D=3),true->E=[K,L,M],'SharedPrograms':'~sharedPrograms.ClassifyToken.P2'('"=<',N),'Strings':'~Strings.StringInts.P2'('"=<',O),'SharedPrograms':'~sharedPrograms.TermToIntDL.P9'(K,F,G,H,_,_,P,I,Q),'SharedPrograms':'~sharedPrograms.SpaceIfNeeded.P4'(P,N,Q,R),'Lists':'~Lists.Append.P3'(O,S,R),'SharedPrograms':'~sharedPrograms.TermToIntDL.P9'(L,F,G,H,_,T,U,V,W),'SharedPrograms':'~sharedPrograms.SpaceIfNeeded.P4'(N,T,S,V),'SharedPrograms':'~sharedPrograms.SpaceIfNeeded.P4'(U,N,W,X),'Lists':'~Lists.Append.P3'(O,Y,X),'SharedPrograms':'~sharedPrograms.TermToIntDL.P9'(M,F,G,H,_,Z,_,A1,J),'SharedPrograms':'~sharedPrograms.SpaceIfNeeded.P4'(N,Z,Y,A1);'Strings':'~Strings.StringInts.P2'(B,B1),'Lists':'~Lists.Append.P3'(B1,Q,I),'SharedPrograms':'~sharedPrograms.CharDL.P3'('"(',Q,R),'SharedPrograms':'~sharedPrograms.TermListToIntDL.P6'(E,F,G,H,R,S),'SharedPrograms':'~sharedPrograms.CharDL.P3'('")',S,J))).
'sharedPrograms.AtomToIntDL.P8'('Syntax.ZPZ.C0', 'MetaDefs.Name.F4'(_,A,_,_), [B,C], D, E, F, G, H) :-
        'sharedPrograms.TermToIntDL.P9'(B, D, E, F, _, _, I, G, J),
        'sharedPrograms.ClassifyToken.P2'(A, K),
        'sharedPrograms.SpaceIfNeeded.P4'(I, K, J, L),
        'Strings':'Strings.StringInts.P2'(A, M),
        'Lists':'Lists.Append.P3'(M, N, L),
        'sharedPrograms.TermToIntDL.P9'(C, D, E, F, _, O, _, P, H),
        'sharedPrograms.SpaceIfNeeded.P4'(O, K, N, P).
'~sharedPrograms.AtomToIntDL.P8'('Syntax.ZPZ.C0', 'MetaDefs.Name.F4'(_,A,_,_), [B,C], D, E, F, G, H) :-
        '~sharedPrograms.TermToIntDL.P9'(B, D, E, F, _, _, I, G, J),
        '~sharedPrograms.ClassifyToken.P2'(A, K),
        '~sharedPrograms.SpaceIfNeeded.P4'(I, K, J, L),
        'Strings':'~Strings.StringInts.P2'(A, M),
        'Lists':'~Lists.Append.P3'(M, N, L),
        '~sharedPrograms.TermToIntDL.P9'(C, D, E, F, _, O, _, P, H),
        '~sharedPrograms.SpaceIfNeeded.P4'(O, K, N, P).
'sharedPrograms.AtomToIntDL.P8'('Syntax.ZP.C0', 'MetaDefs.Name.F4'(_,A,_,_), [B], C, D, E, F, G) :-
        'sharedPrograms.TermToIntDL.P9'(B, C, D, E, _, _, H, F, I),
        'sharedPrograms.ClassifyToken.P2'(A, J),
        'sharedPrograms.SpaceIfNeeded.P4'(H, J, I, K),
        'Strings':'Strings.StringInts.P2'(A, L),
        'Lists':'Lists.Append.P3'(L, G, K).
'~sharedPrograms.AtomToIntDL.P8'('Syntax.ZP.C0', 'MetaDefs.Name.F4'(_,A,_,_), [B], C, D, E, F, G) :-
        '~sharedPrograms.TermToIntDL.P9'(B, C, D, E, _, _, H, F, I),
        '~sharedPrograms.ClassifyToken.P2'(A, J),
        '~sharedPrograms.SpaceIfNeeded.P4'(H, J, I, K),
        'Strings':'~Strings.StringInts.P2'(A, L),
        'Lists':'~Lists.Append.P3'(L, G, K).
'sharedPrograms.AtomToIntDL.P8'('Syntax.PZ.C0', 'MetaDefs.Name.F4'(_,A,_,_), [B], C, D, E, F, G) :-
        'sharedPrograms.ClassifyToken.P2'(A, H),
        'Strings':'Strings.StringInts.P2'(A, I),
        'Lists':'Lists.Append.P3'(I, J, F),
        'sharedPrograms.TermToIntDL.P9'(B, C, D, E, _, K, _, L, G),
        'sharedPrograms.SpaceIfNeeded.P4'(K, H, J, L).
'~sharedPrograms.AtomToIntDL.P8'('Syntax.PZ.C0', 'MetaDefs.Name.F4'(_,A,_,_), [B], C, D, E, F, G) :-
        '~sharedPrograms.ClassifyToken.P2'(A, H),
        'Strings':'~Strings.StringInts.P2'(A, I),
        'Lists':'~Lists.Append.P3'(I, J, F),
        '~sharedPrograms.TermToIntDL.P9'(B, C, D, E, _, K, _, L, G),
        '~sharedPrograms.SpaceIfNeeded.P4'(K, H, J, L).
'sharedPrograms.AndSeqToIntDL.P3'('ProgDefs.And.F2'(A,B), C, D) :-
        'sharedPrograms.SimpleCondToIntDL.P3'(A, C, E),
        'Strings':'Strings.StringInts.P2'('" & ', F),
        'Lists':'Lists.Append.P3'(F, G, E),
        user:goedel_freeze(ground([B]), (B='ProgDefs.And.F2'(_,_),true->'SharedPrograms':'sharedPrograms.AndSeqToIntDL.P3'(B,G,D);'SharedPrograms':'sharedPrograms.SimpleCondToIntDL.P3'(B,G,D))).
'~sharedPrograms.AndSeqToIntDL.P3'('ProgDefs.And.F2'(A,B), C, D) :-
        '~sharedPrograms.SimpleCondToIntDL.P3'(A, C, E),
        'Strings':'~Strings.StringInts.P2'('" & ', F),
        'Lists':'~Lists.Append.P3'(F, G, E),
        user:goedel_freeze(ground([B]), (B='ProgDefs.And.F2'(_,_),true->'SharedPrograms':'~sharedPrograms.AndSeqToIntDL.P3'(B,G,D);'SharedPrograms':'~sharedPrograms.SimpleCondToIntDL.P3'(B,G,D))).
'sharedPrograms.BinConnectiveChars.P3'('MetaDefs.&''.F2'(_,_), A, B) :-
        'Strings':'Strings.StringInts.P2'('" & ', C),
        'Lists':'Lists.Append.P3'(C, B, A).
'~sharedPrograms.BinConnectiveChars.P3'('MetaDefs.&''.F2'(_,_), A, B) :-
        'Strings':'~Strings.StringInts.P2'('" & ', C),
        'Lists':'~Lists.Append.P3'(C, B, A).
'sharedPrograms.BinConnectiveChars.P3'('MetaDefs.\\/''.F2'(_,_), A, B) :- % added \ djd
        'Strings':'Strings.StringInts.P2'('" \\/ ', C), % added \ djd
        'Lists':'Lists.Append.P3'(C, B, A).
'~sharedPrograms.BinConnectiveChars.P3'('MetaDefs.\\/''.F2'(_,_), A, B) :- % added \ djd
        'Strings':'~Strings.StringInts.P2'('" \\/ ', C), % added \ djd
        'Lists':'~Lists.Append.P3'(C, B, A).
'sharedPrograms.BinConnectiveChars.P3'('MetaDefs.->''.F2'(_,_), A, B) :-
        'Strings':'Strings.StringInts.P2'('" -> ', C),
        'Lists':'Lists.Append.P3'(C, B, A).
'~sharedPrograms.BinConnectiveChars.P3'('MetaDefs.->''.F2'(_,_), A, B) :-
        'Strings':'~Strings.StringInts.P2'('" -> ', C),
        'Lists':'~Lists.Append.P3'(C, B, A).
'sharedPrograms.BinConnectiveChars.P3'('MetaDefs.<-''.F2'(_,_), A, B) :-
        'Strings':'Strings.StringInts.P2'('" <- ', C),
        'Lists':'Lists.Append.P3'(C, B, A).
'~sharedPrograms.BinConnectiveChars.P3'('MetaDefs.<-''.F2'(_,_), A, B) :-
        'Strings':'~Strings.StringInts.P2'('" <- ', C),
        'Lists':'~Lists.Append.P3'(C, B, A).
'sharedPrograms.BinConnectiveChars.P3'('MetaDefs.<->''.F2'(_,_), A, B) :-
        'Strings':'Strings.StringInts.P2'('" <-> ', C),
        'Lists':'Lists.Append.P3'(C, B, A).
'~sharedPrograms.BinConnectiveChars.P3'('MetaDefs.<->''.F2'(_,_), A, B) :-
        'Strings':'~Strings.StringInts.P2'('" <-> ', C),
        'Lists':'~Lists.Append.P3'(C, B, A).
'sharedPrograms.BinaryInfixToIntDL.P12'(A, 'MetaDefs.Name.F4'(B,C,_,_), D, E, F, G, H, I, J, K, L, M) :-
        user:goedel_freeze(ground([D,B,E,C]), if(((B='"Rationals',C='"//',D='MetaDefs.Int.F1'(N),E='MetaDefs.Int.F1'(O)),true),'SharedPrograms':'sharedPrograms.RationalToIntDL.P9'(N,O,F,G,I,J,K,L,M),(I=A,'SharedPrograms':'sharedPrograms.TermToIntDL.P9'(D,F,G,H,P,Q,R,S,T),'SharedPrograms':'sharedPrograms.TermToIntDL.P9'(E,F,G,H,U,V,W,X,Y),'SharedPrograms':'sharedPrograms.ClassifyToken.P2'(C,Z),user:goedel_freeze(ground([A,P]),(('SharedPrograms':'~sharedPrograms.RPrec.P2'(P,A1),'SharedPrograms':'~sharedPrograms.LPrec.P2'(A,B1),'SharedPrograms':'~sharedPrograms.BindsTighter.P2'(A1,B1)),true->J=Q,L=S,'SharedPrograms':'sharedPrograms.SpaceIfNeeded.P4'(R,Z,T,C1);J='sharedPrograms.Bounded.C0','SharedPrograms':'sharedPrograms.CharDL.P3'('"(',L,S),'SharedPrograms':'sharedPrograms.CharDL.P3'('")',T,C1))),'Strings':'Strings.StringInts.P2'(C,D1),'Lists':'Lists.Append.P3'(D1,E1,C1),user:goedel_freeze(ground([A,U]),(('SharedPrograms':'~sharedPrograms.LPrec.P2'(U,F1),'SharedPrograms':'~sharedPrograms.RPrec.P2'(A,G1),'SharedPrograms':'~sharedPrograms.BindsTighter.P2'(F1,G1)),true->K=W,'SharedPrograms':'sharedPrograms.SpaceIfNeeded.P4'(Z,V,E1,X),M=Y;K='sharedPrograms.Bounded.C0','SharedPrograms':'sharedPrograms.CharDL.P3'('"(',E1,X),'SharedPrograms':'sharedPrograms.CharDL.P3'('")',Y,M)))))).
'~sharedPrograms.BinaryInfixToIntDL.P12'(A, 'MetaDefs.Name.F4'(B,C,_,_), D, E, F, G, H, I, J, K, L, M) :-
        user:goedel_freeze(ground([D,B,E,C]), if(((B='"Rationals',C='"//',D='MetaDefs.Int.F1'(N),E='MetaDefs.Int.F1'(O)),true),'SharedPrograms':'~sharedPrograms.RationalToIntDL.P9'(N,O,F,G,I,J,K,L,M),(I=A,'SharedPrograms':'~sharedPrograms.TermToIntDL.P9'(D,F,G,H,P,Q,R,S,T),'SharedPrograms':'~sharedPrograms.TermToIntDL.P9'(E,F,G,H,U,V,W,X,Y),'SharedPrograms':'~sharedPrograms.ClassifyToken.P2'(C,Z),user:goedel_freeze(ground([A,P]),(('SharedPrograms':'~sharedPrograms.RPrec.P2'(P,A1),'SharedPrograms':'~sharedPrograms.LPrec.P2'(A,B1),'SharedPrograms':'~sharedPrograms.BindsTighter.P2'(A1,B1)),true->J=Q,L=S,'SharedPrograms':'~sharedPrograms.SpaceIfNeeded.P4'(R,Z,T,C1);J='sharedPrograms.Bounded.C0','SharedPrograms':'~sharedPrograms.CharDL.P3'('"(',L,S),'SharedPrograms':'~sharedPrograms.CharDL.P3'('")',T,C1))),'Strings':'~Strings.StringInts.P2'(C,D1),'Lists':'~Lists.Append.P3'(D1,E1,C1),user:goedel_freeze(ground([A,U]),(('SharedPrograms':'~sharedPrograms.LPrec.P2'(U,F1),'SharedPrograms':'~sharedPrograms.RPrec.P2'(A,G1),'SharedPrograms':'~sharedPrograms.BindsTighter.P2'(F1,G1)),true->K=W,'SharedPrograms':'~sharedPrograms.SpaceIfNeeded.P4'(Z,V,E1,X),M=Y;K='sharedPrograms.Bounded.C0','SharedPrograms':'~sharedPrograms.CharDL.P3'('"(',E1,X),'SharedPrograms':'~sharedPrograms.CharDL.P3'('")',Y,M)))))).
'sharedPrograms.BinaryFormulaToIntDL.P6'(A, B, C, D, E, F) :-
        'sharedPrograms.BinaryConnective.P3'(A, G, H),
        'sharedPrograms.FormulaToIntDL.P6'(G, B, C, D, I, J),
        'sharedPrograms.FormulaToIntDL.P6'(H, B, C, D, K, L),
        user:goedel_freeze(ground([A,G]), (('SharedPrograms':'~sharedPrograms.CRPrec.P2'(G,M),'SharedPrograms':'~sharedPrograms.CLPrec.P2'(A,N),'SharedPrograms':'~sharedPrograms.BindsTighter.P2'(M,N)),true->E=I,O=J;'SharedPrograms':'sharedPrograms.CharDL.P3'('"(',E,I),'SharedPrograms':'sharedPrograms.CharDL.P3'('")',J,O))),
        'sharedPrograms.BinConnectiveChars.P3'(A, O, P),
        user:goedel_freeze(ground([A,H]), (('SharedPrograms':'~sharedPrograms.CLPrec.P2'(H,Q),'SharedPrograms':'~sharedPrograms.CRPrec.P2'(A,R),'SharedPrograms':'~sharedPrograms.BindsTighter.P2'(Q,R)),true->P=K,F=L;'SharedPrograms':'sharedPrograms.CharDL.P3'('"(',P,K),'SharedPrograms':'sharedPrograms.CharDL.P3'('")',L,F))).
'~sharedPrograms.BinaryFormulaToIntDL.P6'(A, B, C, D, E, F) :-
        '~sharedPrograms.BinaryConnective.P3'(A, G, H),
        '~sharedPrograms.FormulaToIntDL.P6'(G, B, C, D, I, J),
        '~sharedPrograms.FormulaToIntDL.P6'(H, B, C, D, K, L),
        user:goedel_freeze(ground([A,G]), (('SharedPrograms':'~sharedPrograms.CRPrec.P2'(G,M),'SharedPrograms':'~sharedPrograms.CLPrec.P2'(A,N),'SharedPrograms':'~sharedPrograms.BindsTighter.P2'(M,N)),true->E=I,O=J;'SharedPrograms':'~sharedPrograms.CharDL.P3'('"(',E,I),'SharedPrograms':'~sharedPrograms.CharDL.P3'('")',J,O))),
        '~sharedPrograms.BinConnectiveChars.P3'(A, O, P),
        user:goedel_freeze(ground([A,H]), (('SharedPrograms':'~sharedPrograms.CLPrec.P2'(H,Q),'SharedPrograms':'~sharedPrograms.CRPrec.P2'(A,R),'SharedPrograms':'~sharedPrograms.BindsTighter.P2'(Q,R)),true->P=K,F=L;'SharedPrograms':'~sharedPrograms.CharDL.P3'('"(',P,K),'SharedPrograms':'~sharedPrograms.CharDL.P3'('")',L,F))).
'sharedPrograms.CLPrec.P2'('MetaDefs.Empty.C0', 'sharedPrograms.Infinity.C0').
'~sharedPrograms.CLPrec.P2'('MetaDefs.Empty.C0', 'sharedPrograms.Infinity.C0').
'sharedPrograms.CLPrec.P2'('MetaDefs.PAtom.F1'(_), 'sharedPrograms.Infinity.C0').
'~sharedPrograms.CLPrec.P2'('MetaDefs.PAtom.F1'(_), 'sharedPrograms.Infinity.C0').
'sharedPrograms.CLPrec.P2'('MetaDefs.Atom.F2'(_,_), 'sharedPrograms.Infinity.C0').
'~sharedPrograms.CLPrec.P2'('MetaDefs.Atom.F2'(_,_), 'sharedPrograms.Infinity.C0').
'sharedPrograms.CLPrec.P2'('MetaDefs.~''.F1'(_), 'sharedPrograms.Prec.F2'(120,'sharedPrograms.X.C0')).
'~sharedPrograms.CLPrec.P2'('MetaDefs.~''.F1'(_), 'sharedPrograms.Prec.F2'(120,'sharedPrograms.X.C0')).
'sharedPrograms.CLPrec.P2'('MetaDefs.&''.F2'(_,_), 'sharedPrograms.Prec.F2'(100,'sharedPrograms.X.C0')).
'~sharedPrograms.CLPrec.P2'('MetaDefs.&''.F2'(_,_), 'sharedPrograms.Prec.F2'(100,'sharedPrograms.X.C0')).
'sharedPrograms.CLPrec.P2'('MetaDefs.\\/''.F2'(_,_), 'sharedPrograms.Prec.F2'(90,'sharedPrograms.X.C0')). % added \ djd
'~sharedPrograms.CLPrec.P2'('MetaDefs.\\/''.F2'(_,_), 'sharedPrograms.Prec.F2'(90,'sharedPrograms.X.C0')).  % added \ djd
'sharedPrograms.CLPrec.P2'('MetaDefs.->''.F2'(_,_), 'sharedPrograms.Prec.F2'(80,'sharedPrograms.X.C0')).
'~sharedPrograms.CLPrec.P2'('MetaDefs.->''.F2'(_,_), 'sharedPrograms.Prec.F2'(80,'sharedPrograms.X.C0')).
'sharedPrograms.CLPrec.P2'('MetaDefs.<-''.F2'(_,_), 'sharedPrograms.Prec.F2'(80,'sharedPrograms.X.C0')).
'~sharedPrograms.CLPrec.P2'('MetaDefs.<-''.F2'(_,_), 'sharedPrograms.Prec.F2'(80,'sharedPrograms.X.C0')).
'sharedPrograms.CLPrec.P2'('MetaDefs.<->''.F2'(_,_), 'sharedPrograms.Prec.F2'(80,'sharedPrograms.X.C0')).
'~sharedPrograms.CLPrec.P2'('MetaDefs.<->''.F2'(_,_), 'sharedPrograms.Prec.F2'(80,'sharedPrograms.X.C0')).
'sharedPrograms.CLPrec.P2'('MetaDefs.Some.F2'(_,_), 'sharedPrograms.Prec.F2'(120,'sharedPrograms.X.C0')).
'~sharedPrograms.CLPrec.P2'('MetaDefs.Some.F2'(_,_), 'sharedPrograms.Prec.F2'(120,'sharedPrograms.X.C0')).
'sharedPrograms.CLPrec.P2'('MetaDefs.All.F2'(_,_), 'sharedPrograms.Prec.F2'(120,'sharedPrograms.X.C0')).
'~sharedPrograms.CLPrec.P2'('MetaDefs.All.F2'(_,_), 'sharedPrograms.Prec.F2'(120,'sharedPrograms.X.C0')).
'sharedPrograms.CLPrec.P2'('MetaDefs.Commit.F2'(_,_), 'sharedPrograms.Infinity.C0').
'~sharedPrograms.CLPrec.P2'('MetaDefs.Commit.F2'(_,_), 'sharedPrograms.Infinity.C0').
'sharedPrograms.CLPrec.P2'('MetaDefs.ISTE.F4'(_,_,_,_), 'sharedPrograms.Infinity.C0').
'~sharedPrograms.CLPrec.P2'('MetaDefs.ISTE.F4'(_,_,_,_), 'sharedPrograms.Infinity.C0').
'sharedPrograms.CLPrec.P2'('MetaDefs.IST.F3'(_,_,_), 'sharedPrograms.Infinity.C0').
'~sharedPrograms.CLPrec.P2'('MetaDefs.IST.F3'(_,_,_), 'sharedPrograms.Infinity.C0').
'sharedPrograms.CLPrec.P2'('MetaDefs.ITE.F3'(_,_,_), 'sharedPrograms.Infinity.C0').
'~sharedPrograms.CLPrec.P2'('MetaDefs.ITE.F3'(_,_,_), 'sharedPrograms.Infinity.C0').
'sharedPrograms.CLPrec.P2'('MetaDefs.IT.F2'(_,_), 'sharedPrograms.Infinity.C0').
'~sharedPrograms.CLPrec.P2'('MetaDefs.IT.F2'(_,_), 'sharedPrograms.Infinity.C0').
'sharedPrograms.BindsTighter.P2'('sharedPrograms.Infinity.C0', _).
'~sharedPrograms.BindsTighter.P2'('sharedPrograms.Infinity.C0', _).
'sharedPrograms.BindsTighter.P2'('sharedPrograms.Prec.F2'(A,B), 'sharedPrograms.Prec.F2'(C,D)) :-
        call_residue(A=C, E),
        (   E=[] ->
            !
        ;   user:release_suspended(E)
        ),
        B='sharedPrograms.X.C0',
        D='sharedPrograms.Y.C0'.
'~sharedPrograms.BindsTighter.P2'('sharedPrograms.Prec.F2'(A,B), 'sharedPrograms.Prec.F2'(C,D)) :-
        A=C,
        B='sharedPrograms.X.C0',
        D='sharedPrograms.Y.C0'.
'sharedPrograms.BindsTighter.P2'('sharedPrograms.Prec.F2'(A,_), 'sharedPrograms.Prec.F2'(B,_)) :-
        call_residue('Integers':'Integers.>.P2'(A,B), C),
        (   C=[] ->
            !
        ;   user:release_suspended(C)
        ).
'~sharedPrograms.BindsTighter.P2'('sharedPrograms.Prec.F2'(A,_), 'sharedPrograms.Prec.F2'(B,_)) :-
        'Integers':'~Integers.>.P2'(A, B).
'sharedPrograms.CRPrec.P2'('MetaDefs.Empty.C0', 'sharedPrograms.Infinity.C0').
'~sharedPrograms.CRPrec.P2'('MetaDefs.Empty.C0', 'sharedPrograms.Infinity.C0').
'sharedPrograms.CRPrec.P2'('MetaDefs.PAtom.F1'(_), 'sharedPrograms.Infinity.C0').
'~sharedPrograms.CRPrec.P2'('MetaDefs.PAtom.F1'(_), 'sharedPrograms.Infinity.C0').
'sharedPrograms.CRPrec.P2'('MetaDefs.Atom.F2'(_,_), 'sharedPrograms.Infinity.C0').
'~sharedPrograms.CRPrec.P2'('MetaDefs.Atom.F2'(_,_), 'sharedPrograms.Infinity.C0').
'sharedPrograms.CRPrec.P2'('MetaDefs.~''.F1'(_), 'sharedPrograms.Prec.F2'(120,'sharedPrograms.Y.C0')).
'~sharedPrograms.CRPrec.P2'('MetaDefs.~''.F1'(_), 'sharedPrograms.Prec.F2'(120,'sharedPrograms.Y.C0')).
'sharedPrograms.CRPrec.P2'('MetaDefs.&''.F2'(_,_), 'sharedPrograms.Prec.F2'(100,'sharedPrograms.Y.C0')).
'~sharedPrograms.CRPrec.P2'('MetaDefs.&''.F2'(_,_), 'sharedPrograms.Prec.F2'(100,'sharedPrograms.Y.C0')).
'sharedPrograms.CRPrec.P2'('MetaDefs.\\/''.F2'(_,_), 'sharedPrograms.Prec.F2'(90,'sharedPrograms.Y.C0')).  % added \ djd
'~sharedPrograms.CRPrec.P2'('MetaDefs.\\/''.F2'(_,_), 'sharedPrograms.Prec.F2'(90,'sharedPrograms.Y.C0')).  % added \ djd
'sharedPrograms.CRPrec.P2'('MetaDefs.->''.F2'(_,_), 'sharedPrograms.Prec.F2'(80,'sharedPrograms.Y.C0')).
'~sharedPrograms.CRPrec.P2'('MetaDefs.->''.F2'(_,_), 'sharedPrograms.Prec.F2'(80,'sharedPrograms.Y.C0')).
'sharedPrograms.CRPrec.P2'('MetaDefs.<-''.F2'(_,_), 'sharedPrograms.Prec.F2'(80,'sharedPrograms.Y.C0')).
'~sharedPrograms.CRPrec.P2'('MetaDefs.<-''.F2'(_,_), 'sharedPrograms.Prec.F2'(80,'sharedPrograms.Y.C0')).
'sharedPrograms.CRPrec.P2'('MetaDefs.<->''.F2'(_,_), 'sharedPrograms.Prec.F2'(80,'sharedPrograms.X.C0')).
'~sharedPrograms.CRPrec.P2'('MetaDefs.<->''.F2'(_,_), 'sharedPrograms.Prec.F2'(80,'sharedPrograms.X.C0')).
'sharedPrograms.CRPrec.P2'('MetaDefs.Some.F2'(_,_), 'sharedPrograms.Prec.F2'(120,'sharedPrograms.Y.C0')).
'~sharedPrograms.CRPrec.P2'('MetaDefs.Some.F2'(_,_), 'sharedPrograms.Prec.F2'(120,'sharedPrograms.Y.C0')).
'sharedPrograms.CRPrec.P2'('MetaDefs.All.F2'(_,_), 'sharedPrograms.Prec.F2'(120,'sharedPrograms.Y.C0')).
'~sharedPrograms.CRPrec.P2'('MetaDefs.All.F2'(_,_), 'sharedPrograms.Prec.F2'(120,'sharedPrograms.Y.C0')).
'sharedPrograms.CRPrec.P2'('MetaDefs.Commit.F2'(_,_), 'sharedPrograms.Infinity.C0').
'~sharedPrograms.CRPrec.P2'('MetaDefs.Commit.F2'(_,_), 'sharedPrograms.Infinity.C0').
'sharedPrograms.CRPrec.P2'('MetaDefs.ISTE.F4'(_,_,_,_), 'sharedPrograms.Prec.F2'(70,'sharedPrograms.Y.C0')).
'~sharedPrograms.CRPrec.P2'('MetaDefs.ISTE.F4'(_,_,_,_), 'sharedPrograms.Prec.F2'(70,'sharedPrograms.Y.C0')).
'sharedPrograms.CRPrec.P2'('MetaDefs.IST.F3'(_,_,_), 'sharedPrograms.Prec.F2'(70,'sharedPrograms.Y.C0')).
'~sharedPrograms.CRPrec.P2'('MetaDefs.IST.F3'(_,_,_), 'sharedPrograms.Prec.F2'(70,'sharedPrograms.Y.C0')).
'sharedPrograms.CRPrec.P2'('MetaDefs.ITE.F3'(_,_,_), 'sharedPrograms.Prec.F2'(70,'sharedPrograms.Y.C0')).
'~sharedPrograms.CRPrec.P2'('MetaDefs.ITE.F3'(_,_,_), 'sharedPrograms.Prec.F2'(70,'sharedPrograms.Y.C0')).
'sharedPrograms.CRPrec.P2'('MetaDefs.IT.F2'(_,_), 'sharedPrograms.Prec.F2'(70,'sharedPrograms.Y.C0')).
'~sharedPrograms.CRPrec.P2'('MetaDefs.IT.F2'(_,_), 'sharedPrograms.Prec.F2'(70,'sharedPrograms.Y.C0')).
'sharedPrograms.EmptyCategoryTable.P1'('ProgDefs.Categories.F2'(A,A)) :-
        'avlTrees':'avlTrees.avlIsEmpty.P1'(A).
'~sharedPrograms.EmptyCategoryTable.P1'('ProgDefs.Categories.F2'(A,A)) :-
        'avlTrees':'~avlTrees.avlIsEmpty.P1'(A).
'sharedPrograms.ConstantInLanguage.P3'(A, B, C) :-
        'sharedPrograms.SymbolInLanguage.P3'(A, B, 'ProgDefs.ConstantDecl.F1'(C)).
'~sharedPrograms.ConstantInLanguage.P3'(A, B, C) :-
        '~sharedPrograms.SymbolInLanguage.P3'(A, B, 'ProgDefs.ConstantDecl.F1'(C)).
'sharedPrograms.CheckHeadArgs1.P4'([], _, _, []).
'~sharedPrograms.CheckHeadArgs1.P4'([], _, _, []).
'sharedPrograms.CheckHeadArgs1.P4'([A|B], [C|D], [E|F], G) :-
        'sharedPrograms.VariantTypes.P4'(A, C, E, H),
        'Lists':'Lists.Append.P3'(H, I, G),
        'sharedPrograms.CheckHeadArgs1.P4'(B, D, F, I).
'~sharedPrograms.CheckHeadArgs1.P4'([A|B], [C|D], [E|F], G) :-
        '~sharedPrograms.VariantTypes.P4'(A, C, E, H),
        'Lists':'~Lists.Append.P3'(H, I, G),
        '~sharedPrograms.CheckHeadArgs1.P4'(B, D, F, I).
'sharedPrograms.CheckHeadArgs.P4'('MetaDefs.PAtom.F1'(_), _, _, []).
'~sharedPrograms.CheckHeadArgs.P4'('MetaDefs.PAtom.F1'(_), _, _, []).
'sharedPrograms.CheckHeadArgs.P4'('MetaDefs.Atom.F2'(A,B), C, D, E) :-
        'sharedPrograms.PredicateInLanguage.P4'(A, D, _, F),
        'sharedPrograms.MeltTypeList.P4'(F, [], _, G),
        'sharedPrograms.CheckHeadArgs1.P4'(G, C, B, E).
'~sharedPrograms.CheckHeadArgs.P4'('MetaDefs.Atom.F2'(A,B), C, D, E) :-
        '~sharedPrograms.PredicateInLanguage.P4'(A, D, _, F),
        '~sharedPrograms.MeltTypeList.P4'(F, [], _, G),
        '~sharedPrograms.CheckHeadArgs1.P4'(G, C, B, E).
'sharedPrograms.ConditionToIntDL.P3'(A, B, C) :-
        user:goedel_freeze(ground([A]), (A='ProgDefs.And.F2'(_,_),true->'SharedPrograms':'sharedPrograms.AndSeqToIntDL.P3'(A,B,C);user:goedel_freeze(ground([A]),(A='ProgDefs.Or.F2'(_,_),true->'SharedPrograms':'sharedPrograms.OrSeqToIntDL.P3'(A,B,C);'SharedPrograms':'sharedPrograms.SimpleCondToIntDL.P3'(A,B,C))))).
'~sharedPrograms.ConditionToIntDL.P3'(A, B, C) :-
        user:goedel_freeze(ground([A]), (A='ProgDefs.And.F2'(_,_),true->'SharedPrograms':'~sharedPrograms.AndSeqToIntDL.P3'(A,B,C);user:goedel_freeze(ground([A]),(A='ProgDefs.Or.F2'(_,_),true->'SharedPrograms':'~sharedPrograms.OrSeqToIntDL.P3'(A,B,C);'SharedPrograms':'~sharedPrograms.SimpleCondToIntDL.P3'(A,B,C))))).
'sharedPrograms.CookRationalTerm.P2'(A, B) :-
        user:goedel_freeze(ground([A]), ('Integers':'~Integers.<.P2'(A,0),true->('Integers':negative(A,D),C=D),B='MetaDefs.Term.F2'('MetaDefs.Name.F4'('"Rationals','"-','MetaDefs.Function.C0',1),['MetaDefs.Int.F1'(C)]);B='MetaDefs.Int.F1'(A))).
'~sharedPrograms.CookRationalTerm.P2'(A, B) :-
        user:goedel_freeze(ground([A]), ('Integers':'~Integers.<.P2'(A,0),true->('Integers':negative(A,D),C=D),B='MetaDefs.Term.F2'('MetaDefs.Name.F4'('"Rationals','"-','MetaDefs.Function.C0',1),['MetaDefs.Int.F1'(C)]);B='MetaDefs.Int.F1'(A))).
'sharedPrograms.ConstructorInLanguage.P3'(A, B, C) :-
        'sharedPrograms.TypeSymbolInLanguage.P3'(A, B, 'ProgDefs.ConstructorDecl.F1'(C)).
'~sharedPrograms.ConstructorInLanguage.P3'(A, B, C) :-
        '~sharedPrograms.TypeSymbolInLanguage.P3'(A, B, 'ProgDefs.ConstructorDecl.F1'(C)).
'sharedPrograms.ConstantToIntDL.P4'('MetaDefs.Name.F4'(A,B,C,_), D, E, F) :-
        user:goedel_freeze(ground([C,A,B]), ((A='"Lists',B='"Nil',C='MetaDefs.Constant.C0'),true->D='sharedPrograms.Bounded.C0','SharedPrograms':'sharedPrograms.CharDL.P3'('"[',E,G),'SharedPrograms':'sharedPrograms.CharDL.P3'('"]',G,F);user:goedel_freeze(ground([C,A,B]),((A='"Sets',B='"Null',C='MetaDefs.Constant.C0'),true->D='sharedPrograms.Bounded.C0','SharedPrograms':'sharedPrograms.CharDL.P3'('"{',E,G),'SharedPrograms':'sharedPrograms.CharDL.P3'('"}',G,F);'SharedPrograms':'sharedPrograms.ClassifyToken.P2'(B,D),'Strings':'Strings.StringInts.P2'(B,H),'Lists':'Lists.Append.P3'(H,F,E))))).
'~sharedPrograms.ConstantToIntDL.P4'('MetaDefs.Name.F4'(A,B,C,_), D, E, F) :-
        user:goedel_freeze(ground([C,A,B]), ((A='"Lists',B='"Nil',C='MetaDefs.Constant.C0'),true->D='sharedPrograms.Bounded.C0','SharedPrograms':'~sharedPrograms.CharDL.P3'('"[',E,G),'SharedPrograms':'~sharedPrograms.CharDL.P3'('"]',G,F);user:goedel_freeze(ground([C,A,B]),((A='"Sets',B='"Null',C='MetaDefs.Constant.C0'),true->D='sharedPrograms.Bounded.C0','SharedPrograms':'~sharedPrograms.CharDL.P3'('"{',E,G),'SharedPrograms':'~sharedPrograms.CharDL.P3'('"}',G,F);'SharedPrograms':'~sharedPrograms.ClassifyToken.P2'(B,D),'Strings':'~Strings.StringInts.P2'(B,H),'Lists':'~Lists.Append.P3'(H,F,E))))).
'sharedPrograms.ContainsConditional.P1'('MetaDefs.ISTE.F4'(_,_,_,_)).
'~sharedPrograms.ContainsConditional.P1'('MetaDefs.ISTE.F4'(_,_,_,_)).
'sharedPrograms.ContainsConditional.P1'('MetaDefs.IST.F3'(_,_,_)).
'~sharedPrograms.ContainsConditional.P1'('MetaDefs.IST.F3'(_,_,_)).
'sharedPrograms.ContainsConditional.P1'('MetaDefs.ITE.F3'(_,_,_)).
'~sharedPrograms.ContainsConditional.P1'('MetaDefs.ITE.F3'(_,_,_)).
'sharedPrograms.ContainsConditional.P1'('MetaDefs.IT.F2'(_,_)).
'~sharedPrograms.ContainsConditional.P1'('MetaDefs.IT.F2'(_,_)).
'sharedPrograms.ContainsConditional.P1'('MetaDefs.&''.F2'(A,B)) :-
        user:one_solution(('SharedPrograms':'sharedPrograms.ContainsConditional.P1'(A);'SharedPrograms':'sharedPrograms.ContainsConditional.P1'(B))).
'~sharedPrograms.ContainsConditional.P1'('MetaDefs.&''.F2'(A,B)) :-
        (   '~sharedPrograms.ContainsConditional.P1'(A)
        ;   '~sharedPrograms.ContainsConditional.P1'(B)
        ).
'sharedPrograms.DivideBindings.P4'([], A, A, []).
'~sharedPrograms.DivideBindings.P4'([], A, A, []).
'sharedPrograms.DivideBindings.P4'([A|B], C, D, E) :-
        'sharedPrograms.IsVariable.P1'(A),
        'sharedPrograms.DivideBindingsAux.P5'(C, A, F, E, G),
        'sharedPrograms.DivideBindings.P4'(B, F, D, G).
'~sharedPrograms.DivideBindings.P4'([A|B], C, D, E) :-
        '~sharedPrograms.IsVariable.P1'(A),
        '~sharedPrograms.DivideBindingsAux.P5'(C, A, F, E, G),
        '~sharedPrograms.DivideBindings.P4'(B, F, D, G).
'sharedPrograms.DeleteUnderscores.P2'([], []).
'~sharedPrograms.DeleteUnderscores.P2'([], []).
'sharedPrograms.DeleteUnderscores.P2'([A|B], C) :-
        user:goedel_freeze(ground([A]), (('Strings':concat('"_',_,D),A='MetaDefs.Var.F2'(D,_)),true->C=E;C=[A|E])),
        'sharedPrograms.DeleteUnderscores.P2'(B, E).
'~sharedPrograms.DeleteUnderscores.P2'([A|B], C) :-
        user:goedel_freeze(ground([A]), (('Strings':concat('"_',_,D),A='MetaDefs.Var.F2'(D,_)),true->C=E;C=[A|E])),
        '~sharedPrograms.DeleteUnderscores.P2'(B, E).
'sharedPrograms.DivideBindingsAux.P5'([], _, [], A, A).
'~sharedPrograms.DivideBindingsAux.P5'([], _, [], A, A).
'sharedPrograms.DivideBindingsAux.P5'(['MetaDefs.@.F2'(B,C)|A], D, E, F, G) :-
        user:goedel_freeze(ground([B,D]), (D=B,true->F=['MetaDefs.@.F2'(B,C)|G],E=A;E=['MetaDefs.@.F2'(B,C)|H],'SharedPrograms':'sharedPrograms.DivideBindingsAux.P5'(A,D,H,F,G))).
'~sharedPrograms.DivideBindingsAux.P5'(['MetaDefs.@.F2'(B,C)|A], D, E, F, G) :-
        user:goedel_freeze(ground([B,D]), (D=B,true->F=['MetaDefs.@.F2'(B,C)|G],E=A;E=['MetaDefs.@.F2'(B,C)|H],'SharedPrograms':'~sharedPrograms.DivideBindingsAux.P5'(A,D,H,F,G))).
'sharedPrograms.FormulaInLanguage.P4'(A, B, 'MetaDefs.VarTyping.F1'(C), 'MetaDefs.VarTyping.F1'(D)) :-
        'sharedPrograms.MeltVariableTyping.P4'(C, B, [], E),
        'sharedPrograms.MeltedFormulaTyping.P8'(A, B, E, D, _, [], [], []),
        'sharedPrograms.FixVariableTyping.P2'(D, 0).
'~sharedPrograms.FormulaInLanguage.P4'(A, B, 'MetaDefs.VarTyping.F1'(C), 'MetaDefs.VarTyping.F1'(D)) :-
        '~sharedPrograms.MeltVariableTyping.P4'(C, B, [], E),
        '~sharedPrograms.MeltedFormulaTyping.P8'(A, B, E, D, _, [], [], []),
        '~sharedPrograms.FixVariableTyping.P2'(D, 0).
'sharedPrograms.ExportLanguage.P3'('ProgDefs.Program.F4'(_,A,'ProgDefs.Language.F1'(B),_), C, 'ProgDefs.Language.F1'(D)) :-
        'sharedPrograms.EmptyLanguage.P1'('ProgDefs.Language.F1'(E)),
        'sharedPrograms.ImportedLanguage.P6'([C], A, B, [], E, D).
'~sharedPrograms.ExportLanguage.P3'('ProgDefs.Program.F4'(_,A,'ProgDefs.Language.F1'(B),_), C, 'ProgDefs.Language.F1'(D)) :-
        '~sharedPrograms.EmptyLanguage.P1'('ProgDefs.Language.F1'(E)),
        '~sharedPrograms.ImportedLanguage.P6'([C], A, B, [], E, D).
'sharedPrograms.ExpandString.P3'(A, B, C) :-
        'sharedPrograms.CharDL.P3'('""', B, D),
        'sharedPrograms.ExpandStringAux.P3'(A, D, C).
'~sharedPrograms.ExpandString.P3'(A, B, C) :-
        '~sharedPrograms.CharDL.P3'('""', B, D),
        '~sharedPrograms.ExpandStringAux.P3'(A, D, C).
'sharedPrograms.EmptyLanguage.P1'(A) :-
        'avlTrees':'avlTrees.avlIsEmpty.P1'(B),
        'sharedPrograms.InitialiseLanguage.P2'('ProgDefs.Language.F1'(B), A).
'~sharedPrograms.EmptyLanguage.P1'(A) :-
        'avlTrees':'~avlTrees.avlIsEmpty.P1'(B),
        '~sharedPrograms.InitialiseLanguage.P2'('ProgDefs.Language.F1'(B), A).
'sharedPrograms.ExpandStringAux.P3'([], A, B) :-
        'sharedPrograms.CharDL.P3'('""', A, B).
'~sharedPrograms.ExpandStringAux.P3'([], A, B) :-
        '~sharedPrograms.CharDL.P3'('""', A, B).
'sharedPrograms.ExpandStringAux.P3'([A|B], C, D) :-
        user:goedel_freeze(ground([A]), (A=34,true->'SharedPrograms':'sharedPrograms.CharDL.P3'('"\\',C,E),'SharedPrograms':'sharedPrograms.CharDL.P3'('""',E,F);user:goedel_freeze(ground([A]),(A=92,true->'SharedPrograms':'sharedPrograms.CharDL.P3'('"\\',C,E),'SharedPrograms':'sharedPrograms.CharDL.P3'('"\\',E,F);C=[A|F])))), %% added 3 \ djd
        'sharedPrograms.ExpandStringAux.P3'(B, F, D).
'~sharedPrograms.ExpandStringAux.P3'([A|B], C, D) :-
        user:goedel_freeze(ground([A]), (A=34,true->'SharedPrograms':'~sharedPrograms.CharDL.P3'('"\\',C,E),'SharedPrograms':'~sharedPrograms.CharDL.P3'('""',E,F);user:goedel_freeze(ground([A]),(A=92,true->'SharedPrograms':'~sharedPrograms.CharDL.P3'('"\\',C,E),'SharedPrograms':'~sharedPrograms.CharDL.P3'('"\\',E,F);C=[A|F])))),  %% added 3 \ djd
        '~sharedPrograms.ExpandStringAux.P3'(B, F, D).
'sharedPrograms.FixVariableTyping.P2'([], _).
'~sharedPrograms.FixVariableTyping.P2'([], _).
'sharedPrograms.FixVariableTyping.P2'(['MetaDefs.@.F2'(_,B)|A], C) :-
        'sharedPrograms.FixType.P3'(B, C, D),
        'sharedPrograms.FixVariableTyping.P2'(A, D).
'~sharedPrograms.FixVariableTyping.P2'(['MetaDefs.@.F2'(_,B)|A], C) :-
        '~sharedPrograms.FixType.P3'(B, C, D),
        '~sharedPrograms.FixVariableTyping.P2'(A, D).
'sharedPrograms.FunctionInLanguage.P5'(A, B, C, D, E) :-
        'sharedPrograms.SymbolInLanguage.P3'(A, B, 'ProgDefs.FunctionDecl.F4'(_,C,D,E)).
'~sharedPrograms.FunctionInLanguage.P5'(A, B, C, D, E) :-
        '~sharedPrograms.SymbolInLanguage.P3'(A, B, 'ProgDefs.FunctionDecl.F4'(_,C,D,E)).
'sharedPrograms.FormulaToIntList.P4'(A, B, C, D) :-
        'sharedPrograms.ProgramLanguage.P2'(A, E),
        'sharedPrograms.ModuleLanguage.P3'(A, B, F),
        'sharedPrograms.FormulaInLanguage.P4'(C, E, 'MetaDefs.VarTyping.F1'([]), 'MetaDefs.VarTyping.F1'(G)),
        'sharedPrograms.FormulaToIntDL.P6'(C, F, E, G, D, []).
'~sharedPrograms.FormulaToIntList.P4'(A, B, C, D) :-
        '~sharedPrograms.ProgramLanguage.P2'(A, E),
        '~sharedPrograms.ModuleLanguage.P3'(A, B, F),
        '~sharedPrograms.FormulaInLanguage.P4'(C, E, 'MetaDefs.VarTyping.F1'([]), 'MetaDefs.VarTyping.F1'(G)),
        '~sharedPrograms.FormulaToIntDL.P6'(C, F, E, G, D, []).
'sharedPrograms.FormulaToIntDL.P6'('MetaDefs.Empty.C0', _, _, _, A, A).
'~sharedPrograms.FormulaToIntDL.P6'('MetaDefs.Empty.C0', _, _, _, A, A).
'sharedPrograms.FormulaToIntDL.P6'('MetaDefs.PAtom.F1'(A), B, _, _, C, D) :-
        'sharedPrograms.PropositionInLanguage.P2'(A, B),
        A='MetaDefs.Name.F4'(_,E,_,_),
        'Strings':'Strings.StringInts.P2'(E, F),
        'Lists':'Lists.Append.P3'(F, D, C).
'~sharedPrograms.FormulaToIntDL.P6'('MetaDefs.PAtom.F1'(A), B, _, _, C, D) :-
        '~sharedPrograms.PropositionInLanguage.P2'(A, B),
        A='MetaDefs.Name.F4'(_,E,_,_),
        'Strings':'~Strings.StringInts.P2'(E, F),
        'Lists':'~Lists.Append.P3'(F, D, C).
'sharedPrograms.FormulaToIntDL.P6'('MetaDefs.Atom.F2'(A,B), C, D, E, F, G) :-
        'sharedPrograms.PredicateInLanguage.P4'(A, C, H, _),
        'sharedPrograms.AtomToIntDL.P8'(H, A, B, C, D, E, F, G).
'~sharedPrograms.FormulaToIntDL.P6'('MetaDefs.Atom.F2'(A,B), C, D, E, F, G) :-
        '~sharedPrograms.PredicateInLanguage.P4'(A, C, H, _),
        '~sharedPrograms.AtomToIntDL.P8'(H, A, B, C, D, E, F, G).
'sharedPrograms.FormulaToIntDL.P6'('MetaDefs.~''.F1'(A), B, C, D, E, F) :-
        'sharedPrograms.CharDL.P3'('"~', E, G),
        'sharedPrograms.FormulaToIntDL.P6'(A, B, C, D, H, I),
        user:goedel_freeze(ground([A]), (('SharedPrograms':'~sharedPrograms.CLPrec.P2'(A,J),'SharedPrograms':'~sharedPrograms.CRPrec.P2'('MetaDefs.~''.F1'(_),K),'SharedPrograms':'~sharedPrograms.BindsTighter.P2'(J,K)),true->G=H,F=I;'SharedPrograms':'sharedPrograms.CharDL.P3'('"(',G,H),'SharedPrograms':'sharedPrograms.CharDL.P3'('")',I,F))).
'~sharedPrograms.FormulaToIntDL.P6'('MetaDefs.~''.F1'(A), B, C, D, E, F) :-
        '~sharedPrograms.CharDL.P3'('"~', E, G),
        '~sharedPrograms.FormulaToIntDL.P6'(A, B, C, D, H, I),
        user:goedel_freeze(ground([A]), (('SharedPrograms':'~sharedPrograms.CLPrec.P2'(A,J),'SharedPrograms':'~sharedPrograms.CRPrec.P2'('MetaDefs.~''.F1'(_),K),'SharedPrograms':'~sharedPrograms.BindsTighter.P2'(J,K)),true->G=H,F=I;'SharedPrograms':'~sharedPrograms.CharDL.P3'('"(',G,H),'SharedPrograms':'~sharedPrograms.CharDL.P3'('")',I,F))).
'sharedPrograms.FormulaToIntDL.P6'('MetaDefs.&''.F2'(A,B), C, D, E, F, G) :-
        'sharedPrograms.BinaryFormulaToIntDL.P6'('MetaDefs.&''.F2'(A,B), C, D, E, F, G).
'~sharedPrograms.FormulaToIntDL.P6'('MetaDefs.&''.F2'(A,B), C, D, E, F, G) :-
        '~sharedPrograms.BinaryFormulaToIntDL.P6'('MetaDefs.&''.F2'(A,B), C, D, E, F, G).
'sharedPrograms.FormulaToIntDL.P6'('MetaDefs.\\/''.F2'(A,B), C, D, E, F, G) :- % added \ djd
        'sharedPrograms.BinaryFormulaToIntDL.P6'('MetaDefs.\\/''.F2'(A,B), C, D, E, F, G). % added \ djd
'~sharedPrograms.FormulaToIntDL.P6'('MetaDefs.\\/''.F2'(A,B), C, D, E, F, G) :- % added \ djd
        '~sharedPrograms.BinaryFormulaToIntDL.P6'('MetaDefs.\\/''.F2'(A,B), C, D, E, F, G). % added \ djd
'sharedPrograms.FormulaToIntDL.P6'('MetaDefs.->''.F2'(A,B), C, D, E, F, G) :-
        'sharedPrograms.BinaryFormulaToIntDL.P6'('MetaDefs.->''.F2'(A,B), C, D, E, F, G).
'~sharedPrograms.FormulaToIntDL.P6'('MetaDefs.->''.F2'(A,B), C, D, E, F, G) :-
        '~sharedPrograms.BinaryFormulaToIntDL.P6'('MetaDefs.->''.F2'(A,B), C, D, E, F, G).
'sharedPrograms.FormulaToIntDL.P6'('MetaDefs.<-''.F2'(A,B), C, D, E, F, G) :-
        'sharedPrograms.BinaryFormulaToIntDL.P6'('MetaDefs.<-''.F2'(A,B), C, D, E, F, G).
'~sharedPrograms.FormulaToIntDL.P6'('MetaDefs.<-''.F2'(A,B), C, D, E, F, G) :-
        '~sharedPrograms.BinaryFormulaToIntDL.P6'('MetaDefs.<-''.F2'(A,B), C, D, E, F, G).
'sharedPrograms.FormulaToIntDL.P6'('MetaDefs.<->''.F2'(A,B), C, D, E, F, G) :-
        'sharedPrograms.BinaryFormulaToIntDL.P6'('MetaDefs.<->''.F2'(A,B), C, D, E, F, G).
'~sharedPrograms.FormulaToIntDL.P6'('MetaDefs.<->''.F2'(A,B), C, D, E, F, G) :-
        '~sharedPrograms.BinaryFormulaToIntDL.P6'('MetaDefs.<->''.F2'(A,B), C, D, E, F, G).
'sharedPrograms.FormulaToIntDL.P6'('MetaDefs.All.F2'(A,B), C, D, E, F, G) :-
        'sharedPrograms.QuantifiedFormulaToIntDL.P6'('MetaDefs.All.F2'(A,B), C, D, E, F, G).
'~sharedPrograms.FormulaToIntDL.P6'('MetaDefs.All.F2'(A,B), C, D, E, F, G) :-
        '~sharedPrograms.QuantifiedFormulaToIntDL.P6'('MetaDefs.All.F2'(A,B), C, D, E, F, G).
'sharedPrograms.FormulaToIntDL.P6'('MetaDefs.Some.F2'(A,B), C, D, E, F, G) :-
        'sharedPrograms.QuantifiedFormulaToIntDL.P6'('MetaDefs.Some.F2'(A,B), C, D, E, F, G).
'~sharedPrograms.FormulaToIntDL.P6'('MetaDefs.Some.F2'(A,B), C, D, E, F, G) :-
        '~sharedPrograms.QuantifiedFormulaToIntDL.P6'('MetaDefs.Some.F2'(A,B), C, D, E, F, G).
'sharedPrograms.FormulaToIntDL.P6'('MetaDefs.ISTE.F4'(A,B,C,D), E, F, G, H, I) :-
        'Strings':'Strings.StringInts.P2'('"IF ', J),
        'Lists':'Lists.Append.P3'(J, K, H),
        'sharedPrograms.FormulaToIntDL.P6'('MetaDefs.Some.F2'(A,B), E, F, G, K, L),
        'Strings':'Strings.StringInts.P2'('" THEN ', M),
        'Lists':'Lists.Append.P3'(M, N, L),
        'sharedPrograms.ThenPartToIntDL.P6'(C, E, F, G, N, O),
        'Strings':'Strings.StringInts.P2'('" ELSE ', P),
        'Lists':'Lists.Append.P3'(P, Q, O),
        'sharedPrograms.FormulaToIntDL.P6'(D, E, F, G, Q, I).
'~sharedPrograms.FormulaToIntDL.P6'('MetaDefs.ISTE.F4'(A,B,C,D), E, F, G, H, I) :-
        'Strings':'~Strings.StringInts.P2'('"IF ', J),
        'Lists':'~Lists.Append.P3'(J, K, H),
        '~sharedPrograms.FormulaToIntDL.P6'('MetaDefs.Some.F2'(A,B), E, F, G, K, L),
        'Strings':'~Strings.StringInts.P2'('" THEN ', M),
        'Lists':'~Lists.Append.P3'(M, N, L),
        '~sharedPrograms.ThenPartToIntDL.P6'(C, E, F, G, N, O),
        'Strings':'~Strings.StringInts.P2'('" ELSE ', P),
        'Lists':'~Lists.Append.P3'(P, Q, O),
        '~sharedPrograms.FormulaToIntDL.P6'(D, E, F, G, Q, I).
'sharedPrograms.FormulaToIntDL.P6'('MetaDefs.ITE.F3'(A,B,C), D, E, F, G, H) :-
        'Strings':'Strings.StringInts.P2'('"IF ', I),
        'Lists':'Lists.Append.P3'(I, J, G),
        'sharedPrograms.FormulaToIntDL.P6'(A, D, E, F, K, L),
        user:goedel_freeze(ground([A]), (A='MetaDefs.Some.F2'(_,_),true->'SharedPrograms':'sharedPrograms.CharDL.P3'('"(',J,K),'SharedPrograms':'sharedPrograms.CharDL.P3'('")',L,M);J=K,M=L)),
        'Strings':'Strings.StringInts.P2'('" THEN ', N),
        'Lists':'Lists.Append.P3'(N, O, M),
        'sharedPrograms.ThenPartToIntDL.P6'(B, D, E, F, O, P),
        'Strings':'Strings.StringInts.P2'('" ELSE ', Q),
        'Lists':'Lists.Append.P3'(Q, R, P),
        'sharedPrograms.FormulaToIntDL.P6'(C, D, E, F, R, H).
'~sharedPrograms.FormulaToIntDL.P6'('MetaDefs.ITE.F3'(A,B,C), D, E, F, G, H) :-
        'Strings':'~Strings.StringInts.P2'('"IF ', I),
        'Lists':'~Lists.Append.P3'(I, J, G),
        '~sharedPrograms.FormulaToIntDL.P6'(A, D, E, F, K, L),
        user:goedel_freeze(ground([A]), (A='MetaDefs.Some.F2'(_,_),true->'SharedPrograms':'~sharedPrograms.CharDL.P3'('"(',J,K),'SharedPrograms':'~sharedPrograms.CharDL.P3'('")',L,M);J=K,M=L)),
        'Strings':'~Strings.StringInts.P2'('" THEN ', N),
        'Lists':'~Lists.Append.P3'(N, O, M),
        '~sharedPrograms.ThenPartToIntDL.P6'(B, D, E, F, O, P),
        'Strings':'~Strings.StringInts.P2'('" ELSE ', Q),
        'Lists':'~Lists.Append.P3'(Q, R, P),
        '~sharedPrograms.FormulaToIntDL.P6'(C, D, E, F, R, H).
'sharedPrograms.FormulaToIntDL.P6'('MetaDefs.IST.F3'(A,B,C), D, E, F, G, H) :-
        'Strings':'Strings.StringInts.P2'('"IF ', I),
        'Lists':'Lists.Append.P3'(I, J, G),
        'sharedPrograms.FormulaToIntDL.P6'('MetaDefs.Some.F2'(A,B), D, E, F, J, K),
        'Strings':'Strings.StringInts.P2'('" THEN ', L),
        'Lists':'Lists.Append.P3'(L, M, K),
        'sharedPrograms.ThenPartToIntDL.P6'(C, D, E, F, M, H).
'~sharedPrograms.FormulaToIntDL.P6'('MetaDefs.IST.F3'(A,B,C), D, E, F, G, H) :-
        'Strings':'~Strings.StringInts.P2'('"IF ', I),
        'Lists':'~Lists.Append.P3'(I, J, G),
        '~sharedPrograms.FormulaToIntDL.P6'('MetaDefs.Some.F2'(A,B), D, E, F, J, K),
        'Strings':'~Strings.StringInts.P2'('" THEN ', L),
        'Lists':'~Lists.Append.P3'(L, M, K),
        '~sharedPrograms.ThenPartToIntDL.P6'(C, D, E, F, M, H).
'sharedPrograms.FormulaToIntDL.P6'('MetaDefs.IT.F2'(A,B), C, D, E, F, G) :-
        'Strings':'Strings.StringInts.P2'('"IF ', H),
        'Lists':'Lists.Append.P3'(H, I, F),
        'sharedPrograms.FormulaToIntDL.P6'(A, C, D, E, J, K),
        user:goedel_freeze(ground([A]), (A='MetaDefs.Some.F2'(_,_),true->'SharedPrograms':'sharedPrograms.CharDL.P3'('"(',I,J),'SharedPrograms':'sharedPrograms.CharDL.P3'('")',K,L);I=J,L=K)),
        'Strings':'Strings.StringInts.P2'('" THEN ', M),
        'Lists':'Lists.Append.P3'(M, N, L),
        'sharedPrograms.ThenPartToIntDL.P6'(B, C, D, E, N, G).
'~sharedPrograms.FormulaToIntDL.P6'('MetaDefs.IT.F2'(A,B), C, D, E, F, G) :-
        'Strings':'~Strings.StringInts.P2'('"IF ', H),
        'Lists':'~Lists.Append.P3'(H, I, F),
        '~sharedPrograms.FormulaToIntDL.P6'(A, C, D, E, J, K),
        user:goedel_freeze(ground([A]), (A='MetaDefs.Some.F2'(_,_),true->'SharedPrograms':'~sharedPrograms.CharDL.P3'('"(',I,J),'SharedPrograms':'~sharedPrograms.CharDL.P3'('")',K,L);I=J,L=K)),
        'Strings':'~Strings.StringInts.P2'('" THEN ', M),
        'Lists':'~Lists.Append.P3'(M, N, L),
        '~sharedPrograms.ThenPartToIntDL.P6'(B, C, D, E, N, G).
'sharedPrograms.FormulaToIntDL.P6'('MetaDefs.Commit.F2'(A,B), C, D, E, F, G) :-
        'sharedPrograms.CharDL.P3'('"{', F, H),
        'sharedPrograms.FormulaToIntDL.P6'(B, C, D, E, H, I),
        'sharedPrograms.CharDL.P3'('"}', I, J),
        'sharedPrograms.CharDL.P3'('"_', J, K),
        'SharedSyntax':'SharedSyntax.IntegerToCharDL.P3'(A, K, G).
'~sharedPrograms.FormulaToIntDL.P6'('MetaDefs.Commit.F2'(A,B), C, D, E, F, G) :-
        '~sharedPrograms.CharDL.P3'('"{', F, H),
        '~sharedPrograms.FormulaToIntDL.P6'(B, C, D, E, H, I),
        '~sharedPrograms.CharDL.P3'('"}', I, J),
        '~sharedPrograms.CharDL.P3'('"_', J, K),
        'SharedSyntax':'~SharedSyntax.IntegerToCharDL.P3'(A, K, G).
'sharedPrograms.ImportedLanguage.P6'([], _, _, _, A, A).
'~sharedPrograms.ImportedLanguage.P6'([], _, _, _, A, A).
'sharedPrograms.ImportedLanguage.P6'([A|B], C, D, E, F, G) :-
        user:goedel_freeze(ground([A,E]), ('Lists':'~Lists.Member.P2'(A,E),true->H=F,I=E,J=B;I=[A|E],user:goedel_freeze(ground([D,A]),if(('avlTrees':'~avlTrees.avlSearch.P3'(D,A,'ProgDefs.Module.F3'(_,K,L)),true),('avlTrees':'avlTrees.avlAmend.P6'(F,A,'ProgDefs.Module.F3'('ProgDefs.Exported.C0',K,[]),_,M,_),'SharedPrograms':'sharedPrograms.AddLiftedLanguage.P4'(L,I,M,H)),('SharedPrograms':'sharedPrograms.EmptyCategoryTable.P1'(N),'avlTrees':'avlTrees.avlAmend.P6'(F,A,'ProgDefs.Module.F3'('ProgDefs.Exported.C0',N,[]),_,H,_)))),'avlTrees':'avlTrees.avlSearch.P3'(C,A,'ProgDefs.ModDef.F4'(_,O,_,_)),'Lists':'Lists.Append.P3'(O,B,J))),
        'sharedPrograms.ImportedLanguage.P6'(J, C, D, I, H, G).
'~sharedPrograms.ImportedLanguage.P6'([A|B], C, D, E, F, G) :-
        user:goedel_freeze(ground([A,E]), ('Lists':'~Lists.Member.P2'(A,E),true->H=F,I=E,J=B;I=[A|E],user:goedel_freeze(ground([D,A]),if(('avlTrees':'~avlTrees.avlSearch.P3'(D,A,'ProgDefs.Module.F3'(_,K,L)),true),('avlTrees':'~avlTrees.avlAmend.P6'(F,A,'ProgDefs.Module.F3'('ProgDefs.Exported.C0',K,[]),_,M,_),'SharedPrograms':'~sharedPrograms.AddLiftedLanguage.P4'(L,I,M,H)),('SharedPrograms':'~sharedPrograms.EmptyCategoryTable.P1'(N),'avlTrees':'~avlTrees.avlAmend.P6'(F,A,'ProgDefs.Module.F3'('ProgDefs.Exported.C0',N,[]),_,H,_)))),'avlTrees':'~avlTrees.avlSearch.P3'(C,A,'ProgDefs.ModDef.F4'(_,O,_,_)),'Lists':'~Lists.Append.P3'(O,B,J))),
        '~sharedPrograms.ImportedLanguage.P6'(J, C, D, I, H, G).
'sharedPrograms.HeadAtom.P9'('MetaDefs.PAtom.F1'(A), B, C, C, 'MetaDefs.PAtom.F1'(A), D, D, [], []) :-
        'sharedPrograms.PropositionInLanguage.P2'(A, B).
'~sharedPrograms.HeadAtom.P9'('MetaDefs.PAtom.F1'(A), B, C, C, 'MetaDefs.PAtom.F1'(A), D, D, [], []) :-
        '~sharedPrograms.PropositionInLanguage.P2'(A, B).
'sharedPrograms.HeadAtom.P9'('MetaDefs.Atom.F2'(A,B), C, D, E, 'MetaDefs.Atom.F2'(A,F), G, H, I, J) :-
        'sharedPrograms.PredicateInLanguage.P4'(A, C, _, K),
        'sharedPrograms.MeltTypeList.P4'(K, [], _, I),
        'sharedPrograms.MeltedArgumentTyping.P9'(I, B, C, D, E, F, G, H, J).
'~sharedPrograms.HeadAtom.P9'('MetaDefs.Atom.F2'(A,B), C, D, E, 'MetaDefs.Atom.F2'(A,F), G, H, I, J) :-
        '~sharedPrograms.PredicateInLanguage.P4'(A, C, _, K),
        '~sharedPrograms.MeltTypeList.P4'(K, [], _, I),
        '~sharedPrograms.MeltedArgumentTyping.P9'(I, B, C, D, E, F, G, H, J).
'sharedPrograms.MatchingDescriptor.P5'('ProgDefs.Symbol.F2'(A,B), C, D, E, B) :-
        'sharedPrograms.Accessible.P2'(C, A),
        'sharedPrograms.MatchingName.P3'(B, D, E).
'~sharedPrograms.MatchingDescriptor.P5'('ProgDefs.Symbol.F2'(A,B), C, D, E, B) :-
        '~sharedPrograms.Accessible.P2'(C, A),
        '~sharedPrograms.MatchingName.P3'(B, D, E).
'sharedPrograms.KindHasPart.P2'('ProgDefs.ModuleKind.C0', 'ProgDefs.Module.C0').
'~sharedPrograms.KindHasPart.P2'('ProgDefs.ModuleKind.C0', 'ProgDefs.Module.C0').
'sharedPrograms.KindHasPart.P2'('ProgDefs.NormalKind.C0', A) :-
        'sharedPrograms.FindMember.P2'(A, ['ProgDefs.Export.C0','ProgDefs.Local.C0']).
'~sharedPrograms.KindHasPart.P2'('ProgDefs.NormalKind.C0', A) :-
        '~sharedPrograms.FindMember.P2'(A, ['ProgDefs.Export.C0','ProgDefs.Local.C0']).
'sharedPrograms.KindHasPart.P2'('ProgDefs.ClosedKind.C0', 'ProgDefs.Closed.C0').
'~sharedPrograms.KindHasPart.P2'('ProgDefs.ClosedKind.C0', 'ProgDefs.Closed.C0').
'sharedPrograms.InsertTypeSymbol.P5'('MetaDefs.Name.F4'(A,B,C,D), 'ProgDefs.Language.F1'(E), F, G, 'ProgDefs.Language.F1'(H)) :-
        'avlTrees':'avlTrees.avlIsEmpty.P1'(I),
        'avlTrees':'avlTrees.avlIsEmpty.P1'(J),
        'avlTrees':'avlTrees.avlAmend.P6'(E, A, 'ProgDefs.Module.F3'(K,'ProgDefs.Categories.F2'(L,M),N), 'ProgDefs.Module.F3'('ProgDefs.Hidden.C0','ProgDefs.Categories.F2'(I,J),[]), H, 'ProgDefs.Module.F3'(K,'ProgDefs.Categories.F2'(O,M),N)),
        'avlTrees':'avlTrees.avlAmend.P6'(O, B, P, [], L, Q),
        'sharedPrograms.MatchingName.P3'(G, C, D),
        'sharedPrograms.AddToDescriptorList.P6'(Q, K, C, D, 'ProgDefs.Symbol.F2'(F,G), P).
'~sharedPrograms.InsertTypeSymbol.P5'('MetaDefs.Name.F4'(A,B,C,D), 'ProgDefs.Language.F1'(E), F, G, 'ProgDefs.Language.F1'(H)) :-
        'avlTrees':'~avlTrees.avlIsEmpty.P1'(I),
        'avlTrees':'~avlTrees.avlIsEmpty.P1'(J),
        'avlTrees':'~avlTrees.avlAmend.P6'(E, A, 'ProgDefs.Module.F3'(K,'ProgDefs.Categories.F2'(L,M),N), 'ProgDefs.Module.F3'('ProgDefs.Hidden.C0','ProgDefs.Categories.F2'(I,J),[]), H, 'ProgDefs.Module.F3'(K,'ProgDefs.Categories.F2'(O,M),N)),
        'avlTrees':'~avlTrees.avlAmend.P6'(O, B, P, [], L, Q),
        '~sharedPrograms.MatchingName.P3'(G, C, D),
        '~sharedPrograms.AddToDescriptorList.P6'(Q, K, C, D, 'ProgDefs.Symbol.F2'(F,G), P).
'sharedPrograms.InsertSymbol.P5'('MetaDefs.Name.F4'(A,B,C,D), 'ProgDefs.Language.F1'(E), F, G, 'ProgDefs.Language.F1'(H)) :-
        'avlTrees':'avlTrees.avlIsEmpty.P1'(I),
        'avlTrees':'avlTrees.avlIsEmpty.P1'(J),
        'avlTrees':'avlTrees.avlAmend.P6'(E, A, 'ProgDefs.Module.F3'(K,'ProgDefs.Categories.F2'(L,M),N), 'ProgDefs.Module.F3'('ProgDefs.Hidden.C0','ProgDefs.Categories.F2'(I,J),[]), H, 'ProgDefs.Module.F3'(K,'ProgDefs.Categories.F2'(L,O),N)),
        'avlTrees':'avlTrees.avlAmend.P6'(O, B, P, [], M, Q),
        'sharedPrograms.MatchingName.P3'(G, C, D),
        'sharedPrograms.AddToDescriptorList.P6'(Q, K, C, D, 'ProgDefs.Symbol.F2'(F,G), P).
'~sharedPrograms.InsertSymbol.P5'('MetaDefs.Name.F4'(A,B,C,D), 'ProgDefs.Language.F1'(E), F, G, 'ProgDefs.Language.F1'(H)) :-
        'avlTrees':'~avlTrees.avlIsEmpty.P1'(I),
        'avlTrees':'~avlTrees.avlIsEmpty.P1'(J),
        'avlTrees':'~avlTrees.avlAmend.P6'(E, A, 'ProgDefs.Module.F3'(K,'ProgDefs.Categories.F2'(L,M),N), 'ProgDefs.Module.F3'('ProgDefs.Hidden.C0','ProgDefs.Categories.F2'(I,J),[]), H, 'ProgDefs.Module.F3'(K,'ProgDefs.Categories.F2'(L,O),N)),
        'avlTrees':'~avlTrees.avlAmend.P6'(O, B, P, [], M, Q),
        '~sharedPrograms.MatchingName.P3'(G, C, D),
        '~sharedPrograms.AddToDescriptorList.P6'(Q, K, C, D, 'ProgDefs.Symbol.F2'(F,G), P).
'sharedPrograms.IsVariable.P1'('MetaDefs.Var.F2'(_,_)).
'~sharedPrograms.IsVariable.P1'('MetaDefs.Var.F2'(_,_)).
'sharedPrograms.IsVariable.P1'('MetaDefs.Var.F1'(_)).
'~sharedPrograms.IsVariable.P1'('MetaDefs.Var.F1'(_)).
'sharedPrograms.LookupParDict.P4'(A, B, C, D) :-
        'sharedPrograms.LookupParDictAux.P5'(A, B, A, C, D).
'~sharedPrograms.LookupParDict.P4'(A, B, C, D) :-
        '~sharedPrograms.LookupParDictAux.P5'(A, B, A, C, D).
'sharedPrograms.ListExprToIntDL.P6'([A,B], C, D, E, F, G) :-
        'sharedPrograms.CharDL.P3'('"[', F, H),
        'sharedPrograms.TermToIntDL.P9'(A, C, D, E, _, _, _, H, I),
        'sharedPrograms.ChainExprToIntDL.P6'(B, C, D, E, I, J),
        'sharedPrograms.CharDL.P3'('"]', J, G).
'~sharedPrograms.ListExprToIntDL.P6'([A,B], C, D, E, F, G) :-
        '~sharedPrograms.CharDL.P3'('"[', F, H),
        '~sharedPrograms.TermToIntDL.P9'(A, C, D, E, _, _, _, H, I),
        '~sharedPrograms.ChainExprToIntDL.P6'(B, C, D, E, I, J),
        '~sharedPrograms.CharDL.P3'('"]', J, G).
'sharedPrograms.LPrec.P2'('Syntax.NoFunctInd.C0', 'sharedPrograms.Infinity.C0').
'~sharedPrograms.LPrec.P2'('Syntax.NoFunctInd.C0', 'sharedPrograms.Infinity.C0').
'sharedPrograms.LPrec.P2'('Syntax.XFX.F1'(A), 'sharedPrograms.Prec.F2'(A,'sharedPrograms.X.C0')).
'~sharedPrograms.LPrec.P2'('Syntax.XFX.F1'(A), 'sharedPrograms.Prec.F2'(A,'sharedPrograms.X.C0')).
'sharedPrograms.LPrec.P2'('Syntax.XFY.F1'(A), 'sharedPrograms.Prec.F2'(A,'sharedPrograms.X.C0')).
'~sharedPrograms.LPrec.P2'('Syntax.XFY.F1'(A), 'sharedPrograms.Prec.F2'(A,'sharedPrograms.X.C0')).
'sharedPrograms.LPrec.P2'('Syntax.YFX.F1'(A), 'sharedPrograms.Prec.F2'(A,'sharedPrograms.Y.C0')).
'~sharedPrograms.LPrec.P2'('Syntax.YFX.F1'(A), 'sharedPrograms.Prec.F2'(A,'sharedPrograms.Y.C0')).
'sharedPrograms.LPrec.P2'('Syntax.FX.F1'(A), 'sharedPrograms.Prec.F2'(A,'sharedPrograms.X.C0')).
'~sharedPrograms.LPrec.P2'('Syntax.FX.F1'(A), 'sharedPrograms.Prec.F2'(A,'sharedPrograms.X.C0')).
'sharedPrograms.LPrec.P2'('Syntax.FY.F1'(A), 'sharedPrograms.Prec.F2'(A,'sharedPrograms.X.C0')).
'~sharedPrograms.LPrec.P2'('Syntax.FY.F1'(A), 'sharedPrograms.Prec.F2'(A,'sharedPrograms.X.C0')).
'sharedPrograms.LPrec.P2'('Syntax.XF.F1'(A), 'sharedPrograms.Prec.F2'(A,'sharedPrograms.X.C0')).
'~sharedPrograms.LPrec.P2'('Syntax.XF.F1'(A), 'sharedPrograms.Prec.F2'(A,'sharedPrograms.X.C0')).
'sharedPrograms.LPrec.P2'('Syntax.YF.F1'(A), 'sharedPrograms.Prec.F2'(A,'sharedPrograms.Y.C0')).
'~sharedPrograms.LPrec.P2'('Syntax.YF.F1'(A), 'sharedPrograms.Prec.F2'(A,'sharedPrograms.Y.C0')).
'sharedPrograms.ListTypesInLanguage.P2'([], _).
'~sharedPrograms.ListTypesInLanguage.P2'([], _).
'sharedPrograms.ListTypesInLanguage.P2'([A|B], C) :-
        'sharedPrograms.TypeInLanguage.P2'(A, C),
        'sharedPrograms.ListTypesInLanguage.P2'(B, C).
'~sharedPrograms.ListTypesInLanguage.P2'([A|B], C) :-
        '~sharedPrograms.TypeInLanguage.P2'(A, C),
        '~sharedPrograms.ListTypesInLanguage.P2'(B, C).
'sharedPrograms.LookupVarTyping.P4'(A, B, C, D) :-
        'sharedPrograms.LookupVarTypingAux.P5'(A, B, A, C, D).
'~sharedPrograms.LookupVarTyping.P4'(A, B, C, D) :-
        '~sharedPrograms.LookupVarTypingAux.P5'(A, B, A, C, D).
'sharedPrograms.LookupParDictAux.P5'([], A, B, ['MetaDefs.!.F2'(A,C)|B], C).
'~sharedPrograms.LookupParDictAux.P5'([], A, B, ['MetaDefs.!.F2'(A,C)|B], C).
'sharedPrograms.LookupParDictAux.P5'(['MetaDefs.!.F2'(B,C)|A], D, E, F, G) :-
        user:goedel_freeze(ground([B,D]), (D=B,true->G=C,F=E;'SharedPrograms':'sharedPrograms.LookupParDictAux.P5'(A,D,E,F,G))).
'~sharedPrograms.LookupParDictAux.P5'(['MetaDefs.!.F2'(B,C)|A], D, E, F, G) :-
        user:goedel_freeze(ground([B,D]), (D=B,true->G=C,F=E;'SharedPrograms':'~sharedPrograms.LookupParDictAux.P5'(A,D,E,F,G))).
'sharedPrograms.LookupVarTypingAux.P5'([], A, B, ['MetaDefs.@.F2'(A,C)|B], C).
'~sharedPrograms.LookupVarTypingAux.P5'([], A, B, ['MetaDefs.@.F2'(A,C)|B], C).
'sharedPrograms.LookupVarTypingAux.P5'(['MetaDefs.@.F2'(B,C)|A], D, E, F, G) :-
        user:goedel_freeze(ground([B,D]), (D=B,true->G=C,F=E;'SharedPrograms':'sharedPrograms.LookupVarTypingAux.P5'(A,D,E,F,G))).
'~sharedPrograms.LookupVarTypingAux.P5'(['MetaDefs.@.F2'(B,C)|A], D, E, F, G) :-
        user:goedel_freeze(ground([B,D]), (D=B,true->G=C,F=E;'SharedPrograms':'~sharedPrograms.LookupVarTypingAux.P5'(A,D,E,F,G))).
'sharedPrograms.MeltedFormulaTyping.P8'(A, B, C, D, E, F, G, H) :-
        user:goedel_freeze(ground([A]), if((A='MetaDefs.<-''.F2'(I,J),true),('SharedPrograms':'sharedPrograms.MeltedBodyTyping.P8'(I,B,C,K,L,F,M,N),user:goedel_freeze(ground([N]),(N=[],true->'SharedPrograms':'sharedPrograms.MeltedBodyTyping.P8'(J,B,K,D,O,M,G,H),E='MetaDefs.<-''.F2'(L,O);H=N))),'SharedPrograms':'sharedPrograms.MeltedBodyTyping.P8'(A,B,C,D,E,F,G,H))).
'~sharedPrograms.MeltedFormulaTyping.P8'(A, B, C, D, E, F, G, H) :-
        user:goedel_freeze(ground([A]), if((A='MetaDefs.<-''.F2'(I,J),true),('SharedPrograms':'~sharedPrograms.MeltedBodyTyping.P8'(I,B,C,K,L,F,M,N),user:goedel_freeze(ground([N]),(N=[],true->'SharedPrograms':'~sharedPrograms.MeltedBodyTyping.P8'(J,B,K,D,O,M,G,H),E='MetaDefs.<-''.F2'(L,O);H=N))),'SharedPrograms':'~sharedPrograms.MeltedBodyTyping.P8'(A,B,C,D,E,F,G,H))).
'sharedPrograms.MeltVariableTyping.P4'([], _, _, []).
'~sharedPrograms.MeltVariableTyping.P4'([], _, _, []).
'sharedPrograms.MeltVariableTyping.P4'(['MetaDefs.@.F2'(B,C)|A], D, E, ['MetaDefs.@.F2'(B,G)|F]) :-
        'sharedPrograms.IsVariable.P1'(B),
        'sharedPrograms.TypeInLanguage.P2'(C, D),
        'sharedPrograms.MeltType.P4'(C, E, H, G),
        'sharedPrograms.MeltVariableTyping.P4'(A, D, H, F).
'~sharedPrograms.MeltVariableTyping.P4'(['MetaDefs.@.F2'(B,C)|A], D, E, ['MetaDefs.@.F2'(B,G)|F]) :-
        '~sharedPrograms.IsVariable.P1'(B),
        '~sharedPrograms.TypeInLanguage.P2'(C, D),
        '~sharedPrograms.MeltType.P4'(C, E, H, G),
        '~sharedPrograms.MeltVariableTyping.P4'(A, D, H, F).
'sharedPrograms.MeltType.P4'('MetaDefs.Par.F2'(A,B), C, D, E) :-
        'sharedPrograms.LookupParDict.P4'(C, 'MetaDefs.Par.F2'(A,B), D, E).
'~sharedPrograms.MeltType.P4'('MetaDefs.Par.F2'(A,B), C, D, E) :-
        '~sharedPrograms.LookupParDict.P4'(C, 'MetaDefs.Par.F2'(A,B), D, E).
'sharedPrograms.MeltType.P4'('MetaDefs.Par.F1'(A), B, C, D) :-
        'sharedPrograms.LookupParDict.P4'(B, 'MetaDefs.Par.F1'(A), C, D).
'~sharedPrograms.MeltType.P4'('MetaDefs.Par.F1'(A), B, C, D) :-
        '~sharedPrograms.LookupParDict.P4'(B, 'MetaDefs.Par.F1'(A), C, D).
'sharedPrograms.MeltType.P4'('MetaDefs.BType.F1'(A), B, B, 'MetaDefs.BType.F1'(A)).
'~sharedPrograms.MeltType.P4'('MetaDefs.BType.F1'(A), B, B, 'MetaDefs.BType.F1'(A)).
'sharedPrograms.MeltType.P4'('MetaDefs.XBType.F1'(A), B, B, 'MetaDefs.XBType.F1'(A)).
'~sharedPrograms.MeltType.P4'('MetaDefs.XBType.F1'(A), B, B, 'MetaDefs.XBType.F1'(A)).
'sharedPrograms.MeltType.P4'('MetaDefs.Type.F2'(A,B), C, D, 'MetaDefs.Type.F2'(A,E)) :-
        'sharedPrograms.MeltTypeList.P4'(B, C, D, E).
'~sharedPrograms.MeltType.P4'('MetaDefs.Type.F2'(A,B), C, D, 'MetaDefs.Type.F2'(A,E)) :-
        '~sharedPrograms.MeltTypeList.P4'(B, C, D, E).
'sharedPrograms.MeltType.P4'('MetaDefs.XType.F2'(A,B), C, D, 'MetaDefs.XType.F2'(A,E)) :-
        'sharedPrograms.MeltTypeList.P4'(B, C, D, E).
'~sharedPrograms.MeltType.P4'('MetaDefs.XType.F2'(A,B), C, D, 'MetaDefs.XType.F2'(A,E)) :-
        '~sharedPrograms.MeltTypeList.P4'(B, C, D, E).
'sharedPrograms.MatchingName.P3'('ProgDefs.BaseDecl.C0', 'MetaDefs.Base.C0', 0).
'~sharedPrograms.MatchingName.P3'('ProgDefs.BaseDecl.C0', 'MetaDefs.Base.C0', 0).
'sharedPrograms.MatchingName.P3'('ProgDefs.ConstructorDecl.F1'(A), 'MetaDefs.Constructor.C0', A).
'~sharedPrograms.MatchingName.P3'('ProgDefs.ConstructorDecl.F1'(A), 'MetaDefs.Constructor.C0', A).
'sharedPrograms.MatchingName.P3'('ProgDefs.ConstantDecl.F1'(_), 'MetaDefs.Constant.C0', 0).
'~sharedPrograms.MatchingName.P3'('ProgDefs.ConstantDecl.F1'(_), 'MetaDefs.Constant.C0', 0).
'sharedPrograms.MatchingName.P3'('ProgDefs.FunctionDecl.F4'(A,_,_,_), 'MetaDefs.Function.C0', A).
'~sharedPrograms.MatchingName.P3'('ProgDefs.FunctionDecl.F4'(A,_,_,_), 'MetaDefs.Function.C0', A).
'sharedPrograms.MatchingName.P3'('ProgDefs.PropositionDecl.C0', 'MetaDefs.Proposition.C0', 0).
'~sharedPrograms.MatchingName.P3'('ProgDefs.PropositionDecl.C0', 'MetaDefs.Proposition.C0', 0).
'sharedPrograms.MatchingName.P3'('ProgDefs.PredicateDecl.F3'(A,_,_), 'MetaDefs.Predicate.C0', A).
'~sharedPrograms.MatchingName.P3'('ProgDefs.PredicateDecl.F3'(A,_,_), 'MetaDefs.Predicate.C0', A).
'sharedPrograms.MeltTypeList.P4'([], A, A, []).
'~sharedPrograms.MeltTypeList.P4'([], A, A, []).
'sharedPrograms.MeltTypeList.P4'([A|B], C, D, [E|F]) :-
        'sharedPrograms.MeltType.P4'(A, C, G, E),
        'sharedPrograms.MeltTypeList.P4'(B, G, D, F).
'~sharedPrograms.MeltTypeList.P4'([A|B], C, D, [E|F]) :-
        '~sharedPrograms.MeltType.P4'(A, C, G, E),
        '~sharedPrograms.MeltTypeList.P4'(B, G, D, F).
'sharedPrograms.MeltedAtomTyping.P8'('MetaDefs.PAtom.F1'(A), B, C, C, 'MetaDefs.PAtom.F1'(A), D, D, []) :-
        'sharedPrograms.PropositionInLanguage.P2'(A, B).
'~sharedPrograms.MeltedAtomTyping.P8'('MetaDefs.PAtom.F1'(A), B, C, C, 'MetaDefs.PAtom.F1'(A), D, D, []) :-
        '~sharedPrograms.PropositionInLanguage.P2'(A, B).
'sharedPrograms.MeltedAtomTyping.P8'('MetaDefs.XPAtom.F1'(A), B, C, C, 'MetaDefs.XPAtom.F1'(A), D, D, []) :-
        'sharedPrograms.PropositionInLanguage.P2'(A, B).
'~sharedPrograms.MeltedAtomTyping.P8'('MetaDefs.XPAtom.F1'(A), B, C, C, 'MetaDefs.XPAtom.F1'(A), D, D, []) :-
        '~sharedPrograms.PropositionInLanguage.P2'(A, B).
'sharedPrograms.MeltedAtomTyping.P8'('MetaDefs.Atom.F2'(A,B), C, D, E, 'MetaDefs.Atom.F2'(A,F), G, H, I) :-
        'sharedPrograms.PredicateInLanguage.P4'(A, C, _, J),
        'sharedPrograms.MeltTypeList.P4'(J, [], _, K),
        'sharedPrograms.MeltedArgumentTyping.P9'(K, B, C, D, E, F, G, H, I).
'~sharedPrograms.MeltedAtomTyping.P8'('MetaDefs.Atom.F2'(A,B), C, D, E, 'MetaDefs.Atom.F2'(A,F), G, H, I) :-
        '~sharedPrograms.PredicateInLanguage.P4'(A, C, _, J),
        '~sharedPrograms.MeltTypeList.P4'(J, [], _, K),
        '~sharedPrograms.MeltedArgumentTyping.P9'(K, B, C, D, E, F, G, H, I).
'sharedPrograms.MeltedAtomTyping.P8'('MetaDefs.XAtom.F2'(A,B), C, D, E, 'MetaDefs.XAtom.F2'(A,F), G, H, I) :-
        'sharedPrograms.PredicateInLanguage.P4'(A, C, _, J),
        'sharedPrograms.MeltTypeList.P4'(J, [], _, K),
        'sharedPrograms.MeltedArgumentTyping.P9'(K, B, C, D, E, F, G, H, I).
'~sharedPrograms.MeltedAtomTyping.P8'('MetaDefs.XAtom.F2'(A,B), C, D, E, 'MetaDefs.XAtom.F2'(A,F), G, H, I) :-
        '~sharedPrograms.PredicateInLanguage.P4'(A, C, _, J),
        '~sharedPrograms.MeltTypeList.P4'(J, [], _, K),
        '~sharedPrograms.MeltedArgumentTyping.P9'(K, B, C, D, E, F, G, H, I).
'sharedPrograms.MeltedArgumentTyping.P9'([], [], _, A, A, [], B, B, []).
'~sharedPrograms.MeltedArgumentTyping.P9'([], [], _, A, A, [], B, B, []).
'sharedPrograms.MeltedArgumentTyping.P9'([A|B], [C|D], E, F, G, [H|I], J, K, L) :-
        'sharedPrograms.MeltedTermType.P9'(C, A, E, F, M, H, J, N, O),
        user:goedel_freeze(ground([O]), (O=[],true->'SharedPrograms':'sharedPrograms.MeltedArgumentTyping.P9'(B,D,E,M,G,I,N,K,L);L=O)).
'~sharedPrograms.MeltedArgumentTyping.P9'([A|B], [C|D], E, F, G, [H|I], J, K, L) :-
        '~sharedPrograms.MeltedTermType.P9'(C, A, E, F, M, H, J, N, O),
        user:goedel_freeze(ground([O]), (O=[],true->'SharedPrograms':'~sharedPrograms.MeltedArgumentTyping.P9'(B,D,E,M,G,I,N,K,L);L=O)).
'sharedPrograms.MeltedBodyTyping.P8'(A, B, C, D, E, F, G, H) :-
        user:goedel_freeze(ground([A]), (A='MetaDefs.Empty.C0',true->D=C,F=G,H=[],E='MetaDefs.Empty.C0';user:goedel_freeze(ground([A]),if((A='MetaDefs.&''.F2'(I,J),true),('SharedPrograms':'sharedPrograms.MeltedBodyTyping.P8'(I,B,C,K,L,F,M,N),user:goedel_freeze(ground([N]),(N=[],true->'SharedPrograms':'sharedPrograms.MeltedBodyTyping.P8'(J,B,K,D,O,M,G,H),E='MetaDefs.&''.F2'(L,O);H=N))),user:goedel_freeze(ground([A]),if((A='MetaDefs.Commit.F2'(P,Q),true),('SharedPrograms':'sharedPrograms.MeltedBodyTyping.P8'(Q,B,C,D,L,F,G,H),E='MetaDefs.Commit.F2'(P,L)),'SharedPrograms':'sharedPrograms.MeltedStandardTyping.P8'(A,B,C,D,E,F,G,H))))))).
'~sharedPrograms.MeltedBodyTyping.P8'(A, B, C, D, E, F, G, H) :-
        user:goedel_freeze(ground([A]), (A='MetaDefs.Empty.C0',true->D=C,F=G,H=[],E='MetaDefs.Empty.C0';user:goedel_freeze(ground([A]),if((A='MetaDefs.&''.F2'(I,J),true),('SharedPrograms':'~sharedPrograms.MeltedBodyTyping.P8'(I,B,C,K,L,F,M,N),user:goedel_freeze(ground([N]),(N=[],true->'SharedPrograms':'~sharedPrograms.MeltedBodyTyping.P8'(J,B,K,D,O,M,G,H),E='MetaDefs.&''.F2'(L,O);H=N))),user:goedel_freeze(ground([A]),if((A='MetaDefs.Commit.F2'(P,Q),true),('SharedPrograms':'~sharedPrograms.MeltedBodyTyping.P8'(Q,B,C,D,L,F,G,H),E='MetaDefs.Commit.F2'(P,L)),'SharedPrograms':'~sharedPrograms.MeltedStandardTyping.P8'(A,B,C,D,E,F,G,H))))))).
'sharedPrograms.MeltedTermType.P9'('MetaDefs.Var.F2'(A,B), C, _, D, E, 'MetaDefs.Var.F2'(A,B), F, F, G) :-
        'sharedPrograms.LookupVarTyping.P4'(D, 'MetaDefs.Var.F2'(A,B), E, H),
        'sharedPrograms.UnifyMeltedTypes.P4'(C, H, 'MetaDefs.Var.F2'(A,B), G).
'~sharedPrograms.MeltedTermType.P9'('MetaDefs.Var.F2'(A,B), C, _, D, E, 'MetaDefs.Var.F2'(A,B), F, F, G) :-
        '~sharedPrograms.LookupVarTyping.P4'(D, 'MetaDefs.Var.F2'(A,B), E, H),
        '~sharedPrograms.UnifyMeltedTypes.P4'(C, H, 'MetaDefs.Var.F2'(A,B), G).
'sharedPrograms.MeltedTermType.P9'('MetaDefs.Var.F1'(A), B, _, C, D, 'MetaDefs.Var.F1'(A), E, E, F) :-
        'sharedPrograms.LookupVarTyping.P4'(C, 'MetaDefs.Var.F1'(A), D, G),
        'sharedPrograms.UnifyMeltedTypes.P4'(B, G, 'MetaDefs.Var.F1'(A), F).
'~sharedPrograms.MeltedTermType.P9'('MetaDefs.Var.F1'(A), B, _, C, D, 'MetaDefs.Var.F1'(A), E, E, F) :-
        '~sharedPrograms.LookupVarTyping.P4'(C, 'MetaDefs.Var.F1'(A), D, G),
        '~sharedPrograms.UnifyMeltedTypes.P4'(B, G, 'MetaDefs.Var.F1'(A), F).
'sharedPrograms.MeltedTermType.P9'('MetaDefs.CTerm.F1'(A), B, C, D, D, 'MetaDefs.CTerm.F1'(A), E, E, F) :-
        'sharedPrograms.ConstantInLanguage.P3'(A, C, G),
        'sharedPrograms.MeltType.P4'(G, [], _, H),
        'sharedPrograms.UnifyMeltedTypes.P4'(B, H, 'MetaDefs.CTerm.F1'(A), F).
'~sharedPrograms.MeltedTermType.P9'('MetaDefs.CTerm.F1'(A), B, C, D, D, 'MetaDefs.CTerm.F1'(A), E, E, F) :-
        '~sharedPrograms.ConstantInLanguage.P3'(A, C, G),
        '~sharedPrograms.MeltType.P4'(G, [], _, H),
        '~sharedPrograms.UnifyMeltedTypes.P4'(B, H, 'MetaDefs.CTerm.F1'(A), F).
'sharedPrograms.MeltedTermType.P9'('MetaDefs.XCTerm.F2'(A,_), B, C, D, D, 'MetaDefs.XCTerm.F2'(A,E), F, F, G) :-
        'sharedPrograms.ConstantInLanguage.P3'(A, C, H),
        'sharedPrograms.MeltType.P4'(H, [], _, E),
        'sharedPrograms.UnifyMeltedTypes.P4'(B, E, 'MetaDefs.CTerm.F1'(A), G).
'~sharedPrograms.MeltedTermType.P9'('MetaDefs.XCTerm.F2'(A,_), B, C, D, D, 'MetaDefs.XCTerm.F2'(A,E), F, F, G) :-
        '~sharedPrograms.ConstantInLanguage.P3'(A, C, H),
        '~sharedPrograms.MeltType.P4'(H, [], _, E),
        '~sharedPrograms.UnifyMeltedTypes.P4'(B, E, 'MetaDefs.CTerm.F1'(A), G).
'sharedPrograms.MeltedTermType.P9'('MetaDefs.Term.F2'(A,B), C, D, E, F, 'MetaDefs.Term.F2'(A,G), H, I, J) :-
        'sharedPrograms.FunctionInLanguage.P5'(A, D, _, K, L),
        'sharedPrograms.MeltType.P4'(L, [], M, N),
        'sharedPrograms.MeltTypeList.P4'(K, M, _, O),
        'sharedPrograms.UnifyMeltedTypes.P4'(C, N, 'MetaDefs.Term.F2'(A,B), P),
        user:goedel_freeze(ground([P]), (P=[],true->'SharedPrograms':'sharedPrograms.MeltedArgumentTyping.P9'(O,B,D,E,F,G,H,I,J);J=P)).
'~sharedPrograms.MeltedTermType.P9'('MetaDefs.Term.F2'(A,B), C, D, E, F, 'MetaDefs.Term.F2'(A,G), H, I, J) :-
        '~sharedPrograms.FunctionInLanguage.P5'(A, D, _, K, L),
        '~sharedPrograms.MeltType.P4'(L, [], M, N),
        '~sharedPrograms.MeltTypeList.P4'(K, M, _, O),
        '~sharedPrograms.UnifyMeltedTypes.P4'(C, N, 'MetaDefs.Term.F2'(A,B), P),
        user:goedel_freeze(ground([P]), (P=[],true->'SharedPrograms':'~sharedPrograms.MeltedArgumentTyping.P9'(O,B,D,E,F,G,H,I,J);J=P)).
'sharedPrograms.MeltedTermType.P9'('MetaDefs.XTerm.F3'(A,B,_), C, D, E, F, 'MetaDefs.XTerm.F3'(A,G,H), I, J, K) :-
        'sharedPrograms.FunctionInLanguage.P5'(A, D, _, L, M),
        'sharedPrograms.MeltType.P4'(M, [], N, H),
        'sharedPrograms.MeltTypeList.P4'(L, N, _, O),
        'sharedPrograms.UnifyMeltedTypes.P4'(C, H, 'MetaDefs.Term.F2'(A,B), P),
        user:goedel_freeze(ground([P]), (P=[],true->'SharedPrograms':'sharedPrograms.MeltedArgumentTyping.P9'(O,B,D,E,F,G,I,J,K);K=P)).
'~sharedPrograms.MeltedTermType.P9'('MetaDefs.XTerm.F3'(A,B,_), C, D, E, F, 'MetaDefs.XTerm.F3'(A,G,H), I, J, K) :-
        '~sharedPrograms.FunctionInLanguage.P5'(A, D, _, L, M),
        '~sharedPrograms.MeltType.P4'(M, [], N, H),
        '~sharedPrograms.MeltTypeList.P4'(L, N, _, O),
        '~sharedPrograms.UnifyMeltedTypes.P4'(C, H, 'MetaDefs.Term.F2'(A,B), P),
        user:goedel_freeze(ground([P]), (P=[],true->'SharedPrograms':'~sharedPrograms.MeltedArgumentTyping.P9'(O,B,D,E,F,G,I,J,K);K=P)).
'sharedPrograms.MeltedTermType.P9'('MetaDefs.Int.F1'(A), B, C, D, D, 'MetaDefs.Int.F1'(A), E, E, F) :-
        G='MetaDefs.Name.F4'('"Integers','"Integer','MetaDefs.Base.C0',0),
        'sharedPrograms.BaseInLanguage.P2'(G, C),
        'sharedPrograms.UnifyMeltedTypes.P4'(B, 'MetaDefs.BType.F1'(G), 'MetaDefs.Int.F1'(A), F).
'~sharedPrograms.MeltedTermType.P9'('MetaDefs.Int.F1'(A), B, C, D, D, 'MetaDefs.Int.F1'(A), E, E, F) :-
        G='MetaDefs.Name.F4'('"Integers','"Integer','MetaDefs.Base.C0',0),
        '~sharedPrograms.BaseInLanguage.P2'(G, C),
        '~sharedPrograms.UnifyMeltedTypes.P4'(B, 'MetaDefs.BType.F1'(G), 'MetaDefs.Int.F1'(A), F).
'sharedPrograms.MeltedTermType.P9'('MetaDefs.Str.F1'(A), B, C, D, D, 'MetaDefs.Str.F1'(A), E, E, F) :-
        G='MetaDefs.Name.F4'('"Strings','"String','MetaDefs.Base.C0',0),
        'sharedPrograms.BaseInLanguage.P2'(G, C),
        'sharedPrograms.UnifyMeltedTypes.P4'(B, 'MetaDefs.BType.F1'(G), 'MetaDefs.Str.F1'(A), F).
'~sharedPrograms.MeltedTermType.P9'('MetaDefs.Str.F1'(A), B, C, D, D, 'MetaDefs.Str.F1'(A), E, E, F) :-
        G='MetaDefs.Name.F4'('"Strings','"String','MetaDefs.Base.C0',0),
        '~sharedPrograms.BaseInLanguage.P2'(G, C),
        '~sharedPrograms.UnifyMeltedTypes.P4'(B, 'MetaDefs.BType.F1'(G), 'MetaDefs.Str.F1'(A), F).
'sharedPrograms.MeltedTermType.P9'('MetaDefs.Prm.F1'(A), B, C, D, D, 'MetaDefs.Prm.F1'(A), E, E, F) :-
        G='MetaDefs.Name.F4'('"ProgDefs','"Program','MetaDefs.Base.C0',0),
        'sharedPrograms.BaseInLanguage.P2'(G, C),
        'sharedPrograms.UnifyMeltedTypes.P4'(B, 'MetaDefs.BType.F1'(G), 'MetaDefs.Prm.F1'(A), F).
'~sharedPrograms.MeltedTermType.P9'('MetaDefs.Prm.F1'(A), B, C, D, D, 'MetaDefs.Prm.F1'(A), E, E, F) :-
        G='MetaDefs.Name.F4'('"ProgDefs','"Program','MetaDefs.Base.C0',0),
        '~sharedPrograms.BaseInLanguage.P2'(G, C),
        '~sharedPrograms.UnifyMeltedTypes.P4'(B, 'MetaDefs.BType.F1'(G), 'MetaDefs.Prm.F1'(A), F).
'sharedPrograms.MeltedTermType.P9'('MetaDefs.SuchThat.F2'(A,B), C, D, E, F, 'MetaDefs.SuchThat.F2'(G,H), I, J, K) :-
        L='MetaDefs.Name.F4'('"Sets','"Set','MetaDefs.Constructor.C0',1),
        'sharedPrograms.ConstructorInLanguage.P3'(L, D, _),
        'sharedPrograms.UnifyMeltedTypes.P4'(C, 'MetaDefs.Type.F2'(L,[M]), 'MetaDefs.SuchThat.F2'(A,B), N),
        user:goedel_freeze(ground([N]), (N=[],true->'SharedSyntax':'SharedSyntax.STermFreeVars.P2'(A,O),'SharedPrograms':'sharedPrograms.DivideBindings.P4'(O,E,P,Q),'SharedPrograms':'sharedPrograms.MeltedStandardTyping.P8'(B,D,P,R,H,I,S,T),user:goedel_freeze(ground([T]),(T=[],true->'SharedPrograms':'sharedPrograms.MeltedTermType.P9'(A,M,D,R,U,G,S,J,K),user:goedel_freeze(ground([K]),(K=[],true->'SharedPrograms':'sharedPrograms.DivideBindings.P4'(O,U,V,_),'Lists':'Lists.Append.P3'(Q,V,F);true));K=T));K=N)).
'~sharedPrograms.MeltedTermType.P9'('MetaDefs.SuchThat.F2'(A,B), C, D, E, F, 'MetaDefs.SuchThat.F2'(G,H), I, J, K) :-
        L='MetaDefs.Name.F4'('"Sets','"Set','MetaDefs.Constructor.C0',1),
        '~sharedPrograms.ConstructorInLanguage.P3'(L, D, _),
        '~sharedPrograms.UnifyMeltedTypes.P4'(C, 'MetaDefs.Type.F2'(L,[M]), 'MetaDefs.SuchThat.F2'(A,B), N),
        user:goedel_freeze(ground([N]), (N=[],true->'SharedSyntax':'~SharedSyntax.STermFreeVars.P2'(A,O),'SharedPrograms':'~sharedPrograms.DivideBindings.P4'(O,E,P,Q),'SharedPrograms':'~sharedPrograms.MeltedStandardTyping.P8'(B,D,P,R,H,I,S,T),user:goedel_freeze(ground([T]),(T=[],true->'SharedPrograms':'~sharedPrograms.MeltedTermType.P9'(A,M,D,R,U,G,S,J,K),user:goedel_freeze(ground([K]),(K=[],true->'SharedPrograms':'~sharedPrograms.DivideBindings.P4'(O,U,V,_),'Lists':'~Lists.Append.P3'(Q,V,F);true));K=T));K=N)).
'sharedPrograms.MeltedTermType.P9'('MetaDefs.Num.F1'(A), B, C, D, D, E, F, G, H) :-
        user:goedel_freeze(ground([C]), ('SharedPrograms':'~sharedPrograms.BaseInLanguage.P2'('MetaDefs.Name.F4'('"Rationals','"Rational','MetaDefs.Base.C0',0),C),true->F=['sharedPrograms.NumType.F3'(A,'MetaDefs.BType.F1'(I),E)|G],'SharedPrograms':'sharedPrograms.UnifyMeltedTypes.P4'(B,'MetaDefs.BType.F1'(I),'MetaDefs.Num.F1'(A),H);'SharedPrograms':'sharedPrograms.MeltedTermType.P9'('MetaDefs.Int.F1'(A),B,C,D,_,E,F,G,H))).
'~sharedPrograms.MeltedTermType.P9'('MetaDefs.Num.F1'(A), B, C, D, D, E, F, G, H) :-
        user:goedel_freeze(ground([C]), ('SharedPrograms':'~sharedPrograms.BaseInLanguage.P2'('MetaDefs.Name.F4'('"Rationals','"Rational','MetaDefs.Base.C0',0),C),true->F=['sharedPrograms.NumType.F3'(A,'MetaDefs.BType.F1'(I),E)|G],'SharedPrograms':'~sharedPrograms.UnifyMeltedTypes.P4'(B,'MetaDefs.BType.F1'(I),'MetaDefs.Num.F1'(A),H);'SharedPrograms':'~sharedPrograms.MeltedTermType.P9'('MetaDefs.Int.F1'(A),B,C,D,_,E,F,G,H))).
'sharedPrograms.MeltedStandardTyping.P8'('MetaDefs.ISTE.F4'(A,B,C,D), E, F, G, 'MetaDefs.ISTE.F4'(A,H,I,J), K, L, M) :-
        'sharedPrograms.DivideBindings.P4'(A, F, N, O),
        'sharedPrograms.MeltedStandardTyping.P8'(B, E, N, P, H, K, Q, R),
        user:goedel_freeze(ground([R]), (R=[],true->'SharedPrograms':'sharedPrograms.MeltedStandardTyping.P8'(C,E,P,S,I,Q,T,U),user:goedel_freeze(ground([U]),(U=[],true->'SharedPrograms':'sharedPrograms.DivideBindings.P4'(A,S,V,_),'Lists':'Lists.Append.P3'(O,V,W),'SharedPrograms':'sharedPrograms.MeltedStandardTyping.P8'(D,E,W,G,J,T,L,M);M=U));M=R)).
'~sharedPrograms.MeltedStandardTyping.P8'('MetaDefs.ISTE.F4'(A,B,C,D), E, F, G, 'MetaDefs.ISTE.F4'(A,H,I,J), K, L, M) :-
        '~sharedPrograms.DivideBindings.P4'(A, F, N, O),
        '~sharedPrograms.MeltedStandardTyping.P8'(B, E, N, P, H, K, Q, R),
        user:goedel_freeze(ground([R]), (R=[],true->'SharedPrograms':'~sharedPrograms.MeltedStandardTyping.P8'(C,E,P,S,I,Q,T,U),user:goedel_freeze(ground([U]),(U=[],true->'SharedPrograms':'~sharedPrograms.DivideBindings.P4'(A,S,V,_),'Lists':'~Lists.Append.P3'(O,V,W),'SharedPrograms':'~sharedPrograms.MeltedStandardTyping.P8'(D,E,W,G,J,T,L,M);M=U));M=R)).
'sharedPrograms.MeltedStandardTyping.P8'('MetaDefs.IST.F3'(A,B,C), D, E, F, 'MetaDefs.IST.F3'(A,G,H), I, J, K) :-
        'sharedPrograms.DivideBindings.P4'(A, E, L, M),
        'sharedPrograms.MeltedStandardTyping.P8'(B, D, L, N, G, I, O, P),
        user:goedel_freeze(ground([P]), (P=[],true->'SharedPrograms':'sharedPrograms.MeltedStandardTyping.P8'(C,D,N,Q,H,O,J,K),user:goedel_freeze(ground([K]),(K=[],true->'SharedPrograms':'sharedPrograms.DivideBindings.P4'(A,Q,R,_),'Lists':'Lists.Append.P3'(M,R,F);true));K=P)).
'~sharedPrograms.MeltedStandardTyping.P8'('MetaDefs.IST.F3'(A,B,C), D, E, F, 'MetaDefs.IST.F3'(A,G,H), I, J, K) :-
        '~sharedPrograms.DivideBindings.P4'(A, E, L, M),
        '~sharedPrograms.MeltedStandardTyping.P8'(B, D, L, N, G, I, O, P),
        user:goedel_freeze(ground([P]), (P=[],true->'SharedPrograms':'~sharedPrograms.MeltedStandardTyping.P8'(C,D,N,Q,H,O,J,K),user:goedel_freeze(ground([K]),(K=[],true->'SharedPrograms':'~sharedPrograms.DivideBindings.P4'(A,Q,R,_),'Lists':'~Lists.Append.P3'(M,R,F);true));K=P)).
'sharedPrograms.MeltedStandardTyping.P8'('MetaDefs.ITE.F3'(A,B,C), D, E, F, 'MetaDefs.ITE.F3'(G,H,I), J, K, L) :-
        'sharedPrograms.MeltedStandardTyping.P8'(A, D, E, M, G, J, N, O),
        user:goedel_freeze(ground([O]), (O=[],true->'SharedPrograms':'sharedPrograms.MeltedStandardTyping.P8'(B,D,M,P,H,N,Q,R),user:goedel_freeze(ground([R]),(R=[],true->'SharedPrograms':'sharedPrograms.MeltedStandardTyping.P8'(C,D,P,F,I,Q,K,L);L=R));L=O)).
'~sharedPrograms.MeltedStandardTyping.P8'('MetaDefs.ITE.F3'(A,B,C), D, E, F, 'MetaDefs.ITE.F3'(G,H,I), J, K, L) :-
        '~sharedPrograms.MeltedStandardTyping.P8'(A, D, E, M, G, J, N, O),
        user:goedel_freeze(ground([O]), (O=[],true->'SharedPrograms':'~sharedPrograms.MeltedStandardTyping.P8'(B,D,M,P,H,N,Q,R),user:goedel_freeze(ground([R]),(R=[],true->'SharedPrograms':'~sharedPrograms.MeltedStandardTyping.P8'(C,D,P,F,I,Q,K,L);L=R));L=O)).
'sharedPrograms.MeltedStandardTyping.P8'('MetaDefs.IT.F2'(A,B), C, D, E, 'MetaDefs.IT.F2'(F,G), H, I, J) :-
        'sharedPrograms.MeltedStandardTyping.P8'(A, C, D, K, F, H, L, M),
        user:goedel_freeze(ground([M]), (M=[],true->'SharedPrograms':'sharedPrograms.MeltedStandardTyping.P8'(B,C,K,E,G,L,I,J);J=M)).
'~sharedPrograms.MeltedStandardTyping.P8'('MetaDefs.IT.F2'(A,B), C, D, E, 'MetaDefs.IT.F2'(F,G), H, I, J) :-
        '~sharedPrograms.MeltedStandardTyping.P8'(A, C, D, K, F, H, L, M),
        user:goedel_freeze(ground([M]), (M=[],true->'SharedPrograms':'~sharedPrograms.MeltedStandardTyping.P8'(B,C,K,E,G,L,I,J);J=M)).
'sharedPrograms.MeltedStandardTyping.P8'('MetaDefs.&''.F2'(A,B), C, D, E, 'MetaDefs.&''.F2'(F,G), H, I, J) :-
        'sharedPrograms.MeltedStandardTyping.P8'(A, C, D, K, F, H, L, M),
        user:goedel_freeze(ground([M]), (M=[],true->'SharedPrograms':'sharedPrograms.MeltedStandardTyping.P8'(B,C,K,E,G,L,I,J);J=M)).
'~sharedPrograms.MeltedStandardTyping.P8'('MetaDefs.&''.F2'(A,B), C, D, E, 'MetaDefs.&''.F2'(F,G), H, I, J) :-
        '~sharedPrograms.MeltedStandardTyping.P8'(A, C, D, K, F, H, L, M),
        user:goedel_freeze(ground([M]), (M=[],true->'SharedPrograms':'~sharedPrograms.MeltedStandardTyping.P8'(B,C,K,E,G,L,I,J);J=M)).
'sharedPrograms.MeltedStandardTyping.P8'('MetaDefs.\\/''.F2'(A,B), C, D, E, 'MetaDefs.\\/''.F2'(F,G), H, I, J) :- % added 2 \ djd
        'sharedPrograms.MeltedStandardTyping.P8'(A, C, D, K, F, H, L, M),
        user:goedel_freeze(ground([M]), (M=[],true->'SharedPrograms':'sharedPrograms.MeltedStandardTyping.P8'(B,C,K,E,G,L,I,J);J=M)).
'~sharedPrograms.MeltedStandardTyping.P8'('MetaDefs.\\/''.F2'(A,B), C, D, E, 'MetaDefs.\\/''.F2'(F,G), H, I, J) :- % added 2 \ djd
        '~sharedPrograms.MeltedStandardTyping.P8'(A, C, D, K, F, H, L, M),
        user:goedel_freeze(ground([M]), (M=[],true->'SharedPrograms':'~sharedPrograms.MeltedStandardTyping.P8'(B,C,K,E,G,L,I,J);J=M)).
'sharedPrograms.MeltedStandardTyping.P8'('MetaDefs.->''.F2'(A,B), C, D, E, 'MetaDefs.->''.F2'(F,G), H, I, J) :-
        'sharedPrograms.MeltedStandardTyping.P8'(A, C, D, K, F, H, L, M),
        user:goedel_freeze(ground([M]), (M=[],true->'SharedPrograms':'sharedPrograms.MeltedStandardTyping.P8'(B,C,K,E,G,L,I,J);J=M)).
'~sharedPrograms.MeltedStandardTyping.P8'('MetaDefs.->''.F2'(A,B), C, D, E, 'MetaDefs.->''.F2'(F,G), H, I, J) :-
        '~sharedPrograms.MeltedStandardTyping.P8'(A, C, D, K, F, H, L, M),
        user:goedel_freeze(ground([M]), (M=[],true->'SharedPrograms':'~sharedPrograms.MeltedStandardTyping.P8'(B,C,K,E,G,L,I,J);J=M)).
'sharedPrograms.MeltedStandardTyping.P8'('MetaDefs.<-''.F2'(A,B), C, D, E, 'MetaDefs.<-''.F2'(F,G), H, I, J) :-
        'sharedPrograms.MeltedStandardTyping.P8'(A, C, D, K, F, H, L, M),
        user:goedel_freeze(ground([M]), (M=[],true->'SharedPrograms':'sharedPrograms.MeltedStandardTyping.P8'(B,C,K,E,G,L,I,J);J=M)).
'~sharedPrograms.MeltedStandardTyping.P8'('MetaDefs.<-''.F2'(A,B), C, D, E, 'MetaDefs.<-''.F2'(F,G), H, I, J) :-
        '~sharedPrograms.MeltedStandardTyping.P8'(A, C, D, K, F, H, L, M),
        user:goedel_freeze(ground([M]), (M=[],true->'SharedPrograms':'~sharedPrograms.MeltedStandardTyping.P8'(B,C,K,E,G,L,I,J);J=M)).
'sharedPrograms.MeltedStandardTyping.P8'('MetaDefs.<->''.F2'(A,B), C, D, E, 'MetaDefs.<->''.F2'(F,G), H, I, J) :-
        'sharedPrograms.MeltedStandardTyping.P8'(A, C, D, K, F, H, L, M),
        user:goedel_freeze(ground([M]), (M=[],true->'SharedPrograms':'sharedPrograms.MeltedStandardTyping.P8'(B,C,K,E,G,L,I,J);J=M)).
'~sharedPrograms.MeltedStandardTyping.P8'('MetaDefs.<->''.F2'(A,B), C, D, E, 'MetaDefs.<->''.F2'(F,G), H, I, J) :-
        '~sharedPrograms.MeltedStandardTyping.P8'(A, C, D, K, F, H, L, M),
        user:goedel_freeze(ground([M]), (M=[],true->'SharedPrograms':'~sharedPrograms.MeltedStandardTyping.P8'(B,C,K,E,G,L,I,J);J=M)).
'sharedPrograms.MeltedStandardTyping.P8'('MetaDefs.~''.F1'(A), B, C, D, 'MetaDefs.~''.F1'(E), F, G, H) :-
        'sharedPrograms.MeltedStandardTyping.P8'(A, B, C, D, E, F, G, H).
'~sharedPrograms.MeltedStandardTyping.P8'('MetaDefs.~''.F1'(A), B, C, D, 'MetaDefs.~''.F1'(E), F, G, H) :-
        '~sharedPrograms.MeltedStandardTyping.P8'(A, B, C, D, E, F, G, H).
'sharedPrograms.MeltedStandardTyping.P8'('MetaDefs.All.F2'(A,B), C, D, E, 'MetaDefs.All.F2'(A,F), G, H, I) :-
        'sharedPrograms.DivideBindings.P4'(A, D, J, K),
        'sharedPrograms.MeltedStandardTyping.P8'(B, C, J, L, F, G, H, I),
        'sharedPrograms.DivideBindings.P4'(A, L, M, _),
        'Lists':'Lists.Append.P3'(K, M, E).
'~sharedPrograms.MeltedStandardTyping.P8'('MetaDefs.All.F2'(A,B), C, D, E, 'MetaDefs.All.F2'(A,F), G, H, I) :-
        '~sharedPrograms.DivideBindings.P4'(A, D, J, K),
        '~sharedPrograms.MeltedStandardTyping.P8'(B, C, J, L, F, G, H, I),
        '~sharedPrograms.DivideBindings.P4'(A, L, M, _),
        'Lists':'~Lists.Append.P3'(K, M, E).
'sharedPrograms.MeltedStandardTyping.P8'('MetaDefs.Some.F2'(A,B), C, D, E, 'MetaDefs.Some.F2'(A,F), G, H, I) :-
        'sharedPrograms.DivideBindings.P4'(A, D, J, K),
        'sharedPrograms.MeltedStandardTyping.P8'(B, C, J, L, F, G, H, I),
        'sharedPrograms.DivideBindings.P4'(A, L, M, _),
        'Lists':'Lists.Append.P3'(K, M, E).
'~sharedPrograms.MeltedStandardTyping.P8'('MetaDefs.Some.F2'(A,B), C, D, E, 'MetaDefs.Some.F2'(A,F), G, H, I) :-
        '~sharedPrograms.DivideBindings.P4'(A, D, J, K),
        '~sharedPrograms.MeltedStandardTyping.P8'(B, C, J, L, F, G, H, I),
        '~sharedPrograms.DivideBindings.P4'(A, L, M, _),
        'Lists':'~Lists.Append.P3'(K, M, E).
'sharedPrograms.MeltedStandardTyping.P8'('MetaDefs.PAtom.F1'(A), B, C, D, E, F, G, H) :-
        'sharedPrograms.MeltedAtomTyping.P8'('MetaDefs.PAtom.F1'(A), B, C, D, E, F, G, H).
'~sharedPrograms.MeltedStandardTyping.P8'('MetaDefs.PAtom.F1'(A), B, C, D, E, F, G, H) :-
        '~sharedPrograms.MeltedAtomTyping.P8'('MetaDefs.PAtom.F1'(A), B, C, D, E, F, G, H).
'sharedPrograms.MeltedStandardTyping.P8'('MetaDefs.Atom.F2'(A,B), C, D, E, F, G, H, I) :-
        'sharedPrograms.MeltedAtomTyping.P8'('MetaDefs.Atom.F2'(A,B), C, D, E, F, G, H, I).
'~sharedPrograms.MeltedStandardTyping.P8'('MetaDefs.Atom.F2'(A,B), C, D, E, F, G, H, I) :-
        '~sharedPrograms.MeltedAtomTyping.P8'('MetaDefs.Atom.F2'(A,B), C, D, E, F, G, H, I).
'sharedPrograms.MeltedStandardTyping.P8'('MetaDefs.XPAtom.F1'(A), B, C, D, E, F, G, H) :-
        'sharedPrograms.MeltedAtomTyping.P8'('MetaDefs.XPAtom.F1'(A), B, C, D, E, F, G, H).
'~sharedPrograms.MeltedStandardTyping.P8'('MetaDefs.XPAtom.F1'(A), B, C, D, E, F, G, H) :-
        '~sharedPrograms.MeltedAtomTyping.P8'('MetaDefs.XPAtom.F1'(A), B, C, D, E, F, G, H).
'sharedPrograms.MeltedStandardTyping.P8'('MetaDefs.XAtom.F2'(A,B), C, D, E, F, G, H, I) :-
        'sharedPrograms.MeltedAtomTyping.P8'('MetaDefs.XAtom.F2'(A,B), C, D, E, F, G, H, I).
'~sharedPrograms.MeltedStandardTyping.P8'('MetaDefs.XAtom.F2'(A,B), C, D, E, F, G, H, I) :-
        '~sharedPrograms.MeltedAtomTyping.P8'('MetaDefs.XAtom.F2'(A,B), C, D, E, F, G, H, I).
'sharedPrograms.ModuleLanguage.P3'('ProgDefs.Program.F4'(_,A,'ProgDefs.Language.F1'(B),_), C, 'ProgDefs.Language.F1'(D)) :-
        'sharedPrograms.EmptyLanguage.P1'('ProgDefs.Language.F1'(E)),
        'avlTrees':'avlTrees.avlSearch.P3'(A, C, 'ProgDefs.ModDef.F4'(F,G,H,I)),
        user:goedel_freeze(ground([F]), (F='ProgDefs.ClosedKind.C0',true->'SharedPrograms':'sharedPrograms.ImportedLanguage.P6'([C],A,B,[],E,D);user:goedel_freeze(ground([B,C]),if(('avlTrees':'~avlTrees.avlSearch.P3'(B,C,J),true),'avlTrees':'avlTrees.avlInsert.P4'(E,C,J,K),K=E)),'Lists':'Lists.Append.P3'(G,H,L),'Lists':'Lists.Append.P3'(I,L,M),'SharedPrograms':'sharedPrograms.ImportedLanguage.P6'(M,A,B,[C],K,D))).
'~sharedPrograms.ModuleLanguage.P3'('ProgDefs.Program.F4'(_,A,'ProgDefs.Language.F1'(B),_), C, 'ProgDefs.Language.F1'(D)) :-
        '~sharedPrograms.EmptyLanguage.P1'('ProgDefs.Language.F1'(E)),
        'avlTrees':'~avlTrees.avlSearch.P3'(A, C, 'ProgDefs.ModDef.F4'(F,G,H,I)),
        user:goedel_freeze(ground([F]), (F='ProgDefs.ClosedKind.C0',true->'SharedPrograms':'~sharedPrograms.ImportedLanguage.P6'([C],A,B,[],E,D);user:goedel_freeze(ground([B,C]),if(('avlTrees':'~avlTrees.avlSearch.P3'(B,C,J),true),'avlTrees':'~avlTrees.avlInsert.P4'(E,C,J,K),K=E)),'Lists':'~Lists.Append.P3'(G,H,L),'Lists':'~Lists.Append.P3'(I,L,M),'SharedPrograms':'~sharedPrograms.ImportedLanguage.P6'(M,A,B,[C],K,D))).
'sharedPrograms.SymbolInLanguage.P3'('MetaDefs.Name.F4'(A,B,C,D), 'ProgDefs.Language.F1'(E), F) :-
        'sharedPrograms.avlFind.P3'(E, A, 'ProgDefs.Module.F3'(G,'ProgDefs.Categories.F2'(_,H),_)),
        'sharedPrograms.avlFind.P3'(H, B, I),
        'sharedPrograms.FindDescriptor.P5'(I, G, C, D, F).
'~sharedPrograms.SymbolInLanguage.P3'('MetaDefs.Name.F4'(A,B,C,D), 'ProgDefs.Language.F1'(E), F) :-
        '~sharedPrograms.avlFind.P3'(E, A, 'ProgDefs.Module.F3'(G,'ProgDefs.Categories.F2'(_,H),_)),
        '~sharedPrograms.avlFind.P3'(H, B, I),
        '~sharedPrograms.FindDescriptor.P5'(I, G, C, D, F).
'sharedPrograms.SControlInProgram.P5'('ProgDefs.Program.F4'(_,A,'ProgDefs.Language.F1'(B),C), D, E, F, G) :-
        E='MetaDefs.Name.F4'(D,H,_,I),
        'sharedPrograms.avlFind.P3'(B, D, 'ProgDefs.Module.F3'(_,'ProgDefs.Categories.F2'(_,J),_)),
        'sharedPrograms.avlFind.P3'(J, H, K),
        user:goedel_freeze(ground([D]), (D='"',true->L='ProgDefs.ClosedKind.C0',M='ProgDefs.Exported.C0';'avlTrees':'avlTrees.avlSearch.P3'(A,D,'ProgDefs.ModDef.F4'(L,_,_,_)),user:goedel_freeze(ground([L]),(L='ProgDefs.ClosedKind.C0',true->M='ProgDefs.Exported.C0';M='ProgDefs.Hidden.C0')))),
        'sharedPrograms.FindDescriptor.P5'(K, M, _, I, 'ProgDefs.PredicateDecl.F3'(_,_,_)),
        user:goedel_freeze(ground([I,C,D,H]), if((('avlTrees':'~avlTrees.avlSearch.P3'(C,D,'ProgDefs.Code.F2'(_,N)),'avlTrees':'~avlTrees.avlSearch.P3'(N,H,O),'SharedPrograms':'~sharedPrograms.FindPredDef.P3'(I,O,'ProgDefs.PredDef.F4'(I,_,P,Q))),true),(user:goedel_freeze(ground([L]),(L='ProgDefs.ClosedKind.C0',true->R=P;'Lists':'Lists.Append.P3'(P,Q,R))),'SharedPrograms':'sharedPrograms.ReformatDelays.P3'(R,F,G)),(F=[],G=[]))).
'~sharedPrograms.SControlInProgram.P5'('ProgDefs.Program.F4'(_,A,'ProgDefs.Language.F1'(B),C), D, E, F, G) :-
        E='MetaDefs.Name.F4'(D,H,_,I),
        '~sharedPrograms.avlFind.P3'(B, D, 'ProgDefs.Module.F3'(_,'ProgDefs.Categories.F2'(_,J),_)),
        '~sharedPrograms.avlFind.P3'(J, H, K),
        user:goedel_freeze(ground([D]), (D='"',true->L='ProgDefs.ClosedKind.C0',M='ProgDefs.Exported.C0';'avlTrees':'~avlTrees.avlSearch.P3'(A,D,'ProgDefs.ModDef.F4'(L,_,_,_)),user:goedel_freeze(ground([L]),(L='ProgDefs.ClosedKind.C0',true->M='ProgDefs.Exported.C0';M='ProgDefs.Hidden.C0')))),
        '~sharedPrograms.FindDescriptor.P5'(K, M, _, I, 'ProgDefs.PredicateDecl.F3'(_,_,_)),
        user:goedel_freeze(ground([I,C,D,H]), if((('avlTrees':'~avlTrees.avlSearch.P3'(C,D,'ProgDefs.Code.F2'(_,N)),'avlTrees':'~avlTrees.avlSearch.P3'(N,H,O),'SharedPrograms':'~sharedPrograms.FindPredDef.P3'(I,O,'ProgDefs.PredDef.F4'(I,_,P,Q))),true),(user:goedel_freeze(ground([L]),(L='ProgDefs.ClosedKind.C0',true->R=P;'Lists':'~Lists.Append.P3'(P,Q,R))),'SharedPrograms':'~sharedPrograms.ReformatDelays.P3'(R,F,G)),(F=[],G=[]))).
'sharedPrograms.ProgramSkeleton.P4'(A, B, C, 'ProgDefs.Program.F4'(A,D,E,F)) :-
        'avlTrees':'avlTrees.avlIsEmpty.P1'(G),
        'avlTrees':'avlTrees.avlIsEmpty.P1'(H),
        'avlTrees':'avlTrees.avlIsEmpty.P1'(I),
        'avlTrees':'avlTrees.avlInsert.P4'(G, A, 'ProgDefs.ModDef.F4'(B,[],[],[]), D),
        'avlTrees':'avlTrees.avlInsert.P4'(H, A, 'ProgDefs.Code.F2'(C,I), F),
        'sharedPrograms.EmptyLanguage.P1'(E).
'~sharedPrograms.ProgramSkeleton.P4'(A, B, C, 'ProgDefs.Program.F4'(A,D,E,F)) :-
    write("I am confused\n"),ttyflush,
        'avlTrees':'~avlTrees.avlIsEmpty.P1'(G),
        'avlTrees':'~avlTrees.avlIsEmpty.P1'(H),
        'avlTrees':'~avlTrees.avlIsEmpty.P1'(I),
        'avlTrees':'~avlTrees.avlInsert.P4'(G, A, 'ProgDefs.ModDef.F4'(B,[],[],[]), D),
        'avlTrees':'~avlTrees.avlInsert.P4'(H, A, 'ProgDefs.Code.F2'(C,I), F),
        '~sharedPrograms.EmptyLanguage.P1'(E).
'sharedPrograms.OpenModuleAux.P2'(A, B) :-
        'sharedPrograms.avlFind.P3'(A, B, 'ProgDefs.ModDef.F4'(C,_,_,_)),
        'sharedPrograms.OpenKind.P1'(C).
'~sharedPrograms.OpenModuleAux.P2'(A, B) :-
        '~sharedPrograms.avlFind.P3'(A, B, 'ProgDefs.ModDef.F4'(C,_,_,_)),
        '~sharedPrograms.OpenKind.P1'(C).
'sharedPrograms.OpenKind.P1'('ProgDefs.NormalKind.C0').
'~sharedPrograms.OpenKind.P1'('ProgDefs.NormalKind.C0').
'sharedPrograms.OpenKind.P1'('ProgDefs.ModuleKind.C0').
'~sharedPrograms.OpenKind.P1'('ProgDefs.ModuleKind.C0').
'sharedPrograms.MustBracketThen.P1'('MetaDefs.ITE.F3'(_,_,_)).
'~sharedPrograms.MustBracketThen.P1'('MetaDefs.ITE.F3'(_,_,_)).
'sharedPrograms.MustBracketThen.P1'('MetaDefs.ISTE.F4'(_,_,_,_)).
'~sharedPrograms.MustBracketThen.P1'('MetaDefs.ISTE.F4'(_,_,_,_)).
'sharedPrograms.MustBracketThen.P1'('MetaDefs.&''.F2'(A,B)) :-
        'sharedPrograms.ContainsConditional.P1'('MetaDefs.&''.F2'(A,B)).
'~sharedPrograms.MustBracketThen.P1'('MetaDefs.&''.F2'(A,B)) :-
        '~sharedPrograms.ContainsConditional.P1'('MetaDefs.&''.F2'(A,B)).
'sharedPrograms.PredicateInLanguage.P4'(A, B, C, D) :-
        'sharedPrograms.SymbolInLanguage.P3'(A, B, 'ProgDefs.PredicateDecl.F3'(_,C,D)).
'~sharedPrograms.PredicateInLanguage.P4'(A, B, C, D) :-
        '~sharedPrograms.SymbolInLanguage.P3'(A, B, 'ProgDefs.PredicateDecl.F3'(_,C,D)).
'sharedPrograms.OrSeqToIntDL.P3'('ProgDefs.Or.F2'(A,B), C, D) :-
        'sharedPrograms.SimpleCondToIntDL.P3'(A, C, E),
        'Strings':'Strings.StringInts.P2'('" \\/ ', F), % added \ djd
        'Lists':'Lists.Append.P3'(F, G, E),
        user:goedel_freeze(ground([B]), (B='ProgDefs.Or.F2'(_,_),true->'SharedPrograms':'sharedPrograms.OrSeqToIntDL.P3'(B,G,D);'SharedPrograms':'sharedPrograms.SimpleCondToIntDL.P3'(B,G,D))).
'~sharedPrograms.OrSeqToIntDL.P3'('ProgDefs.Or.F2'(A,B), C, D) :-
        '~sharedPrograms.SimpleCondToIntDL.P3'(A, C, E),
        'Strings':'~Strings.StringInts.P2'('" \\/ ', F),  % added \ djd
        'Lists':'~Lists.Append.P3'(F, G, E),
        user:goedel_freeze(ground([B]), (B='ProgDefs.Or.F2'(_,_),true->'SharedPrograms':'~sharedPrograms.OrSeqToIntDL.P3'(B,G,D);'SharedPrograms':'~sharedPrograms.SimpleCondToIntDL.P3'(B,G,D))).
'sharedPrograms.ProgramLanguage.P2'('ProgDefs.Program.F4'(_,_,A,_), A).
'~sharedPrograms.ProgramLanguage.P2'('ProgDefs.Program.F4'(_,_,A,_), A).
'sharedPrograms.RationalTerm.P2'(A, 'MetaDefs.Term.F2'('MetaDefs.Name.F4'('"Rationals','"//','MetaDefs.Function.C0',2),['MetaDefs.Int.F1'(A),'MetaDefs.Int.F1'(1)])).
'~sharedPrograms.RationalTerm.P2'(A, 'MetaDefs.Term.F2'('MetaDefs.Name.F4'('"Rationals','"//','MetaDefs.Function.C0',2),['MetaDefs.Int.F1'(A),'MetaDefs.Int.F1'(1)])).
'sharedPrograms.QuantifiedFormulaToIntDL.P6'(A, B, C, D, E, F) :-
        'sharedPrograms.QuantifiedFormula.P3'(A, G, H),
        'sharedPrograms.DeleteUnderscores.P2'(G, I),
        user:goedel_freeze(ground([I]), (I=[],true->'SharedPrograms':'sharedPrograms.FormulaToIntDL.P6'(H,B,C,D,E,F);'SharedPrograms':'sharedPrograms.QuantifierChars.P3'(A,E,J),'SharedPrograms':'sharedPrograms.VarListToIntDL.P6'(G,B,C,D,J,K),'SharedPrograms':'sharedPrograms.CharDL.P3'('" ',K,L),'SharedPrograms':'sharedPrograms.FormulaToIntDL.P6'(H,B,C,D,M,N),user:goedel_freeze(ground([A,H]),(('SharedPrograms':'~sharedPrograms.CLPrec.P2'(H,O),'SharedPrograms':'~sharedPrograms.CRPrec.P2'(A,P),'SharedPrograms':'~sharedPrograms.BindsTighter.P2'(O,P)),true->L=M,F=N;'SharedPrograms':'sharedPrograms.CharDL.P3'('"(',L,M),'SharedPrograms':'sharedPrograms.CharDL.P3'('")',N,F))))).
'~sharedPrograms.QuantifiedFormulaToIntDL.P6'(A, B, C, D, E, F) :-
        '~sharedPrograms.QuantifiedFormula.P3'(A, G, H),
        '~sharedPrograms.DeleteUnderscores.P2'(G, I),
        user:goedel_freeze(ground([I]), (I=[],true->'SharedPrograms':'~sharedPrograms.FormulaToIntDL.P6'(H,B,C,D,E,F);'SharedPrograms':'~sharedPrograms.QuantifierChars.P3'(A,E,J),'SharedPrograms':'~sharedPrograms.VarListToIntDL.P6'(G,B,C,D,J,K),'SharedPrograms':'~sharedPrograms.CharDL.P3'('" ',K,L),'SharedPrograms':'~sharedPrograms.FormulaToIntDL.P6'(H,B,C,D,M,N),user:goedel_freeze(ground([A,H]),(('SharedPrograms':'~sharedPrograms.CLPrec.P2'(H,O),'SharedPrograms':'~sharedPrograms.CRPrec.P2'(A,P),'SharedPrograms':'~sharedPrograms.BindsTighter.P2'(O,P)),true->L=M,F=N;'SharedPrograms':'~sharedPrograms.CharDL.P3'('"(',L,M),'SharedPrograms':'~sharedPrograms.CharDL.P3'('")',N,F))))).
'sharedPrograms.PropositionInLanguage.P2'(A, B) :-
        'sharedPrograms.SymbolInLanguage.P3'(A, B, 'ProgDefs.PropositionDecl.C0').
'~sharedPrograms.PropositionInLanguage.P2'(A, B) :-
        '~sharedPrograms.SymbolInLanguage.P3'(A, B, 'ProgDefs.PropositionDecl.C0').
'sharedPrograms.QuantifiedFormula.P3'('MetaDefs.Some.F2'(A,B), A, B).
'~sharedPrograms.QuantifiedFormula.P3'('MetaDefs.Some.F2'(A,B), A, B).
'sharedPrograms.QuantifiedFormula.P3'('MetaDefs.All.F2'(A,B), A, B).
'~sharedPrograms.QuantifiedFormula.P3'('MetaDefs.All.F2'(A,B), A, B).
'sharedPrograms.RPrec.P2'('Syntax.NoFunctInd.C0', 'sharedPrograms.Infinity.C0').
'~sharedPrograms.RPrec.P2'('Syntax.NoFunctInd.C0', 'sharedPrograms.Infinity.C0').
'sharedPrograms.RPrec.P2'('Syntax.XFX.F1'(A), 'sharedPrograms.Prec.F2'(A,'sharedPrograms.X.C0')).
'~sharedPrograms.RPrec.P2'('Syntax.XFX.F1'(A), 'sharedPrograms.Prec.F2'(A,'sharedPrograms.X.C0')).
'sharedPrograms.RPrec.P2'('Syntax.XFY.F1'(A), 'sharedPrograms.Prec.F2'(A,'sharedPrograms.Y.C0')).
'~sharedPrograms.RPrec.P2'('Syntax.XFY.F1'(A), 'sharedPrograms.Prec.F2'(A,'sharedPrograms.Y.C0')).
'sharedPrograms.RPrec.P2'('Syntax.YFX.F1'(A), 'sharedPrograms.Prec.F2'(A,'sharedPrograms.X.C0')).
'~sharedPrograms.RPrec.P2'('Syntax.YFX.F1'(A), 'sharedPrograms.Prec.F2'(A,'sharedPrograms.X.C0')).
'sharedPrograms.RPrec.P2'('Syntax.FX.F1'(A), 'sharedPrograms.Prec.F2'(A,'sharedPrograms.X.C0')).
'~sharedPrograms.RPrec.P2'('Syntax.FX.F1'(A), 'sharedPrograms.Prec.F2'(A,'sharedPrograms.X.C0')).
'sharedPrograms.RPrec.P2'('Syntax.FY.F1'(A), 'sharedPrograms.Prec.F2'(A,'sharedPrograms.Y.C0')).
'~sharedPrograms.RPrec.P2'('Syntax.FY.F1'(A), 'sharedPrograms.Prec.F2'(A,'sharedPrograms.Y.C0')).
'sharedPrograms.RPrec.P2'('Syntax.XF.F1'(A), 'sharedPrograms.Prec.F2'(A,'sharedPrograms.X.C0')).
'~sharedPrograms.RPrec.P2'('Syntax.XF.F1'(A), 'sharedPrograms.Prec.F2'(A,'sharedPrograms.X.C0')).
'sharedPrograms.RPrec.P2'('Syntax.YF.F1'(A), 'sharedPrograms.Prec.F2'(A,'sharedPrograms.X.C0')).
'~sharedPrograms.RPrec.P2'('Syntax.YF.F1'(A), 'sharedPrograms.Prec.F2'(A,'sharedPrograms.X.C0')).
'sharedPrograms.QuantifierChars.P3'('MetaDefs.Some.F2'(_,_), A, B) :-
        'Strings':'Strings.StringInts.P2'('"SOME ', C),
        'Lists':'Lists.Append.P3'(C, B, A).
'~sharedPrograms.QuantifierChars.P3'('MetaDefs.Some.F2'(_,_), A, B) :-
        'Strings':'~Strings.StringInts.P2'('"SOME ', C),
        'Lists':'~Lists.Append.P3'(C, B, A).
'sharedPrograms.QuantifierChars.P3'('MetaDefs.All.F2'(_,_), A, B) :-
        'Strings':'Strings.StringInts.P2'('"ALL ', C),
        'Lists':'Lists.Append.P3'(C, B, A).
'~sharedPrograms.QuantifierChars.P3'('MetaDefs.All.F2'(_,_), A, B) :-
        'Strings':'~Strings.StringInts.P2'('"ALL ', C),
        'Lists':'~Lists.Append.P3'(C, B, A).
'sharedPrograms.ReformatDelays.P3'([], [], []).
'~sharedPrograms.ReformatDelays.P3'([], [], []).
'sharedPrograms.ReformatDelays.P3'(['ProgDefs.Delay.F2'(B,C)|A], [B|D], [C|E]) :-
        'sharedPrograms.ReformatDelays.P3'(A, D, E).
'~sharedPrograms.ReformatDelays.P3'(['ProgDefs.Delay.F2'(B,C)|A], [B|D], [C|E]) :-
        '~sharedPrograms.ReformatDelays.P3'(A, D, E).
'sharedPrograms.RationalToIntDL.P9'(A, B, C, D, E, F, G, H, I) :-
        'sharedPrograms.CookRationalTerm.P2'(A, J),
        user:goedel_freeze(ground([B]), (B=1,true->'SharedPrograms':'sharedPrograms.TermToIntDL.P9'(J,C,D,[],E,F,G,H,I);'SharedPrograms':'sharedPrograms.CookRationalTerm.P2'(B,K),'SharedPrograms':'sharedPrograms.TermToIntDL.P9'('MetaDefs.Term.F2'('MetaDefs.Name.F4'('"Rationals','"/','MetaDefs.Function.C0',2),[J,K]),C,D,[],E,F,G,H,I))).
'~sharedPrograms.RationalToIntDL.P9'(A, B, C, D, E, F, G, H, I) :-
        '~sharedPrograms.CookRationalTerm.P2'(A, J),
        user:goedel_freeze(ground([B]), (B=1,true->'SharedPrograms':'~sharedPrograms.TermToIntDL.P9'(J,C,D,[],E,F,G,H,I);'SharedPrograms':'~sharedPrograms.CookRationalTerm.P2'(B,K),'SharedPrograms':'~sharedPrograms.TermToIntDL.P9'('MetaDefs.Term.F2'('MetaDefs.Name.F4'('"Rationals','"/','MetaDefs.Function.C0',2),[J,K]),C,D,[],E,F,G,H,I))).
'sharedPrograms.RestVarListToIntDL.P6'([], _, _, _, A, A).
'~sharedPrograms.RestVarListToIntDL.P6'([], _, _, _, A, A).
'sharedPrograms.RestVarListToIntDL.P6'([A|B], C, D, E, F, G) :-
        'sharedPrograms.CharDL.P3'('",', F, H),
        'sharedPrograms.TermToIntDL.P9'(A, C, D, E, _, _, _, H, I),
        'sharedPrograms.RestVarListToIntDL.P6'(B, C, D, E, I, G).
'~sharedPrograms.RestVarListToIntDL.P6'([A|B], C, D, E, F, G) :-
        '~sharedPrograms.CharDL.P3'('",', F, H),
        '~sharedPrograms.TermToIntDL.P9'(A, C, D, E, _, _, _, H, I),
        '~sharedPrograms.RestVarListToIntDL.P6'(B, C, D, E, I, G).
'sharedPrograms.SConditionToString.P2'(A, B) :-
        'sharedPrograms.ConditionToIntDL.P3'(A, C, []),
        'Strings':'Strings.StringInts.P2'(B, C).
'~sharedPrograms.SConditionToString.P2'(A, B) :-
        '~sharedPrograms.ConditionToIntDL.P3'(A, C, []),
        'Strings':'~Strings.StringInts.P2'(B, C).
'sharedPrograms.SProgramTypeToString.P4'(A, B, C, D) :-
        'sharedPrograms.ModuleLanguage.P3'(A, B, E),
        'sharedPrograms.TypeToIntDL.P4'(C, E, F, []),
        'Strings':'Strings.StringInts.P2'(D, F).
'~sharedPrograms.SProgramTypeToString.P4'(A, B, C, D) :-
        '~sharedPrograms.ModuleLanguage.P3'(A, B, E),
        '~sharedPrograms.TypeToIntDL.P4'(C, E, F, []),
        'Strings':'~Strings.StringInts.P2'(D, F).
'sharedPrograms.SOpenModule.P2'('ProgDefs.Program.F4'(_,A,_,_), B) :-
        'sharedPrograms.OpenModuleAux.P2'(A, B).
'~sharedPrograms.SOpenModule.P2'('ProgDefs.Program.F4'(_,A,_,_), B) :-
        '~sharedPrograms.OpenModuleAux.P2'(A, B).
'sharedPrograms.SMainModuleInProgram.P2'('ProgDefs.Program.F4'(A,_,_,_), A).
'~sharedPrograms.SMainModuleInProgram.P2'('ProgDefs.Program.F4'(A,_,_,_), A).
'sharedPrograms.SProgramTermToString.P4'(A, B, C, D) :-
        'sharedPrograms.TermToIntList.P4'(A, B, C, E),
        'Strings':'Strings.StringInts.P2'(D, E).
'~sharedPrograms.SProgramTermToString.P4'(A, B, C, D) :-
        '~sharedPrograms.TermToIntList.P4'(A, B, C, E),
        'Strings':'~Strings.StringInts.P2'(D, E).
'sharedPrograms.SProgramFormulaToString.P4'(A, B, C, D) :-
        'sharedPrograms.FormulaToIntList.P4'(A, B, C, E),
        'Strings':'Strings.StringInts.P2'(D, E).
'~sharedPrograms.SProgramFormulaToString.P4'(A, B, C, D) :-
        '~sharedPrograms.FormulaToIntList.P4'(A, B, C, E),
        'Strings':'~Strings.StringInts.P2'(D, E).
'sharedPrograms.SpaceIfNeeded.P4'(A, B, C, D) :-
        user:goedel_freeze(ground([A,B]), ((A=B,user:not_equal([],[A],A,'sharedPrograms.Bounded.C0')),true->'SharedPrograms':'sharedPrograms.CharDL.P3'('" ',C,D);C=D)).
'~sharedPrograms.SpaceIfNeeded.P4'(A, B, C, D) :-
        user:goedel_freeze(ground([A,B]), ((A=B,user:not_equal([],[A],A,'sharedPrograms.Bounded.C0')),true->'SharedPrograms':'~sharedPrograms.CharDL.P3'('" ',C,D);C=D)).
'sharedPrograms.SetExprToIntDL.P6'([A,B], C, D, E, F, G) :-
        'sharedPrograms.CharDL.P3'('"{', F, H),
        'sharedPrograms.TermToIntDL.P9'(A, C, D, E, _, _, _, H, I),
        'sharedPrograms.ChainExprToIntDL.P6'(B, C, D, E, I, J),
        'sharedPrograms.CharDL.P3'('"}', J, G).
'~sharedPrograms.SetExprToIntDL.P6'([A,B], C, D, E, F, G) :-
        '~sharedPrograms.CharDL.P3'('"{', F, H),
        '~sharedPrograms.TermToIntDL.P9'(A, C, D, E, _, _, _, H, I),
        '~sharedPrograms.ChainExprToIntDL.P6'(B, C, D, E, I, J),
        '~sharedPrograms.CharDL.P3'('"}', J, G).
'sharedPrograms.SimpleCondToIntDL.P3'('ProgDefs.Nonvar.F1'(A), B, C) :-
        'Strings':'Strings.StringInts.P2'('"NONVAR(', D),
        'Lists':'Lists.Append.P3'(D, E, B),
        'sharedPrograms.TermToIntDL.P9'(A, _, _, _, _, _, _, E, F),
        'sharedPrograms.CharDL.P3'('")', F, C).
'~sharedPrograms.SimpleCondToIntDL.P3'('ProgDefs.Nonvar.F1'(A), B, C) :-
        'Strings':'~Strings.StringInts.P2'('"NONVAR(', D),
        'Lists':'~Lists.Append.P3'(D, E, B),
        '~sharedPrograms.TermToIntDL.P9'(A, _, _, _, _, _, _, E, F),
        '~sharedPrograms.CharDL.P3'('")', F, C).
'sharedPrograms.SimpleCondToIntDL.P3'('ProgDefs.Ground.F1'(A), B, C) :-
        'Strings':'Strings.StringInts.P2'('"GROUND(', D),
        'Lists':'Lists.Append.P3'(D, E, B),
        'sharedPrograms.TermToIntDL.P9'(A, _, _, _, _, _, _, E, F),
        'sharedPrograms.CharDL.P3'('")', F, C).
'~sharedPrograms.SimpleCondToIntDL.P3'('ProgDefs.Ground.F1'(A), B, C) :-
        'Strings':'~Strings.StringInts.P2'('"GROUND(', D),
        'Lists':'~Lists.Append.P3'(D, E, B),
        '~sharedPrograms.TermToIntDL.P9'(A, _, _, _, _, _, _, E, F),
        '~sharedPrograms.CharDL.P3'('")', F, C).
'sharedPrograms.SimpleCondToIntDL.P3'('ProgDefs.And.F2'(A,B), C, D) :-
        'sharedPrograms.CharDL.P3'('"(', C, E),
        'sharedPrograms.AndSeqToIntDL.P3'('ProgDefs.And.F2'(A,B), E, F),
        'sharedPrograms.CharDL.P3'('")', F, D).
'~sharedPrograms.SimpleCondToIntDL.P3'('ProgDefs.And.F2'(A,B), C, D) :-
        '~sharedPrograms.CharDL.P3'('"(', C, E),
        '~sharedPrograms.AndSeqToIntDL.P3'('ProgDefs.And.F2'(A,B), E, F),
        '~sharedPrograms.CharDL.P3'('")', F, D).
'sharedPrograms.SimpleCondToIntDL.P3'('ProgDefs.Or.F2'(A,B), C, D) :-
        'sharedPrograms.CharDL.P3'('"(', C, E),
        'sharedPrograms.OrSeqToIntDL.P3'('ProgDefs.Or.F2'(A,B), E, F),
        'sharedPrograms.CharDL.P3'('")', F, D).
'~sharedPrograms.SimpleCondToIntDL.P3'('ProgDefs.Or.F2'(A,B), C, D) :-
        '~sharedPrograms.CharDL.P3'('"(', C, E),
        '~sharedPrograms.OrSeqToIntDL.P3'('ProgDefs.Or.F2'(A,B), E, F),
        '~sharedPrograms.CharDL.P3'('")', F, D).
'sharedPrograms.StatementInLanguage.P5'('MetaDefs.<-''.F2'(A,B), C, 'MetaDefs.<-''.F2'(D,E), F, G) :-
        'sharedPrograms.MeltedBodyTyping.P8'(B, C, [], H, E, I, J, K),
        user:goedel_freeze(ground([K]), (K=[],true->'SharedPrograms':'sharedPrograms.HeadAtom.P9'(A,C,H,_,D,J,[],L,M),user:goedel_freeze(ground([M]),(M=[],true->'SharedPrograms':'sharedPrograms.FixRationals.P2'(I,F),'SharedPrograms':'sharedPrograms.CheckHeadArgs.P4'(D,L,C,G);G=M));G=K)).
'~sharedPrograms.StatementInLanguage.P5'('MetaDefs.<-''.F2'(A,B), C, 'MetaDefs.<-''.F2'(D,E), F, G) :-
        '~sharedPrograms.MeltedBodyTyping.P8'(B, C, [], H, E, I, J, K),
        user:goedel_freeze(ground([K]), (K=[],true->'SharedPrograms':'~sharedPrograms.HeadAtom.P9'(A,C,H,_,D,J,[],L,M),user:goedel_freeze(ground([M]),(M=[],true->'SharedPrograms':'~sharedPrograms.FixRationals.P2'(I,F),'SharedPrograms':'~sharedPrograms.CheckHeadArgs.P4'(D,L,C,G);G=M));G=K)).
'sharedPrograms.TypeInLanguage.P2'('MetaDefs.Par.F2'(_,_), _).
'~sharedPrograms.TypeInLanguage.P2'('MetaDefs.Par.F2'(_,_), _).
'sharedPrograms.TypeInLanguage.P2'('MetaDefs.Par.F1'(_), _).
'~sharedPrograms.TypeInLanguage.P2'('MetaDefs.Par.F1'(_), _).
'sharedPrograms.TypeInLanguage.P2'('MetaDefs.BType.F1'(A), B) :-
        'sharedPrograms.BaseInLanguage.P2'(A, B).
'~sharedPrograms.TypeInLanguage.P2'('MetaDefs.BType.F1'(A), B) :-
        '~sharedPrograms.BaseInLanguage.P2'(A, B).
'sharedPrograms.TypeInLanguage.P2'('MetaDefs.XBType.F1'(A), B) :-
        'sharedPrograms.BaseInLanguage.P2'(A, B).
'~sharedPrograms.TypeInLanguage.P2'('MetaDefs.XBType.F1'(A), B) :-
        '~sharedPrograms.BaseInLanguage.P2'(A, B).
'sharedPrograms.TypeInLanguage.P2'('MetaDefs.Type.F2'(A,B), C) :-
        'sharedPrograms.ConstructorInLanguage.P3'(A, C, D),
        'Lists':'Lists.Length.P2'(B, D),
        'sharedPrograms.ListTypesInLanguage.P2'(B, C).
'~sharedPrograms.TypeInLanguage.P2'('MetaDefs.Type.F2'(A,B), C) :-
        '~sharedPrograms.ConstructorInLanguage.P3'(A, C, D),
        'Lists':'~Lists.Length.P2'(B, D),
        '~sharedPrograms.ListTypesInLanguage.P2'(B, C).
'sharedPrograms.TypeInLanguage.P2'('MetaDefs.XType.F2'(A,B), C) :-
        'sharedPrograms.ConstructorInLanguage.P3'(A, C, D),
        'Lists':'Lists.Length.P2'(B, D),
        'sharedPrograms.ListTypesInLanguage.P2'(B, C).
'~sharedPrograms.TypeInLanguage.P2'('MetaDefs.XType.F2'(A,B), C) :-
        '~sharedPrograms.ConstructorInLanguage.P3'(A, C, D),
        'Lists':'~Lists.Length.P2'(B, D),
        '~sharedPrograms.ListTypesInLanguage.P2'(B, C).
'sharedPrograms.TermToIntDL.P9'('MetaDefs.Term.F2'(A,B), C, D, E, F, G, H, I, J) :-
        user:goedel_freeze(ground([A,C]), if(('SharedPrograms':'~sharedPrograms.FunctionInLanguage.P5'(A,C,K,_,_),true),('SharedPrograms':'sharedPrograms.TermToIntDLAux.P11'(K,A,B,C,D,E,L,G,H,I,J),F=L),(F='Syntax.NoFunctInd.C0',G='sharedPrograms.Bounded.C0',H='sharedPrograms.Bounded.C0','SharedPrograms':'sharedPrograms.TermInLanguage.P5'('MetaDefs.Term.F2'(A,B),D,'MetaDefs.VarTyping.F1'(E),_,M),'SharedPrograms':'sharedPrograms.CharDL.P3'('"<',I,N),'SharedPrograms':'sharedPrograms.TypeToIntDL.P4'(M,C,N,O),'SharedPrograms':'sharedPrograms.CharDL.P3'('">',O,J)))).
'~sharedPrograms.TermToIntDL.P9'('MetaDefs.Term.F2'(A,B), C, D, E, F, G, H, I, J) :-
        user:goedel_freeze(ground([A,C]), if(('SharedPrograms':'~sharedPrograms.FunctionInLanguage.P5'(A,C,K,_,_),true),('SharedPrograms':'~sharedPrograms.TermToIntDLAux.P11'(K,A,B,C,D,E,L,G,H,I,J),F=L),(F='Syntax.NoFunctInd.C0',G='sharedPrograms.Bounded.C0',H='sharedPrograms.Bounded.C0','SharedPrograms':'~sharedPrograms.TermInLanguage.P5'('MetaDefs.Term.F2'(A,B),D,'MetaDefs.VarTyping.F1'(E),_,M),'SharedPrograms':'~sharedPrograms.CharDL.P3'('"<',I,N),'SharedPrograms':'~sharedPrograms.TypeToIntDL.P4'(M,C,N,O),'SharedPrograms':'~sharedPrograms.CharDL.P3'('">',O,J)))).
'sharedPrograms.TermToIntDL.P9'('MetaDefs.XTerm.F3'(_,_,A), B, _, _, 'Syntax.NoFunctInd.C0', 'sharedPrograms.Bounded.C0', 'sharedPrograms.Bounded.C0', C, D) :-
        'sharedPrograms.CharDL.P3'('"<', C, E),
        'sharedPrograms.TypeToIntDL.P4'(A, B, E, F),
        'sharedPrograms.CharDL.P3'('">', F, D).
'~sharedPrograms.TermToIntDL.P9'('MetaDefs.XTerm.F3'(_,_,A), B, _, _, 'Syntax.NoFunctInd.C0', 'sharedPrograms.Bounded.C0', 'sharedPrograms.Bounded.C0', C, D) :-
        '~sharedPrograms.CharDL.P3'('"<', C, E),
        '~sharedPrograms.TypeToIntDL.P4'(A, B, E, F),
        '~sharedPrograms.CharDL.P3'('">', F, D).
'sharedPrograms.TermToIntDL.P9'('MetaDefs.CTerm.F1'(A), B, C, D, 'Syntax.NoFunctInd.C0', E, E, F, G) :-
        user:goedel_freeze(ground([A,B]), ('SharedPrograms':'~sharedPrograms.ConstantInLanguage.P3'(A,B,_),true->'SharedPrograms':'sharedPrograms.ConstantToIntDL.P4'(A,E,F,G);E='sharedPrograms.Bounded.C0','SharedPrograms':'sharedPrograms.TermInLanguage.P5'('MetaDefs.CTerm.F1'(A),C,'MetaDefs.VarTyping.F1'(D),_,H),'SharedPrograms':'sharedPrograms.CharDL.P3'('"<',F,I),'SharedPrograms':'sharedPrograms.TypeToIntDL.P4'(H,B,I,J),'SharedPrograms':'sharedPrograms.CharDL.P3'('">',J,G))).
'~sharedPrograms.TermToIntDL.P9'('MetaDefs.CTerm.F1'(A), B, C, D, 'Syntax.NoFunctInd.C0', E, E, F, G) :-
        user:goedel_freeze(ground([A,B]), ('SharedPrograms':'~sharedPrograms.ConstantInLanguage.P3'(A,B,_),true->'SharedPrograms':'~sharedPrograms.ConstantToIntDL.P4'(A,E,F,G);E='sharedPrograms.Bounded.C0','SharedPrograms':'~sharedPrograms.TermInLanguage.P5'('MetaDefs.CTerm.F1'(A),C,'MetaDefs.VarTyping.F1'(D),_,H),'SharedPrograms':'~sharedPrograms.CharDL.P3'('"<',F,I),'SharedPrograms':'~sharedPrograms.TypeToIntDL.P4'(H,B,I,J),'SharedPrograms':'~sharedPrograms.CharDL.P3'('">',J,G))).
'sharedPrograms.TermToIntDL.P9'('MetaDefs.XCTerm.F2'(_,A), B, _, _, 'Syntax.NoFunctInd.C0', 'sharedPrograms.Bounded.C0', 'sharedPrograms.Bounded.C0', C, D) :-
        'sharedPrograms.CharDL.P3'('"<', C, E),
        'sharedPrograms.TypeToIntDL.P4'(A, B, E, F),
        'sharedPrograms.CharDL.P3'('">', F, D).
'~sharedPrograms.TermToIntDL.P9'('MetaDefs.XCTerm.F2'(_,A), B, _, _, 'Syntax.NoFunctInd.C0', 'sharedPrograms.Bounded.C0', 'sharedPrograms.Bounded.C0', C, D) :-
        '~sharedPrograms.CharDL.P3'('"<', C, E),
        '~sharedPrograms.TypeToIntDL.P4'(A, B, E, F),
        '~sharedPrograms.CharDL.P3'('">', F, D).
'sharedPrograms.TermToIntDL.P9'('MetaDefs.Var.F2'(A,B), _, _, _, 'Syntax.NoFunctInd.C0', 'sharedPrograms.AlphaNum.C0', 'sharedPrograms.AlphaNum.C0', C, D) :-
        'Strings':'Strings.StringInts.P2'(A, E),
        'Lists':'Lists.Append.P3'(E, F, C),
        user:goedel_freeze(ground([B,A]), ((B=0;'Strings':concat('"_',_,G),A=G),true->D=F;'SharedPrograms':'sharedPrograms.CharDL.P3'('"_',F,H),'SharedSyntax':'SharedSyntax.IntegerToCharDL.P3'(B,H,D))).
'~sharedPrograms.TermToIntDL.P9'('MetaDefs.Var.F2'(A,B), _, _, _, 'Syntax.NoFunctInd.C0', 'sharedPrograms.AlphaNum.C0', 'sharedPrograms.AlphaNum.C0', C, D) :-
        'Strings':'~Strings.StringInts.P2'(A, E),
        'Lists':'~Lists.Append.P3'(E, F, C),
        user:goedel_freeze(ground([B,A]), ((B=0;'Strings':concat('"_',_,G),A=G),true->D=F;'SharedPrograms':'~sharedPrograms.CharDL.P3'('"_',F,H),'SharedSyntax':'~SharedSyntax.IntegerToCharDL.P3'(B,H,D))).
'sharedPrograms.TermToIntDL.P9'('MetaDefs.Var.F1'(A), _, _, _, 'Syntax.NoFunctInd.C0', 'sharedPrograms.AlphaNum.C0', 'sharedPrograms.AlphaNum.C0', B, C) :-
        'Strings':'Strings.StringInts.P2'('"v', D),
        'Lists':'Lists.Append.P3'(D, E, B),
        user:goedel_freeze(ground([A]), (A=0,true->C=E;'SharedPrograms':'sharedPrograms.CharDL.P3'('"_',E,F),'SharedSyntax':'SharedSyntax.IntegerToCharDL.P3'(A,F,C))).
'~sharedPrograms.TermToIntDL.P9'('MetaDefs.Var.F1'(A), _, _, _, 'Syntax.NoFunctInd.C0', 'sharedPrograms.AlphaNum.C0', 'sharedPrograms.AlphaNum.C0', B, C) :-
        'Strings':'~Strings.StringInts.P2'('"v', D),
        'Lists':'~Lists.Append.P3'(D, E, B),
        user:goedel_freeze(ground([A]), (A=0,true->C=E;'SharedPrograms':'~sharedPrograms.CharDL.P3'('"_',E,F),'SharedSyntax':'~SharedSyntax.IntegerToCharDL.P3'(A,F,C))).
'sharedPrograms.TermToIntDL.P9'('MetaDefs.Str.F1'(A), B, _, _, 'Syntax.NoFunctInd.C0', 'sharedPrograms.Bounded.C0', 'sharedPrograms.Bounded.C0', C, D) :-
        'sharedPrograms.BaseInLanguage.P2'('MetaDefs.Name.F4'('"Strings','"String','MetaDefs.Base.C0',0), B),
        'Strings':'Strings.StringInts.P2'(A, E),
        'sharedPrograms.ExpandString.P3'(E, C, D).
'~sharedPrograms.TermToIntDL.P9'('MetaDefs.Str.F1'(A), B, _, _, 'Syntax.NoFunctInd.C0', 'sharedPrograms.Bounded.C0', 'sharedPrograms.Bounded.C0', C, D) :-
        '~sharedPrograms.BaseInLanguage.P2'('MetaDefs.Name.F4'('"Strings','"String','MetaDefs.Base.C0',0), B),
        'Strings':'~Strings.StringInts.P2'(A, E),
        '~sharedPrograms.ExpandString.P3'(E, C, D).
'sharedPrograms.TermToIntDL.P9'('MetaDefs.Int.F1'(A), B, _, _, C, D, 'sharedPrograms.AlphaNum.C0', E, F) :-
        'sharedPrograms.BaseInLanguage.P2'('MetaDefs.Name.F4'('"Integers','"Integer','MetaDefs.Base.C0',0), B),
        'SharedSyntax':'SharedSyntax.IntegerToCharDL.P3'(A, E, F),
        user:goedel_freeze(ground([A]), ('Integers':'~Integers.<.P2'(A,0),true->'SharedPrograms':'sharedPrograms.FunctionInLanguage.P5'('MetaDefs.Name.F4'('"Integers','"-','MetaDefs.Function.C0',1),B,C,_,_),D='sharedPrograms.Graphic.C0';C='Syntax.NoFunctInd.C0',D='sharedPrograms.AlphaNum.C0')).
'~sharedPrograms.TermToIntDL.P9'('MetaDefs.Int.F1'(A), B, _, _, C, D, 'sharedPrograms.AlphaNum.C0', E, F) :-
        '~sharedPrograms.BaseInLanguage.P2'('MetaDefs.Name.F4'('"Integers','"Integer','MetaDefs.Base.C0',0), B),
        'SharedSyntax':'~SharedSyntax.IntegerToCharDL.P3'(A, E, F),
        user:goedel_freeze(ground([A]), ('Integers':'~Integers.<.P2'(A,0),true->'SharedPrograms':'~sharedPrograms.FunctionInLanguage.P5'('MetaDefs.Name.F4'('"Integers','"-','MetaDefs.Function.C0',1),B,C,_,_),D='sharedPrograms.Graphic.C0';C='Syntax.NoFunctInd.C0',D='sharedPrograms.AlphaNum.C0')).
'sharedPrograms.TermToIntDL.P9'('MetaDefs.Prm.F1'(A), B, C, D, 'Syntax.NoFunctInd.C0', 'sharedPrograms.Bounded.C0', 'sharedPrograms.Bounded.C0', E, F) :-
        'sharedPrograms.TermInLanguage.P5'('MetaDefs.Prm.F1'(A), C, 'MetaDefs.VarTyping.F1'(D), _, G),
        'sharedPrograms.CharDL.P3'('"<', E, H),
        'sharedPrograms.TypeToIntDL.P4'(G, B, H, I),
        'sharedPrograms.CharDL.P3'('">', I, F).
'~sharedPrograms.TermToIntDL.P9'('MetaDefs.Prm.F1'(A), B, C, D, 'Syntax.NoFunctInd.C0', 'sharedPrograms.Bounded.C0', 'sharedPrograms.Bounded.C0', E, F) :-
        '~sharedPrograms.TermInLanguage.P5'('MetaDefs.Prm.F1'(A), C, 'MetaDefs.VarTyping.F1'(D), _, G),
        '~sharedPrograms.CharDL.P3'('"<', E, H),
        '~sharedPrograms.TypeToIntDL.P4'(G, B, H, I),
        '~sharedPrograms.CharDL.P3'('">', I, F).
'sharedPrograms.TermToIntDL.P9'('MetaDefs.SuchThat.F2'(A,B), C, D, E, 'Syntax.NoFunctInd.C0', 'sharedPrograms.Bounded.C0', 'sharedPrograms.Bounded.C0', F, G) :-
        'sharedPrograms.CharDL.P3'('"{', F, H),
        'sharedPrograms.TermToIntDL.P9'(A, C, D, E, _, _, _, H, I),
        'Strings':'Strings.StringInts.P2'('" : ', J),
        'Lists':'Lists.Append.P3'(J, K, I),
        'sharedPrograms.FormulaToIntDL.P6'(B, C, D, E, K, L),
        'sharedPrograms.CharDL.P3'('"}', L, G).
'~sharedPrograms.TermToIntDL.P9'('MetaDefs.SuchThat.F2'(A,B), C, D, E, 'Syntax.NoFunctInd.C0', 'sharedPrograms.Bounded.C0', 'sharedPrograms.Bounded.C0', F, G) :-
        '~sharedPrograms.CharDL.P3'('"{', F, H),
        '~sharedPrograms.TermToIntDL.P9'(A, C, D, E, _, _, _, H, I),
        'Strings':'~Strings.StringInts.P2'('" : ', J),
        'Lists':'~Lists.Append.P3'(J, K, I),
        '~sharedPrograms.FormulaToIntDL.P6'(B, C, D, E, K, L),
        '~sharedPrograms.CharDL.P3'('"}', L, G).
'sharedPrograms.TermListToIntDL.P6'([A|B], C, D, E, F, G) :-
        'sharedPrograms.TermToIntDL.P9'(A, C, D, E, _, _, _, F, H),
        'sharedPrograms.TermListToIntDLAux.P6'(B, C, D, E, H, G).
'~sharedPrograms.TermListToIntDL.P6'([A|B], C, D, E, F, G) :-
        '~sharedPrograms.TermToIntDL.P9'(A, C, D, E, _, _, _, F, H),
        '~sharedPrograms.TermListToIntDLAux.P6'(B, C, D, E, H, G).
'sharedPrograms.TermInLanguage.P5'(A, B, 'MetaDefs.VarTyping.F1'(C), 'MetaDefs.VarTyping.F1'(D), E) :-
        'sharedPrograms.MeltVariableTyping.P4'(C, B, [], F),
        'sharedPrograms.MeltedTermType.P9'(A, E, B, F, D, _, [], [], []),
        'sharedPrograms.FixType.P3'(E, 0, G),
        'sharedPrograms.FixVariableTyping.P2'(D, G).
'~sharedPrograms.TermInLanguage.P5'(A, B, 'MetaDefs.VarTyping.F1'(C), 'MetaDefs.VarTyping.F1'(D), E) :-
        '~sharedPrograms.MeltVariableTyping.P4'(C, B, [], F),
        '~sharedPrograms.MeltedTermType.P9'(A, E, B, F, D, _, [], [], []),
        '~sharedPrograms.FixType.P3'(E, 0, G),
        '~sharedPrograms.FixVariableTyping.P2'(D, G).
'sharedPrograms.TermListToIntDLAux.P6'([], _, _, _, A, A).
'~sharedPrograms.TermListToIntDLAux.P6'([], _, _, _, A, A).
'sharedPrograms.TermListToIntDLAux.P6'([A|B], C, D, E, F, G) :-
        'sharedPrograms.CharDL.P3'('",', F, H),
        'sharedPrograms.TermToIntDL.P9'(A, C, D, E, _, _, _, H, I),
        'sharedPrograms.TermListToIntDLAux.P6'(B, C, D, E, I, G).
'~sharedPrograms.TermListToIntDLAux.P6'([A|B], C, D, E, F, G) :-
        '~sharedPrograms.CharDL.P3'('",', F, H),
        '~sharedPrograms.TermToIntDL.P9'(A, C, D, E, _, _, _, H, I),
        '~sharedPrograms.TermListToIntDLAux.P6'(B, C, D, E, I, G).
'sharedPrograms.TermToIntList.P4'(A, B, C, D) :-
        'sharedPrograms.ProgramLanguage.P2'(A, E),
        'sharedPrograms.ModuleLanguage.P3'(A, B, F),
        'sharedPrograms.TermInLanguage.P5'(C, E, 'MetaDefs.VarTyping.F1'([]), 'MetaDefs.VarTyping.F1'(G), _),
        'sharedPrograms.TermToIntDL.P9'(C, F, E, G, _, _, _, D, []).
'~sharedPrograms.TermToIntList.P4'(A, B, C, D) :-
        '~sharedPrograms.ProgramLanguage.P2'(A, E),
        '~sharedPrograms.ModuleLanguage.P3'(A, B, F),
        '~sharedPrograms.TermInLanguage.P5'(C, E, 'MetaDefs.VarTyping.F1'([]), 'MetaDefs.VarTyping.F1'(G), _),
        '~sharedPrograms.TermToIntDL.P9'(C, F, E, G, _, _, _, D, []).
'sharedPrograms.TermToIntDLAux.P11'('Syntax.NoFunctInd.C0', 'MetaDefs.Name.F4'(A,B,C,D), E, F, G, H, 'Syntax.NoFunctInd.C0', I, 'sharedPrograms.Bounded.C0', J, K) :-
        user:goedel_freeze(ground([D,C,A,B]), ((A='"Lists',B='"Cons',C='MetaDefs.Function.C0',D=2),true->I='sharedPrograms.Bounded.C0','SharedPrograms':'sharedPrograms.ListExprToIntDL.P6'(E,F,G,H,J,K);user:goedel_freeze(ground([D,C,A,B]),((A='"Sets',B='"Inc',C='MetaDefs.Function.C0',D=2),true->I='sharedPrograms.Bounded.C0','SharedPrograms':'sharedPrograms.SetExprToIntDL.P6'(E,F,G,H,J,K);'SharedPrograms':'sharedPrograms.ClassifyToken.P2'(B,I),'Strings':'Strings.StringInts.P2'(B,L),'Lists':'Lists.Append.P3'(L,M,J),'SharedPrograms':'sharedPrograms.CharDL.P3'('"(',M,N),'SharedPrograms':'sharedPrograms.TermListToIntDL.P6'(E,F,G,H,N,O),'SharedPrograms':'sharedPrograms.CharDL.P3'('")',O,K))))).
'~sharedPrograms.TermToIntDLAux.P11'('Syntax.NoFunctInd.C0', 'MetaDefs.Name.F4'(A,B,C,D), E, F, G, H, 'Syntax.NoFunctInd.C0', I, 'sharedPrograms.Bounded.C0', J, K) :-
        user:goedel_freeze(ground([D,C,A,B]), ((A='"Lists',B='"Cons',C='MetaDefs.Function.C0',D=2),true->I='sharedPrograms.Bounded.C0','SharedPrograms':'~sharedPrograms.ListExprToIntDL.P6'(E,F,G,H,J,K);user:goedel_freeze(ground([D,C,A,B]),((A='"Sets',B='"Inc',C='MetaDefs.Function.C0',D=2),true->I='sharedPrograms.Bounded.C0','SharedPrograms':'~sharedPrograms.SetExprToIntDL.P6'(E,F,G,H,J,K);'SharedPrograms':'~sharedPrograms.ClassifyToken.P2'(B,I),'Strings':'~Strings.StringInts.P2'(B,L),'Lists':'~Lists.Append.P3'(L,M,J),'SharedPrograms':'~sharedPrograms.CharDL.P3'('"(',M,N),'SharedPrograms':'~sharedPrograms.TermListToIntDL.P6'(E,F,G,H,N,O),'SharedPrograms':'~sharedPrograms.CharDL.P3'('")',O,K))))).
'sharedPrograms.TermToIntDLAux.P11'('Syntax.XFX.F1'(A), B, [C,D], E, F, G, H, I, J, K, L) :-
        'sharedPrograms.BinaryInfixToIntDL.P12'('Syntax.XFX.F1'(A), B, C, D, E, F, G, H, I, J, K, L).
'~sharedPrograms.TermToIntDLAux.P11'('Syntax.XFX.F1'(A), B, [C,D], E, F, G, H, I, J, K, L) :-
        '~sharedPrograms.BinaryInfixToIntDL.P12'('Syntax.XFX.F1'(A), B, C, D, E, F, G, H, I, J, K, L).
'sharedPrograms.TermToIntDLAux.P11'('Syntax.XFY.F1'(A), B, [C,D], E, F, G, H, I, J, K, L) :-
        'sharedPrograms.BinaryInfixToIntDL.P12'('Syntax.XFY.F1'(A), B, C, D, E, F, G, H, I, J, K, L).
'~sharedPrograms.TermToIntDLAux.P11'('Syntax.XFY.F1'(A), B, [C,D], E, F, G, H, I, J, K, L) :-
        '~sharedPrograms.BinaryInfixToIntDL.P12'('Syntax.XFY.F1'(A), B, C, D, E, F, G, H, I, J, K, L).
'sharedPrograms.TermToIntDLAux.P11'('Syntax.YFX.F1'(A), B, [C,D], E, F, G, H, I, J, K, L) :-
        'sharedPrograms.BinaryInfixToIntDL.P12'('Syntax.YFX.F1'(A), B, C, D, E, F, G, H, I, J, K, L).
'~sharedPrograms.TermToIntDLAux.P11'('Syntax.YFX.F1'(A), B, [C,D], E, F, G, H, I, J, K, L) :-
        '~sharedPrograms.BinaryInfixToIntDL.P12'('Syntax.YFX.F1'(A), B, C, D, E, F, G, H, I, J, K, L).
'sharedPrograms.TermToIntDLAux.P11'('Syntax.FX.F1'(A), B, [C], D, E, F, 'Syntax.FX.F1'(A), G, H, I, J) :-
        'sharedPrograms.UnaryPrefixToIntDL.P10'('Syntax.FX.F1'(A), B, C, D, E, F, G, H, I, J).
'~sharedPrograms.TermToIntDLAux.P11'('Syntax.FX.F1'(A), B, [C], D, E, F, 'Syntax.FX.F1'(A), G, H, I, J) :-
        '~sharedPrograms.UnaryPrefixToIntDL.P10'('Syntax.FX.F1'(A), B, C, D, E, F, G, H, I, J).
'sharedPrograms.TermToIntDLAux.P11'('Syntax.FY.F1'(A), B, [C], D, E, F, 'Syntax.FY.F1'(A), G, H, I, J) :-
        'sharedPrograms.UnaryPrefixToIntDL.P10'('Syntax.FY.F1'(A), B, C, D, E, F, G, H, I, J).
'~sharedPrograms.TermToIntDLAux.P11'('Syntax.FY.F1'(A), B, [C], D, E, F, 'Syntax.FY.F1'(A), G, H, I, J) :-
        '~sharedPrograms.UnaryPrefixToIntDL.P10'('Syntax.FY.F1'(A), B, C, D, E, F, G, H, I, J).
'sharedPrograms.TermToIntDLAux.P11'('Syntax.XF.F1'(A), B, [C], D, E, F, 'Syntax.XF.F1'(A), G, H, I, J) :-
        'sharedPrograms.UnaryPostfixToIntDL.P10'('Syntax.XF.F1'(A), B, C, D, E, F, G, H, I, J).
'~sharedPrograms.TermToIntDLAux.P11'('Syntax.XF.F1'(A), B, [C], D, E, F, 'Syntax.XF.F1'(A), G, H, I, J) :-
        '~sharedPrograms.UnaryPostfixToIntDL.P10'('Syntax.XF.F1'(A), B, C, D, E, F, G, H, I, J).
'sharedPrograms.TermToIntDLAux.P11'('Syntax.YF.F1'(A), B, [C], D, E, F, 'Syntax.YF.F1'(A), G, H, I, J) :-
        'sharedPrograms.UnaryPostfixToIntDL.P10'('Syntax.YF.F1'(A), B, C, D, E, F, G, H, I, J).
'~sharedPrograms.TermToIntDLAux.P11'('Syntax.YF.F1'(A), B, [C], D, E, F, 'Syntax.YF.F1'(A), G, H, I, J) :-
        '~sharedPrograms.UnaryPostfixToIntDL.P10'('Syntax.YF.F1'(A), B, C, D, E, F, G, H, I, J).
'sharedPrograms.ThenPartToIntDL.P6'(A, B, C, D, E, F) :-
        'sharedPrograms.FormulaToIntDL.P6'(A, B, C, D, G, H),
        user:goedel_freeze(ground([A]), ('SharedPrograms':'~sharedPrograms.MustBracketThen.P1'(A),true->'SharedPrograms':'sharedPrograms.CharDL.P3'('"(',E,G),'SharedPrograms':'sharedPrograms.CharDL.P3'('")',H,F);E=G,F=H)).
'~sharedPrograms.ThenPartToIntDL.P6'(A, B, C, D, E, F) :-
        '~sharedPrograms.FormulaToIntDL.P6'(A, B, C, D, G, H),
        user:goedel_freeze(ground([A]), ('SharedPrograms':'~sharedPrograms.MustBracketThen.P1'(A),true->'SharedPrograms':'~sharedPrograms.CharDL.P3'('"(',E,G),'SharedPrograms':'~sharedPrograms.CharDL.P3'('")',H,F);E=G,F=H)).
'sharedPrograms.TypeSymbolInLanguage.P3'('MetaDefs.Name.F4'(A,B,C,D), 'ProgDefs.Language.F1'(E), F) :-
        'sharedPrograms.avlFind.P3'(E, A, 'ProgDefs.Module.F3'(G,'ProgDefs.Categories.F2'(H,_),_)),
        'sharedPrograms.avlFind.P3'(H, B, I),
        'sharedPrograms.FindDescriptor.P5'(I, G, C, D, F).
'~sharedPrograms.TypeSymbolInLanguage.P3'('MetaDefs.Name.F4'(A,B,C,D), 'ProgDefs.Language.F1'(E), F) :-
        '~sharedPrograms.avlFind.P3'(E, A, 'ProgDefs.Module.F3'(G,'ProgDefs.Categories.F2'(H,_),_)),
        '~sharedPrograms.avlFind.P3'(H, B, I),
        '~sharedPrograms.FindDescriptor.P5'(I, G, C, D, F).
'sharedPrograms.TypeListToIntDL.P4'([A|B], C, D, E) :-
        'sharedPrograms.TypeToIntDL.P4'(A, C, D, F),
        'sharedPrograms.TypeListToIntDLAux.P4'(B, C, F, E).
'~sharedPrograms.TypeListToIntDL.P4'([A|B], C, D, E) :-
        '~sharedPrograms.TypeToIntDL.P4'(A, C, D, F),
        '~sharedPrograms.TypeListToIntDLAux.P4'(B, C, F, E).
'sharedPrograms.TypeListToIntDLAux.P4'([], _, A, A).
'~sharedPrograms.TypeListToIntDLAux.P4'([], _, A, A).
'sharedPrograms.TypeListToIntDLAux.P4'([A|B], C, D, E) :-
        'sharedPrograms.CharDL.P3'('",', D, F),
        'sharedPrograms.TypeToIntDL.P4'(A, C, F, G),
        'sharedPrograms.TypeListToIntDLAux.P4'(B, C, G, E).
'~sharedPrograms.TypeListToIntDLAux.P4'([A|B], C, D, E) :-
        '~sharedPrograms.CharDL.P3'('",', D, F),
        '~sharedPrograms.TypeToIntDL.P4'(A, C, F, G),
        '~sharedPrograms.TypeListToIntDLAux.P4'(B, C, G, E).
'sharedPrograms.UnaryPrefixToIntDL.P10'(A, 'MetaDefs.Name.F4'(_,B,_,_), C, D, E, F, G, H, I, J) :-
        'sharedPrograms.TermToIntDL.P9'(C, D, E, F, K, L, M, N, O),
        'sharedPrograms.ClassifyToken.P2'(B, G),
        'Strings':'Strings.StringInts.P2'(B, P),
        'Lists':'Lists.Append.P3'(P, Q, I),
        user:goedel_freeze(ground([A,K]), (('SharedPrograms':'~sharedPrograms.LPrec.P2'(K,R),'SharedPrograms':'~sharedPrograms.RPrec.P2'(A,S),'SharedPrograms':'~sharedPrograms.BindsTighter.P2'(R,S)),true->H=M,'SharedPrograms':'sharedPrograms.SpaceIfNeeded.P4'(G,L,Q,N),J=O;H='sharedPrograms.Bounded.C0','SharedPrograms':'sharedPrograms.CharDL.P3'('"(',Q,N),'SharedPrograms':'sharedPrograms.CharDL.P3'('")',O,J))).
'~sharedPrograms.UnaryPrefixToIntDL.P10'(A, 'MetaDefs.Name.F4'(_,B,_,_), C, D, E, F, G, H, I, J) :-
        '~sharedPrograms.TermToIntDL.P9'(C, D, E, F, K, L, M, N, O),
        '~sharedPrograms.ClassifyToken.P2'(B, G),
        'Strings':'~Strings.StringInts.P2'(B, P),
        'Lists':'~Lists.Append.P3'(P, Q, I),
        user:goedel_freeze(ground([A,K]), (('SharedPrograms':'~sharedPrograms.LPrec.P2'(K,R),'SharedPrograms':'~sharedPrograms.RPrec.P2'(A,S),'SharedPrograms':'~sharedPrograms.BindsTighter.P2'(R,S)),true->H=M,'SharedPrograms':'~sharedPrograms.SpaceIfNeeded.P4'(G,L,Q,N),J=O;H='sharedPrograms.Bounded.C0','SharedPrograms':'~sharedPrograms.CharDL.P3'('"(',Q,N),'SharedPrograms':'~sharedPrograms.CharDL.P3'('")',O,J))).
'sharedPrograms.TypeToIntDL.P4'('MetaDefs.Type.F2'(A,B), C, D, E) :-
        'sharedPrograms.ConstructorInLanguage.P3'(A, C, F),
        'Lists':'Lists.Length.P2'(B, F),
        A='MetaDefs.Name.F4'(_,G,_,_),
        'Strings':'Strings.StringInts.P2'(G, H),
        'Lists':'Lists.Append.P3'(H, I, D),
        'sharedPrograms.CharDL.P3'('"(', I, J),
        'sharedPrograms.TypeListToIntDL.P4'(B, C, J, K),
        'sharedPrograms.CharDL.P3'('")', K, E).
'~sharedPrograms.TypeToIntDL.P4'('MetaDefs.Type.F2'(A,B), C, D, E) :-
        '~sharedPrograms.ConstructorInLanguage.P3'(A, C, F),
        'Lists':'~Lists.Length.P2'(B, F),
        A='MetaDefs.Name.F4'(_,G,_,_),
        'Strings':'~Strings.StringInts.P2'(G, H),
        'Lists':'~Lists.Append.P3'(H, I, D),
        '~sharedPrograms.CharDL.P3'('"(', I, J),
        '~sharedPrograms.TypeListToIntDL.P4'(B, C, J, K),
        '~sharedPrograms.CharDL.P3'('")', K, E).
'sharedPrograms.TypeToIntDL.P4'('MetaDefs.BType.F1'(A), B, C, D) :-
        'sharedPrograms.BaseInLanguage.P2'(A, B),
        A='MetaDefs.Name.F4'(_,E,_,_),
        'Strings':'Strings.StringInts.P2'(E, F),
        'Lists':'Lists.Append.P3'(F, D, C).
'~sharedPrograms.TypeToIntDL.P4'('MetaDefs.BType.F1'(A), B, C, D) :-
        '~sharedPrograms.BaseInLanguage.P2'(A, B),
        A='MetaDefs.Name.F4'(_,E,_,_),
        'Strings':'~Strings.StringInts.P2'(E, F),
        'Lists':'~Lists.Append.P3'(F, D, C).
'sharedPrograms.TypeToIntDL.P4'('MetaDefs.Par.F2'(A,B), _, C, D) :-
        'Strings':'Strings.StringInts.P2'(A, E),
        'Lists':'Lists.Append.P3'(E, F, C),
        user:goedel_freeze(ground([B]), (B=0,true->D=F;'SharedPrograms':'sharedPrograms.CharDL.P3'('"_',F,G),'SharedSyntax':'SharedSyntax.IntegerToCharDL.P3'(B,G,D))).
'~sharedPrograms.TypeToIntDL.P4'('MetaDefs.Par.F2'(A,B), _, C, D) :-
        'Strings':'~Strings.StringInts.P2'(A, E),
        'Lists':'~Lists.Append.P3'(E, F, C),
        user:goedel_freeze(ground([B]), (B=0,true->D=F;'SharedPrograms':'~sharedPrograms.CharDL.P3'('"_',F,G),'SharedSyntax':'~SharedSyntax.IntegerToCharDL.P3'(B,G,D))).
'sharedPrograms.TypeToIntDL.P4'('MetaDefs.Par.F1'(A), _, B, C) :-
        'sharedPrograms.CharDL.P3'('"p', B, D),
        user:goedel_freeze(ground([A]), (A=0,true->C=D;'SharedPrograms':'sharedPrograms.CharDL.P3'('"_',D,E),'SharedSyntax':'SharedSyntax.IntegerToCharDL.P3'(A,E,C))).
'~sharedPrograms.TypeToIntDL.P4'('MetaDefs.Par.F1'(A), _, B, C) :-
        '~sharedPrograms.CharDL.P3'('"p', B, D),
        user:goedel_freeze(ground([A]), (A=0,true->C=D;'SharedPrograms':'~sharedPrograms.CharDL.P3'('"_',D,E),'SharedSyntax':'~SharedSyntax.IntegerToCharDL.P3'(A,E,C))).
'sharedPrograms.UnaryPostfixToIntDL.P10'(A, 'MetaDefs.Name.F4'(_,B,_,_), C, D, E, F, G, H, I, J) :-
        'sharedPrograms.TermToIntDL.P9'(C, D, E, F, K, L, M, N, O),
        'sharedPrograms.ClassifyToken.P2'(B, H),
        user:goedel_freeze(ground([A,K]), (('SharedPrograms':'~sharedPrograms.RPrec.P2'(K,P),'SharedPrograms':'~sharedPrograms.LPrec.P2'(A,Q),'SharedPrograms':'~sharedPrograms.BindsTighter.P2'(P,Q)),true->G=L,I=N,'SharedPrograms':'sharedPrograms.SpaceIfNeeded.P4'(M,H,O,R);G='sharedPrograms.Bounded.C0','SharedPrograms':'sharedPrograms.CharDL.P3'('"(',I,N),'SharedPrograms':'sharedPrograms.CharDL.P3'('")',O,R))),
        'Strings':'Strings.StringInts.P2'(B, S),
        'Lists':'Lists.Append.P3'(S, J, R).
'~sharedPrograms.UnaryPostfixToIntDL.P10'(A, 'MetaDefs.Name.F4'(_,B,_,_), C, D, E, F, G, H, I, J) :-
        '~sharedPrograms.TermToIntDL.P9'(C, D, E, F, K, L, M, N, O),
        '~sharedPrograms.ClassifyToken.P2'(B, H),
        user:goedel_freeze(ground([A,K]), (('SharedPrograms':'~sharedPrograms.RPrec.P2'(K,P),'SharedPrograms':'~sharedPrograms.LPrec.P2'(A,Q),'SharedPrograms':'~sharedPrograms.BindsTighter.P2'(P,Q)),true->G=L,I=N,'SharedPrograms':'~sharedPrograms.SpaceIfNeeded.P4'(M,H,O,R);G='sharedPrograms.Bounded.C0','SharedPrograms':'~sharedPrograms.CharDL.P3'('"(',I,N),'SharedPrograms':'~sharedPrograms.CharDL.P3'('")',O,R))),
        'Strings':'~Strings.StringInts.P2'(B, S),
        'Lists':'~Lists.Append.P3'(S, J, R).
'sharedPrograms.UpdateDelays.P6'('ProgDefs.Export.C0', A, B, C, [A|B], C).
'~sharedPrograms.UpdateDelays.P6'('ProgDefs.Export.C0', A, B, C, [A|B], C).
'sharedPrograms.UpdateDelays.P6'('ProgDefs.Closed.C0', A, B, C, [A|B], C).
'~sharedPrograms.UpdateDelays.P6'('ProgDefs.Closed.C0', A, B, C, [A|B], C).
'sharedPrograms.UpdateDelays.P6'('ProgDefs.Local.C0', A, B, C, B, [A|C]).
'~sharedPrograms.UpdateDelays.P6'('ProgDefs.Local.C0', A, B, C, B, [A|C]).
'sharedPrograms.UpdateDelays.P6'('ProgDefs.Module.C0', A, B, C, B, [A|C]).
'~sharedPrograms.UpdateDelays.P6'('ProgDefs.Module.C0', A, B, C, B, [A|C]).
'sharedPrograms.VarListToIntDL.P6'([A|B], C, D, E, F, G) :-
        'sharedPrograms.CharDL.P3'('"[', F, H),
        'sharedPrograms.TermToIntDL.P9'(A, C, D, E, _, _, _, H, I),
        'sharedPrograms.RestVarListToIntDL.P6'(B, C, D, E, I, J),
        'sharedPrograms.CharDL.P3'('"]', J, G).
'~sharedPrograms.VarListToIntDL.P6'([A|B], C, D, E, F, G) :-
        '~sharedPrograms.CharDL.P3'('"[', F, H),
        '~sharedPrograms.TermToIntDL.P9'(A, C, D, E, _, _, _, H, I),
        '~sharedPrograms.RestVarListToIntDL.P6'(B, C, D, E, I, J),
        '~sharedPrograms.CharDL.P3'('"]', J, G).
%------------------------------------------------------------------------------
%------------------------------------------------------------------------------
% Prolog routines shared by the parser and Programs and Scripts system modules.
%------------------------------------------------------------------------------
%------------------------------------------------------------------------------
%------------------------------------------------------------------------------
% Useful routines
%------------------------------------------------------------------------------
 
'sharedPrograms.FindMember.P2'(X, Ys) :-
   ( var(X) ->
     Ys = [Z|Zs],
     member_in(Zs, Z, X)
   ; user:'Lists.MemberCheck.P2'(X, Ys)
   ).

member_in([], X, X).

member_in([Y|Ys], Z, X) :-
   ( X = Z ; member_in(Ys, Y, X)).

'~sharedPrograms.FindMember.P2'(X, Ys) :-
   'sharedPrograms.FindMember.P2'(X, Ys).


'sharedPrograms.PickOne.P3'(X, Ys, Rest) :-
   ( var(X) ->
     delete_one(Ys, X, Rest)
   ; user:'Lists.DeleteFirst.P3'(X, Ys, Rest)
   ).

'~sharedPrograms.PickOne.P3'(X, Ys, Rest) :-
   'sharedPrograms.PickOne.P3'(X, Ys, Rest).


delete_one([Y|Ys], X, Rest) :-
   ( Ys = [] ->
     X = Y,
     Rest = Ys
   ;
     ( X = Y, 
       Rest = Ys
     ; delete_one(Ys, X, Rest1),
       Rest = [Y|Rest1]
     )
   ).

%------------------------------------------------------------------------------
% Support for access to symbols in language
%------------------------------------------------------------------------------ 

'sharedPrograms.FindDescriptor.P5'([Desc|Descs], Access, Category, Arity, Decl) :-
   ( nonvar(Arity), nonvar(Category) ->
     one_descriptor_in([Desc|Descs], Access, Category, Arity, Decl)
   ; descriptor_in(Descs, Desc, Access, Category, Arity, Decl) 
   ).

'~sharedPrograms.FindDescriptor.P5'(Descriptors, Access, Category, Arity, Decl) :-
   'sharedPrograms.FindDescriptor.P5'(Descriptors, Access, Category, Arity, Decl).


descriptor_in([], Desc, Access, Cat, Arity, Decl) :-
   'sharedPrograms.MatchingDescriptor.P5'(Desc, Access, Cat, Arity, Decl).

descriptor_in([D|Ds], Desc, Access, Cat, Arity, Decl) :-
   ( 'sharedPrograms.MatchingDescriptor.P5'(Desc, Access, Cat, Arity, Decl)
   ; descriptor_in(Ds, D, Access, Cat, Arity, Decl)
   ).


one_descriptor_in([Desc|Descs], Access, Cat, Arity, Decl) :-
   ( 'sharedPrograms.MatchingDescriptor.P5'(Desc, Access, Cat, Arity, Decl) ->
     true
   ; one_descriptor_in(Descs, Access, Cat, Arity, Decl)
   ).

%------------------------------------------------------------------------------
% Support for access to Program code
%------------------------------------------------------------------------------

'sharedPrograms.SystemModule.P1'(S) :-
   (S == '"' ; user:system_module_name(S)), !.

'~sharedPrograms.SystemModule.P1'(S) :-
   'sharedPrograms.SystemModule.P1'(S).

 
'sharedPrograms.avlFind.P3'(Tree, Key, Item) :-
   ( var(Key) ->
     user:'avlTrees.avlMember.P3'(Tree, Key, Item)
   ; user:'avlTrees.avlSearch.P3'(Tree, Key, Item)
   ).

'~sharedPrograms.avlFind.P3'(Tree, Key, Item) :-
   'sharedPrograms.avlFind.P3'(Tree, Key, Item).


'sharedPrograms.FindPredDef.P3'(Arity, PredDefs
      , 'ProgDefs.PredDef.F4'(Arity, Statements, Delays1, Delays2)
      ) :-
   ( var(Arity) ->
     user:'Lists.Member.P2'('ProgDefs.PredDef.F4'(Arity, Statements
           , Delays1, Delays2)
        , PredDefs)
   ; user:'Lists.MemberCheck.P2'('ProgDefs.PredDef.F4'(Arity, Statements
           , Delays1, Delays2)
        , PredDefs)
   ).

'~sharedPrograms.FindPredDef.P3'(Arity, PredDefs, Program) :-
   'sharedPrograms.FindPredDef.P3'(Arity, PredDefs, Program).


'sharedPrograms.PickPredDef.P4'(Arity, PredDefs
      , 'ProgDefs.PredDef.F4'(Arity, Statements, Delays1, Delays2), RestDefs
      ) :-
   ( var(Arity) ->
     'Lists':'Lists.Delete.P3'('ProgDefs.PredDef.F4'(Arity, Statements
           , Delays1, Delays2)
        , PredDefs, RestDefs)
   ; 'Lists':'Lists.DeleteFirst.P3'('ProgDefs.PredDef.F4'(Arity, Statements
           , Delays1, Delays2)
        , PredDefs, RestDefs)
   ).

'~sharedPrograms.PickPredDef.P4'(Arity, PredDefs, PredDef, RestDefs) :-
   'sharedPrograms.PickPredDef.P4'(Arity, PredDefs, PredDef, RestDefs).

%------------------------------------------------------------------------------
% Support for autorecompilation (Succeed etc.)
%------------------------------------------------------------------------------

:- dynamic used_module_version/2.

'sharedPrograms.NextModuleVersion.P2'(Module, Version) :-
   ( retract(used_module_version(Module, Old)) ->
     Version is Old + 1
   ; Version is 1
   ),
   assert(used_module_version(Module, Version)).

'~sharedPrograms.NextModuleVersion.P2'(Module, Version) :-
   'sharedPrograms.NextModuleVersion.P2'(Module, Version).


'sharedPrograms.SystemModuleRep.P4'(Module, Definition, Descriptor, PredDefs) :-
   user:system_module(Module, Definition, Descriptor, PredDefs).

'~sharedPrograms.SystemModuleRep.P4'(Module, Definition, Descriptor, PredDefs) :-
   'sharedPrograms.SystemModuleRep.P4'(Module, Definition, Descriptor, PredDefs).
%------------------------------------------------------------------------------
% Support for Type Checking
%------------------------------------------------------------------------------

'sharedPrograms.FixType.P3'(Type, N, NewN) :-
   ( var(Type) ->
     Type = 'MetaDefs.Par.F1'(N), NewN is N + 1
   ; nonvar_fix_type(Type, N, NewN)
   ).

'~sharedPrograms.FixType.P3'(Type, N, NewN) :-
   'sharedPrograms.FixType.P3'(Type, N, NewN).

nonvar_fix_type('MetaDefs.Par.F1'(_), N, N).

nonvar_fix_type('MetaDefs.Par.F2'(_, _), N, N).

nonvar_fix_type('MetaDefs.BType.F1'(_), N, N).

nonvar_fix_type('MetaDefs.Type.F2'(_, Args), N, NewN) :-
   list_fix_type(Args, N, NewN).


list_fix_type([], N, N).

list_fix_type([Type|Types], N, NewN) :-
   'sharedPrograms.FixType.P3'(Type, N, N1),
   list_fix_type(Types, N1, NewN).


'sharedPrograms.FixRationals.P2'([], 0).

'sharedPrograms.FixRationals.P2'([NumType|NumTypes], Count) :-
   fix_rational(NumType, R),
   'sharedPrograms.FixRationals.P2'(NumTypes, Count1),
   Count is Count1 + R.

'~sharedPrograms.FixRationals.P2'(NumTypes, Count) :-
   'sharedPrograms.FixRationals.P2'(NumTypes, Count).


fix_rational('sharedPrograms.NumType.F3'(Value, 'MetaDefs.BType.F1'(Name), Term)
      , Rational
      ) :-
   ( Name = 'MetaDefs.Name.F4'('"Rationals', '"Rational', 'MetaDefs.Base.C0', 0) ->
     'sharedPrograms.RationalTerm.P2'(Value, Term),
     Rational = 1
   ; Term = 'MetaDefs.Int.F1'(Value),
     Rational = 0
   ). 

%------------------------------------------------------------------------------
% Type Unification
%------------------------------------------------------------------------------
 
'sharedPrograms.UnifyMeltedTypes.P4'(ContextType, ArgType, Term, Errors) :-
   ( unify_types(ContextType, ArgType) ->
     Errors = []
   ; copy_term((ContextType, ArgType), (ContextTypeCopy, ArgTypeCopy)),
     'sharedPrograms.FixType.P3'(ArgTypeCopy, 0, N),
     'sharedPrograms.FixType.P3'(ContextTypeCopy, N, _),
     Errors = ['sharedPrograms.TypeError.F3'(Term, ArgTypeCopy, ContextTypeCopy)]
   ).

'~sharedPrograms.UnifyMeltedTypes.P4'(ContextType, ArgType, Term, Errors) :-
   'sharedPrograms.UnifyMeltedTypes.P4'(ContextType, ArgType, Term, Errors).

unify_types(Type1, Type2) :-
   ( nonvar(Type1) ->
     ( nonvar(Type2) ->
       nonvar_unify_types(Type1, Type2)
     ; not_occurs_in(Type1, Type2), Type2 = Type1
     )
   ; ( nonvar(Type2) ->
       not_occurs_in(Type2, Type1), Type1 = Type2
     ; Type1 = Type2
     )
   ).


nonvar_unify_types('MetaDefs.BType.F1'(Name), 'MetaDefs.BType.F1'(Name)).

nonvar_unify_types('MetaDefs.Type.F2'(Name, Args1), 
                   'MetaDefs.Type.F2'(Name, Args2)
                  ) :-   
   unify_type_lists(Args1, Args2).


unify_type_lists([], []).

unify_type_lists([Type1|Types1], [Type2|Types2]) :-
   unify_types(Type1, Type2),
   unify_type_lists(Types1, Types2).

 
not_occurs_in('MetaDefs.BType.F1'(_), _).

not_occurs_in('MetaDefs.Type.F2'(_, Args), Var) :-
   not_occurs_in_list(Args, Var).


not_occurs_in_list([], _).

not_occurs_in_list([Term|Terms], Var) :-
   ( var(Term) ->
     Term \== Var
   ; not_occurs_in(Term, Var)
   ),
   not_occurs_in_list(Terms, Var).

%------------------------------------------------------------------------------
% Conversion between delay conditions and strings
%------------------------------------------------------------------------------
 
'sharedPrograms.SStringToCondition.P2'(String, Condition) :-
   user:'Strings.StringInts.P2'(String, IntList),
   user:append(IntList, [46], Chars),    % 46 for .
   user:get_one_item_2nd(Chars, [], Item),
   user:cond(Item, [], Condition, [], Error, 1, 2, local),
   var(Error).

'~sharedPrograms.SStringToCondition.P2'(String, Condition) :-
   'sharedPrograms.SStringToCondition.P2'(String, Condition).

%------------------------------------------------------------------------------
% Support for ground representation to String conversion
%------------------------------------------------------------------------------

'sharedPrograms.CharDL.P3'(Gstr, [Char|Chars], Chars) :-
   name(Gstr, [34, Char]). % 34 for "

'~sharedPrograms.CharDL.P3'(Gstr, Chars, Chars1) :-
   'sharedPrograms.CharDL.P3'(Gstr, Chars, Chars1).


'sharedPrograms.ClassifyToken.P2'(Token, Class) :-
   name(Token, [34, Sample|_]),   % 34 for "
   ( 65 =< Sample, Sample =< 90 ->   % 65 for A  90 for Z
     Class = 'sharedPrograms.AlphaNum.C0'
   ; Class = 'sharedPrograms.Graphic.C0'
   ).

'~sharedPrograms.ClassifyToken.P2'(Token, Class) :-
   'sharedPrograms.ClassifyToken.P2'(Token, Class).

%------------------------------------------------------------------------------
% Support for symbol insertion routines
%------------------------------------------------------------------------------
 
'sharedPrograms.AddToDescriptorList.P6'(Descriptors, ModAccess, Category, Arity
      , NewDescriptor, [NewDescriptor|Descriptors]
      ) :-
   \+ 'sharedPrograms.FindDescriptor.P5'(Descriptors, ModAccess, Category, Arity
         , _Declaration).

'~sharedPrograms.AddToDescriptorList.P6'(Descriptors, ModAccess, Category, Arity
      , NewDescriptor, NewDescriptors
      ) :-
   'sharedPrograms.AddToDescriptorList.P6'(Descriptors, ModAccess, Category, Arity
      , NewDescriptor, NewDescriptors).

%------------------------------------------------------------------------------
% Variant types (used to check head condition)
%------------------------------------------------------------------------------
 
'sharedPrograms.VariantTypes.P4'(ContextType, ArgType, Term, Errors) :-
   ( variant_types(ContextType, ArgType, [], _) ->
     Errors = []
   ;
     copy_term((ContextType, ArgType), (ContextTypeCopy, ArgTypeCopy)),
     'sharedPrograms.FixType.P3'(ArgTypeCopy, 0, N),
     'sharedPrograms.FixType.P3'(ContextTypeCopy, N, _),
     Errors = ['sharedPrograms.HeadError.F3'(Term, ArgTypeCopy, ContextTypeCopy)]
   ).

'~sharedPrograms.VariantTypes.P4'(ContextType, ArgType, Term, Errors) :-
   'sharedPrograms.VariantTypes.P4'(ContextType, ArgType, Term, Errors).

variant_types(Type1, Type2, ParDict, NewParDict) :-
   ( var(Type1) ->
     var(Type2),
     ( in_par_dict(Type1, ParDict, Type1Alias) ->
       Type1Alias == Type2,
       NewParDict = ParDict
     ; NewParDict = [Type1/Type2|ParDict]
     )
   ; nonvar(Type2),
     nonvar_variant_types(Type1, Type2, ParDict, NewParDict)
   ).

nonvar_variant_types('MetaDefs.BType.F1'(Name), 'MetaDefs.BType.F1'(Name)
      , ParDict, ParDict).

nonvar_variant_types('MetaDefs.Type.F2'(Name, Args1)
      , 'MetaDefs.Type.F2'(Name, Args2), ParDict, NewParDict
      ) :-
   list_variant_types(Args1, Args2, ParDict, NewParDict).


list_variant_types([], [], ParDict, ParDict).

list_variant_types([Type1|Types1], [Type2|Types2], ParDict, NewParDict) :-
   variant_types(Type1, Type2, ParDict, ParDict1),
   list_variant_types(Types1, Types2, ParDict1, NewParDict).

in_par_dict(P1, [A1/A2|Entries], P2) :-
   ( P1 == A1 ->
     P2 = A2
   ; in_par_dict(P1, Entries, P2)
   ).
