Microsoft.Automata.Z3.RankedAlphabet.RankedAlphabet C# (CSharp) Метод

RankedAlphabet() приватный Метод

private RankedAlphabet ( TreeTheory tt, string symbols, int>.Dictionary idMap, Microsoft.Z3.Sort alphabetSort, Microsoft.Z3.Sort nodeSort, int ranks, FuncDecl constructors, FuncDecl accessors, FuncDecl testers, FuncDecl acceptor, Expr vars ) : System
tt TreeTheory
symbols string
idMap int>.Dictionary
alphabetSort Microsoft.Z3.Sort
nodeSort Microsoft.Z3.Sort
ranks int
constructors Microsoft.Z3.FuncDecl
accessors Microsoft.Z3.FuncDecl
testers Microsoft.Z3.FuncDecl
acceptor Microsoft.Z3.FuncDecl
vars Microsoft.Z3.Expr
Результат System
        internal RankedAlphabet(
            TreeTheory tt,
            string[] symbols,
            Dictionary<string, int> idMap,
            Sort alphabetSort,
            Sort nodeSort,
            int[] ranks,
            FuncDecl[] constructors,
            FuncDecl[][] accessors,
            FuncDecl[] testers,
            FuncDecl acceptor,
            Expr[] vars
            )
        {
            this.tt = tt;
            this.symbols = new List<string>(symbols).AsReadOnly();
            this.idMap = idMap;
            this.alphabetSort = alphabetSort;
            this.nodeSort = nodeSort;
            this.ranks = ranks;
            this.constructors = constructors;
            this.accessors = accessors;
            this.testers = testers;
            this.acceptor = acceptor;
            this.vars = vars;
            this.trans = tt.GetTrans(alphabetSort, alphabetSort);
            this.emptyAcceptor = TreeTransducer.MkEmpty(this);
            this.fullAcceptor = TreeTransducer.MkFull(this);
            this.idAut = TreeTransducer.MkId(this);

            this.symbolsOfRank = new Dictionary<int, List<FuncDecl>>();
            for (int i = 0; i < ranks.Length; i++)
            {
                var r = ranks[i];
                if (!symbolsOfRank.ContainsKey(r))
                    symbolsOfRank[r] = new List<FuncDecl>();
                symbolsOfRank[r].Add(constructors[i]);
            }

            var attrDomain = tt.Z.MkFreshFuncDecl("_", new Sort[] { nodeSort }, tt.Z.BoolSort);
            this.attrExpr = tt.Z.MkApp(attrDomain, vars[0]);
            tt.Z.AssertAxiom(this.attrExpr, tt.Z.True, vars[0]);
        }