]> matita.cs.unibo.it Git - helm.git/commitdiff
instantiate for induction principles covered.
authorAndrea Asperti <andrea.asperti@unibo.it>
Fri, 6 Dec 2002 16:04:07 +0000 (16:04 +0000)
committerAndrea Asperti <andrea.asperti@unibo.it>
Fri, 6 Dec 2002 16:04:07 +0000 (16:04 +0000)
helm/style/inductive.xsl

index 21f16d7a4dbad930062197543237fc44b81070fe..1d6dc4dd7b76a815876ad72a69cc90c8f92717ed 100644 (file)
 
 <xsl:template mode="try_inductive" match="APPLY">
  <xsl:variable name="id" select="@id"/>
+ <xsl:variable name="uri">
   <xsl:choose>
-   <xsl:when test="CONST[1]">
-    <xsl:variable name="uri" select="CONST[1]/@uri"/>
-    <xsl:choose>
-     <xsl:when test="contains($uri,'_ind.con')">
-      <xsl:variable name="ind_uri" 
-        select="concat(substring-before($uri,'_ind.con'),'.ind')"/>
-      <xsl:variable name="InductiveTypeUrl"><xsl:call-template name="URLofURI4getter"><xsl:with-param name="uri" select="$ind_uri"/></xsl:call-template></xsl:variable>
-      <xsl:variable name="inductive_def" 
-     select="document($InductiveTypeUrl)/InductiveDefinition"/>
-      <xsl:choose>
-       <xsl:when test="$inductive_def">
-        <xsl:variable name="ind_name">
-         <xsl:call-template name="get_name">
-          <xsl:with-param name="uri" select="$uri"/>
-         </xsl:call-template>
-        </xsl:variable>
-        <xsl:apply-templates mode="inductive" select=".">
-         <xsl:with-param name="inductive_def_uri" 
-          select="$ind_uri"/>
-         <xsl:with-param name="inductive_def" select="$inductive_def"/>
-         <xsl:with-param name="inductive_def_index" select="1"/>
-         <xsl:with-param name="inductive_def_name" select="$ind_name"/>
-        </xsl:apply-templates>
-       </xsl:when>
-       <xsl:otherwise>
-        <xsl:apply-templates select="." mode="letin"/>
-       </xsl:otherwise>
-      </xsl:choose>
-     </xsl:when>
-     <xsl:otherwise>
-      <xsl:apply-templates select="." mode="letin"/>
-     </xsl:otherwise>
-    </xsl:choose>
+   <xsl:when test="name(*[1])='CONST'">
+    <xsl:value-of select="*[1]/@uri"/>
    </xsl:when>
    <xsl:otherwise>
-    <xsl:apply-templates select="." mode="letin"/>
+    <!-- instantiate -->
+    <xsl:value-of select="*[1]/CONST[1]/@uri"/>
    </xsl:otherwise>
   </xsl:choose>
+ </xsl:variable>
+ <xsl:choose>
+  <xsl:when test="contains($uri,'_ind.con')">
+   <xsl:variable name="ind_uri" 
+        select="concat(substring-before($uri,'_ind.con'),'.ind')"/>
+   <xsl:variable name="InductiveTypeUrl"><xsl:call-template name="URLofURI4getter"><xsl:with-param name="uri" select="$ind_uri"/></xsl:call-template></xsl:variable>
+   <xsl:variable name="inductive_def" 
+        select="document($InductiveTypeUrl)/InductiveDefinition"/>
+   <xsl:choose>
+    <xsl:when test="$inductive_def">
+     <xsl:variable name="ind_name">
+      <xsl:call-template name="get_name">
+       <xsl:with-param name="uri" select="$uri"/>
+      </xsl:call-template>
+     </xsl:variable>
+     <xsl:apply-templates mode="inductive" select=".">
+      <xsl:with-param name="uri" select="$uri"/>
+      <xsl:with-param name="inductive_def_uri" 
+       select="$ind_uri"/>
+      <xsl:with-param name="inductive_def" select="$inductive_def"/>
+      <xsl:with-param name="inductive_def_index" select="1"/>
+      <xsl:with-param name="inductive_def_name" select="$ind_name"/>
+     </xsl:apply-templates>
+    </xsl:when>
+    <xsl:otherwise>
+     <xsl:apply-templates select="." mode="letin"/>
+    </xsl:otherwise>
+   </xsl:choose>
+  </xsl:when>
+  <xsl:otherwise>
+   <xsl:apply-templates select="." mode="letin"/>
+  </xsl:otherwise>
+ </xsl:choose>
 </xsl:template>
 
 
 <xsl:template mode="inductive" match="APPLY">
+ <xsl:param name="uri" select="''"/> 
  <xsl:param name="inductive_def_uri" select="''"/>
  <xsl:param name="inductive_def" select="/.."/>
  <xsl:param name="inductive_def_index" select="1"/>
  <xsl:param name="inductive_def_name" select="''"/>
- <xsl:variable name="InductiveTypeUrl"><xsl:call-template name="URLofURI4getter"><xsl:with-param name="uri" select="*[1]/@uri"/></xsl:call-template></xsl:variable>
+ <xsl:variable name="InductiveTypeUrl"><xsl:call-template name="URLofURI4getter"><xsl:with-param name="uri" select="$uri"/></xsl:call-template></xsl:variable>
  <!-- expected_args_type contains the types of the arguments expected by
       the induction principle -->
  <xsl:variable name="expected_args_types"