static void Main(string[] args) { WriteLine("D4: {0}", D4); WriteLine(); D4.ShowOperationTableColored(); WriteLine(); D4.ShowCosets(); }
static void Main(string[] args) { WriteLine("D4: {0}\n", D4); D4.ShowOperationTableColored(); WriteLine(); foreach (var N in D4.NormalProperSubgroups()) { WriteLine("normal subgroup: N = {0}", N); } WriteLine(); foreach (var N in D4.NormalProperSubgroups()) { WriteLine("normal subgroup: N = {0}", N); var D4_N = D4.QuotientGroup(N, "N"); WriteLine(" quotient group: D4/N = {0}", D4_N);; WriteLine(" isomorphic image: {0}", D4_N.IsomorphicImage()); WriteLine(" homomorphisms:"); foreach (var f in D4.GenerateHomomorphisms(D4_N)) { WriteLine(" {0}", String.Join(" ", D4.Set.Select(elt => (D4.Lookup(elt), f(elt))))); } // HomomorphismToString(G, f) WriteLine(); D4_N.ShowOperationTableColored(); WriteLine(); } ZxZ(2, 2).ShowOperationTableColored(); }
static void Main(string[] args) { WriteLine("D4: {0}", D4); D4.ShowOperationTableColored(); void check(GapPerm a, GapPerm b) { WriteLine("a {0}", D4.Lookup(a)); WriteLine("b {0}", D4.Lookup(b)); WriteLine("ba {0}", D4.Lookup(b.Compose(a))); WriteLine("a³b {0}", D4.Lookup(a.Compose(a.Compose(a.Compose(b))))); } check(R1, R4); WriteLine(); check(R1, R5); WriteLine(); check(R1, R6); WriteLine(); check(R1, R7); WriteLine(); WriteLine(); D4.ShowCosets(); }