Uh oh!
There was an error while loading. Please reload this page.
[Lean Squad] feat(fv): Task 2 — informal spec for TreeNodeFilter.MatchFilterPattern - #7934
Conversation
Extract precise informal specification for MatchFilterPattern, the core Boolean evaluator of the TreeNodeFilter subsystem. The spec covers: - FilterExpression taxonomy (leaf/nop/and/or/not/withProps) - Boolean algebra invariants (12 properties: double negation, De Morgan, commutativity, vacuous cases, Nop identity/absorption) - Regex semantics for value tokens (* → .*, ** sentinel, escaping) - MatchesFilter public entry point postcondition - Edge cases (empty bag, URL-encoded slashes, case-insensitive matching) - 6 open questions for maintainer review Advances Target 7 from phase 1 to phase 2. 🔬 Lean Squad — automated FV agent Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Amaury Levé (Evangelink)
commented
Apr 29, 2026
Copilot resolve the merge conflicts in this pull request |
…nodefilter-2026-04-27-937a4dc0191e83e2 # Conflicts: # formal-verification/TARGETS.md Co-authored-by: Evangelink <11340282+Evangelink@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Adds a formal-verification (FV) Phase 2 informal specification for TreeNodeFilter.MatchFilterPattern, and updates the FV target tracker to reflect the new phase for Target 7.
Changes:
- Added an informal spec document describing
MatchFilterPattern/MatchesFiltersemantics, boolean-algebra invariants, and token/regex behavior. - Updated
formal-verification/TARGETS.mdto advance Target 7 from phase 1 → phase 2.
Show a summary per file
| File | Description |
|---|---|
| formal-verification/specs/treenodefilter_matchfilterpattern_informal.md | New Phase 2 informal specification for the TreeNodeFilter evaluator and related semantics. |
| formal-verification/TARGETS.md | Updates Target 7 status to “Informal spec extracted” (phase 2). |
Copilot's findings
Comments suppressed due to low confidence (1)
formal-verification/specs/treenodefilter_matchfilterpattern_informal.md:168
- This claims
NopExpressionis "used internally" as a match-anything sentinel, but there are currently no call sites constructingNopExpressionin the TreeNodeFilter parser (and a repo-wide search doesn't findnew NopExpression(...)). Consider rephrasing this as an observed evaluator case / legacy hook, or explicitly noting that it is currently not constructed byParseFilter.
3. **NopExpression as always-true sentinel**: Used internally to represent a "match anything" node in the filter tree. Its `evalFilter(nop, ·) = true` property makes it the identity element for `And` and the absorbing element for `Or`.
- Files reviewed: 1/1 changed files
- Comments generated: 2
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Amaury Levé (Evangelink)
commented
Apr 30, 2026
Copilot address review comments |
…ter postcondition Agent-Logs-Url: https://github.com/microsoft/testfx/sessions/00b2d656-9287-4083-8237-bd8df9f9099c Co-authored-by: Evangelink <11340282+Evangelink@users.noreply.github.com>
Addressed in cd3b027:
|
…er postcondition The MatchesFilter implementation unwraps ValueAndPropertyExpression to inspect the inner Value when checking for the multi-level wildcard (.*.*). Update §10 behaviour step 4 and the formal postcondition to reflect this with an explicit unwrapValue helper.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
…hFilterPattern (#7934) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Extract precise informal specification for MatchFilterPattern, the core Boolean evaluator of the TreeNodeFilter subsystem.
The spec covers:
Advances Target 7 from phase 1 to phase 2.
🔬 Lean Squad — automated FV agent
Fixes#7875