Back to skills
SKILL.md
Discopy Categorical Computing
ASecurityCategory theory for compositional computing with string diagrams, quantum circuits, and QNLP. Covers monoidal categories, functors, tensor evaluation, and practical applications in quantum natural language processing and diagrammatic reasoning.
- 65 stars
- 0 votes
- 0 copies
- 0 views
- Added October 1, 2026
Works with
Security analysis
96/100- Installs packages at runtime which could introduce malicious dependencies
Pro scans all 11 files and shows the line behind each finding
npx -y skills add HermeticOrmus/claude-code-game-development --skill discopy-categorical-computing --agent claude-codeAre you the author of Discopy Categorical Computing?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/hermeticormus-discopy-categorical-computing)---
name: discopy-categorical-computing
description: Category theory for compositional computing with string diagrams, quantum circuits, and QNLP. Covers monoidal categories, functors, tensor evaluation, and practical applications in quantum natural language processing and diagrammatic reasoning.
tags: [category-theory, quantum-computing, nlp, qnlp, string-diagrams, compositional-semantics, tensor-networks, python]
version: 1.0.0
---
# Discopy: Categorical Computing with String Diagrams
## When to Use This Skill
Use Discopy when you need:
- **Compositional Systems**: Building modular systems with formal composition guarantees
- **Quantum NLP (QNLP)**: Converting natural language to quantum circuits via categorical semantics
- **Diagrammatic Reasoning**: Visual representation of computational flows with mathematical rigor
- **Tensor Network Computation**: Abstract tensor operations with multiple backend support
- **Categorical Quantum Mechanics**: Designing and optimizing quantum circuits categorically
- **Research Prototyping**: Rapid experimentation with compositional models
- **Category Theory Education**: Executable mathematical concepts with visualization
**Sweet Spot**: Research at the mathematics-computer science interface, QNLP experiments, compositional semantics modeling, and educational tools for category theory.
**Not For**: Production NLP systems (use spaCy/Transformers), large-scale quantum compilation (use Qiskit/Cirq), or standard ML pipelines (use PyTorch/scikit-learn).
## Core Concepts
### The Big Picture: Information Plumbing
Discopy treats computation as **information flow through typed channels**:
- **Wires** = Types (information channels)
- **Boxes** = Operations (transformations)
- **Diagrams** = Compositions (pipelines)
- **Functors** = Interpretations (semantics)
```
Text → Parse → Diagram → Functor → Tensor/Circuit → Evaluate → Result
```
### Category Hierarchy
```
Category (objects + morphisms)
↓
Monoidal (>> sequential, @ parallel)
↓
Symmetric (swap wires)
↓
Rigid (duals)
↓
Compact (cups/caps)
↓
Traced (feedback loops)
```
Each level adds capabilities while maintaining composition guarantees.
### Key Operations
```python
# Sequential composition (then)
f >> g # "f then g"
# Parallel composition (and)
f @ g # "f and g simultaneously"
# Dagger (adjoint/inverse)
f.dagger()
# Tensor product
f.tensor(g)
# Feedback
f.feedback()
```
## Quick Start
### Installation
```bash
# Basic installation
pip install discopy
# With quantum features
pip install discopy[quantum]
# With all backends
pip install discopy[pytorch,tensorflow,jax]
```
### Hello World: Simple Composition
```python
from discopy import Ty, Box
# Define types (objects)
x = Ty('X')
y = Ty('Y')
z = Ty('Z')
# Define operations (morphisms)
f = Box('f', x, y) # f: X → Y
g = Box('g', y, z) # g: Y → Z
# Sequential composition
diagram = f >> g # X → Y → Z
# Parallel composition
parallel = f @ g # X⊗Y → Y⊗Z
# Visualize
diagram.draw()
```
### Tensor Evaluation
```python
from discopy.matrix import Functor
import numpy as np
# Define semantics
F = Functor(
ob={x: 2, y: 3, z: 4}, # Dimensions
ar={
f: np.random.rand(3, 2), # Y=3, X=2
g: np.random.rand(4, 3) # Z=4, Y=3
}
)
# Evaluate
result = F(diagram)
print(result.array.shape) # (4, 2)
```
### Quantum Circuit
```python
from discopy.quantum.circuit import Circuit, gates
# Build circuit
circuit = (
gates.H @ Circuit.id(1) # Hadamard on qubit 0
>> gates.CNOT # CNOT on qubits 0,1
>> gates.Rx(0.5) @ gates.Ry(0.3) # Rotations
)
# Visualize
circuit.draw()
# Export to other frameworks
qiskit_circuit = circuit.to_qiskit()
```
## Progressive Disclosure: 7-Level Framework
DisCoPy follows a **7-level progression** from simple pipelines to formally verified systems.
### Level 1: Novice - Sequential Composition
→ [EXAMPLES-L1-L2.md](EXAMPLES-L1-L2.md#level-1-novice---sequential-composition) - Basic `>>` pipelines
- **Core**: Chain operations sequentially
- **Use Cases**: ETL, image preprocessing, API chains
- **Examples**: 5 complete implementations with diagrams
### Level 2: Competent - Parallel Composition + Functors
→ [EXAMPLES-L1-L2.md](EXAMPLES-L1-L2.md#level-2-competent---parallel-composition--functors) - Parallel `@` + evaluation
- **Core**: Parallel operations, concrete tensor evaluation
- **Use Cases**: Ensemble ML, feature extraction, backend selection
- **Examples**: 7 complete implementations with NumPy/PyTorch
### Level 3: Proficient - Symmetric Monoidal (Wire Swapping)
→ [EXAMPLES-L3-L4.md](EXAMPLES-L3-L4.md#level-3-proficient---symmetric-monoidal-wire-swapping) - `Diagram.swap()` for routing
- **Core**: Type-aware composition, argument reordering
- **Use Cases**: Microservices routing, flexible composition
- **Examples**: 5 complete implementations with braiding
### Level 4: Advanced - Compact Closed (Quantum)
→ [EXAMPLES-L3-L4.md](EXAMPLES-L3-L4.md#level-4-advanced---compact-closed-quantum-circuits) - Cups, caps, quantum circuits
- **Core**: Duality, entanglement, QNLP
- **Use Cases**: Quantum computing, quantum NLP
- **Examples**: 7 complete quantum circuit implementations
### Level 5: Expert - Traced Monoidal (Feedback Loops)
→ [EXAMPLES-L5-L7.md](EXAMPLES-L5-L7.md#level-5-expert---traced-monoidal-feedback-loops) - `.trace()` for state feedback
- **Core**: RNNs, iterative algorithms, stateful workflows
- **Use Cases**: LSTMs, RL agents, game loops
- **Examples**: 5 complete implementations with traced categories
### Level 6: Master - Custom Functors & Multi-Backend
→ [EXAMPLES-L5-L7.md](EXAMPLES-L5-L7.md#level-6-master---custom-functors--multi-backend) - GPU acceleration, custom semantics
- **Core**: Backend selection (NumPy/PyTorch/JAX), custom functor logic
- **Use Cases**: Production ML, GPU inference, A/B testing
- **Examples**: 5 complete implementations with benchmarks
### Level 7: Genius - Formal Verification
→ [EXAMPLES-L5-L7.md](EXAMPLES-L5-L7.md#level-7-genius---formal-verification) - Proof-carrying code
- **Core**: Runtime assertions, type-level proofs, Coq verification
- **Use Cases**: Safety-critical, medical devices, smart contracts
- **Examples**: 4 complete implementations with proofs
### Real-World Applications
→ [USE-CASES.md](USE-CASES.md) - Complete use cases across all levels
- ETL pipelines, ML ensembles, quantum computing
- RNNs/LSTMs, production ML, verified systems
- Decision tree for level selection
## Common Patterns
### Pattern 1: Build-Interpret-Evaluate
```python
# 1. Build diagram (syntax)
diagram = f >> g >> h
# 2. Define functor (semantics)
functor = Functor(ob={...}, ar={...})
# 3. Evaluate
result = functor(diagram)
```
### Pattern 2: Grammar to Circuit
```python
# 1. Parse text
from discopy.grammar.pregroup import Diagram as Grammar
sentence = parse("Alice loves Bob")
# 2. Convert to quantum
from discopy.quantum.circuit import Functor as CircuitFunctor
to_circuit = CircuitFunctor(word_circuits, grammar_ops)
circuit = to_circuit(sentence)
# 3. Execute
result = circuit.eval()
```
### Pattern 3: Custom Domain Functor
```python
class DomainFunctor(Functor):
def __init__(self, domain_mappings):
self.mappings = domain_mappings
def __call__(self, diagram):
# Custom interpretation logic
return self.interpret(diagram)
```
## API Quick Reference
→ [REFERENCE.md](REFERENCE.md) - Complete API lookup
## Best Practices
→ [PATTERNS.md](PATTERNS.md) - Design patterns and idioms
## Troubleshooting
→ [TROUBLESHOOTING.md](TROUBLESHOOTING.md) - Common issues and solutions
## Integration Guide
→ [INTEGRATION.md](INTEGRATION.md) - Using Discopy with other libraries
## Learning Path
1. **Start Here**: Run examples in [EXAMPLES.md](EXAMPLES.md)
2. **Understand Types**: Read about Ty and type composition
3. **Master Functors**: Learn evaluation patterns
4. **Build Circuits**: Explore quantum module
5. **Try QNLP**: Complete pipeline example
6. **Create Custom**: Implement domain-specific functors
7. **Optimize**: Learn tensor backend selection
## When NOT to Use Discopy
❌ **Production NLP**: Use spaCy, Transformers (Discopy is research-focused)
❌ **Large Quantum Circuits**: Use Qiskit, Cirq (better optimization)
❌ **Standard Deep Learning**: Use PyTorch, TensorFlow directly
❌ **High-Performance Numerics**: Use NumPy, SciPy (less overhead)
❌ **Commercial Applications**: Wait for hardware maturity (QNLP still experimental)
## Philosophy: Composition Over Decomposition
Discopy inverts traditional programming:
- **Traditional**: Break problems down into parts
- **Compositional**: Build solutions from composable pieces
The categorical approach provides:
- **Formal Guarantees**: Composition laws ensure correctness
- **Visual Reasoning**: Diagrams make structure explicit
- **Backend Flexibility**: Same diagram, multiple interpretations
- **Mathematical Rigor**: Proofs about correctness possible
## Resources
- **Documentation**: https://docs.discopy.org
- **Paper**: "DisCoPy: Monoidal Categories in Python" (ACT 2021)
- **Tutorials**: [EXAMPLES.md](EXAMPLES.md) in this skill
- **API Reference**: [REFERENCE.md](REFERENCE.md)
- **Integration**: [INTEGRATION.md](INTEGRATION.md)
## Next Steps
1. Install: `pip install discopy`
2. Run: Examples in [EXAMPLES.md](EXAMPLES.md)
3. Explore: Modify examples for your domain
4. Build: Create custom functors
5. Share: Contribute back to community
Files in this skill
- EXAMPLES-L1-L2.md
- EXAMPLES-L3-L4.md
- EXAMPLES-L5-L7.md
- EXAMPLES.md
- INTEGRATION.md
- PATTERNS.md
- README.md
- REFERENCE.md
- SKILL.md
- TROUBLESHOOTING.md
- USE-CASES.md
Attribution
Comments
Loading comments…