Normalizing group intersection problem: Difference between revisions
No edit summary |
|||
| Line 29: | Line 29: | ||
Now, intersect each member of this descending chain with <math>G_2</math>, to get: | Now, intersect each member of this descending chain with <math>G_2</math>, to get: | ||
<math>G_2 \geq G_2 \cap G_1G_2^{(1)} \geq \ldots | <math>G_2 \geq G_2 \cap G_1G_2^{(1)} \geq \ldots G_2 \cap G_1</math> | ||
Now notice that at each stage (intersection the pointwise stabilizer with <math.G_2</math>, multiplying with <math>G_1</math>, and again intersecting with <math>G_2</math>, the index does not increse. Since we know that <math>[G_2^{(i)}:G_2^{(i+1)}] \leq n-i</math>, we conclude that even in the final descending chain, the indices are bounded by <math>n-i</math>. | Now notice that at each stage (intersection the pointwise stabilizer with <math.G_2</math>, multiplying with <math>G_1</math>, and again intersecting with <math>G_2</math>, the index does not increse. Since we know that <math>[G_2^{(i)}:G_2^{(i+1)}] \leq n-i</math>, we conclude that even in the final descending chain, the indices are bounded by <math>n-i</math>. | ||
The idea is now to start from a generating set of <math>G_1G_2^{(i)}</math> and use that to manufacture a generating set of <math>G_1G_2^{(i+1)}</math>. | The idea is now to start from a generating set of <math>G_2 \cap G_1G_2^{(i)}</math> and use that to manufacture a generating set of <math>G_2 \cap G_1G_2^{(i+1)}</math>. | ||
===The outline for doing that=== | ===The outline for doing that=== | ||
We now need to justify how, at each step, we can use a generating set for <math>G_2 \cap G_1G_2^{(i)}</math> to manufacture a generating set of <math>G_2 \cap G_1G_2^{(i+1)}</math>. | |||
First, do the following: | |||
* Using the [[Schreier-Sims algorithm]] (in a white box fashion) compute generating sets for all the <math>G_2^{(i)}</math>s. | |||
* From this, thus compute generating sets for all the groups <math>G_1G_2^{(i)}</math> (by taking union with the generating set for <math>G_1</math>). | |||
* From this, obtain a membership test for <math>G_1G_2^{(i)}</math> (use here the fact that the [[membership testing problem]] can be solved for permutation groups). | |||
* Using this and the membership test for <math>G_2</math>, obtain a membership test for <math>G_2 \cap G_1G_2^{(i)}</math> for every <math>i</math>. | |||
Now that we have membership tests for everything in the descending chain, we can use the method for [[finding a generating set from a membership test]], one by one at each step of the chain. | |||
Note the following: | |||
* At each step of the chain, the index is bounded by <math>n</math>. Hence, the size of the new generating set is at most <math>n</math> times that of its predecessor. | |||
* We can apply a filter at each step to make sure that the overall size of the generating set remains bounded. | |||
===Analysis of running time=== | |||
Revision as of 08:29, 23 February 2007
Description
Given data
Our universe is some group (such as a linear group or a permutation group) in which products and inverses can be readily computed.
Two groups and in are specified by means of their generating sets and . We are also given that is a normalizing subgroup for , viz every element of normalizes the subgroup of .
Goal
We are required to determine a generating set for ∩ .
Solution
The underlying descending chain
We have the goal of computing . First, consider the descending chain of subgroups:
Here, denotes the subgroup of comprising permutations that fix the first elements in the set. In other words .
Multiplying all terms by :
Each of these is a subgroup because normalizes every element of .
Now, intersect each member of this descending chain with , to get:
Now notice that at each stage (intersection the pointwise stabilizer with <math.G_2</math>, multiplying with , and again intersecting with , the index does not increse. Since we know that , we conclude that even in the final descending chain, the indices are bounded by .
The idea is now to start from a generating set of and use that to manufacture a generating set of .
The outline for doing that
We now need to justify how, at each step, we can use a generating set for to manufacture a generating set of .
First, do the following:
- Using the Schreier-Sims algorithm (in a white box fashion) compute generating sets for all the s.
- From this, thus compute generating sets for all the groups (by taking union with the generating set for ).
- From this, obtain a membership test for (use here the fact that the membership testing problem can be solved for permutation groups).
- Using this and the membership test for , obtain a membership test for for every .
Now that we have membership tests for everything in the descending chain, we can use the method for finding a generating set from a membership test, one by one at each step of the chain.
Note the following:
- At each step of the chain, the index is bounded by . Hence, the size of the new generating set is at most times that of its predecessor.
- We can apply a filter at each step to make sure that the overall size of the generating set remains bounded.