invariant-analyzer

Solid

Identify and verify loop invariants for correctness proofs

AI & Automation 814 stars 53 forks Updated today MIT

Install

View on GitHub

Quality Score: 93/100

Stars 20%
97
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
74
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

# 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 ```json { "type": "object", "properties": { "code": { "type": "string" }, "language": { "type": "string" }, "loopIndex": { "type": "integer" }, "expectedInvariant": { "type": "string" } }, "required": ["code"] } ``` ## Output Schema ```json { "type": "object", "properties": { "success": { "type": "boolean" }, "invariants": { "type": "array" }, "preconditions": { "type": "array" }, "postconditions": { "type": "array" }, "proofOutline": { "type": "string" } }, "required": ["success"] } ```

Details

Author
a5c-ai
Repository
a5c-ai/babysitter
Created
4 months ago
Last Updated
today
Language
JavaScript
License
MIT

Related Skills