Skip to content

fraware/leanverifier

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FormalVerifML: Formal Verification of Machine Learning Models

License: MIT Python 3.9+ Lean 4 Docker

Enterprise-grade formal verification framework for machine learning models with support for large-scale transformers, vision models, and distributed verification.

FormalVerifML Logo

Table of Contents

Overview

FormalVerifML is a state-of-the-art framework for formally verifying machine learning models using Lean 4. It provides comprehensive support for verifying properties such as robustness, fairness, interpretability, and safety across a wide range of model architectures.

Mission

To provide mathematically rigorous verification of ML models for high-stakes applications in healthcare, finance, autonomous systems, and other critical domains where model reliability is paramount.

What Makes Us Different

  • Mathematical Rigor: Uses Lean 4 theorem prover for formal mathematical proofs
  • Production Ready: Enterprise features with multi-user support, audit logging, and security
  • Scalable: Supports models up to 100M+ parameters with distributed verification
  • Comprehensive: Vision transformers, large-scale models, and advanced architectures
  • Automated: SMT solver integration for automated proof generation

Key Features

Model Support

  • Neural Networks: Feed-forward, convolutional, recurrent architectures
  • Transformers: Full transformer support with multi-head attention
  • Vision Models: ViT, Swin Transformers, CLIP-style multi-modal models
  • Large-Scale Models: 100M+ parameter models with distributed processing
  • Decision Trees: Interpretable tree-based models
  • Linear Models: Logistic regression and linear classifiers

Verification Properties

  • Robustness: Adversarial robustness and input perturbation resistance
  • Fairness: Demographic parity, equalized odds, individual fairness
  • Interpretability: Attention analysis, feature attribution verification
  • Safety: Causal masking, sequence invariance, memory efficiency
  • Performance: Memory optimization, distributed verification

Enterprise Features

  • Multi-User Support: Role-based access control and session management
  • Audit Logging: Comprehensive activity tracking and compliance
  • Security: Rate limiting, encryption, and input validation
  • Distributed Processing: Multi-node verification with fault tolerance
  • Monitoring: Real-time performance metrics and health checks

Architecture

FormalVerifML/
├── lean/                          # Lean 4 formal verification code
│   ├── FormalVerifML/
│   │   ├── base/                  # Core definitions and properties
│   │   ├── generated/             # Auto-generated model definitions
│   │   └── proofs/                # Verification proof scripts
├── translator/                    # Model translation and testing
│   ├── export_from_pytorch.py    # PyTorch model export
│   ├── generate_lean_model.py    # JSON to Lean code generation
│   └── test_*.py                 # Comprehensive test suites
├── webapp/                       # Web interface and visualization
├── docs/                         # Documentation and guides
└── .github/                      # CI/CD and workflows

Data Flow

  1. Model Export: PyTorch/HuggingFace models → JSON format
  2. Code Generation: JSON → Lean 4 definitions
  3. Verification: Lean 4 → Formal proofs of properties
  4. Results: Web interface visualization and reports

Quick Start

Prerequisites

  • Docker (recommended) or Python 3.9+ and Lean 4
  • 8GB+ RAM for large model verification
  • Modern web browser for the interface

Using Docker (Recommended)

# Clone the repository
git clone https://github.com/fraware/formal_verif_ml.git
cd formal_verif_ml

# Build and run with Docker
docker build -t formalverifml .
docker run -p 5000:5000 -v $(pwd)/models:/app/models formalverifml

# Access the web interface
open http://localhost:5000

Manual Installation

# Clone the repository
git clone https://github.com/fraware/formal_verif_ml.git
cd formal_verif_ml

# Install Python dependencies
pip install -r translator/requirements.txt

# Install Lean 4 (see https://leanprover.github.io/lean4/doc/setup.html)
# Then build the project
lake build

# Run the web interface
python webapp/app.py

Usage

1. Export Your Model

# Export a PyTorch model
python translator/export_from_pytorch.py \
    --model_path your_model.pth \
    --output_path model.json \
    --model_type transformer

2. Generate Lean Code

# Convert JSON to Lean definitions
python translator/generate_lean_model.py \
    --model_json model.json \
    --output_lean lean/FormalVerifML/generated/my_model.lean

3. Verify Properties

# Build and verify with Lean
lake build
lake exe FormalVerifML

4. Web Interface

Upload your model JSON files through the web interface at http://localhost:5000 to:

  • Visualize model architecture
  • Generate Lean code automatically
  • Run verification proofs
  • View detailed logs and results

Documentation

User Guides

API Reference

  • Lean API: Core definitions and properties
  • Python API: Model translation and testing tools
  • Web API: Web interface and visualization

Testing

Run All Tests

# Comprehensive test suite
python translator/run_comprehensive_tests.py

# Enterprise feature tests
python translator/test_enterprise_features.py

# HuggingFace model tests
python translator/test_huggingface_models.py

Test Categories

  • Model Loading: PyTorch and HuggingFace model compatibility
  • Code Generation: JSON to Lean translation accuracy
  • Verification: Property verification correctness
  • Performance: Memory usage and execution time
  • Enterprise: Multi-user, security, and audit features

Contributing

We welcome contributions! Please see our Contributing Guidelines for details.

Development Setup

# Clone and setup development environment
git clone https://github.com/fraware/formal_verif_ml.git
cd formal_verif_ml

# Install development dependencies
pip install -r translator/requirements.txt
pip install -r requirements-dev.txt

# Setup pre-commit hooks
pre-commit install

# Run tests
python -m pytest tests/

Code Standards

  • Python: Follow PEP 8 with type hints
  • Lean: Use Lean 4 style guide and mathlib conventions
  • Documentation: Comprehensive docstrings and comments
  • Testing: 90%+ test coverage required

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • Lean Community: For the excellent theorem prover
  • HuggingFace: For transformer model support
  • PyTorch Team: For the deep learning framework
  • Contributors: All who have helped improve this project

Support


Made with ❤️ by the FormalVerifML Team

About

Framework for specifying and proving properties—such as robustness, fairness, and interpretability—of machine learning models using Lean 4.

Resources

License

Contributing

Stars

Watchers

Forks

Contributors

Languages