Generate structured proof skeletons with tactics, strategies, and intermediate lemmas for theorems in Isabelle/HOL or Coq. Use when users need to: (1) Create proof outlines for theorem statements, (2) Generate proof structure with tactic placeholders, (3) Identify key lemmas needed for a proof, (4) Plan proof strategies (induction, case analysis, forward/backward reasoning), (5) Scaffold proofs with intermediate steps and subgoals, or (6) Convert theorem statements into detailed proof templates. Supports both Isabelle/HOL and Coq equally.
Install with Tessl CLI
npx tessl i github:ArabelaTso/Skills-4-SE --skill proof-skeleton-generator88
Does it follow best practices?
If you maintain this skill, you can automatically optimize it using the tessl CLI to improve its score:
npx tessl skill review --optimize ./path/to/skillValidation for skill structure
Generate structured proof skeletons with tactics, proof strategies, and key lemmas for theorems in Isabelle/HOL or Coq.
Examine the theorem to understand:
Ask the user which proof assistant to target:
If not specified, default to generating both versions.
Based on the theorem structure, identify the appropriate proof technique:
Induction - When theorem involves recursive types:
Case Analysis - When theorem involves:
Direct Proof - When theorem is:
Forward Reasoning - Build up facts:
Backward Reasoning - Work from goal:
Determine helper lemmas that may be needed:
Use the reference files for tactics and patterns:
Create a skeleton that includes:
Organize the proof skeleton clearly:
For Isabelle/HOL:
(* Helper lemmas if needed *)
lemma helper_name:
"statement"
sorry
(* Main theorem *)
theorem theorem_name:
assumes "assumptions"
shows "conclusion"
proof (method)
case case_name
(* Goal: ... *)
(* Strategy: ... *)
(* Key steps:
1. ...
2. ...
*)
show ?case sorry
next
(* Additional cases *)
qedFor Coq:
(* Helper lemmas if needed *)
Lemma helper_name :
statement.
Proof.
(* proof *)
admit.
Admitted.
(* Main theorem *)
Theorem theorem_name :
statement.
Proof.
intros.
induction ... as [| ...].
- (* Case: ... *)
(* Strategy: ... *)
admit.
- (* Case: ... *)
(* IH: ... *)
(* Strategy: ... *)
admit.
Admitted.sorry (Isabelle) or admit (Coq) for incomplete stepssledgehammer (Isabelle) might helpList properties: forall xs, P xs
xsx :: xs with IH P xsNatural number properties: forall n, P n
n0 or Suc 0Suc n with IH P nRecursive function properties: When function is defined recursively
Conditional expressions: if b then ... else ...
b (true/false cases)Option types: match opt with None => ... | Some x => ...
None and Some xSum types: match x with Left a => ... | Right b => ...
Definitional equalities: f x = g x where definitions unfold
Trivial goals: Provable by auto, simp, reflexivity
Repeated subgoals: Same property needed multiple times
Complex intermediate facts: Multi-step derivations
Standard properties: Check standard library first
proof (induction xs)
case Nil
show ?case by simp
next
case (Cons x xs)
show ?case using Cons.IH by simp
qedproof (cases x)
case Constructor1
show ?thesis
proof -
(* detailed steps *)
qed
next
case Constructor2
(* ... *)
qedproof -
have step1: "fact1" by simp
have step2: "fact2" using step1 by simp
show ?thesis using step2 by simp
qedproof (rule some_rule)
show "premise1" sorry
show "premise2" sorry
qedauto, simp, blast might worksorry/admit0f00a4f
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.