public override Boolean CompareTo(_Term p) { if (p.GetType() != _TypeOfTerm.COMPOSITE) { return(false); } if (Name != p.Name) { return(false); } _Composite temp = (_Composite)p; if (mComponents.Count != temp.mComponents.Count) { return(false); } for (int i = 0; i < mComponents.Count; ++i) { _Term temp1 = (_Term)mComponents[i]; _Term temp2 = (_Term)temp.mComponents[i]; if (temp1.CompareTo(temp2) == false) { return(false); } } return(true); }
public override Boolean IsAppear(_Term p) { Boolean flag = false; if (p.GetType() == _TypeOfTerm.COMPOSITE) { return(false); } for (int i = 0; i < mComponents.Count; ++i) { _Term temp = (_Term)mComponents[i]; if (temp.GetType() == _TypeOfTerm.COMPOSITE) { flag = temp.IsAppear(p); } else { flag = temp.CompareTo(p); } if (flag == true) { return(true); } } return(false); }
private Boolean Run(_Term x, _Term y, ref _MGU s) { if (x.CompareTo(y)) { return(true); } else if (x.GetType() == _TypeOfTerm.VARIABLE) { return(Unify_var((_Variable)x, y, ref s)); } else if (y.GetType() == _TypeOfTerm.VARIABLE) { return(Unify_var((_Variable)y, x, ref s)); } else if (x.GetType() == _TypeOfTerm.COMPOSITE && y.GetType() == _TypeOfTerm.COMPOSITE) { if (x.Name != y.Name) { return(false); } _Composite comX = (_Composite)x; _Composite comY = (_Composite)y; if (comX.Count != comY.Count) // Khong cung toan tu { return(false); } for (int i = 0; i < comX.Count; ++i) { _Term tempArrX = comX[i].Replace(s); _Term tempArrY = comY[i].Replace(s); if (Run(tempArrX, tempArrY, ref s) == false) { return(false); } } return(true); } else // x hoac y la hang { return(false); } }
public Boolean IsBelong(_Term x) { return(mArg2.CompareTo(x)); }