diff --git a/src/main/antlr4/de/dhbwstuttgart/input/parser/ConstraintSet.g4 b/src/main/antlr4/de/dhbwstuttgart/input/parser/ConstraintSet.g4 index 4552470..c80ffab 100644 --- a/src/main/antlr4/de/dhbwstuttgart/input/parser/ConstraintSet.g4 +++ b/src/main/antlr4/de/dhbwstuttgart/input/parser/ConstraintSet.g4 @@ -19,6 +19,5 @@ params : '<' type (',' type)* '>'; IDENTIFIER: [A-Za-z.]+; -KOMMA : ',' -> skip; NEWLINE : [\r\n]+ -> skip; WS: [ \t] -> skip ; \ No newline at end of file diff --git a/src/main/antlr4/de/dhbwstuttgart/input/parser/Solution.g4 b/src/main/antlr4/de/dhbwstuttgart/input/parser/Solution.g4 new file mode 100644 index 0000000..5f593be --- /dev/null +++ b/src/main/antlr4/de/dhbwstuttgart/input/parser/Solution.g4 @@ -0,0 +1,11 @@ +grammar Solution; + +solutionset : solution (solution)*; +solution : 'sigma(' tph ',' type ')'; +tph : 'tph("_' IDENTIFIER '")'; +type : 'type("' IDENTIFIER '",' params ')'; +params : 'null' | 'params(' type (',' type)* ')'; + +IDENTIFIER: [A-Za-z.]+; +NEWLINE : [\r\n]+ -> skip; +WS: [ \t] -> skip ; \ No newline at end of file diff --git a/src/main/asp/unifyPaper.pl b/src/main/asp/unifyPaper.pl index 216e048..f2ce414 100644 --- a/src/main/asp/unifyPaper.pl +++ b/src/main/asp/unifyPaper.pl @@ -1,31 +1,31 @@ % TEST INPUT -orCons(undCons(substcons(tph("_BG"),type("java.lang.Number",null)),undCons(equalcons(tph("_BE"),type("java.lang.Boolean",null)),undCons(equalcons(type("java.lang.Boolean",null),tph("_AH")),undCons(substcons(tph("_BC"),type("java.lang.Number",null)),undCons(substcons(tph("_G"),type("java.lang.Integer",null)),undCons(substcons(type("java.util.Vector",params(type("java.lang.Integer",null))),tph("_AS")),undCons(equalcons(type("java.lang.Boolean",null),tph("_H")),undCons(substcons(tph("_AP"),tph("_AM")),undCons(substcons(tph("_AV"),tph("_AU")),undCons(equalcons(tph("_AI"),type("Matrix",null)),undCons(substcons(tph("_AD"),tph("_AB")),undCons(substcons(type("Matrix",null),tph("_AD")),undCons(substcons(tph("_AF"),type("java.lang.Number",null)),undCons(equalcons(tph("_AU"),tph("_CD")),undCons(equalcons(tph("_H"),type("java.lang.Boolean",null)),undCons(substcons(tph("_BV"),tph("_BA")),undCons(substcons(tph("_V"),type("java.lang.Integer",null)),undCons(substcons(tph("_J"),type("java.lang.Number",null)),undCons(substcons(tph("_AY"),type("java.lang.Number",null)),undCons(equalcons(tph("_AH"),type("java.lang.Boolean",null)),undCons(equalcons(type("java.lang.Boolean",null),tph("_BE")),undCons(equalcons(tph("_AF"),tph("_CK")),undCons(equalcons(type("java.lang.Boolean",null),tph("_AW")),undCons(substcons(tph("_AU"),type("java.lang.Number",null)),undCons(substcons(tph("_BD"),tph("_BC")),undCons(equalcons(tph("_AW"),type("java.lang.Boolean",null)),undCons(substcons(tph("_BB"),tph("_BA")),undCons(substcons(tph("_AG"),tph("_AF")),undCons(equalcons(tph("_S"),type("Matrix",null)),undCons(equalcons(type("java.util.Vector",params(type("java.util.Vector",params(type("java.lang.Integer",null))))),type("java.util.Vector",params(tph("_ANQ")))),undCons(substcons(type("java.lang.Integer",null),type("java.lang.Number",null)),undCons(equalcons(type("java.util.Vector",params(type("java.util.Vector",params(type("java.lang.Integer",null))))),type("java.util.Vector",params(tph("_ANR")))),undCons(equalcons(tph("_BC"),tph("_BW")),undCons(equalcons(tph("_AQ"),type("Matrix",null)),undCons(substcons(tph("_AK"),type("java.lang.Number",null)), null))))))))))))))))))))))))))))))))))), null). -orCons(undCons(equalcons(tph("_AE"),type("Matrix",null)),undCons(substcons(type("Matrix",null),type("Matrix",null)), null)), null). +orCons(undCons(subcons(tph("_BG"),type("java.lang.Number",null)),undCons(equalcons(tph("_BE"),type("java.lang.Boolean",null)),undCons(equalcons(type("java.lang.Boolean",null),tph("_AH")),undCons(subcons(tph("_BC"),type("java.lang.Number",null)),undCons(subcons(tph("_G"),type("java.lang.Integer",null)),undCons(subcons(type("java.util.Vector",params(type("java.lang.Integer",null))),tph("_AS")),undCons(equalcons(type("java.lang.Boolean",null),tph("_H")),undCons(subcons(tph("_AP"),tph("_AM")),undCons(subcons(tph("_AV"),tph("_AU")),undCons(equalcons(tph("_AI"),type("Matrix",null)),undCons(subcons(tph("_AD"),tph("_AB")),undCons(subcons(type("Matrix",null),tph("_AD")),undCons(subcons(tph("_AF"),type("java.lang.Number",null)),undCons(equalcons(tph("_AU"),tph("_CD")),undCons(equalcons(tph("_H"),type("java.lang.Boolean",null)),undCons(subcons(tph("_BV"),tph("_BA")),undCons(subcons(tph("_V"),type("java.lang.Integer",null)),undCons(subcons(tph("_J"),type("java.lang.Number",null)),undCons(subcons(tph("_AY"),type("java.lang.Number",null)),undCons(equalcons(tph("_AH"),type("java.lang.Boolean",null)),undCons(equalcons(type("java.lang.Boolean",null),tph("_BE")),undCons(equalcons(tph("_AF"),tph("_CK")),undCons(equalcons(type("java.lang.Boolean",null),tph("_AW")),undCons(subcons(tph("_AU"),type("java.lang.Number",null)),undCons(subcons(tph("_BD"),tph("_BC")),undCons(equalcons(tph("_AW"),type("java.lang.Boolean",null)),undCons(subcons(tph("_BB"),tph("_BA")),undCons(subcons(tph("_AG"),tph("_AF")),undCons(equalcons(tph("_S"),type("Matrix",null)),undCons(equalcons(type("java.util.Vector",params(type("java.util.Vector",params(type("java.lang.Integer",null))))),type("java.util.Vector",params(tph("_ANQ")))),undCons(subcons(type("java.lang.Integer",null),type("java.lang.Number",null)),undCons(equalcons(type("java.util.Vector",params(type("java.util.Vector",params(type("java.lang.Integer",null))))),type("java.util.Vector",params(tph("_ANR")))),undCons(equalcons(tph("_BC"),tph("_BW")),undCons(equalcons(tph("_AQ"),type("Matrix",null)),undCons(subcons(tph("_AK"),type("java.lang.Number",null)), null))))))))))))))))))))))))))))))))))), null). +orCons(undCons(equalcons(tph("_AE"),type("Matrix",null)),undCons(subcons(type("Matrix",null),type("Matrix",null)), null)), null). orCons(undCons(equalcons(tph("_AG"),type("java.lang.Integer",null)), null), null). -orCons(undCons(equalcons(tph("_AI"),type("java.util.AbstractList",params(tph("_AMV")))),undCons(substcons(type("java.lang.Integer",null),tph("_AK")), null)),orCons(undCons(equalcons(tph("_AI"),type("Matrix",null)),undCons(substcons(type("java.lang.Integer",null),tph("_AK")), null)),orCons(undCons(substcons(type("java.lang.Integer",null),tph("_AK")),undCons(equalcons(tph("_AI"),type("java.util.List",params(tph("_AMU")))), null)),orCons(undCons(equalcons(tph("_AI"),type("java.util.AbstractList",params(tph("_AMV")))),undCons(substcons(type("java.lang.Integer",null),tph("_AK")), null)),orCons(undCons(substcons(type("java.lang.Integer",null),tph("_AK")),undCons(equalcons(tph("_AI"),type("java.util.Vector",params(tph("_AMW")))), null)),orCons(undCons(equalcons(tph("_AI"),type("java.util.List",params(tph("_AMU")))),undCons(substcons(type("java.lang.Integer",null),tph("_AK")), null)),orCons(undCons(substcons(type("java.lang.Integer",null),tph("_AK")),undCons(equalcons(tph("_AI"),type("java.util.Vector",params(tph("_AMW")))), null)),orCons(undCons(equalcons(tph("_AI"),type("Matrix",null)),undCons(substcons(type("java.lang.Integer",null),tph("_AK")), null)), null)))))))). -orCons(undCons(substcons(tph("_AF"),type("java.lang.Integer",null)),undCons(equalcons(tph("_AQ"),type("java.util.Vector",params(tph("_AMX")))),undCons(substcons(tph("_AMX"),tph("_AP")), null))),orCons(undCons(substcons(tph("_AF"),type("java.lang.Integer",null)),undCons(equalcons(tph("_AQ"),type("Matrix",null)),undCons(substcons(type("java.util.Vector",params(type("java.lang.Integer",null))),tph("_AP")), null))),orCons(undCons(substcons(tph("_AF"),type("java.lang.Integer",null)),undCons(equalcons(tph("_AQ"),type("java.util.Vector",params(tph("_AMX")))),undCons(substcons(tph("_AMX"),tph("_AP")), null))),orCons(undCons(substcons(tph("_AF"),type("java.lang.Integer",null)),undCons(equalcons(tph("_AQ"),type("Matrix",null)),undCons(substcons(type("java.util.Vector",params(type("java.lang.Integer",null))),tph("_AP")), null))), null)))). -orCons(undCons(substcons(type("java.util.Vector",params(tph("_AMY"))),type("java.util.Vector",params(type("java.lang.Integer",null)))),undCons(equalcons(tph("_AT"),type("java.util.Vector",params(type("GE",null)))), null)), null). +orCons(undCons(equalcons(tph("_AI"),type("java.util.AbstractList",params(tph("_AMV")))),undCons(subcons(type("java.lang.Integer",null),tph("_AK")), null)),orCons(undCons(equalcons(tph("_AI"),type("Matrix",null)),undCons(subcons(type("java.lang.Integer",null),tph("_AK")), null)),orCons(undCons(subcons(type("java.lang.Integer",null),tph("_AK")),undCons(equalcons(tph("_AI"),type("java.util.List",params(tph("_AMU")))), null)),orCons(undCons(equalcons(tph("_AI"),type("java.util.AbstractList",params(tph("_AMV")))),undCons(subcons(type("java.lang.Integer",null),tph("_AK")), null)),orCons(undCons(subcons(type("java.lang.Integer",null),tph("_AK")),undCons(equalcons(tph("_AI"),type("java.util.Vector",params(tph("_AMW")))), null)),orCons(undCons(equalcons(tph("_AI"),type("java.util.List",params(tph("_AMU")))),undCons(subcons(type("java.lang.Integer",null),tph("_AK")), null)),orCons(undCons(subcons(type("java.lang.Integer",null),tph("_AK")),undCons(equalcons(tph("_AI"),type("java.util.Vector",params(tph("_AMW")))), null)),orCons(undCons(equalcons(tph("_AI"),type("Matrix",null)),undCons(subcons(type("java.lang.Integer",null),tph("_AK")), null)), null)))))))). +orCons(undCons(subcons(tph("_AF"),type("java.lang.Integer",null)),undCons(equalcons(tph("_AQ"),type("java.util.Vector",params(tph("_AMX")))),undCons(subcons(tph("_AMX"),tph("_AP")), null))),orCons(undCons(subcons(tph("_AF"),type("java.lang.Integer",null)),undCons(equalcons(tph("_AQ"),type("Matrix",null)),undCons(subcons(type("java.util.Vector",params(type("java.lang.Integer",null))),tph("_AP")), null))),orCons(undCons(subcons(tph("_AF"),type("java.lang.Integer",null)),undCons(equalcons(tph("_AQ"),type("java.util.Vector",params(tph("_AMX")))),undCons(subcons(tph("_AMX"),tph("_AP")), null))),orCons(undCons(subcons(tph("_AF"),type("java.lang.Integer",null)),undCons(equalcons(tph("_AQ"),type("Matrix",null)),undCons(subcons(type("java.util.Vector",params(type("java.lang.Integer",null))),tph("_AP")), null))), null)))). +orCons(undCons(subcons(type("java.util.Vector",params(tph("_AMY"))),type("java.util.Vector",params(type("java.lang.Integer",null)))),undCons(equalcons(tph("_AT"),type("java.util.Vector",params(type("GE",null)))), null)), null). orCons(undCons(equalcons(tph("_AV"),type("java.lang.Integer",null)), null), null). -orCons(undCons(substcons(type("java.lang.Integer",null),tph("_AY")),undCons(equalcons(tph("_AM"),type("Matrix",null)), null)),orCons(undCons(substcons(type("java.lang.Integer",null),tph("_AY")),undCons(equalcons(tph("_AM"),type("java.util.List",params(tph("_AMZ")))), null)),orCons(undCons(substcons(type("java.lang.Integer",null),tph("_AY")),undCons(equalcons(tph("_AM"),type("java.util.Vector",params(tph("_ANB")))), null)),orCons(undCons(substcons(type("java.lang.Integer",null),tph("_AY")),undCons(equalcons(tph("_AM"),type("java.util.List",params(tph("_AMZ")))), null)),orCons(undCons(substcons(type("java.lang.Integer",null),tph("_AY")),undCons(equalcons(tph("_AM"),type("java.util.AbstractList",params(tph("_ANA")))), null)),orCons(undCons(substcons(type("java.lang.Integer",null),tph("_AY")),undCons(equalcons(tph("_AM"),type("java.util.AbstractList",params(tph("_ANA")))), null)),orCons(undCons(substcons(type("java.lang.Integer",null),tph("_AY")),undCons(equalcons(tph("_AM"),type("Matrix",null)), null)),orCons(undCons(substcons(type("java.lang.Integer",null),tph("_AY")),undCons(equalcons(tph("_AM"),type("java.util.Vector",params(tph("_ANB")))), null)), null)))))))). +orCons(undCons(subcons(type("java.lang.Integer",null),tph("_AY")),undCons(equalcons(tph("_AM"),type("Matrix",null)), null)),orCons(undCons(subcons(type("java.lang.Integer",null),tph("_AY")),undCons(equalcons(tph("_AM"),type("java.util.List",params(tph("_AMZ")))), null)),orCons(undCons(subcons(type("java.lang.Integer",null),tph("_AY")),undCons(equalcons(tph("_AM"),type("java.util.Vector",params(tph("_ANB")))), null)),orCons(undCons(subcons(type("java.lang.Integer",null),tph("_AY")),undCons(equalcons(tph("_AM"),type("java.util.List",params(tph("_AMZ")))), null)),orCons(undCons(subcons(type("java.lang.Integer",null),tph("_AY")),undCons(equalcons(tph("_AM"),type("java.util.AbstractList",params(tph("_ANA")))), null)),orCons(undCons(subcons(type("java.lang.Integer",null),tph("_AY")),undCons(equalcons(tph("_AM"),type("java.util.AbstractList",params(tph("_ANA")))), null)),orCons(undCons(subcons(type("java.lang.Integer",null),tph("_AY")),undCons(equalcons(tph("_AM"),type("Matrix",null)), null)),orCons(undCons(subcons(type("java.lang.Integer",null),tph("_AY")),undCons(equalcons(tph("_AM"),type("java.util.Vector",params(tph("_ANB")))), null)), null)))))))). orCons(undCons(equalcons(tph("_BB"),type("java.lang.Integer",null)), null), null). orCons(undCons(equalcons(tph("_BD"),type("java.lang.Integer",null)), null), null). -orCons(undCons(equalcons(tph("_AM"),type("java.util.Vector",params(tph("_ANE")))),undCons(substcons(type("java.lang.Integer",null),tph("_BG")), null)),orCons(undCons(substcons(type("java.lang.Integer",null),tph("_BG")),undCons(equalcons(tph("_AM"),type("Matrix",null)), null)),orCons(undCons(equalcons(tph("_AM"),type("java.util.Vector",params(tph("_ANE")))),undCons(substcons(type("java.lang.Integer",null),tph("_BG")), null)),orCons(undCons(substcons(type("java.lang.Integer",null),tph("_BG")),undCons(equalcons(tph("_AM"),type("java.util.AbstractList",params(tph("_AND")))), null)),orCons(undCons(substcons(type("java.lang.Integer",null),tph("_BG")),undCons(equalcons(tph("_AM"),type("Matrix",null)), null)),orCons(undCons(equalcons(tph("_AM"),type("java.util.List",params(tph("_ANC")))),undCons(substcons(type("java.lang.Integer",null),tph("_BG")), null)),orCons(undCons(equalcons(tph("_AM"),type("java.util.List",params(tph("_ANC")))),undCons(substcons(type("java.lang.Integer",null),tph("_BG")), null)),orCons(undCons(substcons(type("java.lang.Integer",null),tph("_BG")),undCons(equalcons(tph("_AM"),type("java.util.AbstractList",params(tph("_AND")))), null)), null)))))))). -orCons(undCons(substcons(type("java.util.Vector",params(type("java.lang.Integer",null))),tph("_BK")),undCons(substcons(tph("_BC"),type("java.lang.Integer",null)),undCons(equalcons(tph("_AM"),type("Matrix",null)), null))),orCons(undCons(substcons(type("java.util.Vector",params(type("java.lang.Integer",null))),tph("_BK")),undCons(substcons(tph("_BC"),type("java.lang.Integer",null)),undCons(equalcons(tph("_AM"),type("Matrix",null)), null))),orCons(undCons(substcons(tph("_BC"),type("java.lang.Integer",null)),undCons(substcons(tph("_ANG"),tph("_BK")),undCons(equalcons(tph("_AM"),type("java.util.AbstractList",params(tph("_ANG")))), null))),orCons(undCons(substcons(tph("_BC"),type("java.lang.Integer",null)),undCons(equalcons(tph("_AM"),type("java.util.Vector",params(tph("_ANH")))),undCons(substcons(tph("_ANH"),tph("_BK")), null))),orCons(undCons(substcons(tph("_BC"),type("java.lang.Integer",null)),undCons(substcons(tph("_ANG"),tph("_BK")),undCons(equalcons(tph("_AM"),type("java.util.AbstractList",params(tph("_ANG")))), null))),orCons(undCons(substcons(tph("_ANF"),tph("_BK")),undCons(substcons(tph("_BC"),type("java.lang.Integer",null)),undCons(equalcons(tph("_AM"),type("java.util.List",params(tph("_ANF")))), null))),orCons(undCons(substcons(tph("_ANF"),tph("_BK")),undCons(substcons(tph("_BC"),type("java.lang.Integer",null)),undCons(equalcons(tph("_AM"),type("java.util.List",params(tph("_ANF")))), null))),orCons(undCons(substcons(tph("_BC"),type("java.lang.Integer",null)),undCons(substcons(tph("_ANH"),tph("_BK")),undCons(equalcons(tph("_AM"),type("java.util.Vector",params(tph("_ANH")))), null))), null)))))))). -orCons(undCons(substcons(tph("_BC"),type("java.lang.Integer",null)),undCons(substcons(tph("_ANI"),tph("_BR")),undCons(equalcons(tph("_AC"),type("java.util.List",params(tph("_ANI")))), null))),orCons(undCons(substcons(tph("_BC"),type("java.lang.Integer",null)),undCons(equalcons(tph("_AC"),type("Matrix",null)),undCons(substcons(type("java.util.Vector",params(type("java.lang.Integer",null))),tph("_BR")), null))),orCons(undCons(substcons(tph("_BC"),type("java.lang.Integer",null)),undCons(equalcons(tph("_AC"),type("Matrix",null)),undCons(substcons(type("java.util.Vector",params(type("java.lang.Integer",null))),tph("_BR")), null))),orCons(undCons(substcons(tph("_BC"),type("java.lang.Integer",null)),undCons(substcons(tph("_ANJ"),tph("_BR")),undCons(equalcons(tph("_AC"),type("java.util.AbstractList",params(tph("_ANJ")))), null))),orCons(undCons(equalcons(tph("_AC"),type("java.util.Vector",params(tph("_ANK")))),undCons(substcons(tph("_BC"),type("java.lang.Integer",null)),undCons(substcons(tph("_ANK"),tph("_BR")), null))),orCons(undCons(equalcons(tph("_AC"),type("java.util.Vector",params(tph("_ANK")))),undCons(substcons(tph("_BC"),type("java.lang.Integer",null)),undCons(substcons(tph("_ANK"),tph("_BR")), null))),orCons(undCons(substcons(tph("_BC"),type("java.lang.Integer",null)),undCons(substcons(tph("_ANI"),tph("_BR")),undCons(equalcons(tph("_AC"),type("java.util.List",params(tph("_ANI")))), null))),orCons(undCons(substcons(tph("_BC"),type("java.lang.Integer",null)),undCons(substcons(tph("_ANJ"),tph("_BR")),undCons(equalcons(tph("_AC"),type("java.util.AbstractList",params(tph("_ANJ")))), null))), null)))))))). -orCons(undCons(substcons(tph("_ANM"),tph("_BO")),undCons(equalcons(tph("_BR"),type("java.util.AbstractList",params(tph("_ANM")))),undCons(substcons(tph("_AU"),type("java.lang.Integer",null)), null))),orCons(undCons(substcons(tph("_AU"),type("java.lang.Integer",null)),undCons(equalcons(tph("_BR"),type("Matrix",null)),undCons(substcons(type("java.util.Vector",params(type("java.lang.Integer",null))),tph("_BO")), null))),orCons(undCons(equalcons(tph("_BR"),type("java.util.List",params(tph("_ANL")))),undCons(substcons(tph("_ANL"),tph("_BO")),undCons(substcons(tph("_AU"),type("java.lang.Integer",null)), null))),orCons(undCons(equalcons(tph("_BR"),type("java.util.List",params(tph("_ANL")))),undCons(substcons(tph("_ANL"),tph("_BO")),undCons(substcons(tph("_AU"),type("java.lang.Integer",null)), null))),orCons(undCons(substcons(tph("_ANN"),tph("_BO")),undCons(equalcons(tph("_BR"),type("java.util.Vector",params(tph("_ANN")))),undCons(substcons(tph("_AU"),type("java.lang.Integer",null)), null))),orCons(undCons(substcons(tph("_ANM"),tph("_BO")),undCons(equalcons(tph("_BR"),type("java.util.AbstractList",params(tph("_ANM")))),undCons(substcons(tph("_AU"),type("java.lang.Integer",null)), null))),orCons(undCons(substcons(tph("_ANN"),tph("_BO")),undCons(equalcons(tph("_BR"),type("java.util.Vector",params(tph("_ANN")))),undCons(substcons(tph("_AU"),type("java.lang.Integer",null)), null))),orCons(undCons(substcons(tph("_AU"),type("java.lang.Integer",null)),undCons(equalcons(tph("_BR"),type("Matrix",null)),undCons(substcons(type("java.util.Vector",params(type("java.lang.Integer",null))),tph("_BO")), null))), null)))))))). -orCons(undCons(substcons(tph("_BO"),type("java.lang.Integer",null)),undCons(equalcons(type("java.lang.Integer",null),tph("_BU")),undCons(substcons(tph("_BK"),type("java.lang.Integer",null)), null))), null). -orCons(undCons(substcons(tph("_BU"),type("java.lang.Integer",null)),undCons(substcons(tph("_BA"),type("java.lang.Integer",null)),undCons(equalcons(type("java.lang.Integer",null),tph("_BV")), null))), null). -orCons(undCons(substcons(tph("_BA"),type("java.util.Vector",params(type("java.lang.Integer",null)))),undCons(equalcons(tph("_AS"),type("Matrix",null)), null)),orCons(undCons(substcons(tph("_BA"),type("java.util.Vector",params(type("java.lang.Integer",null)))),undCons(equalcons(tph("_AS"),type("Matrix",null)), null)),orCons(undCons(equalcons(tph("_AS"),type("java.util.Vector",params(tph("_ANO")))),undCons(substcons(tph("_BA"),tph("_ANO")), null)),orCons(undCons(equalcons(tph("_AS"),type("java.util.Vector",params(tph("_ANO")))),undCons(substcons(tph("_BA"),tph("_ANO")), null)), null)))). -orCons(undCons(substcons(tph("_AS"),type("java.util.Vector",params(type("java.lang.Integer",null)))),undCons(equalcons(tph("_AD"),type("Matrix",null)), null)),orCons(undCons(equalcons(tph("_AD"),type("java.util.Vector",params(tph("_ANP")))),undCons(substcons(tph("_AS"),tph("_ANP")), null)),orCons(undCons(substcons(tph("_AS"),type("java.util.Vector",params(type("java.lang.Integer",null)))),undCons(equalcons(tph("_AD"),type("Matrix",null)), null)),orCons(undCons(equalcons(tph("_AD"),type("java.util.Vector",params(tph("_ANP")))),undCons(substcons(tph("_AS"),tph("_ANP")), null)), null)))). +orCons(undCons(equalcons(tph("_AM"),type("java.util.Vector",params(tph("_ANE")))),undCons(subcons(type("java.lang.Integer",null),tph("_BG")), null)),orCons(undCons(subcons(type("java.lang.Integer",null),tph("_BG")),undCons(equalcons(tph("_AM"),type("Matrix",null)), null)),orCons(undCons(equalcons(tph("_AM"),type("java.util.Vector",params(tph("_ANE")))),undCons(subcons(type("java.lang.Integer",null),tph("_BG")), null)),orCons(undCons(subcons(type("java.lang.Integer",null),tph("_BG")),undCons(equalcons(tph("_AM"),type("java.util.AbstractList",params(tph("_AND")))), null)),orCons(undCons(subcons(type("java.lang.Integer",null),tph("_BG")),undCons(equalcons(tph("_AM"),type("Matrix",null)), null)),orCons(undCons(equalcons(tph("_AM"),type("java.util.List",params(tph("_ANC")))),undCons(subcons(type("java.lang.Integer",null),tph("_BG")), null)),orCons(undCons(equalcons(tph("_AM"),type("java.util.List",params(tph("_ANC")))),undCons(subcons(type("java.lang.Integer",null),tph("_BG")), null)),orCons(undCons(subcons(type("java.lang.Integer",null),tph("_BG")),undCons(equalcons(tph("_AM"),type("java.util.AbstractList",params(tph("_AND")))), null)), null)))))))). +orCons(undCons(subcons(type("java.util.Vector",params(type("java.lang.Integer",null))),tph("_BK")),undCons(subcons(tph("_BC"),type("java.lang.Integer",null)),undCons(equalcons(tph("_AM"),type("Matrix",null)), null))),orCons(undCons(subcons(type("java.util.Vector",params(type("java.lang.Integer",null))),tph("_BK")),undCons(subcons(tph("_BC"),type("java.lang.Integer",null)),undCons(equalcons(tph("_AM"),type("Matrix",null)), null))),orCons(undCons(subcons(tph("_BC"),type("java.lang.Integer",null)),undCons(subcons(tph("_ANG"),tph("_BK")),undCons(equalcons(tph("_AM"),type("java.util.AbstractList",params(tph("_ANG")))), null))),orCons(undCons(subcons(tph("_BC"),type("java.lang.Integer",null)),undCons(equalcons(tph("_AM"),type("java.util.Vector",params(tph("_ANH")))),undCons(subcons(tph("_ANH"),tph("_BK")), null))),orCons(undCons(subcons(tph("_BC"),type("java.lang.Integer",null)),undCons(subcons(tph("_ANG"),tph("_BK")),undCons(equalcons(tph("_AM"),type("java.util.AbstractList",params(tph("_ANG")))), null))),orCons(undCons(subcons(tph("_ANF"),tph("_BK")),undCons(subcons(tph("_BC"),type("java.lang.Integer",null)),undCons(equalcons(tph("_AM"),type("java.util.List",params(tph("_ANF")))), null))),orCons(undCons(subcons(tph("_ANF"),tph("_BK")),undCons(subcons(tph("_BC"),type("java.lang.Integer",null)),undCons(equalcons(tph("_AM"),type("java.util.List",params(tph("_ANF")))), null))),orCons(undCons(subcons(tph("_BC"),type("java.lang.Integer",null)),undCons(subcons(tph("_ANH"),tph("_BK")),undCons(equalcons(tph("_AM"),type("java.util.Vector",params(tph("_ANH")))), null))), null)))))))). +orCons(undCons(subcons(tph("_BC"),type("java.lang.Integer",null)),undCons(subcons(tph("_ANI"),tph("_BR")),undCons(equalcons(tph("_AC"),type("java.util.List",params(tph("_ANI")))), null))),orCons(undCons(subcons(tph("_BC"),type("java.lang.Integer",null)),undCons(equalcons(tph("_AC"),type("Matrix",null)),undCons(subcons(type("java.util.Vector",params(type("java.lang.Integer",null))),tph("_BR")), null))),orCons(undCons(subcons(tph("_BC"),type("java.lang.Integer",null)),undCons(equalcons(tph("_AC"),type("Matrix",null)),undCons(subcons(type("java.util.Vector",params(type("java.lang.Integer",null))),tph("_BR")), null))),orCons(undCons(subcons(tph("_BC"),type("java.lang.Integer",null)),undCons(subcons(tph("_ANJ"),tph("_BR")),undCons(equalcons(tph("_AC"),type("java.util.AbstractList",params(tph("_ANJ")))), null))),orCons(undCons(equalcons(tph("_AC"),type("java.util.Vector",params(tph("_ANK")))),undCons(subcons(tph("_BC"),type("java.lang.Integer",null)),undCons(subcons(tph("_ANK"),tph("_BR")), null))),orCons(undCons(equalcons(tph("_AC"),type("java.util.Vector",params(tph("_ANK")))),undCons(subcons(tph("_BC"),type("java.lang.Integer",null)),undCons(subcons(tph("_ANK"),tph("_BR")), null))),orCons(undCons(subcons(tph("_BC"),type("java.lang.Integer",null)),undCons(subcons(tph("_ANI"),tph("_BR")),undCons(equalcons(tph("_AC"),type("java.util.List",params(tph("_ANI")))), null))),orCons(undCons(subcons(tph("_BC"),type("java.lang.Integer",null)),undCons(subcons(tph("_ANJ"),tph("_BR")),undCons(equalcons(tph("_AC"),type("java.util.AbstractList",params(tph("_ANJ")))), null))), null)))))))). +orCons(undCons(subcons(tph("_ANM"),tph("_BO")),undCons(equalcons(tph("_BR"),type("java.util.AbstractList",params(tph("_ANM")))),undCons(subcons(tph("_AU"),type("java.lang.Integer",null)), null))),orCons(undCons(subcons(tph("_AU"),type("java.lang.Integer",null)),undCons(equalcons(tph("_BR"),type("Matrix",null)),undCons(subcons(type("java.util.Vector",params(type("java.lang.Integer",null))),tph("_BO")), null))),orCons(undCons(equalcons(tph("_BR"),type("java.util.List",params(tph("_ANL")))),undCons(subcons(tph("_ANL"),tph("_BO")),undCons(subcons(tph("_AU"),type("java.lang.Integer",null)), null))),orCons(undCons(equalcons(tph("_BR"),type("java.util.List",params(tph("_ANL")))),undCons(subcons(tph("_ANL"),tph("_BO")),undCons(subcons(tph("_AU"),type("java.lang.Integer",null)), null))),orCons(undCons(subcons(tph("_ANN"),tph("_BO")),undCons(equalcons(tph("_BR"),type("java.util.Vector",params(tph("_ANN")))),undCons(subcons(tph("_AU"),type("java.lang.Integer",null)), null))),orCons(undCons(subcons(tph("_ANM"),tph("_BO")),undCons(equalcons(tph("_BR"),type("java.util.AbstractList",params(tph("_ANM")))),undCons(subcons(tph("_AU"),type("java.lang.Integer",null)), null))),orCons(undCons(subcons(tph("_ANN"),tph("_BO")),undCons(equalcons(tph("_BR"),type("java.util.Vector",params(tph("_ANN")))),undCons(subcons(tph("_AU"),type("java.lang.Integer",null)), null))),orCons(undCons(subcons(tph("_AU"),type("java.lang.Integer",null)),undCons(equalcons(tph("_BR"),type("Matrix",null)),undCons(subcons(type("java.util.Vector",params(type("java.lang.Integer",null))),tph("_BO")), null))), null)))))))). +orCons(undCons(subcons(tph("_BO"),type("java.lang.Integer",null)),undCons(equalcons(type("java.lang.Integer",null),tph("_BU")),undCons(subcons(tph("_BK"),type("java.lang.Integer",null)), null))), null). +orCons(undCons(subcons(tph("_BU"),type("java.lang.Integer",null)),undCons(subcons(tph("_BA"),type("java.lang.Integer",null)),undCons(equalcons(type("java.lang.Integer",null),tph("_BV")), null))), null). +orCons(undCons(subcons(tph("_BA"),type("java.util.Vector",params(type("java.lang.Integer",null)))),undCons(equalcons(tph("_AS"),type("Matrix",null)), null)),orCons(undCons(subcons(tph("_BA"),type("java.util.Vector",params(type("java.lang.Integer",null)))),undCons(equalcons(tph("_AS"),type("Matrix",null)), null)),orCons(undCons(equalcons(tph("_AS"),type("java.util.Vector",params(tph("_ANO")))),undCons(subcons(tph("_BA"),tph("_ANO")), null)),orCons(undCons(equalcons(tph("_AS"),type("java.util.Vector",params(tph("_ANO")))),undCons(subcons(tph("_BA"),tph("_ANO")), null)), null)))). +orCons(undCons(subcons(tph("_AS"),type("java.util.Vector",params(type("java.lang.Integer",null)))),undCons(equalcons(tph("_AD"),type("Matrix",null)), null)),orCons(undCons(equalcons(tph("_AD"),type("java.util.Vector",params(tph("_ANP")))),undCons(subcons(tph("_AS"),tph("_ANP")), null)),orCons(undCons(subcons(tph("_AS"),type("java.util.Vector",params(type("java.lang.Integer",null)))),undCons(equalcons(tph("_AD"),type("Matrix",null)), null)),orCons(undCons(equalcons(tph("_AD"),type("java.util.Vector",params(tph("_ANP")))),undCons(subcons(tph("_AS"),tph("_ANP")), null)), null)))). orCons(undCons(equalcons(tph("_G"),type("java.lang.Integer",null)), null), null). -orCons(undCons(substcons(type("java.lang.Integer",null),tph("_J")),undCons(equalcons(tph("_F"),type("java.util.List",params(tph("_ANS")))), null)),orCons(undCons(equalcons(tph("_F"),type("java.util.AbstractList",params(tph("_ANT")))),undCons(substcons(type("java.lang.Integer",null),tph("_J")), null)),orCons(undCons(substcons(type("java.lang.Integer",null),tph("_J")),undCons(equalcons(tph("_F"),type("java.util.Vector",params(tph("_ANU")))), null)),orCons(undCons(equalcons(tph("_F"),type("Matrix",null)),undCons(substcons(type("java.lang.Integer",null),tph("_J")), null)),orCons(undCons(equalcons(tph("_F"),type("Matrix",null)),undCons(substcons(type("java.lang.Integer",null),tph("_J")), null)),orCons(undCons(substcons(type("java.lang.Integer",null),tph("_J")),undCons(equalcons(tph("_F"),type("java.util.List",params(tph("_ANS")))), null)),orCons(undCons(substcons(type("java.lang.Integer",null),tph("_J")),undCons(equalcons(tph("_F"),type("java.util.Vector",params(tph("_ANU")))), null)),orCons(undCons(equalcons(tph("_F"),type("java.util.AbstractList",params(tph("_ANT")))),undCons(substcons(type("java.lang.Integer",null),tph("_J")), null)), null)))))))). -orCons(undCons(substcons(type("java.lang.Integer",null),type("java.lang.Integer",null)),undCons(substcons(tph("_ANV"),tph("_N")),undCons(equalcons(tph("_F"),type("java.util.Vector",params(tph("_ANV")))), null))),orCons(undCons(equalcons(tph("_F"),type("Matrix",null)),undCons(substcons(type("java.lang.Integer",null),type("java.lang.Integer",null)),undCons(substcons(type("java.util.Vector",params(type("java.lang.Integer",null))),tph("_N")), null))),orCons(undCons(substcons(type("java.lang.Integer",null),type("java.lang.Integer",null)),undCons(substcons(tph("_ANV"),tph("_N")),undCons(equalcons(tph("_F"),type("java.util.Vector",params(tph("_ANV")))), null))),orCons(undCons(equalcons(tph("_F"),type("Matrix",null)),undCons(substcons(type("java.lang.Integer",null),type("java.lang.Integer",null)),undCons(substcons(type("java.util.Vector",params(type("java.lang.Integer",null))),tph("_N")), null))), null)))). -orCons(undCons(equalcons(tph("_F"),type("Matrix",null)),undCons(substcons(type("java.lang.Integer",null),type("java.lang.Integer",null)),undCons(substcons(type("java.util.Vector",params(type("java.lang.Integer",null))),tph("_N")), null))),orCons(undCons(equalcons(tph("_F"),type("java.util.Vector",params(tph("_ANX")))),undCons(substcons(type("java.lang.Integer",null),type("java.lang.Integer",null)),undCons(substcons(tph("_ANX"),tph("_N")), null))),orCons(undCons(equalcons(tph("_F"),type("java.util.Vector",params(tph("_ANX")))),undCons(substcons(type("java.lang.Integer",null),type("java.lang.Integer",null)),undCons(substcons(tph("_ANX"),tph("_N")), null))),orCons(undCons(equalcons(tph("_F"),type("Matrix",null)),undCons(substcons(type("java.lang.Integer",null),type("java.lang.Integer",null)),undCons(substcons(type("java.util.Vector",params(type("java.lang.Integer",null))),tph("_N")), null))), null)))). -orCons(undCons(equalcons(tph("_F"),type("Matrix",null)),undCons(substcons(type("java.lang.Integer",null),type("java.lang.Integer",null)),undCons(substcons(type("java.util.Vector",params(type("java.lang.Integer",null))),tph("_N")), null))),orCons(undCons(substcons(type("java.lang.Integer",null),type("java.lang.Integer",null)),undCons(equalcons(tph("_F"),type("Matrix",null)),undCons(substcons(type("java.util.Vector",params(type("java.lang.Integer",null))),tph("_N")), null))),orCons(undCons(equalcons(tph("_F"),type("java.util.Vector",params(tph("_ANZ")))),undCons(substcons(type("java.lang.Integer",null),type("java.lang.Integer",null)),undCons(substcons(tph("_ANZ"),tph("_N")), null))),orCons(undCons(equalcons(tph("_F"),type("java.util.Vector",params(tph("_ANZ")))),undCons(substcons(type("java.lang.Integer",null),type("java.lang.Integer",null)),undCons(substcons(tph("_ANZ"),tph("_N")), null))), null)))). -orCons(undCons(equalcons(tph("_F"),type("Matrix",null)),undCons(substcons(type("java.lang.Integer",null),type("java.lang.Integer",null)),undCons(substcons(type("java.util.Vector",params(type("java.lang.Integer",null))),tph("_N")), null))),orCons(undCons(substcons(tph("_AOB"),tph("_N")),undCons(substcons(type("java.lang.Integer",null),type("java.lang.Integer",null)),undCons(equalcons(tph("_F"),type("java.util.Vector",params(tph("_AOB")))), null))),orCons(undCons(substcons(tph("_AOB"),tph("_N")),undCons(substcons(type("java.lang.Integer",null),type("java.lang.Integer",null)),undCons(equalcons(tph("_F"),type("java.util.Vector",params(tph("_AOB")))), null))),orCons(undCons(substcons(type("java.lang.Integer",null),type("java.lang.Integer",null)),undCons(equalcons(tph("_F"),type("Matrix",null)),undCons(substcons(type("java.util.Vector",params(type("java.lang.Integer",null))),tph("_N")), null))), null)))). -orCons(undCons(substcons(type("java.lang.Boolean",null),tph("_R")),undCons(substcons(tph("_N"),tph("_AOA")),undCons(equalcons(tph("_S"),type("java.util.Vector",params(tph("_AOA")))), null))),orCons(undCons(substcons(type("java.lang.Boolean",null),tph("_R")),undCons(substcons(tph("_N"),tph("_ANW")),undCons(equalcons(tph("_S"),type("java.util.List",params(tph("_ANW")))), null))),orCons(undCons(substcons(type("java.lang.Boolean",null),tph("_R")),undCons(substcons(tph("_N"),tph("_ANW")),undCons(equalcons(tph("_S"),type("java.util.List",params(tph("_ANW")))), null))),orCons(undCons(substcons(type("java.lang.Boolean",null),tph("_R")),undCons(substcons(tph("_N"),tph("_AOA")),undCons(equalcons(tph("_S"),type("java.util.Vector",params(tph("_AOA")))), null))),orCons(undCons(substcons(type("java.lang.Boolean",null),tph("_R")),undCons(equalcons(tph("_S"),type("Matrix",null)),undCons(substcons(tph("_N"),type("java.util.Vector",params(type("java.lang.Integer",null)))), null))),orCons(undCons(substcons(type("java.lang.Boolean",null),tph("_R")),undCons(equalcons(tph("_S"),type("Matrix",null)),undCons(substcons(tph("_N"),type("java.util.Vector",params(type("java.lang.Integer",null)))), null))),orCons(undCons(substcons(type("java.lang.Boolean",null),tph("_R")),undCons(equalcons(tph("_S"),type("java.util.AbstractList",params(tph("_ANY")))),undCons(substcons(tph("_N"),tph("_ANY")), null))),orCons(undCons(substcons(type("java.lang.Boolean",null),tph("_R")),undCons(equalcons(tph("_S"),type("java.util.AbstractList",params(tph("_ANY")))),undCons(substcons(tph("_N"),tph("_ANY")), null))), null)))))))). +orCons(undCons(subcons(type("java.lang.Integer",null),tph("_J")),undCons(equalcons(tph("_F"),type("java.util.List",params(tph("_ANS")))), null)),orCons(undCons(equalcons(tph("_F"),type("java.util.AbstractList",params(tph("_ANT")))),undCons(subcons(type("java.lang.Integer",null),tph("_J")), null)),orCons(undCons(subcons(type("java.lang.Integer",null),tph("_J")),undCons(equalcons(tph("_F"),type("java.util.Vector",params(tph("_ANU")))), null)),orCons(undCons(equalcons(tph("_F"),type("Matrix",null)),undCons(subcons(type("java.lang.Integer",null),tph("_J")), null)),orCons(undCons(equalcons(tph("_F"),type("Matrix",null)),undCons(subcons(type("java.lang.Integer",null),tph("_J")), null)),orCons(undCons(subcons(type("java.lang.Integer",null),tph("_J")),undCons(equalcons(tph("_F"),type("java.util.List",params(tph("_ANS")))), null)),orCons(undCons(subcons(type("java.lang.Integer",null),tph("_J")),undCons(equalcons(tph("_F"),type("java.util.Vector",params(tph("_ANU")))), null)),orCons(undCons(equalcons(tph("_F"),type("java.util.AbstractList",params(tph("_ANT")))),undCons(subcons(type("java.lang.Integer",null),tph("_J")), null)), null)))))))). +orCons(undCons(subcons(type("java.lang.Integer",null),type("java.lang.Integer",null)),undCons(subcons(tph("_ANV"),tph("_N")),undCons(equalcons(tph("_F"),type("java.util.Vector",params(tph("_ANV")))), null))),orCons(undCons(equalcons(tph("_F"),type("Matrix",null)),undCons(subcons(type("java.lang.Integer",null),type("java.lang.Integer",null)),undCons(subcons(type("java.util.Vector",params(type("java.lang.Integer",null))),tph("_N")), null))),orCons(undCons(subcons(type("java.lang.Integer",null),type("java.lang.Integer",null)),undCons(subcons(tph("_ANV"),tph("_N")),undCons(equalcons(tph("_F"),type("java.util.Vector",params(tph("_ANV")))), null))),orCons(undCons(equalcons(tph("_F"),type("Matrix",null)),undCons(subcons(type("java.lang.Integer",null),type("java.lang.Integer",null)),undCons(subcons(type("java.util.Vector",params(type("java.lang.Integer",null))),tph("_N")), null))), null)))). +orCons(undCons(equalcons(tph("_F"),type("Matrix",null)),undCons(subcons(type("java.lang.Integer",null),type("java.lang.Integer",null)),undCons(subcons(type("java.util.Vector",params(type("java.lang.Integer",null))),tph("_N")), null))),orCons(undCons(equalcons(tph("_F"),type("java.util.Vector",params(tph("_ANX")))),undCons(subcons(type("java.lang.Integer",null),type("java.lang.Integer",null)),undCons(subcons(tph("_ANX"),tph("_N")), null))),orCons(undCons(equalcons(tph("_F"),type("java.util.Vector",params(tph("_ANX")))),undCons(subcons(type("java.lang.Integer",null),type("java.lang.Integer",null)),undCons(subcons(tph("_ANX"),tph("_N")), null))),orCons(undCons(equalcons(tph("_F"),type("Matrix",null)),undCons(subcons(type("java.lang.Integer",null),type("java.lang.Integer",null)),undCons(subcons(type("java.util.Vector",params(type("java.lang.Integer",null))),tph("_N")), null))), null)))). +orCons(undCons(equalcons(tph("_F"),type("Matrix",null)),undCons(subcons(type("java.lang.Integer",null),type("java.lang.Integer",null)),undCons(subcons(type("java.util.Vector",params(type("java.lang.Integer",null))),tph("_N")), null))),orCons(undCons(subcons(type("java.lang.Integer",null),type("java.lang.Integer",null)),undCons(equalcons(tph("_F"),type("Matrix",null)),undCons(subcons(type("java.util.Vector",params(type("java.lang.Integer",null))),tph("_N")), null))),orCons(undCons(equalcons(tph("_F"),type("java.util.Vector",params(tph("_ANZ")))),undCons(subcons(type("java.lang.Integer",null),type("java.lang.Integer",null)),undCons(subcons(tph("_ANZ"),tph("_N")), null))),orCons(undCons(equalcons(tph("_F"),type("java.util.Vector",params(tph("_ANZ")))),undCons(subcons(type("java.lang.Integer",null),type("java.lang.Integer",null)),undCons(subcons(tph("_ANZ"),tph("_N")), null))), null)))). +orCons(undCons(equalcons(tph("_F"),type("Matrix",null)),undCons(subcons(type("java.lang.Integer",null),type("java.lang.Integer",null)),undCons(subcons(type("java.util.Vector",params(type("java.lang.Integer",null))),tph("_N")), null))),orCons(undCons(subcons(tph("_AOB"),tph("_N")),undCons(subcons(type("java.lang.Integer",null),type("java.lang.Integer",null)),undCons(equalcons(tph("_F"),type("java.util.Vector",params(tph("_AOB")))), null))),orCons(undCons(subcons(tph("_AOB"),tph("_N")),undCons(subcons(type("java.lang.Integer",null),type("java.lang.Integer",null)),undCons(equalcons(tph("_F"),type("java.util.Vector",params(tph("_AOB")))), null))),orCons(undCons(subcons(type("java.lang.Integer",null),type("java.lang.Integer",null)),undCons(equalcons(tph("_F"),type("Matrix",null)),undCons(subcons(type("java.util.Vector",params(type("java.lang.Integer",null))),tph("_N")), null))), null)))). +orCons(undCons(subcons(type("java.lang.Boolean",null),tph("_R")),undCons(subcons(tph("_N"),tph("_AOA")),undCons(equalcons(tph("_S"),type("java.util.Vector",params(tph("_AOA")))), null))),orCons(undCons(subcons(type("java.lang.Boolean",null),tph("_R")),undCons(subcons(tph("_N"),tph("_ANW")),undCons(equalcons(tph("_S"),type("java.util.List",params(tph("_ANW")))), null))),orCons(undCons(subcons(type("java.lang.Boolean",null),tph("_R")),undCons(subcons(tph("_N"),tph("_ANW")),undCons(equalcons(tph("_S"),type("java.util.List",params(tph("_ANW")))), null))),orCons(undCons(subcons(type("java.lang.Boolean",null),tph("_R")),undCons(subcons(tph("_N"),tph("_AOA")),undCons(equalcons(tph("_S"),type("java.util.Vector",params(tph("_AOA")))), null))),orCons(undCons(subcons(type("java.lang.Boolean",null),tph("_R")),undCons(equalcons(tph("_S"),type("Matrix",null)),undCons(subcons(tph("_N"),type("java.util.Vector",params(type("java.lang.Integer",null)))), null))),orCons(undCons(subcons(type("java.lang.Boolean",null),tph("_R")),undCons(equalcons(tph("_S"),type("Matrix",null)),undCons(subcons(tph("_N"),type("java.util.Vector",params(type("java.lang.Integer",null)))), null))),orCons(undCons(subcons(type("java.lang.Boolean",null),tph("_R")),undCons(equalcons(tph("_S"),type("java.util.AbstractList",params(tph("_ANY")))),undCons(subcons(tph("_N"),tph("_ANY")), null))),orCons(undCons(subcons(type("java.lang.Boolean",null),tph("_R")),undCons(equalcons(tph("_S"),type("java.util.AbstractList",params(tph("_ANY")))),undCons(subcons(tph("_N"),tph("_ANY")), null))), null)))))))). orCons(undCons(equalcons(tph("_U"),type("java.lang.Integer",null)), null), null). -orCons(undCons(substcons(type("java.lang.Integer",null),type("java.lang.Integer",null)),undCons(substcons(tph("_U"),type("java.lang.Integer",null)),undCons(equalcons(type("java.lang.Integer",null),tph("_V")), null))), null). +orCons(undCons(subcons(type("java.lang.Integer",null),type("java.lang.Integer",null)),undCons(subcons(tph("_U"),type("java.lang.Integer",null)),undCons(equalcons(type("java.lang.Integer",null),tph("_V")), null))), null). subtype(type("java.lang.Boolean",null),type("Object",null)):-subtype(type("java.lang.Boolean",null)). subtype(type("java.lang.Integer",null),type("java.lang.Number",null)):-subtype(type("java.lang.Integer",null)). @@ -47,11 +47,11 @@ subtype(type("Vector", params(X)), type("Object", null)) :- subtype(type("Vector % Or-Constraints undCons(A,B) :- orCons(undCons(A,B), null). undCons(A,B); orCons(C,D) :- orCons(undCons(A,B), orCons(C,D)). -substcons(A,B) :- undCons(substcons(A,B), _). +subcons(A,B) :- undCons(subcons(A,B), _). undCons(B,C) :- undCons(A, undCons(B, C)). % undCons -substcons(A,B) :- undCons(substcons(A,B), _). +subcons(A,B) :- undCons(subcons(A,B), _). undCons(C,D) :- undCons(_, undCons(C,D)). % Subtyping @@ -63,16 +63,16 @@ namedSubtype(A,B) :- subtype(type(A, AP), type(B, BP)). % is reflexive and transitive because subtype it stems from subtype % generate the subtype relations for every constraint where one is needed: (this could be optimized) -subtype(type(A, P)) :- substcons(_, type(A, P)). -subtype(type(A, P)) :- substcons(type(A, P), _). +subtype(type(A, P)) :- subcons(_, type(A, P)). +subtype(type(A, P)) :- subcons(type(A, P), _). % subst: subst(tph(A), type(N,P)) :- equalcons(tph(A), type(N, P)). % subst-L: -substcons(B,C) :- subst(A, B), substcons(A, C). +subcons(B,C) :- subst(A, B), subcons(A, C). %subst-R: -substcons(C,B) :- subst(A, B), substcons(C, A). +subcons(C,B) :- subst(A, B), subcons(C, A). %subst-Equal: equalcons(B,C) :- subst(A, B), equalcons(A, C). @@ -88,21 +88,21 @@ equalcons(T, T) :- equalcons(tph(_), type(_, params(_, T, _))). equalcons(T, T) :- equalcons(tph(_), type(_, params(_, _, T))). % Subst-Param: -substcons(A, type(C, params(T2))) :- substcons(A, type(C, params(T))), subst(T, T2). -substcons(A, type(C, params(T2, P2))) :- substcons(A, type(C, params(T, P2))), subst(T, T2). -substcons(A, type(C, params(P1, T2))) :- substcons(A, type(C, params(P1, T))), subst(T, T2). -substcons(A, type(C, params(T2, P2, P3))) :- substcons(A, type(C, params(T, P2, P3))), subst(T, T2). -substcons(A, type(C, params(P1, T2, P3))) :- substcons(A, type(C, params(P1, T, P3))), subst(T, T2). -substcons(A, type(C, params( P1, P2, T2))) :- substcons(A, type(C, params(P1, P2, T))), subst(T, T2). +subcons(A, type(C, params(T2))) :- subcons(A, type(C, params(T))), subst(T, T2). +subcons(A, type(C, params(T2, P2))) :- subcons(A, type(C, params(T, P2))), subst(T, T2). +subcons(A, type(C, params(P1, T2))) :- subcons(A, type(C, params(P1, T))), subst(T, T2). +subcons(A, type(C, params(T2, P2, P3))) :- subcons(A, type(C, params(T, P2, P3))), subst(T, T2). +subcons(A, type(C, params(P1, T2, P3))) :- subcons(A, type(C, params(P1, T, P3))), subst(T, T2). +subcons(A, type(C, params( P1, P2, T2))) :- subcons(A, type(C, params(P1, P2, T))), subst(T, T2). % match -substcons(type(C, P1), type(D, P2)) :- substcons(tph(A), type(C, P1)), substcons(tph(A), type(D, P2)), namedSubtype(C, D). +subcons(type(C, P1), type(D, P2)) :- subcons(tph(A), type(C, P1)), subcons(tph(A), type(D, P2)), namedSubtype(C, D). % adopt -substcons(tph(A), type(C,P)) :- substcons(tph(A), tph(B)), substcons(tph(B), type(C,P)). +subcons(tph(A), type(C,P)) :- subcons(tph(A), tph(B)), subcons(tph(B), type(C,P)). % adapt -equalcons(type(D,P3), type(D,P2)) :- substcons(type(C,P), type(D, P2)), subtype(type(C, P), type(D, P3)). +equalcons(type(D,P3), type(D,P2)) :- subcons(type(C,P), type(D, P2)), subtype(type(C, P), type(D, P3)). % reduce equalcons(P1, PP1) :- equalcons(type(C, params(P1)), type(C, params(PP1))). @@ -113,15 +113,15 @@ equalcons(P2, PP2) :- equalcons(type(C, params(P1, P2, P3)), type(C, params(PP1, equalcons(P3, PP3) :- equalcons(type(C, params(P1, P2, P3)), type(C, params(PP1, PP2, PP3))). % super -{ equalcons(tph(A), type(D, DP)): subtype(type(C, CP), type(D, DP)) } == 1 :- substcons(type(C, CP), tph(A)). -%equalcons(tph(A), type(C, CP)) :- substcons(type(C, CP), tph(A)), not subtype(type(C, CP),_). +{ equalcons(tph(A), type(D, DP)): subtype(type(C, CP), type(D, DP)) } == 1 :- subcons(type(C, CP), tph(A)). +%equalcons(tph(A), type(C, CP)) :- subcons(type(C, CP), tph(A)), not subtype(type(C, CP),_). % here we check if there is a constraint a <. C, where there is no other Constraint. This is the solution-Gen rule %Solution-Subst: -hasASubtype(tph(A), type(D,P2)) :- substcons(tph(A), type(C,P)), substcons(tph(A), type(D,P2)), namedSubtype(C, D), C != D. -equalcons(tph(A), type(C,P)) :- substcons(tph(A), type(C,P)), not hasASubtype(tph(A), type(C,P)). +hasASubtype(tph(A), type(D,P2)) :- subcons(tph(A), type(C,P)), subcons(tph(A), type(D,P2)), namedSubtype(C, D), C != D. +equalcons(tph(A), type(C,P)) :- subcons(tph(A), type(C,P)), not hasASubtype(tph(A), type(C,P)). %Solution: tphs( P ) :- equalcons(tph(A), type(C, P)). @@ -131,8 +131,8 @@ sigma(tph(A), type(C,P)) :- equalcons(tph(A), type(C, P)), not tphs(_, P). :- equalcons(tph(A), type(C, P)), tphs(tph(A), P). % fail for subst :- equalcons(type(C, CP), type(D, DP)), C != D. % fail for reduce -:- substcons(type(C, CP), type(D, DP)), not namedSubtype(C, D). % fail for adapt -:- substcons(tph(A), type(D, DP)), substcons(tph(A), type(C, CP)), not namedSubtype(C, D), not namedSubtype(D, C). %Fail for match +:- subcons(type(C, CP), type(D, DP)), not namedSubtype(C, D). % fail for adapt +:- subcons(tph(A), type(D, DP)), subcons(tph(A), type(C, CP)), not namedSubtype(C, D), not namedSubtype(D, C). %Fail for match %% Helpers %tphs: diff --git a/src/main/java/de/dhbwstuttgart/exceptions/DebugException.java b/src/main/java/de/dhbwstuttgart/exceptions/DebugException.java deleted file mode 100644 index 559b7f1..0000000 --- a/src/main/java/de/dhbwstuttgart/exceptions/DebugException.java +++ /dev/null @@ -1,7 +0,0 @@ -package de.dhbwstuttgart.exceptions; - -public class DebugException extends RuntimeException{ - public DebugException(String message){ - System.err.println(message); - } -} diff --git a/src/main/java/de/dhbwstuttgart/output/SolutionParser.java b/src/main/java/de/dhbwstuttgart/output/SolutionParser.java new file mode 100644 index 0000000..8aed2ed --- /dev/null +++ b/src/main/java/de/dhbwstuttgart/output/SolutionParser.java @@ -0,0 +1,37 @@ +package de.dhbwstuttgart.output; + +import de.dhbwstuttgart.input.ConstraintParser; +import de.dhbwstuttgart.sat.asp.Pair; +import org.antlr.v4.runtime.CharStream; +import org.antlr.v4.runtime.CharStreams; +import org.antlr.v4.runtime.CommonTokenStream; + +import java.util.*; +import java.util.stream.Collectors; + +record Sigma(String tphName, String typeReplacement){} +public class SolutionParser { + public static Map parse(String cons){ + CharStream input = CharStreams.fromString(cons); + de.dhbwstuttgart.input.parser.SolutionLexer lexer = new de.dhbwstuttgart.input.parser.SolutionLexer(input); + CommonTokenStream tokens = new CommonTokenStream(lexer); + de.dhbwstuttgart.input.parser.SolutionParser parser = new de.dhbwstuttgart.input.parser.SolutionParser(tokens); + de.dhbwstuttgart.input.parser.SolutionParser.SolutionsetContext conSet = parser.solutionset(); //Parsen + Set solutions = conSet.solution().stream().map(solutionContext -> new Sigma(solutionContext.tph().IDENTIFIER().getText(), parseType(solutionContext.type()))).collect(Collectors.toSet()); + Map ret = new HashMap<>(); + for(Sigma solution : solutions){ + ret.put(solution.tphName(), solution.typeReplacement()); + } + return ret; + } + + private static String parseType(de.dhbwstuttgart.input.parser.SolutionParser.TypeContext type) { + String params = ""; + if(type.params().type().size() > 0){ + params += "<"; + params += type.params().type().stream().map(t -> parseType(t)).collect(Collectors.joining(",")); + params += ">"; + } + return type.IDENTIFIER().getText() + params; + } +} diff --git a/src/main/java/de/dhbwstuttgart/sat/asp/EqualsDot.java b/src/main/java/de/dhbwstuttgart/sat/asp/EqualsDot.java index 1d2750d..8612030 100644 --- a/src/main/java/de/dhbwstuttgart/sat/asp/EqualsDot.java +++ b/src/main/java/de/dhbwstuttgart/sat/asp/EqualsDot.java @@ -3,6 +3,6 @@ package de.dhbwstuttgart.sat.asp; public record EqualsDot(Type left, Type right) implements Pair { @Override public String toASP() { - return "equalsdot("+ left().toASP() + "," + right().toASP() + ")"; + return "equalcons("+ left().toASP() + "," + right().toASP() + ")"; } } diff --git a/src/main/java/de/dhbwstuttgart/sat/asp/LessDot.java b/src/main/java/de/dhbwstuttgart/sat/asp/LessDot.java index 0585f55..88675da 100644 --- a/src/main/java/de/dhbwstuttgart/sat/asp/LessDot.java +++ b/src/main/java/de/dhbwstuttgart/sat/asp/LessDot.java @@ -3,6 +3,6 @@ package de.dhbwstuttgart.sat.asp; public record LessDot(Type left, Type right) implements Pair { @Override public String toASP() { - return "lessdot("+ left().toASP() + "," + right().toASP() + ")"; + return "subcons("+ left().toASP() + "," + right().toASP() + ")"; } } diff --git a/src/test/java/SolutionParserTest.java b/src/test/java/SolutionParserTest.java new file mode 100644 index 0000000..32a56c8 --- /dev/null +++ b/src/test/java/SolutionParserTest.java @@ -0,0 +1,24 @@ +import de.dhbwstuttgart.output.SolutionParser; +import org.junit.Test; + +import java.util.Map; + +public class SolutionParserTest { + @Test + public void parseMatrixSolution(){ + String solution = "sigma(tph(\"_AMY\"),type(\"java.lang.Integer\",null)) sigma(tph(\"_AK\"),type(\"java.lang.Number\",null)) sigma(tph(\"_AY\"),type(\"java.lang.Number\",null)) sigma(tph(\"_J\"),type(\"java.lang.Number\",null)) sigma(tph(\"_V\"),type(\"java.lang.Integer\",null)) sigma(tph(\"_G\"),type(\"java.lang.Integer\",null)) sigma(tph(\"_BK\"),type(\"java.lang.Integer\",null)) sigma(tph(\"_BA\"),type(\"java.lang.Integer\",null)) sigma(tph(\"_U\"),type(\"java.lang.Integer\",null)) sigma(tph(\"_BU\"),type(\"java.lang.Integer\",null)) sigma(tph(\"_BO\"),type(\"java.lang.Integer\",null)) sigma(tph(\"_BG\"),type(\"java.lang.Number\",null)) sigma(tph(\"_BB\"),type(\"java.lang.Integer\",null)) sigma(tph(\"_BV\"),type(\"java.lang.Integer\",null)) sigma(tph(\"_AU\"),type(\"java.lang.Integer\",null)) sigma(tph(\"_AF\"),type(\"java.lang.Integer\",null)) sigma(tph(\"_BC\"),type(\"java.lang.Integer\",null)) sigma(tph(\"_AS\"),type(\"java.util.Vector\",params(type(\"java.lang.Integer\",null)))) sigma(tph(\"_BD\"),type(\"java.lang.Integer\",null)) sigma(tph(\"_AG\"),type(\"java.lang.Integer\",null)) sigma(tph(\"_AV\"),type(\"java.lang.Integer\",null)) sigma(tph(\"_ANN\"),type(\"java.lang.Integer\",null)) sigma(tph(\"_ANH\"),type(\"java.lang.Integer\",null)) sigma(tph(\"_AD\"),type(\"Matrix\",null)) sigma(tph(\"_AP\"),type(\"java.util.Vector\",params(type(\"java.lang.Integer\",null)))) sigma(tph(\"_R\"),type(\"java.lang.Boolean\",null)) sigma(tph(\"_BR\"),type(\"Object\",null)) sigma(tph(\"_ANO\"),type(\"java.lang.Integer\",null)) sigma(tph(\"_AB\"),type(\"Matrix\",null)) sigma(tph(\"_AM\"),type(\"java.util.Vector\",params(type(\"java.lang.Integer\",null))))\n"; + Map sigmas = SolutionParser.parse(solution); + for(var key : sigmas.keySet()){ + System.out.println(key + " -> " + sigmas.get(key)); + } + } + @Test + public void parseOneSigma(){ + String solution = "sigma(tph(\"_AMY\"),type(\"java.lang.Integer\",null))"; + System.out.println(solution); + Map sigmas = SolutionParser.parse(solution); + for(var key : sigmas.keySet()){ + System.out.println(key + " -> " + sigmas.get(key)); + } + } +}