CREATE TABLE gps_subgroup_search (
	Agroup	boolean,	-- whether the subgroup is an A-group, ie all of its Sylow subgroups are abelian
	Zgroup	boolean,	-- whether the subgroup is a Z-group, ie all of its Sylow subgroups are cyclic
	abelian	boolean,	-- Whether the subgroup is {{KNOWL('group.abelian', 'abelian')}}
	ambient	text,	-- The {{KNOWL('group.label', 'label')}} of the {{KNOWL('group.ambient', 'ambient group')}}
	ambient_counter	integer,	-- the integer corresponding to the second part of the label of the ambient group
	ambient_order	numeric,	-- The {{KNOWL('group.order', 'order')}} of the {{KNOWL('group.ambient', 'ambient group')}}
	ambient_tex	text,	-- latexed name of the {{KNOWL('group.ambient', 'ambient group')}}
	central	boolean,	-- Whether the subgroup is {{KNOWL('group.central', 'central')}}
	central_factor	boolean,	-- H is a central factor of G if it is nontrivial, noncentral, normal and generates G together with its centralizer.  In such a case, G will be a nontrivial central product of H with its centralizer.  Moreover, any nonabelian group that has some nontrivial central product decomposition will have one of this form
	centralizer_order	numeric,	-- The order of the centralizer of this subgroup
	characteristic	boolean,	-- Whether the subgroup is {{KNOWL('group.characteristic_subgroup', 'characteristic')}}
	core_order	numeric,	-- (description not yet updated on this server)
	counter	integer,	-- an ordering on all of the subgroups of a fixed ambient groups, for sorting
	cyclic	boolean,	-- Whether the subgroup is {{KNOWL('group.cyclic', 'cyclic')}}
	direct	boolean,	-- When the subgroup is normal and the sequence is {{KNOWL('columns.gps_subgroups.split', 'split')}}, whether there is a complement with trivial intersection with the subgroup; this will hold when the ambient group is a direct product of the subgroup and quotient.
	hall	numeric,	-- If the order of the subgroup is relatively prime to its index, this stores the radical of the order
	id	bigint,	-- 
	label	text,	-- The {{KNOWL('group.subgroup_label', 'label')}} of the subgroup
	maximal	boolean,	-- Whether the subgroup is {{KNOWL('group.maximal_subgroup', 'maximal')}}
	maximal_normal	boolean,	-- Whether the subgroup is maximal among {{KNOWL('group.proper_subgroup', 'proper')}} {{KNOWL('group.subgroup.normal', 'normal')}} subgroups
	metabelian	boolean,	-- whether the subgroup is metabelian, ie an extension of an abelian group by an abelian group
	metacyclic	boolean,	-- whether the subgroup is metacyclic, ie an extension of a cyclic group by a cyclic group
	minimal	boolean,	-- Whether the subgroup is minimal among {{KNOWL('group.proper_subgroup', 'proper')}} subgroups
	minimal_normal	boolean,	-- Whether the subgroup is minimal among {{KNOWL('group.proper_subgroup', 'proper')}} {{KNOWL('group.subgroup.normal', 'normal')}} subgroups, corresponding to a {{KNOWL('group.maximal_quotient', 'maximal quotient')}}
	nilpotent	boolean,	-- (description not yet updated on this server)
	normal	boolean,	-- Whether the subgroup is {{KNOWL('group.subgroup.normal', 'normal')}}
	old_label	text,	-- previous label before making canonical
	outer_equivalence	boolean,	-- Whether subgroups of the ambient group have been computed up to {{KNOWL('group.autjugate_subgroup', 'autjugacy')}} rather than conjugacy
	perfect	boolean,	-- Whether the subgroup is {{KNOWL('group.perfect', 'perfect')}}
	proper	boolean,	-- (description not yet updated on this server)
	quotient	text,	-- The {{KNOWL('group.label', 'label')}} of the {{KNOWL('group.quotient', 'quotient')}}.  NULL if the subgroup is not {{KNOWL('group.subgroup.normal', 'normal')}}
	quotient_Agroup	boolean,	-- whether the quotient is an A-group, ie all of its Sylow subgroups are abelian
	quotient_abelian	boolean,	-- Whether the subgroup is {{KNOWL('group.subgroup.normal', 'normal')}} with {{KNOWL('group.abelian', 'abelian')}} {{KNOWL('group.quotient', 'quotient')}}
	quotient_cyclic	boolean,	-- Whether the subgroup is {{KNOWL('group.subgroup.normal', 'normal')}} with {{KNOWL('group.cyclic', 'cyclic')}} {{KNOWL('group.quotient', 'quotient')}}
	quotient_hash	bigint,	-- (description not yet updated on this server)
	quotient_metabelian	boolean,	-- whether the quotient is metabelian, ie an extension of an abelian group by an abelian group
	quotient_nilpotent	boolean,	-- whether the quotient is nilpotent
	quotient_order	numeric,	-- The order of the quotient, which is the same as the index of the subgroup in the ambient group
	quotient_simple	boolean,	-- whether the quotient is simple
	quotient_solvable	boolean,	-- Whether the subgroup is {{KNOWL('group.subgroup.normal', 'normal')}} with {{KNOWL('group.solvable', 'solvable')}} {{KNOWL('group.quotient', 'quotient')}}
	quotient_supersolvable	boolean,	-- whether the quotient is supersolvable
	quotient_tex	text,	-- latexed form of quotient group
	simple	boolean,	-- whether the subgroup is simple
	solvable	boolean,	-- Whether the subgroup is {{KNOWL('group.solvable', 'solvable')}}
	special_labels	_text,	-- A list of labels indicating special roles for this subgroup.  In addition to strings like "Z" or "D2" indicating that this is the center or the second subgroup in the derived series, we also store labels for normal and maximal subgroups (which may not have labels if they have index larger than the index bound).  These labels are obtained in the standard way, but with a ".N" or ".M" appended.
	split	boolean,	-- Whether the sequence is split in the sense that there is a section of the projection map to the quotient.  True exactly when there is a {{KNOWL('columns.gps_subgroups.complement', 'complement')}}, and NULL if not {{KNOWL('group.subgroup.normal', 'normal')}}.
	standard_generators	boolean,	-- If the map sending the generators of this subgroup to the generators of the abstract group is an isomorphism
	stem	boolean,	-- Whether ths subgroup is {{KNOWL('group.stem_extension', 'stem')}}
	subgroup	text,	-- The {{KNOWL('group.label', 'label')}} of the subgroup
	subgroup_hash	bigint,	-- (description not yet updated on this server)
	subgroup_order	numeric,	-- The {{KNOWL('group.order', 'order')}} of the subgroup
	subgroup_tex	text,	-- latexed form of subgroup
	supersolvable	boolean,	-- whether the subgroup is supersolvable
	sylow	smallint 	-- If this subgroup is a {{KNOWL('group.sylow_subgroup', '$p$-Sylow')}} subgroup, stores $p$.  It is $1$ if this is the trivial subgroup, and $0$ if not a Sylow subgroup.
);