1 /* 2 * SAT4J: a SATisfiability library for Java Copyright (C) 2004-2006 Daniel Le Berre 3 * 4 * Based on the original minisat specification from: 5 * 6 * An extensible SAT solver. Niklas E?n and Niklas S?rensson. Proceedings of the 7 * Sixth International Conference on Theory and Applications of Satisfiability 8 * Testing, LNCS 2919, pp 502-518, 2003. 9 * 10 * This library is free software; you can redistribute it and/or modify it under 11 * the terms of the GNU Lesser General Public License as published by the Free 12 * Software Foundation; either version 2.1 of the License, or (at your option) 13 * any later version. 14 * 15 * This library is distributed in the hope that it will be useful, but WITHOUT 16 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 17 * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 18 * details. 19 * 20 * You should have received a copy of the GNU Lesser General Public License 21 * along with this library; if not, write to the Free Software Foundation, Inc., 22 * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 23 * 24 */ 25 26 package org.sat4j.minisat.core; 27 28 /** 29 * That enumeration defines the possible truth value for a variable: satisfied, 30 * falsified or unknown/undefined. 31 * 32 * @author leberre 33 */ 34 public enum Lbool { 35 36 FALSE("F"), TRUE("T"), UNDEFINED("U"); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$ 37 38 static { 39 // usual boolean rules for negation 40 FALSE.opposite = TRUE; 41 TRUE.opposite = FALSE; 42 UNDEFINED.opposite = UNDEFINED; 43 } 44 45 private Lbool(String symbol) { 46 this.symbol = symbol; 47 } 48 49 /** 50 * boolean negation. 51 * 52 * @return Boolean negation. The negation of UNDEFINED is UNDEFINED. 53 */ 54 public Lbool not() { 55 return opposite; 56 } 57 58 /** 59 * Textual representation for the truth value. 60 * 61 * @return "T","F" or "U" 62 */ 63 @Override 64 public String toString() { 65 return symbol; 66 } 67 68 /** 69 * The symbol representing the truth value. 70 */ 71 private final String symbol; 72 73 /** 74 * the opposite truth value. 75 */ 76 private Lbool opposite; 77 78 }