public static Proposition buildEquivalenceProposition(Cons tree) {
    switch (tree.length()) {
      case 3: 
        return (Logic.createEquivalenceProposition(Logic.evaluateTerm(tree.rest.value), Logic.evaluateTerm(tree.rest.rest.value)));
      case 1: 
      case 2: 
        { OutputStringStream stream000 = OutputStringStream.newOutputStringStream();

          { Object old$PrintreadablyP$000 = Stella.$PRINTREADABLYp$.get();

            try {
              Native.setBooleanSpecial(Stella.$PRINTREADABLYp$, true);
              stream000.nativeStream.println("ERROR: Missing argument/s in `=' proposition..");
              Logic.helpSignalPropositionError(stream000, Logic.KWD_ERROR);

            } finally {
              Stella.$PRINTREADABLYp$.set(old$PrintreadablyP$000);
            }
          }
          throw ((PropositionError)(PropositionError.newPropositionError(stream000.theStringReader()).fillInStackTrace()));
        }
      default:
        return (Logic.buildConjunctionOfEqualityPropositions(tree.rest, Stella.NIL));
    }
  }