Esempio n. 1
0
        void perm_identity_check <N>(N rep = default)
            where N : ITypeNat, new()
        {
            var permA = Perm <N> .Identity;
            var n     = nati <N>();

            Claim.eq(n, permA.Length);
            Claim.eq(n, permA.Terms.Length);

            var terms = range(0, n - 1).ToArray();

            Claim.eq(n, terms.Length);

            var permB = Perm.Define(new N(), terms);

            Claim.yea(permA == permB);
        }
Esempio n. 2
0
        public void perm32()
        {
            var p1 = Perm.Define(n32, (31, 0), (30, 1), (29, 2));

            Claim.eq(p1[0], 31);
            Claim.eq(p1[1], 30);
            Claim.eq(p1[2], 29);
            Claim.eq(p1[3], 3);

            var bm = p1.ToBitMatrix();

            Claim.eq(bm[0, 31], Bit.On);
            Claim.eq(bm[1, 30], Bit.On);
            Claim.eq(bm[2, 29], Bit.On);


            var v1 = BitVector32.Zero;
            var v2 = v1.Replicate(p1);

            Claim.eq(v1[31], v2[0]);
            Claim.eq(v1[30], v2[1]);
            Claim.eq(v1[29], v2[2]);
        }