Higher Order Unification via Explicit Substitutions
Identifieur interne : 006B94 ( Hal/Checkpoint ); précédent : 006B93; suivant : 006B95Higher Order Unification via Explicit Substitutions
Auteurs : Gilles Dowek ; Thérèse Hardin ; Claude Kirchner [France]Source :
English descriptors
Abstract
Higher order unification is equational unification for $\beta\eta$-conversion. But it is not first order equational unification, as substitution has to avoid capture. Thus the methods for equational unification (such as narrowing) built upon grafting (i.e. substitution without renaming), cannot be used for higher order unification, which needs specific algorithms. Our goal in this paper is to reduce higher order unification to first order equational unification in a suitable theory. This is achived by replacing substitution by grafting, but this replacement is not straightforward as it raises two major problems. First, some unification problems have solutions with grafting but no solution with substitution. Then equational unification algorithms rest upon the fact that grafting and reduction commute. But grafting and $\beta\eta$-reduction do not commute in $\lambda$-calculus and reducing an equation may change the set of its solutions. This difficulty comes from the interaction between the substitutions initiated by $\beta \eta$-reduction and the ones initiated by the unification process. The difference is at the variable level. Two kinds of variables are involved: those of $\beta\eta$-conversion and those of unification. So, we need to set up a calculus which distinguishes these two kinds of variables and such that reduction and grafting commute. For that, the application of a substitution of a reduction variable to a unification one must be delayed until this variable is instantiated. Such a separation and a delay are provided by a calculus of explicit substitutions. Unification in such a calculus can be performed by well-known algorithms such as narrowing, but we present a specialized algorithm for a greater efficiency. At last we show how to relate unification in $\lambda$-calculus and in a calculus with explicit substitutions. Thus we come up with a new higher order unification algorithm which eliminates some burdens of the previous algorithms, in particular the functional handling of scopes. Huet's algorithm, can be seen as a specific strategy for our algorithm, since each of its step is decomposed in elementary ones, giving a more atomic description of the unification process. Also, solved forms in $\lambda$-calculus can easily be computed from solved forms in $\ls$-calculus.
Url:
Links toward previous steps (curation, corpus...)
Links to Exploration step
Hal:inria-00077197Le document en format XML
<record><TEI><teiHeader><fileDesc><titleStmt><title xml:lang="en">Higher Order Unification via Explicit Substitutions</title>
<author><name sortKey="Dowek, Gilles" sort="Dowek, Gilles" uniqKey="Dowek G" first="Gilles" last="Dowek">Gilles Dowek</name>
</author>
<author><name sortKey="Hardin, Therese" sort="Hardin, Therese" uniqKey="Hardin T" first="Thérèse" last="Hardin">Thérèse Hardin</name>
</author>
<author><name sortKey="Kirchner, Claude" sort="Kirchner, Claude" uniqKey="Kirchner C" first="Claude" last="Kirchner">Claude Kirchner</name>
<affiliation wicri:level="1"><hal:affiliation type="researchteam" xml:id="struct-2360" status="OLD"><idno type="RNSR">199221357D</idno>
<orgName>Constraints, automatic deduction and software properties proofs</orgName>
<orgName type="acronym">PROTHEO</orgName>
<desc><address><country key="FR"></country>
</address>
<ref type="url">http://www.inria.fr/equipes/protheo</ref>
</desc>
<listRelation><relation active="#struct-160" type="direct"></relation>
<relation name="UMR7503" active="#struct-441569" type="indirect"></relation>
<relation active="#struct-300009" type="indirect"></relation>
<relation active="#struct-300291" type="indirect"></relation>
<relation active="#struct-300292" type="indirect"></relation>
<relation active="#struct-300293" type="indirect"></relation>
<relation active="#struct-2496" type="direct"></relation>
</listRelation>
<tutelles><tutelle active="#struct-160" type="direct"><org type="laboratory" xml:id="struct-160" status="OLD"><orgName>Laboratoire Lorrain de Recherche en Informatique et ses Applications</orgName>
<orgName type="acronym">LORIA</orgName>
<desc><address><addrLine>Campus Scientifique BP 239 54506 Vandoeuvre-lès-Nancy Cedex</addrLine>
<country key="FR"></country>
</address>
<ref type="url">http://www.loria.fr</ref>
</desc>
<listRelation><relation name="UMR7503" active="#struct-441569" type="direct"></relation>
<relation active="#struct-300009" type="direct"></relation>
<relation active="#struct-300291" type="direct"></relation>
<relation active="#struct-300292" type="direct"></relation>
<relation active="#struct-300293" type="direct"></relation>
</listRelation>
</org>
</tutelle>
<tutelle name="UMR7503" active="#struct-441569" type="indirect"><org type="institution" xml:id="struct-441569" status="VALID"><idno type="ISNI">0000000122597504</idno>
<idno type="IdRef">02636817X</idno>
<orgName>Centre National de la Recherche Scientifique</orgName>
<orgName type="acronym">CNRS</orgName>
<date type="start">1939-10-19</date>
<desc><address><country key="FR"></country>
</address>
<ref type="url">http://www.cnrs.fr/</ref>
</desc>
</org>
</tutelle>
<tutelle active="#struct-300009" type="indirect"><org type="institution" xml:id="struct-300009" status="VALID"><orgName>Institut National de Recherche en Informatique et en Automatique</orgName>
<orgName type="acronym">Inria</orgName>
<desc><address><addrLine>Domaine de VoluceauRocquencourt - BP 10578153 Le Chesnay Cedex</addrLine>
<country key="FR"></country>
</address>
<ref type="url">http://www.inria.fr/en/</ref>
</desc>
</org>
</tutelle>
<tutelle active="#struct-300291" type="indirect"><org type="institution" xml:id="struct-300291" status="OLD"><orgName>Université Henri Poincaré - Nancy 1</orgName>
<orgName type="acronym">UHP</orgName>
<date type="end">2011-12-31</date>
<desc><address><addrLine>24-30 rue Lionnois, BP 60120, 54 003 NANCY cedex, France</addrLine>
<country key="FR"></country>
</address>
</desc>
</org>
</tutelle>
<tutelle active="#struct-300292" type="indirect"><org type="institution" xml:id="struct-300292" status="OLD"><orgName>Université Nancy 2</orgName>
<date type="end">2011-12-31</date>
<desc><address><addrLine>91 avenue de la Libération, BP 454, 54001 Nancy cedex</addrLine>
<country key="FR"></country>
</address>
</desc>
</org>
</tutelle>
<tutelle active="#struct-300293" type="indirect"><org type="institution" xml:id="struct-300293" status="OLD"><orgName>Institut National Polytechnique de Lorraine</orgName>
<orgName type="acronym">INPL</orgName>
<date type="end">2011-12-31</date>
<desc><address><country key="FR"></country>
</address>
</desc>
</org>
</tutelle>
<tutelle active="#struct-2496" type="direct"><org type="laboratory" xml:id="struct-2496" status="OLD"><orgName>INRIA Lorraine</orgName>
<desc><address><addrLine>615 rue du Jardin Botanique 54600 Villers-lès-Nancy</addrLine>
<country key="FR"></country>
</address>
<ref type="url">http://www.inria.fr/centre-de-recherche-inria/nancy-grand-est</ref>
</desc>
<listRelation><relation active="#struct-300009" type="direct"></relation>
</listRelation>
</org>
</tutelle>
</tutelles>
</hal:affiliation>
<country>France</country>
<placeName><settlement type="city">Nancy</settlement>
<region type="region" nuts="2">Grand Est</region>
<region type="old region" nuts="2">Lorraine (région)</region>
</placeName>
<orgName type="university">Université Nancy 2</orgName>
<orgName type="institution" wicri:auto="newGroup">Université de Lorraine</orgName>
<placeName><settlement type="city">Nancy</settlement>
<region type="region" nuts="2">Grand Est</region>
<region type="old region" nuts="2">Lorraine (région)</region>
</placeName>
<orgName type="university">Institut national polytechnique de Lorraine</orgName>
<orgName type="institution" wicri:auto="newGroup">Université de Lorraine</orgName>
</affiliation>
</author>
</titleStmt>
<publicationStmt><idno type="wicri:source">HAL</idno>
<idno type="RBID">Hal:inria-00077197</idno>
<idno type="halId">inria-00077197</idno>
<idno type="halUri">https://hal.inria.fr/inria-00077197</idno>
<idno type="url">https://hal.inria.fr/inria-00077197</idno>
<date when="1995">1995</date>
<idno type="wicri:Area/Hal/Corpus">002795</idno>
<idno type="wicri:Area/Hal/Curation">002795</idno>
<idno type="wicri:Area/Hal/Checkpoint">006B94</idno>
<idno type="wicri:explorRef" wicri:stream="Hal" wicri:step="Checkpoint">006B94</idno>
</publicationStmt>
<sourceDesc><biblStruct><analytic><title xml:lang="en">Higher Order Unification via Explicit Substitutions</title>
<author><name sortKey="Dowek, Gilles" sort="Dowek, Gilles" uniqKey="Dowek G" first="Gilles" last="Dowek">Gilles Dowek</name>
</author>
<author><name sortKey="Hardin, Therese" sort="Hardin, Therese" uniqKey="Hardin T" first="Thérèse" last="Hardin">Thérèse Hardin</name>
</author>
<author><name sortKey="Kirchner, Claude" sort="Kirchner, Claude" uniqKey="Kirchner C" first="Claude" last="Kirchner">Claude Kirchner</name>
<affiliation wicri:level="1"><hal:affiliation type="researchteam" xml:id="struct-2360" status="OLD"><idno type="RNSR">199221357D</idno>
<orgName>Constraints, automatic deduction and software properties proofs</orgName>
<orgName type="acronym">PROTHEO</orgName>
<desc><address><country key="FR"></country>
</address>
<ref type="url">http://www.inria.fr/equipes/protheo</ref>
</desc>
<listRelation><relation active="#struct-160" type="direct"></relation>
<relation name="UMR7503" active="#struct-441569" type="indirect"></relation>
<relation active="#struct-300009" type="indirect"></relation>
<relation active="#struct-300291" type="indirect"></relation>
<relation active="#struct-300292" type="indirect"></relation>
<relation active="#struct-300293" type="indirect"></relation>
<relation active="#struct-2496" type="direct"></relation>
</listRelation>
<tutelles><tutelle active="#struct-160" type="direct"><org type="laboratory" xml:id="struct-160" status="OLD"><orgName>Laboratoire Lorrain de Recherche en Informatique et ses Applications</orgName>
<orgName type="acronym">LORIA</orgName>
<desc><address><addrLine>Campus Scientifique BP 239 54506 Vandoeuvre-lès-Nancy Cedex</addrLine>
<country key="FR"></country>
</address>
<ref type="url">http://www.loria.fr</ref>
</desc>
<listRelation><relation name="UMR7503" active="#struct-441569" type="direct"></relation>
<relation active="#struct-300009" type="direct"></relation>
<relation active="#struct-300291" type="direct"></relation>
<relation active="#struct-300292" type="direct"></relation>
<relation active="#struct-300293" type="direct"></relation>
</listRelation>
</org>
</tutelle>
<tutelle name="UMR7503" active="#struct-441569" type="indirect"><org type="institution" xml:id="struct-441569" status="VALID"><idno type="ISNI">0000000122597504</idno>
<idno type="IdRef">02636817X</idno>
<orgName>Centre National de la Recherche Scientifique</orgName>
<orgName type="acronym">CNRS</orgName>
<date type="start">1939-10-19</date>
<desc><address><country key="FR"></country>
</address>
<ref type="url">http://www.cnrs.fr/</ref>
</desc>
</org>
</tutelle>
<tutelle active="#struct-300009" type="indirect"><org type="institution" xml:id="struct-300009" status="VALID"><orgName>Institut National de Recherche en Informatique et en Automatique</orgName>
<orgName type="acronym">Inria</orgName>
<desc><address><addrLine>Domaine de VoluceauRocquencourt - BP 10578153 Le Chesnay Cedex</addrLine>
<country key="FR"></country>
</address>
<ref type="url">http://www.inria.fr/en/</ref>
</desc>
</org>
</tutelle>
<tutelle active="#struct-300291" type="indirect"><org type="institution" xml:id="struct-300291" status="OLD"><orgName>Université Henri Poincaré - Nancy 1</orgName>
<orgName type="acronym">UHP</orgName>
<date type="end">2011-12-31</date>
<desc><address><addrLine>24-30 rue Lionnois, BP 60120, 54 003 NANCY cedex, France</addrLine>
<country key="FR"></country>
</address>
</desc>
</org>
</tutelle>
<tutelle active="#struct-300292" type="indirect"><org type="institution" xml:id="struct-300292" status="OLD"><orgName>Université Nancy 2</orgName>
<date type="end">2011-12-31</date>
<desc><address><addrLine>91 avenue de la Libération, BP 454, 54001 Nancy cedex</addrLine>
<country key="FR"></country>
</address>
</desc>
</org>
</tutelle>
<tutelle active="#struct-300293" type="indirect"><org type="institution" xml:id="struct-300293" status="OLD"><orgName>Institut National Polytechnique de Lorraine</orgName>
<orgName type="acronym">INPL</orgName>
<date type="end">2011-12-31</date>
<desc><address><country key="FR"></country>
</address>
</desc>
</org>
</tutelle>
<tutelle active="#struct-2496" type="direct"><org type="laboratory" xml:id="struct-2496" status="OLD"><orgName>INRIA Lorraine</orgName>
<desc><address><addrLine>615 rue du Jardin Botanique 54600 Villers-lès-Nancy</addrLine>
<country key="FR"></country>
</address>
<ref type="url">http://www.inria.fr/centre-de-recherche-inria/nancy-grand-est</ref>
</desc>
<listRelation><relation active="#struct-300009" type="direct"></relation>
</listRelation>
</org>
</tutelle>
</tutelles>
</hal:affiliation>
<country>France</country>
<placeName><settlement type="city">Nancy</settlement>
<region type="region" nuts="2">Grand Est</region>
<region type="old region" nuts="2">Lorraine (région)</region>
</placeName>
<orgName type="university">Université Nancy 2</orgName>
<orgName type="institution" wicri:auto="newGroup">Université de Lorraine</orgName>
<placeName><settlement type="city">Nancy</settlement>
<region type="region" nuts="2">Grand Est</region>
<region type="old region" nuts="2">Lorraine (région)</region>
</placeName>
<orgName type="university">Institut national polytechnique de Lorraine</orgName>
<orgName type="institution" wicri:auto="newGroup">Université de Lorraine</orgName>
</affiliation>
</author>
</analytic>
</biblStruct>
</sourceDesc>
</fileDesc>
<profileDesc><textClass><keywords scheme="mix" xml:lang="en"><term>explicit substitutions</term>
<term>higher order unification</term>
</keywords>
</textClass>
</profileDesc>
</teiHeader>
<front><div type="abstract" xml:lang="en">Higher order unification is equational unification for $\beta\eta$-conversion. But it is not first order equational unification, as substitution has to avoid capture. Thus the methods for equational unification (such as narrowing) built upon grafting (i.e. substitution without renaming), cannot be used for higher order unification, which needs specific algorithms. Our goal in this paper is to reduce higher order unification to first order equational unification in a suitable theory. This is achived by replacing substitution by grafting, but this replacement is not straightforward as it raises two major problems. First, some unification problems have solutions with grafting but no solution with substitution. Then equational unification algorithms rest upon the fact that grafting and reduction commute. But grafting and $\beta\eta$-reduction do not commute in $\lambda$-calculus and reducing an equation may change the set of its solutions. This difficulty comes from the interaction between the substitutions initiated by $\beta \eta$-reduction and the ones initiated by the unification process. The difference is at the variable level. Two kinds of variables are involved: those of $\beta\eta$-conversion and those of unification. So, we need to set up a calculus which distinguishes these two kinds of variables and such that reduction and grafting commute. For that, the application of a substitution of a reduction variable to a unification one must be delayed until this variable is instantiated. Such a separation and a delay are provided by a calculus of explicit substitutions. Unification in such a calculus can be performed by well-known algorithms such as narrowing, but we present a specialized algorithm for a greater efficiency. At last we show how to relate unification in $\lambda$-calculus and in a calculus with explicit substitutions. Thus we come up with a new higher order unification algorithm which eliminates some burdens of the previous algorithms, in particular the functional handling of scopes. Huet's algorithm, can be seen as a specific strategy for our algorithm, since each of its step is decomposed in elementary ones, giving a more atomic description of the unification process. Also, solved forms in $\lambda$-calculus can easily be computed from solved forms in $\ls$-calculus.</div>
</front>
</TEI>
<hal api="V3"><titleStmt><title xml:lang="en">Higher Order Unification via Explicit Substitutions</title>
<author role="aut"><persName><forename type="first">Gilles</forename>
<surname>Dowek</surname>
</persName>
<email></email>
<idno type="halauthor">62174</idno>
</author>
<author role="aut"><persName><forename type="first">Thérèse</forename>
<surname>Hardin</surname>
</persName>
<email></email>
<idno type="halauthor">99580</idno>
</author>
<author role="aut"><persName><forename type="first">Claude</forename>
<surname>Kirchner</surname>
</persName>
<email></email>
<idno type="idhal">claudekirchner</idno>
<idno type="halauthor">66450</idno>
<idno type="ORCID">http://orcid.org/0000-0002-1686-1046</idno>
<affiliation ref="#struct-2360"></affiliation>
</author>
<editor role="depositor"><persName><forename>Rapport De Recherche</forename>
<surname>Inria</surname>
</persName>
<email>rrrt-editeurs@inria.fr</email>
</editor>
</titleStmt>
<editionStmt><edition n="v1" type="current"><date type="whenSubmitted">2006-05-29 17:18:25</date>
<date type="whenWritten">1995-11</date>
<date type="whenModified">2016-05-19 01:09:26</date>
<date type="whenReleased">2006-05-31 14:24:37</date>
<date type="whenProduced">1995</date>
<date type="whenEndEmbargoed">2006-05-29</date>
<ref type="file" target="https://hal.inria.fr/inria-00077197/document"><date notBefore="2006-05-29"></date>
</ref>
<ref type="file" n="1" target="https://hal.inria.fr/inria-00077197/file/RR-2709.pdf"><date notBefore="2006-05-29"></date>
</ref>
</edition>
<respStmt><resp>contributor</resp>
<name key="111068"><persName><forename>Rapport De Recherche</forename>
<surname>Inria</surname>
</persName>
<email>rrrt-editeurs@inria.fr</email>
</name>
</respStmt>
</editionStmt>
<publicationStmt><distributor>CCSD</distributor>
<idno type="halId">inria-00077197</idno>
<idno type="halUri">https://hal.inria.fr/inria-00077197</idno>
<idno type="halBibtex">dowek:inria-00077197</idno>
<idno type="halRefHtml">[Research Report] RR-2709, INRIA. 1995, pp.42</idno>
<idno type="halRef">[Research Report] RR-2709, INRIA. 1995, pp.42</idno>
</publicationStmt>
<seriesStmt><idno type="stamp" n="INRIA">INRIA - Institut National de Recherche en Informatique et en Automatique</idno>
<idno type="stamp" n="INRIA-RRRT">Rapports de recherche et Technique de l'Inria</idno>
<idno type="stamp" n="CNRS">CNRS - Centre national de la recherche scientifique</idno>
<idno type="stamp" n="INPL">Institut National Polytechnique de Lorraine</idno>
<idno type="stamp" n="LORIA2">Publications du LORIA</idno>
<idno type="stamp" n="INRIA-NANCY-GRAND-EST">INRIA Nancy - Grand Est</idno>
<idno type="stamp" n="LORIA">LORIA - Laboratoire Lorrain de Recherche en Informatique et ses Applications</idno>
<idno type="stamp" n="LORIA-FM" p="LORIA">Méthodes formelles</idno>
<idno type="stamp" n="UNIV-LORRAINE">Université de Lorraine</idno>
<idno type="stamp" n="INRIA-LORRAINE">INRIA Nancy - Grand Est</idno>
<idno type="stamp" n="LABO-LORIA-SET" p="LORIA">LABO-LORIA-SET</idno>
</seriesStmt>
<notesStmt><note type="commentary">Projet COQ, Projet PARA,</note>
<note type="audience" n="0">Not set</note>
<note type="report" n="6">Research Report</note>
</notesStmt>
<sourceDesc><biblStruct><analytic><title xml:lang="en">Higher Order Unification via Explicit Substitutions</title>
<author role="aut"><persName><forename type="first">Gilles</forename>
<surname>Dowek</surname>
</persName>
<idno type="halAuthorId">62174</idno>
</author>
<author role="aut"><persName><forename type="first">Thérèse</forename>
<surname>Hardin</surname>
</persName>
<idno type="halAuthorId">99580</idno>
</author>
<author role="aut"><persName><forename type="first">Claude</forename>
<surname>Kirchner</surname>
</persName>
<idno type="idHal">claudekirchner</idno>
<idno type="halAuthorId">66450</idno>
<idno type="ORCID">http://orcid.org/0000-0002-1686-1046</idno>
<affiliation ref="#struct-2360"></affiliation>
</author>
</analytic>
<monogr><idno type="reportNumber">RR-2709</idno>
<imprint><biblScope unit="pp">42</biblScope>
<date type="datePub">1995</date>
</imprint>
<authority type="institution">INRIA</authority>
</monogr>
</biblStruct>
</sourceDesc>
<profileDesc><langUsage><language ident="en">English</language>
</langUsage>
<textClass><keywords scheme="author"><term xml:lang="en">explicit substitutions</term>
<term xml:lang="en">higher order unification</term>
</keywords>
<classCode scheme="halDomain" n="info.info-oh">Computer Science [cs]/Other [cs.OH]</classCode>
<classCode scheme="halTypology" n="REPORT">Reports</classCode>
</textClass>
<abstract xml:lang="en">Higher order unification is equational unification for $\beta\eta$-conversion. But it is not first order equational unification, as substitution has to avoid capture. Thus the methods for equational unification (such as narrowing) built upon grafting (i.e. substitution without renaming), cannot be used for higher order unification, which needs specific algorithms. Our goal in this paper is to reduce higher order unification to first order equational unification in a suitable theory. This is achived by replacing substitution by grafting, but this replacement is not straightforward as it raises two major problems. First, some unification problems have solutions with grafting but no solution with substitution. Then equational unification algorithms rest upon the fact that grafting and reduction commute. But grafting and $\beta\eta$-reduction do not commute in $\lambda$-calculus and reducing an equation may change the set of its solutions. This difficulty comes from the interaction between the substitutions initiated by $\beta \eta$-reduction and the ones initiated by the unification process. The difference is at the variable level. Two kinds of variables are involved: those of $\beta\eta$-conversion and those of unification. So, we need to set up a calculus which distinguishes these two kinds of variables and such that reduction and grafting commute. For that, the application of a substitution of a reduction variable to a unification one must be delayed until this variable is instantiated. Such a separation and a delay are provided by a calculus of explicit substitutions. Unification in such a calculus can be performed by well-known algorithms such as narrowing, but we present a specialized algorithm for a greater efficiency. At last we show how to relate unification in $\lambda$-calculus and in a calculus with explicit substitutions. Thus we come up with a new higher order unification algorithm which eliminates some burdens of the previous algorithms, in particular the functional handling of scopes. Huet's algorithm, can be seen as a specific strategy for our algorithm, since each of its step is decomposed in elementary ones, giving a more atomic description of the unification process. Also, solved forms in $\lambda$-calculus can easily be computed from solved forms in $\ls$-calculus.</abstract>
</profileDesc>
</hal>
</record>
Pour manipuler ce document sous Unix (Dilib)
EXPLOR_STEP=$WICRI_ROOT/Wicri/Lorraine/explor/InforLorV4/Data/Hal/Checkpoint
HfdSelect -h $EXPLOR_STEP/biblio.hfd -nk 006B94 | SxmlIndent | more
Ou
HfdSelect -h $EXPLOR_AREA/Data/Hal/Checkpoint/biblio.hfd -nk 006B94 | SxmlIndent | more
Pour mettre un lien sur cette page dans le réseau Wicri
{{Explor lien |wiki= Wicri/Lorraine |area= InforLorV4 |flux= Hal |étape= Checkpoint |type= RBID |clé= Hal:inria-00077197 |texte= Higher Order Unification via Explicit Substitutions }}
![]() | This area was generated with Dilib version V0.6.33. | ![]() |