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