00001 00002 /* --------------------------------------------------------------------------- 00003 00004 00005 This file is part of the ``fsm.sexp'' package of NuSMV version 2. 00006 Copyright (C) 2009 by FBK-irst. 00007 00008 NuSMV version 2 is free software; you can redistribute it and/or 00009 modify it under the terms of the GNU Lesser General Public 00010 License as published by the Free Software Foundation; either 00011 version 2 of the License, or (at your option) any later version. 00012 00013 NuSMV version 2 is distributed in the hope that it will be useful, 00014 but WITHOUT ANY WARRANTY; without even the implied warranty of 00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00016 Lesser General Public License for more details. 00017 00018 You should have received a copy of the GNU Lesser General Public 00019 License along with this library; if not, write to the Free Software 00020 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. 00021 00022 For more information on NuSMV see <http://nusmv.fbk.eu> 00023 or email to <nusmv-users@fbk.eu>. 00024 Please report bugs to <nusmv-users@fbk.eu>. 00025 00026 To contact the NuSMV development board, email to <nusmv@fbk.eu>. 00027 00028 -----------------------------------------------------------------------------*/ 00029 00040 #ifndef __NUSMV_CORE_FSM_SEXP_BOOL_SEXP_FSM_H__ 00041 #define __NUSMV_CORE_FSM_SEXP_BOOL_SEXP_FSM_H__ 00042 00043 00044 #include "nusmv/core/fsm/sexp/SexpFsm.h" 00045 #include "nusmv/core/utils/utils.h" 00046 00053 typedef struct BoolSexpFsm_TAG* BoolSexpFsm_ptr; 00054 00061 #define BOOL_SEXP_FSM(self) \ 00062 ((BoolSexpFsm_ptr) self) 00063 00069 #define BOOL_SEXP_FSM_CHECK_INSTANCE(self) \ 00070 (nusmv_assert(BOOL_SEXP_FSM(self) != BOOL_SEXP_FSM(NULL))) 00071 00072 00073 00076 /*---------------------------------------------------------------------------*/ 00077 /* Function prototypes */ 00078 /*---------------------------------------------------------------------------*/ 00079 00088 BoolSexpFsm_ptr 00089 BoolSexpFsm_create(const FlatHierarchy_ptr hierarchy, 00090 const Set_t vars_set, 00091 BddEnc_ptr benc, SymbLayer_ptr det_layer); 00092 00104 BoolSexpFsm_ptr 00105 BoolSexpFsm_create_from_scalar_fsm(const SexpFsm_ptr scalar_fsm, 00106 BddEnc_ptr benc, 00107 SymbLayer_ptr det_layer); 00108 00117 VIRTUAL void BoolSexpFsm_destroy(BoolSexpFsm_ptr self); 00118 00127 BoolEnc_ptr BoolSexpFsm_get_bool_enc(const BoolSexpFsm_ptr self); 00128 00137 BoolSexpFsm_ptr BoolSexpFsm_copy(BoolSexpFsm_ptr self); 00138 00139 00144 #endif /* __NUSMV_CORE_FSM_SEXP_BOOL_SEXP_FSM_H__ */