The semidirect product Lie group

The semidirect product has a few choices regarding left and right:

These choices lead to different formulae, usually even all eight cases are different. We still try to document them.

LieGroups.LeftSemidirectProductGroupOperation β€” Type
LeftSemidirectProductGroupOperation{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

A note on left/right

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

source
LieGroups.RightSemidirectProductGroupOperation β€” Type
RightSemidirectProductGroupOperation{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

A note on left/right

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

source
Base.inv β€” Method
inv(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

source
LieGroups.LeftSemidirectProductLieGroup β€” Function
LeftSemidirectProductLieGroup(
    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.

source
LieGroups.RightSemidirectProductLieGroup β€” Function
RightSemidirectProductLieGroup(
    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.

source
Manifolds.compose β€” Method
compose(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.

source
Manifolds.compose β€” Method
compose(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.

source
Manifolds.compose β€” Method
compose(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.

source
Manifolds.compose β€” Method
compose(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.

source