private static Expr ComputeTransitionRelation(
            Implementation first, Implementation second,
            IEnumerable <Variable> frame, Dictionary <Variable, Function> triggers, IEnumerable <CommutativityWitness> witnesses, bool ignorePostState,
            string messagePrefix)
        {
            var trc = new TransitionRelationComputation(first, second, frame, witnesses, triggers, ignorePostState, messagePrefix);

            trc.EnumeratePaths();
            var transitionRelation = Expr.Or(trc.pathTranslations);

            transitionRelation.Resolve(new ResolutionContext(null)
            {
                StateMode = ResolutionContext.State.Two
            });
            transitionRelation.Typecheck(new TypecheckingContext(null));
            return(transitionRelation);
        }
Exemplo n.º 2
0
        private static Expr ComputeTransitionRelation(
            AtomicActionCopyAdapter first, AtomicActionCopyAdapter second,
            IEnumerable <Variable> frame, List <WitnessFunction> witnesses, bool ignorePostState,
            string messagePrefix)
        {
            var trc = new TransitionRelationComputation(first, second, frame, witnesses, ignorePostState, messagePrefix);

            trc.EnumeratePaths();
            var transitionRelation = Expr.Or(trc.pathTranslations);

            ResolutionContext rc = new ResolutionContext(null)
            {
                StateMode = ResolutionContext.State.Two
            };

            transitionRelation.Resolve(rc);
            transitionRelation.Typecheck(new TypecheckingContext(null));

            return(transitionRelation);
        }