Mathematical, physical, and computational reasoning methods — Mathematics (proofs, algebra, calculus), Physics (tensors, conservation laws, symmetries), and Computability (Turing machines, decidability, complexity classes). Use when the user invokes `/think mathematics`, `/think physics`, or `/think computability`, or asks about formal proofs, physical models, or computability/complexity questions.
$ARGUMENTS
Parse these arguments. The first word should be mathematics, physics, or computability. The rest is the problem to reason about. If invoked via the think router, $ARGUMENTS is the same string the user originally typed after /think.
This category skill contains three formal reasoning methods: Mathematical (proof construction, theorem verification, symbolic computation), Physical (tensor mathematics, conservation laws, field theory, symmetry analysis), and Computability (Turing machines, decidability proofs, complexity classification).
Mathematical reasoning constructs rigorous logical arguments from axioms and definitions to conclusions via explicit proof strategies. It tracks the dependency structure of each step — what it relies on and whether any gaps or implicit assumptions remain.
Do not use Mathematical when:
See reference/output-formats/mathematics.md for the authoritative JSON schema.
{
"mode": "mathematics",
"thoughtType": "proof_construction",
"theorems": [
{
"name": "<theorem name>",
"statement": "<full statement>",
"hypotheses": ["<hyp 1>", "<hyp 2>"],
"conclusion": "<conclusion>"
}
],
"proofStrategy": {
"type": "<direct|contradiction|induction|contrapositive|construction>",
"steps": ["<step 1>", "<step 2>", "<step 3>"],
"completeness": <0.0 to 1.0>
},
"dependencies": ["<prior result or definition>"],
"assumptions": ["<explicit assumption>"],
"uncertainty": <0.0 to 1.0>
}
mode is exactly "mathematics"theorems states both hypotheses and conclusionproofStrategy.type is one of the named strategiesproofStrategy.steps is non-emptydependencies lists every named theorem or definition usedassumptions makes implicit assumptions explicituncertainty is lower when the proof is complete and every step is justifiedgapAnalysis or note them in the natural-language summaryInput: "Prove that √2 is irrational."
Output:
{
"mode": "mathematics",
"thoughtType": "proof_construction",
"theorems": [
{
"name": "Irrationality of √2",
"statement": "√2 is not a rational number",
"hypotheses": ["√2 is expressible as p/q with p, q ∈ ℤ and gcd(p, q) = 1"],
"conclusion": "The assumption leads to a contradiction; therefore √2 ∉ ℚ"
}
],
"proofStrategy": {
"type": "contradiction",
"steps": [
"Assume √2 = p/q with p, q integers and gcd(p, q) = 1 (lowest terms)",
"Then 2 = p²/q², so p² = 2q²",
"Therefore p² is even, which means p is even (if p² is even then p is even)",
"Write p = 2k; substitute: (2k)² = 2q², so 4k² = 2q², so q² = 2k²",
"Therefore q² is even, so q is even",
"But p and q both even contradicts gcd(p, q) = 1"
],
"completeness": 0.98
},
"dependencies": ["definition of rational number", "even integer divisibility", "gcd definition"],
"assumptions": ["integers are well-ordered", "gcd is well-defined for non-zero integers"],
"uncertainty": 0.05
}
Natural-language summary: "Classic proof by contradiction. The key move is the parity cascade: p² even forces p even, which when substituted forces q² even, which forces q even — contradicting the reduced-form assumption. Every step relies only on divisibility properties of integers. Completeness is 0.98 rather than 1.0 because the step 'p² even implies p even' deserves an explicit justification (the contrapositive of 'p odd implies p² odd')."
Physical reasoning models systems using tensor mathematics, field theory, conservation laws, and symmetry analysis. It moves from physical quantities through mathematical formulation to physical interpretation, maintaining rigorous tracking of units, symmetry groups, and dimensional consistency.
Do not use Physical when:
rank as [contravariant, covariant], components (index notation), symmetries (symmetric/antisymmetric), invariants, and coordinateSystem.See reference/output-formats/physics.md for the authoritative JSON schema.
{
"mode": "physics",
"thoughtType": "<tensor_formulation|gauge_theory|conservation_law|dimensional_analysis|symmetry_analysis>",
"tensorProperties": {
"rank": [<contravariant>, <covariant>],
"components": "<index notation>",
"latex": "<LaTeX>",
"symmetries": ["<symmetry>"],
"invariants": ["<invariant expression>"],
"transformation": "<covariant|contravariant|mixed>",
"indexStructure": "<description>",
"coordinateSystem": "<Minkowski|Euclidean|...>"
},
"physicalInterpretation": {
"quantity": "<physical quantity name>",
"units": "<SI units>",
"conservationLaws": ["<law in mathematical form>"],
"constraints": ["<physical constraint>"],
"observables": ["<measurable quantity>"]
},
"fieldTheoryContext": {
"fields": ["<field 1>"],
"interactions": ["<interaction>"],
"symmetryGroup": "<group>",
"gaugeSymmetries": ["<transformation>"]
},
"dependencies": ["<prior result>"],
"assumptions": ["<physical assumption>"],
"uncertainty": <0.0 to 1.0>
}
mode is exactly "physics"thoughtType matches the reasoning step being performedtensorProperties.rank is a two-element array [contravariant_count, covariant_count]tensorProperties.symmetries describes antisymmetry, symmetry, or trace conditionsphysicalInterpretation.conservationLaws is in mathematical form (not just "energy is conserved")fieldTheoryContext.symmetryGroup names the Lie group (U(1), SU(2), SU(3), Poincaré, etc.)assumptions lists physical idealizations (flat spacetime, no sources, weak field, etc.)Input: "Analyze the electromagnetic field tensor and derive charge conservation from gauge symmetry."
Output (step 1 — tensor formulation):
{
"mode": "physics",
"thoughtType": "tensor_formulation",
"tensorProperties": {
"rank": [0, 2],
"components": "F_{μν} = ∂_μA_ν - ∂_νA_μ",
"latex": "F_{\\mu\\nu} = \\partial_\\mu A_\\nu - \\partial_\\nu A_\\mu",
"symmetries": ["antisymmetric: F_{μν} = -F_{νμ}", "6 independent components in 4D"],
"invariants": ["F_{μν}F^{μν} = 2(B² - E²/c²)", "F_{μν}*F^{μν} ∝ E·B"],
"transformation": "covariant",
"indexStructure": "(0,2) antisymmetric tensor",
"coordinateSystem": "Minkowski"
},
"dependencies": ["Maxwell equations", "vector potential definition A_μ"],
"assumptions": ["flat spacetime", "no sources in vacuum"],
"uncertainty": 0.05
}
Output (step 2 — conservation from gauge symmetry):
{
"mode": "physics",
"thoughtType": "conservation_law",
"fieldTheoryContext": {
"fields": ["A_μ (gauge potential)", "J^μ (4-current)"],
"interactions": ["minimal coupling: ∂_μ → D_μ = ∂_μ + ieA_μ"],
"symmetryGroup": "U(1)",
"gaugeSymmetries": ["A_μ → A_μ + ∂_μλ", "ψ → e^{ieλ}ψ"]
},
"physicalInterpretation": {
"quantity": "electric charge",
"units": "C (coulombs)",
"conservationLaws": ["∂_μJ^μ = 0 (4-divergence of current vanishes)"],
"constraints": ["local U(1) gauge invariance"],
"observables": ["total charge Q = ∫d³x J⁰"]
},
"dependencies": ["Noether's theorem", "U(1) gauge symmetry", "tensor_formulation step"],
"assumptions": ["Noether's theorem applies", "action is gauge-invariant"],
"uncertainty": 0.05
}
Natural-language summary: "The antisymmetry of F_{μν} encodes that the electromagnetic field has 6 independent components (3 for E, 3 for B) and that the Bianchi identity ∂{[μ}F{νρ]} = 0 is automatic. U(1) gauge invariance via Noether's theorem directly implies ∂_μJ^μ = 0 — charge is conserved as a consequence of the symmetry, not as a separate postulate."
Computability reasoning analyzes what can and cannot be computed, distinguishing decidability (does a Turing machine always halt with yes/no?) from tractability (is a decidable problem solvable efficiently?). It uses Turing machine definitions, computation traces, reductions, diagonalization, and complexity class classification.
Do not use Computability when:
Key distinction — decidability vs. tractability:
See reference/output-formats/computability.md for the authoritative JSON schema.
{
"mode": "computability",
"thoughtType": "<machine_definition|computation_trace|decidability_proof|reduction|complexity_analysis>",
"currentProblem": {
"id": "<problem_id>",
"name": "<problem name>",
"description": "<description>",
"inputFormat": "<what inputs look like>",
"question": "<yes/no question>",
"yesInstances": ["<example>"],
"noInstances": ["<example>"],
"decidabilityStatus": "<decidable|semi_decidable|undecidable>",
"complexityClass": "<P|NP|PSPACE|NP-complete|...>"
},
"decidabilityProof": {
"id": "<proof_id>",
"problem": "<problem name>",
"conclusion": "<decidable|semi_decidable|undecidable>",
"method": "<direct_machine|reduction|diagonalization|rice_theorem>",
"knownUndecidableProblem": "<ATM|Halting Problem|...>"
},
"dependencies": ["<prior result>"],
"assumptions": ["<assumption>"],
"uncertainty": <0.0 to 1.0>,
"keyInsight": "<the crucial insight of this reasoning step>"
}
mode is exactly "computability"currentProblem.decidabilityStatus is one of "decidable", "semi_decidable", "undecidable"decidabilityProof.method is set and the reduction/diagonalization is describeddecidingMachine) or explicit algorithm is providedkeyInsight captures the essential logical move (e.g., "assuming decidability lets us solve ATM")uncertainty is near 0 for established results (Halting Problem undecidability), higher for open questions (P vs NP)Input: "Is the Halting Problem decidable? Prove it."
Output:
{
"mode": "computability",
"thoughtType": "decidability_proof",
"currentProblem": {
"id": "halting_problem",
"name": "The Halting Problem",
"description": "Given a Turing machine M and input w, does M halt on w?",
"inputFormat": "Encoding ⟨M, w⟩ of a Turing machine M and string w",
"question": "Does M halt on input w?",
"yesInstances": ["⟨M_trivial, ε⟩ where M_trivial immediately accepts"],
"noInstances": ["⟨M_loop, ε⟩ where M_loop loops forever on all inputs"],
"decidabilityStatus": "semi_decidable",
"complexityClass": null
},
"decidabilityProof": {
"id": "halt_undecidability",
"problem": "The Halting Problem",
"conclusion": "undecidable",
"method": "diagonalization",
"knownUndecidableProblem": null
},
"dependencies": ["definition of Turing machine", "Church-Turing thesis", "universal Turing machine"],
"assumptions": ["Turing machine model captures all effective computation"],
"uncertainty": 0.01,
"keyInsight": "Assume a decider H exists for HALT. Construct D that runs H on ⟨D, D⟩ and does the opposite of what H predicts. D halts iff D does not halt — a contradiction. Therefore H cannot exist."
}
Natural-language summary: "The Halting Problem is semi-decidable (a universal TM accepts whenever M halts) but undecidable overall. Turing's 1936 diagonalization argument is the proof: any hypothetical decider H can be weaponized into a self-contradicting machine D. The Halting Problem is the canonical undecidable problem from which most other undecidability results follow by reduction. Note the distinction: 'undecidable' means no TM decides it in finite time; it does not mean we can never determine the answer for specific instances."