Six Ways to Implement Divisibility by Three in miniKanren

This paper explores options for implementing the relation \(n \equiv 0 \ (\text{mod} \ 3)\) within miniKanren using miniKanren numbers and its arithmetic suite. We examine different approaches starting from straightforward implementations to more optimized versions. The implementations discussed inc...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Veröffentlicht in:arXiv.org 2024-08
Hauptverfasser: Schreiber, Brett, Pfingsten, Brysen, Hemann, Jason
Format: Artikel
Sprache:eng
Schlagworte:
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
container_end_page
container_issue
container_start_page
container_title arXiv.org
container_volume
creator Schreiber, Brett
Pfingsten, Brysen
Hemann, Jason
description This paper explores options for implementing the relation \(n \equiv 0 \ (\text{mod} \ 3)\) within miniKanren using miniKanren numbers and its arithmetic suite. We examine different approaches starting from straightforward implementations to more optimized versions. The implementations discussed include brute-force arithmetic methods, divisibility tricks, and derivation from a finite automaton. Our contributions include an in-depth look at the process of implementing a miniKanren relation and observations on benchmarking \texttt{defrel}s. This study aims to provide practical insights for miniKanren programmers on both performance and implementation techniques.
format Article
fullrecord <record><control><sourceid>proquest</sourceid><recordid>TN_cdi_proquest_journals_3098942842</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>3098942842</sourcerecordid><originalsourceid>FETCH-proquest_journals_30989428423</originalsourceid><addsrcrecordid>eNpjYuA0MjY21LUwMTLiYOAtLs4yMDAwMjM3MjU15mSwDM6sUAhPrCxWKMlX8MwtyEnNTc0rUXDJLMsszkzKzMksqVRIqlQIyShKTVXIzFPIzczL9E7MK0rN42FgTUvMKU7lhdLcDMpuriHOHroFRfmFpanFJfFZ-aVFeUCpeGMDSwtLEyOgC4yJUwUAWXw2MQ</addsrcrecordid><sourcetype>Aggregation Database</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype><pqid>3098942842</pqid></control><display><type>article</type><title>Six Ways to Implement Divisibility by Three in miniKanren</title><source>Freely Accessible Journals</source><creator>Schreiber, Brett ; Pfingsten, Brysen ; Hemann, Jason</creator><creatorcontrib>Schreiber, Brett ; Pfingsten, Brysen ; Hemann, Jason</creatorcontrib><description>This paper explores options for implementing the relation \(n \equiv 0 \ (\text{mod} \ 3)\) within miniKanren using miniKanren numbers and its arithmetic suite. We examine different approaches starting from straightforward implementations to more optimized versions. The implementations discussed include brute-force arithmetic methods, divisibility tricks, and derivation from a finite automaton. Our contributions include an in-depth look at the process of implementing a miniKanren relation and observations on benchmarking \texttt{defrel}s. This study aims to provide practical insights for miniKanren programmers on both performance and implementation techniques.</description><identifier>EISSN: 2331-8422</identifier><language>eng</language><publisher>Ithaca: Cornell University Library, arXiv.org</publisher><subject>Arithmetic</subject><ispartof>arXiv.org, 2024-08</ispartof><rights>2024. This work is published under http://creativecommons.org/licenses/by/4.0/ (the “License”). Notwithstanding the ProQuest Terms and Conditions, you may use this content in accordance with the terms of the License.</rights><oa>free_for_read</oa><woscitedreferencessubscribed>false</woscitedreferencessubscribed></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><link.rule.ids>777,781</link.rule.ids></links><search><creatorcontrib>Schreiber, Brett</creatorcontrib><creatorcontrib>Pfingsten, Brysen</creatorcontrib><creatorcontrib>Hemann, Jason</creatorcontrib><title>Six Ways to Implement Divisibility by Three in miniKanren</title><title>arXiv.org</title><description>This paper explores options for implementing the relation \(n \equiv 0 \ (\text{mod} \ 3)\) within miniKanren using miniKanren numbers and its arithmetic suite. We examine different approaches starting from straightforward implementations to more optimized versions. The implementations discussed include brute-force arithmetic methods, divisibility tricks, and derivation from a finite automaton. Our contributions include an in-depth look at the process of implementing a miniKanren relation and observations on benchmarking \texttt{defrel}s. This study aims to provide practical insights for miniKanren programmers on both performance and implementation techniques.</description><subject>Arithmetic</subject><issn>2331-8422</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2024</creationdate><recordtype>article</recordtype><sourceid>ABUWG</sourceid><sourceid>AFKRA</sourceid><sourceid>AZQEC</sourceid><sourceid>BENPR</sourceid><sourceid>CCPQU</sourceid><sourceid>DWQXO</sourceid><recordid>eNpjYuA0MjY21LUwMTLiYOAtLs4yMDAwMjM3MjU15mSwDM6sUAhPrCxWKMlX8MwtyEnNTc0rUXDJLMsszkzKzMksqVRIqlQIyShKTVXIzFPIzczL9E7MK0rN42FgTUvMKU7lhdLcDMpuriHOHroFRfmFpanFJfFZ-aVFeUCpeGMDSwtLEyOgC4yJUwUAWXw2MQ</recordid><startdate>20240829</startdate><enddate>20240829</enddate><creator>Schreiber, Brett</creator><creator>Pfingsten, Brysen</creator><creator>Hemann, Jason</creator><general>Cornell University Library, arXiv.org</general><scope>8FE</scope><scope>8FG</scope><scope>ABJCF</scope><scope>ABUWG</scope><scope>AFKRA</scope><scope>AZQEC</scope><scope>BENPR</scope><scope>BGLVJ</scope><scope>CCPQU</scope><scope>DWQXO</scope><scope>HCIFZ</scope><scope>L6V</scope><scope>M7S</scope><scope>PIMPY</scope><scope>PQEST</scope><scope>PQQKQ</scope><scope>PQUKI</scope><scope>PRINS</scope><scope>PTHSS</scope></search><sort><creationdate>20240829</creationdate><title>Six Ways to Implement Divisibility by Three in miniKanren</title><author>Schreiber, Brett ; Pfingsten, Brysen ; Hemann, Jason</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-proquest_journals_30989428423</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2024</creationdate><topic>Arithmetic</topic><toplevel>online_resources</toplevel><creatorcontrib>Schreiber, Brett</creatorcontrib><creatorcontrib>Pfingsten, Brysen</creatorcontrib><creatorcontrib>Hemann, Jason</creatorcontrib><collection>ProQuest SciTech Collection</collection><collection>ProQuest Technology Collection</collection><collection>Materials Science &amp; Engineering Collection</collection><collection>ProQuest Central (Alumni Edition)</collection><collection>ProQuest Central UK/Ireland</collection><collection>ProQuest Central Essentials</collection><collection>ProQuest Central</collection><collection>Technology Collection</collection><collection>ProQuest One Community College</collection><collection>ProQuest Central Korea</collection><collection>SciTech Premium Collection</collection><collection>ProQuest Engineering Collection</collection><collection>Engineering Database</collection><collection>Publicly Available Content Database</collection><collection>ProQuest One Academic Eastern Edition (DO NOT USE)</collection><collection>ProQuest One Academic</collection><collection>ProQuest One Academic UKI Edition</collection><collection>ProQuest Central China</collection><collection>Engineering Collection</collection></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>Schreiber, Brett</au><au>Pfingsten, Brysen</au><au>Hemann, Jason</au><format>book</format><genre>document</genre><ristype>GEN</ristype><atitle>Six Ways to Implement Divisibility by Three in miniKanren</atitle><jtitle>arXiv.org</jtitle><date>2024-08-29</date><risdate>2024</risdate><eissn>2331-8422</eissn><abstract>This paper explores options for implementing the relation \(n \equiv 0 \ (\text{mod} \ 3)\) within miniKanren using miniKanren numbers and its arithmetic suite. We examine different approaches starting from straightforward implementations to more optimized versions. The implementations discussed include brute-force arithmetic methods, divisibility tricks, and derivation from a finite automaton. Our contributions include an in-depth look at the process of implementing a miniKanren relation and observations on benchmarking \texttt{defrel}s. This study aims to provide practical insights for miniKanren programmers on both performance and implementation techniques.</abstract><cop>Ithaca</cop><pub>Cornell University Library, arXiv.org</pub><oa>free_for_read</oa></addata></record>
fulltext fulltext
identifier EISSN: 2331-8422
ispartof arXiv.org, 2024-08
issn 2331-8422
language eng
recordid cdi_proquest_journals_3098942842
source Freely Accessible Journals
subjects Arithmetic
title Six Ways to Implement Divisibility by Three in miniKanren
url https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-01-20T16%3A45%3A03IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-proquest&rft_val_fmt=info:ofi/fmt:kev:mtx:book&rft.genre=document&rft.atitle=Six%20Ways%20to%20Implement%20Divisibility%20by%20Three%20in%20miniKanren&rft.jtitle=arXiv.org&rft.au=Schreiber,%20Brett&rft.date=2024-08-29&rft.eissn=2331-8422&rft_id=info:doi/&rft_dat=%3Cproquest%3E3098942842%3C/proquest%3E%3Curl%3E%3C/url%3E&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_pqid=3098942842&rft_id=info:pmid/&rfr_iscdi=true