Skip to content

Verification tab: Found shows binders, internal names and raw simplification steps #183

Closed

Description

@CatarinaGamboa

Problem

Rendering the six study exercises (verifier 0.0.37 + main) shows that the Found box of the Verification tab uses notation and names that novices are never told about:

  • Every row starts with a ∀x binder column (∀wParam, ∀#case_condition, ∀failures.size(), a binder on a method call), and rows are chained with →.
  • Internal names leak: #case_condition, #if_condition, #switch_selector, #getUndoManager_result, extended#1.
  • When the hover says "could not prove it" (A1_56, A2_04), Found still shows ∀timeout true, or an internal equality (A1_56: undoManager == #getUndoManager_result, 19 steps), instead of saying that nothing known proves Expected.
  • The step navigation ("Simplified 7/7 ← →") steps through raw Binder/Substitution passes, one removed true row at a time (A1_56 has 19 steps). Its header wording is Show the name of the newest Found step instead of "Simplified" #176.

Advisor's rule for the study: if users are not told what something means and it doesn't make sense to them, don't show it.

Exercise Found today (newest step)
A1_01 ∀wParam compression(wParam) == compressionNotExplicit (7 steps)
A1_09 ∀#case_condition newMode == BORDERLESS → / ∀host …ternary… (5 steps)
A1_38 ∀buffered stream(buffered) == open && mark(buffered) == unmarked (4 steps)
A1_56 ∀undoManager undoManager == #getUndoManager_result (19 steps), hover: could not prove it
A2_04 ∀timeout true (6 steps), hover: could not prove it
A2_10 ∀failures.size() failures.size() == size(this.failures) && failures.size() >= 0 (3 steps)

Screenshots: https://raw.githubusercontent.com/liquid-java/vscode-liquidjava/pr-screenshots/study-0.0.37/<EX>/2-error.png and 2-error-found-oldest-step.png.

Proposed fix (client only)

  • Found lists the facts, one per line: no binder column, no →, no rows that are just true.
  • When the hover says "could not prove it", Found says so in words ("Nothing is known here that could prove Expected") instead of a derivation.
  • Steps: show only the steps whose facts a user can read (none with a generated name), one step per run of the same pass, and none that look the same as the step before. Header per the PM decision on Show the name of the newest Found step instead of "Simplified" #176: "Original"/"Simplified", or the name of a display step such as "Relevant to Expected", with an (i) tooltip that says in plain words what changed.

Why the client: the verifier's messages already leave these names out (the hover of every study exercise reads fine); they reach users only through the IDE's derivation view (binder column and the steps before simplification).

Needed for the error-message study.

🤖 Generated with Claude Code

Activity

  1. added a commit that references this issue on Nov 11, 2026
    6a7b3a8
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requeststudyNeeded before the error-message user study

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions