private void Evaluate()
        {
            IEnumerable <string> variablesList = Variables.Split(',').Where(s => !String.IsNullOrEmpty(s));

            if (variablesList.Count() == 0)
            {
                MessageBox.Show("No variable names given.\n\nType all desired variable names (seperated by commas) into the variables textbox.", "Error");
                return;
            }

            Steps1.Clear();
            Steps2.Clear();
            OnPropertyChanged(nameof(Steps1));
            OnPropertyChanged(nameof(Steps2));

            if (!String.IsNullOrWhiteSpace(InputText))
            {
                Steps1 = EvaluateExpression(variablesList, InputText);
                OnPropertyChanged(nameof(Steps1));
            }
            if (!String.IsNullOrWhiteSpace(InputText2))
            {
                Steps2 = EvaluateExpression(variablesList, InputText2);
                OnPropertyChanged(nameof(Steps2));
            }

            checkEquivalence();
        }
 private void checkEquivalence()
 {
     if (Steps1 != null && Steps1.Count > 0 && Steps2 != null && Steps2.Count > 0)
     {
         if (Steps1.Last().Expression == Steps2.Last().Expression)
         {
             ResultText  = "Equivalent!";
             ResultColor = Brushes.LightGreen;
         }
         else
         {
             ResultText  = "Not equivalent";
             ResultColor = Brushes.LightCoral;
         }
     }
 }