QESignatureStructure.mesa
Last Edited by: Arnon, March 5, 1986 10:49:31 am PST
Structure constructor: signatures of a sequence of particular polynomials
(need to use sequence, not vector, of polynomials since we may add and delete polynomials whose signatures we are recording).
DIRECTORY
AlgebraClasses,
ASAtomicFormulaOps,
ASFormulaStructure;
QESignatureStructure: CEDAR DEFINITIONS
~ BEGIN
Element Representation
Signature: TYPE = AlgebraClasses.Object;
SignatureData: TYPE = AlgebraClasses.Object; -- sequence of ASAtomicFormulaOps.Operator's, of the same length as the sequence of polynomials which defines the signature's Structure.
Structure Instance Data
SignatureStructureData: TYPE = REF SignatureStructureDataRec;
SignatureStructureDataRec: TYPE = RECORD [
polynomials: AlgebraClasses.Object -- sequence of polynomials whose signatures will be represented by elements of this structure
];
Structure Constructor
MakeSignatureStructure: PROC [polynomials: AlgebraClasses.Object] RETURNS [structure: AlgebraClasses.Object];
Structure Operations
PrintName: AlgebraClasses.ToRopeOp;
Includes a ToRope of each of the defining polynomials, hence can get quite long. Hash coding of long polynomials (i.e. of math exprs) could help.
ShortPrintName: AlgebraClasses.ToRopeOp;
IsSignatureStructure: AlgebraClasses.UnaryPredicate;
Polynomials: AlgebraClasses.UnaryOp;
selector: polynomials of a Signature Structure
StructureData: AlgebraClasses.UnaryToListOp;
selector: returns LIST[polynomials] of a Signature Structure
Element Conversion and IO
Recast: AlgebraClasses.BinaryOp;
CanRecast: AlgebraClasses.BinaryPredicate;
ToExpr: AlgebraClasses.ToExprOp;
LegalFirstChar: AlgebraClasses.LegalFirstCharOp;
Read: AlgebraClasses.ReadOp;
FromRope: AlgebraClasses.FromRopeOp;
ToRope: AlgebraClasses.ToRopeOp;
Write: AlgebraClasses.WriteOp;
Element Constructor
MakeSignature: AlgebraClasses.ListImbedOp;
List of ASAtomicFormulaOps.Operator's to Signature. Check that the list has same length as the defining polynomials sequence of the Signature Structure.
Element Operations
SignaturesToFormula: AlgebraClasses.NaryOp;
Represent the disjunction of the input list of Signatures as a Formula.
END.