public void addClosureOf(IRule rule){
  if (rule == null)   throw new IllegalArgumentException();
  addClosureOf(new IRule[]{rule});
}

public void addClosureOf ( IRule rule ) { if ( rule == null ) throw new IllegalArgumentException ( ) ; addClosureOf ( new IRule [ ] { rule } ) ; }
adds a sub - program consisting of the fixed point closure of the given rule .
