--- /dev/null
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:m="http://www.w3.org/1998/Math/MathML">
+
+
+<xsl:template match="term">
+ <xsl:choose>
+
+ <xsl:when test="@opid="le"">
+ <m:apply>
+ <m:leq definitionURL="{@uri}"/>
+ <xsl:apply-templates select="*"/>
+ </m:apply>
+ </xsl:when>
+
+ <xsl:when test="string(@opid)="exists"">
+ <m:apply>
+ <m:exists definitionURL="{@uri}"/>
+ <m:bvar>
+ <m:ci>
+ <xsl:value-of select="binder[1]/@var"/>
+ </m:ci>
+ </m:bvar>
+ <m:condition>
+ <xsl:apply-templates select="*[1]"/>
+ </m:condition>
+ <xsl:apply-templates select="*[3]"/>
+ </m:apply>
+ </xsl:when>
+
+ <xsl:when test="string(@opid)="all"">
+ <m:apply>
+ <m:csymbol definitionURL="{@uri}">forall</m:csymbol>
+ <m:bvar>
+ <m:ci>
+ <xsl:value-of select="binder[1]/@var"/>
+ </m:ci>
+ <m:type>
+ <xsl:apply-templates select="*[1]"/>
+ </m:type>
+ </m:bvar>
+ <xsl:apply-templates select="*[3]"/>
+ </m:apply>
+ </xsl:when>
+
+ <xsl:when test="string(@opid)="and"">
+ <m:apply>
+ <m:and definitionURL="{@uri}"/>
+ <xsl:apply-templates select="*[1]"/>
+ <xsl:apply-templates select="*[2]"/>
+ </m:apply>
+ </xsl:when>
+
+ <xsl:when test="string(@opid)="or"">
+ <m:apply>
+ <m:or definitionURL="{@uri}"/>
+ <xsl:apply-templates select="*[1]"/>
+ <xsl:apply-templates select="*[2]"/>
+ </m:apply>
+ </xsl:when>
+
+ <xsl:when test="string(@opid)="member"">
+ <m:apply>
+ <m:in definitionURL="{@uri}"/>
+ <xsl:apply-templates select="*[2]"/>
+ <xsl:apply-templates select="*[1]"/>
+ </m:apply>
+ </xsl:when>
+
+ <xsl:when test="string(@opid)="implies"">
+ <m:apply>
+ <m:implies definitionURL="{@uri}"/>
+ <xsl:apply-templates select="*[1]"/>
+ <xsl:apply-templates select="*[2]"/>
+ </m:apply>
+ </xsl:when>
+
+ <xsl:when test="string(@opid)="not"">
+ <m:apply>
+ <m:not definitionURL="{@uri}"/>
+ <xsl:apply-templates select="*[1]"/>
+ </m:apply>
+ </xsl:when>
+
+ <xsl:when test="string(@opid)="nat"">
+ <m:naturalnumbers definitionURL="{@uri}"/>
+ </xsl:when>
+
+ <xsl:when test="string(@opid)="so_lambda"">
+ <m:apply>
+ <m:csymbol definitionURL="{@uri}">so_lambda</m:csymbol>
+ <xsl:choose>
+ <xsl:when test="*[1]=so_variable">
+ <m:apply>
+ <m:ci>so_variable</m:ci>
+ <m:ci>
+ <xsl:value-of select="so_variable/@var"/>
+ </m:ci>
+ </m:apply>
+ <!--<xsl:apply-templates select="*[2]"/>
+ <xsl:apply-templates select="*[3]"/>-->
+ <xsl:apply-templates/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="*[1]"/>
+ <xsl:apply-templates select="*[2]"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </m:apply>
+ </xsl:when>
+
+ <xsl:when test="string(@opid)="so_apply"">
+ <m:apply>
+ <m:csymbol definitionURL="{@uri}">so_apply</m:csymbol>
+ <xsl:apply-templates select="*[1]"/>
+ <xsl:apply-templates select="*[2]"/>
+ </m:apply>
+ </xsl:when>
+
+ <xsl:when test="string(@opid)="gcd_p"">
+ <m:apply>
+ <m:ci definitionURL="{@uri}">gcd_p</m:ci>
+ <xsl:apply-templates/>
+ </m:apply>
+ </xsl:when>
+
+ <xsl:when test="string(@opid)="decidable"">
+ <m:apply>
+ <m:ci definitionURL="{@uri}">decidable</m:ci>
+ <xsl:apply-templates/>
+ </m:apply>
+ </xsl:when>
+
+ <xsl:when test="string(@opid)="int_seg"">
+ <m:interval definitionURL="{@uri}">
+ <xsl:apply-templates select="*[1]"/>
+ <xsl:apply-templates select="*[2]"/>
+ </m:interval>
+ </xsl:when>
+ <xsl:when test="string(@opid)="ge"">
+ <m:apply>
+ <m:geq definitionURL="{@uri}"/>
+ <xsl:apply-templates select="*[1]"/>
+ <xsl:apply-templates select="*[2]"/>
+ </m:apply>
+ </xsl:when>
+
+ <xsl:when test="string(@opid)="false"">
+ <m:false definitionURL="{@uri}"/>
+ </xsl:when>
+
+ <xsl:when test="string(@opid)="true"">
+ <m:true definitionURL="{@uri}"/>
+ </xsl:when>
+
+ <!-- ALTRE ASTRAZIONI -->
+ <xsl:otherwise>
+ <m:apply>
+ <m:csymbol>app</m:csymbol>
+ <m:ci definitionURL="{@uri}">
+ <xsl:value-of select="@opid"/>
+ </m:ci>
+ <xsl:apply-templates/>
+ </m:apply>
+ </xsl:otherwise>
+
+ </xsl:choose>
+
+</xsl:template>
+
+</xsl:stylesheet>