I can't change startitemize[n]--> startitemize[1]
Hi Hans, First of all, thank you very much for helping in the above problem. Can you solve this now ? ;-) When I change startitemize[n] to startitemize[1] in line 394 I get this error: ! Argument of \dodoregister has an extra }. <inserted text> \par <to be read again> } \doattributes ...name #1#2\@EA \endcsname \fi {#4} \dostopattributes \dolistitem ...evel \c!style \c!color {\listitem } \fi \fi }\ifconditional \f... \complexdoitemgroupitem ...obreak \fi \dolistitem \relax \ifconditional \pac... <to be read again> $ l.395 \item $ \pi(x^{-1}) = \pi(x)^{-1}$ per a tot $x \in X$. ? x Why? I attach the source file and log file. This is a long file, I know, but I don't know why with 'n' works and '1' does not. Thanks in advance, Xan. PS: Please, CCme. % interface=en output=pdftex %\environment capcalera.context % Capçalera % Regime \enableregime[utf] % Choose a font \setupbodyfont [cmr,11pt] % cmr, 11pt % Be tolerant with paragraph building \setuptolerance [horizontal,verytolerant,stretch] % Choose a language, and associated hyphenation rules. %\language [ca] \mainlanguage[ca] % Page number \setuppagenumbering [location={footer}] % White space between paragraphs %\setupwhitespace [big] % Paper size \setuppapersize [a4] % Margins %\setuplayout [grid=yes, footer=0.5\footerheight, header=0.5\headerheight] %\setuplayout[footer=2cm, header=2cm] %\showlayout %\showframe %\showsetups % Format de marges %\setuplayout[topspace=1.5cm, % marge d'adalt %margin=1.5cm, %marges dels costats %header=1.0cm,%separació entre adalt i primera línia %footer=1.0cm,%separació entre abaix i darrera línia %width=fit,height=fit,backspace=2cm] % Enable colors and activate hyperlinks \setupcolors [state=start] \definecolor[lightblue][r=0.5, g=0.5, b=1.0] %\setupinteraction [state=start, color=lightBlue] %\setupurl[style=small, space=yes] \setupurl[space=yes] % Enumerate the URLs %\useURL[wiki][http://wiki.contextgarden.net][][\ConTeXt\ wiki] %\useURL[nagorko-pdf][http://www.math.bgu.ac.il/~barakw/probseminar/nagorko/slides.pdf][][http://www.math.bgu.ac.il/\~{}barakw/\quad\quad\quad\quad probseminar/nagorko/slides.pdf] %\useURL[govern-me][http://sgtrelinst.caib.es/llibrestil/00index.html][][http://sgtrelinst.caib.es/llibrestil/00index.html] %\useURL[context-manual-pdf][http://www.pragma-ade.com/general/manuals/cont-eni.pdf][][http://www.pragma-ade.com/general/manuals/ cont-eni.pdf] %\useURL [contextgarden] [{http://www.contextgarden.net}] %\useURL [mccammond][{http://www.math.ucsb.edu/~jon.mccammond/geogrouptheory/}][] [{\tf http://www.math.ucsb.edu/\~{}jon.mccammond/geogrouptheory/}] % Fonts %% Chapters... \setupheads[align=flushleft] \setuphead[chapter][style={\tfd\bf}] \setuphead[section][style={\bfc}, header=nomarking] \setuphead[subsection][style={\bfb}] \setuphead[subsubsection][style={\bfa}] %\setuphead[section][textstyle=bold] % Bibliography options % BIBTEX \usemodule[bib] \usemodule[bibltx] \setupbibtex[database=memoria,sort=author] \setuppublications [alternative=ams,numbering=yes, sorttype=bbl, criterium=cite]% \setupheadtext[ca][pubs=Referències] \setuppublicationlist[authoretallimit=3] \setuppublicationlist[authoretaltext={\it\ et al.}] \setuppublicationlist[authoretaldisplay=1] %Indentation \setupheads[indentnext=yes] \setupindenting[yes,small,first] %\setupformulae[indentnext=yes] % Vertical spaces between paragraphs \setupwhitespace[small] %Itemize \setupitemize[each][indentnext=no,margin=2em] % [identnext=yes,margin=2em] \setupitemize[each][headstyle=bold] %\setupitemize[a][right=),stopper=] % Mathematical packets \usemodule[newmat] \usemodule[math-ams] % Heads and footers \setupfootertexts[][{\tfxx \currentdate}] %\setupfootertexts[\pagenumber/\lastpage] %\setupfooter[text][before=\hrule] %\setupheader[text][after=\hrule] %\setupheadertexts[{\tfx Màster de Matemàtiques}][{\tfx \jobname.\ConTeXt{}.\currentdate}] %\setupheadertexts[][{\tfx \currentdate}] % hyphenating \hyphenation{do-cu-ment} \hyphenation{pro-ble-ma} \hyphenation{es-crip-tu-ra} \hyphenation{ge-ne-ra-lit-za-ció} \hyphenation{cor-res-po-nents} \hyphenation{pa-rells} \hyphenation{ge-ne-rat} % Modules \usemodule[tikz] \usemodule[pgfmath] \usetikzlibrary[mindmap,arrows,calc,decorations.pathmorphing,decorations.markings] %\usetikzlibrary[trees] % AMSTHM equivalent %% Exercici \defineenumeration [exercici] [text={Problema},headstyle=bold,between=\blank,titledistance=0em,textdistance=1em, stopper={.\space},location=serried,left={\bgroup\bf},right={\egroup},width=fit,before={\bgroup\startframedtext[background=screen,frame=off,width=broad]},after={\stopframedtext\egroup}] %% Lema \defineenumeration [lema] [text={Lema}, % Què es mostra before={\blank[big]}, % abans de lema, un bigskip after={\blank[big]}, % després de lema, un bigskip headstyle=bold, % Negreta per la capçaleras %between=\blank, % Entre Lemmes una línia en blanc titledistance=.5em, % espai entre número i parèntesis. textdistance=.5em, % espai entre ) i text stopper={.\space}, % Com acaba. Després de parèntesis un '.' location=serried, width=fit, % que ocupi tot l'espai style=italic, % estil del text title=yes, % si puc posar o no arguments opcionals titlestyle=bf, % estil del títol way=bytext, % enumerar en tot el document conversion=numbers,indenting=yes] % enumera amb arabic %% Proposició, corol·laris, teoremes. %% Comparteix els nombres amb lema %% Si volem que vagin a part, hem de posar 'number=proposition' \defineenumeration [proposition] [lema] [text={Proposició}] \defineenumeration [corollary] [lema] [text={Corol·lari}] \defineenumeration [theorem] [lema] [text={Teorema}] %% Definició \defineenumeration [definition] [lema] [text={Definició},style=tf,titlestyle=bf,indenting=yes] \defineenumeration [notation] [definition] [text={Notació},style=tf,titlestyle=bf,indenting=yes] \defineenumeration [nota] [definition] [text={Nota},style=tf,titlestyle=bf,indenting=yes] %% Demostració \defineenumeration[demo][text={Demostració.\space},number=no,location=serried,width=fit,headstyle=italic,indentnext=yes,between=\blank,textdistance=.5em,closesymbol={\mathematics{\Box}},style=normal,indenting=yes] % Table of contents %% dots between... and subsubsubsection are not listed \setupcombinedlist[content][level=4,alternative=c] %% section = bold. % width= 10mm --> less space between num-letter %% line break after section. \setuplist[section][style=bold,width=10mm] \setuplist[section][before=\blank] %% margin = 10 mm. Put the subsection just bottom section. \setuplist[subsection][margin=10mm,width=10mm] \setuplist[subsubsection][margin=20mm,width=10mm] %\setuplist[subsection] %[distance=1em] % section = bold. % % Això ho trec d'un manual: %\setuplist[subsection] % [margin=1em, % numbercommand=\NumCom] %\def\NumCom#1{\hbox to 2em{\hfill #1}} % Set "Índex" like "Índex de continguts" \setupheadtext [ca] [content=Índex] % Definitions/abbreviations \define[1]\dist{d(\sigma_g(#1), \sigma_h(#1))} \define[1]\imp{{\bgroup\startframedtext[background=screen,frame=on,width=broad]#1\stopframedtext\egroup}} %\define[1]\imp{{\bgroup\startframedtext[background=color,backgroundcolor=lightblue,frame=on,width=broad]#1\stopframedtext\egroup}} % SPLIT \def\startsplit {\startalign} % no number by default \def\stopsplit {&\doalignNR[+][]\crcr % for a number on last line \stopalign} % Other \setupunderbar[alternative=b] % Fix underline style % For putting underline with spaces: \underbar{\dorecurse{40}~} % Define new register for the Index of Symbols \defineregister[symbol][symbols] % Start the text \starttext %\version[concept] \subsubsubject{Paraules sobre un alfabet} En aquest apartat farem memòria de la definició de paraula (sobre un alfabet) i introduirem certes notacions i operacions estàndards que farem servir posteriorment. Recordem que un {\em alfabet}\index{alfabet} és un conjunt qualsevol de símbols, els quals anomenarem {\em lletres}\index{lletres}. Si $A$ és un alfabet, aleshores una {\em paraula $w$ sobre $A$}\index{paraula} és una successió finita de lletres de $A$, que escriurem com $w = w_1 \ldots w_k$. Indicarem amb $\varepsilon$ la paraula que no té cap lletra, la qual anomenarem {\em paraula buida}\index{paraula+buida}. Quan $w$ consti de dues o més lletres iguals consecutives, per comoditat, podrem agrupar-les usant la notació multiplicativa. Per exemple si $A = \{a,b\}$, aleshores $ab^3a^2b$ denotarà la paraula $abbbaab$. La {\em concatenació}\index{concatenació de paraules} de dues paraules $w_1$, $w_2$ sobre $A$, que indicarem amb $w_1 \cdot w_2$, és la juxtaposició de $w_1$ i $w_2$, és a dir, si $w_1 = a_1 \ldots a_k$ i $w_2 = b_1 \ldots b_s$, aleshores \startformula w_1 \cdot w_2 = a_1 \ldots a_k b_1 \ldots b_s, \stopformula amb la convenció que $w_1 \cdot \varepsilon = \varepsilon \cdot w_1 = w_1$. Sovint ometrem el símbol $\cdot$ i escriurem $u v$ per denotar $u \cdot v$. Si $w$ és una paraula sobre $A$, aleshores $l(w)$\symbol{$l(w)$} denotarà la seva {\em longitud}\index{longitud+d'una paraula}, és a dir, el seu nombre de símbols. De forma clara, $l(u \cdot v) = l(u) + l(v)$, per a qualssevol paraules $u, v$ sobre $A$. D'altra banda, indicarem amb $w(t)$ el {\em prefix de $w$ de longitud $t$}\index{paraula+prefix de longitud $t$,}. Formalment, si $w = \varepsilon$, $w(t) = \varepsilon$ i si $w = w_1 \ldots w_k$, aleshores $w(t) = w_1 \ldots w_t$. Per últim, indicarem amb $A^*$ el {\em monoide lliure sobre $A$}\index{monoide lliure}, és a dir, el conjunt de totes les paraules sobre $A$. \subsubsubject{Grups lliures} En aquesta secció construirem el {\em grup lliure} de base $X$ un conjunt qualsevol i descriurem algunes de les seves propietats a mode de teoremes. Donat $X$ un conjunt qualsevol, agafem un conjunt d'inverses formals de $X$, que indicarem amb $X^{-1}$, format per símbols $x^{-1}$ per a cada $x \in X$. Formalment, $X^{-1}$ és un conjunt del mateix cardinal que $X$ juntament amb una funció bijectiva ${}^{-1} \colon X \to X^{-1}$, de manera que, per a tot $x \in X$, la imatge de $x$ per ${}^{-1}$ s'escriu $x^{-1}$. Amb aquests conjunts podem formar el monoide lliure ${(X \cup X^{-1})}^*$ els elements del qual són llistes finites d'elements de $X$ i de les seves inverses formals. Enfatitzem que els elements de $X^{-1}$ són inverses formals: si $X = \{a, b\}$, aleshores $b$, $aba^{-1}$, $ab$ i $aba^{-1}a$ són elements diferents en el monoide lliure ${(X \cup X^{-1})}^*$. Afegirem dues convencions: abusant del llenguatge, si $a \in X^{-1}$ i $a = x^{-1}$ per a algun $x \in X$, aleshores $a^{-1}$ denotarà $x$, o sigui, de manera informal, el que feim és fer involutiva la funció ${}^{-1}$. D'altra banda, estendrem les inverses formals a les paraules. Per a la paraula buida definim $\varepsilon^{-1} = \varepsilon$, i si \startformula w=x_1 x_2 \ldots x_{k-1}x_k \in {(X \cup X^{-1})}^*, \stopformula aleshores $w^{-1}$ indicarà la paraula \startformula w^{-1} = x_k^{-1}x_{k-1}^{-1}\ldots x_2^{-1} x_1^{-1} \in {(X \cup X^{-1})}^*. \stopformula En poques paraules, amb aquestes convencions, hem aconseguit que ${}^{-1}$ sigui un morfisme en ${(X \cup X^{-1})}^*$ respecte de la concatenació de paraules. Sobre ${(X \cup X^{-1})}^*$ definim la relació $\sim$ definida de la manera següent: dues paraules $u$, $v$ són equivalents, i.e., $u \sim v$, si, i només si, podem passar d'una a l'altra amb un nombre finit de passes del tipus següent: \startitemize[n] \item Reducció: l'eliminació d'una ocurrència de $xx^{-1}$, per a qualque $x \in X\cup X^{-1}$. \item Amplificació: l'afegit d'una ocurrència de $xx^{-1}$, per a qualque $x \in X \cup X^{-1}$. \stopitemize És clar que $\sim$ és una relació d'equivalència. A més, preserva l'estructura de ${(X \cup X^{-1})}^*$: si $u_1 \sim u_2$ i $v_1 \sim v_2$, aleshores $u_1 \cdot v_1 \sim u_2 \cdot v_2$ i $u_1^{-1} \sim u_2^{-1}$. Per tot això, es pot veure fàcilment que ${(X \cup X^{-1})}^*/\sim$ és un grup (l'element neutre és $[\varepsilon]_\sim$ i la inversa de $[w]_\sim$ és $[w^{-1}]_\sim$). Anomenarem a aquest grup el {\em grup lliure de base $X$}\index{grup+lliure}, i l'indicarem amb $F(X)$\symbol{$F(X)$}. Si $X$ té només un sol element, aleshores $F(X) \cong \integers$, el qual és l'únic grup lliure abelià no trivial. Si $X = \emptyset$, aleshores $F(X) \cong \{1\}$. Una paraula sobre $X \cup X^{-1}$ és {\em reduïda}\index{paraula+reduïda} si no conté cap ocurrència de la forma $xx^{-1}$, amb $x \in X \cup X^{-1}$. Qualsevol paraula que només conté una lletra i $aba^{-1}$ són paraules reduïdes. La paraula buida també és reduïda. En canvi $abb^{-1}b$ i $aba^{-1}abb^{-1}a^{-1}$ no són paraules reduïdes. Donada una paraula $w \in {(X \cup X^{-1})}^*$, existeix una paraula reduïda $u$ tal que $w \sim u$, obtinguda aplicant un nombre finit de passes de reducció \cite[extras={, Lema~6.1}][grillet], la qual indicarem amb $red(w)$\symbol{$red(w)$}. A més, aquesta paraula és única, o sigui, no existeix cap altra paraula reduïda dins la classe d'equivalència de $w$ \cite[right={; }, extras={, Lema~6.4}][grillet]\cite[left=,extras={, Teorema~2.1.2}][robinson]. Això fa que el grup lliure $F(X)$ sigui isomorf al grup format pel conjunt de paraules reduïdes sobre $X \cup X^{-1}$ amb l'operació binària consistent en la concatenació de dues paraules reduïdes seguida de la reducció (per exemple, l'aplicació que envia cada paraula reduïda $u$ a la classe d'equivalència $[u]_\sim$ és un isomorfisme entre aquests grups). Estrictament parlant $X$ no està inclòs dins $F(X)$, ara bé, tenim la inclusió natural $\eta$ de $X$ en $F(X)$ tal que $\eta(x) = [x]_\sim$, per a tot $x \in X$. A més, aquesta inclusió es pot estendre per a $X^{-1}$ de la forma $\eta(x^{-1}) = [x^{-1}]_\sim$, per a tot $x \in X$. Per construcció de $F(X)$, això fa que tot element de $F(X)$ es pugui posar com a producte de elements de $\eta(X)$ i els seus inversos, la qual cosa implica el resultat següent: \starttheorem{\cite[right={; }, extras={, Proposició~6.6}][grillet]\cite[left=,extras={, Proposició~1.6}][cgt]}El grup lliure $F(X)$ està generat per $\eta(X)$. \stoptheorem Una propietat molt important que compleix el grup lliure, la qual el caracteritza, és la {\em propietat universal}\index{propietat universal}, que podem enunciar com el resultat següent: \starttheorem{\cite[extras={, Teorema~6.7}][grillet]} Sigui $\eta \colon X \to F(X)$ la inclusió natural. Per a tota funció $f$ de $X$ a un grup qualsevol $G$, existeix un únic morfisme $\nu \colon F(X) \to G$ tal que $\nu \circ \eta = f$. \stoptheorem \startcorollary[thme:gruplliure-imatge]{\cite[grillet, robinson]} Sigui $G$ un grup generat per un conjunt $X$. Aleshores existeix un homomorfisme exhaustiu de $F(X)$ a $G$, o sigui, tot grup és imatge del grup lliure per a qualque homomorfisme. \stopcorollary Altres propietats interessants del grup lliure són les seguents: \starttheorem{\cite[extras={, Teorema~2.1.3}][robinson]} Sigui $G$ un grup i $X$ un subconjunt de $G$. Si tot element $g$ de $G$ es pot escriure de forma única com a $g = x_1^{l_1} \ldots x_r^{l_r}$ amb $r \geq 0$, $x_i \in X$, $l_i \in \integers$ tals que $l_i \neq 0$ i $x_i \neq x_{i+1}$, per a tot $i \in \{0, \ldots, r\}$, aleshores $G$ és lliure de base $X$. \stoptheorem \starttheorem{\cite[extras={, Proposició~1.9}][cgt]} Sigui $X$ un subconjunt de $G$ tal que $X \cap X^{-1} = \emptyset$. Aleshores $X$ és una base d'un subgrup lliure de $G$ si, i només so, no hi ha cap producte de la forma $x_1 \ldots x_r$ que sigui trivial, amb $r \geq 1$, $x_i \in X \cup X^{-1}$ i $x_i \neq x_{i+1}^{-1}$, on $i \in \{0, \ldots, r\}$. \stoptheorem \starttheorem{\cite[robinson,cgt]}Siguin $X$, $Y$ conjunts qualssevol. Aleshores $F(X) \cong F(Y)$ si, i només si, $\lvert X \rvert = \lvert Y \rvert$. \stoptheorem Aquest darrer teorema permet definir el {\em rang d'un grup lliure}\index{grup+lliure+rang,} com el cardinal de qualsevol de les seves bases. En aquest sentit, indicarem amb $F_n$\symbol{$F_n$} el {\em grup lliure de rang $n$}. Per últim, introduirem notació. Si $w$ és una paraula sobre $X \cup X^{-1}$, la {\em longitud reduïda} de $w$\index{longitud+reduïda d'una paraula}, que indicarem amb $\lvert w \rvert$\symbol{$\lvert w \rvert$}, és la longitud de la paraula reduïda de $w$, és a dir, $l(red(w))$. De forma òbvia tenim que, per a totes paraules $u, v$ sobre $X \cup X^{-1}$, $\lvert uv \rvert \leq \lvert u \rvert + \lvert v \rvert$. D'altra banda, si $v, w \in {(X \cup X^{-1})}^*$, aleshores direm que $v$ i $w$ són {\em iguals dins el grup lliure $F(X)$}\index{paraules+iguals dins el grup lliure} si $red(v) = red(w)$ o, equivalentment, si $[v]_\sim = [w]_\sim \in F(X)$. \subsubsubject{Presentacions de grups} Una presentació d'un grup és una generalització del concepte de taula de productes d'un grup. Donat un grup $G$, la seva taula de valors proporciona informació sobre el resultat del producte entre dos elements qualssevol. Però, en aquesta taula, hi ha valors que són obvis (per exemple, sempre $g g^{-1} = 1$, per a tot $g \in G$) o que es poden deduir d'altres productes (per exemple, si $g^3 = 1$, aleshores $g^2 = g^{-1}$ per a tot $g \in G$). Per tant, hi ha certes relacions {\em importants} entre els elements d'un grup que el determinen. Intuïtivament, per exemple, la relació $a^n = 1$ determina el grup $\integers_n$. Ara bé, així com és important especificar les relacions que governen el grup, també ho és especificar el seus elements, ja que el grup $\integers_n \oplus \integers$ amb $a = (1,0)$ i $b = (0,1)$ també compleix que $a^n = 1$. Per tant, informalment, una presentació no serà res més que un conjunt d'elements, que direm {\em generadors}, i un conjunt de {\em relacions} entre ells. Per definir formalment les presentacions de grups ens fa falta recordar què s'entèn per grup quocient. \startdefinition Sigui $G$ un grup i $N$ un subgrup normal de $G$. El {\em grup quocient de $G$ per $N$} (també anomenat {\em grup quocient de $G$ mòdul $N$})\index{grup+quocient}, que indicarem amb $G/N$\symbol{$G/N$}, és el grup format pels cosets de $N$, $\{g N \mid g \in G\}$, i el producte $\cdot$ definit com \startformula a N \cdot b N = ab N. \stopformula A més, l'aplicació $x \mapsto xN = Nx$ és un morfisme exhaustiu entre $G$ i $G/N$ el nucli del qual és $N$. Aquesta aplicació s'anomena {\em projecció canònica dins el grup quocient $G/N$}\index{grup+quocient+projecció canònica,}.%\cite[grillet] \stopdefinition D'ara en endavant, si $G$ és un grup i $X$ és un subconjunt de $G$, indicarem amb $\langle \langle X \rangle \rangle$\symbol{$\langle \langle X \rangle \rangle$} la {\em clausura normal de $X$ en $G$}\index{clausura normal}, és a dir, el subgrup normal més petit que conté $X$. \startdefinition Una {\em presentació {\cal P} amb generadors $X$ i relacions $R$}\index{presentació}, que indicarem amb ${\cal P} = \langle X \mid R \rangle$\symbol{${\cal P} = \langle X \mid R \rangle$}, és un parell ordenat $(X, R)$, on $X$ és un conjunt qualsevol i $R \subseteq F(X) \times F(X)$ és una relació binària sobre el grup lliure $F(X)$. Una presentació defineix el grup quocient $F(X)/\langle \langle R_* \rangle \rangle$, que indicarem amb $G({\cal P})$, on \startformula R_* = \{uv^{-1} \mid (u, v) \in R\} \subseteq F(X). \stopformula Dues presentacions ${\cal P}$ i ${\cal P'}$ són {\em equivalents}\index{presentació+equivalent} si els seus grups $G({\cal P})$ i $G({\cal P^\prime})$ són isomorfs. Freqüentment, per abús de llenguatge, s'identifica la presentació ${\cal P}$ i el seu grup $G({\cal P})$. \stopdefinition Per exemple, si $X = \{a \}$ i $R = \{(a^8,1) \mid a \in X\}$, aleshores $\langle X \mid R \rangle = \integers_8$ (realment el que passa és que el grup que representa aquesta presentació és isomorf a $\integers_8$). Per comoditat, sovint s'abusa de la notació i s'escriuen els parells ordenats de la relació $R$ com una igualtat. Així, l'exemple anterior s'ecriuria com $\langle a \mid a^8 = 1\rangle$. A més, moltes vegades les relacions del tipus $u = v$ són escrites en la forma $uv^{-1} = 1$. Per exemple, $\langle a, b \mid ab = ba \rangle = \langle a, b \mid aba^{-1}b^{-1} = 1\rangle$ i $\langle a \mid a^8 = a^3\rangle = \langle a \mid a^5 = 1\rangle$. \startdefinition Sigui $G$ un grup i ${\cal P} = \langle X \mid R\rangle$ una presentació. Direm que ${\cal P}$ és una {\em presentació de $G$}\index{presentació+d'un grup} si $G({\cal P}) \cong G$. \stopdefinition \startdefinition Una presentació ${\cal P} = \langle X \mid R\rangle$ és {\em finita}\index{presentació+finita} quan $X$ i $R$ són ambdós finits. I un grup $G$ és {\em finitament presentable}\index{grup+finitament presentat} si existeix una presentació finita de $G$. \stopdefinition Notem que, pel Corol·lari \in[thme:gruplliure-imatge], tenim que tot grup és imatge del grup lliure. Per tant, aplicant el Primer Teorema d'Isomorfia, tenim que tot grup és isomorf a un grup d'una presentació. D'altra banda, la definició que hem donat és equivalent a una definició basada en relacions d'equivalència (amb una construcció anàloga del grup lliure): si $X$ és un conjunt qualsevol i $R$ és un subconjunt de ${(X \cup X^{-1})}^*$, es pot definir la relació d'equivalència $\approx$ definida de la manera següent: dues paraules $u, v \in {(X \cup X^{-1})}^*$ són tals que $u \approx v$ si, i només si, es pot passar d'una a l'altra amb un nombre finit de passes del tipus següent: \startitemize[n] \item Reducció: l'eliminació d'una ocurrència de $xx^{-1}$, per a qualque $x \in X\cup X^{-1}$, o d'una ocurrència d'una relació $r \in R$. \item Amplificació: l'afegit d'una ocurrència de $xx^{-1}$, per a qualque $x \in X \cup X^{-1}$, o d'una ocurrència d'una relació $r \in R$. \stopitemize Es pot veure que $\approx$ és d'equivalència i que $F(X)/\approx$ és un grup, que coincideix amb $G({\cal P})$ amb ${\cal P} = \langle X \mid R'\rangle$, on $R' = \{(red(r),1) \mid r \in R\} \subseteq F(X) \times F(X)$ \cite[magnus]. Tot seguit, oferim diverses presentacions dels grups més usuals: \startitemize[n] \item El grup lliure $F(X)$ té presentació $\langle X \mid \emptyset\rangle$. En particular $\integers$ té $\langle a \mid \emptyset \rangle$ com a presentació (recordem que $\integers$ és isomorf al grup lliure $F_1$ de rang $1$). \item El grup $\integers$ (com els altres grups) també té altres presentacions menys {\em naturals}, com, per exemple, $\langle a, b \mid ababa = 1\rangle$ \cite[millerIII]. \item Qualsevol grup finit $G = \{a_1, \ldots, a_n\}$ té una presentació finita: la corresponent a agafar tots els seus elements com a generadors i totes les relacions de la taula de productes de $G$ (aquestes tenen la forma $a_i a_j = a_k$ i n'hi ha $n^2$). \item $\integers_n \cong \langle a \mid a^n = 1 \rangle$. \item $\integers \oplus \integers$ té $\langle a, b \mid ab = ba\rangle$ com a presentació. \item Una presentació de $\integers_n \oplus \integers$ és $\langle a, b \mid a^n = 1\rangle$. \item El grup dièdric $D_n$ d'ordre $2n$ té com a presentació \startformula \langle a, b \mid a^2 = 1, b^n = 1, a^{-1}ba = b^{-1} \rangle. \stopformula \item El grup trivial té com a presentacions \startformula \langle a, b \mid a^{-1} b a = b^2, b^{-1}a b=a^2 \rangle \stopformula i \startformula \langle a, b \mid a^{-1} b^n a = b^{n+1}, a = w \rangle, \stopformula on $w$ és una paraula sobre $\{a, b\}$ tal que la suma dels exponents de $a$ és 0 i $n > 0$ \cite[millerIII, millerIII-article]. Per tant, no és gens senzill saber si una presentació correspon al grup trivial. \item Siguin $m, n \in \integers$. El {\em grup de Baumslag-Solitar}\index{grup+Baumslag-Solitar,}, que indicarem amb $BS(m,n)$\symbol{$BS(m,n)$}, és el subgrup del grup $\text{Homeo}(\reals)$ de les funcions homeomorfes de $\reals$ generat per les funcions lineals $a(x) = nx$ i $b(x) = x + m$ \cite[meier]. Aquest grup té com a presentació $\langle a, b\mid ab^m a^{-1}= b^n \rangle$. \stopitemize Finalment, notem que si ${\cal P} = \langle X \mid R\rangle$ és una presentació, aleshores tenim l'aplicació $\iota \colon X \rightarrow G({\cal P})$ definida com la composició $p \circ \eta$ de la inclusió natural $\eta \colon X \to F(X)$, tal que $\eta(x) = [x]$ per a tot $x \in X \cup X^{-1}$, i la projecció natural $p \colon F(X) \to F(X)/N$, on $N = \langle \langle R_* \rangle \rangle$, tal que $p([w]) = [w]N$, per a tot $[w] \in F(X)$. Aquesta aplicació es pot estendre a ${(X \cup X^{-1})}^*$ com \startformula \iota(w) = \iota(w_1) \cdots \iota(w_r) \in G({\cal P}), \stopformula per a tota paraula $w = w_1 \ldots w_r$ sobre $X \cup X^{-1}$. \starttheorem Per a tota presentació {\cal P} = \langle X \mid R \rangle, $\iota(X)$ genera $G({\cal P})$. \stoptheorem \startdemo Sigui $g \in G({\cal P})$, aleshores $g = [w]N$ per a alguna paraula $w = w_1 \ldots w_r$ sobre $X \cup X^{-1}$. Per tant, \startformula g = [w_1 \ldots w_r]N = ([w_1]\cdots [w_r])N = [w_1]N \cdots [w_r]N. \stopformula Cada $w_i$ és de $X$ o de $X^{-1}$. Si $w_i = x^{-1}$ per a algun $x \in X$, aleshores $[w_i]N = [x^{-1}]N = [x]^{-1}N = \iota(x)^{-1}$. Per tant, $g$ es pot posar com a producte d'elements de $\iota(X)$ i els seus inversos. \stopdemo De forma habitual s'identifica $X$ amb $\iota(X)$, denotant els seus elements amb els mateixos símbols i, per tant, de forma freqüent es diu que $X$ {\em genera} $G({\cal P})$. Per exemple, pel grup $\integers \oplus \integers = \langle a, b \mid ab = ba \rangle$, identifiquem $a$ i $b$ amb $\iota(a)=(1,0)$ i $\iota(b) = (0,1)$, respectivament. \subsubsubject{El problema de la paraula} Sigui $G$ un grup i $X$ un subconjunt de $G$. Aleshores l'aplicació $\pi \colon {(X \cup X^{-1})}^* \to G$\symbol{$\pi$} consistent a enviar cada lletra $x \in X$ a l'element corresponent $\pi(x) = x \in G$ es pot estendre de manera natural a totes les paraules de $X \cup X^{-1}$ de la forma següent: \startitemize[1] \item $\pi(x^{-1}) = \pi(x)^{-1}$ per a tot $x \in X$. \item Per a tota paraula $w = w_1 \ldots w_r$ sobre $X \cup X^{-1}$, \startformula \pi(w) = \pi(w_1) \cdots \pi(w_r) \in G. \stopformula \stopitemize Per tant, $\pi$ és un morfisme de monoides entre ${(X \cup X^{-1})}^*$ i $G$. De forma òbvia, si $X$ és un conjunt de generadors de $G$, aleshores $\pi$ és exhaustiva. En particular, si ${\cal P} = \langle X \mid R \rangle$ és una presentació, aleshores, com que $X$ és un conjunt de generadors de $G({\cal P})$, llavors $\pi \colon {(X \cup X^{-1})}^* \to G({\cal P})$ és un morfisme exhaustiu\footnote{Recordem que abusem del llenguatge, identificant $\iota(X)$ i $X$, i que, realment, $\iota(X)$ és el generador de $G({\cal P})$.}. \startdefinition Sigui $G$ un grup i ${\cal P} = \langle X \mid R\rangle$ és una presentació de $G$. Una paraula $w$ sobre $X \cup X^{-1}$ és {\em nul-homotòpica per ${\cal P}$}\index{paraula+nul-homotòpica per una presentació} si, i només si, $\pi(w) = 1 \in G$. \stopdefinition \startdefinition Sigui $G$ un grup i ${\cal P} = \langle X \mid R\rangle$ una presentació {\em finita} de $G$. El {\em problema de la paraula per a {\cal P}}\index{problema de la paraula+per una presentació finita} consisteix en trobar un algorisme que, donada una paraula $w \in {(X \cup X^{-1})}^*$, decideixi si $\pi(w) = 1$ o $\pi(w) \neq 1$. \stopdefinition Donarem, tot seguit, un criteri per saber si una paraula és nul-homotòpica per una presentació donada. \starttheorem Sigui ${\cal P} = \langle X \mid R \rangle$ amb $X = \{ x_1, \ldots, x_n \}$ i $R = \{ r_1 = 1, \ldots, r_k = 1\}$ una presentació finita i $w$ una paraula sobre $X \cup X^{-1}$. Llavors tenim que $w$ és nul-homotòpica per ${\cal P}$ si, i només si, $w$ compleix la igualtat següent dins el grup lliure $F(X)$: \startformula w = \prod_{i=1}^N u_i^{-1} r_i^{e_i} u_i, \stopformula per a alguns $N \in \naturalnumbers$, $r_i \in R$, $e_i = \pm 1$ i $u_i \in F(X)$, amb $i \in \{1, \ldots, N\}$. \stoptheorem \startdemo \stopdemo El problema de la paraula no és decidible. Pel resultat anterior, el problema de la paraula és equivalent a fer una llista de totes les paraules de la forma \startformula a. \stopformula A \subsubject{Eines geomètrics per fer front al problema de la paraula} Posar la proposició 2.2 de l'article de Joe. \completepublications[criterium=cite] %all per tots \title{Llista de símbols} \placesymbol \title{Índex alfabètic} \placeindex \stoptext \startitemize[1] \item $\pi(x^{-1}) = \pi(x)^{-1}$ per a tot $x \in X$. \item Per a tota paraula $w = w_1 \ldots w_r$ sobre $X \cup X^{-1}$, \startformula \pi(w) = \pi(w_1) \cdots \pi(w_r) \in G. \stopformula \stopitemize \startdefinition Sigui $X$ un conjunt qualsevol i $R \subseteq F(X) \times F(X)$ una relació binària sobre el grup lliure $F(X)$. Una {\em presentació ${\cal P}$ amb generadors $X$ i relacions $R$}\index{presentació}, que indicarem amb ${\cal P} = \langle X \mid R \rangle$, és el grup quocient $F(X)/\langle \langle R_* \rangle \rangle$, on \startformula R_* = \{uv^{-1} \mid (u, v) \in R\} \subseteq F(X). \stopformula Quan ens convengui diferenciar entre la presentació com a un parell ordenat de símbols i el grup quocient en si, indicarem amb ${\cal P}$ la presentació i $G({\cal P})$ el grup que aquesta representa. \stopdefinition This is pdfTeXk, Version 3.141592-1.40.3 (Web2C 7.5.6) (format=cont-en 2009.3.12) 23 JUL 2009 14:04 entering extended mode %&-line parsing enabled. (/usr/share/texmf/web2c/natural.tcx) **memoria.context emergencyend (./memoria.context ConTeXt ver: 2007.09.28 16:52 MKII fmt: 2009.3.12 int: english/english language : language en is active system : cont-new loaded (/usr/share/texmf/tex/context/base/cont-new.tex systems : beware: some patches loaded from cont-new.tex (/usr/share/texmf/tex/context/base/cont-new.mkii) (/usr/share/texmf/tex/context/base/cont-mtx.tex)) system : cont-old loaded (/usr/share/texmf/tex/context/base/cont-old.tex loading : Context Old Macros ) system : cont-fil loaded (/usr/share/texmf/tex/context/base/cont-fil.tex loading : Context File Synonyms ) system : cont-sys.rme loaded (/etc/texmf/tex/context/user/cont-sys.rme (/usr/share/texmf/tex/context/base/type-tmf.tex) (/usr/share/texmf/tex/context/base/type-siz.tex) (/usr/share/texmf/tex/context/base/type-one.tex) (/usr/share/texmf/tex/context/base/type-akb.tex)) bodyfont : 12pt rm is loaded language : patterns en->ec:ec->1->2:3 uk->ec:ec->2->2:3 de->texnansi:tex nansi->3->2:3 de->ec:ec->4->2:3 fr->texnansi:texnansi->5->2:3 fr->ec:ec->6->2:3 es->ec:ec->7->2:3 pt->texnansi:texnansi->8->2:3 pt->ec:ec->9->2:3 it->texnansi :texnansi->10->2:3 it->ec:ec->11->2:3 nl->texnansi:texnansi->12->2:3 nl->ec:ec-
13->2:3 cz->il2:il2->14->2:3 cz->ec:ec->15->2:3 sk->il2:il2->16->2:3 sk->ec:ec ->17->2:3 pl->pl0:pl0->18->2:3 pl->ec:ec->19->2:3 pl->qx:qx->20->2:3 loaded specials : tex,postscript,rokicki loaded \openout3 = `memoria.tui'.
system : memoria.top loaded (./memoria.top specials : loading definition file tpd (/usr/share/texmf/tex/context/base/spec-tpd.tex specials : loading definition file fdf (/usr/share/texmf/tex/context/base/spec-fdf.tex (/usr/share/texmf/tex/context/base/spec-fdf.mkii)) specials : fdf loaded ) specials : fdf,tpd loaded ) \openout0 = `memoria-mpgraph.mp'. \openout0 = `mpgraph.mp'. systems : system commands are disabled (/usr/share/texmf/tex/context/base/type-pre.tex) (/usr/share/texmf/tex/context/base/type-tmf.tex) (/usr/share/texmf/tex/context/base/type-siz.tex) (/usr/share/texmf/tex/context/base/type-one.tex (/usr/share/texmf/tex/context/base/type-tmf.tex) (/usr/share/texmf/tex/context/base/type-siz.tex) (/usr/share/texmf/tex/context/base/type-one.tex) (/usr/share/texmf/tex/context/base/type-akb.tex) (/usr/share/texmf/tex/context/base/type-tmf.tex) (/usr/share/texmf/tex/context/base/type-siz.tex) (/usr/share/texmf/tex/context/base/type-one.tex) (/usr/share/texmf/tex/context/base/type-akb.tex) (/usr/share/texmf/tex/context/base/type-tmf.tex) (/usr/share/texmf/tex/context/base/type-siz.tex) (/usr/share/texmf/tex/context/base/type-one.tex) (/usr/share/texmf/tex/context/base/type-akb.tex) (/usr/share/texmf/tex/context/base/type-tmf.tex) (/usr/share/texmf/tex/context/base/type-siz.tex) (/usr/share/texmf/tex/context/base/type-one.tex) (/usr/share/texmf/tex/context/base/type-akb.tex) (/usr/share/texmf/tex/context/base/type-tmf.tex) (/usr/share/texmf/tex/context/base/type-siz.tex) (/usr/share/texmf/tex/context/base/type-one.tex) (/usr/share/texmf/tex/context/base/type-akb.tex) (/usr/share/texmf/tex/context/base/type-tmf.tex) (/usr/share/texmf/tex/context/base/type-siz.tex) (/usr/share/texmf/tex/context/base/type-one.tex) (/usr/share/texmf/tex/context/base/type-akb.tex) (/usr/share/texmf/tex/context/base/type-tmf.tex) (/usr/share/texmf/tex/context/base/type-siz.tex) (/usr/share/texmf/tex/context/base/type-one.tex) (/usr/share/texmf/tex/context/base/type-akb.tex) (/usr/share/texmf/tex/context/base/type-tmf.tex) (/usr/share/texmf/tex/context/base/type-siz.tex) (/usr/share/texmf/tex/context/base/type-one.tex) (/usr/share/texmf/tex/context/base/type-akb.tex)) color : mpcmyk color space is supported color : mpspot color space is supported color : system rgb is global activated system : module bib loaded (/usr/share/texmf/tex/context/bib/t-bib.tex publications : loading formatting style from bibl-apa (/usr/share/texmf/tex/context/bib/bibl-apa.tex)) system : module bibltx loaded (/usr/share/texmf/tex/context/bib/t-bibltx.tex) publications : wrote a new auxiliary file memoria.aux publications : loading formatting style from bibl-ams (/usr/share/texmf/tex/context/bib/bibl-ams.tex) system : module newmat loaded (/usr/share/texmf/tex/context/base/m-newmat.tex) system : module math-ams loaded (/usr/share/texmf/tex/context/base/math-ams.tex) system : module tikz loaded (/usr/share/texmf/tex/context/pgf/frontendlayer/t-tikz.tex (/usr/share/texmf/tex/context/pgf/basiclayer/t-pgf.tex (/usr/share/texmf/tex/context/pgf/basiclayer/t-pgfcor.tex (/usr/share/texmf/tex/context/pgf/systemlayer/t-pgfsys.tex (/usr/share/texmf/tex/context/pgf/utilities/t-pgfrcs.tex (/usr/share/texmf/tex/context/pgf/utilities/t-pgfmod.tex) (/usr/share/texmf/tex/generic/pgf/utilities/pgfutil-common.tex) (/usr/share/texmf/tex/generic/pgf/utilities/pgfutil-context.def) (/usr/share/texmf/tex/generic/pgf/utilities/pgfrcs.code.tex)) (/usr/share/texmf/tex/generic/pgf/systemlayer/pgfsys.code.tex (/usr/share/texmf/tex/generic/pgf/utilities/pgfkeys.code.tex) (/usr/share/texmf/tex/generic/pgf/systemlayer/pgf.cfg) (/usr/share/texmf/tex/generic/pgf/systemlayer/pgfsys-pdftex.def (/usr/share/texmf/tex/generic/pgf/systemlayer/pgfsys-common-pdf.def)) (./memoria.pgf)) (/usr/share/texmf/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex) (/usr/share/texmf/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex)) (/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcore.code.tex (/usr/share/texmf/tex/generic/pgf/math/pgfmath.code.tex (/usr/share/texmf/tex/generic/pgf/math/pgfmathcalc.code.tex (/usr/share/texmf/tex/generic/pgf/math/pgfmathutil.code.tex) (/usr/share/texmf/tex/generic/pgf/math/pgfmathparser.code.tex) (/usr/share/texmf/tex/generic/pgf/math/pgfmathoperations.code.tex (/usr/share/texmf/tex/generic/pgf/math/pgfmathtrig.code.tex) (/usr/share/texmf/tex/generic/pgf/math/pgfmathrnd.code.tex)) (/usr/share/texmf/tex/generic/pgf/math/pgfmathbase.code.tex))) (/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex) (/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcorepathconstruct.code.tex) (/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcorepathusage.code.tex) (/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcorescopes.code.tex) (/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcoregraphicstate.code.tex) (/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcoretransformations.code.tex) (/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcorequick.code.tex) (/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcoreobjects.code.tex) (/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcorepathprocessing.code.tex) (/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcorearrows.code.tex) (/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex) (/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcoreimage.code.tex) (/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcorelayers.code.tex) (/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcoretransparency.code.tex) (/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcorepatterns.code.tex))) (/usr/share/texmf/tex/generic/pgf/modules/pgfmoduleshapes.code.tex) (/usr/share/texmf/tex/generic/pgf/modules/pgfmoduleplot.code.tex)) (/usr/share/texmf/tex/context/pgf/utilities/t-pgffor.tex (/usr/share/texmf/tex/context/pgf/utilities/t-pgfrcs.tex) (/usr/share/texmf/tex/generic/pgf/utilities/pgffor.code.tex)) (/usr/share/texmf/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex (/usr/share/texmf/tex/generic/pgf/libraries/pgflibraryplothandlers.code.tex) (/usr/share/texmf/tex/generic/pgf/modules/pgfmodulematrix.code.tex) (/usr/share/texmf/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytopat hs.code.tex))) system : module pgfmath loaded (/usr/share/texmf/tex/context/pgf/math/t-pgfmat.tex (/usr/share/texmf/tex/generic/pgf/math/pgfmath.code.tex (/usr/share/texmf/tex/generic/pgf/math/pgfmathcalc.code.tex (/usr/share/texmf/tex/generic/pgf/math/pgfmathutil.code.tex) (/usr/share/texmf/tex/generic/pgf/math/pgfmathparser.code.tex) (/usr/share/texmf/tex/generic/pgf/math/pgfmathoperations.code.tex (/usr/share/texmf/tex/generic/pgf/math/pgfmathtrig.code.tex) (/usr/share/texmf/tex/generic/pgf/math/pgfmathrnd.code.tex)) (/usr/share/texmf/tex/generic/pgf/math/pgfmathbase.code.tex)))) (/usr/share/texmf/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarymindm ap.code.tex (/usr/share/texmf/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytrees .code.tex) (/usr/share/texmf/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarydecor ations.code.tex (/usr/share/texmf/tex/generic/pgf/modules/pgfmoduledecorations.code.tex))) (/usr/share/texmf/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryarrow s.code.tex (/usr/share/texmf/tex/generic/pgf/libraries/pgflibraryarrows.code.tex)) (/usr/share/texmf/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarycalc. code.tex) (/usr/share/texmf/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarydecor ations.pathmorphing.code.tex (/usr/share/texmf/tex/generic/pgf/libraries/pgflibrarydecorations.pathmorphing. code.tex)) (/usr/share/texmf/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarydecor ations.markings.code.tex (/usr/share/texmf/tex/generic/pgf/libraries/pgflibrarydecorations.markings.code .tex)) (./memoria.tuo) (./memoria.tuo) (./memoria.tuo) (./memoria.tuo) (./memoria.tuo) (./memoria.tuo) (./memoria.tuo) (./memoria.tuo) (./memoria.tuo) (./memoria.tuo) (/usr/share/texmf/tex/context/base/sort-lan.tex loading : Context Sorting Macros (languages) (/usr/share/texmf/tex/context/base/sort-lan.mkii)) (./memoria.tuo) (./memoria.tuo) (/usr/share/texmf/tex/context/base/pdfr-def.tex) publications : loading database from memoria.bbl (./memoria.bbl) systems : begin file memoria at line 231 subsubsubject : - Paraules sobre un alfabet subsubsubject : - Grups lliures fonts : resetting map file list {/usr/share/texmf/fonts/map/pdftex/context/original-empty.map} fonts : using map file: original-base {/usr/share/texmf/fonts/map/pdftex/context/original-base.map} fonts : using map file: original-ams-base {/usr/share/texmf/fonts/map/pdftex/context/original-ams-base.map} fonts : using map file: original-public-lm {/usr/share/texmf/fonts/map/pdftex/context/original-public-lm.map} fonts : using map file: lm-ec {/usr/share/texmf/fonts/map/dvips/lm/lm-ec.map} fonts : using map file: lm-math {/usr/share/texmf/fonts/map/dvips/lm/lm-math.map} fonts : using map file: lm-rm {/usr/share/texmf/fonts/map/dvips/lm/lm-rm.map} fonts : using map file: 8r-base {/usr/share/texmf/fonts/map/pdftex/context/8r-base.map} fonts : using map file: ec-base {/usr/share/texmf/fonts/map/pdftex/context/ec-base.map} fonts : using map file: t5-base {/usr/share/texmf/fonts/map/pdftex/context/t5-base.map} fonts : using map file: original-ams-euler {/usr/share/texmf/fonts/map/pdftex/context/original-ams-euler.map} [1.1 \openout0 = `memoria.aux'. \openout7 = `memoria.pgf'. ] [2.2] subsubsubject : - Presentacions de grups [3.3] [4.4] [5.5] subsubsubject : - El problema de la paraula ! Argument of \dodoregister has an extra }. <inserted text> \par <to be read again> } \doattributes ...name #1#2\@EA \endcsname \fi {#4} \dostopattributes \dolistitem ...evel \c!style \c!color {\listitem } \fi \fi }\ifconditional \f... \complexdoitemgroupitem ...obreak \fi \dolistitem \relax \ifconditional \pac... <to be read again> $ l.395 \item $ \pi(x^{-1}) = \pi(x)^{-1}$ per a tot $x \in X$. ? x Here is how much of TeX's memory you used: 11847 strings out of 57878 232954 string characters out of 558687 4761464 words of memory out of 5693254 50828 multiletter control sequences out of 10000+50000 169502 words of font info for 77 fonts, out of 1200000 for 2000 199 hyphenation exceptions out of 8191 48i,19n,63p,1086b,650s stack positions out of 5000i,500n,6000p,200000b,5000s {/usr/share/texmf/fonts/enc/dvips/lm/lm-mathit.enc}{/usr/share/texmf/fonts/enc/ dvips/lm/lm-rm.enc}{/usr/share/texmf/fonts/enc/dvips/lm/lm-ec.enc}{/usr/share/t exmf/fonts/enc/dvips/lm/lm-mathsy.enc} Output written on memoria.pdf (5 pages, 230519 bytes). PDF statistics: 95 PDF objects out of 1000 (max. 8388607) 59 compressed objects within 1 object stream 0 named destinations out of 1000 (max. 131072) 5 words of extra memory for PDF output out of 10000 (max. 10000000)
Hi Xan, Have you ever considered to create a minimum example, your example is far away from this and you would do not only other people a favor with this but you too. Wolfgang
Wolfgang Schuster wrote:
Hi Xan,
Have you ever considered to create a minimum example, your example is far away from this and you would do not only other people a favor with this but you too.
indeed as it takes me 10 minutes of selective deletion to zoom in on the error (tip: use a bit more empty lines in your source) \defineregister[symbol][symbols] \starttext \startitemize[1] \item test \stopitemize \stoptext as you redefine \symbol to be a register entry resolving \symbol[1] inside the itemize does not work any more as expected so, when defining commands - avoid built incommands - for instance by using longer names - or names that are unlikely to show up in the core - or Symbol or MySymbol or so furthermore, a few tips: \setupbodyfont [cmr,11pt] % cmr, 11pt % no need for cmr \setuphead[chapter][style={\tfd\bf}] % \bfd is a bit faster (no need for {} unless embedded []) \usemodule[bib] \usemodule[bibltx] \setupbibtex[database=memoria,sort=author] % avoid this in examples as we don't have your data \usemodule[newmat] % most math is in the core so that module is kind of obsolete \usemodule[math-ams] % not needed, as it is preloaded or loaded automatically \hyphenation{do-cu-ment} \hyphenation{pro-ble-ma} \hyphenation{es-crip-tu-ra} \hyphenation{ge-ne-ra-lit-za-ció} \hyphenation{cor-res-po-nents} \hyphenation{pa-rells} \hyphenation{ge-ne-rat} % collect these exceptions and send then to mojca or arthur \usemodule[tikz] \usemodule[pgfmath] \usetikzlibrary[mindmap,arrows,calc,decorations.pathmorphing,decorations.markings] % it seems that something is loaded twice (or at least dimension registers are redefined) \setupunderbar[alternative=b] % Fix underline style % you can use the textbackgrounds for this (see anch-bar) Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------
En/na Hans Hagen ha escrit:
Wolfgang Schuster wrote:
Hi Xan,
Have you ever considered to create a minimum example, your example is far away from this and you would do not only other people a favor with this but you too.
indeed as it takes me 10 minutes of selective deletion to zoom in on the error (tip: use a bit more empty lines in your source)
\defineregister[symbol][symbols]
\starttext
\startitemize[1] \item test \stopitemize
\stoptext
Thank you VERY much Hans. I'm charmed. Thanks. I was crazy finding the error. I was convinced that it was a silly thing.....
as you redefine \symbol to be a register entry resolving \symbol[1] inside the itemize does not work any more as expected
so, when defining commands
- avoid built incommands - for instance by using longer names - or names that are unlikely to show up in the core - or Symbol or MySymbol or so
Really, I did not know that. It's a messy thing that we could not define what we like ;-)
furthermore, a few tips:
\setupbodyfont [cmr,11pt] % cmr, 11pt
% no need for cmr Yes I know.
\setuphead[chapter][style={\tfd\bf}]
% \bfd is a bit faster (no need for {} unless embedded []) OKay.
\usemodule[bib] \usemodule[bibltx] \setupbibtex[database=memoria,sort=author]
% avoid this in examples as we don't have your data Okay. Sorry.
\usemodule[newmat]
% most math is in the core so that module is kind of obsolete
\usemodule[math-ams]
% not needed, as it is preloaded or loaded automatically
Mmmm... interesting. I remember that I put because I just want to put one symbol. I don't remember why I have that....
\hyphenation{do-cu-ment} \hyphenation{pro-ble-ma} \hyphenation{es-crip-tu-ra} \hyphenation{ge-ne-ra-lit-za-ció} \hyphenation{cor-res-po-nents} \hyphenation{pa-rells} \hyphenation{ge-ne-rat}
% collect these exceptions and send then to mojca or arthur
Okay. It's a pleasure to give to you. How can I see what is, if there is, the lists of hyphenated words?
\usemodule[tikz] \usemodule[pgfmath] \usetikzlibrary[mindmap,arrows,calc,decorations.pathmorphing,decorations.markings]
% it seems that something is loaded twice (or at least dimension registers are redefined)
\setupunderbar[alternative=b] % Fix underline style
% you can use the textbackgrounds for this (see anch-bar)
Thanks for this pointing.... Regards, Xan.
Xan wrote:
Really, I did not know that. It's a messy thing that we could not define what we like ;-)
it's the nature of a tex macro package; ok, i can add some strict testing for in in mkiv but even then it might just be that someone who knows th einternals (like wolfgang or wolfgang or wolfgang) wants to overload something built in by something better
% collect these exceptions and send then to mojca or arthur
Okay. It's a pleasure to give to you. How can I see what is, if there is, the lists of hyphenated words?
best ask mojca or arthur who to contact as they are in charge of pattern management for all tex distributions Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------
On Thu, Jul 23, 2009 at 4:37 PM, Hans Hagen
Xan wrote:
Really, I did not know that. It's a messy thing that we could not define
what we like ;-)
it's the nature of a tex macro package; ok, i can add some strict testing for in in mkiv but even then it might just be that someone who knows th einternals (like wolfgang or wolfgang or wolfgang) wants to overload something built in by something better
why not discipline ? I mean something like 0) context macro are ok 1) \usemodule[foo] are ok (no collision with macros in 0) 2) define your macros inside \startPrivate[namespace] ... \stopPrivate 3) explicit redefinition of macros in 0,1 by 3) should be no collision between 0,1,2 -- luigi
On Thu, Jul 23, 2009 at 4:58 PM, Wolfgang Schuster < schuster.wolfgang@googlemail.com> wrote:
Am 23.07.2009 um 16:48 schrieb luigi scarso:
2) define your macros inside
\startPrivate[namespace] ... \stopPrivate
And how do you want to access the macros in your document?
by namespace ? -- luigi
Am 23.07.2009 um 17:05 schrieb luigi scarso:
On Thu, Jul 23, 2009 at 4:58 PM, Wolfgang Schuster < schuster.wolfgang@googlemail.com> wrote:
Am 23.07.2009 um 16:48 schrieb luigi scarso:
2) define your macros inside
\startPrivate[namespace] ... \stopPrivate
And how do you want to access the macros in your document?
by namespace ?
can you give a example! Wolfgang
On Thu, Jul 23, 2009 at 5:10 PM, Wolfgang Schuster < schuster.wolfgang@googlemail.com> wrote:
Am 23.07.2009 um 17:05 schrieb luigi scarso:
On Thu, Jul 23, 2009 at 4:58 PM, Wolfgang Schuster <
schuster.wolfgang@googlemail.com> wrote:
Am 23.07.2009 um 16:48 schrieb luigi scarso:
2) define your macros inside
\startPrivate[namespace] ... \stopPrivate
And how do you want to access the macros in your document?
by namespace ?
can you give a example!
hmm, where do you see the problem ? -- luigi
On Thu, Jul 23, 2009 at 5:16 PM, luigi scarso
On Thu, Jul 23, 2009 at 5:10 PM, Wolfgang Schuster < schuster.wolfgang@googlemail.com> wrote:
Am 23.07.2009 um 17:05 schrieb luigi scarso:
On Thu, Jul 23, 2009 at 4:58 PM, Wolfgang Schuster <
schuster.wolfgang@googlemail.com> wrote:
Am 23.07.2009 um 16:48 schrieb luigi scarso:
2) define your macros inside
\startPrivate[namespace] ... \stopPrivate
And how do you want to access the macros in your document?
by namespace ?
can you give a example!
hmm, where do you see the problem ?
I mean, we already have \setvalue .... -- luigi
Am 23.07.2009 um 17:16 schrieb luigi scarso:
hmm, where do you see the problem ?
As programmer it's no problem to use a namespace for macros but how do you convince users to use them, should they write \startprivate[foo] \definenote[footnote][...] \defineregister[index][...] ... \stopprivate and use them with 'fooindex', 'foofootnote' ... in their documents? In this case it would be better to write to write commands like \MyNote Wolfgang
On Thu, Jul 23, 2009 at 5:33 PM, Wolfgang Schuster < schuster.wolfgang@googlemail.com> wrote:
Am 23.07.2009 um 17:16 schrieb luigi scarso:
hmm, where do you see the problem ?
As programmer it's no problem to use a namespace for macros but how do you convince users to use them,
it's up to us make an easy convention.
should they write
\startprivate[foo]
\definenote[footnote][...]
\defineregister[index][...]
...
\stopprivate
and use them with
'fooindex', 'foofootnote' ...
in their documents?
true, but what about \startprivate[texns:Logo='www.logosrl.it/context'] \definenote[Footnote][...] \defineregister[Index][...] ... \stopprivate \LogoFootnote \LogoIndex Not so horrible; one can easily see in the source own private macros.
In this case it would be better to write to write commands like \MyNote
Yes, it's a discipline problem. -- luigi
On Thu, 23 Jul 2009, luigi scarso wrote:
On Thu, Jul 23, 2009 at 4:37 PM, Hans Hagen
wrote: Xan wrote:
Really, I did not know that. It's a messy thing that we could not define
what we like ;-)
it's the nature of a tex macro package; ok, i can add some strict testing for in in mkiv but even then it might just be that someone who knows th einternals (like wolfgang or wolfgang or wolfgang) wants to overload something built in by something better
why not discipline ?
I mean something like 0) context macro are ok 1) \usemodule[foo] are ok (no collision with macros in 0) 2) define your macros inside \startPrivate[namespace] ... \stopPrivate 3) explicit redefinition of macros in 0,1
by 3) should be no collision between 0,1,2
I think an easier thing to do will be to follow latex's style of \newcommand and \renewcommand. That is, all \definecommands should check if the macro is previously defined or not. If it is defined, issue a warning or an error. And maybe have some hook to disable the warning/error for those who know what they are doing. Aditya
On Thu, Jul 23, 2009 at 5:05 PM, Aditya Mahajan
On Thu, 23 Jul 2009, luigi scarso wrote:
On Thu, Jul 23, 2009 at 4:37 PM, Hans Hagen
wrote: Xan wrote:
Really, I did not know that. It's a messy thing that we could not define
what we like ;-)
it's the nature of a tex macro package; ok, i can add some strict testing for in in mkiv but even then it might just be that someone who knows th einternals (like wolfgang or wolfgang or wolfgang) wants to overload something built in by something better
why not discipline ?
I mean something like 0) context macro are ok 1) \usemodule[foo] are ok (no collision with macros in 0) 2) define your macros inside \startPrivate[namespace] ... \stopPrivate 3) explicit redefinition of macros in 0,1
by 3) should be no collision between 0,1,2
I think an easier thing to do will be to follow latex's style of \newcommand and \renewcommand. That is, all \definecommands should check if the macro is previously defined or not. If it is defined, issue a warning or an error. And maybe have some hook to disable the warning/error for those who know what they are doing.
yes, it's equivalent -- luigi
Am 23.07.2009 um 17:05 schrieb Aditya Mahajan:
I think an easier thing to do will be to follow latex's style of \newcommand and \renewcommand. That is, all \definecommands should check if the macro is previously defined or not. If it is defined, issue a warning or an error.
There is \define and \redefine.
And maybe have some hook to disable the warning/error for those who know what they are doing.
In this case you can use \def, \edef ... Wolfgang
On Thu, 23 Jul 2009, Wolfgang Schuster wrote:
Am 23.07.2009 um 17:05 schrieb Aditya Mahajan:
I think an easier thing to do will be to follow latex's style of \newcommand and \renewcommand. That is, all \definecommands should check if the macro is previously defined or not. If it is defined, issue a warning or an error.
There is \define and \redefine.
I know. What I am asking is that the core macros like \definedescription, \defineitemgroups, \definehead, which have the general form \def\defineSOMETHING% {\dodoubleargument\dodefineSOMETHING} \def\dodefineSOMETHING[#1][#2]% {\setvalue{#1}{\dododefineSOMETHING[#2]} should do some check before the \setvalue. Maybe a universal solution will be to change \setvalue so that it uses \define (or a check like define) internally.
And maybe have some hook to disable the warning/error for those who know what they are doing.
In this case you can use \def, \edef ...
I meant with commands like \defineSOMETHING above. For example, I once did \definecolor[page][s=0.9] instead of what I normally do: \definecolor[pagecolor][s=0.9]. Took a while to figure out what was going wrong. Some of Xan's error were due to similar things, \defineSOMETHING[note], \defineSOMETHING[symbol], etc. If all these commands issued a warning that you are redefining existing macro, debugging will be much easier. And if you know what you are doing, we could have \redefinecolor[page][s=0.9] that does not issue a warning. Or the easier to implemnet: \setupcolors[check=error|warn|ignore] for all \setupSOMETHING commands where the equivalent \defineSOMETHING defines a control sequence. Aditya
On Thu, Jul 23, 2009 at 5:52 PM, Aditya Mahajan
On Thu, 23 Jul 2009, Wolfgang Schuster wrote:
Am 23.07.2009 um 17:05 schrieb Aditya Mahajan:
I think an easier thing to do will be to follow latex's style of
\newcommand and \renewcommand. That is, all \definecommands should check if the macro is previously defined or not. If it is defined, issue a warning or an error.
There is \define and \redefine.
I know. What I am asking is that the core macros like \definedescription, \defineitemgroups, \definehead, which have the general form
\def\defineSOMETHING% {\dodoubleargument\dodefineSOMETHING}
\def\dodefineSOMETHING[#1][#2]% {\setvalue{#1}{\dododefineSOMETHING[#2]}
should do some check before the \setvalue. Maybe a universal solution will be to change \setvalue so that it uses \define (or a check like define) internally.
Or maybe \Usersetvalue I think to an "user-space" and a "kernel-space" -- luigi
Aditya Mahajan wrote:
\def\defineSOMETHING% {\dodoubleargument\dodefineSOMETHING}
\def\dodefineSOMETHING[#1][#2]% {\setvalue{#1}{\dododefineSOMETHING[#2]}
some do, but sometimes redefinition is quite legal; it happens that 'note' and 'symbol' are pretty core the convention (as mentioned) is more or less to use UpperCase names for your own commands and UPPERCASE for logo's and abbreviations (but these can have an optional namespace) kind of tricky are colors and fonts as they have no namespace so i often end up with ThisColor or ThatFont
I meant with commands like \defineSOMETHING above. For example, I once did \definecolor[page][s=0.9] instead of what I normally do: \definecolor[pagecolor][s=0.9]. Took a while to figure out what was going wrong. Some of Xan's error were due to similar things, \defineSOMETHING[note], \defineSOMETHING[symbol], etc. If all these commands issued a warning that you are redefining existing macro, debugging will be much easier. And if you know what you are doing, we could have
\redefinecolor[page][s=0.9]
that does not issue a warning. Or the easier to implemnet:
\setupcolors[check=error|warn|ignore]
maybe later, as it clutters the code; maybe after the mkii->mkiv cleanup Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------
En/na Hans Hagen ha escrit:
Xan wrote:
Really, I did not know that. It's a messy thing that we could not define what we like ;-)
it's the nature of a tex macro package; ok, i can add some strict testing for in in mkiv but even then it might just be that someone who knows th einternals (like wolfgang or wolfgang or wolfgang) wants to overload something built in by something better In my modest opinion it could help: a warning that says you overload something predefined. And really I think it helps it the error message is more explicit. A normal user like me turn crazy trying to find the error....
But well, you are the boss ;-)
% collect these exceptions and send then to mojca or arthur
Okay. It's a pleasure to give to you. How can I see what is, if there is, the lists of hyphenated words?
best ask mojca or arthur who to contact as they are in charge of pattern management for all tex distributions
Okay, In private or public mail? Xan.
participants (5)
-
Aditya Mahajan
-
Hans Hagen
-
luigi scarso
-
Wolfgang Schuster
-
Xan