界面已本地化;技能介绍与说明文档按所选语言由 AI 自动翻译,代码、命令、路径和专业术语保留原文,以原作者文档为准。
探索技能
效率与协作 · SKILL.md

invariant-analyzer

invariant-analyzer

【效率与协作】Identify and verify loop invariants for correctness proofs

独立 GitHub 快照 · 自动分类 · 以原作者文档为准

技能说明

GitHub

name: invariant-analyzer description: Identify and verify loop invariants for correctness proofs allowed-tools:

  • Read
  • Write
  • Grep
  • Glob graph: domains: [domain:computer-science] specializations: [specialization:algorithms-optimization] skillAreas: [skill-area:dynamic-programming, skill-area:mathematical-reasoning] roles: [role:backend-engineer, role:computational-scientist]

Invariant Analyzer Skill

Purpose

Identify and verify loop invariants to help construct correctness proofs for algorithms.

Capabilities

  • Automatic loop invariant inference
  • Invariant verification against code
  • Precondition/postcondition extraction
  • Generate formal proof structure
  • Identify missing invariants

Target Processes

  • correctness-proof-testing
  • algorithm-implementation

Invariant Analysis Framework

Loop Invariant Properties

  1. Initialization: True before first iteration
  2. Maintenance: If true before iteration, true after
  3. Termination: Provides useful property at end

Common Invariant Patterns

  • Range invariants: "for all i in [0, k), property P(i) holds"
  • Accumulator invariants: "sum equals sum of a[0..k-1]"
  • Pointer invariants: "left < right and all elements < left are processed"
  • State invariants: "data structure maintains property X"

Input Schema

{
  "type": "object",
  "properties": {
    "code": { "type": "string" },
    "language": { "type": "string" },
    "loopIndex": { "type": "integer" },
    "expectedInvariant": { "type": "string" }
  },
  "required": ["code"]
}

Output Schema

{
  "type": "object",
  "properties": {
    "success": { "type": "boolean" },
    "invariants": { "type": "array" },
    "preconditions": { "type": "array" },
    "postconditions": { "type": "array" },
    "proofOutline": { "type": "string" }
  },
  "required": ["success"]
}
我的收藏