internal override bool CheckUseOfVars(List <string> fovar, List <string> sovar)
 {
     if (!sovar.Contains(variable))
     {
         var fov1 = fovar.ToArray().ToList();
         fov1.Add(variable);
         if (phi.CheckUseOfVars(fov1, sovar))
         {
             return(true);
         }
     }
     if (!fovar.Contains(variable))
     {
         var sov1 = sovar.ToArray().ToList();
         sov1.Add(variable);
         if (phi.CheckUseOfVars(fovar, sov1))
         {
             return(true);
         }
     }
     return(false);
 }
 internal override bool CheckUseOfVars(List <string> fovar, List <string> sovar)
 {
     return(phi.CheckUseOfVars(fovar, sovar));
 }
 internal override bool CheckUseOfVars(List <string> fovar, List <string> sovar)
 {
     return(left.CheckUseOfVars(fovar, sovar) && right.CheckUseOfVars(fovar, sovar));
 }