---
name: propositional-logic
description: "Problem-solving strategies for propositional logic in mathematical logic"
allowed-tools: [Bash, Read]
---

# Propositional Logic

## When to Use

Use this skill when working on propositional-logic problems in mathematical logic.

## Decision Tree


1. **Identify Formula Structure**
   - Classify: tautology, contradiction, or contingent?
   - Main connective: AND, OR, IMPLIES, NOT, IFF?
   - `z3_solve.py sat "formula"` to check satisfiability

2. **Truth Table Method**
   - For small formulas (<=4 variables): enumerate all valuations
   - `sympy_compute.py truthtable "p & (p -> q) -> q"`
   - Tautology = all T, Contradiction = all F

3. **Natural Deduction**
   - Apply inference rules: Modus Ponens, Modus Tollens
   - Conditional proof: assume antecedent, derive consequent
   - `z3_solve.py prove "Implies(And(p, Implies(p,q)), q)"`

4. **Semantic Tableaux**
   - Build tree by decomposing formula
   - Closed branches = contradictions
   - All branches closed = valid argument


## Tool Commands

### Z3_Sat
```bash
uv run python -m runtime.harness scripts/z3_solve.py sat "And(p, Implies(p, q), Not(q))"
```

### Z3_Tautology
```bash
uv run python -m runtime.harness scripts/z3_solve.py prove "Implies(And(p, Implies(p, q)), q)"
```

### Sympy_Truthtable
```bash
uv run python -m runtime.harness scripts/sympy_compute.py truthtable "p & (p >> q) >> q"
```

### Z3_Modus_Ponens
```bash
uv run python -m runtime.harness scripts/z3_solve.py prove "Implies(And(p, Implies(p,q)), q)"
```

## Cognitive Tools Reference

See `.claude/skills/math-mode/SKILL.md` for full tool documentation.
