diff --git a/Frontend Angular 4/src/app/layout/plotter/graph2D/graph2D.component.ts b/Frontend Angular 4/src/app/layout/plotter/graph2D/graph2D.component.ts
index 900374f8c1aeb91bd890c19a013ce9c805f59c56..d8ca42733b023e87c00c5cd487c9e9bc9f419346 100755
--- a/Frontend Angular 4/src/app/layout/plotter/graph2D/graph2D.component.ts	
+++ b/Frontend Angular 4/src/app/layout/plotter/graph2D/graph2D.component.ts	
@@ -85,8 +85,11 @@ export class Graph2DComponent {
                         var conjs = this.obtenerConjunto(jsonCanvas.funs[0]);
     
                         var d = conjs + "}"; //Leo
+			
                         var obj = JSON.parse(d);
 
+                        if ((obj.conj.baseDom == "Error") || (obj.conj.baseCod == "Error")) { break; }
+
                         //Para las funciones 
                         if (obj.conj.sets.fdom == "function(x)") {
                             var nom = jsonCanvas.funs[0].dom;
@@ -460,7 +463,7 @@ export class Graph2DComponent {
                         var shapesData = JSON.parse(canvas.resultado);
                         var shapesDataNormalized = this.normalizeShapesData(shapesData);
                         let bounding = this.getBounding();
-                        this.cleanPlot();
+                        this.cleanPlot(); 
                         this.instance = functionPlot({
                             target: '#graph2D-container',
                             width: bounding.width,
@@ -482,7 +485,7 @@ export class Graph2DComponent {
                         break; 
                     }
                     case 'animacion': {
-                        this.cleanPlot();                  
+                        this.cleanPlot(); 
                         var animationData = canvas.resultado.map(res => JSON.parse(res));
                         for (var frame of animationData) {
                             this.animation.data.push(this.normalizeShapesData(frame));
@@ -1670,7 +1673,9 @@ createListExp = function (exp) {
 
     recursivoDom = function (sets, nom) {
         var domin = "";
-        if (sets[0][nom].set == 'R') {
+	if (sets[0][nom] == undefined) {
+	    domin += "\"baseDom\": \"Error\"";
+        } else if (sets[0][nom].set == 'R') {
             domin += "\"radio\": 0.3, \"baseDom\": \"R\", \"dom\": \"Func\"";
         } else if (sets[0][nom].set == 'Z') {
             domin += "\"radio\": 2, \"baseDom\": \"Z\", \"dom\": \"Func\"";
@@ -1686,7 +1691,9 @@ createListExp = function (exp) {
 
     recursivoCod = function (sets, nom) {
         var coodo = "";
-        if (sets[0][nom].set == 'R') {
+	if (sets[0][nom] == undefined) {
+	    coodo += "\"baseCod\": \"Error\"";
+        } else  if (sets[0][nom].set == 'R') {
             coodo += "\"baseCod\": \"R\", \"cod\": \"Func\",";
         } else if (sets[0][nom].set == 'Z') {
             coodo += "\"baseCod\": \"Z\", \"cod\": \"Func\",";
diff --git a/Servidor JEE/src/main/java/edu/proygrado/binarios/MateFun b/Servidor JEE/src/main/java/edu/proygrado/binarios/MateFun
index 2102c55a8b3928f0c1e1d8d3b4cfd0ddc2b95c99..7f916f8455c06362fe97caf948a94ad70e785d25 100755
Binary files a/Servidor JEE/src/main/java/edu/proygrado/binarios/MateFun and b/Servidor JEE/src/main/java/edu/proygrado/binarios/MateFun differ
diff --git a/Servidor JEE/src/main/java/edu/proygrado/binarios/internationalization/en.po b/Servidor JEE/src/main/java/edu/proygrado/binarios/internationalization/en.po
index c7a153db449b68a4da27731aa784994b539a0f80..51bd0e9815fc05c9fbbd74a04a02f9da785fd2bd 100644
--- a/Servidor JEE/src/main/java/edu/proygrado/binarios/internationalization/en.po	
+++ b/Servidor JEE/src/main/java/edu/proygrado/binarios/internationalization/en.po	
@@ -17,23 +17,23 @@ msgstr ""
 msgid "3D Figure"
 msgstr "3D Figure"
 
-#: src/MateFun.hs:355
+#: src/MateFun.hs:364
 msgid "3D Figures"
 msgstr "3D Figures"
 
-#: src/MateFun/ReservedNames.hs:80
+#: src/MateFun/ReservedNames.hs:82
 msgid "<function>"
 msgstr "<function>"
 
-#: src/MateFun/ReservedNames.hs:79
+#: src/MateFun/ReservedNames.hs:81
 msgid "<program>"
 msgstr "<program>"
 
-#: src/MateFun/ReservedNames.hs:82
+#: src/MateFun/ReservedNames.hs:84
 msgid "<set>"
 msgstr "<set>"
 
-#: src/MateFun/ReservedNames.hs:81
+#: src/MateFun/ReservedNames.hs:83
 msgid "<variable>"
 msgstr "<variable>"
 
@@ -61,7 +61,7 @@ msgstr "Blue"
 msgid "Brain exploded!"
 msgstr "Brain exploded!"
 
-#: src/MateFun.hs:128 src/MateFun.hs:145
+#: src/MateFun.hs:133 src/MateFun.hs:153
 msgid "Bye!!"
 msgstr "Bye!!"
 
@@ -73,7 +73,7 @@ msgstr "Circular inclusion"
 msgid "Color"
 msgstr "Color"
 
-#: src/MateFun.hs:356
+#: src/MateFun.hs:365
 msgid "Colors"
 msgstr "Colors"
 
@@ -85,7 +85,7 @@ msgstr "Could not open file"
 msgid "Division is a partial function, not defined in 0."
 msgstr "Division is a partial function, not defined in 0."
 
-#: src/MateFun/ReservedNames.hs:104
+#: src/MateFun/ReservedNames.hs:106
 msgid "Does not exist"
 msgstr "Does not exist"
 
@@ -105,19 +105,19 @@ msgstr "EmptyFig"
 msgid "EmptyFig3D"
 msgstr "EmptyFig3D"
 
-#: src/MateFun.hs:55
+#: src/MateFun.hs:59
 msgid "Enables arithmetic function usage warnings"
 msgstr "Enables arithmetic function usage warnings"
 
-#: src/MateFun.hs:59
+#: src/MateFun.hs:63
 msgid "Enables domain intersection check on functions to load"
 msgstr "Enables domain intersection check on functions to load"
 
-#: src/MateFun.hs:53
+#: src/MateFun.hs:57
 msgid "Enables function usage warnings"
 msgstr "Enables function usage warnings"
 
-#: src/MateFun.hs:61
+#: src/MateFun.hs:65
 msgid "Enables verbose mode"
 msgstr "Enables verbose mode"
 
@@ -125,7 +125,7 @@ msgstr "Enables verbose mode"
 msgid "Error"
 msgstr "Error"
 
-#: src/MateFun.hs:126
+#: src/MateFun.hs:131
 msgid "Error reading command to interpretate."
 msgstr "Error reading command to interpretate."
 
@@ -141,7 +141,7 @@ msgstr "Expected elements of"
 msgid "Exponent is a partial function, not defined for negative numbers."
 msgstr "Exponent is a partial function, not defined for negative numbers."
 
-#: src/MateFun.hs:48 src/MateFun.hs:97
+#: src/MateFun.hs:52 src/MateFun.hs:101
 msgid "FILE"
 msgstr "FILE"
 
@@ -149,19 +149,19 @@ msgstr "FILE"
 msgid "Figure"
 msgstr "Figure"
 
-#: src/MateFun.hs:354
+#: src/MateFun.hs:363
 msgid "Figures"
 msgstr "Figures"
 
-#: src/MateFun.hs:300 src/MateFun.hs:301
+#: src/MateFun.hs:309 src/MateFun.hs:310
 msgid "Found"
 msgstr "Found"
 
-#: src/MateFun/ReservedNames.hs:103
+#: src/MateFun/ReservedNames.hs:105
 msgid "Function"
 msgstr "Function"
 
-#: src/MateFun.hs:369
+#: src/MateFun.hs:378
 msgid "Graph"
 msgstr "Graph"
 
@@ -173,7 +173,7 @@ msgstr "Gray"
 msgid "Green"
 msgstr "Green"
 
-#: src/MateFun.hs:352
+#: src/MateFun.hs:361
 msgid "Integer"
 msgstr "Integer"
 
@@ -181,7 +181,7 @@ msgstr "Integer"
 msgid "Interpreter"
 msgstr "Interpreter"
 
-#: src/MateFun.hs:336
+#: src/MateFun.hs:345
 msgid "Interpreter Commands:"
 msgstr "Interpreter Commands:"
 
@@ -189,7 +189,7 @@ msgstr "Interpreter Commands:"
 msgid "Invalid index."
 msgstr "Invalid index."
 
-#: src/MateFun.hs:174
+#: src/MateFun.hs:183
 msgid "Loading"
 msgstr "Loading"
 
@@ -197,7 +197,7 @@ msgstr "Loading"
 msgid "Negative exponent."
 msgstr "Negative exponent."
 
-#: src/MateFun.hs:243 src/MateFunAndroid.hs:18
+#: src/MateFun.hs:252 src/MateFunAndroid.hs:18
 msgid "No File"
 msgstr "No File"
 
@@ -205,11 +205,11 @@ msgstr "No File"
 msgid "No domain intersection"
 msgstr "No domain intersection"
 
-#: src/MateFun.hs:143
+#: src/MateFun.hs:151
 msgid "OUTError reading command to interpretate."
 msgstr "OUTError reading command to interpretate."
 
-#: src/MateFun/ReservedNames.hs:98
+#: src/MateFun/ReservedNames.hs:100
 msgid "On definition of"
 msgstr "On definition of"
 
@@ -221,7 +221,7 @@ msgstr "On set definition"
 msgid "Out of range index."
 msgstr "Out of range index."
 
-#: src/MateFun.hs:50 src/MateFun.hs:97
+#: src/MateFun.hs:54 src/MateFun.hs:101
 msgid "PATH"
 msgstr "PATH"
 
@@ -229,7 +229,7 @@ msgstr "PATH"
 msgid "Please report this error with code"
 msgstr "Please report this error with code"
 
-#: src/MateFun.hs:353
+#: src/MateFun.hs:362
 msgid "Real"
 msgstr "Real"
 
@@ -237,15 +237,15 @@ msgstr "Real"
 msgid "Red"
 msgstr "Red"
 
-#: src/MateFun/ReservedNames.hs:102
+#: src/MateFun/ReservedNames.hs:104
 msgid "Set"
 msgstr "Set"
 
-#: src/MateFun.hs:51
+#: src/MateFun.hs:55
 msgid "Sets a path PATH where to find the program to evaluate"
 msgstr "Sets a path PATH where to find the program to evaluate"
 
-#: src/MateFun.hs:49
+#: src/MateFun.hs:53
 msgid "Sets the file FILE with the program to evaluate"
 msgstr "Sets the file FILE with the program to evaluate"
 
@@ -253,11 +253,11 @@ msgstr "Sets the file FILE with the program to evaluate"
 msgid "The element"
 msgstr "The element"
 
-#: src/MateFun/ReservedNames.hs:99
+#: src/MateFun/ReservedNames.hs:101
 msgid "The number of arguments does not match with domain of the function"
 msgstr "The number of arguments does not match with domain of the function"
 
-#: src/MateFun/ReservedNames.hs:107
+#: src/MateFun/ReservedNames.hs:109
 msgid "There is a chance that its value is out of the set."
 msgstr "There is a chance that its value is out of the set."
 
@@ -265,7 +265,7 @@ msgstr "There is a chance that its value is out of the set."
 msgid "Tuple length is not the expected"
 msgstr "Tuple length is not the expected"
 
-#: src/MateFun.hs:97
+#: src/MateFun.hs:101
 msgid "Usage"
 msgstr "Usage"
 
@@ -281,7 +281,7 @@ msgstr "Variable"
 msgid "Warning"
 msgstr "Warning"
 
-#: src/MateFun.hs:57
+#: src/MateFun.hs:61
 msgid "Web Mode"
 msgstr "Web Mode"
 
@@ -297,7 +297,7 @@ msgstr "Yellow"
 msgid "Zero division."
 msgstr "Zero division."
 
-#: src/MateFun/ReservedNames.hs:101
+#: src/MateFun/ReservedNames.hs:103
 msgid "against"
 msgstr "against"
 
@@ -309,7 +309,7 @@ msgstr "and"
 msgid "because the following condition is false"
 msgstr "because the following condition is false"
 
-#: src/MateFun.hs:281
+#: src/MateFun.hs:290
 msgid "but expected"
 msgstr "but expected"
 
@@ -321,15 +321,15 @@ msgstr "but found"
 msgid "capital"
 msgstr "capital letter"
 
-#: src/MateFun/ReservedNames.hs:33
+#: src/MateFun/ReservedNames.hs:35
 msgid "circ"
 msgstr "circ"
 
-#: src/MateFun/ReservedNames.hs:37
+#: src/MateFun/ReservedNames.hs:39
 msgid "color"
 msgstr "color"
 
-#: src/MateFun/ReservedNames.hs:50
+#: src/MateFun/ReservedNames.hs:52
 msgid "color3D"
 msgstr "color3D"
 
@@ -341,11 +341,11 @@ msgstr "column"
 msgid "cos"
 msgstr "cos"
 
-#: src/MateFun/ReservedNames.hs:47
+#: src/MateFun/ReservedNames.hs:49
 msgid "cube"
 msgstr "cube"
 
-#: src/MateFun/ReservedNames.hs:46
+#: src/MateFun/ReservedNames.hs:48
 msgid "cylinder"
 msgstr "cylinder"
 
@@ -361,7 +361,7 @@ msgstr "does not belong to any defined set."
 msgid "does not belong to set"
 msgstr "does not belong to set"
 
-#: src/MateFun/ReservedNames.hs:105
+#: src/MateFun/ReservedNames.hs:107
 msgid "duplicate elements"
 msgstr "duplicate elements"
 
@@ -369,7 +369,7 @@ msgstr "duplicate elements"
 msgid "evaluates true for multiple conditions on function"
 msgstr "evaluates true for multiple conditions on function"
 
-#: src/MateFun/ReservedNames.hs:68 src/MateFun/ReservedNames.hs:84
+#: src/MateFun/ReservedNames.hs:70 src/MateFun/ReservedNames.hs:86
 msgid "exit"
 msgstr "exit"
 
@@ -377,23 +377,23 @@ msgstr "exit"
 msgid "expression"
 msgstr "expression"
 
-#: src/MateFun.hs:175 src/MateFun/Parser.hs:279 src/MateFun/TypeCheck.hs:91
+#: src/MateFun.hs:184 src/MateFun/Parser.hs:279 src/MateFun/TypeCheck.hs:91
 msgid "file"
 msgstr "file"
 
-#: src/MateFun/ReservedNames.hs:57
+#: src/MateFun/ReservedNames.hs:59
 msgid "first"
 msgstr "first"
 
-#: src/MateFun/ReservedNames.hs:75
+#: src/MateFun/ReservedNames.hs:77
 msgid "fun"
 msgstr "fun"
 
-#: src/MateFun/ReservedNames.hs:72
+#: src/MateFun/ReservedNames.hs:74
 msgid "funs"
 msgstr "funs"
 
-#: src/MateFun/ReservedNames.hs:71
+#: src/MateFun/ReservedNames.hs:73
 msgid "help"
 msgstr "help"
 
@@ -405,15 +405,15 @@ msgstr "identifier"
 msgid "identifier letter"
 msgstr "identifier letter"
 
-#: src/MateFun/ReservedNames.hs:63
+#: src/MateFun/ReservedNames.hs:65
 msgid "if"
 msgstr "if"
 
-#: src/MateFun/Core.hs:147 src/MateFun/ReservedNames.hs:62
+#: src/MateFun/Core.hs:147 src/MateFun/ReservedNames.hs:64
 msgid "in"
 msgstr "in"
 
-#: src/MateFun/ReservedNames.hs:60
+#: src/MateFun/ReservedNames.hs:62
 msgid "include"
 msgstr "include"
 
@@ -421,7 +421,7 @@ msgstr "include"
 msgid "intersection between conditions"
 msgstr "intersection between conditions"
 
-#: src/MateFun/ReservedNames.hs:100
+#: src/MateFun/ReservedNames.hs:102
 msgid "is not defined."
 msgstr "is not defined."
 
@@ -429,15 +429,15 @@ msgstr "is not defined."
 msgid "is partial, not defined for empty sequences."
 msgstr "is partial, not defined for empty sequences."
 
-#: src/MateFun/ReservedNames.hs:59
+#: src/MateFun/ReservedNames.hs:61
 msgid "isEmpty"
 msgstr "isEmpty"
 
-#: src/MateFun/ReservedNames.hs:36
+#: src/MateFun/ReservedNames.hs:38
 msgid "join"
 msgstr "join"
 
-#: src/MateFun/ReservedNames.hs:49
+#: src/MateFun/ReservedNames.hs:51
 msgid "join3D"
 msgstr "join3D"
 
@@ -445,31 +445,31 @@ msgstr "join3D"
 msgid "line"
 msgstr "line"
 
-#: src/MateFun/ReservedNames.hs:34
+#: src/MateFun/ReservedNames.hs:36
 msgid "line2D"
 msgstr "segment"
 
-#: src/MateFun/ReservedNames.hs:44
+#: src/MateFun/ReservedNames.hs:46
 msgid "line3D"
 msgstr "segment3D"
 
-#: src/MateFun/ReservedNames.hs:87
+#: src/MateFun/ReservedNames.hs:89
 msgid "list functions"
 msgstr "list functions"
 
-#: src/MateFun/ReservedNames.hs:89
+#: src/MateFun/ReservedNames.hs:91
 msgid "list sets"
 msgstr "list sets"
 
-#: src/MateFun/ReservedNames.hs:88
+#: src/MateFun/ReservedNames.hs:90
 msgid "list variables and its values"
 msgstr "list variables and its values"
 
-#: src/MateFun/ReservedNames.hs:69
+#: src/MateFun/ReservedNames.hs:71
 msgid "load"
 msgstr "load"
 
-#: src/MateFun/ReservedNames.hs:85
+#: src/MateFun/ReservedNames.hs:87
 msgid "load a program"
 msgstr "load a program"
 
@@ -477,11 +477,11 @@ msgstr "load a program"
 msgid "lowercase"
 msgstr "lowercase"
 
-#: src/MateFun/ReservedNames.hs:38
+#: src/MateFun/ReservedNames.hs:40
 msgid "move"
 msgstr "move"
 
-#: src/MateFun/ReservedNames.hs:51
+#: src/MateFun/ReservedNames.hs:53
 msgid "move3D"
 msgstr "move3D"
 
@@ -489,63 +489,67 @@ msgstr "move3D"
 msgid "number"
 msgstr "number"
 
-#: src/MateFun/ReservedNames.hs:64
+#: src/MateFun/ReservedNames.hs:66
 msgid "or"
 msgstr "or"
 
-#: src/MateFun/ReservedNames.hs:78
+#: src/MateFun/ReservedNames.hs:30
+msgid "pi"
+msgstr "pi"
+
+#: src/MateFun/ReservedNames.hs:80
 msgid "plot"
 msgstr "plot"
 
-#: src/MateFun/ReservedNames.hs:93
+#: src/MateFun/ReservedNames.hs:95
 msgid "plot a function R -> R"
 msgstr "plot a function R -> R"
 
-#: src/MateFun/ReservedNames.hs:35
+#: src/MateFun/ReservedNames.hs:37
 msgid "poli"
 msgstr "poli"
 
-#: src/MateFun.hs:356
+#: src/MateFun.hs:365
 msgid "predefined"
 msgstr "predefined"
 
-#: src/MateFun/ReservedNames.hs:56
+#: src/MateFun/ReservedNames.hs:58
 msgid "range"
 msgstr "range"
 
-#: src/MateFun/ReservedNames.hs:32
+#: src/MateFun/ReservedNames.hs:34
 msgid "rect"
 msgstr "rect"
 
-#: src/MateFun/ReservedNames.hs:70
+#: src/MateFun/ReservedNames.hs:72
 msgid "reload"
 msgstr "reload"
 
-#: src/MateFun/ReservedNames.hs:86
+#: src/MateFun/ReservedNames.hs:88
 msgid "reload actual program"
 msgstr "reload actual program"
 
-#: src/MateFun/ReservedNames.hs:106
+#: src/MateFun/ReservedNames.hs:108
 msgid "required is a subset of resulting"
 msgstr "required is a subset of resulting"
 
-#: src/MateFun/ReservedNames.hs:58
+#: src/MateFun/ReservedNames.hs:60
 msgid "rest"
 msgstr "rest"
 
-#: src/MateFun/ReservedNames.hs:30
+#: src/MateFun/ReservedNames.hs:32
 msgid "rgb"
 msgstr "rgb"
 
-#: src/MateFun/ReservedNames.hs:48
+#: src/MateFun/ReservedNames.hs:50
 msgid "ring"
 msgstr "ring"
 
-#: src/MateFun/ReservedNames.hs:39
+#: src/MateFun/ReservedNames.hs:41
 msgid "rotate"
 msgstr "rotate"
 
-#: src/MateFun/ReservedNames.hs:52
+#: src/MateFun/ReservedNames.hs:54
 msgid "rotate3D"
 msgstr "rotate3D"
 
@@ -553,35 +557,35 @@ msgstr "rotate3D"
 msgid "round"
 msgstr "round"
 
-#: src/MateFun/ReservedNames.hs:40
+#: src/MateFun/ReservedNames.hs:42
 msgid "scale"
 msgstr "scale"
 
-#: src/MateFun/ReservedNames.hs:53
+#: src/MateFun/ReservedNames.hs:55
 msgid "scale3D"
 msgstr "scale3D"
 
-#: src/MateFun/ReservedNames.hs:61 src/MateFun/ReservedNames.hs:77
+#: src/MateFun/ReservedNames.hs:63 src/MateFun/ReservedNames.hs:79
 msgid "set"
 msgstr "set"
 
-#: src/MateFun/ReservedNames.hs:74
+#: src/MateFun/ReservedNames.hs:76
 msgid "sets"
 msgstr "sets"
 
-#: src/MateFun/ReservedNames.hs:91
+#: src/MateFun/ReservedNames.hs:93
 msgid "show a variable value"
 msgstr "show a variable value"
 
-#: src/MateFun/ReservedNames.hs:90
+#: src/MateFun/ReservedNames.hs:92
 msgid "show domain and codomain of a function"
 msgstr "show domain and codomain of a function"
 
-#: src/MateFun/ReservedNames.hs:92
+#: src/MateFun/ReservedNames.hs:94
 msgid "show set definition"
 msgstr "show set definition"
 
-#: src/MateFun/ReservedNames.hs:94
+#: src/MateFun/ReservedNames.hs:96
 msgid "show this help message"
 msgstr "show this help message"
 
@@ -589,31 +593,35 @@ msgstr "show this help message"
 msgid "sin"
 msgstr "sin"
 
-#: src/MateFun/ReservedNames.hs:45
+#: src/MateFun/ReservedNames.hs:47
 msgid "sphere"
 msgstr "sphere"
 
-#: src/MateFun/ReservedNames.hs:29
+#: src/MateFun/ReservedNames.hs:31
 msgid "squareroot"
 msgstr "squareroot"
 
-#: src/MateFun/ReservedNames.hs:42
+#: src/MateFun/ReservedNames.hs:29
+msgid "tan"
+msgstr "tan"
+
+#: src/MateFun/ReservedNames.hs:44
 msgid "toFig"
 msgstr "toFig"
 
-#: src/MateFun/ReservedNames.hs:76
+#: src/MateFun/ReservedNames.hs:78
 msgid "var"
 msgstr "var"
 
-#: src/MateFun/ReservedNames.hs:73
+#: src/MateFun/ReservedNames.hs:75
 msgid "vars"
 msgstr "vars"
 
-#: src/MateFun/ReservedNames.hs:97
+#: src/MateFun/ReservedNames.hs:99
 msgid "was defined more than once. Defined in:"
 msgstr "was defined more than once. Defined in:"
 
-#: src/MateFun/ReservedNames.hs:65
+#: src/MateFun/ReservedNames.hs:67
 msgid "where"
 msgstr "where"
 
diff --git a/Servidor JEE/src/main/java/edu/proygrado/binarios/internationalization/en/LC_MESSAGES/mate-fun.mo b/Servidor JEE/src/main/java/edu/proygrado/binarios/internationalization/en/LC_MESSAGES/mate-fun.mo
index 3589f9d7eb4ef52ed353a1091aa4692be08443b2..831188d3b124d9009101aabc63862d134d6e2ebd 100644
Binary files a/Servidor JEE/src/main/java/edu/proygrado/binarios/internationalization/en/LC_MESSAGES/mate-fun.mo and b/Servidor JEE/src/main/java/edu/proygrado/binarios/internationalization/en/LC_MESSAGES/mate-fun.mo differ
diff --git a/Servidor JEE/src/main/java/edu/proygrado/binarios/internationalization/es.po b/Servidor JEE/src/main/java/edu/proygrado/binarios/internationalization/es.po
index d1b45e8dfcc75059f34976aaa674f67ae95f616c..4a414c32a36f208e31f1b8f23e3a652e8e9a7d56 100644
--- a/Servidor JEE/src/main/java/edu/proygrado/binarios/internationalization/es.po	
+++ b/Servidor JEE/src/main/java/edu/proygrado/binarios/internationalization/es.po	
@@ -17,23 +17,23 @@ msgstr ""
 msgid "3D Figure"
 msgstr "Figura 3D"
 
-#: src/MateFun.hs:355
+#: src/MateFun.hs:364
 msgid "3D Figures"
 msgstr "Figuras 3D"
 
-#: src/MateFun/ReservedNames.hs:80
+#: src/MateFun/ReservedNames.hs:82
 msgid "<function>"
 msgstr "<funcion>"
 
-#: src/MateFun/ReservedNames.hs:79
+#: src/MateFun/ReservedNames.hs:81
 msgid "<program>"
 msgstr "<programa>"
 
-#: src/MateFun/ReservedNames.hs:82
+#: src/MateFun/ReservedNames.hs:84
 msgid "<set>"
 msgstr "<conjunto>"
 
-#: src/MateFun/ReservedNames.hs:81
+#: src/MateFun/ReservedNames.hs:83
 msgid "<variable>"
 msgstr "<variable>"
 
@@ -61,7 +61,7 @@ msgstr "Azul"
 msgid "Brain exploded!"
 msgstr "Eeemm ... emmmm ... me rompiste la cabeza!"
 
-#: src/MateFun.hs:128 src/MateFun.hs:145
+#: src/MateFun.hs:133 src/MateFun.hs:153
 msgid "Bye!!"
 msgstr "Chau!!"
 
@@ -73,7 +73,7 @@ msgstr "Inclusion Circular"
 msgid "Color"
 msgstr "Color"
 
-#: src/MateFun.hs:356
+#: src/MateFun.hs:365
 msgid "Colors"
 msgstr "Colors"
 
@@ -85,7 +85,7 @@ msgstr "No se puede abrir el archivo"
 msgid "Division is a partial function, not defined in 0."
 msgstr "La division es una funcion parcial, no esta definida para 0."
 
-#: src/MateFun/ReservedNames.hs:104
+#: src/MateFun/ReservedNames.hs:106
 msgid "Does not exist"
 msgstr "No existe"
 
@@ -105,20 +105,20 @@ msgstr "FigVacia"
 msgid "EmptyFig3D"
 msgstr "FigVacia3D"
 
-#: src/MateFun.hs:55
+#: src/MateFun.hs:59
 msgid "Enables arithmetic function usage warnings"
 msgstr "Habilita las advertencias de uso de funciones aritmeticas"
 
-#: src/MateFun.hs:59
+#: src/MateFun.hs:63
 msgid "Enables domain intersection check on functions to load"
 msgstr ""
 "Habilita chequeo de interseccion de dominios en las funciones a ser cargadas"
 
-#: src/MateFun.hs:53
+#: src/MateFun.hs:57
 msgid "Enables function usage warnings"
 msgstr "Habilita las advertencias de uso de funciones"
 
-#: src/MateFun.hs:61
+#: src/MateFun.hs:65
 msgid "Enables verbose mode"
 msgstr "Habilita modo verboso"
 
@@ -126,7 +126,7 @@ msgstr "Habilita modo verboso"
 msgid "Error"
 msgstr "Error"
 
-#: src/MateFun.hs:126
+#: src/MateFun.hs:131
 msgid "Error reading command to interpretate."
 msgstr "Error al leer el comando a interpretar."
 
@@ -142,7 +142,7 @@ msgstr "Se esperan elementos de"
 msgid "Exponent is a partial function, not defined for negative numbers."
 msgstr "La division es una funcion parcial, no esta definida para 0."
 
-#: src/MateFun.hs:48 src/MateFun.hs:97
+#: src/MateFun.hs:52 src/MateFun.hs:101
 msgid "FILE"
 msgstr "ARCHIVO"
 
@@ -150,19 +150,19 @@ msgstr "ARCHIVO"
 msgid "Figure"
 msgstr "Figura"
 
-#: src/MateFun.hs:354
+#: src/MateFun.hs:363
 msgid "Figures"
 msgstr "Figuras"
 
-#: src/MateFun.hs:300 src/MateFun.hs:301
+#: src/MateFun.hs:309 src/MateFun.hs:310
 msgid "Found"
 msgstr "Se encontro"
 
-#: src/MateFun/ReservedNames.hs:103
+#: src/MateFun/ReservedNames.hs:105
 msgid "Function"
 msgstr "Funcion"
 
-#: src/MateFun.hs:369
+#: src/MateFun.hs:378
 msgid "Graph"
 msgstr "Grafica"
 
@@ -174,7 +174,7 @@ msgstr "Gris"
 msgid "Green"
 msgstr "Verde"
 
-#: src/MateFun.hs:352
+#: src/MateFun.hs:361
 msgid "Integer"
 msgstr "Enteros"
 
@@ -182,7 +182,7 @@ msgstr "Enteros"
 msgid "Interpreter"
 msgstr "Interprete"
 
-#: src/MateFun.hs:336
+#: src/MateFun.hs:345
 msgid "Interpreter Commands:"
 msgstr "Comandos del Interprete"
 
@@ -190,7 +190,7 @@ msgstr "Comandos del Interprete"
 msgid "Invalid index."
 msgstr "Indice invalido."
 
-#: src/MateFun.hs:174
+#: src/MateFun.hs:183
 msgid "Loading"
 msgstr "Cargando"
 
@@ -198,7 +198,7 @@ msgstr "Cargando"
 msgid "Negative exponent."
 msgstr "Exponente negativo."
 
-#: src/MateFun.hs:243 src/MateFunAndroid.hs:18
+#: src/MateFun.hs:252 src/MateFunAndroid.hs:18
 msgid "No File"
 msgstr "Sin Archivo"
 
@@ -206,11 +206,11 @@ msgstr "Sin Archivo"
 msgid "No domain intersection"
 msgstr "No hay interseccion de dominios"
 
-#: src/MateFun.hs:143
+#: src/MateFun.hs:151
 msgid "OUTError reading command to interpretate."
 msgstr "OUTError al leer el comando a interpretar"
 
-#: src/MateFun/ReservedNames.hs:98
+#: src/MateFun/ReservedNames.hs:100
 msgid "On definition of"
 msgstr "En la definicion de"
 
@@ -222,7 +222,7 @@ msgstr "En la definicion del conjunto"
 msgid "Out of range index."
 msgstr "Indice fuera de rango."
 
-#: src/MateFun.hs:50 src/MateFun.hs:97
+#: src/MateFun.hs:54 src/MateFun.hs:101
 msgid "PATH"
 msgstr "RUTA"
 
@@ -230,7 +230,7 @@ msgstr "RUTA"
 msgid "Please report this error with code"
 msgstr "Por favor avisar de este error con codigo"
 
-#: src/MateFun.hs:353
+#: src/MateFun.hs:362
 msgid "Real"
 msgstr "Reales"
 
@@ -238,15 +238,15 @@ msgstr "Reales"
 msgid "Red"
 msgstr "Rojo"
 
-#: src/MateFun/ReservedNames.hs:102
+#: src/MateFun/ReservedNames.hs:104
 msgid "Set"
 msgstr "Conjunto"
 
-#: src/MateFun.hs:51
+#: src/MateFun.hs:55
 msgid "Sets a path PATH where to find the program to evaluate"
 msgstr "Determina una ruta donde encontrar el programa a evaluar"
 
-#: src/MateFun.hs:49
+#: src/MateFun.hs:53
 msgid "Sets the file FILE with the program to evaluate"
 msgstr "Determina el archivo ARCHIVO con el programa a evaluar"
 
@@ -254,11 +254,11 @@ msgstr "Determina el archivo ARCHIVO con el programa a evaluar"
 msgid "The element"
 msgstr "El elemento"
 
-#: src/MateFun/ReservedNames.hs:99
+#: src/MateFun/ReservedNames.hs:101
 msgid "The number of arguments does not match with domain of the function"
 msgstr "El numero de argumentos no coincide con el dominio de la funcion"
 
-#: src/MateFun/ReservedNames.hs:107
+#: src/MateFun/ReservedNames.hs:109
 msgid "There is a chance that its value is out of the set."
 msgstr ""
 "Por lo que existe la posibilidad de que su valor quede fuera del conjunto."
@@ -267,7 +267,7 @@ msgstr ""
 msgid "Tuple length is not the expected"
 msgstr "El largo de la tupla es distinto al esperado"
 
-#: src/MateFun.hs:97
+#: src/MateFun.hs:101
 msgid "Usage"
 msgstr "Uso"
 
@@ -283,7 +283,7 @@ msgstr "Variable"
 msgid "Warning"
 msgstr "Advertencia"
 
-#: src/MateFun.hs:57
+#: src/MateFun.hs:61
 msgid "Web Mode"
 msgstr "Modo Web"
 
@@ -299,7 +299,7 @@ msgstr "Amarillo"
 msgid "Zero division."
 msgstr "Division por 0"
 
-#: src/MateFun/ReservedNames.hs:101
+#: src/MateFun/ReservedNames.hs:103
 msgid "against"
 msgstr "contra"
 
@@ -311,7 +311,7 @@ msgstr "y"
 msgid "because the following condition is false"
 msgstr "porque no se cumple"
 
-#: src/MateFun.hs:281
+#: src/MateFun.hs:290
 msgid "but expected"
 msgstr "pero se esperaba"
 
@@ -323,15 +323,15 @@ msgstr "pero se encontro"
 msgid "capital"
 msgstr "mayuscula"
 
-#: src/MateFun/ReservedNames.hs:33
+#: src/MateFun/ReservedNames.hs:35
 msgid "circ"
 msgstr "circ"
 
-#: src/MateFun/ReservedNames.hs:37
+#: src/MateFun/ReservedNames.hs:39
 msgid "color"
 msgstr "color"
 
-#: src/MateFun/ReservedNames.hs:50
+#: src/MateFun/ReservedNames.hs:52
 msgid "color3D"
 msgstr "color3D"
 
@@ -343,11 +343,11 @@ msgstr "columna"
 msgid "cos"
 msgstr "cos"
 
-#: src/MateFun/ReservedNames.hs:47
+#: src/MateFun/ReservedNames.hs:49
 msgid "cube"
 msgstr "cubo"
 
-#: src/MateFun/ReservedNames.hs:46
+#: src/MateFun/ReservedNames.hs:48
 msgid "cylinder"
 msgstr "cilindro"
 
@@ -363,7 +363,7 @@ msgstr "no pertenece a ningun conjunto definido."
 msgid "does not belong to set"
 msgstr "no pertenece al conjunto"
 
-#: src/MateFun/ReservedNames.hs:105
+#: src/MateFun/ReservedNames.hs:107
 msgid "duplicate elements"
 msgstr "elementos duplicados"
 
@@ -371,7 +371,7 @@ msgstr "elementos duplicados"
 msgid "evaluates true for multiple conditions on function"
 msgstr "evalua en VERDADERO para multiples condiciones en la funcion"
 
-#: src/MateFun/ReservedNames.hs:68 src/MateFun/ReservedNames.hs:84
+#: src/MateFun/ReservedNames.hs:70 src/MateFun/ReservedNames.hs:86
 msgid "exit"
 msgstr "salir"
 
@@ -379,23 +379,23 @@ msgstr "salir"
 msgid "expression"
 msgstr "expresion"
 
-#: src/MateFun.hs:175 src/MateFun/Parser.hs:279 src/MateFun/TypeCheck.hs:91
+#: src/MateFun.hs:184 src/MateFun/Parser.hs:279 src/MateFun/TypeCheck.hs:91
 msgid "file"
 msgstr "archivo"
 
-#: src/MateFun/ReservedNames.hs:57
+#: src/MateFun/ReservedNames.hs:59
 msgid "first"
 msgstr "primero"
 
-#: src/MateFun/ReservedNames.hs:75
+#: src/MateFun/ReservedNames.hs:77
 msgid "fun"
 msgstr "fun"
 
-#: src/MateFun/ReservedNames.hs:72
+#: src/MateFun/ReservedNames.hs:74
 msgid "funs"
 msgstr "funs"
 
-#: src/MateFun/ReservedNames.hs:71
+#: src/MateFun/ReservedNames.hs:73
 msgid "help"
 msgstr "ayuda"
 
@@ -407,15 +407,15 @@ msgstr "identificador"
 msgid "identifier letter"
 msgstr "letra de identificador"
 
-#: src/MateFun/ReservedNames.hs:63
+#: src/MateFun/ReservedNames.hs:65
 msgid "if"
 msgstr "si"
 
-#: src/MateFun/Core.hs:147 src/MateFun/ReservedNames.hs:62
+#: src/MateFun/Core.hs:147 src/MateFun/ReservedNames.hs:64
 msgid "in"
 msgstr "en"
 
-#: src/MateFun/ReservedNames.hs:60
+#: src/MateFun/ReservedNames.hs:62
 msgid "include"
 msgstr "incluir"
 
@@ -423,7 +423,7 @@ msgstr "incluir"
 msgid "intersection between conditions"
 msgstr "interseccion entre las condiciones"
 
-#: src/MateFun/ReservedNames.hs:100
+#: src/MateFun/ReservedNames.hs:102
 msgid "is not defined."
 msgstr "no esta definido."
 
@@ -431,15 +431,15 @@ msgstr "no esta definido."
 msgid "is partial, not defined for empty sequences."
 msgstr "es parcial, no esta definida para secuencias vacias."
 
-#: src/MateFun/ReservedNames.hs:59
+#: src/MateFun/ReservedNames.hs:61
 msgid "isEmpty"
 msgstr "esVacia"
 
-#: src/MateFun/ReservedNames.hs:36
+#: src/MateFun/ReservedNames.hs:38
 msgid "join"
 msgstr "juntar"
 
-#: src/MateFun/ReservedNames.hs:49
+#: src/MateFun/ReservedNames.hs:51
 msgid "join3D"
 msgstr "juntar3D"
 
@@ -447,31 +447,31 @@ msgstr "juntar3D"
 msgid "line"
 msgstr "linea"
 
-#: src/MateFun/ReservedNames.hs:34
+#: src/MateFun/ReservedNames.hs:36
 msgid "line2D"
 msgstr "segmento"
 
-#: src/MateFun/ReservedNames.hs:44
+#: src/MateFun/ReservedNames.hs:46
 msgid "line3D"
 msgstr "segmento3D"
 
-#: src/MateFun/ReservedNames.hs:87
+#: src/MateFun/ReservedNames.hs:89
 msgid "list functions"
 msgstr "lista las funciones"
 
-#: src/MateFun/ReservedNames.hs:89
+#: src/MateFun/ReservedNames.hs:91
 msgid "list sets"
 msgstr "lista los conjuntos"
 
-#: src/MateFun/ReservedNames.hs:88
+#: src/MateFun/ReservedNames.hs:90
 msgid "list variables and its values"
 msgstr "lista las variables y sus valores"
 
-#: src/MateFun/ReservedNames.hs:69
+#: src/MateFun/ReservedNames.hs:71
 msgid "load"
 msgstr "cargar"
 
-#: src/MateFun/ReservedNames.hs:85
+#: src/MateFun/ReservedNames.hs:87
 msgid "load a program"
 msgstr "cargar un programa"
 
@@ -479,11 +479,11 @@ msgstr "cargar un programa"
 msgid "lowercase"
 msgstr "minuscula"
 
-#: src/MateFun/ReservedNames.hs:38
+#: src/MateFun/ReservedNames.hs:40
 msgid "move"
 msgstr "mover"
 
-#: src/MateFun/ReservedNames.hs:51
+#: src/MateFun/ReservedNames.hs:53
 msgid "move3D"
 msgstr "mover3D"
 
@@ -491,63 +491,67 @@ msgstr "mover3D"
 msgid "number"
 msgstr "numero"
 
-#: src/MateFun/ReservedNames.hs:64
+#: src/MateFun/ReservedNames.hs:66
 msgid "or"
 msgstr "o"
 
-#: src/MateFun/ReservedNames.hs:78
+#: src/MateFun/ReservedNames.hs:30
+msgid "pi"
+msgstr "pi"
+
+#: src/MateFun/ReservedNames.hs:80
 msgid "plot"
 msgstr "grafica"
 
-#: src/MateFun/ReservedNames.hs:93
+#: src/MateFun/ReservedNames.hs:95
 msgid "plot a function R -> R"
 msgstr "grafica una funcion de R -> R"
 
-#: src/MateFun/ReservedNames.hs:35
+#: src/MateFun/ReservedNames.hs:37
 msgid "poli"
 msgstr "poli"
 
-#: src/MateFun.hs:356
+#: src/MateFun.hs:365
 msgid "predefined"
 msgstr "predefinidos"
 
-#: src/MateFun/ReservedNames.hs:56
+#: src/MateFun/ReservedNames.hs:58
 msgid "range"
 msgstr "rango"
 
-#: src/MateFun/ReservedNames.hs:32
+#: src/MateFun/ReservedNames.hs:34
 msgid "rect"
 msgstr "rect"
 
-#: src/MateFun/ReservedNames.hs:70
+#: src/MateFun/ReservedNames.hs:72
 msgid "reload"
 msgstr "recargar"
 
-#: src/MateFun/ReservedNames.hs:86
+#: src/MateFun/ReservedNames.hs:88
 msgid "reload actual program"
 msgstr "volver a cargar el programa actual"
 
-#: src/MateFun/ReservedNames.hs:106
+#: src/MateFun/ReservedNames.hs:108
 msgid "required is a subset of resulting"
 msgstr "requerido es subconjunto del resultante"
 
-#: src/MateFun/ReservedNames.hs:58
+#: src/MateFun/ReservedNames.hs:60
 msgid "rest"
 msgstr "resto"
 
-#: src/MateFun/ReservedNames.hs:30
+#: src/MateFun/ReservedNames.hs:32
 msgid "rgb"
 msgstr "rgb"
 
-#: src/MateFun/ReservedNames.hs:48
+#: src/MateFun/ReservedNames.hs:50
 msgid "ring"
 msgstr "anillo"
 
-#: src/MateFun/ReservedNames.hs:39
+#: src/MateFun/ReservedNames.hs:41
 msgid "rotate"
 msgstr "rotar"
 
-#: src/MateFun/ReservedNames.hs:52
+#: src/MateFun/ReservedNames.hs:54
 msgid "rotate3D"
 msgstr "rotar3D"
 
@@ -555,35 +559,35 @@ msgstr "rotar3D"
 msgid "round"
 msgstr "red"
 
-#: src/MateFun/ReservedNames.hs:40
+#: src/MateFun/ReservedNames.hs:42
 msgid "scale"
 msgstr "escalar"
 
-#: src/MateFun/ReservedNames.hs:53
+#: src/MateFun/ReservedNames.hs:55
 msgid "scale3D"
 msgstr "escalar3D"
 
-#: src/MateFun/ReservedNames.hs:61 src/MateFun/ReservedNames.hs:77
+#: src/MateFun/ReservedNames.hs:63 src/MateFun/ReservedNames.hs:79
 msgid "set"
 msgstr "conj"
 
-#: src/MateFun/ReservedNames.hs:74
+#: src/MateFun/ReservedNames.hs:76
 msgid "sets"
 msgstr "conjs"
 
-#: src/MateFun/ReservedNames.hs:91
+#: src/MateFun/ReservedNames.hs:93
 msgid "show a variable value"
 msgstr "despliega el valor de una variable"
 
-#: src/MateFun/ReservedNames.hs:90
+#: src/MateFun/ReservedNames.hs:92
 msgid "show domain and codomain of a function"
 msgstr "despliega el dominio y codominio de una funcion"
 
-#: src/MateFun/ReservedNames.hs:92
+#: src/MateFun/ReservedNames.hs:94
 msgid "show set definition"
 msgstr "despliega la definicion del conjunto"
 
-#: src/MateFun/ReservedNames.hs:94
+#: src/MateFun/ReservedNames.hs:96
 msgid "show this help message"
 msgstr "despliega este mensaje de ayuda"
 
@@ -591,31 +595,35 @@ msgstr "despliega este mensaje de ayuda"
 msgid "sin"
 msgstr "sen"
 
-#: src/MateFun/ReservedNames.hs:45
+#: src/MateFun/ReservedNames.hs:47
 msgid "sphere"
 msgstr "esfera"
 
-#: src/MateFun/ReservedNames.hs:29
+#: src/MateFun/ReservedNames.hs:31
 msgid "squareroot"
 msgstr "raizcuad"
 
-#: src/MateFun/ReservedNames.hs:42
+#: src/MateFun/ReservedNames.hs:29
+msgid "tan"
+msgstr "tan"
+
+#: src/MateFun/ReservedNames.hs:44
 msgid "toFig"
 msgstr "aFig"
 
-#: src/MateFun/ReservedNames.hs:76
+#: src/MateFun/ReservedNames.hs:78
 msgid "var"
 msgstr "var"
 
-#: src/MateFun/ReservedNames.hs:73
+#: src/MateFun/ReservedNames.hs:75
 msgid "vars"
 msgstr "vars"
 
-#: src/MateFun/ReservedNames.hs:97
+#: src/MateFun/ReservedNames.hs:99
 msgid "was defined more than once. Defined in:"
 msgstr "se definio mas de una vez. Definida en"
 
-#: src/MateFun/ReservedNames.hs:65
+#: src/MateFun/ReservedNames.hs:67
 msgid "where"
 msgstr "donde"
 
diff --git a/Servidor JEE/src/main/java/edu/proygrado/binarios/internationalization/es/LC_MESSAGES/mate-fun.mo b/Servidor JEE/src/main/java/edu/proygrado/binarios/internationalization/es/LC_MESSAGES/mate-fun.mo
index de611a8676a10621eecce400545b48e8f563bc90..9ce2d08e52d339d4468d439a797d45bf008fd73a 100644
Binary files a/Servidor JEE/src/main/java/edu/proygrado/binarios/internationalization/es/LC_MESSAGES/mate-fun.mo and b/Servidor JEE/src/main/java/edu/proygrado/binarios/internationalization/es/LC_MESSAGES/mate-fun.mo differ
diff --git a/Servidor JEE/src/main/java/edu/proygrado/binarios/internationalization/messages.pot b/Servidor JEE/src/main/java/edu/proygrado/binarios/internationalization/messages.pot
index 864146eee3b10fb2eb073a4045afbd84e7128c88..bef7e90cff54a61c9e61ce64e0d9e9abc615bb34 100644
--- a/Servidor JEE/src/main/java/edu/proygrado/binarios/internationalization/messages.pot	
+++ b/Servidor JEE/src/main/java/edu/proygrado/binarios/internationalization/messages.pot	
@@ -17,23 +17,23 @@ msgstr ""
 msgid "3D Figure"
 msgstr ""
 
-#: src/MateFun.hs:355
+#: src/MateFun.hs:364
 msgid "3D Figures"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:80
+#: src/MateFun/ReservedNames.hs:82
 msgid "<function>"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:79
+#: src/MateFun/ReservedNames.hs:81
 msgid "<program>"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:82
+#: src/MateFun/ReservedNames.hs:84
 msgid "<set>"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:81
+#: src/MateFun/ReservedNames.hs:83
 msgid "<variable>"
 msgstr ""
 
@@ -61,8 +61,8 @@ msgstr ""
 msgid "Brain exploded!"
 msgstr ""
 
-#: src/MateFun.hs:128
-#: src/MateFun.hs:145
+#: src/MateFun.hs:133
+#: src/MateFun.hs:153
 msgid "Bye!!"
 msgstr ""
 
@@ -74,7 +74,7 @@ msgstr ""
 msgid "Color"
 msgstr ""
 
-#: src/MateFun.hs:356
+#: src/MateFun.hs:365
 msgid "Colors"
 msgstr ""
 
@@ -86,7 +86,7 @@ msgstr ""
 msgid "Division is a partial function, not defined in 0."
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:104
+#: src/MateFun/ReservedNames.hs:106
 msgid "Does not exist"
 msgstr ""
 
@@ -106,19 +106,19 @@ msgstr ""
 msgid "EmptyFig3D"
 msgstr ""
 
-#: src/MateFun.hs:55
+#: src/MateFun.hs:59
 msgid "Enables arithmetic function usage warnings"
 msgstr ""
 
-#: src/MateFun.hs:59
+#: src/MateFun.hs:63
 msgid "Enables domain intersection check on functions to load"
 msgstr ""
 
-#: src/MateFun.hs:53
+#: src/MateFun.hs:57
 msgid "Enables function usage warnings"
 msgstr ""
 
-#: src/MateFun.hs:61
+#: src/MateFun.hs:65
 msgid "Enables verbose mode"
 msgstr ""
 
@@ -126,7 +126,7 @@ msgstr ""
 msgid "Error"
 msgstr ""
 
-#: src/MateFun.hs:126
+#: src/MateFun.hs:131
 msgid "Error reading command to interpretate."
 msgstr ""
 
@@ -142,8 +142,8 @@ msgstr ""
 msgid "Exponent is a partial function, not defined for negative numbers."
 msgstr ""
 
-#: src/MateFun.hs:48
-#: src/MateFun.hs:97
+#: src/MateFun.hs:52
+#: src/MateFun.hs:101
 msgid "FILE"
 msgstr ""
 
@@ -151,20 +151,20 @@ msgstr ""
 msgid "Figure"
 msgstr ""
 
-#: src/MateFun.hs:354
+#: src/MateFun.hs:363
 msgid "Figures"
 msgstr ""
 
-#: src/MateFun.hs:300
-#: src/MateFun.hs:301
+#: src/MateFun.hs:309
+#: src/MateFun.hs:310
 msgid "Found"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:103
+#: src/MateFun/ReservedNames.hs:105
 msgid "Function"
 msgstr ""
 
-#: src/MateFun.hs:369
+#: src/MateFun.hs:378
 msgid "Graph"
 msgstr ""
 
@@ -176,7 +176,7 @@ msgstr ""
 msgid "Green"
 msgstr ""
 
-#: src/MateFun.hs:352
+#: src/MateFun.hs:361
 msgid "Integer"
 msgstr ""
 
@@ -184,7 +184,7 @@ msgstr ""
 msgid "Interpreter"
 msgstr ""
 
-#: src/MateFun.hs:336
+#: src/MateFun.hs:345
 msgid "Interpreter Commands:"
 msgstr ""
 
@@ -192,7 +192,7 @@ msgstr ""
 msgid "Invalid index."
 msgstr ""
 
-#: src/MateFun.hs:174
+#: src/MateFun.hs:183
 msgid "Loading"
 msgstr ""
 
@@ -200,7 +200,7 @@ msgstr ""
 msgid "Negative exponent."
 msgstr ""
 
-#: src/MateFun.hs:243
+#: src/MateFun.hs:252
 #: src/MateFunAndroid.hs:18
 msgid "No File"
 msgstr ""
@@ -209,11 +209,11 @@ msgstr ""
 msgid "No domain intersection"
 msgstr ""
 
-#: src/MateFun.hs:143
+#: src/MateFun.hs:151
 msgid "OUTError reading command to interpretate."
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:98
+#: src/MateFun/ReservedNames.hs:100
 msgid "On definition of"
 msgstr ""
 
@@ -225,8 +225,8 @@ msgstr ""
 msgid "Out of range index."
 msgstr ""
 
-#: src/MateFun.hs:50
-#: src/MateFun.hs:97
+#: src/MateFun.hs:54
+#: src/MateFun.hs:101
 msgid "PATH"
 msgstr ""
 
@@ -234,7 +234,7 @@ msgstr ""
 msgid "Please report this error with code"
 msgstr ""
 
-#: src/MateFun.hs:353
+#: src/MateFun.hs:362
 msgid "Real"
 msgstr ""
 
@@ -242,15 +242,15 @@ msgstr ""
 msgid "Red"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:102
+#: src/MateFun/ReservedNames.hs:104
 msgid "Set"
 msgstr ""
 
-#: src/MateFun.hs:51
+#: src/MateFun.hs:55
 msgid "Sets a path PATH where to find the program to evaluate"
 msgstr ""
 
-#: src/MateFun.hs:49
+#: src/MateFun.hs:53
 msgid "Sets the file FILE with the program to evaluate"
 msgstr ""
 
@@ -258,11 +258,11 @@ msgstr ""
 msgid "The element"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:99
+#: src/MateFun/ReservedNames.hs:101
 msgid "The number of arguments does not match with domain of the function"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:107
+#: src/MateFun/ReservedNames.hs:109
 msgid "There is a chance that its value is out of the set."
 msgstr ""
 
@@ -270,7 +270,7 @@ msgstr ""
 msgid "Tuple length is not the expected"
 msgstr ""
 
-#: src/MateFun.hs:97
+#: src/MateFun.hs:101
 msgid "Usage"
 msgstr ""
 
@@ -286,7 +286,7 @@ msgstr ""
 msgid "Warning"
 msgstr ""
 
-#: src/MateFun.hs:57
+#: src/MateFun.hs:61
 msgid "Web Mode"
 msgstr ""
 
@@ -302,7 +302,7 @@ msgstr ""
 msgid "Zero division."
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:101
+#: src/MateFun/ReservedNames.hs:103
 msgid "against"
 msgstr ""
 
@@ -314,7 +314,7 @@ msgstr ""
 msgid "because the following condition is false"
 msgstr ""
 
-#: src/MateFun.hs:281
+#: src/MateFun.hs:290
 msgid "but expected"
 msgstr ""
 
@@ -326,15 +326,15 @@ msgstr ""
 msgid "capital"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:33
+#: src/MateFun/ReservedNames.hs:35
 msgid "circ"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:37
+#: src/MateFun/ReservedNames.hs:39
 msgid "color"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:50
+#: src/MateFun/ReservedNames.hs:52
 msgid "color3D"
 msgstr ""
 
@@ -346,11 +346,11 @@ msgstr ""
 msgid "cos"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:47
+#: src/MateFun/ReservedNames.hs:49
 msgid "cube"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:46
+#: src/MateFun/ReservedNames.hs:48
 msgid "cylinder"
 msgstr ""
 
@@ -366,7 +366,7 @@ msgstr ""
 msgid "does not belong to set"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:105
+#: src/MateFun/ReservedNames.hs:107
 msgid "duplicate elements"
 msgstr ""
 
@@ -374,8 +374,8 @@ msgstr ""
 msgid "evaluates true for multiple conditions on function"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:68
-#: src/MateFun/ReservedNames.hs:84
+#: src/MateFun/ReservedNames.hs:70
+#: src/MateFun/ReservedNames.hs:86
 msgid "exit"
 msgstr ""
 
@@ -383,25 +383,25 @@ msgstr ""
 msgid "expression"
 msgstr ""
 
-#: src/MateFun.hs:175
+#: src/MateFun.hs:184
 #: src/MateFun/Parser.hs:279
 #: src/MateFun/TypeCheck.hs:91
 msgid "file"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:57
+#: src/MateFun/ReservedNames.hs:59
 msgid "first"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:75
+#: src/MateFun/ReservedNames.hs:77
 msgid "fun"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:72
+#: src/MateFun/ReservedNames.hs:74
 msgid "funs"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:71
+#: src/MateFun/ReservedNames.hs:73
 msgid "help"
 msgstr ""
 
@@ -413,16 +413,16 @@ msgstr ""
 msgid "identifier letter"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:63
+#: src/MateFun/ReservedNames.hs:65
 msgid "if"
 msgstr ""
 
 #: src/MateFun/Core.hs:147
-#: src/MateFun/ReservedNames.hs:62
+#: src/MateFun/ReservedNames.hs:64
 msgid "in"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:60
+#: src/MateFun/ReservedNames.hs:62
 msgid "include"
 msgstr ""
 
@@ -430,7 +430,7 @@ msgstr ""
 msgid "intersection between conditions"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:100
+#: src/MateFun/ReservedNames.hs:102
 msgid "is not defined."
 msgstr ""
 
@@ -438,15 +438,15 @@ msgstr ""
 msgid "is partial, not defined for empty sequences."
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:59
+#: src/MateFun/ReservedNames.hs:61
 msgid "isEmpty"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:36
+#: src/MateFun/ReservedNames.hs:38
 msgid "join"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:49
+#: src/MateFun/ReservedNames.hs:51
 msgid "join3D"
 msgstr ""
 
@@ -454,31 +454,31 @@ msgstr ""
 msgid "line"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:34
+#: src/MateFun/ReservedNames.hs:36
 msgid "line2D"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:44
+#: src/MateFun/ReservedNames.hs:46
 msgid "line3D"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:87
+#: src/MateFun/ReservedNames.hs:89
 msgid "list functions"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:89
+#: src/MateFun/ReservedNames.hs:91
 msgid "list sets"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:88
+#: src/MateFun/ReservedNames.hs:90
 msgid "list variables and its values"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:69
+#: src/MateFun/ReservedNames.hs:71
 msgid "load"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:85
+#: src/MateFun/ReservedNames.hs:87
 msgid "load a program"
 msgstr ""
 
@@ -486,11 +486,11 @@ msgstr ""
 msgid "lowercase"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:38
+#: src/MateFun/ReservedNames.hs:40
 msgid "move"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:51
+#: src/MateFun/ReservedNames.hs:53
 msgid "move3D"
 msgstr ""
 
@@ -498,63 +498,67 @@ msgstr ""
 msgid "number"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:64
+#: src/MateFun/ReservedNames.hs:66
 msgid "or"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:78
+#: src/MateFun/ReservedNames.hs:30
+msgid "pi"
+msgstr ""
+
+#: src/MateFun/ReservedNames.hs:80
 msgid "plot"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:93
+#: src/MateFun/ReservedNames.hs:95
 msgid "plot a function R -> R"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:35
+#: src/MateFun/ReservedNames.hs:37
 msgid "poli"
 msgstr ""
 
-#: src/MateFun.hs:356
+#: src/MateFun.hs:365
 msgid "predefined"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:56
+#: src/MateFun/ReservedNames.hs:58
 msgid "range"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:32
+#: src/MateFun/ReservedNames.hs:34
 msgid "rect"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:70
+#: src/MateFun/ReservedNames.hs:72
 msgid "reload"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:86
+#: src/MateFun/ReservedNames.hs:88
 msgid "reload actual program"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:106
+#: src/MateFun/ReservedNames.hs:108
 msgid "required is a subset of resulting"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:58
+#: src/MateFun/ReservedNames.hs:60
 msgid "rest"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:30
+#: src/MateFun/ReservedNames.hs:32
 msgid "rgb"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:48
+#: src/MateFun/ReservedNames.hs:50
 msgid "ring"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:39
+#: src/MateFun/ReservedNames.hs:41
 msgid "rotate"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:52
+#: src/MateFun/ReservedNames.hs:54
 msgid "rotate3D"
 msgstr ""
 
@@ -562,36 +566,36 @@ msgstr ""
 msgid "round"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:40
+#: src/MateFun/ReservedNames.hs:42
 msgid "scale"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:53
+#: src/MateFun/ReservedNames.hs:55
 msgid "scale3D"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:61
-#: src/MateFun/ReservedNames.hs:77
+#: src/MateFun/ReservedNames.hs:63
+#: src/MateFun/ReservedNames.hs:79
 msgid "set"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:74
+#: src/MateFun/ReservedNames.hs:76
 msgid "sets"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:91
+#: src/MateFun/ReservedNames.hs:93
 msgid "show a variable value"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:90
+#: src/MateFun/ReservedNames.hs:92
 msgid "show domain and codomain of a function"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:92
+#: src/MateFun/ReservedNames.hs:94
 msgid "show set definition"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:94
+#: src/MateFun/ReservedNames.hs:96
 msgid "show this help message"
 msgstr ""
 
@@ -599,31 +603,35 @@ msgstr ""
 msgid "sin"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:45
+#: src/MateFun/ReservedNames.hs:47
 msgid "sphere"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:29
+#: src/MateFun/ReservedNames.hs:31
 msgid "squareroot"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:42
+#: src/MateFun/ReservedNames.hs:29
+msgid "tan"
+msgstr ""
+
+#: src/MateFun/ReservedNames.hs:44
 msgid "toFig"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:76
+#: src/MateFun/ReservedNames.hs:78
 msgid "var"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:73
+#: src/MateFun/ReservedNames.hs:75
 msgid "vars"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:97
+#: src/MateFun/ReservedNames.hs:99
 msgid "was defined more than once. Defined in:"
 msgstr ""
 
-#: src/MateFun/ReservedNames.hs:65
+#: src/MateFun/ReservedNames.hs:67
 msgid "where"
 msgstr ""
 
diff --git a/Servidor JEE/src/main/java/edu/proygrado/ejb/CommandsBean.java b/Servidor JEE/src/main/java/edu/proygrado/ejb/CommandsBean.java
index 82c043690d2eb762ddcf4e12840ff6b8e2a6aed3..60ddbed67069f472183be7f3a9f662389a8f8dae 100644
--- a/Servidor JEE/src/main/java/edu/proygrado/ejb/CommandsBean.java	
+++ b/Servidor JEE/src/main/java/edu/proygrado/ejb/CommandsBean.java	
@@ -177,6 +177,7 @@ public class CommandsBean {
 			}
 
 		} catch (Exception e) {
+		        System.out.println("Error ejecutar comandos: "+ comandos + "\n");
 			e.printStackTrace();
 		}
 	}
diff --git a/addToGrupo.sh b/addToGrupo.sh
index 080ba6137ab601e484b3baa4e8c6685886ea833d..8e90e7af5efeb6a19903238fe3392a113c7fcb54 100644
--- a/addToGrupo.sh
+++ b/addToGrupo.sh
@@ -2,7 +2,7 @@
 
 # csv: user,liceo,anio,grupo,grado
 # todas las filas tienen que terminar con enter
-INPUT=usersGroup.csv
+INPUT=grupos-javier.csv
 
 SERVER=https://www.fing.edu.uy/proyectos/matefun/servicios
 #http:/localhost:8080/servicios 
diff --git a/addUsers.sh b/addUsers.sh
index f8a0e3be4ff7eb925feefe3d535ed00194fc28db..883bcc9e11ec09bc0999fc945f33a51aeb88112f 100644
--- a/addUsers.sh
+++ b/addUsers.sh
@@ -3,7 +3,7 @@
 
 # csv: user,nombre,apellido,pass,rol(docente,alumno)
 # todas las filas tienen que terminar con enter
-INPUT='../../../../Cursos/progmate/Usuarios2021.csv'
+INPUT='usuarios-javier.csv'
 #users.csv
 
 SERVER=https://www.fing.edu.uy/proyectos/matefun/servicios