protected MapIncarnation(IncarnationAndInequalityMap mapAnalyzer, Expression incarnation) { Debug.Assert(mapAnalyzer != null); Debug.Assert(incarnation != null); this.mapAnalyzer = mapAnalyzer; this.incarnation = incarnation; }
public JoinMapIncarnation( IncarnationAndInequalityMap mapAnalyzer, Expression incarnation, IEnumerable <Tuple <MapIncarnation, PropositionalFormula> > predecessors ) : base(mapAnalyzer, incarnation) { this.predecessors = new List <Tuple <MapIncarnation, PropositionalFormula> >(predecessors); // cache = new Dictionary<string, StateSpace.BoundVariable>(); }
public FieldWriteMapIncarnation(IncarnationAndInequalityMap mapAnalyzer, Expression incarnation, FAE mapWrite) : base(mapAnalyzer, incarnation) { Debug.Assert(mapWrite != null); Debug.Assert(mapWrite.function is MapWrite); Debug.Assert(mapWrite.arguments.count > 2); Debug.Assert(mapWrite.arguments[0] is ProgramVariableExpression); this.mapWrite = mapWrite; predecessor = mapAnalyzer.mapIncarnationMap[(mapWrite.arguments[0] as ProgramVariableExpression).programVariable.name ]; Debug.Assert(predecessor != null); var ui = new List <Expression>(); for (var i = 1; i < mapWrite.arguments.count - 1; i++) { ui.Add(mapWrite.arguments[i]); } updatedIndices = new ExpressionList(ui); cache = new Dictionary <string, Expression>(); }
public InitialMapIncarnation(IncarnationAndInequalityMap mapAnalyzer, Expression incarnation) : base(mapAnalyzer, incarnation) { }