[TS PBT] Project property domains and preconditions into USVM
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 35/100
- issue の種類
- 機能追加
- 明瞭さ
- おおむね明確
- 活発さ
- 活発
- 技術スタック
- javascript, kotlin, typescript
調査の方向性
Start with PropertyManifest, JsConcreteValue, the mapped entry-point bindings, and the current machine initial-state mechanism. Review the shared-contract gate in #384 and the focused usvm-ts-pbt/usvm-ts checks before defining the supported projection subset. Done means satisfiable constraints match declared domains, preconditions follow the shared contract, and unsupported or approximate cases are explicitly reported rather than labeled exact.
索引モデルが issue の本文から書いたものです。
説明
Part of #345. Depends on #350 and the shared-contract gate #384.
Goal
Construct symbolic inputs and precondition constraints from the existing Kotlin property domains, with an explicit supported subset.
Scope
- Reuse PropertyManifest, JsConcreteValue, the mapped entry-point bindings and the current machine initial-state mechanism.
- Establish exact projection for booleans, bounded numeric inputs and supported primitive constants first. Add optional values, bounded tuples and bounded arrays only where the current heap/value representation supports them.
- Publish a small per-domain table for strings, unbounded collections and every remaining common domain: supported representation, limits, and exact/approximate/unsupported status. A domain appearing in the common API does not require complete symbolic support here.
- Respect JavaScript binary64, declared NaN/infinity/negative-zero policy, inclusive bounds, optional null versus undefined and argument order.
- Execute supported pure preconditions according to #384. false discards the input; a thrown exception or invalid result is an error. Do not silently drop those errors or present solver UNKNOWN as UNSAT.
- Report symbolic capability and derive concrete-only when the concrete backend supports an unsupported symbolic case.
- For an approximate projection, state whether it adds values, omits values, does both, or has an unestablished relation to the declared domain. Replay is still required and unsuccessful search proves nothing.
- Keep one capability decision path; do not duplicate domain definitions, value codecs or validators between the capability checker and projector.
Definition of Done
- The documented exact subset instantiates inputs in the correct slots with satisfiable constraints matching the declared domains.
- Focused conformance fixtures compare concrete accepted values with symbolic constraints, including boundary and special-value cases.
- Preconditions follow the shared classification and purity contract.
- Unsupported/approximate projections cannot be labeled exact.
- Collection limits are explicit configuration/implementation limits, not silent truncation.
- String support may remain approximate or unsupported; no full string solver or arbitrary object graph support is required.
- Existing implementation work is reused and aligned with #384, with focused usvm-ts-pbt/usvm-ts checks.
Predicate violation targets, concrete replay and runtime-derived hints belong to later issues.
- 主要言語
- Kotlin
- スター
- 33
- フォーク
- 27
- 平均マージ
- 4日 3時間
- マージ済み PR(30日)
- 15
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
UnitTestBot/usvm のほかの issue
-
難易度 5/5 1週間以上 初心者へのやさしさ 45/100
UnitTestBot/usvm#388 ·
-
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
UnitTestBot/usvm#384 ·
-
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
UnitTestBot/usvm#382 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 48/100
UnitTestBot/usvm#379 ·
-
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
UnitTestBot/usvm#373 ·
UnitTestBot/usvm の issue をすべて見る
似ている issue
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
-
index-request triaged
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
-
enhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
Anthonyy232/Paperize#614 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
bitcoindevkit/bdk-ffi#1125 ·
-
🌑 nextgen
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
CCBlueX/LiquidBounce#9214 · コメント 1 件 ·