public Operator deepCopy(){
		ArrayList<Variable> vl = new ArrayList<Variable>();
		ArrayList<Predicate> adl = new ArrayList<Predicate>();
		ArrayList<Predicate> del = new ArrayList<Predicate>();
		ArrayList<Predicate> prl = new ArrayList<Predicate>();
		for(Variable v : varList){
			vl.add(v.clone());
		}
		for(Predicate p : addList){
			adl.add(p.clone());
		}
		for(Predicate p : deleteList){
			del.add(p.clone());
		}
		for(Predicate p : precList){
			prl.add(p.clone());
		}
		String n = new String(name);
		Operator oNew = new Operator(adl, del, prl, n, vl);
		return oNew;
	}