com.cyc.cycjava.cycl
Class unification

java.lang.Object
  extended by com.cyc.tool.subl.util.SubLTrampolineFile
      extended by com.cyc.tool.subl.util.SubLTranslatedFile
          extended by com.cyc.cycjava.cycl.unification
All Implemented Interfaces:
CommonSymbols, SubLFile

public final class unification
extends SubLTranslatedFile


Nested Class Summary
static class unification.$base_variable_p$UnaryFunction
           
static class unification.$variable_non_base_version$UnaryFunction
           
 
Nested classes/interfaces inherited from class com.cyc.tool.subl.util.SubLTranslatedFile
SubLTranslatedFile.SubL
 
Field Summary
static SubLSymbol $computing_variable_mapP$
          Do we want to restrict UNIFY to only bind HL variables to other not-yet-bound HL variables in the inverted variable space?
static SubLObject $const6$equals
           
static SubLInteger $int7$100
           
static SubLSymbol $kw0$DEFAULT
           
static SubLSymbol $kw4$UNIFY_FAILURE
           
static SubLSymbol $kw5$EQUALITY
           
static SubLList $list2
           
static SubLSymbol $sym1$CLET
           
static SubLSymbol $sym10$VARIABLE_NON_BASE_VERSION
           
static SubLSymbol $sym11$NON_BASE_VARIABLE_P
           
static SubLSymbol $sym12$VARIABLE_BASE_VERSION
           
static SubLSymbol $sym3$BINDINGS_P
           
static SubLSymbol $sym8$VARIABLE_P
           
static SubLSymbol $sym9$BASE_VARIABLE_P
           
static SubLSymbol $unify_cons_function$
           
static SubLSymbol $unify_multipleP$
          Do we want UNIFY to find all possible bindings sets, and not just the first?
static SubLSymbol $unify_possible_cons_function$
           
static SubLSymbol $unify_return_justificationP$
          Do we return a justification for the bindings?
static SubLSymbol $unify_term_variable_enabledP$
          Temporary control variable; when non-nil, term variables (EL variables) are allowed to unify with other term variables.
static SubLFile me
           
static java.lang.String myName
           
 
Fields inherited from class com.cyc.tool.subl.util.SubLTranslatedFile
EMPTY_SUBL_OBJECT_ARRAY
 
Fields inherited from interface com.cyc.tool.subl.jrtl.nativeCode.subLisp.CommonSymbols
ANSWER_TAG, APPEND_KEYWORD, APPEND_STACK_TRACES_TO_ERROR_MESSAGES, AREF, ASSEMBLE_FIXNUMS_TO_INTEGER, ATOM, BIGNUMP, BINARY_KEYWORD, BINDING_TYPE, BOOLEANP, CAAR, CADR, CAND, CAR, CCATCH, CDEC, CDESTRUCTURING_BIND, CDO, CDO_ALL_SYMBOLS, CDO_EXTERNAL_SYMBOLS, CDO_SYMBOLS, CDOHASH, CDOLIST, CDOTIMES, CDR, CHAR, CHAR_E_SYMBOL, CHAR_EQUAL_SYMBOL, CHAR_GREATER_THAN_OR_EQUAL_SYMBOL, CHAR_GREATER_THAN_SYMBOL, CHAR_GT_SYMBOL, CHAR_GTE_SYMBOL, CHAR_LESS_THAN_OR_EQUAL_SYMBOL, CHAR_LESS_THAN_SYMBOL, CHAR_LT_SYMBOL, CHAR_LTE_SYMBOL, CHAR_NE_SYMBOL, CHAR_NOT_EQUAL_SYMBOL, CHARACTERP, CHECK_TYPE, CINC, CLET, CMULTIPLE_VALUE_BIND, CNOT, CONS, CONSP, CONSTANT, COR, CPOP, CPROGV, CPUSH, CPUSHNEW, CREATE_KEYWORD, CSETF, CSETQ, CSOME, CTIME, CUNWIND_PROTECT, CVS_ID, DEBUG_IO, DECLAIM, DECLARE, DEFCONSTANT, DEFINE, DEFLEXICAL, DEFMACRO, DEFPARAMETER, DEFVAR, DIRECTION_KEYWORD, DYNAMIC, EIGHT_INTEGER, EIGHTEEN_INTEGER, ELEMENT_TYPE_KEYWORD, ELEVEN_INTEGER, END_KEYWORD, ENFORCE_MUST, ENFORCE_TYPE, EQ, EQL, EQUAL, EQUALP, ERROR, ERROR_KEYWORD, ERROR_OUTPUT, EVAL, EXTERNAL_FORMAT_KEYWORD, EXTERNAL_KEYWORD, FIF, FIFTEEN_INTEGER, FIRST, FIVE_INTEGER, FIXNUMP, FLOATP, FOUR_INTEGER, FOURTEEN_INTEGER, FUNCTION, FUNCTION_SPEC_P, FUNCTIONP, FUNLESS, FWHEN, GET, GETHASH, GETHASH_WITHOUT_VALUES, GUID_P, HASH_TABLE_ITERATOR_P, HASH_TABLE_P, IDENTITY, IF_DOES_NOT_EXIST_KEYWORD, IF_EXISTS_KEYWORD, IGNORE, INITIALIZATION_TYPE, INITIALIZER, INPUT_KEYWORD, INPUT_STREAM_P, INTEGERP, INTERNAL_KEYWORD, IO_KEYWORD, KEYWORDP, KILL_KEYWORD, LAMBDA_SYMBOL, LEXICAL, LIST, LISTP, LISTS, LOCK_P, LONG_BIGNUM_P, MACRO_ENV, MACRO_FORM, MEDIUM_BIGNUM_P, MEMBER, MINUS_ONE_INTEGER, MULTIPLE_VALUE_LIST, MUST, NCONC, NEW_VERSION_KEYWORD, NIL, NINE_INTEGER, NINETEEN_INTEGER, NREVERSE, NTH, NTH_VALUE, NULL, NULL_INPUT, NULL_OUTPUT, NUM_E_SYMBOL, NUM_GT_SYMBOL, NUM_GTE_SYMBOL, NUM_LT_SYMBOL, NUM_LTE_SYMBOL, NUM_NE_SYMBOL, NUMBERP, ONE_HUNDRED_THIRTY_SEVEN_INTEGER, ONE_HUNDRED_TWENTY_SEVEN_INTEGER, ONE_INTEGER, ONE_THOUSAND_INTEGER, OPTIONAL_SYMBOL, OTHERWISE, OUTPUT_KEYWORD, OUTPUT_STREAM_P, OVERWRITE_KEYWORD, PACKAGEP, PCASE, PCOND, PIF, PROBE_KEYWORD, PROCESS_TO_END, PROCESSP, PROCLAIM, PROGN, PUNLESS, PWHEN, QUERY_IO, QUIT, QUOTE, RENAME_AND_DELETE_KEYWORD, REST_SYMBOL, RET, RET_NIL, RET_T, RETURN_TAG, REVERSE, RW_LOCK_P, SECOND, SEQUENCEP, SEVEN_INTEGER, SEVENTEEN_INTEGER, SHORT_BIGNUM_P, SHOW_STACK_TRACES, SIX_INTEGER, SIXTEEN_INTEGER, SIXTY_FOUR_INTEGER, SORT, SSS, STANDARD_INPUT, STANDARD_OUTPUT, START_KEYWORD, STREAMP, STRING_E_SYMBOL, STRING_EQUAL_SYMBOL, STRING_GREATER_THAN_OR_EQUAL_SYMBOL, STRING_GREATER_THAN_SYMBOL, STRING_GT_SYMBOL, STRING_GTE_SYMBOL, STRING_LESS_THAN_OR_EQUAL_SYMBOL, STRING_LESS_THAN_SYMBOL, STRING_LT_SYMBOL, STRING_LTE_SYMBOL, STRING_NE_SYMBOL, STRING_NOT_EQUAL_SYMBOL, STRINGP, STRUCTURE_P, SUPERSEDE_KEYWORD, SUSPEND_TYPE_CHECKING, SYMBOL_FUNCTION, SYMBOL_VALUE, SYMBOLP, T, TEN_INTEGER, TERMINAL_IO, TEXT_KEYWORD, THIRTEEN_INTEGER, THIRTY_FOUR_INTEGER, THIRTY_THREE_INTEGER, THIRTY_TWO_INTEGER, THREE_INTEGER, TRACE_OUTPUT, TRUE, TWELVE_INTEGER, TWENTY_INTEGER, TWO_HUNDRED_FIFTY_FOUR_INTEGER, TWO_HUNDRED_FORTY_FOUR_INTEGER, TWO_INTEGER, UNDECLARED, UNPROVIDED, VALUES, VECTOR, VECTORP, WITH_ERROR_HANDLER, WITH_STATIC_AREA, WITH_THREAD_PRIVATE_AREA, WITH_WORKING_AREA, WORLD, ZERO_DOUBLE, ZERO_INTEGER
 
Method Summary
static SubLObject base_variable_p(SubLObject object)
           
static SubLObject declare_unification_file()
           
 void declareFunctions()
          Declares the mapping between functions and symbols for all named functions defined in the file.
static SubLObject init_unification_file()
           
 void initializeVariables()
          Initializes all global variables and private internal variables for constants defined in the file.
static SubLObject non_base_variable_p(SubLObject object)
           
static SubLObject non_base_variable_transform(SubLObject object)
           
static SubLObject pre_unify_replace_variables(SubLObject object)
           
 void runTopLevelForms()
          Runs all top-level forms in order.
static SubLObject setup_unification_file()
           
static SubLObject term_variable_p(SubLObject object)
           
static SubLObject unification_occurs_check_recursive(SubLObject variable, SubLObject object, SubLObject v_bindings)
           
static SubLObject unification_occurs_check(SubLObject variable, SubLObject value, SubLObject v_bindings)
          Return T iff VARIABLE occurs in OBJECT according to BINDINGS
static SubLObject unify_assuming_bindings(SubLObject obj_trans, SubLObject obj, SubLObject share_varsP, SubLObject assume_bindings, SubLObject justifyP)
          Like @xref UNIFY, in which unification is done within the context of assume-bindings, which are pre-existing bindings to assume.
static SubLObject unify_atom(SubLObject atom1, SubLObject atom2, SubLObject v_bindings)
          Unify atoms ATOM1 and ATOM2 assuming BINDINGS
static SubLObject unify_cons_default(SubLObject cons1, SubLObject cons2, SubLObject v_bindings)
          Unify conses CONS1 and CONS2 assuming BINDINGS
static SubLObject unify_cons(SubLObject cons1, SubLObject cons2, SubLObject v_bindings)
          Unify conses CONS1 and CONS2 assuming BINDINGS
static SubLObject unify_failure(SubLObject obj1, SubLObject obj2)
          Note that unification failed due to an inability to unify OBJ1 and OBJ2
static SubLObject unify_internal(SubLObject obj1, SubLObject obj2, SubLObject v_bindings)
           
static SubLObject unify_possible_atom(SubLObject atom1, SubLObject atom2)
          Return T iff the atoms ATOM1 and ATOM2 could possibly unify
static SubLObject unify_possible_cons_default(SubLObject cons1, SubLObject cons2)
           
static SubLObject unify_possible_cons(SubLObject cons1, SubLObject cons2)
          Return T iff the conses CONS1 and CONS2 could possibly unify
static SubLObject unify_possible_constant(SubLObject constant1, SubLObject obj2)
          Return T iff constant CONSTANT1 and OBJ2 could possibly unify
static SubLObject unify_possible_fort(SubLObject fort1, SubLObject obj2)
          Return T iff fort FORT1 and OBJ2 could possibly unify
static SubLObject unify_possible_recursive(SubLObject obj1, SubLObject obj2)
          Return T iff the objects OBJ1 and OBJ2 could possibly unify
static SubLObject unify_possible(SubLObject obj1, SubLObject obj2)
          A quick, necessary condition check for whether unification between OBJ1 and OBJ2 could possibly succeed.
static SubLObject unify_recursive_internal(SubLObject obj1, SubLObject obj2, SubLObject v_bindings)
           
static SubLObject unify_recursive(SubLObject obj1, SubLObject obj2, SubLObject v_bindings)
           
static SubLObject unify_variable(SubLObject variable, SubLObject object, SubLObject v_bindings)
          Unify VARIABLE with OBJECT
static SubLObject unify(SubLObject obj_trans, SubLObject obj, SubLObject share_varsP, SubLObject justifyP)
          Compute the Most General Unifier between OBJ-TRANS and OBJ.
static SubLObject variable_base_inversion(SubLObject object)
          Convert all base variables in OBJECT to their non-base form, and vice versa.
static SubLObject variable_base_inverted_version(SubLObject variable)
          Convert base VARIABLE to its non-base form, or vice versa.
static SubLObject variable_base_version(SubLObject variable)
           
static SubLObject variable_non_base_version(SubLObject variable)
           
 
Methods inherited from class com.cyc.tool.subl.util.SubLTranslatedFile
extractFunctionNamed
 
Methods inherited from class com.cyc.tool.subl.util.SubLTrampolineFile
checkType, enforceType, extractBinaryFunc, extractCount, extractEnd, extractEndUsingSize, extractPackage, extractStart, extractUnaryFunc, main
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

me

public static final SubLFile me

myName

public static final java.lang.String myName
See Also:
Constant Field Values

$unify_term_variable_enabledP$

public static SubLSymbol $unify_term_variable_enabledP$
Temporary control variable; when non-nil, term variables (EL variables) are allowed to unify with other term variables.


$unify_possible_cons_function$

public static SubLSymbol $unify_possible_cons_function$

$unify_cons_function$

public static SubLSymbol $unify_cons_function$

$unify_multipleP$

public static SubLSymbol $unify_multipleP$
Do we want UNIFY to find all possible bindings sets, and not just the first?


$computing_variable_mapP$

public static SubLSymbol $computing_variable_mapP$
Do we want to restrict UNIFY to only bind HL variables to other not-yet-bound HL variables in the inverted variable space?


$unify_return_justificationP$

public static SubLSymbol $unify_return_justificationP$
Do we return a justification for the bindings?


$kw0$DEFAULT

public static final SubLSymbol $kw0$DEFAULT

$sym1$CLET

public static final SubLSymbol $sym1$CLET

$list2

public static final SubLList $list2

$sym3$BINDINGS_P

public static final SubLSymbol $sym3$BINDINGS_P

$kw4$UNIFY_FAILURE

public static final SubLSymbol $kw4$UNIFY_FAILURE

$kw5$EQUALITY

public static final SubLSymbol $kw5$EQUALITY

$const6$equals

public static final SubLObject $const6$equals

$int7$100

public static final SubLInteger $int7$100

$sym8$VARIABLE_P

public static final SubLSymbol $sym8$VARIABLE_P

$sym9$BASE_VARIABLE_P

public static final SubLSymbol $sym9$BASE_VARIABLE_P

$sym10$VARIABLE_NON_BASE_VERSION

public static final SubLSymbol $sym10$VARIABLE_NON_BASE_VERSION

$sym11$NON_BASE_VARIABLE_P

public static final SubLSymbol $sym11$NON_BASE_VARIABLE_P

$sym12$VARIABLE_BASE_VERSION

public static final SubLSymbol $sym12$VARIABLE_BASE_VERSION
Method Detail

unify_possible

public static final SubLObject unify_possible(SubLObject obj1,
                                              SubLObject obj2)
A quick, necessary condition check for whether unification between OBJ1 and OBJ2 could possibly succeed.


unify_possible_recursive

public static final SubLObject unify_possible_recursive(SubLObject obj1,
                                                        SubLObject obj2)
Return T iff the objects OBJ1 and OBJ2 could possibly unify


unify_possible_fort

public static final SubLObject unify_possible_fort(SubLObject fort1,
                                                   SubLObject obj2)
Return T iff fort FORT1 and OBJ2 could possibly unify


unify_possible_constant

public static final SubLObject unify_possible_constant(SubLObject constant1,
                                                       SubLObject obj2)
Return T iff constant CONSTANT1 and OBJ2 could possibly unify


unify_possible_cons

public static final SubLObject unify_possible_cons(SubLObject cons1,
                                                   SubLObject cons2)
Return T iff the conses CONS1 and CONS2 could possibly unify


unify_possible_cons_default

public static final SubLObject unify_possible_cons_default(SubLObject cons1,
                                                           SubLObject cons2)

unify_possible_atom

public static final SubLObject unify_possible_atom(SubLObject atom1,
                                                   SubLObject atom2)
Return T iff the atoms ATOM1 and ATOM2 could possibly unify


unify

public static final SubLObject unify(SubLObject obj_trans,
                                     SubLObject obj,
                                     SubLObject share_varsP,
                                     SubLObject justifyP)
Compute the Most General Unifier between OBJ-TRANS and OBJ. If SHARE-VARS? is nil, then the HL variables in OBJ-TRANS and OBJ are assumed to be in different variable spaces, and the so ones in OBJ-TRANS are temporarily converted so as to uniquify all variables. If JUSTIFY? is non-nil, then a justification will be returned (if appropriate).

Returns:
NIL ; when unification fails

unify_assuming_bindings

public static final SubLObject unify_assuming_bindings(SubLObject obj_trans,
                                                       SubLObject obj,
                                                       SubLObject share_varsP,
                                                       SubLObject assume_bindings,
                                                       SubLObject justifyP)
Like @xref UNIFY, in which unification is done within the context of assume-bindings, which are pre-existing bindings to assume.


unify_internal

public static final SubLObject unify_internal(SubLObject obj1,
                                              SubLObject obj2,
                                              SubLObject v_bindings)

unify_recursive

public static final SubLObject unify_recursive(SubLObject obj1,
                                               SubLObject obj2,
                                               SubLObject v_bindings)

unify_recursive_internal

public static final SubLObject unify_recursive_internal(SubLObject obj1,
                                                        SubLObject obj2,
                                                        SubLObject v_bindings)

unify_atom

public static final SubLObject unify_atom(SubLObject atom1,
                                          SubLObject atom2,
                                          SubLObject v_bindings)
Unify atoms ATOM1 and ATOM2 assuming BINDINGS


unify_failure

public static final SubLObject unify_failure(SubLObject obj1,
                                             SubLObject obj2)
Note that unification failed due to an inability to unify OBJ1 and OBJ2


unify_variable

public static final SubLObject unify_variable(SubLObject variable,
                                              SubLObject object,
                                              SubLObject v_bindings)
Unify VARIABLE with OBJECT


unify_cons

public static final SubLObject unify_cons(SubLObject cons1,
                                          SubLObject cons2,
                                          SubLObject v_bindings)
Unify conses CONS1 and CONS2 assuming BINDINGS


unify_cons_default

public static final SubLObject unify_cons_default(SubLObject cons1,
                                                  SubLObject cons2,
                                                  SubLObject v_bindings)
Unify conses CONS1 and CONS2 assuming BINDINGS


unification_occurs_check

public static final SubLObject unification_occurs_check(SubLObject variable,
                                                        SubLObject value,
                                                        SubLObject v_bindings)
Return T iff VARIABLE occurs in OBJECT according to BINDINGS


unification_occurs_check_recursive

public static final SubLObject unification_occurs_check_recursive(SubLObject variable,
                                                                  SubLObject object,
                                                                  SubLObject v_bindings)

base_variable_p

public static final SubLObject base_variable_p(SubLObject object)

non_base_variable_p

public static final SubLObject non_base_variable_p(SubLObject object)

variable_base_version

public static final SubLObject variable_base_version(SubLObject variable)

variable_non_base_version

public static final SubLObject variable_non_base_version(SubLObject variable)

variable_base_inverted_version

public static final SubLObject variable_base_inverted_version(SubLObject variable)
Convert base VARIABLE to its non-base form, or vice versa.


non_base_variable_transform

public static final SubLObject non_base_variable_transform(SubLObject object)

variable_base_inversion

public static final SubLObject variable_base_inversion(SubLObject object)
Convert all base variables in OBJECT to their non-base form, and vice versa.


pre_unify_replace_variables

public static final SubLObject pre_unify_replace_variables(SubLObject object)

term_variable_p

public static final SubLObject term_variable_p(SubLObject object)

declare_unification_file

public static final SubLObject declare_unification_file()

init_unification_file

public static final SubLObject init_unification_file()

setup_unification_file

public static final SubLObject setup_unification_file()

declareFunctions

public void declareFunctions()
Description copied from interface: SubLFile
Declares the mapping between functions and symbols for all named functions defined in the file. Like CRTL define.


initializeVariables

public void initializeVariables()
Description copied from interface: SubLFile
Initializes all global variables and private internal variables for constants defined in the file. Like CRTL init.


runTopLevelForms

public void runTopLevelForms()
Description copied from interface: SubLFile
Runs all top-level forms in order. Like CRTL setup.