this.or = function(proposition) {
    var result = {
      name: '(' + this.name + ' OR ' + proposition.name + ')',
      value: this.value || proposition.value
    };