/**
  * Copy constructor
  *
  * @param copy
  */
 public Substitution(Substitution copy) {
   pairList = new ArrayList<TermPair>(copy.getPairList());
   variables = new ArrayList<Term>();
   for (TermPair c : pairList) variables.add(c.getX());
 }
 /** @param pair term pair : (variable,constant) */
 public void addPair(TermPair pair) {
   pairList.add(pair);
   variables.add(pair.getX());
 }
 /**
  * Constructor
  *
  * @param termPairList list of term pairs
  */
 public Substitution(ArrayList<TermPair> termPairList) {
   pairList = termPairList;
   variables = new ArrayList<Term>();
   for (TermPair c : pairList) variables.add(c.getX());
 }