The semidirect product Lie group
The semidirect product has a few choices regarding left and right:
- for the order of the product:
LeftSemidirectProductLieGroup$\mathcal G β \mathcal H$ vs.RightSemidirectProductLieGroup$\mathcal H β \mathcal G$ - for the
GroupAction$Ξ±$:AbstractLeftGroupActionType$Ο$ vs.AbstractRightGroupActionType$Ο$ - for the
GroupAction$Ξ±_g$ w.r.t. a fixed $g β \mathcal G$, within a group operation $h_1βh_2$:ActionActsOnLeft$Ξ±_g(h_1)βh_2$ vs.ActionActsOnRight$h_1βΞ±_g(h_2)$
These choices lead to different formulae, usually even all eight cases are different. We still try to document them.
LieGroups.LeftSemidirectProductGroupOperation β TypeLeftSemidirectProductGroupOperation{O1,O2,A,AO} <: SemidirectProductGroupOperation{O1,O2,A,AO}A struct to model a left semidirect Lie group product.
Let $(\mathcal G, β)$ and $(\mathcal H, β)$ be two Lie groups with group operations $β$ and $β$, respectively.
Then this group operation $β$ is defined on the product manifold $\mathcal GΓ\mathcal H$ and uses the group operations $β$ in the first component. The second component depends on the choice of the actual AbstractGroupActionType A and what it acts on, i.e. the AbstractActionActsOnType AO.
The resulting group operations are documented in the corresponding compose documentation.
For all four possible cases, we still use the shorthand notation $\mathcal G$β$\mathcal H = (\mathcal GΓ\mathcal H,β)$ when it is clear which variant we refer to. See [HN12, Definition 9.2.22], first definition for more details.
Constructor
LeftSemidirectProductGroupOperation(
op1::AbstractGroupOperation,
op2::AbstractGroupOperation,
action::AbstractGroupActionType,
action_on::AbstractActionActsOnType=ActionActsOnLeft()
)Parameters
op1::AbstractGroupOperation: The group operation $β$ on $\mathcal G$op2::AbstractGroupOperation: The group operation $β$ on $\mathcal H$action::AbstractGroupActionType: The group action $Ξ±$ of $\mathcal G$ acting on $\mathcal H$.action_on::AbstractActionActsOnType=ActionActsOnLeft(): The type of element in $\mathcal H$ the action is applied to.
The βleftβ in the left semidirect product refers to the side, where the βpureβ group operation takes place The βleft/rightβ for the action refers to the type of group action used The βleft/rightβ to act on refers to the left or right element in the second component, the action is applied to, see e.g. the explanation in ActionActsOnLeft
LieGroups.RightSemidirectProductGroupOperation β TypeRightSemidirectProductGroupOperation{O1,O2,A} <: SemidirectProductGroupOperation{O1,O2,A}A struct to model a right semidirect Lie group product.
Let $(\mathcal G, β)$ and $(\mathcal H, β)$ be two Lie groups with group operations $β$ and $β$, respectively.
Then this group operation $β$ is defined on the product manifold $\mathcal HΓ\mathcal G$ and uses the group operations $β$ in the second component. The first component depends on the choice of the actual AbstractGroupActionType A and what it acts on, i.e. the AbstractActionActsOnType AO.
The resulting group operations are documented in the corresponding compose documentation.
For all four possible cases, we still use the shorthand notation $\mathcal H$β$\mathcal G = (\mathcal HΓ\mathcal G,β)$ when it is clear which variant we refer to. See [HN12, Definition 9.2.22], first definition for more details.
Constructor
RightSemidirectProductGroupOperation(
op1::AbstractGroupOperation,
op2::AbstractGroupOperation,
action::AbstractGroupActionType
action_on::AbstractActionActsOnType=ActionActsOnRight()
)Parameters
op1::AbstractGroupOperation: The group operation $β$ on $\mathcal H$op2::AbstractGroupOperation: The group operation $β$ on $\mathcal G$action::AbstractGroupActionType: The group action $Ξ±$ of $\mathcal G$ acting on $\mathcal H$.action_on::AbstractActionActsOnType=ActionActsOnRight(): The type of element in $\mathcal H$ the action is applied to.
The βrightβ in the right semidirect product refers to the side, where the βpureβ group operation takes place The βleft/rightβ for the action refers to the type of group action used The βleft/rightβ to act on refers to the left or right element in the second component, the action is applied to, see e.g. the explanation in ActionActsOnLeft
LieGroups.SemidirectProductGroupOperation β TypeSemidirectProductGroupOperation{
O1<:AbstractGroupOperation,
O2<:AbstractGroupOperation,
A<:AbstractGroupActionType,
AO <: AbstractActionActsOnType
} <: AbstractProductGroupOperationAn abstract type for all semidirect product group operations.
Most notably there are the left and right semidirect product group operations, see LeftSemidirectProductGroupOperation and RightSemidirectProductGroupOperation, respectively.
Base.inv β Methodinv(L::LieGroup{π½,<:SemidirectProductGroupOperation{β,β,A,AO}}, g)Where {A <: AbstractGroupActionType, AO <: AbstractActionActsOnType} Let $(\mathcal G, β)$ and $(\mathcal H, β)$ be two Lie groups with group operations $β$ and $β$, respectively.
Inverse in Semidirect Product Groups
Let $Ο$ denote a left group action (<:AbstractLeftGroupActionType) and $Ο$ a right group action (<:AbstractRightGroupActionType). Let AO be the type indicating whether the action is applied on the left (ActionActsOnLeft) or right (ActionActsOnRight).
The formulas for the inverse depend on whether the action act on the left or on the right as follows:
Left semidirect product (LeftSemidirectProductGroupOperation):
- Acting on the left (
AO <: ActionActsOnLeft):
\[(g, h)^{-1} = (g^{-1}, Ο_{g}(h^{-1}))\]
\[(g, h)^{-1} = (g^{-1}, Ο_{g^{-1}}(h^{-1}))\]
- Acting on the right (
AO <: ActionActsOnRight):
\[(g, h)^{-1} = (g^{-1}, Ο_{g^{-1}}(h^{-1}))\]
\[(g, h)^{-1} = (g^{-1}, Ο_{g}(h^{-1}))\]
Right semidirect product (RightSemidirectProductGroupOperation):
- Acting on the left (
AO <: ActionActsOnLeft):
\[(h, g)^{-1} = (Ο_{g}(h^{-1}), g^{-1})\]
\[(h, g)^{-1} = (Ο_{g^{-1}}(h^{-1}), g^{-1})\]
- Acting on the right (
AO <: ActionActsOnRight):
\[(h, g)^{-1} = (Ο_{g^{-1}}(h^{-1}), g^{-1})\]
\[(h, g)^{-1} = (Ο_{g}(h^{-1}), g^{-1})\]
Note:
- The formulas above match the conventions in [HN12, Definition 9.2.22] with
Ο = Ξ±. - The relationship between left and right actions is $Ο_g := Ο_{g^{-1}}$.
See also: AbstractLeftGroupActionType, AbstractRightGroupActionType, ActionActsOnLeft, ActionActsOnRight
LieGroups.:β β MethodG β H
β(G, H)For two LieGroups G, H, generate the LeftSemidirectProductLieGroup(G, H), where the corresponding default_left_action(G, H) and ActionActsOnRight are used.
LieGroups.:β β MethodH β G
β(H, G)For two LieGroups H, G, generate the RightSemidirectProductLieGroup(H, G), where the corresponding default_right_action(H, G) and ActionActsOnRight are used.
LieGroups.LeftSemidirectProductLieGroup β FunctionLeftSemidirectProductLieGroup(
N::LieGroup, H::LieGroup, action::AbstractGroupActionType=default_left_action(N, H);
action_on::AbstractActionActsOnType=ActionActsOnLeft()
)Generate the semidirect product Lie Group $\mathcal G β \mathcal H$ for an AbstractGroupActionType using the LeftSemidirectProductGroupOperation as group operation definition. See [HN12, Definition 9.2.22], second definition, for more details.
The short form G β H can be used if the corresponding default_left_action(G,H) as well as the ActionActsOnLeft are the ones you want to use.
LieGroups.RightSemidirectProductLieGroup β FunctionRightSemidirectProductLieGroup(
N::LieGroup, H::LieGroup, action::AbstractGroupActionType=default_right_action(N,H);
action_on::AbstractActionActsOnType=ActionActsOnRight()
)Generate the semidirect product Lie Group $\mathcal H β \mathcal G$ for an AbstractGroupActionType using the RightSemidirectProductGroupOperation for the group operation definition. See [HN12, Definition 9.2.22], first definition, for more details.
The short form H β G can be used if the corresponding default_right_action(H,G) and the ActionActsOnRight are the ones you want to use.
LieGroups.compose β Methodcompose(L::LieGroup{π½,<:SemidirectProductGroupOperation{β,β,<:AbstractLeftGroupActionType,ActionActsOnLeft}}, g, h)Let $(\mathcal G, β)$ and $(\mathcal H, β)$ be two Lie groups with group operations $β$ and $β$, respectively. Let $Ο$ denote a left group action. It here acts on the left.
The LeftSemidirectProductGroupOperation $β$ on $G β H$ is given by
\[ (g_1,h_1) β (g_2,h_2) := \bigl( g_1 β g_2, Ο_{g_2^{-1}}(h_1) β h_2 \bigr).\]
The RightSemidirectProductGroupOperation $β$ on $H β G$ is given by
\[ (h_1,g_1) β (h_2,g_2) := \bigl( Ο_{g_2^{-1}}(h_1) β h_2, g_1 β g_2 \bigr).\]
See also AbstractLeftGroupActionType and ActionActsOnLeft.
LieGroups.compose β Methodcompose(L::LieGroup{π½,<:SemidirectProductGroupOperation{β,β,<:AbstractLeftGroupActionType,ActionActsOnRight}}, g, h)Let $(\mathcal G, β)$ and $(\mathcal H, β)$ be two Lie groups with group operations $β$ and $β$, respectively. Let $Ο$ denote a left group action. It here acts on the right.
The LeftSemidirectProductGroupOperation $β$ on $G β H$ is given by
\[ (g_1,h_1) β (g_2,h_2) := \bigl( g_1 β g_2, h_1 β Ο_{g_1}(h_2) \bigr).\]
The RightSemidirectProductGroupOperation $β$ on $H β G$ is given by
\[ (h_1,g_1) β (h_2,g_2) := \bigl( h_1 β Ο_{g_1}(h_2), g_1 β g_2 \bigr).\]
See also AbstractLeftGroupActionType and ActionActsOnRight.
LieGroups.compose β Methodcompose(L::LieGroup{π½,SemidirectProductGroupOperation{β,β,<:AbstractRightGroupActionType,ActionActsOnLeft}}, g, h)Let $(\mathcal G, β)$ and $(\mathcal H, β)$ be two Lie groups with group operations $β$ and $β$, respectively. Let $Ο$ denote a right group action. It here acts on the left.
The LeftSemidirectProductGroupOperation $β$ on $G β H$ is given by
\[ (g_1,h_1) β (g_2,h_2) := \bigl( g_1 β g_2, Ο_{g_2}(h_1) β h_2 \bigr).\]
The RightSemidirectProductGroupOperation $β$ on $H β G$ is given by
\[ (h_1,g_1) β (h_2,g_2) := \bigl( Ο_{g_2}(h_1) β h_2, g_1 β g_2 \bigr).\]
See also AbstractRightGroupActionType and ActionActsOnLeft.
LieGroups.compose β Methodcompose(L::LieGroup{π½,LeftSemidirectProductGroupOperation{β,β,<:AbstractRightGroupActionType,ActionActsOnRight}}, g, h)Let $(\mathcal G, β)$ and $(\mathcal H, β)$ be two Lie groups with group operations $β$ and $β$, respectively. Let $Ο$ denote a right group action. It here acts on the right.
The LeftSemidirectProductGroupOperation $β$ on $G β H$ is given by
\[ (g_1,h_1) β (g_2,h_2) := \bigl( g_1 β g_2, h_1 β Ο_{g_1^{-1}}(h_2) \bigr).\]
The RightSemidirectProductGroupOperation $β$ on $H β G$ is given by
\[ (h_1,g_1) β (h_2,g_2) := \bigl( h_1 β Ο_{g_1^{-1}}(h_2), g_1 β g_2 \bigr).\]
See also AbstractRightGroupActionType and ActionActsOnRight.