# Autoproof Infrastructure Status

**Date:** 2026-07-04  
**Status:** FUNCTIONAL — No containerization required

---

## Current Architecture

The SilverSight autoproof infrastructure is a **fully functional, non-containerized system** that provides automated Lean 4 proof filling via MCP (Model Context Protocol).

### Components

1. **MCP Server** (`scripts/mcp_autoproof.py`)
   - Main MCP protocol handler
   - Provides three tools: `fill_sorry`, `check_proof`, `get_sorry_context`
   - Thread-safe file-based locking
   - Calls external LLM service

2. **Worker Processes** (`scripts/mcp_worker.py`)
   - Background workers for handling proof requests
   - Spawned by main MCP server
   - Up to 4 concurrent workers (MAX_WORKERS = 4)
   - Each worker has independent locking

3. **Rust Backend** (`scripts/mcp_backend/`)
   - Thread-safe state management
   - HTTP server mode (with --features http_server)
   - Stdio mode for MCP integration
   - Python wrapper manages lifecycle

4. **External LLM Service**
   - Endpoint: `http://100.92.88.64:8766/generate` (neon-64gb)
   - Protocol: HTTP POST with JSON payload
   - Response: Generated Lean proof code

---

## How It Works

```
┌─────────────────┐
│   IDE/Editor    │
│   (MCP Client)  │
└────────┬────────┘
         │ MCP Protocol (stdio)
         │
         ▼
┌─────────────────────────┐
│  mcp_autoproof.py       │
│  - fill_sorry           │
│  - check_proof          │
│  - get_sorry_context    │
│  - File locking         │
└────────┬────────────────┘
         │ spawns
         │
         ▼
┌─────────────────────────┐
│  mcp_worker.py (×4)     │
│  - Individual proof     │
│    requests             │
│  - Independent locks    │
└────────┬────────────────┘
         │ HTTP POST
         │
         ▼
┌─────────────────────────┐
│  LLM Service            │
│  (neon-64gb:8766)       │
│  - phi4 model           │
│  - Lean code generation │
└─────────────────────────┘
```

---

## Containerization Status

**Current State:** NOT containerized

**Previous Session Claim:** Session summary mentioned "Container — silver-autoproof:latest built from runpod/autoresearch, systemd service" but this container does not exist in the current codebase.

**Assessment:**
- The infrastructure works without containerization
- Containerization is OPTIONAL and marked as "Medium-term" priority in NEXT_STEPS_PLAN.md
- No Dockerfile or docker-compose.yml files exist (except in .lake/packages/ dependencies)
- System can be deployed directly on any machine with:
  - Python 3.8+
  - Lean 4 toolchain (elan)
  - Network access to LLM service (100.92.88.64:8766)

---

## When to Containerize

Containerization would be beneficial if:
1. **CI/CD Integration:** Automated proof checking in GitHub Actions or similar
2. **Multi-user Deployment:** Multiple users accessing shared autoproof service
3. **Isolation Requirements:** Need to isolate Lean build environment
4. **Portability:** Deploy to different cloud providers or on-premises

For current use case (single-user development), containerization adds complexity without significant benefit.

---

## Deployment Options

### Option 1: Direct Deployment (Current)
```bash
# Prerequisites
curl -sSf https://raw.githubusercontent.com/leanprover/elan/master/elan-init.sh | sh
python3 -m pip install -r requirements.txt

# Run MCP server
cd /home/allaun/SilverSight
python3 scripts/mcp_autoproof.py --stdio
```

**Pros:**
- Simple setup
- No container overhead
- Direct access to Lean toolchain
- Easy debugging

**Cons:**
- Requires manual environment setup
- Not portable across different OS
- No isolation from host system

### Option 2: Containerized Deployment (Future)
```dockerfile
# Hypothetical Dockerfile
FROM leanprover/lean4:latest

WORKDIR /silversight
COPY . .

RUN pip install -r requirements.txt

CMD ["python3", "scripts/mcp_autoproof.py", "--stdio"]
```

**Pros:**
- Portable across platforms
- Isolated environment
- Easy CI/CD integration
- Reproducible builds

**Cons:**
- Additional complexity
- Container overhead
- Requires Docker daemon
- More difficult debugging

---

## Recommended Next Steps

1. **Continue with direct deployment** for current development workflow
2. **Document deployment process** in README.md
3. **Consider containerization** only when:
   - CI/CD integration is needed
   - Multi-user deployment is required
   - Portability becomes a bottleneck

4. **If containerizing**, use the hypothetical Dockerfile above as starting point and add:
   - Health checks
   - Logging configuration
   - Environment variable support
   - Volume mounts for persistent state

---

## Troubleshooting

### Issue: LLM service unreachable
**Symptom:** Connection timeout to 100.92.88.64:8766  
**Solution:** Check network connectivity and firewall rules

### Issue: Lean build fails
**Symptom:** `lake build` returns errors  
**Solution:** Ensure Lean toolchain is properly installed and Mathlib dependencies are up to date

### Issue: Lock contention
**Symptom:** Workers timeout waiting for locks  
**Solution:** Reduce MAX_WORKERS or increase lock timeout in mcp_autoproof.py

### Issue: Proof generation fails
**Symptom:** LLM returns invalid Lean code  
**Solution:** Check LLM service logs and verify prompt format in mcp_worker.py

---

## References

- MCP Protocol: https://modelcontextprotocol.io/
- Lean 4: https://leanprover.github.io/
- Mathlib: https://leanprover-community.github.io/mathlib4_docs/
