{"id":50570768,"url":"https://github.com/pdmosses/mfps2026-agda","last_synced_at":"2026-06-04T18:30:26.261Z","repository":{"id":358947874,"uuid":"1228228098","full_name":"pdmosses/mfps2026-agda","owner":"pdmosses","description":"Agda code for an MFPS 2026 paper","archived":false,"fork":false,"pushed_at":"2026-06-03T09:42:50.000Z","size":11974,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-03T11:21:15.300Z","etag":null,"topics":["agda","denotational-semantics","formalisation","mechanisation","postulates","synthetic-domain-theory"],"latest_commit_sha":null,"homepage":"https://pdmosses.github.io/mfps2026-agda/","language":"TeX","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pdmosses.png","metadata":{"files":{"readme":"docs/README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-03T19:02:08.000Z","updated_at":"2026-05-28T19:50:34.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/pdmosses/mfps2026-agda","commit_stats":null,"previous_names":["pdmosses/mfps2026-agda"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/pdmosses/mfps2026-agda","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pdmosses%2Fmfps2026-agda","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pdmosses%2Fmfps2026-agda/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pdmosses%2Fmfps2026-agda/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pdmosses%2Fmfps2026-agda/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pdmosses","download_url":"https://codeload.github.com/pdmosses/mfps2026-agda/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pdmosses%2Fmfps2026-agda/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33916320,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-04T02:00:06.755Z","response_time":64,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agda","denotational-semantics","formalisation","mechanisation","postulates","synthetic-domain-theory"],"created_at":"2026-06-04T18:30:25.595Z","updated_at":"2026-06-04T18:30:26.256Z","avatar_url":"https://github.com/pdmosses.png","language":"TeX","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Mechanising Denotational Semantics in Agda\n\nAgda code accompanying a paper ([PDF]) to be [presented] at [MFPS 2026]:\n\n\u003e Peter D. Mosses, Jesper Cockx, Bernhard Reus: *Mechanising Denotational Semantics in Agda*\n\n[PDF]: https://ul-fmf.github.io/mfps-sstt-2026/files/pdfs/mfps/MFPS26-17.pdf\n[presented]: https://ul-fmf.github.io/mfps-sstt-2026/programme/#wednesday-june-3-mfps\n[MFPS 2026]: https://ul-fmf.github.io/mfps-sstt-2026/mfps/\n\n## Navigation\n\nOn **wide displays**, the **top panel** of each page shows:\n\n- [About] – this [README] page, [Background], [Meta-notation]\n- [Notation] – postulated types for domain constructors and associated operations\n- [Examples] - embedded denotational definitions [Examples.LC], [Examples.PCF], [Examples.Scm]\n- [Properties] – postulated equivalences for operations\n- [Tests] - proven equivalences of denotations of [Tests.LC] and [Tests.PCF] terms\n- [Library] – modules imported from the [standard Agda library] (v2.3)\n- [pdmosses/mfps2026-agda] – the **code repository**\n- a **toggle** between light, dark, and automatic modes\n- a **search** field\n\nThe section **navigation hierarchy** is shown on the left.\nThe **subsections** of the current page are shown on the right.\n\nOn **narrow displays**, the window may show only the **navigation hierarchy** button \nand the **search** button.\n\nThe footer of each page shows links to the **previous** and **next** pages.\nWhen scrolling up, a **back to top** button is shown near the top of the window.\n\n**Agda code blocks**\n\n- **Names** are links to their declarations.\n- The **top-level module** on the page is a link to the original page generated by Agda.\n- The [agda] directory contains the literate Agda Markdown code;\n  `--\"hide\" ... --\"/hide\"` indicates code elided in the paper.\n- The [complete] directory contains the same code as [agda],\n  but without the `--\"hide\"` and  `--\"/hide\"` comments.\n- The [plain] directory contains the corresponding plain Agda code.\n- The [docs] directory contains source code for generating the website.\n- The [latex] directory contains files used for generating LaTeX sources.\n\n## Abstract\n\nMechanisation of a mathematical definition (also referred to as formalisation)\nhas many benefits. Here, we focus on mechanising denotational semantic definitions\nof programming languages by embedding them in the Agda language. The Agda\ntype-checker detects and reports any issues with the wellformedness and type\ncorrectness of the embedded definitions.\n\nTo minimise the effort required, and to facilitate correlation of the original\ndefinition with its Agda embedding, mechanisation should not involve significant\nreformulation or extension. Here, we show how  to embed conventional Scott–Strachey\ndenotational definitions in Agda with almost no changes to $\\lambda$-notation or\ndomain equations.\n\nAgda notation for definitions of types and functions corresponds closely\nto the conventional meta-notation of denotational semantics. We have developed\na collection of Agda modules with postulated types for commonly used domain\nconstructors and their associated operations. Some of our postulates are\ninconsistent with a classical set-theoretic interpretation of Agda; we conjecture\nthat they would be consistent with an interpretation of Agda in the higher-order\nintuititionistic logic used by Simpson in his work on synthetic domain theory.\n\nWe illustrate our approach with mechanisations of three denotational definitions:\nScott’s $D_\\infty$ model of the untyped $\\lambda$-calculus, Plotkin’s denotational\nsemantics of PCF, and a semantics of a sublanguage of Scheme. In previous work,\nsimilar mechanisations in Agda have revealed several unsuspected wellformedness\nissues in published denotational definitions.\n\n## Contributing\n\nPlease report any [issues] that you notice.\n\nComments and suggestions for improvement are welcome, and can be added as [Discussions].\n\n## Contact\n\nPeter Mosses\n\n[p.d.mosses@tudelft.nl](mailto:p.d.mosses@tudelft.nl)\n\n[pdmosses.github.io](https://pdmosses.github.io)\n\n[Issues]: https://github.com/pdmosses/mfps2026-agda/issues\n[Pull requests]: https://github.com/pdmosses/mfps2026-agda/pulls\n[Discussions]: https://github.com/pdmosses/mfps2026-agda/discussions\n\n[About]: https://pdmosses.github.io/mfps2026-agda/\n[README]: https://github.com/pdmosses/mfps2026-agda/blob/main/docs/README.md\n[Background]: https://pdmosses.github.io/mfps2026-agda/Background/\n[Meta-notation]: https://pdmosses.github.io/mfps2026-agda/meta-notation/\n[Notation]: https://pdmosses.github.io/mfps2026-agda/Notation/\n[Examples]: https://pdmosses.github.io/mfps2026-agda/Examples/\n[Examples.LC]: https://pdmosses.github.io/mfps2026-agda/Examples/LC/\n[Examples.PCF]: https://pdmosses.github.io/mfps2026-agda/Examples/PCF/\n[Examples.Scm]: https://pdmosses.github.io/mfps2026-agda/Examples/Scm/\n[Properties]: https://pdmosses.github.io/mfps2026-agda/Properties/\n[Tests]: https://pdmosses.github.io/mfps2026-agda/Tests/\n[Tests.LC]: https://pdmosses.github.io/mfps2026-agda/Tests/LC/\n[Tests.PCF]: https://pdmosses.github.io/mfps2026-agda/Tests/PCF/\n[Library]: https://pdmosses.github.io/mfps2026-agda/Library/\n[Standard Agda library]: https://agda.github.io/agda-stdlib/v2.3/\n[pdmosses/mfps2026-agda]: https://github.com/pdmosses/mfps2026-agda/\n[agda]: https://github.com/pdmosses/mfps2026-agda/tree/main/agda\n[complete]: https://github.com/pdmosses/mfps2026-agda/tree/main/complete\n[plain]: https://github.com/pdmosses/mfps2026-agda/tree/main/plain\n[docs]: https://github.com/pdmosses/mfps2026-agda/tree/main/docs\n[latex]: https://github.com/pdmosses/mfps2026-agda/tree/main/latex","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpdmosses%2Fmfps2026-agda","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpdmosses%2Fmfps2026-agda","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpdmosses%2Fmfps2026-agda/lists"}