示例#1
0
        public static Zen <T> Create(T value)
        {
            if (hashConsTable.TryGetValue(value, out var v))
            {
                return(v);
            }

            var ret = new ZenConstantExpr <T>(value);

            hashConsTable[value] = ret;
            return(ret);
        }
示例#2
0
        private static Zen <bool> Simplify(Zen <bool> e)
        {
            if (e is ZenConstantExpr <bool> x)
            {
                return(x.Value ? ZenConstantExpr <bool> .Create(false) : ZenConstantExpr <bool> .Create(true));
            }

            if (e is ZenNotExpr y)
            {
                return(y.Expr);
            }

            return(new ZenNotExpr(e));
        }