计划执行与检查节点
executing-plans
按既定实施计划完成工作,保持过程检查和反馈。
tactic-suggestion-assistant【效率与协作】Analyze 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, implicatio…
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
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