<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<!-- DOCTYPE xsl:stylesheet SYSTEM ""-->

<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:dl="http://co4.inrialpes.fr/xml/dlml/"
  result-ns=""
  indent="yes">

<xsl:output
  method="xml"
  version="1.0"
  encoding="UTF-8"
  omit-xml-declaration="no"
  standalone="no"
  doctype-system="http://co4.inrialpes.fr/xml/dlml/logic/dtd/al.dtd"
  indent="yes"/> 

<!-- toplevel -->
<xsl:template match="/">
<xsl:text disable-output-escaping="yes">

</xsl:text>
	<xsl:apply-templates/>
</xsl:template>

<!-- other are missing -->

<xsl:template match="dl:TERMINOLOGY">
	<dl:TERMINOLOGY logic="http://co4.inrialpes.fr/xml/dlml/logic/dtd/alue.dtd"
			name="{./@name}">
		<xsl:apply-templates select="*"/>
	</dl:TERMINOLOGY>
</xsl:template>

<xsl:template match="dl:OR">
	<dl:ANYTHING/>
</xsl:template>

<!-- Positive rewritting -->

<xsl:template match="dl:CPRIM|dl:CCOVER|dl:CEXCL|dl:RPRIM|dl:RDEF|dl:RCOVER|dl:REXCL|dl:ANOT|dl:ALL|dl:AND|dl:SOME|dl:ANYTHING|dl:NOTHING">
	<xsl:copy>
		<xsl:apply-templates select="*"/>
	</xsl:copy>
</xsl:template>

<xsl:template match="dl:CDEF">
	<dl:CPRIM>
		<xsl:apply-templates/>
	</dl:CPRIM>
</xsl:template>

<xsl:template match="dl:NOT">
	<xsl:apply-templates mode="process-not"/>
</xsl:template>

<xsl:template match="dl:CATOM">
	<dl:CATOM><xsl:value-of select="./text()"/></dl:CATOM>
</xsl:template>

<xsl:template match="dl:RATOM">
	<dl:RATOM><xsl:value-of select="./text()"/></dl:RATOM>
</xsl:template>

<!-- negative rewritting -->

<xsl:template match="dl:NOT|dl:ANOT" mode="process-not">
	<xsl:apply-templates/>
</xsl:template>

<xsl:template match="dl:ANYTHING" mode="process-not">
	<dl:NOTHING/>
</xsl:template>

<xsl:template match="dl:CATOM" mode="process-not">
	<dl:ANOT>
		<dl:CATOM>
			<xsl:apply-templates/>
		</dl:CATOM>
	</dl:ANOT>
</xsl:template>

<xsl:template match="dl:SOME" mode="process-not">
	<dl:ALL>
		<xsl:apply-templates select="*[1]"/>
		<dl:NOTHING/>
	</dl:ALL>
</xsl:template>

<xsl:template match="dl:ALL|dl:AND|dl:NOTHING" mode="process-not">
	<dl:ANYTHING/>
</xsl:template>

<xsl:template match="dl:OR" mode="process-not">
	<dl:AND>
		<xsl:apply-templates mode="process-not"/>
	</dl:AND>
</xsl:template>

</xsl:stylesheet>
