Add a:
<?xml version="1.0"?>
At the top, and save it as .xml.
Remember, HTML does not include XML namespaces - therefore to invoke the XML parser (and in turn MathML parser), you need to give a mime-type of text/xml, application/xhtml+xml, etc (anything that invokes the XML parser).
BTW, all those <mrow>'s aren't necessary:
Code:
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>Pythagorean Theorem with MathML</title>
</head>
<body>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mi> c </mi>
<mo> = </mo>
<msqrt>
<msup>
<mi> a </mi>
<mn> 2 </mn>
</msup>
<mo> + </mo>
<msup>
<mi> b </mi>
<mn> 2 </mn>
</msup>
</msqrt>
</math>
</body>
</html>
The MathML specs tell viewers to insert them during rendering as necessary.