meta-introspector / time

The timeline, add yourself to it.
GNU General Public License v3.0
4 stars 2 forks source link

univalent #3

Open jmikedupont2 opened 5 months ago

jmikedupont2 commented 5 months ago

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.