Toolverse
All skills

smtprofiling

by FStarLang

Debug F* queries sent to Z3, diagnosing proof instability and performance issues

Installation

Pick a client and clone the repository into its skills directory.

Installation

Quick info

Author
FStarLang
Category
Backend
Views
17

About this skill

Debug F* queries sent to Z3, diagnosing proof instability and performance issues

How to use

  1. Otwórz plik F* (.fst lub .fsti) zawierający dowód, który chcesz debugować. Otocz problematyczną definicję dyrektywami opcji: #push-options "--log_queries --z3refresh --query_stats --split_queries always" przed kodem i #pop-options po nim. Te flagi instruują F*, aby zbierał szczegółowe informacje o zapytaniach wysyłanych do Z3.

  2. Uruchom F* na pliku za pomocą polecenia fstar.exe Module.fst (dostosuj ścieżki include jeśli jest to konieczne). F* wypisze komunikaty zawierające nazwy plików .smt2 wygenerowanych dla każdego wariantu dowodu.

  3. Zlokalizuj Z3 w swoim systemie — może być nazwany z3, z3-4.13.3, z3-4.15.1 lub inną wersją. Uruchom Z3 bezpośrednio na wygenerowanym pliku .smt2 poleceniem z3 queries-myquery.smt2, aby zweryfikować zapytanie niezależnie od F*.

  4. Dodaj opcję profilowania Z3: z3 queries-myquery.smt2 smt.qi.profile=true. Z3 wyświetli statystyki dotyczące tego, które kwantyfikatory były instancjonowane i jak często.

  5. Przeanalizuj wynik profilu. Kwantyfikatory z nazw takich jak Box_bool_proj_0 lub z modułów Prims i FStar.Pervasives naturalnie aktywują się często. Szukaj kwantyfikatorów z Twoich własnych modułów, które aktywują się nadmiernie — to sygnał, że powinieneś napisać dla nich wzorzec lub jawnie kontrolować ich instancjonowanie.

  6. Aby pogłębić wiedzę, zapoznaj się z dokumentacją w repozytorium PoP-in-FStar (https://github.com/FStarLang/PoP-in-FStar), szczególnie sekcją under_the_hood/uth_smt.rst, która wyjaśnia kodowanie SMT w F* i techniki profilowania.

Related skills

youtube-transcribe-skill

by feiskyer

Extract subtitles/transcripts from a YouTube video URL and save as a local file. Use when you need to extract subtitles from a YouTube video.

Backend
24178

pdf-to-markdown

by aliceisjustplaying

Convert entire PDF documents to clean, structured Markdown for full context loading. Use this skill when the user wants to extract ALL text from a PDF into context (not grep/search), when discussing or analyzing PDF content in full, when the user mentions \

Backend
355664

api-design-principles

by wshobson

Master REST and GraphQL API design principles to build intuitive, scalable, and maintainable APIs that delight developers. Use when designing new APIs, reviewing API specifications, or establishing API design standards.

Backend
50146

dotnet-backend

by anton-abyzov

.NET/C# backend developer for ASP.NET Core APIs with Entity Framework Core. Builds REST APIs, minimal APIs, gRPC services, authentication with Identity/JWT, authorization, database operations, background services, SignalR real-time features. Activates for: .NET, C#, ASP.NET

Backend
92296

supabase-operations

by elevanaltd

Supabase operational knowledge for migrations, RLS optimization, MCP tool benchmarks, and ADR-003 compliance. Use when validating database migrations, optimizing Row-Level Security policies, checking MCP tool performance, or ensuring Supabase operational standards. Triggers on:

Backend
27109

literature-review

by K-Dense-AI

Conduct comprehensive, systematic literature reviews using multiple academic databases (PubMed, arXiv, bioRxiv, Semantic Scholar, etc.). This skill should be used when conducting systematic literature reviews, meta-analyses, research synthesis, or comprehensive literature

Backend
238507