Computer Science > Logic in Computer Science
[Submitted on 14 Feb 2020 (this version), latest version 17 Feb 2020 (v2)]
Title:Flexible Coinduction in Agda
View PDFAbstract:Theorem provers are tools that help users to write machine readable proofs. Some of this tools are also interactive. The need of such softwares is increasing since they provide proofs that are more certified than the hand written ones. Agda is based on type theory and on the propositions-as-types correspondence and has a Haskell-like syntax. This means that a proof of a statement is turned into a function. Inference systems are a way of defining inductive and coinductive predicates and induction and coinduction principles are provided to help proving their correctness with respect to a given specification in terms of soundness and completeness. Generalized inference systems deal with predicates whose inductive and coinductive interpretations do not provide the expected set of judgments. In this case inference systems are enriched by corules that are rules that can be applied at infinite depth in a proof tree. Induction and coinduction principles cannot be used in case of generalized inference systems and the bounded coinduction one has been proposed. We first present how Agda supports inductive and coinductive types highlighting the fact that data structures and predicates are defined using the same constructs. Then we move to the main topic of this thesis, which is investigating how generalized inference systems can be implemented and how their correctness can be proved.
Submission history
From: Luca Ciccone [view email][v1] Fri, 14 Feb 2020 14:20:00 UTC (97 KB)
[v2] Mon, 17 Feb 2020 13:15:40 UTC (97 KB)
References & Citations
Bibliographic and Citation Tools
Bibliographic Explorer (What is the Explorer?)
Connected Papers (What is Connected Papers?)
Litmaps (What is Litmaps?)
scite Smart Citations (What are Smart Citations?)
Code, Data and Media Associated with this Article
alphaXiv (What is alphaXiv?)
CatalyzeX Code Finder for Papers (What is CatalyzeX?)
DagsHub (What is DagsHub?)
Gotit.pub (What is GotitPub?)
Hugging Face (What is Huggingface?)
Papers with Code (What is Papers with Code?)
ScienceCast (What is ScienceCast?)
Demos
Recommenders and Search Tools
Influence Flower (What are Influence Flowers?)
CORE Recommender (What is CORE?)
arXivLabs: experimental projects with community collaborators
arXivLabs is a framework that allows collaborators to develop and share new arXiv features directly on our website.
Both individuals and organizations that work with arXivLabs have embraced and accepted our values of openness, community, excellence, and user data privacy. arXiv is committed to these values and only works with partners that adhere to them.
Have an idea for a project that will add value for arXiv's community? Learn more about arXivLabs.