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); }
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); }