docs: public <S,T> Modify<S> getInverse( T value ) {
          ModifyLiteral inverse = new InverseModifyLiteral( value );
          ModifyTaskLiteral task = this.task;
          do {
              if ( isAffected( value, task.value ) ) {
                  MetaProperty inv = ( (InvertibleMetaProperty) task.getProperty() ).getInverse();
                  inverse.addTask( inv,
                                   inv.isManyValued() ? Collections.singleton( getTarget() ) : getTarget(),
                                   task.mode == Lit.REMOVE ? Lit.REMOVE : Lit.ADD ) ;
  
              }
              task = task.nextTask;
          } while ( task != null );
          return inverse;
      }