godel-machine

Schmidhuber's Gödel Machine: Self-improving systems that prove their own improvements. Darwin Gödel Machine (DGM) combines evolution with formal verification.

16 stars

Best use case

godel-machine is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Schmidhuber's Gödel Machine: Self-improving systems that prove their own improvements. Darwin Gödel Machine (DGM) combines evolution with formal verification.

Teams using godel-machine should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/godel-machine/SKILL.md --create-dirs "https://raw.githubusercontent.com/plurigrid/asi/main/ies/music-topos/.codex/skills/godel-machine/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/godel-machine/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How godel-machine Compares

Feature / Agentgodel-machineStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Schmidhuber's Gödel Machine: Self-improving systems that prove their own improvements. Darwin Gödel Machine (DGM) combines evolution with formal verification.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Gödel Machine Skill

> *"A Gödel Machine can rewrite any part of itself, including the learning algorithm, provided it can first prove that the rewrite is beneficial."*
> — Jürgen Schmidhuber

## Overview

The **Gödel Machine** is a self-improving system that:
1. Contains a **formal proof system** (e.g., Lean4, Coq)
2. Has a **utility function** defining "better"
3. Can **rewrite any part of itself** if it proves the rewrite improves utility
4. The proof constraint prevents reckless self-modification

## Core Architecture

```
┌─────────────────────────────────────────────────────┐
│                  GÖDEL MACHINE                      │
├─────────────────────────────────────────────────────┤
│  ┌─────────────┐    ┌─────────────┐                │
│  │   Policy    │───▶│   Prover    │                │
│  │  (current)  │    │  (verifier) │                │
│  └─────────────┘    └──────┬──────┘                │
│         ▲                   │                       │
│         │            ┌──────▼──────┐                │
│         │            │  Candidate  │                │
│         │            │   Policy    │                │
│         │            └──────┬──────┘                │
│         │                   │                       │
│  ┌──────┴──────┐     ┌──────▼──────┐               │
│  │   Rewrite   │◀────│  Utility    │               │
│  │   if proof  │     │   Check     │               │
│  └─────────────┘     └─────────────┘               │
└─────────────────────────────────────────────────────┘
```

## Darwin Gödel Machine (DGM)

Combines **evolutionary search** with **formal proofs**:

```python
class DarwinGodelMachine:
    """
    DGM: Open-ended evolution of self-improving agents.
    
    Archive of agents, LLM-based mutation, fitness evaluation,
    keep if novel and beneficial.
    """
    
    def __init__(self, initial_agent: Agent, prover: TheoremProver):
        self.archive = [initial_agent]
        self.prover = prover
        self.generation = 0
    
    def evolve_step(self) -> Agent:
        # Sample parent from archive (fitness-proportionate)
        parent = self.sample_archive()
        
        # LLM-based mutation
        child = self.llm_mutate(parent)
        
        # Evaluate on benchmarks
        fitness = self.evaluate(child)
        
        # Optionally: verify improvement formally
        if self.prover.can_prove(f"utility({child}) > utility({parent})"):
            child.proven = True
        
        # Add if novel and good
        if self.is_novel(child) and fitness > 0:
            self.archive.append(child)
        
        return child
    
    def llm_mutate(self, agent: Agent) -> Agent:
        """Use LLM to generate improved version."""
        prompt = f"""
        Current agent code:
        {agent.code}
        
        Current fitness: {agent.fitness}
        
        Suggest an improvement to make this agent better.
        Return only the improved code.
        """
        
        new_code = self.llm.generate(prompt)
        return Agent(code=new_code, generation=self.generation + 1)
```

## GF(3) Triads

```
# Self-Improvement Triads
kolmogorov-compression (-1) ⊗ cognitive-superposition (0) ⊗ godel-machine (+1) = 0 ✓
proofgeneral-narya (-1) ⊗ self-evolving-agent (0) ⊗ godel-machine (+1) = 0 ✓
sheaf-cohomology (-1) ⊗ epistemic-arbitrage (0) ⊗ godel-machine (+1) = 0 ✓
```

## Integration with Interaction Entropy

```ruby
module GodelMachine
  def self.attempt_improvement(current_policy, seed)
    gen = SplitMixTernary::Generator.new(seed)
    color = gen.next_color
    
    # Generate candidate via color-guided mutation
    candidate = mutate(current_policy, color)
    
    # Attempt proof
    proof = attempt_prove(candidate, current_policy)
    
    if proof[:success]
      {
        improved: true,
        new_policy: candidate,
        proof: proof[:theorem],
        trit: 1  # Generator role
      }
    else
      { improved: false, reason: proof[:failure_reason] }
    end
  end
end
```

## Key Properties

1. **Halting Problem**: Cannot prove all beneficial rewrites (incompleteness)
2. **Safety**: Only rewrites with proofs are applied
3. **Bootstrapping**: Initial prover must be trustworthy
4. **Asymptotic Optimality**: Converges to optimal policy (given enough time)

## References

1. Schmidhuber, J. (2003). "Gödel Machines: Self-Referential Universal Problem Solvers."
2. Zhang, J. et al. (2025). "Darwin Gödel Machine: Open-Ended Evolution of Self-Improving Agents."
3. Schmidhuber, J. (2007). "New Millennium AI and the Convergence of History."

Related Skills

We are still matching the closest adjacent skills for this page. In the meantime, continue through the full directory.