evaluate-boolean-expression
À propos
Cette compétence évalue et simplifie les expressions booléennes en utilisant des tables de vérité, des lois algébriques et des tableaux de Karnaugh pour jusqu'à six variables. Elle réduit les expressions à des formes minimales de sommes de produits ou de produits de sommes et vérifie l'équivalence logique. Utilisez-la pour préparer des fonctions minimisées pour une implémentation au niveau des portes logiques ou pour analyser des circuits logiques numériques.
Installation rapide
Claude Code
Recommandénpx skills add pjt222/agent-almanac -a claude-code/plugin add https://github.com/pjt222/agent-almanacgit clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/evaluate-boolean-expressionCopiez et collez cette commande dans Claude Code pour installer cette compétence
Documentation
Evaluate Boolean Expression
Reduce Boolean expr → minimal form. Parse → canonical, truth table, algebraic laws, K-map (≤6 vars), verify equivalent to original.
Use When
- Simplify before map to gates
- Verify 2 exprs equivalent
- Generate minimal SOP or POS
- Teach/review Boolean algebra
- Prep for design-logic-circuit
In
- Required: Boolean expr any common notation (e.g.,
A AND (B OR NOT C),A * (B + C'),A & (B | ~C)) - Required: Target form — minimal SOP, POS, or both
- Optional: Variable ordering preference for K-map
- Optional: Don't-care conditions (minterms/maxterms unspecified)
- Optional: Second expr for equivalence check
Do
Step 1: Parse + Canonical
Convert to standard internal rep.
- Tokenize: Vars (letters/short names), ops (AND, OR, NOT, XOR, NAND, NOR), parens.
- Op notation: Consistent —
*AND,+OR,'NOT,^XOR. - Var count: Unique vars. Assign bit (A=MSB, ... Z=LSB default or provided).
- Canonical SOP: Expand → sum of all minterms via
X = X*(Y + Y'). - Canonical POS: Alt → product of all maxterms via
X = X + Y*Y'.
## Normalized Expression
- **Variables**: [A, B, C, ...]
- **Variable count**: [n]
- **Original expression**: [as given]
- **Canonical SOP (minterms)**: Sigma m(i, j, k, ...)
- **Canonical POS (maxterms)**: Pi M(i, j, k, ...)
- **Don't-care set**: d(i, j, ...) [if any]
→ Expr converted canonical SOP/POS w/ all min/maxterms listed, don't-cares separated.
If err: syntax/precedence ambiguous → clarify. Standard: NOT (highest) > AND > XOR > OR (lowest). >6 vars → K-map needs Quine-McCluskey.
Step 2: Truth Table
Build complete table for behavior over all inputs.
- Rows: All 2^n combos binary order (000, 001, 010, ...).
- Eval: Sub values → compute output (0/1).
- Don't-cares: Mark
Xinstead of 0/1. - Cross-check minterms: Rows w/ output 1 match minterm list Step 1.
## Truth Table
| A | B | C | F |
|---|---|---|---|
| 0 | 0 | 0 | _ |
| 0 | 0 | 1 | _ |
| ... | ... | ... | ... |
→ Complete 2^n rows, outputs match canonical, don't-cares marked.
If err: table disagrees w/ canonical → recheck Step 1 expansion. Common: misapply De Morgan during canonical → verify each step.
Step 3: Algebraic Simplify
Reduce via Boolean identities.
- Identity/null:
A + 0 = A,A * 1 = A,A + 1 = 1,A * 0 = 0. - Idempotent:
A + A = A,A * A = A. - Complement:
A + A' = 1,A * A' = 0. - Absorption:
A + A*B = A,A * (A + B) = A. - De Morgan:
(A * B)' = A' + B',(A + B)' = A' * B'. - Distributive:
A * (B + C) = A*B + A*C,A + B*C = (A + B) * (A + C). - Consensus:
A*B + A'*C + B*C = A*B + A'*C(B*C redundant). - XOR:
A*B' + A'*B = A ^ B. - Document each step: Expr after each law, cite law.
## Algebraic Simplification Trace
1. Original: [expression]
2. Apply [law name]: [result]
3. Apply [law name]: [result]
...
n. Final algebraic form: [simplified expression]
→ Step-by-step reduction w/ law citations, converging simpler. Trace = verifiable proof.
If err: no further simplify but non-minimal → Step 4 (K-map). Algebraic ≠ guaranteed global min — depends on order.
Step 4: K-map Minimize
Provably minimal SOP/POS (≤6 vars).
- Draw: Gray code on axes.
- 2 vars: 2x2
- 3 vars: 2x4
- 4 vars: 4x4
- 5 vars: two 4x4 stacked
- 6 vars: four 4x4 stacked
- Fill: 1s (minterms), 0s (maxterms), Xs (don't-cares).
- Group adj 1s: Rectangular groups of 1, 2, 4, 8, 16, 32 (powers of 2). Wrap edges. Include don't-cares if enlarge.
- Prime implicants: Each group → product term. Constant vars appear, changing eliminated.
- Essential prime implicants: Minterms covered by only 1 PI → essential.
- Cover remaining: Fewest additional PIs (Petrick's if needed).
- Minimal expr: Combine selected PIs → minimal SOP. For POS group 0s.
## K-map Result
- **Prime implicants**: [list with covered minterms]
- **Essential prime implicants**: [list]
- **Minimal SOP**: [expression]
- **Minimal POS**: [expression, if requested]
- **Literal count**: [number of literals in minimal form]
→ Minimal SOP/POS fewest literals, all PIs documented.
If err: ambiguous (multiple minimal covers) → list all equivalent. >6 vars → Quine-McCluskey tabular or Espresso heuristic, note change.
Step 5: Verify
Confirm logical equivalence simplified vs original.
- Truth table compare: Eval simplified all 2^n → compare Step 2. Every non-don't-care row must match.
- Algebraic proof (optional): Derive original from simplified (vice versa) via Step 3 laws.
- Spot-check: All-zeros, all-ones, tricky simplification inputs.
- Document: Equivalence holds? Final minimal form.
## Equivalence Verification
- **Method**: [truth table comparison / algebraic proof / both]
- **Mismatched rows**: [none, or list row numbers]
- **Verdict**: [Equivalent / Not equivalent]
- **Final minimal expression**: [the verified result]
→ Simplified matches original all non-don't-care. Final min form clear.
If err: mismatch → trace Steps 3-4. Common: incorrect K-map grouping (non-rect / non-power-of-2), forget wrap, group 0 cell.
Check
- All vars accounted for
- Canonical SOP/POS lists correct min/maxterms
- Truth table 2^n rows correct outputs
- Don't-cares handled (in groups, not coverage req)
- Algebraic steps cite law + verifiable
- K-map Gray code both axes
- All groups rect + power-of-2
- Essential PIs identified
- Simplified matches on non-don't-care
- Final = min literals
Traps
- K-map adjacency: Leftmost/rightmost cols + top/bottom rows adjacent (wrap). Essential for largest groups.
- Non-power-of-2 groups: 3 or 5 cells. Must be 1, 2, 4, 8, 16, 32. Irregular ≠ valid product.
- Ignore don't-cares: Treating as 0s not using to enlarge. Include when reduces, but not required for coverage.
- Precedence err: Assuming AND/OR equal. Standard: NOT > AND > OR.
A + B * C≠(A + B) * C. - Stop at algebraic: Local min not global. Cross-check K-map (Quine-McCluskey >6 vars) to confirm.
- Min vs maxterm: Minterms = AND (products) in SOP. Maxterms = OR (sums) in POS. m3 3 vars = A'BC; M3 = A+B'+C'.
→
design-logic-circuit— map minimized expr → gate-levelargumentation— structured logical reasoning, shares formal logic
Dépôt GitHub
Compétences associées
executing-plans
DesignUtilisez la compétence executing-plans lorsque vous disposez d'un plan de mise en œuvre complet à exécuter par lots contrôlés avec des points de contrôle de revue. Elle charge et examine le plan de manière critique, puis exécute les tâches par petits lots (3 tâches par défaut) tout en rapportant la progression entre chaque lot pour une revue par l'architecte. Cela garantit une mise en œuvre systématique avec des points de contrôle de qualité intégrés.
requesting-code-review
DesignCette compétence délègue un sous-agent réviseur de code pour analyser les modifications apportées au code par rapport aux exigences avant de poursuivre. Elle doit être utilisée après avoir terminé des tâches, implémenté des fonctionnalités majeures, ou avant une fusion vers la branche principale. La revue aide à détecter précocement les problèmes en comparant l'implémentation actuelle avec le plan initial.
connect-mcp-server
DesignCette compétence fournit un guide complet permettant aux développeurs de connecter des serveurs MCP à Claude Code via les transports HTTP, stdio ou SSE. Elle couvre l'installation, la configuration, l'authentification et la sécurité pour intégrer des services externes tels que GitHub, Notion et des API personnalisées. Utilisez-la lors de la configuration d'intégrations MCP, de la configuration d'outils externes ou du travail avec le Protocole de Contexte de Modèle de Claude.
web-cli-teleport
DesignCette compétence aide les développeurs à choisir entre les interfaces Web et CLI de Claude Code en fonction de l'analyse des tâches, puis permet une téléportation transparente des sessions entre ces environnements. Elle optimise le flux de travail en gérant l'état et le contexte de la session lors du passage entre le web, la CLI ou le mobile. Utilisez-la pour des projets complexes nécessitant différents outils à diverses étapes.
