End InternalActionDefs.
Notation "'R" := (@mulgr_action _) (at level 8) : action_scope.
Notation "'Rs" := (@rcoset_action _) (at level 8) : action_scope.
Notation "'J" := (@conjg_action _) (at level 8) : action_scope.
Notation "'J" := (@conjg_groupAction _) (at level 8) : groupAction_scope.
Notation "'Js" := (@conjsg_action _) (at level 8) : action_scope.
Notation "'JG" := (@conjG_action _) (at level 8) : action_scope.
Notation "'Q" := ('J / _)%act (at level 8) : action_scope.
Notation "'Q" := ('J / _)%gact (at level 8) : groupAction_scope.
Section InternalGroupAction.
Variable gT : finGroupType.
Implicit Types A B : {set gT}.
Implicit Types G H : {group gT}.
Implicit Type x : gT.
(*  Various identities for actions on groups. *)

(* Specifications: *)
Lemma orbitR G x : orbit 'R G x = x *: G.
Lemma astabR G : 'C(G | 'R) = 1.
Lemma astabsR G : 'N(G | 'R) = G.
Lemma atransR G : [transitive G, on G | 'R].
Lemma astabJ A : 'C(A |'J) = 'C(A).
Lemma astab1J x : 'C[x |'J] = 'C[x].
Lemma sub_afixRs_norm G x : (G :* x \in 'Fix_('Rs)(G)) = (x \in 'N(G)).
Lemma astab1Rs G : 'C[G : {set gT} | 'Rs] = G.
Lemma actsRs_rcosets H G : [acts G, on rcosets H G | 'Rs].
Lemma orbitJs G A : orbit 'Js G A = A :^: G. Proof. by []. Qed.
Lemma astab1Js A : 'C[A | 'Js] = 'N(A).
Lemma dom_qactJ H : qact_dom 'J H = 'N(H).
Lemma actsQ A B H :
A \subset 'N(H) -> A \subset 'N(B) -> [acts A, on B / H | 'Q].
Lemma astabsQ G H : H <| G -> 'N(G / H | 'Q) = 'N(H) :&: 'N(G).
Lemma sub_astabQ A H Bbar :
(A \subset 'C(Bbar | 'Q)) = (A \subset 'N(H)) && (A / H \subset 'C(Bbar)).
Lemma sub_astabQR A B H :
A \subset 'N(H) -> B \subset 'N(H) ->
(A \subset 'C(B / H | 'Q)) = ([~: A, B] \subset H).
Lemma astabQR A H : A \subset 'N(H) ->
'C(A / H | 'Q) = [set x in 'N(H) | [~: [set x], A] \subset H].
Lemma quotient_astabQ H Abar : 'C(Abar | 'Q) / H = 'C(Abar).
Section CardClass.