Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

univalent #3

Open
jmikedupont2 opened this issue Jan 6, 2024 · 0 comments
Open

univalent #3

jmikedupont2 opened this issue Jan 6, 2024 · 0 comments

Comments

@jmikedupont2
Copy link
Member

Certainly! Let's break down each component:

  1. Linux: The operating system that the quine will run on. It's involved in the execution environment and interacting with system resources.

  2. GCC (GNU Compiler Collection): A compiler used to translate source code (like the OCaml code in this case) into machine code that can be executed by the computer.

  3. OCaml: A functional programming language. In this context, OCaml is used to write the initial code that will be part of the quine.

  4. COQ: A proof assistant, providing a formal language for expressing mathematical statements and a mechanism for proving them. It's used for formal verification.

  5. Metacoq: An extension of COQ that allows for the extraction of verified code to OCaml. It facilitates the process of proving properties and translating them into executable code.

  6. Self-referential quine: A program that, when executed, produces a copy of its own source code as its output.

  7. Formal Verification: The process of using mathematical methods to prove that a system (in this case, the quine) satisfies certain properties or behaves as expected.

  8. Homotopy Type Theory (HOTT): A mathematical framework combining homotopy theory and type theory. It's used to model the behavior of the quine in a way that hides implementation details.

  9. Univalent Foundations of Math and Unimath Library: An approach to the foundations of mathematics using homotopy type theory. Unimath is a library written in COQ that provides formalized mathematical structures.

The idea is to create a quine that not only reproduces its own source code but also includes proofs about various aspects of its structure and behavior. These proofs are formalized using COQ and leverage concepts from homotopy type theory and univalent foundations of math. The Metacoq extension assists in extracting this verified code into executable OCaml. The overall goal is to demonstrate a highly self-aware and formally verified program.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant