예제 #1
0
        /// <summary>
        /// Returns the properties associated with <paramref name="v"/> in its variable declaration.
        /// The first element of the result tuple is the type and the second element is the where clause.
        /// </summary>
        public static Tuple <Term, Term> VarDeclTuple(Variable v, TypeIsaVisitor typeIsaVisitor, Func <Absy, Term> boogieToIsa)
        {
            var vType        = typeIsaVisitor.Translate(v.TypedIdent.Type);
            var vWhereClause = v.TypedIdent.WhereExpr != null
                ? IsaCommonTerms.SomeOption(boogieToIsa(v.TypedIdent.WhereExpr))
                : IsaCommonTerms.NoneOption();

            return(Tuple.Create(vType, vWhereClause));
        }