Finite ACIC-group

Symbol-free definition
A finite ACIC-group is a finite group that is also an ACIC-group. The following equivalent definitions are true for a finite ACIC-group:


 * It is finite and ACIC: every automorph-conjugate subgroup is characteristic
 * It is finite and every automorph-conjugate subgroup is normal
 * It is a finite nilpotent group, and every Sylow subgroup is an ACIC-group

Thus, the study of finite ACIC-groups reduces to the study of ACIC-groups of prime power order.

Stronger properties

 * Finite Abelian group
 * Finite-Frattini-realizable group
 * Finite Dedekind group

Distribution
To classify and understand finite ACIC-groups, it suffices to classify and understand the $$p$$-groups that are ACIC.

For the prime 2
We can classify finite groups of prime power order into three parts: the Abelian groups, the ACIC non-Abelian groups, and the non-ACIC groups. Here is the distribution of these:


 * Order 2: 1 Abelian, 0 ACIC non-Abelian, 0 non-ACIC
 * Order 4: 2 Abelian, 0 ACIC non-Abelian, 0 non-ACIC
 * Order 8: 3 Abelian, 2 ACIC non-Abelian, 0 non-ACIC
 * Order 16: 5 Abelian, 7 ACIC non-Abelian, 2 non-ACIC
 * Order 32: 7 Abelian, 23 ACIC non-Abelian, 21 non-ACIC

Not all of the ACIC non-Abelian groups are known to occur as Frattini subgroups.

For the prime 3

 * Order 3: 1 Abelian, 0 ACIC non-Abelian, 0 non-ACIC
 * Order 9: 2 Abelian, 0 ACIC non-Abelian, 0 non-ACIC
 * Order 27: 3 Abelian, 1 ACIC non-Abelian (the group of exponent 3), 1 non-ACIC (the group of exponent 9)
 * Order 81: 5 Abelian, 6 ACIC non-Abelian, 4 non-ACIC

An identical pattern holds for the corresponding powers of the prime 5.

Testing
The following GAP code can be used to check whether a group is ACIC:

AutomorphicImage := function(a,K) local L, g;		 L := List([]); for g in Set(K) do		    Add(L,g^a); od; return Group(L); end;;

IsAutomorphConjugateSubgroup := function(G,H) local A, s;		    A := AutomorphismGroup(G); for s in A do		    	 if not (AutomorphicImage(s,H) in ConjugateSubgroups(G,H)) then return false; fi; od; return true; end;;