protected MapIncarnation(IncarnationAndInequalityMap mapAnalyzer, Expression incarnation)
 {
     Debug.Assert(mapAnalyzer != null);
     Debug.Assert(incarnation != null);
     this.mapAnalyzer = mapAnalyzer;
     this.incarnation = incarnation;
 }
示例#2
0
        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)
 {
 }