<> <> <> <> DIRECTORY Core USING [Wire], CoreBoole USING [Expression], Rope USING [ROPE]; CoreBooleExtras: CEDAR DEFINITIONS = BEGIN Expression: TYPE = CoreBoole.Expression; Wire: TYPE = Core.Wire; ROPE: TYPE = Rope.ROPE; Size: PROC [expr: Expression] RETURNS [size: INT _ 0]; Reorder: PROC [expr: Expression, public: Wire] RETURNS [newExpr: Expression]; ReorderVars: PROC [expr: Expression, vars: LIST OF ROPE] RETURNS [newExpr: Expression]; coreBoolePermuteProp: ATOM; <> Permute: PROC [expr: Expression, public: Wire] RETURNS [bestPermutedExpr: Expression, bestPermutedWire: Wire]; <> <<$Do -- try all possible permutations. This is the default;>> <<$DoNot, -- do not try to permute the components of this wire;>> <<$DoNotButDoSons, -- do not try to permute, but each component may be internally permuted, according to its own properties;>> <<$DoNotApartReverse, -- only reverse permutation may be tried. Sons are permuted, according to their own properties.>> <> ExprsSeq: TYPE = REF ExprsSeqRec; ExprsSeqRec: TYPE = RECORD [c: SEQUENCE size: NAT OF Expression]; ReadPLAFile: PUBLIC PROC [fileName: ROPE, inputs, outputs: LIST OF ROPE _ NIL] RETURNS [exprs: ExprsSeq]; << >> END.