libLIST=ReadString["C:/mathematica/Work/lossofgenerality/MET-CS/HomeWorks/libLIST.m"]<>"\n";
libNAMES=ReadString["C:/mathematica/Work/lossofgenerality/MET-CS/HomeWorks/libNAMES.m"]<>"\n";
libIO=ReadString["C:/mathematica/Work/lossofgenerality/MET-CS/HomeWorks/libIO.m"]<>"\n";
libERR=ReadString["C:/mathematica/Work/lossofgenerality/MET-CS/HomeWorks/libERR.m"]<>"\n";
libGUI=ReadString["C:/mathematica/Work/lossofgenerality/MET-CS/HomeWorks/libGUI.m"]<>"\n";
libML=ReadString["C:/mathematica/Work/lossofgenerality/MET-CS/HomeWorks/libML.m"]<>"\n";
libMISC=ReadString["C:/mathematica/Work/lossofgenerality/MET-CS/HomeWorks/libMISC.m"]<>"\n";
libGraphics=ReadString["C:/mathematica/Work/lossofgenerality/MET-CS/HomeWorks/libGraphics.m"]<>"\n";
libFUNC=ReadString["C:/mathematica/Work/lossofgenerality/MET-CS/HomeWorks/libFUNC.m"]<>"\n";

(*libLIST=ReadString["/Users/darashayda1xfer/Desktop/MODULES/BU/libs/libLIST.m"]<>"\n";
libNAMES=ReadString["/Users/darashayda1xfer/Desktop/MODULES/BU/libs/libNAMES.m"]<>"\n";
libIO=ReadString["/Users/darashayda1xfer/Desktop/MODULES/BU/libs/libIO.m"]<>"\n";
libERR=ReadString["/Users/darashayda1xfer/Desktop/MODULES/BU/libs/libERR.m"]<>"\n";
libGUI=ReadString["/Users/darashayda1xfer/Desktop/MODULES/BU/libs/libGUI.m"]<>"\n";
libML=ReadString["/Users/darashayda1xfer/Desktop/MODULES/BU/libs/libML.m"]<>"\n";
libMISC=ReadString["/Users/darashayda1xfer/Desktop/MODULES/BU/libs/libMISC.m"]<>"\n";
libGraphics=ReadString["/Users/darashayda1xfer/Desktop/MODULES/BU/libs/libGraphics.m"]<>"\n";
libFUNC=ReadString["/Users/darashayda1xfer/Desktop/MODULES/BU/libs/libFUNC.m"]<>"\n";*)

ToExpression@libFUNC

onTO[Sin[x]^3,x∈Reals&&-10<x<100, y∈Reals&&-1<=y≤(1-0.00000001)]

oneTOone[Abs[x]^(1/2),x∈Reals&&-10<x<10]

onTO[Abs[x]^(1/2),x∈Reals&&-10<x<10 ,y∈Reals&&0<=y≤(1-0.00000001)]

New “types” arguement:

makeFUNC["types"]

Anna  this makes makeFunc easy to use, it varies itself, in future we use that for many of our functions which have IF or WHILE inside:

f=makeFUNC@RandomChoice[Drop[makeFUNC["types"],1]];
f["plot"]
f["domain"]
f["range"]
f["rangeALL"]
f["image"]
f["preimage"]

f=makeFUNC["not function"];
f["plot"]
f["domain"]
f["range"]

f=makeFUNC["1to1 and not Onto"];
f["plot"]
f["domain"]
f["range"]
f["rangeALL"]
f["image"]
f["preimage"]

f=makeFUNC["1to1 and Onto"];
f["plot"]
f["domain"]
f["range"]
f["rangeALL"]
f["image"]
f["preimage"]

f=makeFUNC["not 1to1 and not Onto" ];
f["plot"]
f["domain"]
f["range"]
f["rangeALL"]
f["image"]
f["preimage"]

f=makeFUNC["not 1to1 and Onto" ];
f["plot"]
f["domain"]
f["range"]
f["rangeALL"]
f["image"]
f["preimage"]