]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/xml/nuprl_stylesheets/nuprl_html_basic.xsl
(dis)organized web stuff
[helm.git] / helm / xml / nuprl_stylesheets / nuprl_html_basic.xsl
diff --git a/helm/xml/nuprl_stylesheets/nuprl_html_basic.xsl b/helm/xml/nuprl_stylesheets/nuprl_html_basic.xsl
new file mode 100644 (file)
index 0000000..58478b6
--- /dev/null
@@ -0,0 +1,532 @@
+<?xml version="1.0"?>
+<!-- Copyright (C) 2000, HELM Team                                     -->
+<!-- This file is part of HELM, an Hypertextual, Electronic            -->
+<!-- Library of Mathematics, developed at the Computer Science         -->
+<!-- Department, University of Bologna, Italy.                         -->
+<!-- HELM is free software; you can redistribute it and/or             -->
+<!-- modify it under the terms of the GNU General Public License       -->
+<!-- as published by the Free Software Foundation; either version 2    -->
+<!-- of the License, or (at your option) any later version.            -->
+<!-- HELM is distributed in the hope that it will be useful,           -->
+<!-- but WITHOUT ANY WARRANTY; without even the implied warranty of    -->
+<!-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the     -->
+<!-- GNU General Public License for more details.                      -->
+<!-- You should have received a copy of the GNU General Public License -->
+<!-- along with HELM; if not, write to the Free Software               -->
+<!-- Foundation, Inc., 59 Temple Place - Suite 330, Boston,            -->
+<!-- MA  02111-1307, USA.                                              -->
+<!-- For details, see the HELM World-Wide-Web page,                    -->
+<!-- http://cs.unibo.it/helm/.                                         -->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:i="http://www.cs.unibo.it/helm/InputNotationalElements" xmlns:o="http://www.cs.unibo.it/helm/OutputNotationalElements" version="1.0">
+<!-- HTML SYMBOLS  -->
+<!--and-->
+  <xsl:variable name="and">
+    <xsl:choose>
+      <xsl:when test="$UNICODEvsSYMBOL = 'symbol'">&#xD9;</xsl:when>
+      <xsl:when test="$UNICODEvsSYMBOL = 'unicode'">&#x2227;</xsl:when>
+      <xsl:otherwise>???</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+<!--or-->
+  <xsl:variable name="or">
+    <xsl:choose>
+      <xsl:when test="$UNICODEvsSYMBOL = 'symbol'">&#xDA;</xsl:when>
+      <xsl:when test="$UNICODEvsSYMBOL = 'unicode'">&#x2228;</xsl:when>
+      <xsl:otherwise>???</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+<!--iff-->
+  <xsl:variable name="iff">
+    <xsl:choose>
+      <xsl:when test="$UNICODEvsSYMBOL = 'symbol'">&#xDB;</xsl:when>
+      <xsl:when test="$UNICODEvsSYMBOL = 'unicode'">&#x21D4;</xsl:when>
+      <xsl:otherwise>???</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+<!--not-->
+  <xsl:variable name="not">
+    <xsl:choose>
+      <xsl:when test="$UNICODEvsSYMBOL = 'symbol'">&#xD8;</xsl:when>
+      <xsl:when test="$UNICODEvsSYMBOL = 'unicode'">&#xAC;</xsl:when>
+      <xsl:otherwise>???</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+<!--eq-->
+  <xsl:variable name="eq">
+    <xsl:choose>
+      <xsl:when test="$UNICODEvsSYMBOL = 'symbol'">=</xsl:when>
+      <xsl:when test="$UNICODEvsSYMBOL = 'unicode'">=</xsl:when>
+      <xsl:otherwise>???</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+<!--neq-->
+  <xsl:variable name="neq">
+    <xsl:choose>
+      <xsl:when test="$UNICODEvsSYMBOL = 'symbol'">&#xB9;</xsl:when>
+      <xsl:when test="$UNICODEvsSYMBOL = 'unicode'">&#x2260;</xsl:when>
+      <xsl:otherwise>???</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+<!--exists-->
+  <xsl:variable name="exists">
+    <xsl:choose>
+      <xsl:when test="$UNICODEvsSYMBOL = 'symbol'">$</xsl:when>
+      <xsl:when test="$UNICODEvsSYMBOL = 'unicode'">&#x2203;</xsl:when>
+      <xsl:otherwise>???</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+<!-- AND -->
+  <xsl:template match="m:apply[m:and[count(*) = 0] and count(*) = 3]">
+    <xsl:param name="current_indent" select="0"/>
+    <xsl:param name="width" select="$framewidth"/>
+    <xsl:variable name="charlength">
+      <xsl:apply-templates select="." mode="root_charcount"/>
+    </xsl:variable>
+    <xsl:choose>
+      <xsl:when test="$width &gt;= $charlength">
+        <xsl:apply-templates select="." mode="inline"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:text>(</xsl:text>
+        <xsl:apply-templates select="*[2]">
+          <xsl:with-param name="current_indent" select="$current_indent + 2"/>
+        </xsl:apply-templates>
+        <BR/>
+        <xsl:call-template name="make_indent">
+          <xsl:with-param name="current_indent" select="$current_indent + 2"/>
+        </xsl:call-template>
+        <a href="{m:and/@definitionURL}">
+          <xsl:choose>
+            <xsl:when test="boolean($and)">
+              <xsl:call-template name="mksymbol">
+                <xsl:with-param name="symbol" select="$and"/>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:otherwise>and</xsl:otherwise>
+          </xsl:choose>
+        </a>
+        <xsl:apply-templates select="*[3]">
+          <xsl:with-param name="current_indent" select="$current_indent + 2"/>
+        </xsl:apply-templates>
+        <xsl:text>)</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+<!-- AND (INLINE MODE) -->
+  <xsl:template match="m:apply[m:and[count(*) = 0] and count(*) = 3]" mode="inline">
+    <xsl:text>(</xsl:text>
+    <xsl:apply-templates select="*[2]" mode="inline"/>
+    <a href="{m:and/@definitionURL}">
+      <xsl:choose>
+        <xsl:when test="boolean($and)">
+          <xsl:call-template name="mksymbol">
+            <xsl:with-param name="symbol" select="$and"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>and</xsl:otherwise>
+      </xsl:choose>
+    </a>
+    <xsl:apply-templates select="*[3]" mode="inline"/>
+    <xsl:text>)</xsl:text>
+  </xsl:template>
+<!-- AND (CHARCOUNT MODE) -->
+  <xsl:template match="m:apply[m:and[count(*) = 0] and count(*) = 3]" mode="root_charcount">
+    <xsl:param name="incurrent_length" select="0"/>
+    <xsl:value-of select="$incurrent_length + 3"/>
+  </xsl:template>
+<!-- OR -->
+  <xsl:template match="m:apply[m:or[count(*) = 0] and count(*) = 3]">
+    <xsl:param name="current_indent" select="0"/>
+    <xsl:param name="width" select="$framewidth"/>
+    <xsl:variable name="charlength">
+      <xsl:apply-templates select="." mode="root_charcount"/>
+    </xsl:variable>
+    <xsl:choose>
+      <xsl:when test="$width &gt;= $charlength">
+        <xsl:apply-templates select="." mode="inline"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:text>(</xsl:text>
+        <xsl:apply-templates select="*[2]">
+          <xsl:with-param name="current_indent" select="$current_indent + 2"/>
+        </xsl:apply-templates>
+        <BR/>
+        <xsl:call-template name="make_indent">
+          <xsl:with-param name="current_indent" select="$current_indent + 2"/>
+        </xsl:call-template>
+        <a href="{m:or/@definitionURL}">
+          <xsl:choose>
+            <xsl:when test="boolean($or)">
+              <xsl:call-template name="mksymbol">
+                <xsl:with-param name="symbol" select="$or"/>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:otherwise>or</xsl:otherwise>
+          </xsl:choose>
+        </a>
+        <xsl:apply-templates select="*[3]">
+          <xsl:with-param name="current_indent" select="$current_indent + 2"/>
+        </xsl:apply-templates>
+        <xsl:text>)</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+<!-- OR (INLINE MODE) -->
+  <xsl:template match="m:apply[m:or[count(*) = 0] and count(*) = 3]" mode="inline">
+    <xsl:text>(</xsl:text>
+    <xsl:apply-templates select="*[2]" mode="inline"/>
+    <a href="{m:or/@definitionURL}">
+      <xsl:choose>
+        <xsl:when test="boolean($or)">
+          <xsl:call-template name="mksymbol">
+            <xsl:with-param name="symbol" select="$or"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>or</xsl:otherwise>
+      </xsl:choose>
+    </a>
+    <xsl:apply-templates select="*[3]" mode="inline"/>
+    <xsl:text>)</xsl:text>
+  </xsl:template>
+<!-- OR (CHARCOUNT MODE) -->
+  <xsl:template match="m:apply[m:or[count(*) = 0] and count(*) = 3]" mode="root_charcount">
+    <xsl:param name="incurrent_length" select="0"/>
+    <xsl:value-of select="$incurrent_length + 3"/>
+  </xsl:template>
+<!-- IFF -->
+  <xsl:template match="m:apply[m:csymbol[text() = 'iff' and count(*) = 0] and count(*) = 3]">
+    <xsl:param name="current_indent" select="0"/>
+    <xsl:param name="width" select="$framewidth"/>
+    <xsl:variable name="charlength">
+      <xsl:apply-templates select="." mode="root_charcount"/>
+    </xsl:variable>
+    <xsl:choose>
+      <xsl:when test="$width &gt;= $charlength">
+        <xsl:apply-templates select="." mode="inline"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:text>(</xsl:text>
+        <xsl:apply-templates select="*[2]">
+          <xsl:with-param name="current_indent" select="$current_indent + 2"/>
+        </xsl:apply-templates>
+        <BR/>
+        <xsl:call-template name="make_indent">
+          <xsl:with-param name="current_indent" select="$current_indent + 2"/>
+        </xsl:call-template>
+        <a href="{m:csymbol/@definitionURL}">
+          <xsl:choose>
+            <xsl:when test="boolean($iff)">
+              <xsl:call-template name="mksymbol">
+                <xsl:with-param name="symbol" select="$iff"/>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:otherwise>iff</xsl:otherwise>
+          </xsl:choose>
+        </a>
+        <xsl:apply-templates select="*[3]">
+          <xsl:with-param name="current_indent" select="$current_indent + 2"/>
+        </xsl:apply-templates>
+        <xsl:text>)</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+<!-- IFF (INLINE MODE) -->
+  <xsl:template match="m:apply[m:csymbol[text() = 'iff' and count(*) = 0] and count(*) = 3]" mode="inline">
+    <xsl:text>(</xsl:text>
+    <xsl:apply-templates select="*[2]" mode="inline"/>
+    <a href="{m:csymbol/@definitionURL}">
+      <xsl:choose>
+        <xsl:when test="boolean($iff)">
+          <xsl:call-template name="mksymbol">
+            <xsl:with-param name="symbol" select="$iff"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>iff</xsl:otherwise>
+      </xsl:choose>
+    </a>
+    <xsl:apply-templates select="*[3]" mode="inline"/>
+    <xsl:text>)</xsl:text>
+  </xsl:template>
+<!-- IFF (CHARCOUNT MODE) -->
+  <xsl:template match="m:apply[m:csymbol[text() = 'iff' and count(*) = 0] and count(*) = 3]" mode="root_charcount">
+    <xsl:param name="incurrent_length" select="0"/>
+    <xsl:value-of select="$incurrent_length + 3"/>
+  </xsl:template>
+<!-- NOT -->
+  <xsl:template match="m:apply[m:not[count(*) = 0] and count(*) = 2]">
+    <xsl:param name="current_indent" select="0"/>
+    <xsl:param name="width" select="$framewidth"/>
+    <a href="{m:not/@definitionURL}">
+      <xsl:choose>
+        <xsl:when test="boolean($not)">
+          <xsl:call-template name="mksymbol">
+            <xsl:with-param name="symbol" select="$not"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>not</xsl:otherwise>
+      </xsl:choose>
+    </a>
+    <xsl:apply-templates select="*[2]">
+      <xsl:with-param name="current_indent" select="$current_indent + 2"/>
+    </xsl:apply-templates>
+  </xsl:template>
+<!-- NOT (INLINE MODE) -->
+  <xsl:template match="m:apply[m:not[count(*) = 0] and count(*) = 2]" mode="inline">
+    <a href="{m:not/@definitionURL}">
+      <xsl:choose>
+        <xsl:when test="boolean($not)">
+          <xsl:call-template name="mksymbol">
+            <xsl:with-param name="symbol" select="$not"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>not</xsl:otherwise>
+      </xsl:choose>
+    </a>
+    <xsl:apply-templates select="*[2]" mode="inline"/>
+  </xsl:template>
+<!-- NOT (CHARCOUNT MODE) -->
+  <xsl:template match="m:apply[m:not[count(*) = 0] and count(*) = 2]" mode="root_charcount">
+    <xsl:param name="incurrent_length" select="0"/>
+    <xsl:value-of select="$incurrent_length + 1"/>
+  </xsl:template>
+<!-- EQUALITY and TYPE EQUALITY -->
+  <xsl:template match="m:apply[m:eq[count(*) = 0] and count(*) = 3]">
+    <xsl:param name="current_indent" select="0"/>
+    <xsl:param name="width" select="$framewidth"/>
+    <xsl:variable name="charlength">
+      <xsl:apply-templates select="." mode="root_charcount"/>
+    </xsl:variable>
+    <xsl:choose>
+      <xsl:when test="$width &gt;= $charlength">
+        <xsl:apply-templates select="." mode="inline"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:text>(</xsl:text>
+        <xsl:apply-templates select="*[2]">
+          <xsl:with-param name="current_indent" select="$current_indent + 2"/>
+        </xsl:apply-templates>
+        <BR/>
+        <xsl:call-template name="make_indent">
+          <xsl:with-param name="current_indent" select="$current_indent + 2"/>
+        </xsl:call-template>
+        <a href="{m:eq/@definitionURL}">
+          <xsl:choose>
+            <xsl:when test="boolean($eq)">
+              <xsl:call-template name="mksymbol">
+                <xsl:with-param name="symbol" select="$eq"/>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:otherwise>eq</xsl:otherwise>
+          </xsl:choose>
+        </a>
+        <xsl:apply-templates select="*[3]">
+          <xsl:with-param name="current_indent" select="$current_indent + 2"/>
+        </xsl:apply-templates>
+        <xsl:text>)</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+<!-- EQUALITY and TYPE EQUALITY (INLINE MODE) -->
+  <xsl:template match="m:apply[m:eq[count(*) = 0] and count(*) = 3]" mode="inline">
+    <xsl:text>(</xsl:text>
+    <xsl:apply-templates select="*[2]" mode="inline"/>
+    <a href="{m:eq/@definitionURL}">
+      <xsl:choose>
+        <xsl:when test="boolean($eq)">
+          <xsl:call-template name="mksymbol">
+            <xsl:with-param name="symbol" select="$eq"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>eq</xsl:otherwise>
+      </xsl:choose>
+    </a>
+    <xsl:apply-templates select="*[3]" mode="inline"/>
+    <xsl:text>)</xsl:text>
+  </xsl:template>
+<!-- EQUALITY and TYPE EQUALITY (CHARCOUNT MODE) -->
+  <xsl:template match="m:apply[m:eq[count(*) = 0] and count(*) = 3]" mode="root_charcount">
+    <xsl:param name="incurrent_length" select="0"/>
+    <xsl:value-of select="$incurrent_length + 3"/>
+  </xsl:template>
+<!-- NOT-EQ and NOT-EQT -->
+  <xsl:template match="m:apply[m:neq[count(*) = 0] and count(*) = 3]">
+    <xsl:param name="current_indent" select="0"/>
+    <xsl:param name="width" select="$framewidth"/>
+    <xsl:variable name="charlength">
+      <xsl:apply-templates select="." mode="root_charcount"/>
+    </xsl:variable>
+    <xsl:choose>
+      <xsl:when test="$width &gt;= $charlength">
+        <xsl:apply-templates select="." mode="inline"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:text>(</xsl:text>
+        <xsl:apply-templates select="*[2]">
+          <xsl:with-param name="current_indent" select="$current_indent + 2"/>
+        </xsl:apply-templates>
+        <BR/>
+        <xsl:call-template name="make_indent">
+          <xsl:with-param name="current_indent" select="$current_indent + 2"/>
+        </xsl:call-template>
+        <a href="{m:neq/@definitionURL}">
+          <xsl:choose>
+            <xsl:when test="boolean($neq)">
+              <xsl:call-template name="mksymbol">
+                <xsl:with-param name="symbol" select="$neq"/>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:otherwise>neq</xsl:otherwise>
+          </xsl:choose>
+        </a>
+        <xsl:apply-templates select="*[3]">
+          <xsl:with-param name="current_indent" select="$current_indent + 2"/>
+        </xsl:apply-templates>
+        <xsl:text>)</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+<!-- NOT-EQ and NOT-EQT (INLINE MODE) -->
+  <xsl:template match="m:apply[m:neq[count(*) = 0] and count(*) = 3]" mode="inline">
+    <xsl:text>(</xsl:text>
+    <xsl:apply-templates select="*[2]" mode="inline"/>
+    <a href="{m:neq/@definitionURL}">
+      <xsl:choose>
+        <xsl:when test="boolean($neq)">
+          <xsl:call-template name="mksymbol">
+            <xsl:with-param name="symbol" select="$neq"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>neq</xsl:otherwise>
+      </xsl:choose>
+    </a>
+    <xsl:apply-templates select="*[3]" mode="inline"/>
+    <xsl:text>)</xsl:text>
+  </xsl:template>
+<!-- NOT-EQ and NOT-EQT (CHARCOUNT MODE) -->
+  <xsl:template match="m:apply[m:neq[count(*) = 0] and count(*) = 3]" mode="root_charcount">
+    <xsl:param name="incurrent_length" select="0"/>
+    <xsl:value-of select="$incurrent_length + 3"/>
+  </xsl:template>
+<!-- EXIST -->
+  <xsl:template match="m:apply[m:exists[count(*) = 0] and m:bvar/m:ci[count(*) = 0] and m:condition[count(*) = 1] and count(*) = 4]">
+    <xsl:param name="current_indent" select="0"/>
+    <xsl:param name="width" select="$framewidth"/>
+    <xsl:variable name="charlength">
+      <xsl:apply-templates select="." mode="root_charcount"/>
+    </xsl:variable>
+    <xsl:choose>
+      <xsl:when test="$width &gt;= $charlength">
+        <xsl:apply-templates select="." mode="inline"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <a href="{m:exists/@definitionURL}">
+          <xsl:choose>
+            <xsl:when test="boolean($exists)">
+              <xsl:call-template name="mksymbol">
+                <xsl:with-param name="symbol" select="$exists"/>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:otherwise>exists</xsl:otherwise>
+          </xsl:choose>
+        </a>
+        <xsl:value-of select="m:bvar/m:ci/text()"/>
+        <xsl:text>:</xsl:text>
+        <xsl:apply-templates select="m:condition/*[1]">
+          <xsl:with-param name="current_indent" select="$current_indent + 2"/>
+        </xsl:apply-templates>
+        <BR/>
+        <xsl:call-template name="make_indent">
+          <xsl:with-param name="current_indent" select="$current_indent + 2"/>
+        </xsl:call-template>
+        <xsl:text>.</xsl:text>
+        <xsl:apply-templates select="*[4]">
+          <xsl:with-param name="current_indent" select="$current_indent + 2"/>
+        </xsl:apply-templates>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+<!-- EXIST (INLINE MODE) -->
+  <xsl:template match="m:apply[m:exists[count(*) = 0] and m:bvar/m:ci[count(*) = 0] and m:condition[count(*) = 1] and count(*) = 4]" mode="inline">
+    <a href="{m:exists/@definitionURL}">
+      <xsl:choose>
+        <xsl:when test="boolean($exists)">
+          <xsl:call-template name="mksymbol">
+            <xsl:with-param name="symbol" select="$exists"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>exists</xsl:otherwise>
+      </xsl:choose>
+    </a>
+    <xsl:value-of select="m:bvar/m:ci/text()"/>
+    <xsl:text>:</xsl:text>
+    <xsl:apply-templates select="m:condition/*[1]" mode="inline"/>
+    <xsl:text>.</xsl:text>
+    <xsl:apply-templates select="*[4]" mode="inline"/>
+  </xsl:template>
+<!-- EXIST (CHARCOUNT MODE) -->
+  <xsl:template match="m:apply[m:exists[count(*) = 0] and m:bvar/m:ci[count(*) = 0] and m:condition[count(*) = 1] and count(*) = 4]" mode="root_charcount">
+    <xsl:param name="incurrent_length" select="0"/>
+    <xsl:value-of select="$incurrent_length + 3"/>
+  </xsl:template>
+<!-- EXIST -->
+  <xsl:template match="m:apply[m:exists[count(*) = 0] and m:bvar/m:ci[count(*) = 0] and m:condition[count(*) = 1] and count(*) = 4]">
+    <xsl:param name="current_indent" select="0"/>
+    <xsl:param name="width" select="$framewidth"/>
+    <xsl:variable name="charlength">
+      <xsl:apply-templates select="." mode="root_charcount"/>
+    </xsl:variable>
+    <xsl:choose>
+      <xsl:when test="$width &gt;= $charlength">
+        <xsl:apply-templates select="." mode="inline"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <a href="{m:exists/@definitionURL}">
+          <xsl:choose>
+            <xsl:when test="boolean($exists)">
+              <xsl:call-template name="mksymbol">
+                <xsl:with-param name="symbol" select="$exists"/>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:otherwise>exists</xsl:otherwise>
+          </xsl:choose>
+        </a>
+        <xsl:value-of select="m:bvar/m:ci/text()"/>
+        <xsl:text>:</xsl:text>
+        <xsl:apply-templates select="m:condition/*[1]">
+          <xsl:with-param name="current_indent" select="$current_indent + 2"/>
+        </xsl:apply-templates>
+        <BR/>
+        <xsl:call-template name="make_indent">
+          <xsl:with-param name="current_indent" select="$current_indent + 2"/>
+        </xsl:call-template>
+        <xsl:text>.</xsl:text>
+        <xsl:apply-templates select="*[4]">
+          <xsl:with-param name="current_indent" select="$current_indent + 2"/>
+        </xsl:apply-templates>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+<!-- EXIST (INLINE MODE) -->
+  <xsl:template match="m:apply[m:exists[count(*) = 0] and m:bvar/m:ci[count(*) = 0] and m:condition[count(*) = 1] and count(*) = 4]" mode="inline">
+    <a href="{m:exists/@definitionURL}">
+      <xsl:choose>
+        <xsl:when test="boolean($exists)">
+          <xsl:call-template name="mksymbol">
+            <xsl:with-param name="symbol" select="$exists"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>exists</xsl:otherwise>
+      </xsl:choose>
+    </a>
+    <xsl:value-of select="m:bvar/m:ci/text()"/>
+    <xsl:text>:</xsl:text>
+    <xsl:apply-templates select="m:condition/*[1]" mode="inline"/>
+    <xsl:text>.</xsl:text>
+    <xsl:apply-templates select="*[4]" mode="inline"/>
+  </xsl:template>
+<!-- EXIST (CHARCOUNT MODE) -->
+  <xsl:template match="m:apply[m:exists[count(*) = 0] and m:bvar/m:ci[count(*) = 0] and m:condition[count(*) = 1] and count(*) = 4]" mode="root_charcount">
+    <xsl:param name="incurrent_length" select="0"/>
+    <xsl:value-of select="$incurrent_length + 3"/>
+  </xsl:template>
+</xsl:stylesheet>