Sindbad~EG File Manager

Current Path : /usr/home/beeson/Otter-Lambda/otter/
Upload File :
Current File : /usr/home/beeson/Otter-Lambda/otter/cos.h

/*
 *  cos.h -- preprocessor definitions of indices for arrays of
 *  flags, parameters, statistics, clocks, and internal flags.
 *
 */

/*************
 *
 *    Flags are boolean valued options.  To install a new flag, append
 *    a new name and index to the end of this list, then insert code to
 *    initialize it in the routine `init_options'.
 *    Example access:  if (Flags[PARA_FROM_LEFT].val) {
 *    See routine `init_options' for defaults.
 *
 *************/

#define MAX_FLAGS           150  /* increase if necessary */

#define SOS_QUEUE 1 /* first clause on sos is given clause */
#define SOS_STACK 2 /* pick last sos clause as given clause */
#define INPUT_SOS_FIRST 3 /* use input sos before generated sos */
#define INTERACTIVE_GIVEN 4 /* user selects given cls interactively */
#define PRINT_GIVEN 5 /* print given clauses */
#define PRINT_LISTS_AT_END 6 /* print clause lists at end of run */

#define BINARY_RES 7 /* binary resolution */
#define HYPER_RES 8 /* hyperresolution */
#define NEG_HYPER_RES 9 /* negatve hyperresolution inf rule */
#define UR_RES 10 /* UR-resolution */
#define PARA_INTO 11 /* `into' paramodulation inference rule */
#define PARA_FROM 12 /* `from' paramodulation inference rule */
#define DEMOD_INF 13 /* apply demodulation as an inference rule */

#define PARA_FROM_LEFT 14 /* allow paramodulation from left sides */
#define PARA_FROM_RIGHT 15 /* allow paramodulation from right sides */
#define PARA_INTO_LEFT 16 /* allow paramodulation into left args of = */
#define PARA_INTO_RIGHT 17 /* allow paramodulation into right args of = */
#define PARA_FROM_VARS 18 /* allow paramodulation from variables */
#define PARA_INTO_VARS 19 /* allow paramodulation into variables */
#define PARA_FROM_UNITS_ONLY 20 /* from clause must be unit */
#define PARA_INTO_UNITS_ONLY 21 /* into clause must be unit */
#define PARA_SKIP_SKOLEM 22 /* Skolem function restriction strategy */
#define PARA_ONES_RULE 23 /* paramod only into first args of terms */
#define PARA_ALL 24 /* paramodulate all occurrences of into term */

#define DETAILED_HISTORY 25 /* store literal numbers and position vectors */
#define ORDER_HISTORY 26 /* Nucleus number first for hyper, UR. */
#define UNIT_DELETION 28 /* unit deletion processing */
#define DELETE_IDENTICAL_NESTED_SKOLEM 29 /* delete clauses containing */
#define SORT_LITERALS 30 /* sort literals in pre_process */
#define FOR_SUB 31 /* forward subsumption */
#define BACK_SUB 35 /* back subsumption */
#define FACTOR 38 /* factor during post_process */

#define DEMOD_HISTORY 39 /* build history in demodulation */
#define ORDER_EQ 40 /* flip equalities (+ and -) if right arg heavier */
#define EQ_UNITS_BOTH_WAYS 41 /* nonoriented eq units both ways */
#define DEMOD_LINEAR 42 /* use linear search instead of index tree */
#define DEMOD_OUT_IN 43 /* demodulate outside-in, (leftmost) */
#define DYNAMIC_DEMOD 44 /* dynamic addition of demodulators */
#define DYNAMIC_DEMOD_ALL 45 /* try to make all equalities into demodulators */
#define DYNAMIC_DEMOD_LEX_DEP 46 /* allow lex-dep dynamic demodulators */
#define BACK_DEMOD 47 /* back demodulation */
#define KNUTH_BENDIX 48 /* Attempt Knuth-Bendix completion */
#define LRPO 49 /* lexicographic recursive path ordering */
#define LEX_ORDER_VARS 50 /* consider variables when lex_checking terms */
#define SYMBOL_ELIM 51 /* orient equalities to eliminate symbols */

#define CHECK_ARITY 55 /* require symbols to have fixed arities */
#define PROLOG_STYLE_VARIABLES 57 /* vars start with A-Z */
#define ECHO_INCLUDED_FILES 60 /* Echo input from included files */
#define SIMPLIFY_FOL 59 /* attempt to simplify during cnf translation */
#define PROCESS_INPUT 58 /* process input usable and sos */

#define VERY_VERBOSE 27 /* print generated clauses */
#define PRINT_KEPT 32 /* print kept clauses */
#define PRINT_PROOFS 33 /* print all proofs found */
#define PRINT_NEW_DEMOD 34 /* print new demodultors */
#define PRINT_BACK_DEMOD 37 /* print back demodulated clauses */
#define PRINT_BACK_SUB 36 /* print back subsumed clauses */
#define DISPLAY_TERMS 56 /* print terms in internal format */
#define PRETTY_PRINT 61 /* Pretty print requested by Boyle */

#define INDEX_FOR_BACK_DEMOD 79 /* index (FPA) all terms for back demod */
#define FOR_SUB_FPA 52 /* forward subsump with FPA, not index tree */
#define NO_FAPL 53 /* don't FPA index all positive literals */
#define NO_FANL 54 /* don't FPA index all negative literals */

#define CONTROL_MEMORY 62 /* automatically adjust max_weight */
#define ORDER_HYPER 63 /* ordered hyperresolution (satellites) */
#define PROPOSITIONAL 64 /* some propositional optimizations */
#define REALLY_DELETE_CLAUSES 65 /* delete back demod and back_subed cls */
#define ATOM_WT_MAX_ARGS 66 /* weight of atom is max of weights of arguments */
#define TERM_WT_MAX_ARGS 67 /* weight of term is max of weights of arguments */
#define FREE_ALL_MEM 68 /* free all memory to avail lists at end of run */

/* Fringe */

#define AUTO                 69  /* select the current AUTO mode (see AUTO*) */
#define ANCESTOR_SUBSUME     70  /* ancestor subsumption */
#define INPUT_SEQUENT        71  /* input clauses in sequent notation */
#define OUTPUT_SEQUENT       72  /* output clauses in sequent notation */
#define GEOMETRIC_RULE       73  /* RP's inference rule, with unification */
#define LINKED_UR_RES        75  /* linked UR resolution inference rule */

#define LINKED_UR_TRACE 76 /* trace linked UR res inference rule */
#define LINKED_SUB_UNIT_USABLE 77 /* use Usable list to subsume subsumable */
                            /* intermediate unit clauses or target   */
                            /* during linked UR resolution.          */
#define LINKED_SUB_UNIT_SOS 78 /* use Sos list to subsume subsumable */
                            /* intermediate unit clauses or target   */
                            /* during linked UR resolution.          */
#define LINKED_UNIT_DEL 80 /* use Unit Deletion during linked UR resolution. */
                           /* Any unit cl in Usable or Sos list that resolves*/
                           /* a non-target literal without instantiating it */
                           /* will be the only resolver against that literal.*/
#define LINKED_TARGET_ALL 81 /* If set, all literals are targets. */

#define LINKED_HYPER_RES  82  /* Linked hyper inference rule */

/* others */

#define PROG_SYNTHESIS    83  /* program synthesis mode */
#define BIRD_PRINT        84  /* output a(_,_) terms in CL notation */
#define BUILD_PROOF_OBJECT 86  /* build proof to be checked elsewhere */
#define LOG_FOR_X_SHOW    87  /* Log some events for X display */

#define GEOMETRIC_REWRITE_BEFORE    88  /* RP's inference rule as a rewrite */
#define GEOMETRIC_REWRITE_AFTER     89  /* RP's inference rule as a rewrite */

#define FORMULA_HISTORY     90  /* Make input clauses point at formula parent */

#define KEEP_HINT_SUBSUMERS 91  /* Do not delete if it subsumes a hint. */

#define PROOF_WEIGHT 92       /* Calculate proof weight (ancestor bag). */
#define HYPER_SYMMETRY_KLUDGE 93  /* Secret flag */
#define GL_DEMOD 94           /* Delay demodulation. */
#define DP_INT_DOMAIN   95    /* Integers in DP input are domain elements. */
#define DISCARD_NON_ORIENTABLE_EQ 96 /* Secret flag */
#define DISCARD_XX_RESOLVABLE 97  /* Secret flag */
#define TPTP_EQ               98  /* for TPTP: "equal" is the only equality */
#define AUTO1                 99  /* original AUTO mode (3.0.4) */
#define AUTO2                100  /* revised AUTO mode (3.0.5) */
#define BELL                 101  /* Ring the bell for important events? */
#define BACK_UNIT_DELETION   102  /* like back demodulation, but for literals */
#define SPLIT_CLAUSE         103  /* case splitting with fork */
#define SPLIT_WHEN_GIVEN     109  /* Split clauses when given */
#define SPLIT_ATOM           107  /* Split on atoms instead of clauses */
#define SPLIT_POS            104  /* Split on positive clauses only */
#define SPLIT_NEG            105  /* Split on negatvie clauses only */
#define SPLIT_NONHORN        110  /* Split on negatvie clauses only */
#define SPLIT_MIN_MAX        106  /* Split on clause with min max-literal */
#define SPLIT_POPULAR        108  /* Split on most popular atoms */
#define UNIT_RES             111  /* Unit resolution restriction */

#define BUILD_PROOF_OBJECT_2 112  /* build new kind of proof object */
#define SIGINT_INTERACT      113  /* interact on SIGINT */

#define UR_LAST              114  /* restrict UR: target literal is last */
#define LITERALS_WEIGH_ONE   115
#define PICK_DIFF_SIM        116  /* selection of given clause */
#define PICK_RANDOM_LIGHTEST 117  /* selection of given clause */
#define PICK_LAST_LIGHTEST   118  /* selection of given clause */
#define PICK_MID_LIGHTEST    119  /* selection of given clause */
#define SOS_ARG              120  /* otter argument appended to SOS */
#define FOR_SUB_EQUIVALENTS_ONLY  121  /* forward subsumption iff equivalent */
#define KEEP_HINT_EQUIVALENTS     122  /* see hint_keep_test() */
#define LAMBDA_FLAG          123    /* added by Beeson 8.1.02, name changed 5.6.04 */ 
#define CASES_FLAG           124    /* added by Beeson 7.23.03 */
#define TYPES_FLAG           125    /* added by Beeson 5.10.04 */
#define INDUCTION_FLAG       126    /* added by Beeson 7.23.03 */
#define BIGNUM_FLAG          127    /* added by Beeson 10.21.03 */
#define SIMPLIFY_FLAG        128    /* added by Beeson 10.21.03 */
#define SOLVE_FLAG           129    /* added by Beeson 11.01.03 */
#define SIMPLIFYRULE_FLAG    130    /* added by Beeson 7.22.05  */
#define TYPESAFE_FLAG        131    /* added by Beeson 7.29.05  */ 
/* end of Flags */

/*************
 *
 *    Parms are integer valued options.  To install a new parm, append
 *    a new name and index to the end of this list, then insert code to
 *    initialize it in the routine `init_options'.
 *    Example access:  if (Parms[FPA_LITERALS].val == 4) {
 *    See routine `init_options' for defaults.
 *
 *************/

#define MAX_PARMS       60  /* increase if necessary */

#define REPORT           1  /* output stats and times every n seconds */

#define MAX_SECONDS      2  /* stop search after this many seconds */
#define MAX_GEN          3  /* stop search after this many generated clauses */
#define MAX_KEPT         4  /* stop search after this many kept clauses */
#define MAX_GIVEN        5  /* stop search after this many given clauses */
#define MAX_MEM          6  /* stop search after this many K bytes allocated */

#define MAX_LITERALS     7  /* max # of lits in kept clause (0 -> no limit) */
#define MAX_WEIGHT       8  /* maximum weight of kept clauses */
#define MAX_DISTINCT_VARS 9  /* max # of variables in kept clause */

#define FPA_LITERALS     10  /* FPA indexing depth for literals */
#define FPA_TERMS        11  /* FPA indexing depth for terms */

#define PICK_GIVEN_RATIO 12  /* pick lightest n times, then pick first */
#define INTERRUPT_GIVEN  13  /* call interact after this many given cls */
#define DEMOD_LIMIT      14  /* Limit on number of rewrites per clause */
#define MAX_PROOFS       15  /* stop search after this many empty clauses */
#define MIN_BIT_WIDTH    16  /* minimum field for bit strings */
#define NEG_WEIGHT       17  /* add this value to wight of negative literals */
#define PRETTY_PRINT_INDENT 22 /* indent for pretty print */
#define STATS_LEVEL      18  /* higher stats_level -> output more statistics */

/* fringe */

#define CHANGE_LIMIT_AFTER  19 /* replace reduce_weight_limit */
#define NEW_MAX_WEIGHT      20 /* replace reduce_weight_limit */
#define GEO_GIVEN_RATIO     21 /* like pick_given_ratio, for geo children */

#define MAX_UR_DEPTH        23 /* max depth for linked UR (normal depth = 0) */
#define MAX_UR_DED_SIZE     24 /* max resolutions in a single linked UR */

#define HEAT                26 /* maximum heat level */
#define DYNAMIC_HEAT_WEIGHT 27 /* max weigth of dynamic hot clause */
#define MAX_ANSWERS         28 /* maximum number of answer literals */

#define DEBUG_FIRST         29 /* turn debugging on        */
#define DEBUG_LAST          30 /* turn debugging off       */
#define FSUB_HINT_ADD_WT    31 /* add to pick-given wt     */
#define BSUB_HINT_ADD_WT    32 /* add to pick-given wt     */
#define EQUIV_HINT_ADD_WT   33 /* add to pick-given wt     */
#define VERBOSE_DEMOD_SKIP  34 /* debugging option   */

#define FSUB_HINT_WT        35 /* pick-given wt     */
#define BSUB_HINT_WT        36 /* pick-given wt     */
#define EQUIV_HINT_WT       37 /* pick-given wt     */

#define DYNAMIC_DEMOD_DEPTH 38
#define DYNAMIC_DEMOD_RHS   39

#define AGE_FACTOR          40  /* to adjust the pick-given weight */
#define DISTINCT_VARS_FACTOR 41 /* to adjust the pick-given weight */
#define NEW_SYMBOL_LEX_POSITION 42

#define WARN_MEM            43  /* reset max_weight at this memory usage */
#define WARN_MEM_MAX_WEIGHT 44  /* new max_weight */
#define SPLIT_SECONDS       45  /* time to search before splitting */
#define SPLIT_GIVEN         46  /* given clauses before splitting */
#define SPLIT_DEPTH         47  /* maximum splitting depth */

#define PICK_DIFF           50  /* selection of given clause */
#define PICK_DIFF_RANGE     51  /* selection of given clause */
#define MAX_UNIFIERS        52  /* for Beeson's multiple unifiers */
#define MAX_BINDING_DEPTH   53  /* maximum number of nested lambdas -- Beeson */

/* end of Parms */

/*************
 *
 *    Statistics.  To install a new statistic, append a new name and index
 *    to the end of this list, then insert the code to output it in the
 *    routine `print_stats'.
 *    Example access:  Stats[INPUT_ERRORS]++;
 *
 *************/

#define MAX_STATS        50

#define INPUT_ERRORS      0
#define CL_INPUT          1
#define CL_GENERATED      2
#define CL_KEPT           3
#define CL_FOR_SUB        4
#define CL_BACK_SUB       5
#define CL_TAUTOLOGY      6
#define CL_GIVEN          7
#define CL_WT_DELETE      8
#define REWRITES          9
#define UNIT_DELETES      11
#define EMPTY_CLAUSES     12
#define FPA_OVERLOADS     13  /* not output if 0 */
#define FPA_UNDERLOADS    14  /* not output if 0 */
#define CL_VAR_DELETES    15  /* not output if 0 */
#define FOR_SUB_SOS       16
#define NEW_DEMODS        17
#define CL_BACK_DEMOD     18
#define LINKED_UR_DEPTH_HITS 19
#define LINKED_UR_DED_HITS   20
#define SOS_SIZE             21
#define K_MALLOCED           22
#define CL_NOT_ANC_SUBSUMED  23

/* end of Otter 2.2 Stats */

#define USABLE_SIZE          24
#define DEMODULATORS_SIZE    25
#define DEMOD_LIMITS         26  /* not output if 0 */
#define INIT_WALL_SECONDS    27
#define BINARY_RES_GEN       28
#define HYPER_RES_GEN        29
#define NEG_HYPER_RES_GEN    30
#define UR_RES_GEN           31
#define PARA_INTO_GEN        32
#define PARA_FROM_GEN        33
#define LINKED_UR_RES_GEN    34
#define GEO_GEN              35
#define DEMOD_INF_GEN        36
#define FACTOR_GEN           37
#define HOT_GENERATED        38
#define HOT_KEPT             39
#define FACTOR_SIMPLIFICATIONS 40
#define HOT_SIZE             41
#define PASSIVE_SIZE         42
#define BACK_UNIT_DEL_GEN    43

/* end of Stats */

/*************
 *
 *    Clocks.  To install a new clock, append a new name and index
 *    to the end of this list, then insert the code to output it in the
 *    routine `print_times'.  Example of use: CLOCK_START(INPUT_TIME),
 *    CLOCK_STOP(INPUT_TIME),  micro_sec = clock_val(INPUT_TIME);.
 *    See files macros.h and clocks.c.
 *
 *************/

#define MAX_CLOCKS          50
 
#define INPUT_TIME           0
#define CLAUSIFY_TIME        1
#define PROCESS_INPUT_TIME   2

#define BINARY_TIME          3
#define HYPER_TIME           4
#define NEG_HYPER_TIME       5
#define UR_TIME              6
#define PARA_INTO_TIME       7
#define PARA_FROM_TIME       8
#define LINKED_UR_TIME       9

#define PRE_PROC_TIME       10
#define RENUMBER_TIME       11
#define DEMOD_TIME          12
#define ORDER_EQ_TIME       13
#define UNIT_DEL_TIME       14
#define WEIGH_CL_TIME       15
#define SORT_LITS_TIME      27
#define FOR_SUB_TIME        16
#define DEL_CL_TIME         17
#define KEEP_CL_TIME        18
#define PRINT_CL_TIME       19
#define CONFLICT_TIME       20
#define NEW_DEMOD_TIME      21

#define POST_PROC_TIME      22
#define BACK_DEMOD_TIME     23
#define BACK_SUB_TIME       24
#define FACTOR_TIME         25

#define UN_INDEX_TIME       26
#define HOT_TIME            28
#define FACTOR_SIMP_TIME    29

#define HINTS_TIME          30
#define HINTS_KEEP_TIME     31

#define BACK_UNIT_DEL_TIME  33
#define PICK_GIVEN_TIME     34

/* end of Clocks */

/*************
 *
 *    internal flags--invisible to users
 *
 *************/

#define MAX_INTERNAL_FLAGS   10

#define SPECIAL_UNARY_PRESENT 0
#define DOLLAR_PRESENT        1
#define LEX_VALS_SET          2
#define REALLY_CHECK_ARITY    3

#define INT_ATTR    0
#define BOOL_ATTR   1
#define DOUBLE_ATTR 2
#define STRING_ATTR 3
#define TERM_ATTR   4

/*************
 *
 *    clause attributes
 *
 *************/

#define MAX_ATTRIBUTES 50

#define BSUB_HINT_WT_ATTR 1
#define FSUB_HINT_WT_ATTR 2
#define EQUIV_HINT_WT_ATTR 3
#define BSUB_HINT_ADD_WT_ATTR 4
#define FSUB_HINT_ADD_WT_ATTR 5
#define EQUIV_HINT_ADD_WT_ATTR 6
#define LABEL_ATTR 7


Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists