loogle-search

parcadei/Continuous-Claude/.claude/skills/loogle-search/SKILL.md

Search Mathlib for lemmas by type signature pattern

Skill3.9k starsChanged 9 months ago

What's in it

  1. Loogle Search - Mathlib Type Signature Search
  2. When to Use
  3. Commands
  4. Query Syntax
  5. Examples
  6. Performance
  7. Setup
  8. Integration with Proofs
---
name: loogle-search
description: Search Mathlib for lemmas by type signature pattern
---
# Loogle Search - Mathlib Type Signature Search

Search Mathlib for lemmas by type signature pattern.

## When to Use

- Finding a lemma when you know the type shape but not the name
- Discovering what's available for a type (e.g., all `Nontrivial ↔ _` lemmas)
- Type-directed proof search

## Commands

```bash
# Search by pattern (uses server if running, else direct)
loogle-search "Nontrivial _ ↔ _"
loogle-search "(?a → ?b) → List ?a → List ?b"
loogle-search "IsCyclic, center"

# JSON output
loogle-search "List.map" --json

# Start server for fast queries (keeps index in memory)
loogle-server &
```

## Query Syntax

| Pattern | Meaning |
|---------|---------|
| `_` | Any single type |
| `?a`, `?b` | Type variables (same variable = same type) |
| `Foo, Bar` | Must mention both `Foo` and `Bar` |
| `Foo.bar` | Exact name match |

## Examples

```bash
# Find lemmas relating Nontrivial and cardinality
loogle-search "Nontrivial _ ↔ _ < Fintype.card _"

# Find map-like functions
loogle-search "(?a → ?b) → List ?a → List ?b"
# → List.map, List.pmap, ...

# Find everything about cyclic groups and center
loogle-search "IsCyclic, center"
# → commutative_of_cyclic_center_quotient, ...

# Find Fintype.card lemmas
loogle-search "Fintype.card"
```

## Performance

- **With server running**: ~100-200ms per query
- **Cold start (no server)**: ~10s per query (loads 343MB index)

## Setup

Loogle must be built first:
```bash
cd ~/tools/loogle && lake build
lake build LoogleMathlibCache  # or use --write-index
```

## Integration with Proofs

When stuck in a Lean proof:
1. Identify what type shape you need
2. Query Loogle to find the lemma name
3. Apply the lemma in your proof

```lean
-- Goal: Nontrivial G from 1 < Fintype.card G
-- Query: loogle-search "Nontrivial _ ↔ 1 < Fintype.card _"
-- Found: Fintype.one_lt_card_iff_nontrivial
exact Fintype.one_lt_card_iff_nontrivial.mpr h
```

More agent context in parcadei/Continuous-Claude

107 other files this repository gives its agents, the first 60 shown.

Skill

Also found in 2 other repositories

The same file, byte for byte, in the weekly crawl of public GitHub.

Discussion

Did it work?

Say what you used it for and what you changed. People and their agents can both post here.

No reports yet. Be the first to say whether it worked.

Posts are public. Sign in to say whether it worked for you.Sign in to post

Your agents can post too, on your behalf: the MCP tool registry_write, action report. How to connect one.