Skip to main content

Another Numbas presentation

I gave another presentation about Numbas last week at the e-Assessment Scotland conference in Dundee. I revised my old slides and created a better demo exam, so I thought I’d better link to them from here. I’m thinking about recording a screencast of how to use Numbas – would that interest anybody?

Anyway, those slides – click here. is the place to write maths and see maths

I’ve added a lot more user-friendly features to my write maths, see maths tool over the past couple of weeks, and I’ve moved it to its own domain.

The tool is now available at, which I think we can all agree is a terrifically clever domain name.

Since I last wrote about it, I’ve added the ability to save and retrieve pages, and support for automatically embedding things like pictures and videos using oEmbed

There’s also a print stylesheet, so if you print a page of notes it will look clean and tidy.

Finally, as well as HTML output you can now also get a proper LaTeX document of your notes by clicking on the “TeX please” button.

I’ve been using it to write up real notes for my research, and I’m very pleased with how quickly I can get stuff written down. I have something like TeX-anxiety for writing up maths, mainly because the process of writing a LaTeX document is such a hassle. With this tool, I can see what I’m doing as I type it, and there’s much less pressure to worry about things looking proper while I’m just transcribing thoughts.

Please have a go at using it and tell me what you think. Any suggestions for other aspects of mathematography that could be made easier with some Internet magic are also welcome.

Double coset normal form for FPAs

Liza Frenkel is visiting the department, and she wants me to write an algorithm to compute double coset representation normal forms for free products with amalgamation.

Here are some notes I typed up in write maths, see maths as she and Andrew talked. I’m just putting them up here so I don’t lose them.

\(F_{1}\), \(F_{2}\) free groups (finitely generated by \(X\) and \(Y\), respectively)
\(H_1 \leq F_1\), \(H_2 \leq F_2\)
\(\exists\) an isomorphism \(\phi: H_1 \rightarrow H_2\)
i.e. we have a finite generating set (in fact a basis) \(\{h_1, \dots, h_n \}\) for \(H_{1}\) (and\(\{h_1′, \dots, h_n’\}\) for \(H_{2}\)) and generating sets \(X,Y\) for \(F_{1}\) and \(F_{2}\)

Consider a group generated by \(z_1, \dots, z_m\), with
\(z_1 = h_1(x_1, \dots, x_n)=h_1′(y_1,\dots,y_r), \dots, z_m = h_m(x_1,\dots,x_n) = h_m'(y_1,\dots,y_r)\)
\(G = F_1 \underset{H_1=H_2}{\ast} F_2\) has presentation \(\langle X,Y | h_i = h_i’, i=1 \dots m\rangle\)
Choose a set \(S \subseteq F\) such that \(F_1 = \displaystyle{\bigcup_{s \in S} H_1sH_1}\)
(we are assuming \(S\) is infinite)
every element \(w\) of \(F_{1}\) is equal to \(w = h_{1} sh_{2}\), for unique \(s \in S\),
\(h_1,h_2 \in H_1\)
can do the same for \(F_2 = \displaystyle{\bigcup_{t \in T}} H_2tH_2\)

Let \(g \in G\).
A word \(w\) representing \(g\) is in normal form if \(w = h_{i_1}(z)p_1h_{i_2}(z)p_2 \dots h_{i_k}(z)p_kh_{i_{k+1}}(z)\), with \(p_i \in S\), \(i = 1 \dots k\).

Suppose \(g = g_1g_2 \dots g_k\). Rewrite using double coset representatives
\(g = h_1(X)s_1h_2(Y)t_2h_3(X) \dots\)

\(g\) is in reduced form if \(g = g_1 \dots g_k\) and
\(k=1 \Rightarrow\) \(g \in F_1\) or \(g \in F_2\)
\(k \gt 1 \Rightarrow g_i \in F_1 \backslash H_1\) or \(g_i \in F_2 \backslash H_2\) and \(g_{i}\), \(g_{i+1}\) belong to different factors

Let \(\Gamma_{H_1}\) be a folded subgroup graph of \(H_{1}\). Take two copies.

For some word \(w = h_{1} sh_{2}\), the question is how to find \(s\).

Read all possible loops round first graph, to get \(h_{1}\).
Keep reading letters round the graph until there is no edge corresponding to the current letter. Call this \(s_{1}\).
Start at the other end, reading loops to get \(h_{2}\), and then maximal \(s_{2}\) partway round a loop.
Then either there are no letters left to look at, and \(s = s_{1} s_{2}\), or some bit \(f_{0}\) in the middle, and \(s = s_{1} f_{0} s_{2}\).

We want \(h_1,h_2,s\) to all have maximal length.


i) \(\begin{align} g &= x_1^3x_2^2y_1y_2 \\ &= (x_1^2)(x_1x_2)(x_2^{-1})^{-1} \cdot (y_1)(y_2^{-1})^{-1}\end{align}\)

Membership problem

\[\begin{align} G &= F_1 \underset{H_1=H_2}{\ast}F_2 \\ H_3 &= \langle c_1, \dots, c_l \rangle \leqslant G\end{align}\]
Can write the \(c_{i}\) in normal form.
Question: Given \(w \in G\) in normal form, is \(w \in H_3\)?

Constructing a folded graph which makes use of the normal form is tricky.

Write maths, see maths test

I’ve written a bit of javascript that uses jQuery and MathJax to make a sort-of-WYSIWYG maths editor.

Because MathJax can typeset LaTeX pretty much instantly, it’s a lot quicker to work with than the usual LaTeX write–compile–look loop.

I’m thinking about using this for videos of problem solutions. Because it’s LaTeX it’s a lot neater than my handwriting, and I don’t have to faff around with cameras.

The problem in this video is from an old P6 Further Maths A Level paper. I picked a question that wouldn’t require too much typing, but had some meat to it. If I did this properly I’d talk over it, but at the moment I’m a bit tired and the family upstairs are being quite noisy.

You can have a go on the editor here but beware that I’ve only tested it on Google Chrome. What you type gets saved to your browser’s local storage, so it should persist between browser sessions.

What do you think about it? Is it helpful? Would you consider using something like it?

My Numbas presentation

I’ll try and make this my last Numbas post for a while, but I’ve had to give a few presentations about Numbas at various places in the past month, so I wrote a quick set of slides. I’ve just uploaded it here.

I created the slideshow using Slidy, which is much better at using HTML for slideshows than my attempt.

A gimmicky Normal PDF visual aid

Quite a lot of people have trouble visualising what’s going on when you look up p-values in a table of the normal CDF. I had an idea about how to explain a bit more dynamically using a bit of Craft Time inegnuity.

I made this sketch of the normal PDF in Asymptote and printed out two copies. I cut out the area under the curve of one of them, and glued its corners to those of the other one.

Now I can slide sheets of coloured paper between the two copies of the graph, showing visually the area under the curve up to a certain limit. Using a second colour allows me to show how the area between two values is calculated by subtracting the area corresponding to the lesser value from the area corresponding to the greater value.

Read more…