Skip to content

Redundant OptionT.run simp argument in Loom/WP/Lemmas.lean #6

Description

@astefano

On Lean v4.29.0, linter.unusedSimpArgs (default-on, Lean core) flags OptionT.run as an unused simp only argument in three lemmas in Loom/WP/Lemmas.lean:

  • tryCatch_OptionT_wp (L217): simp only [wp, MonadExceptOf.tryCatch, OptionT.tryCatch, OptionT.mk, OptionT.run]
  • monadLift_OptionT_wp (L319): simp only [wp, MonadLift.monadLift, OptionT.mk, OptionT.lift, OptionT.run]
  • orElse_OptionT_wp (L679): simp only [wp, OrElse.orElse, OptionT.run]

OptionT.run is a projection already discharged by the surrounding lemmas (OptionT.mk etc.), so the argument never fires. Dropping it from the three lists leaves the proofs unchanged (checked on v4.29.0).

The OptionT.run at L362 (simp only [wp, MonadFunctor.monadMap, OptionT.run]; rfl) is used and should stay.

Surfaced via the quangvdao/loom2 fork (a toolchain-only bump to v4.29.0) and downstream VCVio. The repo itself pins master, so it may not reproduce on a current Lean dev build.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions