public override Predicate Negate()
        {
            KnowWhetherPredicate kpNegate = new KnowWhetherPredicate(Knowledge);

            kpNegate.Negation = !Negation;
            return(kpNegate);
        }
 public override bool Equals(object obj)
 {
     if (obj is KnowWhetherPredicate)
     {
         KnowWhetherPredicate kp = (KnowWhetherPredicate)obj;
         if (Negation == kp.Negation)
         {
             return(Knowledge.Equals(kp.Knowledge));
         }
     }
     return(false);
 }