Fanal Documentation

Fanal is a Lean 4 toolchain for formalizing, verifying, and reasoning about quantum programs.

Σ

Expressive and practical

Classical-quantum language with native support for both classical and quantum operations, plus array support.

Usable

Intuitive proofs with automation. Language design understandable by both humans and AI agents.

AI-friendly

Agent-assisted development (Steward workflow) and agent-assisted usage (fanal-user skill, Galleon pipeline).

Reusable

Specification-driven development. Descriptive/Supportive code separation for maintainability.

Roadmap

A

Example Crawling

Database, web crawler, auto-encoder, evaluation metrics

B

Dirac Reasoning

D-Hammer decision procedure, dirac_eq/ldirac_eq, Loewner order

C

Program Encoding

Classical-quantum programming language, syntax/typing/semantics

D

Program Verification

Assertion language, program logic (Hoare logic), Shor's algorithm (final goal)

Quick Start

1

Install Lean 4 via elan

curl https://elan.readthedocs.io/en/latest/elan-init.sh -sSf | sh
2

Clone the repository

git clone https://github.com/LucianoXu/Fanal.git
cd Fanal
3

Build the project

lake build Fanal

After building, explore the FanalExample/ directory for verified quantum programs you can modify and experiment with.

Comparison with Existing Tools

ToolSystemFocusProof CertificatesAutomation
CoqQCoq / MathCompLabelled Dirac + qwhile + Hoare logicYesLow
SQIR / VOQCCoq / QuantumLibVerified circuit optimizationYesLow–Medium
Lean-QuantumInfoLean 4 / MathlibQuantum information theoryYesLow
QBricksWhy3 / SMTCircuit-building program verificationPartialHigh (94%+)
QafnyDafny / Z3Separation logic for quantum programsNoHigh
AutoQ 2.0C++ standaloneTree-automata automatic verificationNoneVery High
D-HammerC++ / MathematicaAutomated Dirac equational reasoningNoneVery High
FanalLean 4 / MathlibFoundational quantum program formalizationYesMedium (developing)