PWCoreLichen.mesa
Copyright © 1986 by Xerox Corporation. All rights reversed.
Created by Bertrand Serlet, July 14, 1986 5:49:00 pm PDT
Bertrand Serlet, July 25, 1986 9:26:53 pm PDT
Mike Spreitzer December 17, 1986 12:20:17 pm PST
DIRECTORY Core, CoreFlat, OneToOne;
PWCoreLichen: CEDAR DEFINITIONS = BEGIN
Purpose
This interface defines how do the comparison between the source Core data structure, and the extracted Core data structure. The comparison is done hierarchically. Places where layout has been explicitly associated to the Core data structure are places where source and extracted structures are known to match (or at least should match). The comparison process also decorates both structures with the mapping that maps one into the other.
Basics
CellType: TYPE = Core.CellType;
Wire: TYPE = Core.Wire;
ROPE: TYPE = Core.ROPE;
Properties: TYPE = Core.Properties;
Wires: TYPE = Core.Wires;
The comparison
Compare:
PROC [root: CellType];
Layout must be attached to this root CellType.
This function calls itself recursively for cellTypes such that PWCore.GetLayoutAtom[cellType]#NIL.
ForgetComparisons:
PROC;
The fact that a CellType has been compared is remembered. Call this procedure to forget all such facts.
SetAutomorphismHack:
PROC [enabled:
BOOL];
When the automorphism hack is enabled, when the graph isomorphism gets stuck, it will try to push on by making a random association from a potential automorphism. Since there is no backtracking, this doesn't make a proper graph isomorphism algorithm --- this can give false negatives.
END.