Main Page: Difference between revisions

From formulasearchengine
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
'''Mouse keys''' is a feature of some [[graphical user interface]]s that uses the keyboard (especially [[numeric keypad]])
In [[geometric group theory]], '''Gromov's theorem on groups of polynomial growth''', named for [[Mikhail Gromov (mathematician)|Mikhail Gromov]], characterizes finitely generated [[Group (mathematics)|groups]] of ''polynomial'' growth, as those groups which have [[nilpotent group|nilpotent]] subgroups of finite [[index of a subgroup|index]].  
as a [[pointing device]] (usually replacing a [[Computer mouse|mouse]]). Its roots lie in the earliest days of [[visual editor]]s when line and column navigation was controlled with [[arrow keys]] (e.g., [[HJKL keys|hjkl]], [[ESDX|ctl-esdx]]).
Today, mouse keys usually refers to the [[numeric keypad]] layout standardized with the introduction of the [[X Window System]] in 1984.<ref>[http://www.xfree86.org/current/XKBproto.pdf The X Keyboard Extension: Protocol Specification]</ref><ref>[http://www.xfree86.org/current/XKBlib.pdf The X Keyboard Extension: Library Specification]</ref>


==Layout==
The [[Growth rate (group theory)|growth rate]] of a group is a [[well-defined]] notion from [[asymptotic analysis]]. To say that a finitely generated group has '''polynomial growth''' means the number of elements of [[length]] (relative to a symmetric generating set) at most ''n'' is bounded above by a [[polynomial]] function ''p''(''n''). The ''order of growth'' is then the least [[degree (mathematics)|degree]] of any such polynomial function ''p''.
[[Image:X window system MouseKeys default numpad layout.svg|thumb|left|X window system MouseKeys default numpad layout]]


{| class="wikitable"
A ''nilpotent'' group ''G'' is a group with a [[lower central series]] terminating in the identity subgroup.  
|-
! key
! action
|-
! Num Lock
| With Alt-Shift
Enable/Disable MouseKeys
|-
! 8
| cursor up
|-
! 2
| cursor down
|-
! 6
| cursor right
|-
! 4
| cursor left
|-
! 7
| cursor up and left
|-
! 9
| cursor up and right
|-
! 3
| cursor down and right
|-
! 1
| cursor down and left
|-
! /
| [[X Window System core protocol#Mappings|select primary button]]
|-
! *
| [[X Window System core protocol#Mappings|select modifier button]]
|-
! -
| [[X Window System core protocol#Mappings|select alternate button]]
|-
! 5
| [[Point-and-click|click selected button]]
|-
! +
| [[Double-click|double click selected button]]
|-
! 0
| [[Drag-and-drop|depress selected button]]
|-
! .
| [[Drag-and-drop|release selected button]]
|-
! Enter
| [[Enter key|Enter Key]]
|}


==History==
Gromov's theorem states that a finitely generated group has polynomial growth if and only if it has a nilpotent subgroup that is of finite index.
Historically, MouseKeys supported GUI programs when many [[Computer terminal#Graphical terminals|terminal]]s had no dedicated [[pointing device]]. As pointing devices became ubiquitous, the use of mouse keys narrowed to situations where a pointing device was missing, unusable, or inconvenient. Such situations may arise from the following:
*precision requirements (e.g., [[technical drawing]])
*[[accessibility|disabled user]] or ergonomics issues
*environmental limits (e.g., vibration in car or plane)
*broken equipment


==MouseKeysAccel==
There is a vast literature on growth rates, leading up to Gromov's theorem. An earlier result of [[Joseph A. Wolf]] showed that if ''G'' is a finitely generated nilpotent group, then the group has polynomial growth. [[Yves Guivarc'h]] and independently [[Hyman Bass]] (with different proofs) computed the exact order of polynomial growth. Let ''G'' be a finitely generated nilpotent group with lower central series
[[Image:X Protocol MouseKeysAccel Control Trajectory.svg|thumb|left|X window system MouseKeysAccel trajectory]]


{| class="wikitable"
:<math> G = G_1 \supseteq G_2 \supseteq \ldots. </math>
|-
! parameter
! meaning
|-
! mk_delay
| milliseconds between the initial key press and first repeated motion event
|-
! mk_interval
| milliseconds between repeated motion events
|-
! mk_max_speed
| steady speed (in action_delta units) applied each event
|-
! mk_time_to_max
| number of events (count) accelerating to steady speed
|-
! mk_curve
| ramp used to reach maximum pointer speed
|}


The [[X Window System]] MouseKeysAccel control applies action (usually cursor movement) repeatedly while a direction key
In particular, the quotient group ''G''<sub>''k''</sub>/''G''<sub>''k''+1</sub> is a finitely generated abelian group.  
{1,2,3,4,6,7,8,9} remains depressed.<ref>The X Keyboard Extension: Library Specification, Library Version 1.0/Document Revision 1.1, X Consortium Standard, X Version 11 / Release 6.4, Keyboard Controls, 10.5.2, [http://cvsweb.xfree86.org/cvsweb/xc/doc/specs/XKB/XKBlib/allchaps.ps?rev=1.1&content-type=text/vnd.viewcvs-markup The MouseKeysAccel Control]</ref> When the key is depressed, an ''action_delta'' is immediately applied.  If the key remains depressed, longer than ''mk_delay'' milliseconds, some action is applied every ''mk_interval'' milliseconds until the key is released. If the key remains depressed, after more than ''mk_time_to_max'' actions have been applied, ''action_delta'' magnified ''mk_max_speed'' times, is applied every ''mk_interval'' milliseconds.


The first ''mk_time_to_max'' actions increase smoothly according to an exponential.
'''The Bass&ndash;Guivarch formula''' states that the order of polynomial growth of ''G'' is


<math>
:<math> d(G) = \sum_{k \geq 1} k \ \operatorname{rank}(G_k/G_{k+1}) </math>
\mathrm{action\_delta} \times \mathrm{mk\_max\_speed} \times \left(
\frac{ i } { \mathrm{mk\_time\_to\_max} } \right)
^{\frac{ 1000 + \mathrm{mk\_curve} } { 1000 }}
</math>


{| class="wikitable"
where:
|-
:''rank'' denotes the [[rank of an abelian group]], i.e. the largest number of independent and torsion-free elements of the abelian group.
! mk_curve
! result
|-
! -1000
| uniform speed, linearly increasing action
|-
! 0
| uniform acceleration, linearly increasing speed
|-
! 1000
| uniform jerk, linearly increasing acceleration
|}


These five parameters are configurable.<ref>[http://library.gnome.org/users/gnome-access-guide/stable/dtconfig-mousekeys.html.en GNOME Documentation Library, Configuring a Keyboard-Based Mouse]</ref>
In particular, Gromov's theorem and the Bass&ndash;Guivarch formula imply that the order of polynomial growth of a finitely generated group is always either an integer or infinity (excluding for example, fractional powers).


==Enabling==
In order to prove this theorem Gromov introduced a convergence for metric spaces. This convergence, now called  the [[Gromov&ndash;Hausdorff convergence]], is currently widely used in geometry.
Under the [[X Window System]]s [[X.Org Server|Xorg]] and [[XFree86]] used on [[Unix-like]] systems such as [[Linux]], [[BSD]], and [[AIX]], MouseKeys (and MouseKeysAccel) is nominally (de)activated by Alt+LeftShift+Num Lock.<ref>The X Keyboard Extension: Library Specification, Library Version 1.0/Document Revision 1.1, X Consortium Standard, X Version 11 / Release 6.4, Keyboard Controls, 10.5.1, [http://cvsweb.xfree86.org/cvsweb/xc/doc/specs/XKB/XKBlib/allchaps.ps?rev=1.1&content-type=text/vnd.viewcvs-markup The MouseKeys Control]</ref> MouseKeys without acceleration (also known as plot mode) is sometimes available with Shift+NumLock. This is independent of the [[Window Manager]] in use and may be overridden by a [[configuration file]]. There are also various utilities to allow more precise control via user-configurable key bindings, such as [http://beesbuzz.biz/code/xmousekeys.php xmousekeys] and [http://www.semicomplete.com/projects/xdotool/ xdotool].


MouseKeys for [[Apple Inc]]'s [[Mac OS X]] is enabled and configured via the [[Accessibility]]<ref>[http://www.apple.com/accessibility/macosx/physical.html Apple.com, Mac OS X, Accessibility]</ref> ([apple] => System Preferences => Accessibility => Mouse & Trackpad).
A relatively simple proof of the theorem was found by [[Bruce Kleiner]]. Later, [[Terence Tao]] and [[Yehuda Shalom]] modified Kleiner's proof to make an essentially elementary proof as well as a version of the theorem with explicit bounds.<ref>http://terrytao.wordpress.com/2010/02/18/a-proof-of-gromovs-theorem/</ref><ref>{{cite arxiv |eprint=0910.4148 |author1=Yehuda Shalom |author2=Terence Tao |title=A finitary version of Gromov's polynomial growth theorem |class=math.GR |year=2009}}</ref>


[[Microsoft]] changed the method of enabling between [[Windows 2000]],<ref>Microsoft.com, Accessibility Tutorials, Windows 2000, [http://www.microsoft.com/enable/training/windows2000/default.aspx Turning MouseKeys On and Off]</ref> [[Windows XP]] (added diagonal cursor movement and MouseKeysAccel),<ref>Microsoft.com, Accessibility Tutorials, Windows XP, [http://www.microsoft.com/enable/training/windowsxp/mousekeys.aspx MouseKeys: Control the Mouse Pointer Using the Numeric Keypad]</ref> and [[Windows Vista]].<ref>Microsoft.com, Accessibility Tutorials, Windows Vista, [http://www.microsoft.com/enable/training/windowsvista/mousekeys.aspx Control the mouse pointer with the keyboard (Mouse Keys)]</ref>
== References ==
<references/>
* H. Bass, The degree of polynomial growth of finitely generated nilpotent groups, ''Proceedings London Mathematical Society'', vol 25(4), 1972
* M. Gromov, Groups of Polynomial growth and Expanding Maps, [http://www.numdam.org/numdam-bin/feuilleter?id=PMIHES_1981__53_ ''Publications mathematiques I.H.É.S.'', 53, 1981]
* Y. Guivarc'h, Groupes de Lie à croissance polynomiale, C. R. Acad. Sci. Paris Sér. A&ndash;B 272 (1971). [http://www.numdam.org/item?id=BSMF_1973__101__333_0]
* {{Cite arxiv | last1=Kleiner | first1=Bruce | year=2007  | title=A new proof of Gromov's theorem on groups of polynomial growth | arxiv=0710.4593}}
* J. A. Wolf,  Growth of finitely generated solvable groups and curvature of Riemannian manifolds, ''Journal of Differential Geometry'', vol 2, 1968


== See also ==
[[Category:Theorems in group theory]]
* [[FilterKeys]] feature
[[Category:Nilpotent groups]]
* [[StickyKeys]] feature
[[Category:Infinite group theory]]
* [[Togglekeys]] feature
[[Category:Metric geometry]]
* [[On-screen keyboard]]
[[Category:Geometric group theory]]


==References==
[[fr:Théorème de Gromov sur les groupes à croissance polynomiale]]
{{Reflist}}
[[ru:Теорема Громова о группах полиномиального роста]]
 
{{DEFAULTSORT:Mouse Keys}}
[[Category:Computer accessibility]]
[[Category:Computing input devices]]
[[Category:User interface techniques]]
[[Category:Ergonomics]]

Revision as of 13:01, 12 August 2014

In geometric group theory, Gromov's theorem on groups of polynomial growth, named for Mikhail Gromov, characterizes finitely generated groups of polynomial growth, as those groups which have nilpotent subgroups of finite index.

The growth rate of a group is a well-defined notion from asymptotic analysis. To say that a finitely generated group has polynomial growth means the number of elements of length (relative to a symmetric generating set) at most n is bounded above by a polynomial function p(n). The order of growth is then the least degree of any such polynomial function p.

A nilpotent group G is a group with a lower central series terminating in the identity subgroup.

Gromov's theorem states that a finitely generated group has polynomial growth if and only if it has a nilpotent subgroup that is of finite index.

There is a vast literature on growth rates, leading up to Gromov's theorem. An earlier result of Joseph A. Wolf showed that if G is a finitely generated nilpotent group, then the group has polynomial growth. Yves Guivarc'h and independently Hyman Bass (with different proofs) computed the exact order of polynomial growth. Let G be a finitely generated nilpotent group with lower central series

In particular, the quotient group Gk/Gk+1 is a finitely generated abelian group.

The Bass–Guivarch formula states that the order of polynomial growth of G is

where:

rank denotes the rank of an abelian group, i.e. the largest number of independent and torsion-free elements of the abelian group.

In particular, Gromov's theorem and the Bass–Guivarch formula imply that the order of polynomial growth of a finitely generated group is always either an integer or infinity (excluding for example, fractional powers).

In order to prove this theorem Gromov introduced a convergence for metric spaces. This convergence, now called the Gromov–Hausdorff convergence, is currently widely used in geometry.

A relatively simple proof of the theorem was found by Bruce Kleiner. Later, Terence Tao and Yehuda Shalom modified Kleiner's proof to make an essentially elementary proof as well as a version of the theorem with explicit bounds.[1][2]

References

  • H. Bass, The degree of polynomial growth of finitely generated nilpotent groups, Proceedings London Mathematical Society, vol 25(4), 1972
  • M. Gromov, Groups of Polynomial growth and Expanding Maps, Publications mathematiques I.H.É.S., 53, 1981
  • Y. Guivarc'h, Groupes de Lie à croissance polynomiale, C. R. Acad. Sci. Paris Sér. A–B 272 (1971). [1]
  • Template:Cite arxiv
  • J. A. Wolf, Growth of finitely generated solvable groups and curvature of Riemannian manifolds, Journal of Differential Geometry, vol 2, 1968

fr:Théorème de Gromov sur les groupes à croissance polynomiale ru:Теорема Громова о группах полиномиального роста