this.and = function(proposition) {
    var result = {
      name: '(' + this.name + ' AND ' + proposition.name + ')',
      value: this.value && proposition.value
    };