# Cairo Arithmetic Circuits

> Explain Cairo arithmetic circuits using core::circuit, gates, CircuitElement, and evaluation; use when a request involves building or evaluating arithmetic circuits in Cairo.

- Skill: `teddyjfpender/cairo-arithmetic-circuits` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add teddyjfpender/cairo-arithmetic-circuits`
- Raw SKILL.md: https://api.skillmd.com/api/skills/teddyjfpender/cairo-arithmetic-circuits/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: teddyjfpender (https://skillmd.com/u/teddyjfpender)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/teddyjfpender/cairo-arithmetic-circuits

---


# Cairo Arithmetic Circuits

## Overview
Guide building and evaluating arithmetic circuits using Cairo's core circuit module.

## Quick Use
- Read `references/arithmetic-circuits.md` before answering.
- Use a small example like `a * (a + b)` with `circuit_add` and `circuit_mul`.
- Mention the `u384` limb type and modulus selection.

## Response Checklist
- Use `CircuitElement<T>` and `CircuitInput<N>` for inputs.
- Combine gates with `circuit_add`, `circuit_sub`, `circuit_mul`, `circuit_inverse`.
- Build outputs as a tuple of circuit elements.
- Provide witnesses via `CircuitInputs` and evaluate with a `CircuitModulus`.

## Example Requests
- "How do I build a simple arithmetic circuit in Cairo?"
- "What are AddMod/MulMod gates used for?"
- "How do I evaluate a circuit with a modulus?"

