Recursive Functions with Higher Order Domains
In a series of articles, we developed a method to translate general recursive functions written in a functional programming style into constructive type theory. Three problems remained: the method could not properly deal with functions taking functional arguments, the translation of terms containing...
Gespeichert in:
Hauptverfasser: | , |
---|---|
Format: | Tagungsbericht |
Sprache: | eng |
Schlagworte: | |
Online-Zugang: | Volltext |
Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
container_end_page | 130 |
---|---|
container_issue | LNCS 3461 |
container_start_page | 116 |
container_title | |
container_volume | |
creator | Bove, Ana Capretta, Venanzio |
description | In a series of articles, we developed a method to translate general recursive functions written in a functional programming style into constructive type theory. Three problems remained: the method could not properly deal with functions taking functional arguments, the translation of terms containing λ-abstractions was too strict, and partial application of general recursive functions was not allowed. Here, we show how the three problems can be solved by defining a type of partial functions between given types. Every function, including arguments to higher order functions, λ-abstractions and partially applied functions, is then translated as a pair consisting of a domain predicate and a function dependent on the predicate. Higher order functions are assigned domain predicates that inherit termination conditions from their functional arguments. The translation of a λ-abstraction does not need to be total anymore, but generates a local termination condition. The domain predicate of a partially applied function is defined by fixing the given arguments in the domain of the original function. As in our previous articles, simultaneous induction-recursion is required to deal with nested recursive functions. Since by using our method the inductive definition of the domain predicate can refer globally to the domain predicate itself, here we need to work on an impredicative type theory for the method to apply to all functions. However, in most practical cases the method can be adapted to work on a predicative type theory with type universes. |
doi_str_mv | 10.1007/11417170_10 |
format | Conference Proceeding |
fullrecord | <record><control><sourceid>swepub_pasca</sourceid><recordid>TN_cdi_pascalfrancis_primary_17027724</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>oai_research_chalmers_se_ec23c716_3065_4b0d_9208_c179a18f49bf</sourcerecordid><originalsourceid>FETCH-LOGICAL-p295t-1e08554bf78b06f1250fb33d6a274f3c749bcb6482abc2c46c1d54b93621dabf3</originalsourceid><addsrcrecordid>eNpNkMtOwzAQRc1Loi2s-IFsWLAIzPgRx0tUKCBVqsRjbdmO0xjapLJbKv6eVK0Qm5nFvTpXOoRcIdwigLxD5ChRgkY4IkMmODAKyMtjMsACMWeMq5N9QIVQDE_JABjQXEnOzskwpU8AoFLRAclfvdvEFL59Ntm0bh26NmXbsG6y5zBvfMxmservQ7c0oU0X5Kw2i-QvD39EPiaP7-PnfDp7ehnfT_MVVWKdo4dSCG5rWVooaqQCastYVRgqec2c5Mo6W_CSGuuo44XDqq8rVlCsjK3ZiLztuWnrVxurVzEsTfzRnQk6-uRNdI12jVksfUw6ee0d7bFYaAaF0NxCpRWFUjuUymBZ94M76vWeujLJmUUdTetC-oP3RqmUlPe9m8N6H7VzH7Xtuq_U69Y7__qff_YLTZZxOA</addsrcrecordid><sourcetype>Open Access Repository</sourcetype><iscdi>true</iscdi><recordtype>conference_proceeding</recordtype></control><display><type>conference_proceeding</type><title>Recursive Functions with Higher Order Domains</title><source>Springer Books</source><creator>Bove, Ana ; Capretta, Venanzio</creator><contributor>Urzyczyn, Paweł</contributor><creatorcontrib>Bove, Ana ; Capretta, Venanzio ; Urzyczyn, Paweł</creatorcontrib><description>In a series of articles, we developed a method to translate general recursive functions written in a functional programming style into constructive type theory. Three problems remained: the method could not properly deal with functions taking functional arguments, the translation of terms containing λ-abstractions was too strict, and partial application of general recursive functions was not allowed. Here, we show how the three problems can be solved by defining a type of partial functions between given types. Every function, including arguments to higher order functions, λ-abstractions and partially applied functions, is then translated as a pair consisting of a domain predicate and a function dependent on the predicate. Higher order functions are assigned domain predicates that inherit termination conditions from their functional arguments. The translation of a λ-abstraction does not need to be total anymore, but generates a local termination condition. The domain predicate of a partially applied function is defined by fixing the given arguments in the domain of the original function. As in our previous articles, simultaneous induction-recursion is required to deal with nested recursive functions. Since by using our method the inductive definition of the domain predicate can refer globally to the domain predicate itself, here we need to work on an impredicative type theory for the method to apply to all functions. However, in most practical cases the method can be adapted to work on a predicative type theory with type universes.</description><identifier>ISSN: 0302-9743</identifier><identifier>ISSN: 1611-3349</identifier><identifier>ISBN: 3540255931</identifier><identifier>ISBN: 9783540255932</identifier><identifier>EISSN: 1611-3349</identifier><identifier>EISBN: 3540320148</identifier><identifier>EISBN: 9783540320142</identifier><identifier>DOI: 10.1007/11417170_10</identifier><language>eng</language><publisher>Berlin, Heidelberg: Springer Berlin Heidelberg</publisher><subject>Algorithmics. Computability. Computer arithmetics ; Applied sciences ; Computer science; control theory; systems ; Exact sciences and technology ; Functional Programming ; Partial Function ; Recursive Call ; Recursive Function ; Theoretical computing ; Type Theory</subject><ispartof>Lecture notes in computer science, 2005 (LNCS 3461), p.116-130</ispartof><rights>Springer-Verlag Berlin Heidelberg 2005</rights><rights>2005 INIST-CNRS</rights><lds50>peer_reviewed</lds50><woscitedreferencessubscribed>false</woscitedreferencessubscribed></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><linktopdf>$$Uhttps://link.springer.com/content/pdf/10.1007/11417170_10$$EPDF$$P50$$Gspringer$$H</linktopdf><linktohtml>$$Uhttps://link.springer.com/10.1007/11417170_10$$EHTML$$P50$$Gspringer$$H</linktohtml><link.rule.ids>309,310,776,777,781,786,787,790,882,4036,4037,25121,27906,38236,41423,42492</link.rule.ids><backlink>$$Uhttp://pascal-francis.inist.fr/vibad/index.php?action=getRecordDetail&idt=17027724$$DView record in Pascal Francis$$Hfree_for_read</backlink><backlink>$$Uhttps://research.chalmers.se/publication/7308$$DView record from Swedish Publication Index$$Hfree_for_read</backlink></links><search><contributor>Urzyczyn, Paweł</contributor><creatorcontrib>Bove, Ana</creatorcontrib><creatorcontrib>Capretta, Venanzio</creatorcontrib><title>Recursive Functions with Higher Order Domains</title><title>Lecture notes in computer science</title><description>In a series of articles, we developed a method to translate general recursive functions written in a functional programming style into constructive type theory. Three problems remained: the method could not properly deal with functions taking functional arguments, the translation of terms containing λ-abstractions was too strict, and partial application of general recursive functions was not allowed. Here, we show how the three problems can be solved by defining a type of partial functions between given types. Every function, including arguments to higher order functions, λ-abstractions and partially applied functions, is then translated as a pair consisting of a domain predicate and a function dependent on the predicate. Higher order functions are assigned domain predicates that inherit termination conditions from their functional arguments. The translation of a λ-abstraction does not need to be total anymore, but generates a local termination condition. The domain predicate of a partially applied function is defined by fixing the given arguments in the domain of the original function. As in our previous articles, simultaneous induction-recursion is required to deal with nested recursive functions. Since by using our method the inductive definition of the domain predicate can refer globally to the domain predicate itself, here we need to work on an impredicative type theory for the method to apply to all functions. However, in most practical cases the method can be adapted to work on a predicative type theory with type universes.</description><subject>Algorithmics. Computability. Computer arithmetics</subject><subject>Applied sciences</subject><subject>Computer science; control theory; systems</subject><subject>Exact sciences and technology</subject><subject>Functional Programming</subject><subject>Partial Function</subject><subject>Recursive Call</subject><subject>Recursive Function</subject><subject>Theoretical computing</subject><subject>Type Theory</subject><issn>0302-9743</issn><issn>1611-3349</issn><issn>1611-3349</issn><isbn>3540255931</isbn><isbn>9783540255932</isbn><isbn>3540320148</isbn><isbn>9783540320142</isbn><fulltext>true</fulltext><rsrctype>conference_proceeding</rsrctype><creationdate>2005</creationdate><recordtype>conference_proceeding</recordtype><recordid>eNpNkMtOwzAQRc1Loi2s-IFsWLAIzPgRx0tUKCBVqsRjbdmO0xjapLJbKv6eVK0Qm5nFvTpXOoRcIdwigLxD5ChRgkY4IkMmODAKyMtjMsACMWeMq5N9QIVQDE_JABjQXEnOzskwpU8AoFLRAclfvdvEFL59Ntm0bh26NmXbsG6y5zBvfMxmservQ7c0oU0X5Kw2i-QvD39EPiaP7-PnfDp7ehnfT_MVVWKdo4dSCG5rWVooaqQCastYVRgqec2c5Mo6W_CSGuuo44XDqq8rVlCsjK3ZiLztuWnrVxurVzEsTfzRnQk6-uRNdI12jVksfUw6ee0d7bFYaAaF0NxCpRWFUjuUymBZ94M76vWeujLJmUUdTetC-oP3RqmUlPe9m8N6H7VzH7Xtuq_U69Y7__qff_YLTZZxOA</recordid><startdate>2005</startdate><enddate>2005</enddate><creator>Bove, Ana</creator><creator>Capretta, Venanzio</creator><general>Springer Berlin Heidelberg</general><general>Springer</general><scope>IQODW</scope><scope>ADTPV</scope><scope>BNKNJ</scope><scope>F1S</scope></search><sort><creationdate>2005</creationdate><title>Recursive Functions with Higher Order Domains</title><author>Bove, Ana ; Capretta, Venanzio</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-p295t-1e08554bf78b06f1250fb33d6a274f3c749bcb6482abc2c46c1d54b93621dabf3</frbrgroupid><rsrctype>conference_proceedings</rsrctype><prefilter>conference_proceedings</prefilter><language>eng</language><creationdate>2005</creationdate><topic>Algorithmics. Computability. Computer arithmetics</topic><topic>Applied sciences</topic><topic>Computer science; control theory; systems</topic><topic>Exact sciences and technology</topic><topic>Functional Programming</topic><topic>Partial Function</topic><topic>Recursive Call</topic><topic>Recursive Function</topic><topic>Theoretical computing</topic><topic>Type Theory</topic><toplevel>peer_reviewed</toplevel><toplevel>online_resources</toplevel><creatorcontrib>Bove, Ana</creatorcontrib><creatorcontrib>Capretta, Venanzio</creatorcontrib><collection>Pascal-Francis</collection><collection>SwePub</collection><collection>SwePub Conference</collection><collection>SWEPUB Chalmers tekniska högskola</collection></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>Bove, Ana</au><au>Capretta, Venanzio</au><au>Urzyczyn, Paweł</au><format>book</format><genre>proceeding</genre><ristype>CONF</ristype><atitle>Recursive Functions with Higher Order Domains</atitle><btitle>Lecture notes in computer science</btitle><date>2005</date><risdate>2005</risdate><issue>LNCS 3461</issue><spage>116</spage><epage>130</epage><pages>116-130</pages><issn>0302-9743</issn><issn>1611-3349</issn><eissn>1611-3349</eissn><isbn>3540255931</isbn><isbn>9783540255932</isbn><eisbn>3540320148</eisbn><eisbn>9783540320142</eisbn><abstract>In a series of articles, we developed a method to translate general recursive functions written in a functional programming style into constructive type theory. Three problems remained: the method could not properly deal with functions taking functional arguments, the translation of terms containing λ-abstractions was too strict, and partial application of general recursive functions was not allowed. Here, we show how the three problems can be solved by defining a type of partial functions between given types. Every function, including arguments to higher order functions, λ-abstractions and partially applied functions, is then translated as a pair consisting of a domain predicate and a function dependent on the predicate. Higher order functions are assigned domain predicates that inherit termination conditions from their functional arguments. The translation of a λ-abstraction does not need to be total anymore, but generates a local termination condition. The domain predicate of a partially applied function is defined by fixing the given arguments in the domain of the original function. As in our previous articles, simultaneous induction-recursion is required to deal with nested recursive functions. Since by using our method the inductive definition of the domain predicate can refer globally to the domain predicate itself, here we need to work on an impredicative type theory for the method to apply to all functions. However, in most practical cases the method can be adapted to work on a predicative type theory with type universes.</abstract><cop>Berlin, Heidelberg</cop><pub>Springer Berlin Heidelberg</pub><doi>10.1007/11417170_10</doi><tpages>15</tpages></addata></record> |
fulltext | fulltext |
identifier | ISSN: 0302-9743 |
ispartof | Lecture notes in computer science, 2005 (LNCS 3461), p.116-130 |
issn | 0302-9743 1611-3349 1611-3349 |
language | eng |
recordid | cdi_pascalfrancis_primary_17027724 |
source | Springer Books |
subjects | Algorithmics. Computability. Computer arithmetics Applied sciences Computer science control theory systems Exact sciences and technology Functional Programming Partial Function Recursive Call Recursive Function Theoretical computing Type Theory |
title | Recursive Functions with Higher Order Domains |
url | https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-01-20T18%3A51%3A01IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-swepub_pasca&rft_val_fmt=info:ofi/fmt:kev:mtx:book&rft.genre=proceeding&rft.atitle=Recursive%20Functions%20with%20Higher%20Order%20Domains&rft.btitle=Lecture%20notes%20in%20computer%20science&rft.au=Bove,%20Ana&rft.date=2005&rft.issue=LNCS%203461&rft.spage=116&rft.epage=130&rft.pages=116-130&rft.issn=0302-9743&rft.eissn=1611-3349&rft.isbn=3540255931&rft.isbn_list=9783540255932&rft_id=info:doi/10.1007/11417170_10&rft_dat=%3Cswepub_pasca%3Eoai_research_chalmers_se_ec23c716_3065_4b0d_9208_c179a18f49bf%3C/swepub_pasca%3E%3Curl%3E%3C/url%3E&rft.eisbn=3540320148&rft.eisbn_list=9783540320142&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_id=info:pmid/&rfr_iscdi=true |