executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
tactic-suggestion-assistantAnalyze proof states in Isabelle or Coq and suggest applicable tactics to make progress. Use when users need help with: (1) Choosing the next tactic in an interactive proof, (2) Understanding what tactics apply to their current goal, (3) Getting unstuck in a proof, (4) Learning which tactics work for specific goal structures (conjunctions, implications, ind…
Independent GitHub snapshot · Automated classification · Original documentation governs
Analyze proof states and suggest applicable tactics to make progress in Isabelle or Coq.
This skill helps you navigate interactive proofs by analyzing the current proof state and suggesting 3-5 ranked tactics that can make progress. It works with both Isabelle/Isar and Coq, providing system-specific suggestions with explanations.
Provide the current proof state including:
The assistant will analyze the state and suggest tactics ranked by likelihood of success.
Determine whether you're working in Isabelle or Coq based on syntax:
⟹, ∧, ∨, ∀, ∃, 'a list, etc.->, /\, \/, forall, exists, list A, etc.Examine the goal's logical form:
P ∧ Q / P /\ Q → Split tacticsP ⟹ Q / P -> Q → Introduction tactics∀x. P / forall x, P → Variable introductiont1 = t2 → Simplification or rewritingLook at available hypotheses:
Type information guides tactic choice:
Provide 3-5 tactics ranked by:
For each suggested tactic, provide:
Proof state:
goal (1 subgoal):
1. ⋀xs ys. length xs = length ys ⟹ length (xs @ ys) = 2 * length xs
Analysis:
length xs = length ysxs and ysSuggestions:
by simp (High likelihood)
length (xs @ ys) to length xs + length ys, then uses hypothesisapply (subst length_append) (Medium likelihood)
length (xs @ ys) to length xs + length ysusing assms by auto (Medium likelihood)
Proof state:
1 subgoal
n : nat
IHn : even n -> even (n + 2)
============================
even n -> even (S (S n))
Analysis:
IHnnSuggestions:
intro H. (High likelihood)
H: even n to context, goal becomes even (S (S n))intros. simpl. apply IHn. assumption. (High likelihood)
S (S n) simplifies to n + 2intro H. rewrite <- plus_n_Sm. rewrite <- plus_n_O. apply IHn. exact H. (Medium likelihood)
S (S n) to n + 2 form to use IHauto. (Low likelihood)
Isabelle: ⊢ P ∧ Q
apply (rule conjI) - Split into two goalsby auto - If both parts are trivialby simp - If simplification proves bothCoq: P /\ Q
split. - Split into two goalsauto. - If both parts are trivialintuition. - Propositional reasoningIndicators: Goal about all elements of a list/nat, recursive structure
Isabelle:
proof (induction xs) - List inductionproof (induction n) - Nat inductionproof (induction t) - Custom type inductionCoq:
induction l as [|x l' IH]. - List inductioninduction n as [|n' IH]. - Nat inductioninduction t. - Custom type inductionIndicators: Goal or hypothesis with conditional, pattern match
Isabelle:
proof (cases xs) - Case analysis on variableproof (cases "condition") - Case split on booleanby (auto split: if_split) - Auto with case splitCoq:
destruct l as [|x l']. - Case analysis on variabledestruct (condition). - Case split on booleancase_eq term. - Case analysis with equationIndicators: Goal with +, -, *, <, ≤
Isabelle:
by arith - Arithmetic decision procedureby linarith - Linear arithmeticby simp - SimplificationCoq:
lia. - Linear integer arithmeticnia. - Non-linear arithmeticring. - Ring solverIndicators: Many connectives, nested structure
Isabelle:
by auto - Full automationby fastforce - Aggressive automationsledgehammer - External proversCoq:
auto. - Automationintuition. - Propositional reasoningfirstorder. - First-order reasoningtauto. - Tautology solverDetailed tactic references and patterns:
Load these references when you need:
auto, simp) before manual tactics