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
} <: AbstractProductGroupOperation
An 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.
Manifolds.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
.
Manifolds.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
.
Manifolds.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
.
Manifolds.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
.