com.cyc.cycjava.cycl
Class precanonicalizer

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.precanonicalizer
All Implemented Interfaces:
CommonSymbols, SubLFile

public final class precanonicalizer
extends SubLTranslatedFile


Nested Class Summary
static class precanonicalizer.$el_evaluatable_expressionP$BinaryFunction
           
static class precanonicalizer.$el_evaluatable_expressionP$UnaryFunction
           
 
Nested classes/interfaces inherited from class com.cyc.tool.subl.util.SubLTranslatedFile
SubLTranslatedFile.SubL
 
Field Summary
static SubLObject $const13$evaluateAtEL
           
static SubLObject $const16$evaluateImmediately
           
static SubLObject $const18$EverythingPSC
           
static SubLObject $const22$exceptWhen
           
static SubLObject $const23$abnormal
           
static SubLObject $const24$TheList
           
static SubLObject $const25$exceptFor
           
static SubLObject $const26$pragmaticRequirement
           
static SubLObject $const27$querySentence
           
static SubLObject $const28$meetsPragmaticRequirement
           
static SubLInteger $int4$32
           
static SubLSymbol $kw10$EL_UNEVALUATABLE_EXPRESSION
           
static SubLSymbol $kw7$RECURSION_LIMIT_EXCEEDED
           
static SubLSymbol $kw8$INVALID_EXPANSION
           
static SubLSymbol $kw9$_MEMOIZED_ITEM_NOT_FOUND_
           
static SubLString $str21$_s_is_not_a_well_formed_sentence
           
static SubLString $str29$no_assertion_for_meta_arg___s
           
static SubLString $str5$Invalid_attempt_to_reuse_memoizat
           
static SubLSymbol $sym0$IMMEDIATELY_EVALUATABLE_EXPRESSION_
           
static SubLSymbol $sym1$EXPANDIBLE_EL_RELATION_EXPRESSION_
           
static SubLSymbol $sym11$OPAQUE_ARG_WRT_EL_TEMPLATE_
           
static SubLSymbol $sym12$TRANSFORM_EVALUATION_EXPRESSION_OR_THROW
           
static SubLSymbol $sym14$EL_UNEVALUATABLE_EXPRESSION_
           
static SubLSymbol $sym15$TRANSFORM_EVALUATION_EXPRESSION
           
static SubLSymbol $sym17$RELEVANT_MT_IS_EVERYTHING
           
static SubLSymbol $sym19$IMMEDIATELY_UNEVALUATABLE_EXPRESSION_
           
static SubLSymbol $sym2$EL_EVALUATABLE_EXPRESSION_
           
static SubLSymbol $sym20$IMPLICIT_META_LITERALS_OUT_INT
           
static SubLSymbol $sym3$EL_IMPLICIT_META_LITERAL_SENTENCE_P
           
static SubLSymbol $sym6$PRECANONICALIZATIONS_INT
           
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 declare_precanonicalizer_file()
           
 void declareFunctions()
          Declares the mapping between functions and symbols for all named functions defined in the file.
static SubLObject el_evaluatable_expressionP(SubLObject object, SubLObject mt)
           
static SubLObject el_evaluatable_functor_somewhereP(SubLObject object)
           
static SubLObject el_evaluatable_functorP(SubLObject object, SubLObject mt)
           
static SubLObject init_precanonicalizer_file()
           
 void initializeVariables()
          Initializes all global variables and private internal variables for constants defined in the file.
static SubLObject precanonicalizations(SubLObject formula, SubLObject mt)
          Performs some simplifications on FORMULA to prepare it for canonicalization.
static SubLObject precanonicalizationsP(SubLObject formula, SubLObject mt, SubLObject formula_is_an_asent_with_no_subformulasP)
           
 void runTopLevelForms()
          Runs all top-level forms in order.
static SubLObject safe_precanonicalizations(SubLObject formula, SubLObject mt)
          A non-destructive version of @xref precanonicalizations.
static SubLObject setup_precanonicalizer_file()
           
 
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

$sym0$IMMEDIATELY_EVALUATABLE_EXPRESSION_

public static final SubLSymbol $sym0$IMMEDIATELY_EVALUATABLE_EXPRESSION_

$sym1$EXPANDIBLE_EL_RELATION_EXPRESSION_

public static final SubLSymbol $sym1$EXPANDIBLE_EL_RELATION_EXPRESSION_

$sym2$EL_EVALUATABLE_EXPRESSION_

public static final SubLSymbol $sym2$EL_EVALUATABLE_EXPRESSION_

$sym3$EL_IMPLICIT_META_LITERAL_SENTENCE_P

public static final SubLSymbol $sym3$EL_IMPLICIT_META_LITERAL_SENTENCE_P

$int4$32

public static final SubLInteger $int4$32

$str5$Invalid_attempt_to_reuse_memoizat

public static final SubLString $str5$Invalid_attempt_to_reuse_memoizat

$sym6$PRECANONICALIZATIONS_INT

public static final SubLSymbol $sym6$PRECANONICALIZATIONS_INT

$kw7$RECURSION_LIMIT_EXCEEDED

public static final SubLSymbol $kw7$RECURSION_LIMIT_EXCEEDED

$kw8$INVALID_EXPANSION

public static final SubLSymbol $kw8$INVALID_EXPANSION

$kw9$_MEMOIZED_ITEM_NOT_FOUND_

public static final SubLSymbol $kw9$_MEMOIZED_ITEM_NOT_FOUND_

$kw10$EL_UNEVALUATABLE_EXPRESSION

public static final SubLSymbol $kw10$EL_UNEVALUATABLE_EXPRESSION

$sym11$OPAQUE_ARG_WRT_EL_TEMPLATE_

public static final SubLSymbol $sym11$OPAQUE_ARG_WRT_EL_TEMPLATE_

$sym12$TRANSFORM_EVALUATION_EXPRESSION_OR_THROW

public static final SubLSymbol $sym12$TRANSFORM_EVALUATION_EXPRESSION_OR_THROW

$const13$evaluateAtEL

public static final SubLObject $const13$evaluateAtEL

$sym14$EL_UNEVALUATABLE_EXPRESSION_

public static final SubLSymbol $sym14$EL_UNEVALUATABLE_EXPRESSION_

$sym15$TRANSFORM_EVALUATION_EXPRESSION

public static final SubLSymbol $sym15$TRANSFORM_EVALUATION_EXPRESSION

$const16$evaluateImmediately

public static final SubLObject $const16$evaluateImmediately

$sym17$RELEVANT_MT_IS_EVERYTHING

public static final SubLSymbol $sym17$RELEVANT_MT_IS_EVERYTHING

$const18$EverythingPSC

public static final SubLObject $const18$EverythingPSC

$sym19$IMMEDIATELY_UNEVALUATABLE_EXPRESSION_

public static final SubLSymbol $sym19$IMMEDIATELY_UNEVALUATABLE_EXPRESSION_

$sym20$IMPLICIT_META_LITERALS_OUT_INT

public static final SubLSymbol $sym20$IMPLICIT_META_LITERALS_OUT_INT

$str21$_s_is_not_a_well_formed_sentence

public static final SubLString $str21$_s_is_not_a_well_formed_sentence

$const22$exceptWhen

public static final SubLObject $const22$exceptWhen

$const23$abnormal

public static final SubLObject $const23$abnormal

$const24$TheList

public static final SubLObject $const24$TheList

$const25$exceptFor

public static final SubLObject $const25$exceptFor

$const26$pragmaticRequirement

public static final SubLObject $const26$pragmaticRequirement

$const27$querySentence

public static final SubLObject $const27$querySentence

$const28$meetsPragmaticRequirement

public static final SubLObject $const28$meetsPragmaticRequirement

$str29$no_assertion_for_meta_arg___s

public static final SubLString $str29$no_assertion_for_meta_arg___s
Method Detail

precanonicalizationsP

public static final SubLObject precanonicalizationsP(SubLObject formula,
                                                     SubLObject mt,
                                                     SubLObject formula_is_an_asent_with_no_subformulasP)
Parameters:
FORMULA-IS-AN-ASENT-WITH-NO-SUBFORMULAS?; - when called by @xref canon-fast-gaf?, we can assume that FORMULA is an atomic sentence with no subformulas, so some of these tests can be sped up or bypassed entirely.

safe_precanonicalizations

public static final SubLObject safe_precanonicalizations(SubLObject formula,
                                                         SubLObject mt)
A non-destructive version of @xref precanonicalizations.


precanonicalizations

public static final SubLObject precanonicalizations(SubLObject formula,
                                                    SubLObject mt)
Performs some simplifications on FORMULA to prepare it for canonicalization. It recursively transforms EL relations, evaluates evaluatable expressions, and then it removes exceptions and pragmatic requirements. This is a destructive operation. Assumes the EL var namespace is bound.


el_evaluatable_expressionP

public static final SubLObject el_evaluatable_expressionP(SubLObject object,
                                                          SubLObject mt)

el_evaluatable_functorP

public static final SubLObject el_evaluatable_functorP(SubLObject object,
                                                       SubLObject mt)

el_evaluatable_functor_somewhereP

public static final SubLObject el_evaluatable_functor_somewhereP(SubLObject object)

declare_precanonicalizer_file

public static final SubLObject declare_precanonicalizer_file()

init_precanonicalizer_file

public static final SubLObject init_precanonicalizer_file()

setup_precanonicalizer_file

public static final SubLObject setup_precanonicalizer_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.