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...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Hauptverfasser: Bove, Ana, Capretta, Venanzio
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&amp;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